From 90636dd9f8236c07f6562680523b793662940aa2 Mon Sep 17 00:00:00 2001 From: Carsten Bleek <bleek@cross-solution.de> Date: Mon, 17 Feb 2020 21:50:14 +0100 Subject: [PATCH 1/2] migrate to laminas --- README.md~ | 41 + composer.json | 5 +- composer.lock | 8790 ----------------- src/Controller/ConsoleController.php | 2 +- ...etsInjectorProcessJsonRequestDecorator.php | 2 +- src/Entity/JobProxy.php | 2 +- .../Controller/ConsoleControllerFactory.php | 2 +- .../ProcessJsonRequestDelegatorFactory.php | 2 +- .../Filter/JobBoardPaginationQueryFactory.php | 2 +- src/Filter/AbstractPaginationQuery.php | 4 +- .../JobEntityToSolrDocument.php | 6 +- src/Listener/CreatePaginatorListener.php | 2 +- src/Module.php | 4 +- src/Options/ModuleOptions.php | 2 +- src/Paginator/Adapter/SolrAdapter.php | 4 +- src/Paginator/Paginator.php | 6 +- src/Paginator/PaginatorFactoryAbstract.php | 2 +- .../Controller/ConsoleControllerTest.php | 2 +- .../Listener/CreatePaginatorListenerTest.php | 2 +- .../Paginator/JobsPaginatorFactoryTest.php | 4 +- test/SolrTest/Paginator/PaginatorTest.php | 2 +- test/coverage/Bridge/Manager.php.html | 310 + test/coverage/Bridge/ResultConverter.php.html | 293 + test/coverage/Bridge/Util.php.html | 303 + test/coverage/Bridge/dashboard.html | 284 + test/coverage/Bridge/index.html | 175 + .../Controller/ConsoleController.php.html | 292 + ...jectorProcessJsonRequestDecorator.php.html | 249 + .../coverage/Controller/Plugin/dashboard.html | 291 + test/coverage/Controller/Plugin/index.html | 120 + test/coverage/Controller/dashboard.html | 290 + test/coverage/Controller/index.html | 147 + test/coverage/Entity/JobProxy.php.html | 2083 ++++ test/coverage/Entity/dashboard.html | 297 + test/coverage/Entity/index.html | 119 + .../Exception/ServerException.php.html | 127 + test/coverage/Exception/dashboard.html | 284 + test/coverage/Exception/index.html | 89 + test/coverage/Facets.php.html | 595 ++ .../coverage/FacetsProviderInterface.php.html | 108 + .../ConsoleControllerFactory.php.html | 185 + ...rocessJsonRequestDelegatorFactory.php.html | 195 + .../Factory/Controller/Plugin/dashboard.html | 290 + .../Factory/Controller/Plugin/index.html | 121 + .../Factory/Controller/dashboard.html | 289 + test/coverage/Factory/Controller/index.html | 148 + .../JobBoardPaginationQueryFactory.php.html | 209 + test/coverage/Factory/Filter/dashboard.html | 288 + test/coverage/Factory/Filter/index.html | 120 + test/coverage/Factory/dashboard.html | 291 + test/coverage/Factory/index.html | 147 + .../Filter/AbstractPaginationQuery.php.html | 254 + .../JobEntityToSolrDocument.php.html | 445 + .../Filter/EntityToDocument/dashboard.html | 290 + .../Filter/EntityToDocument/index.html | 120 + .../Filter/JobBoardPaginationQuery.php.html | 491 + test/coverage/Filter/dashboard.html | 295 + test/coverage/Filter/index.html | 175 + .../Listener/CreatePaginatorListener.php.html | 196 + .../Listener/JobEventSubscriber.php.html | 524 + test/coverage/Listener/dashboard.html | 286 + test/coverage/Listener/index.html | 147 + test/coverage/Module.php.html | 221 + test/coverage/Options/ModuleOptions.php.html | 1203 +++ test/coverage/Options/dashboard.html | 286 + test/coverage/Options/index.html | 119 + .../Paginator/Adapter/SolrAdapter.php.html | 380 + .../coverage/Paginator/Adapter/dashboard.html | 285 + test/coverage/Paginator/Adapter/index.html | 120 + .../JobsBoardPaginatorFactory.php.html | 212 + test/coverage/Paginator/Paginator.php.html | 213 + .../PaginatorFactoryAbstract.php.html | 237 + test/coverage/Paginator/dashboard.html | 284 + test/coverage/Paginator/index.html | 203 + test/coverage/_css/bootstrap.min.css | 7 + test/coverage/_css/custom.css | 0 test/coverage/_css/nv.d3.min.css | 1 + test/coverage/_css/octicons.css | 5 + test/coverage/_css/style.css | 122 + test/coverage/_icons/file-code.svg | 1 + test/coverage/_icons/file-directory.svg | 1 + test/coverage/_js/bootstrap.min.js | 7 + test/coverage/_js/d3.min.js | 5 + test/coverage/_js/file.js | 62 + test/coverage/_js/jquery.min.js | 2 + test/coverage/_js/nv.d3.min.js | 8 + test/coverage/_js/popper.min.js | 5 + test/coverage/dashboard.html | 327 + test/coverage/index.html | 396 + .../config/autoload/mail-service.global.php | 2 +- .../autoload/solr.moduleoptions.local.php~ | 83 + 91 files changed, 16828 insertions(+), 8819 deletions(-) create mode 100644 README.md~ delete mode 100644 composer.lock create mode 100644 test/coverage/Bridge/Manager.php.html create mode 100644 test/coverage/Bridge/ResultConverter.php.html create mode 100644 test/coverage/Bridge/Util.php.html create mode 100644 test/coverage/Bridge/dashboard.html create mode 100644 test/coverage/Bridge/index.html create mode 100644 test/coverage/Controller/ConsoleController.php.html create mode 100644 test/coverage/Controller/Plugin/FacetsInjectorProcessJsonRequestDecorator.php.html create mode 100644 test/coverage/Controller/Plugin/dashboard.html create mode 100644 test/coverage/Controller/Plugin/index.html create mode 100644 test/coverage/Controller/dashboard.html create mode 100644 test/coverage/Controller/index.html create mode 100644 test/coverage/Entity/JobProxy.php.html create mode 100644 test/coverage/Entity/dashboard.html create mode 100644 test/coverage/Entity/index.html create mode 100644 test/coverage/Exception/ServerException.php.html create mode 100644 test/coverage/Exception/dashboard.html create mode 100644 test/coverage/Exception/index.html create mode 100644 test/coverage/Facets.php.html create mode 100644 test/coverage/FacetsProviderInterface.php.html create mode 100644 test/coverage/Factory/Controller/ConsoleControllerFactory.php.html create mode 100644 test/coverage/Factory/Controller/Plugin/ProcessJsonRequestDelegatorFactory.php.html create mode 100644 test/coverage/Factory/Controller/Plugin/dashboard.html create mode 100644 test/coverage/Factory/Controller/Plugin/index.html create mode 100644 test/coverage/Factory/Controller/dashboard.html create mode 100644 test/coverage/Factory/Controller/index.html create mode 100644 test/coverage/Factory/Filter/JobBoardPaginationQueryFactory.php.html create mode 100644 test/coverage/Factory/Filter/dashboard.html create mode 100644 test/coverage/Factory/Filter/index.html create mode 100644 test/coverage/Factory/dashboard.html create mode 100644 test/coverage/Factory/index.html create mode 100644 test/coverage/Filter/AbstractPaginationQuery.php.html create mode 100644 test/coverage/Filter/EntityToDocument/JobEntityToSolrDocument.php.html create mode 100644 test/coverage/Filter/EntityToDocument/dashboard.html create mode 100644 test/coverage/Filter/EntityToDocument/index.html create mode 100644 test/coverage/Filter/JobBoardPaginationQuery.php.html create mode 100644 test/coverage/Filter/dashboard.html create mode 100644 test/coverage/Filter/index.html create mode 100644 test/coverage/Listener/CreatePaginatorListener.php.html create mode 100644 test/coverage/Listener/JobEventSubscriber.php.html create mode 100644 test/coverage/Listener/dashboard.html create mode 100644 test/coverage/Listener/index.html create mode 100644 test/coverage/Module.php.html create mode 100644 test/coverage/Options/ModuleOptions.php.html create mode 100644 test/coverage/Options/dashboard.html create mode 100644 test/coverage/Options/index.html create mode 100644 test/coverage/Paginator/Adapter/SolrAdapter.php.html create mode 100644 test/coverage/Paginator/Adapter/dashboard.html create mode 100644 test/coverage/Paginator/Adapter/index.html create mode 100644 test/coverage/Paginator/JobsBoardPaginatorFactory.php.html create mode 100644 test/coverage/Paginator/Paginator.php.html create mode 100644 test/coverage/Paginator/PaginatorFactoryAbstract.php.html create mode 100644 test/coverage/Paginator/dashboard.html create mode 100644 test/coverage/Paginator/index.html create mode 100644 test/coverage/_css/bootstrap.min.css create mode 100644 test/coverage/_css/custom.css create mode 100644 test/coverage/_css/nv.d3.min.css create mode 100644 test/coverage/_css/octicons.css create mode 100644 test/coverage/_css/style.css create mode 100644 test/coverage/_icons/file-code.svg create mode 100644 test/coverage/_icons/file-directory.svg create mode 100644 test/coverage/_js/bootstrap.min.js create mode 100644 test/coverage/_js/d3.min.js create mode 100644 test/coverage/_js/file.js create mode 100644 test/coverage/_js/jquery.min.js create mode 100644 test/coverage/_js/nv.d3.min.js create mode 100644 test/coverage/_js/popper.min.js create mode 100644 test/coverage/dashboard.html create mode 100644 test/coverage/index.html create mode 100644 test/sandbox/config/autoload/solr.moduleoptions.local.php~ diff --git a/README.md~ b/README.md~ new file mode 100644 index 0000000..bfb06f9 --- /dev/null +++ b/README.md~ @@ -0,0 +1,41 @@ +Solr +==== + +This module makes job entities searchable with Solr. In addition it enables facet search. + +Build status: + +[](https://travis-ci.org/yawik/Solr) +[](https://coveralls.io/github/yawik/Solr?branch=develop) + +Requirements +------------ + +* running [YAWIK](https://github.com/cross-solution/YAWIK) +* running Solr Server + + +Installation +------------ +Using composer + +``` +composer require yawik/solr +``` + +Documentation +------------- + +http://yawik.readthedocs.io/en/latest/modules/solr/index.html + + +Example +------- + +http://jobs.yawik.org + + +Licence +------- + +MIT \ No newline at end of file diff --git a/composer.json b/composer.json index bc90671..776dde0 100644 --- a/composer.json +++ b/composer.json @@ -68,7 +68,7 @@ "require": { "php": ">=7.2", "ext-solr": ">=2.4", - "zendframework/zend-progressbar": "^2.5", + "laminas/laminas-progressbar": "^2.5", "yawik/core": "^0.33.14", "yawik/cv": ">=0.32", "yawik/auth": ">=0.32", @@ -77,7 +77,8 @@ "yawik/settings": ">=0.32", "yawik/organizations": ">=0.32", "yawik/geo": ">=0.32", - "yawik/composer-plugin": ">=0.32" + "yawik/composer-plugin": ">=0.32", + "laminas/laminas-dependency-plugin": "^1.0" }, "require-dev": { "yawik/behat": ">=0.32@dev", diff --git a/composer.lock b/composer.lock deleted file mode 100644 index b46dadd..0000000 --- a/composer.lock +++ /dev/null @@ -1,8790 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "7b294442f704ed41d472944c2f012207", - "packages": [ - { - "name": "alcaeus/mongo-php-adapter", - "version": "1.1.11", - "source": { - "type": "git", - "url": "https://github.com/alcaeus/mongo-php-adapter.git", - "reference": "43b6add94c8b4cb9890d662cba4c0defde733dcf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/alcaeus/mongo-php-adapter/zipball/43b6add94c8b4cb9890d662cba4c0defde733dcf", - "reference": "43b6add94c8b4cb9890d662cba4c0defde733dcf", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-hash": "*", - "ext-mongodb": "^1.2.0", - "mongodb/mongodb": "^1.0.1", - "php": "^5.6 || ^7.0" - }, - "provide": { - "ext-mongo": "1.6.14" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.0 || ^7.0", - "squizlabs/php_codesniffer": "^3.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, - "autoload": { - "psr-0": { - "Mongo": "lib/Mongo" - }, - "psr-4": { - "Alcaeus\\MongoDbAdapter\\": "lib/Alcaeus/MongoDbAdapter" - }, - "files": [ - "lib/Mongo/functions.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "alcaeus", - "email": "alcaeus@alcaeus.org" - }, - { - "name": "Olivier Lechevalier", - "email": "olivier.lechevalier@gmail.com" - } - ], - "description": "Adapter to provide ext-mongo interface on top of mongo-php-libary", - "keywords": [ - "database", - "mongodb" - ], - "time": "2019-11-11T20:47:32+00:00" - }, - { - "name": "container-interop/container-interop", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/container-interop/container-interop.git", - "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8", - "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8", - "shasum": "" - }, - "require": { - "psr/container": "^1.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Interop\\Container\\": "src/Interop/Container/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Promoting the interoperability of container objects (DIC, SL, etc.)", - "homepage": "https://github.com/container-interop/container-interop", - "abandoned": "psr/container", - "time": "2017-02-14T19:40:03+00:00" - }, - { - "name": "doctrine/annotations", - "version": "v1.8.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/annotations.git", - "reference": "904dca4eb10715b92569fbcd79e201d5c349b6bc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/904dca4eb10715b92569fbcd79e201d5c349b6bc", - "reference": "904dca4eb10715b92569fbcd79e201d5c349b6bc", - "shasum": "" - }, - "require": { - "doctrine/lexer": "1.*", - "php": "^7.1" - }, - "require-dev": { - "doctrine/cache": "1.*", - "phpunit/phpunit": "^7.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.7.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Docblock Annotations Parser", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "annotations", - "docblock", - "parser" - ], - "time": "2019-10-01T18:55:10+00:00" - }, - { - "name": "doctrine/cache", - "version": "1.10.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/cache.git", - "reference": "382e7f4db9a12dc6c19431743a2b096041bcdd62" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/382e7f4db9a12dc6c19431743a2b096041bcdd62", - "reference": "382e7f4db9a12dc6c19431743a2b096041bcdd62", - "shasum": "" - }, - "require": { - "php": "~7.1" - }, - "conflict": { - "doctrine/common": ">2.2,<2.4" - }, - "require-dev": { - "alcaeus/mongo-php-adapter": "^1.1", - "doctrine/coding-standard": "^6.0", - "mongodb/mongodb": "^1.1", - "phpunit/phpunit": "^7.0", - "predis/predis": "~1.0" - }, - "suggest": { - "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.9.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", - "homepage": "https://www.doctrine-project.org/projects/cache.html", - "keywords": [ - "abstraction", - "apcu", - "cache", - "caching", - "couchdb", - "memcached", - "php", - "redis", - "xcache" - ], - "time": "2019-11-29T15:36:20+00:00" - }, - { - "name": "doctrine/collections", - "version": "1.6.4", - "source": { - "type": "git", - "url": "https://github.com/doctrine/collections.git", - "reference": "6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7", - "reference": "6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7", - "shasum": "" - }, - "require": { - "php": "^7.1.3" - }, - "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpstan/phpstan-shim": "^0.9.2", - "phpunit/phpunit": "^7.0", - "vimeo/psalm": "^3.2.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.6.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.", - "homepage": "https://www.doctrine-project.org/projects/collections.html", - "keywords": [ - "array", - "collections", - "iterators", - "php" - ], - "time": "2019-11-13T13:07:11+00:00" - }, - { - "name": "doctrine/common", - "version": "2.12.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/common.git", - "reference": "2053eafdf60c2172ee1373d1b9289ba1db7f1fc6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/2053eafdf60c2172ee1373d1b9289ba1db7f1fc6", - "reference": "2053eafdf60c2172ee1373d1b9289ba1db7f1fc6", - "shasum": "" - }, - "require": { - "doctrine/annotations": "^1.0", - "doctrine/cache": "^1.0", - "doctrine/collections": "^1.0", - "doctrine/event-manager": "^1.0", - "doctrine/inflector": "^1.0", - "doctrine/lexer": "^1.0", - "doctrine/persistence": "^1.1", - "doctrine/reflection": "^1.0", - "php": "^7.1" - }, - "require-dev": { - "doctrine/coding-standard": "^1.0", - "phpstan/phpstan": "^0.11", - "phpstan/phpstan-phpunit": "^0.11", - "phpunit/phpunit": "^7.0", - "squizlabs/php_codesniffer": "^3.0", - "symfony/phpunit-bridge": "^4.0.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.11.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, persistence interfaces, proxies, event system and much more.", - "homepage": "https://www.doctrine-project.org/projects/common.html", - "keywords": [ - "common", - "doctrine", - "php" - ], - "time": "2020-01-10T15:49:25+00:00" - }, - { - "name": "doctrine/doctrine-module", - "version": "2.1.10", - "source": { - "type": "git", - "url": "https://github.com/doctrine/DoctrineModule.git", - "reference": "2b961e58eb911bfe1e99a6e9a69087e05a24201c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineModule/zipball/2b961e58eb911bfe1e99a6e9a69087e05a24201c", - "reference": "2b961e58eb911bfe1e99a6e9a69087e05a24201c", - "shasum": "" - }, - "require": { - "doctrine/cache": "^1.7", - "doctrine/common": "^2.8", - "php": "^7.1", - "symfony/console": "^3.3 || ^4.0 || ^5.0", - "zendframework/zend-authentication": "^2.5.3", - "zendframework/zend-cache": "^2.7.1", - "zendframework/zend-form": "^2.11", - "zendframework/zend-hydrator": "^2.3", - "zendframework/zend-mvc": "^3.1", - "zendframework/zend-paginator": "^2.8", - "zendframework/zend-servicemanager": "^3.3", - "zendframework/zend-stdlib": "^3.1", - "zendframework/zend-validator": "^2.10" - }, - "require-dev": { - "phpunit/phpunit": "^7.5.2", - "predis/predis": "^1.1", - "squizlabs/php_codesniffer": "^2.7", - "zendframework/zend-i18n": "^2.7", - "zendframework/zend-log": "^2.9", - "zendframework/zend-modulemanager": "^2.8", - "zendframework/zend-mvc-console": "^1.1.11", - "zendframework/zend-serializer": "^2.8", - "zendframework/zend-session": "^2.8", - "zendframework/zend-test": "^3.1.1", - "zendframework/zend-version": "^2.5.1" - }, - "suggest": { - "doctrine/data-fixtures": "Data Fixtures if you want to generate test data or bootstrap data for your deployments", - "zendframework/zend-mvc-console": "^1.1.11 if you want to use the ZF3 console libraries" - }, - "bin": [ - "bin/doctrine-module" - ], - "type": "library", - "extra": { - "zf": { - "config-provider": "DoctrineModule\\ConfigProvider", - "module": "DoctrineModule" - }, - "branch-alias": { - "dev-1.2-dev": "1.2-dev", - "dev-2.0-dev": "2.0-dev", - "dev-master": "1.2-dev", - "dev-develop": "2.0-dev" - } - }, - "autoload": { - "psr-0": { - "DoctrineModule\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kyle Spraggs", - "email": "theman@spiffyjr.me", - "homepage": "http://www.spiffyjr.me/" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://marco-pivetta.com/" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@hotmail.com" - }, - { - "name": "Michaël Gallego", - "email": "mic.gallego@gmail.com", - "homepage": "http://www.michaelgallego.fr" - } - ], - "description": "Zend Framework Module that provides Doctrine basic functionality required for ORM and ODM modules", - "homepage": "http://www.doctrine-project.org/", - "keywords": [ - "doctrine", - "module", - "zf" - ], - "time": "2019-11-23T21:33:35+00:00" - }, - { - "name": "doctrine/doctrine-mongo-odm-module", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/DoctrineMongoODMModule.git", - "reference": "45857f034cc55554236a5b8cbc7626b89a69a01d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineMongoODMModule/zipball/45857f034cc55554236a5b8cbc7626b89a69a01d", - "reference": "45857f034cc55554236a5b8cbc7626b89a69a01d", - "shasum": "" - }, - "require": { - "doctrine/doctrine-module": "^1.2 || ^2.1.7", - "doctrine/mongodb-odm": "^1.1", - "php": "^7.1", - "zendframework/zend-hydrator": "^2.2", - "zendframework/zend-mvc": "^2.7.15 || ^3.0.1", - "zendframework/zend-servicemanager": "^2.7.6 || ^3.1", - "zendframework/zend-stdlib": "^3.2.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.5", - "squizlabs/php_codesniffer": "^3.0.0", - "zendframework/zend-console": "^2.6", - "zendframework/zend-i18n": "^2.7.3", - "zendframework/zend-log": "^2.9", - "zendframework/zend-modulemanager": "^2.7.2", - "zendframework/zend-mvc-console": "^1.1.8", - "zendframework/zend-serializer": "^2.8", - "zendframework/zend-session": "^2.8.5", - "zendframework/zend-view": "^2.8.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - }, - "zf": { - "module": "DoctrineMongoODMModule" - } - }, - "autoload": { - "psr-4": { - "DoctrineMongoODMModule\\": "src/DoctrineMongoODMModule/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@hotmail.com" - }, - { - "name": "Kyle Spraggs", - "email": "theman@spiffyjr.me" - }, - { - "name": "Tim Roediger", - "email": "superdweebie@gmail.com" - }, - { - "name": "Maciej Malarz", - "email": "malarzm@gmail.com" - }, - { - "name": "Andreas Braun", - "email": "alcaeus@alcaeus.org" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - }, - { - "name": "Evan Coury", - "email": "me@evancoury.com" - } - ], - "description": "Zend Framework Module that provides Doctrine MongoDB ODM functionality", - "homepage": "http://www.doctrine-project.org/", - "keywords": [ - "doctrine", - "module", - "mongodb", - "odm", - "zf" - ], - "time": "2019-02-15T10:16:41+00:00" - }, - { - "name": "doctrine/event-manager", - "version": "1.1.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/event-manager.git", - "reference": "629572819973f13486371cb611386eb17851e85c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/629572819973f13486371cb611386eb17851e85c", - "reference": "629572819973f13486371cb611386eb17851e85c", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "conflict": { - "doctrine/common": "<2.9@dev" - }, - "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpunit/phpunit": "^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", - "homepage": "https://www.doctrine-project.org/projects/event-manager.html", - "keywords": [ - "event", - "event dispatcher", - "event manager", - "event system", - "events" - ], - "time": "2019-11-10T09:48:07+00:00" - }, - { - "name": "doctrine/inflector", - "version": "1.3.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/ec3a55242203ffa6a4b27c58176da97ff0a7aec1", - "reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^6.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Common String Manipulations with regard to casing and singular/plural rules.", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "inflection", - "pluralize", - "singularize", - "string" - ], - "time": "2019-10-30T19:59:35+00:00" - }, - { - "name": "doctrine/instantiator", - "version": "1.3.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "ae466f726242e637cebdd526a7d991b9433bacf1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", - "reference": "ae466f726242e637cebdd526a7d991b9433bacf1", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "doctrine/coding-standard": "^6.0", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^0.13", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-shim": "^0.11", - "phpunit/phpunit": "^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "time": "2019-10-21T16:45:58+00:00" - }, - { - "name": "doctrine/lexer", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", - "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", - "shasum": "" - }, - "require": { - "php": "^7.2" - }, - "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpstan/phpstan": "^0.11.8", - "phpunit/phpunit": "^8.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "https://www.doctrine-project.org/projects/lexer.html", - "keywords": [ - "annotations", - "docblock", - "lexer", - "parser", - "php" - ], - "time": "2019-10-30T14:39:59+00:00" - }, - { - "name": "doctrine/mongodb", - "version": "1.6.4", - "source": { - "type": "git", - "url": "https://github.com/doctrine/mongodb.git", - "reference": "46b6316ae42df121df1b870b2cd4342ce7eeac80" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/mongodb/zipball/46b6316ae42df121df1b870b2cd4342ce7eeac80", - "reference": "46b6316ae42df121df1b870b2cd4342ce7eeac80", - "shasum": "" - }, - "require": { - "doctrine/common": "^2.2", - "ext-mongo": "^1.6.7", - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "jmikola/geojson": "^1.0", - "phpunit/phpunit": "^5.7 || ^6.0" - }, - "suggest": { - "alcaeus/mongo-php-adapter": "Allows usage of PHP 7", - "jmikola/geojson": "Support GeoJSON geometry objects in 2dsphere queries" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.6.x-dev" - } - }, - "autoload": { - "psr-0": { - "Doctrine\\MongoDB": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jonathan H. Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Jeremy Mikola", - "email": "jmikola@gmail.com" - }, - { - "name": "Bulat Shakirzyanov", - "email": "mallluhuct@gmail.com" - }, - { - "name": "Kris Wallsmith", - "email": "kris.wallsmith@gmail.com" - }, - { - "name": "Maciej Malarz", - "email": "malarzm@gmail.com" - }, - { - "name": "Andreas Braun", - "email": "alcaeus@alcaeus.org" - } - ], - "description": "Doctrine MongoDB Abstraction Layer", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "database", - "mongodb", - "persistence" - ], - "time": "2019-07-11T05:36:15+00:00" - }, - { - "name": "doctrine/mongodb-odm", - "version": "1.3.6", - "source": { - "type": "git", - "url": "https://github.com/doctrine/mongodb-odm.git", - "reference": "11243e32159145d8c9414dfc0e76c1a645ff6576" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/mongodb-odm/zipball/11243e32159145d8c9414dfc0e76c1a645ff6576", - "reference": "11243e32159145d8c9414dfc0e76c1a645ff6576", - "shasum": "" - }, - "require": { - "doctrine/annotations": "~1.2", - "doctrine/cache": "~1.0", - "doctrine/collections": "~1.1", - "doctrine/common": "^2.5.0", - "doctrine/inflector": "~1.0", - "doctrine/instantiator": "^1.0.1", - "doctrine/mongodb": "^1.6.4", - "php": "^5.6 || ^7.0", - "symfony/console": "~2.3|~3.0|^4.0|^5.0" - }, - "require-dev": { - "phpbench/phpbench": "^0.13.0", - "phpunit/phpunit": "^5.7.21|^7.5", - "symfony/yaml": "~2.3|~3.0|^4.0" - }, - "suggest": { - "alcaeus/mongo-php-adapter": "Allows usage of PHP 7", - "symfony/yaml": "Enables the YAML metadata mapping driver" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "psr-0": { - "Doctrine\\ODM\\MongoDB": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bulat Shakirzyanov", - "email": "mallluhuct@gmail.com" - }, - { - "name": "Kris Wallsmith", - "email": "kris.wallsmith@gmail.com" - }, - { - "name": "Jonathan H. Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Jeremy Mikola", - "email": "jmikola@gmail.com" - }, - { - "name": "Maciej Malarz", - "email": "malarzm@gmail.com" - }, - { - "name": "Andreas Braun", - "email": "alcaeus@alcaeus.org" - } - ], - "description": "Doctrine MongoDB Object Document Mapper", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "database", - "mongodb", - "odm", - "persistence" - ], - "time": "2019-12-26T13:21:26+00:00" - }, - { - "name": "doctrine/persistence", - "version": "1.3.6", - "source": { - "type": "git", - "url": "https://github.com/doctrine/persistence.git", - "reference": "5dd3ac5eebef2d0b074daa4440bb18f93132dee4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/5dd3ac5eebef2d0b074daa4440bb18f93132dee4", - "reference": "5dd3ac5eebef2d0b074daa4440bb18f93132dee4", - "shasum": "" - }, - "require": { - "doctrine/annotations": "^1.0", - "doctrine/cache": "^1.0", - "doctrine/collections": "^1.0", - "doctrine/event-manager": "^1.0", - "doctrine/reflection": "^1.1", - "php": "^7.1" - }, - "conflict": { - "doctrine/common": "<2.10@dev" - }, - "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpstan/phpstan": "^0.11", - "phpunit/phpunit": "^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common", - "Doctrine\\Persistence\\": "lib/Doctrine/Persistence" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.", - "homepage": "https://doctrine-project.org/projects/persistence.html", - "keywords": [ - "mapper", - "object", - "odm", - "orm", - "persistence" - ], - "time": "2020-01-16T22:06:23+00:00" - }, - { - "name": "doctrine/reflection", - "version": "v1.1.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/reflection.git", - "reference": "bc420ead87fdfe08c03ecc3549db603a45b06d4c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/reflection/zipball/bc420ead87fdfe08c03ecc3549db603a45b06d4c", - "reference": "bc420ead87fdfe08c03ecc3549db603a45b06d4c", - "shasum": "" - }, - "require": { - "doctrine/annotations": "^1.0", - "ext-tokenizer": "*", - "php": "^7.1" - }, - "conflict": { - "doctrine/common": "<2.9" - }, - "require-dev": { - "doctrine/coding-standard": "^5.0", - "doctrine/common": "^2.10", - "phpstan/phpstan": "^0.11.0", - "phpstan/phpstan-phpunit": "^0.11.0", - "phpunit/phpunit": "^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "The Doctrine Reflection project is a simple library used by the various Doctrine projects which adds some additional functionality on top of the reflection functionality that comes with PHP. It allows you to get the reflection information about classes, methods and properties statically.", - "homepage": "https://www.doctrine-project.org/projects/reflection.html", - "keywords": [ - "reflection", - "static" - ], - "time": "2020-01-08T19:53:19+00:00" - }, - { - "name": "ezyang/htmlpurifier", - "version": "v4.12.0", - "source": { - "type": "git", - "url": "https://github.com/ezyang/htmlpurifier.git", - "reference": "a617e55bc62a87eec73bd456d146d134ad716f03" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/a617e55bc62a87eec73bd456d146d134ad716f03", - "reference": "a617e55bc62a87eec73bd456d146d134ad716f03", - "shasum": "" - }, - "require": { - "php": ">=5.2" - }, - "require-dev": { - "simpletest/simpletest": "dev-master#72de02a7b80c6bb8864ef9bf66d41d2f58f826bd" - }, - "type": "library", - "autoload": { - "psr-0": { - "HTMLPurifier": "library/" - }, - "files": [ - "library/HTMLPurifier.composer.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-2.1-or-later" - ], - "authors": [ - { - "name": "Edward Z. Yang", - "email": "admin@htmlpurifier.org", - "homepage": "http://ezyang.com" - } - ], - "description": "Standards compliant HTML filter written in PHP", - "homepage": "http://htmlpurifier.org/", - "keywords": [ - "html" - ], - "time": "2019-10-28T03:44:26+00:00" - }, - { - "name": "facebook/graph-sdk", - "version": "5.7.0", - "source": { - "type": "git", - "url": "https://github.com/facebook/php-graph-sdk.git", - "reference": "2d8250638b33d73e7a87add65f47fabf91f8ad9b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/facebook/php-graph-sdk/zipball/2d8250638b33d73e7a87add65f47fabf91f8ad9b", - "reference": "2d8250638b33d73e7a87add65f47fabf91f8ad9b", - "shasum": "" - }, - "require": { - "php": "^5.4|^7.0" - }, - "require-dev": { - "guzzlehttp/guzzle": "~5.0", - "mockery/mockery": "~0.8", - "phpunit/phpunit": "~4.0" - }, - "suggest": { - "guzzlehttp/guzzle": "Allows for implementation of the Guzzle HTTP client", - "paragonie/random_compat": "Provides a better CSPRNG option in PHP 5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "Facebook\\": "src/Facebook/" - }, - "files": [ - "src/Facebook/polyfills.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Facebook Platform" - ], - "authors": [ - { - "name": "Facebook", - "homepage": "https://github.com/facebook/php-graph-sdk/contributors" - } - ], - "description": "Facebook SDK for PHP", - "homepage": "https://github.com/facebook/php-graph-sdk", - "keywords": [ - "facebook", - "sdk" - ], - "time": "2018-12-11T22:56:31+00:00" - }, - { - "name": "hybridauth/hybridauth", - "version": "v2.17.0", - "source": { - "type": "git", - "url": "https://github.com/hybridauth/hybridauth.git", - "reference": "06909cd8cbc1201f01db8a8d36bc8c06dd27223d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hybridauth/hybridauth/zipball/06909cd8cbc1201f01db8a8d36bc8c06dd27223d", - "reference": "06909cd8cbc1201f01db8a8d36bc8c06dd27223d", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "facebook/graph-sdk": "^5.4", - "paypal/rest-api-sdk-php": "*", - "php": ">=5.2.0" - }, - "require-dev": { - "squizlabs/php_codesniffer": "2.*" - }, - "type": "library", - "autoload": { - "psr-0": { - "Hybrid": "hybridauth/" - }, - "classmap": [ - "hybridauth/Hybrid" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "(MIT or GPL-3.0+)" - ], - "authors": [ - { - "name": "Miled", - "email": "hybridauth@gmail.com" - } - ], - "description": "Open source social sign on PHP library.", - "homepage": "http://hybridauth.sourceforge.net", - "keywords": [ - "OpenId", - "facebook", - "google", - "hybridauth", - "login", - "oauth", - "social", - "twitter", - "yahoo" - ], - "time": "2019-12-13T11:20:07+00:00" - }, - { - "name": "imagine/imagine", - "version": "1.2.3", - "source": { - "type": "git", - "url": "https://github.com/avalanche123/Imagine.git", - "reference": "cb2361e5bb4410b681462d8e4f912bc5dabf84ab" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/avalanche123/Imagine/zipball/cb2361e5bb4410b681462d8e4f912bc5dabf84ab", - "reference": "cb2361e5bb4410b681462d8e4f912bc5dabf84ab", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "2.2.*", - "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5 || ^8.4" - }, - "suggest": { - "ext-gd": "to use the GD implementation", - "ext-gmagick": "to use the Gmagick implementation", - "ext-imagick": "to use the Imagick implementation" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-develop": "0.7-dev" - } - }, - "autoload": { - "psr-4": { - "Imagine\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bulat Shakirzyanov", - "email": "mallluhuct@gmail.com", - "homepage": "http://avalanche123.com" - } - ], - "description": "Image processing for PHP 5.3", - "homepage": "http://imagine.readthedocs.org/", - "keywords": [ - "drawing", - "graphics", - "image manipulation", - "image processing" - ], - "time": "2019-12-04T09:55:33+00:00" - }, - { - "name": "jmikola/geojson", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/jmikola/geojson.git", - "reference": "6ec3016cc0215667b7775f6ead7bd0337ad66eee" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/jmikola/geojson/zipball/6ec3016cc0215667b7775f6ead7bd0337ad66eee", - "reference": "6ec3016cc0215667b7775f6ead7bd0337ad66eee", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~3.7" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-0": { - "GeoJson\\": "src/" - }, - "classmap": [ - "stubs/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jeremy Mikola", - "email": "jmikola@gmail.com" - } - ], - "description": "GeoJSON implementation for PHP", - "homepage": "https://github.com/jmikola/geojson", - "keywords": [ - "geo", - "geojson", - "geospatial" - ], - "time": "2015-09-27T15:35:21+00:00" - }, - { - "name": "mongodb/mongodb", - "version": "1.4.3", - "source": { - "type": "git", - "url": "https://github.com/mongodb/mongo-php-library.git", - "reference": "18fca8cc8d0c2cc07f76605760d20632bb3dab96" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/mongodb/mongo-php-library/zipball/18fca8cc8d0c2cc07f76605760d20632bb3dab96", - "reference": "18fca8cc8d0c2cc07f76605760d20632bb3dab96", - "shasum": "" - }, - "require": { - "ext-hash": "*", - "ext-json": "*", - "ext-mongodb": "^1.5.0", - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.36 || ^6.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "MongoDB\\": "src/" - }, - "files": [ - "src/functions.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Jeremy Mikola", - "email": "jmikola@gmail.com" - }, - { - "name": "Derick Rethans", - "email": "github@derickrethans.nl" - }, - { - "name": "Katherine Walker", - "email": "katherine.walker@mongodb.com" - } - ], - "description": "MongoDB driver library", - "homepage": "https://jira.mongodb.org/browse/PHPLIB", - "keywords": [ - "database", - "driver", - "mongodb", - "persistence" - ], - "time": "2019-07-02T18:04:14+00:00" - }, - { - "name": "mpdf/mpdf", - "version": "v5.7.4", - "source": { - "type": "git", - "url": "https://github.com/mpdf/mpdf.git", - "reference": "f9a374c7ea975ce8c795cec4dfd17ef55addac9c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/mpdf/mpdf/zipball/f9a374c7ea975ce8c795cec4dfd17ef55addac9c", - "reference": "f9a374c7ea975ce8c795cec4dfd17ef55addac9c", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": ">=4.3.10" - }, - "type": "library", - "autoload": { - "classmap": [ - "mpdf.php", - "classes" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-1.0+" - ], - "authors": [ - { - "name": "Ian Back" - } - ], - "description": "A PHP class to generate PDF files from HTML with Unicode/UTF-8 and CJK support", - "homepage": "http://www.mpdf1.com/mpdf/index.php", - "keywords": [ - "pdf", - "php", - "utf-8" - ], - "time": "2014-12-14T18:32:11+00:00" - }, - { - "name": "paragonie/random_compat", - "version": "v9.99.99", - "source": { - "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", - "shasum": "" - }, - "require": { - "php": "^7" - }, - "require-dev": { - "phpunit/phpunit": "4.*|5.*", - "vimeo/psalm": "^1" - }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." - }, - "type": "library", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } - ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", - "keywords": [ - "csprng", - "polyfill", - "pseudorandom", - "random" - ], - "time": "2018-07-02T15:55:56+00:00" - }, - { - "name": "paypal/rest-api-sdk-php", - "version": "1.14.0", - "source": { - "type": "git", - "url": "https://github.com/paypal/PayPal-PHP-SDK.git", - "reference": "72e2f2466975bf128a31e02b15110180f059fc04" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paypal/PayPal-PHP-SDK/zipball/72e2f2466975bf128a31e02b15110180f059fc04", - "reference": "72e2f2466975bf128a31e02b15110180f059fc04", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "ext-json": "*", - "php": ">=5.3.0", - "psr/log": "^1.0.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35" - }, - "type": "library", - "autoload": { - "psr-0": { - "PayPal": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "PayPal", - "homepage": "https://github.com/paypal/rest-api-sdk-php/contributors" - } - ], - "description": "PayPal's PHP SDK for REST APIs", - "homepage": "http://paypal.github.io/PayPal-PHP-SDK/", - "keywords": [ - "payments", - "paypal", - "rest", - "sdk" - ], - "time": "2019-01-04T20:04:25+00:00" - }, - { - "name": "psr/cache", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/cache.git", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Cache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for caching libraries", - "keywords": [ - "cache", - "psr", - "psr-6" - ], - "time": "2016-08-06T20:24:11+00:00" - }, - { - "name": "psr/container", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "time": "2017-02-14T16:28:37+00:00" - }, - { - "name": "psr/log", - "version": "1.1.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "time": "2019-11-01T11:05:21+00:00" - }, - { - "name": "psr/simple-cache", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/simple-cache.git", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\SimpleCache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interfaces for simple caching", - "keywords": [ - "cache", - "caching", - "psr", - "psr-16", - "simple-cache" - ], - "time": "2017-10-23T01:57:42+00:00" - }, - { - "name": "sebastian/version", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-10-03T07:35:21+00:00" - }, - { - "name": "slm/queue", - "version": "1.0.4", - "source": { - "type": "git", - "url": "https://github.com/JouwWeb/SlmQueue.git", - "reference": "6f0d92a04ef3dfa088fac9a3f9638c554968fe77" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/JouwWeb/SlmQueue/zipball/6f0d92a04ef3dfa088fac9a3f9638c554968fe77", - "reference": "6f0d92a04ef3dfa088fac9a3f9638c554968fe77", - "shasum": "" - }, - "require": { - "php": ">=5.5", - "zendframework/zend-eventmanager": "^2.6 || ^3.0", - "zendframework/zend-servicemanager": "^2.7 || ^3.0", - "zendframework/zend-stdlib": "^2.7 || ^3.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8", - "squizlabs/php_codesniffer": "^2.0", - "zendframework/zend-config": "^2.6", - "zendframework/zend-console": "^2.6", - "zendframework/zend-i18n": "^2.6", - "zendframework/zend-log": "^2.7", - "zendframework/zend-modulemanager": "^2.5", - "zendframework/zend-mvc": "^2.5", - "zendframework/zend-serializer": "^2.6", - "zendframework/zend-view": "^2.7" - }, - "suggest": { - "slm/queue-beanstalkd": "If you are using Beanstalk", - "slm/queue-doctrine": "If you are using Doctrine ORM", - "slm/queue-sqs": "If you are using Amazon SQS" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - }, - "zf": { - "module": "SlmQueue", - "config-provider": "SlmQueue\\ConfigProvider" - } - }, - "autoload": { - "psr-4": { - "SlmQueue\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jurian Sluiman", - "email": "jurian@juriansluiman.nl", - "homepage": "http://juriansluiman.nl" - }, - { - "name": "Michaël Gallego", - "email": "mic.gallego@gmail.com", - "homepage": "http://www.michaelgallego.fr" - }, - { - "name": "Bas Kamer", - "email": "baskamer@gmail.com" - }, - { - "name": "Roel van Duijnhoven", - "email": "roel.duijnhoven@gmail.com", - "homepage": "http://www.roelvanduijnhoven.nl" - } - ], - "description": "Zend Framework module that integrates with various queue management systems", - "homepage": "https://github.com/juriansluiman/SlmQueue", - "keywords": [ - "ZendFramework", - "expressive", - "job", - "queue", - "zf2", - "zf3" - ], - "time": "2019-03-21T12:39:36+00:00" - }, - { - "name": "symfony/console", - "version": "v4.4.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "f512001679f37e6a042b51897ed24a2f05eba656" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/f512001679f37e6a042b51897ed24a2f05eba656", - "reference": "f512001679f37e6a042b51897ed24a2f05eba656", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.8", - "symfony/service-contracts": "^1.1|^2" - }, - "conflict": { - "symfony/dependency-injection": "<3.4", - "symfony/event-dispatcher": "<4.3|>=5", - "symfony/lock": "<4.4", - "symfony/process": "<3.3" - }, - "provide": { - "psr/log-implementation": "1.0" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/event-dispatcher": "^4.3", - "symfony/lock": "^4.4|^5.0", - "symfony/process": "^3.4|^4.0|^5.0", - "symfony/var-dumper": "^4.3|^5.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Console Component", - "homepage": "https://symfony.com", - "time": "2020-01-25T12:44:29+00:00" - }, - { - "name": "symfony/dotenv", - "version": "v4.4.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/dotenv.git", - "reference": "b74a1638f53e3c65e4bbfc2a03c23fdc400fd243" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/b74a1638f53e3c65e4bbfc2a03c23fdc400fd243", - "reference": "b74a1638f53e3c65e4bbfc2a03c23fdc400fd243", - "shasum": "" - }, - "require": { - "php": "^7.1.3" - }, - "require-dev": { - "symfony/process": "^3.4.2|^4.0|^5.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Dotenv\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Registers environment variables from a .env file", - "homepage": "https://symfony.com", - "keywords": [ - "dotenv", - "env", - "environment" - ], - "time": "2020-01-08T17:29:02+00:00" - }, - { - "name": "symfony/filesystem", - "version": "v4.4.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "266c9540b475f26122b61ef8b23dd9198f5d1cfd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/266c9540b475f26122b61ef8b23dd9198f5d1cfd", - "reference": "266c9540b475f26122b61ef8b23dd9198f5d1cfd", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "symfony/polyfill-ctype": "~1.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Filesystem Component", - "homepage": "https://symfony.com", - "time": "2020-01-21T08:20:44+00:00" - }, - { - "name": "symfony/finder", - "version": "v4.4.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "3a50be43515590faf812fbd7708200aabc327ec3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/3a50be43515590faf812fbd7708200aabc327ec3", - "reference": "3a50be43515590faf812fbd7708200aabc327ec3", - "shasum": "" - }, - "require": { - "php": "^7.1.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Finder Component", - "homepage": "https://symfony.com", - "time": "2020-01-04T13:00:46+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.14.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", - "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.14-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "time": "2020-01-13T11:15:53+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.14.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/34094cfa9abe1f0f14f48f490772db7a775559f2", - "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.14-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "time": "2020-01-13T11:15:53+00:00" - }, - { - "name": "symfony/polyfill-php73", - "version": "v1.14.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "5e66a0fa1070bf46bec4bea7962d285108edd675" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/5e66a0fa1070bf46bec4bea7962d285108edd675", - "reference": "5e66a0fa1070bf46bec4bea7962d285108edd675", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.14-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "time": "2020-01-13T11:15:53+00:00" - }, - { - "name": "symfony/process", - "version": "v4.4.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "f5697ab4cb14a5deed7473819e63141bf5352c36" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/f5697ab4cb14a5deed7473819e63141bf5352c36", - "reference": "f5697ab4cb14a5deed7473819e63141bf5352c36", - "shasum": "" - }, - "require": { - "php": "^7.1.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Process Component", - "homepage": "https://symfony.com", - "time": "2020-01-09T09:50:08+00:00" - }, - { - "name": "symfony/service-contracts", - "version": "v2.0.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "144c5e51266b281231e947b51223ba14acf1a749" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/144c5e51266b281231e947b51223ba14acf1a749", - "reference": "144c5e51266b281231e947b51223ba14acf1a749", - "shasum": "" - }, - "require": { - "php": "^7.2.5", - "psr/container": "^1.0" - }, - "suggest": { - "symfony/service-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Service\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "time": "2019-11-18T17:27:11+00:00" - }, - { - "name": "tracy/tracy", - "version": "v2.7.2", - "source": { - "type": "git", - "url": "https://github.com/nette/tracy.git", - "reference": "d28ebdf7ab8d88f231310aef1e8cce965ea0b2ca" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/tracy/zipball/d28ebdf7ab8d88f231310aef1e8cce965ea0b2ca", - "reference": "d28ebdf7ab8d88f231310aef1e8cce965ea0b2ca", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-session": "*", - "php": ">=7.1" - }, - "conflict": { - "nette/di": "<3.0" - }, - "require-dev": { - "nette/di": "^3.0", - "nette/tester": "^2.2", - "nette/utils": "^3.0", - "phpstan/phpstan": "^0.12", - "psr/log": "^1.0" - }, - "suggest": { - "https://nette.org/donate": "Please support Tracy via a donation" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.7-dev" - } - }, - "autoload": { - "classmap": [ - "src" - ], - "files": [ - "src/Tracy/shortcuts.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "😎 Tracy: the addictive tool to ease debugging PHP code for cool developers. Friendly design, logging, profiler, advanced features like debugging AJAX calls or CLI support. You will love it.", - "homepage": "https://tracy.nette.org", - "keywords": [ - "Xdebug", - "debug", - "debugger", - "nette", - "profiler" - ], - "time": "2019-12-15T22:48:05+00:00" - }, - { - "name": "true/punycode", - "version": "v2.1.1", - "source": { - "type": "git", - "url": "https://github.com/true/php-punycode.git", - "reference": "a4d0c11a36dd7f4e7cd7096076cab6d3378a071e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/true/php-punycode/zipball/a4d0c11a36dd7f4e7cd7096076cab6d3378a071e", - "reference": "a4d0c11a36dd7f4e7cd7096076cab6d3378a071e", - "shasum": "" - }, - "require": { - "php": ">=5.3.0", - "symfony/polyfill-mbstring": "^1.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.7", - "squizlabs/php_codesniffer": "~2.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "TrueBV\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Renan Gonçalves", - "email": "renan.saddam@gmail.com" - } - ], - "description": "A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)", - "homepage": "https://github.com/true/php-punycode", - "keywords": [ - "idna", - "punycode" - ], - "time": "2016-11-16T10:37:54+00:00" - }, - { - "name": "yawik/applications", - "version": "0.33.22", - "source": { - "type": "git", - "url": "https://github.com/yawik/applications.git", - "reference": "2a11056a13497d27c19cb24d4f9a656e0b1c665f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/yawik/applications/zipball/2a11056a13497d27c19cb24d4f9a656e0b1c665f", - "reference": "2a11056a13497d27c19cb24d4f9a656e0b1c665f", - "shasum": "" - }, - "require": { - "yawik/core": ">=0.33@dev" - }, - "type": "yawik-module", - "extra": { - "branch-alias": { - "dev-develop": "0.33-dev" - }, - "zf": { - "module": "Applications" - } - }, - "autoload": { - "psr-4": { - "Applications\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mathias Gelhausen", - "email": "gelhausen@cross-solution.de" - }, - { - "name": "Carsten Bleek", - "email": "bleek@cross-solution.de" - }, - { - "name": "Anthonius Munthi", - "email": "me@itstoni.com" - } - ], - "description": "This package provide an Applications modules for yawik.", - "keywords": [ - "module", - "yawik", - "zf" - ], - "time": "2019-10-16T16:36:14+00:00" - }, - { - "name": "yawik/auth", - "version": "0.33.22", - "source": { - "type": "git", - "url": "https://github.com/yawik/auth.git", - "reference": "c5b1954b80c3f38d34f2fc829795e39c97e5ff42" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/yawik/auth/zipball/c5b1954b80c3f38d34f2fc829795e39c97e5ff42", - "reference": "c5b1954b80c3f38d34f2fc829795e39c97e5ff42", - "shasum": "" - }, - "require": { - "hybridauth/hybridauth": "^2.10", - "yawik/core": ">=0.33@dev" - }, - "type": "yawik-module", - "extra": { - "branch-alias": { - "dev-develop": "0.33-dev" - }, - "zf": { - "module": "Auth" - } - }, - "autoload": { - "psr-4": { - "Auth\\": "src/Auth/", - "Acl\\": "src/Acl/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mathias Gelhausen", - "email": "gelhausen@cross-solution.de" - }, - { - "name": "Carsten Bleek", - "email": "bleek@cross-solution.de" - }, - { - "name": "Anthonius Munthi", - "email": "me@itstoni.com" - } - ], - "description": "This package provide an Auth modules for Yawik.", - "keywords": [ - "module", - "yawik", - "zf" - ], - "time": "2019-10-16T16:36:14+00:00" - }, - { - "name": "yawik/composer-plugin", - "version": "v1.0.0", - "source": { - "type": "git", - "url": "https://github.com/yawik/composer-plugin.git", - "reference": "d3a45d2ab342fc0eb21e1126e8637fb7752464e4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/yawik/composer-plugin/zipball/d3a45d2ab342fc0eb21e1126e8637fb7752464e4", - "reference": "d3a45d2ab342fc0eb21e1126e8637fb7752464e4", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.1", - "php": ">=5.6", - "psr/log": "^1.0", - "symfony/console": "^3.4 | ^4.1", - "symfony/finder": "^3.4 | ^4.1", - "zendframework/zend-eventmanager": "^3.2" - }, - "replace": { - "yawik/composer-plugin": "self.version" - }, - "require-dev": { - "composer/composer": ">=1.0.0-alpha10", - "mikey179/vfsstream": "^1.6", - "phpunit/phpunit": "^5.7.23 || ^6.4.3", - "squizlabs/php_codesniffer": "^2.6.2", - "yawik/core": ">=0.32@dev" - }, - "type": "composer-plugin", - "extra": { - "branch-alias": { - "dev-master": "0.32-dev", - "dev-develop": "0.33-dev" - }, - "class": "Yawik\\Composer\\Plugin" - }, - "autoload": { - "psr-4": { - "Yawik\\Composer\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mathias Gelhausen", - "email": "gelhausen@cross-solution.de" - }, - { - "name": "Carsten Bleek", - "email": "bleek@cross-solution.de" - }, - { - "name": "Anthonius Munthi", - "homepage": "https://itstoni.com" - } - ], - "description": "The composer plugin for yawik application", - "time": "2018-11-24T04:11:48+00:00" - }, - { - "name": "yawik/core", - "version": "0.33.22", - "source": { - "type": "git", - "url": "https://github.com/yawik/core.git", - "reference": "3670baa35324b0d9344b82fe3bc7cc1fb5042726" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/yawik/core/zipball/3670baa35324b0d9344b82fe3bc7cc1fb5042726", - "reference": "3670baa35324b0d9344b82fe3bc7cc1fb5042726", - "shasum": "" - }, - "require": { - "alcaeus/mongo-php-adapter": "^1.0.0", - "doctrine/doctrine-mongo-odm-module": "^1.0.0", - "ext-intl": "*", - "ext-mongodb": "*", - "ezyang/htmlpurifier": "^4.12", - "hybridauth/hybridauth": "^2.10", - "imagine/imagine": "^1.0", - "jmikola/geojson": "^1.0", - "mpdf/mpdf": "5.7.*", - "php": ">=7.1", - "sebastian/version": "^2.0", - "slm/queue": "^1.0", - "symfony/console": "^3.4 | ^4.1", - "symfony/dotenv": "^3.4 | ^4.1", - "symfony/filesystem": "^3.4 | ^4.1", - "symfony/finder": "^3.4 | ^4.1", - "symfony/process": "^3.4 | ^4.1", - "tracy/tracy": "^2.4", - "zendframework/zend-authentication": "^2.5", - "zendframework/zend-cache": "^2.7", - "zendframework/zend-captcha": "^2.7", - "zendframework/zend-feed": "^2.8", - "zendframework/zend-form": "^2.10", - "zendframework/zend-i18n-resources": "^2.5", - "zendframework/zend-json": "^3.0", - "zendframework/zend-log": "^2.9", - "zendframework/zend-mail": "^2.7", - "zendframework/zend-math": "^3.0", - "zendframework/zend-mvc": "^3.0", - "zendframework/zend-mvc-console": "^1.1", - "zendframework/zend-mvc-i18n": "^1.0", - "zendframework/zend-mvc-plugins": "^1.0", - "zendframework/zend-navigation": "^2.8", - "zendframework/zend-permissions-acl": "^2.6", - "zendframework/zend-progressbar": "^2.5", - "zendframework/zend-serializer": "^2.8", - "zendframework/zend-servicemanager-di": "^1.1", - "zendframework/zend-session": "^2.7", - "zendframework/zend-view": "^2.9", - "zendframework/zendservice-recaptcha": "^3.0" - }, - "require-dev": { - "cbleek/pecl-solr-hint": "dev-master", - "mikey179/vfsstream": "^1.6", - "phpunit/phpunit": "^5.7", - "zendframework/zend-test": "^3.1" - }, - "bin": [ - "bin/yawik" - ], - "type": "yawik-module", - "extra": { - "branch-alias": { - "dev-develop": "0.33-dev" - }, - "zf": { - "module": "Core" - } - }, - "autoload": { - "psr-4": { - "Core\\": "src/" - }, - "psr-0": { - "": "test/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mathias Gelhausen", - "email": "gelhausen@cross-solution.de" - }, - { - "name": "Carsten Bleek", - "email": "bleek@cross-solution.de" - }, - { - "name": "Anthonius Munthi", - "email": "me@itstoni.com" - } - ], - "description": "This package provide a Core Module for yawik", - "keywords": [ - "module", - "yawik", - "zf3" - ], - "time": "2020-02-17T17:20:06+00:00" - }, - { - "name": "yawik/cv", - "version": "0.33.22", - "source": { - "type": "git", - "url": "https://github.com/yawik/cv.git", - "reference": "87911ca906889b20018fae52cc3ec9d9233e49dc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/yawik/cv/zipball/87911ca906889b20018fae52cc3ec9d9233e49dc", - "reference": "87911ca906889b20018fae52cc3ec9d9233e49dc", - "shasum": "" - }, - "require": { - "yawik/core": ">=0.33@dev" - }, - "type": "yawik-module", - "extra": { - "branch-alias": { - "dev-develop": "0.33-dev" - }, - "zf": { - "module": "Cv" - } - }, - "autoload": { - "psr-4": { - "Cv\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mathias Gelhausen", - "email": "gelhausen@cross-solution.de" - }, - { - "name": "Carsten Bleek", - "email": "bleek@cross-solution.de" - }, - { - "name": "Anthonius Munthi", - "email": "me@itstoni.com" - } - ], - "description": "This package provide a CV modules for yawik.", - "keywords": [ - "module", - "yawik" - ], - "time": "2019-10-16T16:36:14+00:00" - }, - { - "name": "yawik/geo", - "version": "1.1.0", - "source": { - "type": "git", - "url": "https://github.com/yawik/geo.git", - "reference": "569e6b4eb38cbf31f668bf9f00aafa61877d40f0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/yawik/geo/zipball/569e6b4eb38cbf31f668bf9f00aafa61877d40f0", - "reference": "569e6b4eb38cbf31f668bf9f00aafa61877d40f0", - "shasum": "" - }, - "require": { - "jmikola/geojson": "^1.0.0", - "yawik/core": ">=0.33@dev" - }, - "type": "yawik-module", - "extra": { - "branch-alias": { - "dev-develop": "0.33-dev" - }, - "zf": { - "module": "Geo" - } - }, - "autoload": { - "psr-4": { - "Geo\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Anthonius Munthi", - "email": "me@itstoni.com" - }, - { - "name": "Mathias Gelhausen", - "email": "gelhausen@cross-solution.de" - }, - { - "name": "Carsten Bleek", - "email": "bleek@cross-solution.de" - } - ], - "description": "This package provide a Geo modules for yawik.", - "keywords": [ - "module", - "yawik", - "zf3" - ], - "time": "2019-05-06T09:57:07+00:00" - }, - { - "name": "yawik/jobs", - "version": "0.33.22", - "source": { - "type": "git", - "url": "https://github.com/yawik/jobs.git", - "reference": "d0c4340e3058243504f343ed04091d45cfb86116" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/yawik/jobs/zipball/d0c4340e3058243504f343ed04091d45cfb86116", - "reference": "d0c4340e3058243504f343ed04091d45cfb86116", - "shasum": "" - }, - "require": { - "yawik/core": ">=0.33@dev" - }, - "type": "yawik-module", - "extra": { - "branch-alias": { - "dev-develop": "0.33-dev" - }, - "zf": { - "module": "Jobs" - } - }, - "autoload": { - "psr-4": { - "Jobs\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mathias Gelhausen", - "email": "gelhausen@cross-solution.de" - }, - { - "name": "Carsten Bleek", - "email": "bleek@cross-solution.de" - }, - { - "name": "Anthonius Munthi", - "email": "me@itstoni.com" - } - ], - "description": "This package provide a Jobs module for yawik.", - "keywords": [ - "module", - "yawik", - "zf3" - ], - "time": "2019-10-16T16:36:14+00:00" - }, - { - "name": "yawik/organizations", - "version": "0.33.22", - "source": { - "type": "git", - "url": "https://github.com/yawik/organizations.git", - "reference": "44db3091e5b7c270d0e832046627d7256175e0a6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/yawik/organizations/zipball/44db3091e5b7c270d0e832046627d7256175e0a6", - "reference": "44db3091e5b7c270d0e832046627d7256175e0a6", - "shasum": "" - }, - "require": { - "yawik/core": ">=0.33@dev" - }, - "type": "yawik-module", - "extra": { - "branch-alias": { - "dev-develop": "0.33-dev" - }, - "zf": { - "module": "Organizations" - } - }, - "autoload": { - "psr-4": { - "Organizations\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mathias Gelhausen", - "email": "gelhausen@cross-solution.de" - }, - { - "name": "Carsten Bleek", - "email": "bleek@cross-solution.de" - }, - { - "name": "Anthonius Munthi", - "email": "me@itstoni.com" - } - ], - "description": "This package provide an Organizations module for yawik.", - "keywords": [ - "module", - "yawik", - "zf3" - ], - "time": "2019-10-16T16:36:14+00:00" - }, - { - "name": "yawik/settings", - "version": "0.33.22", - "source": { - "type": "git", - "url": "https://github.com/yawik/settings.git", - "reference": "5f73df6cbe4cddd9a4270912a0aaf1a6ade25925" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/yawik/settings/zipball/5f73df6cbe4cddd9a4270912a0aaf1a6ade25925", - "reference": "5f73df6cbe4cddd9a4270912a0aaf1a6ade25925", - "shasum": "" - }, - "require": { - "yawik/core": ">=0.33@dev" - }, - "type": "yawik-module", - "extra": { - "branch-alias": { - "dev-develop": "0.33-dev" - }, - "zf": { - "module": "Settings" - } - }, - "autoload": { - "psr-4": { - "Settings\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mathias Gelhausen", - "email": "gelhausen@cross-solution.de" - }, - { - "name": "Carsten Bleek", - "email": "bleek@cross-solution.de" - }, - { - "name": "Anthonius Munthi", - "email": "me@itstoni.com" - } - ], - "description": "This package provide a Settings module for yawik.", - "keywords": [ - "module", - "yawik", - "zf3" - ], - "time": "2019-09-17T13:05:18+00:00" - }, - { - "name": "zendframework/zend-authentication", - "version": "2.7.0", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-authentication.git", - "reference": "1f379f6384fca34b3bfe94d953abd65e9e7ee746" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-authentication/zipball/1f379f6384fca34b3bfe94d953abd65e9e7ee746", - "reference": "1f379f6384fca34b3bfe94d953abd65e9e7ee746", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-stdlib": "^3.2.1" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-crypt": "^2.6 || ^3.2.1", - "zendframework/zend-db": "^2.8.2", - "zendframework/zend-http": "^2.7", - "zendframework/zend-ldap": "^2.8", - "zendframework/zend-session": "^2.8", - "zendframework/zend-uri": "^2.5.2", - "zendframework/zend-validator": "^2.10.1" - }, - "suggest": { - "zendframework/zend-crypt": "Zend\\Crypt component", - "zendframework/zend-db": "Zend\\Db component", - "zendframework/zend-http": "Zend\\Http component", - "zendframework/zend-ldap": "Zend\\Ldap component", - "zendframework/zend-session": "Zend\\Session component", - "zendframework/zend-uri": "Zend\\Uri component", - "zendframework/zend-validator": "Zend\\Validator component" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.7.x-dev", - "dev-develop": "2.8.x-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\Authentication\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "provides an API for authentication and includes concrete authentication adapters for common use case scenarios", - "keywords": [ - "Authentication", - "ZendFramework", - "zf" - ], - "abandoned": "laminas/laminas-authentication", - "time": "2019-05-14T18:06:07+00:00" - }, - { - "name": "zendframework/zend-cache", - "version": "2.9.0", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-cache.git", - "reference": "cffd54a2dc4db094976d3b3f05e418a047cc9110" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-cache/zipball/cffd54a2dc4db094976d3b3f05e418a047cc9110", - "reference": "cffd54a2dc4db094976d3b3f05e418a047cc9110", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "psr/cache": "^1.0", - "psr/simple-cache": "^1.0", - "zendframework/zend-eventmanager": "^2.6.3 || ^3.2", - "zendframework/zend-servicemanager": "^2.7.8 || ^3.3", - "zendframework/zend-stdlib": "^3.2.1" - }, - "provide": { - "psr/cache-implementation": "1.0", - "psr/simple-cache-implementation": "1.0" - }, - "require-dev": { - "cache/integration-tests": "^0.16", - "phpbench/phpbench": "^0.13", - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-serializer": "^2.6", - "zendframework/zend-session": "^2.7.4" - }, - "suggest": { - "ext-apc": "APC or compatible extension, to use the APC storage adapter", - "ext-apcu": "APCU >= 5.1.0, to use the APCu storage adapter", - "ext-dba": "DBA, to use the DBA storage adapter", - "ext-memcache": "Memcache >= 2.0.0 to use the Memcache storage adapter", - "ext-memcached": "Memcached >= 1.0.0 to use the Memcached storage adapter", - "ext-mongo": "Mongo, to use MongoDb storage adapter", - "ext-mongodb": "MongoDB, to use the ExtMongoDb storage adapter", - "ext-redis": "Redis, to use Redis storage adapter", - "ext-wincache": "WinCache, to use the WinCache storage adapter", - "ext-xcache": "XCache, to use the XCache storage adapter", - "mongodb/mongodb": "Required for use with the ext-mongodb adapter", - "mongofill/mongofill": "Alternative to ext-mongo - a pure PHP implementation designed as a drop in replacement", - "zendframework/zend-serializer": "Zend\\Serializer component", - "zendframework/zend-session": "Zend\\Session component" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.9.x-dev", - "dev-develop": "2.10.x-dev" - }, - "zf": { - "component": "Zend\\Cache", - "config-provider": "Zend\\Cache\\ConfigProvider" - } - }, - "autoload": { - "files": [ - "autoload/patternPluginManagerPolyfill.php" - ], - "psr-4": { - "Zend\\Cache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Caching implementation with a variety of storage options, as well as codified caching strategies for callbacks, classes, and output", - "keywords": [ - "ZendFramework", - "cache", - "psr-16", - "psr-6", - "zf" - ], - "abandoned": "laminas/laminas-cache", - "time": "2019-08-29T18:30:41+00:00" - }, - { - "name": "zendframework/zend-captcha", - "version": "2.9.0", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-captcha.git", - "reference": "4272f3d0cde0a1fa9135d0cbc4a629fb655391d3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-captcha/zipball/4272f3d0cde0a1fa9135d0cbc4a629fb655391d3", - "reference": "4272f3d0cde0a1fa9135d0cbc4a629fb655391d3", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-math": "^2.7 || ^3.0", - "zendframework/zend-stdlib": "^3.2.1" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-session": "^2.8", - "zendframework/zend-text": "^2.6", - "zendframework/zend-validator": "^2.10.1", - "zendframework/zendservice-recaptcha": "^3.0" - }, - "suggest": { - "zendframework/zend-i18n-resources": "Translations of captcha messages", - "zendframework/zend-session": "Zend\\Session component", - "zendframework/zend-text": "Zend\\Text component", - "zendframework/zend-validator": "Zend\\Validator component", - "zendframework/zendservice-recaptcha": "ZendService\\ReCaptcha component" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.9.x-dev", - "dev-develop": "2.10.x-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\Captcha\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Generate and validate CAPTCHAs using Figlets, images, ReCaptcha, and more", - "keywords": [ - "ZendFramework", - "captcha", - "zf" - ], - "abandoned": "laminas/laminas-captcha", - "time": "2019-06-18T09:32:52+00:00" - }, - { - "name": "zendframework/zend-code", - "version": "3.4.1", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-code.git", - "reference": "268040548f92c2bfcba164421c1add2ba43abaaa" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-code/zipball/268040548f92c2bfcba164421c1add2ba43abaaa", - "reference": "268040548f92c2bfcba164421c1add2ba43abaaa", - "shasum": "" - }, - "require": { - "php": "^7.1", - "zendframework/zend-eventmanager": "^2.6 || ^3.0" - }, - "conflict": { - "phpspec/prophecy": "<1.9.0" - }, - "require-dev": { - "doctrine/annotations": "^1.7", - "ext-phar": "*", - "phpunit/phpunit": "^7.5.16 || ^8.4", - "zendframework/zend-coding-standard": "^1.0", - "zendframework/zend-stdlib": "^2.7 || ^3.0" - }, - "suggest": { - "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features", - "zendframework/zend-stdlib": "Zend\\Stdlib component" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4.x-dev", - "dev-develop": "3.5.x-dev", - "dev-dev-4.0": "4.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\Code\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Extensions to the PHP Reflection API, static code scanning, and code generation", - "keywords": [ - "ZendFramework", - "code", - "zf" - ], - "abandoned": "laminas/laminas-code", - "time": "2019-12-10T19:21:15+00:00" - }, - { - "name": "zendframework/zend-config", - "version": "3.3.0", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-config.git", - "reference": "012341361ae3cc97a99959e7cb7c9ebd04d49572" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-config/zipball/012341361ae3cc97a99959e7cb7c9ebd04d49572", - "reference": "012341361ae3cc97a99959e7cb7c9ebd04d49572", - "shasum": "" - }, - "require": { - "ext-json": "*", - "php": "^5.6 || ^7.0", - "psr/container": "^1.0", - "zendframework/zend-stdlib": "^2.7.7 || ^3.1" - }, - "conflict": { - "container-interop/container-interop": "<1.2.0" - }, - "require-dev": { - "malukenho/docheader": "^0.1.6", - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-filter": "^2.7.2", - "zendframework/zend-i18n": "^2.7.4", - "zendframework/zend-servicemanager": "^2.7.8 || ^3.3" - }, - "suggest": { - "zendframework/zend-filter": "^2.7.2; install if you want to use the Filter processor", - "zendframework/zend-i18n": "^2.7.4; install if you want to use the Translator processor", - "zendframework/zend-servicemanager": "^2.7.8 || ^3.3; if you need an extensible plugin manager for use with the Config Factory" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.3.x-dev", - "dev-develop": "3.4.x-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\Config\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "provides a nested object property based user interface for accessing this configuration data within application code", - "keywords": [ - "ZendFramework", - "config", - "zf" - ], - "abandoned": "laminas/laminas-config", - "time": "2019-06-08T18:58:54+00:00" - }, - { - "name": "zendframework/zend-console", - "version": "2.8.0", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-console.git", - "reference": "95817ae78f73c48026972e350a2ecc31c6d9f9ae" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-console/zipball/95817ae78f73c48026972e350a2ecc31c6d9f9ae", - "reference": "95817ae78f73c48026972e350a2ecc31c6d9f9ae", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-stdlib": "^3.2.1" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.23 || ^6.4.3", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-filter": "^2.7.2", - "zendframework/zend-json": "^2.6 || ^3.0", - "zendframework/zend-validator": "^2.10.1" - }, - "suggest": { - "zendframework/zend-filter": "To support DefaultRouteMatcher usage", - "zendframework/zend-validator": "To support DefaultRouteMatcher usage" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8.x-dev", - "dev-develop": "2.9.x-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\Console\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Build console applications using getopt syntax or routing, complete with prompts", - "keywords": [ - "ZendFramework", - "console", - "zf" - ], - "abandoned": "laminas/laminas-console", - "time": "2019-02-04T19:48:22+00:00" - }, - { - "name": "zendframework/zend-di", - "version": "2.6.1", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-di.git", - "reference": "1fd1ba85660b5a2718741b38639dc7c4c3194b37" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-di/zipball/1fd1ba85660b5a2718741b38639dc7c4c3194b37", - "reference": "1fd1ba85660b5a2718741b38639dc7c4c3194b37", - "shasum": "" - }, - "require": { - "container-interop/container-interop": "^1.1", - "php": "^5.5 || ^7.0", - "zendframework/zend-code": "^2.6 || ^3.0", - "zendframework/zend-stdlib": "^2.7 || ^3.0" - }, - "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.6-dev", - "dev-develop": "2.7-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\Di\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "homepage": "https://github.com/zendframework/zend-di", - "keywords": [ - "di", - "zf2" - ], - "abandoned": "laminas/laminas-di", - "time": "2016-04-25T20:58:11+00:00" - }, - { - "name": "zendframework/zend-escaper", - "version": "2.6.1", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-escaper.git", - "reference": "3801caa21b0ca6aca57fa1c42b08d35c395ebd5f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/3801caa21b0ca6aca57fa1c42b08d35c395ebd5f", - "reference": "3801caa21b0ca6aca57fa1c42b08d35c395ebd5f", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", - "zendframework/zend-coding-standard": "~1.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.6.x-dev", - "dev-develop": "2.7.x-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\Escaper\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Securely and safely escape HTML, HTML attributes, JavaScript, CSS, and URLs", - "keywords": [ - "ZendFramework", - "escaper", - "zf" - ], - "abandoned": "laminas/laminas-escaper", - "time": "2019-09-05T20:03:20+00:00" - }, - { - "name": "zendframework/zend-eventmanager", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-eventmanager.git", - "reference": "a5e2583a211f73604691586b8406ff7296a946dd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd", - "reference": "a5e2583a211f73604691586b8406ff7296a946dd", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "athletic/athletic": "^0.1", - "container-interop/container-interop": "^1.1.0", - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-stdlib": "^2.7.3 || ^3.0" - }, - "suggest": { - "container-interop/container-interop": "^1.1.0, to use the lazy listeners feature", - "zendframework/zend-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev", - "dev-develop": "3.3-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\EventManager\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Trigger and listen to events within a PHP application", - "homepage": "https://github.com/zendframework/zend-eventmanager", - "keywords": [ - "event", - "eventmanager", - "events", - "zf2" - ], - "abandoned": "laminas/laminas-eventmanager", - "time": "2018-04-25T15:33:34+00:00" - }, - { - "name": "zendframework/zend-feed", - "version": "2.12.0", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-feed.git", - "reference": "d926c5af34b93a0121d5e2641af34ddb1533d733" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-feed/zipball/d926c5af34b93a0121d5e2641af34ddb1533d733", - "reference": "d926c5af34b93a0121d5e2641af34ddb1533d733", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "php": "^5.6 || ^7.0", - "zendframework/zend-escaper": "^2.5.2", - "zendframework/zend-stdlib": "^3.2.1" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.23 || ^6.4.3", - "psr/http-message": "^1.0.1", - "zendframework/zend-cache": "^2.7.2", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-db": "^2.8.2", - "zendframework/zend-http": "^2.7", - "zendframework/zend-servicemanager": "^2.7.8 || ^3.3", - "zendframework/zend-validator": "^2.10.1" - }, - "suggest": { - "psr/http-message": "PSR-7 ^1.0.1, if you wish to use Zend\\Feed\\Reader\\Http\\Psr7ResponseDecorator", - "zendframework/zend-cache": "Zend\\Cache component, for optionally caching feeds between requests", - "zendframework/zend-db": "Zend\\Db component, for use with PubSubHubbub", - "zendframework/zend-http": "Zend\\Http for PubSubHubbub, and optionally for use with Zend\\Feed\\Reader", - "zendframework/zend-servicemanager": "Zend\\ServiceManager component, for easily extending ExtensionManager implementations", - "zendframework/zend-validator": "Zend\\Validator component, for validating email addresses used in Atom feeds and entries when using the Writer subcomponent" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.12.x-dev", - "dev-develop": "2.13.x-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\Feed\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "provides functionality for consuming RSS and Atom feeds", - "keywords": [ - "ZendFramework", - "feed", - "zf" - ], - "abandoned": "laminas/laminas-feed", - "time": "2019-03-05T20:08:49+00:00" - }, - { - "name": "zendframework/zend-filter", - "version": "2.9.2", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-filter.git", - "reference": "d78f2cdde1c31975e18b2a0753381ed7b61118ef" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-filter/zipball/d78f2cdde1c31975e18b2a0753381ed7b61118ef", - "reference": "d78f2cdde1c31975e18b2a0753381ed7b61118ef", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-stdlib": "^2.7.7 || ^3.1" - }, - "conflict": { - "zendframework/zend-validator": "<2.10.1" - }, - "require-dev": { - "pear/archive_tar": "^1.4.3", - "phpunit/phpunit": "^5.7.23 || ^6.4.3", - "psr/http-factory": "^1.0", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-crypt": "^3.2.1", - "zendframework/zend-servicemanager": "^2.7.8 || ^3.3", - "zendframework/zend-uri": "^2.6" - }, - "suggest": { - "psr/http-factory-implementation": "psr/http-factory-implementation, for creating file upload instances when consuming PSR-7 in file upload filters", - "zendframework/zend-crypt": "Zend\\Crypt component, for encryption filters", - "zendframework/zend-i18n": "Zend\\I18n component for filters depending on i18n functionality", - "zendframework/zend-servicemanager": "Zend\\ServiceManager component, for using the filter chain functionality", - "zendframework/zend-uri": "Zend\\Uri component, for the UriNormalize filter" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.9.x-dev", - "dev-develop": "2.10.x-dev" - }, - "zf": { - "component": "Zend\\Filter", - "config-provider": "Zend\\Filter\\ConfigProvider" - } - }, - "autoload": { - "psr-4": { - "Zend\\Filter\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Programmatically filter and normalize data and files", - "keywords": [ - "ZendFramework", - "filter", - "zf" - ], - "abandoned": "laminas/laminas-filter", - "time": "2019-08-19T07:08:04+00:00" - }, - { - "name": "zendframework/zend-form", - "version": "2.14.3", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-form.git", - "reference": "0b1616c59b1f3df194284e26f98c81ad0c377871" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-form/zipball/0b1616c59b1f3df194284e26f98c81ad0c377871", - "reference": "0b1616c59b1f3df194284e26f98c81ad0c377871", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-hydrator": "^1.1 || ^2.1 || ^3.0", - "zendframework/zend-inputfilter": "^2.8", - "zendframework/zend-stdlib": "^3.2.1" - }, - "require-dev": { - "doctrine/annotations": "~1.0", - "phpunit/phpunit": "^5.7.23 || ^6.5.3", - "zendframework/zend-cache": "^2.6.1", - "zendframework/zend-captcha": "^2.7.1", - "zendframework/zend-code": "^2.6 || ^3.0", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-escaper": "^2.5", - "zendframework/zend-eventmanager": "^2.6.2 || ^3.0", - "zendframework/zend-filter": "^2.6", - "zendframework/zend-i18n": "^2.6", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", - "zendframework/zend-session": "^2.8.1", - "zendframework/zend-text": "^2.6", - "zendframework/zend-validator": "^2.6", - "zendframework/zend-view": "^2.6.2", - "zendframework/zendservice-recaptcha": "^3.0.0" - }, - "suggest": { - "zendframework/zend-captcha": "^2.7.1, required for using CAPTCHA form elements", - "zendframework/zend-code": "^2.6 || ^3.0, required to use zend-form annotations support", - "zendframework/zend-eventmanager": "^2.6.2 || ^3.0, reuired for zend-form annotations support", - "zendframework/zend-i18n": "^2.6, required when using zend-form view helpers", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3, required to use the form factories or provide services", - "zendframework/zend-view": "^2.6.2, required for using the zend-form view helpers", - "zendframework/zendservice-recaptcha": "in order to use the ReCaptcha form element" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.14.x-dev", - "dev-develop": "2.15.x-dev" - }, - "zf": { - "component": "Zend\\Form", - "config-provider": "Zend\\Form\\ConfigProvider" - } - }, - "autoload": { - "psr-4": { - "Zend\\Form\\": "src/" - }, - "files": [ - "autoload/formElementManagerPolyfill.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Validate and display simple and complex forms, casting forms to business objects and vice versa", - "keywords": [ - "ZendFramework", - "form", - "zf" - ], - "abandoned": "laminas/laminas-form", - "time": "2019-10-04T10:46:36+00:00" - }, - { - "name": "zendframework/zend-http", - "version": "2.11.2", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-http.git", - "reference": "e15e0ce45a2a4f642cd0b7b4f4d4d0366b729a1a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-http/zipball/e15e0ce45a2a4f642cd0b7b4f4d4d0366b729a1a", - "reference": "e15e0ce45a2a4f642cd0b7b4f4d4d0366b729a1a", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-loader": "^2.5.1", - "zendframework/zend-stdlib": "^3.2.1", - "zendframework/zend-uri": "^2.5.2", - "zendframework/zend-validator": "^2.10.1" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.3", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-config": "^3.1 || ^2.6" - }, - "suggest": { - "paragonie/certainty": "For automated management of cacert.pem" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.11.x-dev", - "dev-develop": "2.12.x-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\Http\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Provides an easy interface for performing Hyper-Text Transfer Protocol (HTTP) requests", - "keywords": [ - "ZendFramework", - "http", - "http client", - "zend", - "zf" - ], - "abandoned": "laminas/laminas-http", - "time": "2019-12-30T20:47:33+00:00" - }, - { - "name": "zendframework/zend-hydrator", - "version": "2.4.2", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-hydrator.git", - "reference": "2bfc6845019e7b6d38b0ab5e55190244dc510285" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-hydrator/zipball/2bfc6845019e7b6d38b0ab5e55190244dc510285", - "reference": "2bfc6845019e7b6d38b0ab5e55190244dc510285", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-stdlib": "^3.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-eventmanager": "^2.6.2 || ^3.0", - "zendframework/zend-filter": "^2.6", - "zendframework/zend-inputfilter": "^2.6", - "zendframework/zend-serializer": "^2.6.1", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3" - }, - "suggest": { - "zendframework/zend-eventmanager": "^2.6.2 || ^3.0, to support aggregate hydrator usage", - "zendframework/zend-filter": "^2.6, to support naming strategy hydrator usage", - "zendframework/zend-serializer": "^2.6.1, to use the SerializableStrategy", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3, to support hydrator plugin manager usage" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-release-2.4": "2.4.x-dev" - }, - "zf": { - "component": "Zend\\Hydrator", - "config-provider": "Zend\\Hydrator\\ConfigProvider" - } - }, - "autoload": { - "psr-4": { - "Zend\\Hydrator\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Serialize objects to arrays, and vice versa", - "keywords": [ - "ZendFramework", - "hydrator", - "zf" - ], - "abandoned": "laminas/laminas-hydrator", - "time": "2019-10-04T11:17:36+00:00" - }, - { - "name": "zendframework/zend-i18n", - "version": "2.10.1", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-i18n.git", - "reference": "84038e6a1838b611dcc491b1c40321fa4c3a123c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-i18n/zipball/84038e6a1838b611dcc491b1c40321fa4c3a123c", - "reference": "84038e6a1838b611dcc491b1c40321fa4c3a123c", - "shasum": "" - }, - "require": { - "ext-intl": "*", - "php": "^5.6 || ^7.0", - "zendframework/zend-stdlib": "^2.7 || ^3.0" - }, - "conflict": { - "phpspec/prophecy": "<1.9.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.16", - "zendframework/zend-cache": "^2.6.1", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-config": "^2.6", - "zendframework/zend-eventmanager": "^2.6.2 || ^3.0", - "zendframework/zend-filter": "^2.6.1", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", - "zendframework/zend-validator": "^2.6", - "zendframework/zend-view": "^2.6.3" - }, - "suggest": { - "zendframework/zend-cache": "Zend\\Cache component", - "zendframework/zend-config": "Zend\\Config component", - "zendframework/zend-eventmanager": "You should install this package to use the events in the translator", - "zendframework/zend-filter": "You should install this package to use the provided filters", - "zendframework/zend-i18n-resources": "Translation resources", - "zendframework/zend-servicemanager": "Zend\\ServiceManager component", - "zendframework/zend-validator": "You should install this package to use the provided validators", - "zendframework/zend-view": "You should install this package to use the provided view helpers" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.10.x-dev", - "dev-develop": "2.11.x-dev" - }, - "zf": { - "component": "Zend\\I18n", - "config-provider": "Zend\\I18n\\ConfigProvider" - } - }, - "autoload": { - "psr-4": { - "Zend\\I18n\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Provide translations for your application, and filter and validate internationalized values", - "keywords": [ - "ZendFramework", - "i18n", - "zf" - ], - "abandoned": "laminas/laminas-i18n", - "time": "2019-12-12T14:08:22+00:00" - }, - { - "name": "zendframework/zend-i18n-resources", - "version": "2.6.1", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-i18n-resources.git", - "reference": "3a2f5a246779f05d4fe0c47738d4d2271e484aee" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-i18n-resources/zipball/3a2f5a246779f05d4fe0c47738d4d2271e484aee", - "reference": "3a2f5a246779f05d4fe0c47738d4d2271e484aee", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.5", - "zendframework/zend-coding-standard": "~1.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.6.x-dev", - "dev-develop": "2.7.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/Resources.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Provides validator translations for zend-i18n's Translator", - "keywords": [ - "ZendFramework", - "resources", - "translations", - "zf" - ], - "abandoned": "laminas/laminas-i18n-resources", - "time": "2019-06-25T01:21:12+00:00" - }, - { - "name": "zendframework/zend-inputfilter", - "version": "2.10.1", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-inputfilter.git", - "reference": "1f44a2e9bc394a71638b43bc7024b572fa65410e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-inputfilter/zipball/1f44a2e9bc394a71638b43bc7024b572fa65410e", - "reference": "1f44a2e9bc394a71638b43bc7024b572fa65410e", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-filter": "^2.9.1", - "zendframework/zend-servicemanager": "^2.7.10 || ^3.3.1", - "zendframework/zend-stdlib": "^2.7 || ^3.0", - "zendframework/zend-validator": "^2.11" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.15", - "psr/http-message": "^1.0", - "zendframework/zend-coding-standard": "~1.0.0" - }, - "suggest": { - "psr/http-message-implementation": "PSR-7 is required if you wish to validate PSR-7 UploadedFileInterface payloads" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.10.x-dev", - "dev-develop": "2.11.x-dev" - }, - "zf": { - "component": "Zend\\InputFilter", - "config-provider": "Zend\\InputFilter\\ConfigProvider" - } - }, - "autoload": { - "psr-4": { - "Zend\\InputFilter\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Normalize and validate input sets from the web, APIs, the CLI, and more, including files", - "keywords": [ - "ZendFramework", - "inputfilter", - "zf" - ], - "abandoned": "laminas/laminas-inputfilter", - "time": "2019-08-28T19:45:32+00:00" - }, - { - "name": "zendframework/zend-json", - "version": "3.1.2", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-json.git", - "reference": "e9ddb1192d93fe7fff846ac895249c39db75132b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-json/zipball/e9ddb1192d93fe7fff846ac895249c39db75132b", - "reference": "e9ddb1192d93fe7fff846ac895249c39db75132b", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.23 || ^6.4.3", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-stdlib": "^2.7.7 || ^3.1" - }, - "suggest": { - "zendframework/zend-json-server": "For implementing JSON-RPC servers", - "zendframework/zend-xml2json": "For converting XML documents to JSON" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1.x-dev", - "dev-develop": "3.2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\Json\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "provides convenience methods for serializing native PHP to JSON and decoding JSON to native PHP", - "keywords": [ - "ZendFramework", - "json", - "zf" - ], - "abandoned": "laminas/laminas-json", - "time": "2019-10-09T13:56:13+00:00" - }, - { - "name": "zendframework/zend-loader", - "version": "2.6.1", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-loader.git", - "reference": "91da574d29b58547385b2298c020b257310898c6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-loader/zipball/91da574d29b58547385b2298c020b257310898c6", - "reference": "91da574d29b58547385b2298c020b257310898c6", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4", - "zendframework/zend-coding-standard": "~1.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.6.x-dev", - "dev-develop": "2.7.x-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\Loader\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Autoloading and plugin loading strategies", - "keywords": [ - "ZendFramework", - "loader", - "zf" - ], - "abandoned": "laminas/laminas-loader", - "time": "2019-09-04T19:38:14+00:00" - }, - { - "name": "zendframework/zend-log", - "version": "2.12.0", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-log.git", - "reference": "e5ec088dc8a7b4d96a3a6627761f720a738a36b8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-log/zipball/e5ec088dc8a7b4d96a3a6627761f720a738a36b8", - "reference": "e5ec088dc8a7b4d96a3a6627761f720a738a36b8", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "psr/log": "^1.1.2", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", - "zendframework/zend-stdlib": "^2.7 || ^3.0" - }, - "provide": { - "psr/log-implementation": "1.0.0" - }, - "require-dev": { - "mikey179/vfsstream": "^1.6.7", - "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.15", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-db": "^2.6", - "zendframework/zend-escaper": "^2.5", - "zendframework/zend-filter": "^2.5", - "zendframework/zend-mail": "^2.6.1", - "zendframework/zend-validator": "^2.10.1" - }, - "suggest": { - "ext-mongo": "mongo extension to use Mongo writer", - "ext-mongodb": "mongodb extension to use MongoDB writer", - "zendframework/zend-db": "Zend\\Db component to use the database log writer", - "zendframework/zend-escaper": "Zend\\Escaper component, for use in the XML log formatter", - "zendframework/zend-mail": "Zend\\Mail component to use the email log writer", - "zendframework/zend-validator": "Zend\\Validator component to block invalid log messages" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.12.x-dev", - "dev-develop": "2.13.x-dev" - }, - "zf": { - "component": "Zend\\Log", - "config-provider": "Zend\\Log\\ConfigProvider" - } - }, - "autoload": { - "psr-4": { - "Zend\\Log\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Robust, composite logger with filtering, formatting, and PSR-3 support", - "keywords": [ - "ZendFramework", - "log", - "logging", - "zf" - ], - "abandoned": "laminas/laminas-log", - "time": "2019-12-27T16:18:31+00:00" - }, - { - "name": "zendframework/zend-mail", - "version": "2.10.0", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-mail.git", - "reference": "d7beb63d5f7144a21ac100072c453e63860cdab8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-mail/zipball/d7beb63d5f7144a21ac100072c453e63860cdab8", - "reference": "d7beb63d5f7144a21ac100072c453e63860cdab8", - "shasum": "" - }, - "require": { - "ext-iconv": "*", - "php": "^5.6 || ^7.0", - "true/punycode": "^2.1", - "zendframework/zend-loader": "^2.5", - "zendframework/zend-mime": "^2.5", - "zendframework/zend-stdlib": "^2.7 || ^3.0", - "zendframework/zend-validator": "^2.10.2" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.25 || ^6.4.4 || ^7.1.4", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-config": "^2.6", - "zendframework/zend-crypt": "^2.6 || ^3.0", - "zendframework/zend-servicemanager": "^2.7.10 || ^3.3.1" - }, - "suggest": { - "zendframework/zend-crypt": "Crammd5 support in SMTP Auth", - "zendframework/zend-servicemanager": "^2.7.10 || ^3.3.1 when using SMTP to deliver messages" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.10.x-dev", - "dev-develop": "2.11.x-dev" - }, - "zf": { - "component": "Zend\\Mail", - "config-provider": "Zend\\Mail\\ConfigProvider" - } - }, - "autoload": { - "psr-4": { - "Zend\\Mail\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Provides generalized functionality to compose and send both text and MIME-compliant multipart e-mail messages", - "keywords": [ - "ZendFramework", - "mail", - "zf" - ], - "abandoned": "laminas/laminas-mail", - "time": "2018-06-07T13:37:07+00:00" - }, - { - "name": "zendframework/zend-math", - "version": "3.2.0", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-math.git", - "reference": "07e43d87fd5c7edc4f54121b9a4625eb10e4b726" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-math/zipball/07e43d87fd5c7edc4f54121b9a4625eb10e4b726", - "reference": "07e43d87fd5c7edc4f54121b9a4625eb10e4b726", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "paragonie/random_compat": "^2.0.11 || 9.99.99", - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", - "zendframework/zend-coding-standard": "~1.0.0" - }, - "suggest": { - "ext-bcmath": "If using the bcmath functionality", - "ext-gmp": "If using the gmp functionality" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2.x-dev", - "dev-develop": "3.3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\Math\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Create cryptographically secure pseudo-random numbers, and manage big integers", - "keywords": [ - "ZendFramework", - "math", - "zf" - ], - "abandoned": "laminas/laminas-math", - "time": "2018-12-04T15:45:09+00:00" - }, - { - "name": "zendframework/zend-mime", - "version": "2.7.2", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-mime.git", - "reference": "c91e0350be53cc9d29be15563445eec3b269d7c1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-mime/zipball/c91e0350be53cc9d29be15563445eec3b269d7c1", - "reference": "c91e0350be53cc9d29be15563445eec3b269d7c1", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-stdlib": "^2.7 || ^3.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.21 || ^6.3", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-mail": "^2.6" - }, - "suggest": { - "zendframework/zend-mail": "Zend\\Mail component" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.7.x-dev", - "dev-develop": "2.8.x-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\Mime\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Create and parse MIME messages and parts", - "keywords": [ - "ZendFramework", - "mime", - "zf" - ], - "abandoned": "laminas/laminas-mime", - "time": "2019-10-16T19:30:37+00:00" - }, - { - "name": "zendframework/zend-modulemanager", - "version": "2.8.4", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-modulemanager.git", - "reference": "b2596d24b9a4e36a3cd114d35d3ad0918db9a243" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-modulemanager/zipball/b2596d24b9a4e36a3cd114d35d3ad0918db9a243", - "reference": "b2596d24b9a4e36a3cd114d35d3ad0918db9a243", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-config": "^3.1 || ^2.6", - "zendframework/zend-eventmanager": "^3.2 || ^2.6.3", - "zendframework/zend-stdlib": "^3.1 || ^2.7" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.16", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-console": "^2.6", - "zendframework/zend-di": "^2.6", - "zendframework/zend-loader": "^2.5", - "zendframework/zend-mvc": "^3.0 || ^2.7", - "zendframework/zend-servicemanager": "^3.0.3 || ^2.7.5" - }, - "suggest": { - "zendframework/zend-console": "Zend\\Console component", - "zendframework/zend-loader": "Zend\\Loader component if you are not using Composer autoloading for your modules", - "zendframework/zend-mvc": "Zend\\Mvc component", - "zendframework/zend-servicemanager": "Zend\\ServiceManager component" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8.x-dev", - "dev-develop": "2.9.x-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\ModuleManager\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Modular application system for zend-mvc applications", - "keywords": [ - "ZendFramework", - "modulemanager", - "zf" - ], - "abandoned": "laminas/laminas-modulemanager", - "time": "2019-10-28T13:29:38+00:00" - }, - { - "name": "zendframework/zend-mvc", - "version": "3.1.1", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-mvc.git", - "reference": "236e7e1e3757e988fa06530c0a3f96a148858ae8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-mvc/zipball/236e7e1e3757e988fa06530c0a3f96a148858ae8", - "reference": "236e7e1e3757e988fa06530c0a3f96a148858ae8", - "shasum": "" - }, - "require": { - "container-interop/container-interop": "^1.2", - "php": "^5.6 || ^7.0", - "zendframework/zend-eventmanager": "^3.2", - "zendframework/zend-http": "^2.7", - "zendframework/zend-modulemanager": "^2.8", - "zendframework/zend-router": "^3.0.2", - "zendframework/zend-servicemanager": "^3.3", - "zendframework/zend-stdlib": "^3.1", - "zendframework/zend-view": "^2.9" - }, - "require-dev": { - "http-interop/http-middleware": "^0.4.1", - "phpunit/phpunit": "^6.4.4 || ^5.7.14", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-json": "^2.6.1 || ^3.0", - "zendframework/zend-psr7bridge": "^1.0", - "zendframework/zend-stratigility": "^2.0.1" - }, - "suggest": { - "http-interop/http-middleware": "^0.4.1 to be used together with zend-stratigility", - "zendframework/zend-json": "(^2.6.1 || ^3.0) To auto-deserialize JSON body content in AbstractRestfulController extensions, when json_decode is unavailable", - "zendframework/zend-log": "^2.9.1 To provide log functionality via LogFilterManager, LogFormatterManager, and LogProcessorManager", - "zendframework/zend-mvc-console": "zend-mvc-console provides the ability to expose zend-mvc as a console application", - "zendframework/zend-mvc-i18n": "zend-mvc-i18n provides integration with zend-i18n, including a translation bridge and translatable route segments", - "zendframework/zend-mvc-plugin-fileprg": "To provide Post/Redirect/Get functionality around forms that container file uploads", - "zendframework/zend-mvc-plugin-flashmessenger": "To provide flash messaging capabilities between requests", - "zendframework/zend-mvc-plugin-identity": "To access the authenticated identity (per zend-authentication) in controllers", - "zendframework/zend-mvc-plugin-prg": "To provide Post/Redirect/Get functionality within controllers", - "zendframework/zend-paginator": "^2.7 To provide pagination functionality via PaginatorPluginManager", - "zendframework/zend-psr7bridge": "(^0.2) To consume PSR-7 middleware within the MVC workflow", - "zendframework/zend-servicemanager-di": "zend-servicemanager-di provides utilities for integrating zend-di and zend-servicemanager in your zend-mvc application", - "zendframework/zend-stratigility": "zend-stratigility is required to use middleware pipes in the MiddlewareListener" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev", - "dev-develop": "3.2-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\Mvc\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Zend Framework's event-driven MVC layer, including MVC Applications, Controllers, and Plugins", - "keywords": [ - "ZendFramework", - "mvc", - "zf" - ], - "abandoned": "laminas/laminas-mvc", - "time": "2017-11-24T06:32:07+00:00" - }, - { - "name": "zendframework/zend-mvc-console", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-mvc-console.git", - "reference": "821c18e0d57e71b370166bd2f35623befddaf2ee" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-mvc-console/zipball/821c18e0d57e71b370166bd2f35623befddaf2ee", - "reference": "821c18e0d57e71b370166bd2f35623befddaf2ee", - "shasum": "" - }, - "require": { - "container-interop/container-interop": "^1.1", - "php": "^5.6 || ^7.0", - "zendframework/zend-console": "^2.6", - "zendframework/zend-eventmanager": "^2.6.2 || ^3.0", - "zendframework/zend-modulemanager": "^2.7.1", - "zendframework/zend-mvc": "^3.0.3", - "zendframework/zend-router": "^3.0", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", - "zendframework/zend-stdlib": "^2.7.5 || ^3.0", - "zendframework/zend-text": "^2.6", - "zendframework/zend-view": "^2.6.3" - }, - "conflict": { - "zendframework/zend-mvc": "<3.0.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-filter": "^2.6.1" - }, - "suggest": { - "zendframework/zend-filter": "^2.6.1, to filter rendered results" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev", - "dev-develop": "1.3.x-dev" - }, - "zf": { - "component": "Zend\\Mvc\\Console" - } - }, - "autoload": { - "psr-4": { - "Zend\\Mvc\\Console\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Integration between zend-mvc and zend-console", - "keywords": [ - "ZendFramework", - "console", - "mvc", - "zf" - ], - "abandoned": "laminas/laminas-mvc-console", - "time": "2018-04-30T19:10:26+00:00" - }, - { - "name": "zendframework/zend-mvc-i18n", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-mvc-i18n.git", - "reference": "7a1b3aca3a8874adb32390d34794cdc525c1c909" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-mvc-i18n/zipball/7a1b3aca3a8874adb32390d34794cdc525c1c909", - "reference": "7a1b3aca3a8874adb32390d34794cdc525c1c909", - "shasum": "" - }, - "require": { - "container-interop/container-interop": "^1.1", - "php": "^5.6 || ^7.0", - "zendframework/zend-i18n": "^2.7", - "zendframework/zend-router": "^3.0", - "zendframework/zend-servicemanager": "^2.7.10 || ^3.0.3", - "zendframework/zend-stdlib": "^2.7.6 || ^3.0", - "zendframework/zend-validator": "^2.6" - }, - "conflict": { - "phpspec/prophecy": "<1.8.0", - "zendframework/zend-mvc": "<3.0.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.5", - "zendframework/zend-cache": "^2.6.1", - "zendframework/zend-coding-standard": "~1.0.0" - }, - "suggest": { - "zendframework/zend-cache": "To enable caching of translation strings" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev", - "dev-develop": "1.2.x-dev" - }, - "zf": { - "component": "Zend\\Mvc\\I18n", - "config-provider": "Zend\\Mvc\\I18n\\ConfigProvider" - } - }, - "autoload": { - "psr-4": { - "Zend\\Mvc\\I18n\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Integration between zend-mvc and zend-i18n", - "keywords": [ - "ZendFramework", - "i18n", - "mvc", - "zf" - ], - "abandoned": "laminas/laminas-mvc-i18n", - "time": "2019-09-03T20:50:53+00:00" - }, - { - "name": "zendframework/zend-mvc-plugin-fileprg", - "version": "1.1.0", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-mvc-plugin-fileprg.git", - "reference": "87184f33dbb98eb57c7338a5f026cca29bdd6048" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-mvc-plugin-fileprg/zipball/87184f33dbb98eb57c7338a5f026cca29bdd6048", - "reference": "87184f33dbb98eb57c7338a5f026cca29bdd6048", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-filter": "^2.6.1", - "zendframework/zend-form": "^2.7", - "zendframework/zend-inputfilter": "^2.8.1", - "zendframework/zend-mvc": "^3.0", - "zendframework/zend-session": "^2.8.5", - "zendframework/zend-stdlib": "^2.7 || ^3.0", - "zendframework/zend-validator": "^2.6" - }, - "conflict": { - "zendframework/zend-mvc": "<3.0.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.5", - "zendframework/zend-coding-standard": "~1.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev", - "dev-develop": "1.2.x-dev" - }, - "zf": { - "component": "Zend\\Mvc\\Plugin\\FilePrg" - } - }, - "autoload": { - "psr-4": { - "Zend\\Mvc\\Plugin\\FilePrg\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Post/Redirect/Get plugin with file upload handling for zend-mvc controllers", - "keywords": [ - "ZendFramework", - "mvc", - "zf" - ], - "abandoned": "laminas/laminas-mvc-plugin-fileprg", - "time": "2018-04-30T20:02:13+00:00" - }, - { - "name": "zendframework/zend-mvc-plugin-flashmessenger", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-mvc-plugin-flashmessenger.git", - "reference": "b66064eb59d3b124a133d259aac3d9dd7cb81706" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-mvc-plugin-flashmessenger/zipball/b66064eb59d3b124a133d259aac3d9dd7cb81706", - "reference": "b66064eb59d3b124a133d259aac3d9dd7cb81706", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-mvc": "^3.0", - "zendframework/zend-session": "^2.8.5", - "zendframework/zend-stdlib": "^3.2.1", - "zendframework/zend-view": "^2.10" - }, - "conflict": { - "zendframework/zend-mvc": "<3.0.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-i18n": "^2.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev", - "dev-develop": "1.3.x-dev" - }, - "zf": { - "component": "Zend\\Mvc\\Plugin\\FlashMessenger" - } - }, - "autoload": { - "psr-4": { - "Zend\\Mvc\\Plugin\\FlashMessenger\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Plugin for creating and exposing flash messages via zend-mvc controllers", - "keywords": [ - "ZendFramework", - "mvc", - "zf" - ], - "abandoned": "laminas/laminas-mvc-plugin-flashmessenger", - "time": "2019-10-19T22:24:02+00:00" - }, - { - "name": "zendframework/zend-mvc-plugin-identity", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-mvc-plugin-identity.git", - "reference": "21473f4fa5381ce947593c2fec0f5d7f18693b4a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-mvc-plugin-identity/zipball/21473f4fa5381ce947593c2fec0f5d7f18693b4a", - "reference": "21473f4fa5381ce947593c2fec0f5d7f18693b4a", - "shasum": "" - }, - "require": { - "container-interop/container-interop": "^1.1", - "php": "^5.6 || ^7.0", - "zendframework/zend-authentication": "^2.5.3", - "zendframework/zend-mvc": "^3.0", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3" - }, - "conflict": { - "zendframework/zend-mvc": "<3.0.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4", - "zendframework/zend-coding-standard": "~1.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev", - "dev-develop": "1.2.x-dev" - }, - "zf": { - "component": "Zend\\Mvc\\Plugin\\Identity" - } - }, - "autoload": { - "psr-4": { - "Zend\\Mvc\\Plugin\\Identity\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Plugin for retrieving the current authenticated identity within zend-mvc controllers", - "keywords": [ - "ZendFramework", - "mvc", - "zf" - ], - "abandoned": "laminas/laminas-mvc-plugin-identity", - "time": "2019-10-18T08:47:00+00:00" - }, - { - "name": "zendframework/zend-mvc-plugin-prg", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-mvc-plugin-prg.git", - "reference": "090afc28bcf0f7043ed8d7da712ac1b5964ab7d7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-mvc-plugin-prg/zipball/090afc28bcf0f7043ed8d7da712ac1b5964ab7d7", - "reference": "090afc28bcf0f7043ed8d7da712ac1b5964ab7d7", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-mvc": "^3.0", - "zendframework/zend-session": "^2.8.5", - "zendframework/zend-stdlib": "^3.2.1" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4", - "zendframework/zend-coding-standard": "~1.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev", - "dev-develop": "1.3.x-dev" - }, - "zf": { - "component": "Zend\\Mvc\\Plugin\\Prg" - } - }, - "autoload": { - "psr-4": { - "Zend\\Mvc\\Plugin\\Prg\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Post/Redirect/Get plugin for zend-mvc controllers", - "keywords": [ - "ZendFramework", - "mvc", - "zf" - ], - "abandoned": "laminas/laminas-mvc-plugin-prg", - "time": "2019-10-19T22:46:04+00:00" - }, - { - "name": "zendframework/zend-mvc-plugins", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-mvc-plugins.git", - "reference": "b00cda46b0a95cbd32ea0743d6d7dc3fd2263f1b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-mvc-plugins/zipball/b00cda46b0a95cbd32ea0743d6d7dc3fd2263f1b", - "reference": "b00cda46b0a95cbd32ea0743d6d7dc3fd2263f1b", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-mvc-plugin-fileprg": "^1.0", - "zendframework/zend-mvc-plugin-flashmessenger": "^1.0", - "zendframework/zend-mvc-plugin-identity": "^1.0", - "zendframework/zend-mvc-plugin-prg": "^1.0" - }, - "type": "metapackage", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - }, - "zf": { - "component": [ - "Zend\\Mvc\\Plugin\\FilePrg", - "Zend\\Mvc\\Plugin\\FlashMessenger", - "Zend\\Mvc\\Plugin\\Identity", - "Zend\\Mvc\\Plugin\\Prg" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Collection of all stable zend-mvc plugins served via separate packages.", - "homepage": "https://github.com/zendframework/zend-mvc-plugins", - "keywords": [ - "mvc", - "plugins", - "zf2" - ], - "abandoned": "laminas/laminas-mvc-plugins", - "time": "2016-06-02T18:41:26+00:00" - }, - { - "name": "zendframework/zend-navigation", - "version": "2.9.1", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-navigation.git", - "reference": "fd3c60b83e816cfb67b53c2193372ac19469a609" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-navigation/zipball/fd3c60b83e816cfb67b53c2193372ac19469a609", - "reference": "fd3c60b83e816cfb67b53c2193372ac19469a609", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-stdlib": "^2.7 || ^3.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-config": "^2.6 || ^3.1", - "zendframework/zend-console": "^2.6", - "zendframework/zend-http": "^2.6", - "zendframework/zend-i18n": "^2.7.3", - "zendframework/zend-log": "^2.9.1", - "zendframework/zend-mvc": "^2.7.9 || ^3.0.4", - "zendframework/zend-permissions-acl": "^2.6", - "zendframework/zend-router": "^3.0.2", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", - "zendframework/zend-uri": "^2.5.2", - "zendframework/zend-view": "^2.9" - }, - "suggest": { - "zendframework/zend-config": "^2.6 || ^3.1, to provide page configuration (optional, as arrays and Traversables are also allowed)", - "zendframework/zend-permissions-acl": "^2.6, to provide ACL-based access restrictions to pages", - "zendframework/zend-router": "^3.0, to use router-based URI generation with Mvc pages", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3, to use the navigation factories", - "zendframework/zend-view": "^2.8.1, to use the navigation view helpers" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.9.x-dev", - "dev-develop": "2.10.x-dev" - }, - "zf": { - "component": "Zend\\Navigation", - "config-provider": "Zend\\Navigation\\ConfigProvider" - } - }, - "autoload": { - "psr-4": { - "Zend\\Navigation\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Manage trees of pointers to web pages in order to build navigation systems", - "keywords": [ - "ZendFramework", - "navigation", - "zf" - ], - "abandoned": "laminas/laminas-navigation", - "time": "2019-08-21T08:28:20+00:00" - }, - { - "name": "zendframework/zend-paginator", - "version": "2.8.2", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-paginator.git", - "reference": "2b4d07d9475ed581278a28d065b238a0941402e2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-paginator/zipball/2b4d07d9475ed581278a28d065b238a0941402e2", - "reference": "2b4d07d9475ed581278a28d065b238a0941402e2", - "shasum": "" - }, - "require": { - "php": "^7.0 || ^5.6", - "zendframework/zend-stdlib": "^2.7 || ^3.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.2.1 || ^5.7.15", - "zendframework/zend-cache": "^2.6.1", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-config": "^2.6.0", - "zendframework/zend-db": "^2.9.2", - "zendframework/zend-filter": "^2.6.1", - "zendframework/zend-json": "^2.6.1", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", - "zendframework/zend-view": "^2.6.3" - }, - "suggest": { - "zendframework/zend-cache": "Zend\\Cache component to support cache features", - "zendframework/zend-db": "Zend\\Db component", - "zendframework/zend-filter": "Zend\\Filter component", - "zendframework/zend-json": "Zend\\Json component", - "zendframework/zend-servicemanager": "Zend\\ServiceManager component", - "zendframework/zend-view": "Zend\\View component" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8.x-dev", - "dev-develop": "2.9.x-dev" - }, - "zf": { - "component": "Zend\\Paginator", - "config-provider": "Zend\\Paginator\\ConfigProvider" - } - }, - "autoload": { - "psr-4": { - "Zend\\Paginator\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Paginate collections of data from arbitrary sources", - "keywords": [ - "ZendFramework", - "paginator", - "zf" - ], - "abandoned": "laminas/laminas-paginator", - "time": "2019-08-21T13:31:03+00:00" - }, - { - "name": "zendframework/zend-permissions-acl", - "version": "2.7.1", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-permissions-acl.git", - "reference": "1323e30a9357e6f6956f63d97faf7e8c8db1f4f8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-permissions-acl/zipball/1323e30a9357e6f6956f63d97faf7e8c8db1f4f8", - "reference": "1323e30a9357e6f6956f63d97faf7e8c8db1f4f8", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.5", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3" - }, - "suggest": { - "zendframework/zend-servicemanager": "To support Zend\\Permissions\\Acl\\Assertion\\AssertionManager plugin manager usage" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.7.x-dev", - "dev-develop": "2.8.x-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\Permissions\\Acl\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Provides a lightweight and flexible access control list (ACL) implementation for privileges management", - "keywords": [ - "ZendFramework", - "acl", - "zf" - ], - "abandoned": "laminas/laminas-permissions-acl", - "time": "2019-06-25T08:09:22+00:00" - }, - { - "name": "zendframework/zend-progressbar", - "version": "2.7.0", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-progressbar.git", - "reference": "f5b885453c4c789ddc86e395ae553df5b4148d15" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-progressbar/zipball/f5b885453c4c789ddc86e395ae553df5b4148d15", - "reference": "f5b885453c4c789ddc86e395ae553df5b4148d15", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-stdlib": "^3.2.1" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-json": "^2.6.1", - "zendframework/zend-session": "^2.8.5" - }, - "suggest": { - "zendframework/zend-json": "Zend\\Json component", - "zendframework/zend-session": "To support progressbar persistent" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.7.x-dev", - "dev-develop": "2.8.x-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\ProgressBar\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Create and update progress bars in different environments", - "keywords": [ - "ZendFramework", - "progressbar", - "zf" - ], - "abandoned": "laminas/laminas-progressbar", - "time": "2019-10-17T14:52:53+00:00" - }, - { - "name": "zendframework/zend-router", - "version": "3.3.0", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-router.git", - "reference": "b113a4cfd910ee4723079fa58a9bcf3198631620" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-router/zipball/b113a4cfd910ee4723079fa58a9bcf3198631620", - "reference": "b113a4cfd910ee4723079fa58a9bcf3198631620", - "shasum": "" - }, - "require": { - "container-interop/container-interop": "^1.2", - "php": "^5.6 || ^7.0", - "zendframework/zend-http": "^2.8.1", - "zendframework/zend-servicemanager": "^2.7.8 || ^3.3", - "zendframework/zend-stdlib": "^3.2.1" - }, - "conflict": { - "zendframework/zend-mvc": "<3.0.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.22 || ^6.4.1", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-i18n": "^2.7.4" - }, - "suggest": { - "zendframework/zend-i18n": "^2.7.4, if defining translatable HTTP path segments" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.3.x-dev", - "dev-develop": "4.0.x-dev" - }, - "zf": { - "component": "Zend\\Router", - "config-provider": "Zend\\Router\\ConfigProvider" - } - }, - "autoload": { - "psr-4": { - "Zend\\Router\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Flexible routing system for HTTP and console applications", - "keywords": [ - "ZendFramework", - "mvc", - "routing", - "zend", - "zf" - ], - "abandoned": "laminas/laminas-router", - "time": "2019-02-26T20:24:12+00:00" - }, - { - "name": "zendframework/zend-serializer", - "version": "2.9.1", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-serializer.git", - "reference": "6fb7ae016cfdf0cfcdfa2b989e6a65f351170e21" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-serializer/zipball/6fb7ae016cfdf0cfcdfa2b989e6a65f351170e21", - "reference": "6fb7ae016cfdf0cfcdfa2b989e6a65f351170e21", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-json": "^2.5 || ^3.0", - "zendframework/zend-stdlib": "^2.7 || ^3.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.16", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-math": "^2.6 || ^3.0", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3" - }, - "suggest": { - "zendframework/zend-math": "(^2.6 || ^3.0) To support Python Pickle serialization", - "zendframework/zend-servicemanager": "(^2.7.5 || ^3.0.3) To support plugin manager support" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.9.x-dev", - "dev-develop": "2.10.x-dev" - }, - "zf": { - "component": "Zend\\Serializer", - "config-provider": "Zend\\Serializer\\ConfigProvider" - } - }, - "autoload": { - "psr-4": { - "Zend\\Serializer\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Serialize and deserialize PHP structures to a variety of representations", - "keywords": [ - "ZendFramework", - "serializer", - "zf" - ], - "abandoned": "laminas/laminas-serializer", - "time": "2019-10-19T08:06:30+00:00" - }, - { - "name": "zendframework/zend-servicemanager", - "version": "3.4.0", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-servicemanager.git", - "reference": "a1ed6140d0d3ee803fec96582593ed024950067b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-servicemanager/zipball/a1ed6140d0d3ee803fec96582593ed024950067b", - "reference": "a1ed6140d0d3ee803fec96582593ed024950067b", - "shasum": "" - }, - "require": { - "container-interop/container-interop": "^1.2", - "php": "^5.6 || ^7.0", - "psr/container": "^1.0", - "zendframework/zend-stdlib": "^3.2.1" - }, - "provide": { - "container-interop/container-interop-implementation": "^1.2", - "psr/container-implementation": "^1.0" - }, - "require-dev": { - "mikey179/vfsstream": "^1.6.5", - "ocramius/proxy-manager": "^1.0 || ^2.0", - "phpbench/phpbench": "^0.13.0", - "phpunit/phpunit": "^5.7.25 || ^6.4.4", - "zendframework/zend-coding-standard": "~1.0.0" - }, - "suggest": { - "ocramius/proxy-manager": "ProxyManager 1.* to handle lazy initialization of services", - "zendframework/zend-stdlib": "zend-stdlib ^2.5 if you wish to use the MergeReplaceKey or MergeRemoveKey features in Config instances" - }, - "bin": [ - "bin/generate-deps-for-config-factory", - "bin/generate-factory-for-class" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.3-dev", - "dev-develop": "4.0-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\ServiceManager\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Factory-Driven Dependency Injection Container", - "keywords": [ - "PSR-11", - "ZendFramework", - "dependency-injection", - "di", - "dic", - "service-manager", - "servicemanager", - "zf" - ], - "abandoned": "laminas/laminas-servicemanager", - "time": "2018-12-22T06:05:09+00:00" - }, - { - "name": "zendframework/zend-servicemanager-di", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-servicemanager-di.git", - "reference": "aaf6fb59fccd32ffdf5ac8ffbd54f99e8e359d5b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-servicemanager-di/zipball/aaf6fb59fccd32ffdf5ac8ffbd54f99e8e359d5b", - "reference": "aaf6fb59fccd32ffdf5ac8ffbd54f99e8e359d5b", - "shasum": "" - }, - "require": { - "container-interop/container-interop": "^1.1", - "php": "^5.6 || ^7.0", - "zendframework/zend-di": "^2.6", - "zendframework/zend-servicemanager": "^3.0.3" - }, - "conflict": { - "zendframework/zend-servicemanager": "<3.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4", - "zendframework/zend-coding-standard": "~1.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev", - "dev-develop": "1.3.x-dev" - }, - "zf": { - "component": "Zend\\ServiceManager\\Di", - "config-provider": "Zend\\ServiceManager\\Di\\ConfigProvider" - } - }, - "autoload": { - "psr-4": { - "Zend\\ServiceManager\\Di\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "zend-di integration for zend-servicemanager", - "keywords": [ - "ZendFramework", - "di", - "zf" - ], - "abandoned": "laminas/laminas-servicemanager-di", - "time": "2019-10-18T18:22:09+00:00" - }, - { - "name": "zendframework/zend-session", - "version": "2.9.1", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-session.git", - "reference": "c289c4d733ec23a389e25c7c451f4d062088511f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-session/zipball/c289c4d733ec23a389e25c7c451f4d062088511f", - "reference": "c289c4d733ec23a389e25c7c451f4d062088511f", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-eventmanager": "^2.6.2 || ^3.0", - "zendframework/zend-stdlib": "^3.2.1" - }, - "require-dev": { - "container-interop/container-interop": "^1.1", - "mongodb/mongodb": "^1.0.1", - "php-mock/php-mock-phpunit": "^1.1.2 || ^2.0", - "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.16", - "zendframework/zend-cache": "^2.6.1", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-db": "^2.7", - "zendframework/zend-http": "^2.5.4", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", - "zendframework/zend-validator": "^2.6" - }, - "suggest": { - "mongodb/mongodb": "If you want to use the MongoDB session save handler", - "zendframework/zend-cache": "Zend\\Cache component", - "zendframework/zend-db": "Zend\\Db component", - "zendframework/zend-http": "Zend\\Http component", - "zendframework/zend-servicemanager": "Zend\\ServiceManager component", - "zendframework/zend-validator": "Zend\\Validator component" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.9.x-dev", - "dev-develop": "2.10.x-dev" - }, - "zf": { - "component": "Zend\\Session", - "config-provider": "Zend\\Session\\ConfigProvider" - } - }, - "autoload": { - "psr-4": { - "Zend\\Session\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Object-oriented interface to PHP sessions and storage", - "keywords": [ - "ZendFramework", - "session", - "zf" - ], - "abandoned": "laminas/laminas-session", - "time": "2019-10-28T19:40:43+00:00" - }, - { - "name": "zendframework/zend-stdlib", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-stdlib.git", - "reference": "66536006722aff9e62d1b331025089b7ec71c065" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/66536006722aff9e62d1b331025089b7ec71c065", - "reference": "66536006722aff9e62d1b331025089b7ec71c065", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpbench/phpbench": "^0.13", - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", - "zendframework/zend-coding-standard": "~1.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2.x-dev", - "dev-develop": "3.3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\Stdlib\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "SPL extensions, array utilities, error handlers, and more", - "keywords": [ - "ZendFramework", - "stdlib", - "zf" - ], - "abandoned": "laminas/laminas-stdlib", - "time": "2018-08-28T21:34:05+00:00" - }, - { - "name": "zendframework/zend-text", - "version": "2.7.1", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-text.git", - "reference": "41e32dafa4015e160e2f95a7039554385c71624d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-text/zipball/41e32dafa4015e160e2f95a7039554385c71624d", - "reference": "41e32dafa4015e160e2f95a7039554385c71624d", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", - "zendframework/zend-stdlib": "^2.7 || ^3.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-config": "^2.6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.7.x-dev", - "dev-develop": "2.8.x-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\Text\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Create FIGlets and text-based tables", - "keywords": [ - "ZendFramework", - "text", - "zf" - ], - "abandoned": "laminas/laminas-text", - "time": "2019-10-16T20:36:27+00:00" - }, - { - "name": "zendframework/zend-uri", - "version": "2.7.1", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-uri.git", - "reference": "bfc4a5b9a309711e968d7c72afae4ac50c650083" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-uri/zipball/bfc4a5b9a309711e968d7c72afae4ac50c650083", - "reference": "bfc4a5b9a309711e968d7c72afae4ac50c650083", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-escaper": "^2.5", - "zendframework/zend-validator": "^2.10" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4", - "zendframework/zend-coding-standard": "~1.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.7.x-dev", - "dev-develop": "2.8.x-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\Uri\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "A component that aids in manipulating and validating » Uniform Resource Identifiers (URIs)", - "keywords": [ - "ZendFramework", - "uri", - "zf" - ], - "abandoned": "laminas/laminas-uri", - "time": "2019-10-07T13:35:33+00:00" - }, - { - "name": "zendframework/zend-validator", - "version": "2.13.0", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-validator.git", - "reference": "b54acef1f407741c5347f2a97f899ab21f2229ef" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-validator/zipball/b54acef1f407741c5347f2a97f899ab21f2229ef", - "reference": "b54acef1f407741c5347f2a97f899ab21f2229ef", - "shasum": "" - }, - "require": { - "container-interop/container-interop": "^1.1", - "php": "^7.1", - "zendframework/zend-stdlib": "^3.2.1" - }, - "require-dev": { - "phpunit/phpunit": "^6.0.8 || ^5.7.15", - "psr/http-client": "^1.0", - "psr/http-factory": "^1.0", - "psr/http-message": "^1.0", - "zendframework/zend-cache": "^2.6.1", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-config": "^2.6", - "zendframework/zend-db": "^2.7", - "zendframework/zend-filter": "^2.6", - "zendframework/zend-http": "^2.5.4", - "zendframework/zend-i18n": "^2.6", - "zendframework/zend-math": "^2.6", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", - "zendframework/zend-session": "^2.8", - "zendframework/zend-uri": "^2.5" - }, - "suggest": { - "psr/http-message": "psr/http-message, required when validating PSR-7 UploadedFileInterface instances via the Upload and UploadFile validators", - "zendframework/zend-db": "Zend\\Db component, required by the (No)RecordExists validator", - "zendframework/zend-filter": "Zend\\Filter component, required by the Digits validator", - "zendframework/zend-i18n": "Zend\\I18n component to allow translation of validation error messages", - "zendframework/zend-i18n-resources": "Translations of validator messages", - "zendframework/zend-math": "Zend\\Math component, required by the Csrf validator", - "zendframework/zend-servicemanager": "Zend\\ServiceManager component to allow using the ValidatorPluginManager and validator chains", - "zendframework/zend-session": "Zend\\Session component, ^2.8; required by the Csrf validator", - "zendframework/zend-uri": "Zend\\Uri component, required by the Uri and Sitemap\\Loc validators" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.13.x-dev", - "dev-develop": "2.14.x-dev" - }, - "zf": { - "component": "Zend\\Validator", - "config-provider": "Zend\\Validator\\ConfigProvider" - } - }, - "autoload": { - "psr-4": { - "Zend\\Validator\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Validation classes for a wide range of domains, and the ability to chain validators to create complex validation criteria", - "keywords": [ - "ZendFramework", - "validator", - "zf" - ], - "abandoned": "laminas/laminas-validator", - "time": "2019-12-28T04:07:18+00:00" - }, - { - "name": "zendframework/zend-view", - "version": "2.11.4", - "source": { - "type": "git", - "url": "https://github.com/zendframework/zend-view.git", - "reference": "a8b1b2d9b52e191539be861a6529f8c8a0c06b9d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-view/zipball/a8b1b2d9b52e191539be861a6529f8c8a0c06b9d", - "reference": "a8b1b2d9b52e191539be861a6529f8c8a0c06b9d", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-eventmanager": "^2.6.2 || ^3.0", - "zendframework/zend-json": "^2.6.1 || ^3.0", - "zendframework/zend-loader": "^2.5", - "zendframework/zend-stdlib": "^2.7 || ^3.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.15 || ^6.0.8", - "zendframework/zend-authentication": "^2.5", - "zendframework/zend-cache": "^2.6.1", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-config": "^2.6", - "zendframework/zend-console": "^2.6", - "zendframework/zend-escaper": "^2.5", - "zendframework/zend-feed": "^2.7", - "zendframework/zend-filter": "^2.6.1", - "zendframework/zend-http": "^2.5.4", - "zendframework/zend-i18n": "^2.6", - "zendframework/zend-log": "^2.7", - "zendframework/zend-modulemanager": "^2.7.1", - "zendframework/zend-mvc": "^2.7.14 || ^3.0", - "zendframework/zend-navigation": "^2.5", - "zendframework/zend-paginator": "^2.5", - "zendframework/zend-permissions-acl": "^2.6", - "zendframework/zend-router": "^3.0.1", - "zendframework/zend-serializer": "^2.6.1", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", - "zendframework/zend-session": "^2.8.1", - "zendframework/zend-uri": "^2.5" - }, - "suggest": { - "zendframework/zend-authentication": "Zend\\Authentication component", - "zendframework/zend-escaper": "Zend\\Escaper component", - "zendframework/zend-feed": "Zend\\Feed component", - "zendframework/zend-filter": "Zend\\Filter component", - "zendframework/zend-http": "Zend\\Http component", - "zendframework/zend-i18n": "Zend\\I18n component", - "zendframework/zend-mvc": "Zend\\Mvc component", - "zendframework/zend-mvc-plugin-flashmessenger": "zend-mvc-plugin-flashmessenger component, if you want to use the FlashMessenger view helper with zend-mvc versions 3 and up", - "zendframework/zend-navigation": "Zend\\Navigation component", - "zendframework/zend-paginator": "Zend\\Paginator component", - "zendframework/zend-permissions-acl": "Zend\\Permissions\\Acl component", - "zendframework/zend-servicemanager": "Zend\\ServiceManager component", - "zendframework/zend-uri": "Zend\\Uri component" - }, - "bin": [ - "bin/templatemap_generator.php" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.11.x-dev", - "dev-develop": "2.12.x-dev" - } - }, - "autoload": { - "psr-4": { - "Zend\\View\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Flexible view layer supporting and providing multiple view layers, helpers, and more", - "keywords": [ - "ZendFramework", - "view", - "zf" - ], - "abandoned": "laminas/laminas-view", - "time": "2019-12-04T08:40:50+00:00" - }, - { - "name": "zendframework/zendservice-recaptcha", - "version": "3.2.0", - "source": { - "type": "git", - "url": "https://github.com/zendframework/ZendService_ReCaptcha.git", - "reference": "b21625c54f19ba5be5c90ab9fa167ca075cd1594" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/zendframework/ZendService_ReCaptcha/zipball/b21625c54f19ba5be5c90ab9fa167ca075cd1594", - "reference": "b21625c54f19ba5be5c90ab9fa167ca075cd1594", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-http": "^2.5.4", - "zendframework/zend-json": "^2.6.1 || ^3.0", - "zendframework/zend-stdlib": "^3.2.1" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.5", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-config": "^2.0", - "zendframework/zend-validator": "^2.8.2" - }, - "suggest": { - "zendframework/zend-validator": "~2.0, if using ReCaptcha's Mailhide API" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2.x-dev", - "dev-develop": "3.3.x-dev" - } - }, - "autoload": { - "psr-4": { - "ZendService\\ReCaptcha\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "OOP wrapper for the ReCaptcha web service", - "keywords": [ - "ZendFramework", - "recaptcha", - "zf" - ], - "abandoned": "laminas/laminas-recaptcha", - "time": "2019-02-07T17:41:56+00:00" - } - ], - "packages-dev": [ - { - "name": "behat/behat", - "version": "v3.6.1", - "source": { - "type": "git", - "url": "https://github.com/Behat/Behat.git", - "reference": "9bfe195b4745c32e068af03fa4df9558b4916d30" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Behat/Behat/zipball/9bfe195b4745c32e068af03fa4df9558b4916d30", - "reference": "9bfe195b4745c32e068af03fa4df9558b4916d30", - "shasum": "" - }, - "require": { - "behat/gherkin": "^4.6.0", - "behat/transliterator": "^1.2", - "container-interop/container-interop": "^1.2", - "ext-mbstring": "*", - "php": ">=5.3.3", - "psr/container": "^1.0", - "symfony/config": "^2.7.51 || ^3.0 || ^4.0 || ^5.0", - "symfony/console": "^2.7.51 || ^2.8.33 || ^3.3.15 || ^3.4.3 || ^4.0.3 || ^5.0", - "symfony/dependency-injection": "^2.7.51 || ^3.0 || ^4.0 || ^5.0", - "symfony/event-dispatcher": "^2.7.51 || ^3.0 || ^4.0 || ^5.0", - "symfony/translation": "^2.7.51 || ^3.0 || ^4.0 || ^5.0", - "symfony/yaml": "^2.7.51 || ^3.0 || ^4.0 || ^5.0" - }, - "require-dev": { - "herrera-io/box": "~1.6.1", - "phpunit/phpunit": "^4.8.36 || ^6.3", - "symfony/process": "~2.5 || ^3.0 || ^4.0 || ^5.0" - }, - "suggest": { - "ext-dom": "Needed to output test results in JUnit format." - }, - "bin": [ - "bin/behat" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.6.x-dev" - } - }, - "autoload": { - "psr-4": { - "Behat\\Behat\\": "src/Behat/Behat/", - "Behat\\Testwork\\": "src/Behat/Testwork/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - } - ], - "description": "Scenario-oriented BDD framework for PHP 5.3", - "homepage": "http://behat.org/", - "keywords": [ - "Agile", - "BDD", - "ScenarioBDD", - "Scrum", - "StoryBDD", - "User story", - "business", - "development", - "documentation", - "examples", - "symfony", - "testing" - ], - "time": "2020-02-06T09:54:48+00:00" - }, - { - "name": "behat/gherkin", - "version": "v4.6.0", - "source": { - "type": "git", - "url": "https://github.com/Behat/Gherkin.git", - "reference": "ab0a02ea14893860bca00f225f5621d351a3ad07" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/ab0a02ea14893860bca00f225f5621d351a3ad07", - "reference": "ab0a02ea14893860bca00f225f5621d351a3ad07", - "shasum": "" - }, - "require": { - "php": ">=5.3.1" - }, - "require-dev": { - "phpunit/phpunit": "~4.5|~5", - "symfony/phpunit-bridge": "~2.7|~3|~4", - "symfony/yaml": "~2.3|~3|~4" - }, - "suggest": { - "symfony/yaml": "If you want to parse features, represented in YAML files" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "autoload": { - "psr-0": { - "Behat\\Gherkin": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - } - ], - "description": "Gherkin DSL parser for PHP 5.3", - "homepage": "http://behat.org/", - "keywords": [ - "BDD", - "Behat", - "Cucumber", - "DSL", - "gherkin", - "parser" - ], - "time": "2019-01-16T14:22:17+00:00" - }, - { - "name": "behat/mink", - "version": "v1.7.1", - "source": { - "type": "git", - "url": "https://github.com/minkphp/Mink.git", - "reference": "e6930b9c74693dff7f4e58577e1b1743399f3ff9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/minkphp/Mink/zipball/e6930b9c74693dff7f4e58577e1b1743399f3ff9", - "reference": "e6930b9c74693dff7f4e58577e1b1743399f3ff9", - "shasum": "" - }, - "require": { - "php": ">=5.3.1", - "symfony/css-selector": "~2.1|~3.0" - }, - "require-dev": { - "symfony/phpunit-bridge": "~2.7|~3.0" - }, - "suggest": { - "behat/mink-browserkit-driver": "extremely fast headless driver for Symfony\\Kernel-based apps (Sf2, Silex)", - "behat/mink-goutte-driver": "fast headless driver for any app without JS emulation", - "behat/mink-selenium2-driver": "slow, but JS-enabled driver for any app (requires Selenium2)", - "behat/mink-zombie-driver": "fast and JS-enabled headless driver for any app (requires node.js)" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.7.x-dev" - } - }, - "autoload": { - "psr-4": { - "Behat\\Mink\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - } - ], - "description": "Browser controller/emulator abstraction for PHP", - "homepage": "http://mink.behat.org/", - "keywords": [ - "browser", - "testing", - "web" - ], - "time": "2016-03-05T08:26:18+00:00" - }, - { - "name": "behat/mink-browserkit-driver", - "version": "1.3.3", - "source": { - "type": "git", - "url": "https://github.com/minkphp/MinkBrowserKitDriver.git", - "reference": "1b9a7ce903cfdaaec5fb32bfdbb26118343662eb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/minkphp/MinkBrowserKitDriver/zipball/1b9a7ce903cfdaaec5fb32bfdbb26118343662eb", - "reference": "1b9a7ce903cfdaaec5fb32bfdbb26118343662eb", - "shasum": "" - }, - "require": { - "behat/mink": "^1.7.1@dev", - "php": ">=5.3.6", - "symfony/browser-kit": "~2.3|~3.0|~4.0", - "symfony/dom-crawler": "~2.3|~3.0|~4.0" - }, - "require-dev": { - "mink/driver-testsuite": "dev-master", - "symfony/http-kernel": "~2.3|~3.0|~4.0" - }, - "type": "mink-driver", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Behat\\Mink\\Driver\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - } - ], - "description": "Symfony2 BrowserKit driver for Mink framework", - "homepage": "http://mink.behat.org/", - "keywords": [ - "Mink", - "Symfony2", - "browser", - "testing" - ], - "time": "2018-05-02T09:25:31+00:00" - }, - { - "name": "behat/mink-extension", - "version": "2.3.1", - "source": { - "type": "git", - "url": "https://github.com/Behat/MinkExtension.git", - "reference": "80f7849ba53867181b7e412df9210e12fba50177" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Behat/MinkExtension/zipball/80f7849ba53867181b7e412df9210e12fba50177", - "reference": "80f7849ba53867181b7e412df9210e12fba50177", - "shasum": "" - }, - "require": { - "behat/behat": "^3.0.5", - "behat/mink": "^1.5", - "php": ">=5.3.2", - "symfony/config": "^2.7|^3.0|^4.0" - }, - "require-dev": { - "behat/mink-goutte-driver": "^1.1", - "phpspec/phpspec": "^2.0" - }, - "type": "behat-extension", - "extra": { - "branch-alias": { - "dev-master": "2.1.x-dev" - } - }, - "autoload": { - "psr-0": { - "Behat\\MinkExtension": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Christophe Coevoet", - "email": "stof@notk.org" - }, - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com" - } - ], - "description": "Mink extension for Behat", - "homepage": "http://extensions.behat.org/mink", - "keywords": [ - "browser", - "gui", - "test", - "web" - ], - "time": "2018-02-06T15:36:30+00:00" - }, - { - "name": "behat/mink-selenium2-driver", - "version": "v1.3.1", - "source": { - "type": "git", - "url": "https://github.com/minkphp/MinkSelenium2Driver.git", - "reference": "473a9f3ebe0c134ee1e623ce8a9c852832020288" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/minkphp/MinkSelenium2Driver/zipball/473a9f3ebe0c134ee1e623ce8a9c852832020288", - "reference": "473a9f3ebe0c134ee1e623ce8a9c852832020288", - "shasum": "" - }, - "require": { - "behat/mink": "~1.7@dev", - "instaclick/php-webdriver": "~1.1", - "php": ">=5.3.1" - }, - "require-dev": { - "symfony/phpunit-bridge": "~2.7" - }, - "type": "mink-driver", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Behat\\Mink\\Driver\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Pete Otaqui", - "email": "pete@otaqui.com", - "homepage": "https://github.com/pete-otaqui" - } - ], - "description": "Selenium2 (WebDriver) driver for Mink framework", - "homepage": "http://mink.behat.org/", - "keywords": [ - "ajax", - "browser", - "javascript", - "selenium", - "testing", - "webdriver" - ], - "time": "2016-03-05T09:10:18+00:00" - }, - { - "name": "behat/transliterator", - "version": "v1.3.0", - "source": { - "type": "git", - "url": "https://github.com/Behat/Transliterator.git", - "reference": "3c4ec1d77c3d05caa1f0bf8fb3aae4845005c7fc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Behat/Transliterator/zipball/3c4ec1d77c3d05caa1f0bf8fb3aae4845005c7fc", - "reference": "3c4ec1d77c3d05caa1f0bf8fb3aae4845005c7fc", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "chuyskywalker/rolling-curl": "^3.1", - "php-yaoi/php-yaoi": "^1.0", - "phpunit/phpunit": "^4.8.36|^6.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2-dev" - } - }, - "autoload": { - "psr-4": { - "Behat\\Transliterator\\": "src/Behat/Transliterator" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Artistic-1.0" - ], - "description": "String transliterator", - "keywords": [ - "i18n", - "slug", - "transliterator" - ], - "time": "2020-01-14T16:39:13+00:00" - }, - { - "name": "cross-solution/phpunit-utils", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/cross-solution/phpunit-utils.git", - "reference": "0eec4a71b48b0b1757636732255c40acd1fedd17" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/cross-solution/phpunit-utils/zipball/0eec4a71b48b0b1757636732255c40acd1fedd17", - "reference": "0eec4a71b48b0b1757636732255c40acd1fedd17", - "shasum": "" - }, - "require": { - "php": ">=7.2", - "phpunit/phpunit": "^8.0" - }, - "require-dev": { - "php-mock/php-mock-prophecy": "^0.0.2", - "psr/container": "^1.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Cross\\TestUtils\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mathias Gelhausen", - "email": "gelhausen@cross-solution.de" - } - ], - "description": "Utilities to aid in writing unit tests with the PHPUnit Framework", - "keywords": [ - "helper", - "phpunit", - "testing", - "utilities" - ], - "time": "2019-06-21T12:00:58+00:00" - }, - { - "name": "enm1989/chromedriver", - "version": "2.46", - "source": { - "type": "git", - "url": "https://github.com/ENM1989/chromedriver.git", - "reference": "08927b4412eb1bb668c42797139c8a82ffde2087" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ENM1989/chromedriver/zipball/08927b4412eb1bb668c42797139c8a82ffde2087", - "reference": "08927b4412eb1bb668c42797139c8a82ffde2087", - "shasum": "" - }, - "bin": [ - "bin/chromedriver" - ], - "type": "library", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Nico Müller", - "email": "nico.mueller.1989@googlemail.com" - } - ], - "description": "Composer distribution of Chromedriver. Adds a executable to your composer bin directory.", - "homepage": "https://github.com/ENM1989/chromedriver", - "keywords": [ - "Chromedriver", - "chrome", - "selenium", - "webdriver" - ], - "time": "2019-03-17T19:47:18+00:00" - }, - { - "name": "instaclick/php-webdriver", - "version": "1.4.7", - "source": { - "type": "git", - "url": "https://github.com/instaclick/php-webdriver.git", - "reference": "b5f330e900e9b3edfc18024a5ec8c07136075712" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/b5f330e900e9b3edfc18024a5ec8c07136075712", - "reference": "b5f330e900e9b3edfc18024a5ec8c07136075712", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "^4.8", - "satooshi/php-coveralls": "^1.0||^2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, - "autoload": { - "psr-0": { - "WebDriver": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Justin Bishop", - "email": "jubishop@gmail.com", - "role": "Developer" - }, - { - "name": "Anthon Pang", - "email": "apang@softwaredevelopment.ca", - "role": "Fork Maintainer" - } - ], - "description": "PHP WebDriver for Selenium 2", - "homepage": "http://instaclick.com/", - "keywords": [ - "browser", - "selenium", - "webdriver", - "webtest" - ], - "time": "2019-09-25T09:05:11+00:00" - }, - { - "name": "lakion/mink-debug-extension", - "version": "v1.2.3", - "source": { - "type": "git", - "url": "https://github.com/Lakion/MinkDebugExtension.git", - "reference": "fb04a47076df15ff38e6c7d298aac93dd6a63468" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Lakion/MinkDebugExtension/zipball/fb04a47076df15ff38e6c7d298aac93dd6a63468", - "reference": "fb04a47076df15ff38e6c7d298aac93dd6a63468", - "shasum": "" - }, - "require": { - "behat/behat": "^3.0.5", - "behat/mink-extension": "^2.0.1", - "php": "^5.5.9|^7.0" - }, - "require-dev": { - "behat/mink-goutte-driver": "^1.1", - "behat/mink-selenium2-driver": "^1.2", - "phpspec/phpspec": "^2.0" - }, - "suggest": { - "behat/mink-browserkit-driver": "To get request debug information included in log file", - "behat/mink-selenium2-driver": "To get screenshots" - }, - "bin": [ - "travis/tools/upload-screenshots", - "travis/tools/upload-textfiles", - "travis/tools/wait-for-port" - ], - "type": "behat-extension", - "autoload": { - "psr-4": { - "Lakion\\Behat\\MinkDebugExtension\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kamil Kokot", - "email": "kamil@kokot.me", - "homepage": "http://kamil.kokot.me" - } - ], - "description": "Debug extension for Behat", - "homepage": "https://github.com/Lakion/MinkDebugExtension", - "keywords": [ - "Behat", - "Mink", - "debug", - "logging" - ], - "time": "2016-10-27T15:30:36+00:00" - }, - { - "name": "myclabs/deep-copy", - "version": "1.9.5", - "source": { - "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef", - "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "replace": { - "myclabs/deep-copy": "self.version" - }, - "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, - "files": [ - "src/DeepCopy/deep_copy.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ], - "time": "2020-01-17T21:11:47+00:00" - }, - { - "name": "novaway/common-contexts", - "version": "2.3.2", - "source": { - "type": "git", - "url": "https://github.com/novaway/BehatCommonContext.git", - "reference": "b5349bd6a36c0e0ca71465a5349f8d68c1d1e102" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/novaway/BehatCommonContext/zipball/b5349bd6a36c0e0ca71465a5349f8d68c1d1e102", - "reference": "b5349bd6a36c0e0ca71465a5349f8d68c1d1e102", - "shasum": "" - }, - "require": { - "behat/behat": "~3.0", - "behat/mink-extension": "~2.0", - "php": ">=5.4.0" - }, - "require-dev": { - "behat/mink-goutte-driver": "~1.1", - "behat/mink-selenium2-driver": "~1.2", - "kherge/box": "~2.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "Novaway\\CommonContexts\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jérémy DECOOL" - } - ], - "description": "Novaway Behat common contexts", - "keywords": [ - "BDD", - "Behat", - "Context", - "select2", - "symfony" - ], - "time": "2017-12-20T06:07:51+00:00" - }, - { - "name": "phar-io/manifest", - "version": "1.0.3", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-phar": "*", - "phar-io/version": "^2.0", - "php": "^5.6 || ^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2018-07-08T19:23:20+00:00" - }, - { - "name": "phar-io/version", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints", - "time": "2018-07-08T19:19:57+00:00" - }, - { - "name": "phpdocumentor/reflection-common", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a", - "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "require-dev": { - "phpunit/phpunit": "~6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "time": "2018-08-07T13:53:10+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "5.0.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "a48807183a4b819072f26e347bbd0b5199a9d15f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/a48807183a4b819072f26e347bbd0b5199a9d15f", - "reference": "a48807183a4b819072f26e347bbd0b5199a9d15f", - "shasum": "" - }, - "require": { - "ext-filter": "^7.1", - "php": "^7.2", - "phpdocumentor/reflection-common": "^2.0", - "phpdocumentor/type-resolver": "^1.0", - "webmozart/assert": "^1" - }, - "require-dev": { - "doctrine/instantiator": "^1", - "mockery/mockery": "^1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2020-02-09T09:16:15+00:00" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", - "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", - "shasum": "" - }, - "require": { - "php": "^7.1", - "phpdocumentor/reflection-common": "^2.0" - }, - "require-dev": { - "ext-tokenizer": "^7.1", - "mockery/mockery": "~1", - "phpunit/phpunit": "^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "time": "2019-08-22T18:11:29+00:00" - }, - { - "name": "phpspec/prophecy", - "version": "v1.10.2", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/b4400efc9d206e83138e2bb97ed7f5b14b831cd9", - "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", - "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" - }, - "require-dev": { - "phpspec/phpspec": "^2.5 || ^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.10.x-dev" - } - }, - "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "time": "2020-01-20T15:57:02+00:00" - }, - { - "name": "phpunit/php-code-coverage", - "version": "7.0.10", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "f1884187926fbb755a9aaf0b3836ad3165b478bf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f1884187926fbb755a9aaf0b3836ad3165b478bf", - "reference": "f1884187926fbb755a9aaf0b3836ad3165b478bf", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-xmlwriter": "*", - "php": "^7.2", - "phpunit/php-file-iterator": "^2.0.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.1.1", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^4.2.2", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1.3" - }, - "require-dev": { - "phpunit/phpunit": "^8.2.2" - }, - "suggest": { - "ext-xdebug": "^2.7.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "7.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "time": "2019-11-20T13:55:58+00:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "050bedf145a257b1ff02746c31894800e5122946" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", - "reference": "050bedf145a257b1ff02746c31894800e5122946", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "time": "2018-09-13T20:33:42+00:00" - }, - { - "name": "phpunit/php-text-template", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "time": "2015-06-21T13:50:34+00:00" - }, - { - "name": "phpunit/php-timer", - "version": "2.1.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "time": "2019-06-07T04:22:29+00:00" - }, - { - "name": "phpunit/php-token-stream", - "version": "3.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff", - "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" - ], - "time": "2019-09-17T06:23:10+00:00" - }, - { - "name": "phpunit/phpunit", - "version": "8.5.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "018b6ac3c8ab20916db85fa91bf6465acb64d1e0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/018b6ac3c8ab20916db85fa91bf6465acb64d1e0", - "reference": "018b6ac3c8ab20916db85fa91bf6465acb64d1e0", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.2.0", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.9.1", - "phar-io/manifest": "^1.0.3", - "phar-io/version": "^2.0.1", - "php": "^7.2", - "phpspec/prophecy": "^1.8.1", - "phpunit/php-code-coverage": "^7.0.7", - "phpunit/php-file-iterator": "^2.0.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.1.2", - "sebastian/comparator": "^3.0.2", - "sebastian/diff": "^3.0.2", - "sebastian/environment": "^4.2.2", - "sebastian/exporter": "^3.1.1", - "sebastian/global-state": "^3.0.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^2.0.1", - "sebastian/type": "^1.1.3", - "sebastian/version": "^2.0.1" - }, - "require-dev": { - "ext-pdo": "*" - }, - "suggest": { - "ext-soap": "*", - "ext-xdebug": "*", - "phpunit/php-invoker": "^2.0.0" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "8.5-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "time": "2020-01-08T08:49:49+00:00" - }, - { - "name": "se/selenium-server-standalone", - "version": "v2.53.1", - "source": { - "type": "git", - "url": "https://github.com/sveneisenschmidt/selenium-server-standalone.git", - "reference": "ef4eea9c99efb9c0e3084e9cae625662ccd43361" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sveneisenschmidt/selenium-server-standalone/zipball/ef4eea9c99efb9c0e3084e9cae625662ccd43361", - "reference": "ef4eea9c99efb9c0e3084e9cae625662ccd43361", - "shasum": "" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "bin": [ - "bin/selenium-server-standalone" - ], - "type": "library", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache 2.0" - ], - "authors": [ - { - "name": "Sven Eisenschmidt", - "email": "sven.eisenschmidt@gmail.com" - } - ], - "description": "Composer distribution of Selenium Server Standalone, the browser automation framework. Adds a executable to your composer bin directory.", - "homepage": "https://github.com/sveneisenschmidt/selenium-server-standalone", - "keywords": [ - "selenium", - "testing" - ], - "time": "2016-07-01T14:16:52+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2017-03-04T06:30:41+00:00" - }, - { - "name": "sebastian/comparator", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", - "shasum": "" - }, - "require": { - "php": "^7.1", - "sebastian/diff": "^3.0", - "sebastian/exporter": "^3.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "time": "2018-07-12T15:12:46+00:00" - }, - { - "name": "sebastian/diff", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.5 || ^8.0", - "symfony/process": "^2 || ^3.3 || ^4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], - "time": "2019-02-04T06:01:07+00:00" - }, - { - "name": "sebastian/environment", - "version": "4.2.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/464c90d7bdf5ad4e8a6aea15c091fec0603d4368", - "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.5" - }, - "suggest": { - "ext-posix": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "time": "2019-11-20T08:46:58+00:00" - }, - { - "name": "sebastian/exporter", - "version": "3.1.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", - "shasum": "" - }, - "require": { - "php": "^7.0", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "time": "2019-09-14T09:02:43+00:00" - }, - { - "name": "sebastian/global-state", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", - "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", - "shasum": "" - }, - "require": { - "php": "^7.2", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^8.0" - }, - "suggest": { - "ext-uopz": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "time": "2019-02-01T05:30:01+00:00" - }, - { - "name": "sebastian/object-enumerator", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "shasum": "" - }, - "require": { - "php": "^7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-08-03T12:35:26+00:00" - }, - { - "name": "sebastian/object-reflector", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2017-03-29T09:07:27+00:00" - }, - { - "name": "sebastian/recursion-context", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2017-03-03T06:23:57+00:00" - }, - { - "name": "sebastian/resource-operations", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2018-10-04T04:07:39+00:00" - }, - { - "name": "sebastian/type", - "version": "1.1.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/3aaaa15fa71d27650d62a948be022fe3b48541a3", - "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3", - "shasum": "" - }, - "require": { - "php": "^7.2" - }, - "require-dev": { - "phpunit/phpunit": "^8.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", - "time": "2019-07-02T08:10:15+00:00" - }, - { - "name": "symfony/browser-kit", - "version": "v4.4.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/browser-kit.git", - "reference": "45cae6dd8683d2de56df7ec23638e9429c70135f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/45cae6dd8683d2de56df7ec23638e9429c70135f", - "reference": "45cae6dd8683d2de56df7ec23638e9429c70135f", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "symfony/dom-crawler": "^3.4|^4.0|^5.0" - }, - "require-dev": { - "symfony/css-selector": "^3.4|^4.0|^5.0", - "symfony/http-client": "^4.3|^5.0", - "symfony/mime": "^4.3|^5.0", - "symfony/process": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/process": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\BrowserKit\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony BrowserKit Component", - "homepage": "https://symfony.com", - "time": "2020-01-04T13:00:46+00:00" - }, - { - "name": "symfony/config", - "version": "v4.4.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/config.git", - "reference": "4d3979f54472637169080f802dc82197e21fdcce" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/4d3979f54472637169080f802dc82197e21fdcce", - "reference": "4d3979f54472637169080f802dc82197e21fdcce", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "symfony/filesystem": "^3.4|^4.0|^5.0", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/finder": "<3.4" - }, - "require-dev": { - "symfony/event-dispatcher": "^3.4|^4.0|^5.0", - "symfony/finder": "^3.4|^4.0|^5.0", - "symfony/messenger": "^4.1|^5.0", - "symfony/service-contracts": "^1.1|^2", - "symfony/yaml": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/yaml": "To use the yaml reference dumper" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Config\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Config Component", - "homepage": "https://symfony.com", - "time": "2020-01-04T13:00:46+00:00" - }, - { - "name": "symfony/css-selector", - "version": "v3.4.37", - "source": { - "type": "git", - "url": "https://github.com/symfony/css-selector.git", - "reference": "e1b3e1a0621d6e48ee46092b4c7d8280f746b3c5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/e1b3e1a0621d6e48ee46092b4c7d8280f746b3c5", - "reference": "e1b3e1a0621d6e48ee46092b4c7d8280f746b3c5", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\CssSelector\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Jean-François Simon", - "email": "jeanfrancois.simon@sensiolabs.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony CssSelector Component", - "homepage": "https://symfony.com", - "time": "2020-01-01T11:03:25+00:00" - }, - { - "name": "symfony/dependency-injection", - "version": "v4.4.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/dependency-injection.git", - "reference": "ec60a7d12f5e8ab0f99456adce724717d9c1784a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/ec60a7d12f5e8ab0f99456adce724717d9c1784a", - "reference": "ec60a7d12f5e8ab0f99456adce724717d9c1784a", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "psr/container": "^1.0", - "symfony/service-contracts": "^1.1.6|^2" - }, - "conflict": { - "symfony/config": "<4.3|>=5.0", - "symfony/finder": "<3.4", - "symfony/proxy-manager-bridge": "<3.4", - "symfony/yaml": "<3.4" - }, - "provide": { - "psr/container-implementation": "1.0", - "symfony/service-implementation": "1.0" - }, - "require-dev": { - "symfony/config": "^4.3", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/yaml": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/config": "", - "symfony/expression-language": "For using expressions in service container configuration", - "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", - "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", - "symfony/yaml": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\DependencyInjection\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony DependencyInjection Component", - "homepage": "https://symfony.com", - "time": "2020-01-31T09:49:27+00:00" - }, - { - "name": "symfony/dom-crawler", - "version": "v4.4.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/dom-crawler.git", - "reference": "b66fe8ccc850ea11c4cd31677706c1219768bea1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/b66fe8ccc850ea11c4cd31677706c1219768bea1", - "reference": "b66fe8ccc850ea11c4cd31677706c1219768bea1", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "masterminds/html5": "<2.6" - }, - "require-dev": { - "masterminds/html5": "^2.6", - "symfony/css-selector": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/css-selector": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\DomCrawler\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony DomCrawler Component", - "homepage": "https://symfony.com", - "time": "2020-01-04T13:00:46+00:00" - }, - { - "name": "symfony/event-dispatcher", - "version": "v4.4.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "9e3de195e5bc301704dd6915df55892f6dfc208b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9e3de195e5bc301704dd6915df55892f6dfc208b", - "reference": "9e3de195e5bc301704dd6915df55892f6dfc208b", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "symfony/event-dispatcher-contracts": "^1.1" - }, - "conflict": { - "symfony/dependency-injection": "<3.4" - }, - "provide": { - "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "1.1" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/http-foundation": "^3.4|^4.0|^5.0", - "symfony/service-contracts": "^1.1|^2", - "symfony/stopwatch": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony EventDispatcher Component", - "homepage": "https://symfony.com", - "time": "2020-01-10T21:54:01+00:00" - }, - { - "name": "symfony/event-dispatcher-contracts", - "version": "v1.1.7", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c43ab685673fb6c8d84220c77897b1d6cdbe1d18", - "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18", - "shasum": "" - }, - "require": { - "php": "^7.1.3" - }, - "suggest": { - "psr/event-dispatcher": "", - "symfony/event-dispatcher-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\EventDispatcher\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to dispatching event", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "time": "2019-09-17T09:54:03+00:00" - }, - { - "name": "symfony/translation", - "version": "v4.4.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/translation.git", - "reference": "f5d2ac46930238b30a9c2f1b17c905f3697d808c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/f5d2ac46930238b30a9c2f1b17c905f3697d808c", - "reference": "f5d2ac46930238b30a9c2f1b17c905f3697d808c", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^1.1.6|^2" - }, - "conflict": { - "symfony/config": "<3.4", - "symfony/dependency-injection": "<3.4", - "symfony/http-kernel": "<4.4", - "symfony/yaml": "<3.4" - }, - "provide": { - "symfony/translation-implementation": "1.0" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/console": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/finder": "~2.8|~3.0|~4.0|^5.0", - "symfony/http-kernel": "^4.4", - "symfony/intl": "^3.4|^4.0|^5.0", - "symfony/service-contracts": "^1.1.2|^2", - "symfony/yaml": "^3.4|^4.0|^5.0" - }, - "suggest": { - "psr/log-implementation": "To use logging capability in translator", - "symfony/config": "", - "symfony/yaml": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Translation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Translation Component", - "homepage": "https://symfony.com", - "time": "2020-01-15T13:29:06+00:00" - }, - { - "name": "symfony/translation-contracts", - "version": "v2.0.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/translation-contracts.git", - "reference": "8cc682ac458d75557203b2f2f14b0b92e1c744ed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/8cc682ac458d75557203b2f2f14b0b92e1c744ed", - "reference": "8cc682ac458d75557203b2f2f14b0b92e1c744ed", - "shasum": "" - }, - "require": { - "php": "^7.2.5" - }, - "suggest": { - "symfony/translation-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Translation\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to translation", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "time": "2019-11-18T17:27:11+00:00" - }, - { - "name": "symfony/yaml", - "version": "v5.0.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "69b44e3b8f90949aee2eb3aa9b86ceeb01cbf62a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/69b44e3b8f90949aee2eb3aa9b86ceeb01cbf62a", - "reference": "69b44e3b8f90949aee2eb3aa9b86ceeb01cbf62a", - "shasum": "" - }, - "require": { - "php": "^7.2.5", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/console": "<4.4" - }, - "require-dev": { - "symfony/console": "^4.4|^5.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Yaml Component", - "homepage": "https://symfony.com", - "time": "2020-01-21T11:12:28+00:00" - }, - { - "name": "theseer/tokenizer", - "version": "1.1.3", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", - "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - } - ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "time": "2019-06-13T22:48:21+00:00" - }, - { - "name": "webmozart/assert", - "version": "1.7.0", - "source": { - "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "aed98a490f9a8f78468232db345ab9cf606cf598" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/aed98a490f9a8f78468232db345ab9cf606cf598", - "reference": "aed98a490f9a8f78468232db345ab9cf606cf598", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0", - "symfony/polyfill-ctype": "^1.8" - }, - "conflict": { - "vimeo/psalm": "<3.6.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.36 || ^7.5.13" - }, - "type": "library", - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "time": "2020-02-14T12:15:55+00:00" - }, - { - "name": "yawik/behat", - "version": "0.33.22", - "source": { - "type": "git", - "url": "https://github.com/yawik/behat.git", - "reference": "9e776b8aa8a069da13e35d717f7bb35c2f96b277" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/yawik/behat/zipball/9e776b8aa8a069da13e35d717f7bb35c2f96b277", - "reference": "9e776b8aa8a069da13e35d717f7bb35c2f96b277", - "shasum": "" - }, - "require": { - "behat/behat": "^3.2", - "behat/mink": "^1.7", - "behat/mink-browserkit-driver": "^1.3", - "behat/mink-extension": "^2.3", - "behat/mink-selenium2-driver": "^1.3", - "enm1989/chromedriver": "~2.35", - "lakion/mink-debug-extension": "^1.2.3", - "novaway/common-contexts": "~2.0", - "se/selenium-server-standalone": "^2.52" - }, - "bin": [ - "bin/imgur-uploader", - "bin/start-selenium" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-develop": "0.33-dev", - "dev-master": "0.32-dev" - } - }, - "autoload": { - "psr-4": { - "Yawik\\Behat\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mathias Gelhausen", - "email": "gelhausen@cross-solution.de" - }, - { - "name": "Carsten Bleek", - "email": "bleek@cross-solution.de" - }, - { - "name": "Anthonius Munthi", - "email": "me@itstoni.com" - } - ], - "description": "This package provide a Behat tests utility for yawik", - "keywords": [ - "Behat", - "module", - "yawik", - "zf3" - ], - "time": "2018-11-23T01:55:06+00:00" - } - ], - "aliases": [], - "minimum-stability": "dev", - "stability-flags": { - "yawik/behat": 20 - }, - "prefer-stable": true, - "prefer-lowest": false, - "platform": { - "php": ">=7.2", - "ext-solr": ">=2.4" - }, - "platform-dev": [], - "platform-overrides": { - "ext-mongo": "1.6.16" - } -} diff --git a/src/Controller/ConsoleController.php b/src/Controller/ConsoleController.php index 3c97405..1ac4a0f 100644 --- a/src/Controller/ConsoleController.php +++ b/src/Controller/ConsoleController.php @@ -12,7 +12,7 @@ use Core\Console\ProgressBar; use Jobs\Repository\Job as JobRepository; use SolrClient; -use Zend\Mvc\Controller\AbstractActionController; +use Laminas\Mvc\Controller\AbstractActionController; /** * @author Anthonius Munthi <me@itstoni.com> diff --git a/src/Controller/Plugin/FacetsInjectorProcessJsonRequestDecorator.php b/src/Controller/Plugin/FacetsInjectorProcessJsonRequestDecorator.php index 708ae2e..e098e01 100644 --- a/src/Controller/Plugin/FacetsInjectorProcessJsonRequestDecorator.php +++ b/src/Controller/Plugin/FacetsInjectorProcessJsonRequestDecorator.php @@ -29,7 +29,7 @@ public function __construct(ProcessJsonRequest $processJsonRequestPlugin) $this->processJsonRequestPlugin = $processJsonRequestPlugin; } - public function setController(\Zend\Stdlib\DispatchableInterface $controller): void + public function setController(\Laminas\Stdlib\DispatchableInterface $controller): void { parent::setController($controller); $this->processJsonRequestPlugin->setController($controller); diff --git a/src/Entity/JobProxy.php b/src/Entity/JobProxy.php index 008ed81..9d49965 100644 --- a/src/Entity/JobProxy.php +++ b/src/Entity/JobProxy.php @@ -439,7 +439,7 @@ public function setUser(\Auth\Entity\UserInterface $user) } /** - * @see \Zend\Permissions\Acl\Resource\ResourceInterface::getResourceId() + * @see \Laminas\Permissions\Acl\Resource\ResourceInterface::getResourceId() */ public function getResourceId() { diff --git a/src/Factory/Controller/ConsoleControllerFactory.php b/src/Factory/Controller/ConsoleControllerFactory.php index 2c88ed3..c7eb6e5 100644 --- a/src/Factory/Controller/ConsoleControllerFactory.php +++ b/src/Factory/Controller/ConsoleControllerFactory.php @@ -10,7 +10,7 @@ use Interop\Container\ContainerInterface; use Solr\Controller\ConsoleController; -use Zend\ServiceManager\Factory\FactoryInterface; +use Laminas\ServiceManager\Factory\FactoryInterface; use Core\Console\ProgressBar; class ConsoleControllerFactory implements FactoryInterface diff --git a/src/Factory/Controller/Plugin/ProcessJsonRequestDelegatorFactory.php b/src/Factory/Controller/Plugin/ProcessJsonRequestDelegatorFactory.php index f373290..847dc0d 100644 --- a/src/Factory/Controller/Plugin/ProcessJsonRequestDelegatorFactory.php +++ b/src/Factory/Controller/Plugin/ProcessJsonRequestDelegatorFactory.php @@ -11,7 +11,7 @@ use Interop\Container\ContainerInterface; use Solr\Controller\Plugin\FacetsInjectorProcessJsonRequestDecorator; -use Zend\ServiceManager\Factory\DelegatorFactoryInterface; +use Laminas\ServiceManager\Factory\DelegatorFactoryInterface; /** * Factory for \Solr\Factory\Controller\Plugin\ProcessJsonRequestDelegator diff --git a/src/Factory/Filter/JobBoardPaginationQueryFactory.php b/src/Factory/Filter/JobBoardPaginationQueryFactory.php index fb471f3..ce02a34 100644 --- a/src/Factory/Filter/JobBoardPaginationQueryFactory.php +++ b/src/Factory/Filter/JobBoardPaginationQueryFactory.php @@ -4,7 +4,7 @@ use Interop\Container\ContainerInterface; use Solr\Filter\JobBoardPaginationQuery; -use Zend\ServiceManager\Factory\FactoryInterface; +use Laminas\ServiceManager\Factory\FactoryInterface; use Solr\Options\ModuleOptions; /** diff --git a/src/Filter/AbstractPaginationQuery.php b/src/Filter/AbstractPaginationQuery.php index f4ff667..accc714 100644 --- a/src/Filter/AbstractPaginationQuery.php +++ b/src/Filter/AbstractPaginationQuery.php @@ -11,7 +11,7 @@ use SolrDisMaxQuery; use ArrayAccess; -use Zend\Filter\FilterInterface; +use Laminas\Filter\FilterInterface; use Solr\Facets; use DomainException; @@ -29,7 +29,7 @@ abstract class AbstractPaginationQuery implements FilterInterface /** * Filter query based on given value * - * @see \Zend\Filter\FilterInterface::filter() + * @see \Laminas\Filter\FilterInterface::filter() */ public function filter($value, SolrDisMaxQuery $query = null, Facets $facets = null) { diff --git a/src/Filter/EntityToDocument/JobEntityToSolrDocument.php b/src/Filter/EntityToDocument/JobEntityToSolrDocument.php index 46ccd41..6985846 100644 --- a/src/Filter/EntityToDocument/JobEntityToSolrDocument.php +++ b/src/Filter/EntityToDocument/JobEntityToSolrDocument.php @@ -11,12 +11,12 @@ namespace Solr\Filter\EntityToDocument; use Solr\Options\ModuleOptions; -use Zend\Filter\FilterInterface; +use Laminas\Filter\FilterInterface; use Jobs\Entity\Job as JobEntity; use SolrInputDocument; use InvalidArgumentException; use Solr\Bridge\Util; -use Zend\Filter\StripTags; +use Laminas\Filter\StripTags; class JobEntityToSolrDocument implements FilterInterface { @@ -31,7 +31,7 @@ public function __construct($options) } /** - * @see \Zend\Filter\FilterInterface::filter() + * @see \Laminas\Filter\FilterInterface::filter() * @param JobEntity $job * @return SolrInputDocument */ diff --git a/src/Listener/CreatePaginatorListener.php b/src/Listener/CreatePaginatorListener.php index e39ec3d..9597460 100644 --- a/src/Listener/CreatePaginatorListener.php +++ b/src/Listener/CreatePaginatorListener.php @@ -33,7 +33,7 @@ public function onCreatePaginator(CreatePaginatorEvent $event) $paginators = $event->getPaginators(); $serviceName = 'Solr/' . $paginatorName; if (is_object($paginators) && $paginators->has($serviceName)) { - /* @var \Zend\Paginator\Paginator $paginator */ + /* @var \Laminas\Paginator\Paginator $paginator */ // yes, we have that solr paginator to replace $paginatorName $paginator = $paginators->get($serviceName, $params); $event->setPaginator($paginator); diff --git a/src/Module.php b/src/Module.php index 7b80b94..3299d15 100644 --- a/src/Module.php +++ b/src/Module.php @@ -12,8 +12,8 @@ use Core\ModuleManager\Feature\VersionProviderInterface; use Core\ModuleManager\Feature\VersionProviderTrait; use Core\ModuleManager\ModuleConfigLoader; -use Zend\Console\Adapter\AdapterInterface; -use Zend\ModuleManager\Feature\ConsoleUsageProviderInterface; +use Laminas\Console\Adapter\AdapterInterface; +use Laminas\ModuleManager\Feature\ConsoleUsageProviderInterface; /** * Class Module diff --git a/src/Options/ModuleOptions.php b/src/Options/ModuleOptions.php index 21fd7fc..9a024d7 100644 --- a/src/Options/ModuleOptions.php +++ b/src/Options/ModuleOptions.php @@ -10,7 +10,7 @@ namespace Solr\Options; use Doctrine\Instantiator\Exception\InvalidArgumentException; -use Zend\Stdlib\AbstractOptions; +use Laminas\Stdlib\AbstractOptions; /** * Provide available options for Solr Module diff --git a/src/Paginator/Adapter/SolrAdapter.php b/src/Paginator/Adapter/SolrAdapter.php index 05c7da5..cb086ff 100644 --- a/src/Paginator/Adapter/SolrAdapter.php +++ b/src/Paginator/Adapter/SolrAdapter.php @@ -11,8 +11,8 @@ use Solr\Exception\ServerException; use Solr\Filter\AbstractPaginationQuery; -use Zend\Paginator\Adapter\AdapterInterface; -use Zend\Stdlib\Parameters; +use Laminas\Paginator\Adapter\AdapterInterface; +use Laminas\Stdlib\Parameters; use Solr\Bridge\ResultConverter; use Solr\FacetsProviderInterface; use Solr\Facets; diff --git a/src/Paginator/Paginator.php b/src/Paginator/Paginator.php index 21e2f05..ee78cea 100644 --- a/src/Paginator/Paginator.php +++ b/src/Paginator/Paginator.php @@ -10,14 +10,14 @@ */ namespace Solr\Paginator; -use Zend\Paginator\Exception\InvalidArgumentException; +use Laminas\Paginator\Exception\InvalidArgumentException; use Solr\FacetsProviderInterface; -class Paginator extends \Zend\Paginator\Paginator implements FacetsProviderInterface +class Paginator extends \Laminas\Paginator\Paginator implements FacetsProviderInterface { /** - * @see \Zend\Paginator\Paginator::__construct() + * @see \Laminas\Paginator\Paginator::__construct() */ public function __construct($adapter) { diff --git a/src/Paginator/PaginatorFactoryAbstract.php b/src/Paginator/PaginatorFactoryAbstract.php index e535db8..0b3b437 100644 --- a/src/Paginator/PaginatorFactoryAbstract.php +++ b/src/Paginator/PaginatorFactoryAbstract.php @@ -15,7 +15,7 @@ use Solr\Options\ModuleOptions; use Solr\Paginator\Adapter\SolrAdapter; use Solr\Facets; -use Zend\ServiceManager\Factory\FactoryInterface; +use Laminas\ServiceManager\Factory\FactoryInterface; /** * Abstract class for Solr paginator factory diff --git a/test/SolrTest/Controller/ConsoleControllerTest.php b/test/SolrTest/Controller/ConsoleControllerTest.php index cb1b350..ffd56fc 100644 --- a/test/SolrTest/Controller/ConsoleControllerTest.php +++ b/test/SolrTest/Controller/ConsoleControllerTest.php @@ -21,7 +21,7 @@ use Jobs\Repository\Job as JobRepository; use Solr\Controller\ConsoleController; use stdClass; -use Zend\Log\Filter\Mock; +use Laminas\Log\Filter\Mock; /** * Class ConsoleControllerTest diff --git a/test/SolrTest/Listener/CreatePaginatorListenerTest.php b/test/SolrTest/Listener/CreatePaginatorListenerTest.php index ff45389..6a6ddc0 100644 --- a/test/SolrTest/Listener/CreatePaginatorListenerTest.php +++ b/test/SolrTest/Listener/CreatePaginatorListenerTest.php @@ -15,7 +15,7 @@ use Core\Listener\Events\CreatePaginatorEvent; use Core\Paginator\PaginatorService; use Solr\Listener\CreatePaginatorListener; -use Zend\Paginator\Paginator; +use Laminas\Paginator\Paginator; /** * Test for Solr\Listener\CreatePaginatorListener diff --git a/test/SolrTest/Paginator/JobsPaginatorFactoryTest.php b/test/SolrTest/Paginator/JobsPaginatorFactoryTest.php index 23cd70a..d19b116 100644 --- a/test/SolrTest/Paginator/JobsPaginatorFactoryTest.php +++ b/test/SolrTest/Paginator/JobsPaginatorFactoryTest.php @@ -18,8 +18,8 @@ use Solr\Options\ModuleOptions; use Solr\Paginator\Adapter\SolrAdapter; use Solr\Paginator\JobsBoardPaginatorFactory; -use Zend\Filter\FilterPluginManager; -use Zend\Paginator\Paginator; +use Laminas\Filter\FilterPluginManager; +use Laminas\Paginator\Paginator; /** * Class JobsPaginatorFactoryTest diff --git a/test/SolrTest/Paginator/PaginatorTest.php b/test/SolrTest/Paginator/PaginatorTest.php index 3139efb..e42b871 100644 --- a/test/SolrTest/Paginator/PaginatorTest.php +++ b/test/SolrTest/Paginator/PaginatorTest.php @@ -14,7 +14,7 @@ use Solr\Paginator\Paginator; use Solr\Paginator\Adapter\SolrAdapter; use Solr\Facets; -use Zend\Paginator\Exception\InvalidArgumentException; +use Laminas\Paginator\Exception\InvalidArgumentException; /** * @coversDefaultClass \Solr\Paginator\Paginator diff --git a/test/coverage/Bridge/Manager.php.html b/test/coverage/Bridge/Manager.php.html new file mode 100644 index 0000000..0094052 --- /dev/null +++ b/test/coverage/Bridge/Manager.php.html @@ -0,0 +1,310 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Bridge/Manager.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Bridge</a></li> + <li class="breadcrumb-item active">Manager.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="success">Total</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">4 / 4</div></td> + <td class="success small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">16 / 16</div></td> + </tr> + + <tr> + <td class="success"><abbr title="Solr\Bridge\Manager">Manager</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">4 / 4</div></td> + <td class="success small">5</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">16 / 16</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#42"><abbr title="__construct(ModuleOptions $options)">__construct</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#53"><abbr title="getClient($path = '/solr')">getClient</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">2</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">12 / 12</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#77"><abbr title="getOptions()">getOptions</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#89"><abbr title="factory(ContainerInterface $container)">factory</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * YAWIK</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @filesource</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @copyright (c) 2013 - 2016 Cross Solution (http://cross-solution.de)</span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @license MIT</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Bridge</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Options</span><span class="default">\</span><span class="default">ModuleOptions</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Interop</span><span class="default">\</span><span class="default">Container</span><span class="default">\</span><span class="default">ContainerInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">SolrClient</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="comment"> * Manage connection with the SolrServer</span></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="comment"> * @author Anthonius Munthi <me@itstoni.com></span></td></tr> + <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="comment"> * @author Miroslav Fedeleš <miroslav.fedeles@gmail.com></span></td></tr> + <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="comment"> * @since 0.26</span></td></tr> + <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="comment"> * @package Solr\Bridge</span></td></tr> + <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default"> </span><span class="default">Manager</span></td></tr> + <tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">const</span><span class="default"> </span><span class="default">SOLR_DATE_FORMAT</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">'Y-m-d\TH:i:s\Z'</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="comment"> * @var ModuleOptions</span></td></tr> + <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$options</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="comment"> * @var array</span></td></tr> + <tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$clients</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="comment"> * Manager constructor.</span></td></tr> + <tr><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="comment"> * @param ModuleOptions $options</span></td></tr> + <tr><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">__construct</span><span class="keyword">(</span><span class="default">ModuleOptions</span><span class="default"> </span><span class="default">$options</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 44" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ManagerTest::testGetOptions</li><li class="covered-by-large-tests">SolrTest\Bridge\ManagerTest::testFactory</li><li class="covered-by-large-tests">SolrTest\Bridge\ManagerTest::testGetClient</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">options</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$options</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 45" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ManagerTest::testGetOptions</li><li class="covered-by-large-tests">SolrTest\Bridge\ManagerTest::testFactory</li><li class="covered-by-large-tests">SolrTest\Bridge\ManagerTest::testGetClient</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="comment"> * Get SolrClient with custom path option</span></td></tr> + <tr><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"><span class="comment"> * @param string $path</span></td></tr> + <tr><td><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"><span class="comment"> * @return SolrClient</span></td></tr> + <tr><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getClient</span><span class="keyword">(</span><span class="default">$path</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">'/solr'</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 55" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ManagerTest::testGetClient</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$options</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">options</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$options</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 57" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ManagerTest::testGetClient</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'secure'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">$options</span><span class="default">-></span><span class="default">isSecure</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">,</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 58" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ManagerTest::testGetClient</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'hostname'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">$options</span><span class="default">-></span><span class="default">getHostname</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">,</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 59" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ManagerTest::testGetClient</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'port'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">$options</span><span class="default">-></span><span class="default">getPort</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">,</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 60" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ManagerTest::testGetClient</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'path'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">$path</span><span class="keyword">,</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 61" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ManagerTest::testGetClient</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'login'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">$options</span><span class="default">-></span><span class="default">getUsername</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">,</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 62" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ManagerTest::testGetClient</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'password'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">$options</span><span class="default">-></span><span class="default">getPassword</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">,</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 63" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ManagerTest::testGetClient</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'wt'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">'phps'</span></td></tr> + <tr><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 65" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ManagerTest::testGetClient</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$key</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">md5</span><span class="keyword">(</span><span class="default">implode</span><span class="keyword">(</span><span class="default">':'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$options</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 67" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ManagerTest::testGetClient</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">!</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">clients</span><span class="keyword">[</span><span class="default">$key</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 68" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ManagerTest::testGetClient</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">clients</span><span class="keyword">[</span><span class="default">$key</span><span class="keyword">]</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">SolrClient</span><span class="keyword">(</span><span class="default">$options</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="70"></a><a href="#70">70</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 71" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ManagerTest::testGetClient</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="71"></a><a href="#71">71</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">clients</span><span class="keyword">[</span><span class="default">$key</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="74"></a><a href="#74">74</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="75"></a><a href="#75">75</a></div></td><td class="codeLine"><span class="comment"> * @return ModuleOptions</span></td></tr> + <tr><td><div align="right"><a name="76"></a><a href="#76">76</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getOptions</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 79" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ManagerTest::testGetOptions</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">options</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine"><span class="comment"> * Create new instance for Solr\Manager</span></td></tr> + <tr><td><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"><span class="comment"> * @param ContainerInterface $container</span></td></tr> + <tr><td><div align="right"><a name="86"></a><a href="#86">86</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="87"></a><a href="#87">87</a></div></td><td class="codeLine"><span class="comment"> * @return Manager</span></td></tr> + <tr><td><div align="right"><a name="88"></a><a href="#88">88</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">static</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">factory</span><span class="keyword">(</span><span class="default">ContainerInterface</span><span class="default"> </span><span class="default">$container</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="90"></a><a href="#90">90</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 91" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ManagerTest::testFactory</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="keyword">static</span><span class="keyword">(</span><span class="default">$container</span><span class="default">-></span><span class="default">get</span><span class="keyword">(</span><span class="default">'Solr/Options/Module'</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/popper.min.js" type="text/javascript"></script> + <script src="../_js/bootstrap.min.js" type="text/javascript"></script> + <script src="../_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/Bridge/ResultConverter.php.html b/test/coverage/Bridge/ResultConverter.php.html new file mode 100644 index 0000000..5adbdab --- /dev/null +++ b/test/coverage/Bridge/ResultConverter.php.html @@ -0,0 +1,293 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Bridge/ResultConverter.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Bridge</a></li> + <li class="breadcrumb-item active">ResultConverter.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="success">Total</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">3 / 3</div></td> + <td class="success small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">23 / 23</div></td> + </tr> + + <tr> + <td class="success"><abbr title="Solr\Bridge\ResultConverter">ResultConverter</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">3 / 3</div></td> + <td class="success small">10</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">23 / 23</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#39"><abbr title="__construct(RepositoryService $repositories)">__construct</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#52"><abbr title="convert(AbstractPaginationQuery $filter, ArrayAccess $response)">convert</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">8</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">20 / 20</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#93"><abbr title="factory(ContainerInterface $container)">factory</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * YAWIK</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @filesource</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @copyright (c) 2013 - 2016 Cross Solution (http://cross-solution.de)</span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @license MIT</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Bridge</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Core</span><span class="default">\</span><span class="default">Repository</span><span class="default">\</span><span class="default">RepositoryService</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Interop</span><span class="default">\</span><span class="default">Container</span><span class="default">\</span><span class="default">ContainerInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Filter</span><span class="default">\</span><span class="default">AbstractPaginationQuery</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">ArrayAccess</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">InvalidArgumentException</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="comment"> * Class ResultConverter</span></td></tr> + <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="comment"> * Convert SOLR query result into Doctrine ODM Entity</span></td></tr> + <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="comment"> * @author Anthonius Munthi <me@itstoni.com></span></td></tr> + <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="comment"> * @author Miroslav Fedeleš <miroslav.fedeles@gmail.com></span></td></tr> + <tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="comment"> * @package Solr\Bridge</span></td></tr> + <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="comment"> * @since 0.26</span></td></tr> + <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default"> </span><span class="default">ResultConverter</span></td></tr> + <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="comment"> * @var RepositoryService</span></td></tr> + <tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$repositories</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"><span class="comment"> * @param RepositoryService $repositories</span></td></tr> + <tr><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">__construct</span><span class="keyword">(</span><span class="default">RepositoryService</span><span class="default"> </span><span class="default">$repositories</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 41" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testFactory</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">repositories</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$repositories</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 42" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testFactory</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"><span class="comment"> * Convert result into entities</span></td></tr> + <tr><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="comment"> * @param AbstractPaginationQuery $filter</span></td></tr> + <tr><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="comment"> * @param ArrayAccess $response</span></td></tr> + <tr><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"><span class="comment"> * @return array Array of entities</span></td></tr> + <tr><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"><span class="comment"> * @throws InvalidArgumentException</span></td></tr> + <tr><td><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">convert</span><span class="keyword">(</span><span class="default">AbstractPaginationQuery</span><span class="default"> </span><span class="default">$filter</span><span class="keyword">,</span><span class="default"> </span><span class="default">ArrayAccess</span><span class="default"> </span><span class="default">$response</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="4 tests cover line 54" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvertThrowsExceptionOnInvalidResponseData with data set #0</li><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvertThrowsExceptionOnInvalidResponseData with data set #1</li><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvertThrowsExceptionOnInvalidResponseData with data set #2</li><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvert</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$entities</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="4 tests cover line 55" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvertThrowsExceptionOnInvalidResponseData with data set #0</li><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvertThrowsExceptionOnInvalidResponseData with data set #1</li><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvertThrowsExceptionOnInvalidResponseData with data set #2</li><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvert</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$ids</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="4 tests cover line 56" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvertThrowsExceptionOnInvalidResponseData with data set #0</li><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvertThrowsExceptionOnInvalidResponseData with data set #1</li><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvertThrowsExceptionOnInvalidResponseData with data set #2</li><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvert</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$return</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="4 tests cover line 58" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvertThrowsExceptionOnInvalidResponseData with data set #0</li><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvertThrowsExceptionOnInvalidResponseData with data set #1</li><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvertThrowsExceptionOnInvalidResponseData with data set #2</li><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvert</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">!</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$response</span><span class="keyword">[</span><span class="default">'response'</span><span class="keyword">]</span><span class="keyword">)</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 59" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvertThrowsExceptionOnInvalidResponseData with data set #2</li><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvert</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">||</span><span class="default"> </span><span class="keyword">!</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$response</span><span class="keyword">[</span><span class="default">'response'</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">'docs'</span><span class="keyword">]</span><span class="keyword">)</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="4 tests cover line 60" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvertThrowsExceptionOnInvalidResponseData with data set #0</li><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvertThrowsExceptionOnInvalidResponseData with data set #1</li><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvertThrowsExceptionOnInvalidResponseData with data set #2</li><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvert</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">||</span><span class="default"> </span><span class="keyword">!</span><span class="default">is_array</span><span class="keyword">(</span><span class="default">$response</span><span class="keyword">[</span><span class="default">'response'</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">'docs'</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 61" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvertThrowsExceptionOnInvalidResponseData with data set #0</li><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvertThrowsExceptionOnInvalidResponseData with data set #1</li><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvertThrowsExceptionOnInvalidResponseData with data set #2</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">throw</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">InvalidArgumentException</span><span class="keyword">(</span><span class="default">'invalid response'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 64" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvert</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">foreach</span><span class="default"> </span><span class="keyword">(</span><span class="default">$response</span><span class="keyword">[</span><span class="default">'response'</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">'docs'</span><span class="keyword">]</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">$doc</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 65" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvert</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$ids</span><span class="keyword">[</span><span class="keyword">]</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$doc</span><span class="default">-></span><span class="default">id</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// fetch entities with given IDs</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 69" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvert</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$repository</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">repositories</span><span class="default">-></span><span class="default">get</span><span class="keyword">(</span><span class="default">$filter</span><span class="default">-></span><span class="default">getRepositoryName</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 70" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvert</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="70"></a><a href="#70">70</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$qb</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$repository</span><span class="default">-></span><span class="default">createQueryBuilder</span><span class="keyword">(</span><span class="keyword">)</span><span class="default"> </span><span class="comment">/* @var $repository \Core\Repository\AbstractRepository */</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 71" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvert</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="71"></a><a href="#71">71</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">-></span><span class="default">field</span><span class="keyword">(</span><span class="default">'id'</span><span class="keyword">)</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 72" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvert</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">-></span><span class="default">in</span><span class="keyword">(</span><span class="default">$ids</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 73" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvert</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$result</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$qb</span><span class="default">-></span><span class="default">getQuery</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">execute</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="74"></a><a href="#74">74</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 75" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvert</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="75"></a><a href="#75">75</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">foreach</span><span class="default"> </span><span class="keyword">(</span><span class="default">$result</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">$document</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 76" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvert</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="76"></a><a href="#76">76</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$entities</span><span class="keyword">[</span><span class="default">$document</span><span class="default">-></span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">]</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$document</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// iterate over Solr response to preserve sorting</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 80" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvert</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">foreach</span><span class="default"> </span><span class="keyword">(</span><span class="default">$response</span><span class="keyword">[</span><span class="default">'response'</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">'docs'</span><span class="keyword">]</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">$doc</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 81" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvert</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$entity</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$entities</span><span class="keyword">[</span><span class="default">$doc</span><span class="default">-></span><span class="default">id</span><span class="keyword">]</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">?</span><span class="default"> </span><span class="default">$entities</span><span class="keyword">[</span><span class="default">$doc</span><span class="default">-></span><span class="default">id</span><span class="keyword">]</span><span class="default"> </span><span class="keyword">:</span><span class="default"> </span><span class="default">$repository</span><span class="default">-></span><span class="default">create</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 82" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvert</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$return</span><span class="keyword">[</span><span class="keyword">]</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$filter</span><span class="default">-></span><span class="default">proxyFactory</span><span class="keyword">(</span><span class="default">$entity</span><span class="keyword">,</span><span class="default"> </span><span class="default">$doc</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 85" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testConvert</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$return</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="86"></a><a href="#86">86</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="87"></a><a href="#87">87</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="88"></a><a href="#88">88</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="comment"> * Create a new instance of ResultConverter</span></td></tr> + <tr><td><div align="right"><a name="90"></a><a href="#90">90</a></div></td><td class="codeLine"><span class="comment"> * @param ContainerInterface $container</span></td></tr> + <tr><td><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"><span class="comment"> * @return ResultConverter</span></td></tr> + <tr><td><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">static</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">factory</span><span class="keyword">(</span><span class="default">ContainerInterface</span><span class="default"> </span><span class="default">$container</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 95" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\ResultConverterTest::testFactory</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="keyword">static</span><span class="keyword">(</span><span class="default">$container</span><span class="default">-></span><span class="default">get</span><span class="keyword">(</span><span class="default">'repositories'</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/popper.min.js" type="text/javascript"></script> + <script src="../_js/bootstrap.min.js" type="text/javascript"></script> + <script src="../_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/Bridge/Util.php.html b/test/coverage/Bridge/Util.php.html new file mode 100644 index 0000000..fc57b94 --- /dev/null +++ b/test/coverage/Bridge/Util.php.html @@ -0,0 +1,303 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Bridge/Util.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Bridge</a></li> + <li class="breadcrumb-item active">Util.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="success">Total</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">4 / 4</div></td> + <td class="success small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">16 / 16</div></td> + </tr> + + <tr> + <td class="success"><abbr title="Solr\Bridge\Util">Util</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">4 / 4</div></td> + <td class="success small">6</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">16 / 16</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#30"><abbr title="convertLocationCoordinates(Location $location)">convertLocationCoordinates</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">5 / 5</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#47"><abbr title="convertLocationString($location)">convertLocationString</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">4 / 4</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#63"><abbr title="convertDateTime(DateTime $date)">convertDateTime</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#74"><abbr title="convertSolrDateToPhpDateTime($solrDate)">convertSolrDateToPhpDateTime</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">3</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">6 / 6</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * YAWIK</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @filesource</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @copyright (c) 2013 - 2016 Cross Solution (http://cross-solution.de)</span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @license MIT</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Bridge</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Jobs</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">Location</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">DateTime</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="comment"> * Static utility to do conversion</span></td></tr> + <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="comment"> * @author Anthonius Munthi <me@itstoni.com></span></td></tr> + <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="comment"> * @author Miroslav Fedeleš <miroslav.fedeles@gmail.com></span></td></tr> + <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="comment"> * @since 0.26</span></td></tr> + <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="comment"> * @package Solr\Bridge</span></td></tr> + <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default"> </span><span class="default">Util</span></td></tr> + <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="comment"> * Convert Location coordinate into acceptable solr document format</span></td></tr> + <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="comment"> * @param Location $location</span></td></tr> + <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="comment"> * @return string</span></td></tr> + <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">static</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">convertLocationCoordinates</span><span class="keyword">(</span><span class="default">Location</span><span class="default"> </span><span class="default">$location</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 32" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\UtilTest::testConvertLocationCoordinates</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$coordinates</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$location</span><span class="default">-></span><span class="default">getCoordinates</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">getCoordinates</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 33" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\UtilTest::testConvertLocationCoordinates</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$coordinate</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">doubleval</span><span class="keyword">(</span><span class="default">$coordinates</span><span class="keyword">[</span><span class="default">1</span><span class="keyword">]</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">.</span><span class="default"> </span><span class="default">'%'</span><span class="default"> </span><span class="keyword">.</span><span class="default"> </span><span class="default">doubleval</span><span class="keyword">(</span><span class="default">$coordinates</span><span class="keyword">[</span><span class="default">0</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 34" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\UtilTest::testConvertLocationCoordinates</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$coordinate</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">strtr</span><span class="keyword">(</span><span class="default">$coordinate</span><span class="keyword">,</span><span class="default"> </span><span class="keyword">[</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 35" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\UtilTest::testConvertLocationCoordinates</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'%'</span><span class="default">=></span><span class="default">','</span><span class="keyword">,</span></td></tr> + <tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">','</span><span class="default">=></span><span class="default">'.'</span></td></tr> + <tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 38" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\UtilTest::testConvertLocationCoordinates</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$coordinate</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="comment"> * Converts a location String "c:<lon>,<lat>" in "<lon>,<lat>"</span></td></tr> + <tr><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"><span class="comment"> * @param Location $location</span></td></tr> + <tr><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"><span class="comment"> * @return string</span></td></tr> + <tr><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">static</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">convertLocationString</span><span class="keyword">(</span><span class="default">$location</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 49" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\UtilTest::testConvertLocationString</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$coordinate</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">ltrim</span><span class="keyword">(</span><span class="default">$location</span><span class="keyword">,</span><span class="default"> </span><span class="default">'c:'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 50" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\UtilTest::testConvertLocationString</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$coordinate</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">strtr</span><span class="keyword">(</span><span class="default">$coordinate</span><span class="keyword">,</span><span class="default"> </span><span class="keyword">[</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 51" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\UtilTest::testConvertLocationString</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">','</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">'.'</span><span class="keyword">,</span></td></tr> + <tr><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">':'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">','</span></td></tr> + <tr><td><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 54" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\UtilTest::testConvertLocationString</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$coordinate</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="comment"> * Convert date time into acceptable solr document format</span></td></tr> + <tr><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"><span class="comment"> * @param DateTime $date</span></td></tr> + <tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="comment"> * @return string</span></td></tr> + <tr><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">static</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">convertDateTime</span><span class="keyword">(</span><span class="default">DateTime</span><span class="default"> </span><span class="default">$date</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 65" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\UtilTest::testConvertDateTime</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$date</span><span class="default">-></span><span class="default">setTimezone</span><span class="keyword">(</span><span class="keyword">new</span><span class="default"> </span><span class="default">\</span><span class="default">DateTimeZone</span><span class="keyword">(</span><span class="default">'UTC'</span><span class="keyword">)</span><span class="keyword">)</span><span class="default">-></span><span class="default">format</span><span class="keyword">(</span><span class="default">Manager</span><span class="default">::</span><span class="default">SOLR_DATE_FORMAT</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine"><span class="comment"> * Convert Solr date into a PHP DateTime object</span></td></tr> + <tr><td><div align="right"><a name="70"></a><a href="#70">70</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="71"></a><a href="#71">71</a></div></td><td class="codeLine"><span class="comment"> * @param string $solrDate</span></td></tr> + <tr><td><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"><span class="comment"> * @return DateTime</span></td></tr> + <tr><td><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="74"></a><a href="#74">74</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">static</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">convertSolrDateToPhpDateTime</span><span class="keyword">(</span><span class="default">$solrDate</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="75"></a><a href="#75">75</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 76" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\UtilTest::testConvertSolrDateToPhpDateTime with data set #0</li><li class="covered-by-large-tests">SolrTest\Bridge\UtilTest::testConvertSolrDateToPhpDateTime with data set #1</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="76"></a><a href="#76">76</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$solrDate</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">trim</span><span class="keyword">(</span><span class="default">$solrDate</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 77" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\UtilTest::testConvertSolrDateToPhpDateTime with data set #0</li><li class="covered-by-large-tests">SolrTest\Bridge\UtilTest::testConvertSolrDateToPhpDateTime with data set #1</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$dateTime</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">DateTime</span><span class="default">::</span><span class="default">createFromFormat</span><span class="keyword">(</span><span class="default">Manager</span><span class="default">::</span><span class="default">SOLR_DATE_FORMAT</span><span class="keyword">,</span><span class="default"> </span><span class="default">$solrDate</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 78" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\UtilTest::testConvertSolrDateToPhpDateTime with data set #0</li><li class="covered-by-large-tests">SolrTest\Bridge\UtilTest::testConvertSolrDateToPhpDateTime with data set #1</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$valid</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$dateTime</span><span class="default"> </span><span class="default">&&</span><span class="default"> </span><span class="keyword">(</span><span class="default">$dateTime</span><span class="default">-></span><span class="default">format</span><span class="keyword">(</span><span class="default">Manager</span><span class="default">::</span><span class="default">SOLR_DATE_FORMAT</span><span class="keyword">)</span><span class="default"> </span><span class="default">===</span><span class="default"> </span><span class="default">$solrDate</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 80" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\UtilTest::testConvertSolrDateToPhpDateTime with data set #0</li><li class="covered-by-large-tests">SolrTest\Bridge\UtilTest::testConvertSolrDateToPhpDateTime with data set #1</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">!</span><span class="default">$valid</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 81" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\UtilTest::testConvertSolrDateToPhpDateTime with data set #1</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">throw</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">\</span><span class="default">InvalidArgumentException</span><span class="keyword">(</span><span class="default">sprintf</span><span class="keyword">(</span><span class="default">'invalid format of Solr date passed: "%s"'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$solrDate</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 84" data-content="<ul><li class="covered-by-large-tests">SolrTest\Bridge\UtilTest::testConvertSolrDateToPhpDateTime with data set #0</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$dateTime</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="86"></a><a href="#86">86</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/popper.min.js" type="text/javascript"></script> + <script src="../_js/bootstrap.min.js" type="text/javascript"></script> + <script src="../_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/Bridge/dashboard.html b/test/coverage/Bridge/dashboard.html new file mode 100644 index 0000000..7129de0 --- /dev/null +++ b/test/coverage/Bridge/dashboard.html @@ -0,0 +1,284 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Dashboard for /home/cbleek/AtomProjects/Solr/src/Bridge</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/nv.d3.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Bridge</a></li> + <li class="breadcrumb-item active">(Dashboard)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <h2>Classes</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="classCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="classComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <h2>Methods</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="methodCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="methodComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + </div> + <footer> + <hr/> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/d3.min.js" type="text/javascript"></script> + <script src="../_js/nv.d3.min.js" type="text/javascript"></script> + <script type="text/javascript"> +$(document).ready(function() { + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#classCoverageDistribution svg') + .datum(getCoverageDistributionData([0,0,0,0,0,0,0,0,0,0,0,3], "Class Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#methodCoverageDistribution svg') + .datum(getCoverageDistributionData([0,0,0,0,0,0,0,0,0,0,0,11], "Method Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getCoverageDistributionData(data, label) { + var labels = [ + '0%', + '0-10%', + '10-20%', + '20-30%', + '30-40%', + '40-50%', + '50-60%', + '60-70%', + '70-80%', + '80-90%', + '90-100%', + '100%' + ]; + var values = []; + $.each(labels, function(key) { + values.push({x: labels[key], y: data[key]}); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Cyclomatic Complexity'); + + d3.select('#classComplexity svg') + .datum(getComplexityData([[100,5,"<a href=\"Manager.php.html#24\">Solr\\Bridge\\Manager<\/a>"],[100,10,"<a href=\"ResultConverter.php.html#28\">Solr\\Bridge\\ResultConverter<\/a>"],[100,6,"<a href=\"Util.php.html#23\">Solr\\Bridge\\Util<\/a>"]], 'Class Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Method Complexity'); + + d3.select('#methodComplexity svg') + .datum(getComplexityData([[100,1,"<a href=\"Manager.php.html#42\">Solr\\Bridge\\Manager::__construct<\/a>"],[100,2,"<a href=\"Manager.php.html#53\">Solr\\Bridge\\Manager::getClient<\/a>"],[100,1,"<a href=\"Manager.php.html#77\">Solr\\Bridge\\Manager::getOptions<\/a>"],[100,1,"<a href=\"Manager.php.html#89\">Solr\\Bridge\\Manager::factory<\/a>"],[100,1,"<a href=\"ResultConverter.php.html#39\">Solr\\Bridge\\ResultConverter::__construct<\/a>"],[100,8,"<a href=\"ResultConverter.php.html#52\">Solr\\Bridge\\ResultConverter::convert<\/a>"],[100,1,"<a href=\"ResultConverter.php.html#93\">Solr\\Bridge\\ResultConverter::factory<\/a>"],[100,1,"<a href=\"Util.php.html#30\">Solr\\Bridge\\Util::convertLocationCoordinates<\/a>"],[100,1,"<a href=\"Util.php.html#47\">Solr\\Bridge\\Util::convertLocationString<\/a>"],[100,1,"<a href=\"Util.php.html#63\">Solr\\Bridge\\Util::convertDateTime<\/a>"],[100,3,"<a href=\"Util.php.html#74\">Solr\\Bridge\\Util::convertSolrDateToPhpDateTime<\/a>"]], 'Method Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getComplexityData(data, label) { + var values = []; + $.each(data, function(key) { + var value = Math.round(data[key][0]*100) / 100; + values.push({ + x: value, + y: data[key][1], + class: data[key][2], + size: 0.05, + shape: 'diamond' + }); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } +}); + </script> + </body> +</html> diff --git a/test/coverage/Bridge/index.html b/test/coverage/Bridge/index.html new file mode 100644 index 0000000..b5a5476 --- /dev/null +++ b/test/coverage/Bridge/index.html @@ -0,0 +1,175 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Bridge</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item active">Bridge</li> + <li class="breadcrumb-item">(<a href="dashboard.html">Dashboard</a>)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="9"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + <td colspan="3"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="success">Total</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">55 / 55</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">11 / 11</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">3 / 3</div></td> + </tr> + + <tr> + <td class="success"><img src="../_icons/file-code.svg" class="octicon" /><a href="Manager.php.html">Manager.php</a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">16 / 16</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">4 / 4</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success"><img src="../_icons/file-code.svg" class="octicon" /><a href="ResultConverter.php.html">ResultConverter.php</a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">23 / 23</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">3 / 3</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success"><img src="../_icons/file-code.svg" class="octicon" /><a href="Util.php.html">Util.php</a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">16 / 16</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">4 / 4</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + + </tbody> + </table> + </div> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="danger"><strong>Low</strong>: 0% to 50%</span> + <span class="warning"><strong>Medium</strong>: 50% to 90%</span> + <span class="success"><strong>High</strong>: 90% to 100%</span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + </body> +</html> diff --git a/test/coverage/Controller/ConsoleController.php.html b/test/coverage/Controller/ConsoleController.php.html new file mode 100644 index 0000000..540c677 --- /dev/null +++ b/test/coverage/Controller/ConsoleController.php.html @@ -0,0 +1,292 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Controller/ConsoleController.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Controller</a></li> + <li class="breadcrumb-item active">ConsoleController.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="success">Total</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">3 / 3</div></td> + <td class="success small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">22 / 22</div></td> + </tr> + + <tr> + <td class="success"><abbr title="Solr\Controller\ConsoleController">ConsoleController</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">3 / 3</div></td> + <td class="success small">5</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">22 / 22</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#52"><abbr title="__construct(SolrClient $solrClient, JobRepository $jobRepository, callable $progressBarFactory, $options)">__construct</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">5 / 5</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#60"><abbr title="activeJobIndexAction()">activeJobIndexAction</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">3</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">16 / 16</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#92"><abbr title="getProgressBarFactory()">getProgressBarFactory</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * YAWIK</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @filesource</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @copyright (c) 2013 - 2016 Cross Solution (http://cross-solution.de)</span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @license MIT</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Controller</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Core</span><span class="default">\</span><span class="default">Console</span><span class="default">\</span><span class="default">ProgressBar</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Jobs</span><span class="default">\</span><span class="default">Repository</span><span class="default">\</span><span class="default">Job</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">JobRepository</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">SolrClient</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Zend</span><span class="default">\</span><span class="default">Mvc</span><span class="default">\</span><span class="default">Controller</span><span class="default">\</span><span class="default">AbstractActionController</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="comment"> * @author Anthonius Munthi <me@itstoni.com></span></td></tr> + <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="comment"> * @author Miroslav Fedeleš <miroslav.fedeles@gmail.com></span></td></tr> + <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="comment"> * @since 0.26</span></td></tr> + <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="comment"> * @package Solr\Controller</span></td></tr> + <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default"> </span><span class="default">ConsoleController</span><span class="default"> </span><span class="keyword">extends</span><span class="default"> </span><span class="default">AbstractActionController</span></td></tr> + <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="comment"> * @var \Solr\Options\ModuleOptions</span></td></tr> + <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$options</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="comment"> * @var SolrClient</span></td></tr> + <tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$solrClient</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"><span class="comment"> * @var JobRepository</span></td></tr> + <tr><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$jobRepository</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="comment"> * @var callable</span></td></tr> + <tr><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$progressBarFactory</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="comment"> * @param SolrClient $solrClient</span></td></tr> + <tr><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="comment"> * @param JobRepository $jobRepository</span></td></tr> + <tr><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"><span class="comment"> * @param callable $progressBarFactory</span></td></tr> + <tr><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"><span class="comment"> * @since 0.27</span></td></tr> + <tr><td><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">__construct</span><span class="keyword">(</span><span class="default">SolrClient</span><span class="default"> </span><span class="default">$solrClient</span><span class="keyword">,</span><span class="default"> </span><span class="default">JobRepository</span><span class="default"> </span><span class="default">$jobRepository</span><span class="keyword">,</span><span class="default"> </span><span class="keyword">callable</span><span class="default"> </span><span class="default">$progressBarFactory</span><span class="keyword">,</span><span class="default"> </span><span class="default">$options</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 54" data-content="<ul><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithoutJobs</li><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithJobs</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">solrClient</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$solrClient</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 55" data-content="<ul><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithoutJobs</li><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithJobs</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">jobRepository</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$jobRepository</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 56" data-content="<ul><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithoutJobs</li><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithJobs</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">progressBarFactory</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$progressBarFactory</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 57" data-content="<ul><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithoutJobs</li><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithJobs</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">options</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$options</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 58" data-content="<ul><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithoutJobs</li><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithJobs</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">activeJobIndexAction</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 62" data-content="<ul><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithoutJobs</li><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithJobs</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$jobs</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">jobRepository</span><span class="default">-></span><span class="default">findActiveJob</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 63" data-content="<ul><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithoutJobs</li><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithJobs</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$count</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$jobs</span><span class="default">-></span><span class="default">count</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// check if there is any active job</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 66" data-content="<ul><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithoutJobs</li><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithJobs</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">0</span><span class="default"> </span><span class="default">===</span><span class="default"> </span><span class="default">$count</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 67" data-content="<ul><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithoutJobs</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">'There is no active job'</span><span class="default"> </span><span class="keyword">.</span><span class="default"> </span><span class="default">PHP_EOL</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 70" data-content="<ul><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithJobs</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="70"></a><a href="#70">70</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$i</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">1</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 71" data-content="<ul><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithJobs</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="71"></a><a href="#71">71</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$progressBarFactory</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">progressBarFactory</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 72" data-content="<ul><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithJobs</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$progressBar</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$progressBarFactory</span><span class="keyword">(</span><span class="default">$count</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 73" data-content="<ul><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithJobs</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$entityToDocument</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">\</span><span class="default">Solr</span><span class="default">\</span><span class="default">Filter</span><span class="default">\</span><span class="default">EntityToDocument</span><span class="default">\</span><span class="default">JobEntityToSolrDocument</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">options</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="74"></a><a href="#74">74</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="75"></a><a href="#75">75</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// add jobs in the Solr index</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 76" data-content="<ul><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithJobs</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="76"></a><a href="#76">76</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">foreach</span><span class="default"> </span><span class="keyword">(</span><span class="default">$jobs</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">$job</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 77" data-content="<ul><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithJobs</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$entityToDocument</span><span class="default">-></span><span class="default">filter</span><span class="keyword">(</span><span class="default">$job</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 78" data-content="<ul><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithJobs</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">solrClient</span><span class="default">-></span><span class="default">addDocument</span><span class="keyword">(</span><span class="default">$document</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 79" data-content="<ul><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithJobs</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$progressBar</span><span class="default">-></span><span class="default">update</span><span class="keyword">(</span><span class="default">$i</span><span class="keyword">,</span><span class="default"> </span><span class="default">'Job '</span><span class="default"> </span><span class="keyword">.</span><span class="default"> </span><span class="default">$i</span><span class="default"> </span><span class="keyword">.</span><span class="default"> </span><span class="default">' / '</span><span class="default"> </span><span class="keyword">.</span><span class="default"> </span><span class="default">$count</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 80" data-content="<ul><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithJobs</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$i</span><span class="default">++</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 83" data-content="<ul><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithJobs</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">solrClient</span><span class="default">-></span><span class="default">commit</span><span class="keyword">(</span><span class="default">true</span><span class="keyword">,</span><span class="default"> </span><span class="default">false</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 84" data-content="<ul><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithJobs</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">solrClient</span><span class="default">-></span><span class="default">optimize</span><span class="keyword">(</span><span class="default">1</span><span class="keyword">,</span><span class="default"> </span><span class="default">true</span><span class="keyword">,</span><span class="default"> </span><span class="default">false</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 86" data-content="<ul><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testActiveJobIndexActionWithJobs</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="86"></a><a href="#86">86</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">PHP_EOL</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="87"></a><a href="#87">87</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="88"></a><a href="#88">88</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="90"></a><a href="#90">90</a></div></td><td class="codeLine"><span class="comment"> * @return callable</span></td></tr> + <tr><td><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getProgressBarFactory</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 94" data-content="<ul><li class="covered-by-large-tests">SolrTest\Controller\ConsoleControllerTest::testGetProgressBarFactory</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">progressBarFactory</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/popper.min.js" type="text/javascript"></script> + <script src="../_js/bootstrap.min.js" type="text/javascript"></script> + <script src="../_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/Controller/Plugin/FacetsInjectorProcessJsonRequestDecorator.php.html b/test/coverage/Controller/Plugin/FacetsInjectorProcessJsonRequestDecorator.php.html new file mode 100644 index 0000000..9c250c8 --- /dev/null +++ b/test/coverage/Controller/Plugin/FacetsInjectorProcessJsonRequestDecorator.php.html @@ -0,0 +1,249 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Controller/Plugin/FacetsInjectorProcessJsonRequestDecorator.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="../index.html">Controller</a></li> + <li class="breadcrumb-item"><a href="index.html">Plugin</a></li> + <li class="breadcrumb-item active">FacetsInjectorProcessJsonRequestDecorator.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="danger">Total</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 3</div></td> + <td class="danger small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 17</div></td> + </tr> + + <tr> + <td class="danger"><abbr title="Solr\Controller\Plugin\FacetsInjectorProcessJsonRequestDecorator">FacetsInjectorProcessJsonRequestDecorator</abbr></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 3</div></td> + <td class="danger small">20.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 17</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#27"><abbr title="__construct(ProcessJsonRequest $processJsonRequestPlugin)">__construct</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">2.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 3</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#32"><abbr title="setController(\Laminas\Stdlib\DispatchableInterface $controller): void">setController</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">2.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 4</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#38"><abbr title="__invoke(array $data): array">__invoke</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">6.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 10</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php </span><span class="default">declare</span><span class="keyword">(</span><span class="default">strict_types</span><span class="keyword">=</span><span class="default">1</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * YAWIK-Solr</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @filesource</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @copyright 2019 CROSS Solution <https://www.cross-solution.de></span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @license MIT</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Controller</span><span class="default">\</span><span class="default">Plugin</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Jobs</span><span class="default">\</span><span class="default">Controller</span><span class="default">\</span><span class="default">Plugin</span><span class="default">\</span><span class="default">ProcessJsonRequest</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="comment"> * TODO: description</span></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="comment"> * @author Mathias Gelhausen <gelhausen@cross-solution.de></span></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="comment"> * TODO: write tests</span></td></tr> + <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default"> </span><span class="default">FacetsInjectorProcessJsonRequestDecorator</span><span class="default"> </span><span class="keyword">extends</span><span class="default"> </span><span class="default">ProcessJsonRequest</span></td></tr> + <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="comment"> * @var ProcessJsonRequest</span></td></tr> + <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">private</span><span class="default"> </span><span class="default">$processJsonRequestPlugin</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">__construct</span><span class="keyword">(</span><span class="default">ProcessJsonRequest</span><span class="default"> </span><span class="default">$processJsonRequestPlugin</span><span class="keyword">)</span></td></tr> + <tr class="danger"><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">processJsonRequestPlugin</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$processJsonRequestPlugin</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setController</span><span class="keyword">(</span><span class="default">\</span><span class="default">Zend</span><span class="default">\</span><span class="default">Stdlib</span><span class="default">\</span><span class="default">DispatchableInterface</span><span class="default"> </span><span class="default">$controller</span><span class="keyword">)</span><span class="keyword">:</span><span class="default"> </span><span class="default">void</span></td></tr> + <tr class="danger"><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">parent</span><span class="default">::</span><span class="default">setController</span><span class="keyword">(</span><span class="default">$controller</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">processJsonRequestPlugin</span><span class="default">-></span><span class="default">setController</span><span class="keyword">(</span><span class="default">$controller</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">__invoke</span><span class="keyword">(</span><span class="keyword">array</span><span class="default"> </span><span class="default">$data</span><span class="keyword">)</span><span class="keyword">:</span><span class="default"> </span><span class="keyword">array</span></td></tr> + <tr class="danger"><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$result</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">processJsonRequestPlugin</span><span class="default">-></span><span class="default">__invoke</span><span class="keyword">(</span><span class="default">$data</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"></td></tr> + <tr class="danger"><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$paginator</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$data</span><span class="keyword">[</span><span class="default">'jobs'</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"></td></tr> + <tr class="danger"><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">$paginator</span><span class="default"> </span><span class="keyword">instanceof</span><span class="default"> </span><span class="default">\</span><span class="default">Solr</span><span class="default">\</span><span class="default">FacetsProviderInterface</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$facets</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$paginator</span><span class="default">-></span><span class="default">getFacets</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$result</span><span class="keyword">[</span><span class="default">'facets'</span><span class="keyword">]</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$facets</span><span class="default">-></span><span class="default">toArray</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$result</span><span class="keyword">[</span><span class="default">'activeFacets'</span><span class="keyword">]</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$facets</span><span class="default">-></span><span class="default">getActiveValues</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"></td></tr> + <tr class="danger"><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$result</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="../../_js/jquery.min.js" type="text/javascript"></script> + <script src="../../_js/popper.min.js" type="text/javascript"></script> + <script src="../../_js/bootstrap.min.js" type="text/javascript"></script> + <script src="../../_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/Controller/Plugin/dashboard.html b/test/coverage/Controller/Plugin/dashboard.html new file mode 100644 index 0000000..3956020 --- /dev/null +++ b/test/coverage/Controller/Plugin/dashboard.html @@ -0,0 +1,291 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Dashboard for /home/cbleek/AtomProjects/Solr/src/Controller/Plugin</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../../_css/nv.d3.min.css" rel="stylesheet" type="text/css"> + <link href="../../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="../index.html">Controller</a></li> + <li class="breadcrumb-item"><a href="index.html">Plugin</a></li> + <li class="breadcrumb-item active">(Dashboard)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <h2>Classes</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="classCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="classComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + <tr><td><a href="FacetsInjectorProcessJsonRequestDecorator.php.html#20">Solr\Controller\Plugin\FacetsInjectorProcessJsonRequestDecorator</a></td><td class="text-right">0%</td></tr> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + <tr><td><a href="FacetsInjectorProcessJsonRequestDecorator.php.html#20">Solr\Controller\Plugin\FacetsInjectorProcessJsonRequestDecorator</a></td><td class="text-right">20</td></tr> + + </tbody> + </table> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <h2>Methods</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="methodCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="methodComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + <tr><td><a href="FacetsInjectorProcessJsonRequestDecorator.php.html#27"><abbr title="Solr\Controller\Plugin\FacetsInjectorProcessJsonRequestDecorator::__construct">__construct</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="FacetsInjectorProcessJsonRequestDecorator.php.html#32"><abbr title="Solr\Controller\Plugin\FacetsInjectorProcessJsonRequestDecorator::setController">setController</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="FacetsInjectorProcessJsonRequestDecorator.php.html#38"><abbr title="Solr\Controller\Plugin\FacetsInjectorProcessJsonRequestDecorator::__invoke">__invoke</abbr></a></td><td class="text-right">0%</td></tr> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + <tr><td><a href="FacetsInjectorProcessJsonRequestDecorator.php.html#38"><abbr title="Solr\Controller\Plugin\FacetsInjectorProcessJsonRequestDecorator::__invoke">__invoke</abbr></a></td><td class="text-right">6</td></tr> + + </tbody> + </table> + </div> + </div> + </div> + <footer> + <hr/> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + <script src="../../_js/jquery.min.js" type="text/javascript"></script> + <script src="../../_js/d3.min.js" type="text/javascript"></script> + <script src="../../_js/nv.d3.min.js" type="text/javascript"></script> + <script type="text/javascript"> +$(document).ready(function() { + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#classCoverageDistribution svg') + .datum(getCoverageDistributionData([1,0,0,0,0,0,0,0,0,0,0,0], "Class Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#methodCoverageDistribution svg') + .datum(getCoverageDistributionData([3,0,0,0,0,0,0,0,0,0,0,0], "Method Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getCoverageDistributionData(data, label) { + var labels = [ + '0%', + '0-10%', + '10-20%', + '20-30%', + '30-40%', + '40-50%', + '50-60%', + '60-70%', + '70-80%', + '80-90%', + '90-100%', + '100%' + ]; + var values = []; + $.each(labels, function(key) { + values.push({x: labels[key], y: data[key]}); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Cyclomatic Complexity'); + + d3.select('#classComplexity svg') + .datum(getComplexityData([[0,4,"<a href=\"FacetsInjectorProcessJsonRequestDecorator.php.html#20\">Solr\\Controller\\Plugin\\FacetsInjectorProcessJsonRequestDecorator<\/a>"]], 'Class Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Method Complexity'); + + d3.select('#methodComplexity svg') + .datum(getComplexityData([[0,1,"<a href=\"FacetsInjectorProcessJsonRequestDecorator.php.html#27\">Solr\\Controller\\Plugin\\FacetsInjectorProcessJsonRequestDecorator::__construct<\/a>"],[0,1,"<a href=\"FacetsInjectorProcessJsonRequestDecorator.php.html#32\">Solr\\Controller\\Plugin\\FacetsInjectorProcessJsonRequestDecorator::setController<\/a>"],[0,2,"<a href=\"FacetsInjectorProcessJsonRequestDecorator.php.html#38\">Solr\\Controller\\Plugin\\FacetsInjectorProcessJsonRequestDecorator::__invoke<\/a>"]], 'Method Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getComplexityData(data, label) { + var values = []; + $.each(data, function(key) { + var value = Math.round(data[key][0]*100) / 100; + values.push({ + x: value, + y: data[key][1], + class: data[key][2], + size: 0.05, + shape: 'diamond' + }); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } +}); + </script> + </body> +</html> diff --git a/test/coverage/Controller/Plugin/index.html b/test/coverage/Controller/Plugin/index.html new file mode 100644 index 0000000..d7fa55c --- /dev/null +++ b/test/coverage/Controller/Plugin/index.html @@ -0,0 +1,120 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Controller/Plugin</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="../index.html">Controller</a></li> + <li class="breadcrumb-item active">Plugin</li> + <li class="breadcrumb-item">(<a href="dashboard.html">Dashboard</a>)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="9"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + <td colspan="3"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="danger">Total</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 17</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 3</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + <tr> + <td class="danger"><img src="../../_icons/file-code.svg" class="octicon" /><a href="FacetsInjectorProcessJsonRequestDecorator.php.html">FacetsInjectorProcessJsonRequestDecorator.php</a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 17</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 3</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + + </tbody> + </table> + </div> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="danger"><strong>Low</strong>: 0% to 50%</span> + <span class="warning"><strong>Medium</strong>: 50% to 90%</span> + <span class="success"><strong>High</strong>: 90% to 100%</span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + </body> +</html> diff --git a/test/coverage/Controller/dashboard.html b/test/coverage/Controller/dashboard.html new file mode 100644 index 0000000..f25c334 --- /dev/null +++ b/test/coverage/Controller/dashboard.html @@ -0,0 +1,290 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Dashboard for /home/cbleek/AtomProjects/Solr/src/Controller</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/nv.d3.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Controller</a></li> + <li class="breadcrumb-item active">(Dashboard)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <h2>Classes</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="classCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="classComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + <tr><td><a href="Plugin/FacetsInjectorProcessJsonRequestDecorator.php.html#20">Solr\Controller\Plugin\FacetsInjectorProcessJsonRequestDecorator</a></td><td class="text-right">0%</td></tr> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + <tr><td><a href="Plugin/FacetsInjectorProcessJsonRequestDecorator.php.html#20">Solr\Controller\Plugin\FacetsInjectorProcessJsonRequestDecorator</a></td><td class="text-right">20</td></tr> + + </tbody> + </table> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <h2>Methods</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="methodCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="methodComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + <tr><td><a href="Plugin/FacetsInjectorProcessJsonRequestDecorator.php.html#27"><abbr title="Solr\Controller\Plugin\FacetsInjectorProcessJsonRequestDecorator::__construct">__construct</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Plugin/FacetsInjectorProcessJsonRequestDecorator.php.html#32"><abbr title="Solr\Controller\Plugin\FacetsInjectorProcessJsonRequestDecorator::setController">setController</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Plugin/FacetsInjectorProcessJsonRequestDecorator.php.html#38"><abbr title="Solr\Controller\Plugin\FacetsInjectorProcessJsonRequestDecorator::__invoke">__invoke</abbr></a></td><td class="text-right">0%</td></tr> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + <tr><td><a href="Plugin/FacetsInjectorProcessJsonRequestDecorator.php.html#38"><abbr title="Solr\Controller\Plugin\FacetsInjectorProcessJsonRequestDecorator::__invoke">__invoke</abbr></a></td><td class="text-right">6</td></tr> + + </tbody> + </table> + </div> + </div> + </div> + <footer> + <hr/> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/d3.min.js" type="text/javascript"></script> + <script src="../_js/nv.d3.min.js" type="text/javascript"></script> + <script type="text/javascript"> +$(document).ready(function() { + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#classCoverageDistribution svg') + .datum(getCoverageDistributionData([1,0,0,0,0,0,0,0,0,0,0,1], "Class Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#methodCoverageDistribution svg') + .datum(getCoverageDistributionData([3,0,0,0,0,0,0,0,0,0,0,3], "Method Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getCoverageDistributionData(data, label) { + var labels = [ + '0%', + '0-10%', + '10-20%', + '20-30%', + '30-40%', + '40-50%', + '50-60%', + '60-70%', + '70-80%', + '80-90%', + '90-100%', + '100%' + ]; + var values = []; + $.each(labels, function(key) { + values.push({x: labels[key], y: data[key]}); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Cyclomatic Complexity'); + + d3.select('#classComplexity svg') + .datum(getComplexityData([[100,5,"<a href=\"ConsoleController.php.html#23\">Solr\\Controller\\ConsoleController<\/a>"],[0,4,"<a href=\"Plugin\/FacetsInjectorProcessJsonRequestDecorator.php.html#20\">Solr\\Controller\\Plugin\\FacetsInjectorProcessJsonRequestDecorator<\/a>"]], 'Class Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Method Complexity'); + + d3.select('#methodComplexity svg') + .datum(getComplexityData([[100,1,"<a href=\"ConsoleController.php.html#52\">Solr\\Controller\\ConsoleController::__construct<\/a>"],[100,3,"<a href=\"ConsoleController.php.html#60\">Solr\\Controller\\ConsoleController::activeJobIndexAction<\/a>"],[100,1,"<a href=\"ConsoleController.php.html#92\">Solr\\Controller\\ConsoleController::getProgressBarFactory<\/a>"],[0,1,"<a href=\"Plugin\/FacetsInjectorProcessJsonRequestDecorator.php.html#27\">Solr\\Controller\\Plugin\\FacetsInjectorProcessJsonRequestDecorator::__construct<\/a>"],[0,1,"<a href=\"Plugin\/FacetsInjectorProcessJsonRequestDecorator.php.html#32\">Solr\\Controller\\Plugin\\FacetsInjectorProcessJsonRequestDecorator::setController<\/a>"],[0,2,"<a href=\"Plugin\/FacetsInjectorProcessJsonRequestDecorator.php.html#38\">Solr\\Controller\\Plugin\\FacetsInjectorProcessJsonRequestDecorator::__invoke<\/a>"]], 'Method Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getComplexityData(data, label) { + var values = []; + $.each(data, function(key) { + var value = Math.round(data[key][0]*100) / 100; + values.push({ + x: value, + y: data[key][1], + class: data[key][2], + size: 0.05, + shape: 'diamond' + }); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } +}); + </script> + </body> +</html> diff --git a/test/coverage/Controller/index.html b/test/coverage/Controller/index.html new file mode 100644 index 0000000..fe039c6 --- /dev/null +++ b/test/coverage/Controller/index.html @@ -0,0 +1,147 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Controller</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item active">Controller</li> + <li class="breadcrumb-item">(<a href="dashboard.html">Dashboard</a>)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="9"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + <td colspan="3"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="warning">Total</td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="56.41" aria-valuemin="0" aria-valuemax="100" style="width: 56.41%"> + <span class="sr-only">56.41% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">56.41%</div></td> + <td class="warning small"><div align="right">22 / 39</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%"> + <span class="sr-only">50.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">50.00%</div></td> + <td class="danger small"><div align="right">3 / 6</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%"> + <span class="sr-only">50.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">50.00%</div></td> + <td class="danger small"><div align="right">1 / 2</div></td> + </tr> + + <tr> + <td class="danger"><img src="../_icons/file-directory.svg" class="octicon" /><a href="Plugin/index.html">Plugin</a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 17</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 3</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + <tr> + <td class="success"><img src="../_icons/file-code.svg" class="octicon" /><a href="ConsoleController.php.html">ConsoleController.php</a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">22 / 22</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">3 / 3</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + + </tbody> + </table> + </div> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="danger"><strong>Low</strong>: 0% to 50%</span> + <span class="warning"><strong>Medium</strong>: 50% to 90%</span> + <span class="success"><strong>High</strong>: 90% to 100%</span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + </body> +</html> diff --git a/test/coverage/Entity/JobProxy.php.html b/test/coverage/Entity/JobProxy.php.html new file mode 100644 index 0000000..1991cbd --- /dev/null +++ b/test/coverage/Entity/JobProxy.php.html @@ -0,0 +1,2083 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Entity/JobProxy.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Entity</a></li> + <li class="breadcrumb-item active">JobProxy.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="danger">Total</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="82.54" aria-valuemin="0" aria-valuemax="100" style="width: 82.54%"> + <span class="sr-only">82.54% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">82.54%</div></td> + <td class="warning small"><div align="right">52 / 63</div></td> + <td class="warning small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="77.65" aria-valuemin="0" aria-valuemax="100" style="width: 77.65%"> + <span class="sr-only">77.65% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">77.65%</div></td> + <td class="warning small"><div align="right">66 / 85</div></td> + </tr> + + <tr> + <td class="danger"><abbr title="Solr\Entity\JobProxy">JobProxy</abbr></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="82.54" aria-valuemin="0" aria-valuemax="100" style="width: 82.54%"> + <span class="sr-only">82.54% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">82.54%</div></td> + <td class="warning small"><div align="right">52 / 63</div></td> + <td class="warning small">151.48</td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="77.65" aria-valuemin="0" aria-valuemax="100" style="width: 77.65%"> + <span class="sr-only">77.65% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">77.65%</div></td> + <td class="warning small"><div align="right">66 / 85</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#49"><abbr title="__construct(JobInterface $job, ArrayAccess $solrResult)">__construct</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">3 / 3</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#58"><abbr title="getId()">getId</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">2</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#66"><abbr title="getApplications()">getApplications</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#74"><abbr title="getApplyId()">getApplyId</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">2</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#82"><abbr title="getAtsEnabled()">getAtsEnabled</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#90"><abbr title="getAtsMode()">getAtsMode</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#98"><abbr title="getCompany()">getCompany</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">2</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#106"><abbr title="getContactEmail()">getContactEmail</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">2</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#114"><abbr title="getDatePublishEnd()">getDatePublishEnd</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">2</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#124"><abbr title="getDatePublishStart()">getDatePublishStart</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">2</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#134"><abbr title="getHistory()">getHistory</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#142"><abbr title="getLanguage()">getLanguage</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">2</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#150"><abbr title="getLink()">getLink</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">3</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">4 / 4</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#165"><abbr title="getLocation()">getLocation</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">7</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">8 / 8</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#188"><abbr title="getLocations()">getLocations</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#196"><abbr title="getOrganization()">getOrganization</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#204"><abbr title="getPortals()">getPortals</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#212"><abbr title="getReference()">getReference</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#220"><abbr title="getStatus()">getStatus</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#228"><abbr title="getTermsAccepted()">getTermsAccepted</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#236"><abbr title="getTitle()">getTitle</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">2</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#244"><abbr title="getUriApply()">getUriApply</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#252"><abbr title="getUriPublisher()">getUriPublisher</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#260"><abbr title="getUser()">getUser</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#268"><abbr title="setApplications(\Doctrine\Common\Collections\Collection $applications)">setApplications</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#276"><abbr title="setApplyId($applyId)">setApplyId</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#284"><abbr title="setAtsEnabled($atsEnabled)">setAtsEnabled</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#292"><abbr title="setAtsMode(\Jobs\Entity\AtsMode $mode)">setAtsMode</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#300"><abbr title="setCompany($company)">setCompany</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#308"><abbr title="setContactEmail($email)">setContactEmail</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#316"><abbr title="setDatePublishEnd($datePublishEnd)">setDatePublishEnd</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#324"><abbr title="setDatePublishStart($datePublishStart)">setDatePublishStart</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#332"><abbr title="setHistory(\Doctrine\Common\Collections\Collection $history)">setHistory</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#340"><abbr title="setLanguage($language)">setLanguage</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#348"><abbr title="setLink($link)">setLink</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#356"><abbr title="setLocation($location)">setLocation</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#364"><abbr title="setLocations($locations)">setLocations</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#372"><abbr title="setOrganization(\Organizations\Entity\OrganizationInterface $organization = null)">setOrganization</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#380"><abbr title="setPortals(array $portals)">setPortals</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#388"><abbr title="setReference($reference)">setReference</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#396"><abbr title="setStatus($status)">setStatus</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#404"><abbr title="setTermsAccepted($flag)">setTermsAccepted</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#412"><abbr title="setTitle($title)">setTitle</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#420"><abbr title="setUriApply($uriApply)">setUriApply</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#428"><abbr title="setUriPublisher($uriPublisher)">setUriPublisher</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#436"><abbr title="setUser(\Auth\Entity\UserInterface $user)">setUser</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#444"><abbr title="getResourceId()">getResourceId</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#452"><abbr title="getPermissions()">getPermissions</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#460"><abbr title="setPermissions(\Core\Entity\PermissionsInterface $permissions)">setPermissions</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#469"><abbr title="getSolrValue($key)">getSolrValue</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">2</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#484"><abbr title="getMetaData($key = null)">getMetaData</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">2.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#497"><abbr title="setMetaData($key, $value)">setMetaData</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">2.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 2</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#510"><abbr title="hasMetaData($key)">hasMetaData</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">2.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#520"><abbr title="getTemplateValues()">getTemplateValues</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#530"><abbr title="setTemplateValues(EntityInterface $templateValues = null)">setTemplateValues</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">2.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 2</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#539"><abbr title="getClassifications()">getClassifications</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#549"><abbr title="setClassifications($classifications)">setClassifications</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">2.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 2</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#560"><abbr title="setAttachableEntityManager(AttachableEntityManager $attachableEntityManager)">setAttachableEntityManager</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">2.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 2</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#576"><abbr title="addAttachedEntity(IdentifiableEntityInterface $entity, $key = null)">addAttachedEntity</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">2.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 2</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#587"><abbr title="getAttachedEntity($key)">getAttachedEntity</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">2.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 2</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#597"><abbr title="removeAttachedEntity($key)">removeAttachedEntity</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">2.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#607"><abbr title="hasAttachedEntity($key)">hasAttachedEntity</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">2.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 2</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#622"><abbr title="createAttachedEntity($entityClass, $values = [], $key = null)">createAttachedEntity</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">2.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 2</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * YAWIK</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @filesource</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @copyright (c) 2013 - 2016 Cross Solution (http://cross-solution.de)</span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @license MIT</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Entity</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Core</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">AttachableEntityInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Core</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">AttachableEntityManager</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Core</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">EntityInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Core</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">IdentifiableEntityInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">CoreTestUtils</span><span class="default">\</span><span class="default">TestCase</span><span class="default">\</span><span class="default">TestInheritanceTrait</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">CoreTestUtils</span><span class="default">\</span><span class="default">TestCase</span><span class="default">\</span><span class="default">TestSetterGetterTrait</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">CoreTestUtils</span><span class="default">\</span><span class="default">TestCase</span><span class="default">\</span><span class="default">TestUsesTraitsTrait</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Jobs</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">JobInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Core</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">AbstractIdentifiableModificationDateAwareEntity</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">ArrayAccess</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Jobs</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">TemplateValues</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Bridge</span><span class="default">\</span><span class="default">Util</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="comment"> * This class decorates an instance of JobInterface and allows returning data</span></td></tr> + <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="comment"> * from Solr result instead of data from the decorated one.</span></td></tr> + <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="comment"> * @author Miroslav Fedeleš <miroslav.fedeles@gmail.com></span></td></tr> + <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="comment"> * @since 0.27</span></td></tr> + <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="comment"> * @package Solr\Entity</span></td></tr> + <tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default"> </span><span class="default">JobProxy</span><span class="default"> </span><span class="keyword">extends</span><span class="default"> </span><span class="default">AbstractIdentifiableModificationDateAwareEntity</span><span class="default"> </span><span class="keyword">implements</span><span class="default"> </span><span class="default">JobInterface</span></td></tr> + <tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="comment"> * @var JobInterface</span></td></tr> + <tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$job</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="comment"> * @var ArrayAccess</span></td></tr> + <tr><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$solrResult</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="comment"> * @param JobInterface $job</span></td></tr> + <tr><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="comment"> * @param ArrayAccess $solrResult</span></td></tr> + <tr><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">__construct</span><span class="keyword">(</span><span class="default">JobInterface</span><span class="default"> </span><span class="default">$job</span><span class="keyword">,</span><span class="default"> </span><span class="default">ArrayAccess</span><span class="default"> </span><span class="default">$solrResult</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 51" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetApplications</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$job</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 52" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetApplications</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">solrResult</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$solrResult</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 53" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetApplications</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getId()</span></td></tr> + <tr><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 60" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetId</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">getSolrValue</span><span class="keyword">(</span><span class="default">'id'</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">?</span><span class="keyword">:</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getApplications()</span></td></tr> + <tr><td><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getApplications</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 68" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetApplications</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getApplications</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="70"></a><a href="#70">70</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="71"></a><a href="#71">71</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getApplyId()</span></td></tr> + <tr><td><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="74"></a><a href="#74">74</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getApplyId</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="75"></a><a href="#75">75</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 76" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetApplyId</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="76"></a><a href="#76">76</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">getSolrValue</span><span class="keyword">(</span><span class="default">'applyId'</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">?</span><span class="keyword">:</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getApplyId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getAtsEnabled()</span></td></tr> + <tr><td><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getAtsEnabled</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 84" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetAtsEnabled</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getAtsEnabled</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="86"></a><a href="#86">86</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="87"></a><a href="#87">87</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="88"></a><a href="#88">88</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getAtsMode()</span></td></tr> + <tr><td><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="90"></a><a href="#90">90</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getAtsMode</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 92" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetAtsMode</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getAtsMode</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getCompany()</span></td></tr> + <tr><td><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="98"></a><a href="#98">98</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getCompany</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="99"></a><a href="#99">99</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 100" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetCompany</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="100"></a><a href="#100">100</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">getSolrValue</span><span class="keyword">(</span><span class="default">'organizationName'</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">?</span><span class="keyword">:</span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getCompany</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="104"></a><a href="#104">104</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getContactEmail()</span></td></tr> + <tr><td><div align="right"><a name="105"></a><a href="#105">105</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="106"></a><a href="#106">106</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getContactEmail</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="107"></a><a href="#107">107</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 108" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetContactEmail</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">getSolrValue</span><span class="keyword">(</span><span class="default">'applicationEmail'</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">?</span><span class="keyword">:</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getContactEmail</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="110"></a><a href="#110">110</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="111"></a><a href="#111">111</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getDatePublishEnd()</span></td></tr> + <tr><td><div align="right"><a name="113"></a><a href="#113">113</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="114"></a><a href="#114">114</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getDatePublishEnd</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="115"></a><a href="#115">115</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 116" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetDatePublishEnd</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="116"></a><a href="#116">116</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$date</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">getSolrValue</span><span class="keyword">(</span><span class="default">'datePublishEnd'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 118" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetDatePublishEnd</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="118"></a><a href="#118">118</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$date</span><span class="default"> </span><span class="keyword">?</span><span class="default"> </span><span class="default">Util</span><span class="default">::</span><span class="default">convertSolrDateToPhpDateTime</span><span class="keyword">(</span><span class="default">$date</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">:</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getDatePublishEnd</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="119"></a><a href="#119">119</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="120"></a><a href="#120">120</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="121"></a><a href="#121">121</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="122"></a><a href="#122">122</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getDatePublishStart()</span></td></tr> + <tr><td><div align="right"><a name="123"></a><a href="#123">123</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="124"></a><a href="#124">124</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getDatePublishStart</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="125"></a><a href="#125">125</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 126" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetDatePublishStart</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="126"></a><a href="#126">126</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$date</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">getSolrValue</span><span class="keyword">(</span><span class="default">'datePublishStart'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="127"></a><a href="#127">127</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 128" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetDatePublishStart</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="128"></a><a href="#128">128</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$date</span><span class="default"> </span><span class="keyword">?</span><span class="default"> </span><span class="default">Util</span><span class="default">::</span><span class="default">convertSolrDateToPhpDateTime</span><span class="keyword">(</span><span class="default">$date</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">:</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getDatePublishStart</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="129"></a><a href="#129">129</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="130"></a><a href="#130">130</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="131"></a><a href="#131">131</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="132"></a><a href="#132">132</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getHistory()</span></td></tr> + <tr><td><div align="right"><a name="133"></a><a href="#133">133</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="134"></a><a href="#134">134</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getHistory</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="135"></a><a href="#135">135</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 136" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetHistory</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="136"></a><a href="#136">136</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getHistory</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="137"></a><a href="#137">137</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="138"></a><a href="#138">138</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="139"></a><a href="#139">139</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="140"></a><a href="#140">140</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getLanguage()</span></td></tr> + <tr><td><div align="right"><a name="141"></a><a href="#141">141</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="142"></a><a href="#142">142</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getLanguage</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="143"></a><a href="#143">143</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 144" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLanguage</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="144"></a><a href="#144">144</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">getSolrValue</span><span class="keyword">(</span><span class="default">'lang'</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">?</span><span class="keyword">:</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getLanguage</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="145"></a><a href="#145">145</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="146"></a><a href="#146">146</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="147"></a><a href="#147">147</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="148"></a><a href="#148">148</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getLink()</span></td></tr> + <tr><td><div align="right"><a name="149"></a><a href="#149">149</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="150"></a><a href="#150">150</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getLink</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="151"></a><a href="#151">151</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 152" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLink</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="152"></a><a href="#152">152</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$link</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">getSolrValue</span><span class="keyword">(</span><span class="default">'link'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="153"></a><a href="#153">153</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 154" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLink</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="154"></a><a href="#154">154</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">$link</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="155"></a><a href="#155">155</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// sanitize invalid Solr schema</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 156" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLink</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="156"></a><a href="#156">156</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">is_array</span><span class="keyword">(</span><span class="default">$link</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">?</span><span class="default"> </span><span class="default">reset</span><span class="keyword">(</span><span class="default">$link</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">:</span><span class="default"> </span><span class="default">$link</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="157"></a><a href="#157">157</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="158"></a><a href="#158">158</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 159" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLink</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="159"></a><a href="#159">159</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getLink</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="160"></a><a href="#160">160</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="161"></a><a href="#161">161</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="162"></a><a href="#162">162</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="163"></a><a href="#163">163</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getLocation()</span></td></tr> + <tr><td><div align="right"><a name="164"></a><a href="#164">164</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="165"></a><a href="#165">165</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getLocation</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="166"></a><a href="#166">166</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="167"></a><a href="#167">167</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// check for a locations subquery result</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="5 tests cover line 168" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocation</li><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocationOverridenBySolrLocations with data set &quot;invalid locations type&quot;</li><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocationOverridenBySolrLocations with data set &quot;non-existent &quot;docs&quot; key&quot;</li><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocationOverridenBySolrLocations with data set &quot;empty &quot;docs&quot;&quot;</li><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocationOverridenBySolrLocations with data set &quot;valid &quot;docs&quot;&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="168"></a><a href="#168">168</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">solrResult</span><span class="keyword">[</span><span class="default">'locations'</span><span class="keyword">]</span><span class="keyword">)</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="5 tests cover line 169" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocation</li><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocationOverridenBySolrLocations with data set &quot;invalid locations type&quot;</li><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocationOverridenBySolrLocations with data set &quot;non-existent &quot;docs&quot; key&quot;</li><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocationOverridenBySolrLocations with data set &quot;empty &quot;docs&quot;&quot;</li><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocationOverridenBySolrLocations with data set &quot;valid &quot;docs&quot;&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="169"></a><a href="#169">169</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">&&</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">solrResult</span><span class="keyword">[</span><span class="default">'locations'</span><span class="keyword">]</span><span class="default"> </span><span class="keyword">instanceof</span><span class="default"> </span><span class="default">ArrayAccess</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="5 tests cover line 170" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocation</li><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocationOverridenBySolrLocations with data set &quot;invalid locations type&quot;</li><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocationOverridenBySolrLocations with data set &quot;non-existent &quot;docs&quot; key&quot;</li><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocationOverridenBySolrLocations with data set &quot;empty &quot;docs&quot;&quot;</li><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocationOverridenBySolrLocations with data set &quot;valid &quot;docs&quot;&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="170"></a><a href="#170">170</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">&&</span><span class="default"> </span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">solrResult</span><span class="keyword">[</span><span class="default">'locations'</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">'docs'</span><span class="keyword">]</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="171"></a><a href="#171">171</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="172"></a><a href="#172">172</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// get concatenated list of cities from the locations</span></td></tr> + <tr><td><div align="right"><a name="173"></a><a href="#173">173</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$locations</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">trim</span><span class="keyword">(</span><span class="default">implode</span><span class="keyword">(</span><span class="default">', '</span><span class="keyword">,</span><span class="default"> </span><span class="default">array_unique</span><span class="keyword">(</span><span class="default">array_map</span><span class="keyword">(</span><span class="keyword">function</span><span class="default"> </span><span class="keyword">(</span><span class="default">ArrayAccess</span><span class="default"> </span><span class="default">$doc</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 174" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocationOverridenBySolrLocations with data set &quot;valid &quot;docs&quot;&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="174"></a><a href="#174">174</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$doc</span><span class="default">-></span><span class="default">city</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">?</span><span class="default"> </span><span class="default">trim</span><span class="keyword">(</span><span class="default">$doc</span><span class="default">-></span><span class="default">city</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">:</span><span class="default"> </span><span class="default">''</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 175" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocationOverridenBySolrLocations with data set &quot;empty &quot;docs&quot;&quot;</li><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocationOverridenBySolrLocations with data set &quot;valid &quot;docs&quot;&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="175"></a><a href="#175">175</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span><span class="keyword">,</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">solrResult</span><span class="keyword">[</span><span class="default">'locations'</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">'docs'</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="176"></a><a href="#176">176</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 177" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocationOverridenBySolrLocations with data set &quot;empty &quot;docs&quot;&quot;</li><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocationOverridenBySolrLocations with data set &quot;valid &quot;docs&quot;&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="177"></a><a href="#177">177</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">$locations</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 178" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocationOverridenBySolrLocations with data set &quot;valid &quot;docs&quot;&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="178"></a><a href="#178">178</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$locations</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="179"></a><a href="#179">179</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="180"></a><a href="#180">180</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="181"></a><a href="#181">181</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="4 tests cover line 182" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocation</li><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocationOverridenBySolrLocations with data set &quot;invalid locations type&quot;</li><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocationOverridenBySolrLocations with data set &quot;non-existent &quot;docs&quot; key&quot;</li><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocationOverridenBySolrLocations with data set &quot;empty &quot;docs&quot;&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="182"></a><a href="#182">182</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">getSolrValue</span><span class="keyword">(</span><span class="default">'location'</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">?</span><span class="keyword">:</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getLocation</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="183"></a><a href="#183">183</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="184"></a><a href="#184">184</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="185"></a><a href="#185">185</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="186"></a><a href="#186">186</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getLocations()</span></td></tr> + <tr><td><div align="right"><a name="187"></a><a href="#187">187</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="188"></a><a href="#188">188</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getLocations</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="189"></a><a href="#189">189</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 190" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetLocations</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="190"></a><a href="#190">190</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getLocations</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="191"></a><a href="#191">191</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="192"></a><a href="#192">192</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="193"></a><a href="#193">193</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="194"></a><a href="#194">194</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getOrganization()</span></td></tr> + <tr><td><div align="right"><a name="195"></a><a href="#195">195</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="196"></a><a href="#196">196</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getOrganization</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="197"></a><a href="#197">197</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 198" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="198"></a><a href="#198">198</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getOrganization</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="199"></a><a href="#199">199</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="200"></a><a href="#200">200</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="201"></a><a href="#201">201</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="202"></a><a href="#202">202</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getPortals()</span></td></tr> + <tr><td><div align="right"><a name="203"></a><a href="#203">203</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="204"></a><a href="#204">204</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getPortals</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="205"></a><a href="#205">205</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 206" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetPortals</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="206"></a><a href="#206">206</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getPortals</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="207"></a><a href="#207">207</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="208"></a><a href="#208">208</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="209"></a><a href="#209">209</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="210"></a><a href="#210">210</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getReference()</span></td></tr> + <tr><td><div align="right"><a name="211"></a><a href="#211">211</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="212"></a><a href="#212">212</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getReference</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="213"></a><a href="#213">213</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 214" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetReference</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="214"></a><a href="#214">214</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getReference</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="215"></a><a href="#215">215</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="216"></a><a href="#216">216</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="217"></a><a href="#217">217</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="218"></a><a href="#218">218</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getStatus()</span></td></tr> + <tr><td><div align="right"><a name="219"></a><a href="#219">219</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="220"></a><a href="#220">220</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getStatus</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="221"></a><a href="#221">221</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 222" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetStatus</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="222"></a><a href="#222">222</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getStatus</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="223"></a><a href="#223">223</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="224"></a><a href="#224">224</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="225"></a><a href="#225">225</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="226"></a><a href="#226">226</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getTermsAccepted()</span></td></tr> + <tr><td><div align="right"><a name="227"></a><a href="#227">227</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="228"></a><a href="#228">228</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getTermsAccepted</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="229"></a><a href="#229">229</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 230" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetTermsAccepted</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="230"></a><a href="#230">230</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getTermsAccepted</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="231"></a><a href="#231">231</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="232"></a><a href="#232">232</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="233"></a><a href="#233">233</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="234"></a><a href="#234">234</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getTitle()</span></td></tr> + <tr><td><div align="right"><a name="235"></a><a href="#235">235</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="236"></a><a href="#236">236</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getTitle</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="237"></a><a href="#237">237</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 238" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetTitle</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="238"></a><a href="#238">238</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">getSolrValue</span><span class="keyword">(</span><span class="default">'title'</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">?</span><span class="keyword">:</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getTitle</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="239"></a><a href="#239">239</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="240"></a><a href="#240">240</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="241"></a><a href="#241">241</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="242"></a><a href="#242">242</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getUriApply()</span></td></tr> + <tr><td><div align="right"><a name="243"></a><a href="#243">243</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="244"></a><a href="#244">244</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getUriApply</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="245"></a><a href="#245">245</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 246" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetUriApply</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="246"></a><a href="#246">246</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getUriApply</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="247"></a><a href="#247">247</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="248"></a><a href="#248">248</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="249"></a><a href="#249">249</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="250"></a><a href="#250">250</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getUriPublisher()</span></td></tr> + <tr><td><div align="right"><a name="251"></a><a href="#251">251</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="252"></a><a href="#252">252</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getUriPublisher</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="253"></a><a href="#253">253</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 254" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetUriPublisher</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="254"></a><a href="#254">254</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getUriPublisher</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="255"></a><a href="#255">255</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="256"></a><a href="#256">256</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="257"></a><a href="#257">257</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="258"></a><a href="#258">258</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::getUser()</span></td></tr> + <tr><td><div align="right"><a name="259"></a><a href="#259">259</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="260"></a><a href="#260">260</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getUser</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="261"></a><a href="#261">261</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 262" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetUser</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="262"></a><a href="#262">262</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getUser</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="263"></a><a href="#263">263</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="264"></a><a href="#264">264</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="265"></a><a href="#265">265</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="266"></a><a href="#266">266</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::setApplications()</span></td></tr> + <tr><td><div align="right"><a name="267"></a><a href="#267">267</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="268"></a><a href="#268">268</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setApplications</span><span class="keyword">(</span><span class="default">\</span><span class="default">Doctrine</span><span class="default">\</span><span class="default">Common</span><span class="default">\</span><span class="default">Collections</span><span class="default">\</span><span class="default">Collection</span><span class="default"> </span><span class="default">$applications</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="269"></a><a href="#269">269</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 270" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetApplications</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="270"></a><a href="#270">270</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setApplications</span><span class="keyword">(</span><span class="default">$applications</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="271"></a><a href="#271">271</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="272"></a><a href="#272">272</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="273"></a><a href="#273">273</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="274"></a><a href="#274">274</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::setApplyId()</span></td></tr> + <tr><td><div align="right"><a name="275"></a><a href="#275">275</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="276"></a><a href="#276">276</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setApplyId</span><span class="keyword">(</span><span class="default">$applyId</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="277"></a><a href="#277">277</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 278" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetApplyId</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="278"></a><a href="#278">278</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setApplyId</span><span class="keyword">(</span><span class="default">$applyId</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="279"></a><a href="#279">279</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="280"></a><a href="#280">280</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="281"></a><a href="#281">281</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="282"></a><a href="#282">282</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::setAtsEnabled()</span></td></tr> + <tr><td><div align="right"><a name="283"></a><a href="#283">283</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="284"></a><a href="#284">284</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setAtsEnabled</span><span class="keyword">(</span><span class="default">$atsEnabled</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="285"></a><a href="#285">285</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 286" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetAtsEnabled</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="286"></a><a href="#286">286</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setAtsEnabled</span><span class="keyword">(</span><span class="default">$atsEnabled</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="287"></a><a href="#287">287</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="288"></a><a href="#288">288</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="289"></a><a href="#289">289</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="290"></a><a href="#290">290</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::setAtsMode()</span></td></tr> + <tr><td><div align="right"><a name="291"></a><a href="#291">291</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="292"></a><a href="#292">292</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setAtsMode</span><span class="keyword">(</span><span class="default">\</span><span class="default">Jobs</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">AtsMode</span><span class="default"> </span><span class="default">$mode</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="293"></a><a href="#293">293</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 294" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetAtsMode</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="294"></a><a href="#294">294</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setAtsMode</span><span class="keyword">(</span><span class="default">$mode</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="295"></a><a href="#295">295</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="296"></a><a href="#296">296</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="297"></a><a href="#297">297</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="298"></a><a href="#298">298</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::setCompany()</span></td></tr> + <tr><td><div align="right"><a name="299"></a><a href="#299">299</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="300"></a><a href="#300">300</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setCompany</span><span class="keyword">(</span><span class="default">$company</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="301"></a><a href="#301">301</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 302" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetCompany</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="302"></a><a href="#302">302</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setCompany</span><span class="keyword">(</span><span class="default">$company</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="303"></a><a href="#303">303</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="304"></a><a href="#304">304</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="305"></a><a href="#305">305</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="306"></a><a href="#306">306</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::setContactEmail()</span></td></tr> + <tr><td><div align="right"><a name="307"></a><a href="#307">307</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="308"></a><a href="#308">308</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setContactEmail</span><span class="keyword">(</span><span class="default">$email</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="309"></a><a href="#309">309</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 310" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetContactEmail</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="310"></a><a href="#310">310</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setContactEmail</span><span class="keyword">(</span><span class="default">$email</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="311"></a><a href="#311">311</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="312"></a><a href="#312">312</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="313"></a><a href="#313">313</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="314"></a><a href="#314">314</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::setDatePublishEnd()</span></td></tr> + <tr><td><div align="right"><a name="315"></a><a href="#315">315</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="316"></a><a href="#316">316</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setDatePublishEnd</span><span class="keyword">(</span><span class="default">$datePublishEnd</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="317"></a><a href="#317">317</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 318" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetDatePublishEnd</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="318"></a><a href="#318">318</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setDatePublishEnd</span><span class="keyword">(</span><span class="default">$datePublishEnd</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="319"></a><a href="#319">319</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="320"></a><a href="#320">320</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="321"></a><a href="#321">321</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="322"></a><a href="#322">322</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::setDatePublishStart()</span></td></tr> + <tr><td><div align="right"><a name="323"></a><a href="#323">323</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="324"></a><a href="#324">324</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setDatePublishStart</span><span class="keyword">(</span><span class="default">$datePublishStart</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="325"></a><a href="#325">325</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 326" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetDatePublishStart</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="326"></a><a href="#326">326</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setDatePublishStart</span><span class="keyword">(</span><span class="default">$datePublishStart</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="327"></a><a href="#327">327</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="328"></a><a href="#328">328</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="329"></a><a href="#329">329</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="330"></a><a href="#330">330</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::setHistory()</span></td></tr> + <tr><td><div align="right"><a name="331"></a><a href="#331">331</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="332"></a><a href="#332">332</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setHistory</span><span class="keyword">(</span><span class="default">\</span><span class="default">Doctrine</span><span class="default">\</span><span class="default">Common</span><span class="default">\</span><span class="default">Collections</span><span class="default">\</span><span class="default">Collection</span><span class="default"> </span><span class="default">$history</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="333"></a><a href="#333">333</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 334" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetHistory</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="334"></a><a href="#334">334</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setHistory</span><span class="keyword">(</span><span class="default">$history</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="335"></a><a href="#335">335</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="336"></a><a href="#336">336</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="337"></a><a href="#337">337</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="338"></a><a href="#338">338</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::setLanguage()</span></td></tr> + <tr><td><div align="right"><a name="339"></a><a href="#339">339</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="340"></a><a href="#340">340</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setLanguage</span><span class="keyword">(</span><span class="default">$language</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="341"></a><a href="#341">341</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 342" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetLanguage</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="342"></a><a href="#342">342</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setLanguage</span><span class="keyword">(</span><span class="default">$language</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="343"></a><a href="#343">343</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="344"></a><a href="#344">344</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="345"></a><a href="#345">345</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="346"></a><a href="#346">346</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::setLink()</span></td></tr> + <tr><td><div align="right"><a name="347"></a><a href="#347">347</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="348"></a><a href="#348">348</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setLink</span><span class="keyword">(</span><span class="default">$link</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="349"></a><a href="#349">349</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 350" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetLink</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="350"></a><a href="#350">350</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setLink</span><span class="keyword">(</span><span class="default">$link</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="351"></a><a href="#351">351</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="352"></a><a href="#352">352</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="353"></a><a href="#353">353</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="354"></a><a href="#354">354</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::setLocation()</span></td></tr> + <tr><td><div align="right"><a name="355"></a><a href="#355">355</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="356"></a><a href="#356">356</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setLocation</span><span class="keyword">(</span><span class="default">$location</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="357"></a><a href="#357">357</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 358" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="358"></a><a href="#358">358</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setLocation</span><span class="keyword">(</span><span class="default">$location</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="359"></a><a href="#359">359</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="360"></a><a href="#360">360</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="361"></a><a href="#361">361</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="362"></a><a href="#362">362</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::setLocations()</span></td></tr> + <tr><td><div align="right"><a name="363"></a><a href="#363">363</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="364"></a><a href="#364">364</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setLocations</span><span class="keyword">(</span><span class="default">$locations</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="365"></a><a href="#365">365</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 366" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetLocations</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="366"></a><a href="#366">366</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setLocations</span><span class="keyword">(</span><span class="default">$locations</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="367"></a><a href="#367">367</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="368"></a><a href="#368">368</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="369"></a><a href="#369">369</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="370"></a><a href="#370">370</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::setOrganization()</span></td></tr> + <tr><td><div align="right"><a name="371"></a><a href="#371">371</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="372"></a><a href="#372">372</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setOrganization</span><span class="keyword">(</span><span class="default">\</span><span class="default">Organizations</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">OrganizationInterface</span><span class="default"> </span><span class="default">$organization</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">null</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="373"></a><a href="#373">373</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 374" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="374"></a><a href="#374">374</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setOrganization</span><span class="keyword">(</span><span class="default">$organization</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="375"></a><a href="#375">375</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="376"></a><a href="#376">376</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="377"></a><a href="#377">377</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="378"></a><a href="#378">378</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::setPortals()</span></td></tr> + <tr><td><div align="right"><a name="379"></a><a href="#379">379</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="380"></a><a href="#380">380</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setPortals</span><span class="keyword">(</span><span class="keyword">array</span><span class="default"> </span><span class="default">$portals</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="381"></a><a href="#381">381</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 382" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetPortals</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="382"></a><a href="#382">382</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setPortals</span><span class="keyword">(</span><span class="default">$portals</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="383"></a><a href="#383">383</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="384"></a><a href="#384">384</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="385"></a><a href="#385">385</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="386"></a><a href="#386">386</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::setReference()</span></td></tr> + <tr><td><div align="right"><a name="387"></a><a href="#387">387</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="388"></a><a href="#388">388</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setReference</span><span class="keyword">(</span><span class="default">$reference</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="389"></a><a href="#389">389</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 390" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetReference</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="390"></a><a href="#390">390</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setReference</span><span class="keyword">(</span><span class="default">$reference</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="391"></a><a href="#391">391</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="392"></a><a href="#392">392</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="393"></a><a href="#393">393</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="394"></a><a href="#394">394</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::setStatus()</span></td></tr> + <tr><td><div align="right"><a name="395"></a><a href="#395">395</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="396"></a><a href="#396">396</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setStatus</span><span class="keyword">(</span><span class="default">$status</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="397"></a><a href="#397">397</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 398" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetStatus</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="398"></a><a href="#398">398</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setStatus</span><span class="keyword">(</span><span class="default">$status</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="399"></a><a href="#399">399</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="400"></a><a href="#400">400</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="401"></a><a href="#401">401</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="402"></a><a href="#402">402</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::setTermsAccepted()</span></td></tr> + <tr><td><div align="right"><a name="403"></a><a href="#403">403</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="404"></a><a href="#404">404</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setTermsAccepted</span><span class="keyword">(</span><span class="default">$flag</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="405"></a><a href="#405">405</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 406" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetTermsAccepted</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="406"></a><a href="#406">406</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setTermsAccepted</span><span class="keyword">(</span><span class="default">$flag</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="407"></a><a href="#407">407</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="408"></a><a href="#408">408</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="409"></a><a href="#409">409</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="410"></a><a href="#410">410</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::setTitle()</span></td></tr> + <tr><td><div align="right"><a name="411"></a><a href="#411">411</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="412"></a><a href="#412">412</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setTitle</span><span class="keyword">(</span><span class="default">$title</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="413"></a><a href="#413">413</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 414" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetTitle</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="414"></a><a href="#414">414</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setTitle</span><span class="keyword">(</span><span class="default">$title</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="415"></a><a href="#415">415</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="416"></a><a href="#416">416</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="417"></a><a href="#417">417</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="418"></a><a href="#418">418</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::setUriApply()</span></td></tr> + <tr><td><div align="right"><a name="419"></a><a href="#419">419</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="420"></a><a href="#420">420</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setUriApply</span><span class="keyword">(</span><span class="default">$uriApply</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="421"></a><a href="#421">421</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 422" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetUriApply</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="422"></a><a href="#422">422</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setUriApply</span><span class="keyword">(</span><span class="default">$uriApply</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="423"></a><a href="#423">423</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="424"></a><a href="#424">424</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="425"></a><a href="#425">425</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="426"></a><a href="#426">426</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::setUriPublisher()</span></td></tr> + <tr><td><div align="right"><a name="427"></a><a href="#427">427</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="428"></a><a href="#428">428</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setUriPublisher</span><span class="keyword">(</span><span class="default">$uriPublisher</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="429"></a><a href="#429">429</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 430" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetUriPublisher</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="430"></a><a href="#430">430</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setUriPublisher</span><span class="keyword">(</span><span class="default">$uriPublisher</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="431"></a><a href="#431">431</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="432"></a><a href="#432">432</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="433"></a><a href="#433">433</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="434"></a><a href="#434">434</a></div></td><td class="codeLine"><span class="comment"> * @see \Jobs\Entity\JobInterface::setUser()</span></td></tr> + <tr><td><div align="right"><a name="435"></a><a href="#435">435</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="436"></a><a href="#436">436</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setUser</span><span class="keyword">(</span><span class="default">\</span><span class="default">Auth</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">UserInterface</span><span class="default"> </span><span class="default">$user</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="437"></a><a href="#437">437</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 438" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetUser</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="438"></a><a href="#438">438</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setUser</span><span class="keyword">(</span><span class="default">$user</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="439"></a><a href="#439">439</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="440"></a><a href="#440">440</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="441"></a><a href="#441">441</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="442"></a><a href="#442">442</a></div></td><td class="codeLine"><span class="comment"> * @see \Laminas\Permissions\Acl\Resource\ResourceInterface::getResourceId()</span></td></tr> + <tr><td><div align="right"><a name="443"></a><a href="#443">443</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="444"></a><a href="#444">444</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getResourceId</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="445"></a><a href="#445">445</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 446" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetResourceId</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="446"></a><a href="#446">446</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getResourceId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="447"></a><a href="#447">447</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="448"></a><a href="#448">448</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="449"></a><a href="#449">449</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="450"></a><a href="#450">450</a></div></td><td class="codeLine"><span class="comment"> * @see \Core\Entity\PermissionsAwareInterface::getPermissions()</span></td></tr> + <tr><td><div align="right"><a name="451"></a><a href="#451">451</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="452"></a><a href="#452">452</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getPermissions</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="453"></a><a href="#453">453</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 454" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetPermissions</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="454"></a><a href="#454">454</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getPermissions</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="455"></a><a href="#455">455</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="456"></a><a href="#456">456</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="457"></a><a href="#457">457</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="458"></a><a href="#458">458</a></div></td><td class="codeLine"><span class="comment"> * @see \Core\Entity\PermissionsAwareInterface::setPermissions()</span></td></tr> + <tr><td><div align="right"><a name="459"></a><a href="#459">459</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="460"></a><a href="#460">460</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setPermissions</span><span class="keyword">(</span><span class="default">\</span><span class="default">Core</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">PermissionsInterface</span><span class="default"> </span><span class="default">$permissions</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="461"></a><a href="#461">461</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 462" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testSetPermissions</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="462"></a><a href="#462">462</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setPermissions</span><span class="keyword">(</span><span class="default">$permissions</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="463"></a><a href="#463">463</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="464"></a><a href="#464">464</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="465"></a><a href="#465">465</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="466"></a><a href="#466">466</a></div></td><td class="codeLine"><span class="comment"> * @param string $key</span></td></tr> + <tr><td><div align="right"><a name="467"></a><a href="#467">467</a></div></td><td class="codeLine"><span class="comment"> * @return mixed</span></td></tr> + <tr><td><div align="right"><a name="468"></a><a href="#468">468</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="469"></a><a href="#469">469</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getSolrValue</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="470"></a><a href="#470">470</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 471" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetApplyId</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="471"></a><a href="#471">471</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">solrResult</span><span class="keyword">[</span><span class="default">$key</span><span class="keyword">]</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">?</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">solrResult</span><span class="keyword">[</span><span class="default">$key</span><span class="keyword">]</span><span class="default"> </span><span class="keyword">:</span><span class="default"> </span><span class="default">null</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="472"></a><a href="#472">472</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="473"></a><a href="#473">473</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="474"></a><a href="#474">474</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="475"></a><a href="#475">475</a></div></td><td class="codeLine"><span class="comment"> * Get meta data.</span></td></tr> + <tr><td><div align="right"><a name="476"></a><a href="#476">476</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="477"></a><a href="#477">477</a></div></td><td class="codeLine"><span class="comment"> * Returns the whole meta data array, if no <i>$key</i> is provided.</span></td></tr> + <tr><td><div align="right"><a name="478"></a><a href="#478">478</a></div></td><td class="codeLine"><span class="comment"> * Returns <i>null</i>, if there is no meta data for the provided <i>$key</i>.</span></td></tr> + <tr><td><div align="right"><a name="479"></a><a href="#479">479</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="480"></a><a href="#480">480</a></div></td><td class="codeLine"><span class="comment"> * @param null|string $key</span></td></tr> + <tr><td><div align="right"><a name="481"></a><a href="#481">481</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="482"></a><a href="#482">482</a></div></td><td class="codeLine"><span class="comment"> * @return array|mixed|null</span></td></tr> + <tr><td><div align="right"><a name="483"></a><a href="#483">483</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="484"></a><a href="#484">484</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getMetaData</span><span class="keyword">(</span><span class="default">$key</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">null</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="485"></a><a href="#485">485</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="486"></a><a href="#486">486</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getMetaData</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="487"></a><a href="#487">487</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="488"></a><a href="#488">488</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="489"></a><a href="#489">489</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="490"></a><a href="#490">490</a></div></td><td class="codeLine"><span class="comment"> * Set meta data.</span></td></tr> + <tr><td><div align="right"><a name="491"></a><a href="#491">491</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="492"></a><a href="#492">492</a></div></td><td class="codeLine"><span class="comment"> * @param string $key</span></td></tr> + <tr><td><div align="right"><a name="493"></a><a href="#493">493</a></div></td><td class="codeLine"><span class="comment"> * @param mixed $value</span></td></tr> + <tr><td><div align="right"><a name="494"></a><a href="#494">494</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="495"></a><a href="#495">495</a></div></td><td class="codeLine"><span class="comment"> * @return self</span></td></tr> + <tr><td><div align="right"><a name="496"></a><a href="#496">496</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="497"></a><a href="#497">497</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setMetaData</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">,</span><span class="default"> </span><span class="default">$value</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="498"></a><a href="#498">498</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="499"></a><a href="#499">499</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setMetaData</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">,</span><span class="default"> </span><span class="default">$value</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="500"></a><a href="#500">500</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="501"></a><a href="#501">501</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="502"></a><a href="#502">502</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="503"></a><a href="#503">503</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="504"></a><a href="#504">504</a></div></td><td class="codeLine"><span class="comment"> * Check if a meta data with a specific key is available.</span></td></tr> + <tr><td><div align="right"><a name="505"></a><a href="#505">505</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="506"></a><a href="#506">506</a></div></td><td class="codeLine"><span class="comment"> * @param string $key</span></td></tr> + <tr><td><div align="right"><a name="507"></a><a href="#507">507</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="508"></a><a href="#508">508</a></div></td><td class="codeLine"><span class="comment"> * @return bool</span></td></tr> + <tr><td><div align="right"><a name="509"></a><a href="#509">509</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="510"></a><a href="#510">510</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">hasMetaData</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="511"></a><a href="#511">511</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="512"></a><a href="#512">512</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">hasMetaData</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="513"></a><a href="#513">513</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="514"></a><a href="#514">514</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="515"></a><a href="#515">515</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="516"></a><a href="#516">516</a></div></td><td class="codeLine"><span class="comment"> * Gets the Values of a job template</span></td></tr> + <tr><td><div align="right"><a name="517"></a><a href="#517">517</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="518"></a><a href="#518">518</a></div></td><td class="codeLine"><span class="comment"> * @return TemplateValues</span></td></tr> + <tr><td><div align="right"><a name="519"></a><a href="#519">519</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="520"></a><a href="#520">520</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getTemplateValues</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="521"></a><a href="#521">521</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 522" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetTemplateValues</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="522"></a><a href="#522">522</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getTemplateValues</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="523"></a><a href="#523">523</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="524"></a><a href="#524">524</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="525"></a><a href="#525">525</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="526"></a><a href="#526">526</a></div></td><td class="codeLine"><span class="comment"> * @param EntityInterface $templateValues</span></td></tr> + <tr><td><div align="right"><a name="527"></a><a href="#527">527</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="528"></a><a href="#528">528</a></div></td><td class="codeLine"><span class="comment"> * @return $this</span></td></tr> + <tr><td><div align="right"><a name="529"></a><a href="#529">529</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="530"></a><a href="#530">530</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setTemplateValues</span><span class="keyword">(</span><span class="default">EntityInterface</span><span class="default"> </span><span class="default">$templateValues</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">null</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="531"></a><a href="#531">531</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="532"></a><a href="#532">532</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setTemplateValues</span><span class="keyword">(</span><span class="default">$templateValues</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="533"></a><a href="#533">533</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="534"></a><a href="#534">534</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="535"></a><a href="#535">535</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="536"></a><a href="#536">536</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="537"></a><a href="#537">537</a></div></td><td class="codeLine"><span class="comment"> * @return \Jobs\Entity\Classifications</span></td></tr> + <tr><td><div align="right"><a name="538"></a><a href="#538">538</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="539"></a><a href="#539">539</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getClassifications</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="540"></a><a href="#540">540</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 541" data-content="<ul><li class="covered-by-large-tests">SolrTest\Entity\JobProxyTest::testGetClassifications</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="541"></a><a href="#541">541</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getClassifications</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="542"></a><a href="#542">542</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="543"></a><a href="#543">543</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="544"></a><a href="#544">544</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="545"></a><a href="#545">545</a></div></td><td class="codeLine"><span class="comment"> * @param \Jobs\Entity\Classifications $classifications</span></td></tr> + <tr><td><div align="right"><a name="546"></a><a href="#546">546</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="547"></a><a href="#547">547</a></div></td><td class="codeLine"><span class="comment"> * @return self</span></td></tr> + <tr><td><div align="right"><a name="548"></a><a href="#548">548</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="549"></a><a href="#549">549</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setClassifications</span><span class="keyword">(</span><span class="default">$classifications</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="550"></a><a href="#550">550</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="551"></a><a href="#551">551</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setClassifications</span><span class="keyword">(</span><span class="default">$classifications</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="552"></a><a href="#552">552</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="553"></a><a href="#553">553</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="554"></a><a href="#554">554</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="555"></a><a href="#555">555</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="556"></a><a href="#556">556</a></div></td><td class="codeLine"><span class="comment"> * @param AttachableEntityManager $attachableEntityManager</span></td></tr> + <tr><td><div align="right"><a name="557"></a><a href="#557">557</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="558"></a><a href="#558">558</a></div></td><td class="codeLine"><span class="comment"> * @throws \LogicException If attachable entity manager is already set</span></td></tr> + <tr><td><div align="right"><a name="559"></a><a href="#559">559</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="560"></a><a href="#560">560</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setAttachableEntityManager</span><span class="keyword">(</span><span class="default">AttachableEntityManager</span><span class="default"> </span><span class="default">$attachableEntityManager</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="561"></a><a href="#561">561</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="562"></a><a href="#562">562</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">setAttachableEntityManager</span><span class="keyword">(</span><span class="default">$attachableEntityManager</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="563"></a><a href="#563">563</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="564"></a><a href="#564">564</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="565"></a><a href="#565">565</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="566"></a><a href="#566">566</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="567"></a><a href="#567">567</a></div></td><td class="codeLine"><span class="comment"> * Adds an $entity using an optional $key.</span></td></tr> + <tr><td><div align="right"><a name="568"></a><a href="#568">568</a></div></td><td class="codeLine"><span class="comment"> * If $key is not provided then $entity's FQCN will be used as a key</span></td></tr> + <tr><td><div align="right"><a name="569"></a><a href="#569">569</a></div></td><td class="codeLine"><span class="comment"> * Any existing $entity with the same $key will be replaced.</span></td></tr> + <tr><td><div align="right"><a name="570"></a><a href="#570">570</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="571"></a><a href="#571">571</a></div></td><td class="codeLine"><span class="comment"> * @param IdentifiableEntityInterface $entity</span></td></tr> + <tr><td><div align="right"><a name="572"></a><a href="#572">572</a></div></td><td class="codeLine"><span class="comment"> * @param string $key</span></td></tr> + <tr><td><div align="right"><a name="573"></a><a href="#573">573</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="574"></a><a href="#574">574</a></div></td><td class="codeLine"><span class="comment"> * @return AttachableEntityInterface</span></td></tr> + <tr><td><div align="right"><a name="575"></a><a href="#575">575</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="576"></a><a href="#576">576</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">addAttachedEntity</span><span class="keyword">(</span><span class="default">IdentifiableEntityInterface</span><span class="default"> </span><span class="default">$entity</span><span class="keyword">,</span><span class="default"> </span><span class="default">$key</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">null</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="577"></a><a href="#577">577</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="578"></a><a href="#578">578</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">addAttachedEntity</span><span class="keyword">(</span><span class="default">$entity</span><span class="keyword">,</span><span class="default"> </span><span class="default">$key</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="579"></a><a href="#579">579</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="580"></a><a href="#580">580</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="581"></a><a href="#581">581</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="582"></a><a href="#582">582</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="583"></a><a href="#583">583</a></div></td><td class="codeLine"><span class="comment"> * @param string $key</span></td></tr> + <tr><td><div align="right"><a name="584"></a><a href="#584">584</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="585"></a><a href="#585">585</a></div></td><td class="codeLine"><span class="comment"> * @return IdentifiableEntityInterface|null</span></td></tr> + <tr><td><div align="right"><a name="586"></a><a href="#586">586</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="587"></a><a href="#587">587</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getAttachedEntity</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="588"></a><a href="#588">588</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="589"></a><a href="#589">589</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">getAttachedEntity</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="590"></a><a href="#590">590</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="591"></a><a href="#591">591</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="592"></a><a href="#592">592</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="593"></a><a href="#593">593</a></div></td><td class="codeLine"><span class="comment"> * @param string $key</span></td></tr> + <tr><td><div align="right"><a name="594"></a><a href="#594">594</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="595"></a><a href="#595">595</a></div></td><td class="codeLine"><span class="comment"> * @return bool</span></td></tr> + <tr><td><div align="right"><a name="596"></a><a href="#596">596</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="597"></a><a href="#597">597</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">removeAttachedEntity</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="598"></a><a href="#598">598</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="599"></a><a href="#599">599</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">removeAttachedEntity</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="600"></a><a href="#600">600</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="601"></a><a href="#601">601</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="602"></a><a href="#602">602</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="603"></a><a href="#603">603</a></div></td><td class="codeLine"><span class="comment"> * @param string $key</span></td></tr> + <tr><td><div align="right"><a name="604"></a><a href="#604">604</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="605"></a><a href="#605">605</a></div></td><td class="codeLine"><span class="comment"> * @return bool</span></td></tr> + <tr><td><div align="right"><a name="606"></a><a href="#606">606</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="607"></a><a href="#607">607</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">hasAttachedEntity</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="608"></a><a href="#608">608</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="609"></a><a href="#609">609</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">hasAttachedEntity</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="610"></a><a href="#610">610</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="611"></a><a href="#611">611</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="612"></a><a href="#612">612</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="613"></a><a href="#613">613</a></div></td><td class="codeLine"><span class="comment"> * Creates an entity and adds it.</span></td></tr> + <tr><td><div align="right"><a name="614"></a><a href="#614">614</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="615"></a><a href="#615">615</a></div></td><td class="codeLine"><span class="comment"> * @param string $entityClass</span></td></tr> + <tr><td><div align="right"><a name="616"></a><a href="#616">616</a></div></td><td class="codeLine"><span class="comment"> * @param array|string $values</span></td></tr> + <tr><td><div align="right"><a name="617"></a><a href="#617">617</a></div></td><td class="codeLine"><span class="comment"> * @param null|string $key</span></td></tr> + <tr><td><div align="right"><a name="618"></a><a href="#618">618</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="619"></a><a href="#619">619</a></div></td><td class="codeLine"><span class="comment"> * @return \Core\Entity\EntityInterface</span></td></tr> + <tr><td><div align="right"><a name="620"></a><a href="#620">620</a></div></td><td class="codeLine"><span class="comment"> * @since 0.29</span></td></tr> + <tr><td><div align="right"><a name="621"></a><a href="#621">621</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="622"></a><a href="#622">622</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">createAttachedEntity</span><span class="keyword">(</span><span class="default">$entityClass</span><span class="keyword">,</span><span class="default"> </span><span class="default">$values</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">,</span><span class="default"> </span><span class="default">$key</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">null</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="623"></a><a href="#623">623</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="624"></a><a href="#624">624</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">job</span><span class="default">-></span><span class="default">createAttachedEntity</span><span class="keyword">(</span><span class="default">$entityClass</span><span class="keyword">,</span><span class="default"> </span><span class="default">$values</span><span class="keyword">,</span><span class="default"> </span><span class="default">$key</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="625"></a><a href="#625">625</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="626"></a><a href="#626">626</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="627"></a><a href="#627">627</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/popper.min.js" type="text/javascript"></script> + <script src="../_js/bootstrap.min.js" type="text/javascript"></script> + <script src="../_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/Entity/dashboard.html b/test/coverage/Entity/dashboard.html new file mode 100644 index 0000000..1024e95 --- /dev/null +++ b/test/coverage/Entity/dashboard.html @@ -0,0 +1,297 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Dashboard for /home/cbleek/AtomProjects/Solr/src/Entity</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/nv.d3.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Entity</a></li> + <li class="breadcrumb-item active">(Dashboard)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <h2>Classes</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="classCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="classComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + <tr><td><a href="JobProxy.php.html#32">Solr\Entity\JobProxy</a></td><td class="text-right">77%</td></tr> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + <tr><td><a href="JobProxy.php.html#32">Solr\Entity\JobProxy</a></td><td class="text-right">151</td></tr> + + </tbody> + </table> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <h2>Methods</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="methodCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="methodComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + <tr><td><a href="JobProxy.php.html#484"><abbr title="Solr\Entity\JobProxy::getMetaData">getMetaData</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="JobProxy.php.html#497"><abbr title="Solr\Entity\JobProxy::setMetaData">setMetaData</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="JobProxy.php.html#510"><abbr title="Solr\Entity\JobProxy::hasMetaData">hasMetaData</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="JobProxy.php.html#530"><abbr title="Solr\Entity\JobProxy::setTemplateValues">setTemplateValues</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="JobProxy.php.html#549"><abbr title="Solr\Entity\JobProxy::setClassifications">setClassifications</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="JobProxy.php.html#560"><abbr title="Solr\Entity\JobProxy::setAttachableEntityManager">setAttachableEntityManager</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="JobProxy.php.html#576"><abbr title="Solr\Entity\JobProxy::addAttachedEntity">addAttachedEntity</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="JobProxy.php.html#587"><abbr title="Solr\Entity\JobProxy::getAttachedEntity">getAttachedEntity</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="JobProxy.php.html#597"><abbr title="Solr\Entity\JobProxy::removeAttachedEntity">removeAttachedEntity</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="JobProxy.php.html#607"><abbr title="Solr\Entity\JobProxy::hasAttachedEntity">hasAttachedEntity</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="JobProxy.php.html#622"><abbr title="Solr\Entity\JobProxy::createAttachedEntity">createAttachedEntity</abbr></a></td><td class="text-right">0%</td></tr> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + </div> + <footer> + <hr/> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/d3.min.js" type="text/javascript"></script> + <script src="../_js/nv.d3.min.js" type="text/javascript"></script> + <script type="text/javascript"> +$(document).ready(function() { + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#classCoverageDistribution svg') + .datum(getCoverageDistributionData([0,0,0,0,0,0,0,0,1,0,0,0], "Class Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#methodCoverageDistribution svg') + .datum(getCoverageDistributionData([11,0,0,0,0,0,0,0,0,0,0,52], "Method Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getCoverageDistributionData(data, label) { + var labels = [ + '0%', + '0-10%', + '10-20%', + '20-30%', + '30-40%', + '40-50%', + '50-60%', + '60-70%', + '70-80%', + '80-90%', + '90-100%', + '100%' + ]; + var values = []; + $.each(labels, function(key) { + values.push({x: labels[key], y: data[key]}); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Cyclomatic Complexity'); + + d3.select('#classComplexity svg') + .datum(getComplexityData([[77.64705882352942,80,"<a href=\"JobProxy.php.html#32\">Solr\\Entity\\JobProxy<\/a>"]], 'Class Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Method Complexity'); + + d3.select('#methodComplexity svg') + .datum(getComplexityData([[100,1,"<a href=\"JobProxy.php.html#49\">Solr\\Entity\\JobProxy::__construct<\/a>"],[100,2,"<a href=\"JobProxy.php.html#58\">Solr\\Entity\\JobProxy::getId<\/a>"],[100,1,"<a href=\"JobProxy.php.html#66\">Solr\\Entity\\JobProxy::getApplications<\/a>"],[100,2,"<a href=\"JobProxy.php.html#74\">Solr\\Entity\\JobProxy::getApplyId<\/a>"],[100,1,"<a href=\"JobProxy.php.html#82\">Solr\\Entity\\JobProxy::getAtsEnabled<\/a>"],[100,1,"<a href=\"JobProxy.php.html#90\">Solr\\Entity\\JobProxy::getAtsMode<\/a>"],[100,2,"<a href=\"JobProxy.php.html#98\">Solr\\Entity\\JobProxy::getCompany<\/a>"],[100,2,"<a href=\"JobProxy.php.html#106\">Solr\\Entity\\JobProxy::getContactEmail<\/a>"],[100,2,"<a href=\"JobProxy.php.html#114\">Solr\\Entity\\JobProxy::getDatePublishEnd<\/a>"],[100,2,"<a href=\"JobProxy.php.html#124\">Solr\\Entity\\JobProxy::getDatePublishStart<\/a>"],[100,1,"<a href=\"JobProxy.php.html#134\">Solr\\Entity\\JobProxy::getHistory<\/a>"],[100,2,"<a href=\"JobProxy.php.html#142\">Solr\\Entity\\JobProxy::getLanguage<\/a>"],[100,3,"<a href=\"JobProxy.php.html#150\">Solr\\Entity\\JobProxy::getLink<\/a>"],[100,7,"<a href=\"JobProxy.php.html#165\">Solr\\Entity\\JobProxy::getLocation<\/a>"],[100,1,"<a href=\"JobProxy.php.html#188\">Solr\\Entity\\JobProxy::getLocations<\/a>"],[100,1,"<a href=\"JobProxy.php.html#196\">Solr\\Entity\\JobProxy::getOrganization<\/a>"],[100,1,"<a href=\"JobProxy.php.html#204\">Solr\\Entity\\JobProxy::getPortals<\/a>"],[100,1,"<a href=\"JobProxy.php.html#212\">Solr\\Entity\\JobProxy::getReference<\/a>"],[100,1,"<a href=\"JobProxy.php.html#220\">Solr\\Entity\\JobProxy::getStatus<\/a>"],[100,1,"<a href=\"JobProxy.php.html#228\">Solr\\Entity\\JobProxy::getTermsAccepted<\/a>"],[100,2,"<a href=\"JobProxy.php.html#236\">Solr\\Entity\\JobProxy::getTitle<\/a>"],[100,1,"<a href=\"JobProxy.php.html#244\">Solr\\Entity\\JobProxy::getUriApply<\/a>"],[100,1,"<a href=\"JobProxy.php.html#252\">Solr\\Entity\\JobProxy::getUriPublisher<\/a>"],[100,1,"<a href=\"JobProxy.php.html#260\">Solr\\Entity\\JobProxy::getUser<\/a>"],[100,1,"<a href=\"JobProxy.php.html#268\">Solr\\Entity\\JobProxy::setApplications<\/a>"],[100,1,"<a href=\"JobProxy.php.html#276\">Solr\\Entity\\JobProxy::setApplyId<\/a>"],[100,1,"<a href=\"JobProxy.php.html#284\">Solr\\Entity\\JobProxy::setAtsEnabled<\/a>"],[100,1,"<a href=\"JobProxy.php.html#292\">Solr\\Entity\\JobProxy::setAtsMode<\/a>"],[100,1,"<a href=\"JobProxy.php.html#300\">Solr\\Entity\\JobProxy::setCompany<\/a>"],[100,1,"<a href=\"JobProxy.php.html#308\">Solr\\Entity\\JobProxy::setContactEmail<\/a>"],[100,1,"<a href=\"JobProxy.php.html#316\">Solr\\Entity\\JobProxy::setDatePublishEnd<\/a>"],[100,1,"<a href=\"JobProxy.php.html#324\">Solr\\Entity\\JobProxy::setDatePublishStart<\/a>"],[100,1,"<a href=\"JobProxy.php.html#332\">Solr\\Entity\\JobProxy::setHistory<\/a>"],[100,1,"<a href=\"JobProxy.php.html#340\">Solr\\Entity\\JobProxy::setLanguage<\/a>"],[100,1,"<a href=\"JobProxy.php.html#348\">Solr\\Entity\\JobProxy::setLink<\/a>"],[100,1,"<a href=\"JobProxy.php.html#356\">Solr\\Entity\\JobProxy::setLocation<\/a>"],[100,1,"<a href=\"JobProxy.php.html#364\">Solr\\Entity\\JobProxy::setLocations<\/a>"],[100,1,"<a href=\"JobProxy.php.html#372\">Solr\\Entity\\JobProxy::setOrganization<\/a>"],[100,1,"<a href=\"JobProxy.php.html#380\">Solr\\Entity\\JobProxy::setPortals<\/a>"],[100,1,"<a href=\"JobProxy.php.html#388\">Solr\\Entity\\JobProxy::setReference<\/a>"],[100,1,"<a href=\"JobProxy.php.html#396\">Solr\\Entity\\JobProxy::setStatus<\/a>"],[100,1,"<a href=\"JobProxy.php.html#404\">Solr\\Entity\\JobProxy::setTermsAccepted<\/a>"],[100,1,"<a href=\"JobProxy.php.html#412\">Solr\\Entity\\JobProxy::setTitle<\/a>"],[100,1,"<a href=\"JobProxy.php.html#420\">Solr\\Entity\\JobProxy::setUriApply<\/a>"],[100,1,"<a href=\"JobProxy.php.html#428\">Solr\\Entity\\JobProxy::setUriPublisher<\/a>"],[100,1,"<a href=\"JobProxy.php.html#436\">Solr\\Entity\\JobProxy::setUser<\/a>"],[100,1,"<a href=\"JobProxy.php.html#444\">Solr\\Entity\\JobProxy::getResourceId<\/a>"],[100,1,"<a href=\"JobProxy.php.html#452\">Solr\\Entity\\JobProxy::getPermissions<\/a>"],[100,1,"<a href=\"JobProxy.php.html#460\">Solr\\Entity\\JobProxy::setPermissions<\/a>"],[100,2,"<a href=\"JobProxy.php.html#469\">Solr\\Entity\\JobProxy::getSolrValue<\/a>"],[0,1,"<a href=\"JobProxy.php.html#484\">Solr\\Entity\\JobProxy::getMetaData<\/a>"],[0,1,"<a href=\"JobProxy.php.html#497\">Solr\\Entity\\JobProxy::setMetaData<\/a>"],[0,1,"<a href=\"JobProxy.php.html#510\">Solr\\Entity\\JobProxy::hasMetaData<\/a>"],[100,1,"<a href=\"JobProxy.php.html#520\">Solr\\Entity\\JobProxy::getTemplateValues<\/a>"],[0,1,"<a href=\"JobProxy.php.html#530\">Solr\\Entity\\JobProxy::setTemplateValues<\/a>"],[100,1,"<a href=\"JobProxy.php.html#539\">Solr\\Entity\\JobProxy::getClassifications<\/a>"],[0,1,"<a href=\"JobProxy.php.html#549\">Solr\\Entity\\JobProxy::setClassifications<\/a>"],[0,1,"<a href=\"JobProxy.php.html#560\">Solr\\Entity\\JobProxy::setAttachableEntityManager<\/a>"],[0,1,"<a href=\"JobProxy.php.html#576\">Solr\\Entity\\JobProxy::addAttachedEntity<\/a>"],[0,1,"<a href=\"JobProxy.php.html#587\">Solr\\Entity\\JobProxy::getAttachedEntity<\/a>"],[0,1,"<a href=\"JobProxy.php.html#597\">Solr\\Entity\\JobProxy::removeAttachedEntity<\/a>"],[0,1,"<a href=\"JobProxy.php.html#607\">Solr\\Entity\\JobProxy::hasAttachedEntity<\/a>"],[0,1,"<a href=\"JobProxy.php.html#622\">Solr\\Entity\\JobProxy::createAttachedEntity<\/a>"]], 'Method Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getComplexityData(data, label) { + var values = []; + $.each(data, function(key) { + var value = Math.round(data[key][0]*100) / 100; + values.push({ + x: value, + y: data[key][1], + class: data[key][2], + size: 0.05, + shape: 'diamond' + }); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } +}); + </script> + </body> +</html> diff --git a/test/coverage/Entity/index.html b/test/coverage/Entity/index.html new file mode 100644 index 0000000..b928725 --- /dev/null +++ b/test/coverage/Entity/index.html @@ -0,0 +1,119 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Entity</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item active">Entity</li> + <li class="breadcrumb-item">(<a href="dashboard.html">Dashboard</a>)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="9"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + <td colspan="3"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="warning">Total</td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="77.65" aria-valuemin="0" aria-valuemax="100" style="width: 77.65%"> + <span class="sr-only">77.65% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">77.65%</div></td> + <td class="warning small"><div align="right">66 / 85</div></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="82.54" aria-valuemin="0" aria-valuemax="100" style="width: 82.54%"> + <span class="sr-only">82.54% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">82.54%</div></td> + <td class="warning small"><div align="right">52 / 63</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + <tr> + <td class="warning"><img src="../_icons/file-code.svg" class="octicon" /><a href="JobProxy.php.html">JobProxy.php</a></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="77.65" aria-valuemin="0" aria-valuemax="100" style="width: 77.65%"> + <span class="sr-only">77.65% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">77.65%</div></td> + <td class="warning small"><div align="right">66 / 85</div></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="82.54" aria-valuemin="0" aria-valuemax="100" style="width: 82.54%"> + <span class="sr-only">82.54% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">82.54%</div></td> + <td class="warning small"><div align="right">52 / 63</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + + </tbody> + </table> + </div> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="danger"><strong>Low</strong>: 0% to 50%</span> + <span class="warning"><strong>Medium</strong>: 50% to 90%</span> + <span class="success"><strong>High</strong>: 90% to 100%</span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + </body> +</html> diff --git a/test/coverage/Exception/ServerException.php.html b/test/coverage/Exception/ServerException.php.html new file mode 100644 index 0000000..b89f61b --- /dev/null +++ b/test/coverage/Exception/ServerException.php.html @@ -0,0 +1,127 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Exception/ServerException.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Exception</a></li> + <li class="breadcrumb-item active">ServerException.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="">Total</td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + <td class=" small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + </tr> + + <tr> + <td class=""><abbr title="Solr\Exception\ServerException">ServerException</abbr></td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + <td class=" small">0</td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * YAWIK</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @filesource</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @copyright (c) 2013 - 2016 Cross Solution (http://cross-solution.de)</span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @license MIT</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Core</span><span class="default">\</span><span class="default">Exception</span><span class="default">\</span><span class="default">ExceptionInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="comment"> * This Exception will be thrown when Yawik fail to communicate with server</span></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="comment"> * during add document, or query</span></td></tr> + <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="comment"> * @author Anthonius Munthi <me@itstoni.com></span></td></tr> + <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="comment"> * @package Solr\Exception</span></td></tr> + <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="comment"> * @since 0.26</span></td></tr> + <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default"> </span><span class="default">ServerException</span><span class="default"> </span><span class="keyword">extends</span><span class="default"> </span><span class="default">\</span><span class="default">RuntimeException</span><span class="default"> </span><span class="keyword">implements</span><span class="default"> </span><span class="default">ExceptionInterface</span></td></tr> + <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/popper.min.js" type="text/javascript"></script> + <script src="../_js/bootstrap.min.js" type="text/javascript"></script> + <script src="../_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/Exception/dashboard.html b/test/coverage/Exception/dashboard.html new file mode 100644 index 0000000..e2f0a29 --- /dev/null +++ b/test/coverage/Exception/dashboard.html @@ -0,0 +1,284 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Dashboard for /home/cbleek/AtomProjects/Solr/src/Exception</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/nv.d3.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Exception</a></li> + <li class="breadcrumb-item active">(Dashboard)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <h2>Classes</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="classCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="classComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <h2>Methods</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="methodCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="methodComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + </div> + <footer> + <hr/> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/d3.min.js" type="text/javascript"></script> + <script src="../_js/nv.d3.min.js" type="text/javascript"></script> + <script type="text/javascript"> +$(document).ready(function() { + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#classCoverageDistribution svg') + .datum(getCoverageDistributionData([0,0,0,0,0,0,0,0,0,0,0,1], "Class Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#methodCoverageDistribution svg') + .datum(getCoverageDistributionData([0,0,0,0,0,0,0,0,0,0,0,0], "Method Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getCoverageDistributionData(data, label) { + var labels = [ + '0%', + '0-10%', + '10-20%', + '20-30%', + '30-40%', + '40-50%', + '50-60%', + '60-70%', + '70-80%', + '80-90%', + '90-100%', + '100%' + ]; + var values = []; + $.each(labels, function(key) { + values.push({x: labels[key], y: data[key]}); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Cyclomatic Complexity'); + + d3.select('#classComplexity svg') + .datum(getComplexityData([[100,0,"<a href=\"ServerException.php.html#22\">Solr\\Exception\\ServerException<\/a>"]], 'Class Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Method Complexity'); + + d3.select('#methodComplexity svg') + .datum(getComplexityData([], 'Method Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getComplexityData(data, label) { + var values = []; + $.each(data, function(key) { + var value = Math.round(data[key][0]*100) / 100; + values.push({ + x: value, + y: data[key][1], + class: data[key][2], + size: 0.05, + shape: 'diamond' + }); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } +}); + </script> + </body> +</html> diff --git a/test/coverage/Exception/index.html b/test/coverage/Exception/index.html new file mode 100644 index 0000000..ab53f51 --- /dev/null +++ b/test/coverage/Exception/index.html @@ -0,0 +1,89 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Exception</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item active">Exception</li> + <li class="breadcrumb-item">(<a href="dashboard.html">Dashboard</a>)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="9"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + <td colspan="3"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="">Total</td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + </tr> + + <tr> + <td class=""><img src="../_icons/file-code.svg" class="octicon" /><a href="ServerException.php.html">ServerException.php</a></td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + </tr> + + + </tbody> + </table> + </div> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="danger"><strong>Low</strong>: 0% to 50%</span> + <span class="warning"><strong>Medium</strong>: 50% to 90%</span> + <span class="success"><strong>High</strong>: 90% to 100%</span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + </body> +</html> diff --git a/test/coverage/Facets.php.html b/test/coverage/Facets.php.html new file mode 100644 index 0000000..002ca37 --- /dev/null +++ b/test/coverage/Facets.php.html @@ -0,0 +1,595 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Facets.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="_css/style.css" rel="stylesheet" type="text/css"> + <link href="_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item active">Facets.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="success">Total</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">11 / 11</div></td> + <td class="success small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">55 / 55</div></td> + </tr> + + <tr> + <td class="success"><abbr title="Solr\Facets">Facets</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">11 / 11</div></td> + <td class="success small">30</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">55 / 55</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#59"><abbr title="addDefinition($name, $title, $type = self::TYPE_FIELD)">addDefinition</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">2</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">6 / 6</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#76"><abbr title="getIterator()">getIterator</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#84"><abbr title="count()">count</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#92"><abbr title="toArray()">toArray</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">5</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">10 / 10</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#121"><abbr title="setFacetResult(ArrayAccess $facetResult)">setFacetResult</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">3 / 3</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#132"><abbr title="setParams(array $params)">setParams</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#143"><abbr title="setupQuery(SolrDisMaxQuery $query)">setupQuery</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">5</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">11 / 11</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#172"><abbr title="isValueActive($name, $value)">isValueActive</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">3</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">4 / 4</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#184"><abbr title="getActiveValues()">getActiveValues</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">8</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">12 / 12</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#215"><abbr title="getTitle($name)">getTitle</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#226"><abbr title="assertValidName($name)">assertValidName</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">2</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">3 / 3</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * YAWIK</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @filesource</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @copyright (c) 2013 - 2016 Cross Solution (http://cross-solution.de)</span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @license MIT</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> * @author Miroslav Fedeleš <miroslav.fedeles@gmail.com></span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="comment"> * @since 0.27</span></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">IteratorAggregate</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Countable</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">ArrayIterator</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">ArrayAccess</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">InvalidArgumentException</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">SolrDisMaxQuery</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">SolrUtils</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default"> </span><span class="default">Facets</span><span class="default"> </span><span class="keyword">implements</span><span class="default"> </span><span class="default">IteratorAggregate</span><span class="keyword">,</span><span class="default"> </span><span class="default">Countable</span></td></tr> + <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">const</span><span class="default"> </span><span class="default">TYPE_FIELD</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">'facet_fields'</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="comment"> * @var ArrayAccess</span></td></tr> + <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$facetResult</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="comment"> * @var array</span></td></tr> + <tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$params</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"><span class="comment"> * @var array</span></td></tr> + <tr><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$definitions</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="comment"> * @var array</span></td></tr> + <tr><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$queryMethodMap</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span></td></tr> + <tr><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'facet_fields'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">'addFacetField'</span></td></tr> + <tr><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"><span class="comment"> * @var array</span></td></tr> + <tr><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$cache</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"><span class="comment"> * @param string $name</span></td></tr> + <tr><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="comment"> * @param string $title</span></td></tr> + <tr><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"><span class="comment"> * @param string $type</span></td></tr> + <tr><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"><span class="comment"> * @return Facets</span></td></tr> + <tr><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">addDefinition</span><span class="keyword">(</span><span class="default">$name</span><span class="keyword">,</span><span class="default"> </span><span class="default">$title</span><span class="keyword">,</span><span class="default"> </span><span class="default">$type</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">self</span><span class="default">::</span><span class="default">TYPE_FIELD</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="7 tests cover line 61" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testAddDefinitionThrowsInvalidArgumentException</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;valid with no values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;valid with regular values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;valid with values containing empty key&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">!</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">queryMethodMap</span><span class="keyword">[</span><span class="default">$type</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 62" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testAddDefinitionThrowsInvalidArgumentException</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">throw</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">InvalidArgumentException</span><span class="keyword">(</span><span class="default">sprintf</span><span class="keyword">(</span><span class="default">'invalid type "%s"'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$type</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="7 tests cover line 65" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testAddDefinitionThrowsInvalidArgumentException</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;valid with no values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;valid with regular values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;valid with values containing empty key&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">definitions</span><span class="keyword">[</span><span class="default">$name</span><span class="keyword">]</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="7 tests cover line 66" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testAddDefinitionThrowsInvalidArgumentException</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;valid with no values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;valid with regular values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;valid with values containing empty key&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'type'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">$type</span><span class="keyword">,</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="7 tests cover line 67" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testAddDefinitionThrowsInvalidArgumentException</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;valid with no values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;valid with regular values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;valid with values containing empty key&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'title'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">$title</span></td></tr> + <tr><td><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="7 tests cover line 70" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testAddDefinitionThrowsInvalidArgumentException</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;valid with no values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;valid with regular values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;valid with values containing empty key&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="70"></a><a href="#70">70</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="71"></a><a href="#71">71</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="74"></a><a href="#74">74</a></div></td><td class="codeLine"><span class="comment"> * @see IteratorAggregate::getIterator()</span></td></tr> + <tr><td><div align="right"><a name="75"></a><a href="#75">75</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="76"></a><a href="#76">76</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getIterator</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="6 tests cover line 78" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;valid with no values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;valid with regular values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetIterator with data set &quot;valid with values containing empty key&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">ArrayIterator</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">toArray</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"><span class="comment"> * @see Countable::count()</span></td></tr> + <tr><td><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">count</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="6 tests cover line 86" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testCount with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testCount with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testCount with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testCount with data set &quot;valid with no values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testCount with data set &quot;valid with regular values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testCount with data set &quot;valid with values containing empty key&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="86"></a><a href="#86">86</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">count</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">toArray</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="87"></a><a href="#87">87</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="88"></a><a href="#88">88</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="90"></a><a href="#90">90</a></div></td><td class="codeLine"><span class="comment"> * @return array</span></td></tr> + <tr><td><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">toArray</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="6 tests cover line 94" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with no values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with regular values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with values containing empty key&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">!</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">cache</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="6 tests cover line 95" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with no values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with regular values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with values containing empty key&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">cache</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="6 tests cover line 97" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with no values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with regular values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with values containing empty key&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">foreach</span><span class="default"> </span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">definitions</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">$name</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">$definition</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="98"></a><a href="#98">98</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// check if the facet definition exists in the facet result</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="6 tests cover line 99" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with no values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with regular values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with values containing empty key&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="99"></a><a href="#99">99</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">!</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">facetResult</span><span class="keyword">[</span><span class="default">$definition</span><span class="keyword">[</span><span class="default">'type'</span><span class="keyword">]</span><span class="keyword">]</span><span class="keyword">)</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="6 tests cover line 100" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with no values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with regular values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with values containing empty key&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="100"></a><a href="#100">100</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">||</span><span class="default"> </span><span class="keyword">!</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">facetResult</span><span class="keyword">[</span><span class="default">$definition</span><span class="keyword">[</span><span class="default">'type'</span><span class="keyword">]</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">$name</span><span class="keyword">]</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 102" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;invalid name&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">continue</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="104"></a><a href="#104">104</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="105"></a><a href="#105">105</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// cast to array to workaround the 'Notice: Illegal member variable name' for PHP <= 5.6.20</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 106" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with no values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with regular values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with values containing empty key&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="106"></a><a href="#106">106</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$result</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">(array)</span><span class="default">$this</span><span class="default">-></span><span class="default">facetResult</span><span class="keyword">[</span><span class="default">$definition</span><span class="keyword">[</span><span class="default">'type'</span><span class="keyword">]</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">$name</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="107"></a><a href="#107">107</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// remove empty value</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 108" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with no values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with regular values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with values containing empty key&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">unset</span><span class="keyword">(</span><span class="default">$result</span><span class="keyword">[</span><span class="default">''</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 110" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with no values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with regular values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with values containing empty key&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="110"></a><a href="#110">110</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">cache</span><span class="keyword">[</span><span class="default">$name</span><span class="keyword">]</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$result</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="111"></a><a href="#111">111</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="113"></a><a href="#113">113</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="6 tests cover line 114" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with no values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with regular values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with values containing empty key&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="114"></a><a href="#114">114</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">cache</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="115"></a><a href="#115">115</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="116"></a><a href="#116">116</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="118"></a><a href="#118">118</a></div></td><td class="codeLine"><span class="comment"> * @param ArrayAccess $facetResult</span></td></tr> + <tr><td><div align="right"><a name="119"></a><a href="#119">119</a></div></td><td class="codeLine"><span class="comment"> * @return Facets</span></td></tr> + <tr><td><div align="right"><a name="120"></a><a href="#120">120</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="121"></a><a href="#121">121</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setFacetResult</span><span class="keyword">(</span><span class="default">ArrayAccess</span><span class="default"> </span><span class="default">$facetResult</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="122"></a><a href="#122">122</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="7 tests cover line 123" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with no values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with regular values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with values containing empty key&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetFacetResult</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="123"></a><a href="#123">123</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">facetResult</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$facetResult</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="7 tests cover line 124" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with no values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with regular values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with values containing empty key&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetFacetResult</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="124"></a><a href="#124">124</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">cache</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">null</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="125"></a><a href="#125">125</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="7 tests cover line 126" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with no values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with regular values&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testToArray with data set &quot;valid with values containing empty key&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetFacetResult</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="126"></a><a href="#126">126</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="127"></a><a href="#127">127</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="128"></a><a href="#128">128</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="129"></a><a href="#129">129</a></div></td><td class="codeLine"><span class="comment"> * @param array $params</span></td></tr> + <tr><td><div align="right"><a name="130"></a><a href="#130">130</a></div></td><td class="codeLine"><span class="comment"> * @return Facets</span></td></tr> + <tr><td><div align="right"><a name="131"></a><a href="#131">131</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="132"></a><a href="#132">132</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setParams</span><span class="keyword">(</span><span class="keyword">array</span><span class="default"> </span><span class="default">$params</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="133"></a><a href="#133">133</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 134" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetParams</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="134"></a><a href="#134">134</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">params</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$params</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="135"></a><a href="#135">135</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 136" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetParams</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="136"></a><a href="#136">136</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="137"></a><a href="#137">137</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="138"></a><a href="#138">138</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="139"></a><a href="#139">139</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="140"></a><a href="#140">140</a></div></td><td class="codeLine"><span class="comment"> * @param SolrDisMaxQuery $query</span></td></tr> + <tr><td><div align="right"><a name="141"></a><a href="#141">141</a></div></td><td class="codeLine"><span class="comment"> * @return Facets</span></td></tr> + <tr><td><div align="right"><a name="142"></a><a href="#142">142</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="143"></a><a href="#143">143</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setupQuery</span><span class="keyword">(</span><span class="default">SolrDisMaxQuery</span><span class="default"> </span><span class="default">$query</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="144"></a><a href="#144">144</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="5 tests cover line 145" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;empty params&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;empty value&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;regular value&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="145"></a><a href="#145">145</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">setFacet</span><span class="keyword">(</span><span class="default">true</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="146"></a><a href="#146">146</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="5 tests cover line 147" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;empty params&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;empty value&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;regular value&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="147"></a><a href="#147">147</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">foreach</span><span class="default"> </span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">definitions</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">$name</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">$definition</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="5 tests cover line 148" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;empty params&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;empty value&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;regular value&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="148"></a><a href="#148">148</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$tag</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">sprintf</span><span class="keyword">(</span><span class="default">'tag-%s'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$name</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="5 tests cover line 149" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;empty params&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;empty value&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;regular value&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="149"></a><a href="#149">149</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$method</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">queryMethodMap</span><span class="keyword">[</span><span class="default">$definition</span><span class="keyword">[</span><span class="default">'type'</span><span class="keyword">]</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="5 tests cover line 150" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;empty params&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;empty value&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;regular value&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="150"></a><a href="#150">150</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">$method</span><span class="keyword">(</span><span class="default">sprintf</span><span class="keyword">(</span><span class="default">'{!ex=%s}%s'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$tag</span><span class="keyword">,</span><span class="default"> </span><span class="default">$name</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="151"></a><a href="#151">151</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="5 tests cover line 152" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;empty params&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;empty value&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;regular value&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="152"></a><a href="#152">152</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">params</span><span class="keyword">[</span><span class="default">$name</span><span class="keyword">]</span><span class="keyword">)</span><span class="default"> </span><span class="default">&&</span><span class="default"> </span><span class="default">is_array</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">params</span><span class="keyword">[</span><span class="default">$name</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="153"></a><a href="#153">153</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$valueList</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">array_filter</span><span class="keyword">(</span><span class="default">array_map</span><span class="keyword">(</span><span class="keyword">function</span><span class="default"> </span><span class="keyword">(</span><span class="default">$value</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 154" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;regular value&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="154"></a><a href="#154">154</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">trim</span><span class="keyword">(</span><span class="default">SolrUtils</span><span class="default">::</span><span class="default">escapeQueryChars</span><span class="keyword">(</span><span class="default">$value</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 155" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;empty value&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;regular value&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="155"></a><a href="#155">155</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span><span class="keyword">,</span><span class="default"> </span><span class="default">array_keys</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">params</span><span class="keyword">[</span><span class="default">$name</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="156"></a><a href="#156">156</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 157" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;empty value&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;regular value&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="157"></a><a href="#157">157</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">$valueList</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 158" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;regular value&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="158"></a><a href="#158">158</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">addFilterQuery</span><span class="keyword">(</span><span class="default">sprintf</span><span class="keyword">(</span><span class="default">'{!tag=%s}%s:("%s")'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$tag</span><span class="keyword">,</span><span class="default"> </span><span class="default">$name</span><span class="keyword">,</span><span class="default"> </span><span class="default">implode</span><span class="keyword">(</span><span class="default">'" OR "'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$valueList</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="159"></a><a href="#159">159</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="160"></a><a href="#160">160</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="161"></a><a href="#161">161</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="162"></a><a href="#162">162</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="5 tests cover line 163" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;empty params&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;invalid type&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;empty value&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testSetupQuery with data set &quot;regular value&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="163"></a><a href="#163">163</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="164"></a><a href="#164">164</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="165"></a><a href="#165">165</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="166"></a><a href="#166">166</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="167"></a><a href="#167">167</a></div></td><td class="codeLine"><span class="comment"> * @param string $name</span></td></tr> + <tr><td><div align="right"><a name="168"></a><a href="#168">168</a></div></td><td class="codeLine"><span class="comment"> * @param string $value</span></td></tr> + <tr><td><div align="right"><a name="169"></a><a href="#169">169</a></div></td><td class="codeLine"><span class="comment"> * @return boolean</span></td></tr> + <tr><td><div align="right"><a name="170"></a><a href="#170">170</a></div></td><td class="codeLine"><span class="comment"> * @throws InvalidArgumentException</span></td></tr> + <tr><td><div align="right"><a name="171"></a><a href="#171">171</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="172"></a><a href="#172">172</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">isValueActive</span><span class="keyword">(</span><span class="default">$name</span><span class="keyword">,</span><span class="default"> </span><span class="default">$value</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="173"></a><a href="#173">173</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="5 tests cover line 174" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;empty params&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;invalid params&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;inactive&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;active&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="174"></a><a href="#174">174</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">assertValidName</span><span class="keyword">(</span><span class="default">$name</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="175"></a><a href="#175">175</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="4 tests cover line 176" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;empty params&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;invalid params&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;inactive&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;active&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="176"></a><a href="#176">176</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">params</span><span class="keyword">[</span><span class="default">$name</span><span class="keyword">]</span><span class="keyword">)</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="4 tests cover line 177" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;empty params&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;invalid params&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;inactive&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;active&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="177"></a><a href="#177">177</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">&&</span><span class="default"> </span><span class="default">is_array</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">params</span><span class="keyword">[</span><span class="default">$name</span><span class="keyword">]</span><span class="keyword">)</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="4 tests cover line 178" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;empty params&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;invalid params&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;inactive&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;active&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="178"></a><a href="#178">178</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">&&</span><span class="default"> </span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">params</span><span class="keyword">[</span><span class="default">$name</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">$value</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="179"></a><a href="#179">179</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="180"></a><a href="#180">180</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="181"></a><a href="#181">181</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="182"></a><a href="#182">182</a></div></td><td class="codeLine"><span class="comment"> * @return array</span></td></tr> + <tr><td><div align="right"><a name="183"></a><a href="#183">183</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="184"></a><a href="#184">184</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getActiveValues</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="185"></a><a href="#185">185</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="5 tests cover line 186" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;invalid value&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;single&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;keep definition order&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="186"></a><a href="#186">186</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$return</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="187"></a><a href="#187">187</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="5 tests cover line 188" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;invalid value&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;single&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;keep definition order&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="188"></a><a href="#188">188</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">foreach</span><span class="default"> </span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">toArray</span><span class="keyword">(</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">$name</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">$values</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="5 tests cover line 189" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;invalid value&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;single&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;keep definition order&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="189"></a><a href="#189">189</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">params</span><span class="keyword">[</span><span class="default">$name</span><span class="keyword">]</span><span class="keyword">)</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="5 tests cover line 190" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;invalid value&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;single&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;keep definition order&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="190"></a><a href="#190">190</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">&&</span><span class="default"> </span><span class="default">is_array</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">params</span><span class="keyword">[</span><span class="default">$name</span><span class="keyword">]</span><span class="keyword">)</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="5 tests cover line 191" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;invalid value&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;single&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;keep definition order&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="191"></a><a href="#191">191</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">&&</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">params</span><span class="keyword">[</span><span class="default">$name</span><span class="keyword">]</span></td></tr> + <tr><td><div align="right"><a name="192"></a><a href="#192">192</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 193" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;single&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;keep definition order&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="193"></a><a href="#193">193</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$activeValues</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="194"></a><a href="#194">194</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 195" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;single&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;keep definition order&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="195"></a><a href="#195">195</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">foreach</span><span class="default"> </span><span class="keyword">(</span><span class="default">$values</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">$value</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">$count</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 196" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;single&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;keep definition order&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="196"></a><a href="#196">196</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">params</span><span class="keyword">[</span><span class="default">$name</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">$value</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 197" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;single&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;keep definition order&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="197"></a><a href="#197">197</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$activeValues</span><span class="keyword">[</span><span class="keyword">]</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$value</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="198"></a><a href="#198">198</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="199"></a><a href="#199">199</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="200"></a><a href="#200">200</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 201" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;single&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;keep definition order&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="201"></a><a href="#201">201</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">$activeValues</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 202" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;single&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;keep definition order&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="202"></a><a href="#202">202</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$return</span><span class="keyword">[</span><span class="default">$name</span><span class="keyword">]</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$activeValues</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="203"></a><a href="#203">203</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="204"></a><a href="#204">204</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="205"></a><a href="#205">205</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="206"></a><a href="#206">206</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="5 tests cover line 207" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;invalid value&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;empty&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;single&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetActiveValues with data set &quot;keep definition order&quot;</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="207"></a><a href="#207">207</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$return</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="208"></a><a href="#208">208</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="209"></a><a href="#209">209</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="210"></a><a href="#210">210</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="211"></a><a href="#211">211</a></div></td><td class="codeLine"><span class="comment"> * @param string $name</span></td></tr> + <tr><td><div align="right"><a name="212"></a><a href="#212">212</a></div></td><td class="codeLine"><span class="comment"> * @return string Non-translated title</span></td></tr> + <tr><td><div align="right"><a name="213"></a><a href="#213">213</a></div></td><td class="codeLine"><span class="comment"> * @throws InvalidArgumentException</span></td></tr> + <tr><td><div align="right"><a name="214"></a><a href="#214">214</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="215"></a><a href="#215">215</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getTitle</span><span class="keyword">(</span><span class="default">$name</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="216"></a><a href="#216">216</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="5 tests cover line 217" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetTitle with data set #0</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetTitle with data set #1</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetTitle with data set #2</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetTitle with data set #3</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetTitleThrowsInvalidArgumentException</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="217"></a><a href="#217">217</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">assertValidName</span><span class="keyword">(</span><span class="default">$name</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="218"></a><a href="#218">218</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="4 tests cover line 219" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetTitle with data set #0</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetTitle with data set #1</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetTitle with data set #2</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetTitle with data set #3</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="219"></a><a href="#219">219</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">definitions</span><span class="keyword">[</span><span class="default">$name</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">'title'</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="220"></a><a href="#220">220</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="221"></a><a href="#221">221</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="222"></a><a href="#222">222</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="223"></a><a href="#223">223</a></div></td><td class="codeLine"><span class="comment"> * @param string $name</span></td></tr> + <tr><td><div align="right"><a name="224"></a><a href="#224">224</a></div></td><td class="codeLine"><span class="comment"> * @throws InvalidArgumentException</span></td></tr> + <tr><td><div align="right"><a name="225"></a><a href="#225">225</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="226"></a><a href="#226">226</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">assertValidName</span><span class="keyword">(</span><span class="default">$name</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="227"></a><a href="#227">227</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="10 tests cover line 228" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;empty params&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;invalid params&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;inactive&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;active&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetTitle with data set #0</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetTitle with data set #1</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetTitle with data set #2</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetTitle with data set #3</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetTitleThrowsInvalidArgumentException</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="228"></a><a href="#228">228</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">!</span><span class="default"> </span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">definitions</span><span class="keyword">[</span><span class="default">$name</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 229" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;invalid name&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetTitleThrowsInvalidArgumentException</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="229"></a><a href="#229">229</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">throw</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">InvalidArgumentException</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="230"></a><a href="#230">230</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="8 tests cover line 231" data-content="<ul><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;empty params&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;invalid params&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;inactive&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testIsValueActive with data set &quot;active&quot;</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetTitle with data set #0</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetTitle with data set #1</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetTitle with data set #2</li><li class="covered-by-large-tests">SolrTest\FacetsTest::testGetTitle with data set #3</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="231"></a><a href="#231">231</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="232"></a><a href="#232">232</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="_js/jquery.min.js" type="text/javascript"></script> + <script src="_js/popper.min.js" type="text/javascript"></script> + <script src="_js/bootstrap.min.js" type="text/javascript"></script> + <script src="_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/FacetsProviderInterface.php.html b/test/coverage/FacetsProviderInterface.php.html new file mode 100644 index 0000000..d1810ec --- /dev/null +++ b/test/coverage/FacetsProviderInterface.php.html @@ -0,0 +1,108 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/FacetsProviderInterface.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="_css/style.css" rel="stylesheet" type="text/css"> + <link href="_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item active">FacetsProviderInterface.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="">Total</td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + <td class=" small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * YAWIK</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @filesource</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @copyright (c) 2013 - 2016 Cross Solution (http://cross-solution.de)</span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @license MIT</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> * @author Miroslav Fedeleš <miroslav.fedeles@gmail.com></span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="comment"> * @since 0.27</span></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="keyword">interface</span><span class="default"> </span><span class="default">FacetsProviderInterface</span></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="comment"> * @return Facets</span></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getFacets</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="_js/jquery.min.js" type="text/javascript"></script> + <script src="_js/popper.min.js" type="text/javascript"></script> + <script src="_js/bootstrap.min.js" type="text/javascript"></script> + <script src="_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/Factory/Controller/ConsoleControllerFactory.php.html b/test/coverage/Factory/Controller/ConsoleControllerFactory.php.html new file mode 100644 index 0000000..5a16d66 --- /dev/null +++ b/test/coverage/Factory/Controller/ConsoleControllerFactory.php.html @@ -0,0 +1,185 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Factory/Controller/ConsoleControllerFactory.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="../index.html">Factory</a></li> + <li class="breadcrumb-item"><a href="index.html">Controller</a></li> + <li class="breadcrumb-item active">ConsoleControllerFactory.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="success">Total</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">7 / 7</div></td> + </tr> + + <tr> + <td class="success"><abbr title="Solr\Factory\Controller\ConsoleControllerFactory">ConsoleControllerFactory</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">7 / 7</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#18"><abbr title="__invoke(ContainerInterface $container, $requestedName, array $options = null)">__invoke</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">7 / 7</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * @filesource</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> * @copyright (c) 2013 - 2016 Cross Solution (http://cross-solution.de)</span></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @license MIT</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @author Miroslav Fedeleš <miroslav.fedeles@gmail.com></span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @since 0.27</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Factory</span><span class="default">\</span><span class="default">Controller</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Interop</span><span class="default">\</span><span class="default">Container</span><span class="default">\</span><span class="default">ContainerInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Controller</span><span class="default">\</span><span class="default">ConsoleController</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Zend</span><span class="default">\</span><span class="default">ServiceManager</span><span class="default">\</span><span class="default">Factory</span><span class="default">\</span><span class="default">FactoryInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Core</span><span class="default">\</span><span class="default">Console</span><span class="default">\</span><span class="default">ProgressBar</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default"> </span><span class="default">ConsoleControllerFactory</span><span class="default"> </span><span class="keyword">implements</span><span class="default"> </span><span class="default">FactoryInterface</span></td></tr> + <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">__invoke</span><span class="keyword">(</span><span class="default">ContainerInterface</span><span class="default"> </span><span class="default">$container</span><span class="keyword">,</span><span class="default"> </span><span class="default">$requestedName</span><span class="keyword">,</span><span class="default"> </span><span class="keyword">array</span><span class="default"> </span><span class="default">$options</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">null</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 20" data-content="<ul><li class="covered-by-large-tests">SolrTest\Factory\Controller\ConsoleControllerFactoryTest::testInvokation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$manager</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$container</span><span class="default">-></span><span class="default">get</span><span class="keyword">(</span><span class="default">'Solr/Manager'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 21" data-content="<ul><li class="covered-by-large-tests">SolrTest\Factory\Controller\ConsoleControllerFactoryTest::testInvokation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$options</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$container</span><span class="default">-></span><span class="default">get</span><span class="keyword">(</span><span class="default">'Solr/Options/Module'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 22" data-content="<ul><li class="covered-by-large-tests">SolrTest\Factory\Controller\ConsoleControllerFactoryTest::testInvokation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$client</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$manager</span><span class="default">-></span><span class="default">getClient</span><span class="keyword">(</span><span class="default">$manager</span><span class="default">-></span><span class="default">getOptions</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">getJobsPath</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 23" data-content="<ul><li class="covered-by-large-tests">SolrTest\Factory\Controller\ConsoleControllerFactoryTest::testInvokation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$jobRepository</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$container</span><span class="default">-></span><span class="default">get</span><span class="keyword">(</span><span class="default">'repositories'</span><span class="keyword">)</span><span class="default">-></span><span class="default">get</span><span class="keyword">(</span><span class="default">'Jobs/Job'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$progressBarFactory</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="keyword">(</span><span class="default">$count</span><span class="keyword">,</span><span class="default"> </span><span class="default">$persistenceNamespace</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">null</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 25" data-content="<ul><li class="covered-by-large-tests">SolrTest\Factory\Controller\ConsoleControllerFactoryTest::testInvokation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">ProgressBar</span><span class="keyword">(</span><span class="default">$count</span><span class="keyword">,</span><span class="default"> </span><span class="default">$persistenceNamespace</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 26" data-content="<ul><li class="covered-by-large-tests">SolrTest\Factory\Controller\ConsoleControllerFactoryTest::testInvokation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 28" data-content="<ul><li class="covered-by-large-tests">SolrTest\Factory\Controller\ConsoleControllerFactoryTest::testInvokation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">ConsoleController</span><span class="keyword">(</span><span class="default">$client</span><span class="keyword">,</span><span class="default"> </span><span class="default">$jobRepository</span><span class="keyword">,</span><span class="default"> </span><span class="default">$progressBarFactory</span><span class="keyword">,</span><span class="default"> </span><span class="default">$options</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="../../_js/jquery.min.js" type="text/javascript"></script> + <script src="../../_js/popper.min.js" type="text/javascript"></script> + <script src="../../_js/bootstrap.min.js" type="text/javascript"></script> + <script src="../../_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/Factory/Controller/Plugin/ProcessJsonRequestDelegatorFactory.php.html b/test/coverage/Factory/Controller/Plugin/ProcessJsonRequestDelegatorFactory.php.html new file mode 100644 index 0000000..32d3ef1 --- /dev/null +++ b/test/coverage/Factory/Controller/Plugin/ProcessJsonRequestDelegatorFactory.php.html @@ -0,0 +1,195 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Factory/Controller/Plugin/ProcessJsonRequestDelegatorFactory.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../../../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../../../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../../../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../../../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../../../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="../../index.html">Factory</a></li> + <li class="breadcrumb-item"><a href="../index.html">Controller</a></li> + <li class="breadcrumb-item"><a href="index.html">Plugin</a></li> + <li class="breadcrumb-item active">ProcessJsonRequestDelegatorFactory.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="danger">Total</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 9</div></td> + </tr> + + <tr> + <td class="danger"><abbr title="Solr\Factory\Controller\Plugin\ProcessJsonRequestDelegatorFactory">ProcessJsonRequestDelegatorFactory</abbr></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">6.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 9</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#24"><abbr title="__invoke( + ContainerInterface $container, + $name, + callable $callback, + ?array $options = null + ): FacetsInjectorProcessJsonRequestDecorator">__invoke</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">6.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 9</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php </span><span class="default">declare</span><span class="keyword">(</span><span class="default">strict_types</span><span class="keyword">=</span><span class="default">1</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * YAWIK-Solr</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @filesource</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @copyright 2019 CROSS Solution <https://www.cross-solution.de></span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @license MIT</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Factory</span><span class="default">\</span><span class="default">Controller</span><span class="default">\</span><span class="default">Plugin</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Interop</span><span class="default">\</span><span class="default">Container</span><span class="default">\</span><span class="default">ContainerInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Controller</span><span class="default">\</span><span class="default">Plugin</span><span class="default">\</span><span class="default">FacetsInjectorProcessJsonRequestDecorator</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Zend</span><span class="default">\</span><span class="default">ServiceManager</span><span class="default">\</span><span class="default">Factory</span><span class="default">\</span><span class="default">DelegatorFactoryInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="comment"> * Factory for \Solr\Factory\Controller\Plugin\ProcessJsonRequestDelegator</span></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="comment"> * @author Mathias Gelhausen <gelhausen@cross-solution.de></span></td></tr> + <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="comment"> * TODO: write tests</span></td></tr> + <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default"> </span><span class="default">ProcessJsonRequestDelegatorFactory</span><span class="default"> </span><span class="keyword">implements</span><span class="default"> </span><span class="default">DelegatorFactoryInterface</span></td></tr> + <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">__invoke</span><span class="keyword">(</span></td></tr> + <tr class="danger"><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">ContainerInterface</span><span class="default"> </span><span class="default">$container</span><span class="keyword">,</span></td></tr> + <tr class="danger"><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$name</span><span class="keyword">,</span></td></tr> + <tr class="danger"><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">callable</span><span class="default"> </span><span class="default">$callback</span><span class="keyword">,</span></td></tr> + <tr class="danger"><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">?</span><span class="keyword">array</span><span class="default"> </span><span class="default">$options</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">null</span></td></tr> + <tr class="danger"><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">)</span><span class="keyword">:</span><span class="default"> </span><span class="default">FacetsInjectorProcessJsonRequestDecorator</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">FacetsInjectorProcessJsonRequestDecorator</span><span class="keyword">(</span></td></tr> + <tr class="danger"><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$callback</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr class="danger"><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="../../../_js/jquery.min.js" type="text/javascript"></script> + <script src="../../../_js/popper.min.js" type="text/javascript"></script> + <script src="../../../_js/bootstrap.min.js" type="text/javascript"></script> + <script src="../../../_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/Factory/Controller/Plugin/dashboard.html b/test/coverage/Factory/Controller/Plugin/dashboard.html new file mode 100644 index 0000000..4f9c132 --- /dev/null +++ b/test/coverage/Factory/Controller/Plugin/dashboard.html @@ -0,0 +1,290 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Dashboard for /home/cbleek/AtomProjects/Solr/src/Factory/Controller/Plugin</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../../../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../../../_css/nv.d3.min.css" rel="stylesheet" type="text/css"> + <link href="../../../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../../../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../../../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="../../index.html">Factory</a></li> + <li class="breadcrumb-item"><a href="../index.html">Controller</a></li> + <li class="breadcrumb-item"><a href="index.html">Plugin</a></li> + <li class="breadcrumb-item active">(Dashboard)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <h2>Classes</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="classCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="classComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + <tr><td><a href="ProcessJsonRequestDelegatorFactory.php.html#22">Solr\Factory\Controller\Plugin\ProcessJsonRequestDelegatorFactory</a></td><td class="text-right">0%</td></tr> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + <tr><td><a href="ProcessJsonRequestDelegatorFactory.php.html#22">Solr\Factory\Controller\Plugin\ProcessJsonRequestDelegatorFactory</a></td><td class="text-right">6</td></tr> + + </tbody> + </table> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <h2>Methods</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="methodCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="methodComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + <tr><td><a href="ProcessJsonRequestDelegatorFactory.php.html#24"><abbr title="Solr\Factory\Controller\Plugin\ProcessJsonRequestDelegatorFactory::__invoke">__invoke</abbr></a></td><td class="text-right">0%</td></tr> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + <tr><td><a href="ProcessJsonRequestDelegatorFactory.php.html#24"><abbr title="Solr\Factory\Controller\Plugin\ProcessJsonRequestDelegatorFactory::__invoke">__invoke</abbr></a></td><td class="text-right">6</td></tr> + + </tbody> + </table> + </div> + </div> + </div> + <footer> + <hr/> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + <script src="../../../_js/jquery.min.js" type="text/javascript"></script> + <script src="../../../_js/d3.min.js" type="text/javascript"></script> + <script src="../../../_js/nv.d3.min.js" type="text/javascript"></script> + <script type="text/javascript"> +$(document).ready(function() { + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#classCoverageDistribution svg') + .datum(getCoverageDistributionData([1,0,0,0,0,0,0,0,0,0,0,0], "Class Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#methodCoverageDistribution svg') + .datum(getCoverageDistributionData([1,0,0,0,0,0,0,0,0,0,0,0], "Method Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getCoverageDistributionData(data, label) { + var labels = [ + '0%', + '0-10%', + '10-20%', + '20-30%', + '30-40%', + '40-50%', + '50-60%', + '60-70%', + '70-80%', + '80-90%', + '90-100%', + '100%' + ]; + var values = []; + $.each(labels, function(key) { + values.push({x: labels[key], y: data[key]}); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Cyclomatic Complexity'); + + d3.select('#classComplexity svg') + .datum(getComplexityData([[0,2,"<a href=\"ProcessJsonRequestDelegatorFactory.php.html#22\">Solr\\Factory\\Controller\\Plugin\\ProcessJsonRequestDelegatorFactory<\/a>"]], 'Class Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Method Complexity'); + + d3.select('#methodComplexity svg') + .datum(getComplexityData([[0,2,"<a href=\"ProcessJsonRequestDelegatorFactory.php.html#24\">Solr\\Factory\\Controller\\Plugin\\ProcessJsonRequestDelegatorFactory::__invoke<\/a>"]], 'Method Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getComplexityData(data, label) { + var values = []; + $.each(data, function(key) { + var value = Math.round(data[key][0]*100) / 100; + values.push({ + x: value, + y: data[key][1], + class: data[key][2], + size: 0.05, + shape: 'diamond' + }); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } +}); + </script> + </body> +</html> diff --git a/test/coverage/Factory/Controller/Plugin/index.html b/test/coverage/Factory/Controller/Plugin/index.html new file mode 100644 index 0000000..963b974 --- /dev/null +++ b/test/coverage/Factory/Controller/Plugin/index.html @@ -0,0 +1,121 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Factory/Controller/Plugin</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../../../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../../../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../../../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../../../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../../../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="../../index.html">Factory</a></li> + <li class="breadcrumb-item"><a href="../index.html">Controller</a></li> + <li class="breadcrumb-item active">Plugin</li> + <li class="breadcrumb-item">(<a href="dashboard.html">Dashboard</a>)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="9"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + <td colspan="3"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="danger">Total</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 9</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + <tr> + <td class="danger"><img src="../../../_icons/file-code.svg" class="octicon" /><a href="ProcessJsonRequestDelegatorFactory.php.html">ProcessJsonRequestDelegatorFactory.php</a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 9</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + + </tbody> + </table> + </div> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="danger"><strong>Low</strong>: 0% to 50%</span> + <span class="warning"><strong>Medium</strong>: 50% to 90%</span> + <span class="success"><strong>High</strong>: 90% to 100%</span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + </body> +</html> diff --git a/test/coverage/Factory/Controller/dashboard.html b/test/coverage/Factory/Controller/dashboard.html new file mode 100644 index 0000000..03fe442 --- /dev/null +++ b/test/coverage/Factory/Controller/dashboard.html @@ -0,0 +1,289 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Dashboard for /home/cbleek/AtomProjects/Solr/src/Factory/Controller</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../../_css/nv.d3.min.css" rel="stylesheet" type="text/css"> + <link href="../../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="../index.html">Factory</a></li> + <li class="breadcrumb-item"><a href="index.html">Controller</a></li> + <li class="breadcrumb-item active">(Dashboard)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <h2>Classes</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="classCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="classComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + <tr><td><a href="Plugin/ProcessJsonRequestDelegatorFactory.php.html#22">Solr\Factory\Controller\Plugin\ProcessJsonRequestDelegatorFactory</a></td><td class="text-right">0%</td></tr> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + <tr><td><a href="Plugin/ProcessJsonRequestDelegatorFactory.php.html#22">Solr\Factory\Controller\Plugin\ProcessJsonRequestDelegatorFactory</a></td><td class="text-right">6</td></tr> + + </tbody> + </table> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <h2>Methods</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="methodCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="methodComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + <tr><td><a href="Plugin/ProcessJsonRequestDelegatorFactory.php.html#24"><abbr title="Solr\Factory\Controller\Plugin\ProcessJsonRequestDelegatorFactory::__invoke">__invoke</abbr></a></td><td class="text-right">0%</td></tr> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + <tr><td><a href="Plugin/ProcessJsonRequestDelegatorFactory.php.html#24"><abbr title="Solr\Factory\Controller\Plugin\ProcessJsonRequestDelegatorFactory::__invoke">__invoke</abbr></a></td><td class="text-right">6</td></tr> + + </tbody> + </table> + </div> + </div> + </div> + <footer> + <hr/> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + <script src="../../_js/jquery.min.js" type="text/javascript"></script> + <script src="../../_js/d3.min.js" type="text/javascript"></script> + <script src="../../_js/nv.d3.min.js" type="text/javascript"></script> + <script type="text/javascript"> +$(document).ready(function() { + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#classCoverageDistribution svg') + .datum(getCoverageDistributionData([1,0,0,0,0,0,0,0,0,0,0,1], "Class Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#methodCoverageDistribution svg') + .datum(getCoverageDistributionData([1,0,0,0,0,0,0,0,0,0,0,1], "Method Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getCoverageDistributionData(data, label) { + var labels = [ + '0%', + '0-10%', + '10-20%', + '20-30%', + '30-40%', + '40-50%', + '50-60%', + '60-70%', + '70-80%', + '80-90%', + '90-100%', + '100%' + ]; + var values = []; + $.each(labels, function(key) { + values.push({x: labels[key], y: data[key]}); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Cyclomatic Complexity'); + + d3.select('#classComplexity svg') + .datum(getComplexityData([[100,1,"<a href=\"ConsoleControllerFactory.php.html#16\">Solr\\Factory\\Controller\\ConsoleControllerFactory<\/a>"],[0,2,"<a href=\"Plugin\/ProcessJsonRequestDelegatorFactory.php.html#22\">Solr\\Factory\\Controller\\Plugin\\ProcessJsonRequestDelegatorFactory<\/a>"]], 'Class Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Method Complexity'); + + d3.select('#methodComplexity svg') + .datum(getComplexityData([[100,1,"<a href=\"ConsoleControllerFactory.php.html#18\">Solr\\Factory\\Controller\\ConsoleControllerFactory::__invoke<\/a>"],[0,2,"<a href=\"Plugin\/ProcessJsonRequestDelegatorFactory.php.html#24\">Solr\\Factory\\Controller\\Plugin\\ProcessJsonRequestDelegatorFactory::__invoke<\/a>"]], 'Method Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getComplexityData(data, label) { + var values = []; + $.each(data, function(key) { + var value = Math.round(data[key][0]*100) / 100; + values.push({ + x: value, + y: data[key][1], + class: data[key][2], + size: 0.05, + shape: 'diamond' + }); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } +}); + </script> + </body> +</html> diff --git a/test/coverage/Factory/Controller/index.html b/test/coverage/Factory/Controller/index.html new file mode 100644 index 0000000..392949f --- /dev/null +++ b/test/coverage/Factory/Controller/index.html @@ -0,0 +1,148 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Factory/Controller</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="../index.html">Factory</a></li> + <li class="breadcrumb-item active">Controller</li> + <li class="breadcrumb-item">(<a href="dashboard.html">Dashboard</a>)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="9"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + <td colspan="3"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="danger">Total</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="43.75" aria-valuemin="0" aria-valuemax="100" style="width: 43.75%"> + <span class="sr-only">43.75% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">43.75%</div></td> + <td class="danger small"><div align="right">7 / 16</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%"> + <span class="sr-only">50.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">50.00%</div></td> + <td class="danger small"><div align="right">1 / 2</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%"> + <span class="sr-only">50.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">50.00%</div></td> + <td class="danger small"><div align="right">1 / 2</div></td> + </tr> + + <tr> + <td class="danger"><img src="../../_icons/file-directory.svg" class="octicon" /><a href="Plugin/index.html">Plugin</a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 9</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + <tr> + <td class="success"><img src="../../_icons/file-code.svg" class="octicon" /><a href="ConsoleControllerFactory.php.html">ConsoleControllerFactory.php</a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">7 / 7</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + + </tbody> + </table> + </div> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="danger"><strong>Low</strong>: 0% to 50%</span> + <span class="warning"><strong>Medium</strong>: 50% to 90%</span> + <span class="success"><strong>High</strong>: 90% to 100%</span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + </body> +</html> diff --git a/test/coverage/Factory/Filter/JobBoardPaginationQueryFactory.php.html b/test/coverage/Factory/Filter/JobBoardPaginationQueryFactory.php.html new file mode 100644 index 0000000..2aa2901 --- /dev/null +++ b/test/coverage/Factory/Filter/JobBoardPaginationQueryFactory.php.html @@ -0,0 +1,209 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Factory/Filter/JobBoardPaginationQueryFactory.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="../index.html">Factory</a></li> + <li class="breadcrumb-item"><a href="index.html">Filter</a></li> + <li class="breadcrumb-item active">JobBoardPaginationQueryFactory.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="danger">Total</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 2</div></td> + <td class="danger small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 8</div></td> + </tr> + + <tr> + <td class="danger"><abbr title="Solr\Factory\Filter\JobBoardPaginationQueryFactory">JobBoardPaginationQueryFactory</abbr></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 2</div></td> + <td class="danger small">6.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 8</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#16"><abbr title="__invoke(ContainerInterface $container, $requestedName, array $options = null)">__invoke</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">2.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 5</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#29"><abbr title="createService(ContainerInterface $container)">createService</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">2.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 3</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Factory</span><span class="default">\</span><span class="default">Filter</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Interop</span><span class="default">\</span><span class="default">Container</span><span class="default">\</span><span class="default">ContainerInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Filter</span><span class="default">\</span><span class="default">JobBoardPaginationQuery</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Zend</span><span class="default">\</span><span class="default">ServiceManager</span><span class="default">\</span><span class="default">Factory</span><span class="default">\</span><span class="default">FactoryInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Options</span><span class="default">\</span><span class="default">ModuleOptions</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"><span class="comment"> * Class JobBoardPaginationQueryFactory</span></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="comment"> * @package Solr\Filter</span></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default"> </span><span class="default">JobBoardPaginationQueryFactory</span><span class="default"> </span><span class="keyword">implements</span><span class="default"> </span><span class="default">FactoryInterface</span></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">__invoke</span><span class="keyword">(</span><span class="default">ContainerInterface</span><span class="default"> </span><span class="default">$container</span><span class="keyword">,</span><span class="default"> </span><span class="default">$requestedName</span><span class="keyword">,</span><span class="default"> </span><span class="keyword">array</span><span class="default"> </span><span class="default">$options</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">null</span><span class="keyword">)</span></td></tr> + <tr class="danger"><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/* @var ModuleOptions $options */</span></td></tr> + <tr class="danger"><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$options</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$container</span><span class="default">-></span><span class="default">get</span><span class="keyword">(</span><span class="default">'Solr/Options/Module'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"></td></tr> + <tr class="danger"><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$filter</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">JobBoardPaginationQuery</span><span class="keyword">(</span><span class="default">$options</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$filter</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="comment"> * @param ContainerInterface $container</span></td></tr> + <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="comment"> * @return JobBoardPaginationQuery|mixed</span></td></tr> + <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">createService</span><span class="keyword">(</span><span class="default">ContainerInterface</span><span class="default"> </span><span class="default">$container</span><span class="keyword">)</span></td></tr> + <tr class="danger"><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">(</span><span class="default">$container</span><span class="keyword">,</span><span class="default"> </span><span class="default">JobBoardPaginationQuery</span><span class="default">::</span><span class="keyword">class</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="../../_js/jquery.min.js" type="text/javascript"></script> + <script src="../../_js/popper.min.js" type="text/javascript"></script> + <script src="../../_js/bootstrap.min.js" type="text/javascript"></script> + <script src="../../_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/Factory/Filter/dashboard.html b/test/coverage/Factory/Filter/dashboard.html new file mode 100644 index 0000000..59b6629 --- /dev/null +++ b/test/coverage/Factory/Filter/dashboard.html @@ -0,0 +1,288 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Dashboard for /home/cbleek/AtomProjects/Solr/src/Factory/Filter</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../../_css/nv.d3.min.css" rel="stylesheet" type="text/css"> + <link href="../../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="../index.html">Factory</a></li> + <li class="breadcrumb-item"><a href="index.html">Filter</a></li> + <li class="breadcrumb-item active">(Dashboard)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <h2>Classes</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="classCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="classComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + <tr><td><a href="JobBoardPaginationQueryFactory.php.html#14">Solr\Factory\Filter\JobBoardPaginationQueryFactory</a></td><td class="text-right">0%</td></tr> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <h2>Methods</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="methodCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="methodComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + <tr><td><a href="JobBoardPaginationQueryFactory.php.html#16"><abbr title="Solr\Factory\Filter\JobBoardPaginationQueryFactory::__invoke">__invoke</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="JobBoardPaginationQueryFactory.php.html#29"><abbr title="Solr\Factory\Filter\JobBoardPaginationQueryFactory::createService">createService</abbr></a></td><td class="text-right">0%</td></tr> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + </div> + <footer> + <hr/> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + <script src="../../_js/jquery.min.js" type="text/javascript"></script> + <script src="../../_js/d3.min.js" type="text/javascript"></script> + <script src="../../_js/nv.d3.min.js" type="text/javascript"></script> + <script type="text/javascript"> +$(document).ready(function() { + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#classCoverageDistribution svg') + .datum(getCoverageDistributionData([1,0,0,0,0,0,0,0,0,0,0,0], "Class Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#methodCoverageDistribution svg') + .datum(getCoverageDistributionData([2,0,0,0,0,0,0,0,0,0,0,0], "Method Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getCoverageDistributionData(data, label) { + var labels = [ + '0%', + '0-10%', + '10-20%', + '20-30%', + '30-40%', + '40-50%', + '50-60%', + '60-70%', + '70-80%', + '80-90%', + '90-100%', + '100%' + ]; + var values = []; + $.each(labels, function(key) { + values.push({x: labels[key], y: data[key]}); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Cyclomatic Complexity'); + + d3.select('#classComplexity svg') + .datum(getComplexityData([[0,2,"<a href=\"JobBoardPaginationQueryFactory.php.html#14\">Solr\\Factory\\Filter\\JobBoardPaginationQueryFactory<\/a>"]], 'Class Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Method Complexity'); + + d3.select('#methodComplexity svg') + .datum(getComplexityData([[0,1,"<a href=\"JobBoardPaginationQueryFactory.php.html#16\">Solr\\Factory\\Filter\\JobBoardPaginationQueryFactory::__invoke<\/a>"],[0,1,"<a href=\"JobBoardPaginationQueryFactory.php.html#29\">Solr\\Factory\\Filter\\JobBoardPaginationQueryFactory::createService<\/a>"]], 'Method Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getComplexityData(data, label) { + var values = []; + $.each(data, function(key) { + var value = Math.round(data[key][0]*100) / 100; + values.push({ + x: value, + y: data[key][1], + class: data[key][2], + size: 0.05, + shape: 'diamond' + }); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } +}); + </script> + </body> +</html> diff --git a/test/coverage/Factory/Filter/index.html b/test/coverage/Factory/Filter/index.html new file mode 100644 index 0000000..54ee697 --- /dev/null +++ b/test/coverage/Factory/Filter/index.html @@ -0,0 +1,120 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Factory/Filter</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="../index.html">Factory</a></li> + <li class="breadcrumb-item active">Filter</li> + <li class="breadcrumb-item">(<a href="dashboard.html">Dashboard</a>)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="9"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + <td colspan="3"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="danger">Total</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 8</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 2</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + <tr> + <td class="danger"><img src="../../_icons/file-code.svg" class="octicon" /><a href="JobBoardPaginationQueryFactory.php.html">JobBoardPaginationQueryFactory.php</a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 8</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 2</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + + </tbody> + </table> + </div> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="danger"><strong>Low</strong>: 0% to 50%</span> + <span class="warning"><strong>Medium</strong>: 50% to 90%</span> + <span class="success"><strong>High</strong>: 90% to 100%</span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + </body> +</html> diff --git a/test/coverage/Factory/dashboard.html b/test/coverage/Factory/dashboard.html new file mode 100644 index 0000000..9b678cf --- /dev/null +++ b/test/coverage/Factory/dashboard.html @@ -0,0 +1,291 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Dashboard for /home/cbleek/AtomProjects/Solr/src/Factory</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/nv.d3.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Factory</a></li> + <li class="breadcrumb-item active">(Dashboard)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <h2>Classes</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="classCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="classComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + <tr><td><a href="Controller/Plugin/ProcessJsonRequestDelegatorFactory.php.html#22">Solr\Factory\Controller\Plugin\ProcessJsonRequestDelegatorFactory</a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Filter/JobBoardPaginationQueryFactory.php.html#14">Solr\Factory\Filter\JobBoardPaginationQueryFactory</a></td><td class="text-right">0%</td></tr> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + <tr><td><a href="Controller/Plugin/ProcessJsonRequestDelegatorFactory.php.html#22">Solr\Factory\Controller\Plugin\ProcessJsonRequestDelegatorFactory</a></td><td class="text-right">6</td></tr> + + </tbody> + </table> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <h2>Methods</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="methodCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="methodComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + <tr><td><a href="Controller/Plugin/ProcessJsonRequestDelegatorFactory.php.html#24"><abbr title="Solr\Factory\Controller\Plugin\ProcessJsonRequestDelegatorFactory::__invoke">__invoke</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Filter/JobBoardPaginationQueryFactory.php.html#16"><abbr title="Solr\Factory\Filter\JobBoardPaginationQueryFactory::__invoke">__invoke</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Filter/JobBoardPaginationQueryFactory.php.html#29"><abbr title="Solr\Factory\Filter\JobBoardPaginationQueryFactory::createService">createService</abbr></a></td><td class="text-right">0%</td></tr> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + <tr><td><a href="Controller/Plugin/ProcessJsonRequestDelegatorFactory.php.html#24"><abbr title="Solr\Factory\Controller\Plugin\ProcessJsonRequestDelegatorFactory::__invoke">__invoke</abbr></a></td><td class="text-right">6</td></tr> + + </tbody> + </table> + </div> + </div> + </div> + <footer> + <hr/> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/d3.min.js" type="text/javascript"></script> + <script src="../_js/nv.d3.min.js" type="text/javascript"></script> + <script type="text/javascript"> +$(document).ready(function() { + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#classCoverageDistribution svg') + .datum(getCoverageDistributionData([2,0,0,0,0,0,0,0,0,0,0,1], "Class Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#methodCoverageDistribution svg') + .datum(getCoverageDistributionData([3,0,0,0,0,0,0,0,0,0,0,1], "Method Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getCoverageDistributionData(data, label) { + var labels = [ + '0%', + '0-10%', + '10-20%', + '20-30%', + '30-40%', + '40-50%', + '50-60%', + '60-70%', + '70-80%', + '80-90%', + '90-100%', + '100%' + ]; + var values = []; + $.each(labels, function(key) { + values.push({x: labels[key], y: data[key]}); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Cyclomatic Complexity'); + + d3.select('#classComplexity svg') + .datum(getComplexityData([[100,1,"<a href=\"Controller\/ConsoleControllerFactory.php.html#16\">Solr\\Factory\\Controller\\ConsoleControllerFactory<\/a>"],[0,2,"<a href=\"Controller\/Plugin\/ProcessJsonRequestDelegatorFactory.php.html#22\">Solr\\Factory\\Controller\\Plugin\\ProcessJsonRequestDelegatorFactory<\/a>"],[0,2,"<a href=\"Filter\/JobBoardPaginationQueryFactory.php.html#14\">Solr\\Factory\\Filter\\JobBoardPaginationQueryFactory<\/a>"]], 'Class Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Method Complexity'); + + d3.select('#methodComplexity svg') + .datum(getComplexityData([[100,1,"<a href=\"Controller\/ConsoleControllerFactory.php.html#18\">Solr\\Factory\\Controller\\ConsoleControllerFactory::__invoke<\/a>"],[0,2,"<a href=\"Controller\/Plugin\/ProcessJsonRequestDelegatorFactory.php.html#24\">Solr\\Factory\\Controller\\Plugin\\ProcessJsonRequestDelegatorFactory::__invoke<\/a>"],[0,1,"<a href=\"Filter\/JobBoardPaginationQueryFactory.php.html#16\">Solr\\Factory\\Filter\\JobBoardPaginationQueryFactory::__invoke<\/a>"],[0,1,"<a href=\"Filter\/JobBoardPaginationQueryFactory.php.html#29\">Solr\\Factory\\Filter\\JobBoardPaginationQueryFactory::createService<\/a>"]], 'Method Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getComplexityData(data, label) { + var values = []; + $.each(data, function(key) { + var value = Math.round(data[key][0]*100) / 100; + values.push({ + x: value, + y: data[key][1], + class: data[key][2], + size: 0.05, + shape: 'diamond' + }); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } +}); + </script> + </body> +</html> diff --git a/test/coverage/Factory/index.html b/test/coverage/Factory/index.html new file mode 100644 index 0000000..35dd8f6 --- /dev/null +++ b/test/coverage/Factory/index.html @@ -0,0 +1,147 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Factory</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item active">Factory</li> + <li class="breadcrumb-item">(<a href="dashboard.html">Dashboard</a>)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="9"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + <td colspan="3"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="danger">Total</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="29.17" aria-valuemin="0" aria-valuemax="100" style="width: 29.17%"> + <span class="sr-only">29.17% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">29.17%</div></td> + <td class="danger small"><div align="right">7 / 24</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="25.00" aria-valuemin="0" aria-valuemax="100" style="width: 25.00%"> + <span class="sr-only">25.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">25.00%</div></td> + <td class="danger small"><div align="right">1 / 4</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="33.33" aria-valuemin="0" aria-valuemax="100" style="width: 33.33%"> + <span class="sr-only">33.33% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">33.33%</div></td> + <td class="danger small"><div align="right">1 / 3</div></td> + </tr> + + <tr> + <td class="danger"><img src="../_icons/file-directory.svg" class="octicon" /><a href="Controller/index.html">Controller</a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="43.75" aria-valuemin="0" aria-valuemax="100" style="width: 43.75%"> + <span class="sr-only">43.75% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">43.75%</div></td> + <td class="danger small"><div align="right">7 / 16</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%"> + <span class="sr-only">50.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">50.00%</div></td> + <td class="danger small"><div align="right">1 / 2</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%"> + <span class="sr-only">50.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">50.00%</div></td> + <td class="danger small"><div align="right">1 / 2</div></td> + </tr> + + <tr> + <td class="danger"><img src="../_icons/file-directory.svg" class="octicon" /><a href="Filter/index.html">Filter</a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 8</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 2</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + + </tbody> + </table> + </div> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="danger"><strong>Low</strong>: 0% to 50%</span> + <span class="warning"><strong>Medium</strong>: 50% to 90%</span> + <span class="success"><strong>High</strong>: 90% to 100%</span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + </body> +</html> diff --git a/test/coverage/Filter/AbstractPaginationQuery.php.html b/test/coverage/Filter/AbstractPaginationQuery.php.html new file mode 100644 index 0000000..8407e9f --- /dev/null +++ b/test/coverage/Filter/AbstractPaginationQuery.php.html @@ -0,0 +1,254 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Filter/AbstractPaginationQuery.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Filter</a></li> + <li class="breadcrumb-item active">AbstractPaginationQuery.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="success">Total</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">6 / 6</div></td> + </tr> + + <tr> + <td class="success"><abbr title="Solr\Filter\AbstractPaginationQuery">AbstractPaginationQuery</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">6</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">6 / 6</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#34"><abbr title="filter($value, SolrDisMaxQuery $query = null, Facets $facets = null)">filter</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">3</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">6 / 6</div></td> + </tr> + + <tr> + <td class="" colspan="4"> <a href="#52"><abbr title="proxyFactory($entity, ArrayAccess $solrResult)">proxyFactory</abbr></a></td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + <td class=" small">1</td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + </tr> + + <tr> + <td class="" colspan="4"> <a href="#59"><abbr title="getRepositoryName()">getRepositoryName</abbr></a></td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + <td class=" small">1</td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + </tr> + + <tr> + <td class="" colspan="4"> <a href="#66"><abbr title="createQuery(array $params, SolrDisMaxQuery $query, Facets $facets)">createQuery</abbr></a></td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + <td class=" small">1</td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * YAWIK</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @filesource</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @copyright (c) 2013 - 2016 Cross Solution (http://cross-solution.de)</span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @license MIT</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Filter</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">SolrDisMaxQuery</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">ArrayAccess</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Zend</span><span class="default">\</span><span class="default">Filter</span><span class="default">\</span><span class="default">FilterInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Facets</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">DomainException</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="comment"> * Class AbstractPaginationQuery</span></td></tr> + <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="comment"> * @author Anthonius Munthi <me@itstoni.com></span></td></tr> + <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="comment"> * @author Miroslav Fedeleš <miroslav.fedeles@gmail.com></span></td></tr> + <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="comment"> * @since 0.26</span></td></tr> + <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="comment"> * @package Solr\Filter</span></td></tr> + <tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="keyword">abstract</span><span class="default"> </span><span class="keyword">class</span><span class="default"> </span><span class="default">AbstractPaginationQuery</span><span class="default"> </span><span class="keyword">implements</span><span class="default"> </span><span class="default">FilterInterface</span></td></tr> + <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="comment"> * Filter query based on given value</span></td></tr> + <tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="comment"> * @see \Laminas\Filter\FilterInterface::filter()</span></td></tr> + <tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">filter</span><span class="keyword">(</span><span class="default">$value</span><span class="keyword">,</span><span class="default"> </span><span class="default">SolrDisMaxQuery</span><span class="default"> </span><span class="default">$query</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">null</span><span class="keyword">,</span><span class="default"> </span><span class="default">Facets</span><span class="default"> </span><span class="default">$facets</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">null</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="4 tests cover line 36" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testFilterWithoutQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testFilterWithoutFacets</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testFilterCallCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">null</span><span class="default"> </span><span class="default">===</span><span class="default"> </span><span class="default">$query</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 37" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testFilterWithoutQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">throw</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">DomainException</span><span class="keyword">(</span><span class="default">'$query must not be null'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 40" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testFilterWithoutFacets</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testFilterCallCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">null</span><span class="default"> </span><span class="default">===</span><span class="default"> </span><span class="default">$facets</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 41" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testFilterWithoutFacets</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">throw</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">DomainException</span><span class="keyword">(</span><span class="default">'$facets must not be null'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 44" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testFilterCallCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">createQuery</span><span class="keyword">(</span><span class="default">$value</span><span class="keyword">,</span><span class="default"> </span><span class="default">$query</span><span class="keyword">,</span><span class="default"> </span><span class="default">$facets</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 45" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testFilterCallCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="comment"> * @param mixed $entity</span></td></tr> + <tr><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"><span class="comment"> * @param ArrayAccess $solrResult</span></td></tr> + <tr><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"><span class="comment"> * @return mixed Instance of proxy</span></td></tr> + <tr><td><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">abstract</span><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">proxyFactory</span><span class="keyword">(</span><span class="default">$entity</span><span class="keyword">,</span><span class="default"> </span><span class="default">ArrayAccess</span><span class="default"> </span><span class="default">$solrResult</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="comment"> * Get repository to be used for result</span></td></tr> + <tr><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"><span class="comment"> * @return string</span></td></tr> + <tr><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">abstract</span><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getRepositoryName</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"><span class="comment"> * @param array $params</span></td></tr> + <tr><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"><span class="comment"> * @param SolrDisMaxQuery $query</span></td></tr> + <tr><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"><span class="comment"> * @param Facets $facets</span></td></tr> + <tr><td><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">abstract</span><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">createQuery</span><span class="keyword">(</span><span class="keyword">array</span><span class="default"> </span><span class="default">$params</span><span class="keyword">,</span><span class="default"> </span><span class="default">SolrDisMaxQuery</span><span class="default"> </span><span class="default">$query</span><span class="keyword">,</span><span class="default"> </span><span class="default">Facets</span><span class="default"> </span><span class="default">$facets</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/popper.min.js" type="text/javascript"></script> + <script src="../_js/bootstrap.min.js" type="text/javascript"></script> + <script src="../_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/Filter/EntityToDocument/JobEntityToSolrDocument.php.html b/test/coverage/Filter/EntityToDocument/JobEntityToSolrDocument.php.html new file mode 100644 index 0000000..df96a78 --- /dev/null +++ b/test/coverage/Filter/EntityToDocument/JobEntityToSolrDocument.php.html @@ -0,0 +1,445 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Filter/EntityToDocument/JobEntityToSolrDocument.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="../index.html">Filter</a></li> + <li class="breadcrumb-item"><a href="index.html">EntityToDocument</a></li> + <li class="breadcrumb-item active">JobEntityToSolrDocument.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="danger">Total</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="66.67" aria-valuemin="0" aria-valuemax="100" style="width: 66.67%"> + <span class="sr-only">66.67% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">66.67%</div></td> + <td class="warning small"><div align="right">4 / 6</div></td> + <td class="warning small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="89.29" aria-valuemin="0" aria-valuemax="100" style="width: 89.29%"> + <span class="sr-only">89.29% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">89.29%</div></td> + <td class="warning small"><div align="right">75 / 84</div></td> + </tr> + + <tr> + <td class="danger"><abbr title="Solr\Filter\EntityToDocument\JobEntityToSolrDocument">JobEntityToSolrDocument</abbr></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="66.67" aria-valuemin="0" aria-valuemax="100" style="width: 66.67%"> + <span class="sr-only">66.67% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">66.67%</div></td> + <td class="warning small"><div align="right">4 / 6</div></td> + <td class="warning small">24.71</td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="89.29" aria-valuemin="0" aria-valuemax="100" style="width: 89.29%"> + <span class="sr-only">89.29% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">89.29%</div></td> + <td class="warning small"><div align="right">75 / 84</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#28"><abbr title="__construct($options)">__construct</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">2.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 2</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#38"><abbr title="filter($job)">filter</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">14.65</td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="85.11" aria-valuemin="0" aria-valuemax="100" style="width: 85.11%"> + <span class="sr-only">85.11% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">85.11%</div></td> + <td class="warning small"><div align="right">40 / 47</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#114"><abbr title="getDocumentIds(JobEntity $job)">getDocumentIds</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">3</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">5 / 5</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#132"><abbr title="processOrganization(JobEntity $job, SolrInputDocument $document)">processOrganization</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">2</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">8 / 8</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#148"><abbr title="processLocation(JobEntity $job, SolrInputDocument $document)">processLocation</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">3</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">21 / 21</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#181"><abbr title="getLocationDocumentId(JobEntity $job, $coordinate)">getLocationDocumentId</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * YAWIK</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @filesource</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @copyright (c) 2013 - 2016 Cross Solution (http://cross-solution.de)</span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @license MIT</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> * @author Miroslav Fedeleš <miroslav.fedeles@gmail.com></span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="comment"> * @since 0.27</span></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Filter</span><span class="default">\</span><span class="default">EntityToDocument</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Options</span><span class="default">\</span><span class="default">ModuleOptions</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Zend</span><span class="default">\</span><span class="default">Filter</span><span class="default">\</span><span class="default">FilterInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Jobs</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">Job</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">JobEntity</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">SolrInputDocument</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">InvalidArgumentException</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Bridge</span><span class="default">\</span><span class="default">Util</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Zend</span><span class="default">\</span><span class="default">Filter</span><span class="default">\</span><span class="default">StripTags</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default"> </span><span class="default">JobEntityToSolrDocument</span><span class="default"> </span><span class="keyword">implements</span><span class="default"> </span><span class="default">FilterInterface</span></td></tr> + <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="comment"> * @var $options ModuleOptions</span></td></tr> + <tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$options</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">__construct</span><span class="keyword">(</span><span class="default">$options</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">options</span><span class="keyword">=</span><span class="default">$options</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="comment"> * @see \Laminas\Filter\FilterInterface::filter()</span></td></tr> + <tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="comment"> * @param JobEntity $job</span></td></tr> + <tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="comment"> * @return SolrInputDocument</span></td></tr> + <tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">filter</span><span class="keyword">(</span><span class="default">$job</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 40" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithInvalidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">!</span><span class="default">$job</span><span class="default"> </span><span class="keyword">instanceof</span><span class="default"> </span><span class="default">JobEntity</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 41" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithInvalidJob</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">throw</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">InvalidArgumentException</span><span class="keyword">(</span><span class="default">sprintf</span><span class="keyword">(</span><span class="default">'$job must be instance of "%s"'</span><span class="keyword">,</span><span class="default"> </span><span class="default">JobEntity</span><span class="default">::</span><span class="keyword">class</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 44" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">SolrInputDocument</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 45" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'id'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$job</span><span class="default">-></span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 46" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'applyId'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$job</span><span class="default">-></span><span class="default">getApplyId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 47" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'entityName'</span><span class="keyword">,</span><span class="default"> </span><span class="default">'job'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 48" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'title'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$job</span><span class="default">-></span><span class="default">getTitle</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 49" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'applicationEmail'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$job</span><span class="default">-></span><span class="default">getContactEmail</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 50" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">$job</span><span class="default">-></span><span class="default">getLink</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 51" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'link'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$job</span><span class="default">-></span><span class="default">getLink</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 53" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">$job</span><span class="default">-></span><span class="default">getDateCreated</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 54" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'dateCreated'</span><span class="keyword">,</span><span class="default"> </span><span class="default">Util</span><span class="default">::</span><span class="default">convertDateTime</span><span class="keyword">(</span><span class="default">$job</span><span class="default">-></span><span class="default">getDateCreated</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 56" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">$job</span><span class="default">-></span><span class="default">getDateModified</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 57" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'dateModified'</span><span class="keyword">,</span><span class="default"> </span><span class="default">Util</span><span class="default">::</span><span class="default">convertDateTime</span><span class="keyword">(</span><span class="default">$job</span><span class="default">-></span><span class="default">getDateModified</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 59" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">$job</span><span class="default">-></span><span class="default">getDatePublishStart</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 60" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'datePublishStart'</span><span class="keyword">,</span><span class="default"> </span><span class="default">Util</span><span class="default">::</span><span class="default">convertDateTime</span><span class="keyword">(</span><span class="default">$job</span><span class="default">-></span><span class="default">getDatePublishStart</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 62" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">$job</span><span class="default">-></span><span class="default">getDatePublishEnd</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 63" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'datePublishEnd'</span><span class="keyword">,</span><span class="default"> </span><span class="default">Util</span><span class="default">::</span><span class="default">convertDateTime</span><span class="keyword">(</span><span class="default">$job</span><span class="default">-></span><span class="default">getDatePublishEnd</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 65" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'isActive'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$job</span><span class="default">-></span><span class="default">isActive</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 66" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'lang'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$job</span><span class="default">-></span><span class="default">getLanguage</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 67" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">processLocation</span><span class="keyword">(</span><span class="default">$job</span><span class="keyword">,</span><span class="default"> </span><span class="default">$document</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 68" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">$job</span><span class="default">-></span><span class="default">getCompany</span><span class="keyword">(</span><span class="default">false</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'organizationName'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$job</span><span class="default">-></span><span class="default">getCompany</span><span class="keyword">(</span><span class="default">false</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="70"></a><a href="#70">70</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">$job</span><span class="default">-></span><span class="default">getLogoRef</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="71"></a><a href="#71">71</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'companyLogo'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$job</span><span class="default">-></span><span class="default">getLogoRef</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 73" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span><span class="default"> </span><span class="keyword">elseif</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">!</span><span class="default">is_null</span><span class="keyword">(</span><span class="default">$job</span><span class="default">-></span><span class="default">getOrganization</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 74" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="74"></a><a href="#74">74</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">processOrganization</span><span class="keyword">(</span><span class="default">$job</span><span class="keyword">,</span><span class="default"> </span><span class="default">$document</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="75"></a><a href="#75">75</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="76"></a><a href="#76">76</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 77" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$plainText</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$job</span><span class="default">-></span><span class="default">getMetaData</span><span class="keyword">(</span><span class="default">'plainText'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 79" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">$plainText</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$html</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$plainText</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span><span class="default"> </span><span class="keyword">else</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 82" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$templateValues</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$job</span><span class="default">-></span><span class="default">getTemplateValues</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 83" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$description</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$templateValues</span><span class="default">-></span><span class="default">getDescription</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 84" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$stripTags</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">StripTags</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 85" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$stripTags</span><span class="default">-></span><span class="default">setAttributesAllowed</span><span class="keyword">(</span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">)</span><span class="default">-></span><span class="default">setTagsAllowed</span><span class="keyword">(</span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 86" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="86"></a><a href="#86">86</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$description</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$stripTags</span><span class="default">-></span><span class="default">filter</span><span class="keyword">(</span><span class="default">$description</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="87"></a><a href="#87">87</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 88" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="88"></a><a href="#88">88</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$qualification</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$stripTags</span><span class="keyword">(</span><span class="default">$templateValues</span><span class="default">-></span><span class="default">getQualifications</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 89" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$requirements</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$stripTags</span><span class="keyword">(</span><span class="default">$templateValues</span><span class="default">-></span><span class="default">getRequirements</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 90" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="90"></a><a href="#90">90</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$benefits</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$stripTags</span><span class="keyword">(</span><span class="default">$templateValues</span><span class="default">-></span><span class="default">getBenefits</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 91" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$html</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="string">"</span><span class="string">$description</span><span class="string"> </span><span class="string">"</span><span class="default"> </span><span class="keyword">.</span><span class="default"> </span><span class="default">$job</span><span class="default">-></span><span class="default">getTitle</span><span class="keyword">(</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">.</span><span class="string">"</span><span class="string"> </span><span class="string">$requirements</span><span class="string"> </span><span class="string">$qualification</span><span class="string"> </span><span class="string">$benefits</span><span class="string">"</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 94" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'html'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$html</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 96" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">foreach</span><span class="default"> </span><span class="keyword">(</span><span class="default">$job</span><span class="default">-></span><span class="default">getClassifications</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">getProfessions</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">getItems</span><span class="keyword">(</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">$profession</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span><span class="default"> </span><span class="comment">/* @var $profession \Jobs\Entity\Category */</span></td></tr> + <tr class="danger"><td><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'profession_MultiString'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$profession</span><span class="default">-></span><span class="default">getName</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="98"></a><a href="#98">98</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 99" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="99"></a><a href="#99">99</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">foreach</span><span class="default"> </span><span class="keyword">(</span><span class="default">$job</span><span class="default">-></span><span class="default">getClassifications</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">getEmploymentTypes</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">getItems</span><span class="keyword">(</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">$employmentType</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span><span class="default"> </span><span class="comment">/* @var $employmentType \Jobs\Entity\Category */</span></td></tr> + <tr class="danger"><td><div align="right"><a name="100"></a><a href="#100">100</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'employmentType_MultiString'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$employmentType</span><span class="default">-></span><span class="default">getName</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 102" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">foreach</span><span class="default"> </span><span class="keyword">(</span><span class="default">$job</span><span class="default">-></span><span class="default">getClassifications</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">getIndustries</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">getItems</span><span class="keyword">(</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">$industry</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span><span class="default"> </span><span class="comment">/* @var $employmentType \Jobs\Entity\Category */</span></td></tr> + <tr class="danger"><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'industry_MultiString'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$industry</span><span class="default">-></span><span class="default">getName</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="104"></a><a href="#104">104</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="105"></a><a href="#105">105</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="106"></a><a href="#106">106</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 107" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithValidJob</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testFilterWithJobWithOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="107"></a><a href="#107">107</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$document</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="110"></a><a href="#110">110</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="111"></a><a href="#111">111</a></div></td><td class="codeLine"><span class="comment"> * @param JobEntity $job</span></td></tr> + <tr><td><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine"><span class="comment"> * @return array</span></td></tr> + <tr><td><div align="right"><a name="113"></a><a href="#113">113</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="114"></a><a href="#114">114</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getDocumentIds</span><span class="keyword">(</span><span class="default">JobEntity</span><span class="default"> </span><span class="default">$job</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="115"></a><a href="#115">115</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 116" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testGetDocumentIds</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="116"></a><a href="#116">116</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$ids</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span><span class="default">$job</span><span class="default">-></span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="118"></a><a href="#118">118</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/* @var $location \Jobs\Entity\Location */</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 119" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testGetDocumentIds</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="119"></a><a href="#119">119</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">foreach</span><span class="default"> </span><span class="keyword">(</span><span class="default">$job</span><span class="default">-></span><span class="default">getLocations</span><span class="keyword">(</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">$location</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 120" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testGetDocumentIds</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="120"></a><a href="#120">120</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">is_object</span><span class="keyword">(</span><span class="default">$location</span><span class="default">-></span><span class="default">getCoordinates</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 121" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testGetDocumentIds</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="121"></a><a href="#121">121</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$ids</span><span class="keyword">[</span><span class="keyword">]</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">getLocationDocumentId</span><span class="keyword">(</span><span class="default">$job</span><span class="keyword">,</span><span class="default"> </span><span class="default">Util</span><span class="default">::</span><span class="default">convertLocationCoordinates</span><span class="keyword">(</span><span class="default">$location</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="122"></a><a href="#122">122</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="123"></a><a href="#123">123</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="124"></a><a href="#124">124</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 125" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testGetDocumentIds</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="125"></a><a href="#125">125</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$ids</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="126"></a><a href="#126">126</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="127"></a><a href="#127">127</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="128"></a><a href="#128">128</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="129"></a><a href="#129">129</a></div></td><td class="codeLine"><span class="comment"> * @param JobEntity $job</span></td></tr> + <tr><td><div align="right"><a name="130"></a><a href="#130">130</a></div></td><td class="codeLine"><span class="comment"> * @param SolrInputDocument $document</span></td></tr> + <tr><td><div align="right"><a name="131"></a><a href="#131">131</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="132"></a><a href="#132">132</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">processOrganization</span><span class="keyword">(</span><span class="default">JobEntity</span><span class="default"> </span><span class="default">$job</span><span class="keyword">,</span><span class="default"> </span><span class="default">SolrInputDocument</span><span class="default"> </span><span class="default">$document</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="133"></a><a href="#133">133</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 134" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="134"></a><a href="#134">134</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">!</span><span class="default">is_null</span><span class="keyword">(</span><span class="default">$job</span><span class="default">-></span><span class="default">getOrganization</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">getImage</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 135" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="135"></a><a href="#135">135</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$uri</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$job</span><span class="default">-></span><span class="default">getOrganization</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 136" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="136"></a><a href="#136">136</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">-></span><span class="default">getImage</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 137" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="137"></a><a href="#137">137</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">-></span><span class="default">getUri</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 138" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="138"></a><a href="#138">138</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'companyLogo'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$uri</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="139"></a><a href="#139">139</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 140" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="140"></a><a href="#140">140</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'organizationName'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$job</span><span class="default">-></span><span class="default">getOrganization</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">getOrganizationName</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">getName</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 141" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="141"></a><a href="#141">141</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'organizationId'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$job</span><span class="default">-></span><span class="default">getOrganization</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 142" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessOrganization</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="142"></a><a href="#142">142</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="143"></a><a href="#143">143</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="144"></a><a href="#144">144</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="145"></a><a href="#145">145</a></div></td><td class="codeLine"><span class="comment"> * @param JobEntity $job</span></td></tr> + <tr><td><div align="right"><a name="146"></a><a href="#146">146</a></div></td><td class="codeLine"><span class="comment"> * @param SolrInputDocument $document</span></td></tr> + <tr><td><div align="right"><a name="147"></a><a href="#147">147</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="148"></a><a href="#148">148</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">processLocation</span><span class="keyword">(</span><span class="default">JobEntity</span><span class="default"> </span><span class="default">$job</span><span class="keyword">,</span><span class="default"> </span><span class="default">SolrInputDocument</span><span class="default"> </span><span class="default">$document</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="149"></a><a href="#149">149</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="150"></a><a href="#150">150</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/* @var $location \Jobs\Entity\Location */</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 151" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="151"></a><a href="#151">151</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">foreach</span><span class="default"> </span><span class="keyword">(</span><span class="default">$job</span><span class="default">-></span><span class="default">getLocations</span><span class="keyword">(</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">$location</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 152" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="152"></a><a href="#152">152</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$loc</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">SolrInputDocument</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 153" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="153"></a><a href="#153">153</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$loc</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'entityName'</span><span class="keyword">,</span><span class="default"> </span><span class="default">'location'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 154" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="154"></a><a href="#154">154</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">is_object</span><span class="keyword">(</span><span class="default">$location</span><span class="default">-></span><span class="default">getCoordinates</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 155" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="155"></a><a href="#155">155</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$coordinate</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">Util</span><span class="default">::</span><span class="default">convertLocationCoordinates</span><span class="keyword">(</span><span class="default">$location</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 156" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="156"></a><a href="#156">156</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$region</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$location</span><span class="default">-></span><span class="default">getRegion</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 157" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="157"></a><a href="#157">157</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$city</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$location</span><span class="default">-></span><span class="default">getCity</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 158" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="158"></a><a href="#158">158</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$loc</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'point'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$coordinate</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 159" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="159"></a><a href="#159">159</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$loc</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'latLon'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$coordinate</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 160" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="160"></a><a href="#160">160</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'locations'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$coordinate</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 161" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="161"></a><a href="#161">161</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'points'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$coordinate</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 162" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="162"></a><a href="#162">162</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$loc</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'id'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">getLocationDocumentId</span><span class="keyword">(</span><span class="default">$job</span><span class="keyword">,</span><span class="default"> </span><span class="default">$coordinate</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 163" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="163"></a><a href="#163">163</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$loc</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'city'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$city</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 164" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="164"></a><a href="#164">164</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$loc</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'country'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$location</span><span class="default">-></span><span class="default">getCountry</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 165" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="165"></a><a href="#165">165</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$loc</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'region'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$region</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 166" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="166"></a><a href="#166">166</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$loc</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'postalCode'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$location</span><span class="default">-></span><span class="default">getPostalCode</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 167" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="167"></a><a href="#167">167</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'region_MultiString'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$region</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 168" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="168"></a><a href="#168">168</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'city_MultiString'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$city</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 169" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="169"></a><a href="#169">169</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addChildDocument</span><span class="keyword">(</span><span class="default">$loc</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="170"></a><a href="#170">170</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="171"></a><a href="#171">171</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="172"></a><a href="#172">172</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 173" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="173"></a><a href="#173">173</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'location'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$job</span><span class="default">-></span><span class="default">getLocation</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 174" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="174"></a><a href="#174">174</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="175"></a><a href="#175">175</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="176"></a><a href="#176">176</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="177"></a><a href="#177">177</a></div></td><td class="codeLine"><span class="comment"> * @param JobEntity $job</span></td></tr> + <tr><td><div align="right"><a name="178"></a><a href="#178">178</a></div></td><td class="codeLine"><span class="comment"> * @param string $coordinate</span></td></tr> + <tr><td><div align="right"><a name="179"></a><a href="#179">179</a></div></td><td class="codeLine"><span class="comment"> * @return string</span></td></tr> + <tr><td><div align="right"><a name="180"></a><a href="#180">180</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="181"></a><a href="#181">181</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getLocationDocumentId</span><span class="keyword">(</span><span class="default">JobEntity</span><span class="default"> </span><span class="default">$job</span><span class="keyword">,</span><span class="default"> </span><span class="default">$coordinate</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="182"></a><a href="#182">182</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 183" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testGetDocumentIds</li><li class="covered-by-large-tests">SolrTest\Filter\EntityToDocument\JobEntityToSolrDocumentTest::testProcessLocation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="183"></a><a href="#183">183</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$job</span><span class="default">-></span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">.</span><span class="default"> </span><span class="default">'-'</span><span class="default"> </span><span class="keyword">.</span><span class="default"> </span><span class="default">$coordinate</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="184"></a><a href="#184">184</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="185"></a><a href="#185">185</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="../../_js/jquery.min.js" type="text/javascript"></script> + <script src="../../_js/popper.min.js" type="text/javascript"></script> + <script src="../../_js/bootstrap.min.js" type="text/javascript"></script> + <script src="../../_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/Filter/EntityToDocument/dashboard.html b/test/coverage/Filter/EntityToDocument/dashboard.html new file mode 100644 index 0000000..f6a1ca7 --- /dev/null +++ b/test/coverage/Filter/EntityToDocument/dashboard.html @@ -0,0 +1,290 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Dashboard for /home/cbleek/AtomProjects/Solr/src/Filter/EntityToDocument</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../../_css/nv.d3.min.css" rel="stylesheet" type="text/css"> + <link href="../../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="../index.html">Filter</a></li> + <li class="breadcrumb-item"><a href="index.html">EntityToDocument</a></li> + <li class="breadcrumb-item active">(Dashboard)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <h2>Classes</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="classCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="classComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + <tr><td><a href="JobEntityToSolrDocument.php.html#21">Solr\Filter\EntityToDocument\JobEntityToSolrDocument</a></td><td class="text-right">89%</td></tr> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + <tr><td><a href="JobEntityToSolrDocument.php.html#21">Solr\Filter\EntityToDocument\JobEntityToSolrDocument</a></td><td class="text-right">24</td></tr> + + </tbody> + </table> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <h2>Methods</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="methodCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="methodComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + <tr><td><a href="JobEntityToSolrDocument.php.html#28"><abbr title="Solr\Filter\EntityToDocument\JobEntityToSolrDocument::__construct">__construct</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="JobEntityToSolrDocument.php.html#38"><abbr title="Solr\Filter\EntityToDocument\JobEntityToSolrDocument::filter">filter</abbr></a></td><td class="text-right">85%</td></tr> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + <tr><td><a href="JobEntityToSolrDocument.php.html#38"><abbr title="Solr\Filter\EntityToDocument\JobEntityToSolrDocument::filter">filter</abbr></a></td><td class="text-right">14</td></tr> + + </tbody> + </table> + </div> + </div> + </div> + <footer> + <hr/> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + <script src="../../_js/jquery.min.js" type="text/javascript"></script> + <script src="../../_js/d3.min.js" type="text/javascript"></script> + <script src="../../_js/nv.d3.min.js" type="text/javascript"></script> + <script type="text/javascript"> +$(document).ready(function() { + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#classCoverageDistribution svg') + .datum(getCoverageDistributionData([0,0,0,0,0,0,0,0,0,1,0,0], "Class Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#methodCoverageDistribution svg') + .datum(getCoverageDistributionData([1,0,0,0,0,0,0,0,0,1,0,4], "Method Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getCoverageDistributionData(data, label) { + var labels = [ + '0%', + '0-10%', + '10-20%', + '20-30%', + '30-40%', + '40-50%', + '50-60%', + '60-70%', + '70-80%', + '80-90%', + '90-100%', + '100%' + ]; + var values = []; + $.each(labels, function(key) { + values.push({x: labels[key], y: data[key]}); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Cyclomatic Complexity'); + + d3.select('#classComplexity svg') + .datum(getComplexityData([[89.28571428571429,24,"<a href=\"JobEntityToSolrDocument.php.html#21\">Solr\\Filter\\EntityToDocument\\JobEntityToSolrDocument<\/a>"]], 'Class Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Method Complexity'); + + d3.select('#methodComplexity svg') + .datum(getComplexityData([[0,1,"<a href=\"JobEntityToSolrDocument.php.html#28\">Solr\\Filter\\EntityToDocument\\JobEntityToSolrDocument::__construct<\/a>"],[85.1063829787234,14,"<a href=\"JobEntityToSolrDocument.php.html#38\">Solr\\Filter\\EntityToDocument\\JobEntityToSolrDocument::filter<\/a>"],[100,3,"<a href=\"JobEntityToSolrDocument.php.html#114\">Solr\\Filter\\EntityToDocument\\JobEntityToSolrDocument::getDocumentIds<\/a>"],[100,2,"<a href=\"JobEntityToSolrDocument.php.html#132\">Solr\\Filter\\EntityToDocument\\JobEntityToSolrDocument::processOrganization<\/a>"],[100,3,"<a href=\"JobEntityToSolrDocument.php.html#148\">Solr\\Filter\\EntityToDocument\\JobEntityToSolrDocument::processLocation<\/a>"],[100,1,"<a href=\"JobEntityToSolrDocument.php.html#181\">Solr\\Filter\\EntityToDocument\\JobEntityToSolrDocument::getLocationDocumentId<\/a>"]], 'Method Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getComplexityData(data, label) { + var values = []; + $.each(data, function(key) { + var value = Math.round(data[key][0]*100) / 100; + values.push({ + x: value, + y: data[key][1], + class: data[key][2], + size: 0.05, + shape: 'diamond' + }); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } +}); + </script> + </body> +</html> diff --git a/test/coverage/Filter/EntityToDocument/index.html b/test/coverage/Filter/EntityToDocument/index.html new file mode 100644 index 0000000..449f7ed --- /dev/null +++ b/test/coverage/Filter/EntityToDocument/index.html @@ -0,0 +1,120 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Filter/EntityToDocument</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="../index.html">Filter</a></li> + <li class="breadcrumb-item active">EntityToDocument</li> + <li class="breadcrumb-item">(<a href="dashboard.html">Dashboard</a>)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="9"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + <td colspan="3"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="warning">Total</td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="89.29" aria-valuemin="0" aria-valuemax="100" style="width: 89.29%"> + <span class="sr-only">89.29% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">89.29%</div></td> + <td class="warning small"><div align="right">75 / 84</div></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="66.67" aria-valuemin="0" aria-valuemax="100" style="width: 66.67%"> + <span class="sr-only">66.67% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">66.67%</div></td> + <td class="warning small"><div align="right">4 / 6</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + <tr> + <td class="warning"><img src="../../_icons/file-code.svg" class="octicon" /><a href="JobEntityToSolrDocument.php.html">JobEntityToSolrDocument.php</a></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="89.29" aria-valuemin="0" aria-valuemax="100" style="width: 89.29%"> + <span class="sr-only">89.29% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">89.29%</div></td> + <td class="warning small"><div align="right">75 / 84</div></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="66.67" aria-valuemin="0" aria-valuemax="100" style="width: 66.67%"> + <span class="sr-only">66.67% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">66.67%</div></td> + <td class="warning small"><div align="right">4 / 6</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + + </tbody> + </table> + </div> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="danger"><strong>Low</strong>: 0% to 50%</span> + <span class="warning"><strong>Medium</strong>: 50% to 90%</span> + <span class="success"><strong>High</strong>: 90% to 100%</span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + </body> +</html> diff --git a/test/coverage/Filter/JobBoardPaginationQuery.php.html b/test/coverage/Filter/JobBoardPaginationQuery.php.html new file mode 100644 index 0000000..1df675b --- /dev/null +++ b/test/coverage/Filter/JobBoardPaginationQuery.php.html @@ -0,0 +1,491 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Filter/JobBoardPaginationQuery.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Filter</a></li> + <li class="breadcrumb-item active">JobBoardPaginationQuery.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="danger">Total</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="71.43" aria-valuemin="0" aria-valuemax="100" style="width: 71.43%"> + <span class="sr-only">71.43% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">71.43%</div></td> + <td class="warning small"><div align="right">5 / 7</div></td> + <td class="warning small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="89.41" aria-valuemin="0" aria-valuemax="100" style="width: 89.41%"> + <span class="sr-only">89.41% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">89.41%</div></td> + <td class="warning small"><div align="right">76 / 85</div></td> + </tr> + + <tr> + <td class="danger"><abbr title="Solr\Filter\JobBoardPaginationQuery">JobBoardPaginationQuery</abbr></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="71.43" aria-valuemin="0" aria-valuemax="100" style="width: 71.43%"> + <span class="sr-only">71.43% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">71.43%</div></td> + <td class="warning small"><div align="right">5 / 7</div></td> + <td class="warning small">26.80</td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="89.41" aria-valuemin="0" aria-valuemax="100" style="width: 89.41%"> + <span class="sr-only">89.41% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">89.41%</div></td> + <td class="warning small"><div align="right">76 / 85</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#40"><abbr title="__construct(ModuleOptions $options)">__construct</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#48"><abbr title="createQuery(array $params, SolrDisMaxQuery $query, Facets $facets)">createQuery</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">14.23</td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="89.39" aria-valuemin="0" aria-valuemax="100" style="width: 89.39%"> + <span class="sr-only">89.39% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">89.39%</div></td> + <td class="warning small"><div align="right">59 / 66</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#168"><abbr title="proxyFactory($entity, ArrayAccess $solrResult)">proxyFactory</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#176"><abbr title="getRepositoryName()">getRepositoryName</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#181"><abbr title="configureSorts(SolrDisMaxQuery $query)">configureSorts</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">2</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">3 / 3</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#188"><abbr title="configureFilterQuery(SolrDisMaxQuery $query)">configureFilterQuery</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">4</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">7 / 7</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#201"><abbr title="configureBoostQuery(SolrDisMaxQuery $query)">configureBoostQuery</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">3.58</td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="60.00" aria-valuemin="0" aria-valuemax="100" style="width: 60.00%"> + <span class="sr-only">60.00% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">60.00%</div></td> + <td class="warning small"><div align="right">3 / 5</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * YAWIK</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @filesource</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @copyright (c) 2013 - 2016 Cross Solution (http://cross-solution.de)</span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @license MIT</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Filter</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Options</span><span class="default">\</span><span class="default">ModuleOptions</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Jobs</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">Location</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Jobs</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">Job</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Bridge</span><span class="default">\</span><span class="default">Util</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">JobProxy</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">SolrDisMaxQuery</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">SolrQuery</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">ArrayAccess</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Facets</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">DateTime</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="comment"> * Class JobBoardPaginationQuery</span></td></tr> + <tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="comment"> * @author Anthonius Munthi <me@itstoni.com></span></td></tr> + <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="comment"> * @author Miroslav Fedeleš <miroslav.fedeles@gmail.com></span></td></tr> + <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="comment"> * @author Mathias Gelhausen <gelhausen@cross-solution.de></span></td></tr> + <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default"> </span><span class="default">JobBoardPaginationQuery</span><span class="default"> </span><span class="keyword">extends</span><span class="default"> </span><span class="default">AbstractPaginationQuery</span></td></tr> + <tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="comment"> * @var ModuleOptions $options</span></td></tr> + <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$options</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="comment"> * @param $options</span></td></tr> + <tr><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">__construct</span><span class="keyword">(</span><span class="default">ModuleOptions</span><span class="default"> </span><span class="default">$options</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="7 tests cover line 42" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testFilterWithoutQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testFilterWithoutFacets</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testFilterCallCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testProxyFactory</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testGetRepositoryName</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">options</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$options</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="7 tests cover line 43" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testFilterWithoutQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testFilterWithoutFacets</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testFilterCallCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testProxyFactory</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testGetRepositoryName</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="comment"> * @inheritdoc</span></td></tr> + <tr><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">createQuery</span><span class="keyword">(</span><span class="keyword">array</span><span class="default"> </span><span class="default">$params</span><span class="keyword">,</span><span class="default"> </span><span class="default">SolrDisMaxQuery</span><span class="default"> </span><span class="default">$query</span><span class="keyword">,</span><span class="default"> </span><span class="default">Facets</span><span class="default"> </span><span class="default">$facets</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 50" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$search</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$params</span><span class="keyword">[</span><span class="default">$this</span><span class="default">-></span><span class="default">options</span><span class="default">-></span><span class="default">getParameterName</span><span class="keyword">(</span><span class="default">ModuleOptions</span><span class="default">::</span><span class="default">FIELD_QUERY</span><span class="keyword">)</span><span class="keyword">]</span><span class="keyword">)</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 51" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">?</span><span class="default"> </span><span class="default">trim</span><span class="keyword">(</span><span class="default">$params</span><span class="keyword">[</span><span class="default">$this</span><span class="default">-></span><span class="default">options</span><span class="default">-></span><span class="default">getParameterName</span><span class="keyword">(</span><span class="default">ModuleOptions</span><span class="default">::</span><span class="default">FIELD_QUERY</span><span class="keyword">)</span><span class="keyword">]</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">:</span><span class="default"> </span><span class="default">''</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 53" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">!</span><span class="keyword">empty</span><span class="keyword">(</span><span class="default">$search</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 54" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$q</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$search</span><span class="keyword">;</span><span class="default"> </span><span class="comment">//\SolrUtils::escapeQueryChars($search);</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 55" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">addSortField</span><span class="keyword">(</span><span class="default">'score'</span><span class="keyword">,</span><span class="default"> </span><span class="default">SolrQuery</span><span class="default">::</span><span class="default">ORDER_DESC</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 56" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">addSortField</span><span class="keyword">(</span><span class="default">'title'</span><span class="keyword">,</span><span class="default"> </span><span class="default">SolrQuery</span><span class="default">::</span><span class="default">ORDER_ASC</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 57" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">addQueryField</span><span class="keyword">(</span><span class="default">'title'</span><span class="keyword">,</span><span class="default"> </span><span class="default">'4'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 58" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">addQueryField</span><span class="keyword">(</span><span class="default">'text'</span><span class="keyword">,</span><span class="default"> </span><span class="default">'1'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 59" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">addQueryField</span><span class="keyword">(</span><span class="default">'organizationName'</span><span class="keyword">,</span><span class="default"> </span><span class="default">'2'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 60" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">addQueryField</span><span class="keyword">(</span><span class="default">'location'</span><span class="keyword">,</span><span class="default"> </span><span class="default">'0.2'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 61" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">setMinimumMatch</span><span class="keyword">(</span><span class="default">2</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span><span class="default"> </span><span class="keyword">else</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 63" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$q</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">'*:*'</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 64" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">configureSorts</span><span class="keyword">(</span><span class="default">$query</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 67" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">setQuery</span><span class="keyword">(</span><span class="default">$q</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 68" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">addFilterQuery</span><span class="keyword">(</span><span class="default">'entityName:job'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 69" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">addFilterQuery</span><span class="keyword">(</span><span class="default">'isActive:1'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 70" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="70"></a><a href="#70">70</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'*'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="71"></a><a href="#71">71</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 72" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$params</span><span class="keyword">[</span><span class="default">$this</span><span class="default">-></span><span class="default">options</span><span class="default">-></span><span class="default">getParameterName</span><span class="keyword">(</span><span class="default">ModuleOptions</span><span class="default">::</span><span class="default">FIELD_LOCATION</span><span class="keyword">)</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/* @var Location $location */</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 74" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="74"></a><a href="#74">74</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$location</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$params</span><span class="keyword">[</span><span class="default">$this</span><span class="default">-></span><span class="default">options</span><span class="default">-></span><span class="default">getParameterName</span><span class="keyword">(</span><span class="default">ModuleOptions</span><span class="default">::</span><span class="default">FIELD_LOCATION</span><span class="keyword">)</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 75" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="75"></a><a href="#75">75</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">is_object</span><span class="keyword">(</span><span class="default">$location</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">and</span><span class="default"> </span><span class="default">is_object</span><span class="keyword">(</span><span class="default">$location</span><span class="default">-></span><span class="default">getCoordinates</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 76" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="76"></a><a href="#76">76</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$coordinate</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">Util</span><span class="default">::</span><span class="default">convertLocationCoordinates</span><span class="keyword">(</span><span class="default">$location</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span><span class="default"> </span><span class="keyword">elseif</span><span class="default"> </span><span class="keyword">(</span><span class="default">preg_match</span><span class="keyword">(</span><span class="default">'/^c:[0-9]+,[0-9]+:[0-9]+,[0-9]+/'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$location</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$coordinate</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">Util</span><span class="default">::</span><span class="default">convertLocationString</span><span class="keyword">(</span><span class="default">$location</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 80" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$coordinate</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 81" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">addFilterQuery</span><span class="keyword">(</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 82" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">sprintf</span><span class="keyword">(</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 83" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'{!parent which="entityName:job" childQuery="entityName:location"}{!geofilt pt=%s sfield=point d=%d score="kilometers"}'</span><span class="keyword">,</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 84" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$coordinate</span><span class="keyword">,</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 85" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$params</span><span class="keyword">[</span><span class="default">$this</span><span class="default">-></span><span class="default">options</span><span class="default">-></span><span class="default">getParameterName</span><span class="keyword">(</span><span class="default">ModuleOptions</span><span class="default">::</span><span class="default">FIELD_DISTANCE</span><span class="keyword">)</span><span class="keyword">]</span></td></tr> + <tr><td><div align="right"><a name="86"></a><a href="#86">86</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="87"></a><a href="#87">87</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 88" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="88"></a><a href="#88">88</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">addParam</span><span class="keyword">(</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 89" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'locations.q'</span><span class="keyword">,</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 90" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="90"></a><a href="#90">90</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">sprintf</span><span class="keyword">(</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 91" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'entityName:location AND {!terms f=_root_ v=$row.id} AND {!geofilt pt=%s sfield=point d=%s}'</span><span class="keyword">,</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 92" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$coordinate</span><span class="keyword">,</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 93" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$params</span><span class="keyword">[</span><span class="default">$this</span><span class="default">-></span><span class="default">options</span><span class="default">-></span><span class="default">getParameterName</span><span class="keyword">(</span><span class="default">ModuleOptions</span><span class="default">::</span><span class="default">FIELD_DISTANCE</span><span class="keyword">)</span><span class="keyword">]</span></td></tr> + <tr><td><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">)</span><span class="keyword">;</span><span class="default"> </span><span class="comment">// join</span></td></tr> + <tr><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 97" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'locations:[subquery]'</span><span class="keyword">)</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 98" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="98"></a><a href="#98">98</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'distance:min(geodist(points,'</span><span class="default"> </span><span class="keyword">.</span><span class="default"> </span><span class="default">$coordinate</span><span class="default"> </span><span class="keyword">.</span><span class="default"> </span><span class="default">'))'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="99"></a><a href="#99">99</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 100" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="100"></a><a href="#100">100</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">addField</span><span class="keyword">(</span><span class="default">'score'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 104" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="104"></a><a href="#104">104</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$params</span><span class="keyword">[</span><span class="default">$this</span><span class="default">-></span><span class="default">options</span><span class="default">-></span><span class="default">getParameterName</span><span class="keyword">(</span><span class="default">ModuleOptions</span><span class="default">::</span><span class="default">FIELD_ORGANIZATION</span><span class="keyword">)</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="105"></a><a href="#105">105</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">addFilterQuery</span><span class="keyword">(</span></td></tr> + <tr class="danger"><td><div align="right"><a name="106"></a><a href="#106">106</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">sprintf</span><span class="keyword">(</span></td></tr> + <tr class="danger"><td><div align="right"><a name="107"></a><a href="#107">107</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">"organizationName:'%s'"</span><span class="keyword">,</span></td></tr> + <tr class="danger"><td><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">\</span><span class="default">SolrUtils</span><span class="default">::</span><span class="default">escapeQueryChars</span><span class="keyword">(</span></td></tr> + <tr><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$params</span><span class="keyword">[</span></td></tr> + <tr class="danger"><td><div align="right"><a name="110"></a><a href="#110">110</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">options</span><span class="default">-></span><span class="default">getParameterName</span><span class="keyword">(</span><span class="default">ModuleOptions</span><span class="default">::</span><span class="default">FIELD_ORGANIZATION</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="111"></a><a href="#111">111</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">]</span></td></tr> + <tr><td><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="113"></a><a href="#113">113</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="114"></a><a href="#114">114</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="115"></a><a href="#115">115</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="116"></a><a href="#116">116</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 117" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$params</span><span class="keyword">[</span><span class="default">'publishedSince'</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 118" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="118"></a><a href="#118">118</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$publishedSince</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$params</span><span class="keyword">[</span><span class="default">'publishedSince'</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="119"></a><a href="#119">119</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 120" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="120"></a><a href="#120">120</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">!</span><span class="default">$publishedSince</span><span class="default"> </span><span class="keyword">instanceof</span><span class="default"> </span><span class="default">DateTime</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 121" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="121"></a><a href="#121">121</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$publishedSince</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">DateTime</span><span class="keyword">(</span><span class="default">$publishedSince</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="122"></a><a href="#122">122</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="123"></a><a href="#123">123</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 124" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="124"></a><a href="#124">124</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">addFilterQuery</span><span class="keyword">(</span><span class="default">sprintf</span><span class="keyword">(</span><span class="default">'datePublishStart:[%s TO NOW]'</span><span class="keyword">,</span><span class="default"> </span><span class="default">Util</span><span class="default">::</span><span class="default">convertDateTime</span><span class="keyword">(</span><span class="default">$publishedSince</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="125"></a><a href="#125">125</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="126"></a><a href="#126">126</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="127"></a><a href="#127">127</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// boost newest jobs</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 128" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="128"></a><a href="#128">128</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">addParam</span><span class="keyword">(</span><span class="default">'bf'</span><span class="keyword">,</span><span class="default"> </span><span class="default">'recip(abs(ms(NOW/HOUR,datePublishStart)),3.16e-11,1,.1)'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="129"></a><a href="#129">129</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="130"></a><a href="#130">130</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// adds an additional 'highlights' section into the result set</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 131" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="131"></a><a href="#131">131</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">setHighlight</span><span class="keyword">(</span><span class="default">true</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 132" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="132"></a><a href="#132">132</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">addHighlightField</span><span class="keyword">(</span><span class="default">'title'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="133"></a><a href="#133">133</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 134" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="134"></a><a href="#134">134</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">setFacetLimit</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">options</span><span class="default">-></span><span class="default">getFacetLimit</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="135"></a><a href="#135">135</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 136" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="136"></a><a href="#136">136</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">foreach</span><span class="default"> </span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">options</span><span class="default">-></span><span class="default">getFacetFields</span><span class="keyword">(</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">$facetField</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span><span class="default"> </span><span class="comment">// facets</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 137" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="137"></a><a href="#137">137</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$facets</span><span class="default">-></span><span class="default">addDefinition</span><span class="keyword">(</span><span class="default">$facetField</span><span class="keyword">[</span><span class="default">'name'</span><span class="keyword">]</span><span class="keyword">,</span><span class="default"> </span><span class="default">$facetField</span><span class="keyword">[</span><span class="default">'label'</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="138"></a><a href="#138">138</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="139"></a><a href="#139">139</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 140" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="140"></a><a href="#140">140</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">configureFilterQuery</span><span class="keyword">(</span><span class="default">$query</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="141"></a><a href="#141">141</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 142" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="142"></a><a href="#142">142</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">configureBoostQuery</span><span class="keyword">(</span><span class="default">$query</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="143"></a><a href="#143">143</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 144" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="144"></a><a href="#144">144</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$facets</span><span class="default">-></span><span class="default">setParams</span><span class="keyword">(</span><span class="default">$params</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 145" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="145"></a><a href="#145">145</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$facets</span><span class="default">-></span><span class="default">setupQuery</span><span class="keyword">(</span><span class="default">$query</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="146"></a><a href="#146">146</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 147" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="147"></a><a href="#147">147</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">setFacetMinCount</span><span class="keyword">(</span><span class="default">1</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="148"></a><a href="#148">148</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="149"></a><a href="#149">149</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/*</span></td></tr> + <tr><td><div align="right"><a name="150"></a><a href="#150">150</a></div></td><td class="codeLine"><span class="comment"> * Add support for the 'publishedSince' parameter used by the JobsByMail-Module</span></td></tr> + <tr><td><div align="right"><a name="151"></a><a href="#151">151</a></div></td><td class="codeLine"><span class="comment"> * This parameter is used to provide the date when the last mail was send.</span></td></tr> + <tr><td><div align="right"><a name="152"></a><a href="#152">152</a></div></td><td class="codeLine"><span class="comment"> * So we want to only find jobs which are newer...</span></td></tr> + <tr><td><div align="right"><a name="153"></a><a href="#153">153</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 154" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="154"></a><a href="#154">154</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$params</span><span class="keyword">[</span><span class="default">'publishedSince'</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 155" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="155"></a><a href="#155">155</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$publishedSince</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$params</span><span class="keyword">[</span><span class="default">'publishedSince'</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="156"></a><a href="#156">156</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 157" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="157"></a><a href="#157">157</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">!</span><span class="default">$publishedSince</span><span class="default"> </span><span class="keyword">instanceof</span><span class="default"> </span><span class="default">\</span><span class="default">DateTime</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 158" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="158"></a><a href="#158">158</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$publishedSince</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">\</span><span class="default">DateTime</span><span class="keyword">(</span><span class="default">$publishedSince</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="159"></a><a href="#159">159</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="160"></a><a href="#160">160</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 161" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="161"></a><a href="#161">161</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">addFilterQuery</span><span class="keyword">(</span><span class="default">'datePublishStart:['</span><span class="default"> </span><span class="keyword">.</span><span class="default"> </span><span class="default">Util</span><span class="default">::</span><span class="default">convertDateTime</span><span class="keyword">(</span><span class="default">$publishedSince</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">.</span><span class="default"> </span><span class="default">' TO * ]'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="162"></a><a href="#162">162</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 163" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="163"></a><a href="#163">163</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="164"></a><a href="#164">164</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="165"></a><a href="#165">165</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="166"></a><a href="#166">166</a></div></td><td class="codeLine"><span class="comment"> * @see \Solr\Filter\AbstractPaginationQuery::proxyFactory()</span></td></tr> + <tr><td><div align="right"><a name="167"></a><a href="#167">167</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="168"></a><a href="#168">168</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">proxyFactory</span><span class="keyword">(</span><span class="default">$entity</span><span class="keyword">,</span><span class="default"> </span><span class="default">ArrayAccess</span><span class="default"> </span><span class="default">$solrResult</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="169"></a><a href="#169">169</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 170" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testProxyFactory</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="170"></a><a href="#170">170</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">JobProxy</span><span class="keyword">(</span><span class="default">$entity</span><span class="keyword">,</span><span class="default"> </span><span class="default">$solrResult</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="171"></a><a href="#171">171</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="172"></a><a href="#172">172</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="173"></a><a href="#173">173</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="174"></a><a href="#174">174</a></div></td><td class="codeLine"><span class="comment"> * @see \Solr\Filter\AbstractPaginationQuery::getRepositoryName()</span></td></tr> + <tr><td><div align="right"><a name="175"></a><a href="#175">175</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="176"></a><a href="#176">176</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getRepositoryName</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="177"></a><a href="#177">177</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 178" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testGetRepositoryName</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="178"></a><a href="#178">178</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">'Jobs/Job'</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="179"></a><a href="#179">179</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="180"></a><a href="#180">180</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="181"></a><a href="#181">181</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">private</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">configureSorts</span><span class="keyword">(</span><span class="default">SolrDisMaxQuery</span><span class="default"> </span><span class="default">$query</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="182"></a><a href="#182">182</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 183" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="183"></a><a href="#183">183</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">foreach</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">options</span><span class="default">-></span><span class="default">getSorts</span><span class="keyword">(</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">$fieldName</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">$order</span><span class="keyword">)</span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 184" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="184"></a><a href="#184">184</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">addSortField</span><span class="keyword">(</span><span class="default">$fieldName</span><span class="keyword">,</span><span class="default"> </span><span class="default">$order</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="185"></a><a href="#185">185</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 186" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="186"></a><a href="#186">186</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="187"></a><a href="#187">187</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="188"></a><a href="#188">188</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">private</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">configureFilterQuery</span><span class="keyword">(</span><span class="default">SolrDisMaxQuery</span><span class="default"> </span><span class="default">$query</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="189"></a><a href="#189">189</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 190" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="190"></a><a href="#190">190</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$filters</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">options</span><span class="default">-></span><span class="default">getFilterQueries</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="191"></a><a href="#191">191</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 192" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="192"></a><a href="#192">192</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">foreach</span><span class="keyword">(</span><span class="default">$filters</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">$filter</span><span class="keyword">)</span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 193" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="193"></a><a href="#193">193</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="keyword">(</span><span class="default">is_scalar</span><span class="keyword">(</span><span class="default">$filter</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 194" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="194"></a><a href="#194">194</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">addFilterQuery</span><span class="keyword">(</span><span class="default">$filter</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 195" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="195"></a><a href="#195">195</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span><span class="keyword">elseif</span><span class="keyword">(</span><span class="default">is_callable</span><span class="keyword">(</span><span class="default">$filter</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 196" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="196"></a><a href="#196">196</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">call_user_func_array</span><span class="keyword">(</span><span class="default">$filter</span><span class="keyword">,</span><span class="keyword">[</span><span class="default">$query</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="197"></a><a href="#197">197</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="198"></a><a href="#198">198</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 199" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="199"></a><a href="#199">199</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="200"></a><a href="#200">200</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="201"></a><a href="#201">201</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">private</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">configureBoostQuery</span><span class="keyword">(</span><span class="default">SolrDisMaxQuery</span><span class="default"> </span><span class="default">$query</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="202"></a><a href="#202">202</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 203" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="203"></a><a href="#203">203</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$filters</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">options</span><span class="default">-></span><span class="default">getBoostQueries</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="204"></a><a href="#204">204</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 205" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="205"></a><a href="#205">205</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">foreach</span><span class="keyword">(</span><span class="default">$filters</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">$filter</span><span class="keyword">)</span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="206"></a><a href="#206">206</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="keyword">(</span><span class="default">is_scalar</span><span class="keyword">(</span><span class="default">$filter</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="207"></a><a href="#207">207</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">addParam</span><span class="keyword">(</span><span class="default">'bq'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$filter</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="208"></a><a href="#208">208</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="209"></a><a href="#209">209</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 210" data-content="<ul><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQuery</li><li class="covered-by-large-tests">SolrTest\Filter\JobBoardPaginationQueryTest::testCreateQueryWithFilterQueries</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="210"></a><a href="#210">210</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="211"></a><a href="#211">211</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/popper.min.js" type="text/javascript"></script> + <script src="../_js/bootstrap.min.js" type="text/javascript"></script> + <script src="../_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/Filter/dashboard.html b/test/coverage/Filter/dashboard.html new file mode 100644 index 0000000..18cbc21 --- /dev/null +++ b/test/coverage/Filter/dashboard.html @@ -0,0 +1,295 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Dashboard for /home/cbleek/AtomProjects/Solr/src/Filter</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/nv.d3.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Filter</a></li> + <li class="breadcrumb-item active">(Dashboard)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <h2>Classes</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="classCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="classComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + <tr><td><a href="EntityToDocument/JobEntityToSolrDocument.php.html#21">Solr\Filter\EntityToDocument\JobEntityToSolrDocument</a></td><td class="text-right">89%</td></tr> + <tr><td><a href="JobBoardPaginationQuery.php.html#30">Solr\Filter\JobBoardPaginationQuery</a></td><td class="text-right">89%</td></tr> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + <tr><td><a href="JobBoardPaginationQuery.php.html#30">Solr\Filter\JobBoardPaginationQuery</a></td><td class="text-right">26</td></tr> + <tr><td><a href="EntityToDocument/JobEntityToSolrDocument.php.html#21">Solr\Filter\EntityToDocument\JobEntityToSolrDocument</a></td><td class="text-right">24</td></tr> + + </tbody> + </table> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <h2>Methods</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="methodCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="methodComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + <tr><td><a href="EntityToDocument/JobEntityToSolrDocument.php.html#28"><abbr title="Solr\Filter\EntityToDocument\JobEntityToSolrDocument::__construct">__construct</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="JobBoardPaginationQuery.php.html#201"><abbr title="Solr\Filter\JobBoardPaginationQuery::configureBoostQuery">configureBoostQuery</abbr></a></td><td class="text-right">60%</td></tr> + <tr><td><a href="EntityToDocument/JobEntityToSolrDocument.php.html#38"><abbr title="Solr\Filter\EntityToDocument\JobEntityToSolrDocument::filter">filter</abbr></a></td><td class="text-right">85%</td></tr> + <tr><td><a href="JobBoardPaginationQuery.php.html#48"><abbr title="Solr\Filter\JobBoardPaginationQuery::createQuery">createQuery</abbr></a></td><td class="text-right">89%</td></tr> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + <tr><td><a href="EntityToDocument/JobEntityToSolrDocument.php.html#38"><abbr title="Solr\Filter\EntityToDocument\JobEntityToSolrDocument::filter">filter</abbr></a></td><td class="text-right">14</td></tr> + <tr><td><a href="JobBoardPaginationQuery.php.html#48"><abbr title="Solr\Filter\JobBoardPaginationQuery::createQuery">createQuery</abbr></a></td><td class="text-right">14</td></tr> + <tr><td><a href="JobBoardPaginationQuery.php.html#201"><abbr title="Solr\Filter\JobBoardPaginationQuery::configureBoostQuery">configureBoostQuery</abbr></a></td><td class="text-right">3</td></tr> + + </tbody> + </table> + </div> + </div> + </div> + <footer> + <hr/> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/d3.min.js" type="text/javascript"></script> + <script src="../_js/nv.d3.min.js" type="text/javascript"></script> + <script type="text/javascript"> +$(document).ready(function() { + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#classCoverageDistribution svg') + .datum(getCoverageDistributionData([0,0,0,0,0,0,0,0,0,2,0,1], "Class Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#methodCoverageDistribution svg') + .datum(getCoverageDistributionData([1,0,0,0,0,0,0,1,0,2,0,13], "Method Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getCoverageDistributionData(data, label) { + var labels = [ + '0%', + '0-10%', + '10-20%', + '20-30%', + '30-40%', + '40-50%', + '50-60%', + '60-70%', + '70-80%', + '80-90%', + '90-100%', + '100%' + ]; + var values = []; + $.each(labels, function(key) { + values.push({x: labels[key], y: data[key]}); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Cyclomatic Complexity'); + + d3.select('#classComplexity svg') + .datum(getComplexityData([[100,6,"<a href=\"AbstractPaginationQuery.php.html#26\">Solr\\Filter\\AbstractPaginationQuery<\/a>"],[89.28571428571429,24,"<a href=\"EntityToDocument\/JobEntityToSolrDocument.php.html#21\">Solr\\Filter\\EntityToDocument\\JobEntityToSolrDocument<\/a>"],[89.41176470588236,26,"<a href=\"JobBoardPaginationQuery.php.html#30\">Solr\\Filter\\JobBoardPaginationQuery<\/a>"]], 'Class Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Method Complexity'); + + d3.select('#methodComplexity svg') + .datum(getComplexityData([[100,3,"<a href=\"AbstractPaginationQuery.php.html#34\">Solr\\Filter\\AbstractPaginationQuery::filter<\/a>"],[100,1,"<a href=\"AbstractPaginationQuery.php.html#52\">Solr\\Filter\\AbstractPaginationQuery::proxyFactory<\/a>"],[100,1,"<a href=\"AbstractPaginationQuery.php.html#59\">Solr\\Filter\\AbstractPaginationQuery::getRepositoryName<\/a>"],[100,1,"<a href=\"AbstractPaginationQuery.php.html#66\">Solr\\Filter\\AbstractPaginationQuery::createQuery<\/a>"],[0,1,"<a href=\"EntityToDocument\/JobEntityToSolrDocument.php.html#28\">Solr\\Filter\\EntityToDocument\\JobEntityToSolrDocument::__construct<\/a>"],[85.1063829787234,14,"<a href=\"EntityToDocument\/JobEntityToSolrDocument.php.html#38\">Solr\\Filter\\EntityToDocument\\JobEntityToSolrDocument::filter<\/a>"],[100,3,"<a href=\"EntityToDocument\/JobEntityToSolrDocument.php.html#114\">Solr\\Filter\\EntityToDocument\\JobEntityToSolrDocument::getDocumentIds<\/a>"],[100,2,"<a href=\"EntityToDocument\/JobEntityToSolrDocument.php.html#132\">Solr\\Filter\\EntityToDocument\\JobEntityToSolrDocument::processOrganization<\/a>"],[100,3,"<a href=\"EntityToDocument\/JobEntityToSolrDocument.php.html#148\">Solr\\Filter\\EntityToDocument\\JobEntityToSolrDocument::processLocation<\/a>"],[100,1,"<a href=\"EntityToDocument\/JobEntityToSolrDocument.php.html#181\">Solr\\Filter\\EntityToDocument\\JobEntityToSolrDocument::getLocationDocumentId<\/a>"],[100,1,"<a href=\"JobBoardPaginationQuery.php.html#40\">Solr\\Filter\\JobBoardPaginationQuery::__construct<\/a>"],[89.39393939393939,14,"<a href=\"JobBoardPaginationQuery.php.html#48\">Solr\\Filter\\JobBoardPaginationQuery::createQuery<\/a>"],[100,1,"<a href=\"JobBoardPaginationQuery.php.html#168\">Solr\\Filter\\JobBoardPaginationQuery::proxyFactory<\/a>"],[100,1,"<a href=\"JobBoardPaginationQuery.php.html#176\">Solr\\Filter\\JobBoardPaginationQuery::getRepositoryName<\/a>"],[100,2,"<a href=\"JobBoardPaginationQuery.php.html#181\">Solr\\Filter\\JobBoardPaginationQuery::configureSorts<\/a>"],[100,4,"<a href=\"JobBoardPaginationQuery.php.html#188\">Solr\\Filter\\JobBoardPaginationQuery::configureFilterQuery<\/a>"],[60,3,"<a href=\"JobBoardPaginationQuery.php.html#201\">Solr\\Filter\\JobBoardPaginationQuery::configureBoostQuery<\/a>"]], 'Method Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getComplexityData(data, label) { + var values = []; + $.each(data, function(key) { + var value = Math.round(data[key][0]*100) / 100; + values.push({ + x: value, + y: data[key][1], + class: data[key][2], + size: 0.05, + shape: 'diamond' + }); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } +}); + </script> + </body> +</html> diff --git a/test/coverage/Filter/index.html b/test/coverage/Filter/index.html new file mode 100644 index 0000000..8bc2d59 --- /dev/null +++ b/test/coverage/Filter/index.html @@ -0,0 +1,175 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Filter</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item active">Filter</li> + <li class="breadcrumb-item">(<a href="dashboard.html">Dashboard</a>)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="9"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + <td colspan="3"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="warning">Total</td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="89.71" aria-valuemin="0" aria-valuemax="100" style="width: 89.71%"> + <span class="sr-only">89.71% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">89.71%</div></td> + <td class="warning small"><div align="right">157 / 175</div></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="71.43" aria-valuemin="0" aria-valuemax="100" style="width: 71.43%"> + <span class="sr-only">71.43% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">71.43%</div></td> + <td class="warning small"><div align="right">10 / 14</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="33.33" aria-valuemin="0" aria-valuemax="100" style="width: 33.33%"> + <span class="sr-only">33.33% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">33.33%</div></td> + <td class="danger small"><div align="right">1 / 3</div></td> + </tr> + + <tr> + <td class="warning"><img src="../_icons/file-directory.svg" class="octicon" /><a href="EntityToDocument/index.html">EntityToDocument</a></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="89.29" aria-valuemin="0" aria-valuemax="100" style="width: 89.29%"> + <span class="sr-only">89.29% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">89.29%</div></td> + <td class="warning small"><div align="right">75 / 84</div></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="66.67" aria-valuemin="0" aria-valuemax="100" style="width: 66.67%"> + <span class="sr-only">66.67% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">66.67%</div></td> + <td class="warning small"><div align="right">4 / 6</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + <tr> + <td class="success"><img src="../_icons/file-code.svg" class="octicon" /><a href="AbstractPaginationQuery.php.html">AbstractPaginationQuery.php</a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">6 / 6</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="warning"><img src="../_icons/file-code.svg" class="octicon" /><a href="JobBoardPaginationQuery.php.html">JobBoardPaginationQuery.php</a></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="89.41" aria-valuemin="0" aria-valuemax="100" style="width: 89.41%"> + <span class="sr-only">89.41% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">89.41%</div></td> + <td class="warning small"><div align="right">76 / 85</div></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="71.43" aria-valuemin="0" aria-valuemax="100" style="width: 71.43%"> + <span class="sr-only">71.43% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">71.43%</div></td> + <td class="warning small"><div align="right">5 / 7</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + + </tbody> + </table> + </div> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="danger"><strong>Low</strong>: 0% to 50%</span> + <span class="warning"><strong>Medium</strong>: 50% to 90%</span> + <span class="success"><strong>High</strong>: 90% to 100%</span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + </body> +</html> diff --git a/test/coverage/Listener/CreatePaginatorListener.php.html b/test/coverage/Listener/CreatePaginatorListener.php.html new file mode 100644 index 0000000..c1faa33 --- /dev/null +++ b/test/coverage/Listener/CreatePaginatorListener.php.html @@ -0,0 +1,196 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Listener/CreatePaginatorListener.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Listener</a></li> + <li class="breadcrumb-item active">CreatePaginatorListener.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="success">Total</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">8 / 8</div></td> + </tr> + + <tr> + <td class="success"><abbr title="Solr\Listener\CreatePaginatorListener">CreatePaginatorListener</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">3</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">8 / 8</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#29"><abbr title="onCreatePaginator(CreatePaginatorEvent $event)">onCreatePaginator</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">3</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">8 / 8</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * YAWIK</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @filesource</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @copyright (c) 2013 - 2016 Cross Solution (http://cross-solution.de)</span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @license MIT</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Listener</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Core</span><span class="default">\</span><span class="default">Listener</span><span class="default">\</span><span class="default">Events</span><span class="default">\</span><span class="default">CreatePaginatorEvent</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="comment"> * Class CreatePaginatorListener</span></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="comment"> * @author Anthonius Munthi <me@itstoni.com></span></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="comment"> * @author Miroslav Fedeleš <miroslav.fedeles@gmail.com></span></td></tr> + <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="comment"> * @since 0.26</span></td></tr> + <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="comment"> * @package Solr\Event\Listener</span></td></tr> + <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default"> </span><span class="default">CreatePaginatorListener</span></td></tr> + <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="comment"> * Replace paginator like Jobs/Board with Solr/Jobs/Board</span></td></tr> + <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="comment"> * @param CreatePaginatorEvent $event</span></td></tr> + <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">onCreatePaginator</span><span class="keyword">(</span><span class="default">CreatePaginatorEvent</span><span class="default"> </span><span class="default">$event</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 31" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\CreatePaginatorListenerTest::testOnCreatePaginator</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$params</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$event</span><span class="default">-></span><span class="default">getPaginatorParams</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 32" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\CreatePaginatorListenerTest::testOnCreatePaginator</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$paginatorName</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$event</span><span class="default">-></span><span class="default">getPaginatorName</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 33" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\CreatePaginatorListenerTest::testOnCreatePaginator</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$paginators</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$event</span><span class="default">-></span><span class="default">getPaginators</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 34" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\CreatePaginatorListenerTest::testOnCreatePaginator</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$serviceName</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">'Solr/'</span><span class="default"> </span><span class="keyword">.</span><span class="default"> </span><span class="default">$paginatorName</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 35" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\CreatePaginatorListenerTest::testOnCreatePaginator</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">is_object</span><span class="keyword">(</span><span class="default">$paginators</span><span class="keyword">)</span><span class="default"> </span><span class="default">&&</span><span class="default"> </span><span class="default">$paginators</span><span class="default">-></span><span class="default">has</span><span class="keyword">(</span><span class="default">$serviceName</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/* @var \Laminas\Paginator\Paginator $paginator */</span></td></tr> + <tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// yes, we have that solr paginator to replace $paginatorName</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 38" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\CreatePaginatorListenerTest::testOnCreatePaginator</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$paginator</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$paginators</span><span class="default">-></span><span class="default">get</span><span class="keyword">(</span><span class="default">$serviceName</span><span class="keyword">,</span><span class="default"> </span><span class="default">$params</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 39" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\CreatePaginatorListenerTest::testOnCreatePaginator</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$event</span><span class="default">-></span><span class="default">setPaginator</span><span class="keyword">(</span><span class="default">$paginator</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 41" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\CreatePaginatorListenerTest::testOnCreatePaginator</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/popper.min.js" type="text/javascript"></script> + <script src="../_js/bootstrap.min.js" type="text/javascript"></script> + <script src="../_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/Listener/JobEventSubscriber.php.html b/test/coverage/Listener/JobEventSubscriber.php.html new file mode 100644 index 0000000..8389ee0 --- /dev/null +++ b/test/coverage/Listener/JobEventSubscriber.php.html @@ -0,0 +1,524 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Listener/JobEventSubscriber.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Listener</a></li> + <li class="breadcrumb-item active">JobEventSubscriber.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="danger">Total</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="87.50" aria-valuemin="0" aria-valuemax="100" style="width: 87.50%"> + <span class="sr-only">87.50% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">87.50%</div></td> + <td class="warning small"><div align="right">7 / 8</div></td> + <td class="warning small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="92.16" aria-valuemin="0" aria-valuemax="100" style="width: 92.16%"> + <span class="sr-only">92.16% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">92.16%</div></td> + <td class="success small"><div align="right">47 / 51</div></td> + </tr> + + <tr> + <td class="danger"><abbr title="Solr\Listener\JobEventSubscriber">JobEventSubscriber</abbr></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="87.50" aria-valuemin="0" aria-valuemax="100" style="width: 87.50%"> + <span class="sr-only">87.50% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">87.50%</div></td> + <td class="warning small"><div align="right">7 / 8</div></td> + <td class="warning small">25.30</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="92.16" aria-valuemin="0" aria-valuemax="100" style="width: 92.16%"> + <span class="sr-only">92.16% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">92.16%</div></td> + <td class="success small"><div align="right">47 / 51</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#69"><abbr title="__construct(Manager $manager, EntityToDocumentFilter $entityToDocumentFilter)">__construct</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">3 / 3</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#79"><abbr title="forceUpdate($jobOrId): void">forceUpdate</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">6.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 4</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#93"><abbr title="getSubscribedEvents()">getSubscribedEvents</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">3 / 3</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#106"><abbr title="prePersist(LifecycleEventArgs $eventArgs)">prePersist</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">3</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">6 / 6</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#127"><abbr title="preUpdate(PreUpdateEventArgs $eventArgs)">preUpdate</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">10</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">15 / 15</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#169"><abbr title="postFlush(PostFlushEventArgs $eventArgs)">postFlush</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">5</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">14 / 14</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#204"><abbr title="getSolrClient()">getSolrClient</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">2</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">4 / 4</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#218"><abbr title="factory(ContainerInterface $container)">factory</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * YAWIK</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @filesource</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @copyright (c) 2013 - 2016 Cross Solution (http://cross-solution.de)</span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @license MIT</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Listener</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Doctrine</span><span class="default">\</span><span class="default">Common</span><span class="default">\</span><span class="default">EventSubscriber</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Doctrine</span><span class="default">\</span><span class="default">ODM</span><span class="default">\</span><span class="default">MongoDB</span><span class="default">\</span><span class="default">Event</span><span class="default">\</span><span class="default">LifecycleEventArgs</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Doctrine</span><span class="default">\</span><span class="default">ODM</span><span class="default">\</span><span class="default">MongoDB</span><span class="default">\</span><span class="default">Event</span><span class="default">\</span><span class="default">PostFlushEventArgs</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Doctrine</span><span class="default">\</span><span class="default">ODM</span><span class="default">\</span><span class="default">MongoDB</span><span class="default">\</span><span class="default">Event</span><span class="default">\</span><span class="default">PreUpdateEventArgs</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Doctrine</span><span class="default">\</span><span class="default">ODM</span><span class="default">\</span><span class="default">MongoDB</span><span class="default">\</span><span class="default">Events</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Interop</span><span class="default">\</span><span class="default">Container</span><span class="default">\</span><span class="default">ContainerInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Jobs</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">Job</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Jobs</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">JobInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Jobs</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">StatusInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Bridge</span><span class="default">\</span><span class="default">Manager</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Filter</span><span class="default">\</span><span class="default">EntityToDocument</span><span class="default">\</span><span class="default">JobEntityToSolrDocument</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">EntityToDocumentFilter</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">SolrClient</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="comment"> * @author Anthonius Munthi <me@itstoni.com></span></td></tr> + <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="comment"> * @author Miroslav Fedeleš <miroslav.fedeles@gmail.com></span></td></tr> + <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="comment"> * @since 0.26</span></td></tr> + <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="comment"> * @since 0.8.2 Allow forced updates on documents.</span></td></tr> + <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="comment"> * @package Solr\Listener</span></td></tr> + <tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default"> </span><span class="default">JobEventSubscriber</span><span class="default"> </span><span class="keyword">implements</span><span class="default"> </span><span class="default">EventSubscriber</span></td></tr> + <tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="comment"> * @var Manager</span></td></tr> + <tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$solrManager</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="comment"> * @var EntityToDocumentFilter</span></td></tr> + <tr><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$entityToDocumentFilter</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="comment"> * @var SolrClient</span></td></tr> + <tr><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$solrClient</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"><span class="comment"> * @var Job[]</span></td></tr> + <tr><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$add</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"><span class="comment"> * @var Job[]</span></td></tr> + <tr><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$delete</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="comment"> * @var string[]</span></td></tr> + <tr><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$forceUpdates</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine"><span class="comment"> * @param Manager $manager</span></td></tr> + <tr><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"><span class="comment"> * @param EntityToDocumentFilter $entityToDocumentFilter</span></td></tr> + <tr><td><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">__construct</span><span class="keyword">(</span><span class="default">Manager</span><span class="default"> </span><span class="default">$manager</span><span class="keyword">,</span><span class="default"> </span><span class="default">EntityToDocumentFilter</span><span class="default"> </span><span class="default">$entityToDocumentFilter</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="70"></a><a href="#70">70</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 71" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testShouldSubscribeToDoctrineEvent</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="71"></a><a href="#71">71</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">solrManager</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$manager</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 72" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testShouldSubscribeToDoctrineEvent</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">entityToDocumentFilter</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$entityToDocumentFilter</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 73" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testShouldSubscribeToDoctrineEvent</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="74"></a><a href="#74">74</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="75"></a><a href="#75">75</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="76"></a><a href="#76">76</a></div></td><td class="codeLine"><span class="comment"> * @param JobInterface|string $jobOrId</span></td></tr> + <tr><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"><span class="comment"> * @since 0.8.2</span></td></tr> + <tr><td><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">forceUpdate</span><span class="keyword">(</span><span class="default">$jobOrId</span><span class="keyword">)</span><span class="keyword">:</span><span class="default"> </span><span class="default">void</span></td></tr> + <tr><td><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">$jobOrId</span><span class="default"> </span><span class="keyword">instanceof</span><span class="default"> </span><span class="default">JobInterface</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$jobOrId</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$jobOrId</span><span class="default">-></span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine"></td></tr> + <tr class="danger"><td><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">forceUpdates</span><span class="keyword">[</span><span class="keyword">]</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$jobOrId</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="86"></a><a href="#86">86</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="87"></a><a href="#87">87</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="88"></a><a href="#88">88</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="comment"> * Define what event this subscriber listen to</span></td></tr> + <tr><td><div align="right"><a name="90"></a><a href="#90">90</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"><span class="comment"> * @return array</span></td></tr> + <tr><td><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getSubscribedEvents</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="keyword">[</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 96" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testShouldSubscribeToDoctrineEvent</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">Events</span><span class="default">::</span><span class="default">prePersist</span><span class="keyword">,</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 97" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testShouldSubscribeToDoctrineEvent</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">Events</span><span class="default">::</span><span class="default">preUpdate</span><span class="keyword">,</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 98" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testShouldSubscribeToDoctrineEvent</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="98"></a><a href="#98">98</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">Events</span><span class="default">::</span><span class="default">postFlush</span></td></tr> + <tr><td><div align="right"><a name="99"></a><a href="#99">99</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="100"></a><a href="#100">100</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"><span class="comment"> * @param LifecycleEventArgs $eventArgs</span></td></tr> + <tr><td><div align="right"><a name="104"></a><a href="#104">104</a></div></td><td class="codeLine"><span class="comment"> * @since 0.30</span></td></tr> + <tr><td><div align="right"><a name="105"></a><a href="#105">105</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="106"></a><a href="#106">106</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">prePersist</span><span class="keyword">(</span><span class="default">LifecycleEventArgs</span><span class="default"> </span><span class="default">$eventArgs</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="107"></a><a href="#107">107</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="8 tests cover line 108" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistShouldNotProcessNonJobDocument</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #1</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #3</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #4</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #5</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #6</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$eventArgs</span><span class="default">-></span><span class="default">getDocument</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="110"></a><a href="#110">110</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// check for a job instance</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="8 tests cover line 111" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistShouldNotProcessNonJobDocument</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #1</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #3</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #4</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #5</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #6</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="111"></a><a href="#111">111</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">!</span><span class="default">$document</span><span class="default"> </span><span class="keyword">instanceof</span><span class="default"> </span><span class="default">Job</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 112" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistShouldNotProcessNonJobDocument</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="113"></a><a href="#113">113</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="114"></a><a href="#114">114</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="115"></a><a href="#115">115</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// check if the job is active</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="7 tests cover line 116" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #1</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #3</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #4</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #5</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #6</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="116"></a><a href="#116">116</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">$document</span><span class="default">-></span><span class="default">isActive</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// mark it for commit</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 118" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #0</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="118"></a><a href="#118">118</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">add</span><span class="keyword">[</span><span class="keyword">]</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$document</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="119"></a><a href="#119">119</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="7 tests cover line 120" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #1</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #3</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #4</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #5</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPrePersistWithJobDocument with data set #6</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="120"></a><a href="#120">120</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="121"></a><a href="#121">121</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="122"></a><a href="#122">122</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="123"></a><a href="#123">123</a></div></td><td class="codeLine"><span class="comment"> * @param PreUpdateEventArgs $eventArgs</span></td></tr> + <tr><td><div align="right"><a name="124"></a><a href="#124">124</a></div></td><td class="codeLine"><span class="comment"> * @since 0.27</span></td></tr> + <tr><td><div align="right"><a name="125"></a><a href="#125">125</a></div></td><td class="codeLine"><span class="comment"> * @since 0.8.2 Check for forced updates on documents</span></td></tr> + <tr><td><div align="right"><a name="126"></a><a href="#126">126</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="127"></a><a href="#127">127</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">preUpdate</span><span class="keyword">(</span><span class="default">PreUpdateEventArgs</span><span class="default"> </span><span class="default">$eventArgs</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="128"></a><a href="#128">128</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="9 tests cover line 129" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateShouldNotProcessNonJobDocument</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateShouldNotProcessDocumentWithUnchangedStatus</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #1</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #3</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #4</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #5</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #6</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="129"></a><a href="#129">129</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$eventArgs</span><span class="default">-></span><span class="default">getDocument</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="130"></a><a href="#130">130</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="131"></a><a href="#131">131</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// check for a job instance</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="9 tests cover line 132" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateShouldNotProcessNonJobDocument</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateShouldNotProcessDocumentWithUnchangedStatus</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #1</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #3</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #4</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #5</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #6</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="132"></a><a href="#132">132</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">!</span><span class="default">$document</span><span class="default"> </span><span class="keyword">instanceof</span><span class="default"> </span><span class="default">Job</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 133" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateShouldNotProcessNonJobDocument</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="133"></a><a href="#133">133</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="134"></a><a href="#134">134</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="135"></a><a href="#135">135</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="136"></a><a href="#136">136</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// check if the status or isDeleted flag has been changed</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="8 tests cover line 137" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateShouldNotProcessDocumentWithUnchangedStatus</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #1</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #3</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #4</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #5</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #6</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="137"></a><a href="#137">137</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">!</span><span class="default">in_array</span><span class="keyword">(</span><span class="default">$document</span><span class="default">-></span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">,</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">forceUpdates</span><span class="keyword">)</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="8 tests cover line 138" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateShouldNotProcessDocumentWithUnchangedStatus</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #1</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #3</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #4</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #5</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #6</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="138"></a><a href="#138">138</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">&&</span><span class="default"> </span><span class="keyword">!</span><span class="default">$eventArgs</span><span class="default">-></span><span class="default">hasChangedField</span><span class="keyword">(</span><span class="default">'status'</span><span class="keyword">)</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="8 tests cover line 139" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateShouldNotProcessDocumentWithUnchangedStatus</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #1</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #3</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #4</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #5</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #6</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="139"></a><a href="#139">139</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">&&</span><span class="default"> </span><span class="keyword">!</span><span class="default">$eventArgs</span><span class="default">-></span><span class="default">hasChangedField</span><span class="keyword">(</span><span class="default">'isDeleted'</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="140"></a><a href="#140">140</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 141" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateShouldNotProcessDocumentWithUnchangedStatus</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="141"></a><a href="#141">141</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="142"></a><a href="#142">142</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="143"></a><a href="#143">143</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="144"></a><a href="#144">144</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// check if the job is active</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="7 tests cover line 145" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #1</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #3</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #4</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #5</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #6</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="145"></a><a href="#145">145</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">$document</span><span class="default">-></span><span class="default">isActive</span><span class="keyword">(</span><span class="keyword">)</span><span class="default"> </span><span class="default">&&</span><span class="default"> </span><span class="keyword">!</span><span class="default">$document</span><span class="default">-></span><span class="default">isDeleted</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="146"></a><a href="#146">146</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// mark it for commit</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 147" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #0</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="147"></a><a href="#147">147</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">add</span><span class="keyword">[</span><span class="keyword">]</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$document</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="148"></a><a href="#148">148</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span><span class="default"> </span><span class="keyword">else</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="6 tests cover line 149" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #1</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #3</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #4</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #5</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #6</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="149"></a><a href="#149">149</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$status</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$document</span><span class="default">-></span><span class="default">getStatus</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="150"></a><a href="#150">150</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="151"></a><a href="#151">151</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// check if the status has been changed to inactive or expired</span></td></tr> + <tr><td><div align="right"><a name="152"></a><a href="#152">152</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// or isDeleted Flag is set.</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="6 tests cover line 153" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #1</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #3</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #4</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #5</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #6</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="153"></a><a href="#153">153</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="default">$document</span><span class="default">-></span><span class="default">isDeleted</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="154"></a><a href="#154">154</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">||</span><span class="default"> </span><span class="keyword">(</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="6 tests cover line 155" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #1</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #3</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #4</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #5</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #6</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="155"></a><a href="#155">155</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$status</span><span class="keyword">)</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="6 tests cover line 156" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #1</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #3</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #4</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #5</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #6</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="156"></a><a href="#156">156</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">&&</span><span class="default"> </span><span class="default">in_array</span><span class="keyword">(</span><span class="default">$status</span><span class="default">-></span><span class="default">getName</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">,</span><span class="default"> </span><span class="keyword">[</span><span class="default">StatusInterface</span><span class="default">::</span><span class="default">INACTIVE</span><span class="keyword">,</span><span class="default"> </span><span class="default">StatusInterface</span><span class="default">::</span><span class="default">EXPIRED</span><span class="keyword">]</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="157"></a><a href="#157">157</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="158"></a><a href="#158">158</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="159"></a><a href="#159">159</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// mark it for delete</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 160" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #3</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="160"></a><a href="#160">160</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">delete</span><span class="keyword">[</span><span class="keyword">]</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$document</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="161"></a><a href="#161">161</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="162"></a><a href="#162">162</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="7 tests cover line 163" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #1</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #3</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #4</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #5</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPreUpdateWithChangedStatus with data set #6</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="163"></a><a href="#163">163</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="164"></a><a href="#164">164</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="165"></a><a href="#165">165</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="166"></a><a href="#166">166</a></div></td><td class="codeLine"><span class="comment"> * @param PostFlushEventArgs $eventArgs</span></td></tr> + <tr><td><div align="right"><a name="167"></a><a href="#167">167</a></div></td><td class="codeLine"><span class="comment"> * @since 0.27</span></td></tr> + <tr><td><div align="right"><a name="168"></a><a href="#168">168</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="169"></a><a href="#169">169</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">postFlush</span><span class="keyword">(</span><span class="default">PostFlushEventArgs</span><span class="default"> </span><span class="default">$eventArgs</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="170"></a><a href="#170">170</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="171"></a><a href="#171">171</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// check if there is any job to process</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="8 tests cover line 172" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithNoJobsToProcess</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #1</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #3</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #4</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #5</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #6</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="172"></a><a href="#172">172</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">!</span><span class="default">$this</span><span class="default">-></span><span class="default">add</span><span class="default"> </span><span class="default">&&</span><span class="default"> </span><span class="keyword">!</span><span class="default">$this</span><span class="default">-></span><span class="default">delete</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="5 tests cover line 173" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithNoJobsToProcess</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #1</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #4</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #5</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #6</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="173"></a><a href="#173">173</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="174"></a><a href="#174">174</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="175"></a><a href="#175">175</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 176" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #3</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="176"></a><a href="#176">176</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$client</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">getSolrClient</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="177"></a><a href="#177">177</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="178"></a><a href="#178">178</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// process jobs for commit</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 179" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #3</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="179"></a><a href="#179">179</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">foreach</span><span class="default"> </span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">add</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">$job</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 180" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #0</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="180"></a><a href="#180">180</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$document</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">entityToDocumentFilter</span><span class="default">-></span><span class="default">filter</span><span class="keyword">(</span><span class="default">$job</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 181" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #0</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="181"></a><a href="#181">181</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$client</span><span class="default">-></span><span class="default">addDocument</span><span class="keyword">(</span><span class="default">$document</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="182"></a><a href="#182">182</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="183"></a><a href="#183">183</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="184"></a><a href="#184">184</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// process jobs for delete</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 185" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #3</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="185"></a><a href="#185">185</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">foreach</span><span class="default"> </span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">delete</span><span class="default"> </span><span class="keyword">as</span><span class="default"> </span><span class="default">$job</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 186" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #3</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="186"></a><a href="#186">186</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$client</span><span class="default">-></span><span class="default">deleteByIds</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">entityToDocumentFilter</span><span class="default">-></span><span class="default">getDocumentIds</span><span class="keyword">(</span><span class="default">$job</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="187"></a><a href="#187">187</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="188"></a><a href="#188">188</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="189"></a><a href="#189">189</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// commit to index & optimize it</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 190" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #3</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="190"></a><a href="#190">190</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$client</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">getSolrClient</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 191" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #3</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="191"></a><a href="#191">191</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$client</span><span class="default">-></span><span class="default">commit</span><span class="keyword">(</span><span class="default">true</span><span class="keyword">,</span><span class="default"> </span><span class="default">false</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 192" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #3</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="192"></a><a href="#192">192</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$client</span><span class="default">-></span><span class="default">optimize</span><span class="keyword">(</span><span class="default">1</span><span class="keyword">,</span><span class="default"> </span><span class="default">true</span><span class="keyword">,</span><span class="default"> </span><span class="default">false</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="193"></a><a href="#193">193</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="194"></a><a href="#194">194</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// clear arrays. There could be multiple flushs per requests and we do not want</span></td></tr> + <tr><td><div align="right"><a name="195"></a><a href="#195">195</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">// to process already processed entities.</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 196" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #3</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="196"></a><a href="#196">196</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">add</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 197" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #3</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="197"></a><a href="#197">197</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">delete</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 198" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #3</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="198"></a><a href="#198">198</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="199"></a><a href="#199">199</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="200"></a><a href="#200">200</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="201"></a><a href="#201">201</a></div></td><td class="codeLine"><span class="comment"> * @return SolrClient</span></td></tr> + <tr><td><div align="right"><a name="202"></a><a href="#202">202</a></div></td><td class="codeLine"><span class="comment"> * @since 0.27</span></td></tr> + <tr><td><div align="right"><a name="203"></a><a href="#203">203</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="204"></a><a href="#204">204</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getSolrClient</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="205"></a><a href="#205">205</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 206" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #3</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="206"></a><a href="#206">206</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">!</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">solrClient</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 207" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #3</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="207"></a><a href="#207">207</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$path</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">solrManager</span><span class="default">-></span><span class="default">getOptions</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">getJobsPath</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 208" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #3</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="208"></a><a href="#208">208</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">solrClient</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">solrManager</span><span class="default">-></span><span class="default">getClient</span><span class="keyword">(</span><span class="default">$path</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="209"></a><a href="#209">209</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="210"></a><a href="#210">210</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 211" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #0</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #2</li><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testPostFlushWithJobsToProcess with data set #3</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="211"></a><a href="#211">211</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">solrClient</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="212"></a><a href="#212">212</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="213"></a><a href="#213">213</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="214"></a><a href="#214">214</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="215"></a><a href="#215">215</a></div></td><td class="codeLine"><span class="comment"> * @param ContainerInterface $container</span></td></tr> + <tr><td><div align="right"><a name="216"></a><a href="#216">216</a></div></td><td class="codeLine"><span class="comment"> * @return JobEventSubscriber</span></td></tr> + <tr><td><div align="right"><a name="217"></a><a href="#217">217</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="218"></a><a href="#218">218</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">static</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">factory</span><span class="keyword">(</span><span class="default">ContainerInterface</span><span class="default"> </span><span class="default">$container</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="219"></a><a href="#219">219</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 220" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testFactory</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="220"></a><a href="#220">220</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$options</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$container</span><span class="default">-></span><span class="default">get</span><span class="keyword">(</span><span class="default">'Solr/Options/Module'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 221" data-content="<ul><li class="covered-by-large-tests">SolrTest\Listener\JobEventSubscriberTest::testFactory</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="221"></a><a href="#221">221</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="keyword">static</span><span class="keyword">(</span><span class="default">$container</span><span class="default">-></span><span class="default">get</span><span class="keyword">(</span><span class="default">'Solr/Manager'</span><span class="keyword">)</span><span class="keyword">,</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">EntityToDocumentFilter</span><span class="keyword">(</span><span class="default">$options</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="222"></a><a href="#222">222</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="223"></a><a href="#223">223</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/popper.min.js" type="text/javascript"></script> + <script src="../_js/bootstrap.min.js" type="text/javascript"></script> + <script src="../_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/Listener/dashboard.html b/test/coverage/Listener/dashboard.html new file mode 100644 index 0000000..2256a5b --- /dev/null +++ b/test/coverage/Listener/dashboard.html @@ -0,0 +1,286 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Dashboard for /home/cbleek/AtomProjects/Solr/src/Listener</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/nv.d3.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Listener</a></li> + <li class="breadcrumb-item active">(Dashboard)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <h2>Classes</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="classCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="classComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <h2>Methods</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="methodCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="methodComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + <tr><td><a href="JobEventSubscriber.php.html#79"><abbr title="Solr\Listener\JobEventSubscriber::forceUpdate">forceUpdate</abbr></a></td><td class="text-right">0%</td></tr> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + <tr><td><a href="JobEventSubscriber.php.html#79"><abbr title="Solr\Listener\JobEventSubscriber::forceUpdate">forceUpdate</abbr></a></td><td class="text-right">6</td></tr> + + </tbody> + </table> + </div> + </div> + </div> + <footer> + <hr/> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/d3.min.js" type="text/javascript"></script> + <script src="../_js/nv.d3.min.js" type="text/javascript"></script> + <script type="text/javascript"> +$(document).ready(function() { + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#classCoverageDistribution svg') + .datum(getCoverageDistributionData([0,0,0,0,0,0,0,0,0,0,1,1], "Class Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#methodCoverageDistribution svg') + .datum(getCoverageDistributionData([1,0,0,0,0,0,0,0,0,0,0,8], "Method Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getCoverageDistributionData(data, label) { + var labels = [ + '0%', + '0-10%', + '10-20%', + '20-30%', + '30-40%', + '40-50%', + '50-60%', + '60-70%', + '70-80%', + '80-90%', + '90-100%', + '100%' + ]; + var values = []; + $.each(labels, function(key) { + values.push({x: labels[key], y: data[key]}); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Cyclomatic Complexity'); + + d3.select('#classComplexity svg') + .datum(getComplexityData([[100,3,"<a href=\"CreatePaginatorListener.php.html#22\">Solr\\Listener\\CreatePaginatorListener<\/a>"],[92.15686274509804,25,"<a href=\"JobEventSubscriber.php.html#32\">Solr\\Listener\\JobEventSubscriber<\/a>"]], 'Class Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Method Complexity'); + + d3.select('#methodComplexity svg') + .datum(getComplexityData([[100,3,"<a href=\"CreatePaginatorListener.php.html#29\">Solr\\Listener\\CreatePaginatorListener::onCreatePaginator<\/a>"],[100,1,"<a href=\"JobEventSubscriber.php.html#69\">Solr\\Listener\\JobEventSubscriber::__construct<\/a>"],[0,2,"<a href=\"JobEventSubscriber.php.html#79\">Solr\\Listener\\JobEventSubscriber::forceUpdate<\/a>"],[100,1,"<a href=\"JobEventSubscriber.php.html#93\">Solr\\Listener\\JobEventSubscriber::getSubscribedEvents<\/a>"],[100,3,"<a href=\"JobEventSubscriber.php.html#106\">Solr\\Listener\\JobEventSubscriber::prePersist<\/a>"],[100,10,"<a href=\"JobEventSubscriber.php.html#127\">Solr\\Listener\\JobEventSubscriber::preUpdate<\/a>"],[100,5,"<a href=\"JobEventSubscriber.php.html#169\">Solr\\Listener\\JobEventSubscriber::postFlush<\/a>"],[100,2,"<a href=\"JobEventSubscriber.php.html#204\">Solr\\Listener\\JobEventSubscriber::getSolrClient<\/a>"],[100,1,"<a href=\"JobEventSubscriber.php.html#218\">Solr\\Listener\\JobEventSubscriber::factory<\/a>"]], 'Method Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getComplexityData(data, label) { + var values = []; + $.each(data, function(key) { + var value = Math.round(data[key][0]*100) / 100; + values.push({ + x: value, + y: data[key][1], + class: data[key][2], + size: 0.05, + shape: 'diamond' + }); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } +}); + </script> + </body> +</html> diff --git a/test/coverage/Listener/index.html b/test/coverage/Listener/index.html new file mode 100644 index 0000000..c80f6b6 --- /dev/null +++ b/test/coverage/Listener/index.html @@ -0,0 +1,147 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Listener</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item active">Listener</li> + <li class="breadcrumb-item">(<a href="dashboard.html">Dashboard</a>)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="9"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + <td colspan="3"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="success">Total</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="93.22" aria-valuemin="0" aria-valuemax="100" style="width: 93.22%"> + <span class="sr-only">93.22% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">93.22%</div></td> + <td class="success small"><div align="right">55 / 59</div></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="88.89" aria-valuemin="0" aria-valuemax="100" style="width: 88.89%"> + <span class="sr-only">88.89% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">88.89%</div></td> + <td class="warning small"><div align="right">8 / 9</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%"> + <span class="sr-only">50.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">50.00%</div></td> + <td class="danger small"><div align="right">1 / 2</div></td> + </tr> + + <tr> + <td class="success"><img src="../_icons/file-code.svg" class="octicon" /><a href="CreatePaginatorListener.php.html">CreatePaginatorListener.php</a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">8 / 8</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success"><img src="../_icons/file-code.svg" class="octicon" /><a href="JobEventSubscriber.php.html">JobEventSubscriber.php</a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="92.16" aria-valuemin="0" aria-valuemax="100" style="width: 92.16%"> + <span class="sr-only">92.16% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">92.16%</div></td> + <td class="success small"><div align="right">47 / 51</div></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="87.50" aria-valuemin="0" aria-valuemax="100" style="width: 87.50%"> + <span class="sr-only">87.50% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">87.50%</div></td> + <td class="warning small"><div align="right">7 / 8</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + + </tbody> + </table> + </div> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="danger"><strong>Low</strong>: 0% to 50%</span> + <span class="warning"><strong>Medium</strong>: 50% to 90%</span> + <span class="success"><strong>High</strong>: 90% to 100%</span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + </body> +</html> diff --git a/test/coverage/Module.php.html b/test/coverage/Module.php.html new file mode 100644 index 0000000..9d3fb88 --- /dev/null +++ b/test/coverage/Module.php.html @@ -0,0 +1,221 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Module.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="_css/style.css" rel="stylesheet" type="text/css"> + <link href="_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item active">Module.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="danger">Total</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 2</div></td> + <td class="danger small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 8</div></td> + </tr> + + <tr> + <td class="danger"><abbr title="Solr\Module">Module</abbr></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 2</div></td> + <td class="danger small">6.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 8</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#31"><abbr title="getConsoleUsage(AdapterInterface $console)">getConsoleUsage</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">2.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 5</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#43"><abbr title="getConfig()">getConfig</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">2.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 3</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * YAWIK</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @filesource</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @copyright (c) 2013 - 2016 Cross Solution (http://cross-solution.de)</span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @license MIT</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Core</span><span class="default">\</span><span class="default">ModuleManager</span><span class="default">\</span><span class="default">Feature</span><span class="default">\</span><span class="default">VersionProviderInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Core</span><span class="default">\</span><span class="default">ModuleManager</span><span class="default">\</span><span class="default">Feature</span><span class="default">\</span><span class="default">VersionProviderTrait</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Core</span><span class="default">\</span><span class="default">ModuleManager</span><span class="default">\</span><span class="default">ModuleConfigLoader</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Zend</span><span class="default">\</span><span class="default">Console</span><span class="default">\</span><span class="default">Adapter</span><span class="default">\</span><span class="default">AdapterInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Zend</span><span class="default">\</span><span class="default">ModuleManager</span><span class="default">\</span><span class="default">Feature</span><span class="default">\</span><span class="default">ConsoleUsageProviderInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="comment"> * Class Module</span></td></tr> + <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="comment"> * @author Anthonius Munthi <me@itstoni.com></span></td></tr> + <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="comment"> * @since 0.26</span></td></tr> + <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="comment"> * @package Solr</span></td></tr> + <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default"> </span><span class="default">Module</span><span class="default"> </span><span class="keyword">implements</span><span class="default"> </span><span class="default">ConsoleUsageProviderInterface</span><span class="keyword">,</span><span class="default">VersionProviderInterface</span></td></tr> + <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">use</span><span class="default"> </span><span class="default">VersionProviderTrait</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">const</span><span class="default"> </span><span class="default">VERSION</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">'0.8.2'</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getConsoleUsage</span><span class="keyword">(</span><span class="default">AdapterInterface</span><span class="default"> </span><span class="default">$console</span><span class="keyword">)</span></td></tr> + <tr class="danger"><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="keyword">[</span></td></tr> + <tr class="danger"><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'solr index job'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">'Indexing active jobs'</span><span class="keyword">,</span></td></tr> + <tr class="danger"><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="comment"> * Loads module specific configuration.</span></td></tr> + <tr><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="comment"> * @return array</span></td></tr> + <tr><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getConfig</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr class="danger"><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">ModuleConfigLoader</span><span class="default">::</span><span class="default">load</span><span class="keyword">(</span><span class="default">__DIR__</span><span class="keyword">.</span><span class="default">'/../config'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="danger"><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="_js/jquery.min.js" type="text/javascript"></script> + <script src="_js/popper.min.js" type="text/javascript"></script> + <script src="_js/bootstrap.min.js" type="text/javascript"></script> + <script src="_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/Options/ModuleOptions.php.html b/test/coverage/Options/ModuleOptions.php.html new file mode 100644 index 0000000..a179626 --- /dev/null +++ b/test/coverage/Options/ModuleOptions.php.html @@ -0,0 +1,1203 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Options/ModuleOptions.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Options</a></li> + <li class="breadcrumb-item active">ModuleOptions.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="danger">Total</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="96.77" aria-valuemin="0" aria-valuemax="100" style="width: 96.77%"> + <span class="sr-only">96.77% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">96.77%</div></td> + <td class="success small"><div align="right">30 / 31</div></td> + <td class="success small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="93.75" aria-valuemin="0" aria-valuemax="100" style="width: 93.75%"> + <span class="sr-only">93.75% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">93.75%</div></td> + <td class="success small"><div align="right">45 / 48</div></td> + </tr> + + <tr> + <td class="danger"><abbr title="Solr\Options\ModuleOptions">ModuleOptions</abbr></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="96.77" aria-valuemin="0" aria-valuemax="100" style="width: 96.77%"> + <span class="sr-only">96.77% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">96.77%</div></td> + <td class="success small"><div align="right">30 / 31</div></td> + <td class="success small">32.25</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="93.75" aria-valuemin="0" aria-valuemax="100" style="width: 93.75%"> + <span class="sr-only">93.75% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">93.75%</div></td> + <td class="success small"><div align="right">45 / 48</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#142"><abbr title="getBoostQueries()">getBoostQueries</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#150"><abbr title="setBoostQueries(array $boostQueries)">setBoostQueries</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#158"><abbr title="getSorts(): array">getSorts</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#166"><abbr title="setSorts(array $sorts): void">setSorts</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#174"><abbr title="getFilterQueries()">getFilterQueries</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#182"><abbr title="setFilterQueries(array $filterQueries)">setFilterQueries</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#190"><abbr title="isSecure()">isSecure</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#199"><abbr title="setSecure($secure)">setSecure</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#209"><abbr title="getHostname()">getHostname</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#218"><abbr title="setHostname($hostname)">setHostname</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#228"><abbr title="getPort()">getPort</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#237"><abbr title="setPort($port)">setPort</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#247"><abbr title="getPath()">getPath</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#256"><abbr title="setPath($path)">setPath</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#266"><abbr title="getUsername()">getUsername</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#275"><abbr title="setUsername($username)">setUsername</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#285"><abbr title="getPassword()">getPassword</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#294"><abbr title="setPassword($password)">setPassword</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#304"><abbr title="getJobsPath()">getJobsPath</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#313"><abbr title="setJobsPath($jobsPath)">setJobsPath</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#323"><abbr title="getFacetFields()">getFacetFields</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#333"><abbr title="setFacetFields($facetFields)">setFacetFields</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#342"><abbr title="getParameterNames()">getParameterNames</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#352"><abbr title="setParameterNames($parameterNames)">setParameterNames</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#361"><abbr title="getFacetLimit()">getFacetLimit</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#371"><abbr title="setFacetLimit($facetLimit)">setFacetLimit</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#380"><abbr title="getFacetMinCount()">getFacetMinCount</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#390"><abbr title="setFacetMinCount($facetMinCount)">setFacetMinCount</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="danger" colspan="4"> <a href="#401"><abbr title="getParameterName($key)">getParameterName</abbr></a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + <td class="danger small">6.00</td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 3</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#409"><abbr title="getMappings()">getMappings</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#414"><abbr title="setMappings($mappings)">setMappings</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * YAWIK</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @filesource</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @copyright (c) 2013 - 2016 Cross Solution (http://cross-solution.de)</span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @license MIT</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Options</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Doctrine</span><span class="default">\</span><span class="default">Instantiator</span><span class="default">\</span><span class="default">Exception</span><span class="default">\</span><span class="default">InvalidArgumentException</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Zend</span><span class="default">\</span><span class="default">Stdlib</span><span class="default">\</span><span class="default">AbstractOptions</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="comment"> * Provide available options for Solr Module</span></td></tr> + <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="comment"> * @author Anthonius Munthi <me@itstoni.com></span></td></tr> + <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="comment"> * @since 0.26</span></td></tr> + <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="comment"> * @package Solr\Options</span></td></tr> + <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default"> </span><span class="default">ModuleOptions</span><span class="default"> </span><span class="keyword">extends</span><span class="default"> </span><span class="default">AbstractOptions</span></td></tr> + <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">const</span><span class="default"> </span><span class="default">FIELD_QUERY</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">'q'</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">const</span><span class="default"> </span><span class="default">FIELD_LOCATION</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">'l'</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">const</span><span class="default"> </span><span class="default">FIELD_DISTANCE</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">'d'</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">const</span><span class="default"> </span><span class="default">FIELD_ORGANIZATION</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">'o'</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">private</span><span class="default"> </span><span class="default">$validFields</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span></td></tr> + <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">self</span><span class="default">::</span><span class="default">FIELD_QUERY</span><span class="keyword">,</span></td></tr> + <tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">self</span><span class="default">::</span><span class="default">FIELD_LOCATION</span><span class="keyword">,</span></td></tr> + <tr><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">self</span><span class="default">::</span><span class="default">FIELD_DISTANCE</span><span class="keyword">,</span></td></tr> + <tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">self</span><span class="default">::</span><span class="default">FIELD_ORGANIZATION</span></td></tr> + <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"><span class="comment"> * @var bool</span></td></tr> + <tr><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$secure</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">false</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="comment"> * @var string</span></td></tr> + <tr><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$hostname</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">'localhost'</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="comment"> * @var integer</span></td></tr> + <tr><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$port</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">8983</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine"><span class="comment"> * @var string</span></td></tr> + <tr><td><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$path</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">'/solr'</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"><span class="comment"> * @var string</span></td></tr> + <tr><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$username</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">''</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"><span class="comment"> * @var string</span></td></tr> + <tr><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$password</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">''</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"><span class="comment"> * @var string</span></td></tr> + <tr><td><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$jobsPath</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">'/solr/YawikJobs'</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="70"></a><a href="#70">70</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="71"></a><a href="#71">71</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"><span class="comment"> * An array of fieldName => SortOrder</span></td></tr> + <tr><td><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="74"></a><a href="#74">74</a></div></td><td class="codeLine"><span class="comment"> * @var array</span></td></tr> + <tr><td><div align="right"><a name="75"></a><a href="#75">75</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="76"></a><a href="#76">76</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$sorts</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span><span class="default">'datePublishStart'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">\</span><span class="default">SolrQuery</span><span class="default">::</span><span class="default">ORDER_DESC</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine"><span class="comment"> * @var $facetFields array</span></td></tr> + <tr><td><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$facetFields</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span></td></tr> + <tr><td><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">[</span></td></tr> + <tr><td><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'name'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">'region_MultiString'</span><span class="keyword">,</span></td></tr> + <tr><td><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'label'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">'Region'</span><span class="keyword">,</span></td></tr> + <tr><td><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">]</span><span class="keyword">,</span></td></tr> + <tr><td><div align="right"><a name="86"></a><a href="#86">86</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">[</span></td></tr> + <tr><td><div align="right"><a name="87"></a><a href="#87">87</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'name'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">'city_MultiString'</span><span class="keyword">,</span></td></tr> + <tr><td><div align="right"><a name="88"></a><a href="#88">88</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'label'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">'City'</span></td></tr> + <tr><td><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">]</span></td></tr> + <tr><td><div align="right"><a name="90"></a><a href="#90">90</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"><span class="comment"> * The maximum number of constraint counts</span></td></tr> + <tr><td><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"><span class="comment"> * @var int</span></td></tr> + <tr><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$facetLimit</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">10</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="98"></a><a href="#98">98</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="99"></a><a href="#99">99</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="100"></a><a href="#100">100</a></div></td><td class="codeLine"><span class="comment"> * The minimum count</span></td></tr> + <tr><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="comment"> * @var int</span></td></tr> + <tr><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="104"></a><a href="#104">104</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$facetMinCount</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">1</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="105"></a><a href="#105">105</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="106"></a><a href="#106">106</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="107"></a><a href="#107">107</a></div></td><td class="codeLine"><span class="comment"> * @var $parameterNames array</span></td></tr> + <tr><td><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$parameterNames</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span></td></tr> + <tr><td><div align="right"><a name="110"></a><a href="#110">110</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">self</span><span class="default">::</span><span class="default">FIELD_QUERY</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="keyword">[</span></td></tr> + <tr><td><div align="right"><a name="111"></a><a href="#111">111</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'name'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">'q'</span></td></tr> + <tr><td><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">]</span><span class="keyword">,</span></td></tr> + <tr><td><div align="right"><a name="113"></a><a href="#113">113</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">self</span><span class="default">::</span><span class="default">FIELD_LOCATION</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="keyword">[</span></td></tr> + <tr><td><div align="right"><a name="114"></a><a href="#114">114</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'name'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">'l'</span></td></tr> + <tr><td><div align="right"><a name="115"></a><a href="#115">115</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">]</span><span class="keyword">,</span></td></tr> + <tr><td><div align="right"><a name="116"></a><a href="#116">116</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">self</span><span class="default">::</span><span class="default">FIELD_DISTANCE</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="keyword">[</span></td></tr> + <tr><td><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'name'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">'d'</span></td></tr> + <tr><td><div align="right"><a name="118"></a><a href="#118">118</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">]</span><span class="keyword">,</span></td></tr> + <tr><td><div align="right"><a name="119"></a><a href="#119">119</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">self</span><span class="default">::</span><span class="default">FIELD_ORGANIZATION</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="keyword">[</span></td></tr> + <tr><td><div align="right"><a name="120"></a><a href="#120">120</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'name'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">'o'</span></td></tr> + <tr><td><div align="right"><a name="121"></a><a href="#121">121</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">]</span></td></tr> + <tr><td><div align="right"><a name="122"></a><a href="#122">122</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="123"></a><a href="#123">123</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="124"></a><a href="#124">124</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$mappings</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span></td></tr> + <tr><td><div align="right"><a name="125"></a><a href="#125">125</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'profession'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">'profession_MultiString'</span><span class="keyword">,</span></td></tr> + <tr><td><div align="right"><a name="126"></a><a href="#126">126</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">'employmentType'</span><span class="default"> </span><span class="default">=></span><span class="default"> </span><span class="default">'employmentType_MultiString'</span><span class="keyword">,</span></td></tr> + <tr><td><div align="right"><a name="127"></a><a href="#127">127</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="128"></a><a href="#128">128</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="129"></a><a href="#129">129</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="130"></a><a href="#130">130</a></div></td><td class="codeLine"><span class="comment"> * @var array</span></td></tr> + <tr><td><div align="right"><a name="131"></a><a href="#131">131</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="132"></a><a href="#132">132</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$filterQueries</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="133"></a><a href="#133">133</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="134"></a><a href="#134">134</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="135"></a><a href="#135">135</a></div></td><td class="codeLine"><span class="comment"> * @var array</span></td></tr> + <tr><td><div align="right"><a name="136"></a><a href="#136">136</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="137"></a><a href="#137">137</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$boostQueries</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="138"></a><a href="#138">138</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="139"></a><a href="#139">139</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="140"></a><a href="#140">140</a></div></td><td class="codeLine"><span class="comment"> * @return array</span></td></tr> + <tr><td><div align="right"><a name="141"></a><a href="#141">141</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="142"></a><a href="#142">142</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getBoostQueries</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="143"></a><a href="#143">143</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 144" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #15</li><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #16</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="144"></a><a href="#144">144</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">boostQueries</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="145"></a><a href="#145">145</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="146"></a><a href="#146">146</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="147"></a><a href="#147">147</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="148"></a><a href="#148">148</a></div></td><td class="codeLine"><span class="comment"> * @param array $boostQueries</span></td></tr> + <tr><td><div align="right"><a name="149"></a><a href="#149">149</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="150"></a><a href="#150">150</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setBoostQueries</span><span class="keyword">(</span><span class="keyword">array</span><span class="default"> </span><span class="default">$boostQueries</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="151"></a><a href="#151">151</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 152" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #16</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="152"></a><a href="#152">152</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">boostQueries</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$boostQueries</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 153" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #16</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="153"></a><a href="#153">153</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="154"></a><a href="#154">154</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="155"></a><a href="#155">155</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="156"></a><a href="#156">156</a></div></td><td class="codeLine"><span class="comment"> * @return array</span></td></tr> + <tr><td><div align="right"><a name="157"></a><a href="#157">157</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="158"></a><a href="#158">158</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getSorts</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">:</span><span class="default"> </span><span class="keyword">array</span></td></tr> + <tr><td><div align="right"><a name="159"></a><a href="#159">159</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 160" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #13</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="160"></a><a href="#160">160</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">sorts</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="161"></a><a href="#161">161</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="162"></a><a href="#162">162</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="163"></a><a href="#163">163</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="164"></a><a href="#164">164</a></div></td><td class="codeLine"><span class="comment"> * @param array $sorts</span></td></tr> + <tr><td><div align="right"><a name="165"></a><a href="#165">165</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="166"></a><a href="#166">166</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setSorts</span><span class="keyword">(</span><span class="keyword">array</span><span class="default"> </span><span class="default">$sorts</span><span class="keyword">)</span><span class="keyword">:</span><span class="default"> </span><span class="default">void</span></td></tr> + <tr><td><div align="right"><a name="167"></a><a href="#167">167</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 168" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #13</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="168"></a><a href="#168">168</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">sorts</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$sorts</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 169" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #13</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="169"></a><a href="#169">169</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="170"></a><a href="#170">170</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="171"></a><a href="#171">171</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="172"></a><a href="#172">172</a></div></td><td class="codeLine"><span class="comment"> * @return array</span></td></tr> + <tr><td><div align="right"><a name="173"></a><a href="#173">173</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="174"></a><a href="#174">174</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getFilterQueries</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="175"></a><a href="#175">175</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 176" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #14</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="176"></a><a href="#176">176</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">filterQueries</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="177"></a><a href="#177">177</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="178"></a><a href="#178">178</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="179"></a><a href="#179">179</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="180"></a><a href="#180">180</a></div></td><td class="codeLine"><span class="comment"> * @param array $filterQueries</span></td></tr> + <tr><td><div align="right"><a name="181"></a><a href="#181">181</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="182"></a><a href="#182">182</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setFilterQueries</span><span class="keyword">(</span><span class="keyword">array</span><span class="default"> </span><span class="default">$filterQueries</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="183"></a><a href="#183">183</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 184" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #14</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="184"></a><a href="#184">184</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">filterQueries</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$filterQueries</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 185" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #14</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="185"></a><a href="#185">185</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="186"></a><a href="#186">186</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="187"></a><a href="#187">187</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="188"></a><a href="#188">188</a></div></td><td class="codeLine"><span class="comment"> * @return boolean</span></td></tr> + <tr><td><div align="right"><a name="189"></a><a href="#189">189</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="190"></a><a href="#190">190</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">isSecure</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="191"></a><a href="#191">191</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 192" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #6</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="192"></a><a href="#192">192</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">secure</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="193"></a><a href="#193">193</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="194"></a><a href="#194">194</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="195"></a><a href="#195">195</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="196"></a><a href="#196">196</a></div></td><td class="codeLine"><span class="comment"> * @param boolean $secure</span></td></tr> + <tr><td><div align="right"><a name="197"></a><a href="#197">197</a></div></td><td class="codeLine"><span class="comment"> * @return ModuleOptions</span></td></tr> + <tr><td><div align="right"><a name="198"></a><a href="#198">198</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="199"></a><a href="#199">199</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setSecure</span><span class="keyword">(</span><span class="default">$secure</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="200"></a><a href="#200">200</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 201" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #6</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="201"></a><a href="#201">201</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">secure</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$secure</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="202"></a><a href="#202">202</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 203" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #6</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="203"></a><a href="#203">203</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="204"></a><a href="#204">204</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="205"></a><a href="#205">205</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="206"></a><a href="#206">206</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="207"></a><a href="#207">207</a></div></td><td class="codeLine"><span class="comment"> * @return string</span></td></tr> + <tr><td><div align="right"><a name="208"></a><a href="#208">208</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="209"></a><a href="#209">209</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getHostname</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="210"></a><a href="#210">210</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 211" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #0</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="211"></a><a href="#211">211</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">hostname</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="212"></a><a href="#212">212</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="213"></a><a href="#213">213</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="214"></a><a href="#214">214</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="215"></a><a href="#215">215</a></div></td><td class="codeLine"><span class="comment"> * @param string $hostname</span></td></tr> + <tr><td><div align="right"><a name="216"></a><a href="#216">216</a></div></td><td class="codeLine"><span class="comment"> * @return ModuleOptions</span></td></tr> + <tr><td><div align="right"><a name="217"></a><a href="#217">217</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="218"></a><a href="#218">218</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setHostname</span><span class="keyword">(</span><span class="default">$hostname</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="219"></a><a href="#219">219</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 220" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #0</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="220"></a><a href="#220">220</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">hostname</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$hostname</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="221"></a><a href="#221">221</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 222" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #0</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="222"></a><a href="#222">222</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="223"></a><a href="#223">223</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="224"></a><a href="#224">224</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="225"></a><a href="#225">225</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="226"></a><a href="#226">226</a></div></td><td class="codeLine"><span class="comment"> * @return int</span></td></tr> + <tr><td><div align="right"><a name="227"></a><a href="#227">227</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="228"></a><a href="#228">228</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getPort</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="229"></a><a href="#229">229</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 230" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #1</li><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #2</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="230"></a><a href="#230">230</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">port</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="231"></a><a href="#231">231</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="232"></a><a href="#232">232</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="233"></a><a href="#233">233</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="234"></a><a href="#234">234</a></div></td><td class="codeLine"><span class="comment"> * @param int $port</span></td></tr> + <tr><td><div align="right"><a name="235"></a><a href="#235">235</a></div></td><td class="codeLine"><span class="comment"> * @return ModuleOptions</span></td></tr> + <tr><td><div align="right"><a name="236"></a><a href="#236">236</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="237"></a><a href="#237">237</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setPort</span><span class="keyword">(</span><span class="default">$port</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="238"></a><a href="#238">238</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 239" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #2</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="239"></a><a href="#239">239</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">port</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$port</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="240"></a><a href="#240">240</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 241" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #2</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="241"></a><a href="#241">241</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="242"></a><a href="#242">242</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="243"></a><a href="#243">243</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="244"></a><a href="#244">244</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="245"></a><a href="#245">245</a></div></td><td class="codeLine"><span class="comment"> * @return string</span></td></tr> + <tr><td><div align="right"><a name="246"></a><a href="#246">246</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="247"></a><a href="#247">247</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getPath</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="248"></a><a href="#248">248</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 249" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #3</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="249"></a><a href="#249">249</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">path</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="250"></a><a href="#250">250</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="251"></a><a href="#251">251</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="252"></a><a href="#252">252</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="253"></a><a href="#253">253</a></div></td><td class="codeLine"><span class="comment"> * @param string $path</span></td></tr> + <tr><td><div align="right"><a name="254"></a><a href="#254">254</a></div></td><td class="codeLine"><span class="comment"> * @return ModuleOptions</span></td></tr> + <tr><td><div align="right"><a name="255"></a><a href="#255">255</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="256"></a><a href="#256">256</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setPath</span><span class="keyword">(</span><span class="default">$path</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="257"></a><a href="#257">257</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 258" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #3</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="258"></a><a href="#258">258</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">path</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$path</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="259"></a><a href="#259">259</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 260" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #3</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="260"></a><a href="#260">260</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="261"></a><a href="#261">261</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="262"></a><a href="#262">262</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="263"></a><a href="#263">263</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="264"></a><a href="#264">264</a></div></td><td class="codeLine"><span class="comment"> * @return string</span></td></tr> + <tr><td><div align="right"><a name="265"></a><a href="#265">265</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="266"></a><a href="#266">266</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getUsername</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="267"></a><a href="#267">267</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 268" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #4</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="268"></a><a href="#268">268</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">username</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="269"></a><a href="#269">269</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="270"></a><a href="#270">270</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="271"></a><a href="#271">271</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="272"></a><a href="#272">272</a></div></td><td class="codeLine"><span class="comment"> * @param string $username</span></td></tr> + <tr><td><div align="right"><a name="273"></a><a href="#273">273</a></div></td><td class="codeLine"><span class="comment"> * @return ModuleOptions</span></td></tr> + <tr><td><div align="right"><a name="274"></a><a href="#274">274</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="275"></a><a href="#275">275</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setUsername</span><span class="keyword">(</span><span class="default">$username</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="276"></a><a href="#276">276</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 277" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #4</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="277"></a><a href="#277">277</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">username</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$username</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="278"></a><a href="#278">278</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 279" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #4</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="279"></a><a href="#279">279</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="280"></a><a href="#280">280</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="281"></a><a href="#281">281</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="282"></a><a href="#282">282</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="283"></a><a href="#283">283</a></div></td><td class="codeLine"><span class="comment"> * @return string</span></td></tr> + <tr><td><div align="right"><a name="284"></a><a href="#284">284</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="285"></a><a href="#285">285</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getPassword</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="286"></a><a href="#286">286</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 287" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #5</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="287"></a><a href="#287">287</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">password</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="288"></a><a href="#288">288</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="289"></a><a href="#289">289</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="290"></a><a href="#290">290</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="291"></a><a href="#291">291</a></div></td><td class="codeLine"><span class="comment"> * @param string $password</span></td></tr> + <tr><td><div align="right"><a name="292"></a><a href="#292">292</a></div></td><td class="codeLine"><span class="comment"> * @return ModuleOptions</span></td></tr> + <tr><td><div align="right"><a name="293"></a><a href="#293">293</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="294"></a><a href="#294">294</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setPassword</span><span class="keyword">(</span><span class="default">$password</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="295"></a><a href="#295">295</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 296" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #5</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="296"></a><a href="#296">296</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">password</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$password</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="297"></a><a href="#297">297</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 298" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #5</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="298"></a><a href="#298">298</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="299"></a><a href="#299">299</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="300"></a><a href="#300">300</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="301"></a><a href="#301">301</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="302"></a><a href="#302">302</a></div></td><td class="codeLine"><span class="comment"> * @return string</span></td></tr> + <tr><td><div align="right"><a name="303"></a><a href="#303">303</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="304"></a><a href="#304">304</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getJobsPath</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="305"></a><a href="#305">305</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 306" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #7</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="306"></a><a href="#306">306</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">jobsPath</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="307"></a><a href="#307">307</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="308"></a><a href="#308">308</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="309"></a><a href="#309">309</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="310"></a><a href="#310">310</a></div></td><td class="codeLine"><span class="comment"> * @param string $jobsPath</span></td></tr> + <tr><td><div align="right"><a name="311"></a><a href="#311">311</a></div></td><td class="codeLine"><span class="comment"> * @return ModuleOptions</span></td></tr> + <tr><td><div align="right"><a name="312"></a><a href="#312">312</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="313"></a><a href="#313">313</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setJobsPath</span><span class="keyword">(</span><span class="default">$jobsPath</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="314"></a><a href="#314">314</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 315" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #7</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="315"></a><a href="#315">315</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">jobsPath</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$jobsPath</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="316"></a><a href="#316">316</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 317" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #7</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="317"></a><a href="#317">317</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="318"></a><a href="#318">318</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="319"></a><a href="#319">319</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="320"></a><a href="#320">320</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="321"></a><a href="#321">321</a></div></td><td class="codeLine"><span class="comment"> * @return array</span></td></tr> + <tr><td><div align="right"><a name="322"></a><a href="#322">322</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="323"></a><a href="#323">323</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getFacetFields</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="324"></a><a href="#324">324</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 325" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #8</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="325"></a><a href="#325">325</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">facetFields</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="326"></a><a href="#326">326</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="327"></a><a href="#327">327</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="328"></a><a href="#328">328</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="329"></a><a href="#329">329</a></div></td><td class="codeLine"><span class="comment"> * @param $facetFields</span></td></tr> + <tr><td><div align="right"><a name="330"></a><a href="#330">330</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="331"></a><a href="#331">331</a></div></td><td class="codeLine"><span class="comment"> * @return $this</span></td></tr> + <tr><td><div align="right"><a name="332"></a><a href="#332">332</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="333"></a><a href="#333">333</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setFacetFields</span><span class="keyword">(</span><span class="default">$facetFields</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="334"></a><a href="#334">334</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 335" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #8</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="335"></a><a href="#335">335</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">facetFields</span><span class="keyword">=</span><span class="default">$facetFields</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 336" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #8</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="336"></a><a href="#336">336</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="337"></a><a href="#337">337</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="338"></a><a href="#338">338</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="339"></a><a href="#339">339</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="340"></a><a href="#340">340</a></div></td><td class="codeLine"><span class="comment"> * @return array</span></td></tr> + <tr><td><div align="right"><a name="341"></a><a href="#341">341</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="342"></a><a href="#342">342</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getParameterNames</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="343"></a><a href="#343">343</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 344" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #11</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="344"></a><a href="#344">344</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">parameterNames</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="345"></a><a href="#345">345</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="346"></a><a href="#346">346</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="347"></a><a href="#347">347</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="348"></a><a href="#348">348</a></div></td><td class="codeLine"><span class="comment"> * @param $parameterNames</span></td></tr> + <tr><td><div align="right"><a name="349"></a><a href="#349">349</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="350"></a><a href="#350">350</a></div></td><td class="codeLine"><span class="comment"> * @return $this</span></td></tr> + <tr><td><div align="right"><a name="351"></a><a href="#351">351</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="352"></a><a href="#352">352</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setParameterNames</span><span class="keyword">(</span><span class="default">$parameterNames</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="353"></a><a href="#353">353</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 354" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #11</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="354"></a><a href="#354">354</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">parameterNames</span><span class="keyword">=</span><span class="default">$parameterNames</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 355" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #11</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="355"></a><a href="#355">355</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="356"></a><a href="#356">356</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="357"></a><a href="#357">357</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="358"></a><a href="#358">358</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="359"></a><a href="#359">359</a></div></td><td class="codeLine"><span class="comment"> * @return array</span></td></tr> + <tr><td><div align="right"><a name="360"></a><a href="#360">360</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="361"></a><a href="#361">361</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getFacetLimit</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="362"></a><a href="#362">362</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 363" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #9</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="363"></a><a href="#363">363</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">facetLimit</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="364"></a><a href="#364">364</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="365"></a><a href="#365">365</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="366"></a><a href="#366">366</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="367"></a><a href="#367">367</a></div></td><td class="codeLine"><span class="comment"> * @param $facetLimit</span></td></tr> + <tr><td><div align="right"><a name="368"></a><a href="#368">368</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="369"></a><a href="#369">369</a></div></td><td class="codeLine"><span class="comment"> * @return $this</span></td></tr> + <tr><td><div align="right"><a name="370"></a><a href="#370">370</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="371"></a><a href="#371">371</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setFacetLimit</span><span class="keyword">(</span><span class="default">$facetLimit</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="372"></a><a href="#372">372</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 373" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #9</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="373"></a><a href="#373">373</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">facetLimit</span><span class="keyword">=</span><span class="default">$facetLimit</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 374" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #9</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="374"></a><a href="#374">374</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="375"></a><a href="#375">375</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="376"></a><a href="#376">376</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="377"></a><a href="#377">377</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="378"></a><a href="#378">378</a></div></td><td class="codeLine"><span class="comment"> * @return array</span></td></tr> + <tr><td><div align="right"><a name="379"></a><a href="#379">379</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="380"></a><a href="#380">380</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getFacetMinCount</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="381"></a><a href="#381">381</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 382" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #10</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="382"></a><a href="#382">382</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">facetMinCount</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="383"></a><a href="#383">383</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="384"></a><a href="#384">384</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="385"></a><a href="#385">385</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="386"></a><a href="#386">386</a></div></td><td class="codeLine"><span class="comment"> * @param $facetMinCount</span></td></tr> + <tr><td><div align="right"><a name="387"></a><a href="#387">387</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="388"></a><a href="#388">388</a></div></td><td class="codeLine"><span class="comment"> * @return $this</span></td></tr> + <tr><td><div align="right"><a name="389"></a><a href="#389">389</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="390"></a><a href="#390">390</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setFacetMinCount</span><span class="keyword">(</span><span class="default">$facetMinCount</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="391"></a><a href="#391">391</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 392" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #10</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="392"></a><a href="#392">392</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">facetMinCount</span><span class="keyword">=</span><span class="default">$facetMinCount</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 393" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #10</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="393"></a><a href="#393">393</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="394"></a><a href="#394">394</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="395"></a><a href="#395">395</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="396"></a><a href="#396">396</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="397"></a><a href="#397">397</a></div></td><td class="codeLine"><span class="comment"> * @param $key</span></td></tr> + <tr><td><div align="right"><a name="398"></a><a href="#398">398</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="399"></a><a href="#399">399</a></div></td><td class="codeLine"><span class="comment"> * @return mixed</span></td></tr> + <tr><td><div align="right"><a name="400"></a><a href="#400">400</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="401"></a><a href="#401">401</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getParameterName</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="402"></a><a href="#402">402</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="403"></a><a href="#403">403</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">!</span><span class="default">in_array</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">,</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">validFields</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="danger"><td><div align="right"><a name="404"></a><a href="#404">404</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">throw</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">\</span><span class="default">InvalidArgumentException</span><span class="keyword">(</span><span class="default">'an invalid field name was passed. Valid fieldnames are: ('</span><span class="default"> </span><span class="keyword">.</span><span class="default"> </span><span class="default">implode</span><span class="keyword">(</span><span class="default">'|'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">validFields</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">')'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="405"></a><a href="#405">405</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr class="danger"><td><div align="right"><a name="406"></a><a href="#406">406</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">parameterNames</span><span class="keyword">[</span><span class="default">$key</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">'name'</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="407"></a><a href="#407">407</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="408"></a><a href="#408">408</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="409"></a><a href="#409">409</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getMappings</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="410"></a><a href="#410">410</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 411" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #12</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="411"></a><a href="#411">411</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">mappings</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="412"></a><a href="#412">412</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="413"></a><a href="#413">413</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="414"></a><a href="#414">414</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">setMappings</span><span class="keyword">(</span><span class="default">$mappings</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="415"></a><a href="#415">415</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 416" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #12</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="416"></a><a href="#416">416</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">mappings</span><span class="keyword">=</span><span class="default">$mappings</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 417" data-content="<ul><li class="covered-by-large-tests">SolrTest\Options\ModuleOptionsTest::testSetterAndGetter with data set #12</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="417"></a><a href="#417">417</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="418"></a><a href="#418">418</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="419"></a><a href="#419">419</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/popper.min.js" type="text/javascript"></script> + <script src="../_js/bootstrap.min.js" type="text/javascript"></script> + <script src="../_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/Options/dashboard.html b/test/coverage/Options/dashboard.html new file mode 100644 index 0000000..cc9c3fd --- /dev/null +++ b/test/coverage/Options/dashboard.html @@ -0,0 +1,286 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Dashboard for /home/cbleek/AtomProjects/Solr/src/Options</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/nv.d3.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Options</a></li> + <li class="breadcrumb-item active">(Dashboard)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <h2>Classes</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="classCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="classComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <h2>Methods</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="methodCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="methodComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + <tr><td><a href="ModuleOptions.php.html#401"><abbr title="Solr\Options\ModuleOptions::getParameterName">getParameterName</abbr></a></td><td class="text-right">0%</td></tr> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + <tr><td><a href="ModuleOptions.php.html#401"><abbr title="Solr\Options\ModuleOptions::getParameterName">getParameterName</abbr></a></td><td class="text-right">6</td></tr> + + </tbody> + </table> + </div> + </div> + </div> + <footer> + <hr/> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/d3.min.js" type="text/javascript"></script> + <script src="../_js/nv.d3.min.js" type="text/javascript"></script> + <script type="text/javascript"> +$(document).ready(function() { + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#classCoverageDistribution svg') + .datum(getCoverageDistributionData([0,0,0,0,0,0,0,0,0,0,1,0], "Class Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#methodCoverageDistribution svg') + .datum(getCoverageDistributionData([1,0,0,0,0,0,0,0,0,0,0,30], "Method Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getCoverageDistributionData(data, label) { + var labels = [ + '0%', + '0-10%', + '10-20%', + '20-30%', + '30-40%', + '40-50%', + '50-60%', + '60-70%', + '70-80%', + '80-90%', + '90-100%', + '100%' + ]; + var values = []; + $.each(labels, function(key) { + values.push({x: labels[key], y: data[key]}); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Cyclomatic Complexity'); + + d3.select('#classComplexity svg') + .datum(getComplexityData([[93.75,32,"<a href=\"ModuleOptions.php.html#22\">Solr\\Options\\ModuleOptions<\/a>"]], 'Class Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Method Complexity'); + + d3.select('#methodComplexity svg') + .datum(getComplexityData([[100,1,"<a href=\"ModuleOptions.php.html#142\">Solr\\Options\\ModuleOptions::getBoostQueries<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#150\">Solr\\Options\\ModuleOptions::setBoostQueries<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#158\">Solr\\Options\\ModuleOptions::getSorts<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#166\">Solr\\Options\\ModuleOptions::setSorts<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#174\">Solr\\Options\\ModuleOptions::getFilterQueries<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#182\">Solr\\Options\\ModuleOptions::setFilterQueries<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#190\">Solr\\Options\\ModuleOptions::isSecure<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#199\">Solr\\Options\\ModuleOptions::setSecure<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#209\">Solr\\Options\\ModuleOptions::getHostname<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#218\">Solr\\Options\\ModuleOptions::setHostname<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#228\">Solr\\Options\\ModuleOptions::getPort<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#237\">Solr\\Options\\ModuleOptions::setPort<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#247\">Solr\\Options\\ModuleOptions::getPath<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#256\">Solr\\Options\\ModuleOptions::setPath<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#266\">Solr\\Options\\ModuleOptions::getUsername<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#275\">Solr\\Options\\ModuleOptions::setUsername<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#285\">Solr\\Options\\ModuleOptions::getPassword<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#294\">Solr\\Options\\ModuleOptions::setPassword<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#304\">Solr\\Options\\ModuleOptions::getJobsPath<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#313\">Solr\\Options\\ModuleOptions::setJobsPath<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#323\">Solr\\Options\\ModuleOptions::getFacetFields<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#333\">Solr\\Options\\ModuleOptions::setFacetFields<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#342\">Solr\\Options\\ModuleOptions::getParameterNames<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#352\">Solr\\Options\\ModuleOptions::setParameterNames<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#361\">Solr\\Options\\ModuleOptions::getFacetLimit<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#371\">Solr\\Options\\ModuleOptions::setFacetLimit<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#380\">Solr\\Options\\ModuleOptions::getFacetMinCount<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#390\">Solr\\Options\\ModuleOptions::setFacetMinCount<\/a>"],[0,2,"<a href=\"ModuleOptions.php.html#401\">Solr\\Options\\ModuleOptions::getParameterName<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#409\">Solr\\Options\\ModuleOptions::getMappings<\/a>"],[100,1,"<a href=\"ModuleOptions.php.html#414\">Solr\\Options\\ModuleOptions::setMappings<\/a>"]], 'Method Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getComplexityData(data, label) { + var values = []; + $.each(data, function(key) { + var value = Math.round(data[key][0]*100) / 100; + values.push({ + x: value, + y: data[key][1], + class: data[key][2], + size: 0.05, + shape: 'diamond' + }); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } +}); + </script> + </body> +</html> diff --git a/test/coverage/Options/index.html b/test/coverage/Options/index.html new file mode 100644 index 0000000..96bbc98 --- /dev/null +++ b/test/coverage/Options/index.html @@ -0,0 +1,119 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Options</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item active">Options</li> + <li class="breadcrumb-item">(<a href="dashboard.html">Dashboard</a>)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="9"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + <td colspan="3"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="success">Total</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="93.75" aria-valuemin="0" aria-valuemax="100" style="width: 93.75%"> + <span class="sr-only">93.75% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">93.75%</div></td> + <td class="success small"><div align="right">45 / 48</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="96.77" aria-valuemin="0" aria-valuemax="100" style="width: 96.77%"> + <span class="sr-only">96.77% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">96.77%</div></td> + <td class="success small"><div align="right">30 / 31</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + <tr> + <td class="success"><img src="../_icons/file-code.svg" class="octicon" /><a href="ModuleOptions.php.html">ModuleOptions.php</a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="93.75" aria-valuemin="0" aria-valuemax="100" style="width: 93.75%"> + <span class="sr-only">93.75% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">93.75%</div></td> + <td class="success small"><div align="right">45 / 48</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="96.77" aria-valuemin="0" aria-valuemax="100" style="width: 96.77%"> + <span class="sr-only">96.77% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">96.77%</div></td> + <td class="success small"><div align="right">30 / 31</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + + </tbody> + </table> + </div> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="danger"><strong>Low</strong>: 0% to 50%</span> + <span class="warning"><strong>Medium</strong>: 50% to 90%</span> + <span class="success"><strong>High</strong>: 90% to 100%</span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + </body> +</html> diff --git a/test/coverage/Paginator/Adapter/SolrAdapter.php.html b/test/coverage/Paginator/Adapter/SolrAdapter.php.html new file mode 100644 index 0000000..980973c --- /dev/null +++ b/test/coverage/Paginator/Adapter/SolrAdapter.php.html @@ -0,0 +1,380 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Paginator/Adapter/SolrAdapter.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="../index.html">Paginator</a></li> + <li class="breadcrumb-item"><a href="index.html">Adapter</a></li> + <li class="breadcrumb-item active">SolrAdapter.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="success">Total</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">5 / 5</div></td> + <td class="success small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">22 / 22</div></td> + </tr> + + <tr> + <td class="success"><abbr title="Solr\Paginator\Adapter\SolrAdapter">SolrAdapter</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">5 / 5</div></td> + <td class="success small">7</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">22 / 22</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#77"><abbr title="__construct($client, $filter, $resultConverter, Facets $facets, $params = array())">__construct</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">6 / 6</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#89"><abbr title="getItems($offset, $itemCountPerPage)">getItems</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">3 / 3</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#102"><abbr title="count()">count</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#111"><abbr title="getFacets()">getFacets</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#124"><abbr title="getResponse($offset = 0, $itemCountPerPage = 0)">getResponse</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">3</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">10 / 10</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * YAWIK</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @filesource</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @copyright (c) 2013 - 2016 Cross Solution (http://cross-solution.de)</span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @license MIT</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Paginator</span><span class="default">\</span><span class="default">Adapter</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Exception</span><span class="default">\</span><span class="default">ServerException</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Filter</span><span class="default">\</span><span class="default">AbstractPaginationQuery</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Zend</span><span class="default">\</span><span class="default">Paginator</span><span class="default">\</span><span class="default">Adapter</span><span class="default">\</span><span class="default">AdapterInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Zend</span><span class="default">\</span><span class="default">Stdlib</span><span class="default">\</span><span class="default">Parameters</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Bridge</span><span class="default">\</span><span class="default">ResultConverter</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">FacetsProviderInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Facets</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="comment"> * Provide adapter for Solr type paginator</span></td></tr> + <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="comment"> * @author Anthonius Munthi <me@itstoni.com></span></td></tr> + <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="comment"> * @author Miroslav Fedeleš <miroslav.fedeles@gmail.com></span></td></tr> + <tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="comment"> * @since 0.26</span></td></tr> + <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="comment"> * @package Solr\Paginator\Adapter</span></td></tr> + <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default"> </span><span class="default">SolrAdapter</span><span class="default"> </span><span class="keyword">implements</span><span class="default"> </span><span class="default">AdapterInterface</span><span class="keyword">,</span><span class="default"> </span><span class="default">FacetsProviderInterface</span></td></tr> + <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="comment"> * @var \SolrClient</span></td></tr> + <tr><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$client</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="comment"> * @var Parameters</span></td></tr> + <tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$params</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="comment"> * @var int</span></td></tr> + <tr><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$count</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="comment"> * @var Facets</span></td></tr> + <tr><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$facets</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"><span class="comment"> * Store current query response from solr server</span></td></tr> + <tr><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine"><span class="comment"> * based on offset and count per page</span></td></tr> + <tr><td><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"><span class="comment"> * @var \SolrQueryResponse[]</span></td></tr> + <tr><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$responses</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"><span class="comment"> * @var AbstractPaginationQuery</span></td></tr> + <tr><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$filter</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"><span class="comment"> * @var ResultConverter</span></td></tr> + <tr><td><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="default">$resultConverter</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine"><span class="comment"> * SolrAdapter constructor.</span></td></tr> + <tr><td><div align="right"><a name="70"></a><a href="#70">70</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="71"></a><a href="#71">71</a></div></td><td class="codeLine"><span class="comment"> * @param \SolrClient $client</span></td></tr> + <tr><td><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"><span class="comment"> * @param AbstractPaginationQuery $filter</span></td></tr> + <tr><td><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine"><span class="comment"> * @param ResultConverter $resultConverter</span></td></tr> + <tr><td><div align="right"><a name="74"></a><a href="#74">74</a></div></td><td class="codeLine"><span class="comment"> * @param Facets $facets</span></td></tr> + <tr><td><div align="right"><a name="75"></a><a href="#75">75</a></div></td><td class="codeLine"><span class="comment"> * @param array $params</span></td></tr> + <tr><td><div align="right"><a name="76"></a><a href="#76">76</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">__construct</span><span class="keyword">(</span><span class="default">$client</span><span class="keyword">,</span><span class="default"> </span><span class="default">$filter</span><span class="keyword">,</span><span class="default"> </span><span class="default">$resultConverter</span><span class="keyword">,</span><span class="default"> </span><span class="default">Facets</span><span class="default"> </span><span class="default">$facets</span><span class="keyword">,</span><span class="default"> </span><span class="default">$params</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">array</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 79" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetItemsAndCount</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testThrowException</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetFacets</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">client</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$client</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 80" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetItemsAndCount</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testThrowException</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetFacets</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">filter</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$filter</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 81" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetItemsAndCount</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testThrowException</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetFacets</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">resultConverter</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$resultConverter</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 82" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetItemsAndCount</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testThrowException</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetFacets</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">facets</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$facets</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 83" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetItemsAndCount</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testThrowException</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetFacets</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">params</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$params</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 84" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetItemsAndCount</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testThrowException</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetFacets</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="86"></a><a href="#86">86</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="87"></a><a href="#87">87</a></div></td><td class="codeLine"><span class="comment"> * @inheritdoc</span></td></tr> + <tr><td><div align="right"><a name="88"></a><a href="#88">88</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getItems</span><span class="keyword">(</span><span class="default">$offset</span><span class="keyword">,</span><span class="default"> </span><span class="default">$itemCountPerPage</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="90"></a><a href="#90">90</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 91" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetItemsAndCount</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">resultConverter</span><span class="default">-></span><span class="default">convert</span><span class="keyword">(</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 92" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetItemsAndCount</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">filter</span><span class="keyword">,</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 93" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetItemsAndCount</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">getResponse</span><span class="keyword">(</span><span class="default">$offset</span><span class="keyword">,</span><span class="default"> </span><span class="default">$itemCountPerPage</span><span class="keyword">)</span><span class="default">-></span><span class="default">getResponse</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="98"></a><a href="#98">98</a></div></td><td class="codeLine"><span class="comment"> * @inheritdoc</span></td></tr> + <tr><td><div align="right"><a name="99"></a><a href="#99">99</a></div></td><td class="codeLine"><span class="comment"> * @return mixed</span></td></tr> + <tr><td><div align="right"><a name="100"></a><a href="#100">100</a></div></td><td class="codeLine"><span class="comment"> * @throws \Exception</span></td></tr> + <tr><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">count</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 104" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetItemsAndCount</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testThrowException</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="104"></a><a href="#104">104</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$response</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">getResponse</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">getArrayResponse</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 105" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetItemsAndCount</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="105"></a><a href="#105">105</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$response</span><span class="keyword">[</span><span class="default">'response'</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">'numFound'</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="106"></a><a href="#106">106</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="107"></a><a href="#107">107</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine"><span class="comment"> * @see \Solr\FacetsProviderInterface::getFacets()</span></td></tr> + <tr><td><div align="right"><a name="110"></a><a href="#110">110</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="111"></a><a href="#111">111</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getFacets</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 113" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetFacets</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="113"></a><a href="#113">113</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">facets</span><span class="default">-></span><span class="default">setFacetResult</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">getResponse</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">getResponse</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-></span><span class="default">facet_counts</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="114"></a><a href="#114">114</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="115"></a><a href="#115">115</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="116"></a><a href="#116">116</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine"><span class="comment"> * Process query into server</span></td></tr> + <tr><td><div align="right"><a name="118"></a><a href="#118">118</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="119"></a><a href="#119">119</a></div></td><td class="codeLine"><span class="comment"> * @param int $offset</span></td></tr> + <tr><td><div align="right"><a name="120"></a><a href="#120">120</a></div></td><td class="codeLine"><span class="comment"> * @param int $itemCountPerPage</span></td></tr> + <tr><td><div align="right"><a name="121"></a><a href="#121">121</a></div></td><td class="codeLine"><span class="comment"> * @return \SolrQueryResponse</span></td></tr> + <tr><td><div align="right"><a name="122"></a><a href="#122">122</a></div></td><td class="codeLine"><span class="comment"> * @throws ServerException</span></td></tr> + <tr><td><div align="right"><a name="123"></a><a href="#123">123</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="124"></a><a href="#124">124</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getResponse</span><span class="keyword">(</span><span class="default">$offset</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">0</span><span class="keyword">,</span><span class="default"> </span><span class="default">$itemCountPerPage</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">0</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="125"></a><a href="#125">125</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 126" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetItemsAndCount</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testThrowException</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetFacets</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="126"></a><a href="#126">126</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$id</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">md5</span><span class="keyword">(</span><span class="default">$offset</span><span class="default"> </span><span class="keyword">.</span><span class="default"> </span><span class="default">$itemCountPerPage</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 127" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetItemsAndCount</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testThrowException</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetFacets</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="127"></a><a href="#127">127</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">!</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">responses</span><span class="keyword">[</span><span class="default">$id</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 128" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetItemsAndCount</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testThrowException</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetFacets</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="128"></a><a href="#128">128</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">\</span><span class="default">SolrDisMaxQuery</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 129" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetItemsAndCount</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testThrowException</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetFacets</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="129"></a><a href="#129">129</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">filter</span><span class="default">-></span><span class="default">filter</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">params</span><span class="keyword">,</span><span class="default"> </span><span class="default">$query</span><span class="keyword">,</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">facets</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 130" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetItemsAndCount</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testThrowException</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetFacets</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="130"></a><a href="#130">130</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">setStart</span><span class="keyword">(</span><span class="default">$offset</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 131" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetItemsAndCount</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testThrowException</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetFacets</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="131"></a><a href="#131">131</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$query</span><span class="default">-></span><span class="default">setRows</span><span class="keyword">(</span><span class="default">$itemCountPerPage</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="132"></a><a href="#132">132</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">try</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="3 tests cover line 133" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetItemsAndCount</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testThrowException</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetFacets</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="133"></a><a href="#133">133</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">responses</span><span class="keyword">[</span><span class="default">$id</span><span class="keyword">]</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">client</span><span class="default">-></span><span class="default">query</span><span class="keyword">(</span><span class="default">$query</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 134" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testThrowException</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="134"></a><a href="#134">134</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span><span class="default"> </span><span class="keyword">catch</span><span class="default"> </span><span class="keyword">(</span><span class="default">\</span><span class="default">Exception</span><span class="default"> </span><span class="default">$e</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 135" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testThrowException</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="135"></a><a href="#135">135</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">throw</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">ServerException</span><span class="keyword">(</span><span class="default">'Failed to process query'</span><span class="keyword">,</span><span class="default"> </span><span class="default">$e</span><span class="default">-></span><span class="default">getCode</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">,</span><span class="default"> </span><span class="default">$e</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="136"></a><a href="#136">136</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="137"></a><a href="#137">137</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="138"></a><a href="#138">138</a></div></td><td class="codeLine"></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 139" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetItemsAndCount</li><li class="covered-by-large-tests">SolrTest\Paginator\Adapter\SolrAdapterTest::testGetFacets</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="139"></a><a href="#139">139</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">responses</span><span class="keyword">[</span><span class="default">$id</span><span class="keyword">]</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="140"></a><a href="#140">140</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="141"></a><a href="#141">141</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="../../_js/jquery.min.js" type="text/javascript"></script> + <script src="../../_js/popper.min.js" type="text/javascript"></script> + <script src="../../_js/bootstrap.min.js" type="text/javascript"></script> + <script src="../../_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/Paginator/Adapter/dashboard.html b/test/coverage/Paginator/Adapter/dashboard.html new file mode 100644 index 0000000..14a1758 --- /dev/null +++ b/test/coverage/Paginator/Adapter/dashboard.html @@ -0,0 +1,285 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Dashboard for /home/cbleek/AtomProjects/Solr/src/Paginator/Adapter</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../../_css/nv.d3.min.css" rel="stylesheet" type="text/css"> + <link href="../../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="../index.html">Paginator</a></li> + <li class="breadcrumb-item"><a href="index.html">Adapter</a></li> + <li class="breadcrumb-item active">(Dashboard)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <h2>Classes</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="classCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="classComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <h2>Methods</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="methodCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="methodComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + </div> + <footer> + <hr/> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + <script src="../../_js/jquery.min.js" type="text/javascript"></script> + <script src="../../_js/d3.min.js" type="text/javascript"></script> + <script src="../../_js/nv.d3.min.js" type="text/javascript"></script> + <script type="text/javascript"> +$(document).ready(function() { + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#classCoverageDistribution svg') + .datum(getCoverageDistributionData([0,0,0,0,0,0,0,0,0,0,0,1], "Class Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#methodCoverageDistribution svg') + .datum(getCoverageDistributionData([0,0,0,0,0,0,0,0,0,0,0,5], "Method Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getCoverageDistributionData(data, label) { + var labels = [ + '0%', + '0-10%', + '10-20%', + '20-30%', + '30-40%', + '40-50%', + '50-60%', + '60-70%', + '70-80%', + '80-90%', + '90-100%', + '100%' + ]; + var values = []; + $.each(labels, function(key) { + values.push({x: labels[key], y: data[key]}); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Cyclomatic Complexity'); + + d3.select('#classComplexity svg') + .datum(getComplexityData([[100,7,"<a href=\"SolrAdapter.php.html#28\">Solr\\Paginator\\Adapter\\SolrAdapter<\/a>"]], 'Class Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Method Complexity'); + + d3.select('#methodComplexity svg') + .datum(getComplexityData([[100,1,"<a href=\"SolrAdapter.php.html#77\">Solr\\Paginator\\Adapter\\SolrAdapter::__construct<\/a>"],[100,1,"<a href=\"SolrAdapter.php.html#89\">Solr\\Paginator\\Adapter\\SolrAdapter::getItems<\/a>"],[100,1,"<a href=\"SolrAdapter.php.html#102\">Solr\\Paginator\\Adapter\\SolrAdapter::count<\/a>"],[100,1,"<a href=\"SolrAdapter.php.html#111\">Solr\\Paginator\\Adapter\\SolrAdapter::getFacets<\/a>"],[100,3,"<a href=\"SolrAdapter.php.html#124\">Solr\\Paginator\\Adapter\\SolrAdapter::getResponse<\/a>"]], 'Method Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getComplexityData(data, label) { + var values = []; + $.each(data, function(key) { + var value = Math.round(data[key][0]*100) / 100; + values.push({ + x: value, + y: data[key][1], + class: data[key][2], + size: 0.05, + shape: 'diamond' + }); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } +}); + </script> + </body> +</html> diff --git a/test/coverage/Paginator/Adapter/index.html b/test/coverage/Paginator/Adapter/index.html new file mode 100644 index 0000000..4265c78 --- /dev/null +++ b/test/coverage/Paginator/Adapter/index.html @@ -0,0 +1,120 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Paginator/Adapter</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="../index.html">Paginator</a></li> + <li class="breadcrumb-item active">Adapter</li> + <li class="breadcrumb-item">(<a href="dashboard.html">Dashboard</a>)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="9"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + <td colspan="3"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="success">Total</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">22 / 22</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">5 / 5</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success"><img src="../../_icons/file-code.svg" class="octicon" /><a href="SolrAdapter.php.html">SolrAdapter.php</a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">22 / 22</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">5 / 5</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + + </tbody> + </table> + </div> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="danger"><strong>Low</strong>: 0% to 50%</span> + <span class="warning"><strong>Medium</strong>: 50% to 90%</span> + <span class="success"><strong>High</strong>: 90% to 100%</span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + </body> +</html> diff --git a/test/coverage/Paginator/JobsBoardPaginatorFactory.php.html b/test/coverage/Paginator/JobsBoardPaginatorFactory.php.html new file mode 100644 index 0000000..340ed97 --- /dev/null +++ b/test/coverage/Paginator/JobsBoardPaginatorFactory.php.html @@ -0,0 +1,212 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Paginator/JobsBoardPaginatorFactory.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Paginator</a></li> + <li class="breadcrumb-item active">JobsBoardPaginatorFactory.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="success">Total</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + <td class="success small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="success"><abbr title="Solr\Paginator\JobsBoardPaginatorFactory">JobsBoardPaginatorFactory</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + <td class="success small">2</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#25"><abbr title="getFilter()">getFilter</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#33"><abbr title="getConnectPath(ModuleOptions $options)">getConnectPath</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * YAWIK</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @filesource</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @copyright (c) 2013 - 2016 Cross Solution (http://cross-solution.de)</span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @license MIT</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Paginator</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Options</span><span class="default">\</span><span class="default">ModuleOptions</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="comment"> * Provide Solr version of JobsPaginatorFactory</span></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="comment"> * This paginator factory will replace Jobs/Board with Solr/Jobs/Board paginator</span></td></tr> + <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="comment"> * @author Anthonius Munthi <me@itstoni.com></span></td></tr> + <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="comment"> * @since 0.26</span></td></tr> + <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="comment"> * @see Jobs\Paginator\JobPaginatorFactory</span></td></tr> + <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="comment"> * @package Solr\Paginator</span></td></tr> + <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default"> </span><span class="default">JobsBoardPaginatorFactory</span><span class="default"> </span><span class="keyword">extends</span><span class="default"> </span><span class="default">PaginatorFactoryAbstract</span></td></tr> + <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getFilter</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 27" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\JobsPaginatorFactoryTest::testInvokation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">'Solr/Jobs/PaginationQuery'</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="comment"> * {@inheritdoc}</span></td></tr> + <tr><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getConnectPath</span><span class="keyword">(</span><span class="default">ModuleOptions</span><span class="default"> </span><span class="default">$options</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 35" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\JobsPaginatorFactoryTest::testInvokation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$options</span><span class="default">-></span><span class="default">getJobsPath</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/popper.min.js" type="text/javascript"></script> + <script src="../_js/bootstrap.min.js" type="text/javascript"></script> + <script src="../_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/Paginator/Paginator.php.html b/test/coverage/Paginator/Paginator.php.html new file mode 100644 index 0000000..133b2c0 --- /dev/null +++ b/test/coverage/Paginator/Paginator.php.html @@ -0,0 +1,213 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Paginator/Paginator.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Paginator</a></li> + <li class="breadcrumb-item active">Paginator.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="success">Total</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + <td class="success small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">5 / 5</div></td> + </tr> + + <tr> + <td class="success"><abbr title="Solr\Paginator\Paginator">Paginator</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + <td class="success small">3</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">5 / 5</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#22"><abbr title="__construct($adapter)">__construct</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">2</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">4 / 4</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#34"><abbr title="getFacets()">getFacets</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * YAWIK</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @filesource</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @copyright (c) 2013 - 2016 Cross Solution (http://cross-solution.de)</span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @license MIT</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> * @author Miroslav Fedeleš <miroslav.fedeles@gmail.com></span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="comment"> * @since 0.27</span></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Paginator</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Zend</span><span class="default">\</span><span class="default">Paginator</span><span class="default">\</span><span class="default">Exception</span><span class="default">\</span><span class="default">InvalidArgumentException</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">FacetsProviderInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default"> </span><span class="default">Paginator</span><span class="default"> </span><span class="keyword">extends</span><span class="default"> </span><span class="default">\</span><span class="default">Zend</span><span class="default">\</span><span class="default">Paginator</span><span class="default">\</span><span class="default">Paginator</span><span class="default"> </span><span class="keyword">implements</span><span class="default"> </span><span class="default">FacetsProviderInterface</span></td></tr> + <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="comment"> * @see \Laminas\Paginator\Paginator::__construct()</span></td></tr> + <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">__construct</span><span class="keyword">(</span><span class="default">$adapter</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="2 tests cover line 24" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\PaginatorTest::testConstructorThrowInvalidArgumentException</li><li class="covered-by-large-tests">SolrTest\Paginator\PaginatorTest::testGetFacets</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">if</span><span class="default"> </span><span class="keyword">(</span><span class="keyword">!</span><span class="default">$adapter</span><span class="default"> </span><span class="keyword">instanceof</span><span class="default"> </span><span class="default">FacetsProviderInterface</span><span class="keyword">)</span><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 25" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\PaginatorTest::testConstructorThrowInvalidArgumentException</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">throw</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">InvalidArgumentException</span><span class="keyword">(</span><span class="default">sprintf</span><span class="keyword">(</span><span class="default">'adapter must implement %s interface'</span><span class="keyword">,</span><span class="default"> </span><span class="default">FacetsProviderInterface</span><span class="default">::</span><span class="keyword">class</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 28" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\PaginatorTest::testGetFacets</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">parent</span><span class="default">::</span><span class="default">__construct</span><span class="keyword">(</span><span class="default">$adapter</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 29" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\PaginatorTest::testGetFacets</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="comment"> * @see \Solr\FacetsProviderInterface::getFacets()</span></td></tr> + <tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getFacets</span><span class="keyword">(</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 36" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\PaginatorTest::testGetFacets</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">adapter</span><span class="default">-></span><span class="default">getFacets</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/popper.min.js" type="text/javascript"></script> + <script src="../_js/bootstrap.min.js" type="text/javascript"></script> + <script src="../_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/Paginator/PaginatorFactoryAbstract.php.html b/test/coverage/Paginator/PaginatorFactoryAbstract.php.html new file mode 100644 index 0000000..a4ebe71 --- /dev/null +++ b/test/coverage/Paginator/PaginatorFactoryAbstract.php.html @@ -0,0 +1,237 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Paginator/PaginatorFactoryAbstract.php</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Paginator</a></li> + <li class="breadcrumb-item active">PaginatorFactoryAbstract.php</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="success">Total</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">8 / 8</div></td> + </tr> + + <tr> + <td class="success"><abbr title="Solr\Paginator\PaginatorFactoryAbstract">PaginatorFactoryAbstract</abbr></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">3</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">8 / 8</div></td> + </tr> + + <tr> + <td class="success" colspan="4"> <a href="#31"><abbr title="__invoke(ContainerInterface $container, $requestedName, array $options = null)">__invoke</abbr></a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success small">1</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">8 / 8</div></td> + </tr> + + <tr> + <td class="" colspan="4"> <a href="#51"><abbr title="getFilter()">getFilter</abbr></a></td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + <td class=" small">1</td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + </tr> + + <tr> + <td class="" colspan="4"> <a href="#60"><abbr title="getConnectPath(ModuleOptions $options)">getConnectPath</abbr></a></td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + <td class=" small">1</td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + </tr> + + + </tbody> + </table> + </div> + <table id="code" class="table table-borderless table-condensed"> + <tbody> + <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine"><span class="default"><?php</span></td></tr> + <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"><span class="comment"> * YAWIK</span></td></tr> + <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="comment"> * @filesource</span></td></tr> + <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="comment"> * @copyright (c) 2013 - 2016 Cross Solution (http://cross-solution.de)</span></td></tr> + <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="comment"> * @license MIT</span></td></tr> + <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="keyword">namespace</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Paginator</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Core</span><span class="default">\</span><span class="default">Paginator</span><span class="default">\</span><span class="default">PaginatorService</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Interop</span><span class="default">\</span><span class="default">Container</span><span class="default">\</span><span class="default">ContainerInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Bridge</span><span class="default">\</span><span class="default">ResultConverter</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Options</span><span class="default">\</span><span class="default">ModuleOptions</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Paginator</span><span class="default">\</span><span class="default">Adapter</span><span class="default">\</span><span class="default">SolrAdapter</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Solr</span><span class="default">\</span><span class="default">Facets</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="keyword">use</span><span class="default"> </span><span class="default">Zend</span><span class="default">\</span><span class="default">ServiceManager</span><span class="default">\</span><span class="default">Factory</span><span class="default">\</span><span class="default">FactoryInterface</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="comment"> * Abstract class for Solr paginator factory</span></td></tr> + <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="comment"> * @author Anthonius Munthi <me@itstoni.com></span></td></tr> + <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="comment"> * @author Miroslav Fedeleš <miroslav.fedeles@gmail.com></span></td></tr> + <tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="comment"> * @author Mathias Gelhausen <gelhausen@cross-solution.de></span></td></tr> + <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="comment"> * @since 0.26</span></td></tr> + <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="comment"> * @since 0.30 Made factory ZF3 compatible</span></td></tr> + <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="keyword">abstract</span><span class="default"> </span><span class="keyword">class</span><span class="default"> </span><span class="default">PaginatorFactoryAbstract</span><span class="default"> </span><span class="keyword">implements</span><span class="default"> </span><span class="default">FactoryInterface</span></td></tr> + <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">public</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">__invoke</span><span class="keyword">(</span><span class="default">ContainerInterface</span><span class="default"> </span><span class="default">$container</span><span class="keyword">,</span><span class="default"> </span><span class="default">$requestedName</span><span class="keyword">,</span><span class="default"> </span><span class="keyword">array</span><span class="default"> </span><span class="default">$options</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">null</span><span class="keyword">)</span></td></tr> + <tr><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">{</span></td></tr> + <tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/* @var PaginatorService $serviceLocator */</span></td></tr> + <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/* @var ResultConverter $resultConverter */</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 35" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\JobsPaginatorFactoryTest::testInvokation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$filter</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$container</span><span class="default">-></span><span class="default">get</span><span class="keyword">(</span><span class="default">'FilterManager'</span><span class="keyword">)</span><span class="default">-></span><span class="default">get</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-></span><span class="default">getFilter</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 36" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\JobsPaginatorFactoryTest::testInvokation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$moduleOptions</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$container</span><span class="default">-></span><span class="default">get</span><span class="keyword">(</span><span class="default">'Solr/Options/Module'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 37" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\JobsPaginatorFactoryTest::testInvokation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$connectPath</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$this</span><span class="default">-></span><span class="default">getConnectPath</span><span class="keyword">(</span><span class="default">$moduleOptions</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 38" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\JobsPaginatorFactoryTest::testInvokation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$solrClient</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$container</span><span class="default">-></span><span class="default">get</span><span class="keyword">(</span><span class="default">'Solr/Manager'</span><span class="keyword">)</span><span class="default">-></span><span class="default">getClient</span><span class="keyword">(</span><span class="default">$connectPath</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 39" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\JobsPaginatorFactoryTest::testInvokation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$resultConverter</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="default">$container</span><span class="default">-></span><span class="default">get</span><span class="keyword">(</span><span class="default">'Solr/ResultConverter'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 40" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\JobsPaginatorFactoryTest::testInvokation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$adapter</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">SolrAdapter</span><span class="keyword">(</span><span class="default">$solrClient</span><span class="keyword">,</span><span class="default"> </span><span class="default">$filter</span><span class="keyword">,</span><span class="default"> </span><span class="default">$resultConverter</span><span class="keyword">,</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">Facets</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">,</span><span class="default"> </span><span class="default">$options</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 41" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\JobsPaginatorFactoryTest::testInvokation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="default"> </span><span class="default">$service</span><span class="default"> </span><span class="keyword">=</span><span class="default"> </span><span class="keyword">new</span><span class="default"> </span><span class="default">Paginator</span><span class="keyword">(</span><span class="default">$adapter</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr class="covered-by-large-tests popin"><td data-title="1 test covers line 43" data-content="<ul><li class="covered-by-large-tests">SolrTest\Paginator\JobsPaginatorFactoryTest::testInvokation</li></ul>" data-placement="top" data-html="true"><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">return</span><span class="default"> </span><span class="default">$service</span><span class="keyword">;</span></td></tr> + <tr class="warning"><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">}</span></td></tr> + <tr><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"><span class="default"> </span></td></tr> + <tr><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="comment"> * pagination service name</span></td></tr> + <tr><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"><span class="comment"> * @return string</span></td></tr> + <tr><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">abstract</span><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getFilter</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine"></td></tr> + <tr><td><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine"><span class="default"> </span><span class="comment">/**</span></td></tr> + <tr><td><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="comment"> * Get connection path for this paginator</span></td></tr> + <tr><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"><span class="comment"> *</span></td></tr> + <tr><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"><span class="comment"> * @param ModuleOptions $options</span></td></tr> + <tr><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="comment"> * @return string</span></td></tr> + <tr><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"><span class="comment"> */</span></td></tr> + <tr><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"><span class="default"> </span><span class="keyword">abstract</span><span class="default"> </span><span class="keyword">protected</span><span class="default"> </span><span class="keyword">function</span><span class="default"> </span><span class="default">getConnectPath</span><span class="keyword">(</span><span class="default">ModuleOptions</span><span class="default"> </span><span class="default">$options</span><span class="keyword">)</span><span class="keyword">;</span></td></tr> + <tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr> + + </tbody> + </table> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="success"><strong>Executed</strong></span> + <span class="danger"><strong>Not Executed</strong></span> + <span class="warning"><strong>Dead Code</strong></span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + <a title="Back to the top" id="toplink" href="#"> + <svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 11L6 5l-6 6h12z"/></svg> + </a> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/popper.min.js" type="text/javascript"></script> + <script src="../_js/bootstrap.min.js" type="text/javascript"></script> + <script src="../_js/file.js" type="text/javascript"></script> + </body> +</html> diff --git a/test/coverage/Paginator/dashboard.html b/test/coverage/Paginator/dashboard.html new file mode 100644 index 0000000..7cb51d0 --- /dev/null +++ b/test/coverage/Paginator/dashboard.html @@ -0,0 +1,284 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Dashboard for /home/cbleek/AtomProjects/Solr/src/Paginator</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/nv.d3.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item"><a href="index.html">Paginator</a></li> + <li class="breadcrumb-item active">(Dashboard)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <h2>Classes</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="classCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="classComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <h2>Methods</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="methodCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="methodComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + </div> + </div> + <footer> + <hr/> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + <script src="../_js/jquery.min.js" type="text/javascript"></script> + <script src="../_js/d3.min.js" type="text/javascript"></script> + <script src="../_js/nv.d3.min.js" type="text/javascript"></script> + <script type="text/javascript"> +$(document).ready(function() { + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#classCoverageDistribution svg') + .datum(getCoverageDistributionData([0,0,0,0,0,0,0,0,0,0,0,4], "Class Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#methodCoverageDistribution svg') + .datum(getCoverageDistributionData([0,0,0,0,0,0,0,0,0,0,0,12], "Method Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getCoverageDistributionData(data, label) { + var labels = [ + '0%', + '0-10%', + '10-20%', + '20-30%', + '30-40%', + '40-50%', + '50-60%', + '60-70%', + '70-80%', + '80-90%', + '90-100%', + '100%' + ]; + var values = []; + $.each(labels, function(key) { + values.push({x: labels[key], y: data[key]}); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Cyclomatic Complexity'); + + d3.select('#classComplexity svg') + .datum(getComplexityData([[100,7,"<a href=\"Adapter\/SolrAdapter.php.html#28\">Solr\\Paginator\\Adapter\\SolrAdapter<\/a>"],[100,2,"<a href=\"JobsBoardPaginatorFactory.php.html#23\">Solr\\Paginator\\JobsBoardPaginatorFactory<\/a>"],[100,3,"<a href=\"Paginator.php.html#16\">Solr\\Paginator\\Paginator<\/a>"],[100,3,"<a href=\"PaginatorFactoryAbstract.php.html#29\">Solr\\Paginator\\PaginatorFactoryAbstract<\/a>"]], 'Class Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Method Complexity'); + + d3.select('#methodComplexity svg') + .datum(getComplexityData([[100,1,"<a href=\"Adapter\/SolrAdapter.php.html#77\">Solr\\Paginator\\Adapter\\SolrAdapter::__construct<\/a>"],[100,1,"<a href=\"Adapter\/SolrAdapter.php.html#89\">Solr\\Paginator\\Adapter\\SolrAdapter::getItems<\/a>"],[100,1,"<a href=\"Adapter\/SolrAdapter.php.html#102\">Solr\\Paginator\\Adapter\\SolrAdapter::count<\/a>"],[100,1,"<a href=\"Adapter\/SolrAdapter.php.html#111\">Solr\\Paginator\\Adapter\\SolrAdapter::getFacets<\/a>"],[100,3,"<a href=\"Adapter\/SolrAdapter.php.html#124\">Solr\\Paginator\\Adapter\\SolrAdapter::getResponse<\/a>"],[100,1,"<a href=\"JobsBoardPaginatorFactory.php.html#25\">Solr\\Paginator\\JobsBoardPaginatorFactory::getFilter<\/a>"],[100,1,"<a href=\"JobsBoardPaginatorFactory.php.html#33\">Solr\\Paginator\\JobsBoardPaginatorFactory::getConnectPath<\/a>"],[100,2,"<a href=\"Paginator.php.html#22\">Solr\\Paginator\\Paginator::__construct<\/a>"],[100,1,"<a href=\"Paginator.php.html#34\">Solr\\Paginator\\Paginator::getFacets<\/a>"],[100,1,"<a href=\"PaginatorFactoryAbstract.php.html#31\">Solr\\Paginator\\PaginatorFactoryAbstract::__invoke<\/a>"],[100,1,"<a href=\"PaginatorFactoryAbstract.php.html#51\">Solr\\Paginator\\PaginatorFactoryAbstract::getFilter<\/a>"],[100,1,"<a href=\"PaginatorFactoryAbstract.php.html#60\">Solr\\Paginator\\PaginatorFactoryAbstract::getConnectPath<\/a>"]], 'Method Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getComplexityData(data, label) { + var values = []; + $.each(data, function(key) { + var value = Math.round(data[key][0]*100) / 100; + values.push({ + x: value, + y: data[key][1], + class: data[key][2], + size: 0.05, + shape: 'diamond' + }); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } +}); + </script> + </body> +</html> diff --git a/test/coverage/Paginator/index.html b/test/coverage/Paginator/index.html new file mode 100644 index 0000000..52292ed --- /dev/null +++ b/test/coverage/Paginator/index.html @@ -0,0 +1,203 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src/Paginator</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="../_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="../_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="../_css/style.css" rel="stylesheet" type="text/css"> + <link href="../_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="../index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item active">Paginator</li> + <li class="breadcrumb-item">(<a href="dashboard.html">Dashboard</a>)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="9"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + <td colspan="3"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="success">Total</td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">37 / 37</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">10 / 10</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">4 / 4</div></td> + </tr> + + <tr> + <td class="success"><img src="../_icons/file-directory.svg" class="octicon" /><a href="Adapter/index.html">Adapter</a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">22 / 22</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">5 / 5</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success"><img src="../_icons/file-code.svg" class="octicon" /><a href="JobsBoardPaginatorFactory.php.html">JobsBoardPaginatorFactory.php</a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success"><img src="../_icons/file-code.svg" class="octicon" /><a href="Paginator.php.html">Paginator.php</a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">5 / 5</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">2 / 2</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class="success"><img src="../_icons/file-code.svg" class="octicon" /><a href="PaginatorFactoryAbstract.php.html">PaginatorFactoryAbstract.php</a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">8 / 8</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + + </tbody> + </table> + </div> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="danger"><strong>Low</strong>: 0% to 50%</span> + <span class="warning"><strong>Medium</strong>: 50% to 90%</span> + <span class="success"><strong>High</strong>: 90% to 100%</span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + </body> +</html> diff --git a/test/coverage/_css/bootstrap.min.css b/test/coverage/_css/bootstrap.min.css new file mode 100644 index 0000000..92e3fe8 --- /dev/null +++ b/test/coverage/_css/bootstrap.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.3.1 (https://getbootstrap.com/) + * Copyright 2011-2019 The Bootstrap Authors + * Copyright 2011-2019 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.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-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:calc(1rem + .4rem);padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion>.card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion>.card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion>.card .card-header{margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush .list-group-item:last-child{margin-bottom:-1px}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:0s .6s opacity}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/test/coverage/_css/custom.css b/test/coverage/_css/custom.css new file mode 100644 index 0000000..e69de29 diff --git a/test/coverage/_css/nv.d3.min.css b/test/coverage/_css/nv.d3.min.css new file mode 100644 index 0000000..7a6f7fe --- /dev/null +++ b/test/coverage/_css/nv.d3.min.css @@ -0,0 +1 @@ +.nvd3 .nv-axis{pointer-events:none;opacity:1}.nvd3 .nv-axis path{fill:none;stroke:#000;stroke-opacity:.75;shape-rendering:crispEdges}.nvd3 .nv-axis path.domain{stroke-opacity:.75}.nvd3 .nv-axis.nv-x path.domain{stroke-opacity:0}.nvd3 .nv-axis line{fill:none;stroke:#e5e5e5;shape-rendering:crispEdges}.nvd3 .nv-axis .zero line,.nvd3 .nv-axis line.zero{stroke-opacity:.75}.nvd3 .nv-axis .nv-axisMaxMin text{font-weight:700}.nvd3 .x .nv-axis .nv-axisMaxMin text,.nvd3 .x2 .nv-axis .nv-axisMaxMin text,.nvd3 .x3 .nv-axis .nv-axisMaxMin text{text-anchor:middle}.nvd3 .nv-axis.nv-disabled{opacity:0}.nvd3 .nv-bars rect{fill-opacity:.75;transition:fill-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear}.nvd3 .nv-bars rect.hover{fill-opacity:1}.nvd3 .nv-bars .hover rect{fill:#add8e6}.nvd3 .nv-bars text{fill:rgba(0,0,0,0)}.nvd3 .nv-bars .hover text{fill:rgba(0,0,0,1)}.nvd3 .nv-multibar .nv-groups rect,.nvd3 .nv-multibarHorizontal .nv-groups rect,.nvd3 .nv-discretebar .nv-groups rect{stroke-opacity:0;transition:fill-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear}.nvd3 .nv-multibar .nv-groups rect:hover,.nvd3 .nv-multibarHorizontal .nv-groups rect:hover,.nvd3 .nv-candlestickBar .nv-ticks rect:hover,.nvd3 .nv-discretebar .nv-groups rect:hover{fill-opacity:1}.nvd3 .nv-discretebar .nv-groups text,.nvd3 .nv-multibarHorizontal .nv-groups text{font-weight:700;fill:rgba(0,0,0,1);stroke:rgba(0,0,0,0)}.nvd3 .nv-boxplot circle{fill-opacity:.5}.nvd3 .nv-boxplot circle:hover{fill-opacity:1}.nvd3 .nv-boxplot rect:hover{fill-opacity:1}.nvd3 line.nv-boxplot-median{stroke:#000}.nv-boxplot-tick:hover{stroke-width:2.5px}.nvd3.nv-bullet{font:10px sans-serif}.nvd3.nv-bullet .nv-measure{fill-opacity:.8}.nvd3.nv-bullet .nv-measure:hover{fill-opacity:1}.nvd3.nv-bullet .nv-marker{stroke:#000;stroke-width:2px}.nvd3.nv-bullet .nv-markerTriangle{stroke:#000;fill:#fff;stroke-width:1.5px}.nvd3.nv-bullet .nv-tick line{stroke:#666;stroke-width:.5px}.nvd3.nv-bullet .nv-range.nv-s0{fill:#eee}.nvd3.nv-bullet .nv-range.nv-s1{fill:#ddd}.nvd3.nv-bullet .nv-range.nv-s2{fill:#ccc}.nvd3.nv-bullet .nv-title{font-size:14px;font-weight:700}.nvd3.nv-bullet .nv-subtitle{fill:#999}.nvd3.nv-bullet .nv-range{fill:#bababa;fill-opacity:.4}.nvd3.nv-bullet .nv-range:hover{fill-opacity:.7}.nvd3.nv-candlestickBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.positive rect{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.negative rect{stroke:#d62728;fill:#d62728}.with-transitions .nv-candlestickBar .nv-ticks .nv-tick{transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-candlestickBar .nv-ticks line{stroke:#333}.nvd3 .nv-legend .nv-disabled rect{}.nvd3 .nv-check-box .nv-box{fill-opacity:0;stroke-width:2}.nvd3 .nv-check-box .nv-check{fill-opacity:0;stroke-width:4}.nvd3 .nv-series.nv-disabled .nv-check-box .nv-check{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-controlsWrap .nv-legend .nv-check-box .nv-check{opacity:0}.nvd3.nv-linePlusBar .nv-bar rect{fill-opacity:.75}.nvd3.nv-linePlusBar .nv-bar rect:hover{fill-opacity:1}.nvd3 .nv-groups path.nv-line{fill:none}.nvd3 .nv-groups path.nv-area{stroke:none}.nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point{fill-opacity:0;stroke-opacity:0}.nvd3.nv-scatter.nv-single-point .nv-groups .nv-point{fill-opacity:.5!important;stroke-opacity:.5!important}.with-transitions .nvd3 .nv-groups .nv-point{transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-scatter .nv-groups .nv-point.hover,.nvd3 .nv-groups .nv-point.hover{stroke-width:7px;fill-opacity:.95!important;stroke-opacity:.95!important}.nvd3 .nv-point-paths path{stroke:#aaa;stroke-opacity:0;fill:#eee;fill-opacity:0}.nvd3 .nv-indexLine{cursor:ew-resize}svg.nvd3-svg{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-ms-user-select:none;-moz-user-select:none;user-select:none;display:block;width:100%;height:100%}.nvtooltip.with-3d-shadow,.with-3d-shadow .nvtooltip{-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nvd3 text{font:400 12px Arial}.nvd3 .title{font:700 14px Arial}.nvd3 .nv-background{fill:#fff;fill-opacity:0}.nvd3.nv-noData{font-size:18px;font-weight:700}.nv-brush .extent{fill-opacity:.125;shape-rendering:crispEdges}.nv-brush .resize path{fill:#eee;stroke:#666}.nvd3 .nv-legend .nv-series{cursor:pointer}.nvd3 .nv-legend .nv-disabled circle{fill-opacity:0}.nvd3 .nv-brush .extent{fill-opacity:0!important}.nvd3 .nv-brushBackground rect{stroke:#000;stroke-width:.4;fill:#fff;fill-opacity:.7}.nvd3.nv-ohlcBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive{stroke:#2ca02c}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative{stroke:#d62728}.nvd3 .background path{fill:none;stroke:#EEE;stroke-opacity:.4;shape-rendering:crispEdges}.nvd3 .foreground path{fill:none;stroke-opacity:.7}.nvd3 .nv-parallelCoordinates-brush .extent{fill:#fff;fill-opacity:.6;stroke:gray;shape-rendering:crispEdges}.nvd3 .nv-parallelCoordinates .hover{fill-opacity:1;stroke-width:3px}.nvd3 .missingValuesline line{fill:none;stroke:#000;stroke-width:1;stroke-opacity:1;stroke-dasharray:5,5}.nvd3.nv-pie path{stroke-opacity:0;transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-pie .nv-pie-title{font-size:24px;fill:rgba(19,196,249,.59)}.nvd3.nv-pie .nv-slice text{stroke:#000;stroke-width:0}.nvd3.nv-pie path{stroke:#fff;stroke-width:1px;stroke-opacity:1}.nvd3.nv-pie .hover path{fill-opacity:.7}.nvd3.nv-pie .nv-label{pointer-events:none}.nvd3.nv-pie .nv-label rect{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-groups .nv-point.hover{stroke-width:20px;stroke-opacity:.5}.nvd3 .nv-scatter .nv-point.hover{fill-opacity:1}.nv-noninteractive{pointer-events:none}.nv-distx,.nv-disty{pointer-events:none}.nvd3.nv-sparkline path{fill:none}.nvd3.nv-sparklineplus g.nv-hoverValue{pointer-events:none}.nvd3.nv-sparklineplus .nv-hoverValue line{stroke:#333;stroke-width:1.5px}.nvd3.nv-sparklineplus,.nvd3.nv-sparklineplus g{pointer-events:all}.nvd3 .nv-hoverArea{fill-opacity:0;stroke-opacity:0}.nvd3.nv-sparklineplus .nv-xValue,.nvd3.nv-sparklineplus .nv-yValue{stroke-width:0;font-size:.9em;font-weight:400}.nvd3.nv-sparklineplus .nv-yValue{stroke:#f66}.nvd3.nv-sparklineplus .nv-maxValue{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-sparklineplus .nv-minValue{stroke:#d62728;fill:#d62728}.nvd3.nv-sparklineplus .nv-currentValue{font-weight:700;font-size:1.1em}.nvd3.nv-stackedarea path.nv-area{fill-opacity:.7;stroke-opacity:0;transition:fill-opacity 250ms linear,stroke-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear,stroke-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-stackedarea path.nv-area.hover{fill-opacity:.9}.nvd3.nv-stackedarea .nv-groups .nv-point{stroke-opacity:0;fill-opacity:0}.nvtooltip{position:absolute;background-color:rgba(255,255,255,1);color:rgba(0,0,0,1);padding:1px;border:1px solid rgba(0,0,0,.2);z-index:10000;display:block;font-family:Arial;font-size:13px;text-align:left;pointer-events:none;white-space:nowrap;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.nvtooltip{background:rgba(255,255,255,.8);border:1px solid rgba(0,0,0,.5);border-radius:4px}.nvtooltip.with-transitions,.with-transitions .nvtooltip{transition:opacity 50ms linear;-moz-transition:opacity 50ms linear;-webkit-transition:opacity 50ms linear;transition-delay:200ms;-moz-transition-delay:200ms;-webkit-transition-delay:200ms}.nvtooltip.x-nvtooltip,.nvtooltip.y-nvtooltip{padding:8px}.nvtooltip h3{margin:0;padding:4px 14px;line-height:18px;font-weight:400;background-color:rgba(247,247,247,.75);color:rgba(0,0,0,1);text-align:center;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.nvtooltip p{margin:0;padding:5px 14px;text-align:center}.nvtooltip span{display:inline-block;margin:2px 0}.nvtooltip table{margin:6px;border-spacing:0}.nvtooltip table td{padding:2px 9px 2px 0;vertical-align:middle}.nvtooltip table td.key{font-weight:400}.nvtooltip table td.value{text-align:right;font-weight:700}.nvtooltip table tr.highlight td{padding:1px 9px 1px 0;border-bottom-style:solid;border-bottom-width:1px;border-top-style:solid;border-top-width:1px}.nvtooltip table td.legend-color-guide div{width:8px;height:8px;vertical-align:middle}.nvtooltip table td.legend-color-guide div{width:12px;height:12px;border:1px solid #999}.nvtooltip .footer{padding:3px;text-align:center}.nvtooltip-pending-removal{pointer-events:none;display:none}.nvd3 .nv-interactiveGuideLine{pointer-events:none}.nvd3 line.nv-guideline{stroke:#ccc} \ No newline at end of file diff --git a/test/coverage/_css/octicons.css b/test/coverage/_css/octicons.css new file mode 100644 index 0000000..31d9786 --- /dev/null +++ b/test/coverage/_css/octicons.css @@ -0,0 +1,5 @@ +.octicon { + display: inline-block; + vertical-align: text-top; + fill: currentColor; +} diff --git a/test/coverage/_css/style.css b/test/coverage/_css/style.css new file mode 100644 index 0000000..6d9c21e --- /dev/null +++ b/test/coverage/_css/style.css @@ -0,0 +1,122 @@ +body { + padding-top: 10px; +} + +.popover { + max-width: none; +} + +.octicon { + margin-right:.25em; +} + +.table-bordered>thead>tr>td { + border-bottom-width: 1px; +} + +.table tbody>tr>td, .table thead>tr>td { + padding-top: 3px; + padding-bottom: 3px; +} + +.table-condensed tbody>tr>td { + padding-top: 0; + padding-bottom: 0; +} + +.table .progress { + margin-bottom: inherit; +} + +.table-borderless th, .table-borderless td { + border: 0 !important; +} + +.table tbody tr.covered-by-large-tests, li.covered-by-large-tests, tr.success, td.success, li.success, span.success { + background-color: #dff0d8; +} + +.table tbody tr.covered-by-medium-tests, li.covered-by-medium-tests { + background-color: #c3e3b5; +} + +.table tbody tr.covered-by-small-tests, li.covered-by-small-tests { + background-color: #99cb84; +} + +.table tbody tr.danger, .table tbody td.danger, li.danger, span.danger { + background-color: #f2dede; +} + +.table tbody td.warning, li.warning, span.warning { + background-color: #fcf8e3; +} + +.table tbody td.info { + background-color: #d9edf7; +} + +td.big { + width: 117px; +} + +td.small { +} + +td.codeLine { + font-family: "Source Code Pro", "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + white-space: pre; +} + +td span.comment { + color: #888a85; +} + +td span.default { + color: #2e3436; +} + +td span.html { + color: #888a85; +} + +td span.keyword { + color: #2e3436; + font-weight: bold; +} + +pre span.string { + color: #2e3436; +} + +span.success, span.warning, span.danger { + margin-right: 2px; + padding-left: 10px; + padding-right: 10px; + text-align: center; +} + +#classCoverageDistribution, #classComplexity { + height: 200px; + width: 475px; +} + +#toplink { + position: fixed; + left: 5px; + bottom: 5px; + outline: 0; +} + +svg text { + font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif; + font-size: 11px; + color: #666; + fill: #666; +} + +.scrollbox { + height:245px; + overflow-x:hidden; + overflow-y:scroll; +} diff --git a/test/coverage/_icons/file-code.svg b/test/coverage/_icons/file-code.svg new file mode 100644 index 0000000..5b4b199 --- /dev/null +++ b/test/coverage/_icons/file-code.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M8.5 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V4.5L8.5 1zM11 14H1V2h7l3 3v9zM5 6.98L3.5 8.5 5 10l-.5 1L2 8.5 4.5 6l.5.98zM7.5 6L10 8.5 7.5 11l-.5-.98L8.5 8.5 7 7l.5-1z"/></svg> \ No newline at end of file diff --git a/test/coverage/_icons/file-directory.svg b/test/coverage/_icons/file-directory.svg new file mode 100644 index 0000000..4bf1f1c --- /dev/null +++ b/test/coverage/_icons/file-directory.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg> \ No newline at end of file diff --git a/test/coverage/_js/bootstrap.min.js b/test/coverage/_js/bootstrap.min.js new file mode 100644 index 0000000..c4c0d1f --- /dev/null +++ b/test/coverage/_js/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.3.1 (https://getbootstrap.com/) + * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e((t=t||self).bootstrap={},t.jQuery,t.Popper)}(this,function(t,g,u){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function s(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function l(o){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},e=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(e=e.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),e.forEach(function(t){var e,n,i;e=o,i=r[n=t],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return o}g=g&&g.hasOwnProperty("default")?g.default:g,u=u&&u.hasOwnProperty("default")?u.default:u;var e="transitionend";function n(t){var e=this,n=!1;return g(this).one(_.TRANSITION_END,function(){n=!0}),setTimeout(function(){n||_.triggerTransitionEnd(e)},t),this}var _={TRANSITION_END:"bsTransitionEnd",getUID:function(t){for(;t+=~~(1e6*Math.random()),document.getElementById(t););return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var e=g(t).css("transition-duration"),n=g(t).css("transition-delay"),i=parseFloat(e),o=parseFloat(n);return i||o?(e=e.split(",")[0],n=n.split(",")[0],1e3*(parseFloat(e)+parseFloat(n))):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){g(t).trigger(e)},supportsTransitionEnd:function(){return Boolean(e)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var o=n[i],r=e[i],s=r&&_.isElement(r)?"element":(a=r,{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(o).test(s))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+s+'" but expected type "'+o+'".')}var a},findShadowRoot:function(t){if(!document.documentElement.attachShadow)return null;if("function"!=typeof t.getRootNode)return t instanceof ShadowRoot?t:t.parentNode?_.findShadowRoot(t.parentNode):null;var e=t.getRootNode();return e instanceof ShadowRoot?e:null}};g.fn.emulateTransitionEnd=n,g.event.special[_.TRANSITION_END]={bindType:e,delegateType:e,handle:function(t){if(g(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var o="alert",r="bs.alert",a="."+r,c=g.fn[o],h={CLOSE:"close"+a,CLOSED:"closed"+a,CLICK_DATA_API:"click"+a+".data-api"},f="alert",d="fade",m="show",p=function(){function i(t){this._element=t}var t=i.prototype;return t.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},t.dispose=function(){g.removeData(this._element,r),this._element=null},t._getRootElement=function(t){var e=_.getSelectorFromElement(t),n=!1;return e&&(n=document.querySelector(e)),n||(n=g(t).closest("."+f)[0]),n},t._triggerCloseEvent=function(t){var e=g.Event(h.CLOSE);return g(t).trigger(e),e},t._removeElement=function(e){var n=this;if(g(e).removeClass(m),g(e).hasClass(d)){var t=_.getTransitionDurationFromElement(e);g(e).one(_.TRANSITION_END,function(t){return n._destroyElement(e,t)}).emulateTransitionEnd(t)}else this._destroyElement(e)},t._destroyElement=function(t){g(t).detach().trigger(h.CLOSED).remove()},i._jQueryInterface=function(n){return this.each(function(){var t=g(this),e=t.data(r);e||(e=new i(this),t.data(r,e)),"close"===n&&e[n](this)})},i._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),i}();g(document).on(h.CLICK_DATA_API,'[data-dismiss="alert"]',p._handleDismiss(new p)),g.fn[o]=p._jQueryInterface,g.fn[o].Constructor=p,g.fn[o].noConflict=function(){return g.fn[o]=c,p._jQueryInterface};var v="button",y="bs.button",E="."+y,C=".data-api",T=g.fn[v],S="active",b="btn",I="focus",D='[data-toggle^="button"]',w='[data-toggle="buttons"]',A='input:not([type="hidden"])',N=".active",O=".btn",k={CLICK_DATA_API:"click"+E+C,FOCUS_BLUR_DATA_API:"focus"+E+C+" blur"+E+C},P=function(){function n(t){this._element=t}var t=n.prototype;return t.toggle=function(){var t=!0,e=!0,n=g(this._element).closest(w)[0];if(n){var i=this._element.querySelector(A);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(S))t=!1;else{var o=n.querySelector(N);o&&g(o).removeClass(S)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(S),g(i).trigger("change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(S)),t&&g(this._element).toggleClass(S)},t.dispose=function(){g.removeData(this._element,y),this._element=null},n._jQueryInterface=function(e){return this.each(function(){var t=g(this).data(y);t||(t=new n(this),g(this).data(y,t)),"toggle"===e&&t[e]()})},s(n,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),n}();g(document).on(k.CLICK_DATA_API,D,function(t){t.preventDefault();var e=t.target;g(e).hasClass(b)||(e=g(e).closest(O)),P._jQueryInterface.call(g(e),"toggle")}).on(k.FOCUS_BLUR_DATA_API,D,function(t){var e=g(t.target).closest(O)[0];g(e).toggleClass(I,/^focus(in)?$/.test(t.type))}),g.fn[v]=P._jQueryInterface,g.fn[v].Constructor=P,g.fn[v].noConflict=function(){return g.fn[v]=T,P._jQueryInterface};var L="carousel",j="bs.carousel",H="."+j,R=".data-api",x=g.fn[L],F={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},U={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},W="next",q="prev",M="left",K="right",Q={SLIDE:"slide"+H,SLID:"slid"+H,KEYDOWN:"keydown"+H,MOUSEENTER:"mouseenter"+H,MOUSELEAVE:"mouseleave"+H,TOUCHSTART:"touchstart"+H,TOUCHMOVE:"touchmove"+H,TOUCHEND:"touchend"+H,POINTERDOWN:"pointerdown"+H,POINTERUP:"pointerup"+H,DRAG_START:"dragstart"+H,LOAD_DATA_API:"load"+H+R,CLICK_DATA_API:"click"+H+R},B="carousel",V="active",Y="slide",z="carousel-item-right",X="carousel-item-left",$="carousel-item-next",G="carousel-item-prev",J="pointer-event",Z=".active",tt=".active.carousel-item",et=".carousel-item",nt=".carousel-item img",it=".carousel-item-next, .carousel-item-prev",ot=".carousel-indicators",rt="[data-slide], [data-slide-to]",st='[data-ride="carousel"]',at={TOUCH:"touch",PEN:"pen"},lt=function(){function r(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=this._element.querySelector(ot),this._touchSupported="ontouchstart"in document.documentElement||0<navigator.maxTouchPoints,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var t=r.prototype;return t.next=function(){this._isSliding||this._slide(W)},t.nextWhenVisible=function(){!document.hidden&&g(this._element).is(":visible")&&"hidden"!==g(this._element).css("visibility")&&this.next()},t.prev=function(){this._isSliding||this._slide(q)},t.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(it)&&(_.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},t.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},t.to=function(t){var e=this;this._activeElement=this._element.querySelector(tt);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)g(this._element).one(Q.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=n<t?W:q;this._slide(i,this._items[t])}},t.dispose=function(){g(this._element).off(H),g.removeData(this._element,j),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},t._getConfig=function(t){return t=l({},F,t),_.typeCheckConfig(L,t,U),t},t._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;0<e&&this.prev(),e<0&&this.next()}},t._addEventListeners=function(){var e=this;this._config.keyboard&&g(this._element).on(Q.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&g(this._element).on(Q.MOUSEENTER,function(t){return e.pause(t)}).on(Q.MOUSELEAVE,function(t){return e.cycle(t)}),this._config.touch&&this._addTouchEventListeners()},t._addTouchEventListeners=function(){var n=this;if(this._touchSupported){var e=function(t){n._pointerEvent&&at[t.originalEvent.pointerType.toUpperCase()]?n.touchStartX=t.originalEvent.clientX:n._pointerEvent||(n.touchStartX=t.originalEvent.touches[0].clientX)},i=function(t){n._pointerEvent&&at[t.originalEvent.pointerType.toUpperCase()]&&(n.touchDeltaX=t.originalEvent.clientX-n.touchStartX),n._handleSwipe(),"hover"===n._config.pause&&(n.pause(),n.touchTimeout&&clearTimeout(n.touchTimeout),n.touchTimeout=setTimeout(function(t){return n.cycle(t)},500+n._config.interval))};g(this._element.querySelectorAll(nt)).on(Q.DRAG_START,function(t){return t.preventDefault()}),this._pointerEvent?(g(this._element).on(Q.POINTERDOWN,function(t){return e(t)}),g(this._element).on(Q.POINTERUP,function(t){return i(t)}),this._element.classList.add(J)):(g(this._element).on(Q.TOUCHSTART,function(t){return e(t)}),g(this._element).on(Q.TOUCHMOVE,function(t){var e;(e=t).originalEvent.touches&&1<e.originalEvent.touches.length?n.touchDeltaX=0:n.touchDeltaX=e.originalEvent.touches[0].clientX-n.touchStartX}),g(this._element).on(Q.TOUCHEND,function(t){return i(t)}))}},t._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},t._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(et)):[],this._items.indexOf(t)},t._getItemByDirection=function(t,e){var n=t===W,i=t===q,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+(t===q?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},t._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(this._element.querySelector(tt)),o=g.Event(Q.SLIDE,{relatedTarget:t,direction:e,from:i,to:n});return g(this._element).trigger(o),o},t._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var e=[].slice.call(this._indicatorsElement.querySelectorAll(Z));g(e).removeClass(V);var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&g(n).addClass(V)}},t._slide=function(t,e){var n,i,o,r=this,s=this._element.querySelector(tt),a=this._getItemIndex(s),l=e||s&&this._getItemByDirection(t,s),c=this._getItemIndex(l),h=Boolean(this._interval);if(o=t===W?(n=X,i=$,M):(n=z,i=G,K),l&&g(l).hasClass(V))this._isSliding=!1;else if(!this._triggerSlideEvent(l,o).isDefaultPrevented()&&s&&l){this._isSliding=!0,h&&this.pause(),this._setActiveIndicatorElement(l);var u=g.Event(Q.SLID,{relatedTarget:l,direction:o,from:a,to:c});if(g(this._element).hasClass(Y)){g(l).addClass(i),_.reflow(l),g(s).addClass(n),g(l).addClass(n);var f=parseInt(l.getAttribute("data-interval"),10);this._config.interval=f?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,f):this._config.defaultInterval||this._config.interval;var d=_.getTransitionDurationFromElement(s);g(s).one(_.TRANSITION_END,function(){g(l).removeClass(n+" "+i).addClass(V),g(s).removeClass(V+" "+i+" "+n),r._isSliding=!1,setTimeout(function(){return g(r._element).trigger(u)},0)}).emulateTransitionEnd(d)}else g(s).removeClass(V),g(l).addClass(V),this._isSliding=!1,g(this._element).trigger(u);h&&this.cycle()}},r._jQueryInterface=function(i){return this.each(function(){var t=g(this).data(j),e=l({},F,g(this).data());"object"==typeof i&&(e=l({},e,i));var n="string"==typeof i?i:e.slide;if(t||(t=new r(this,e),g(this).data(j,t)),"number"==typeof i)t.to(i);else if("string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}else e.interval&&e.ride&&(t.pause(),t.cycle())})},r._dataApiClickHandler=function(t){var e=_.getSelectorFromElement(this);if(e){var n=g(e)[0];if(n&&g(n).hasClass(B)){var i=l({},g(n).data(),g(this).data()),o=this.getAttribute("data-slide-to");o&&(i.interval=!1),r._jQueryInterface.call(g(n),i),o&&g(n).data(j).to(o),t.preventDefault()}}},s(r,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return F}}]),r}();g(document).on(Q.CLICK_DATA_API,rt,lt._dataApiClickHandler),g(window).on(Q.LOAD_DATA_API,function(){for(var t=[].slice.call(document.querySelectorAll(st)),e=0,n=t.length;e<n;e++){var i=g(t[e]);lt._jQueryInterface.call(i,i.data())}}),g.fn[L]=lt._jQueryInterface,g.fn[L].Constructor=lt,g.fn[L].noConflict=function(){return g.fn[L]=x,lt._jQueryInterface};var ct="collapse",ht="bs.collapse",ut="."+ht,ft=g.fn[ct],dt={toggle:!0,parent:""},gt={toggle:"boolean",parent:"(string|element)"},_t={SHOW:"show"+ut,SHOWN:"shown"+ut,HIDE:"hide"+ut,HIDDEN:"hidden"+ut,CLICK_DATA_API:"click"+ut+".data-api"},mt="show",pt="collapse",vt="collapsing",yt="collapsed",Et="width",Ct="height",Tt=".show, .collapsing",St='[data-toggle="collapse"]',bt=function(){function a(e,t){this._isTransitioning=!1,this._element=e,this._config=this._getConfig(t),this._triggerArray=[].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'));for(var n=[].slice.call(document.querySelectorAll(St)),i=0,o=n.length;i<o;i++){var r=n[i],s=_.getSelectorFromElement(r),a=[].slice.call(document.querySelectorAll(s)).filter(function(t){return t===e});null!==s&&0<a.length&&(this._selector=s,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var t=a.prototype;return t.toggle=function(){g(this._element).hasClass(mt)?this.hide():this.show()},t.show=function(){var t,e,n=this;if(!this._isTransitioning&&!g(this._element).hasClass(mt)&&(this._parent&&0===(t=[].slice.call(this._parent.querySelectorAll(Tt)).filter(function(t){return"string"==typeof n._config.parent?t.getAttribute("data-parent")===n._config.parent:t.classList.contains(pt)})).length&&(t=null),!(t&&(e=g(t).not(this._selector).data(ht))&&e._isTransitioning))){var i=g.Event(_t.SHOW);if(g(this._element).trigger(i),!i.isDefaultPrevented()){t&&(a._jQueryInterface.call(g(t).not(this._selector),"hide"),e||g(t).data(ht,null));var o=this._getDimension();g(this._element).removeClass(pt).addClass(vt),this._element.style[o]=0,this._triggerArray.length&&g(this._triggerArray).removeClass(yt).attr("aria-expanded",!0),this.setTransitioning(!0);var r="scroll"+(o[0].toUpperCase()+o.slice(1)),s=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,function(){g(n._element).removeClass(vt).addClass(pt).addClass(mt),n._element.style[o]="",n.setTransitioning(!1),g(n._element).trigger(_t.SHOWN)}).emulateTransitionEnd(s),this._element.style[o]=this._element[r]+"px"}}},t.hide=function(){var t=this;if(!this._isTransitioning&&g(this._element).hasClass(mt)){var e=g.Event(_t.HIDE);if(g(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",_.reflow(this._element),g(this._element).addClass(vt).removeClass(pt).removeClass(mt);var i=this._triggerArray.length;if(0<i)for(var o=0;o<i;o++){var r=this._triggerArray[o],s=_.getSelectorFromElement(r);if(null!==s)g([].slice.call(document.querySelectorAll(s))).hasClass(mt)||g(r).addClass(yt).attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[n]="";var a=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,function(){t.setTransitioning(!1),g(t._element).removeClass(vt).addClass(pt).trigger(_t.HIDDEN)}).emulateTransitionEnd(a)}}},t.setTransitioning=function(t){this._isTransitioning=t},t.dispose=function(){g.removeData(this._element,ht),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},t._getConfig=function(t){return(t=l({},dt,t)).toggle=Boolean(t.toggle),_.typeCheckConfig(ct,t,gt),t},t._getDimension=function(){return g(this._element).hasClass(Et)?Et:Ct},t._getParent=function(){var t,n=this;_.isElement(this._config.parent)?(t=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(t=this._config.parent[0])):t=document.querySelector(this._config.parent);var e='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]',i=[].slice.call(t.querySelectorAll(e));return g(i).each(function(t,e){n._addAriaAndCollapsedClass(a._getTargetFromElement(e),[e])}),t},t._addAriaAndCollapsedClass=function(t,e){var n=g(t).hasClass(mt);e.length&&g(e).toggleClass(yt,!n).attr("aria-expanded",n)},a._getTargetFromElement=function(t){var e=_.getSelectorFromElement(t);return e?document.querySelector(e):null},a._jQueryInterface=function(i){return this.each(function(){var t=g(this),e=t.data(ht),n=l({},dt,t.data(),"object"==typeof i&&i?i:{});if(!e&&n.toggle&&/show|hide/.test(i)&&(n.toggle=!1),e||(e=new a(this,n),t.data(ht,e)),"string"==typeof i){if("undefined"==typeof e[i])throw new TypeError('No method named "'+i+'"');e[i]()}})},s(a,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return dt}}]),a}();g(document).on(_t.CLICK_DATA_API,St,function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var n=g(this),e=_.getSelectorFromElement(this),i=[].slice.call(document.querySelectorAll(e));g(i).each(function(){var t=g(this),e=t.data(ht)?"toggle":n.data();bt._jQueryInterface.call(t,e)})}),g.fn[ct]=bt._jQueryInterface,g.fn[ct].Constructor=bt,g.fn[ct].noConflict=function(){return g.fn[ct]=ft,bt._jQueryInterface};var It="dropdown",Dt="bs.dropdown",wt="."+Dt,At=".data-api",Nt=g.fn[It],Ot=new RegExp("38|40|27"),kt={HIDE:"hide"+wt,HIDDEN:"hidden"+wt,SHOW:"show"+wt,SHOWN:"shown"+wt,CLICK:"click"+wt,CLICK_DATA_API:"click"+wt+At,KEYDOWN_DATA_API:"keydown"+wt+At,KEYUP_DATA_API:"keyup"+wt+At},Pt="disabled",Lt="show",jt="dropup",Ht="dropright",Rt="dropleft",xt="dropdown-menu-right",Ft="position-static",Ut='[data-toggle="dropdown"]',Wt=".dropdown form",qt=".dropdown-menu",Mt=".navbar-nav",Kt=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",Qt="top-start",Bt="top-end",Vt="bottom-start",Yt="bottom-end",zt="right-start",Xt="left-start",$t={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Gt={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Jt=function(){function c(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var t=c.prototype;return t.toggle=function(){if(!this._element.disabled&&!g(this._element).hasClass(Pt)){var t=c._getParentFromElement(this._element),e=g(this._menu).hasClass(Lt);if(c._clearMenus(),!e){var n={relatedTarget:this._element},i=g.Event(kt.SHOW,n);if(g(t).trigger(i),!i.isDefaultPrevented()){if(!this._inNavbar){if("undefined"==typeof u)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)");var o=this._element;"parent"===this._config.reference?o=t:_.isElement(this._config.reference)&&(o=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(o=this._config.reference[0])),"scrollParent"!==this._config.boundary&&g(t).addClass(Ft),this._popper=new u(o,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===g(t).closest(Mt).length&&g(document.body).children().on("mouseover",null,g.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),g(this._menu).toggleClass(Lt),g(t).toggleClass(Lt).trigger(g.Event(kt.SHOWN,n))}}}},t.show=function(){if(!(this._element.disabled||g(this._element).hasClass(Pt)||g(this._menu).hasClass(Lt))){var t={relatedTarget:this._element},e=g.Event(kt.SHOW,t),n=c._getParentFromElement(this._element);g(n).trigger(e),e.isDefaultPrevented()||(g(this._menu).toggleClass(Lt),g(n).toggleClass(Lt).trigger(g.Event(kt.SHOWN,t)))}},t.hide=function(){if(!this._element.disabled&&!g(this._element).hasClass(Pt)&&g(this._menu).hasClass(Lt)){var t={relatedTarget:this._element},e=g.Event(kt.HIDE,t),n=c._getParentFromElement(this._element);g(n).trigger(e),e.isDefaultPrevented()||(g(this._menu).toggleClass(Lt),g(n).toggleClass(Lt).trigger(g.Event(kt.HIDDEN,t)))}},t.dispose=function(){g.removeData(this._element,Dt),g(this._element).off(wt),this._element=null,(this._menu=null)!==this._popper&&(this._popper.destroy(),this._popper=null)},t.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},t._addEventListeners=function(){var e=this;g(this._element).on(kt.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},t._getConfig=function(t){return t=l({},this.constructor.Default,g(this._element).data(),t),_.typeCheckConfig(It,t,this.constructor.DefaultType),t},t._getMenuElement=function(){if(!this._menu){var t=c._getParentFromElement(this._element);t&&(this._menu=t.querySelector(qt))}return this._menu},t._getPlacement=function(){var t=g(this._element.parentNode),e=Vt;return t.hasClass(jt)?(e=Qt,g(this._menu).hasClass(xt)&&(e=Bt)):t.hasClass(Ht)?e=zt:t.hasClass(Rt)?e=Xt:g(this._menu).hasClass(xt)&&(e=Yt),e},t._detectNavbar=function(){return 0<g(this._element).closest(".navbar").length},t._getOffset=function(){var e=this,t={};return"function"==typeof this._config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,e._config.offset(t.offsets,e._element)||{}),t}:t.offset=this._config.offset,t},t._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),t},c._jQueryInterface=function(e){return this.each(function(){var t=g(this).data(Dt);if(t||(t=new c(this,"object"==typeof e?e:null),g(this).data(Dt,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},c._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var e=[].slice.call(document.querySelectorAll(Ut)),n=0,i=e.length;n<i;n++){var o=c._getParentFromElement(e[n]),r=g(e[n]).data(Dt),s={relatedTarget:e[n]};if(t&&"click"===t.type&&(s.clickEvent=t),r){var a=r._menu;if(g(o).hasClass(Lt)&&!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&g.contains(o,t.target))){var l=g.Event(kt.HIDE,s);g(o).trigger(l),l.isDefaultPrevented()||("ontouchstart"in document.documentElement&&g(document.body).children().off("mouseover",null,g.noop),e[n].setAttribute("aria-expanded","false"),g(a).removeClass(Lt),g(o).removeClass(Lt).trigger(g.Event(kt.HIDDEN,s)))}}}},c._getParentFromElement=function(t){var e,n=_.getSelectorFromElement(t);return n&&(e=document.querySelector(n)),e||t.parentNode},c._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(32===t.which||27!==t.which&&(40!==t.which&&38!==t.which||g(t.target).closest(qt).length)):Ot.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!g(this).hasClass(Pt))){var e=c._getParentFromElement(this),n=g(e).hasClass(Lt);if(n&&(!n||27!==t.which&&32!==t.which)){var i=[].slice.call(e.querySelectorAll(Kt));if(0!==i.length){var o=i.indexOf(t.target);38===t.which&&0<o&&o--,40===t.which&&o<i.length-1&&o++,o<0&&(o=0),i[o].focus()}}else{if(27===t.which){var r=e.querySelector(Ut);g(r).trigger("focus")}g(this).trigger("click")}}},s(c,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return $t}},{key:"DefaultType",get:function(){return Gt}}]),c}();g(document).on(kt.KEYDOWN_DATA_API,Ut,Jt._dataApiKeydownHandler).on(kt.KEYDOWN_DATA_API,qt,Jt._dataApiKeydownHandler).on(kt.CLICK_DATA_API+" "+kt.KEYUP_DATA_API,Jt._clearMenus).on(kt.CLICK_DATA_API,Ut,function(t){t.preventDefault(),t.stopPropagation(),Jt._jQueryInterface.call(g(this),"toggle")}).on(kt.CLICK_DATA_API,Wt,function(t){t.stopPropagation()}),g.fn[It]=Jt._jQueryInterface,g.fn[It].Constructor=Jt,g.fn[It].noConflict=function(){return g.fn[It]=Nt,Jt._jQueryInterface};var Zt="modal",te="bs.modal",ee="."+te,ne=g.fn[Zt],ie={backdrop:!0,keyboard:!0,focus:!0,show:!0},oe={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},re={HIDE:"hide"+ee,HIDDEN:"hidden"+ee,SHOW:"show"+ee,SHOWN:"shown"+ee,FOCUSIN:"focusin"+ee,RESIZE:"resize"+ee,CLICK_DISMISS:"click.dismiss"+ee,KEYDOWN_DISMISS:"keydown.dismiss"+ee,MOUSEUP_DISMISS:"mouseup.dismiss"+ee,MOUSEDOWN_DISMISS:"mousedown.dismiss"+ee,CLICK_DATA_API:"click"+ee+".data-api"},se="modal-dialog-scrollable",ae="modal-scrollbar-measure",le="modal-backdrop",ce="modal-open",he="fade",ue="show",fe=".modal-dialog",de=".modal-body",ge='[data-toggle="modal"]',_e='[data-dismiss="modal"]',me=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",pe=".sticky-top",ve=function(){function o(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=t.querySelector(fe),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}var t=o.prototype;return t.toggle=function(t){return this._isShown?this.hide():this.show(t)},t.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){g(this._element).hasClass(he)&&(this._isTransitioning=!0);var n=g.Event(re.SHOW,{relatedTarget:t});g(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),g(this._element).on(re.CLICK_DISMISS,_e,function(t){return e.hide(t)}),g(this._dialog).on(re.MOUSEDOWN_DISMISS,function(){g(e._element).one(re.MOUSEUP_DISMISS,function(t){g(t.target).is(e._element)&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},t.hide=function(t){var e=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var n=g.Event(re.HIDE);if(g(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var i=g(this._element).hasClass(he);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),g(document).off(re.FOCUSIN),g(this._element).removeClass(ue),g(this._element).off(re.CLICK_DISMISS),g(this._dialog).off(re.MOUSEDOWN_DISMISS),i){var o=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,function(t){return e._hideModal(t)}).emulateTransitionEnd(o)}else this._hideModal()}}},t.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return g(t).off(ee)}),g(document).off(re.FOCUSIN),g.removeData(this._element,te),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},t.handleUpdate=function(){this._adjustDialog()},t._getConfig=function(t){return t=l({},ie,t),_.typeCheckConfig(Zt,t,oe),t},t._showElement=function(t){var e=this,n=g(this._element).hasClass(he);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),g(this._dialog).hasClass(se)?this._dialog.querySelector(de).scrollTop=0:this._element.scrollTop=0,n&&_.reflow(this._element),g(this._element).addClass(ue),this._config.focus&&this._enforceFocus();var i=g.Event(re.SHOWN,{relatedTarget:t}),o=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,g(e._element).trigger(i)};if(n){var r=_.getTransitionDurationFromElement(this._dialog);g(this._dialog).one(_.TRANSITION_END,o).emulateTransitionEnd(r)}else o()},t._enforceFocus=function(){var e=this;g(document).off(re.FOCUSIN).on(re.FOCUSIN,function(t){document!==t.target&&e._element!==t.target&&0===g(e._element).has(t.target).length&&e._element.focus()})},t._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?g(this._element).on(re.KEYDOWN_DISMISS,function(t){27===t.which&&(t.preventDefault(),e.hide())}):this._isShown||g(this._element).off(re.KEYDOWN_DISMISS)},t._setResizeEvent=function(){var e=this;this._isShown?g(window).on(re.RESIZE,function(t){return e.handleUpdate(t)}):g(window).off(re.RESIZE)},t._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){g(document.body).removeClass(ce),t._resetAdjustments(),t._resetScrollbar(),g(t._element).trigger(re.HIDDEN)})},t._removeBackdrop=function(){this._backdrop&&(g(this._backdrop).remove(),this._backdrop=null)},t._showBackdrop=function(t){var e=this,n=g(this._element).hasClass(he)?he:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=le,n&&this._backdrop.classList.add(n),g(this._backdrop).appendTo(document.body),g(this._element).on(re.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&_.reflow(this._backdrop),g(this._backdrop).addClass(ue),!t)return;if(!n)return void t();var i=_.getTransitionDurationFromElement(this._backdrop);g(this._backdrop).one(_.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){g(this._backdrop).removeClass(ue);var o=function(){e._removeBackdrop(),t&&t()};if(g(this._element).hasClass(he)){var r=_.getTransitionDurationFromElement(this._backdrop);g(this._backdrop).one(_.TRANSITION_END,o).emulateTransitionEnd(r)}else o()}else t&&t()},t._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},t._setScrollbar=function(){var o=this;if(this._isBodyOverflowing){var t=[].slice.call(document.querySelectorAll(me)),e=[].slice.call(document.querySelectorAll(pe));g(t).each(function(t,e){var n=e.style.paddingRight,i=g(e).css("padding-right");g(e).data("padding-right",n).css("padding-right",parseFloat(i)+o._scrollbarWidth+"px")}),g(e).each(function(t,e){var n=e.style.marginRight,i=g(e).css("margin-right");g(e).data("margin-right",n).css("margin-right",parseFloat(i)-o._scrollbarWidth+"px")});var n=document.body.style.paddingRight,i=g(document.body).css("padding-right");g(document.body).data("padding-right",n).css("padding-right",parseFloat(i)+this._scrollbarWidth+"px")}g(document.body).addClass(ce)},t._resetScrollbar=function(){var t=[].slice.call(document.querySelectorAll(me));g(t).each(function(t,e){var n=g(e).data("padding-right");g(e).removeData("padding-right"),e.style.paddingRight=n||""});var e=[].slice.call(document.querySelectorAll(""+pe));g(e).each(function(t,e){var n=g(e).data("margin-right");"undefined"!=typeof n&&g(e).css("margin-right",n).removeData("margin-right")});var n=g(document.body).data("padding-right");g(document.body).removeData("padding-right"),document.body.style.paddingRight=n||""},t._getScrollbarWidth=function(){var t=document.createElement("div");t.className=ae,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},o._jQueryInterface=function(n,i){return this.each(function(){var t=g(this).data(te),e=l({},ie,g(this).data(),"object"==typeof n&&n?n:{});if(t||(t=new o(this,e),g(this).data(te,t)),"string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n](i)}else e.show&&t.show(i)})},s(o,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return ie}}]),o}();g(document).on(re.CLICK_DATA_API,ge,function(t){var e,n=this,i=_.getSelectorFromElement(this);i&&(e=document.querySelector(i));var o=g(e).data(te)?"toggle":l({},g(e).data(),g(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var r=g(e).one(re.SHOW,function(t){t.isDefaultPrevented()||r.one(re.HIDDEN,function(){g(n).is(":visible")&&n.focus()})});ve._jQueryInterface.call(g(e),o,this)}),g.fn[Zt]=ve._jQueryInterface,g.fn[Zt].Constructor=ve,g.fn[Zt].noConflict=function(){return g.fn[Zt]=ne,ve._jQueryInterface};var ye=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Ee={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Ce=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,Te=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;function Se(t,s,e){if(0===t.length)return t;if(e&&"function"==typeof e)return e(t);for(var n=(new window.DOMParser).parseFromString(t,"text/html"),a=Object.keys(s),l=[].slice.call(n.body.querySelectorAll("*")),i=function(t,e){var n=l[t],i=n.nodeName.toLowerCase();if(-1===a.indexOf(n.nodeName.toLowerCase()))return n.parentNode.removeChild(n),"continue";var o=[].slice.call(n.attributes),r=[].concat(s["*"]||[],s[i]||[]);o.forEach(function(t){(function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===ye.indexOf(n)||Boolean(t.nodeValue.match(Ce)||t.nodeValue.match(Te));for(var i=e.filter(function(t){return t instanceof RegExp}),o=0,r=i.length;o<r;o++)if(n.match(i[o]))return!0;return!1})(t,r)||n.removeAttribute(t.nodeName)})},o=0,r=l.length;o<r;o++)i(o);return n.body.innerHTML}var be="tooltip",Ie="bs.tooltip",De="."+Ie,we=g.fn[be],Ae="bs-tooltip",Ne=new RegExp("(^|\\s)"+Ae+"\\S+","g"),Oe=["sanitize","whiteList","sanitizeFn"],ke={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object"},Pe={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Le={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Ee},je="show",He="out",Re={HIDE:"hide"+De,HIDDEN:"hidden"+De,SHOW:"show"+De,SHOWN:"shown"+De,INSERTED:"inserted"+De,CLICK:"click"+De,FOCUSIN:"focusin"+De,FOCUSOUT:"focusout"+De,MOUSEENTER:"mouseenter"+De,MOUSELEAVE:"mouseleave"+De},xe="fade",Fe="show",Ue=".tooltip-inner",We=".arrow",qe="hover",Me="focus",Ke="click",Qe="manual",Be=function(){function i(t,e){if("undefined"==typeof u)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=g(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(g(this.getTipElement()).hasClass(Fe))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),g.removeData(this.element,this.constructor.DATA_KEY),g(this.element).off(this.constructor.EVENT_KEY),g(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&g(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===g(this.element).css("display"))throw new Error("Please use show on visible elements");var t=g.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){g(this.element).trigger(t);var n=_.findShadowRoot(this.element),i=g.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!i)return;var o=this.getTipElement(),r=_.getUID(this.constructor.NAME);o.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&g(o).addClass(xe);var s="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,a=this._getAttachment(s);this.addAttachmentClass(a);var l=this._getContainer();g(o).data(this.constructor.DATA_KEY,this),g.contains(this.element.ownerDocument.documentElement,this.tip)||g(o).appendTo(l),g(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new u(this.element,o,{placement:a,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:We},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}}),g(o).addClass(Fe),"ontouchstart"in document.documentElement&&g(document.body).children().on("mouseover",null,g.noop);var c=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,g(e.element).trigger(e.constructor.Event.SHOWN),t===He&&e._leave(null,e)};if(g(this.tip).hasClass(xe)){var h=_.getTransitionDurationFromElement(this.tip);g(this.tip).one(_.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=g.Event(this.constructor.Event.HIDE),o=function(){e._hoverState!==je&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),g(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(g(this.element).trigger(i),!i.isDefaultPrevented()){if(g(n).removeClass(Fe),"ontouchstart"in document.documentElement&&g(document.body).children().off("mouseover",null,g.noop),this._activeTrigger[Ke]=!1,this._activeTrigger[Me]=!1,this._activeTrigger[qe]=!1,g(this.tip).hasClass(xe)){var r=_.getTransitionDurationFromElement(n);g(n).one(_.TRANSITION_END,o).emulateTransitionEnd(r)}else o();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){g(this.getTipElement()).addClass(Ae+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||g(this.config.template)[0],this.tip},t.setContent=function(){var t=this.getTipElement();this.setElementContent(g(t.querySelectorAll(Ue)),this.getTitle()),g(t).removeClass(xe+" "+Fe)},t.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=Se(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?g(e).parent().is(t)||t.empty().append(e):t.text(g(e).text())},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getOffset=function(){var e=this,t={};return"function"==typeof this.config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,e.config.offset(t.offsets,e.element)||{}),t}:t.offset=this.config.offset,t},t._getContainer=function(){return!1===this.config.container?document.body:_.isElement(this.config.container)?g(this.config.container):g(document).find(this.config.container)},t._getAttachment=function(t){return Pe[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)g(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==Qe){var e=t===qe?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===qe?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;g(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}}),g(this.element).closest(".modal").on("hide.bs.modal",function(){i.element&&i.hide()}),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||g(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Me:qe]=!0),g(e.getTipElement()).hasClass(Fe)||e._hoverState===je?e._hoverState=je:(clearTimeout(e._timeout),e._hoverState=je,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===je&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||g(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Me:qe]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=He,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===He&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){var e=g(this.element).data();return Object.keys(e).forEach(function(t){-1!==Oe.indexOf(t)&&delete e[t]}),"number"==typeof(t=l({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),_.typeCheckConfig(be,t,this.constructor.DefaultType),t.sanitize&&(t.template=Se(t.template,t.whiteList,t.sanitizeFn)),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=g(this.getTipElement()),e=t.attr("class").match(Ne);null!==e&&e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(g(t).removeClass(xe),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=g(this).data(Ie),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),g(this).data(Ie,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Le}},{key:"NAME",get:function(){return be}},{key:"DATA_KEY",get:function(){return Ie}},{key:"Event",get:function(){return Re}},{key:"EVENT_KEY",get:function(){return De}},{key:"DefaultType",get:function(){return ke}}]),i}();g.fn[be]=Be._jQueryInterface,g.fn[be].Constructor=Be,g.fn[be].noConflict=function(){return g.fn[be]=we,Be._jQueryInterface};var Ve="popover",Ye="bs.popover",ze="."+Ye,Xe=g.fn[Ve],$e="bs-popover",Ge=new RegExp("(^|\\s)"+$e+"\\S+","g"),Je=l({},Be.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),Ze=l({},Be.DefaultType,{content:"(string|element|function)"}),tn="fade",en="show",nn=".popover-header",on=".popover-body",rn={HIDE:"hide"+ze,HIDDEN:"hidden"+ze,SHOW:"show"+ze,SHOWN:"shown"+ze,INSERTED:"inserted"+ze,CLICK:"click"+ze,FOCUSIN:"focusin"+ze,FOCUSOUT:"focusout"+ze,MOUSEENTER:"mouseenter"+ze,MOUSELEAVE:"mouseleave"+ze},sn=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var o=i.prototype;return o.isWithContent=function(){return this.getTitle()||this._getContent()},o.addAttachmentClass=function(t){g(this.getTipElement()).addClass($e+"-"+t)},o.getTipElement=function(){return this.tip=this.tip||g(this.config.template)[0],this.tip},o.setContent=function(){var t=g(this.getTipElement());this.setElementContent(t.find(nn),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(on),e),t.removeClass(tn+" "+en)},o._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},o._cleanTipClass=function(){var t=g(this.getTipElement()),e=t.attr("class").match(Ge);null!==e&&0<e.length&&t.removeClass(e.join(""))},i._jQueryInterface=function(n){return this.each(function(){var t=g(this).data(Ye),e="object"==typeof n?n:null;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),g(this).data(Ye,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Je}},{key:"NAME",get:function(){return Ve}},{key:"DATA_KEY",get:function(){return Ye}},{key:"Event",get:function(){return rn}},{key:"EVENT_KEY",get:function(){return ze}},{key:"DefaultType",get:function(){return Ze}}]),i}(Be);g.fn[Ve]=sn._jQueryInterface,g.fn[Ve].Constructor=sn,g.fn[Ve].noConflict=function(){return g.fn[Ve]=Xe,sn._jQueryInterface};var an="scrollspy",ln="bs.scrollspy",cn="."+ln,hn=g.fn[an],un={offset:10,method:"auto",target:""},fn={offset:"number",method:"string",target:"(string|element)"},dn={ACTIVATE:"activate"+cn,SCROLL:"scroll"+cn,LOAD_DATA_API:"load"+cn+".data-api"},gn="dropdown-item",_n="active",mn='[data-spy="scroll"]',pn=".nav, .list-group",vn=".nav-link",yn=".nav-item",En=".list-group-item",Cn=".dropdown",Tn=".dropdown-item",Sn=".dropdown-toggle",bn="offset",In="position",Dn=function(){function n(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+vn+","+this._config.target+" "+En+","+this._config.target+" "+Tn,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,g(this._scrollElement).on(dn.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process()}var t=n.prototype;return t.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?bn:In,o="auto"===this._config.method?t:this._config.method,r=o===In?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map(function(t){var e,n=_.getSelectorFromElement(t);if(n&&(e=document.querySelector(n)),e){var i=e.getBoundingClientRect();if(i.width||i.height)return[g(e)[o]().top+r,n]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},t.dispose=function(){g.removeData(this._element,ln),g(this._scrollElement).off(cn),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},t._getConfig=function(t){if("string"!=typeof(t=l({},un,"object"==typeof t&&t?t:{})).target){var e=g(t.target).attr("id");e||(e=_.getUID(an),g(t.target).attr("id",e)),t.target="#"+e}return _.typeCheckConfig(an,t,fn),t},t._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},t._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},t._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},t._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),n<=t){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&0<this._offsets[0])return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},t._activate=function(e){this._activeTarget=e,this._clear();var t=this._selector.split(",").map(function(t){return t+'[data-target="'+e+'"],'+t+'[href="'+e+'"]'}),n=g([].slice.call(document.querySelectorAll(t.join(","))));n.hasClass(gn)?(n.closest(Cn).find(Sn).addClass(_n),n.addClass(_n)):(n.addClass(_n),n.parents(pn).prev(vn+", "+En).addClass(_n),n.parents(pn).prev(yn).children(vn).addClass(_n)),g(this._scrollElement).trigger(dn.ACTIVATE,{relatedTarget:e})},t._clear=function(){[].slice.call(document.querySelectorAll(this._selector)).filter(function(t){return t.classList.contains(_n)}).forEach(function(t){return t.classList.remove(_n)})},n._jQueryInterface=function(e){return this.each(function(){var t=g(this).data(ln);if(t||(t=new n(this,"object"==typeof e&&e),g(this).data(ln,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},s(n,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return un}}]),n}();g(window).on(dn.LOAD_DATA_API,function(){for(var t=[].slice.call(document.querySelectorAll(mn)),e=t.length;e--;){var n=g(t[e]);Dn._jQueryInterface.call(n,n.data())}}),g.fn[an]=Dn._jQueryInterface,g.fn[an].Constructor=Dn,g.fn[an].noConflict=function(){return g.fn[an]=hn,Dn._jQueryInterface};var wn="bs.tab",An="."+wn,Nn=g.fn.tab,On={HIDE:"hide"+An,HIDDEN:"hidden"+An,SHOW:"show"+An,SHOWN:"shown"+An,CLICK_DATA_API:"click"+An+".data-api"},kn="dropdown-menu",Pn="active",Ln="disabled",jn="fade",Hn="show",Rn=".dropdown",xn=".nav, .list-group",Fn=".active",Un="> li > .active",Wn='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',qn=".dropdown-toggle",Mn="> .dropdown-menu .active",Kn=function(){function i(t){this._element=t}var t=i.prototype;return t.show=function(){var n=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&g(this._element).hasClass(Pn)||g(this._element).hasClass(Ln))){var t,i,e=g(this._element).closest(xn)[0],o=_.getSelectorFromElement(this._element);if(e){var r="UL"===e.nodeName||"OL"===e.nodeName?Un:Fn;i=(i=g.makeArray(g(e).find(r)))[i.length-1]}var s=g.Event(On.HIDE,{relatedTarget:this._element}),a=g.Event(On.SHOW,{relatedTarget:i});if(i&&g(i).trigger(s),g(this._element).trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){o&&(t=document.querySelector(o)),this._activate(this._element,e);var l=function(){var t=g.Event(On.HIDDEN,{relatedTarget:n._element}),e=g.Event(On.SHOWN,{relatedTarget:i});g(i).trigger(t),g(n._element).trigger(e)};t?this._activate(t,t.parentNode,l):l()}}},t.dispose=function(){g.removeData(this._element,wn),this._element=null},t._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?g(e).children(Fn):g(e).find(Un))[0],r=n&&o&&g(o).hasClass(jn),s=function(){return i._transitionComplete(t,o,n)};if(o&&r){var a=_.getTransitionDurationFromElement(o);g(o).removeClass(Hn).one(_.TRANSITION_END,s).emulateTransitionEnd(a)}else s()},t._transitionComplete=function(t,e,n){if(e){g(e).removeClass(Pn);var i=g(e.parentNode).find(Mn)[0];i&&g(i).removeClass(Pn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(g(t).addClass(Pn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),_.reflow(t),t.classList.contains(jn)&&t.classList.add(Hn),t.parentNode&&g(t.parentNode).hasClass(kn)){var o=g(t).closest(Rn)[0];if(o){var r=[].slice.call(o.querySelectorAll(qn));g(r).addClass(Pn)}t.setAttribute("aria-expanded",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var t=g(this),e=t.data(wn);if(e||(e=new i(this),t.data(wn,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),i}();g(document).on(On.CLICK_DATA_API,Wn,function(t){t.preventDefault(),Kn._jQueryInterface.call(g(this),"show")}),g.fn.tab=Kn._jQueryInterface,g.fn.tab.Constructor=Kn,g.fn.tab.noConflict=function(){return g.fn.tab=Nn,Kn._jQueryInterface};var Qn="toast",Bn="bs.toast",Vn="."+Bn,Yn=g.fn[Qn],zn={CLICK_DISMISS:"click.dismiss"+Vn,HIDE:"hide"+Vn,HIDDEN:"hidden"+Vn,SHOW:"show"+Vn,SHOWN:"shown"+Vn},Xn="fade",$n="hide",Gn="show",Jn="showing",Zn={animation:"boolean",autohide:"boolean",delay:"number"},ti={animation:!0,autohide:!0,delay:500},ei='[data-dismiss="toast"]',ni=function(){function i(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var t=i.prototype;return t.show=function(){var t=this;g(this._element).trigger(zn.SHOW),this._config.animation&&this._element.classList.add(Xn);var e=function(){t._element.classList.remove(Jn),t._element.classList.add(Gn),g(t._element).trigger(zn.SHOWN),t._config.autohide&&t.hide()};if(this._element.classList.remove($n),this._element.classList.add(Jn),this._config.animation){var n=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},t.hide=function(t){var e=this;this._element.classList.contains(Gn)&&(g(this._element).trigger(zn.HIDE),t?this._close():this._timeout=setTimeout(function(){e._close()},this._config.delay))},t.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(Gn)&&this._element.classList.remove(Gn),g(this._element).off(zn.CLICK_DISMISS),g.removeData(this._element,Bn),this._element=null,this._config=null},t._getConfig=function(t){return t=l({},ti,g(this._element).data(),"object"==typeof t&&t?t:{}),_.typeCheckConfig(Qn,t,this.constructor.DefaultType),t},t._setListeners=function(){var t=this;g(this._element).on(zn.CLICK_DISMISS,ei,function(){return t.hide(!0)})},t._close=function(){var t=this,e=function(){t._element.classList.add($n),g(t._element).trigger(zn.HIDDEN)};if(this._element.classList.remove(Gn),this._config.animation){var n=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},i._jQueryInterface=function(n){return this.each(function(){var t=g(this),e=t.data(Bn);if(e||(e=new i(this,"object"==typeof n&&n),t.data(Bn,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n](this)}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"DefaultType",get:function(){return Zn}},{key:"Default",get:function(){return ti}}]),i}();g.fn[Qn]=ni._jQueryInterface,g.fn[Qn].Constructor=ni,g.fn[Qn].noConflict=function(){return g.fn[Qn]=Yn,ni._jQueryInterface},function(){if("undefined"==typeof g)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=g.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||4<=t[0])throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(),t.Util=_,t.Alert=p,t.Button=P,t.Carousel=lt,t.Collapse=bt,t.Dropdown=Jt,t.Modal=ve,t.Popover=sn,t.Scrollspy=Dn,t.Tab=Kn,t.Toast=ni,t.Tooltip=Be,Object.defineProperty(t,"__esModule",{value:!0})}); +//# sourceMappingURL=bootstrap.min.js.map \ No newline at end of file diff --git a/test/coverage/_js/d3.min.js b/test/coverage/_js/d3.min.js new file mode 100644 index 0000000..1664873 --- /dev/null +++ b/test/coverage/_js/d3.min.js @@ -0,0 +1,5 @@ +!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:NaN}function r(n){return null===n?NaN:+n}function i(n){return!isNaN(n)}function u(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)<0?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)>0?i=u:r=u+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function l(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function c(){this._=Object.create(null)}function f(n){return(n+="")===bo||n[0]===_o?_o+n:n}function s(n){return(n+="")[0]===_o?n.slice(1):n}function h(n){return f(n)in this._}function p(n){return(n=f(n))in this._&&delete this._[n]}function g(){var n=[];for(var t in this._)n.push(s(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function y(){this._=Object.create(null)}function m(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=wo.length;r>e;++e){var i=wo[e]+t;if(i in n)return i}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,i=-1,u=r.length;++i<u;)(t=r[i].on)&&t.apply(this,arguments);return n}var e=[],r=new c;return t.on=function(t,i){var u,o=r.get(t);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,u=e.indexOf(o)).concat(e.slice(u+1)),r.remove(t)),i&&e.push(r.set(t,{on:i})),n)},t}function S(){ao.event.preventDefault()}function k(){for(var n,t=ao.event;n=t.sourceEvent;)t=n;return t}function N(n){for(var t=new _,e=0,r=arguments.length;++e<r;)t[arguments[e]]=w(t);return t.of=function(e,r){return function(i){try{var u=i.sourceEvent=ao.event;i.target=n,ao.event=i,t[i.type].apply(e,r)}finally{ao.event=u}}},t}function E(n){return ko(n,Co),n}function A(n){return"function"==typeof n?n:function(){return No(n,this)}}function C(n){return"function"==typeof n?n:function(){return Eo(n,this)}}function z(n,t){function e(){this.removeAttribute(n)}function r(){this.removeAttributeNS(n.space,n.local)}function i(){this.setAttribute(n,t)}function u(){this.setAttributeNS(n.space,n.local,t)}function o(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}function a(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}return n=ao.ns.qualify(n),null==t?n.local?r:e:"function"==typeof t?n.local?a:o:n.local?u:i}function L(n){return n.trim().replace(/\s+/g," ")}function q(n){return new RegExp("(?:^|\\s+)"+ao.requote(n)+"(?:\\s+|$)","g")}function T(n){return(n+"").trim().split(/^|\s+/)}function R(n,t){function e(){for(var e=-1;++e<i;)n[e](this,t)}function r(){for(var e=-1,r=t.apply(this,arguments);++e<i;)n[e](this,r)}n=T(n).map(D);var i=n.length;return"function"==typeof t?r:e}function D(n){var t=q(n);return function(e,r){if(i=e.classList)return r?i.add(n):i.remove(n);var i=e.getAttribute("class")||"";r?(t.lastIndex=0,t.test(i)||e.setAttribute("class",L(i+" "+n))):e.setAttribute("class",L(i.replace(t," ")))}}function P(n,t,e){function r(){this.style.removeProperty(n)}function i(){this.style.setProperty(n,t,e)}function u(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,e)}return null==t?r:"function"==typeof t?u:i}function U(n,t){function e(){delete this[n]}function r(){this[n]=t}function i(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}return null==t?e:"function"==typeof t?i:r}function j(n){function t(){var t=this.ownerDocument,e=this.namespaceURI;return e===zo&&t.documentElement.namespaceURI===zo?t.createElement(n):t.createElementNS(e,n)}function e(){return this.ownerDocument.createElementNS(n.space,n.local)}return"function"==typeof n?n:(n=ao.ns.qualify(n)).local?e:t}function F(){var n=this.parentNode;n&&n.removeChild(this)}function H(n){return{__data__:n}}function O(n){return function(){return Ao(this,n)}}function I(n){return arguments.length||(n=e),function(t,e){return t&&e?n(t.__data__,e.__data__):!t-!e}}function Y(n,t){for(var e=0,r=n.length;r>e;e++)for(var i,u=n[e],o=0,a=u.length;a>o;o++)(i=u[o])&&t(i,o,e);return n}function Z(n){return ko(n,qo),n}function V(n){var t,e;return function(r,i,u){var o,a=n[u].update,l=a.length;for(u!=e&&(e=u,t=0),i>=t&&(t=i+1);!(o=a[t])&&++t<l;);return o}}function X(n,t,e){function r(){var t=this[o];t&&(this.removeEventListener(n,t,t.$),delete this[o])}function i(){var i=l(t,co(arguments));r.call(this),this.addEventListener(n,this[o]=i,i.$=e),i._=t}function u(){var t,e=new RegExp("^__on([^.]+)"+ao.requote(n)+"$");for(var r in this)if(t=r.match(e)){var i=this[r];this.removeEventListener(t[1],i,i.$),delete this[r]}}var o="__on"+n,a=n.indexOf("."),l=$;a>0&&(n=n.slice(0,a));var c=To.get(n);return c&&(n=c,l=B),a?t?i:r:t?b:u}function $(n,t){return function(e){var r=ao.event;ao.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ao.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Do,i="click"+r,u=ao.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ro&&(Ro="onselectstart"in e?!1:x(e.style,"userSelect")),Ro){var o=n(e).style,a=o[Ro];o[Ro]="none"}return function(n){if(u.on(r,null),Ro&&(o[Ro]=a),n){var t=function(){u.on(i,null)};u.on(i,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var i=r.createSVGPoint();if(0>Po){var u=t(n);if(u.scrollX||u.scrollY){r=ao.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Po=!(o.f||o.e),r.remove()}}return Po?(i.x=e.pageX,i.y=e.pageY):(i.x=e.clientX,i.y=e.clientY),i=i.matrixTransform(n.getScreenCTM().inverse()),[i.x,i.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ao.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nn(n){return n>1?0:-1>n?Fo:Math.acos(n)}function tn(n){return n>1?Io:-1>n?-Io:Math.asin(n)}function en(n){return((n=Math.exp(n))-1/n)/2}function rn(n){return((n=Math.exp(n))+1/n)/2}function un(n){return((n=Math.exp(2*n))-1)/(n+1)}function on(n){return(n=Math.sin(n/2))*n}function an(){}function ln(n,t,e){return this instanceof ln?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ln?new ln(n.h,n.s,n.l):_n(""+n,wn,ln):new ln(n,t,e)}function cn(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?u+(o-u)*n/60:180>n?o:240>n?u+(o-u)*(240-n)/60:u}function i(n){return Math.round(255*r(n))}var u,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,u=2*e-o,new mn(i(n+120),i(n),i(n-120))}function fn(n,t,e){return this instanceof fn?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof fn?new fn(n.h,n.c,n.l):n instanceof hn?gn(n.l,n.a,n.b):gn((n=Sn((n=ao.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new fn(n,t,e)}function sn(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new hn(e,Math.cos(n*=Yo)*t,Math.sin(n)*t)}function hn(n,t,e){return this instanceof hn?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof hn?new hn(n.l,n.a,n.b):n instanceof fn?sn(n.h,n.c,n.l):Sn((n=mn(n)).r,n.g,n.b):new hn(n,t,e)}function pn(n,t,e){var r=(n+16)/116,i=r+t/500,u=r-e/200;return i=vn(i)*na,r=vn(r)*ta,u=vn(u)*ea,new mn(yn(3.2404542*i-1.5371385*r-.4985314*u),yn(-.969266*i+1.8760108*r+.041556*u),yn(.0556434*i-.2040259*r+1.0572252*u))}function gn(n,t,e){return n>0?new fn(Math.atan2(e,t)*Zo,Math.sqrt(t*t+e*e),n):new fn(NaN,NaN,n)}function vn(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function dn(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function yn(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mn(n,t,e){return this instanceof mn?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mn?new mn(n.r,n.g,n.b):_n(""+n,mn,cn):new mn(n,t,e)}function Mn(n){return new mn(n>>16,n>>8&255,255&n)}function xn(n){return Mn(n)+""}function bn(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function _n(n,t,e){var r,i,u,o=0,a=0,l=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(i=r[2].split(","),r[1]){case"hsl":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return t(Nn(i[0]),Nn(i[1]),Nn(i[2]))}return(u=ua.get(n))?t(u.r,u.g,u.b):(null==n||"#"!==n.charAt(0)||isNaN(u=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&u)>>4,o=o>>4|o,a=240&u,a=a>>4|a,l=15&u,l=l<<4|l):7===n.length&&(o=(16711680&u)>>16,a=(65280&u)>>8,l=255&u)),t(o,a,l))}function wn(n,t,e){var r,i,u=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-u,l=(o+u)/2;return a?(i=.5>l?a/(o+u):a/(2-o-u),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=NaN,i=l>0&&1>l?0:r),new ln(r,i,l)}function Sn(n,t,e){n=kn(n),t=kn(t),e=kn(e);var r=dn((.4124564*n+.3575761*t+.1804375*e)/na),i=dn((.2126729*n+.7151522*t+.072175*e)/ta),u=dn((.0193339*n+.119192*t+.9503041*e)/ea);return hn(116*i-16,500*(r-i),200*(i-u))}function kn(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Nn(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function En(n){return"function"==typeof n?n:function(){return n}}function An(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Cn(t,e,n,r)}}function Cn(n,t,e,r){function i(){var n,t=l.status;if(!t&&Ln(l)||t>=200&&300>t||304===t){try{n=e.call(u,l)}catch(r){return void o.error.call(u,r)}o.load.call(u,n)}else o.error.call(u,l)}var u={},o=ao.dispatch("beforesend","progress","load","error"),a={},l=new XMLHttpRequest,c=null;return!this.XDomainRequest||"withCredentials"in l||!/^(http(s)?:)?\/\//.test(n)||(l=new XDomainRequest),"onload"in l?l.onload=l.onerror=i:l.onreadystatechange=function(){l.readyState>3&&i()},l.onprogress=function(n){var t=ao.event;ao.event=n;try{o.progress.call(u,l)}finally{ao.event=t}},u.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",u)},u.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",u):t},u.responseType=function(n){return arguments.length?(c=n,u):c},u.response=function(n){return e=n,u},["get","post"].forEach(function(n){u[n]=function(){return u.send.apply(u,[n].concat(co(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&"function"==typeof r&&(i=r,r=null),l.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),l.setRequestHeader)for(var f in a)l.setRequestHeader(f,a[f]);return null!=t&&l.overrideMimeType&&l.overrideMimeType(t),null!=c&&(l.responseType=c),null!=i&&u.on("error",i).on("load",function(n){i(null,n)}),o.beforesend.call(u,l),l.send(null==r?null:r),u},u.abort=function(){return l.abort(),u},ao.rebind(u,o,"on"),null==r?u:u.get(zn(r))}function zn(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function Ln(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qn(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var i=e+t,u={c:n,t:i,n:null};return aa?aa.n=u:oa=u,aa=u,la||(ca=clearTimeout(ca),la=1,fa(Tn)),u}function Tn(){var n=Rn(),t=Dn()-n;t>24?(isFinite(t)&&(clearTimeout(ca),ca=setTimeout(Tn,t)),la=0):(la=1,fa(Tn))}function Rn(){for(var n=Date.now(),t=oa;t;)n>=t.t&&t.c(n-t.t)&&(t.c=null),t=t.n;return n}function Dn(){for(var n,t=oa,e=1/0;t;)t.c?(t.t<e&&(e=t.t),t=(n=t).n):t=n?n.n=t.n:oa=t.n;return aa=n,e}function Pn(n,t){return t-(n?Math.ceil(Math.log(n)/Math.LN10):1)}function Un(n,t){var e=Math.pow(10,3*xo(8-t));return{scale:t>8?function(n){return n/e}:function(n){return n*e},symbol:n}}function jn(n){var t=n.decimal,e=n.thousands,r=n.grouping,i=n.currency,u=r&&e?function(n,t){for(var i=n.length,u=[],o=0,a=r[0],l=0;i>0&&a>0&&(l+a+1>t&&(a=Math.max(1,t-l)),u.push(n.substring(i-=a,i+a)),!((l+=a+1)>t));)a=r[o=(o+1)%r.length];return u.reverse().join(e)}:m;return function(n){var e=ha.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",l=e[4]||"",c=e[5],f=+e[6],s=e[7],h=e[8],p=e[9],g=1,v="",d="",y=!1,m=!0;switch(h&&(h=+h.substring(1)),(c||"0"===r&&"="===o)&&(c=r="0",o="="),p){case"n":s=!0,p="g";break;case"%":g=100,d="%",p="f";break;case"p":g=100,d="%",p="r";break;case"b":case"o":case"x":case"X":"#"===l&&(v="0"+p.toLowerCase());case"c":m=!1;case"d":y=!0,h=0;break;case"s":g=-1,p="r"}"$"===l&&(v=i[0],d=i[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):"e"!=p&&"f"!=p||(h=Math.max(0,Math.min(20,h)))),p=pa.get(p)||Fn;var M=c&&s;return function(n){var e=d;if(y&&n%1)return"";var i=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>g){var l=ao.formatPrefix(n,h);n=l.scale(n),e=l.symbol+d}else n*=g;n=p(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=m?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!c&&s&&(x=u(x,1/0));var S=v.length+x.length+b.length+(M?0:i.length),k=f>S?new Array(S=f-S+1).join(r):"";return M&&(x=u(k+x,k.length?f-b.length:1/0)),i+=v,n=x+b,("<"===o?i+n+k:">"===o?k+i+n:"^"===o?k.substring(0,S>>=1)+i+n+k.substring(S):i+(M?n:k+n))+e}}}function Fn(n){return n+""}function Hn(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function On(n,t,e){function r(t){var e=n(t),r=u(e,1);return r-t>t-e?e:r}function i(e){return t(e=n(new va(e-1)),1),e}function u(n,e){return t(n=new va(+n),e),n}function o(n,r,u){var o=i(n),a=[];if(u>1)for(;r>o;)e(o)%u||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{va=Hn;var r=new Hn;return r._=n,o(r,t,e)}finally{va=Date}}n.floor=n,n.round=r,n.ceil=i,n.offset=u,n.range=o;var l=n.utc=In(n);return l.floor=l,l.round=In(r),l.ceil=In(i),l.offset=In(u),l.range=a,n}function In(n){return function(t,e){try{va=Hn;var r=new Hn;return r._=t,n(r,e)._}finally{va=Date}}}function Yn(n){function t(n){function t(t){for(var e,i,u,o=[],a=-1,l=0;++a<r;)37===n.charCodeAt(a)&&(o.push(n.slice(l,a)),null!=(i=ya[e=n.charAt(++a)])&&(e=n.charAt(++a)),(u=A[e])&&(e=u(t,null==i?"e"===e?" ":"0":i)),o.push(e),l=a+1);return o.push(n.slice(l,a)),o.join("")}var r=n.length;return t.parse=function(t){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},i=e(r,n,t,0);if(i!=t.length)return null;"p"in r&&(r.H=r.H%12+12*r.p);var u=null!=r.Z&&va!==Hn,o=new(u?Hn:va);return"j"in r?o.setFullYear(r.y,0,r.j):"W"in r||"U"in r?("w"in r||(r.w="W"in r?1:0),o.setFullYear(r.y,0,1),o.setFullYear(r.y,0,"W"in r?(r.w+6)%7+7*r.W-(o.getDay()+5)%7:r.w+7*r.U-(o.getDay()+6)%7)):o.setFullYear(r.y,r.m,r.d),o.setHours(r.H+(r.Z/100|0),r.M+r.Z%100,r.S,r.L),u?o._:o},t.toString=function(){return n},t}function e(n,t,e,r){for(var i,u,o,a=0,l=t.length,c=e.length;l>a;){if(r>=c)return-1;if(i=t.charCodeAt(a++),37===i){if(o=t.charAt(a++),u=C[o in ya?t.charAt(a++):o],!u||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){N.lastIndex=0;var r=N.exec(t.slice(e));return r?(n.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,A.c.toString(),t,r)}function l(n,t,r){return e(n,A.x.toString(),t,r)}function c(n,t,r){return e(n,A.X.toString(),t,r)}function f(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var s=n.dateTime,h=n.date,p=n.time,g=n.periods,v=n.days,d=n.shortDays,y=n.months,m=n.shortMonths;t.utc=function(n){function e(n){try{va=Hn;var t=new va;return t._=n,r(t)}finally{va=Date}}var r=t(n);return e.parse=function(n){try{va=Hn;var t=r.parse(n);return t&&t._}finally{va=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ct;var M=ao.map(),x=Vn(v),b=Xn(v),_=Vn(d),w=Xn(d),S=Vn(y),k=Xn(y),N=Vn(m),E=Xn(m);g.forEach(function(n,t){M.set(n.toLowerCase(),t)});var A={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return m[n.getMonth()]},B:function(n){return y[n.getMonth()]},c:t(s),d:function(n,t){return Zn(n.getDate(),t,2)},e:function(n,t){return Zn(n.getDate(),t,2)},H:function(n,t){return Zn(n.getHours(),t,2)},I:function(n,t){return Zn(n.getHours()%12||12,t,2)},j:function(n,t){return Zn(1+ga.dayOfYear(n),t,3)},L:function(n,t){return Zn(n.getMilliseconds(),t,3)},m:function(n,t){return Zn(n.getMonth()+1,t,2)},M:function(n,t){return Zn(n.getMinutes(),t,2)},p:function(n){return g[+(n.getHours()>=12)]},S:function(n,t){return Zn(n.getSeconds(),t,2)},U:function(n,t){return Zn(ga.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Zn(ga.mondayOfYear(n),t,2)},x:t(h),X:t(p),y:function(n,t){return Zn(n.getFullYear()%100,t,2)},Y:function(n,t){return Zn(n.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},C={a:r,A:i,b:u,B:o,c:a,d:tt,e:tt,H:rt,I:rt,j:et,L:ot,m:nt,M:it,p:f,S:ut,U:Bn,w:$n,W:Wn,x:l,X:c,y:Gn,Y:Jn,Z:Kn,"%":lt};return t}function Zn(n,t,e){var r=0>n?"-":"",i=(r?-n:n)+"",u=i.length;return r+(e>u?new Array(e-u+1).join(t)+i:i)}function Vn(n){return new RegExp("^(?:"+n.map(ao.requote).join("|")+")","i")}function Xn(n){for(var t=new c,e=-1,r=n.length;++e<r;)t.set(n[e].toLowerCase(),e);return t}function $n(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+1));return r?(n.w=+r[0],e+r[0].length):-1}function Bn(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e));return r?(n.U=+r[0],e+r[0].length):-1}function Wn(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e));return r?(n.W=+r[0],e+r[0].length):-1}function Jn(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+4));return r?(n.y=+r[0],e+r[0].length):-1}function Gn(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.y=Qn(+r[0]),e+r[0].length):-1}function Kn(n,t,e){return/^[+-]\d{4}$/.test(t=t.slice(e,e+5))?(n.Z=-t,e+5):-1}function Qn(n){return n+(n>68?1900:2e3)}function nt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function tt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function et(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function rt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function it(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ut(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ot(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function at(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=xo(t)/60|0,i=xo(t)%60;return e+Zn(r,"0",2)+Zn(i,"0",2)}function lt(n,t,e){Ma.lastIndex=0;var r=Ma.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ct(n){for(var t=n.length,e=-1;++e<t;)n[e][0]=this(n[e][0]);return function(t){for(var e=0,r=n[e];!r[1](t);)r=n[++e];return r[0](t)}}function ft(){}function st(n,t,e){var r=e.s=n+t,i=r-n,u=r-i;e.t=n-u+(t-i)}function ht(n,t){n&&wa.hasOwnProperty(n.type)&&wa[n.type](n,t)}function pt(n,t,e){var r,i=-1,u=n.length-e;for(t.lineStart();++i<u;)r=n[i],t.point(r[0],r[1],r[2]);t.lineEnd()}function gt(n,t){var e=-1,r=n.length;for(t.polygonStart();++e<r;)pt(n[e],t,1);t.polygonEnd()}function vt(){function n(n,t){n*=Yo,t=t*Yo/2+Fo/4;var e=n-r,o=e>=0?1:-1,a=o*e,l=Math.cos(t),c=Math.sin(t),f=u*c,s=i*l+f*Math.cos(a),h=f*o*Math.sin(a);ka.add(Math.atan2(h,s)),r=n,i=l,u=c}var t,e,r,i,u;Na.point=function(o,a){Na.point=n,r=(t=o)*Yo,i=Math.cos(a=(e=a)*Yo/2+Fo/4),u=Math.sin(a)},Na.lineEnd=function(){n(t,e)}}function dt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function yt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function Mt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function xt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function bt(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function _t(n){return[Math.atan2(n[1],n[0]),tn(n[2])]}function wt(n,t){return xo(n[0]-t[0])<Uo&&xo(n[1]-t[1])<Uo}function St(n,t){n*=Yo;var e=Math.cos(t*=Yo);kt(e*Math.cos(n),e*Math.sin(n),Math.sin(t))}function kt(n,t,e){++Ea,Ca+=(n-Ca)/Ea,za+=(t-za)/Ea,La+=(e-La)/Ea}function Nt(){function n(n,i){n*=Yo;var u=Math.cos(i*=Yo),o=u*Math.cos(n),a=u*Math.sin(n),l=Math.sin(i),c=Math.atan2(Math.sqrt((c=e*l-r*a)*c+(c=r*o-t*l)*c+(c=t*a-e*o)*c),t*o+e*a+r*l);Aa+=c,qa+=c*(t+(t=o)),Ta+=c*(e+(e=a)),Ra+=c*(r+(r=l)),kt(t,e,r)}var t,e,r;ja.point=function(i,u){i*=Yo;var o=Math.cos(u*=Yo);t=o*Math.cos(i),e=o*Math.sin(i),r=Math.sin(u),ja.point=n,kt(t,e,r)}}function Et(){ja.point=St}function At(){function n(n,t){n*=Yo;var e=Math.cos(t*=Yo),o=e*Math.cos(n),a=e*Math.sin(n),l=Math.sin(t),c=i*l-u*a,f=u*o-r*l,s=r*a-i*o,h=Math.sqrt(c*c+f*f+s*s),p=r*o+i*a+u*l,g=h&&-nn(p)/h,v=Math.atan2(h,p);Da+=g*c,Pa+=g*f,Ua+=g*s,Aa+=v,qa+=v*(r+(r=o)),Ta+=v*(i+(i=a)),Ra+=v*(u+(u=l)),kt(r,i,u)}var t,e,r,i,u;ja.point=function(o,a){t=o,e=a,ja.point=n,o*=Yo;var l=Math.cos(a*=Yo);r=l*Math.cos(o),i=l*Math.sin(o),u=Math.sin(a),kt(r,i,u)},ja.lineEnd=function(){n(t,e),ja.lineEnd=Et,ja.point=St}}function Ct(n,t){function e(e,r){return e=n(e,r),t(e[0],e[1])}return n.invert&&t.invert&&(e.invert=function(e,r){return e=t.invert(e,r),e&&n.invert(e[0],e[1])}),e}function zt(){return!0}function Lt(n,t,e,r,i){var u=[],o=[];if(n.forEach(function(n){if(!((t=n.length-1)<=0)){var t,e=n[0],r=n[t];if(wt(e,r)){i.lineStart();for(var a=0;t>a;++a)i.point((e=n[a])[0],e[1]);return void i.lineEnd()}var l=new Tt(e,n,null,!0),c=new Tt(e,null,l,!1);l.o=c,u.push(l),o.push(c),l=new Tt(r,n,null,!1),c=new Tt(r,null,l,!0),l.o=c,u.push(l),o.push(c)}}),o.sort(t),qt(u),qt(o),u.length){for(var a=0,l=e,c=o.length;c>a;++a)o[a].e=l=!l;for(var f,s,h=u[0];;){for(var p=h,g=!0;p.v;)if((p=p.n)===h)return;f=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(g)for(var a=0,c=f.length;c>a;++a)i.point((s=f[a])[0],s[1]);else r(p.x,p.n.x,1,i);p=p.n}else{if(g){f=p.p.z;for(var a=f.length-1;a>=0;--a)i.point((s=f[a])[0],s[1])}else r(p.x,p.p.x,-1,i);p=p.p}p=p.o,f=p.z,g=!g}while(!p.v);i.lineEnd()}}}function qt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r<t;)i.n=e=n[r],e.p=i,i=e;i.n=e=n[0],e.p=i}}function Tt(n,t,e,r){this.x=n,this.z=t,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function Rt(n,t,e,r){return function(i,u){function o(t,e){var r=i(t,e);n(t=r[0],e=r[1])&&u.point(t,e)}function a(n,t){var e=i(n,t);d.point(e[0],e[1])}function l(){m.point=a,d.lineStart()}function c(){m.point=o,d.lineEnd()}function f(n,t){v.push([n,t]);var e=i(n,t);x.point(e[0],e[1])}function s(){x.lineStart(),v=[]}function h(){f(v[0][0],v[0][1]),x.lineEnd();var n,t=x.clean(),e=M.buffer(),r=e.length;if(v.pop(),g.push(v),v=null,r)if(1&t){n=e[0];var i,r=n.length-1,o=-1;if(r>0){for(b||(u.polygonStart(),b=!0),u.lineStart();++o<r;)u.point((i=n[o])[0],i[1]);u.lineEnd()}}else r>1&&2&t&&e.push(e.pop().concat(e.shift())),p.push(e.filter(Dt))}var p,g,v,d=t(u),y=i.invert(r[0],r[1]),m={point:o,lineStart:l,lineEnd:c,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=h,p=[],g=[]},polygonEnd:function(){m.point=o,m.lineStart=l,m.lineEnd=c,p=ao.merge(p);var n=Ot(y,g);p.length?(b||(u.polygonStart(),b=!0),Lt(p,Ut,n,e,u)):n&&(b||(u.polygonStart(),b=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),b&&(u.polygonEnd(),b=!1),p=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},M=Pt(),x=t(M),b=!1;return m}}function Dt(n){return n.length>1}function Pt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Ut(n,t){return((n=n.x)[0]<0?n[1]-Io-Uo:Io-n[1])-((t=t.x)[0]<0?t[1]-Io-Uo:Io-t[1])}function jt(n){var t,e=NaN,r=NaN,i=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(u,o){var a=u>0?Fo:-Fo,l=xo(u-e);xo(l-Fo)<Uo?(n.point(e,r=(r+o)/2>0?Io:-Io),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(u,r),t=0):i!==a&&l>=Fo&&(xo(e-i)<Uo&&(e-=i*Uo),xo(u-a)<Uo&&(u-=a*Uo),r=Ft(e,r,u,o),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),t=0),n.point(e=u,r=o),i=a},lineEnd:function(){n.lineEnd(),e=r=NaN},clean:function(){return 2-t}}}function Ft(n,t,e,r){var i,u,o=Math.sin(n-e);return xo(o)>Uo?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*o)):(t+r)/2}function Ht(n,t,e,r){var i;if(null==n)i=e*Io,r.point(-Fo,i),r.point(0,i),r.point(Fo,i),r.point(Fo,0),r.point(Fo,-i),r.point(0,-i),r.point(-Fo,-i),r.point(-Fo,0),r.point(-Fo,i);else if(xo(n[0]-t[0])>Uo){var u=n[0]<t[0]?Fo:-Fo;i=e*u/2,r.point(-u,i),r.point(0,i),r.point(u,i)}else r.point(t[0],t[1])}function Ot(n,t){var e=n[0],r=n[1],i=[Math.sin(e),-Math.cos(e),0],u=0,o=0;ka.reset();for(var a=0,l=t.length;l>a;++a){var c=t[a],f=c.length;if(f)for(var s=c[0],h=s[0],p=s[1]/2+Fo/4,g=Math.sin(p),v=Math.cos(p),d=1;;){d===f&&(d=0),n=c[d];var y=n[0],m=n[1]/2+Fo/4,M=Math.sin(m),x=Math.cos(m),b=y-h,_=b>=0?1:-1,w=_*b,S=w>Fo,k=g*M;if(ka.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),u+=S?b+_*Ho:b,S^h>=e^y>=e){var N=mt(dt(s),dt(n));bt(N);var E=mt(i,N);bt(E);var A=(S^b>=0?-1:1)*tn(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=y,g=M,v=x,s=n}}return(-Uo>u||Uo>u&&-Uo>ka)^1&o}function It(n){function t(n,t){return Math.cos(n)*Math.cos(t)>u}function e(n){var e,u,l,c,f;return{lineStart:function(){c=l=!1,f=1},point:function(s,h){var p,g=[s,h],v=t(s,h),d=o?v?0:i(s,h):v?i(s+(0>s?Fo:-Fo),h):0;if(!e&&(c=l=v)&&n.lineStart(),v!==l&&(p=r(e,g),(wt(e,p)||wt(g,p))&&(g[0]+=Uo,g[1]+=Uo,v=t(g[0],g[1]))),v!==l)f=0,v?(n.lineStart(),p=r(g,e),n.point(p[0],p[1])):(p=r(e,g),n.point(p[0],p[1]),n.lineEnd()),e=p;else if(a&&e&&o^v){var y;d&u||!(y=r(g,e,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1])))}!v||e&&wt(e,g)||n.point(g[0],g[1]),e=g,l=v,u=d},lineEnd:function(){l&&n.lineEnd(),e=null},clean:function(){return f|(c&&l)<<1}}}function r(n,t,e){var r=dt(n),i=dt(t),o=[1,0,0],a=mt(r,i),l=yt(a,a),c=a[0],f=l-c*c;if(!f)return!e&&n;var s=u*l/f,h=-u*c/f,p=mt(o,a),g=xt(o,s),v=xt(a,h);Mt(g,v);var d=p,y=yt(g,d),m=yt(d,d),M=y*y-m*(yt(g,g)-1);if(!(0>M)){var x=Math.sqrt(M),b=xt(d,(-y-x)/m);if(Mt(b,g),b=_t(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],N=t[1];w>S&&(_=w,w=S,S=_);var E=S-w,A=xo(E-Fo)<Uo,C=A||Uo>E;if(!A&&k>N&&(_=k,k=N,N=_),C?A?k+N>0^b[1]<(xo(b[0]-w)<Uo?k:N):k<=b[1]&&b[1]<=N:E>Fo^(w<=b[0]&&b[0]<=S)){var z=xt(d,(-y+x)/m);return Mt(z,g),[b,_t(z)]}}}function i(t,e){var r=o?n:Fo-n,i=0;return-r>t?i|=1:t>r&&(i|=2),-r>e?i|=4:e>r&&(i|=8),i}var u=Math.cos(n),o=u>0,a=xo(u)>Uo,l=ve(n,6*Yo);return Rt(t,e,l,o?[0,-n]:[-Fo,n-Fo])}function Yt(n,t,e,r){return function(i){var u,o=i.a,a=i.b,l=o.x,c=o.y,f=a.x,s=a.y,h=0,p=1,g=f-l,v=s-c;if(u=n-l,g||!(u>0)){if(u/=g,0>g){if(h>u)return;p>u&&(p=u)}else if(g>0){if(u>p)return;u>h&&(h=u)}if(u=e-l,g||!(0>u)){if(u/=g,0>g){if(u>p)return;u>h&&(h=u)}else if(g>0){if(h>u)return;p>u&&(p=u)}if(u=t-c,v||!(u>0)){if(u/=v,0>v){if(h>u)return;p>u&&(p=u)}else if(v>0){if(u>p)return;u>h&&(h=u)}if(u=r-c,v||!(0>u)){if(u/=v,0>v){if(u>p)return;u>h&&(h=u)}else if(v>0){if(h>u)return;p>u&&(p=u)}return h>0&&(i.a={x:l+h*g,y:c+h*v}),1>p&&(i.b={x:l+p*g,y:c+p*v}),i}}}}}}function Zt(n,t,e,r){function i(r,i){return xo(r[0]-n)<Uo?i>0?0:3:xo(r[0]-e)<Uo?i>0?2:1:xo(r[1]-t)<Uo?i>0?1:0:i>0?3:2}function u(n,t){return o(n.x,t.x)}function o(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function l(n){for(var t=0,e=d.length,r=n[1],i=0;e>i;++i)for(var u,o=1,a=d[i],l=a.length,c=a[0];l>o;++o)u=a[o],c[1]<=r?u[1]>r&&Q(c,u,n)>0&&++t:u[1]<=r&&Q(c,u,n)<0&&--t,c=u;return 0!==t}function c(u,a,l,c){var f=0,s=0;if(null==u||(f=i(u,l))!==(s=i(a,l))||o(u,a)<0^l>0){do c.point(0===f||3===f?n:e,f>1?r:t);while((f=(f+l+4)%4)!==s)}else c.point(a[0],a[1])}function f(i,u){return i>=n&&e>=i&&u>=t&&r>=u}function s(n,t){f(n,t)&&a.point(n,t)}function h(){C.point=g,d&&d.push(y=[]),S=!0,w=!1,b=_=NaN}function p(){v&&(g(m,M),x&&w&&E.rejoin(),v.push(E.buffer())),C.point=s,w&&a.lineEnd()}function g(n,t){n=Math.max(-Ha,Math.min(Ha,n)),t=Math.max(-Ha,Math.min(Ha,t));var e=f(n,t);if(d&&y.push([n,t]),S)m=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};A(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,y,m,M,x,b,_,w,S,k,N=a,E=Pt(),A=Yt(n,t,e,r),C={point:s,lineStart:h,lineEnd:p,polygonStart:function(){a=E,v=[],d=[],k=!0},polygonEnd:function(){a=N,v=ao.merge(v);var t=l([n,r]),e=k&&t,i=v.length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),c(null,null,1,a),a.lineEnd()),i&&Lt(v,u,t,c,a),a.polygonEnd()),v=d=y=null}};return C}}function Vt(n){var t=0,e=Fo/3,r=ae(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Fo/180,e=n[1]*Fo/180):[t/Fo*180,e/Fo*180]},i}function Xt(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),o-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),o=Math.sqrt(u)/i;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/i,tn((u-(n*n+e*e)*i*i)/(2*i))]},e}function $t(){function n(n,t){Ia+=i*n-r*t,r=n,i=t}var t,e,r,i;$a.point=function(u,o){$a.point=n,t=r=u,e=i=o},$a.lineEnd=function(){n(t,e)}}function Bt(n,t){Ya>n&&(Ya=n),n>Va&&(Va=n),Za>t&&(Za=t),t>Xa&&(Xa=t)}function Wt(){function n(n,t){o.push("M",n,",",t,u)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function i(){o.push("Z")}var u=Jt(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return u=Jt(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Jt(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Gt(n,t){Ca+=n,za+=t,++La}function Kt(){function n(n,r){var i=n-t,u=r-e,o=Math.sqrt(i*i+u*u);qa+=o*(t+n)/2,Ta+=o*(e+r)/2,Ra+=o,Gt(t=n,e=r)}var t,e;Wa.point=function(r,i){Wa.point=n,Gt(t=r,e=i)}}function Qt(){Wa.point=Gt}function ne(){function n(n,t){var e=n-r,u=t-i,o=Math.sqrt(e*e+u*u);qa+=o*(r+n)/2,Ta+=o*(i+t)/2,Ra+=o,o=i*n-r*t,Da+=o*(r+n),Pa+=o*(i+t),Ua+=3*o,Gt(r=n,i=t)}var t,e,r,i;Wa.point=function(u,o){Wa.point=n,Gt(t=r=u,e=i=o)},Wa.lineEnd=function(){n(t,e)}}function te(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,Ho)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function i(){a.point=t}function u(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:i,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=i,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function ee(n){function t(n){return(a?r:e)(n)}function e(t){return ue(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=NaN,S.point=u,t.lineStart()}function u(e,r){var u=dt([e,r]),o=n(e,r);i(M,x,m,b,_,w,M=o[0],x=o[1],m=e,b=u[0],_=u[1],w=u[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function l(){ +r(),S.point=c,S.lineEnd=f}function c(n,t){u(s=n,h=t),p=M,g=x,v=b,d=_,y=w,S.point=u}function f(){i(M,x,m,b,_,w,p,g,s,v,d,y,a,t),S.lineEnd=o,o()}var s,h,p,g,v,d,y,m,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=l},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function i(t,e,r,a,l,c,f,s,h,p,g,v,d,y){var m=f-t,M=s-e,x=m*m+M*M;if(x>4*u&&d--){var b=a+p,_=l+g,w=c+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),N=xo(xo(w)-1)<Uo||xo(r-h)<Uo?(r+h)/2:Math.atan2(_,b),E=n(N,k),A=E[0],C=E[1],z=A-t,L=C-e,q=M*z-m*L;(q*q/x>u||xo((m*z+M*L)/x-.5)>.3||o>a*p+l*g+c*v)&&(i(t,e,r,a,l,c,A,C,N,b/=S,_/=S,w,d,y),y.point(A,C),i(A,C,N,b,_,w,f,s,h,p,g,v,d,y))}}var u=.5,o=Math.cos(30*Yo),a=16;return t.precision=function(n){return arguments.length?(a=(u=n*n)>0&&16,t):Math.sqrt(u)},t}function re(n){var t=ee(function(t,e){return n([t*Zo,e*Zo])});return function(n){return le(t(n))}}function ie(n){this.stream=n}function ue(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function oe(n){return ae(function(){return n})()}function ae(n){function t(n){return n=a(n[0]*Yo,n[1]*Yo),[n[0]*h+l,c-n[1]*h]}function e(n){return n=a.invert((n[0]-l)/h,(c-n[1])/h),n&&[n[0]*Zo,n[1]*Zo]}function r(){a=Ct(o=se(y,M,x),u);var n=u(v,d);return l=p-n[0]*h,c=g+n[1]*h,i()}function i(){return f&&(f.valid=!1,f=null),t}var u,o,a,l,c,f,s=ee(function(n,t){return n=u(n,t),[n[0]*h+l,c-n[1]*h]}),h=150,p=480,g=250,v=0,d=0,y=0,M=0,x=0,b=Fa,_=m,w=null,S=null;return t.stream=function(n){return f&&(f.valid=!1),f=le(b(o,s(_(n)))),f.valid=!0,f},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Fa):It((w=+n)*Yo),i()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Zt(n[0][0],n[0][1],n[1][0],n[1][1]):m,i()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(p=+n[0],g=+n[1],r()):[p,g]},t.center=function(n){return arguments.length?(v=n[0]%360*Yo,d=n[1]%360*Yo,r()):[v*Zo,d*Zo]},t.rotate=function(n){return arguments.length?(y=n[0]%360*Yo,M=n[1]%360*Yo,x=n.length>2?n[2]%360*Yo:0,r()):[y*Zo,M*Zo,x*Zo]},ao.rebind(t,s,"precision"),function(){return u=n.apply(this,arguments),t.invert=u.invert&&e,r()}}function le(n){return ue(n,function(t,e){n.point(t*Yo,e*Yo)})}function ce(n,t){return[n,t]}function fe(n,t){return[n>Fo?n-Ho:-Fo>n?n+Ho:n,t]}function se(n,t,e){return n?t||e?Ct(pe(n),ge(t,e)):pe(n):t||e?ge(t,e):fe}function he(n){return function(t,e){return t+=n,[t>Fo?t-Ho:-Fo>t?t+Ho:t,e]}}function pe(n){var t=he(n);return t.invert=he(-n),t}function ge(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*r+a*i;return[Math.atan2(l*u-f*o,a*r-c*i),tn(f*u+l*o)]}var r=Math.cos(n),i=Math.sin(n),u=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*u-l*o;return[Math.atan2(l*u+c*o,a*r+f*i),tn(f*r-a*i)]},e}function ve(n,t){var e=Math.cos(n),r=Math.sin(n);return function(i,u,o,a){var l=o*t;null!=i?(i=de(e,i),u=de(e,u),(o>0?u>i:i>u)&&(i+=o*Ho)):(i=n+o*Ho,u=n-.5*l);for(var c,f=i;o>0?f>u:u>f;f-=l)a.point((c=_t([e,-r*Math.cos(f),-r*Math.sin(f)]))[0],c[1])}}function de(n,t){var e=dt(t);e[0]-=n,bt(e);var r=nn(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Uo)%(2*Math.PI)}function ye(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function me(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function Me(n){return n.source}function xe(n){return n.target}function be(n,t,e,r){var i=Math.cos(t),u=Math.sin(t),o=Math.cos(r),a=Math.sin(r),l=i*Math.cos(n),c=i*Math.sin(n),f=o*Math.cos(e),s=o*Math.sin(e),h=2*Math.asin(Math.sqrt(on(r-t)+i*o*on(e-n))),p=1/Math.sin(h),g=h?function(n){var t=Math.sin(n*=h)*p,e=Math.sin(h-n)*p,r=e*l+t*f,i=e*c+t*s,o=e*u+t*a;return[Math.atan2(i,r)*Zo,Math.atan2(o,Math.sqrt(r*r+i*i))*Zo]}:function(){return[n*Zo,t*Zo]};return g.distance=h,g}function _e(){function n(n,i){var u=Math.sin(i*=Yo),o=Math.cos(i),a=xo((n*=Yo)-t),l=Math.cos(a);Ja+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*u-e*o*l)*a),e*u+r*o*l),t=n,e=u,r=o}var t,e,r;Ga.point=function(i,u){t=i*Yo,e=Math.sin(u*=Yo),r=Math.cos(u),Ga.point=n},Ga.lineEnd=function(){Ga.point=Ga.lineEnd=b}}function we(n,t){function e(t,e){var r=Math.cos(t),i=Math.cos(e),u=n(r*i);return[u*i*Math.sin(t),u*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),i=t(r),u=Math.sin(i),o=Math.cos(i);return[Math.atan2(n*u,r*o),Math.asin(r&&e*u/r)]},e}function Se(n,t){function e(n,t){o>0?-Io+Uo>t&&(t=-Io+Uo):t>Io-Uo&&(t=Io-Uo);var e=o/Math.pow(i(t),u);return[e*Math.sin(u*n),o-e*Math.cos(u*n)]}var r=Math.cos(n),i=function(n){return Math.tan(Fo/4+n/2)},u=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(i(t)/i(n)),o=r*Math.pow(i(n),u)/u;return u?(e.invert=function(n,t){var e=o-t,r=K(u)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/u,2*Math.atan(Math.pow(o/r,1/u))-Io]},e):Ne}function ke(n,t){function e(n,t){var e=u-t;return[e*Math.sin(i*n),u-e*Math.cos(i*n)]}var r=Math.cos(n),i=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),u=r/i+n;return xo(i)<Uo?ce:(e.invert=function(n,t){var e=u-t;return[Math.atan2(n,e)/i,u-K(i)*Math.sqrt(n*n+e*e)]},e)}function Ne(n,t){return[n,Math.log(Math.tan(Fo/4+t/2))]}function Ee(n){var t,e=oe(n),r=e.scale,i=e.translate,u=e.clipExtent;return e.scale=function(){var n=r.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.translate=function(){var n=i.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.clipExtent=function(n){var o=u.apply(e,arguments);if(o===e){if(t=null==n){var a=Fo*r(),l=i();u([[l[0]-a,l[1]-a],[l[0]+a,l[1]+a]])}}else t&&(o=null);return o},e.clipExtent(null)}function Ae(n,t){return[Math.log(Math.tan(Fo/4+t/2)),-n]}function Ce(n){return n[0]}function ze(n){return n[1]}function Le(n){for(var t=n.length,e=[0,1],r=2,i=2;t>i;i++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function qe(n,t){return n[0]-t[0]||n[1]-t[1]}function Te(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Re(n,t,e,r){var i=n[0],u=e[0],o=t[0]-i,a=r[0]-u,l=n[1],c=e[1],f=t[1]-l,s=r[1]-c,h=(a*(l-c)-s*(i-u))/(s*o-a*f);return[i+h*o,l+h*f]}function De(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Pe(){rr(this),this.edge=this.site=this.circle=null}function Ue(n){var t=cl.pop()||new Pe;return t.site=n,t}function je(n){Be(n),ol.remove(n),cl.push(n),rr(n)}function Fe(n){var t=n.circle,e=t.x,r=t.cy,i={x:e,y:r},u=n.P,o=n.N,a=[n];je(n);for(var l=u;l.circle&&xo(e-l.circle.x)<Uo&&xo(r-l.circle.cy)<Uo;)u=l.P,a.unshift(l),je(l),l=u;a.unshift(l),Be(l);for(var c=o;c.circle&&xo(e-c.circle.x)<Uo&&xo(r-c.circle.cy)<Uo;)o=c.N,a.push(c),je(c),c=o;a.push(c),Be(c);var f,s=a.length;for(f=1;s>f;++f)c=a[f],l=a[f-1],nr(c.edge,l.site,c.site,i);l=a[0],c=a[s-1],c.edge=Ke(l.site,c.site,null,i),$e(l),$e(c)}function He(n){for(var t,e,r,i,u=n.x,o=n.y,a=ol._;a;)if(r=Oe(a,o)-u,r>Uo)a=a.L;else{if(i=u-Ie(a,o),!(i>Uo)){r>-Uo?(t=a.P,e=a):i>-Uo?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var l=Ue(n);if(ol.insert(t,l),t||e){if(t===e)return Be(t),e=Ue(t.site),ol.insert(l,e),l.edge=e.edge=Ke(t.site,l.site),$e(t),void $e(e);if(!e)return void(l.edge=Ke(t.site,l.site));Be(t),Be(e);var c=t.site,f=c.x,s=c.y,h=n.x-f,p=n.y-s,g=e.site,v=g.x-f,d=g.y-s,y=2*(h*d-p*v),m=h*h+p*p,M=v*v+d*d,x={x:(d*m-p*M)/y+f,y:(h*M-v*m)/y+s};nr(e.edge,c,g,x),l.edge=Ke(c,n,null,x),e.edge=Ke(n,g,null,x),$e(t),$e(e)}}function Oe(n,t){var e=n.site,r=e.x,i=e.y,u=i-t;if(!u)return r;var o=n.P;if(!o)return-(1/0);e=o.site;var a=e.x,l=e.y,c=l-t;if(!c)return a;var f=a-r,s=1/u-1/c,h=f/c;return s?(-h+Math.sqrt(h*h-2*s*(f*f/(-2*c)-l+c/2+i-u/2)))/s+r:(r+a)/2}function Ie(n,t){var e=n.N;if(e)return Oe(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ye(n){this.site=n,this.edges=[]}function Ze(n){for(var t,e,r,i,u,o,a,l,c,f,s=n[0][0],h=n[1][0],p=n[0][1],g=n[1][1],v=ul,d=v.length;d--;)if(u=v[d],u&&u.prepare())for(a=u.edges,l=a.length,o=0;l>o;)f=a[o].end(),r=f.x,i=f.y,c=a[++o%l].start(),t=c.x,e=c.y,(xo(r-t)>Uo||xo(i-e)>Uo)&&(a.splice(o,0,new tr(Qe(u.site,f,xo(r-s)<Uo&&g-i>Uo?{x:s,y:xo(t-s)<Uo?e:g}:xo(i-g)<Uo&&h-r>Uo?{x:xo(e-g)<Uo?t:h,y:g}:xo(r-h)<Uo&&i-p>Uo?{x:h,y:xo(t-h)<Uo?e:p}:xo(i-p)<Uo&&r-s>Uo?{x:xo(e-p)<Uo?t:s,y:p}:null),u.site,null)),++l)}function Ve(n,t){return t.angle-n.angle}function Xe(){rr(this),this.x=this.y=this.arc=this.site=this.cy=null}function $e(n){var t=n.P,e=n.N;if(t&&e){var r=t.site,i=n.site,u=e.site;if(r!==u){var o=i.x,a=i.y,l=r.x-o,c=r.y-a,f=u.x-o,s=u.y-a,h=2*(l*s-c*f);if(!(h>=-jo)){var p=l*l+c*c,g=f*f+s*s,v=(s*p-c*g)/h,d=(l*g-f*p)/h,s=d+a,y=fl.pop()||new Xe;y.arc=n,y.site=i,y.x=v+o,y.y=s+Math.sqrt(v*v+d*d),y.cy=s,n.circle=y;for(var m=null,M=ll._;M;)if(y.y<M.y||y.y===M.y&&y.x<=M.x){if(!M.L){m=M.P;break}M=M.L}else{if(!M.R){m=M;break}M=M.R}ll.insert(m,y),m||(al=y)}}}}function Be(n){var t=n.circle;t&&(t.P||(al=t.N),ll.remove(t),fl.push(t),rr(t),n.circle=null)}function We(n){for(var t,e=il,r=Yt(n[0][0],n[0][1],n[1][0],n[1][1]),i=e.length;i--;)t=e[i],(!Je(t,n)||!r(t)||xo(t.a.x-t.b.x)<Uo&&xo(t.a.y-t.b.y)<Uo)&&(t.a=t.b=null,e.splice(i,1))}function Je(n,t){var e=n.b;if(e)return!0;var r,i,u=n.a,o=t[0][0],a=t[1][0],l=t[0][1],c=t[1][1],f=n.l,s=n.r,h=f.x,p=f.y,g=s.x,v=s.y,d=(h+g)/2,y=(p+v)/2;if(v===p){if(o>d||d>=a)return;if(h>g){if(u){if(u.y>=c)return}else u={x:d,y:l};e={x:d,y:c}}else{if(u){if(u.y<l)return}else u={x:d,y:c};e={x:d,y:l}}}else if(r=(h-g)/(v-p),i=y-r*d,-1>r||r>1)if(h>g){if(u){if(u.y>=c)return}else u={x:(l-i)/r,y:l};e={x:(c-i)/r,y:c}}else{if(u){if(u.y<l)return}else u={x:(c-i)/r,y:c};e={x:(l-i)/r,y:l}}else if(v>p){if(u){if(u.x>=a)return}else u={x:o,y:r*o+i};e={x:a,y:r*a+i}}else{if(u){if(u.x<o)return}else u={x:a,y:r*a+i};e={x:o,y:r*o+i}}return n.a=u,n.b=e,!0}function Ge(n,t){this.l=n,this.r=t,this.a=this.b=null}function Ke(n,t,e,r){var i=new Ge(n,t);return il.push(i),e&&nr(i,n,t,e),r&&nr(i,t,n,r),ul[n.i].edges.push(new tr(i,n,t)),ul[t.i].edges.push(new tr(i,t,n)),i}function Qe(n,t,e){var r=new Ge(n,null);return r.a=t,r.b=e,il.push(r),r}function nr(n,t,e,r){n.a||n.b?n.l===e?n.b=r:n.a=r:(n.a=r,n.l=t,n.r=e)}function tr(n,t,e){var r=n.a,i=n.b;this.edge=n,this.site=t,this.angle=e?Math.atan2(e.y-t.y,e.x-t.x):n.l===t?Math.atan2(i.x-r.x,r.y-i.y):Math.atan2(r.x-i.x,i.y-r.y)}function er(){this._=null}function rr(n){n.U=n.C=n.L=n.R=n.P=n.N=null}function ir(n,t){var e=t,r=t.R,i=e.U;i?i.L===e?i.L=r:i.R=r:n._=r,r.U=i,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function ur(n,t){var e=t,r=t.L,i=e.U;i?i.L===e?i.L=r:i.R=r:n._=r,r.U=i,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function or(n){for(;n.L;)n=n.L;return n}function ar(n,t){var e,r,i,u=n.sort(lr).pop();for(il=[],ul=new Array(n.length),ol=new er,ll=new er;;)if(i=al,u&&(!i||u.y<i.y||u.y===i.y&&u.x<i.x))u.x===e&&u.y===r||(ul[u.i]=new Ye(u),He(u),e=u.x,r=u.y),u=n.pop();else{if(!i)break;Fe(i.arc)}t&&(We(t),Ze(t));var o={cells:ul,edges:il};return ol=ll=il=ul=null,o}function lr(n,t){return t.y-n.y||t.x-n.x}function cr(n,t,e){return(n.x-e.x)*(t.y-n.y)-(n.x-t.x)*(e.y-n.y)}function fr(n){return n.x}function sr(n){return n.y}function hr(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function pr(n,t,e,r,i,u){if(!n(t,e,r,i,u)){var o=.5*(e+i),a=.5*(r+u),l=t.nodes;l[0]&&pr(n,l[0],e,r,o,a),l[1]&&pr(n,l[1],o,r,i,a),l[2]&&pr(n,l[2],e,a,o,u),l[3]&&pr(n,l[3],o,a,i,u)}}function gr(n,t,e,r,i,u,o){var a,l=1/0;return function c(n,f,s,h,p){if(!(f>u||s>o||r>h||i>p)){if(g=n.point){var g,v=t-n.x,d=e-n.y,y=v*v+d*d;if(l>y){var m=Math.sqrt(l=y);r=t-m,i=e-m,u=t+m,o=e+m,a=g}}for(var M=n.nodes,x=.5*(f+h),b=.5*(s+p),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:c(n,f,s,x,b);break;case 1:c(n,x,s,h,b);break;case 2:c(n,f,b,x,p);break;case 3:c(n,x,b,h,p)}}}(n,r,i,u,o),a}function vr(n,t){n=ao.rgb(n),t=ao.rgb(t);var e=n.r,r=n.g,i=n.b,u=t.r-e,o=t.g-r,a=t.b-i;return function(n){return"#"+bn(Math.round(e+u*n))+bn(Math.round(r+o*n))+bn(Math.round(i+a*n))}}function dr(n,t){var e,r={},i={};for(e in n)e in t?r[e]=Mr(n[e],t[e]):i[e]=n[e];for(e in t)e in n||(i[e]=t[e]);return function(n){for(e in r)i[e]=r[e](n);return i}}function yr(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function mr(n,t){var e,r,i,u=hl.lastIndex=pl.lastIndex=0,o=-1,a=[],l=[];for(n+="",t+="";(e=hl.exec(n))&&(r=pl.exec(t));)(i=r.index)>u&&(i=t.slice(u,i),a[o]?a[o]+=i:a[++o]=i),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,l.push({i:o,x:yr(e,r)})),u=pl.lastIndex;return u<t.length&&(i=t.slice(u),a[o]?a[o]+=i:a[++o]=i),a.length<2?l[0]?(t=l[0].x,function(n){return t(n)+""}):function(){return t}:(t=l.length,function(n){for(var e,r=0;t>r;++r)a[(e=l[r]).i]=e.x(n);return a.join("")})}function Mr(n,t){for(var e,r=ao.interpolators.length;--r>=0&&!(e=ao.interpolators[r](n,t)););return e}function xr(n,t){var e,r=[],i=[],u=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(Mr(n[e],t[e]));for(;u>e;++e)i[e]=n[e];for(;o>e;++e)i[e]=t[e];return function(n){for(e=0;a>e;++e)i[e]=r[e](n);return i}}function br(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function _r(n){return function(t){return 1-n(1-t)}}function wr(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function Sr(n){return n*n}function kr(n){return n*n*n}function Nr(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Er(n){return function(t){return Math.pow(t,n)}}function Ar(n){return 1-Math.cos(n*Io)}function Cr(n){return Math.pow(2,10*(n-1))}function zr(n){return 1-Math.sqrt(1-n*n)}function Lr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Ho*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Ho/t)}}function qr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Tr(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Rr(n,t){n=ao.hcl(n),t=ao.hcl(t);var e=n.h,r=n.c,i=n.l,u=t.h-e,o=t.c-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return sn(e+u*n,r+o*n,i+a*n)+""}}function Dr(n,t){n=ao.hsl(n),t=ao.hsl(t);var e=n.h,r=n.s,i=n.l,u=t.h-e,o=t.s-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return cn(e+u*n,r+o*n,i+a*n)+""}}function Pr(n,t){n=ao.lab(n),t=ao.lab(t);var e=n.l,r=n.a,i=n.b,u=t.l-e,o=t.a-r,a=t.b-i;return function(n){return pn(e+u*n,r+o*n,i+a*n)+""}}function Ur(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function jr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Hr(t),i=Fr(t,e),u=Hr(Or(e,t,-i))||0;t[0]*e[1]<e[0]*t[1]&&(t[0]*=-1,t[1]*=-1,r*=-1,i*=-1),this.rotate=(r?Math.atan2(t[1],t[0]):Math.atan2(-e[0],e[1]))*Zo,this.translate=[n.e,n.f],this.scale=[r,u],this.skew=u?Math.atan2(i,u)*Zo:0}function Fr(n,t){return n[0]*t[0]+n[1]*t[1]}function Hr(n){var t=Math.sqrt(Fr(n,n));return t&&(n[0]/=t,n[1]/=t),t}function Or(n,t,e){return n[0]+=e*t[0],n[1]+=e*t[1],n}function Ir(n){return n.length?n.pop()+",":""}function Yr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push("translate(",null,",",null,")");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else(t[0]||t[1])&&e.push("translate("+t+")")}function Zr(n,t,e,r){n!==t?(n-t>180?t+=360:t-n>180&&(n+=360),r.push({i:e.push(Ir(e)+"rotate(",null,")")-2,x:yr(n,t)})):t&&e.push(Ir(e)+"rotate("+t+")")}function Vr(n,t,e,r){n!==t?r.push({i:e.push(Ir(e)+"skewX(",null,")")-2,x:yr(n,t)}):t&&e.push(Ir(e)+"skewX("+t+")")}function Xr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push(Ir(e)+"scale(",null,",",null,")");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else 1===t[0]&&1===t[1]||e.push(Ir(e)+"scale("+t+")")}function $r(n,t){var e=[],r=[];return n=ao.transform(n),t=ao.transform(t),Yr(n.translate,t.translate,e,r),Zr(n.rotate,t.rotate,e,r),Vr(n.skew,t.skew,e,r),Xr(n.scale,t.scale,e,r),n=t=null,function(n){for(var t,i=-1,u=r.length;++i<u;)e[(t=r[i]).i]=t.x(n);return e.join("")}}function Br(n,t){return t=(t-=n=+n)||1/t,function(e){return(e-n)/t}}function Wr(n,t){return t=(t-=n=+n)||1/t,function(e){return Math.max(0,Math.min(1,(e-n)/t))}}function Jr(n){for(var t=n.source,e=n.target,r=Kr(t,e),i=[t];t!==r;)t=t.parent,i.push(t);for(var u=i.length;e!==r;)i.splice(u,0,e),e=e.parent;return i}function Gr(n){for(var t=[],e=n.parent;null!=e;)t.push(n),n=e,e=e.parent;return t.push(n),t}function Kr(n,t){if(n===t)return n;for(var e=Gr(n),r=Gr(t),i=e.pop(),u=r.pop(),o=null;i===u;)o=i,i=e.pop(),u=r.pop();return o}function Qr(n){n.fixed|=2}function ni(n){n.fixed&=-7}function ti(n){n.fixed|=4,n.px=n.x,n.py=n.y}function ei(n){n.fixed&=-5}function ri(n,t,e){var r=0,i=0;if(n.charge=0,!n.leaf)for(var u,o=n.nodes,a=o.length,l=-1;++l<a;)u=o[l],null!=u&&(ri(u,t,e),n.charge+=u.charge,r+=u.charge*u.cx,i+=u.charge*u.cy);if(n.point){n.leaf||(n.point.x+=Math.random()-.5,n.point.y+=Math.random()-.5);var c=t*e[n.point.index];n.charge+=n.pointCharge=c,r+=c*n.point.x,i+=c*n.point.y}n.cx=r/n.charge,n.cy=i/n.charge}function ii(n,t){return ao.rebind(n,t,"sort","children","value"),n.nodes=n,n.links=fi,n}function ui(n,t){for(var e=[n];null!=(n=e.pop());)if(t(n),(i=n.children)&&(r=i.length))for(var r,i;--r>=0;)e.push(i[r])}function oi(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(u=n.children)&&(i=u.length))for(var i,u,o=-1;++o<i;)e.push(u[o]);for(;null!=(n=r.pop());)t(n)}function ai(n){return n.children}function li(n){return n.value}function ci(n,t){return t.value-n.value}function fi(n){return ao.merge(n.map(function(n){return(n.children||[]).map(function(t){return{source:n,target:t}})}))}function si(n){return n.x}function hi(n){return n.y}function pi(n,t,e){n.y0=t,n.y=e}function gi(n){return ao.range(n.length)}function vi(n){for(var t=-1,e=n[0].length,r=[];++t<e;)r[t]=0;return r}function di(n){for(var t,e=1,r=0,i=n[0][1],u=n.length;u>e;++e)(t=n[e][1])>i&&(r=e,i=t);return r}function yi(n){return n.reduce(mi,0)}function mi(n,t){return n+t[1]}function Mi(n,t){return xi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function xi(n,t){for(var e=-1,r=+n[0],i=(n[1]-r)/t,u=[];++e<=t;)u[e]=i*e+r;return u}function bi(n){return[ao.min(n),ao.max(n)]}function _i(n,t){return n.value-t.value}function wi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Si(n,t){n._pack_next=t,t._pack_prev=n}function ki(n,t){var e=t.x-n.x,r=t.y-n.y,i=n.r+t.r;return.999*i*i>e*e+r*r}function Ni(n){function t(n){f=Math.min(n.x-n.r,f),s=Math.max(n.x+n.r,s),h=Math.min(n.y-n.r,h),p=Math.max(n.y+n.r,p)}if((e=n.children)&&(c=e.length)){var e,r,i,u,o,a,l,c,f=1/0,s=-(1/0),h=1/0,p=-(1/0);if(e.forEach(Ei),r=e[0],r.x=-r.r,r.y=0,t(r),c>1&&(i=e[1],i.x=i.r,i.y=0,t(i),c>2))for(u=e[2],zi(r,i,u),t(u),wi(r,u),r._pack_prev=u,wi(u,i),i=r._pack_next,o=3;c>o;o++){zi(r,i,u=e[o]);var g=0,v=1,d=1;for(a=i._pack_next;a!==i;a=a._pack_next,v++)if(ki(a,u)){g=1;break}if(1==g)for(l=r._pack_prev;l!==a._pack_prev&&!ki(l,u);l=l._pack_prev,d++);g?(d>v||v==d&&i.r<r.r?Si(r,i=a):Si(r=l,i),o--):(wi(r,u),i=u,t(u))}var y=(f+s)/2,m=(h+p)/2,M=0;for(o=0;c>o;o++)u=e[o],u.x-=y,u.y-=m,M=Math.max(M,u.r+Math.sqrt(u.x*u.x+u.y*u.y));n.r=M,e.forEach(Ai)}}function Ei(n){n._pack_next=n._pack_prev=n}function Ai(n){delete n._pack_next,delete n._pack_prev}function Ci(n,t,e,r){var i=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,i)for(var u=-1,o=i.length;++u<o;)Ci(i[u],t,e,r)}function zi(n,t,e){var r=n.r+e.r,i=t.x-n.x,u=t.y-n.y;if(r&&(i||u)){var o=t.r+e.r,a=i*i+u*u;o*=o,r*=r;var l=.5+(r-o)/(2*a),c=Math.sqrt(Math.max(0,2*o*(r+a)-(r-=a)*r-o*o))/(2*a);e.x=n.x+l*i+c*u,e.y=n.y+l*u-c*i}else e.x=n.x+r,e.y=n.y}function Li(n,t){return n.parent==t.parent?1:2}function qi(n){var t=n.children;return t.length?t[0]:n.t}function Ti(n){var t,e=n.children;return(t=e.length)?e[t-1]:n.t}function Ri(n,t,e){var r=e/(t.i-n.i);t.c-=r,t.s+=e,n.c+=r,t.z+=e,t.m+=e}function Di(n){for(var t,e=0,r=0,i=n.children,u=i.length;--u>=0;)t=i[u],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Pi(n,t,e){return n.a.parent===t.parent?n.a:e}function Ui(n){return 1+ao.max(n,function(n){return n.y})}function ji(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Fi(n){var t=n.children;return t&&t.length?Fi(t[0]):n}function Hi(n){var t,e=n.children;return e&&(t=e.length)?Hi(e[t-1]):n}function Oi(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Ii(n,t){var e=n.x+t[3],r=n.y+t[0],i=n.dx-t[1]-t[3],u=n.dy-t[0]-t[2];return 0>i&&(e+=i/2,i=0),0>u&&(r+=u/2,u=0),{x:e,y:r,dx:i,dy:u}}function Yi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Zi(n){return n.rangeExtent?n.rangeExtent():Yi(n.range())}function Vi(n,t,e,r){var i=e(n[0],n[1]),u=r(t[0],t[1]);return function(n){return u(i(n))}}function Xi(n,t){var e,r=0,i=n.length-1,u=n[r],o=n[i];return u>o&&(e=r,r=i,i=e,e=u,u=o,o=e),n[r]=t.floor(u),n[i]=t.ceil(o),n}function $i(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:Sl}function Bi(n,t,e,r){var i=[],u=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]<n[0]&&(n=n.slice().reverse(),t=t.slice().reverse());++o<=a;)i.push(e(n[o-1],n[o])),u.push(r(t[o-1],t[o]));return function(t){var e=ao.bisect(n,t,1,a)-1;return u[e](i[e](t))}}function Wi(n,t,e,r){function i(){var i=Math.min(n.length,t.length)>2?Bi:Vi,l=r?Wr:Br;return o=i(n,t,l,e),a=i(t,n,l,Mr),u}function u(n){return o(n)}var o,a;return u.invert=function(n){return a(n)},u.domain=function(t){return arguments.length?(n=t.map(Number),i()):n},u.range=function(n){return arguments.length?(t=n,i()):t},u.rangeRound=function(n){return u.range(n).interpolate(Ur)},u.clamp=function(n){return arguments.length?(r=n,i()):r},u.interpolate=function(n){return arguments.length?(e=n,i()):e},u.ticks=function(t){return Qi(n,t)},u.tickFormat=function(t,e){return nu(n,t,e)},u.nice=function(t){return Gi(n,t),i()},u.copy=function(){return Wi(n,t,e,r)},i()}function Ji(n,t){return ao.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Gi(n,t){return Xi(n,$i(Ki(n,t)[2])),Xi(n,$i(Ki(n,t)[2])),n}function Ki(n,t){null==t&&(t=10);var e=Yi(n),r=e[1]-e[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),u=t/r*i;return.15>=u?i*=10:.35>=u?i*=5:.75>=u&&(i*=2),e[0]=Math.ceil(e[0]/i)*i,e[1]=Math.floor(e[1]/i)*i+.5*i,e[2]=i,e}function Qi(n,t){return ao.range.apply(ao,Ki(n,t))}function nu(n,t,e){var r=Ki(n,t);if(e){var i=ha.exec(e);if(i.shift(),"s"===i[8]){var u=ao.formatPrefix(Math.max(xo(r[0]),xo(r[1])));return i[7]||(i[7]="."+tu(u.scale(r[2]))),i[8]="f",e=ao.format(i.join("")),function(n){return e(u.scale(n))+u.symbol}}i[7]||(i[7]="."+eu(i[8],r)),e=i.join("")}else e=",."+tu(r[2])+"f";return ao.format(e)}function tu(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function eu(n,t){var e=tu(t[2]);return n in kl?Math.abs(e-tu(Math.max(xo(t[0]),xo(t[1]))))+ +("e"!==n):e-2*("%"===n)}function ru(n,t,e,r){function i(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function u(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(i(t))}return o.invert=function(t){return u(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(i)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(i)),o):t},o.nice=function(){var t=Xi(r.map(i),e?Math:El);return n.domain(t),r=t.map(u),o},o.ticks=function(){var n=Yi(r),o=[],a=n[0],l=n[1],c=Math.floor(i(a)),f=Math.ceil(i(l)),s=t%1?2:t;if(isFinite(f-c)){if(e){for(;f>c;c++)for(var h=1;s>h;h++)o.push(u(c)*h);o.push(u(c))}else for(o.push(u(c));c++<f;)for(var h=s-1;h>0;h--)o.push(u(c)*h);for(c=0;o[c]<a;c++);for(f=o.length;o[f-1]>l;f--);o=o.slice(c,f)}return o},o.tickFormat=function(n,e){if(!arguments.length)return Nl;arguments.length<2?e=Nl:"function"!=typeof e&&(e=ao.format(e));var r=Math.max(1,t*n/o.ticks().length);return function(n){var o=n/u(Math.round(i(n)));return t-.5>o*t&&(o*=t),r>=o?e(n):""}},o.copy=function(){return ru(n.copy(),t,e,r)},Ji(o,n)}function iu(n,t,e){function r(t){return n(i(t))}var i=uu(t),u=uu(1/t);return r.invert=function(t){return u(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(i)),r):e},r.ticks=function(n){return Qi(e,n)},r.tickFormat=function(n,t){return nu(e,n,t)},r.nice=function(n){return r.domain(Gi(e,n))},r.exponent=function(o){return arguments.length?(i=uu(t=o),u=uu(1/t),n.domain(e.map(i)),r):t},r.copy=function(){return iu(n.copy(),t,e)},Ji(r,n)}function uu(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function ou(n,t){function e(e){return u[((i.get(e)||("range"===t.t?i.set(e,n.push(e)):NaN))-1)%u.length]}function r(t,e){return ao.range(n.length).map(function(n){return t+e*n})}var i,u,o;return e.domain=function(r){if(!arguments.length)return n;n=[],i=new c;for(var u,o=-1,a=r.length;++o<a;)i.has(u=r[o])||i.set(u,n.push(u));return e[t.t].apply(e,t.a)},e.range=function(n){return arguments.length?(u=n,o=0,t={t:"range",a:arguments},e):u},e.rangePoints=function(i,a){arguments.length<2&&(a=0);var l=i[0],c=i[1],f=n.length<2?(l=(l+c)/2,0):(c-l)/(n.length-1+a);return u=r(l+f*a/2,f),o=0,t={t:"rangePoints",a:arguments},e},e.rangeRoundPoints=function(i,a){arguments.length<2&&(a=0);var l=i[0],c=i[1],f=n.length<2?(l=c=Math.round((l+c)/2),0):(c-l)/(n.length-1+a)|0;return u=r(l+Math.round(f*a/2+(c-l-(n.length-1+a)*f)/2),f),o=0,t={t:"rangeRoundPoints",a:arguments},e},e.rangeBands=function(i,a,l){arguments.length<2&&(a=0),arguments.length<3&&(l=a);var c=i[1]<i[0],f=i[c-0],s=i[1-c],h=(s-f)/(n.length-a+2*l);return u=r(f+h*l,h),c&&u.reverse(),o=h*(1-a),t={t:"rangeBands",a:arguments},e},e.rangeRoundBands=function(i,a,l){arguments.length<2&&(a=0),arguments.length<3&&(l=a);var c=i[1]<i[0],f=i[c-0],s=i[1-c],h=Math.floor((s-f)/(n.length-a+2*l));return u=r(f+Math.round((s-f-(n.length-a)*h)/2),h),c&&u.reverse(),o=Math.round(h*(1-a)),t={t:"rangeRoundBands",a:arguments},e},e.rangeBand=function(){return o},e.rangeExtent=function(){return Yi(t.a[0])},e.copy=function(){return ou(n,t)},e.domain(n)}function au(n,t){function u(){var e=0,r=t.length;for(a=[];++e<r;)a[e-1]=ao.quantile(n,e/r);return o}function o(n){return isNaN(n=+n)?void 0:t[ao.bisect(a,n)]}var a;return o.domain=function(t){return arguments.length?(n=t.map(r).filter(i).sort(e),u()):n},o.range=function(n){return arguments.length?(t=n,u()):t},o.quantiles=function(){return a},o.invertExtent=function(e){return e=t.indexOf(e),0>e?[NaN,NaN]:[e>0?a[e-1]:n[0],e<a.length?a[e]:n[n.length-1]]},o.copy=function(){return au(n,t)},u()}function lu(n,t,e){function r(t){return e[Math.max(0,Math.min(o,Math.floor(u*(t-n))))]}function i(){return u=e.length/(t-n),o=e.length-1,r}var u,o;return r.domain=function(e){return arguments.length?(n=+e[0],t=+e[e.length-1],i()):[n,t]},r.range=function(n){return arguments.length?(e=n,i()):e},r.invertExtent=function(t){return t=e.indexOf(t),t=0>t?NaN:t/u+n,[t,t+1/u]},r.copy=function(){return lu(n,t,e)},i()}function cu(n,t){function e(e){return e>=e?t[ao.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return cu(n,t)},e}function fu(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Qi(n,t)},t.tickFormat=function(t,e){return nu(n,t,e)},t.copy=function(){return fu(n)},t}function su(){return 0}function hu(n){return n.innerRadius}function pu(n){return n.outerRadius}function gu(n){return n.startAngle}function vu(n){return n.endAngle}function du(n){return n&&n.padAngle}function yu(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function mu(n,t,e,r,i){var u=n[0]-t[0],o=n[1]-t[1],a=(i?r:-r)/Math.sqrt(u*u+o*o),l=a*o,c=-a*u,f=n[0]+l,s=n[1]+c,h=t[0]+l,p=t[1]+c,g=(f+h)/2,v=(s+p)/2,d=h-f,y=p-s,m=d*d+y*y,M=e-r,x=f*p-h*s,b=(0>y?-1:1)*Math.sqrt(Math.max(0,M*M*m-x*x)),_=(x*y-d*b)/m,w=(-x*d-y*b)/m,S=(x*y+d*b)/m,k=(-x*d+y*b)/m,N=_-g,E=w-v,A=S-g,C=k-v;return N*N+E*E>A*A+C*C&&(_=S,w=k),[[_-l,w-c],[_*e/M,w*e/M]]}function Mu(n){function t(t){function o(){c.push("M",u(n(f),a))}for(var l,c=[],f=[],s=-1,h=t.length,p=En(e),g=En(r);++s<h;)i.call(this,l=t[s],s)?f.push([+p.call(this,l,s),+g.call(this,l,s)]):f.length&&(o(),f=[]);return f.length&&o(),c.length?c.join(""):null}var e=Ce,r=ze,i=zt,u=xu,o=u.key,a=.7;return t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t.defined=function(n){return arguments.length?(i=n,t):i},t.interpolate=function(n){return arguments.length?(o="function"==typeof n?u=n:(u=Tl.get(n)||xu).key,t):o},t.tension=function(n){return arguments.length?(a=n,t):a},t}function xu(n){return n.length>1?n.join("L"):n+"Z"}function bu(n){return n.join("L")+"Z"}function _u(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t<e;)i.push("H",(r[0]+(r=n[t])[0])/2,"V",r[1]);return e>1&&i.push("H",r[0]),i.join("")}function wu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t<e;)i.push("V",(r=n[t])[1],"H",r[0]);return i.join("")}function Su(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t<e;)i.push("H",(r=n[t])[0],"V",r[1]);return i.join("")}function ku(n,t){return n.length<4?xu(n):n[1]+Au(n.slice(1,-1),Cu(n,t))}function Nu(n,t){return n.length<3?bu(n):n[0]+Au((n.push(n[0]),n),Cu([n[n.length-2]].concat(n,[n[1]]),t))}function Eu(n,t){return n.length<3?xu(n):n[0]+Au(n,Cu(n,t))}function Au(n,t){if(t.length<1||n.length!=t.length&&n.length!=t.length+2)return xu(n);var e=n.length!=t.length,r="",i=n[0],u=n[1],o=t[0],a=o,l=1;if(e&&(r+="Q"+(u[0]-2*o[0]/3)+","+(u[1]-2*o[1]/3)+","+u[0]+","+u[1],i=n[1],l=2),t.length>1){a=t[1],u=n[l],l++,r+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1];for(var c=2;c<t.length;c++,l++)u=n[l],a=t[c],r+="S"+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1]}if(e){var f=n[l];r+="Q"+(u[0]+2*a[0]/3)+","+(u[1]+2*a[1]/3)+","+f[0]+","+f[1]}return r}function Cu(n,t){for(var e,r=[],i=(1-t)/2,u=n[0],o=n[1],a=1,l=n.length;++a<l;)e=u,u=o,o=n[a],r.push([i*(o[0]-e[0]),i*(o[1]-e[1])]);return r}function zu(n){if(n.length<3)return xu(n);var t=1,e=n.length,r=n[0],i=r[0],u=r[1],o=[i,i,i,(r=n[1])[0]],a=[u,u,u,r[1]],l=[i,",",u,"L",Ru(Pl,o),",",Ru(Pl,a)];for(n.push(n[e-1]);++t<=e;)r=n[t],o.shift(),o.push(r[0]),a.shift(),a.push(r[1]),Du(l,o,a);return n.pop(),l.push("L",r),l.join("")}function Lu(n){if(n.length<4)return xu(n);for(var t,e=[],r=-1,i=n.length,u=[0],o=[0];++r<3;)t=n[r],u.push(t[0]),o.push(t[1]);for(e.push(Ru(Pl,u)+","+Ru(Pl,o)),--r;++r<i;)t=n[r],u.shift(),u.push(t[0]),o.shift(),o.push(t[1]),Du(e,u,o);return e.join("")}function qu(n){for(var t,e,r=-1,i=n.length,u=i+4,o=[],a=[];++r<4;)e=n[r%i],o.push(e[0]),a.push(e[1]);for(t=[Ru(Pl,o),",",Ru(Pl,a)],--r;++r<u;)e=n[r%i],o.shift(),o.push(e[0]),a.shift(),a.push(e[1]),Du(t,o,a);return t.join("")}function Tu(n,t){var e=n.length-1;if(e)for(var r,i,u=n[0][0],o=n[0][1],a=n[e][0]-u,l=n[e][1]-o,c=-1;++c<=e;)r=n[c],i=c/e,r[0]=t*r[0]+(1-t)*(u+i*a),r[1]=t*r[1]+(1-t)*(o+i*l);return zu(n)}function Ru(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function Du(n,t,e){n.push("C",Ru(Rl,t),",",Ru(Rl,e),",",Ru(Dl,t),",",Ru(Dl,e),",",Ru(Pl,t),",",Ru(Pl,e))}function Pu(n,t){return(t[1]-n[1])/(t[0]-n[0])}function Uu(n){for(var t=0,e=n.length-1,r=[],i=n[0],u=n[1],o=r[0]=Pu(i,u);++t<e;)r[t]=(o+(o=Pu(i=u,u=n[t+1])))/2;return r[t]=o,r}function ju(n){for(var t,e,r,i,u=[],o=Uu(n),a=-1,l=n.length-1;++a<l;)t=Pu(n[a],n[a+1]),xo(t)<Uo?o[a]=o[a+1]=0:(e=o[a]/t,r=o[a+1]/t,i=e*e+r*r,i>9&&(i=3*t/Math.sqrt(i),o[a]=i*e,o[a+1]=i*r));for(a=-1;++a<=l;)i=(n[Math.min(l,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),u.push([i||0,o[a]*i||0]);return u}function Fu(n){return n.length<3?xu(n):n[0]+Au(n,ju(n))}function Hu(n){for(var t,e,r,i=-1,u=n.length;++i<u;)t=n[i],e=t[0],r=t[1]-Io,t[0]=e*Math.cos(r),t[1]=e*Math.sin(r);return n}function Ou(n){function t(t){function l(){v.push("M",a(n(y),s),f,c(n(d.reverse()),s),"Z")}for(var h,p,g,v=[],d=[],y=[],m=-1,M=t.length,x=En(e),b=En(i),_=e===r?function(){ +return p}:En(r),w=i===u?function(){return g}:En(u);++m<M;)o.call(this,h=t[m],m)?(d.push([p=+x.call(this,h,m),g=+b.call(this,h,m)]),y.push([+_.call(this,h,m),+w.call(this,h,m)])):d.length&&(l(),d=[],y=[]);return d.length&&l(),v.length?v.join(""):null}var e=Ce,r=Ce,i=0,u=ze,o=zt,a=xu,l=a.key,c=a,f="L",s=.7;return t.x=function(n){return arguments.length?(e=r=n,t):r},t.x0=function(n){return arguments.length?(e=n,t):e},t.x1=function(n){return arguments.length?(r=n,t):r},t.y=function(n){return arguments.length?(i=u=n,t):u},t.y0=function(n){return arguments.length?(i=n,t):i},t.y1=function(n){return arguments.length?(u=n,t):u},t.defined=function(n){return arguments.length?(o=n,t):o},t.interpolate=function(n){return arguments.length?(l="function"==typeof n?a=n:(a=Tl.get(n)||xu).key,c=a.reverse||a,f=a.closed?"M":"L",t):l},t.tension=function(n){return arguments.length?(s=n,t):s},t}function Iu(n){return n.radius}function Yu(n){return[n.x,n.y]}function Zu(n){return function(){var t=n.apply(this,arguments),e=t[0],r=t[1]-Io;return[e*Math.cos(r),e*Math.sin(r)]}}function Vu(){return 64}function Xu(){return"circle"}function $u(n){var t=Math.sqrt(n/Fo);return"M0,"+t+"A"+t+","+t+" 0 1,1 0,"+-t+"A"+t+","+t+" 0 1,1 0,"+t+"Z"}function Bu(n){return function(){var t,e,r;(t=this[n])&&(r=t[e=t.active])&&(r.timer.c=null,r.timer.t=NaN,--t.count?delete t[e]:delete this[n],t.active+=.5,r.event&&r.event.interrupt.call(this,this.__data__,r.index))}}function Wu(n,t,e){return ko(n,Yl),n.namespace=t,n.id=e,n}function Ju(n,t,e,r){var i=n.id,u=n.namespace;return Y(n,"function"==typeof e?function(n,o,a){n[u][i].tween.set(t,r(e.call(n,n.__data__,o,a)))}:(e=r(e),function(n){n[u][i].tween.set(t,e)}))}function Gu(n){return null==n&&(n=""),function(){this.textContent=n}}function Ku(n){return null==n?"__transition__":"__transition_"+n+"__"}function Qu(n,t,e,r,i){function u(n){var t=v.delay;return f.t=t+l,n>=t?o(n-t):void(f.c=o)}function o(e){var i=g.active,u=g[i];u&&(u.timer.c=null,u.timer.t=NaN,--g.count,delete g[i],u.event&&u.event.interrupt.call(n,n.__data__,u.index));for(var o in g)if(r>+o){var c=g[o];c.timer.c=null,c.timer.t=NaN,--g.count,delete g[o]}f.c=a,qn(function(){return f.c&&a(e||1)&&(f.c=null,f.t=NaN),1},0,l),g.active=r,v.event&&v.event.start.call(n,n.__data__,t),p=[],v.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&p.push(r)}),h=v.ease,s=v.duration}function a(i){for(var u=i/s,o=h(u),a=p.length;a>0;)p[--a].call(n,o);return u>=1?(v.event&&v.event.end.call(n,n.__data__,t),--g.count?delete g[r]:delete n[e],1):void 0}var l,f,s,h,p,g=n[e]||(n[e]={active:0,count:0}),v=g[r];v||(l=i.time,f=qn(u,0,l),v=g[r]={tween:new c,time:l,timer:f,delay:i.delay,duration:i.duration,ease:i.ease,index:t},i=null,++g.count)}function no(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function to(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function eo(n){return n.toISOString()}function ro(n,t,e){function r(t){return n(t)}function i(n,e){var r=n[1]-n[0],i=r/e,u=ao.bisect(Kl,i);return u==Kl.length?[t.year,Ki(n.map(function(n){return n/31536e6}),e)[2]]:u?t[i/Kl[u-1]<Kl[u]/i?u-1:u]:[tc,Ki(n,e)[2]]}return r.invert=function(t){return io(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain(t),r):n.domain().map(io)},r.nice=function(n,t){function e(e){return!isNaN(e)&&!n.range(e,io(+e+1),t).length}var u=r.domain(),o=Yi(u),a=null==n?i(o,10):"number"==typeof n&&i(o,n);return a&&(n=a[0],t=a[1]),r.domain(Xi(u,t>1?{floor:function(t){for(;e(t=n.floor(t));)t=io(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=io(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Yi(r.domain()),u=null==n?i(e,10):"number"==typeof n?i(e,n):!n.range&&[{range:n},t];return u&&(n=u[0],t=u[1]),n.range(e[0],io(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return ro(n.copy(),t,e)},Ji(r,n)}function io(n){return new Date(n)}function uo(n){return JSON.parse(n.responseText)}function oo(n){var t=fo.createRange();return t.selectNode(fo.body),t.createContextualFragment(n.responseText)}var ao={version:"3.5.17"},lo=[].slice,co=function(n){return lo.call(n)},fo=this.document;if(fo)try{co(fo.documentElement.childNodes)[0].nodeType}catch(so){co=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),fo)try{fo.createElement("DIV").style.setProperty("opacity",0,"")}catch(ho){var po=this.Element.prototype,go=po.setAttribute,vo=po.setAttributeNS,yo=this.CSSStyleDeclaration.prototype,mo=yo.setProperty;po.setAttribute=function(n,t){go.call(this,n,t+"")},po.setAttributeNS=function(n,t,e){vo.call(this,n,t,e+"")},yo.setProperty=function(n,t,e){mo.call(this,n,t+"",e)}}ao.ascending=e,ao.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:NaN},ao.min=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i<u;)if(null!=(r=n[i])&&r>=r){e=r;break}for(;++i<u;)null!=(r=n[i])&&e>r&&(e=r)}else{for(;++i<u;)if(null!=(r=t.call(n,n[i],i))&&r>=r){e=r;break}for(;++i<u;)null!=(r=t.call(n,n[i],i))&&e>r&&(e=r)}return e},ao.max=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i<u;)if(null!=(r=n[i])&&r>=r){e=r;break}for(;++i<u;)null!=(r=n[i])&&r>e&&(e=r)}else{for(;++i<u;)if(null!=(r=t.call(n,n[i],i))&&r>=r){e=r;break}for(;++i<u;)null!=(r=t.call(n,n[i],i))&&r>e&&(e=r)}return e},ao.extent=function(n,t){var e,r,i,u=-1,o=n.length;if(1===arguments.length){for(;++u<o;)if(null!=(r=n[u])&&r>=r){e=i=r;break}for(;++u<o;)null!=(r=n[u])&&(e>r&&(e=r),r>i&&(i=r))}else{for(;++u<o;)if(null!=(r=t.call(n,n[u],u))&&r>=r){e=i=r;break}for(;++u<o;)null!=(r=t.call(n,n[u],u))&&(e>r&&(e=r),r>i&&(i=r))}return[e,i]},ao.sum=function(n,t){var e,r=0,u=n.length,o=-1;if(1===arguments.length)for(;++o<u;)i(e=+n[o])&&(r+=e);else for(;++o<u;)i(e=+t.call(n,n[o],o))&&(r+=e);return r},ao.mean=function(n,t){var e,u=0,o=n.length,a=-1,l=o;if(1===arguments.length)for(;++a<o;)i(e=r(n[a]))?u+=e:--l;else for(;++a<o;)i(e=r(t.call(n,n[a],a)))?u+=e:--l;return l?u/l:void 0},ao.quantile=function(n,t){var e=(n.length-1)*t+1,r=Math.floor(e),i=+n[r-1],u=e-r;return u?i+u*(n[r]-i):i},ao.median=function(n,t){var u,o=[],a=n.length,l=-1;if(1===arguments.length)for(;++l<a;)i(u=r(n[l]))&&o.push(u);else for(;++l<a;)i(u=r(t.call(n,n[l],l)))&&o.push(u);return o.length?ao.quantile(o.sort(e),.5):void 0},ao.variance=function(n,t){var e,u,o=n.length,a=0,l=0,c=-1,f=0;if(1===arguments.length)for(;++c<o;)i(e=r(n[c]))&&(u=e-a,a+=u/++f,l+=u*(e-a));else for(;++c<o;)i(e=r(t.call(n,n[c],c)))&&(u=e-a,a+=u/++f,l+=u*(e-a));return f>1?l/(f-1):void 0},ao.deviation=function(){var n=ao.variance.apply(this,arguments);return n?Math.sqrt(n):n};var Mo=u(e);ao.bisectLeft=Mo.left,ao.bisect=ao.bisectRight=Mo.right,ao.bisector=function(n){return u(1===n.length?function(t,r){return e(n(t),r)}:n)},ao.shuffle=function(n,t,e){(u=arguments.length)<3&&(e=n.length,2>u&&(t=0));for(var r,i,u=e-t;u;)i=Math.random()*u--|0,r=n[u+t],n[u+t]=n[i+t],n[i+t]=r;return n},ao.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ao.pairs=function(n){for(var t,e=0,r=n.length-1,i=n[0],u=new Array(0>r?0:r);r>e;)u[e]=[t=i,i=n[++e]];return u},ao.transpose=function(n){if(!(i=n.length))return[];for(var t=-1,e=ao.min(n,o),r=new Array(e);++t<e;)for(var i,u=-1,a=r[t]=new Array(i);++u<i;)a[u]=n[u][t];return r},ao.zip=function(){return ao.transpose(arguments)},ao.keys=function(n){var t=[];for(var e in n)t.push(e);return t},ao.values=function(n){var t=[];for(var e in n)t.push(n[e]);return t},ao.entries=function(n){var t=[];for(var e in n)t.push({key:e,value:n[e]});return t},ao.merge=function(n){for(var t,e,r,i=n.length,u=-1,o=0;++u<i;)o+=n[u].length;for(e=new Array(o);--i>=0;)for(r=n[i],t=r.length;--t>=0;)e[--o]=r[t];return e};var xo=Math.abs;ao.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,i=[],u=a(xo(e)),o=-1;if(n*=u,t*=u,e*=u,0>e)for(;(r=n+e*++o)>t;)i.push(r/u);else for(;(r=n+e*++o)<t;)i.push(r/u);return i},ao.map=function(n,t){var e=new c;if(n instanceof c)n.forEach(function(n,t){e.set(n,t)});else if(Array.isArray(n)){var r,i=-1,u=n.length;if(1===arguments.length)for(;++i<u;)e.set(i,n[i]);else for(;++i<u;)e.set(t.call(n,r=n[i],i),r)}else for(var o in n)e.set(o,n[o]);return e};var bo="__proto__",_o="\x00";l(c,{has:h,get:function(n){return this._[f(n)]},set:function(n,t){return this._[f(n)]=t},remove:p,keys:g,values:function(){var n=[];for(var t in this._)n.push(this._[t]);return n},entries:function(){var n=[];for(var t in this._)n.push({key:s(t),value:this._[t]});return n},size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,s(t),this._[t])}}),ao.nest=function(){function n(t,o,a){if(a>=u.length)return r?r.call(i,o):e?o.sort(e):o;for(var l,f,s,h,p=-1,g=o.length,v=u[a++],d=new c;++p<g;)(h=d.get(l=v(f=o[p])))?h.push(f):d.set(l,[f]);return t?(f=t(),s=function(e,r){f.set(e,n(t,r,a))}):(f={},s=function(e,r){f[e]=n(t,r,a)}),d.forEach(s),f}function t(n,e){if(e>=u.length)return n;var r=[],i=o[e++];return n.forEach(function(n,i){r.push({key:n,values:t(i,e)})}),i?r.sort(function(n,t){return i(n.key,t.key)}):r}var e,r,i={},u=[],o=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n(ao.map,e,0),0)},i.key=function(n){return u.push(n),i},i.sortKeys=function(n){return o[u.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},ao.set=function(n){var t=new y;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},l(y,{has:h,add:function(n){return this._[f(n+="")]=!0,n},remove:p,values:g,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,s(t))}}),ao.behavior={},ao.rebind=function(n,t){for(var e,r=1,i=arguments.length;++r<i;)n[e=arguments[r]]=M(n,t,t[e]);return n};var wo=["webkit","ms","moz","Moz","o","O"];ao.dispatch=function(){for(var n=new _,t=-1,e=arguments.length;++t<e;)n[arguments[t]]=w(n);return n},_.prototype.on=function(n,t){var e=n.indexOf("."),r="";if(e>=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ao.event=null,ao.requote=function(n){return n.replace(So,"\\$&")};var So=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ko={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},No=function(n,t){return t.querySelector(n)},Eo=function(n,t){return t.querySelectorAll(n)},Ao=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(Ao=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(No=function(n,t){return Sizzle(n,t)[0]||null},Eo=Sizzle,Ao=Sizzle.matchesSelector),ao.selection=function(){return ao.select(fo.documentElement)};var Co=ao.selection.prototype=[];Co.select=function(n){var t,e,r,i,u=[];n=A(n);for(var o=-1,a=this.length;++o<a;){u.push(t=[]),t.parentNode=(r=this[o]).parentNode;for(var l=-1,c=r.length;++l<c;)(i=r[l])?(t.push(e=n.call(i,i.__data__,l,o)),e&&"__data__"in i&&(e.__data__=i.__data__)):t.push(null)}return E(u)},Co.selectAll=function(n){var t,e,r=[];n=C(n);for(var i=-1,u=this.length;++i<u;)for(var o=this[i],a=-1,l=o.length;++a<l;)(e=o[a])&&(r.push(t=co(n.call(e,e.__data__,a,i))),t.parentNode=e);return E(r)};var zo="http://www.w3.org/1999/xhtml",Lo={svg:"http://www.w3.org/2000/svg",xhtml:zo,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};ao.ns={prefix:Lo,qualify:function(n){var t=n.indexOf(":"),e=n;return t>=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),Lo.hasOwnProperty(e)?{space:Lo[e],local:n}:n}},Co.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ao.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},Co.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,i=-1;if(t=e.classList){for(;++i<r;)if(!t.contains(n[i]))return!1}else for(t=e.getAttribute("class");++i<r;)if(!q(n[i]).test(t))return!1;return!0}for(t in n)this.each(R(t,n[t]));return this}return this.each(R(n,t))},Co.style=function(n,e,r){var i=arguments.length;if(3>i){if("string"!=typeof n){2>i&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>i){var u=this.node();return t(u).getComputedStyle(u,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},Co.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},Co.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},Co.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},Co.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},Co.insert=function(n,t){return n=j(n),t=A(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},Co.remove=function(){return this.each(F)},Co.data=function(n,t){function e(n,e){var r,i,u,o=n.length,s=e.length,h=Math.min(o,s),p=new Array(s),g=new Array(s),v=new Array(o);if(t){var d,y=new c,m=new Array(o);for(r=-1;++r<o;)(i=n[r])&&(y.has(d=t.call(i,i.__data__,r))?v[r]=i:y.set(d,i),m[r]=d);for(r=-1;++r<s;)(i=y.get(d=t.call(e,u=e[r],r)))?i!==!0&&(p[r]=i,i.__data__=u):g[r]=H(u),y.set(d,!0);for(r=-1;++r<o;)r in m&&y.get(m[r])!==!0&&(v[r]=n[r])}else{for(r=-1;++r<h;)i=n[r],u=e[r],i?(i.__data__=u,p[r]=i):g[r]=H(u);for(;s>r;++r)g[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}g.update=p,g.parentNode=p.parentNode=v.parentNode=n.parentNode,a.push(g),l.push(p),f.push(v)}var r,i,u=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++u<o;)(i=r[u])&&(n[u]=i.__data__);return n}var a=Z([]),l=E([]),f=E([]);if("function"==typeof n)for(;++u<o;)e(r=this[u],n.call(r,r.parentNode.__data__,u));else for(;++u<o;)e(r=this[u],n);return l.enter=function(){return a},l.exit=function(){return f},l},Co.datum=function(n){return arguments.length?this.property("__data__",n):this.property("__data__")},Co.filter=function(n){var t,e,r,i=[];"function"!=typeof n&&(n=O(n));for(var u=0,o=this.length;o>u;u++){i.push(t=[]),t.parentNode=(e=this[u]).parentNode;for(var a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return E(i)},Co.order=function(){for(var n=-1,t=this.length;++n<t;)for(var e,r=this[n],i=r.length-1,u=r[i];--i>=0;)(e=r[i])&&(u&&u!==e.nextSibling&&u.parentNode.insertBefore(e,u),u=e);return this},Co.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++t<e;)this[t].sort(n);return this.order()},Co.each=function(n){return Y(this,function(t,e,r){n.call(t,t.__data__,e,r)})},Co.call=function(n){var t=co(arguments);return n.apply(t[0]=this,t),this},Co.empty=function(){return!this.node()},Co.node=function(){for(var n=0,t=this.length;t>n;n++)for(var e=this[n],r=0,i=e.length;i>r;r++){var u=e[r];if(u)return u}return null},Co.size=function(){var n=0;return Y(this,function(){++n}),n};var qo=[];ao.selection.enter=Z,ao.selection.enter.prototype=qo,qo.append=Co.append,qo.empty=Co.empty,qo.node=Co.node,qo.call=Co.call,qo.size=Co.size,qo.select=function(n){for(var t,e,r,i,u,o=[],a=-1,l=this.length;++a<l;){r=(i=this[a]).update,o.push(t=[]),t.parentNode=i.parentNode;for(var c=-1,f=i.length;++c<f;)(u=i[c])?(t.push(r[c]=e=n.call(i.parentNode,u.__data__,c,a)),e.__data__=u.__data__):t.push(null)}return E(o)},qo.insert=function(n,t){return arguments.length<2&&(t=V(this)),Co.insert.call(this,n,t)},ao.select=function(t){var e;return"string"==typeof t?(e=[No(t,fo)],e.parentNode=fo.documentElement):(e=[t],e.parentNode=n(t)),E([e])},ao.selectAll=function(n){var t;return"string"==typeof n?(t=co(Eo(n,fo)),t.parentNode=fo.documentElement):(t=co(n),t.parentNode=null),E([t])},Co.on=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var To=ao.map({mouseenter:"mouseover",mouseleave:"mouseout"});fo&&To.forEach(function(n){"on"+n in fo&&To.remove(n)});var Ro,Do=0;ao.mouse=function(n){return J(n,k())};var Po=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ao.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,i=0,u=t.length;u>i;++i)if((r=t[i]).identifier===e)return J(n,r)},ao.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",o)}function e(n,t,e,u,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],g|=n|e,M=r,p({type:"drag",x:r[0]+c[0],y:r[1]+c[1],dx:n,dy:e}))}function l(){t(h,v)&&(y.on(u+d,null).on(o+d,null),m(g),p({type:"dragend"}))}var c,f=this,s=ao.event.target.correspondingElement||ao.event.target,h=f.parentNode,p=r.of(f,arguments),g=0,v=n(),d=".drag"+(null==v?"":"-"+v),y=ao.select(e(s)).on(u+d,a).on(o+d,l),m=W(s),M=t(h,v);i?(c=i.apply(f,arguments),c=[c.x-M[0],c.y-M[1]]):c=[0,0],p({type:"dragstart"})}}var r=N(n,"drag","dragstart","dragend"),i=null,u=e(b,ao.mouse,t,"mousemove","mouseup"),o=e(G,ao.touch,m,"touchmove","touchend");return n.origin=function(t){return arguments.length?(i=t,n):i},ao.rebind(n,r,"on")},ao.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?co(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Uo=1e-6,jo=Uo*Uo,Fo=Math.PI,Ho=2*Fo,Oo=Ho-Uo,Io=Fo/2,Yo=Fo/180,Zo=180/Fo,Vo=Math.SQRT2,Xo=2,$o=4;ao.interpolateZoom=function(n,t){var e,r,i=n[0],u=n[1],o=n[2],a=t[0],l=t[1],c=t[2],f=a-i,s=l-u,h=f*f+s*s;if(jo>h)r=Math.log(c/o)/Vo,e=function(n){return[i+n*f,u+n*s,o*Math.exp(Vo*n*r)]};else{var p=Math.sqrt(h),g=(c*c-o*o+$o*h)/(2*o*Xo*p),v=(c*c-o*o-$o*h)/(2*c*Xo*p),d=Math.log(Math.sqrt(g*g+1)-g),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-d)/Vo,e=function(n){var t=n*r,e=rn(d),a=o/(Xo*p)*(e*un(Vo*t+d)-en(d));return[i+a*f,u+a*s,o*e/rn(Vo*t+d)]}}return e.duration=1e3*r,e},ao.behavior.zoom=function(){function n(n){n.on(L,s).on(Wo+".zoom",p).on("dblclick.zoom",g).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function i(n){k.k=Math.max(A[0],Math.min(A[1],n))}function u(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},i(Math.pow(2,o)),u(d=e,r),t=ao.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function l(n){z++||n({type:"zoomstart"})}function c(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function f(n){--z||(n({type:"zoomend"}),d=null)}function s(){function n(){a=1,u(ao.mouse(i),h),c(o)}function r(){s.on(q,null).on(T,null),p(a),f(o)}var i=this,o=D.of(i,arguments),a=0,s=ao.select(t(i)).on(q,n).on(T,r),h=e(ao.mouse(i)),p=W(i);Il.call(i),l(o)}function h(){function n(){var n=ao.touches(g);return p=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ao.event.target;ao.select(t).on(x,r).on(b,a),_.push(t);for(var e=ao.event.changedTouches,i=0,u=e.length;u>i;++i)d[e[i].identifier]=null;var l=n(),c=Date.now();if(1===l.length){if(500>c-M){var f=l[0];o(g,f,d[f.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=c}else if(l.length>1){var f=l[0],s=l[1],h=f[0]-s[0],p=f[1]-s[1];y=h*h+p*p}}function r(){var n,t,e,r,o=ao.touches(g);Il.call(g);for(var a=0,l=o.length;l>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var f=(f=e[0]-n[0])*f+(f=e[1]-n[1])*f,s=y&&Math.sqrt(f/y);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],i(s*p)}M=null,u(n,t),c(v)}function a(){if(ao.event.touches.length){for(var t=ao.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var i in d)return void n()}ao.selectAll(_).on(m,null),w.on(L,s).on(R,h),N(),f(v)}var p,g=this,v=D.of(g,arguments),d={},y=0,m=".zoom-"+ao.event.changedTouches[0].identifier,x="touchmove"+m,b="touchend"+m,_=[],w=ao.select(g),N=W(g);t(),l(v),w.on(L,null).on(R,t)}function p(){var n=D.of(this,arguments);m?clearTimeout(m):(Il.call(this),v=e(d=y||ao.mouse(this)),l(n)),m=setTimeout(function(){m=null,f(n)},50),S(),i(Math.pow(2,.002*Bo())*k.k),u(d,v),c(n)}function g(){var n=ao.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ao.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,y,m,M,x,b,_,w,k={x:0,y:0,k:1},E=[960,500],A=Jo,C=250,z=0,L="mousedown.zoom",q="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=N(n,"zoomstart","zoom","zoomend");return Wo||(Wo="onwheel"in fo?(Bo=function(){return-ao.event.deltaY*(ao.event.deltaMode?120:1)},"wheel"):"onmousewheel"in fo?(Bo=function(){return ao.event.wheelDelta},"mousewheel"):(Bo=function(){return-ao.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Hl?ao.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},l(n)}).tween("zoom:zoom",function(){var e=E[0],r=E[1],i=d?d[0]:e/2,u=d?d[1]:r/2,o=ao.interpolateZoom([(i-k.x)/k.k,(u-k.y)/k.k,e/k.k],[(i-t.x)/t.k,(u-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:i-r[0]*a,y:u-r[1]*a,k:a},c(n)}}).each("interrupt.zoom",function(){f(n)}).each("end.zoom",function(){f(n)}):(this.__chart__=k,l(n),c(n),f(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:null},i(+t),a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(A=null==t?Jo:[+t[0],+t[1]],n):A},n.center=function(t){return arguments.length?(y=t&&[+t[0],+t[1]],n):y},n.size=function(t){return arguments.length?(E=t&&[+t[0],+t[1]],n):E},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ao.rebind(n,D,"on")};var Bo,Wo,Jo=[0,1/0];ao.color=an,an.prototype.toString=function(){return this.rgb()+""},ao.hsl=ln;var Go=ln.prototype=new an;Go.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,this.l/n)},Go.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,n*this.l)},Go.rgb=function(){return cn(this.h,this.s,this.l)},ao.hcl=fn;var Ko=fn.prototype=new an;Ko.brighter=function(n){return new fn(this.h,this.c,Math.min(100,this.l+Qo*(arguments.length?n:1)))},Ko.darker=function(n){return new fn(this.h,this.c,Math.max(0,this.l-Qo*(arguments.length?n:1)))},Ko.rgb=function(){return sn(this.h,this.c,this.l).rgb()},ao.lab=hn;var Qo=18,na=.95047,ta=1,ea=1.08883,ra=hn.prototype=new an;ra.brighter=function(n){return new hn(Math.min(100,this.l+Qo*(arguments.length?n:1)),this.a,this.b)},ra.darker=function(n){return new hn(Math.max(0,this.l-Qo*(arguments.length?n:1)),this.a,this.b)},ra.rgb=function(){return pn(this.l,this.a,this.b)},ao.rgb=mn;var ia=mn.prototype=new an;ia.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,i=30;return t||e||r?(t&&i>t&&(t=i),e&&i>e&&(e=i),r&&i>r&&(r=i),new mn(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mn(i,i,i)},ia.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mn(n*this.r,n*this.g,n*this.b)},ia.hsl=function(){return wn(this.r,this.g,this.b)},ia.toString=function(){return"#"+bn(this.r)+bn(this.g)+bn(this.b)};var ua=ao.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});ua.forEach(function(n,t){ua.set(n,Mn(t))}),ao.functor=En,ao.xhr=An(m),ao.dsv=function(n,t){function e(n,e,u){arguments.length<3&&(u=e,e=null);var o=Cn(n,t,null==e?r:i(e),u);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:i(n)):e},o}function r(n){return e.parse(n.responseText)}function i(n){return function(t){return e.parse(t.responseText,n)}}function u(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),l=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var i=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(i(n),e)}:i})},e.parseRows=function(n,t){function e(){if(f>=c)return o;if(i)return i=!1,u;var t=f;if(34===n.charCodeAt(t)){for(var e=t;e++<c;)if(34===n.charCodeAt(e)){if(34!==n.charCodeAt(e+1))break;++e}f=e+2;var r=n.charCodeAt(e+1);return 13===r?(i=!0,10===n.charCodeAt(e+2)&&++f):10===r&&(i=!0),n.slice(t+1,e).replace(/""/g,'"')}for(;c>f;){var r=n.charCodeAt(f++),a=1;if(10===r)i=!0;else if(13===r)i=!0,10===n.charCodeAt(f)&&(++f,++a);else if(r!==l)continue;return n.slice(t,f-a)}return n.slice(t)}for(var r,i,u={},o={},a=[],c=n.length,f=0,s=0;(r=e())!==o;){for(var h=[];r!==u&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,s++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new y,i=[];return t.forEach(function(n){for(var t in n)r.has(t)||i.push(r.add(t))}),[i.map(o).join(n)].concat(t.map(function(t){return i.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(u).join("\n")},e},ao.csv=ao.dsv(",","text/csv"),ao.tsv=ao.dsv(" ","text/tab-separated-values");var oa,aa,la,ca,fa=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ao.timer=function(){qn.apply(this,arguments)},ao.timer.flush=function(){Rn(),Dn()},ao.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var sa=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Un);ao.formatPrefix=function(n,t){var e=0;return(n=+n)&&(0>n&&(n*=-1),t&&(n=ao.round(n,Pn(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),sa[8+e/3]};var ha=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,pa=ao.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ao.round(n,Pn(n,t))).toFixed(Math.max(0,Math.min(20,Pn(n*(1+1e-15),t))))}}),ga=ao.time={},va=Date;Hn.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){da.setUTCDate.apply(this._,arguments)},setDay:function(){da.setUTCDay.apply(this._,arguments)},setFullYear:function(){da.setUTCFullYear.apply(this._,arguments)},setHours:function(){da.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){da.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){da.setUTCMinutes.apply(this._,arguments)},setMonth:function(){da.setUTCMonth.apply(this._,arguments)},setSeconds:function(){da.setUTCSeconds.apply(this._,arguments)},setTime:function(){da.setTime.apply(this._,arguments)}};var da=Date.prototype;ga.year=On(function(n){return n=ga.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ga.years=ga.year.range,ga.years.utc=ga.year.utc.range,ga.day=On(function(n){var t=new va(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ga.days=ga.day.range,ga.days.utc=ga.day.utc.range,ga.dayOfYear=function(n){var t=ga.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ga[n]=On(function(n){return(n=ga.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ga[n+"s"]=e.range,ga[n+"s"].utc=e.utc.range,ga[n+"OfYear"]=function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)}}),ga.week=ga.sunday,ga.weeks=ga.sunday.range,ga.weeks.utc=ga.sunday.utc.range,ga.weekOfYear=ga.sundayOfYear;var ya={"-":"",_:" ",0:"0"},ma=/^\s*\d+/,Ma=/^%/;ao.locale=function(n){return{numberFormat:jn(n),timeFormat:Yn(n)}};var xa=ao.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"], +shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ao.format=xa.numberFormat,ao.geo={},ft.prototype={s:0,t:0,add:function(n){st(n,this.t,ba),st(ba.s,this.s,this),this.s?this.t+=ba.t:this.s=ba.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var ba=new ft;ao.geo.stream=function(n,t){n&&_a.hasOwnProperty(n.type)?_a[n.type](n,t):ht(n,t)};var _a={Feature:function(n,t){ht(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,i=e.length;++r<i;)ht(e[r].geometry,t)}},wa={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates,t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){for(var e=n.coordinates,r=-1,i=e.length;++r<i;)n=e[r],t.point(n[0],n[1],n[2])},LineString:function(n,t){pt(n.coordinates,t,0)},MultiLineString:function(n,t){for(var e=n.coordinates,r=-1,i=e.length;++r<i;)pt(e[r],t,0)},Polygon:function(n,t){gt(n.coordinates,t)},MultiPolygon:function(n,t){for(var e=n.coordinates,r=-1,i=e.length;++r<i;)gt(e[r],t)},GeometryCollection:function(n,t){for(var e=n.geometries,r=-1,i=e.length;++r<i;)ht(e[r],t)}};ao.geo.area=function(n){return Sa=0,ao.geo.stream(n,Na),Sa};var Sa,ka=new ft,Na={sphere:function(){Sa+=4*Fo},point:b,lineStart:b,lineEnd:b,polygonStart:function(){ka.reset(),Na.lineStart=vt},polygonEnd:function(){var n=2*ka;Sa+=0>n?4*Fo+n:n,Na.lineStart=Na.lineEnd=Na.point=b}};ao.geo.bounds=function(){function n(n,t){M.push(x=[f=n,h=n]),s>t&&(s=t),t>p&&(p=t)}function t(t,e){var r=dt([t*Yo,e*Yo]);if(y){var i=mt(y,r),u=[i[1],-i[0],0],o=mt(u,i);bt(o),o=_t(o);var l=t-g,c=l>0?1:-1,v=o[0]*Zo*c,d=xo(l)>180;if(d^(v>c*g&&c*t>v)){var m=o[1]*Zo;m>p&&(p=m)}else if(v=(v+360)%360-180,d^(v>c*g&&c*t>v)){var m=-o[1]*Zo;s>m&&(s=m)}else s>e&&(s=e),e>p&&(p=e);d?g>t?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t):h>=f?(f>t&&(f=t),t>h&&(h=t)):t>g?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t)}else n(t,e);y=r,g=t}function e(){b.point=t}function r(){x[0]=f,x[1]=h,b.point=n,y=null}function i(n,e){if(y){var r=n-g;m+=xo(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Na.point(n,e),t(n,e)}function u(){Na.lineStart()}function o(){i(v,d),Na.lineEnd(),xo(m)>Uo&&(f=-(h=180)),x[0]=f,x[1]=h,y=null}function a(n,t){return(t-=n)<0?t+360:t}function l(n,t){return n[0]-t[0]}function c(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var f,s,h,p,g,v,d,y,m,M,x,b={point:n,lineStart:e,lineEnd:r,polygonStart:function(){b.point=i,b.lineStart=u,b.lineEnd=o,m=0,Na.polygonStart()},polygonEnd:function(){Na.polygonEnd(),b.point=n,b.lineStart=e,b.lineEnd=r,0>ka?(f=-(h=180),s=-(p=90)):m>Uo?p=90:-Uo>m&&(s=-90),x[0]=f,x[1]=h}};return function(n){p=h=-(f=s=1/0),M=[],ao.geo.stream(n,b);var t=M.length;if(t){M.sort(l);for(var e,r=1,i=M[0],u=[i];t>r;++r)e=M[r],c(e[0],i)||c(e[1],i)?(a(i[0],e[1])>a(i[0],i[1])&&(i[1]=e[1]),a(e[0],i[1])>a(i[0],i[1])&&(i[0]=e[0])):u.push(i=e);for(var o,e,g=-(1/0),t=u.length-1,r=0,i=u[t];t>=r;i=e,++r)e=u[r],(o=a(i[1],e[0]))>g&&(g=o,f=e[0],h=i[1])}return M=x=null,f===1/0||s===1/0?[[NaN,NaN],[NaN,NaN]]:[[f,s],[h,p]]}}(),ao.geo.centroid=function(n){Ea=Aa=Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,ja);var t=Da,e=Pa,r=Ua,i=t*t+e*e+r*r;return jo>i&&(t=qa,e=Ta,r=Ra,Uo>Aa&&(t=Ca,e=za,r=La),i=t*t+e*e+r*r,jo>i)?[NaN,NaN]:[Math.atan2(e,t)*Zo,tn(r/Math.sqrt(i))*Zo]};var Ea,Aa,Ca,za,La,qa,Ta,Ra,Da,Pa,Ua,ja={sphere:b,point:St,lineStart:Nt,lineEnd:Et,polygonStart:function(){ja.lineStart=At},polygonEnd:function(){ja.lineStart=Nt}},Fa=Rt(zt,jt,Ht,[-Fo,-Fo/2]),Ha=1e9;ao.geo.clipExtent=function(){var n,t,e,r,i,u,o={stream:function(n){return i&&(i.valid=!1),i=u(n),i.valid=!0,i},extent:function(a){return arguments.length?(u=Zt(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),i&&(i.valid=!1,i=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ao.geo.conicEqualArea=function(){return Vt(Xt)}).raw=Xt,ao.geo.albers=function(){return ao.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ao.geo.albersUsa=function(){function n(n){var u=n[0],o=n[1];return t=null,e(u,o),t||(r(u,o),t)||i(u,o),t}var t,e,r,i,u=ao.geo.albers(),o=ao.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ao.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=u.scale(),e=u.translate(),r=(n[0]-e[0])/t,i=(n[1]-e[1])/t;return(i>=.12&&.234>i&&r>=-.425&&-.214>r?o:i>=.166&&.234>i&&r>=-.214&&-.115>r?a:u).invert(n)},n.stream=function(n){var t=u.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,i){t.point(n,i),e.point(n,i),r.point(n,i)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(u.precision(t),o.precision(t),a.precision(t),n):u.precision()},n.scale=function(t){return arguments.length?(u.scale(t),o.scale(.35*t),a.scale(t),n.translate(u.translate())):u.scale()},n.translate=function(t){if(!arguments.length)return u.translate();var c=u.scale(),f=+t[0],s=+t[1];return e=u.translate(t).clipExtent([[f-.455*c,s-.238*c],[f+.455*c,s+.238*c]]).stream(l).point,r=o.translate([f-.307*c,s+.201*c]).clipExtent([[f-.425*c+Uo,s+.12*c+Uo],[f-.214*c-Uo,s+.234*c-Uo]]).stream(l).point,i=a.translate([f-.205*c,s+.212*c]).clipExtent([[f-.214*c+Uo,s+.166*c+Uo],[f-.115*c-Uo,s+.234*c-Uo]]).stream(l).point,n},n.scale(1070)};var Oa,Ia,Ya,Za,Va,Xa,$a={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Ia=0,$a.lineStart=$t},polygonEnd:function(){$a.lineStart=$a.lineEnd=$a.point=b,Oa+=xo(Ia/2)}},Ba={point:Bt,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Wa={point:Gt,lineStart:Kt,lineEnd:Qt,polygonStart:function(){Wa.lineStart=ne},polygonEnd:function(){Wa.point=Gt,Wa.lineStart=Kt,Wa.lineEnd=Qt}};ao.geo.path=function(){function n(n){return n&&("function"==typeof a&&u.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=i(u)),ao.geo.stream(n,o)),u.result()}function t(){return o=null,n}var e,r,i,u,o,a=4.5;return n.area=function(n){return Oa=0,ao.geo.stream(n,i($a)),Oa},n.centroid=function(n){return Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,i(Wa)),Ua?[Da/Ua,Pa/Ua]:Ra?[qa/Ra,Ta/Ra]:La?[Ca/La,za/La]:[NaN,NaN]},n.bounds=function(n){return Va=Xa=-(Ya=Za=1/0),ao.geo.stream(n,i(Ba)),[[Ya,Za],[Va,Xa]]},n.projection=function(n){return arguments.length?(i=(e=n)?n.stream||re(n):m,t()):e},n.context=function(n){return arguments.length?(u=null==(r=n)?new Wt:new te(n),"function"!=typeof a&&u.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(u.pointRadius(+t),+t),n):a},n.projection(ao.geo.albersUsa()).context(null)},ao.geo.transform=function(n){return{stream:function(t){var e=new ie(t);for(var r in n)e[r]=n[r];return e}}},ie.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ao.geo.projection=oe,ao.geo.projectionMutator=ae,(ao.geo.equirectangular=function(){return oe(ce)}).raw=ce.invert=ce,ao.geo.rotation=function(n){function t(t){return t=n(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t}return n=se(n[0]%360*Yo,n[1]*Yo,n.length>2?n[2]*Yo:0),t.invert=function(t){return t=n.invert(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t},t},fe.invert=ce,ao.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=se(-n[0]*Yo,-n[1]*Yo,0).invert,i=[];return e(null,null,1,{point:function(n,e){i.push(n=t(n,e)),n[0]*=Zo,n[1]*=Zo}}),{type:"Polygon",coordinates:[i]}}var t,e,r=[0,0],i=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=ve((t=+r)*Yo,i*Yo),n):t},n.precision=function(r){return arguments.length?(e=ve(t*Yo,(i=+r)*Yo),n):i},n.angle(90)},ao.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Yo,i=n[1]*Yo,u=t[1]*Yo,o=Math.sin(r),a=Math.cos(r),l=Math.sin(i),c=Math.cos(i),f=Math.sin(u),s=Math.cos(u);return Math.atan2(Math.sqrt((e=s*o)*e+(e=c*f-l*s*a)*e),l*f+c*s*a)},ao.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ao.range(Math.ceil(u/d)*d,i,d).map(h).concat(ao.range(Math.ceil(c/y)*y,l,y).map(p)).concat(ao.range(Math.ceil(r/g)*g,e,g).filter(function(n){return xo(n%d)>Uo}).map(f)).concat(ao.range(Math.ceil(a/v)*v,o,v).filter(function(n){return xo(n%y)>Uo}).map(s))}var e,r,i,u,o,a,l,c,f,s,h,p,g=10,v=g,d=90,y=360,m=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(u).concat(p(l).slice(1),h(i).reverse().slice(1),p(c).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(u=+t[0][0],i=+t[1][0],c=+t[0][1],l=+t[1][1],u>i&&(t=u,u=i,i=t),c>l&&(t=c,c=l,l=t),n.precision(m)):[[u,c],[i,l]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(m)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],y=+t[1],n):[d,y]},n.minorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],n):[g,v]},n.precision=function(t){return arguments.length?(m=+t,f=ye(a,o,90),s=me(r,e,m),h=ye(c,l,90),p=me(u,i,m),n):m},n.majorExtent([[-180,-90+Uo],[180,90-Uo]]).minorExtent([[-180,-80-Uo],[180,80+Uo]])},ao.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||i.apply(this,arguments)]}}var t,e,r=Me,i=xe;return n.distance=function(){return ao.geo.distance(t||r.apply(this,arguments),e||i.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(i=t,e="function"==typeof t?null:t,n):i},n.precision=function(){return arguments.length?n:0},n},ao.geo.interpolate=function(n,t){return be(n[0]*Yo,n[1]*Yo,t[0]*Yo,t[1]*Yo)},ao.geo.length=function(n){return Ja=0,ao.geo.stream(n,Ga),Ja};var Ja,Ga={sphere:b,point:b,lineStart:_e,lineEnd:b,polygonStart:b,polygonEnd:b},Ka=we(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ao.geo.azimuthalEqualArea=function(){return oe(Ka)}).raw=Ka;var Qa=we(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},m);(ao.geo.azimuthalEquidistant=function(){return oe(Qa)}).raw=Qa,(ao.geo.conicConformal=function(){return Vt(Se)}).raw=Se,(ao.geo.conicEquidistant=function(){return Vt(ke)}).raw=ke;var nl=we(function(n){return 1/n},Math.atan);(ao.geo.gnomonic=function(){return oe(nl)}).raw=nl,Ne.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Io]},(ao.geo.mercator=function(){return Ee(Ne)}).raw=Ne;var tl=we(function(){return 1},Math.asin);(ao.geo.orthographic=function(){return oe(tl)}).raw=tl;var el=we(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ao.geo.stereographic=function(){return oe(el)}).raw=el,Ae.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Io]},(ao.geo.transverseMercator=function(){var n=Ee(Ae),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Ae,ao.geom={},ao.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,i=En(e),u=En(r),o=n.length,a=[],l=[];for(t=0;o>t;t++)a.push([+i.call(this,n[t],t),+u.call(this,n[t],t),t]);for(a.sort(qe),t=0;o>t;t++)l.push([a[t][0],-a[t][1]]);var c=Le(a),f=Le(l),s=f[0]===c[0],h=f[f.length-1]===c[c.length-1],p=[];for(t=c.length-1;t>=0;--t)p.push(n[a[c[t]][2]]);for(t=+s;t<f.length-h;++t)p.push(n[a[f[t]][2]]);return p}var e=Ce,r=ze;return arguments.length?t(n):(t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t)},ao.geom.polygon=function(n){return ko(n,rl),n};var rl=ao.geom.polygon.prototype=[];rl.area=function(){for(var n,t=-1,e=this.length,r=this[e-1],i=0;++t<e;)n=r,r=this[t],i+=n[1]*r[0]-n[0]*r[1];return.5*i},rl.centroid=function(n){var t,e,r=-1,i=this.length,u=0,o=0,a=this[i-1];for(arguments.length||(n=-1/(6*this.area()));++r<i;)t=a,a=this[r],e=t[0]*a[1]-a[0]*t[1],u+=(t[0]+a[0])*e,o+=(t[1]+a[1])*e;return[u*n,o*n]},rl.clip=function(n){for(var t,e,r,i,u,o,a=De(n),l=-1,c=this.length-De(this),f=this[c-1];++l<c;){for(t=n.slice(),n.length=0,i=this[l],u=t[(r=t.length-a)-1],e=-1;++e<r;)o=t[e],Te(o,f,i)?(Te(u,f,i)||n.push(Re(u,o,f,i)),n.push(o)):Te(u,f,i)&&n.push(Re(u,o,f,i)),u=o;a&&n.push(n[0]),f=i}return n};var il,ul,ol,al,ll,cl=[],fl=[];Ye.prototype.prepare=function(){for(var n,t=this.edges,e=t.length;e--;)n=t[e].edge,n.b&&n.a||t.splice(e,1);return t.sort(Ve),t.length},tr.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},er.prototype={insert:function(n,t){var e,r,i;if(n){if(t.P=n,t.N=n.N,n.N&&(n.N.P=t),n.N=t,n.R){for(n=n.R;n.L;)n=n.L;n.L=t}else n.R=t;e=n}else this._?(n=or(this._),t.P=null,t.N=n,n.P=n.L=t,e=n):(t.P=t.N=null,this._=t,e=null);for(t.L=t.R=null,t.U=e,t.C=!0,n=t;e&&e.C;)r=e.U,e===r.L?(i=r.R,i&&i.C?(e.C=i.C=!1,r.C=!0,n=r):(n===e.R&&(ir(this,e),n=e,e=n.U),e.C=!1,r.C=!0,ur(this,r))):(i=r.L,i&&i.C?(e.C=i.C=!1,r.C=!0,n=r):(n===e.L&&(ur(this,e),n=e,e=n.U),e.C=!1,r.C=!0,ir(this,r))),e=n.U;this._.C=!1},remove:function(n){n.N&&(n.N.P=n.P),n.P&&(n.P.N=n.N),n.N=n.P=null;var t,e,r,i=n.U,u=n.L,o=n.R;if(e=u?o?or(o):u:o,i?i.L===n?i.L=e:i.R=e:this._=e,u&&o?(r=e.C,e.C=n.C,e.L=u,u.U=e,e!==o?(i=e.U,e.U=n.U,n=e.R,i.L=n,e.R=o,o.U=e):(e.U=i,i=e,n=e.R)):(r=n.C,n=e),n&&(n.U=i),!r){if(n&&n.C)return void(n.C=!1);do{if(n===this._)break;if(n===i.L){if(t=i.R,t.C&&(t.C=!1,i.C=!0,ir(this,i),t=i.R),t.L&&t.L.C||t.R&&t.R.C){t.R&&t.R.C||(t.L.C=!1,t.C=!0,ur(this,t),t=i.R),t.C=i.C,i.C=t.R.C=!1,ir(this,i),n=this._;break}}else if(t=i.L,t.C&&(t.C=!1,i.C=!0,ur(this,i),t=i.L),t.L&&t.L.C||t.R&&t.R.C){t.L&&t.L.C||(t.R.C=!1,t.C=!0,ir(this,t),t=i.L),t.C=i.C,i.C=t.L.C=!1,ur(this,i),n=this._;break}t.C=!0,n=i,i=i.U}while(!n.C);n&&(n.C=!1)}}},ao.geom.voronoi=function(n){function t(n){var t=new Array(n.length),r=a[0][0],i=a[0][1],u=a[1][0],o=a[1][1];return ar(e(n),a).cells.forEach(function(e,a){var l=e.edges,c=e.site,f=t[a]=l.length?l.map(function(n){var t=n.start();return[t.x,t.y]}):c.x>=r&&c.x<=u&&c.y>=i&&c.y<=o?[[r,o],[u,o],[u,i],[r,i]]:[];f.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(u(n,t)/Uo)*Uo,y:Math.round(o(n,t)/Uo)*Uo,i:t}})}var r=Ce,i=ze,u=r,o=i,a=sl;return n?t(n):(t.links=function(n){return ar(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return ar(e(n)).cells.forEach(function(e,r){for(var i,u,o=e.site,a=e.edges.sort(Ve),l=-1,c=a.length,f=a[c-1].edge,s=f.l===o?f.r:f.l;++l<c;)i=f,u=s,f=a[l].edge,s=f.l===o?f.r:f.l,r<u.i&&r<s.i&&cr(o,u,s)<0&&t.push([n[r],n[u.i],n[s.i]])}),t},t.x=function(n){return arguments.length?(u=En(r=n),t):r},t.y=function(n){return arguments.length?(o=En(i=n),t):i},t.clipExtent=function(n){return arguments.length?(a=null==n?sl:n,t):a===sl?null:a},t.size=function(n){return arguments.length?t.clipExtent(n&&[[0,0],n]):a===sl?null:a&&a[1]},t)};var sl=[[-1e6,-1e6],[1e6,1e6]];ao.geom.delaunay=function(n){return ao.geom.voronoi().triangles(n)},ao.geom.quadtree=function(n,t,e,r,i){function u(n){function u(n,t,e,r,i,u,o,a){if(!isNaN(e)&&!isNaN(r))if(n.leaf){var l=n.x,f=n.y;if(null!=l)if(xo(l-e)+xo(f-r)<.01)c(n,t,e,r,i,u,o,a);else{var s=n.point;n.x=n.y=n.point=null,c(n,s,l,f,i,u,o,a),c(n,t,e,r,i,u,o,a)}else n.x=e,n.y=r,n.point=t}else c(n,t,e,r,i,u,o,a)}function c(n,t,e,r,i,o,a,l){var c=.5*(i+a),f=.5*(o+l),s=e>=c,h=r>=f,p=h<<1|s;n.leaf=!1,n=n.nodes[p]||(n.nodes[p]=hr()),s?i=c:a=c,h?o=f:l=f,u(n,t,e,r,i,o,a,l)}var f,s,h,p,g,v,d,y,m,M=En(a),x=En(l);if(null!=t)v=t,d=e,y=r,m=i;else if(y=m=-(v=d=1/0),s=[],h=[],g=n.length,o)for(p=0;g>p;++p)f=n[p],f.x<v&&(v=f.x),f.y<d&&(d=f.y),f.x>y&&(y=f.x),f.y>m&&(m=f.y),s.push(f.x),h.push(f.y);else for(p=0;g>p;++p){var b=+M(f=n[p],p),_=+x(f,p);v>b&&(v=b),d>_&&(d=_),b>y&&(y=b),_>m&&(m=_),s.push(b),h.push(_)}var w=y-v,S=m-d;w>S?m=d+w:y=v+S;var k=hr();if(k.add=function(n){u(k,n,+M(n,++p),+x(n,p),v,d,y,m)},k.visit=function(n){pr(n,k,v,d,y,m)},k.find=function(n){return gr(k,n[0],n[1],v,d,y,m)},p=-1,null==t){for(;++p<g;)u(k,n[p],s[p],h[p],v,d,y,m);--p}else n.forEach(k.add);return s=h=n=f=null,k}var o,a=Ce,l=ze;return(o=arguments.length)?(a=fr,l=sr,3===o&&(i=e,r=t,e=t=0),u(n)):(u.x=function(n){return arguments.length?(a=n,u):a},u.y=function(n){return arguments.length?(l=n,u):l},u.extent=function(n){return arguments.length?(null==n?t=e=r=i=null:(t=+n[0][0],e=+n[0][1],r=+n[1][0],i=+n[1][1]),u):null==t?null:[[t,e],[r,i]]},u.size=function(n){return arguments.length?(null==n?t=e=r=i=null:(t=e=0,r=+n[0],i=+n[1]),u):null==t?null:[r-t,i-e]},u)},ao.interpolateRgb=vr,ao.interpolateObject=dr,ao.interpolateNumber=yr,ao.interpolateString=mr;var hl=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,pl=new RegExp(hl.source,"g");ao.interpolate=Mr,ao.interpolators=[function(n,t){var e=typeof t;return("string"===e?ua.has(t.toLowerCase())||/^(#|rgb\(|hsl\()/i.test(t)?vr:mr:t instanceof an?vr:Array.isArray(t)?xr:"object"===e&&isNaN(t)?dr:yr)(n,t)}],ao.interpolateArray=xr;var gl=function(){return m},vl=ao.map({linear:gl,poly:Er,quad:function(){return Sr},cubic:function(){return kr},sin:function(){return Ar},exp:function(){return Cr},circle:function(){return zr},elastic:Lr,back:qr,bounce:function(){return Tr}}),dl=ao.map({"in":m,out:_r,"in-out":wr,"out-in":function(n){return wr(_r(n))}});ao.ease=function(n){var t=n.indexOf("-"),e=t>=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=vl.get(e)||gl,r=dl.get(r)||m,br(r(e.apply(null,lo.call(arguments,1))))},ao.interpolateHcl=Rr,ao.interpolateHsl=Dr,ao.interpolateLab=Pr,ao.interpolateRound=Ur,ao.transform=function(n){var t=fo.createElementNS(ao.ns.prefix.svg,"g");return(ao.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new jr(e?e.matrix:yl)})(n)},jr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var yl={a:1,b:0,c:0,d:1,e:0,f:0};ao.interpolateTransform=$r,ao.layout={},ao.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++e<r;)t.push(Jr(n[e]));return t}},ao.layout.chord=function(){function n(){var n,c,s,h,p,g={},v=[],d=ao.range(u),y=[];for(e=[],r=[],n=0,h=-1;++h<u;){for(c=0,p=-1;++p<u;)c+=i[h][p];v.push(c),y.push(ao.range(u)),n+=c}for(o&&d.sort(function(n,t){return o(v[n],v[t])}),a&&y.forEach(function(n,t){n.sort(function(n,e){return a(i[t][n],i[t][e])})}),n=(Ho-f*u)/n,c=0,h=-1;++h<u;){for(s=c,p=-1;++p<u;){var m=d[h],M=y[m][p],x=i[m][M],b=c,_=c+=x*n;g[m+"-"+M]={index:m,subindex:M,startAngle:b,endAngle:_,value:x}}r[m]={index:m,startAngle:s,endAngle:c,value:v[m]},c+=f}for(h=-1;++h<u;)for(p=h-1;++p<u;){var w=g[h+"-"+p],S=g[p+"-"+h];(w.value||S.value)&&e.push(w.value<S.value?{source:S,target:w}:{source:w,target:S})}l&&t()}function t(){e.sort(function(n,t){return l((n.source.value+n.target.value)/2,(t.source.value+t.target.value)/2)})}var e,r,i,u,o,a,l,c={},f=0;return c.matrix=function(n){return arguments.length?(u=(i=n)&&i.length,e=r=null,c):i},c.padding=function(n){return arguments.length?(f=n,e=r=null,c):f},c.sortGroups=function(n){return arguments.length?(o=n,e=r=null,c):o},c.sortSubgroups=function(n){return arguments.length?(a=n,e=null,c):a},c.sortChords=function(n){return arguments.length?(l=n,e&&t(),c):l},c.chords=function(){return e||n(),e},c.groups=function(){return r||n(),r},c},ao.layout.force=function(){function n(n){return function(t,e,r,i){if(t.point!==n){var u=t.cx-n.x,o=t.cy-n.y,a=i-e,l=u*u+o*o;if(l>a*a/y){if(v>l){var c=t.charge/l;n.px-=u*c,n.py-=o*c}return!0}if(t.point&&l&&v>l){var c=t.pointCharge/l;n.px-=u*c,n.py-=o*c}}return!t.charge}}function t(n){n.px=ao.event.x,n.py=ao.event.y,l.resume()}var e,r,i,u,o,a,l={},c=ao.dispatch("start","tick","end"),f=[1,1],s=.9,h=ml,p=Ml,g=-30,v=xl,d=.1,y=.64,M=[],x=[];return l.tick=function(){if((i*=.99)<.005)return e=null,c.end({type:"end",alpha:i=0}),!0;var t,r,l,h,p,v,y,m,b,_=M.length,w=x.length;for(r=0;w>r;++r)l=x[r],h=l.source,p=l.target,m=p.x-h.x,b=p.y-h.y,(v=m*m+b*b)&&(v=i*o[r]*((v=Math.sqrt(v))-u[r])/v,m*=v,b*=v,p.x-=m*(y=h.weight+p.weight?h.weight/(h.weight+p.weight):.5),p.y-=b*y,h.x+=m*(y=1-y),h.y+=b*y);if((y=i*d)&&(m=f[0]/2,b=f[1]/2,r=-1,y))for(;++r<_;)l=M[r],l.x+=(m-l.x)*y,l.y+=(b-l.y)*y;if(g)for(ri(t=ao.geom.quadtree(M),i,a),r=-1;++r<_;)(l=M[r]).fixed||t.visit(n(l));for(r=-1;++r<_;)l=M[r],l.fixed?(l.x=l.px,l.y=l.py):(l.x-=(l.px-(l.px=l.x))*s,l.y-=(l.py-(l.py=l.y))*s);c.tick({type:"tick",alpha:i})},l.nodes=function(n){return arguments.length?(M=n,l):M},l.links=function(n){return arguments.length?(x=n,l):x},l.size=function(n){return arguments.length?(f=n,l):f},l.linkDistance=function(n){return arguments.length?(h="function"==typeof n?n:+n,l):h},l.distance=l.linkDistance,l.linkStrength=function(n){return arguments.length?(p="function"==typeof n?n:+n,l):p},l.friction=function(n){return arguments.length?(s=+n,l):s},l.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,l):g},l.chargeDistance=function(n){return arguments.length?(v=n*n,l):Math.sqrt(v)},l.gravity=function(n){return arguments.length?(d=+n,l):d},l.theta=function(n){return arguments.length?(y=n*n,l):Math.sqrt(y)},l.alpha=function(n){return arguments.length?(n=+n,i?n>0?i=n:(e.c=null,e.t=NaN,e=null,c.end({type:"end",alpha:i=0})):n>0&&(c.start({type:"start",alpha:i=n}),e=qn(l.tick)),l):i},l.start=function(){function n(n,r){if(!e){for(e=new Array(i),l=0;i>l;++l)e[l]=[];for(l=0;c>l;++l){var u=x[l];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var o,a=e[t],l=-1,f=a.length;++l<f;)if(!isNaN(o=a[l][n]))return o;return Math.random()*r}var t,e,r,i=M.length,c=x.length,s=f[0],v=f[1];for(t=0;i>t;++t)(r=M[t]).index=t,r.weight=0;for(t=0;c>t;++t)r=x[t],"number"==typeof r.source&&(r.source=M[r.source]),"number"==typeof r.target&&(r.target=M[r.target]),++r.source.weight,++r.target.weight;for(t=0;i>t;++t)r=M[t],isNaN(r.x)&&(r.x=n("x",s)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof h)for(t=0;c>t;++t)u[t]=+h.call(this,x[t],t);else for(t=0;c>t;++t)u[t]=h;if(o=[],"function"==typeof p)for(t=0;c>t;++t)o[t]=+p.call(this,x[t],t);else for(t=0;c>t;++t)o[t]=p;if(a=[],"function"==typeof g)for(t=0;i>t;++t)a[t]=+g.call(this,M[t],t);else for(t=0;i>t;++t)a[t]=g;return l.resume()},l.resume=function(){return l.alpha(.1)},l.stop=function(){return l.alpha(0)},l.drag=function(){return r||(r=ao.behavior.drag().origin(m).on("dragstart.force",Qr).on("drag.force",t).on("dragend.force",ni)),arguments.length?void this.on("mouseover.force",ti).on("mouseout.force",ei).call(r):r},ao.rebind(l,c,"on")};var ml=20,Ml=1,xl=1/0;ao.layout.hierarchy=function(){function n(i){var u,o=[i],a=[];for(i.depth=0;null!=(u=o.pop());)if(a.push(u),(c=e.call(n,u,u.depth))&&(l=c.length)){for(var l,c,f;--l>=0;)o.push(f=c[l]),f.parent=u,f.depth=u.depth+1;r&&(u.value=0),u.children=c}else r&&(u.value=+r.call(n,u,u.depth)||0),delete u.children;return oi(i,function(n){var e,i;t&&(e=n.children)&&e.sort(t),r&&(i=n.parent)&&(i.value+=n.value)}),a}var t=ci,e=ai,r=li;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(ui(t,function(n){n.children&&(n.value=0)}),oi(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ao.layout.partition=function(){function n(t,e,r,i){var u=t.children;if(t.x=e,t.y=t.depth*i,t.dx=r,t.dy=i,u&&(o=u.length)){var o,a,l,c=-1;for(r=t.value?r/t.value:0;++c<o;)n(a=u[c],e,l=a.value*r,i),e+=l}}function t(n){var e=n.children,r=0;if(e&&(i=e.length))for(var i,u=-1;++u<i;)r=Math.max(r,t(e[u]));return 1+r}function e(e,u){var o=r.call(this,e,u);return n(o[0],0,i[0],i[1]/t(o[0])),o}var r=ao.layout.hierarchy(),i=[1,1];return e.size=function(n){return arguments.length?(i=n,e):i},ii(e,r)},ao.layout.pie=function(){function n(o){var a,l=o.length,c=o.map(function(e,r){return+t.call(n,e,r)}),f=+("function"==typeof r?r.apply(this,arguments):r),s=("function"==typeof i?i.apply(this,arguments):i)-f,h=Math.min(Math.abs(s)/l,+("function"==typeof u?u.apply(this,arguments):u)),p=h*(0>s?-1:1),g=ao.sum(c),v=g?(s-l*p)/g:0,d=ao.range(l),y=[];return null!=e&&d.sort(e===bl?function(n,t){return c[t]-c[n]}:function(n,t){return e(o[n],o[t])}),d.forEach(function(n){y[n]={data:o[n],value:a=c[n],startAngle:f,endAngle:f+=a*v+p,padAngle:h}}),y}var t=Number,e=bl,r=0,i=Ho,u=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(i=t,n):i},n.padAngle=function(t){return arguments.length?(u=t,n):u},n};var bl={};ao.layout.stack=function(){function n(a,l){if(!(h=a.length))return a;var c=a.map(function(e,r){return t.call(n,e,r)}),f=c.map(function(t){return t.map(function(t,e){return[u.call(n,t,e),o.call(n,t,e)]})}),s=e.call(n,f,l);c=ao.permute(c,s),f=ao.permute(f,s);var h,p,g,v,d=r.call(n,f,l),y=c[0].length;for(g=0;y>g;++g)for(i.call(n,c[0][g],v=d[g],f[0][g][1]),p=1;h>p;++p)i.call(n,c[p][g],v+=f[p-1][g][1],f[p][g][1]);return a}var t=m,e=gi,r=vi,i=pi,u=si,o=hi;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:_l.get(t)||gi,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:wl.get(t)||vi,n):r},n.x=function(t){return arguments.length?(u=t,n):u},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(i=t,n):i},n};var _l=ao.map({"inside-out":function(n){var t,e,r=n.length,i=n.map(di),u=n.map(yi),o=ao.range(r).sort(function(n,t){return i[n]-i[t]}),a=0,l=0,c=[],f=[];for(t=0;r>t;++t)e=o[t],l>a?(a+=u[e],c.push(e)):(l+=u[e],f.push(e));return f.reverse().concat(c)},reverse:function(n){return ao.range(n.length).reverse()},"default":gi}),wl=ao.map({silhouette:function(n){var t,e,r,i=n.length,u=n[0].length,o=[],a=0,l=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;u>e;++e)l[e]=(a-o[e])/2;return l},wiggle:function(n){var t,e,r,i,u,o,a,l,c,f=n.length,s=n[0],h=s.length,p=[];for(p[0]=l=c=0,e=1;h>e;++e){for(t=0,i=0;f>t;++t)i+=n[t][e][1];for(t=0,u=0,a=s[e][0]-s[e-1][0];f>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;u+=o*n[t][e][1]}p[e]=l-=i?u/i*a:0,c>l&&(c=l)}for(e=0;h>e;++e)p[e]-=c;return p},expand:function(n){var t,e,r,i=n.length,u=n[0].length,o=1/i,a=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];if(r)for(t=0;i>t;t++)n[t][e][1]/=r;else for(t=0;i>t;t++)n[t][e][1]=o}for(e=0;u>e;++e)a[e]=0;return a},zero:vi});ao.layout.histogram=function(){function n(n,u){for(var o,a,l=[],c=n.map(e,this),f=r.call(this,c,u),s=i.call(this,f,c,u),u=-1,h=c.length,p=s.length-1,g=t?1:1/h;++u<p;)o=l[u]=[],o.dx=s[u+1]-(o.x=s[u]),o.y=0;if(p>0)for(u=-1;++u<h;)a=c[u],a>=f[0]&&a<=f[1]&&(o=l[ao.bisect(s,a,1,p)-1],o.y+=g,o.push(n[u]));return l}var t=!0,e=Number,r=bi,i=Mi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=En(t),n):r},n.bins=function(t){return arguments.length?(i="number"==typeof t?function(n){return xi(n,t)}:En(t),n):i},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ao.layout.pack=function(){function n(n,u){var o=e.call(this,n,u),a=o[0],l=i[0],c=i[1],f=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,oi(a,function(n){n.r=+f(n.value)}),oi(a,Ni),r){var s=r*(t?1:Math.max(2*a.r/l,2*a.r/c))/2;oi(a,function(n){n.r+=s}),oi(a,Ni),oi(a,function(n){n.r-=s})}return Ci(a,l/2,c/2,t?1:1/Math.max(2*a.r/l,2*a.r/c)),o}var t,e=ao.layout.hierarchy().sort(_i),r=0,i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},ii(n,e)},ao.layout.tree=function(){function n(n,i){var f=o.call(this,n,i),s=f[0],h=t(s);if(oi(h,e),h.parent.m=-h.z,ui(h,r),c)ui(s,u);else{var p=s,g=s,v=s;ui(s,function(n){n.x<p.x&&(p=n),n.x>g.x&&(g=n),n.depth>v.depth&&(v=n)});var d=a(p,g)/2-p.x,y=l[0]/(g.x+a(g,p)/2+d),m=l[1]/(v.depth||1);ui(s,function(n){n.x=(n.x+d)*y,n.y=n.depth*m})}return f}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var i,u=t.children,o=0,a=u.length;a>o;++o)r.push((u[o]=i={_:u[o],parent:t,children:(i=u[o].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=i);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Di(n);var u=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-u):n.z=u}else r&&(n.z=r.z+a(n._,r._));n.parent.A=i(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function i(n,t,e){if(t){for(var r,i=n,u=n,o=t,l=i.parent.children[0],c=i.m,f=u.m,s=o.m,h=l.m;o=Ti(o),i=qi(i),o&&i;)l=qi(l),u=Ti(u),u.a=n,r=o.z+s-i.z-c+a(o._,i._),r>0&&(Ri(Pi(o,n,e),n,r),c+=r,f+=r),s+=o.m,c+=i.m,h+=l.m,f+=u.m;o&&!Ti(u)&&(u.t=o,u.m+=s-f),i&&!qi(l)&&(l.t=i,l.m+=c-h,e=n)}return e}function u(n){n.x*=l[0],n.y=n.depth*l[1]}var o=ao.layout.hierarchy().sort(null).value(null),a=Li,l=[1,1],c=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(c=null==(l=t)?u:null,n):c?null:l},n.nodeSize=function(t){return arguments.length?(c=null==(l=t)?null:u,n):c?l:null},ii(n,o)},ao.layout.cluster=function(){function n(n,u){var o,a=t.call(this,n,u),l=a[0],c=0;oi(l,function(n){var t=n.children;t&&t.length?(n.x=ji(t),n.y=Ui(t)):(n.x=o?c+=e(n,o):0,n.y=0,o=n)});var f=Fi(l),s=Hi(l),h=f.x-e(f,s)/2,p=s.x+e(s,f)/2;return oi(l,i?function(n){n.x=(n.x-l.x)*r[0],n.y=(l.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(p-h)*r[0],n.y=(1-(l.y?n.y/l.y:1))*r[1]}),a}var t=ao.layout.hierarchy().sort(null).value(null),e=Li,r=[1,1],i=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(i=null==(r=t),n):i?null:r},n.nodeSize=function(t){return arguments.length?(i=null!=(r=t),n):i?r:null},ii(n,t)},ao.layout.treemap=function(){function n(n,t){for(var e,r,i=-1,u=n.length;++i<u;)r=(e=n[i]).value*(0>t?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var u=e.children;if(u&&u.length){var o,a,l,c=s(e),f=[],h=u.slice(),g=1/0,v="slice"===p?c.dx:"dice"===p?c.dy:"slice-dice"===p?1&e.depth?c.dy:c.dx:Math.min(c.dx,c.dy);for(n(h,c.dx*c.dy/e.value),f.area=0;(l=h.length)>0;)f.push(o=h[l-1]),f.area+=o.area,"squarify"!==p||(a=r(f,v))<=g?(h.pop(),g=a):(f.area-=f.pop().area,i(f,v,c,!1),v=Math.min(c.dx,c.dy),f.length=f.area=0,g=1/0);f.length&&(i(f,v,c,!0),f.length=f.area=0),u.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var u,o=s(t),a=r.slice(),l=[];for(n(a,o.dx*o.dy/t.value),l.area=0;u=a.pop();)l.push(u),l.area+=u.area,null!=u.z&&(i(l,u.z?o.dx:o.dy,o,!a.length),l.length=l.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,i=0,u=1/0,o=-1,a=n.length;++o<a;)(e=n[o].area)&&(u>e&&(u=e),e>i&&(i=e));return r*=r,t*=t,r?Math.max(t*i*g/r,r/(t*u*g)):1/0}function i(n,t,e,r){var i,u=-1,o=n.length,a=e.x,c=e.y,f=t?l(n.area/t):0; +if(t==e.dx){for((r||f>e.dy)&&(f=e.dy);++u<o;)i=n[u],i.x=a,i.y=c,i.dy=f,a+=i.dx=Math.min(e.x+e.dx-a,f?l(i.area/f):0);i.z=!0,i.dx+=e.x+e.dx-a,e.y+=f,e.dy-=f}else{for((r||f>e.dx)&&(f=e.dx);++u<o;)i=n[u],i.x=a,i.y=c,i.dx=f,c+=i.dy=Math.min(e.y+e.dy-c,f?l(i.area/f):0);i.z=!1,i.dy+=e.y+e.dy-c,e.x+=f,e.dx-=f}}function u(r){var i=o||a(r),u=i[0];return u.x=u.y=0,u.value?(u.dx=c[0],u.dy=c[1]):u.dx=u.dy=0,o&&a.revalue(u),n([u],u.dx*u.dy/u.value),(o?e:t)(u),h&&(o=i),i}var o,a=ao.layout.hierarchy(),l=Math.round,c=[1,1],f=null,s=Oi,h=!1,p="squarify",g=.5*(1+Math.sqrt(5));return u.size=function(n){return arguments.length?(c=n,u):c},u.padding=function(n){function t(t){var e=n.call(u,t,t.depth);return null==e?Oi(t):Ii(t,"number"==typeof e?[e,e,e,e]:e)}function e(t){return Ii(t,n)}if(!arguments.length)return f;var r;return s=null==(f=n)?Oi:"function"==(r=typeof n)?t:"number"===r?(n=[n,n,n,n],e):e,u},u.round=function(n){return arguments.length?(l=n?Math.round:Number,u):l!=Number},u.sticky=function(n){return arguments.length?(h=n,o=null,u):h},u.ratio=function(n){return arguments.length?(g=n,u):g},u.mode=function(n){return arguments.length?(p=n+"",u):p},ii(u,a)},ao.random={normal:function(n,t){var e=arguments.length;return 2>e&&(t=1),1>e&&(n=0),function(){var e,r,i;do e=2*Math.random()-1,r=2*Math.random()-1,i=e*e+r*r;while(!i||i>1);return n+t*e*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var n=ao.random.normal.apply(ao,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ao.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ao.scale={};var Sl={floor:m,ceil:m};ao.scale.linear=function(){return Wi([0,1],[0,1],Mr,!1)};var kl={s:1,g:1,p:1,r:1,e:1};ao.scale.log=function(){return ru(ao.scale.linear().domain([0,1]),10,!0,[1,10])};var Nl=ao.format(".0e"),El={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ao.scale.pow=function(){return iu(ao.scale.linear(),1,[0,1])},ao.scale.sqrt=function(){return ao.scale.pow().exponent(.5)},ao.scale.ordinal=function(){return ou([],{t:"range",a:[[]]})},ao.scale.category10=function(){return ao.scale.ordinal().range(Al)},ao.scale.category20=function(){return ao.scale.ordinal().range(Cl)},ao.scale.category20b=function(){return ao.scale.ordinal().range(zl)},ao.scale.category20c=function(){return ao.scale.ordinal().range(Ll)};var Al=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(xn),Cl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(xn),zl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(xn),Ll=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(xn);ao.scale.quantile=function(){return au([],[])},ao.scale.quantize=function(){return lu(0,1,[0,1])},ao.scale.threshold=function(){return cu([.5],[0,1])},ao.scale.identity=function(){return fu([0,1])},ao.svg={},ao.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),c=Math.max(0,+r.apply(this,arguments)),f=o.apply(this,arguments)-Io,s=a.apply(this,arguments)-Io,h=Math.abs(s-f),p=f>s?0:1;if(n>c&&(g=c,c=n,n=g),h>=Oo)return t(c,p)+(n?t(n,1-p):"")+"Z";var g,v,d,y,m,M,x,b,_,w,S,k,N=0,E=0,A=[];if((y=(+l.apply(this,arguments)||0)/2)&&(d=u===ql?Math.sqrt(n*n+c*c):+u.apply(this,arguments),p||(E*=-1),c&&(E=tn(d/c*Math.sin(y))),n&&(N=tn(d/n*Math.sin(y)))),c){m=c*Math.cos(f+E),M=c*Math.sin(f+E),x=c*Math.cos(s-E),b=c*Math.sin(s-E);var C=Math.abs(s-f-2*E)<=Fo?0:1;if(E&&yu(m,M,x,b)===p^C){var z=(f+s)/2;m=c*Math.cos(z),M=c*Math.sin(z),x=b=null}}else m=M=0;if(n){_=n*Math.cos(s-N),w=n*Math.sin(s-N),S=n*Math.cos(f+N),k=n*Math.sin(f+N);var L=Math.abs(f-s+2*N)<=Fo?0:1;if(N&&yu(_,w,S,k)===1-p^L){var q=(f+s)/2;_=n*Math.cos(q),w=n*Math.sin(q),S=k=null}}else _=w=0;if(h>Uo&&(g=Math.min(Math.abs(c-n)/2,+i.apply(this,arguments)))>.001){v=c>n^p?0:1;var T=g,R=g;if(Fo>h){var D=null==S?[_,w]:null==x?[m,M]:Re([m,M],[S,k],[x,b],[_,w]),P=m-D[0],U=M-D[1],j=x-D[0],F=b-D[1],H=1/Math.sin(Math.acos((P*j+U*F)/(Math.sqrt(P*P+U*U)*Math.sqrt(j*j+F*F)))/2),O=Math.sqrt(D[0]*D[0]+D[1]*D[1]);R=Math.min(g,(n-O)/(H-1)),T=Math.min(g,(c-O)/(H+1))}if(null!=x){var I=mu(null==S?[_,w]:[S,k],[m,M],c,T,p),Y=mu([x,b],[_,w],c,T,p);g===T?A.push("M",I[0],"A",T,",",T," 0 0,",v," ",I[1],"A",c,",",c," 0 ",1-p^yu(I[1][0],I[1][1],Y[1][0],Y[1][1]),",",p," ",Y[1],"A",T,",",T," 0 0,",v," ",Y[0]):A.push("M",I[0],"A",T,",",T," 0 1,",v," ",Y[0])}else A.push("M",m,",",M);if(null!=S){var Z=mu([m,M],[S,k],n,-R,p),V=mu([_,w],null==x?[m,M]:[x,b],n,-R,p);g===R?A.push("L",V[0],"A",R,",",R," 0 0,",v," ",V[1],"A",n,",",n," 0 ",p^yu(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-p," ",Z[1],"A",R,",",R," 0 0,",v," ",Z[0]):A.push("L",V[0],"A",R,",",R," 0 0,",v," ",Z[0])}else A.push("L",_,",",w)}else A.push("M",m,",",M),null!=x&&A.push("A",c,",",c," 0 ",C,",",p," ",x,",",b),A.push("L",_,",",w),null!=S&&A.push("A",n,",",n," 0 ",L,",",1-p," ",S,",",k);return A.push("Z"),A.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=hu,r=pu,i=su,u=ql,o=gu,a=vu,l=du;return n.innerRadius=function(t){return arguments.length?(e=En(t),n):e},n.outerRadius=function(t){return arguments.length?(r=En(t),n):r},n.cornerRadius=function(t){return arguments.length?(i=En(t),n):i},n.padRadius=function(t){return arguments.length?(u=t==ql?ql:En(t),n):u},n.startAngle=function(t){return arguments.length?(o=En(t),n):o},n.endAngle=function(t){return arguments.length?(a=En(t),n):a},n.padAngle=function(t){return arguments.length?(l=En(t),n):l},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Io;return[Math.cos(t)*n,Math.sin(t)*n]},n};var ql="auto";ao.svg.line=function(){return Mu(m)};var Tl=ao.map({linear:xu,"linear-closed":bu,step:_u,"step-before":wu,"step-after":Su,basis:zu,"basis-open":Lu,"basis-closed":qu,bundle:Tu,cardinal:Eu,"cardinal-open":ku,"cardinal-closed":Nu,monotone:Fu});Tl.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Rl=[0,2/3,1/3,0],Dl=[0,1/3,2/3,0],Pl=[0,1/6,2/3,1/6];ao.svg.line.radial=function(){var n=Mu(Hu);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},wu.reverse=Su,Su.reverse=wu,ao.svg.area=function(){return Ou(m)},ao.svg.area.radial=function(){var n=Ou(Hu);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ao.svg.chord=function(){function n(n,a){var l=t(this,u,n,a),c=t(this,o,n,a);return"M"+l.p0+r(l.r,l.p1,l.a1-l.a0)+(e(l,c)?i(l.r,l.p1,l.r,l.p0):i(l.r,l.p1,c.r,c.p0)+r(c.r,c.p1,c.a1-c.a0)+i(c.r,c.p1,l.r,l.p0))+"Z"}function t(n,t,e,r){var i=t.call(n,e,r),u=a.call(n,i,r),o=l.call(n,i,r)-Io,f=c.call(n,i,r)-Io;return{r:u,a0:o,a1:f,p0:[u*Math.cos(o),u*Math.sin(o)],p1:[u*Math.cos(f),u*Math.sin(f)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Fo)+",1 "+t}function i(n,t,e,r){return"Q 0,0 "+r}var u=Me,o=xe,a=Iu,l=gu,c=vu;return n.radius=function(t){return arguments.length?(a=En(t),n):a},n.source=function(t){return arguments.length?(u=En(t),n):u},n.target=function(t){return arguments.length?(o=En(t),n):o},n.startAngle=function(t){return arguments.length?(l=En(t),n):l},n.endAngle=function(t){return arguments.length?(c=En(t),n):c},n},ao.svg.diagonal=function(){function n(n,i){var u=t.call(this,n,i),o=e.call(this,n,i),a=(u.y+o.y)/2,l=[u,{x:u.x,y:a},{x:o.x,y:a},o];return l=l.map(r),"M"+l[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=Me,e=xe,r=Yu;return n.source=function(e){return arguments.length?(t=En(e),n):t},n.target=function(t){return arguments.length?(e=En(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ao.svg.diagonal.radial=function(){var n=ao.svg.diagonal(),t=Yu,e=n.projection;return n.projection=function(n){return arguments.length?e(Zu(t=n)):t},n},ao.svg.symbol=function(){function n(n,r){return(Ul.get(t.call(this,n,r))||$u)(e.call(this,n,r))}var t=Xu,e=Vu;return n.type=function(e){return arguments.length?(t=En(e),n):t},n.size=function(t){return arguments.length?(e=En(t),n):e},n};var Ul=ao.map({circle:$u,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Fl)),e=t*Fl;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ao.svg.symbolTypes=Ul.keys();var jl=Math.sqrt(3),Fl=Math.tan(30*Yo);Co.transition=function(n){for(var t,e,r=Hl||++Zl,i=Ku(n),u=[],o=Ol||{time:Date.now(),ease:Nr,delay:0,duration:250},a=-1,l=this.length;++a<l;){u.push(t=[]);for(var c=this[a],f=-1,s=c.length;++f<s;)(e=c[f])&&Qu(e,f,i,r,o),t.push(e)}return Wu(u,i,r)},Co.interrupt=function(n){return this.each(null==n?Il:Bu(Ku(n)))};var Hl,Ol,Il=Bu(Ku()),Yl=[],Zl=0;Yl.call=Co.call,Yl.empty=Co.empty,Yl.node=Co.node,Yl.size=Co.size,ao.transition=function(n,t){return n&&n.transition?Hl?n.transition(t):n:ao.selection().transition(n)},ao.transition.prototype=Yl,Yl.select=function(n){var t,e,r,i=this.id,u=this.namespace,o=[];n=A(n);for(var a=-1,l=this.length;++a<l;){o.push(t=[]);for(var c=this[a],f=-1,s=c.length;++f<s;)(r=c[f])&&(e=n.call(r,r.__data__,f,a))?("__data__"in r&&(e.__data__=r.__data__),Qu(e,f,u,i,r[u][i]),t.push(e)):t.push(null)}return Wu(o,u,i)},Yl.selectAll=function(n){var t,e,r,i,u,o=this.id,a=this.namespace,l=[];n=C(n);for(var c=-1,f=this.length;++c<f;)for(var s=this[c],h=-1,p=s.length;++h<p;)if(r=s[h]){u=r[a][o],e=n.call(r,r.__data__,h,c),l.push(t=[]);for(var g=-1,v=e.length;++g<v;)(i=e[g])&&Qu(i,g,a,o,u),t.push(i)}return Wu(l,a,o)},Yl.filter=function(n){var t,e,r,i=[];"function"!=typeof n&&(n=O(n));for(var u=0,o=this.length;o>u;u++){i.push(t=[]);for(var e=this[u],a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return Wu(i,this.namespace,this.id)},Yl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(i){i[r][e].tween.set(n,t)})},Yl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function i(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function u(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?$r:Mr,a=ao.ns.qualify(n);return Ju(this,"attr."+n,t,a.local?u:i)},Yl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(i));return r&&function(n){this.setAttribute(i,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(i.space,i.local));return r&&function(n){this.setAttributeNS(i.space,i.local,r(n))}}var i=ao.ns.qualify(n);return this.tween("attr."+n,i.local?r:e)},Yl.style=function(n,e,r){function i(){this.style.removeProperty(n)}function u(e){return null==e?i:(e+="",function(){var i,u=t(this).getComputedStyle(this,null).getPropertyValue(n);return u!==e&&(i=Mr(u,e),function(t){this.style.setProperty(n,i(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Ju(this,"style."+n,e,u)},Yl.styleTween=function(n,e,r){function i(i,u){var o=e.call(this,i,u,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,i)},Yl.text=function(n){return Ju(this,"text",n,Gu)},Yl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Yl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ao.ease.apply(ao,arguments)),Y(this,function(r){r[e][t].ease=n}))},Yl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,i,u){r[e][t].delay=+n.call(r,r.__data__,i,u)}:(n=+n,function(r){r[e][t].delay=n}))},Yl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,i,u){r[e][t].duration=Math.max(1,n.call(r,r.__data__,i,u))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Yl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var i=Ol,u=Hl;try{Hl=e,Y(this,function(t,i,u){Ol=t[r][e],n.call(t,t.__data__,i,u)})}finally{Ol=i,Hl=u}}else Y(this,function(i){var u=i[r][e];(u.event||(u.event=ao.dispatch("start","end","interrupt"))).on(n,t)});return this},Yl.transition=function(){for(var n,t,e,r,i=this.id,u=++Zl,o=this.namespace,a=[],l=0,c=this.length;c>l;l++){a.push(n=[]);for(var t=this[l],f=0,s=t.length;s>f;f++)(e=t[f])&&(r=e[o][i],Qu(e,f,o,u,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Wu(a,o,u)},ao.svg.axis=function(){function n(n){n.each(function(){var n,c=ao.select(this),f=this.__chart__||e,s=this.__chart__=e.copy(),h=null==l?s.ticks?s.ticks.apply(s,a):s.domain():l,p=null==t?s.tickFormat?s.tickFormat.apply(s,a):m:t,g=c.selectAll(".tick").data(h,s),v=g.enter().insert("g",".domain").attr("class","tick").style("opacity",Uo),d=ao.transition(g.exit()).style("opacity",Uo).remove(),y=ao.transition(g.order()).style("opacity",1),M=Math.max(i,0)+o,x=Zi(s),b=c.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ao.transition(b));v.append("line"),v.append("text");var w,S,k,N,E=v.select("line"),A=y.select("line"),C=g.select("text").text(p),z=v.select("text"),L=y.select("text"),q="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=no,w="x",k="y",S="x2",N="y2",C.attr("dy",0>q?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+q*u+"V0H"+x[1]+"V"+q*u)):(n=to,w="y",k="x",S="y2",N="x2",C.attr("dy",".32em").style("text-anchor",0>q?"end":"start"),_.attr("d","M"+q*u+","+x[0]+"H0V"+x[1]+"H"+q*u)),E.attr(N,q*i),z.attr(k,q*M),A.attr(S,0).attr(N,q*i),L.attr(w,0).attr(k,q*M),s.rangeBand){var T=s,R=T.rangeBand()/2;f=s=function(n){return T(n)+R}}else f.rangeBand?f=s:d.call(n,s,f);v.call(n,f,s),y.call(n,s,s)})}var t,e=ao.scale.linear(),r=Vl,i=6,u=6,o=3,a=[10],l=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Xl?t+"":Vl,n):r},n.ticks=function(){return arguments.length?(a=co(arguments),n):a},n.tickValues=function(t){return arguments.length?(l=t,n):l},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(i=+t,u=+arguments[e-1],n):i},n.innerTickSize=function(t){return arguments.length?(i=+t,n):i},n.outerTickSize=function(t){return arguments.length?(u=+t,n):u},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Vl="bottom",Xl={top:1,right:1,bottom:1,left:1};ao.svg.brush=function(){function n(t){t.each(function(){var t=ao.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,m);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return $l[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,s=ao.transition(t),h=ao.transition(o);c&&(l=Zi(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),r(s)),f&&(l=Zi(f),h.attr("y",l[0]).attr("height",l[1]-l[0]),i(s)),e(s)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function i(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){32==ao.event.keyCode&&(C||(M=null,L[0]-=s[1],L[1]-=h[1],C=2),S())}function v(){32==ao.event.keyCode&&2==C&&(L[0]+=s[1],L[1]+=h[1],C=0,S())}function d(){var n=ao.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ao.event.altKey?(M||(M=[(s[0]+s[1])/2,(h[0]+h[1])/2]),L[0]=s[+(n[0]<M[0])],L[1]=h[+(n[1]<M[1])]):M=null),E&&y(n,c,0)&&(r(k),t=!0),A&&y(n,f,1)&&(i(k),t=!0),t&&(e(k),w({type:"brush",mode:C?"move":"resize"}))}function y(n,t,e){var r,i,u=Zi(t),l=u[0],c=u[1],f=L[e],v=e?h:s,d=v[1]-v[0];return C&&(l-=f,c-=d+f),r=(e?g:p)?Math.max(l,Math.min(c,n[e])):n[e],C?i=(r+=f)+d:(M&&(f=Math.max(l,Math.min(c,2*M[e]-r))),r>f?(i=r,r=f):i=f),v[0]!=r||v[1]!=i?(e?a=null:o=null,v[0]=r,v[1]=i,!0):void 0}function m(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ao.select("body").style("cursor",null),q.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ao.select(ao.event.target),w=l.of(b,arguments),k=ao.select(b),N=_.datum(),E=!/^(n|s)$/.test(N)&&c,A=!/^(e|w)$/.test(N)&&f,C=_.classed("extent"),z=W(b),L=ao.mouse(b),q=ao.select(t(b)).on("keydown.brush",u).on("keyup.brush",v);if(ao.event.changedTouches?q.on("touchmove.brush",d).on("touchend.brush",m):q.on("mousemove.brush",d).on("mouseup.brush",m),k.interrupt().selectAll("*").interrupt(),C)L[0]=s[0]-L[0],L[1]=h[0]-L[1];else if(N){var T=+/w$/.test(N),R=+/^n/.test(N);x=[s[1-T]-L[0],h[1-R]-L[1]],L[0]=s[T],L[1]=h[R]}else ao.event.altKey&&(M=L.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ao.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,l=N(n,"brushstart","brush","brushend"),c=null,f=null,s=[0,0],h=[0,0],p=!0,g=!0,v=Bl[0];return n.event=function(n){n.each(function(){var n=l.of(this,arguments),t={x:s,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Hl?ao.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,s=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=xr(s,t.x),r=xr(h,t.y);return o=a=null,function(i){s=t.x=e(i),h=t.y=r(i),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,v=Bl[!c<<1|!f],n):c},n.y=function(t){return arguments.length?(f=t,v=Bl[!c<<1|!f],n):f},n.clamp=function(t){return arguments.length?(c&&f?(p=!!t[0],g=!!t[1]):c?p=!!t:f&&(g=!!t),n):c&&f?[p,g]:c?p:f?g:null},n.extent=function(t){var e,r,i,u,l;return arguments.length?(c&&(e=t[0],r=t[1],f&&(e=e[0],r=r[0]),o=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(l=e,e=r,r=l),e==s[0]&&r==s[1]||(s=[e,r])),f&&(i=t[0],u=t[1],c&&(i=i[1],u=u[1]),a=[i,u],f.invert&&(i=f(i),u=f(u)),i>u&&(l=i,i=u,u=l),i==h[0]&&u==h[1]||(h=[i,u])),n):(c&&(o?(e=o[0],r=o[1]):(e=s[0],r=s[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(l=e,e=r,r=l))),f&&(a?(i=a[0],u=a[1]):(i=h[0],u=h[1],f.invert&&(i=f.invert(i),u=f.invert(u)),i>u&&(l=i,i=u,u=l))),c&&f?[[e,i],[r,u]]:c?[e,r]:f&&[i,u])},n.clear=function(){return n.empty()||(s=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!f&&h[0]==h[1]},ao.rebind(n,l,"on")};var $l={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Bl=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Wl=ga.format=xa.timeFormat,Jl=Wl.utc,Gl=Jl("%Y-%m-%dT%H:%M:%S.%LZ");Wl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?eo:Gl,eo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},eo.toString=Gl.toString,ga.second=On(function(n){return new va(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ga.seconds=ga.second.range,ga.seconds.utc=ga.second.utc.range,ga.minute=On(function(n){return new va(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ga.minutes=ga.minute.range,ga.minutes.utc=ga.minute.utc.range,ga.hour=On(function(n){var t=n.getTimezoneOffset()/60;return new va(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ga.hours=ga.hour.range,ga.hours.utc=ga.hour.utc.range,ga.month=On(function(n){return n=ga.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ga.months=ga.month.range,ga.months.utc=ga.month.utc.range;var Kl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ql=[[ga.second,1],[ga.second,5],[ga.second,15],[ga.second,30],[ga.minute,1],[ga.minute,5],[ga.minute,15],[ga.minute,30],[ga.hour,1],[ga.hour,3],[ga.hour,6],[ga.hour,12],[ga.day,1],[ga.day,2],[ga.week,1],[ga.month,1],[ga.month,3],[ga.year,1]],nc=Wl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",zt]]),tc={range:function(n,t,e){return ao.range(Math.ceil(n/e)*e,+t,e).map(io)},floor:m,ceil:m};Ql.year=ga.year,ga.scale=function(){return ro(ao.scale.linear(),Ql,nc)};var ec=Ql.map(function(n){return[n[0].utc,n[1]]}),rc=Jl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",zt]]);ec.year=ga.year.utc,ga.scale.utc=function(){return ro(ao.scale.linear(),ec,rc)},ao.text=An(function(n){return n.responseText}),ao.json=function(n,t){return Cn(n,"application/json",uo,t)},ao.html=function(n,t){return Cn(n,"text/html",oo,t)},ao.xml=An(function(n){return n.responseXML}),"function"==typeof define&&define.amd?(this.d3=ao,define(ao)):"object"==typeof module&&module.exports?module.exports=ao:this.d3=ao}(); \ No newline at end of file diff --git a/test/coverage/_js/file.js b/test/coverage/_js/file.js new file mode 100644 index 0000000..29cacd4 --- /dev/null +++ b/test/coverage/_js/file.js @@ -0,0 +1,62 @@ + $(function() { + var $window = $(window) + , $top_link = $('#toplink') + , $body = $('body, html') + , offset = $('#code').offset().top + , hidePopover = function ($target) { + $target.data('popover-hover', false); + + setTimeout(function () { + if (!$target.data('popover-hover')) { + $target.popover('hide'); + } + }, 300); + }; + + $top_link.hide().click(function(event) { + event.preventDefault(); + $body.animate({scrollTop:0}, 800); + }); + + $window.scroll(function() { + if($window.scrollTop() > offset) { + $top_link.fadeIn(); + } else { + $top_link.fadeOut(); + } + }).scroll(); + + $('.popin') + .popover({trigger: 'manual'}) + .on({ + 'mouseenter.popover': function () { + var $target = $(this); + var $container = $target.children().first(); + + $target.data('popover-hover', true); + + // popover already displayed + if ($target.next('.popover').length) { + return; + } + + // show the popover + $container.popover('show'); + + // register mouse events on the popover + $target.next('.popover:not(.popover-initialized)') + .on({ + 'mouseenter': function () { + $target.data('popover-hover', true); + }, + 'mouseleave': function () { + hidePopover($container); + } + }) + .addClass('popover-initialized'); + }, + 'mouseleave.popover': function () { + hidePopover($(this).children().first()); + } + }); + }); diff --git a/test/coverage/_js/jquery.min.js b/test/coverage/_js/jquery.min.js new file mode 100644 index 0000000..a1c07fd --- /dev/null +++ b/test/coverage/_js/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k}); diff --git a/test/coverage/_js/nv.d3.min.js b/test/coverage/_js/nv.d3.min.js new file mode 100644 index 0000000..801e721 --- /dev/null +++ b/test/coverage/_js/nv.d3.min.js @@ -0,0 +1,8 @@ +/* nvd3 version 1.8.1 (https://github.com/novus/nvd3) 2015-06-15 */ +!function(){var a={};a.dev=!1,a.tooltip=a.tooltip||{},a.utils=a.utils||{},a.models=a.models||{},a.charts={},a.logs={},a.dom={},a.dispatch=d3.dispatch("render_start","render_end"),Function.prototype.bind||(Function.prototype.bind=function(a){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var b=Array.prototype.slice.call(arguments,1),c=this,d=function(){},e=function(){return c.apply(this instanceof d&&a?this:a,b.concat(Array.prototype.slice.call(arguments)))};return d.prototype=this.prototype,e.prototype=new d,e}),a.dev&&(a.dispatch.on("render_start",function(){a.logs.startTime=+new Date}),a.dispatch.on("render_end",function(){a.logs.endTime=+new Date,a.logs.totalTime=a.logs.endTime-a.logs.startTime,a.log("total",a.logs.totalTime)})),a.log=function(){if(a.dev&&window.console&&console.log&&console.log.apply)console.log.apply(console,arguments);else if(a.dev&&window.console&&"function"==typeof console.log&&Function.prototype.bind){var b=Function.prototype.bind.call(console.log,console);b.apply(console,arguments)}return arguments[arguments.length-1]},a.deprecated=function(a,b){console&&console.warn&&console.warn("nvd3 warning: `"+a+"` has been deprecated. ",b||"")},a.render=function(b){b=b||1,a.render.active=!0,a.dispatch.render_start();var c=function(){for(var d,e,f=0;b>f&&(e=a.render.queue[f]);f++)d=e.generate(),typeof e.callback==typeof Function&&e.callback(d);a.render.queue.splice(0,f),a.render.queue.length?setTimeout(c):(a.dispatch.render_end(),a.render.active=!1)};setTimeout(c)},a.render.active=!1,a.render.queue=[],a.addGraph=function(b){typeof arguments[0]==typeof Function&&(b={generate:arguments[0],callback:arguments[1]}),a.render.queue.push(b),a.render.active||a.render()},"undefined"!=typeof module&&"undefined"!=typeof exports&&(module.exports=a),"undefined"!=typeof window&&(window.nv=a),a.dom.write=function(a){return void 0!==window.fastdom?fastdom.write(a):a()},a.dom.read=function(a){return void 0!==window.fastdom?fastdom.read(a):a()},a.interactiveGuideline=function(){"use strict";function b(l){l.each(function(l){function m(){var a=d3.mouse(this),d=a[0],e=a[1],i=!0,j=!1;if(k&&(d=d3.event.offsetX,e=d3.event.offsetY,"svg"!==d3.event.target.tagName&&(i=!1),d3.event.target.className.baseVal.match("nv-legend")&&(j=!0)),i&&(d-=f.left,e-=f.top),0>d||0>e||d>o||e>p||d3.event.relatedTarget&&void 0===d3.event.relatedTarget.ownerSVGElement||j){if(k&&d3.event.relatedTarget&&void 0===d3.event.relatedTarget.ownerSVGElement&&(void 0===d3.event.relatedTarget.className||d3.event.relatedTarget.className.match(c.nvPointerEventsClass)))return;return h.elementMouseout({mouseX:d,mouseY:e}),b.renderGuideLine(null),void c.hidden(!0)}c.hidden(!1);var l=g.invert(d);h.elementMousemove({mouseX:d,mouseY:e,pointXValue:l}),"dblclick"===d3.event.type&&h.elementDblclick({mouseX:d,mouseY:e,pointXValue:l}),"click"===d3.event.type&&h.elementClick({mouseX:d,mouseY:e,pointXValue:l})}var n=d3.select(this),o=d||960,p=e||400,q=n.selectAll("g.nv-wrap.nv-interactiveLineLayer").data([l]),r=q.enter().append("g").attr("class"," nv-wrap nv-interactiveLineLayer");r.append("g").attr("class","nv-interactiveGuideLine"),j&&(j.on("touchmove",m).on("mousemove",m,!0).on("mouseout",m,!0).on("dblclick",m).on("click",m),b.guideLine=null,b.renderGuideLine=function(c){i&&(b.guideLine&&b.guideLine.attr("x1")===c||a.dom.write(function(){var b=q.select(".nv-interactiveGuideLine").selectAll("line").data(null!=c?[a.utils.NaNtoZero(c)]:[],String);b.enter().append("line").attr("class","nv-guideline").attr("x1",function(a){return a}).attr("x2",function(a){return a}).attr("y1",p).attr("y2",0),b.exit().remove()}))})})}var c=a.models.tooltip();c.duration(0).hideDelay(0)._isInteractiveLayer(!0).hidden(!1);var d=null,e=null,f={left:0,top:0},g=d3.scale.linear(),h=d3.dispatch("elementMousemove","elementMouseout","elementClick","elementDblclick"),i=!0,j=null,k="ActiveXObject"in window;return b.dispatch=h,b.tooltip=c,b.margin=function(a){return arguments.length?(f.top="undefined"!=typeof a.top?a.top:f.top,f.left="undefined"!=typeof a.left?a.left:f.left,b):f},b.width=function(a){return arguments.length?(d=a,b):d},b.height=function(a){return arguments.length?(e=a,b):e},b.xScale=function(a){return arguments.length?(g=a,b):g},b.showGuideLine=function(a){return arguments.length?(i=a,b):i},b.svgContainer=function(a){return arguments.length?(j=a,b):j},b},a.interactiveBisect=function(a,b,c){"use strict";if(!(a instanceof Array))return null;var d;d="function"!=typeof c?function(a){return a.x}:c;var e=function(a,b){return d(a)-b},f=d3.bisector(e).left,g=d3.max([0,f(a,b)-1]),h=d(a[g]);if("undefined"==typeof h&&(h=g),h===b)return g;var i=d3.min([g+1,a.length-1]),j=d(a[i]);return"undefined"==typeof j&&(j=i),Math.abs(j-b)>=Math.abs(h-b)?g:i},a.nearestValueIndex=function(a,b,c){"use strict";var d=1/0,e=null;return a.forEach(function(a,f){var g=Math.abs(b-a);null!=a&&d>=g&&c>g&&(d=g,e=f)}),e},function(){"use strict";a.models.tooltip=function(){function b(){if(k){var a=d3.select(k);"svg"!==a.node().tagName&&(a=a.select("svg"));var b=a.node()?a.attr("viewBox"):null;if(b){b=b.split(" ");var c=parseInt(a.style("width"),10)/b[2];p.left=p.left*c,p.top=p.top*c}}}function c(){if(!n){var a;a=k?k:document.body,n=d3.select(a).append("div").attr("class","nvtooltip "+(j?j:"xy-tooltip")).attr("id",v),n.style("top",0).style("left",0),n.style("opacity",0),n.selectAll("div, table, td, tr").classed(w,!0),n.classed(w,!0),o=n.node()}}function d(){if(r&&B(e)){b();var f=p.left,g=null!==i?i:p.top;return a.dom.write(function(){c();var b=A(e);b&&(o.innerHTML=b),k&&u?a.dom.read(function(){var a=k.getElementsByTagName("svg")[0],b={left:0,top:0};if(a){var c=a.getBoundingClientRect(),d=k.getBoundingClientRect(),e=c.top;if(0>e){var i=k.getBoundingClientRect();e=Math.abs(e)>i.height?0:e}b.top=Math.abs(e-d.top),b.left=Math.abs(c.left-d.left)}f+=k.offsetLeft+b.left-2*k.scrollLeft,g+=k.offsetTop+b.top-2*k.scrollTop,h&&h>0&&(g=Math.floor(g/h)*h),C([f,g])}):C([f,g])}),d}}var e=null,f="w",g=25,h=0,i=null,j=null,k=null,l=!0,m=400,n=null,o=null,p={left:null,top:null},q={left:0,top:0},r=!0,s=100,t=!0,u=!1,v="nvtooltip-"+Math.floor(1e5*Math.random()),w="nv-pointer-events-none",x=function(a){return a},y=function(a){return a},z=function(a){return a},A=function(a){if(null===a)return"";var b=d3.select(document.createElement("table"));if(t){var c=b.selectAll("thead").data([a]).enter().append("thead");c.append("tr").append("td").attr("colspan",3).append("strong").classed("x-value",!0).html(y(a.value))}var d=b.selectAll("tbody").data([a]).enter().append("tbody"),e=d.selectAll("tr").data(function(a){return a.series}).enter().append("tr").classed("highlight",function(a){return a.highlight});e.append("td").classed("legend-color-guide",!0).append("div").style("background-color",function(a){return a.color}),e.append("td").classed("key",!0).html(function(a,b){return z(a.key,b)}),e.append("td").classed("value",!0).html(function(a,b){return x(a.value,b)}),e.selectAll("td").each(function(a){if(a.highlight){var b=d3.scale.linear().domain([0,1]).range(["#fff",a.color]),c=.6;d3.select(this).style("border-bottom-color",b(c)).style("border-top-color",b(c))}});var f=b.node().outerHTML;return void 0!==a.footer&&(f+="<div class='footer'>"+a.footer+"</div>"),f},B=function(a){if(a&&a.series){if(a.series instanceof Array)return!!a.series.length;if(a.series instanceof Object)return a.series=[a.series],!0}return!1},C=function(b){o&&a.dom.read(function(){var c,d,e=parseInt(o.offsetHeight,10),h=parseInt(o.offsetWidth,10),i=a.utils.windowSize().width,j=a.utils.windowSize().height,k=window.pageYOffset,p=window.pageXOffset;j=window.innerWidth>=document.body.scrollWidth?j:j-16,i=window.innerHeight>=document.body.scrollHeight?i:i-16;var r,t,u=function(a){var b=d;do isNaN(a.offsetTop)||(b+=a.offsetTop),a=a.offsetParent;while(a);return b},v=function(a){var b=c;do isNaN(a.offsetLeft)||(b+=a.offsetLeft),a=a.offsetParent;while(a);return b};switch(f){case"e":c=b[0]-h-g,d=b[1]-e/2,r=v(o),t=u(o),p>r&&(c=b[0]+g>p?b[0]+g:p-r+c),k>t&&(d=k-t+d),t+e>k+j&&(d=k+j-t+d-e);break;case"w":c=b[0]+g,d=b[1]-e/2,r=v(o),t=u(o),r+h>i&&(c=b[0]-h-g),k>t&&(d=k+5),t+e>k+j&&(d=k+j-t+d-e);break;case"n":c=b[0]-h/2-5,d=b[1]+g,r=v(o),t=u(o),p>r&&(c=p+5),r+h>i&&(c=c-h/2+5),t+e>k+j&&(d=k+j-t+d-e);break;case"s":c=b[0]-h/2,d=b[1]-e-g,r=v(o),t=u(o),p>r&&(c=p+5),r+h>i&&(c=c-h/2+5),k>t&&(d=k);break;case"none":c=b[0],d=b[1]-g,r=v(o),t=u(o)}c-=q.left,d-=q.top;var w=o.getBoundingClientRect(),k=window.pageYOffset||document.documentElement.scrollTop,p=window.pageXOffset||document.documentElement.scrollLeft,x="translate("+(w.left+p)+"px, "+(w.top+k)+"px)",y="translate("+c+"px, "+d+"px)",z=d3.interpolateString(x,y),A=n.style("opacity")<.1;l?n.transition().delay(m).duration(0).style("opacity",0):n.interrupt().transition().duration(A?0:s).styleTween("transform",function(){return z},"important").style("-webkit-transform",y).style("opacity",1)})};return d.nvPointerEventsClass=w,d.options=a.utils.optionsFunc.bind(d),d._options=Object.create({},{duration:{get:function(){return s},set:function(a){s=a}},gravity:{get:function(){return f},set:function(a){f=a}},distance:{get:function(){return g},set:function(a){g=a}},snapDistance:{get:function(){return h},set:function(a){h=a}},classes:{get:function(){return j},set:function(a){j=a}},chartContainer:{get:function(){return k},set:function(a){k=a}},fixedTop:{get:function(){return i},set:function(a){i=a}},enabled:{get:function(){return r},set:function(a){r=a}},hideDelay:{get:function(){return m},set:function(a){m=a}},contentGenerator:{get:function(){return A},set:function(a){A=a}},valueFormatter:{get:function(){return x},set:function(a){x=a}},headerFormatter:{get:function(){return y},set:function(a){y=a}},keyFormatter:{get:function(){return z},set:function(a){z=a}},headerEnabled:{get:function(){return t},set:function(a){t=a}},_isInteractiveLayer:{get:function(){return u},set:function(a){u=!!a}},position:{get:function(){return p},set:function(a){p.left=void 0!==a.left?a.left:p.left,p.top=void 0!==a.top?a.top:p.top}},offset:{get:function(){return q},set:function(a){q.left=void 0!==a.left?a.left:q.left,q.top=void 0!==a.top?a.top:q.top}},hidden:{get:function(){return l},set:function(a){l!=a&&(l=!!a,d())}},data:{get:function(){return e},set:function(a){a.point&&(a.value=a.point.x,a.series=a.series||{},a.series.value=a.point.y,a.series.color=a.point.color||a.series.color),e=a}},tooltipElem:{get:function(){return o},set:function(){}},id:{get:function(){return v},set:function(){}}}),a.utils.initOptions(d),d}}(),a.utils.windowSize=function(){var a={width:640,height:480};return window.innerWidth&&window.innerHeight?(a.width=window.innerWidth,a.height=window.innerHeight,a):"CSS1Compat"==document.compatMode&&document.documentElement&&document.documentElement.offsetWidth?(a.width=document.documentElement.offsetWidth,a.height=document.documentElement.offsetHeight,a):document.body&&document.body.offsetWidth?(a.width=document.body.offsetWidth,a.height=document.body.offsetHeight,a):a},a.utils.windowResize=function(b){return window.addEventListener?window.addEventListener("resize",b):a.log("ERROR: Failed to bind to window.resize with: ",b),{callback:b,clear:function(){window.removeEventListener("resize",b)}}},a.utils.getColor=function(b){if(void 0===b)return a.utils.defaultColor();if(Array.isArray(b)){var c=d3.scale.ordinal().range(b);return function(a,b){var d=void 0===b?a:b;return a.color||c(d)}}return b},a.utils.defaultColor=function(){return a.utils.getColor(d3.scale.category20().range())},a.utils.customTheme=function(a,b,c){b=b||function(a){return a.key},c=c||d3.scale.category20().range();var d=c.length;return function(e){var f=b(e);return"function"==typeof a[f]?a[f]():void 0!==a[f]?a[f]:(d||(d=c.length),d-=1,c[d])}},a.utils.pjax=function(b,c){var d=function(d){d3.html(d,function(d){var e=d3.select(c).node();e.parentNode.replaceChild(d3.select(d).select(c).node(),e),a.utils.pjax(b,c)})};d3.selectAll(b).on("click",function(){history.pushState(this.href,this.textContent,this.href),d(this.href),d3.event.preventDefault()}),d3.select(window).on("popstate",function(){d3.event.state&&d(d3.event.state)})},a.utils.calcApproxTextWidth=function(a){if("function"==typeof a.style&&"function"==typeof a.text){var b=parseInt(a.style("font-size").replace("px",""),10),c=a.text().length;return c*b*.5}return 0},a.utils.NaNtoZero=function(a){return"number"!=typeof a||isNaN(a)||null===a||1/0===a||a===-1/0?0:a},d3.selection.prototype.watchTransition=function(a){var b=[this].concat([].slice.call(arguments,1));return a.transition.apply(a,b)},a.utils.renderWatch=function(b,c){if(!(this instanceof a.utils.renderWatch))return new a.utils.renderWatch(b,c);var d=void 0!==c?c:250,e=[],f=this;this.models=function(a){return a=[].slice.call(arguments,0),a.forEach(function(a){a.__rendered=!1,function(a){a.dispatch.on("renderEnd",function(){a.__rendered=!0,f.renderEnd("model")})}(a),e.indexOf(a)<0&&e.push(a)}),this},this.reset=function(a){void 0!==a&&(d=a),e=[]},this.transition=function(a,b,c){if(b=arguments.length>1?[].slice.call(arguments,1):[],c=b.length>1?b.pop():void 0!==d?d:250,a.__rendered=!1,e.indexOf(a)<0&&e.push(a),0===c)return a.__rendered=!0,a.delay=function(){return this},a.duration=function(){return this},a;a.__rendered=0===a.length?!0:a.every(function(a){return!a.length})?!0:!1;var g=0;return a.transition().duration(c).each(function(){++g}).each("end",function(){0===--g&&(a.__rendered=!0,f.renderEnd.apply(this,b))})},this.renderEnd=function(){e.every(function(a){return a.__rendered})&&(e.forEach(function(a){a.__rendered=!1}),b.renderEnd.apply(this,arguments))}},a.utils.deepExtend=function(b){var c=arguments.length>1?[].slice.call(arguments,1):[];c.forEach(function(c){for(var d in c){var e=b[d]instanceof Array,f="object"==typeof b[d],g="object"==typeof c[d];f&&!e&&g?a.utils.deepExtend(b[d],c[d]):b[d]=c[d]}})},a.utils.state=function(){if(!(this instanceof a.utils.state))return new a.utils.state;var b={},c=function(){},d=function(){return{}},e=null,f=null;this.dispatch=d3.dispatch("change","set"),this.dispatch.on("set",function(a){c(a,!0)}),this.getter=function(a){return d=a,this},this.setter=function(a,b){return b||(b=function(){}),c=function(c,d){a(c),d&&b()},this},this.init=function(b){e=e||{},a.utils.deepExtend(e,b)};var g=function(){var a=d();if(JSON.stringify(a)===JSON.stringify(b))return!1;for(var c in a)void 0===b[c]&&(b[c]={}),b[c]=a[c],f=!0;return!0};this.update=function(){e&&(c(e,!1),e=null),g.call(this)&&this.dispatch.change(b)}},a.utils.optionsFunc=function(a){return a&&d3.map(a).forEach(function(a,b){"function"==typeof this[a]&&this[a](b)}.bind(this)),this},a.utils.calcTicksX=function(b,c){var d=1,e=0;for(e;e<c.length;e+=1){var f=c[e]&&c[e].values?c[e].values.length:0;d=f>d?f:d}return a.log("Requested number of ticks: ",b),a.log("Calculated max values to be: ",d),b=b>d?b=d-1:b,b=1>b?1:b,b=Math.floor(b),a.log("Calculating tick count as: ",b),b},a.utils.calcTicksY=function(b,c){return a.utils.calcTicksX(b,c)},a.utils.initOption=function(a,b){a._calls&&a._calls[b]?a[b]=a._calls[b]:(a[b]=function(c){return arguments.length?(a._overrides[b]=!0,a._options[b]=c,a):a._options[b]},a["_"+b]=function(c){return arguments.length?(a._overrides[b]||(a._options[b]=c),a):a._options[b]})},a.utils.initOptions=function(b){b._overrides=b._overrides||{};var c=Object.getOwnPropertyNames(b._options||{}),d=Object.getOwnPropertyNames(b._calls||{});c=c.concat(d);for(var e in c)a.utils.initOption(b,c[e])},a.utils.inheritOptionsD3=function(a,b,c){a._d3options=c.concat(a._d3options||[]),c.unshift(b),c.unshift(a),d3.rebind.apply(this,c)},a.utils.arrayUnique=function(a){return a.sort().filter(function(b,c){return!c||b!=a[c-1]})},a.utils.symbolMap=d3.map(),a.utils.symbol=function(){function b(b,e){var f=c.call(this,b,e),g=d.call(this,b,e);return-1!==d3.svg.symbolTypes.indexOf(f)?d3.svg.symbol().type(f).size(g)():a.utils.symbolMap.get(f)(g)}var c,d=64;return b.type=function(a){return arguments.length?(c=d3.functor(a),b):c},b.size=function(a){return arguments.length?(d=d3.functor(a),b):d},b},a.utils.inheritOptions=function(b,c){var d=Object.getOwnPropertyNames(c._options||{}),e=Object.getOwnPropertyNames(c._calls||{}),f=c._inherited||[],g=c._d3options||[],h=d.concat(e).concat(f).concat(g);h.unshift(c),h.unshift(b),d3.rebind.apply(this,h),b._inherited=a.utils.arrayUnique(d.concat(e).concat(f).concat(d).concat(b._inherited||[])),b._d3options=a.utils.arrayUnique(g.concat(b._d3options||[]))},a.utils.initSVG=function(a){a.classed({"nvd3-svg":!0})},a.utils.sanitizeHeight=function(a,b){return a||parseInt(b.style("height"),10)||400},a.utils.sanitizeWidth=function(a,b){return a||parseInt(b.style("width"),10)||960},a.utils.availableHeight=function(b,c,d){return a.utils.sanitizeHeight(b,c)-d.top-d.bottom},a.utils.availableWidth=function(b,c,d){return a.utils.sanitizeWidth(b,c)-d.left-d.right},a.utils.noData=function(b,c){var d=b.options(),e=d.margin(),f=d.noData(),g=null==f?["No Data Available."]:[f],h=a.utils.availableHeight(d.height(),c,e),i=a.utils.availableWidth(d.width(),c,e),j=e.left+i/2,k=e.top+h/2;c.selectAll("g").remove();var l=c.selectAll(".nv-noData").data(g);l.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),l.attr("x",j).attr("y",k).text(function(a){return a})},a.models.axis=function(){"use strict";function b(g){return s.reset(),g.each(function(b){var g=d3.select(this);a.utils.initSVG(g);var p=g.selectAll("g.nv-wrap.nv-axis").data([b]),q=p.enter().append("g").attr("class","nvd3 nv-wrap nv-axis"),t=(q.append("g"),p.select("g"));null!==n?c.ticks(n):("top"==c.orient()||"bottom"==c.orient())&&c.ticks(Math.abs(d.range()[1]-d.range()[0])/100),t.watchTransition(s,"axis").call(c),r=r||c.scale();var u=c.tickFormat();null==u&&(u=r.tickFormat());var v=t.selectAll("text.nv-axislabel").data([h||null]);v.exit().remove();var w,x,y;switch(c.orient()){case"top":v.enter().append("text").attr("class","nv-axislabel"),y=d.range().length<2?0:2===d.range().length?d.range()[1]:d.range()[d.range().length-1]+(d.range()[1]-d.range()[0]),v.attr("text-anchor","middle").attr("y",0).attr("x",y/2),i&&(x=p.selectAll("g.nv-axisMaxMin").data(d.domain()),x.enter().append("g").attr("class",function(a,b){return["nv-axisMaxMin","nv-axisMaxMin-x",0==b?"nv-axisMin-x":"nv-axisMax-x"].join(" ")}).append("text"),x.exit().remove(),x.attr("transform",function(b){return"translate("+a.utils.NaNtoZero(d(b))+",0)"}).select("text").attr("dy","-0.5em").attr("y",-c.tickPadding()).attr("text-anchor","middle").text(function(a){var b=u(a);return(""+b).match("NaN")?"":b}),x.watchTransition(s,"min-max top").attr("transform",function(b,c){return"translate("+a.utils.NaNtoZero(d.range()[c])+",0)"}));break;case"bottom":w=o+36;var z=30,A=0,B=t.selectAll("g").select("text"),C="";if(j%360){B.each(function(){var a=this.getBoundingClientRect(),b=a.width;A=a.height,b>z&&(z=b)}),C="rotate("+j+" 0,"+(A/2+c.tickPadding())+")";var D=Math.abs(Math.sin(j*Math.PI/180));w=(D?D*z:z)+30,B.attr("transform",C).style("text-anchor",j%360>0?"start":"end")}v.enter().append("text").attr("class","nv-axislabel"),y=d.range().length<2?0:2===d.range().length?d.range()[1]:d.range()[d.range().length-1]+(d.range()[1]-d.range()[0]),v.attr("text-anchor","middle").attr("y",w).attr("x",y/2),i&&(x=p.selectAll("g.nv-axisMaxMin").data([d.domain()[0],d.domain()[d.domain().length-1]]),x.enter().append("g").attr("class",function(a,b){return["nv-axisMaxMin","nv-axisMaxMin-x",0==b?"nv-axisMin-x":"nv-axisMax-x"].join(" ")}).append("text"),x.exit().remove(),x.attr("transform",function(b){return"translate("+a.utils.NaNtoZero(d(b)+(m?d.rangeBand()/2:0))+",0)"}).select("text").attr("dy",".71em").attr("y",c.tickPadding()).attr("transform",C).style("text-anchor",j?j%360>0?"start":"end":"middle").text(function(a){var b=u(a);return(""+b).match("NaN")?"":b}),x.watchTransition(s,"min-max bottom").attr("transform",function(b){return"translate("+a.utils.NaNtoZero(d(b)+(m?d.rangeBand()/2:0))+",0)"})),l&&B.attr("transform",function(a,b){return"translate(0,"+(b%2==0?"0":"12")+")"});break;case"right":v.enter().append("text").attr("class","nv-axislabel"),v.style("text-anchor",k?"middle":"begin").attr("transform",k?"rotate(90)":"").attr("y",k?-Math.max(e.right,f)+12:-10).attr("x",k?d3.max(d.range())/2:c.tickPadding()),i&&(x=p.selectAll("g.nv-axisMaxMin").data(d.domain()),x.enter().append("g").attr("class",function(a,b){return["nv-axisMaxMin","nv-axisMaxMin-y",0==b?"nv-axisMin-y":"nv-axisMax-y"].join(" ")}).append("text").style("opacity",0),x.exit().remove(),x.attr("transform",function(b){return"translate(0,"+a.utils.NaNtoZero(d(b))+")"}).select("text").attr("dy",".32em").attr("y",0).attr("x",c.tickPadding()).style("text-anchor","start").text(function(a){var b=u(a);return(""+b).match("NaN")?"":b}),x.watchTransition(s,"min-max right").attr("transform",function(b,c){return"translate(0,"+a.utils.NaNtoZero(d.range()[c])+")"}).select("text").style("opacity",1));break;case"left":v.enter().append("text").attr("class","nv-axislabel"),v.style("text-anchor",k?"middle":"end").attr("transform",k?"rotate(-90)":"").attr("y",k?-Math.max(e.left,f)+25-(o||0):-10).attr("x",k?-d3.max(d.range())/2:-c.tickPadding()),i&&(x=p.selectAll("g.nv-axisMaxMin").data(d.domain()),x.enter().append("g").attr("class",function(a,b){return["nv-axisMaxMin","nv-axisMaxMin-y",0==b?"nv-axisMin-y":"nv-axisMax-y"].join(" ")}).append("text").style("opacity",0),x.exit().remove(),x.attr("transform",function(b){return"translate(0,"+a.utils.NaNtoZero(r(b))+")"}).select("text").attr("dy",".32em").attr("y",0).attr("x",-c.tickPadding()).attr("text-anchor","end").text(function(a){var b=u(a);return(""+b).match("NaN")?"":b}),x.watchTransition(s,"min-max right").attr("transform",function(b,c){return"translate(0,"+a.utils.NaNtoZero(d.range()[c])+")"}).select("text").style("opacity",1))}if(v.text(function(a){return a}),!i||"left"!==c.orient()&&"right"!==c.orient()||(t.selectAll("g").each(function(a){d3.select(this).select("text").attr("opacity",1),(d(a)<d.range()[1]+10||d(a)>d.range()[0]-10)&&((a>1e-10||-1e-10>a)&&d3.select(this).attr("opacity",0),d3.select(this).select("text").attr("opacity",0))}),d.domain()[0]==d.domain()[1]&&0==d.domain()[0]&&p.selectAll("g.nv-axisMaxMin").style("opacity",function(a,b){return b?0:1})),i&&("top"===c.orient()||"bottom"===c.orient())){var E=[];p.selectAll("g.nv-axisMaxMin").each(function(a,b){try{E.push(b?d(a)-this.getBoundingClientRect().width-4:d(a)+this.getBoundingClientRect().width+4)}catch(c){E.push(b?d(a)-4:d(a)+4)}}),t.selectAll("g").each(function(a){(d(a)<E[0]||d(a)>E[1])&&(a>1e-10||-1e-10>a?d3.select(this).remove():d3.select(this).select("text").remove())})}t.selectAll(".tick").filter(function(a){return!parseFloat(Math.round(1e5*a)/1e6)&&void 0!==a}).classed("zero",!0),r=d.copy()}),s.renderEnd("axis immediate"),b}var c=d3.svg.axis(),d=d3.scale.linear(),e={top:0,right:0,bottom:0,left:0},f=75,g=60,h=null,i=!0,j=0,k=!0,l=!1,m=!1,n=null,o=0,p=250,q=d3.dispatch("renderEnd");c.scale(d).orient("bottom").tickFormat(function(a){return a});var r,s=a.utils.renderWatch(q,p);return b.axis=c,b.dispatch=q,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{axisLabelDistance:{get:function(){return o},set:function(a){o=a}},staggerLabels:{get:function(){return l},set:function(a){l=a}},rotateLabels:{get:function(){return j},set:function(a){j=a}},rotateYLabel:{get:function(){return k},set:function(a){k=a}},showMaxMin:{get:function(){return i},set:function(a){i=a}},axisLabel:{get:function(){return h},set:function(a){h=a}},height:{get:function(){return g},set:function(a){g=a}},ticks:{get:function(){return n},set:function(a){n=a}},width:{get:function(){return f},set:function(a){f=a}},margin:{get:function(){return e},set:function(a){e.top=void 0!==a.top?a.top:e.top,e.right=void 0!==a.right?a.right:e.right,e.bottom=void 0!==a.bottom?a.bottom:e.bottom,e.left=void 0!==a.left?a.left:e.left}},duration:{get:function(){return p},set:function(a){p=a,s.reset(p)}},scale:{get:function(){return d},set:function(e){d=e,c.scale(d),m="function"==typeof d.rangeBands,a.utils.inheritOptionsD3(b,d,["domain","range","rangeBand","rangeBands"])}}}),a.utils.initOptions(b),a.utils.inheritOptionsD3(b,c,["orient","tickValues","tickSubdivide","tickSize","tickPadding","tickFormat"]),a.utils.inheritOptionsD3(b,d,["domain","range","rangeBand","rangeBands"]),b},a.models.boxPlot=function(){"use strict";function b(l){return v.reset(),l.each(function(b){var l=j-i.left-i.right,p=k-i.top-i.bottom;r=d3.select(this),a.utils.initSVG(r),m.domain(c||b.map(function(a,b){return o(a,b)})).rangeBands(e||[0,l],.1);var w=[];if(!d){var x=d3.min(b.map(function(a){var b=[];return b.push(a.values.Q1),a.values.hasOwnProperty("whisker_low")&&null!==a.values.whisker_low&&b.push(a.values.whisker_low),a.values.hasOwnProperty("outliers")&&null!==a.values.outliers&&(b=b.concat(a.values.outliers)),d3.min(b)})),y=d3.max(b.map(function(a){var b=[];return b.push(a.values.Q3),a.values.hasOwnProperty("whisker_high")&&null!==a.values.whisker_high&&b.push(a.values.whisker_high),a.values.hasOwnProperty("outliers")&&null!==a.values.outliers&&(b=b.concat(a.values.outliers)),d3.max(b)}));w=[x,y]}n.domain(d||w),n.range(f||[p,0]),g=g||m,h=h||n.copy().range([n(0),n(0)]);{var z=r.selectAll("g.nv-wrap").data([b]);z.enter().append("g").attr("class","nvd3 nv-wrap")}z.attr("transform","translate("+i.left+","+i.top+")");var A=z.selectAll(".nv-boxplot").data(function(a){return a}),B=A.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6);A.attr("class","nv-boxplot").attr("transform",function(a,b){return"translate("+(m(o(a,b))+.05*m.rangeBand())+", 0)"}).classed("hover",function(a){return a.hover}),A.watchTransition(v,"nv-boxplot: boxplots").style("stroke-opacity",1).style("fill-opacity",.75).delay(function(a,c){return c*t/b.length}).attr("transform",function(a,b){return"translate("+(m(o(a,b))+.05*m.rangeBand())+", 0)"}),A.exit().remove(),B.each(function(a,b){var c=d3.select(this);["low","high"].forEach(function(d){a.values.hasOwnProperty("whisker_"+d)&&null!==a.values["whisker_"+d]&&(c.append("line").style("stroke",a.color?a.color:q(a,b)).attr("class","nv-boxplot-whisker nv-boxplot-"+d),c.append("line").style("stroke",a.color?a.color:q(a,b)).attr("class","nv-boxplot-tick nv-boxplot-"+d))})});var C=A.selectAll(".nv-boxplot-outlier").data(function(a){return a.values.hasOwnProperty("outliers")&&null!==a.values.outliers?a.values.outliers:[]});C.enter().append("circle").style("fill",function(a,b,c){return q(a,c)}).style("stroke",function(a,b,c){return q(a,c)}).on("mouseover",function(a,b,c){d3.select(this).classed("hover",!0),s.elementMouseover({series:{key:a,color:q(a,c)},e:d3.event})}).on("mouseout",function(a,b,c){d3.select(this).classed("hover",!1),s.elementMouseout({series:{key:a,color:q(a,c)},e:d3.event})}).on("mousemove",function(){s.elementMousemove({e:d3.event})}),C.attr("class","nv-boxplot-outlier"),C.watchTransition(v,"nv-boxplot: nv-boxplot-outlier").attr("cx",.45*m.rangeBand()).attr("cy",function(a){return n(a)}).attr("r","3"),C.exit().remove();var D=function(){return null===u?.9*m.rangeBand():Math.min(75,.9*m.rangeBand())},E=function(){return.45*m.rangeBand()-D()/2},F=function(){return.45*m.rangeBand()+D()/2};["low","high"].forEach(function(a){var b="low"===a?"Q1":"Q3";A.select("line.nv-boxplot-whisker.nv-boxplot-"+a).watchTransition(v,"nv-boxplot: boxplots").attr("x1",.45*m.rangeBand()).attr("y1",function(b){return n(b.values["whisker_"+a])}).attr("x2",.45*m.rangeBand()).attr("y2",function(a){return n(a.values[b])}),A.select("line.nv-boxplot-tick.nv-boxplot-"+a).watchTransition(v,"nv-boxplot: boxplots").attr("x1",E).attr("y1",function(b){return n(b.values["whisker_"+a])}).attr("x2",F).attr("y2",function(b){return n(b.values["whisker_"+a])})}),["low","high"].forEach(function(a){B.selectAll(".nv-boxplot-"+a).on("mouseover",function(b,c,d){d3.select(this).classed("hover",!0),s.elementMouseover({series:{key:b.values["whisker_"+a],color:q(b,d)},e:d3.event})}).on("mouseout",function(b,c,d){d3.select(this).classed("hover",!1),s.elementMouseout({series:{key:b.values["whisker_"+a],color:q(b,d)},e:d3.event})}).on("mousemove",function(){s.elementMousemove({e:d3.event})})}),B.append("rect").attr("class","nv-boxplot-box").on("mouseover",function(a,b){d3.select(this).classed("hover",!0),s.elementMouseover({key:a.label,value:a.label,series:[{key:"Q3",value:a.values.Q3,color:a.color||q(a,b)},{key:"Q2",value:a.values.Q2,color:a.color||q(a,b)},{key:"Q1",value:a.values.Q1,color:a.color||q(a,b)}],data:a,index:b,e:d3.event})}).on("mouseout",function(a,b){d3.select(this).classed("hover",!1),s.elementMouseout({key:a.label,value:a.label,series:[{key:"Q3",value:a.values.Q3,color:a.color||q(a,b)},{key:"Q2",value:a.values.Q2,color:a.color||q(a,b)},{key:"Q1",value:a.values.Q1,color:a.color||q(a,b)}],data:a,index:b,e:d3.event})}).on("mousemove",function(){s.elementMousemove({e:d3.event})}),A.select("rect.nv-boxplot-box").watchTransition(v,"nv-boxplot: boxes").attr("y",function(a){return n(a.values.Q3)}).attr("width",D).attr("x",E).attr("height",function(a){return Math.abs(n(a.values.Q3)-n(a.values.Q1))||1}).style("fill",function(a,b){return a.color||q(a,b)}).style("stroke",function(a,b){return a.color||q(a,b)}),B.append("line").attr("class","nv-boxplot-median"),A.select("line.nv-boxplot-median").watchTransition(v,"nv-boxplot: boxplots line").attr("x1",E).attr("y1",function(a){return n(a.values.Q2)}).attr("x2",F).attr("y2",function(a){return n(a.values.Q2)}),g=m.copy(),h=n.copy()}),v.renderEnd("nv-boxplot immediate"),b}var c,d,e,f,g,h,i={top:0,right:0,bottom:0,left:0},j=960,k=500,l=Math.floor(1e4*Math.random()),m=d3.scale.ordinal(),n=d3.scale.linear(),o=function(a){return a.x},p=function(a){return a.y},q=a.utils.defaultColor(),r=null,s=d3.dispatch("elementMouseover","elementMouseout","elementMousemove","renderEnd"),t=250,u=null,v=a.utils.renderWatch(s,t);return b.dispatch=s,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return j},set:function(a){j=a}},height:{get:function(){return k},set:function(a){k=a}},maxBoxWidth:{get:function(){return u},set:function(a){u=a}},x:{get:function(){return o},set:function(a){o=a}},y:{get:function(){return p},set:function(a){p=a}},xScale:{get:function(){return m},set:function(a){m=a}},yScale:{get:function(){return n},set:function(a){n=a}},xDomain:{get:function(){return c},set:function(a){c=a}},yDomain:{get:function(){return d},set:function(a){d=a}},xRange:{get:function(){return e},set:function(a){e=a}},yRange:{get:function(){return f},set:function(a){f=a}},id:{get:function(){return l},set:function(a){l=a}},margin:{get:function(){return i},set:function(a){i.top=void 0!==a.top?a.top:i.top,i.right=void 0!==a.right?a.right:i.right,i.bottom=void 0!==a.bottom?a.bottom:i.bottom,i.left=void 0!==a.left?a.left:i.left}},color:{get:function(){return q},set:function(b){q=a.utils.getColor(b)}},duration:{get:function(){return t},set:function(a){t=a,v.reset(t)}}}),a.utils.initOptions(b),b},a.models.boxPlotChart=function(){"use strict";function b(k){return t.reset(),t.models(e),l&&t.models(f),m&&t.models(g),k.each(function(k){var p=d3.select(this);a.utils.initSVG(p);var t=(i||parseInt(p.style("width"))||960)-h.left-h.right,u=(j||parseInt(p.style("height"))||400)-h.top-h.bottom;if(b.update=function(){r.beforeUpdate(),p.transition().duration(s).call(b)},b.container=this,!(k&&k.length&&k.filter(function(a){return a.values.hasOwnProperty("Q1")&&a.values.hasOwnProperty("Q2")&&a.values.hasOwnProperty("Q3")}).length)){var v=p.selectAll(".nv-noData").data([q]);return v.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),v.attr("x",h.left+t/2).attr("y",h.top+u/2).text(function(a){return a}),b}p.selectAll(".nv-noData").remove(),c=e.xScale(),d=e.yScale().clamp(!0);var w=p.selectAll("g.nv-wrap.nv-boxPlotWithAxes").data([k]),x=w.enter().append("g").attr("class","nvd3 nv-wrap nv-boxPlotWithAxes").append("g"),y=x.append("defs"),z=w.select("g"); +x.append("g").attr("class","nv-x nv-axis"),x.append("g").attr("class","nv-y nv-axis").append("g").attr("class","nv-zeroLine").append("line"),x.append("g").attr("class","nv-barsWrap"),z.attr("transform","translate("+h.left+","+h.top+")"),n&&z.select(".nv-y.nv-axis").attr("transform","translate("+t+",0)"),e.width(t).height(u);var A=z.select(".nv-barsWrap").datum(k.filter(function(a){return!a.disabled}));if(A.transition().call(e),y.append("clipPath").attr("id","nv-x-label-clip-"+e.id()).append("rect"),z.select("#nv-x-label-clip-"+e.id()+" rect").attr("width",c.rangeBand()*(o?2:1)).attr("height",16).attr("x",-c.rangeBand()/(o?1:2)),l){f.scale(c).ticks(a.utils.calcTicksX(t/100,k)).tickSize(-u,0),z.select(".nv-x.nv-axis").attr("transform","translate(0,"+d.range()[0]+")"),z.select(".nv-x.nv-axis").call(f);var B=z.select(".nv-x.nv-axis").selectAll("g");o&&B.selectAll("text").attr("transform",function(a,b,c){return"translate(0,"+(c%2==0?"5":"17")+")"})}m&&(g.scale(d).ticks(Math.floor(u/36)).tickSize(-t,0),z.select(".nv-y.nv-axis").call(g)),z.select(".nv-zeroLine line").attr("x1",0).attr("x2",t).attr("y1",d(0)).attr("y2",d(0))}),t.renderEnd("nv-boxplot chart immediate"),b}var c,d,e=a.models.boxPlot(),f=a.models.axis(),g=a.models.axis(),h={top:15,right:10,bottom:50,left:60},i=null,j=null,k=a.utils.getColor(),l=!0,m=!0,n=!1,o=!1,p=a.models.tooltip(),q="No Data Available.",r=d3.dispatch("tooltipShow","tooltipHide","beforeUpdate","renderEnd"),s=250;f.orient("bottom").showMaxMin(!1).tickFormat(function(a){return a}),g.orient(n?"right":"left").tickFormat(d3.format(",.1f")),p.duration(0);var t=a.utils.renderWatch(r,s);return e.dispatch.on("elementMouseover.tooltip",function(a){p.data(a).hidden(!1)}),e.dispatch.on("elementMouseout.tooltip",function(a){p.data(a).hidden(!0)}),e.dispatch.on("elementMousemove.tooltip",function(){p.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.dispatch=r,b.boxplot=e,b.xAxis=f,b.yAxis=g,b.tooltip=p,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return i},set:function(a){i=a}},height:{get:function(){return j},set:function(a){j=a}},staggerLabels:{get:function(){return o},set:function(a){o=a}},showXAxis:{get:function(){return l},set:function(a){l=a}},showYAxis:{get:function(){return m},set:function(a){m=a}},tooltips:{get:function(){return tooltips},set:function(a){tooltips=a}},tooltipContent:{get:function(){return p},set:function(a){p=a}},noData:{get:function(){return q},set:function(a){q=a}},margin:{get:function(){return h},set:function(a){h.top=void 0!==a.top?a.top:h.top,h.right=void 0!==a.right?a.right:h.right,h.bottom=void 0!==a.bottom?a.bottom:h.bottom,h.left=void 0!==a.left?a.left:h.left}},duration:{get:function(){return s},set:function(a){s=a,t.reset(s),e.duration(s),f.duration(s),g.duration(s)}},color:{get:function(){return k},set:function(b){k=a.utils.getColor(b),e.color(k)}},rightAlignYAxis:{get:function(){return n},set:function(a){n=a,g.orient(a?"right":"left")}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.bullet=function(){"use strict";function b(d){return d.each(function(b,d){var p=m-c.left-c.right,s=n-c.top-c.bottom;o=d3.select(this),a.utils.initSVG(o);{var t=f.call(this,b,d).slice().sort(d3.descending),u=g.call(this,b,d).slice().sort(d3.descending),v=h.call(this,b,d).slice().sort(d3.descending),w=i.call(this,b,d).slice(),x=j.call(this,b,d).slice(),y=k.call(this,b,d).slice(),z=d3.scale.linear().domain(d3.extent(d3.merge([l,t]))).range(e?[p,0]:[0,p]);this.__chart__||d3.scale.linear().domain([0,1/0]).range(z.range())}this.__chart__=z;var A=d3.min(t),B=d3.max(t),C=t[1],D=o.selectAll("g.nv-wrap.nv-bullet").data([b]),E=D.enter().append("g").attr("class","nvd3 nv-wrap nv-bullet"),F=E.append("g"),G=D.select("g");F.append("rect").attr("class","nv-range nv-rangeMax"),F.append("rect").attr("class","nv-range nv-rangeAvg"),F.append("rect").attr("class","nv-range nv-rangeMin"),F.append("rect").attr("class","nv-measure"),D.attr("transform","translate("+c.left+","+c.top+")");var H=function(a){return Math.abs(z(a)-z(0))},I=function(a){return z(0>a?a:0)};G.select("rect.nv-rangeMax").attr("height",s).attr("width",H(B>0?B:A)).attr("x",I(B>0?B:A)).datum(B>0?B:A),G.select("rect.nv-rangeAvg").attr("height",s).attr("width",H(C)).attr("x",I(C)).datum(C),G.select("rect.nv-rangeMin").attr("height",s).attr("width",H(B)).attr("x",I(B)).attr("width",H(B>0?A:B)).attr("x",I(B>0?A:B)).datum(B>0?A:B),G.select("rect.nv-measure").style("fill",q).attr("height",s/3).attr("y",s/3).attr("width",0>v?z(0)-z(v[0]):z(v[0])-z(0)).attr("x",I(v)).on("mouseover",function(){r.elementMouseover({value:v[0],label:y[0]||"Current",color:d3.select(this).style("fill")})}).on("mousemove",function(){r.elementMousemove({value:v[0],label:y[0]||"Current",color:d3.select(this).style("fill")})}).on("mouseout",function(){r.elementMouseout({value:v[0],label:y[0]||"Current",color:d3.select(this).style("fill")})});var J=s/6,K=u.map(function(a,b){return{value:a,label:x[b]}});F.selectAll("path.nv-markerTriangle").data(K).enter().append("path").attr("class","nv-markerTriangle").attr("transform",function(a){return"translate("+z(a.value)+","+s/2+")"}).attr("d","M0,"+J+"L"+J+","+-J+" "+-J+","+-J+"Z").on("mouseover",function(a){r.elementMouseover({value:a.value,label:a.label||"Previous",color:d3.select(this).style("fill"),pos:[z(a.value),s/2]})}).on("mousemove",function(a){r.elementMousemove({value:a.value,label:a.label||"Previous",color:d3.select(this).style("fill")})}).on("mouseout",function(a){r.elementMouseout({value:a.value,label:a.label||"Previous",color:d3.select(this).style("fill")})}),D.selectAll(".nv-range").on("mouseover",function(a,b){var c=w[b]||(b?1==b?"Mean":"Minimum":"Maximum");r.elementMouseover({value:a,label:c,color:d3.select(this).style("fill")})}).on("mousemove",function(){r.elementMousemove({value:v[0],label:y[0]||"Previous",color:d3.select(this).style("fill")})}).on("mouseout",function(a,b){var c=w[b]||(b?1==b?"Mean":"Minimum":"Maximum");r.elementMouseout({value:a,label:c,color:d3.select(this).style("fill")})})}),b}var c={top:0,right:0,bottom:0,left:0},d="left",e=!1,f=function(a){return a.ranges},g=function(a){return a.markers?a.markers:[0]},h=function(a){return a.measures},i=function(a){return a.rangeLabels?a.rangeLabels:[]},j=function(a){return a.markerLabels?a.markerLabels:[]},k=function(a){return a.measureLabels?a.measureLabels:[]},l=[0],m=380,n=30,o=null,p=null,q=a.utils.getColor(["#1f77b4"]),r=d3.dispatch("elementMouseover","elementMouseout","elementMousemove");return b.dispatch=r,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{ranges:{get:function(){return f},set:function(a){f=a}},markers:{get:function(){return g},set:function(a){g=a}},measures:{get:function(){return h},set:function(a){h=a}},forceX:{get:function(){return l},set:function(a){l=a}},width:{get:function(){return m},set:function(a){m=a}},height:{get:function(){return n},set:function(a){n=a}},tickFormat:{get:function(){return p},set:function(a){p=a}},margin:{get:function(){return c},set:function(a){c.top=void 0!==a.top?a.top:c.top,c.right=void 0!==a.right?a.right:c.right,c.bottom=void 0!==a.bottom?a.bottom:c.bottom,c.left=void 0!==a.left?a.left:c.left}},orient:{get:function(){return d},set:function(a){d=a,e="right"==d||"bottom"==d}},color:{get:function(){return q},set:function(b){q=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.bulletChart=function(){"use strict";function b(d){return d.each(function(e,o){var p=d3.select(this);a.utils.initSVG(p);var q=a.utils.availableWidth(k,p,g),r=l-g.top-g.bottom;if(b.update=function(){b(d)},b.container=this,!e||!h.call(this,e,o))return a.utils.noData(b,p),b;p.selectAll(".nv-noData").remove();var s=h.call(this,e,o).slice().sort(d3.descending),t=i.call(this,e,o).slice().sort(d3.descending),u=j.call(this,e,o).slice().sort(d3.descending),v=p.selectAll("g.nv-wrap.nv-bulletChart").data([e]),w=v.enter().append("g").attr("class","nvd3 nv-wrap nv-bulletChart"),x=w.append("g"),y=v.select("g");x.append("g").attr("class","nv-bulletWrap"),x.append("g").attr("class","nv-titles"),v.attr("transform","translate("+g.left+","+g.top+")");var z=d3.scale.linear().domain([0,Math.max(s[0],t[0],u[0])]).range(f?[q,0]:[0,q]),A=this.__chart__||d3.scale.linear().domain([0,1/0]).range(z.range());this.__chart__=z;var B=x.select(".nv-titles").append("g").attr("text-anchor","end").attr("transform","translate(-6,"+(l-g.top-g.bottom)/2+")");B.append("text").attr("class","nv-title").text(function(a){return a.title}),B.append("text").attr("class","nv-subtitle").attr("dy","1em").text(function(a){return a.subtitle}),c.width(q).height(r);var C=y.select(".nv-bulletWrap");d3.transition(C).call(c);var D=m||z.tickFormat(q/100),E=y.selectAll("g.nv-tick").data(z.ticks(n?n:q/50),function(a){return this.textContent||D(a)}),F=E.enter().append("g").attr("class","nv-tick").attr("transform",function(a){return"translate("+A(a)+",0)"}).style("opacity",1e-6);F.append("line").attr("y1",r).attr("y2",7*r/6),F.append("text").attr("text-anchor","middle").attr("dy","1em").attr("y",7*r/6).text(D);var G=d3.transition(E).attr("transform",function(a){return"translate("+z(a)+",0)"}).style("opacity",1);G.select("line").attr("y1",r).attr("y2",7*r/6),G.select("text").attr("y",7*r/6),d3.transition(E.exit()).attr("transform",function(a){return"translate("+z(a)+",0)"}).style("opacity",1e-6).remove()}),d3.timer.flush(),b}var c=a.models.bullet(),d=a.models.tooltip(),e="left",f=!1,g={top:5,right:40,bottom:20,left:120},h=function(a){return a.ranges},i=function(a){return a.markers?a.markers:[0]},j=function(a){return a.measures},k=null,l=55,m=null,n=null,o=null,p=d3.dispatch("tooltipShow","tooltipHide");return d.duration(0).headerEnabled(!1),c.dispatch.on("elementMouseover.tooltip",function(a){a.series={key:a.label,value:a.value,color:a.color},d.data(a).hidden(!1)}),c.dispatch.on("elementMouseout.tooltip",function(){d.hidden(!0)}),c.dispatch.on("elementMousemove.tooltip",function(){d.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.bullet=c,b.dispatch=p,b.tooltip=d,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{ranges:{get:function(){return h},set:function(a){h=a}},markers:{get:function(){return i},set:function(a){i=a}},measures:{get:function(){return j},set:function(a){j=a}},width:{get:function(){return k},set:function(a){k=a}},height:{get:function(){return l},set:function(a){l=a}},tickFormat:{get:function(){return m},set:function(a){m=a}},ticks:{get:function(){return n},set:function(a){n=a}},noData:{get:function(){return o},set:function(a){o=a}},tooltips:{get:function(){return d.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),d.enabled(!!b)}},tooltipContent:{get:function(){return d.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),d.contentGenerator(b)}},margin:{get:function(){return g},set:function(a){g.top=void 0!==a.top?a.top:g.top,g.right=void 0!==a.right?a.right:g.right,g.bottom=void 0!==a.bottom?a.bottom:g.bottom,g.left=void 0!==a.left?a.left:g.left}},orient:{get:function(){return e},set:function(a){e=a,f="right"==e||"bottom"==e}}}),a.utils.inheritOptions(b,c),a.utils.initOptions(b),b},a.models.candlestickBar=function(){"use strict";function b(x){return x.each(function(b){c=d3.select(this);var x=a.utils.availableWidth(i,c,h),y=a.utils.availableHeight(j,c,h);a.utils.initSVG(c);var A=x/b[0].values.length*.45;l.domain(d||d3.extent(b[0].values.map(n).concat(t))),l.range(v?f||[.5*x/b[0].values.length,x*(b[0].values.length-.5)/b[0].values.length]:f||[5+A/2,x-A/2-5]),m.domain(e||[d3.min(b[0].values.map(s).concat(u)),d3.max(b[0].values.map(r).concat(u))]).range(g||[y,0]),l.domain()[0]===l.domain()[1]&&l.domain(l.domain()[0]?[l.domain()[0]-.01*l.domain()[0],l.domain()[1]+.01*l.domain()[1]]:[-1,1]),m.domain()[0]===m.domain()[1]&&m.domain(m.domain()[0]?[m.domain()[0]+.01*m.domain()[0],m.domain()[1]-.01*m.domain()[1]]:[-1,1]);var B=d3.select(this).selectAll("g.nv-wrap.nv-candlestickBar").data([b[0].values]),C=B.enter().append("g").attr("class","nvd3 nv-wrap nv-candlestickBar"),D=C.append("defs"),E=C.append("g"),F=B.select("g");E.append("g").attr("class","nv-ticks"),B.attr("transform","translate("+h.left+","+h.top+")"),c.on("click",function(a,b){z.chartClick({data:a,index:b,pos:d3.event,id:k})}),D.append("clipPath").attr("id","nv-chart-clip-path-"+k).append("rect"),B.select("#nv-chart-clip-path-"+k+" rect").attr("width",x).attr("height",y),F.attr("clip-path",w?"url(#nv-chart-clip-path-"+k+")":"");var G=B.select(".nv-ticks").selectAll(".nv-tick").data(function(a){return a});G.exit().remove();{var H=G.enter().append("g").attr("class",function(a,b,c){return(p(a,b)>q(a,b)?"nv-tick negative":"nv-tick positive")+" nv-tick-"+c+"-"+b});H.append("line").attr("class","nv-candlestick-lines").attr("transform",function(a,b){return"translate("+l(n(a,b))+",0)"}).attr("x1",0).attr("y1",function(a,b){return m(r(a,b))}).attr("x2",0).attr("y2",function(a,b){return m(s(a,b))}),H.append("rect").attr("class","nv-candlestick-rects nv-bars").attr("transform",function(a,b){return"translate("+(l(n(a,b))-A/2)+","+(m(o(a,b))-(p(a,b)>q(a,b)?m(q(a,b))-m(p(a,b)):0))+")"}).attr("x",0).attr("y",0).attr("width",A).attr("height",function(a,b){var c=p(a,b),d=q(a,b);return c>d?m(d)-m(c):m(c)-m(d)})}c.selectAll(".nv-candlestick-lines").transition().attr("transform",function(a,b){return"translate("+l(n(a,b))+",0)"}).attr("x1",0).attr("y1",function(a,b){return m(r(a,b))}).attr("x2",0).attr("y2",function(a,b){return m(s(a,b))}),c.selectAll(".nv-candlestick-rects").transition().attr("transform",function(a,b){return"translate("+(l(n(a,b))-A/2)+","+(m(o(a,b))-(p(a,b)>q(a,b)?m(q(a,b))-m(p(a,b)):0))+")"}).attr("x",0).attr("y",0).attr("width",A).attr("height",function(a,b){var c=p(a,b),d=q(a,b);return c>d?m(d)-m(c):m(c)-m(d)})}),b}var c,d,e,f,g,h={top:0,right:0,bottom:0,left:0},i=null,j=null,k=Math.floor(1e4*Math.random()),l=d3.scale.linear(),m=d3.scale.linear(),n=function(a){return a.x},o=function(a){return a.y},p=function(a){return a.open},q=function(a){return a.close},r=function(a){return a.high},s=function(a){return a.low},t=[],u=[],v=!1,w=!0,x=a.utils.defaultColor(),y=!1,z=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState","renderEnd","chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove");return b.highlightPoint=function(a,d){b.clearHighlights(),c.select(".nv-candlestickBar .nv-tick-0-"+a).classed("hover",d)},b.clearHighlights=function(){c.select(".nv-candlestickBar .nv-tick.hover").classed("hover",!1)},b.dispatch=z,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return i},set:function(a){i=a}},height:{get:function(){return j},set:function(a){j=a}},xScale:{get:function(){return l},set:function(a){l=a}},yScale:{get:function(){return m},set:function(a){m=a}},xDomain:{get:function(){return d},set:function(a){d=a}},yDomain:{get:function(){return e},set:function(a){e=a}},xRange:{get:function(){return f},set:function(a){f=a}},yRange:{get:function(){return g},set:function(a){g=a}},forceX:{get:function(){return t},set:function(a){t=a}},forceY:{get:function(){return u},set:function(a){u=a}},padData:{get:function(){return v},set:function(a){v=a}},clipEdge:{get:function(){return w},set:function(a){w=a}},id:{get:function(){return k},set:function(a){k=a}},interactive:{get:function(){return y},set:function(a){y=a}},x:{get:function(){return n},set:function(a){n=a}},y:{get:function(){return o},set:function(a){o=a}},open:{get:function(){return p()},set:function(a){p=a}},close:{get:function(){return q()},set:function(a){q=a}},high:{get:function(){return r},set:function(a){r=a}},low:{get:function(){return s},set:function(a){s=a}},margin:{get:function(){return h},set:function(a){h.top=void 0!=a.top?a.top:h.top,h.right=void 0!=a.right?a.right:h.right,h.bottom=void 0!=a.bottom?a.bottom:h.bottom,h.left=void 0!=a.left?a.left:h.left}},color:{get:function(){return x},set:function(b){x=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.cumulativeLineChart=function(){"use strict";function b(l){return H.reset(),H.models(f),r&&H.models(g),s&&H.models(h),l.each(function(l){function A(){d3.select(b.container).style("cursor","ew-resize")}function E(){G.x=d3.event.x,G.i=Math.round(F.invert(G.x)),K()}function H(){d3.select(b.container).style("cursor","auto"),y.index=G.i,C.stateChange(y)}function K(){bb.data([G]);var a=b.duration();b.duration(0),b.update(),b.duration(a)}var L=d3.select(this);a.utils.initSVG(L),L.classed("nv-chart-"+x,!0);var M=this,N=a.utils.availableWidth(o,L,m),O=a.utils.availableHeight(p,L,m);if(b.update=function(){0===D?L.call(b):L.transition().duration(D).call(b)},b.container=this,y.setter(J(l),b.update).getter(I(l)).update(),y.disabled=l.map(function(a){return!!a.disabled}),!z){var P;z={};for(P in y)z[P]=y[P]instanceof Array?y[P].slice(0):y[P]}var Q=d3.behavior.drag().on("dragstart",A).on("drag",E).on("dragend",H);if(!(l&&l.length&&l.filter(function(a){return a.values.length}).length))return a.utils.noData(b,L),b;if(L.selectAll(".nv-noData").remove(),d=f.xScale(),e=f.yScale(),w)f.yDomain(null);else{var R=l.filter(function(a){return!a.disabled}).map(function(a){var b=d3.extent(a.values,f.y());return b[0]<-.95&&(b[0]=-.95),[(b[0]-b[1])/(1+b[1]),(b[1]-b[0])/(1+b[0])]}),S=[d3.min(R,function(a){return a[0]}),d3.max(R,function(a){return a[1]})];f.yDomain(S)}F.domain([0,l[0].values.length-1]).range([0,N]).clamp(!0);var l=c(G.i,l),T=v?"none":"all",U=L.selectAll("g.nv-wrap.nv-cumulativeLine").data([l]),V=U.enter().append("g").attr("class","nvd3 nv-wrap nv-cumulativeLine").append("g"),W=U.select("g");if(V.append("g").attr("class","nv-interactive"),V.append("g").attr("class","nv-x nv-axis").style("pointer-events","none"),V.append("g").attr("class","nv-y nv-axis"),V.append("g").attr("class","nv-background"),V.append("g").attr("class","nv-linesWrap").style("pointer-events",T),V.append("g").attr("class","nv-avgLinesWrap").style("pointer-events","none"),V.append("g").attr("class","nv-legendWrap"),V.append("g").attr("class","nv-controlsWrap"),q&&(i.width(N),W.select(".nv-legendWrap").datum(l).call(i),m.top!=i.height()&&(m.top=i.height(),O=a.utils.availableHeight(p,L,m)),W.select(".nv-legendWrap").attr("transform","translate(0,"+-m.top+")")),u){var X=[{key:"Re-scale y-axis",disabled:!w}];j.width(140).color(["#444","#444","#444"]).rightAlign(!1).margin({top:5,right:0,bottom:5,left:20}),W.select(".nv-controlsWrap").datum(X).attr("transform","translate(0,"+-m.top+")").call(j)}U.attr("transform","translate("+m.left+","+m.top+")"),t&&W.select(".nv-y.nv-axis").attr("transform","translate("+N+",0)");var Y=l.filter(function(a){return a.tempDisabled});U.select(".tempDisabled").remove(),Y.length&&U.append("text").attr("class","tempDisabled").attr("x",N/2).attr("y","-.71em").style("text-anchor","end").text(Y.map(function(a){return a.key}).join(", ")+" values cannot be calculated for this time period."),v&&(k.width(N).height(O).margin({left:m.left,top:m.top}).svgContainer(L).xScale(d),U.select(".nv-interactive").call(k)),V.select(".nv-background").append("rect"),W.select(".nv-background rect").attr("width",N).attr("height",O),f.y(function(a){return a.display.y}).width(N).height(O).color(l.map(function(a,b){return a.color||n(a,b)}).filter(function(a,b){return!l[b].disabled&&!l[b].tempDisabled}));var Z=W.select(".nv-linesWrap").datum(l.filter(function(a){return!a.disabled&&!a.tempDisabled}));Z.call(f),l.forEach(function(a,b){a.seriesIndex=b});var $=l.filter(function(a){return!a.disabled&&!!B(a)}),_=W.select(".nv-avgLinesWrap").selectAll("line").data($,function(a){return a.key}),ab=function(a){var b=e(B(a));return 0>b?0:b>O?O:b};_.enter().append("line").style("stroke-width",2).style("stroke-dasharray","10,10").style("stroke",function(a){return f.color()(a,a.seriesIndex)}).attr("x1",0).attr("x2",N).attr("y1",ab).attr("y2",ab),_.style("stroke-opacity",function(a){var b=e(B(a));return 0>b||b>O?0:1}).attr("x1",0).attr("x2",N).attr("y1",ab).attr("y2",ab),_.exit().remove();var bb=Z.selectAll(".nv-indexLine").data([G]);bb.enter().append("rect").attr("class","nv-indexLine").attr("width",3).attr("x",-2).attr("fill","red").attr("fill-opacity",.5).style("pointer-events","all").call(Q),bb.attr("transform",function(a){return"translate("+F(a.i)+",0)"}).attr("height",O),r&&(g.scale(d)._ticks(a.utils.calcTicksX(N/70,l)).tickSize(-O,0),W.select(".nv-x.nv-axis").attr("transform","translate(0,"+e.range()[0]+")"),W.select(".nv-x.nv-axis").call(g)),s&&(h.scale(e)._ticks(a.utils.calcTicksY(O/36,l)).tickSize(-N,0),W.select(".nv-y.nv-axis").call(h)),W.select(".nv-background rect").on("click",function(){G.x=d3.mouse(this)[0],G.i=Math.round(F.invert(G.x)),y.index=G.i,C.stateChange(y),K()}),f.dispatch.on("elementClick",function(a){G.i=a.pointIndex,G.x=F(G.i),y.index=G.i,C.stateChange(y),K()}),j.dispatch.on("legendClick",function(a){a.disabled=!a.disabled,w=!a.disabled,y.rescaleY=w,C.stateChange(y),b.update()}),i.dispatch.on("stateChange",function(a){for(var c in a)y[c]=a[c];C.stateChange(y),b.update()}),k.dispatch.on("elementMousemove",function(c){f.clearHighlights();var d,e,i,j=[];if(l.filter(function(a,b){return a.seriesIndex=b,!a.disabled}).forEach(function(g,h){e=a.interactiveBisect(g.values,c.pointXValue,b.x()),f.highlightPoint(h,e,!0);var k=g.values[e];"undefined"!=typeof k&&("undefined"==typeof d&&(d=k),"undefined"==typeof i&&(i=b.xScale()(b.x()(k,e))),j.push({key:g.key,value:b.y()(k,e),color:n(g,g.seriesIndex)}))}),j.length>2){var o=b.yScale().invert(c.mouseY),p=Math.abs(b.yScale().domain()[0]-b.yScale().domain()[1]),q=.03*p,r=a.nearestValueIndex(j.map(function(a){return a.value}),o,q);null!==r&&(j[r].highlight=!0)}var s=g.tickFormat()(b.x()(d,e),e);k.tooltip.position({left:i+m.left,top:c.mouseY+m.top}).chartContainer(M.parentNode).valueFormatter(function(a){return h.tickFormat()(a)}).data({value:s,series:j})(),k.renderGuideLine(i)}),k.dispatch.on("elementMouseout",function(){f.clearHighlights()}),C.on("changeState",function(a){"undefined"!=typeof a.disabled&&(l.forEach(function(b,c){b.disabled=a.disabled[c]}),y.disabled=a.disabled),"undefined"!=typeof a.index&&(G.i=a.index,G.x=F(G.i),y.index=a.index,bb.data([G])),"undefined"!=typeof a.rescaleY&&(w=a.rescaleY),b.update()})}),H.renderEnd("cumulativeLineChart immediate"),b}function c(a,b){return K||(K=f.y()),b.map(function(b){if(!b.values)return b;var c=b.values[a];if(null==c)return b;var d=K(c,a);return-.95>d&&!E?(b.tempDisabled=!0,b):(b.tempDisabled=!1,b.values=b.values.map(function(a,b){return a.display={y:(K(a,b)-d)/(1+d)},a}),b)})}var d,e,f=a.models.line(),g=a.models.axis(),h=a.models.axis(),i=a.models.legend(),j=a.models.legend(),k=a.interactiveGuideline(),l=a.models.tooltip(),m={top:30,right:30,bottom:50,left:60},n=a.utils.defaultColor(),o=null,p=null,q=!0,r=!0,s=!0,t=!1,u=!0,v=!1,w=!0,x=f.id(),y=a.utils.state(),z=null,A=null,B=function(a){return a.average},C=d3.dispatch("stateChange","changeState","renderEnd"),D=250,E=!1;y.index=0,y.rescaleY=w,g.orient("bottom").tickPadding(7),h.orient(t?"right":"left"),l.valueFormatter(function(a,b){return h.tickFormat()(a,b)}).headerFormatter(function(a,b){return g.tickFormat()(a,b)}),j.updateState(!1);var F=d3.scale.linear(),G={i:0,x:0},H=a.utils.renderWatch(C,D),I=function(a){return function(){return{active:a.map(function(a){return!a.disabled}),index:G.i,rescaleY:w}}},J=function(a){return function(b){void 0!==b.index&&(G.i=b.index),void 0!==b.rescaleY&&(w=b.rescaleY),void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};f.dispatch.on("elementMouseover.tooltip",function(a){var c={x:b.x()(a.point),y:b.y()(a.point),color:a.point.color};a.point=c,l.data(a).position(a.pos).hidden(!1)}),f.dispatch.on("elementMouseout.tooltip",function(){l.hidden(!0)});var K=null;return b.dispatch=C,b.lines=f,b.legend=i,b.controls=j,b.xAxis=g,b.yAxis=h,b.interactiveLayer=k,b.state=y,b.tooltip=l,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return o},set:function(a){o=a}},height:{get:function(){return p},set:function(a){p=a}},rescaleY:{get:function(){return w},set:function(a){w=a}},showControls:{get:function(){return u},set:function(a){u=a}},showLegend:{get:function(){return q},set:function(a){q=a}},average:{get:function(){return B},set:function(a){B=a}},defaultState:{get:function(){return z},set:function(a){z=a}},noData:{get:function(){return A},set:function(a){A=a}},showXAxis:{get:function(){return r},set:function(a){r=a}},showYAxis:{get:function(){return s},set:function(a){s=a}},noErrorCheck:{get:function(){return E},set:function(a){E=a}},tooltips:{get:function(){return l.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),l.enabled(!!b)}},tooltipContent:{get:function(){return l.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),l.contentGenerator(b)}},margin:{get:function(){return m},set:function(a){m.top=void 0!==a.top?a.top:m.top,m.right=void 0!==a.right?a.right:m.right,m.bottom=void 0!==a.bottom?a.bottom:m.bottom,m.left=void 0!==a.left?a.left:m.left}},color:{get:function(){return n},set:function(b){n=a.utils.getColor(b),i.color(n)}},useInteractiveGuideline:{get:function(){return v},set:function(a){v=a,a===!0&&(b.interactive(!1),b.useVoronoi(!1))}},rightAlignYAxis:{get:function(){return t},set:function(a){t=a,h.orient(a?"right":"left")}},duration:{get:function(){return D},set:function(a){D=a,f.duration(D),g.duration(D),h.duration(D),H.reset(D)}}}),a.utils.inheritOptions(b,f),a.utils.initOptions(b),b},a.models.discreteBar=function(){"use strict";function b(m){return y.reset(),m.each(function(b){var m=k-j.left-j.right,x=l-j.top-j.bottom;c=d3.select(this),a.utils.initSVG(c),b.forEach(function(a,b){a.values.forEach(function(a){a.series=b})});var z=d&&e?[]:b.map(function(a){return a.values.map(function(a,b){return{x:p(a,b),y:q(a,b),y0:a.y0}})});n.domain(d||d3.merge(z).map(function(a){return a.x})).rangeBands(f||[0,m],.1),o.domain(e||d3.extent(d3.merge(z).map(function(a){return a.y}).concat(r))),o.range(t?g||[x-(o.domain()[0]<0?12:0),o.domain()[1]>0?12:0]:g||[x,0]),h=h||n,i=i||o.copy().range([o(0),o(0)]);{var A=c.selectAll("g.nv-wrap.nv-discretebar").data([b]),B=A.enter().append("g").attr("class","nvd3 nv-wrap nv-discretebar"),C=B.append("g");A.select("g")}C.append("g").attr("class","nv-groups"),A.attr("transform","translate("+j.left+","+j.top+")");var D=A.select(".nv-groups").selectAll(".nv-group").data(function(a){return a},function(a){return a.key});D.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),D.exit().watchTransition(y,"discreteBar: exit groups").style("stroke-opacity",1e-6).style("fill-opacity",1e-6).remove(),D.attr("class",function(a,b){return"nv-group nv-series-"+b}).classed("hover",function(a){return a.hover}),D.watchTransition(y,"discreteBar: groups").style("stroke-opacity",1).style("fill-opacity",.75);var E=D.selectAll("g.nv-bar").data(function(a){return a.values});E.exit().remove();var F=E.enter().append("g").attr("transform",function(a,b){return"translate("+(n(p(a,b))+.05*n.rangeBand())+", "+o(0)+")"}).on("mouseover",function(a,b){d3.select(this).classed("hover",!0),v.elementMouseover({data:a,index:b,color:d3.select(this).style("fill")})}).on("mouseout",function(a,b){d3.select(this).classed("hover",!1),v.elementMouseout({data:a,index:b,color:d3.select(this).style("fill")})}).on("mousemove",function(a,b){v.elementMousemove({data:a,index:b,color:d3.select(this).style("fill")})}).on("click",function(a,b){v.elementClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation()}).on("dblclick",function(a,b){v.elementDblClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation()});F.append("rect").attr("height",0).attr("width",.9*n.rangeBand()/b.length),t?(F.append("text").attr("text-anchor","middle"),E.select("text").text(function(a,b){return u(q(a,b))}).watchTransition(y,"discreteBar: bars text").attr("x",.9*n.rangeBand()/2).attr("y",function(a,b){return q(a,b)<0?o(q(a,b))-o(0)+12:-4})):E.selectAll("text").remove(),E.attr("class",function(a,b){return q(a,b)<0?"nv-bar negative":"nv-bar positive"}).style("fill",function(a,b){return a.color||s(a,b)}).style("stroke",function(a,b){return a.color||s(a,b)}).select("rect").attr("class",w).watchTransition(y,"discreteBar: bars rect").attr("width",.9*n.rangeBand()/b.length),E.watchTransition(y,"discreteBar: bars").attr("transform",function(a,b){var c=n(p(a,b))+.05*n.rangeBand(),d=q(a,b)<0?o(0):o(0)-o(q(a,b))<1?o(0)-1:o(q(a,b));return"translate("+c+", "+d+")"}).select("rect").attr("height",function(a,b){return Math.max(Math.abs(o(q(a,b))-o(e&&e[0]||0))||1)}),h=n.copy(),i=o.copy()}),y.renderEnd("discreteBar immediate"),b}var c,d,e,f,g,h,i,j={top:0,right:0,bottom:0,left:0},k=960,l=500,m=Math.floor(1e4*Math.random()),n=d3.scale.ordinal(),o=d3.scale.linear(),p=function(a){return a.x},q=function(a){return a.y},r=[0],s=a.utils.defaultColor(),t=!1,u=d3.format(",.2f"),v=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove","renderEnd"),w="discreteBar",x=250,y=a.utils.renderWatch(v,x);return b.dispatch=v,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return k},set:function(a){k=a}},height:{get:function(){return l},set:function(a){l=a}},forceY:{get:function(){return r},set:function(a){r=a}},showValues:{get:function(){return t},set:function(a){t=a}},x:{get:function(){return p},set:function(a){p=a}},y:{get:function(){return q},set:function(a){q=a}},xScale:{get:function(){return n},set:function(a){n=a}},yScale:{get:function(){return o},set:function(a){o=a}},xDomain:{get:function(){return d},set:function(a){d=a}},yDomain:{get:function(){return e},set:function(a){e=a}},xRange:{get:function(){return f},set:function(a){f=a}},yRange:{get:function(){return g},set:function(a){g=a}},valueFormat:{get:function(){return u},set:function(a){u=a}},id:{get:function(){return m},set:function(a){m=a}},rectClass:{get:function(){return w},set:function(a){w=a}},margin:{get:function(){return j},set:function(a){j.top=void 0!==a.top?a.top:j.top,j.right=void 0!==a.right?a.right:j.right,j.bottom=void 0!==a.bottom?a.bottom:j.bottom,j.left=void 0!==a.left?a.left:j.left}},color:{get:function(){return s},set:function(b){s=a.utils.getColor(b)}},duration:{get:function(){return x},set:function(a){x=a,y.reset(x)}}}),a.utils.initOptions(b),b},a.models.discreteBarChart=function(){"use strict";function b(h){return t.reset(),t.models(e),m&&t.models(f),n&&t.models(g),h.each(function(h){var l=d3.select(this);a.utils.initSVG(l);var q=a.utils.availableWidth(j,l,i),t=a.utils.availableHeight(k,l,i);if(b.update=function(){r.beforeUpdate(),l.transition().duration(s).call(b)},b.container=this,!(h&&h.length&&h.filter(function(a){return a.values.length}).length))return a.utils.noData(b,l),b;l.selectAll(".nv-noData").remove(),c=e.xScale(),d=e.yScale().clamp(!0);var u=l.selectAll("g.nv-wrap.nv-discreteBarWithAxes").data([h]),v=u.enter().append("g").attr("class","nvd3 nv-wrap nv-discreteBarWithAxes").append("g"),w=v.append("defs"),x=u.select("g");v.append("g").attr("class","nv-x nv-axis"),v.append("g").attr("class","nv-y nv-axis").append("g").attr("class","nv-zeroLine").append("line"),v.append("g").attr("class","nv-barsWrap"),x.attr("transform","translate("+i.left+","+i.top+")"),o&&x.select(".nv-y.nv-axis").attr("transform","translate("+q+",0)"),e.width(q).height(t);var y=x.select(".nv-barsWrap").datum(h.filter(function(a){return!a.disabled}));if(y.transition().call(e),w.append("clipPath").attr("id","nv-x-label-clip-"+e.id()).append("rect"),x.select("#nv-x-label-clip-"+e.id()+" rect").attr("width",c.rangeBand()*(p?2:1)).attr("height",16).attr("x",-c.rangeBand()/(p?1:2)),m){f.scale(c)._ticks(a.utils.calcTicksX(q/100,h)).tickSize(-t,0),x.select(".nv-x.nv-axis").attr("transform","translate(0,"+(d.range()[0]+(e.showValues()&&d.domain()[0]<0?16:0))+")"),x.select(".nv-x.nv-axis").call(f); +var z=x.select(".nv-x.nv-axis").selectAll("g");p&&z.selectAll("text").attr("transform",function(a,b,c){return"translate(0,"+(c%2==0?"5":"17")+")"})}n&&(g.scale(d)._ticks(a.utils.calcTicksY(t/36,h)).tickSize(-q,0),x.select(".nv-y.nv-axis").call(g)),x.select(".nv-zeroLine line").attr("x1",0).attr("x2",q).attr("y1",d(0)).attr("y2",d(0))}),t.renderEnd("discreteBar chart immediate"),b}var c,d,e=a.models.discreteBar(),f=a.models.axis(),g=a.models.axis(),h=a.models.tooltip(),i={top:15,right:10,bottom:50,left:60},j=null,k=null,l=a.utils.getColor(),m=!0,n=!0,o=!1,p=!1,q=null,r=d3.dispatch("beforeUpdate","renderEnd"),s=250;f.orient("bottom").showMaxMin(!1).tickFormat(function(a){return a}),g.orient(o?"right":"left").tickFormat(d3.format(",.1f")),h.duration(0).headerEnabled(!1).valueFormatter(function(a,b){return g.tickFormat()(a,b)}).keyFormatter(function(a,b){return f.tickFormat()(a,b)});var t=a.utils.renderWatch(r,s);return e.dispatch.on("elementMouseover.tooltip",function(a){a.series={key:b.x()(a.data),value:b.y()(a.data),color:a.color},h.data(a).hidden(!1)}),e.dispatch.on("elementMouseout.tooltip",function(){h.hidden(!0)}),e.dispatch.on("elementMousemove.tooltip",function(){h.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.dispatch=r,b.discretebar=e,b.xAxis=f,b.yAxis=g,b.tooltip=h,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return j},set:function(a){j=a}},height:{get:function(){return k},set:function(a){k=a}},staggerLabels:{get:function(){return p},set:function(a){p=a}},showXAxis:{get:function(){return m},set:function(a){m=a}},showYAxis:{get:function(){return n},set:function(a){n=a}},noData:{get:function(){return q},set:function(a){q=a}},tooltips:{get:function(){return h.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),h.enabled(!!b)}},tooltipContent:{get:function(){return h.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),h.contentGenerator(b)}},margin:{get:function(){return i},set:function(a){i.top=void 0!==a.top?a.top:i.top,i.right=void 0!==a.right?a.right:i.right,i.bottom=void 0!==a.bottom?a.bottom:i.bottom,i.left=void 0!==a.left?a.left:i.left}},duration:{get:function(){return s},set:function(a){s=a,t.reset(s),e.duration(s),f.duration(s),g.duration(s)}},color:{get:function(){return l},set:function(b){l=a.utils.getColor(b),e.color(l)}},rightAlignYAxis:{get:function(){return o},set:function(a){o=a,g.orient(a?"right":"left")}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.distribution=function(){"use strict";function b(k){return m.reset(),k.each(function(b){var k=(e-("x"===g?d.left+d.right:d.top+d.bottom),"x"==g?"y":"x"),l=d3.select(this);a.utils.initSVG(l),c=c||j;var n=l.selectAll("g.nv-distribution").data([b]),o=n.enter().append("g").attr("class","nvd3 nv-distribution"),p=(o.append("g"),n.select("g"));n.attr("transform","translate("+d.left+","+d.top+")");var q=p.selectAll("g.nv-dist").data(function(a){return a},function(a){return a.key});q.enter().append("g"),q.attr("class",function(a,b){return"nv-dist nv-series-"+b}).style("stroke",function(a,b){return i(a,b)});var r=q.selectAll("line.nv-dist"+g).data(function(a){return a.values});r.enter().append("line").attr(g+"1",function(a,b){return c(h(a,b))}).attr(g+"2",function(a,b){return c(h(a,b))}),m.transition(q.exit().selectAll("line.nv-dist"+g),"dist exit").attr(g+"1",function(a,b){return j(h(a,b))}).attr(g+"2",function(a,b){return j(h(a,b))}).style("stroke-opacity",0).remove(),r.attr("class",function(a,b){return"nv-dist"+g+" nv-dist"+g+"-"+b}).attr(k+"1",0).attr(k+"2",f),m.transition(r,"dist").attr(g+"1",function(a,b){return j(h(a,b))}).attr(g+"2",function(a,b){return j(h(a,b))}),c=j.copy()}),m.renderEnd("distribution immediate"),b}var c,d={top:0,right:0,bottom:0,left:0},e=400,f=8,g="x",h=function(a){return a[g]},i=a.utils.defaultColor(),j=d3.scale.linear(),k=250,l=d3.dispatch("renderEnd"),m=a.utils.renderWatch(l,k);return b.options=a.utils.optionsFunc.bind(b),b.dispatch=l,b.margin=function(a){return arguments.length?(d.top="undefined"!=typeof a.top?a.top:d.top,d.right="undefined"!=typeof a.right?a.right:d.right,d.bottom="undefined"!=typeof a.bottom?a.bottom:d.bottom,d.left="undefined"!=typeof a.left?a.left:d.left,b):d},b.width=function(a){return arguments.length?(e=a,b):e},b.axis=function(a){return arguments.length?(g=a,b):g},b.size=function(a){return arguments.length?(f=a,b):f},b.getData=function(a){return arguments.length?(h=d3.functor(a),b):h},b.scale=function(a){return arguments.length?(j=a,b):j},b.color=function(c){return arguments.length?(i=a.utils.getColor(c),b):i},b.duration=function(a){return arguments.length?(k=a,m.reset(k),b):k},b},a.models.furiousLegend=function(){"use strict";function b(p){function q(a,b){return"furious"!=o?"#000":m?a.disengaged?g(a,b):"#fff":m?void 0:a.disabled?g(a,b):"#fff"}function r(a,b){return m&&"furious"==o?a.disengaged?"#fff":g(a,b):a.disabled?"#fff":g(a,b)}return p.each(function(b){var p=d-c.left-c.right,s=d3.select(this);a.utils.initSVG(s);var t=s.selectAll("g.nv-legend").data([b]),u=(t.enter().append("g").attr("class","nvd3 nv-legend").append("g"),t.select("g"));t.attr("transform","translate("+c.left+","+c.top+")");var v,w=u.selectAll(".nv-series").data(function(a){return"furious"!=o?a:a.filter(function(a){return m?!0:!a.disengaged})}),x=w.enter().append("g").attr("class","nv-series");if("classic"==o)x.append("circle").style("stroke-width",2).attr("class","nv-legend-symbol").attr("r",5),v=w.select("circle");else if("furious"==o){x.append("rect").style("stroke-width",2).attr("class","nv-legend-symbol").attr("rx",3).attr("ry",3),v=w.select("rect"),x.append("g").attr("class","nv-check-box").property("innerHTML",'<path d="M0.5,5 L22.5,5 L22.5,26.5 L0.5,26.5 L0.5,5 Z" class="nv-box"></path><path d="M5.5,12.8618467 L11.9185089,19.2803556 L31,0.198864511" class="nv-check"></path>').attr("transform","translate(-10,-8)scale(0.5)");var y=w.select(".nv-check-box");y.each(function(a,b){d3.select(this).selectAll("path").attr("stroke",q(a,b))})}x.append("text").attr("text-anchor","start").attr("class","nv-legend-text").attr("dy",".32em").attr("dx","8");var z=w.select("text.nv-legend-text");w.on("mouseover",function(a,b){n.legendMouseover(a,b)}).on("mouseout",function(a,b){n.legendMouseout(a,b)}).on("click",function(a,b){n.legendClick(a,b);var c=w.data();if(k){if("classic"==o)l?(c.forEach(function(a){a.disabled=!0}),a.disabled=!1):(a.disabled=!a.disabled,c.every(function(a){return a.disabled})&&c.forEach(function(a){a.disabled=!1}));else if("furious"==o)if(m)a.disengaged=!a.disengaged,a.userDisabled=void 0==a.userDisabled?!!a.disabled:a.userDisabled,a.disabled=a.disengaged||a.userDisabled;else if(!m){a.disabled=!a.disabled,a.userDisabled=a.disabled;var d=c.filter(function(a){return!a.disengaged});d.every(function(a){return a.userDisabled})&&c.forEach(function(a){a.disabled=a.userDisabled=!1})}n.stateChange({disabled:c.map(function(a){return!!a.disabled}),disengaged:c.map(function(a){return!!a.disengaged})})}}).on("dblclick",function(a,b){if(("furious"!=o||!m)&&(n.legendDblclick(a,b),k)){var c=w.data();c.forEach(function(a){a.disabled=!0,"furious"==o&&(a.userDisabled=a.disabled)}),a.disabled=!1,"furious"==o&&(a.userDisabled=a.disabled),n.stateChange({disabled:c.map(function(a){return!!a.disabled})})}}),w.classed("nv-disabled",function(a){return a.userDisabled}),w.exit().remove(),z.attr("fill",q).text(f);var A;switch(o){case"furious":A=23;break;case"classic":A=20}if(h){var B=[];w.each(function(){var b,c=d3.select(this).select("text");try{if(b=c.node().getComputedTextLength(),0>=b)throw Error()}catch(d){b=a.utils.calcApproxTextWidth(c)}B.push(b+i)});for(var C=0,D=0,E=[];p>D&&C<B.length;)E[C]=B[C],D+=B[C++];for(0===C&&(C=1);D>p&&C>1;){E=[],C--;for(var F=0;F<B.length;F++)B[F]>(E[F%C]||0)&&(E[F%C]=B[F]);D=E.reduce(function(a,b){return a+b})}for(var G=[],H=0,I=0;C>H;H++)G[H]=I,I+=E[H];w.attr("transform",function(a,b){return"translate("+G[b%C]+","+(5+Math.floor(b/C)*A)+")"}),j?u.attr("transform","translate("+(d-c.right-D)+","+c.top+")"):u.attr("transform","translate(0,"+c.top+")"),e=c.top+c.bottom+Math.ceil(B.length/C)*A}else{var J,K=5,L=5,M=0;w.attr("transform",function(){var a=d3.select(this).select("text").node().getComputedTextLength()+i;return J=L,d<c.left+c.right+J+a&&(L=J=5,K+=A),L+=a,L>M&&(M=L),"translate("+J+","+K+")"}),u.attr("transform","translate("+(d-c.right-M)+","+c.top+")"),e=c.top+c.bottom+K+15}"furious"==o&&v.attr("width",function(a,b){return z[0][b].getComputedTextLength()+27}).attr("height",18).attr("y",-9).attr("x",-15),v.style("fill",r).style("stroke",function(a,b){return a.color||g(a,b)})}),b}var c={top:5,right:0,bottom:5,left:0},d=400,e=20,f=function(a){return a.key},g=a.utils.getColor(),h=!0,i=28,j=!0,k=!0,l=!1,m=!1,n=d3.dispatch("legendClick","legendDblclick","legendMouseover","legendMouseout","stateChange"),o="classic";return b.dispatch=n,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return d},set:function(a){d=a}},height:{get:function(){return e},set:function(a){e=a}},key:{get:function(){return f},set:function(a){f=a}},align:{get:function(){return h},set:function(a){h=a}},rightAlign:{get:function(){return j},set:function(a){j=a}},padding:{get:function(){return i},set:function(a){i=a}},updateState:{get:function(){return k},set:function(a){k=a}},radioButtonMode:{get:function(){return l},set:function(a){l=a}},expanded:{get:function(){return m},set:function(a){m=a}},vers:{get:function(){return o},set:function(a){o=a}},margin:{get:function(){return c},set:function(a){c.top=void 0!==a.top?a.top:c.top,c.right=void 0!==a.right?a.right:c.right,c.bottom=void 0!==a.bottom?a.bottom:c.bottom,c.left=void 0!==a.left?a.left:c.left}},color:{get:function(){return g},set:function(b){g=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.historicalBar=function(){"use strict";function b(x){return x.each(function(b){w.reset(),k=d3.select(this);var x=a.utils.availableWidth(h,k,g),y=a.utils.availableHeight(i,k,g);a.utils.initSVG(k),l.domain(c||d3.extent(b[0].values.map(n).concat(p))),l.range(r?e||[.5*x/b[0].values.length,x*(b[0].values.length-.5)/b[0].values.length]:e||[0,x]),m.domain(d||d3.extent(b[0].values.map(o).concat(q))).range(f||[y,0]),l.domain()[0]===l.domain()[1]&&l.domain(l.domain()[0]?[l.domain()[0]-.01*l.domain()[0],l.domain()[1]+.01*l.domain()[1]]:[-1,1]),m.domain()[0]===m.domain()[1]&&m.domain(m.domain()[0]?[m.domain()[0]+.01*m.domain()[0],m.domain()[1]-.01*m.domain()[1]]:[-1,1]);var z=k.selectAll("g.nv-wrap.nv-historicalBar-"+j).data([b[0].values]),A=z.enter().append("g").attr("class","nvd3 nv-wrap nv-historicalBar-"+j),B=A.append("defs"),C=A.append("g"),D=z.select("g");C.append("g").attr("class","nv-bars"),z.attr("transform","translate("+g.left+","+g.top+")"),k.on("click",function(a,b){u.chartClick({data:a,index:b,pos:d3.event,id:j})}),B.append("clipPath").attr("id","nv-chart-clip-path-"+j).append("rect"),z.select("#nv-chart-clip-path-"+j+" rect").attr("width",x).attr("height",y),D.attr("clip-path",s?"url(#nv-chart-clip-path-"+j+")":"");var E=z.select(".nv-bars").selectAll(".nv-bar").data(function(a){return a},function(a,b){return n(a,b)});E.exit().remove(),E.enter().append("rect").attr("x",0).attr("y",function(b,c){return a.utils.NaNtoZero(m(Math.max(0,o(b,c))))}).attr("height",function(b,c){return a.utils.NaNtoZero(Math.abs(m(o(b,c))-m(0)))}).attr("transform",function(a,c){return"translate("+(l(n(a,c))-x/b[0].values.length*.45)+",0)"}).on("mouseover",function(a,b){v&&(d3.select(this).classed("hover",!0),u.elementMouseover({data:a,index:b,color:d3.select(this).style("fill")}))}).on("mouseout",function(a,b){v&&(d3.select(this).classed("hover",!1),u.elementMouseout({data:a,index:b,color:d3.select(this).style("fill")}))}).on("mousemove",function(a,b){v&&u.elementMousemove({data:a,index:b,color:d3.select(this).style("fill")})}).on("click",function(a,b){v&&(u.elementClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation())}).on("dblclick",function(a,b){v&&(u.elementDblClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation())}),E.attr("fill",function(a,b){return t(a,b)}).attr("class",function(a,b,c){return(o(a,b)<0?"nv-bar negative":"nv-bar positive")+" nv-bar-"+c+"-"+b}).watchTransition(w,"bars").attr("transform",function(a,c){return"translate("+(l(n(a,c))-x/b[0].values.length*.45)+",0)"}).attr("width",x/b[0].values.length*.9),E.watchTransition(w,"bars").attr("y",function(b,c){var d=o(b,c)<0?m(0):m(0)-m(o(b,c))<1?m(0)-1:m(o(b,c));return a.utils.NaNtoZero(d)}).attr("height",function(b,c){return a.utils.NaNtoZero(Math.max(Math.abs(m(o(b,c))-m(0)),1))})}),w.renderEnd("historicalBar immediate"),b}var c,d,e,f,g={top:0,right:0,bottom:0,left:0},h=null,i=null,j=Math.floor(1e4*Math.random()),k=null,l=d3.scale.linear(),m=d3.scale.linear(),n=function(a){return a.x},o=function(a){return a.y},p=[],q=[0],r=!1,s=!0,t=a.utils.defaultColor(),u=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove","renderEnd"),v=!0,w=a.utils.renderWatch(u,0);return b.highlightPoint=function(a,b){k.select(".nv-bars .nv-bar-0-"+a).classed("hover",b)},b.clearHighlights=function(){k.select(".nv-bars .nv-bar.hover").classed("hover",!1)},b.dispatch=u,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return h},set:function(a){h=a}},height:{get:function(){return i},set:function(a){i=a}},forceX:{get:function(){return p},set:function(a){p=a}},forceY:{get:function(){return q},set:function(a){q=a}},padData:{get:function(){return r},set:function(a){r=a}},x:{get:function(){return n},set:function(a){n=a}},y:{get:function(){return o},set:function(a){o=a}},xScale:{get:function(){return l},set:function(a){l=a}},yScale:{get:function(){return m},set:function(a){m=a}},xDomain:{get:function(){return c},set:function(a){c=a}},yDomain:{get:function(){return d},set:function(a){d=a}},xRange:{get:function(){return e},set:function(a){e=a}},yRange:{get:function(){return f},set:function(a){f=a}},clipEdge:{get:function(){return s},set:function(a){s=a}},id:{get:function(){return j},set:function(a){j=a}},interactive:{get:function(){return v},set:function(a){v=a}},margin:{get:function(){return g},set:function(a){g.top=void 0!==a.top?a.top:g.top,g.right=void 0!==a.right?a.right:g.right,g.bottom=void 0!==a.bottom?a.bottom:g.bottom,g.left=void 0!==a.left?a.left:g.left}},color:{get:function(){return t},set:function(b){t=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.historicalBarChart=function(b){"use strict";function c(b){return b.each(function(k){z.reset(),z.models(f),q&&z.models(g),r&&z.models(h);var w=d3.select(this),A=this;a.utils.initSVG(w);var B=a.utils.availableWidth(n,w,l),C=a.utils.availableHeight(o,w,l);if(c.update=function(){w.transition().duration(y).call(c)},c.container=this,u.disabled=k.map(function(a){return!!a.disabled}),!v){var D;v={};for(D in u)v[D]=u[D]instanceof Array?u[D].slice(0):u[D]}if(!(k&&k.length&&k.filter(function(a){return a.values.length}).length))return a.utils.noData(c,w),c;w.selectAll(".nv-noData").remove(),d=f.xScale(),e=f.yScale();var E=w.selectAll("g.nv-wrap.nv-historicalBarChart").data([k]),F=E.enter().append("g").attr("class","nvd3 nv-wrap nv-historicalBarChart").append("g"),G=E.select("g");F.append("g").attr("class","nv-x nv-axis"),F.append("g").attr("class","nv-y nv-axis"),F.append("g").attr("class","nv-barsWrap"),F.append("g").attr("class","nv-legendWrap"),F.append("g").attr("class","nv-interactive"),p&&(i.width(B),G.select(".nv-legendWrap").datum(k).call(i),l.top!=i.height()&&(l.top=i.height(),C=a.utils.availableHeight(o,w,l)),E.select(".nv-legendWrap").attr("transform","translate(0,"+-l.top+")")),E.attr("transform","translate("+l.left+","+l.top+")"),s&&G.select(".nv-y.nv-axis").attr("transform","translate("+B+",0)"),t&&(j.width(B).height(C).margin({left:l.left,top:l.top}).svgContainer(w).xScale(d),E.select(".nv-interactive").call(j)),f.width(B).height(C).color(k.map(function(a,b){return a.color||m(a,b)}).filter(function(a,b){return!k[b].disabled}));var H=G.select(".nv-barsWrap").datum(k.filter(function(a){return!a.disabled}));H.transition().call(f),q&&(g.scale(d)._ticks(a.utils.calcTicksX(B/100,k)).tickSize(-C,0),G.select(".nv-x.nv-axis").attr("transform","translate(0,"+e.range()[0]+")"),G.select(".nv-x.nv-axis").transition().call(g)),r&&(h.scale(e)._ticks(a.utils.calcTicksY(C/36,k)).tickSize(-B,0),G.select(".nv-y.nv-axis").transition().call(h)),j.dispatch.on("elementMousemove",function(b){f.clearHighlights();var d,e,i,n=[];k.filter(function(a,b){return a.seriesIndex=b,!a.disabled}).forEach(function(g){e=a.interactiveBisect(g.values,b.pointXValue,c.x()),f.highlightPoint(e,!0);var h=g.values[e];void 0!==h&&(void 0===d&&(d=h),void 0===i&&(i=c.xScale()(c.x()(h,e))),n.push({key:g.key,value:c.y()(h,e),color:m(g,g.seriesIndex),data:g.values[e]}))});var o=g.tickFormat()(c.x()(d,e));j.tooltip.position({left:i+l.left,top:b.mouseY+l.top}).chartContainer(A.parentNode).valueFormatter(function(a){return h.tickFormat()(a)}).data({value:o,index:e,series:n})(),j.renderGuideLine(i)}),j.dispatch.on("elementMouseout",function(){x.tooltipHide(),f.clearHighlights()}),i.dispatch.on("legendClick",function(a){a.disabled=!a.disabled,k.filter(function(a){return!a.disabled}).length||k.map(function(a){return a.disabled=!1,E.selectAll(".nv-series").classed("disabled",!1),a}),u.disabled=k.map(function(a){return!!a.disabled}),x.stateChange(u),b.transition().call(c)}),i.dispatch.on("legendDblclick",function(a){k.forEach(function(a){a.disabled=!0}),a.disabled=!1,u.disabled=k.map(function(a){return!!a.disabled}),x.stateChange(u),c.update()}),x.on("changeState",function(a){"undefined"!=typeof a.disabled&&(k.forEach(function(b,c){b.disabled=a.disabled[c]}),u.disabled=a.disabled),c.update()})}),z.renderEnd("historicalBarChart immediate"),c}var d,e,f=b||a.models.historicalBar(),g=a.models.axis(),h=a.models.axis(),i=a.models.legend(),j=a.interactiveGuideline(),k=a.models.tooltip(),l={top:30,right:90,bottom:50,left:90},m=a.utils.defaultColor(),n=null,o=null,p=!1,q=!0,r=!0,s=!1,t=!1,u={},v=null,w=null,x=d3.dispatch("tooltipHide","stateChange","changeState","renderEnd"),y=250;g.orient("bottom").tickPadding(7),h.orient(s?"right":"left"),k.duration(0).headerEnabled(!1).valueFormatter(function(a,b){return h.tickFormat()(a,b)}).headerFormatter(function(a,b){return g.tickFormat()(a,b)});var z=a.utils.renderWatch(x,0);return f.dispatch.on("elementMouseover.tooltip",function(a){a.series={key:c.x()(a.data),value:c.y()(a.data),color:a.color},k.data(a).hidden(!1)}),f.dispatch.on("elementMouseout.tooltip",function(){k.hidden(!0)}),f.dispatch.on("elementMousemove.tooltip",function(){k.position({top:d3.event.pageY,left:d3.event.pageX})()}),c.dispatch=x,c.bars=f,c.legend=i,c.xAxis=g,c.yAxis=h,c.interactiveLayer=j,c.tooltip=k,c.options=a.utils.optionsFunc.bind(c),c._options=Object.create({},{width:{get:function(){return n},set:function(a){n=a}},height:{get:function(){return o},set:function(a){o=a}},showLegend:{get:function(){return p},set:function(a){p=a}},showXAxis:{get:function(){return q},set:function(a){q=a}},showYAxis:{get:function(){return r},set:function(a){r=a}},defaultState:{get:function(){return v},set:function(a){v=a}},noData:{get:function(){return w},set:function(a){w=a}},tooltips:{get:function(){return k.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),k.enabled(!!b)}},tooltipContent:{get:function(){return k.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),k.contentGenerator(b)}},margin:{get:function(){return l},set:function(a){l.top=void 0!==a.top?a.top:l.top,l.right=void 0!==a.right?a.right:l.right,l.bottom=void 0!==a.bottom?a.bottom:l.bottom,l.left=void 0!==a.left?a.left:l.left}},color:{get:function(){return m},set:function(b){m=a.utils.getColor(b),i.color(m),f.color(m)}},duration:{get:function(){return y},set:function(a){y=a,z.reset(y),h.duration(y),g.duration(y)}},rightAlignYAxis:{get:function(){return s},set:function(a){s=a,h.orient(a?"right":"left")}},useInteractiveGuideline:{get:function(){return t},set:function(a){t=a,a===!0&&c.interactive(!1)}}}),a.utils.inheritOptions(c,f),a.utils.initOptions(c),c},a.models.ohlcBarChart=function(){var b=a.models.historicalBarChart(a.models.ohlcBar());return b.useInteractiveGuideline(!0),b.interactiveLayer.tooltip.contentGenerator(function(a){var c=a.series[0].data,d=c.open<c.close?"2ca02c":"d62728";return'<h3 style="color: #'+d+'">'+a.value+"</h3><table><tr><td>open:</td><td>"+b.yAxis.tickFormat()(c.open)+"</td></tr><tr><td>close:</td><td>"+b.yAxis.tickFormat()(c.close)+"</td></tr><tr><td>high</td><td>"+b.yAxis.tickFormat()(c.high)+"</td></tr><tr><td>low:</td><td>"+b.yAxis.tickFormat()(c.low)+"</td></tr></table>"}),b},a.models.candlestickBarChart=function(){var b=a.models.historicalBarChart(a.models.candlestickBar());return b.useInteractiveGuideline(!0),b.interactiveLayer.tooltip.contentGenerator(function(a){var c=a.series[0].data,d=c.open<c.close?"2ca02c":"d62728";return'<h3 style="color: #'+d+'">'+a.value+"</h3><table><tr><td>open:</td><td>"+b.yAxis.tickFormat()(c.open)+"</td></tr><tr><td>close:</td><td>"+b.yAxis.tickFormat()(c.close)+"</td></tr><tr><td>high</td><td>"+b.yAxis.tickFormat()(c.high)+"</td></tr><tr><td>low:</td><td>"+b.yAxis.tickFormat()(c.low)+"</td></tr></table>"}),b},a.models.legend=function(){"use strict";function b(p){function q(a,b){return"furious"!=o?"#000":m?a.disengaged?"#000":"#fff":m?void 0:(a.color||(a.color=g(a,b)),a.disabled?a.color:"#fff")}function r(a,b){return m&&"furious"==o&&a.disengaged?"#eee":a.color||g(a,b)}function s(a){return m&&"furious"==o?1:a.disabled?0:1}return p.each(function(b){var g=d-c.left-c.right,p=d3.select(this);a.utils.initSVG(p);var t=p.selectAll("g.nv-legend").data([b]),u=t.enter().append("g").attr("class","nvd3 nv-legend").append("g"),v=t.select("g");t.attr("transform","translate("+c.left+","+c.top+")");var w,x,y=v.selectAll(".nv-series").data(function(a){return"furious"!=o?a:a.filter(function(a){return m?!0:!a.disengaged})}),z=y.enter().append("g").attr("class","nv-series");switch(o){case"furious":x=23;break;case"classic":x=20}if("classic"==o)z.append("circle").style("stroke-width",2).attr("class","nv-legend-symbol").attr("r",5),w=y.select("circle");else if("furious"==o){z.append("rect").style("stroke-width",2).attr("class","nv-legend-symbol").attr("rx",3).attr("ry",3),w=y.select(".nv-legend-symbol"),z.append("g").attr("class","nv-check-box").property("innerHTML",'<path d="M0.5,5 L22.5,5 L22.5,26.5 L0.5,26.5 L0.5,5 Z" class="nv-box"></path><path d="M5.5,12.8618467 L11.9185089,19.2803556 L31,0.198864511" class="nv-check"></path>').attr("transform","translate(-10,-8)scale(0.5)");var A=y.select(".nv-check-box");A.each(function(a,b){d3.select(this).selectAll("path").attr("stroke",q(a,b))})}z.append("text").attr("text-anchor","start").attr("class","nv-legend-text").attr("dy",".32em").attr("dx","8");var B=y.select("text.nv-legend-text");y.on("mouseover",function(a,b){n.legendMouseover(a,b)}).on("mouseout",function(a,b){n.legendMouseout(a,b)}).on("click",function(a,b){n.legendClick(a,b);var c=y.data();if(k){if("classic"==o)l?(c.forEach(function(a){a.disabled=!0}),a.disabled=!1):(a.disabled=!a.disabled,c.every(function(a){return a.disabled})&&c.forEach(function(a){a.disabled=!1}));else if("furious"==o)if(m)a.disengaged=!a.disengaged,a.userDisabled=void 0==a.userDisabled?!!a.disabled:a.userDisabled,a.disabled=a.disengaged||a.userDisabled;else if(!m){a.disabled=!a.disabled,a.userDisabled=a.disabled;var d=c.filter(function(a){return!a.disengaged});d.every(function(a){return a.userDisabled})&&c.forEach(function(a){a.disabled=a.userDisabled=!1})}n.stateChange({disabled:c.map(function(a){return!!a.disabled}),disengaged:c.map(function(a){return!!a.disengaged})})}}).on("dblclick",function(a,b){if(("furious"!=o||!m)&&(n.legendDblclick(a,b),k)){var c=y.data();c.forEach(function(a){a.disabled=!0,"furious"==o&&(a.userDisabled=a.disabled)}),a.disabled=!1,"furious"==o&&(a.userDisabled=a.disabled),n.stateChange({disabled:c.map(function(a){return!!a.disabled})})}}),y.classed("nv-disabled",function(a){return a.userDisabled}),y.exit().remove(),B.attr("fill",q).text(f);var C=0;if(h){var D=[];y.each(function(){var b,c=d3.select(this).select("text");try{if(b=c.node().getComputedTextLength(),0>=b)throw Error()}catch(d){b=a.utils.calcApproxTextWidth(c)}D.push(b+i)});var E=0,F=[];for(C=0;g>C&&E<D.length;)F[E]=D[E],C+=D[E++];for(0===E&&(E=1);C>g&&E>1;){F=[],E--;for(var G=0;G<D.length;G++)D[G]>(F[G%E]||0)&&(F[G%E]=D[G]);C=F.reduce(function(a,b){return a+b})}for(var H=[],I=0,J=0;E>I;I++)H[I]=J,J+=F[I];y.attr("transform",function(a,b){return"translate("+H[b%E]+","+(5+Math.floor(b/E)*x)+")"}),j?v.attr("transform","translate("+(d-c.right-C)+","+c.top+")"):v.attr("transform","translate(0,"+c.top+")"),e=c.top+c.bottom+Math.ceil(D.length/E)*x}else{var K,L=5,M=5,N=0;y.attr("transform",function(){var a=d3.select(this).select("text").node().getComputedTextLength()+i;return K=M,d<c.left+c.right+K+a&&(M=K=5,L+=x),M+=a,M>N&&(N=M),K+N>C&&(C=K+N),"translate("+K+","+L+")"}),v.attr("transform","translate("+(d-c.right-N)+","+c.top+")"),e=c.top+c.bottom+L+15}if("furious"==o){w.attr("width",function(a,b){return B[0][b].getComputedTextLength()+27}).attr("height",18).attr("y",-9).attr("x",-15),u.insert("rect",":first-child").attr("class","nv-legend-bg").attr("fill","#eee").attr("opacity",0);var O=v.select(".nv-legend-bg");O.transition().duration(300).attr("x",-x).attr("width",C+x-12).attr("height",e+10).attr("y",-c.top-10).attr("opacity",m?1:0)}w.style("fill",r).style("fill-opacity",s).style("stroke",r)}),b}var c={top:5,right:0,bottom:5,left:0},d=400,e=20,f=function(a){return a.key},g=a.utils.getColor(),h=!0,i=32,j=!0,k=!0,l=!1,m=!1,n=d3.dispatch("legendClick","legendDblclick","legendMouseover","legendMouseout","stateChange"),o="classic";return b.dispatch=n,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return d},set:function(a){d=a}},height:{get:function(){return e},set:function(a){e=a}},key:{get:function(){return f},set:function(a){f=a}},align:{get:function(){return h},set:function(a){h=a}},rightAlign:{get:function(){return j},set:function(a){j=a}},padding:{get:function(){return i},set:function(a){i=a}},updateState:{get:function(){return k},set:function(a){k=a}},radioButtonMode:{get:function(){return l},set:function(a){l=a}},expanded:{get:function(){return m},set:function(a){m=a}},vers:{get:function(){return o},set:function(a){o=a}},margin:{get:function(){return c},set:function(a){c.top=void 0!==a.top?a.top:c.top,c.right=void 0!==a.right?a.right:c.right,c.bottom=void 0!==a.bottom?a.bottom:c.bottom,c.left=void 0!==a.left?a.left:c.left}},color:{get:function(){return g},set:function(b){g=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.line=function(){"use strict";function b(r){return v.reset(),v.models(e),r.each(function(b){i=d3.select(this);var r=a.utils.availableWidth(g,i,f),s=a.utils.availableHeight(h,i,f);a.utils.initSVG(i),c=e.xScale(),d=e.yScale(),t=t||c,u=u||d;var w=i.selectAll("g.nv-wrap.nv-line").data([b]),x=w.enter().append("g").attr("class","nvd3 nv-wrap nv-line"),y=x.append("defs"),z=x.append("g"),A=w.select("g");z.append("g").attr("class","nv-groups"),z.append("g").attr("class","nv-scatterWrap"),w.attr("transform","translate("+f.left+","+f.top+")"),e.width(r).height(s);var B=w.select(".nv-scatterWrap");B.call(e),y.append("clipPath").attr("id","nv-edge-clip-"+e.id()).append("rect"),w.select("#nv-edge-clip-"+e.id()+" rect").attr("width",r).attr("height",s>0?s:0),A.attr("clip-path",p?"url(#nv-edge-clip-"+e.id()+")":""),B.attr("clip-path",p?"url(#nv-edge-clip-"+e.id()+")":"");var C=w.select(".nv-groups").selectAll(".nv-group").data(function(a){return a},function(a){return a.key});C.enter().append("g").style("stroke-opacity",1e-6).style("stroke-width",function(a){return a.strokeWidth||j}).style("fill-opacity",1e-6),C.exit().remove(),C.attr("class",function(a,b){return(a.classed||"")+" nv-group nv-series-"+b}).classed("hover",function(a){return a.hover}).style("fill",function(a,b){return k(a,b)}).style("stroke",function(a,b){return k(a,b)}),C.watchTransition(v,"line: groups").style("stroke-opacity",1).style("fill-opacity",function(a){return a.fillOpacity||.5});var D=C.selectAll("path.nv-area").data(function(a){return o(a)?[a]:[]});D.enter().append("path").attr("class","nv-area").attr("d",function(b){return d3.svg.area().interpolate(q).defined(n).x(function(b,c){return a.utils.NaNtoZero(t(l(b,c)))}).y0(function(b,c){return a.utils.NaNtoZero(u(m(b,c)))}).y1(function(){return u(d.domain()[0]<=0?d.domain()[1]>=0?0:d.domain()[1]:d.domain()[0])}).apply(this,[b.values])}),C.exit().selectAll("path.nv-area").remove(),D.watchTransition(v,"line: areaPaths").attr("d",function(b){return d3.svg.area().interpolate(q).defined(n).x(function(b,d){return a.utils.NaNtoZero(c(l(b,d)))}).y0(function(b,c){return a.utils.NaNtoZero(d(m(b,c)))}).y1(function(){return d(d.domain()[0]<=0?d.domain()[1]>=0?0:d.domain()[1]:d.domain()[0])}).apply(this,[b.values])});var E=C.selectAll("path.nv-line").data(function(a){return[a.values]});E.enter().append("path").attr("class","nv-line").attr("d",d3.svg.line().interpolate(q).defined(n).x(function(b,c){return a.utils.NaNtoZero(t(l(b,c)))}).y(function(b,c){return a.utils.NaNtoZero(u(m(b,c)))})),E.watchTransition(v,"line: linePaths").attr("d",d3.svg.line().interpolate(q).defined(n).x(function(b,d){return a.utils.NaNtoZero(c(l(b,d)))}).y(function(b,c){return a.utils.NaNtoZero(d(m(b,c)))})),t=c.copy(),u=d.copy()}),v.renderEnd("line immediate"),b}var c,d,e=a.models.scatter(),f={top:0,right:0,bottom:0,left:0},g=960,h=500,i=null,j=1.5,k=a.utils.defaultColor(),l=function(a){return a.x},m=function(a){return a.y},n=function(a,b){return!isNaN(m(a,b))&&null!==m(a,b)},o=function(a){return a.area},p=!1,q="linear",r=250,s=d3.dispatch("elementClick","elementMouseover","elementMouseout","renderEnd");e.pointSize(16).pointDomain([16,256]);var t,u,v=a.utils.renderWatch(s,r);return b.dispatch=s,b.scatter=e,e.dispatch.on("elementClick",function(){s.elementClick.apply(this,arguments)}),e.dispatch.on("elementMouseover",function(){s.elementMouseover.apply(this,arguments)}),e.dispatch.on("elementMouseout",function(){s.elementMouseout.apply(this,arguments)}),b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return g},set:function(a){g=a}},height:{get:function(){return h},set:function(a){h=a}},defined:{get:function(){return n},set:function(a){n=a}},interpolate:{get:function(){return q},set:function(a){q=a}},clipEdge:{get:function(){return p},set:function(a){p=a}},margin:{get:function(){return f},set:function(a){f.top=void 0!==a.top?a.top:f.top,f.right=void 0!==a.right?a.right:f.right,f.bottom=void 0!==a.bottom?a.bottom:f.bottom,f.left=void 0!==a.left?a.left:f.left}},duration:{get:function(){return r},set:function(a){r=a,v.reset(r),e.duration(r)}},isArea:{get:function(){return o},set:function(a){o=d3.functor(a)}},x:{get:function(){return l},set:function(a){l=a,e.x(a)}},y:{get:function(){return m},set:function(a){m=a,e.y(a)}},color:{get:function(){return k},set:function(b){k=a.utils.getColor(b),e.color(k)}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.lineChart=function(){"use strict";function b(j){return y.reset(),y.models(e),p&&y.models(f),q&&y.models(g),j.each(function(j){var v=d3.select(this),y=this;a.utils.initSVG(v);var B=a.utils.availableWidth(m,v,k),C=a.utils.availableHeight(n,v,k);if(b.update=function(){0===x?v.call(b):v.transition().duration(x).call(b)},b.container=this,t.setter(A(j),b.update).getter(z(j)).update(),t.disabled=j.map(function(a){return!!a.disabled}),!u){var D;u={};for(D in t)u[D]=t[D]instanceof Array?t[D].slice(0):t[D] +}if(!(j&&j.length&&j.filter(function(a){return a.values.length}).length))return a.utils.noData(b,v),b;v.selectAll(".nv-noData").remove(),c=e.xScale(),d=e.yScale();var E=v.selectAll("g.nv-wrap.nv-lineChart").data([j]),F=E.enter().append("g").attr("class","nvd3 nv-wrap nv-lineChart").append("g"),G=E.select("g");F.append("rect").style("opacity",0),F.append("g").attr("class","nv-x nv-axis"),F.append("g").attr("class","nv-y nv-axis"),F.append("g").attr("class","nv-linesWrap"),F.append("g").attr("class","nv-legendWrap"),F.append("g").attr("class","nv-interactive"),G.select("rect").attr("width",B).attr("height",C>0?C:0),o&&(h.width(B),G.select(".nv-legendWrap").datum(j).call(h),k.top!=h.height()&&(k.top=h.height(),C=a.utils.availableHeight(n,v,k)),E.select(".nv-legendWrap").attr("transform","translate(0,"+-k.top+")")),E.attr("transform","translate("+k.left+","+k.top+")"),r&&G.select(".nv-y.nv-axis").attr("transform","translate("+B+",0)"),s&&(i.width(B).height(C).margin({left:k.left,top:k.top}).svgContainer(v).xScale(c),E.select(".nv-interactive").call(i)),e.width(B).height(C).color(j.map(function(a,b){return a.color||l(a,b)}).filter(function(a,b){return!j[b].disabled}));var H=G.select(".nv-linesWrap").datum(j.filter(function(a){return!a.disabled}));H.call(e),p&&(f.scale(c)._ticks(a.utils.calcTicksX(B/100,j)).tickSize(-C,0),G.select(".nv-x.nv-axis").attr("transform","translate(0,"+d.range()[0]+")"),G.select(".nv-x.nv-axis").call(f)),q&&(g.scale(d)._ticks(a.utils.calcTicksY(C/36,j)).tickSize(-B,0),G.select(".nv-y.nv-axis").call(g)),h.dispatch.on("stateChange",function(a){for(var c in a)t[c]=a[c];w.stateChange(t),b.update()}),i.dispatch.on("elementMousemove",function(c){e.clearHighlights();var d,h,m,n=[];if(j.filter(function(a,b){return a.seriesIndex=b,!a.disabled}).forEach(function(f,g){h=a.interactiveBisect(f.values,c.pointXValue,b.x());var i=f.values[h],j=b.y()(i,h);null!=j&&e.highlightPoint(g,h,!0),void 0!==i&&(void 0===d&&(d=i),void 0===m&&(m=b.xScale()(b.x()(i,h))),n.push({key:f.key,value:j,color:l(f,f.seriesIndex)}))}),n.length>2){var o=b.yScale().invert(c.mouseY),p=Math.abs(b.yScale().domain()[0]-b.yScale().domain()[1]),q=.03*p,r=a.nearestValueIndex(n.map(function(a){return a.value}),o,q);null!==r&&(n[r].highlight=!0)}var s=f.tickFormat()(b.x()(d,h));i.tooltip.position({left:c.mouseX+k.left,top:c.mouseY+k.top}).chartContainer(y.parentNode).valueFormatter(function(a){return null==a?"N/A":g.tickFormat()(a)}).data({value:s,index:h,series:n})(),i.renderGuideLine(m)}),i.dispatch.on("elementClick",function(c){var d,f=[];j.filter(function(a,b){return a.seriesIndex=b,!a.disabled}).forEach(function(e){var g=a.interactiveBisect(e.values,c.pointXValue,b.x()),h=e.values[g];if("undefined"!=typeof h){"undefined"==typeof d&&(d=b.xScale()(b.x()(h,g)));var i=b.yScale()(b.y()(h,g));f.push({point:h,pointIndex:g,pos:[d,i],seriesIndex:e.seriesIndex,series:e})}}),e.dispatch.elementClick(f)}),i.dispatch.on("elementMouseout",function(){e.clearHighlights()}),w.on("changeState",function(a){"undefined"!=typeof a.disabled&&j.length===a.disabled.length&&(j.forEach(function(b,c){b.disabled=a.disabled[c]}),t.disabled=a.disabled),b.update()})}),y.renderEnd("lineChart immediate"),b}var c,d,e=a.models.line(),f=a.models.axis(),g=a.models.axis(),h=a.models.legend(),i=a.interactiveGuideline(),j=a.models.tooltip(),k={top:30,right:20,bottom:50,left:60},l=a.utils.defaultColor(),m=null,n=null,o=!0,p=!0,q=!0,r=!1,s=!1,t=a.utils.state(),u=null,v=null,w=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState","renderEnd"),x=250;f.orient("bottom").tickPadding(7),g.orient(r?"right":"left"),j.valueFormatter(function(a,b){return g.tickFormat()(a,b)}).headerFormatter(function(a,b){return f.tickFormat()(a,b)});var y=a.utils.renderWatch(w,x),z=function(a){return function(){return{active:a.map(function(a){return!a.disabled})}}},A=function(a){return function(b){void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};return e.dispatch.on("elementMouseover.tooltip",function(a){j.data(a).position(a.pos).hidden(!1)}),e.dispatch.on("elementMouseout.tooltip",function(){j.hidden(!0)}),b.dispatch=w,b.lines=e,b.legend=h,b.xAxis=f,b.yAxis=g,b.interactiveLayer=i,b.tooltip=j,b.dispatch=w,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return m},set:function(a){m=a}},height:{get:function(){return n},set:function(a){n=a}},showLegend:{get:function(){return o},set:function(a){o=a}},showXAxis:{get:function(){return p},set:function(a){p=a}},showYAxis:{get:function(){return q},set:function(a){q=a}},defaultState:{get:function(){return u},set:function(a){u=a}},noData:{get:function(){return v},set:function(a){v=a}},tooltips:{get:function(){return j.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),j.enabled(!!b)}},tooltipContent:{get:function(){return j.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),j.contentGenerator(b)}},margin:{get:function(){return k},set:function(a){k.top=void 0!==a.top?a.top:k.top,k.right=void 0!==a.right?a.right:k.right,k.bottom=void 0!==a.bottom?a.bottom:k.bottom,k.left=void 0!==a.left?a.left:k.left}},duration:{get:function(){return x},set:function(a){x=a,y.reset(x),e.duration(x),f.duration(x),g.duration(x)}},color:{get:function(){return l},set:function(b){l=a.utils.getColor(b),h.color(l),e.color(l)}},rightAlignYAxis:{get:function(){return r},set:function(a){r=a,g.orient(r?"right":"left")}},useInteractiveGuideline:{get:function(){return s},set:function(a){s=a,s&&(e.interactive(!1),e.useVoronoi(!1))}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.linePlusBarChart=function(){"use strict";function b(v){return v.each(function(v){function J(a){var b=+("e"==a),c=b?1:-1,d=X/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)}function S(){u.empty()||u.extent(I),kb.data([u.empty()?e.domain():I]).each(function(a){var b=e(a[0])-e.range()[0],c=e.range()[1]-e(a[1]);d3.select(this).select(".left").attr("width",0>b?0:b),d3.select(this).select(".right").attr("x",e(a[1])).attr("width",0>c?0:c)})}function T(){I=u.empty()?null:u.extent(),c=u.empty()?e.domain():u.extent(),K.brush({extent:c,brush:u}),S(),l.width(V).height(W).color(v.map(function(a,b){return a.color||C(a,b)}).filter(function(a,b){return!v[b].disabled&&v[b].bar})),j.width(V).height(W).color(v.map(function(a,b){return a.color||C(a,b)}).filter(function(a,b){return!v[b].disabled&&!v[b].bar}));var b=db.select(".nv-focus .nv-barsWrap").datum(Z.length?Z.map(function(a){return{key:a.key,values:a.values.filter(function(a,b){return l.x()(a,b)>=c[0]&&l.x()(a,b)<=c[1]})}}):[{values:[]}]),h=db.select(".nv-focus .nv-linesWrap").datum($[0].disabled?[{values:[]}]:$.map(function(a){return{area:a.area,fillOpacity:a.fillOpacity,key:a.key,values:a.values.filter(function(a,b){return j.x()(a,b)>=c[0]&&j.x()(a,b)<=c[1]})}}));d=Z.length?l.xScale():j.xScale(),n.scale(d)._ticks(a.utils.calcTicksX(V/100,v)).tickSize(-W,0),n.domain([Math.ceil(c[0]),Math.floor(c[1])]),db.select(".nv-x.nv-axis").transition().duration(L).call(n),b.transition().duration(L).call(l),h.transition().duration(L).call(j),db.select(".nv-focus .nv-x.nv-axis").attr("transform","translate(0,"+f.range()[0]+")"),p.scale(f)._ticks(a.utils.calcTicksY(W/36,v)).tickSize(-V,0),q.scale(g)._ticks(a.utils.calcTicksY(W/36,v)).tickSize(Z.length?0:-V,0),db.select(".nv-focus .nv-y1.nv-axis").style("opacity",Z.length?1:0),db.select(".nv-focus .nv-y2.nv-axis").style("opacity",$.length&&!$[0].disabled?1:0).attr("transform","translate("+d.range()[1]+",0)"),db.select(".nv-focus .nv-y1.nv-axis").transition().duration(L).call(p),db.select(".nv-focus .nv-y2.nv-axis").transition().duration(L).call(q)}var U=d3.select(this);a.utils.initSVG(U);var V=a.utils.availableWidth(y,U,w),W=a.utils.availableHeight(z,U,w)-(E?H:0),X=H-x.top-x.bottom;if(b.update=function(){U.transition().duration(L).call(b)},b.container=this,M.setter(R(v),b.update).getter(Q(v)).update(),M.disabled=v.map(function(a){return!!a.disabled}),!N){var Y;N={};for(Y in M)N[Y]=M[Y]instanceof Array?M[Y].slice(0):M[Y]}if(!(v&&v.length&&v.filter(function(a){return a.values.length}).length))return a.utils.noData(b,U),b;U.selectAll(".nv-noData").remove();var Z=v.filter(function(a){return!a.disabled&&a.bar}),$=v.filter(function(a){return!a.bar});d=l.xScale(),e=o.scale(),f=l.yScale(),g=j.yScale(),h=m.yScale(),i=k.yScale();var _=v.filter(function(a){return!a.disabled&&a.bar}).map(function(a){return a.values.map(function(a,b){return{x:A(a,b),y:B(a,b)}})}),ab=v.filter(function(a){return!a.disabled&&!a.bar}).map(function(a){return a.values.map(function(a,b){return{x:A(a,b),y:B(a,b)}})});d.range([0,V]),e.domain(d3.extent(d3.merge(_.concat(ab)),function(a){return a.x})).range([0,V]);var bb=U.selectAll("g.nv-wrap.nv-linePlusBar").data([v]),cb=bb.enter().append("g").attr("class","nvd3 nv-wrap nv-linePlusBar").append("g"),db=bb.select("g");cb.append("g").attr("class","nv-legendWrap");var eb=cb.append("g").attr("class","nv-focus");eb.append("g").attr("class","nv-x nv-axis"),eb.append("g").attr("class","nv-y1 nv-axis"),eb.append("g").attr("class","nv-y2 nv-axis"),eb.append("g").attr("class","nv-barsWrap"),eb.append("g").attr("class","nv-linesWrap");var fb=cb.append("g").attr("class","nv-context");if(fb.append("g").attr("class","nv-x nv-axis"),fb.append("g").attr("class","nv-y1 nv-axis"),fb.append("g").attr("class","nv-y2 nv-axis"),fb.append("g").attr("class","nv-barsWrap"),fb.append("g").attr("class","nv-linesWrap"),fb.append("g").attr("class","nv-brushBackground"),fb.append("g").attr("class","nv-x nv-brush"),D){var gb=t.align()?V/2:V,hb=t.align()?gb:0;t.width(gb),db.select(".nv-legendWrap").datum(v.map(function(a){return a.originalKey=void 0===a.originalKey?a.key:a.originalKey,a.key=a.originalKey+(a.bar?O:P),a})).call(t),w.top!=t.height()&&(w.top=t.height(),W=a.utils.availableHeight(z,U,w)-H),db.select(".nv-legendWrap").attr("transform","translate("+hb+","+-w.top+")")}bb.attr("transform","translate("+w.left+","+w.top+")"),db.select(".nv-context").style("display",E?"initial":"none"),m.width(V).height(X).color(v.map(function(a,b){return a.color||C(a,b)}).filter(function(a,b){return!v[b].disabled&&v[b].bar})),k.width(V).height(X).color(v.map(function(a,b){return a.color||C(a,b)}).filter(function(a,b){return!v[b].disabled&&!v[b].bar}));var ib=db.select(".nv-context .nv-barsWrap").datum(Z.length?Z:[{values:[]}]),jb=db.select(".nv-context .nv-linesWrap").datum($[0].disabled?[{values:[]}]:$);db.select(".nv-context").attr("transform","translate(0,"+(W+w.bottom+x.top)+")"),ib.transition().call(m),jb.transition().call(k),G&&(o._ticks(a.utils.calcTicksX(V/100,v)).tickSize(-X,0),db.select(".nv-context .nv-x.nv-axis").attr("transform","translate(0,"+h.range()[0]+")"),db.select(".nv-context .nv-x.nv-axis").transition().call(o)),F&&(r.scale(h)._ticks(X/36).tickSize(-V,0),s.scale(i)._ticks(X/36).tickSize(Z.length?0:-V,0),db.select(".nv-context .nv-y3.nv-axis").style("opacity",Z.length?1:0).attr("transform","translate(0,"+e.range()[0]+")"),db.select(".nv-context .nv-y2.nv-axis").style("opacity",$.length?1:0).attr("transform","translate("+e.range()[1]+",0)"),db.select(".nv-context .nv-y1.nv-axis").transition().call(r),db.select(".nv-context .nv-y2.nv-axis").transition().call(s)),u.x(e).on("brush",T),I&&u.extent(I);var kb=db.select(".nv-brushBackground").selectAll("g").data([I||u.extent()]),lb=kb.enter().append("g");lb.append("rect").attr("class","left").attr("x",0).attr("y",0).attr("height",X),lb.append("rect").attr("class","right").attr("x",0).attr("y",0).attr("height",X);var mb=db.select(".nv-x.nv-brush").call(u);mb.selectAll("rect").attr("height",X),mb.selectAll(".resize").append("path").attr("d",J),t.dispatch.on("stateChange",function(a){for(var c in a)M[c]=a[c];K.stateChange(M),b.update()}),K.on("changeState",function(a){"undefined"!=typeof a.disabled&&(v.forEach(function(b,c){b.disabled=a.disabled[c]}),M.disabled=a.disabled),b.update()}),T()}),b}var c,d,e,f,g,h,i,j=a.models.line(),k=a.models.line(),l=a.models.historicalBar(),m=a.models.historicalBar(),n=a.models.axis(),o=a.models.axis(),p=a.models.axis(),q=a.models.axis(),r=a.models.axis(),s=a.models.axis(),t=a.models.legend(),u=d3.svg.brush(),v=a.models.tooltip(),w={top:30,right:30,bottom:30,left:60},x={top:0,right:30,bottom:20,left:60},y=null,z=null,A=function(a){return a.x},B=function(a){return a.y},C=a.utils.defaultColor(),D=!0,E=!0,F=!1,G=!0,H=50,I=null,J=null,K=d3.dispatch("brush","stateChange","changeState"),L=0,M=a.utils.state(),N=null,O=" (left axis)",P=" (right axis)";j.clipEdge(!0),k.interactive(!1),n.orient("bottom").tickPadding(5),p.orient("left"),q.orient("right"),o.orient("bottom").tickPadding(5),r.orient("left"),s.orient("right"),v.headerEnabled(!0).headerFormatter(function(a,b){return n.tickFormat()(a,b)});var Q=function(a){return function(){return{active:a.map(function(a){return!a.disabled})}}},R=function(a){return function(b){void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};return j.dispatch.on("elementMouseover.tooltip",function(a){v.duration(100).valueFormatter(function(a,b){return q.tickFormat()(a,b)}).data(a).position(a.pos).hidden(!1)}),j.dispatch.on("elementMouseout.tooltip",function(){v.hidden(!0)}),l.dispatch.on("elementMouseover.tooltip",function(a){a.value=b.x()(a.data),a.series={value:b.y()(a.data),color:a.color},v.duration(0).valueFormatter(function(a,b){return p.tickFormat()(a,b)}).data(a).hidden(!1)}),l.dispatch.on("elementMouseout.tooltip",function(){v.hidden(!0)}),l.dispatch.on("elementMousemove.tooltip",function(){v.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.dispatch=K,b.legend=t,b.lines=j,b.lines2=k,b.bars=l,b.bars2=m,b.xAxis=n,b.x2Axis=o,b.y1Axis=p,b.y2Axis=q,b.y3Axis=r,b.y4Axis=s,b.tooltip=v,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return y},set:function(a){y=a}},height:{get:function(){return z},set:function(a){z=a}},showLegend:{get:function(){return D},set:function(a){D=a}},brushExtent:{get:function(){return I},set:function(a){I=a}},noData:{get:function(){return J},set:function(a){J=a}},focusEnable:{get:function(){return E},set:function(a){E=a}},focusHeight:{get:function(){return H},set:function(a){H=a}},focusShowAxisX:{get:function(){return G},set:function(a){G=a}},focusShowAxisY:{get:function(){return F},set:function(a){F=a}},legendLeftAxisHint:{get:function(){return O},set:function(a){O=a}},legendRightAxisHint:{get:function(){return P},set:function(a){P=a}},tooltips:{get:function(){return v.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),v.enabled(!!b)}},tooltipContent:{get:function(){return v.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),v.contentGenerator(b)}},margin:{get:function(){return w},set:function(a){w.top=void 0!==a.top?a.top:w.top,w.right=void 0!==a.right?a.right:w.right,w.bottom=void 0!==a.bottom?a.bottom:w.bottom,w.left=void 0!==a.left?a.left:w.left}},duration:{get:function(){return L},set:function(a){L=a}},color:{get:function(){return C},set:function(b){C=a.utils.getColor(b),t.color(C)}},x:{get:function(){return A},set:function(a){A=a,j.x(a),k.x(a),l.x(a),m.x(a)}},y:{get:function(){return B},set:function(a){B=a,j.y(a),k.y(a),l.y(a),m.y(a)}}}),a.utils.inheritOptions(b,j),a.utils.initOptions(b),b},a.models.lineWithFocusChart=function(){"use strict";function b(o){return o.each(function(o){function z(a){var b=+("e"==a),c=b?1:-1,d=M/3;return"M"+.5*c+","+d+"A6,6 0 0 "+b+" "+6.5*c+","+(d+6)+"V"+(2*d-6)+"A6,6 0 0 "+b+" "+.5*c+","+2*d+"ZM"+2.5*c+","+(d+8)+"V"+(2*d-8)+"M"+4.5*c+","+(d+8)+"V"+(2*d-8)}function G(){n.empty()||n.extent(y),U.data([n.empty()?e.domain():y]).each(function(a){var b=e(a[0])-c.range()[0],d=K-e(a[1]);d3.select(this).select(".left").attr("width",0>b?0:b),d3.select(this).select(".right").attr("x",e(a[1])).attr("width",0>d?0:d)})}function H(){y=n.empty()?null:n.extent();var a=n.empty()?e.domain():n.extent();if(!(Math.abs(a[0]-a[1])<=1)){A.brush({extent:a,brush:n}),G();var b=Q.select(".nv-focus .nv-linesWrap").datum(o.filter(function(a){return!a.disabled}).map(function(b){return{key:b.key,area:b.area,values:b.values.filter(function(b,c){return g.x()(b,c)>=a[0]&&g.x()(b,c)<=a[1]})}}));b.transition().duration(B).call(g),Q.select(".nv-focus .nv-x.nv-axis").transition().duration(B).call(i),Q.select(".nv-focus .nv-y.nv-axis").transition().duration(B).call(j)}}var I=d3.select(this),J=this;a.utils.initSVG(I);var K=a.utils.availableWidth(t,I,q),L=a.utils.availableHeight(u,I,q)-v,M=v-r.top-r.bottom;if(b.update=function(){I.transition().duration(B).call(b)},b.container=this,C.setter(F(o),b.update).getter(E(o)).update(),C.disabled=o.map(function(a){return!!a.disabled}),!D){var N;D={};for(N in C)D[N]=C[N]instanceof Array?C[N].slice(0):C[N]}if(!(o&&o.length&&o.filter(function(a){return a.values.length}).length))return a.utils.noData(b,I),b;I.selectAll(".nv-noData").remove(),c=g.xScale(),d=g.yScale(),e=h.xScale(),f=h.yScale();var O=I.selectAll("g.nv-wrap.nv-lineWithFocusChart").data([o]),P=O.enter().append("g").attr("class","nvd3 nv-wrap nv-lineWithFocusChart").append("g"),Q=O.select("g");P.append("g").attr("class","nv-legendWrap");var R=P.append("g").attr("class","nv-focus");R.append("g").attr("class","nv-x nv-axis"),R.append("g").attr("class","nv-y nv-axis"),R.append("g").attr("class","nv-linesWrap"),R.append("g").attr("class","nv-interactive");var S=P.append("g").attr("class","nv-context");S.append("g").attr("class","nv-x nv-axis"),S.append("g").attr("class","nv-y nv-axis"),S.append("g").attr("class","nv-linesWrap"),S.append("g").attr("class","nv-brushBackground"),S.append("g").attr("class","nv-x nv-brush"),x&&(m.width(K),Q.select(".nv-legendWrap").datum(o).call(m),q.top!=m.height()&&(q.top=m.height(),L=a.utils.availableHeight(u,I,q)-v),Q.select(".nv-legendWrap").attr("transform","translate(0,"+-q.top+")")),O.attr("transform","translate("+q.left+","+q.top+")"),w&&(p.width(K).height(L).margin({left:q.left,top:q.top}).svgContainer(I).xScale(c),O.select(".nv-interactive").call(p)),g.width(K).height(L).color(o.map(function(a,b){return a.color||s(a,b)}).filter(function(a,b){return!o[b].disabled})),h.defined(g.defined()).width(K).height(M).color(o.map(function(a,b){return a.color||s(a,b)}).filter(function(a,b){return!o[b].disabled})),Q.select(".nv-context").attr("transform","translate(0,"+(L+q.bottom+r.top)+")");var T=Q.select(".nv-context .nv-linesWrap").datum(o.filter(function(a){return!a.disabled}));d3.transition(T).call(h),i.scale(c)._ticks(a.utils.calcTicksX(K/100,o)).tickSize(-L,0),j.scale(d)._ticks(a.utils.calcTicksY(L/36,o)).tickSize(-K,0),Q.select(".nv-focus .nv-x.nv-axis").attr("transform","translate(0,"+L+")"),n.x(e).on("brush",function(){H()}),y&&n.extent(y);var U=Q.select(".nv-brushBackground").selectAll("g").data([y||n.extent()]),V=U.enter().append("g");V.append("rect").attr("class","left").attr("x",0).attr("y",0).attr("height",M),V.append("rect").attr("class","right").attr("x",0).attr("y",0).attr("height",M);var W=Q.select(".nv-x.nv-brush").call(n);W.selectAll("rect").attr("height",M),W.selectAll(".resize").append("path").attr("d",z),H(),k.scale(e)._ticks(a.utils.calcTicksX(K/100,o)).tickSize(-M,0),Q.select(".nv-context .nv-x.nv-axis").attr("transform","translate(0,"+f.range()[0]+")"),d3.transition(Q.select(".nv-context .nv-x.nv-axis")).call(k),l.scale(f)._ticks(a.utils.calcTicksY(M/36,o)).tickSize(-K,0),d3.transition(Q.select(".nv-context .nv-y.nv-axis")).call(l),Q.select(".nv-context .nv-x.nv-axis").attr("transform","translate(0,"+f.range()[0]+")"),m.dispatch.on("stateChange",function(a){for(var c in a)C[c]=a[c];A.stateChange(C),b.update()}),p.dispatch.on("elementMousemove",function(c){g.clearHighlights();var d,f,h,k=[];if(o.filter(function(a,b){return a.seriesIndex=b,!a.disabled}).forEach(function(i,j){var l=n.empty()?e.domain():n.extent(),m=i.values.filter(function(a,b){return g.x()(a,b)>=l[0]&&g.x()(a,b)<=l[1]});f=a.interactiveBisect(m,c.pointXValue,g.x());var o=m[f],p=b.y()(o,f);null!=p&&g.highlightPoint(j,f,!0),void 0!==o&&(void 0===d&&(d=o),void 0===h&&(h=b.xScale()(b.x()(o,f))),k.push({key:i.key,value:b.y()(o,f),color:s(i,i.seriesIndex)}))}),k.length>2){var l=b.yScale().invert(c.mouseY),m=Math.abs(b.yScale().domain()[0]-b.yScale().domain()[1]),r=.03*m,t=a.nearestValueIndex(k.map(function(a){return a.value}),l,r);null!==t&&(k[t].highlight=!0)}var u=i.tickFormat()(b.x()(d,f));p.tooltip.position({left:c.mouseX+q.left,top:c.mouseY+q.top}).chartContainer(J.parentNode).valueFormatter(function(a){return null==a?"N/A":j.tickFormat()(a)}).data({value:u,index:f,series:k})(),p.renderGuideLine(h)}),p.dispatch.on("elementMouseout",function(){g.clearHighlights()}),A.on("changeState",function(a){"undefined"!=typeof a.disabled&&o.forEach(function(b,c){b.disabled=a.disabled[c]}),b.update()})}),b}var c,d,e,f,g=a.models.line(),h=a.models.line(),i=a.models.axis(),j=a.models.axis(),k=a.models.axis(),l=a.models.axis(),m=a.models.legend(),n=d3.svg.brush(),o=a.models.tooltip(),p=a.interactiveGuideline(),q={top:30,right:30,bottom:30,left:60},r={top:0,right:30,bottom:20,left:60},s=a.utils.defaultColor(),t=null,u=null,v=50,w=!1,x=!0,y=null,z=null,A=d3.dispatch("brush","stateChange","changeState"),B=250,C=a.utils.state(),D=null;g.clipEdge(!0).duration(0),h.interactive(!1),i.orient("bottom").tickPadding(5),j.orient("left"),k.orient("bottom").tickPadding(5),l.orient("left"),o.valueFormatter(function(a,b){return j.tickFormat()(a,b)}).headerFormatter(function(a,b){return i.tickFormat()(a,b)});var E=function(a){return function(){return{active:a.map(function(a){return!a.disabled})}}},F=function(a){return function(b){void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};return g.dispatch.on("elementMouseover.tooltip",function(a){o.data(a).position(a.pos).hidden(!1)}),g.dispatch.on("elementMouseout.tooltip",function(){o.hidden(!0)}),b.dispatch=A,b.legend=m,b.lines=g,b.lines2=h,b.xAxis=i,b.yAxis=j,b.x2Axis=k,b.y2Axis=l,b.interactiveLayer=p,b.tooltip=o,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return t},set:function(a){t=a}},height:{get:function(){return u},set:function(a){u=a}},focusHeight:{get:function(){return v},set:function(a){v=a}},showLegend:{get:function(){return x},set:function(a){x=a}},brushExtent:{get:function(){return y},set:function(a){y=a}},defaultState:{get:function(){return D},set:function(a){D=a}},noData:{get:function(){return z},set:function(a){z=a}},tooltips:{get:function(){return o.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),o.enabled(!!b)}},tooltipContent:{get:function(){return o.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),o.contentGenerator(b)}},margin:{get:function(){return q},set:function(a){q.top=void 0!==a.top?a.top:q.top,q.right=void 0!==a.right?a.right:q.right,q.bottom=void 0!==a.bottom?a.bottom:q.bottom,q.left=void 0!==a.left?a.left:q.left}},color:{get:function(){return s},set:function(b){s=a.utils.getColor(b),m.color(s)}},interpolate:{get:function(){return g.interpolate()},set:function(a){g.interpolate(a),h.interpolate(a)}},xTickFormat:{get:function(){return i.tickFormat()},set:function(a){i.tickFormat(a),k.tickFormat(a)}},yTickFormat:{get:function(){return j.tickFormat()},set:function(a){j.tickFormat(a),l.tickFormat(a)}},duration:{get:function(){return B},set:function(a){B=a,j.duration(B),l.duration(B),i.duration(B),k.duration(B)}},x:{get:function(){return g.x()},set:function(a){g.x(a),h.x(a)}},y:{get:function(){return g.y()},set:function(a){g.y(a),h.y(a)}},useInteractiveGuideline:{get:function(){return w},set:function(a){w=a,w&&(g.interactive(!1),g.useVoronoi(!1))}}}),a.utils.inheritOptions(b,g),a.utils.initOptions(b),b},a.models.multiBar=function(){"use strict";function b(E){return C.reset(),E.each(function(b){var E=k-j.left-j.right,F=l-j.top-j.bottom;p=d3.select(this),a.utils.initSVG(p);var G=0;if(x&&b.length&&(x=[{values:b[0].values.map(function(a){return{x:a.x,y:0,series:a.series,size:.01}})}]),u){var H=d3.layout.stack().offset(v).values(function(a){return a.values}).y(r)(!b.length&&x?x:b);H.forEach(function(a,c){a.nonStackable?(b[c].nonStackableSeries=G++,H[c]=b[c]):c>0&&H[c-1].nonStackable&&H[c].values.map(function(a,b){a.y0-=H[c-1].values[b].y,a.y1=a.y0+a.y})}),b=H}b.forEach(function(a,b){a.values.forEach(function(c){c.series=b,c.key=a.key})}),u&&b[0].values.map(function(a,c){var d=0,e=0;b.map(function(a,f){if(!b[f].nonStackable){var g=a.values[c];g.size=Math.abs(g.y),g.y<0?(g.y1=e,e-=g.size):(g.y1=g.size+d,d+=g.size)}})});var I=d&&e?[]:b.map(function(a,b){return a.values.map(function(a,c){return{x:q(a,c),y:r(a,c),y0:a.y0,y1:a.y1,idx:b}})});m.domain(d||d3.merge(I).map(function(a){return a.x})).rangeBands(f||[0,E],A),n.domain(e||d3.extent(d3.merge(I).map(function(a){var c=a.y;return u&&!b[a.idx].nonStackable&&(c=a.y>0?a.y1:a.y1+a.y),c}).concat(s))).range(g||[F,0]),m.domain()[0]===m.domain()[1]&&m.domain(m.domain()[0]?[m.domain()[0]-.01*m.domain()[0],m.domain()[1]+.01*m.domain()[1]]:[-1,1]),n.domain()[0]===n.domain()[1]&&n.domain(n.domain()[0]?[n.domain()[0]+.01*n.domain()[0],n.domain()[1]-.01*n.domain()[1]]:[-1,1]),h=h||m,i=i||n;var J=p.selectAll("g.nv-wrap.nv-multibar").data([b]),K=J.enter().append("g").attr("class","nvd3 nv-wrap nv-multibar"),L=K.append("defs"),M=K.append("g"),N=J.select("g");M.append("g").attr("class","nv-groups"),J.attr("transform","translate("+j.left+","+j.top+")"),L.append("clipPath").attr("id","nv-edge-clip-"+o).append("rect"),J.select("#nv-edge-clip-"+o+" rect").attr("width",E).attr("height",F),N.attr("clip-path",t?"url(#nv-edge-clip-"+o+")":"");var O=J.select(".nv-groups").selectAll(".nv-group").data(function(a){return a},function(a,b){return b});O.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6);var P=C.transition(O.exit().selectAll("rect.nv-bar"),"multibarExit",Math.min(100,z)).attr("y",function(a){var c=i(0)||0;return u&&b[a.series]&&!b[a.series].nonStackable&&(c=i(a.y0)),c}).attr("height",0).remove();P.delay&&P.delay(function(a,b){var c=b*(z/(D+1))-b;return c}),O.attr("class",function(a,b){return"nv-group nv-series-"+b}).classed("hover",function(a){return a.hover}).style("fill",function(a,b){return w(a,b)}).style("stroke",function(a,b){return w(a,b)}),O.style("stroke-opacity",1).style("fill-opacity",.75);var Q=O.selectAll("rect.nv-bar").data(function(a){return x&&!b.length?x.values:a.values});Q.exit().remove();Q.enter().append("rect").attr("class",function(a,b){return r(a,b)<0?"nv-bar negative":"nv-bar positive"}).attr("x",function(a,c,d){return u&&!b[d].nonStackable?0:d*m.rangeBand()/b.length}).attr("y",function(a,c,d){return i(u&&!b[d].nonStackable?a.y0:0)||0}).attr("height",0).attr("width",function(a,c,d){return m.rangeBand()/(u&&!b[d].nonStackable?1:b.length)}).attr("transform",function(a,b){return"translate("+m(q(a,b))+",0)"});Q.style("fill",function(a,b,c){return w(a,c,b)}).style("stroke",function(a,b,c){return w(a,c,b)}).on("mouseover",function(a,b){d3.select(this).classed("hover",!0),B.elementMouseover({data:a,index:b,color:d3.select(this).style("fill")})}).on("mouseout",function(a,b){d3.select(this).classed("hover",!1),B.elementMouseout({data:a,index:b,color:d3.select(this).style("fill")})}).on("mousemove",function(a,b){B.elementMousemove({data:a,index:b,color:d3.select(this).style("fill")})}).on("click",function(a,b){B.elementClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation()}).on("dblclick",function(a,b){B.elementDblClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation()}),Q.attr("class",function(a,b){return r(a,b)<0?"nv-bar negative":"nv-bar positive"}).attr("transform",function(a,b){return"translate("+m(q(a,b))+",0)"}),y&&(c||(c=b.map(function(){return!0})),Q.style("fill",function(a,b,d){return d3.rgb(y(a,b)).darker(c.map(function(a,b){return b}).filter(function(a,b){return!c[b]})[d]).toString()}).style("stroke",function(a,b,d){return d3.rgb(y(a,b)).darker(c.map(function(a,b){return b}).filter(function(a,b){return!c[b]})[d]).toString()}));var R=Q.watchTransition(C,"multibar",Math.min(250,z)).delay(function(a,c){return c*z/b[0].values.length});u?R.attr("y",function(a,c,d){var e=0;return e=b[d].nonStackable?r(a,c)<0?n(0):n(0)-n(r(a,c))<-1?n(0)-1:n(r(a,c))||0:n(a.y1)}).attr("height",function(a,c,d){return b[d].nonStackable?Math.max(Math.abs(n(r(a,c))-n(0)),1)||0:Math.max(Math.abs(n(a.y+a.y0)-n(a.y0)),1)}).attr("x",function(a,c,d){var e=0;return b[d].nonStackable&&(e=a.series*m.rangeBand()/b.length,b.length!==G&&(e=b[d].nonStackableSeries*m.rangeBand()/(2*G))),e}).attr("width",function(a,c,d){if(b[d].nonStackable){var e=m.rangeBand()/G;return b.length!==G&&(e=m.rangeBand()/(2*G)),e}return m.rangeBand()}):R.attr("x",function(a){return a.series*m.rangeBand()/b.length}).attr("width",m.rangeBand()/b.length).attr("y",function(a,b){return r(a,b)<0?n(0):n(0)-n(r(a,b))<1?n(0)-1:n(r(a,b))||0}).attr("height",function(a,b){return Math.max(Math.abs(n(r(a,b))-n(0)),1)||0}),h=m.copy(),i=n.copy(),b[0]&&b[0].values&&(D=b[0].values.length)}),C.renderEnd("multibar immediate"),b}var c,d,e,f,g,h,i,j={top:0,right:0,bottom:0,left:0},k=960,l=500,m=d3.scale.ordinal(),n=d3.scale.linear(),o=Math.floor(1e4*Math.random()),p=null,q=function(a){return a.x},r=function(a){return a.y},s=[0],t=!0,u=!1,v="zero",w=a.utils.defaultColor(),x=!1,y=null,z=500,A=.1,B=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove","renderEnd"),C=a.utils.renderWatch(B,z),D=0;return b.dispatch=B,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return k},set:function(a){k=a}},height:{get:function(){return l},set:function(a){l=a}},x:{get:function(){return q},set:function(a){q=a}},y:{get:function(){return r},set:function(a){r=a}},xScale:{get:function(){return m},set:function(a){m=a}},yScale:{get:function(){return n},set:function(a){n=a}},xDomain:{get:function(){return d},set:function(a){d=a}},yDomain:{get:function(){return e},set:function(a){e=a}},xRange:{get:function(){return f},set:function(a){f=a}},yRange:{get:function(){return g},set:function(a){g=a}},forceY:{get:function(){return s},set:function(a){s=a}},stacked:{get:function(){return u},set:function(a){u=a}},stackOffset:{get:function(){return v},set:function(a){v=a}},clipEdge:{get:function(){return t},set:function(a){t=a}},disabled:{get:function(){return c},set:function(a){c=a}},id:{get:function(){return o},set:function(a){o=a}},hideable:{get:function(){return x},set:function(a){x=a}},groupSpacing:{get:function(){return A},set:function(a){A=a}},margin:{get:function(){return j},set:function(a){j.top=void 0!==a.top?a.top:j.top,j.right=void 0!==a.right?a.right:j.right,j.bottom=void 0!==a.bottom?a.bottom:j.bottom,j.left=void 0!==a.left?a.left:j.left}},duration:{get:function(){return z},set:function(a){z=a,C.reset(z)}},color:{get:function(){return w},set:function(b){w=a.utils.getColor(b)}},barColor:{get:function(){return y},set:function(b){y=b?a.utils.getColor(b):null}}}),a.utils.initOptions(b),b},a.models.multiBarChart=function(){"use strict";function b(j){return D.reset(),D.models(e),r&&D.models(f),s&&D.models(g),j.each(function(j){var z=d3.select(this);a.utils.initSVG(z);var D=a.utils.availableWidth(l,z,k),H=a.utils.availableHeight(m,z,k);if(b.update=function(){0===C?z.call(b):z.transition().duration(C).call(b)},b.container=this,x.setter(G(j),b.update).getter(F(j)).update(),x.disabled=j.map(function(a){return!!a.disabled}),!y){var I;y={};for(I in x)y[I]=x[I]instanceof Array?x[I].slice(0):x[I]}if(!(j&&j.length&&j.filter(function(a){return a.values.length}).length))return a.utils.noData(b,z),b;z.selectAll(".nv-noData").remove(),c=e.xScale(),d=e.yScale(); +var J=z.selectAll("g.nv-wrap.nv-multiBarWithLegend").data([j]),K=J.enter().append("g").attr("class","nvd3 nv-wrap nv-multiBarWithLegend").append("g"),L=J.select("g");if(K.append("g").attr("class","nv-x nv-axis"),K.append("g").attr("class","nv-y nv-axis"),K.append("g").attr("class","nv-barsWrap"),K.append("g").attr("class","nv-legendWrap"),K.append("g").attr("class","nv-controlsWrap"),q&&(h.width(D-B()),L.select(".nv-legendWrap").datum(j).call(h),k.top!=h.height()&&(k.top=h.height(),H=a.utils.availableHeight(m,z,k)),L.select(".nv-legendWrap").attr("transform","translate("+B()+","+-k.top+")")),o){var M=[{key:p.grouped||"Grouped",disabled:e.stacked()},{key:p.stacked||"Stacked",disabled:!e.stacked()}];i.width(B()).color(["#444","#444","#444"]),L.select(".nv-controlsWrap").datum(M).attr("transform","translate(0,"+-k.top+")").call(i)}J.attr("transform","translate("+k.left+","+k.top+")"),t&&L.select(".nv-y.nv-axis").attr("transform","translate("+D+",0)"),e.disabled(j.map(function(a){return a.disabled})).width(D).height(H).color(j.map(function(a,b){return a.color||n(a,b)}).filter(function(a,b){return!j[b].disabled}));var N=L.select(".nv-barsWrap").datum(j.filter(function(a){return!a.disabled}));if(N.call(e),r){f.scale(c)._ticks(a.utils.calcTicksX(D/100,j)).tickSize(-H,0),L.select(".nv-x.nv-axis").attr("transform","translate(0,"+d.range()[0]+")"),L.select(".nv-x.nv-axis").call(f);var O=L.select(".nv-x.nv-axis > g").selectAll("g");if(O.selectAll("line, text").style("opacity",1),v){var P=function(a,b){return"translate("+a+","+b+")"},Q=5,R=17;O.selectAll("text").attr("transform",function(a,b,c){return P(0,c%2==0?Q:R)});var S=d3.selectAll(".nv-x.nv-axis .nv-wrap g g text")[0].length;L.selectAll(".nv-x.nv-axis .nv-axisMaxMin text").attr("transform",function(a,b){return P(0,0===b||S%2!==0?R:Q)})}u&&O.filter(function(a,b){return b%Math.ceil(j[0].values.length/(D/100))!==0}).selectAll("text, line").style("opacity",0),w&&O.selectAll(".tick text").attr("transform","rotate("+w+" 0,0)").style("text-anchor",w>0?"start":"end"),L.select(".nv-x.nv-axis").selectAll("g.nv-axisMaxMin text").style("opacity",1)}s&&(g.scale(d)._ticks(a.utils.calcTicksY(H/36,j)).tickSize(-D,0),L.select(".nv-y.nv-axis").call(g)),h.dispatch.on("stateChange",function(a){for(var c in a)x[c]=a[c];A.stateChange(x),b.update()}),i.dispatch.on("legendClick",function(a){if(a.disabled){switch(M=M.map(function(a){return a.disabled=!0,a}),a.disabled=!1,a.key){case"Grouped":case p.grouped:e.stacked(!1);break;case"Stacked":case p.stacked:e.stacked(!0)}x.stacked=e.stacked(),A.stateChange(x),b.update()}}),A.on("changeState",function(a){"undefined"!=typeof a.disabled&&(j.forEach(function(b,c){b.disabled=a.disabled[c]}),x.disabled=a.disabled),"undefined"!=typeof a.stacked&&(e.stacked(a.stacked),x.stacked=a.stacked,E=a.stacked),b.update()})}),D.renderEnd("multibarchart immediate"),b}var c,d,e=a.models.multiBar(),f=a.models.axis(),g=a.models.axis(),h=a.models.legend(),i=a.models.legend(),j=a.models.tooltip(),k={top:30,right:20,bottom:50,left:60},l=null,m=null,n=a.utils.defaultColor(),o=!0,p={},q=!0,r=!0,s=!0,t=!1,u=!0,v=!1,w=0,x=a.utils.state(),y=null,z=null,A=d3.dispatch("stateChange","changeState","renderEnd"),B=function(){return o?180:0},C=250;x.stacked=!1,e.stacked(!1),f.orient("bottom").tickPadding(7).showMaxMin(!1).tickFormat(function(a){return a}),g.orient(t?"right":"left").tickFormat(d3.format(",.1f")),j.duration(0).valueFormatter(function(a,b){return g.tickFormat()(a,b)}).headerFormatter(function(a,b){return f.tickFormat()(a,b)}),i.updateState(!1);var D=a.utils.renderWatch(A),E=!1,F=function(a){return function(){return{active:a.map(function(a){return!a.disabled}),stacked:E}}},G=function(a){return function(b){void 0!==b.stacked&&(E=b.stacked),void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};return e.dispatch.on("elementMouseover.tooltip",function(a){a.value=b.x()(a.data),a.series={key:a.data.key,value:b.y()(a.data),color:a.color},j.data(a).hidden(!1)}),e.dispatch.on("elementMouseout.tooltip",function(){j.hidden(!0)}),e.dispatch.on("elementMousemove.tooltip",function(){j.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.dispatch=A,b.multibar=e,b.legend=h,b.controls=i,b.xAxis=f,b.yAxis=g,b.state=x,b.tooltip=j,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return l},set:function(a){l=a}},height:{get:function(){return m},set:function(a){m=a}},showLegend:{get:function(){return q},set:function(a){q=a}},showControls:{get:function(){return o},set:function(a){o=a}},controlLabels:{get:function(){return p},set:function(a){p=a}},showXAxis:{get:function(){return r},set:function(a){r=a}},showYAxis:{get:function(){return s},set:function(a){s=a}},defaultState:{get:function(){return y},set:function(a){y=a}},noData:{get:function(){return z},set:function(a){z=a}},reduceXTicks:{get:function(){return u},set:function(a){u=a}},rotateLabels:{get:function(){return w},set:function(a){w=a}},staggerLabels:{get:function(){return v},set:function(a){v=a}},tooltips:{get:function(){return j.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),j.enabled(!!b)}},tooltipContent:{get:function(){return j.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),j.contentGenerator(b)}},margin:{get:function(){return k},set:function(a){k.top=void 0!==a.top?a.top:k.top,k.right=void 0!==a.right?a.right:k.right,k.bottom=void 0!==a.bottom?a.bottom:k.bottom,k.left=void 0!==a.left?a.left:k.left}},duration:{get:function(){return C},set:function(a){C=a,e.duration(C),f.duration(C),g.duration(C),D.reset(C)}},color:{get:function(){return n},set:function(b){n=a.utils.getColor(b),h.color(n)}},rightAlignYAxis:{get:function(){return t},set:function(a){t=a,g.orient(t?"right":"left")}},barColor:{get:function(){return e.barColor},set:function(a){e.barColor(a),h.color(function(a,b){return d3.rgb("#ccc").darker(1.5*b).toString()})}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.multiBarHorizontal=function(){"use strict";function b(m){return E.reset(),m.each(function(b){var m=k-j.left-j.right,C=l-j.top-j.bottom;n=d3.select(this),a.utils.initSVG(n),w&&(b=d3.layout.stack().offset("zero").values(function(a){return a.values}).y(r)(b)),b.forEach(function(a,b){a.values.forEach(function(c){c.series=b,c.key=a.key})}),w&&b[0].values.map(function(a,c){var d=0,e=0;b.map(function(a){var b=a.values[c];b.size=Math.abs(b.y),b.y<0?(b.y1=e-b.size,e-=b.size):(b.y1=d,d+=b.size)})});var F=d&&e?[]:b.map(function(a){return a.values.map(function(a,b){return{x:q(a,b),y:r(a,b),y0:a.y0,y1:a.y1}})});o.domain(d||d3.merge(F).map(function(a){return a.x})).rangeBands(f||[0,C],A),p.domain(e||d3.extent(d3.merge(F).map(function(a){return w?a.y>0?a.y1+a.y:a.y1:a.y}).concat(t))),p.range(x&&!w?g||[p.domain()[0]<0?z:0,m-(p.domain()[1]>0?z:0)]:g||[0,m]),h=h||o,i=i||d3.scale.linear().domain(p.domain()).range([p(0),p(0)]);{var G=d3.select(this).selectAll("g.nv-wrap.nv-multibarHorizontal").data([b]),H=G.enter().append("g").attr("class","nvd3 nv-wrap nv-multibarHorizontal"),I=(H.append("defs"),H.append("g"));G.select("g")}I.append("g").attr("class","nv-groups"),G.attr("transform","translate("+j.left+","+j.top+")");var J=G.select(".nv-groups").selectAll(".nv-group").data(function(a){return a},function(a,b){return b});J.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),J.exit().watchTransition(E,"multibarhorizontal: exit groups").style("stroke-opacity",1e-6).style("fill-opacity",1e-6).remove(),J.attr("class",function(a,b){return"nv-group nv-series-"+b}).classed("hover",function(a){return a.hover}).style("fill",function(a,b){return u(a,b)}).style("stroke",function(a,b){return u(a,b)}),J.watchTransition(E,"multibarhorizontal: groups").style("stroke-opacity",1).style("fill-opacity",.75);var K=J.selectAll("g.nv-bar").data(function(a){return a.values});K.exit().remove();var L=K.enter().append("g").attr("transform",function(a,c,d){return"translate("+i(w?a.y0:0)+","+(w?0:d*o.rangeBand()/b.length+o(q(a,c)))+")"});L.append("rect").attr("width",0).attr("height",o.rangeBand()/(w?1:b.length)),K.on("mouseover",function(a,b){d3.select(this).classed("hover",!0),D.elementMouseover({data:a,index:b,color:d3.select(this).style("fill")})}).on("mouseout",function(a,b){d3.select(this).classed("hover",!1),D.elementMouseout({data:a,index:b,color:d3.select(this).style("fill")})}).on("mouseout",function(a,b){D.elementMouseout({data:a,index:b,color:d3.select(this).style("fill")})}).on("mousemove",function(a,b){D.elementMousemove({data:a,index:b,color:d3.select(this).style("fill")})}).on("click",function(a,b){D.elementClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation()}).on("dblclick",function(a,b){D.elementDblClick({data:a,index:b,color:d3.select(this).style("fill")}),d3.event.stopPropagation()}),s(b[0],0)&&(L.append("polyline"),K.select("polyline").attr("fill","none").attr("points",function(a,c){var d=s(a,c),e=.8*o.rangeBand()/(2*(w?1:b.length));d=d.length?d:[-Math.abs(d),Math.abs(d)],d=d.map(function(a){return p(a)-p(0)});var f=[[d[0],-e],[d[0],e],[d[0],0],[d[1],0],[d[1],-e],[d[1],e]];return f.map(function(a){return a.join(",")}).join(" ")}).attr("transform",function(a,c){var d=o.rangeBand()/(2*(w?1:b.length));return"translate("+(r(a,c)<0?0:p(r(a,c))-p(0))+", "+d+")"})),L.append("text"),x&&!w?(K.select("text").attr("text-anchor",function(a,b){return r(a,b)<0?"end":"start"}).attr("y",o.rangeBand()/(2*b.length)).attr("dy",".32em").text(function(a,b){var c=B(r(a,b)),d=s(a,b);return void 0===d?c:d.length?c+"+"+B(Math.abs(d[1]))+"-"+B(Math.abs(d[0])):c+"±"+B(Math.abs(d))}),K.watchTransition(E,"multibarhorizontal: bars").select("text").attr("x",function(a,b){return r(a,b)<0?-4:p(r(a,b))-p(0)+4})):K.selectAll("text").text(""),y&&!w?(L.append("text").classed("nv-bar-label",!0),K.select("text.nv-bar-label").attr("text-anchor",function(a,b){return r(a,b)<0?"start":"end"}).attr("y",o.rangeBand()/(2*b.length)).attr("dy",".32em").text(function(a,b){return q(a,b)}),K.watchTransition(E,"multibarhorizontal: bars").select("text.nv-bar-label").attr("x",function(a,b){return r(a,b)<0?p(0)-p(r(a,b))+4:-4})):K.selectAll("text.nv-bar-label").text(""),K.attr("class",function(a,b){return r(a,b)<0?"nv-bar negative":"nv-bar positive"}),v&&(c||(c=b.map(function(){return!0})),K.style("fill",function(a,b,d){return d3.rgb(v(a,b)).darker(c.map(function(a,b){return b}).filter(function(a,b){return!c[b]})[d]).toString()}).style("stroke",function(a,b,d){return d3.rgb(v(a,b)).darker(c.map(function(a,b){return b}).filter(function(a,b){return!c[b]})[d]).toString()})),w?K.watchTransition(E,"multibarhorizontal: bars").attr("transform",function(a,b){return"translate("+p(a.y1)+","+o(q(a,b))+")"}).select("rect").attr("width",function(a,b){return Math.abs(p(r(a,b)+a.y0)-p(a.y0))}).attr("height",o.rangeBand()):K.watchTransition(E,"multibarhorizontal: bars").attr("transform",function(a,c){return"translate("+p(r(a,c)<0?r(a,c):0)+","+(a.series*o.rangeBand()/b.length+o(q(a,c)))+")"}).select("rect").attr("height",o.rangeBand()/b.length).attr("width",function(a,b){return Math.max(Math.abs(p(r(a,b))-p(0)),1)}),h=o.copy(),i=p.copy()}),E.renderEnd("multibarHorizontal immediate"),b}var c,d,e,f,g,h,i,j={top:0,right:0,bottom:0,left:0},k=960,l=500,m=Math.floor(1e4*Math.random()),n=null,o=d3.scale.ordinal(),p=d3.scale.linear(),q=function(a){return a.x},r=function(a){return a.y},s=function(a){return a.yErr},t=[0],u=a.utils.defaultColor(),v=null,w=!1,x=!1,y=!1,z=60,A=.1,B=d3.format(",.2f"),C=250,D=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove","renderEnd"),E=a.utils.renderWatch(D,C);return b.dispatch=D,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return k},set:function(a){k=a}},height:{get:function(){return l},set:function(a){l=a}},x:{get:function(){return q},set:function(a){q=a}},y:{get:function(){return r},set:function(a){r=a}},yErr:{get:function(){return s},set:function(a){s=a}},xScale:{get:function(){return o},set:function(a){o=a}},yScale:{get:function(){return p},set:function(a){p=a}},xDomain:{get:function(){return d},set:function(a){d=a}},yDomain:{get:function(){return e},set:function(a){e=a}},xRange:{get:function(){return f},set:function(a){f=a}},yRange:{get:function(){return g},set:function(a){g=a}},forceY:{get:function(){return t},set:function(a){t=a}},stacked:{get:function(){return w},set:function(a){w=a}},showValues:{get:function(){return x},set:function(a){x=a}},disabled:{get:function(){return c},set:function(a){c=a}},id:{get:function(){return m},set:function(a){m=a}},valueFormat:{get:function(){return B},set:function(a){B=a}},valuePadding:{get:function(){return z},set:function(a){z=a}},groupSpacing:{get:function(){return A},set:function(a){A=a}},margin:{get:function(){return j},set:function(a){j.top=void 0!==a.top?a.top:j.top,j.right=void 0!==a.right?a.right:j.right,j.bottom=void 0!==a.bottom?a.bottom:j.bottom,j.left=void 0!==a.left?a.left:j.left}},duration:{get:function(){return C},set:function(a){C=a,E.reset(C)}},color:{get:function(){return u},set:function(b){u=a.utils.getColor(b)}},barColor:{get:function(){return v},set:function(b){v=b?a.utils.getColor(b):null}}}),a.utils.initOptions(b),b},a.models.multiBarHorizontalChart=function(){"use strict";function b(j){return C.reset(),C.models(e),r&&C.models(f),s&&C.models(g),j.each(function(j){var w=d3.select(this);a.utils.initSVG(w);var C=a.utils.availableWidth(l,w,k),D=a.utils.availableHeight(m,w,k);if(b.update=function(){w.transition().duration(z).call(b)},b.container=this,t=e.stacked(),u.setter(B(j),b.update).getter(A(j)).update(),u.disabled=j.map(function(a){return!!a.disabled}),!v){var E;v={};for(E in u)v[E]=u[E]instanceof Array?u[E].slice(0):u[E]}if(!(j&&j.length&&j.filter(function(a){return a.values.length}).length))return a.utils.noData(b,w),b;w.selectAll(".nv-noData").remove(),c=e.xScale(),d=e.yScale();var F=w.selectAll("g.nv-wrap.nv-multiBarHorizontalChart").data([j]),G=F.enter().append("g").attr("class","nvd3 nv-wrap nv-multiBarHorizontalChart").append("g"),H=F.select("g");if(G.append("g").attr("class","nv-x nv-axis"),G.append("g").attr("class","nv-y nv-axis").append("g").attr("class","nv-zeroLine").append("line"),G.append("g").attr("class","nv-barsWrap"),G.append("g").attr("class","nv-legendWrap"),G.append("g").attr("class","nv-controlsWrap"),q&&(h.width(C-y()),H.select(".nv-legendWrap").datum(j).call(h),k.top!=h.height()&&(k.top=h.height(),D=a.utils.availableHeight(m,w,k)),H.select(".nv-legendWrap").attr("transform","translate("+y()+","+-k.top+")")),o){var I=[{key:p.grouped||"Grouped",disabled:e.stacked()},{key:p.stacked||"Stacked",disabled:!e.stacked()}];i.width(y()).color(["#444","#444","#444"]),H.select(".nv-controlsWrap").datum(I).attr("transform","translate(0,"+-k.top+")").call(i)}F.attr("transform","translate("+k.left+","+k.top+")"),e.disabled(j.map(function(a){return a.disabled})).width(C).height(D).color(j.map(function(a,b){return a.color||n(a,b)}).filter(function(a,b){return!j[b].disabled}));var J=H.select(".nv-barsWrap").datum(j.filter(function(a){return!a.disabled}));if(J.transition().call(e),r){f.scale(c)._ticks(a.utils.calcTicksY(D/24,j)).tickSize(-C,0),H.select(".nv-x.nv-axis").call(f);var K=H.select(".nv-x.nv-axis").selectAll("g");K.selectAll("line, text")}s&&(g.scale(d)._ticks(a.utils.calcTicksX(C/100,j)).tickSize(-D,0),H.select(".nv-y.nv-axis").attr("transform","translate(0,"+D+")"),H.select(".nv-y.nv-axis").call(g)),H.select(".nv-zeroLine line").attr("x1",d(0)).attr("x2",d(0)).attr("y1",0).attr("y2",-D),h.dispatch.on("stateChange",function(a){for(var c in a)u[c]=a[c];x.stateChange(u),b.update()}),i.dispatch.on("legendClick",function(a){if(a.disabled){switch(I=I.map(function(a){return a.disabled=!0,a}),a.disabled=!1,a.key){case"Grouped":e.stacked(!1);break;case"Stacked":e.stacked(!0)}u.stacked=e.stacked(),x.stateChange(u),t=e.stacked(),b.update()}}),x.on("changeState",function(a){"undefined"!=typeof a.disabled&&(j.forEach(function(b,c){b.disabled=a.disabled[c]}),u.disabled=a.disabled),"undefined"!=typeof a.stacked&&(e.stacked(a.stacked),u.stacked=a.stacked,t=a.stacked),b.update()})}),C.renderEnd("multibar horizontal chart immediate"),b}var c,d,e=a.models.multiBarHorizontal(),f=a.models.axis(),g=a.models.axis(),h=a.models.legend().height(30),i=a.models.legend().height(30),j=a.models.tooltip(),k={top:30,right:20,bottom:50,left:60},l=null,m=null,n=a.utils.defaultColor(),o=!0,p={},q=!0,r=!0,s=!0,t=!1,u=a.utils.state(),v=null,w=null,x=d3.dispatch("stateChange","changeState","renderEnd"),y=function(){return o?180:0},z=250;u.stacked=!1,e.stacked(t),f.orient("left").tickPadding(5).showMaxMin(!1).tickFormat(function(a){return a}),g.orient("bottom").tickFormat(d3.format(",.1f")),j.duration(0).valueFormatter(function(a,b){return g.tickFormat()(a,b)}).headerFormatter(function(a,b){return f.tickFormat()(a,b)}),i.updateState(!1);var A=function(a){return function(){return{active:a.map(function(a){return!a.disabled}),stacked:t}}},B=function(a){return function(b){void 0!==b.stacked&&(t=b.stacked),void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}},C=a.utils.renderWatch(x,z);return e.dispatch.on("elementMouseover.tooltip",function(a){a.value=b.x()(a.data),a.series={key:a.data.key,value:b.y()(a.data),color:a.color},j.data(a).hidden(!1)}),e.dispatch.on("elementMouseout.tooltip",function(){j.hidden(!0)}),e.dispatch.on("elementMousemove.tooltip",function(){j.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.dispatch=x,b.multibar=e,b.legend=h,b.controls=i,b.xAxis=f,b.yAxis=g,b.state=u,b.tooltip=j,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return l},set:function(a){l=a}},height:{get:function(){return m},set:function(a){m=a}},showLegend:{get:function(){return q},set:function(a){q=a}},showControls:{get:function(){return o},set:function(a){o=a}},controlLabels:{get:function(){return p},set:function(a){p=a}},showXAxis:{get:function(){return r},set:function(a){r=a}},showYAxis:{get:function(){return s},set:function(a){s=a}},defaultState:{get:function(){return v},set:function(a){v=a}},noData:{get:function(){return w},set:function(a){w=a}},tooltips:{get:function(){return j.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),j.enabled(!!b)}},tooltipContent:{get:function(){return j.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),j.contentGenerator(b)}},margin:{get:function(){return k},set:function(a){k.top=void 0!==a.top?a.top:k.top,k.right=void 0!==a.right?a.right:k.right,k.bottom=void 0!==a.bottom?a.bottom:k.bottom,k.left=void 0!==a.left?a.left:k.left}},duration:{get:function(){return z},set:function(a){z=a,C.reset(z),e.duration(z),f.duration(z),g.duration(z)}},color:{get:function(){return n},set:function(b){n=a.utils.getColor(b),h.color(n)}},barColor:{get:function(){return e.barColor},set:function(a){e.barColor(a),h.color(function(a,b){return d3.rgb("#ccc").darker(1.5*b).toString()})}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.multiChart=function(){"use strict";function b(j){return j.each(function(j){function k(a){var b=2===j[a.seriesIndex].yAxis?z:y;a.value=a.point.x,a.series={value:a.point.y,color:a.point.color},B.duration(100).valueFormatter(function(a,c){return b.tickFormat()(a,c)}).data(a).position(a.pos).hidden(!1)}function l(a){var b=2===j[a.seriesIndex].yAxis?z:y;a.point.x=v.x()(a.point),a.point.y=v.y()(a.point),B.duration(100).valueFormatter(function(a,c){return b.tickFormat()(a,c)}).data(a).position(a.pos).hidden(!1)}function n(a){var b=2===j[a.data.series].yAxis?z:y;a.value=t.x()(a.data),a.series={value:t.y()(a.data),color:a.color},B.duration(0).valueFormatter(function(a,c){return b.tickFormat()(a,c)}).data(a).hidden(!1)}var C=d3.select(this);a.utils.initSVG(C),b.update=function(){C.transition().call(b)},b.container=this;var D=a.utils.availableWidth(g,C,e),E=a.utils.availableHeight(h,C,e),F=j.filter(function(a){return"line"==a.type&&1==a.yAxis}),G=j.filter(function(a){return"line"==a.type&&2==a.yAxis}),H=j.filter(function(a){return"bar"==a.type&&1==a.yAxis}),I=j.filter(function(a){return"bar"==a.type&&2==a.yAxis}),J=j.filter(function(a){return"area"==a.type&&1==a.yAxis}),K=j.filter(function(a){return"area"==a.type&&2==a.yAxis});if(!(j&&j.length&&j.filter(function(a){return a.values.length}).length))return a.utils.noData(b,C),b;C.selectAll(".nv-noData").remove();var L=j.filter(function(a){return!a.disabled&&1==a.yAxis}).map(function(a){return a.values.map(function(a){return{x:a.x,y:a.y}})}),M=j.filter(function(a){return!a.disabled&&2==a.yAxis}).map(function(a){return a.values.map(function(a){return{x:a.x,y:a.y}})});o.domain(d3.extent(d3.merge(L.concat(M)),function(a){return a.x})).range([0,D]);var N=C.selectAll("g.wrap.multiChart").data([j]),O=N.enter().append("g").attr("class","wrap nvd3 multiChart").append("g");O.append("g").attr("class","nv-x nv-axis"),O.append("g").attr("class","nv-y1 nv-axis"),O.append("g").attr("class","nv-y2 nv-axis"),O.append("g").attr("class","lines1Wrap"),O.append("g").attr("class","lines2Wrap"),O.append("g").attr("class","bars1Wrap"),O.append("g").attr("class","bars2Wrap"),O.append("g").attr("class","stack1Wrap"),O.append("g").attr("class","stack2Wrap"),O.append("g").attr("class","legendWrap");var P=N.select("g"),Q=j.map(function(a,b){return j[b].color||f(a,b)});if(i){var R=A.align()?D/2:D,S=A.align()?R:0;A.width(R),A.color(Q),P.select(".legendWrap").datum(j.map(function(a){return a.originalKey=void 0===a.originalKey?a.key:a.originalKey,a.key=a.originalKey+(1==a.yAxis?"":" (right axis)"),a})).call(A),e.top!=A.height()&&(e.top=A.height(),E=a.utils.availableHeight(h,C,e)),P.select(".legendWrap").attr("transform","translate("+S+","+-e.top+")")}r.width(D).height(E).interpolate(m).color(Q.filter(function(a,b){return!j[b].disabled&&1==j[b].yAxis&&"line"==j[b].type})),s.width(D).height(E).interpolate(m).color(Q.filter(function(a,b){return!j[b].disabled&&2==j[b].yAxis&&"line"==j[b].type})),t.width(D).height(E).color(Q.filter(function(a,b){return!j[b].disabled&&1==j[b].yAxis&&"bar"==j[b].type})),u.width(D).height(E).color(Q.filter(function(a,b){return!j[b].disabled&&2==j[b].yAxis&&"bar"==j[b].type})),v.width(D).height(E).color(Q.filter(function(a,b){return!j[b].disabled&&1==j[b].yAxis&&"area"==j[b].type})),w.width(D).height(E).color(Q.filter(function(a,b){return!j[b].disabled&&2==j[b].yAxis&&"area"==j[b].type})),P.attr("transform","translate("+e.left+","+e.top+")");var T=P.select(".lines1Wrap").datum(F.filter(function(a){return!a.disabled})),U=P.select(".bars1Wrap").datum(H.filter(function(a){return!a.disabled})),V=P.select(".stack1Wrap").datum(J.filter(function(a){return!a.disabled})),W=P.select(".lines2Wrap").datum(G.filter(function(a){return!a.disabled})),X=P.select(".bars2Wrap").datum(I.filter(function(a){return!a.disabled})),Y=P.select(".stack2Wrap").datum(K.filter(function(a){return!a.disabled})),Z=J.length?J.map(function(a){return a.values}).reduce(function(a,b){return a.map(function(a,c){return{x:a.x,y:a.y+b[c].y}})}).concat([{x:0,y:0}]):[],$=K.length?K.map(function(a){return a.values}).reduce(function(a,b){return a.map(function(a,c){return{x:a.x,y:a.y+b[c].y}})}).concat([{x:0,y:0}]):[];p.domain(c||d3.extent(d3.merge(L).concat(Z),function(a){return a.y})).range([0,E]),q.domain(d||d3.extent(d3.merge(M).concat($),function(a){return a.y})).range([0,E]),r.yDomain(p.domain()),t.yDomain(p.domain()),v.yDomain(p.domain()),s.yDomain(q.domain()),u.yDomain(q.domain()),w.yDomain(q.domain()),J.length&&d3.transition(V).call(v),K.length&&d3.transition(Y).call(w),H.length&&d3.transition(U).call(t),I.length&&d3.transition(X).call(u),F.length&&d3.transition(T).call(r),G.length&&d3.transition(W).call(s),x._ticks(a.utils.calcTicksX(D/100,j)).tickSize(-E,0),P.select(".nv-x.nv-axis").attr("transform","translate(0,"+E+")"),d3.transition(P.select(".nv-x.nv-axis")).call(x),y._ticks(a.utils.calcTicksY(E/36,j)).tickSize(-D,0),d3.transition(P.select(".nv-y1.nv-axis")).call(y),z._ticks(a.utils.calcTicksY(E/36,j)).tickSize(-D,0),d3.transition(P.select(".nv-y2.nv-axis")).call(z),P.select(".nv-y1.nv-axis").classed("nv-disabled",L.length?!1:!0).attr("transform","translate("+o.range()[0]+",0)"),P.select(".nv-y2.nv-axis").classed("nv-disabled",M.length?!1:!0).attr("transform","translate("+o.range()[1]+",0)"),A.dispatch.on("stateChange",function(){b.update()}),r.dispatch.on("elementMouseover.tooltip",k),s.dispatch.on("elementMouseover.tooltip",k),r.dispatch.on("elementMouseout.tooltip",function(){B.hidden(!0)}),s.dispatch.on("elementMouseout.tooltip",function(){B.hidden(!0)}),v.dispatch.on("elementMouseover.tooltip",l),w.dispatch.on("elementMouseover.tooltip",l),v.dispatch.on("elementMouseout.tooltip",function(){B.hidden(!0)}),w.dispatch.on("elementMouseout.tooltip",function(){B.hidden(!0)}),t.dispatch.on("elementMouseover.tooltip",n),u.dispatch.on("elementMouseover.tooltip",n),t.dispatch.on("elementMouseout.tooltip",function(){B.hidden(!0)}),u.dispatch.on("elementMouseout.tooltip",function(){B.hidden(!0)}),t.dispatch.on("elementMousemove.tooltip",function(){B.position({top:d3.event.pageY,left:d3.event.pageX})()}),u.dispatch.on("elementMousemove.tooltip",function(){B.position({top:d3.event.pageY,left:d3.event.pageX})()})}),b}var c,d,e={top:30,right:20,bottom:50,left:60},f=a.utils.defaultColor(),g=null,h=null,i=!0,j=null,k=function(a){return a.x},l=function(a){return a.y},m="monotone",n=!0,o=d3.scale.linear(),p=d3.scale.linear(),q=d3.scale.linear(),r=a.models.line().yScale(p),s=a.models.line().yScale(q),t=a.models.multiBar().stacked(!1).yScale(p),u=a.models.multiBar().stacked(!1).yScale(q),v=a.models.stackedArea().yScale(p),w=a.models.stackedArea().yScale(q),x=a.models.axis().scale(o).orient("bottom").tickPadding(5),y=a.models.axis().scale(p).orient("left"),z=a.models.axis().scale(q).orient("right"),A=a.models.legend().height(30),B=a.models.tooltip(),C=d3.dispatch();return b.dispatch=C,b.lines1=r,b.lines2=s,b.bars1=t,b.bars2=u,b.stack1=v,b.stack2=w,b.xAxis=x,b.yAxis1=y,b.yAxis2=z,b.tooltip=B,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return g},set:function(a){g=a}},height:{get:function(){return h},set:function(a){h=a}},showLegend:{get:function(){return i},set:function(a){i=a}},yDomain1:{get:function(){return c},set:function(a){c=a}},yDomain2:{get:function(){return d},set:function(a){d=a}},noData:{get:function(){return j},set:function(a){j=a}},interpolate:{get:function(){return m},set:function(a){m=a}},tooltips:{get:function(){return B.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),B.enabled(!!b)}},tooltipContent:{get:function(){return B.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),B.contentGenerator(b)}},margin:{get:function(){return e},set:function(a){e.top=void 0!==a.top?a.top:e.top,e.right=void 0!==a.right?a.right:e.right,e.bottom=void 0!==a.bottom?a.bottom:e.bottom,e.left=void 0!==a.left?a.left:e.left}},color:{get:function(){return f},set:function(b){f=a.utils.getColor(b)}},x:{get:function(){return k},set:function(a){k=a,r.x(a),s.x(a),t.x(a),u.x(a),v.x(a),w.x(a)}},y:{get:function(){return l},set:function(a){l=a,r.y(a),s.y(a),v.y(a),w.y(a),t.y(a),u.y(a)}},useVoronoi:{get:function(){return n},set:function(a){n=a,r.useVoronoi(a),s.useVoronoi(a),v.useVoronoi(a),w.useVoronoi(a)}}}),a.utils.initOptions(b),b},a.models.ohlcBar=function(){"use strict";function b(y){return y.each(function(b){k=d3.select(this);var y=a.utils.availableWidth(h,k,g),A=a.utils.availableHeight(i,k,g);a.utils.initSVG(k);var B=y/b[0].values.length*.9;l.domain(c||d3.extent(b[0].values.map(n).concat(t))),l.range(v?e||[.5*y/b[0].values.length,y*(b[0].values.length-.5)/b[0].values.length]:e||[5+B/2,y-B/2-5]),m.domain(d||[d3.min(b[0].values.map(s).concat(u)),d3.max(b[0].values.map(r).concat(u))]).range(f||[A,0]),l.domain()[0]===l.domain()[1]&&l.domain(l.domain()[0]?[l.domain()[0]-.01*l.domain()[0],l.domain()[1]+.01*l.domain()[1]]:[-1,1]),m.domain()[0]===m.domain()[1]&&m.domain(m.domain()[0]?[m.domain()[0]+.01*m.domain()[0],m.domain()[1]-.01*m.domain()[1]]:[-1,1]);var C=d3.select(this).selectAll("g.nv-wrap.nv-ohlcBar").data([b[0].values]),D=C.enter().append("g").attr("class","nvd3 nv-wrap nv-ohlcBar"),E=D.append("defs"),F=D.append("g"),G=C.select("g");F.append("g").attr("class","nv-ticks"),C.attr("transform","translate("+g.left+","+g.top+")"),k.on("click",function(a,b){z.chartClick({data:a,index:b,pos:d3.event,id:j})}),E.append("clipPath").attr("id","nv-chart-clip-path-"+j).append("rect"),C.select("#nv-chart-clip-path-"+j+" rect").attr("width",y).attr("height",A),G.attr("clip-path",w?"url(#nv-chart-clip-path-"+j+")":"");var H=C.select(".nv-ticks").selectAll(".nv-tick").data(function(a){return a});H.exit().remove(),H.enter().append("path").attr("class",function(a,b,c){return(p(a,b)>q(a,b)?"nv-tick negative":"nv-tick positive")+" nv-tick-"+c+"-"+b}).attr("d",function(a,b){return"m0,0l0,"+(m(p(a,b))-m(r(a,b)))+"l"+-B/2+",0l"+B/2+",0l0,"+(m(s(a,b))-m(p(a,b)))+"l0,"+(m(q(a,b))-m(s(a,b)))+"l"+B/2+",0l"+-B/2+",0z"}).attr("transform",function(a,b){return"translate("+l(n(a,b))+","+m(r(a,b))+")"}).attr("fill",function(){return x[0]}).attr("stroke",function(){return x[0]}).attr("x",0).attr("y",function(a,b){return m(Math.max(0,o(a,b)))}).attr("height",function(a,b){return Math.abs(m(o(a,b))-m(0))}),H.attr("class",function(a,b,c){return(p(a,b)>q(a,b)?"nv-tick negative":"nv-tick positive")+" nv-tick-"+c+"-"+b}),d3.transition(H).attr("transform",function(a,b){return"translate("+l(n(a,b))+","+m(r(a,b))+")"}).attr("d",function(a,c){var d=y/b[0].values.length*.9;return"m0,0l0,"+(m(p(a,c))-m(r(a,c)))+"l"+-d/2+",0l"+d/2+",0l0,"+(m(s(a,c))-m(p(a,c)))+"l0,"+(m(q(a,c))-m(s(a,c)))+"l"+d/2+",0l"+-d/2+",0z"})}),b}var c,d,e,f,g={top:0,right:0,bottom:0,left:0},h=null,i=null,j=Math.floor(1e4*Math.random()),k=null,l=d3.scale.linear(),m=d3.scale.linear(),n=function(a){return a.x},o=function(a){return a.y},p=function(a){return a.open},q=function(a){return a.close},r=function(a){return a.high},s=function(a){return a.low},t=[],u=[],v=!1,w=!0,x=a.utils.defaultColor(),y=!1,z=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState","renderEnd","chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove");return b.highlightPoint=function(a,c){b.clearHighlights(),k.select(".nv-ohlcBar .nv-tick-0-"+a).classed("hover",c)},b.clearHighlights=function(){k.select(".nv-ohlcBar .nv-tick.hover").classed("hover",!1)},b.dispatch=z,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return h},set:function(a){h=a}},height:{get:function(){return i},set:function(a){i=a}},xScale:{get:function(){return l},set:function(a){l=a}},yScale:{get:function(){return m},set:function(a){m=a}},xDomain:{get:function(){return c},set:function(a){c=a}},yDomain:{get:function(){return d},set:function(a){d=a}},xRange:{get:function(){return e},set:function(a){e=a}},yRange:{get:function(){return f},set:function(a){f=a}},forceX:{get:function(){return t},set:function(a){t=a}},forceY:{get:function(){return u},set:function(a){u=a}},padData:{get:function(){return v},set:function(a){v=a}},clipEdge:{get:function(){return w},set:function(a){w=a}},id:{get:function(){return j},set:function(a){j=a}},interactive:{get:function(){return y},set:function(a){y=a}},x:{get:function(){return n},set:function(a){n=a}},y:{get:function(){return o},set:function(a){o=a}},open:{get:function(){return p()},set:function(a){p=a}},close:{get:function(){return q()},set:function(a){q=a}},high:{get:function(){return r},set:function(a){r=a}},low:{get:function(){return s},set:function(a){s=a}},margin:{get:function(){return g},set:function(a){g.top=void 0!=a.top?a.top:g.top,g.right=void 0!=a.right?a.right:g.right,g.bottom=void 0!=a.bottom?a.bottom:g.bottom,g.left=void 0!=a.left?a.left:g.left +}},color:{get:function(){return x},set:function(b){x=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.parallelCoordinates=function(){"use strict";function b(p){return p.each(function(b){function p(a){return F(h.map(function(b){if(isNaN(a[b])||isNaN(parseFloat(a[b]))){var c=g[b].domain(),d=g[b].range(),e=c[0]-(c[1]-c[0])/9;if(J.indexOf(b)<0){var h=d3.scale.linear().domain([e,c[1]]).range([x-12,d[1]]);g[b].brush.y(h),J.push(b)}return[f(b),g[b](e)]}return J.length>0?(D.style("display","inline"),E.style("display","inline")):(D.style("display","none"),E.style("display","none")),[f(b),g[b](a[b])]}))}function q(){var a=h.filter(function(a){return!g[a].brush.empty()}),b=a.map(function(a){return g[a].brush.extent()});k=[],a.forEach(function(a,c){k[c]={dimension:a,extent:b[c]}}),l=[],M.style("display",function(c){var d=a.every(function(a,d){return isNaN(c[a])&&b[d][0]==g[a].brush.y().domain()[0]?!0:b[d][0]<=c[a]&&c[a]<=b[d][1]});return d&&l.push(c),d?null:"none"}),o.brush({filters:k,active:l})}function r(a){m[a]=this.parentNode.__origin__=f(a),L.attr("visibility","hidden")}function s(a){m[a]=Math.min(w,Math.max(0,this.parentNode.__origin__+=d3.event.x)),M.attr("d",p),h.sort(function(a,b){return u(a)-u(b)}),f.domain(h),N.attr("transform",function(a){return"translate("+u(a)+")"})}function t(a){delete this.parentNode.__origin__,delete m[a],d3.select(this.parentNode).attr("transform","translate("+f(a)+")"),M.attr("d",p),L.attr("d",p).attr("visibility",null)}function u(a){var b=m[a];return null==b?f(a):b}var v=d3.select(this),w=a.utils.availableWidth(d,v,c),x=a.utils.availableHeight(e,v,c);a.utils.initSVG(v),l=b,f.rangePoints([0,w],1).domain(h);var y={};h.forEach(function(a){var c=d3.extent(b,function(b){return+b[a]});return y[a]=!1,void 0===c[0]&&(y[a]=!0,c[0]=0,c[1]=0),c[0]===c[1]&&(c[0]=c[0]-1,c[1]=c[1]+1),g[a]=d3.scale.linear().domain(c).range([.9*(x-12),0]),g[a].brush=d3.svg.brush().y(g[a]).on("brush",q),"name"!=a});var z=v.selectAll("g.nv-wrap.nv-parallelCoordinates").data([b]),A=z.enter().append("g").attr("class","nvd3 nv-wrap nv-parallelCoordinates"),B=A.append("g"),C=z.select("g");B.append("g").attr("class","nv-parallelCoordinates background"),B.append("g").attr("class","nv-parallelCoordinates foreground"),B.append("g").attr("class","nv-parallelCoordinates missingValuesline"),z.attr("transform","translate("+c.left+","+c.top+")");var D,E,F=d3.svg.line().interpolate("cardinal").tension(n),G=d3.svg.axis().orient("left"),H=d3.behavior.drag().on("dragstart",r).on("drag",s).on("dragend",t),I=f.range()[1]-f.range()[0],J=[],K=[0+I/2,x-12,w-I/2,x-12];D=z.select(".missingValuesline").selectAll("line").data([K]),D.enter().append("line"),D.exit().remove(),D.attr("x1",function(a){return a[0]}).attr("y1",function(a){return a[1]}).attr("x2",function(a){return a[2]}).attr("y2",function(a){return a[3]}),E=z.select(".missingValuesline").selectAll("text").data(["undefined values"]),E.append("text").data(["undefined values"]),E.enter().append("text"),E.exit().remove(),E.attr("y",x).attr("x",w-92-I/2).text(function(a){return a});var L=z.select(".background").selectAll("path").data(b);L.enter().append("path"),L.exit().remove(),L.attr("d",p);var M=z.select(".foreground").selectAll("path").data(b);M.enter().append("path"),M.exit().remove(),M.attr("d",p).attr("stroke",j),M.on("mouseover",function(a,b){d3.select(this).classed("hover",!0),o.elementMouseover({label:a.name,data:a.data,index:b,pos:[d3.mouse(this.parentNode)[0],d3.mouse(this.parentNode)[1]]})}),M.on("mouseout",function(a,b){d3.select(this).classed("hover",!1),o.elementMouseout({label:a.name,data:a.data,index:b})});var N=C.selectAll(".dimension").data(h),O=N.enter().append("g").attr("class","nv-parallelCoordinates dimension");O.append("g").attr("class","nv-parallelCoordinates nv-axis"),O.append("g").attr("class","nv-parallelCoordinates-brush"),O.append("text").attr("class","nv-parallelCoordinates nv-label"),N.attr("transform",function(a){return"translate("+f(a)+",0)"}),N.exit().remove(),N.select(".nv-label").style("cursor","move").attr("dy","-1em").attr("text-anchor","middle").text(String).on("mouseover",function(a){o.elementMouseover({dim:a,pos:[d3.mouse(this.parentNode.parentNode)[0],d3.mouse(this.parentNode.parentNode)[1]]})}).on("mouseout",function(a){o.elementMouseout({dim:a})}).call(H),N.select(".nv-axis").each(function(a,b){d3.select(this).call(G.scale(g[a]).tickFormat(d3.format(i[b])))}),N.select(".nv-parallelCoordinates-brush").each(function(a){d3.select(this).call(g[a].brush)}).selectAll("rect").attr("x",-8).attr("width",16)}),b}var c={top:30,right:0,bottom:10,left:0},d=null,e=null,f=d3.scale.ordinal(),g={},h=[],i=[],j=a.utils.defaultColor(),k=[],l=[],m=[],n=1,o=d3.dispatch("brush","elementMouseover","elementMouseout");return b.dispatch=o,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return d},set:function(a){d=a}},height:{get:function(){return e},set:function(a){e=a}},dimensionNames:{get:function(){return h},set:function(a){h=a}},dimensionFormats:{get:function(){return i},set:function(a){i=a}},lineTension:{get:function(){return n},set:function(a){n=a}},dimensions:{get:function(){return h},set:function(b){a.deprecated("dimensions","use dimensionNames instead"),h=b}},margin:{get:function(){return c},set:function(a){c.top=void 0!==a.top?a.top:c.top,c.right=void 0!==a.right?a.right:c.right,c.bottom=void 0!==a.bottom?a.bottom:c.bottom,c.left=void 0!==a.left?a.left:c.left}},color:{get:function(){return j},set:function(b){j=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.pie=function(){"use strict";function b(E){return D.reset(),E.each(function(b){function E(a,b){a.endAngle=isNaN(a.endAngle)?0:a.endAngle,a.startAngle=isNaN(a.startAngle)?0:a.startAngle,p||(a.innerRadius=0);var c=d3.interpolate(this._current,a);return this._current=c(0),function(a){return B[b](c(a))}}var F=d-c.left-c.right,G=e-c.top-c.bottom,H=Math.min(F,G)/2,I=[],J=[];if(i=d3.select(this),0===z.length)for(var K=H-H/5,L=y*H,M=0;M<b[0].length;M++)I.push(K),J.push(L);else I=z.map(function(a){return(a.outer-a.outer/5)*H}),J=z.map(function(a){return(a.inner-a.inner/5)*H}),y=d3.min(z.map(function(a){return a.inner-a.inner/5}));a.utils.initSVG(i);var N=i.selectAll(".nv-wrap.nv-pie").data(b),O=N.enter().append("g").attr("class","nvd3 nv-wrap nv-pie nv-chart-"+h),P=O.append("g"),Q=N.select("g"),R=P.append("g").attr("class","nv-pie");P.append("g").attr("class","nv-pieLabels"),N.attr("transform","translate("+c.left+","+c.top+")"),Q.select(".nv-pie").attr("transform","translate("+F/2+","+G/2+")"),Q.select(".nv-pieLabels").attr("transform","translate("+F/2+","+G/2+")"),i.on("click",function(a,b){A.chartClick({data:a,index:b,pos:d3.event,id:h})}),B=[],C=[];for(var M=0;M<b[0].length;M++){var S=d3.svg.arc().outerRadius(I[M]),T=d3.svg.arc().outerRadius(I[M]+5);u!==!1&&(S.startAngle(u),T.startAngle(u)),w!==!1&&(S.endAngle(w),T.endAngle(w)),p&&(S.innerRadius(J[M]),T.innerRadius(J[M])),S.cornerRadius&&x&&(S.cornerRadius(x),T.cornerRadius(x)),B.push(S),C.push(T)}var U=d3.layout.pie().sort(null).value(function(a){return a.disabled?0:g(a)});U.padAngle&&v&&U.padAngle(v),p&&q&&(R.append("text").attr("class","nv-pie-title"),N.select(".nv-pie-title").style("text-anchor","middle").text(function(){return q}).style("font-size",Math.min(F,G)*y*2/(q.length+2)+"px").attr("dy","0.35em").attr("transform",function(){return"translate(0, "+s+")"}));var V=N.select(".nv-pie").selectAll(".nv-slice").data(U),W=N.select(".nv-pieLabels").selectAll(".nv-label").data(U);V.exit().remove(),W.exit().remove();var X=V.enter().append("g");X.attr("class","nv-slice"),X.on("mouseover",function(a,b){d3.select(this).classed("hover",!0),r&&d3.select(this).select("path").transition().duration(70).attr("d",C[b]),A.elementMouseover({data:a.data,index:b,color:d3.select(this).style("fill")})}),X.on("mouseout",function(a,b){d3.select(this).classed("hover",!1),r&&d3.select(this).select("path").transition().duration(50).attr("d",B[b]),A.elementMouseout({data:a.data,index:b})}),X.on("mousemove",function(a,b){A.elementMousemove({data:a.data,index:b})}),X.on("click",function(a,b){A.elementClick({data:a.data,index:b,color:d3.select(this).style("fill")})}),X.on("dblclick",function(a,b){A.elementDblClick({data:a.data,index:b,color:d3.select(this).style("fill")})}),V.attr("fill",function(a,b){return j(a.data,b)}),V.attr("stroke",function(a,b){return j(a.data,b)});X.append("path").each(function(a){this._current=a});if(V.select("path").transition().attr("d",function(a,b){return B[b](a)}).attrTween("d",E),l){for(var Y=[],M=0;M<b[0].length;M++)Y.push(B[M]),m?p&&(Y[M]=d3.svg.arc().outerRadius(B[M].outerRadius()),u!==!1&&Y[M].startAngle(u),w!==!1&&Y[M].endAngle(w)):p||Y[M].innerRadius(0);W.enter().append("g").classed("nv-label",!0).each(function(a){var b=d3.select(this);b.attr("transform",function(a,b){if(t){a.outerRadius=I[b]+10,a.innerRadius=I[b]+15;var c=(a.startAngle+a.endAngle)/2*(180/Math.PI);return(a.startAngle+a.endAngle)/2<Math.PI?c-=90:c+=90,"translate("+Y[b].centroid(a)+") rotate("+c+")"}return a.outerRadius=H+10,a.innerRadius=H+15,"translate("+Y[b].centroid(a)+")"}),b.append("rect").style("stroke","#fff").style("fill","#fff").attr("rx",3).attr("ry",3),b.append("text").style("text-anchor",t?(a.startAngle+a.endAngle)/2<Math.PI?"start":"end":"middle").style("fill","#000")});var Z={},$=14,_=140,ab=function(a){return Math.floor(a[0]/_)*_+","+Math.floor(a[1]/$)*$};W.watchTransition(D,"pie labels").attr("transform",function(a,b){if(t){a.outerRadius=I[b]+10,a.innerRadius=I[b]+15;var c=(a.startAngle+a.endAngle)/2*(180/Math.PI);return(a.startAngle+a.endAngle)/2<Math.PI?c-=90:c+=90,"translate("+Y[b].centroid(a)+") rotate("+c+")"}a.outerRadius=H+10,a.innerRadius=H+15;var d=Y[b].centroid(a);if(a.value){var e=ab(d);Z[e]&&(d[1]-=$),Z[ab(d)]=!0}return"translate("+d+")"}),W.select(".nv-label text").style("text-anchor",function(a){return t?(a.startAngle+a.endAngle)/2<Math.PI?"start":"end":"middle"}).text(function(a,b){var c=(a.endAngle-a.startAngle)/(2*Math.PI),d="";if(!a.value||o>c)return"";if("function"==typeof n)d=n(a,b,{key:f(a.data),value:g(a.data),percent:k(c)});else switch(n){case"key":d=f(a.data);break;case"value":d=k(g(a.data));break;case"percent":d=d3.format("%")(c)}return d})}}),D.renderEnd("pie immediate"),b}var c={top:0,right:0,bottom:0,left:0},d=500,e=500,f=function(a){return a.x},g=function(a){return a.y},h=Math.floor(1e4*Math.random()),i=null,j=a.utils.defaultColor(),k=d3.format(",.2f"),l=!0,m=!1,n="key",o=.02,p=!1,q=!1,r=!0,s=0,t=!1,u=!1,v=!1,w=!1,x=0,y=.5,z=[],A=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove","renderEnd"),B=[],C=[],D=a.utils.renderWatch(A);return b.dispatch=A,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{arcsRadius:{get:function(){return z},set:function(a){z=a}},width:{get:function(){return d},set:function(a){d=a}},height:{get:function(){return e},set:function(a){e=a}},showLabels:{get:function(){return l},set:function(a){l=a}},title:{get:function(){return q},set:function(a){q=a}},titleOffset:{get:function(){return s},set:function(a){s=a}},labelThreshold:{get:function(){return o},set:function(a){o=a}},valueFormat:{get:function(){return k},set:function(a){k=a}},x:{get:function(){return f},set:function(a){f=a}},id:{get:function(){return h},set:function(a){h=a}},endAngle:{get:function(){return w},set:function(a){w=a}},startAngle:{get:function(){return u},set:function(a){u=a}},padAngle:{get:function(){return v},set:function(a){v=a}},cornerRadius:{get:function(){return x},set:function(a){x=a}},donutRatio:{get:function(){return y},set:function(a){y=a}},labelsOutside:{get:function(){return m},set:function(a){m=a}},labelSunbeamLayout:{get:function(){return t},set:function(a){t=a}},donut:{get:function(){return p},set:function(a){p=a}},growOnHover:{get:function(){return r},set:function(a){r=a}},pieLabelsOutside:{get:function(){return m},set:function(b){m=b,a.deprecated("pieLabelsOutside","use labelsOutside instead")}},donutLabelsOutside:{get:function(){return m},set:function(b){m=b,a.deprecated("donutLabelsOutside","use labelsOutside instead")}},labelFormat:{get:function(){return k},set:function(b){k=b,a.deprecated("labelFormat","use valueFormat instead")}},margin:{get:function(){return c},set:function(a){c.top="undefined"!=typeof a.top?a.top:c.top,c.right="undefined"!=typeof a.right?a.right:c.right,c.bottom="undefined"!=typeof a.bottom?a.bottom:c.bottom,c.left="undefined"!=typeof a.left?a.left:c.left}},y:{get:function(){return g},set:function(a){g=d3.functor(a)}},color:{get:function(){return j},set:function(b){j=a.utils.getColor(b)}},labelType:{get:function(){return n},set:function(a){n=a||"key"}}}),a.utils.initOptions(b),b},a.models.pieChart=function(){"use strict";function b(e){return q.reset(),q.models(c),e.each(function(e){var k=d3.select(this);a.utils.initSVG(k);var n=a.utils.availableWidth(g,k,f),o=a.utils.availableHeight(h,k,f);if(b.update=function(){k.transition().call(b)},b.container=this,l.setter(s(e),b.update).getter(r(e)).update(),l.disabled=e.map(function(a){return!!a.disabled}),!m){var q;m={};for(q in l)m[q]=l[q]instanceof Array?l[q].slice(0):l[q]}if(!e||!e.length)return a.utils.noData(b,k),b;k.selectAll(".nv-noData").remove();var t=k.selectAll("g.nv-wrap.nv-pieChart").data([e]),u=t.enter().append("g").attr("class","nvd3 nv-wrap nv-pieChart").append("g"),v=t.select("g");if(u.append("g").attr("class","nv-pieWrap"),u.append("g").attr("class","nv-legendWrap"),i)if("top"===j)d.width(n).key(c.x()),t.select(".nv-legendWrap").datum(e).call(d),f.top!=d.height()&&(f.top=d.height(),o=a.utils.availableHeight(h,k,f)),t.select(".nv-legendWrap").attr("transform","translate(0,"+-f.top+")");else if("right"===j){var w=a.models.legend().width();w>n/2&&(w=n/2),d.height(o).key(c.x()),d.width(w),n-=d.width(),t.select(".nv-legendWrap").datum(e).call(d).attr("transform","translate("+n+",0)")}t.attr("transform","translate("+f.left+","+f.top+")"),c.width(n).height(o);var x=v.select(".nv-pieWrap").datum([e]);d3.transition(x).call(c),d.dispatch.on("stateChange",function(a){for(var c in a)l[c]=a[c];p.stateChange(l),b.update()}),p.on("changeState",function(a){"undefined"!=typeof a.disabled&&(e.forEach(function(b,c){b.disabled=a.disabled[c]}),l.disabled=a.disabled),b.update()})}),q.renderEnd("pieChart immediate"),b}var c=a.models.pie(),d=a.models.legend(),e=a.models.tooltip(),f={top:30,right:20,bottom:20,left:20},g=null,h=null,i=!0,j="top",k=a.utils.defaultColor(),l=a.utils.state(),m=null,n=null,o=250,p=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState","renderEnd");e.headerEnabled(!1).duration(0).valueFormatter(function(a,b){return c.valueFormat()(a,b)});var q=a.utils.renderWatch(p),r=function(a){return function(){return{active:a.map(function(a){return!a.disabled})}}},s=function(a){return function(b){void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};return c.dispatch.on("elementMouseover.tooltip",function(a){a.series={key:b.x()(a.data),value:b.y()(a.data),color:a.color},e.data(a).hidden(!1)}),c.dispatch.on("elementMouseout.tooltip",function(){e.hidden(!0)}),c.dispatch.on("elementMousemove.tooltip",function(){e.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.legend=d,b.dispatch=p,b.pie=c,b.tooltip=e,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{noData:{get:function(){return n},set:function(a){n=a}},showLegend:{get:function(){return i},set:function(a){i=a}},legendPosition:{get:function(){return j},set:function(a){j=a}},defaultState:{get:function(){return m},set:function(a){m=a}},tooltips:{get:function(){return e.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),e.enabled(!!b)}},tooltipContent:{get:function(){return e.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),e.contentGenerator(b)}},color:{get:function(){return k},set:function(a){k=a,d.color(k),c.color(k)}},duration:{get:function(){return o},set:function(a){o=a,q.reset(o)}},margin:{get:function(){return f},set:function(a){f.top=void 0!==a.top?a.top:f.top,f.right=void 0!==a.right?a.right:f.right,f.bottom=void 0!==a.bottom?a.bottom:f.bottom,f.left=void 0!==a.left?a.left:f.left}}}),a.utils.inheritOptions(b,c),a.utils.initOptions(b),b},a.models.scatter=function(){"use strict";function b(N){return P.reset(),N.each(function(b){function N(){if(O=!1,!w)return!1;if(M===!0){var a=d3.merge(b.map(function(a,b){return a.values.map(function(a,c){var d=p(a,c),e=q(a,c);return[m(d)+1e-4*Math.random(),n(e)+1e-4*Math.random(),b,c,a]}).filter(function(a,b){return x(a[4],b)})}));if(0==a.length)return!1;a.length<3&&(a.push([m.range()[0]-20,n.range()[0]-20,null,null]),a.push([m.range()[1]+20,n.range()[1]+20,null,null]),a.push([m.range()[0]-20,n.range()[0]+20,null,null]),a.push([m.range()[1]+20,n.range()[1]-20,null,null]));var c=d3.geom.polygon([[-10,-10],[-10,i+10],[h+10,i+10],[h+10,-10]]),d=d3.geom.voronoi(a).map(function(b,d){return{data:c.clip(b),series:a[d][2],point:a[d][3]}});U.select(".nv-point-paths").selectAll("path").remove();var e=U.select(".nv-point-paths").selectAll("path").data(d),f=e.enter().append("svg:path").attr("d",function(a){return a&&a.data&&0!==a.data.length?"M"+a.data.join(",")+"Z":"M 0 0"}).attr("id",function(a,b){return"nv-path-"+b}).attr("clip-path",function(a,b){return"url(#nv-clip-"+b+")"});C&&f.style("fill",d3.rgb(230,230,230)).style("fill-opacity",.4).style("stroke-opacity",1).style("stroke",d3.rgb(200,200,200)),B&&(U.select(".nv-point-clips").selectAll("clipPath").remove(),U.select(".nv-point-clips").selectAll("clipPath").data(a).enter().append("svg:clipPath").attr("id",function(a,b){return"nv-clip-"+b}).append("svg:circle").attr("cx",function(a){return a[0]}).attr("cy",function(a){return a[1]}).attr("r",D));var k=function(a,c){if(O)return 0;var d=b[a.series];if(void 0!==d){var e=d.values[a.point];e.color=j(d,a.series),e.x=p(e),e.y=q(e);var f=l.node().getBoundingClientRect(),h=window.pageYOffset||document.documentElement.scrollTop,i=window.pageXOffset||document.documentElement.scrollLeft,k={left:m(p(e,a.point))+f.left+i+g.left+10,top:n(q(e,a.point))+f.top+h+g.top+10};c({point:e,series:d,pos:k,seriesIndex:a.series,pointIndex:a.point})}};e.on("click",function(a){k(a,L.elementClick)}).on("dblclick",function(a){k(a,L.elementDblClick)}).on("mouseover",function(a){k(a,L.elementMouseover)}).on("mouseout",function(a){k(a,L.elementMouseout)})}else U.select(".nv-groups").selectAll(".nv-group").selectAll(".nv-point").on("click",function(a,c){if(O||!b[a.series])return 0;var d=b[a.series],e=d.values[c];L.elementClick({point:e,series:d,pos:[m(p(e,c))+g.left,n(q(e,c))+g.top],seriesIndex:a.series,pointIndex:c})}).on("dblclick",function(a,c){if(O||!b[a.series])return 0;var d=b[a.series],e=d.values[c];L.elementDblClick({point:e,series:d,pos:[m(p(e,c))+g.left,n(q(e,c))+g.top],seriesIndex:a.series,pointIndex:c})}).on("mouseover",function(a,c){if(O||!b[a.series])return 0;var d=b[a.series],e=d.values[c];L.elementMouseover({point:e,series:d,pos:[m(p(e,c))+g.left,n(q(e,c))+g.top],seriesIndex:a.series,pointIndex:c,color:j(a,c)})}).on("mouseout",function(a,c){if(O||!b[a.series])return 0;var d=b[a.series],e=d.values[c];L.elementMouseout({point:e,series:d,seriesIndex:a.series,pointIndex:c,color:j(a,c)})})}l=d3.select(this);var R=a.utils.availableWidth(h,l,g),S=a.utils.availableHeight(i,l,g);a.utils.initSVG(l),b.forEach(function(a,b){a.values.forEach(function(a){a.series=b})});var T=E&&F&&I?[]:d3.merge(b.map(function(a){return a.values.map(function(a,b){return{x:p(a,b),y:q(a,b),size:r(a,b)}})}));m.domain(E||d3.extent(T.map(function(a){return a.x}).concat(t))),m.range(y&&b[0]?G||[(R*z+R)/(2*b[0].values.length),R-R*(1+z)/(2*b[0].values.length)]:G||[0,R]),n.domain(F||d3.extent(T.map(function(a){return a.y}).concat(u))).range(H||[S,0]),o.domain(I||d3.extent(T.map(function(a){return a.size}).concat(v))).range(J||Q),K=m.domain()[0]===m.domain()[1]||n.domain()[0]===n.domain()[1],m.domain()[0]===m.domain()[1]&&m.domain(m.domain()[0]?[m.domain()[0]-.01*m.domain()[0],m.domain()[1]+.01*m.domain()[1]]:[-1,1]),n.domain()[0]===n.domain()[1]&&n.domain(n.domain()[0]?[n.domain()[0]-.01*n.domain()[0],n.domain()[1]+.01*n.domain()[1]]:[-1,1]),isNaN(m.domain()[0])&&m.domain([-1,1]),isNaN(n.domain()[0])&&n.domain([-1,1]),c=c||m,d=d||n,e=e||o;var U=l.selectAll("g.nv-wrap.nv-scatter").data([b]),V=U.enter().append("g").attr("class","nvd3 nv-wrap nv-scatter nv-chart-"+k),W=V.append("defs"),X=V.append("g"),Y=U.select("g");U.classed("nv-single-point",K),X.append("g").attr("class","nv-groups"),X.append("g").attr("class","nv-point-paths"),V.append("g").attr("class","nv-point-clips"),U.attr("transform","translate("+g.left+","+g.top+")"),W.append("clipPath").attr("id","nv-edge-clip-"+k).append("rect"),U.select("#nv-edge-clip-"+k+" rect").attr("width",R).attr("height",S>0?S:0),Y.attr("clip-path",A?"url(#nv-edge-clip-"+k+")":""),O=!0;var Z=U.select(".nv-groups").selectAll(".nv-group").data(function(a){return a},function(a){return a.key});Z.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),Z.exit().remove(),Z.attr("class",function(a,b){return"nv-group nv-series-"+b}).classed("hover",function(a){return a.hover}),Z.watchTransition(P,"scatter: groups").style("fill",function(a,b){return j(a,b)}).style("stroke",function(a,b){return j(a,b)}).style("stroke-opacity",1).style("fill-opacity",.5);var $=Z.selectAll("path.nv-point").data(function(a){return a.values.map(function(a,b){return[a,b]}).filter(function(a,b){return x(a[0],b)})});$.enter().append("path").style("fill",function(a){return a.color}).style("stroke",function(a){return a.color}).attr("transform",function(a){return"translate("+c(p(a[0],a[1]))+","+d(q(a[0],a[1]))+")"}).attr("d",a.utils.symbol().type(function(a){return s(a[0])}).size(function(a){return o(r(a[0],a[1]))})),$.exit().remove(),Z.exit().selectAll("path.nv-point").watchTransition(P,"scatter exit").attr("transform",function(a){return"translate("+m(p(a[0],a[1]))+","+n(q(a[0],a[1]))+")"}).remove(),$.each(function(a){d3.select(this).classed("nv-point",!0).classed("nv-point-"+a[1],!0).classed("nv-noninteractive",!w).classed("hover",!1)}),$.watchTransition(P,"scatter points").attr("transform",function(a){return"translate("+m(p(a[0],a[1]))+","+n(q(a[0],a[1]))+")"}).attr("d",a.utils.symbol().type(function(a){return s(a[0])}).size(function(a){return o(r(a[0],a[1]))})),clearTimeout(f),f=setTimeout(N,300),c=m.copy(),d=n.copy(),e=o.copy()}),P.renderEnd("scatter immediate"),b}var c,d,e,f,g={top:0,right:0,bottom:0,left:0},h=null,i=null,j=a.utils.defaultColor(),k=Math.floor(1e5*Math.random()),l=null,m=d3.scale.linear(),n=d3.scale.linear(),o=d3.scale.linear(),p=function(a){return a.x},q=function(a){return a.y},r=function(a){return a.size||1},s=function(a){return a.shape||"circle"},t=[],u=[],v=[],w=!0,x=function(a){return!a.notActive},y=!1,z=.1,A=!1,B=!0,C=!1,D=function(){return 25},E=null,F=null,G=null,H=null,I=null,J=null,K=!1,L=d3.dispatch("elementClick","elementDblClick","elementMouseover","elementMouseout","renderEnd"),M=!0,N=250,O=!1,P=a.utils.renderWatch(L,N),Q=[16,256];return b.dispatch=L,b.options=a.utils.optionsFunc.bind(b),b._calls=new function(){this.clearHighlights=function(){return a.dom.write(function(){l.selectAll(".nv-point.hover").classed("hover",!1)}),null},this.highlightPoint=function(b,c,d){a.dom.write(function(){l.select(" .nv-series-"+b+" .nv-point-"+c).classed("hover",d)})}},L.on("elementMouseover.point",function(a){w&&b._calls.highlightPoint(a.seriesIndex,a.pointIndex,!0)}),L.on("elementMouseout.point",function(a){w&&b._calls.highlightPoint(a.seriesIndex,a.pointIndex,!1)}),b._options=Object.create({},{width:{get:function(){return h},set:function(a){h=a}},height:{get:function(){return i},set:function(a){i=a}},xScale:{get:function(){return m},set:function(a){m=a}},yScale:{get:function(){return n},set:function(a){n=a}},pointScale:{get:function(){return o},set:function(a){o=a}},xDomain:{get:function(){return E},set:function(a){E=a}},yDomain:{get:function(){return F},set:function(a){F=a}},pointDomain:{get:function(){return I},set:function(a){I=a}},xRange:{get:function(){return G},set:function(a){G=a}},yRange:{get:function(){return H},set:function(a){H=a}},pointRange:{get:function(){return J},set:function(a){J=a}},forceX:{get:function(){return t},set:function(a){t=a}},forceY:{get:function(){return u},set:function(a){u=a}},forcePoint:{get:function(){return v},set:function(a){v=a}},interactive:{get:function(){return w},set:function(a){w=a}},pointActive:{get:function(){return x},set:function(a){x=a}},padDataOuter:{get:function(){return z},set:function(a){z=a}},padData:{get:function(){return y},set:function(a){y=a}},clipEdge:{get:function(){return A},set:function(a){A=a}},clipVoronoi:{get:function(){return B},set:function(a){B=a}},clipRadius:{get:function(){return D},set:function(a){D=a}},showVoronoi:{get:function(){return C},set:function(a){C=a}},id:{get:function(){return k},set:function(a){k=a}},x:{get:function(){return p},set:function(a){p=d3.functor(a)}},y:{get:function(){return q},set:function(a){q=d3.functor(a)}},pointSize:{get:function(){return r},set:function(a){r=d3.functor(a)}},pointShape:{get:function(){return s},set:function(a){s=d3.functor(a)}},margin:{get:function(){return g},set:function(a){g.top=void 0!==a.top?a.top:g.top,g.right=void 0!==a.right?a.right:g.right,g.bottom=void 0!==a.bottom?a.bottom:g.bottom,g.left=void 0!==a.left?a.left:g.left}},duration:{get:function(){return N},set:function(a){N=a,P.reset(N)}},color:{get:function(){return j},set:function(b){j=a.utils.getColor(b)}},useVoronoi:{get:function(){return M},set:function(a){M=a,M===!1&&(B=!1)}}}),a.utils.initOptions(b),b},a.models.scatterChart=function(){"use strict";function b(z){return D.reset(),D.models(c),t&&D.models(d),u&&D.models(e),q&&D.models(g),r&&D.models(h),z.each(function(z){m=d3.select(this),a.utils.initSVG(m);var G=a.utils.availableWidth(k,m,j),H=a.utils.availableHeight(l,m,j);if(b.update=function(){0===A?m.call(b):m.transition().duration(A).call(b)},b.container=this,w.setter(F(z),b.update).getter(E(z)).update(),w.disabled=z.map(function(a){return!!a.disabled}),!x){var I;x={};for(I in w)x[I]=w[I]instanceof Array?w[I].slice(0):w[I]}if(!(z&&z.length&&z.filter(function(a){return a.values.length}).length))return a.utils.noData(b,m),D.renderEnd("scatter immediate"),b;m.selectAll(".nv-noData").remove(),o=c.xScale(),p=c.yScale();var J=m.selectAll("g.nv-wrap.nv-scatterChart").data([z]),K=J.enter().append("g").attr("class","nvd3 nv-wrap nv-scatterChart nv-chart-"+c.id()),L=K.append("g"),M=J.select("g");if(L.append("rect").attr("class","nvd3 nv-background").style("pointer-events","none"),L.append("g").attr("class","nv-x nv-axis"),L.append("g").attr("class","nv-y nv-axis"),L.append("g").attr("class","nv-scatterWrap"),L.append("g").attr("class","nv-regressionLinesWrap"),L.append("g").attr("class","nv-distWrap"),L.append("g").attr("class","nv-legendWrap"),v&&M.select(".nv-y.nv-axis").attr("transform","translate("+G+",0)"),s){var N=G;f.width(N),J.select(".nv-legendWrap").datum(z).call(f),j.top!=f.height()&&(j.top=f.height(),H=a.utils.availableHeight(l,m,j)),J.select(".nv-legendWrap").attr("transform","translate(0,"+-j.top+")")}J.attr("transform","translate("+j.left+","+j.top+")"),c.width(G).height(H).color(z.map(function(a,b){return a.color=a.color||n(a,b),a.color}).filter(function(a,b){return!z[b].disabled})),J.select(".nv-scatterWrap").datum(z.filter(function(a){return!a.disabled})).call(c),J.select(".nv-regressionLinesWrap").attr("clip-path","url(#nv-edge-clip-"+c.id()+")");var O=J.select(".nv-regressionLinesWrap").selectAll(".nv-regLines").data(function(a){return a});O.enter().append("g").attr("class","nv-regLines");var P=O.selectAll(".nv-regLine").data(function(a){return[a]});P.enter().append("line").attr("class","nv-regLine").style("stroke-opacity",0),P.filter(function(a){return a.intercept&&a.slope}).watchTransition(D,"scatterPlusLineChart: regline").attr("x1",o.range()[0]).attr("x2",o.range()[1]).attr("y1",function(a){return p(o.domain()[0]*a.slope+a.intercept)}).attr("y2",function(a){return p(o.domain()[1]*a.slope+a.intercept)}).style("stroke",function(a,b,c){return n(a,c)}).style("stroke-opacity",function(a){return a.disabled||"undefined"==typeof a.slope||"undefined"==typeof a.intercept?0:1}),t&&(d.scale(o)._ticks(a.utils.calcTicksX(G/100,z)).tickSize(-H,0),M.select(".nv-x.nv-axis").attr("transform","translate(0,"+p.range()[0]+")").call(d)),u&&(e.scale(p)._ticks(a.utils.calcTicksY(H/36,z)).tickSize(-G,0),M.select(".nv-y.nv-axis").call(e)),q&&(g.getData(c.x()).scale(o).width(G).color(z.map(function(a,b){return a.color||n(a,b)}).filter(function(a,b){return!z[b].disabled})),L.select(".nv-distWrap").append("g").attr("class","nv-distributionX"),M.select(".nv-distributionX").attr("transform","translate(0,"+p.range()[0]+")").datum(z.filter(function(a){return!a.disabled})).call(g)),r&&(h.getData(c.y()).scale(p).width(H).color(z.map(function(a,b){return a.color||n(a,b)}).filter(function(a,b){return!z[b].disabled})),L.select(".nv-distWrap").append("g").attr("class","nv-distributionY"),M.select(".nv-distributionY").attr("transform","translate("+(v?G:-h.size())+",0)").datum(z.filter(function(a){return!a.disabled})).call(h)),f.dispatch.on("stateChange",function(a){for(var c in a)w[c]=a[c];y.stateChange(w),b.update()}),y.on("changeState",function(a){"undefined"!=typeof a.disabled&&(z.forEach(function(b,c){b.disabled=a.disabled[c]}),w.disabled=a.disabled),b.update()}),c.dispatch.on("elementMouseout.tooltip",function(a){i.hidden(!0),m.select(".nv-chart-"+c.id()+" .nv-series-"+a.seriesIndex+" .nv-distx-"+a.pointIndex).attr("y1",0),m.select(".nv-chart-"+c.id()+" .nv-series-"+a.seriesIndex+" .nv-disty-"+a.pointIndex).attr("x2",h.size())}),c.dispatch.on("elementMouseover.tooltip",function(a){m.select(".nv-series-"+a.seriesIndex+" .nv-distx-"+a.pointIndex).attr("y1",a.pos.top-H-j.top),m.select(".nv-series-"+a.seriesIndex+" .nv-disty-"+a.pointIndex).attr("x2",a.pos.left+g.size()-j.left),i.position(a.pos).data(a).hidden(!1)}),B=o.copy(),C=p.copy()}),D.renderEnd("scatter with line immediate"),b}var c=a.models.scatter(),d=a.models.axis(),e=a.models.axis(),f=a.models.legend(),g=a.models.distribution(),h=a.models.distribution(),i=a.models.tooltip(),j={top:30,right:20,bottom:50,left:75},k=null,l=null,m=null,n=a.utils.defaultColor(),o=c.xScale(),p=c.yScale(),q=!1,r=!1,s=!0,t=!0,u=!0,v=!1,w=a.utils.state(),x=null,y=d3.dispatch("stateChange","changeState","renderEnd"),z=null,A=250;c.xScale(o).yScale(p),d.orient("bottom").tickPadding(10),e.orient(v?"right":"left").tickPadding(10),g.axis("x"),h.axis("y"),i.headerFormatter(function(a,b){return d.tickFormat()(a,b)}).valueFormatter(function(a,b){return e.tickFormat()(a,b)});var B,C,D=a.utils.renderWatch(y,A),E=function(a){return function(){return{active:a.map(function(a){return!a.disabled})}}},F=function(a){return function(b){void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};return b.dispatch=y,b.scatter=c,b.legend=f,b.xAxis=d,b.yAxis=e,b.distX=g,b.distY=h,b.tooltip=i,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return k},set:function(a){k=a}},height:{get:function(){return l},set:function(a){l=a}},container:{get:function(){return m},set:function(a){m=a}},showDistX:{get:function(){return q},set:function(a){q=a}},showDistY:{get:function(){return r},set:function(a){r=a}},showLegend:{get:function(){return s},set:function(a){s=a}},showXAxis:{get:function(){return t},set:function(a){t=a}},showYAxis:{get:function(){return u},set:function(a){u=a}},defaultState:{get:function(){return x},set:function(a){x=a}},noData:{get:function(){return z},set:function(a){z=a}},duration:{get:function(){return A},set:function(a){A=a}},tooltips:{get:function(){return i.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),i.enabled(!!b) +}},tooltipContent:{get:function(){return i.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),i.contentGenerator(b)}},tooltipXContent:{get:function(){return i.contentGenerator()},set:function(){a.deprecated("tooltipContent","This option is removed, put values into main tooltip.")}},tooltipYContent:{get:function(){return i.contentGenerator()},set:function(){a.deprecated("tooltipContent","This option is removed, put values into main tooltip.")}},margin:{get:function(){return j},set:function(a){j.top=void 0!==a.top?a.top:j.top,j.right=void 0!==a.right?a.right:j.right,j.bottom=void 0!==a.bottom?a.bottom:j.bottom,j.left=void 0!==a.left?a.left:j.left}},rightAlignYAxis:{get:function(){return v},set:function(a){v=a,e.orient(a?"right":"left")}},color:{get:function(){return n},set:function(b){n=a.utils.getColor(b),f.color(n),g.color(n),h.color(n)}}}),a.utils.inheritOptions(b,c),a.utils.initOptions(b),b},a.models.sparkline=function(){"use strict";function b(k){return k.each(function(b){var k=h-g.left-g.right,q=i-g.top-g.bottom;j=d3.select(this),a.utils.initSVG(j),l.domain(c||d3.extent(b,n)).range(e||[0,k]),m.domain(d||d3.extent(b,o)).range(f||[q,0]);{var r=j.selectAll("g.nv-wrap.nv-sparkline").data([b]),s=r.enter().append("g").attr("class","nvd3 nv-wrap nv-sparkline");s.append("g"),r.select("g")}r.attr("transform","translate("+g.left+","+g.top+")");var t=r.selectAll("path").data(function(a){return[a]});t.enter().append("path"),t.exit().remove(),t.style("stroke",function(a,b){return a.color||p(a,b)}).attr("d",d3.svg.line().x(function(a,b){return l(n(a,b))}).y(function(a,b){return m(o(a,b))}));var u=r.selectAll("circle.nv-point").data(function(a){function b(b){if(-1!=b){var c=a[b];return c.pointIndex=b,c}return null}var c=a.map(function(a,b){return o(a,b)}),d=b(c.lastIndexOf(m.domain()[1])),e=b(c.indexOf(m.domain()[0])),f=b(c.length-1);return[e,d,f].filter(function(a){return null!=a})});u.enter().append("circle"),u.exit().remove(),u.attr("cx",function(a){return l(n(a,a.pointIndex))}).attr("cy",function(a){return m(o(a,a.pointIndex))}).attr("r",2).attr("class",function(a){return n(a,a.pointIndex)==l.domain()[1]?"nv-point nv-currentValue":o(a,a.pointIndex)==m.domain()[0]?"nv-point nv-minValue":"nv-point nv-maxValue"})}),b}var c,d,e,f,g={top:2,right:0,bottom:2,left:0},h=400,i=32,j=null,k=!0,l=d3.scale.linear(),m=d3.scale.linear(),n=function(a){return a.x},o=function(a){return a.y},p=a.utils.getColor(["#000"]);return b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return h},set:function(a){h=a}},height:{get:function(){return i},set:function(a){i=a}},xDomain:{get:function(){return c},set:function(a){c=a}},yDomain:{get:function(){return d},set:function(a){d=a}},xRange:{get:function(){return e},set:function(a){e=a}},yRange:{get:function(){return f},set:function(a){f=a}},xScale:{get:function(){return l},set:function(a){l=a}},yScale:{get:function(){return m},set:function(a){m=a}},animate:{get:function(){return k},set:function(a){k=a}},x:{get:function(){return n},set:function(a){n=d3.functor(a)}},y:{get:function(){return o},set:function(a){o=d3.functor(a)}},margin:{get:function(){return g},set:function(a){g.top=void 0!==a.top?a.top:g.top,g.right=void 0!==a.right?a.right:g.right,g.bottom=void 0!==a.bottom?a.bottom:g.bottom,g.left=void 0!==a.left?a.left:g.left}},color:{get:function(){return p},set:function(b){p=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.sparklinePlus=function(){"use strict";function b(p){return p.each(function(p){function q(){if(!j){var a=z.selectAll(".nv-hoverValue").data(i),b=a.enter().append("g").attr("class","nv-hoverValue").style("stroke-opacity",0).style("fill-opacity",0);a.exit().transition().duration(250).style("stroke-opacity",0).style("fill-opacity",0).remove(),a.attr("transform",function(a){return"translate("+c(e.x()(p[a],a))+",0)"}).transition().duration(250).style("stroke-opacity",1).style("fill-opacity",1),i.length&&(b.append("line").attr("x1",0).attr("y1",-f.top).attr("x2",0).attr("y2",u),b.append("text").attr("class","nv-xValue").attr("x",-6).attr("y",-f.top).attr("text-anchor","end").attr("dy",".9em"),z.select(".nv-hoverValue .nv-xValue").text(k(e.x()(p[i[0]],i[0]))),b.append("text").attr("class","nv-yValue").attr("x",6).attr("y",-f.top).attr("text-anchor","start").attr("dy",".9em"),z.select(".nv-hoverValue .nv-yValue").text(l(e.y()(p[i[0]],i[0]))))}}function r(){function a(a,b){for(var c=Math.abs(e.x()(a[0],0)-b),d=0,f=0;f<a.length;f++)Math.abs(e.x()(a[f],f)-b)<c&&(c=Math.abs(e.x()(a[f],f)-b),d=f);return d}if(!j){var b=d3.mouse(this)[0]-f.left;i=[a(p,Math.round(c.invert(b)))],q()}}var s=d3.select(this);a.utils.initSVG(s);var t=a.utils.availableWidth(g,s,f),u=a.utils.availableHeight(h,s,f);if(b.update=function(){s.call(b)},b.container=this,!p||!p.length)return a.utils.noData(b,s),b;s.selectAll(".nv-noData").remove();var v=e.y()(p[p.length-1],p.length-1);c=e.xScale(),d=e.yScale();var w=s.selectAll("g.nv-wrap.nv-sparklineplus").data([p]),x=w.enter().append("g").attr("class","nvd3 nv-wrap nv-sparklineplus"),y=x.append("g"),z=w.select("g");y.append("g").attr("class","nv-sparklineWrap"),y.append("g").attr("class","nv-valueWrap"),y.append("g").attr("class","nv-hoverArea"),w.attr("transform","translate("+f.left+","+f.top+")");var A=z.select(".nv-sparklineWrap");if(e.width(t).height(u),A.call(e),m){var B=z.select(".nv-valueWrap"),C=B.selectAll(".nv-currentValue").data([v]);C.enter().append("text").attr("class","nv-currentValue").attr("dx",o?-8:8).attr("dy",".9em").style("text-anchor",o?"end":"start"),C.attr("x",t+(o?f.right:0)).attr("y",n?function(a){return d(a)}:0).style("fill",e.color()(p[p.length-1],p.length-1)).text(l(v))}y.select(".nv-hoverArea").append("rect").on("mousemove",r).on("click",function(){j=!j}).on("mouseout",function(){i=[],q()}),z.select(".nv-hoverArea rect").attr("transform",function(){return"translate("+-f.left+","+-f.top+")"}).attr("width",t+f.left+f.right).attr("height",u+f.top)}),b}var c,d,e=a.models.sparkline(),f={top:15,right:100,bottom:10,left:50},g=null,h=null,i=[],j=!1,k=d3.format(",r"),l=d3.format(",.2f"),m=!0,n=!0,o=!1,p=null;return b.sparkline=e,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return g},set:function(a){g=a}},height:{get:function(){return h},set:function(a){h=a}},xTickFormat:{get:function(){return k},set:function(a){k=a}},yTickFormat:{get:function(){return l},set:function(a){l=a}},showLastValue:{get:function(){return m},set:function(a){m=a}},alignValue:{get:function(){return n},set:function(a){n=a}},rightAlignValue:{get:function(){return o},set:function(a){o=a}},noData:{get:function(){return p},set:function(a){p=a}},margin:{get:function(){return f},set:function(a){f.top=void 0!==a.top?a.top:f.top,f.right=void 0!==a.right?a.right:f.right,f.bottom=void 0!==a.bottom?a.bottom:f.bottom,f.left=void 0!==a.left?a.left:f.left}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.stackedArea=function(){"use strict";function b(m){return u.reset(),u.models(r),m.each(function(m){var s=f-e.left-e.right,v=g-e.top-e.bottom;j=d3.select(this),a.utils.initSVG(j),c=r.xScale(),d=r.yScale();var w=m;m.forEach(function(a,b){a.seriesIndex=b,a.values=a.values.map(function(a,c){return a.index=c,a.seriesIndex=b,a})});var x=m.filter(function(a){return!a.disabled});m=d3.layout.stack().order(o).offset(n).values(function(a){return a.values}).x(k).y(l).out(function(a,b,c){a.display={y:c,y0:b}})(x);var y=j.selectAll("g.nv-wrap.nv-stackedarea").data([m]),z=y.enter().append("g").attr("class","nvd3 nv-wrap nv-stackedarea"),A=z.append("defs"),B=z.append("g"),C=y.select("g");B.append("g").attr("class","nv-areaWrap"),B.append("g").attr("class","nv-scatterWrap"),y.attr("transform","translate("+e.left+","+e.top+")"),0==r.forceY().length&&r.forceY().push(0),r.width(s).height(v).x(k).y(function(a){return a.display.y+a.display.y0}).forceY([0]).color(m.map(function(a){return a.color||h(a,a.seriesIndex)}));var D=C.select(".nv-scatterWrap").datum(m);D.call(r),A.append("clipPath").attr("id","nv-edge-clip-"+i).append("rect"),y.select("#nv-edge-clip-"+i+" rect").attr("width",s).attr("height",v),C.attr("clip-path",q?"url(#nv-edge-clip-"+i+")":"");var E=d3.svg.area().x(function(a,b){return c(k(a,b))}).y0(function(a){return d(a.display.y0)}).y1(function(a){return d(a.display.y+a.display.y0)}).interpolate(p),F=d3.svg.area().x(function(a,b){return c(k(a,b))}).y0(function(a){return d(a.display.y0)}).y1(function(a){return d(a.display.y0)}),G=C.select(".nv-areaWrap").selectAll("path.nv-area").data(function(a){return a});G.enter().append("path").attr("class",function(a,b){return"nv-area nv-area-"+b}).attr("d",function(a){return F(a.values,a.seriesIndex)}).on("mouseover",function(a){d3.select(this).classed("hover",!0),t.areaMouseover({point:a,series:a.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:a.seriesIndex})}).on("mouseout",function(a){d3.select(this).classed("hover",!1),t.areaMouseout({point:a,series:a.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:a.seriesIndex})}).on("click",function(a){d3.select(this).classed("hover",!1),t.areaClick({point:a,series:a.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:a.seriesIndex})}),G.exit().remove(),G.style("fill",function(a){return a.color||h(a,a.seriesIndex)}).style("stroke",function(a){return a.color||h(a,a.seriesIndex)}),G.watchTransition(u,"stackedArea path").attr("d",function(a,b){return E(a.values,b)}),r.dispatch.on("elementMouseover.area",function(a){C.select(".nv-chart-"+i+" .nv-area-"+a.seriesIndex).classed("hover",!0)}),r.dispatch.on("elementMouseout.area",function(a){C.select(".nv-chart-"+i+" .nv-area-"+a.seriesIndex).classed("hover",!1)}),b.d3_stackedOffset_stackPercent=function(a){var b,c,d,e=a.length,f=a[0].length,g=[];for(c=0;f>c;++c){for(b=0,d=0;b<w.length;b++)d+=l(w[b].values[c]);if(d)for(b=0;e>b;b++)a[b][c][1]/=d;else for(b=0;e>b;b++)a[b][c][1]=0}for(c=0;f>c;++c)g[c]=0;return g}}),u.renderEnd("stackedArea immediate"),b}var c,d,e={top:0,right:0,bottom:0,left:0},f=960,g=500,h=a.utils.defaultColor(),i=Math.floor(1e5*Math.random()),j=null,k=function(a){return a.x},l=function(a){return a.y},m="stack",n="zero",o="default",p="linear",q=!1,r=a.models.scatter(),s=250,t=d3.dispatch("areaClick","areaMouseover","areaMouseout","renderEnd","elementClick","elementMouseover","elementMouseout");r.pointSize(2.2).pointDomain([2.2,2.2]);var u=a.utils.renderWatch(t,s);return b.dispatch=t,b.scatter=r,r.dispatch.on("elementClick",function(){t.elementClick.apply(this,arguments)}),r.dispatch.on("elementMouseover",function(){t.elementMouseover.apply(this,arguments)}),r.dispatch.on("elementMouseout",function(){t.elementMouseout.apply(this,arguments)}),b.interpolate=function(a){return arguments.length?(p=a,b):p},b.duration=function(a){return arguments.length?(s=a,u.reset(s),r.duration(s),b):s},b.dispatch=t,b.scatter=r,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return f},set:function(a){f=a}},height:{get:function(){return g},set:function(a){g=a}},clipEdge:{get:function(){return q},set:function(a){q=a}},offset:{get:function(){return n},set:function(a){n=a}},order:{get:function(){return o},set:function(a){o=a}},interpolate:{get:function(){return p},set:function(a){p=a}},x:{get:function(){return k},set:function(a){k=d3.functor(a)}},y:{get:function(){return l},set:function(a){l=d3.functor(a)}},margin:{get:function(){return e},set:function(a){e.top=void 0!==a.top?a.top:e.top,e.right=void 0!==a.right?a.right:e.right,e.bottom=void 0!==a.bottom?a.bottom:e.bottom,e.left=void 0!==a.left?a.left:e.left}},color:{get:function(){return h},set:function(b){h=a.utils.getColor(b)}},style:{get:function(){return m},set:function(a){switch(m=a){case"stack":b.offset("zero"),b.order("default");break;case"stream":b.offset("wiggle"),b.order("inside-out");break;case"stream-center":b.offset("silhouette"),b.order("inside-out");break;case"expand":b.offset("expand"),b.order("default");break;case"stack_percent":b.offset(b.d3_stackedOffset_stackPercent),b.order("default")}}},duration:{get:function(){return s},set:function(a){s=a,u.reset(s),r.duration(s)}}}),a.utils.inheritOptions(b,r),a.utils.initOptions(b),b},a.models.stackedAreaChart=function(){"use strict";function b(k){return F.reset(),F.models(e),r&&F.models(f),s&&F.models(g),k.each(function(k){var x=d3.select(this),F=this;a.utils.initSVG(x);var K=a.utils.availableWidth(m,x,l),L=a.utils.availableHeight(n,x,l);if(b.update=function(){x.transition().duration(C).call(b)},b.container=this,v.setter(I(k),b.update).getter(H(k)).update(),v.disabled=k.map(function(a){return!!a.disabled}),!w){var M;w={};for(M in v)w[M]=v[M]instanceof Array?v[M].slice(0):v[M]}if(!(k&&k.length&&k.filter(function(a){return a.values.length}).length))return a.utils.noData(b,x),b;x.selectAll(".nv-noData").remove(),c=e.xScale(),d=e.yScale();var N=x.selectAll("g.nv-wrap.nv-stackedAreaChart").data([k]),O=N.enter().append("g").attr("class","nvd3 nv-wrap nv-stackedAreaChart").append("g"),P=N.select("g");if(O.append("rect").style("opacity",0),O.append("g").attr("class","nv-x nv-axis"),O.append("g").attr("class","nv-y nv-axis"),O.append("g").attr("class","nv-stackedWrap"),O.append("g").attr("class","nv-legendWrap"),O.append("g").attr("class","nv-controlsWrap"),O.append("g").attr("class","nv-interactive"),P.select("rect").attr("width",K).attr("height",L),q){var Q=p?K-z:K;h.width(Q),P.select(".nv-legendWrap").datum(k).call(h),l.top!=h.height()&&(l.top=h.height(),L=a.utils.availableHeight(n,x,l)),P.select(".nv-legendWrap").attr("transform","translate("+(K-Q)+","+-l.top+")")}if(p){var R=[{key:B.stacked||"Stacked",metaKey:"Stacked",disabled:"stack"!=e.style(),style:"stack"},{key:B.stream||"Stream",metaKey:"Stream",disabled:"stream"!=e.style(),style:"stream"},{key:B.expanded||"Expanded",metaKey:"Expanded",disabled:"expand"!=e.style(),style:"expand"},{key:B.stack_percent||"Stack %",metaKey:"Stack_Percent",disabled:"stack_percent"!=e.style(),style:"stack_percent"}];z=A.length/3*260,R=R.filter(function(a){return-1!==A.indexOf(a.metaKey)}),i.width(z).color(["#444","#444","#444"]),P.select(".nv-controlsWrap").datum(R).call(i),l.top!=Math.max(i.height(),h.height())&&(l.top=Math.max(i.height(),h.height()),L=a.utils.availableHeight(n,x,l)),P.select(".nv-controlsWrap").attr("transform","translate(0,"+-l.top+")")}N.attr("transform","translate("+l.left+","+l.top+")"),t&&P.select(".nv-y.nv-axis").attr("transform","translate("+K+",0)"),u&&(j.width(K).height(L).margin({left:l.left,top:l.top}).svgContainer(x).xScale(c),N.select(".nv-interactive").call(j)),e.width(K).height(L);var S=P.select(".nv-stackedWrap").datum(k);if(S.transition().call(e),r&&(f.scale(c)._ticks(a.utils.calcTicksX(K/100,k)).tickSize(-L,0),P.select(".nv-x.nv-axis").attr("transform","translate(0,"+L+")"),P.select(".nv-x.nv-axis").transition().duration(0).call(f)),s){var T;if(T="wiggle"===e.offset()?0:a.utils.calcTicksY(L/36,k),g.scale(d)._ticks(T).tickSize(-K,0),"expand"===e.style()||"stack_percent"===e.style()){var U=g.tickFormat();D&&U===J||(D=U),g.tickFormat(J)}else D&&(g.tickFormat(D),D=null);P.select(".nv-y.nv-axis").transition().duration(0).call(g)}e.dispatch.on("areaClick.toggle",function(a){k.forEach(1===k.filter(function(a){return!a.disabled}).length?function(a){a.disabled=!1}:function(b,c){b.disabled=c!=a.seriesIndex}),v.disabled=k.map(function(a){return!!a.disabled}),y.stateChange(v),b.update()}),h.dispatch.on("stateChange",function(a){for(var c in a)v[c]=a[c];y.stateChange(v),b.update()}),i.dispatch.on("legendClick",function(a){a.disabled&&(R=R.map(function(a){return a.disabled=!0,a}),a.disabled=!1,e.style(a.style),v.style=e.style(),y.stateChange(v),b.update())}),j.dispatch.on("elementMousemove",function(c){e.clearHighlights();var d,g,h,i=[];if(k.filter(function(a,b){return a.seriesIndex=b,!a.disabled}).forEach(function(f,j){g=a.interactiveBisect(f.values,c.pointXValue,b.x());var k=f.values[g],l=b.y()(k,g);if(null!=l&&e.highlightPoint(j,g,!0),"undefined"!=typeof k){"undefined"==typeof d&&(d=k),"undefined"==typeof h&&(h=b.xScale()(b.x()(k,g)));var m="expand"==e.style()?k.display.y:b.y()(k,g);i.push({key:f.key,value:m,color:o(f,f.seriesIndex),stackedValue:k.display})}}),i.reverse(),i.length>2){var m=b.yScale().invert(c.mouseY),n=null;i.forEach(function(a,b){m=Math.abs(m);var c=Math.abs(a.stackedValue.y0),d=Math.abs(a.stackedValue.y);return m>=c&&d+c>=m?void(n=b):void 0}),null!=n&&(i[n].highlight=!0)}var p=f.tickFormat()(b.x()(d,g)),q=j.tooltip.valueFormatter();"expand"===e.style()||"stack_percent"===e.style()?(E||(E=q),q=d3.format(".1%")):E&&(q=E,E=null),j.tooltip.position({left:h+l.left,top:c.mouseY+l.top}).chartContainer(F.parentNode).valueFormatter(q).data({value:p,series:i})(),j.renderGuideLine(h)}),j.dispatch.on("elementMouseout",function(){e.clearHighlights()}),y.on("changeState",function(a){"undefined"!=typeof a.disabled&&k.length===a.disabled.length&&(k.forEach(function(b,c){b.disabled=a.disabled[c]}),v.disabled=a.disabled),"undefined"!=typeof a.style&&(e.style(a.style),G=a.style),b.update()})}),F.renderEnd("stacked Area chart immediate"),b}var c,d,e=a.models.stackedArea(),f=a.models.axis(),g=a.models.axis(),h=a.models.legend(),i=a.models.legend(),j=a.interactiveGuideline(),k=a.models.tooltip(),l={top:30,right:25,bottom:50,left:60},m=null,n=null,o=a.utils.defaultColor(),p=!0,q=!0,r=!0,s=!0,t=!1,u=!1,v=a.utils.state(),w=null,x=null,y=d3.dispatch("stateChange","changeState","renderEnd"),z=250,A=["Stacked","Stream","Expanded"],B={},C=250;v.style=e.style(),f.orient("bottom").tickPadding(7),g.orient(t?"right":"left"),k.headerFormatter(function(a,b){return f.tickFormat()(a,b)}).valueFormatter(function(a,b){return g.tickFormat()(a,b)}),j.tooltip.headerFormatter(function(a,b){return f.tickFormat()(a,b)}).valueFormatter(function(a,b){return g.tickFormat()(a,b)});var D=null,E=null;i.updateState(!1);var F=a.utils.renderWatch(y),G=e.style(),H=function(a){return function(){return{active:a.map(function(a){return!a.disabled}),style:e.style()}}},I=function(a){return function(b){void 0!==b.style&&(G=b.style),void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}},J=d3.format("%");return e.dispatch.on("elementMouseover.tooltip",function(a){a.point.x=e.x()(a.point),a.point.y=e.y()(a.point),k.data(a).position(a.pos).hidden(!1)}),e.dispatch.on("elementMouseout.tooltip",function(){k.hidden(!0)}),b.dispatch=y,b.stacked=e,b.legend=h,b.controls=i,b.xAxis=f,b.yAxis=g,b.interactiveLayer=j,b.tooltip=k,b.dispatch=y,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return m},set:function(a){m=a}},height:{get:function(){return n},set:function(a){n=a}},showLegend:{get:function(){return q},set:function(a){q=a}},showXAxis:{get:function(){return r},set:function(a){r=a}},showYAxis:{get:function(){return s},set:function(a){s=a}},defaultState:{get:function(){return w},set:function(a){w=a}},noData:{get:function(){return x},set:function(a){x=a}},showControls:{get:function(){return p},set:function(a){p=a}},controlLabels:{get:function(){return B},set:function(a){B=a}},controlOptions:{get:function(){return A},set:function(a){A=a}},tooltips:{get:function(){return k.enabled()},set:function(b){a.deprecated("tooltips","use chart.tooltip.enabled() instead"),k.enabled(!!b)}},tooltipContent:{get:function(){return k.contentGenerator()},set:function(b){a.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),k.contentGenerator(b)}},margin:{get:function(){return l},set:function(a){l.top=void 0!==a.top?a.top:l.top,l.right=void 0!==a.right?a.right:l.right,l.bottom=void 0!==a.bottom?a.bottom:l.bottom,l.left=void 0!==a.left?a.left:l.left}},duration:{get:function(){return C},set:function(a){C=a,F.reset(C),e.duration(C),f.duration(C),g.duration(C)}},color:{get:function(){return o},set:function(b){o=a.utils.getColor(b),h.color(o),e.color(o)}},rightAlignYAxis:{get:function(){return t},set:function(a){t=a,g.orient(t?"right":"left")}},useInteractiveGuideline:{get:function(){return u},set:function(a){u=!!a,b.interactive(!a),b.useVoronoi(!a),e.scatter.interactive(!a)}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.sunburst=function(){"use strict";function b(u){return t.reset(),u.each(function(b){function t(a){a.x0=a.x,a.dx0=a.dx}function u(a){var b=d3.interpolate(p.domain(),[a.x,a.x+a.dx]),c=d3.interpolate(q.domain(),[a.y,1]),d=d3.interpolate(q.range(),[a.y?20:0,y]);return function(a,e){return e?function(){return s(a)}:function(e){return p.domain(b(e)),q.domain(c(e)).range(d(e)),s(a)}}}l=d3.select(this);var v,w=a.utils.availableWidth(g,l,f),x=a.utils.availableHeight(h,l,f),y=Math.min(w,x)/2;a.utils.initSVG(l);var z=l.selectAll(".nv-wrap.nv-sunburst").data(b),A=z.enter().append("g").attr("class","nvd3 nv-wrap nv-sunburst nv-chart-"+k),B=A.selectAll("nv-sunburst");z.attr("transform","translate("+w/2+","+x/2+")"),l.on("click",function(a,b){o.chartClick({data:a,index:b,pos:d3.event,id:k})}),q.range([0,y]),c=c||b,e=b[0],r.value(j[i]||j.count),v=B.data(r.nodes).enter().append("path").attr("d",s).style("fill",function(a){return m((a.children?a:a.parent).name)}).style("stroke","#FFF").on("click",function(a){d!==c&&c!==a&&(d=c),c=a,v.transition().duration(n).attrTween("d",u(a))}).each(t).on("dblclick",function(a){d.parent==a&&v.transition().duration(n).attrTween("d",u(e))}).each(t).on("mouseover",function(a){d3.select(this).classed("hover",!0).style("opacity",.8),o.elementMouseover({data:a,color:d3.select(this).style("fill")})}).on("mouseout",function(a){d3.select(this).classed("hover",!1).style("opacity",1),o.elementMouseout({data:a})}).on("mousemove",function(a){o.elementMousemove({data:a})})}),t.renderEnd("sunburst immediate"),b}var c,d,e,f={top:0,right:0,bottom:0,left:0},g=null,h=null,i="count",j={count:function(){return 1},size:function(a){return a.size}},k=Math.floor(1e4*Math.random()),l=null,m=a.utils.defaultColor(),n=500,o=d3.dispatch("chartClick","elementClick","elementDblClick","elementMousemove","elementMouseover","elementMouseout","renderEnd"),p=d3.scale.linear().range([0,2*Math.PI]),q=d3.scale.sqrt(),r=d3.layout.partition().sort(null).value(function(){return 1}),s=d3.svg.arc().startAngle(function(a){return Math.max(0,Math.min(2*Math.PI,p(a.x)))}).endAngle(function(a){return Math.max(0,Math.min(2*Math.PI,p(a.x+a.dx)))}).innerRadius(function(a){return Math.max(0,q(a.y))}).outerRadius(function(a){return Math.max(0,q(a.y+a.dy))}),t=a.utils.renderWatch(o);return b.dispatch=o,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return g},set:function(a){g=a}},height:{get:function(){return h},set:function(a){h=a}},mode:{get:function(){return i},set:function(a){i=a}},id:{get:function(){return k},set:function(a){k=a}},duration:{get:function(){return n},set:function(a){n=a}},margin:{get:function(){return f},set:function(a){f.top=void 0!=a.top?a.top:f.top,f.right=void 0!=a.right?a.right:f.right,f.bottom=void 0!=a.bottom?a.bottom:f.bottom,f.left=void 0!=a.left?a.left:f.left}},color:{get:function(){return m},set:function(b){m=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.sunburstChart=function(){"use strict";function b(d){return m.reset(),m.models(c),d.each(function(d){var h=d3.select(this);a.utils.initSVG(h);var i=a.utils.availableWidth(f,h,e),j=a.utils.availableHeight(g,h,e);if(b.update=function(){0===k?h.call(b):h.transition().duration(k).call(b)},b.container=this,!d||!d.length)return a.utils.noData(b,h),b;h.selectAll(".nv-noData").remove();var l=h.selectAll("g.nv-wrap.nv-sunburstChart").data(d),m=l.enter().append("g").attr("class","nvd3 nv-wrap nv-sunburstChart").append("g"),n=l.select("g");m.append("g").attr("class","nv-sunburstWrap"),l.attr("transform","translate("+e.left+","+e.top+")"),c.width(i).height(j);var o=n.select(".nv-sunburstWrap").datum(d);d3.transition(o).call(c)}),m.renderEnd("sunburstChart immediate"),b}var c=a.models.sunburst(),d=a.models.tooltip(),e={top:30,right:20,bottom:20,left:20},f=null,g=null,h=a.utils.defaultColor(),i=(Math.round(1e5*Math.random()),null),j=null,k=250,l=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState","renderEnd"),m=a.utils.renderWatch(l);return d.headerEnabled(!1).duration(0).valueFormatter(function(a){return a}),c.dispatch.on("elementMouseover.tooltip",function(a){a.series={key:a.data.name,value:a.data.size,color:a.color},d.data(a).hidden(!1)}),c.dispatch.on("elementMouseout.tooltip",function(){d.hidden(!0)}),c.dispatch.on("elementMousemove.tooltip",function(){d.position({top:d3.event.pageY,left:d3.event.pageX})()}),b.dispatch=l,b.sunburst=c,b.tooltip=d,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{noData:{get:function(){return j},set:function(a){j=a}},defaultState:{get:function(){return i},set:function(a){i=a}},color:{get:function(){return h},set:function(a){h=a,c.color(h)}},duration:{get:function(){return k},set:function(a){k=a,m.reset(k),c.duration(k)}},margin:{get:function(){return e},set:function(a){e.top=void 0!==a.top?a.top:e.top,e.right=void 0!==a.right?a.right:e.right,e.bottom=void 0!==a.bottom?a.bottom:e.bottom,e.left=void 0!==a.left?a.left:e.left}}}),a.utils.inheritOptions(b,c),a.utils.initOptions(b),b},a.version="1.8.1"}(); \ No newline at end of file diff --git a/test/coverage/_js/popper.min.js b/test/coverage/_js/popper.min.js new file mode 100644 index 0000000..36c2aeb --- /dev/null +++ b/test/coverage/_js/popper.min.js @@ -0,0 +1,5 @@ +/* + Copyright (C) Federico Zivolo 2019 + Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT). + */(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=e.ownerDocument.defaultView,n=o.getComputedStyle(e,null);return t?n[t]:n}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll|overlay)/.test(r+s+p)?e:n(o(e))}function r(e){return 11===e?pe:10===e?se:pe||se}function p(e){if(!e)return document.documentElement;for(var o=r(10)?document.body:null,n=e.offsetParent||null;n===o&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TH','TD','TABLE'].indexOf(n.nodeName)&&'static'===t(n,'position')?p(n):n:e?e.ownerDocument.documentElement:document.documentElement}function s(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||p(e.firstElementChild)===e)}function d(e){return null===e.parentNode?e:d(e.parentNode)}function a(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=o?e:t,i=o?t:e,r=document.createRange();r.setStart(n,0),r.setEnd(i,0);var l=r.commonAncestorContainer;if(e!==l&&t!==l||n.contains(i))return s(l)?l:p(l);var f=d(e);return f.host?a(f.host,t):a(e,d(t).host)}function l(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'top',o='top'===t?'scrollTop':'scrollLeft',n=e.nodeName;if('BODY'===n||'HTML'===n){var i=e.ownerDocument.documentElement,r=e.ownerDocument.scrollingElement||i;return r[o]}return e[o]}function f(e,t){var o=2<arguments.length&&void 0!==arguments[2]&&arguments[2],n=l(t,'top'),i=l(t,'left'),r=o?-1:1;return e.top+=n*r,e.bottom+=n*r,e.left+=i*r,e.right+=i*r,e}function m(e,t){var o='x'===t?'Left':'Top',n='Left'==o?'Right':'Bottom';return parseFloat(e['border'+o+'Width'],10)+parseFloat(e['border'+n+'Width'],10)}function h(e,t,o,n){return ee(t['offset'+e],t['scroll'+e],o['client'+e],o['offset'+e],o['scroll'+e],r(10)?parseInt(o['offset'+e])+parseInt(n['margin'+('Height'===e?'Top':'Left')])+parseInt(n['margin'+('Height'===e?'Bottom':'Right')]):0)}function c(e){var t=e.body,o=e.documentElement,n=r(10)&&getComputedStyle(o);return{height:h('Height',t,o,n),width:h('Width',t,o,n)}}function g(e){return fe({},e,{right:e.left+e.width,bottom:e.top+e.height})}function u(e){var o={};try{if(r(10)){o=e.getBoundingClientRect();var n=l(e,'top'),i=l(e,'left');o.top+=n,o.left+=i,o.bottom+=n,o.right+=i}else o=e.getBoundingClientRect()}catch(t){}var p={left:o.left,top:o.top,width:o.right-o.left,height:o.bottom-o.top},s='HTML'===e.nodeName?c(e.ownerDocument):{},d=s.width||e.clientWidth||p.right-p.left,a=s.height||e.clientHeight||p.bottom-p.top,f=e.offsetWidth-d,h=e.offsetHeight-a;if(f||h){var u=t(e);f-=m(u,'x'),h-=m(u,'y'),p.width-=f,p.height-=h}return g(p)}function b(e,o){var i=2<arguments.length&&void 0!==arguments[2]&&arguments[2],p=r(10),s='HTML'===o.nodeName,d=u(e),a=u(o),l=n(e),m=t(o),h=parseFloat(m.borderTopWidth,10),c=parseFloat(m.borderLeftWidth,10);i&&s&&(a.top=ee(a.top,0),a.left=ee(a.left,0));var b=g({top:d.top-a.top-h,left:d.left-a.left-c,width:d.width,height:d.height});if(b.marginTop=0,b.marginLeft=0,!p&&s){var w=parseFloat(m.marginTop,10),y=parseFloat(m.marginLeft,10);b.top-=h-w,b.bottom-=h-w,b.left-=c-y,b.right-=c-y,b.marginTop=w,b.marginLeft=y}return(p&&!i?o.contains(l):o===l&&'BODY'!==l.nodeName)&&(b=f(b,o)),b}function w(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=e.ownerDocument.documentElement,n=b(e,o),i=ee(o.clientWidth,window.innerWidth||0),r=ee(o.clientHeight,window.innerHeight||0),p=t?0:l(o),s=t?0:l(o,'left'),d={top:p-n.top+n.marginTop,left:s-n.left+n.marginLeft,width:i,height:r};return g(d)}function y(e){var n=e.nodeName;if('BODY'===n||'HTML'===n)return!1;if('fixed'===t(e,'position'))return!0;var i=o(e);return!!i&&y(i)}function E(e){if(!e||!e.parentElement||r())return document.documentElement;for(var o=e.parentElement;o&&'none'===t(o,'transform');)o=o.parentElement;return o||document.documentElement}function v(e,t,i,r){var p=4<arguments.length&&void 0!==arguments[4]&&arguments[4],s={top:0,left:0},d=p?E(e):a(e,t);if('viewport'===r)s=w(d,p);else{var l;'scrollParent'===r?(l=n(o(t)),'BODY'===l.nodeName&&(l=e.ownerDocument.documentElement)):'window'===r?l=e.ownerDocument.documentElement:l=r;var f=b(l,d,p);if('HTML'===l.nodeName&&!y(d)){var m=c(e.ownerDocument),h=m.height,g=m.width;s.top+=f.top-f.marginTop,s.bottom=h+f.top,s.left+=f.left-f.marginLeft,s.right=g+f.left}else s=f}i=i||0;var u='number'==typeof i;return s.left+=u?i:i.left||0,s.top+=u?i:i.top||0,s.right-=u?i:i.right||0,s.bottom-=u?i:i.bottom||0,s}function x(e){var t=e.width,o=e.height;return t*o}function O(e,t,o,n,i){var r=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var p=v(o,n,r,i),s={top:{width:p.width,height:t.top-p.top},right:{width:p.right-t.right,height:p.height},bottom:{width:p.width,height:p.bottom-t.bottom},left:{width:t.left-p.left,height:p.height}},d=Object.keys(s).map(function(e){return fe({key:e},s[e],{area:x(s[e])})}).sort(function(e,t){return t.area-e.area}),a=d.filter(function(e){var t=e.width,n=e.height;return t>=o.clientWidth&&n>=o.clientHeight}),l=0<a.length?a[0].key:d[0].key,f=e.split('-')[1];return l+(f?'-'+f:'')}function L(e,t,o){var n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null,i=n?E(t):a(t,o);return b(o,i,n)}function S(e){var t=e.ownerDocument.defaultView,o=t.getComputedStyle(e),n=parseFloat(o.marginTop||0)+parseFloat(o.marginBottom||0),i=parseFloat(o.marginLeft||0)+parseFloat(o.marginRight||0),r={width:e.offsetWidth+i,height:e.offsetHeight+n};return r}function T(e){var t={left:'right',right:'left',bottom:'top',top:'bottom'};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function C(e,t,o){o=o.split('-')[0];var n=S(e),i={width:n.width,height:n.height},r=-1!==['right','left'].indexOf(o),p=r?'top':'left',s=r?'left':'top',d=r?'height':'width',a=r?'width':'height';return i[p]=t[p]+t[d]/2-n[d]/2,i[s]=o===s?t[s]-n[a]:t[T(s)],i}function D(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function N(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var n=D(e,function(e){return e[t]===o});return e.indexOf(n)}function P(t,o,n){var i=void 0===n?t:t.slice(0,N(t,'name',n));return i.forEach(function(t){t['function']&&console.warn('`modifier.function` is deprecated, use `modifier.fn`!');var n=t['function']||t.fn;t.enabled&&e(n)&&(o.offsets.popper=g(o.offsets.popper),o.offsets.reference=g(o.offsets.reference),o=n(o,t))}),o}function k(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=L(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=O(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=C(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?'fixed':'absolute',e=P(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function W(e,t){return e.some(function(e){var o=e.name,n=e.enabled;return n&&o===t})}function B(e){for(var t=[!1,'ms','Webkit','Moz','O'],o=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<t.length;n++){var i=t[n],r=i?''+i+o:e;if('undefined'!=typeof document.body.style[r])return r}return null}function H(){return this.state.isDestroyed=!0,W(this.modifiers,'applyStyle')&&(this.popper.removeAttribute('x-placement'),this.popper.style.position='',this.popper.style.top='',this.popper.style.left='',this.popper.style.right='',this.popper.style.bottom='',this.popper.style.willChange='',this.popper.style[B('transform')]=''),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function A(e){var t=e.ownerDocument;return t?t.defaultView:window}function M(e,t,o,i){var r='BODY'===e.nodeName,p=r?e.ownerDocument.defaultView:e;p.addEventListener(t,o,{passive:!0}),r||M(n(p.parentNode),t,o,i),i.push(p)}function F(e,t,o,i){o.updateBound=i,A(e).addEventListener('resize',o.updateBound,{passive:!0});var r=n(e);return M(r,'scroll',o.updateBound,o.scrollParents),o.scrollElement=r,o.eventsEnabled=!0,o}function I(){this.state.eventsEnabled||(this.state=F(this.reference,this.options,this.state,this.scheduleUpdate))}function R(e,t){return A(e).removeEventListener('resize',t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener('scroll',t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}function U(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=R(this.reference,this.state))}function Y(e){return''!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function V(e,t){Object.keys(t).forEach(function(o){var n='';-1!==['width','height','top','right','bottom','left'].indexOf(o)&&Y(t[o])&&(n='px'),e.style[o]=t[o]+n})}function j(e,t){Object.keys(t).forEach(function(o){var n=t[o];!1===n?e.removeAttribute(o):e.setAttribute(o,t[o])})}function q(e,t){var o=e.offsets,n=o.popper,i=o.reference,r=$,p=function(e){return e},s=r(i.width),d=r(n.width),a=-1!==['left','right'].indexOf(e.placement),l=-1!==e.placement.indexOf('-'),f=t?a||l||s%2==d%2?r:Z:p,m=t?r:p;return{left:f(1==s%2&&1==d%2&&!l&&t?n.left-1:n.left),top:m(n.top),bottom:m(n.bottom),right:f(n.right)}}function K(e,t,o){var n=D(e,function(e){var o=e.name;return o===t}),i=!!n&&e.some(function(e){return e.name===o&&e.enabled&&e.order<n.order});if(!i){var r='`'+t+'`';console.warn('`'+o+'`'+' modifier is required by '+r+' modifier in order to work, be sure to include it before '+r+'!')}return i}function z(e){return'end'===e?'start':'start'===e?'end':e}function G(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=ce.indexOf(e),n=ce.slice(o+1).concat(ce.slice(0,o));return t?n.reverse():n}function _(e,t,o,n){var i=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+i[1],p=i[2];if(!r)return e;if(0===p.indexOf('%')){var s;switch(p){case'%p':s=o;break;case'%':case'%r':default:s=n;}var d=g(s);return d[t]/100*r}if('vh'===p||'vw'===p){var a;return a='vh'===p?ee(document.documentElement.clientHeight,window.innerHeight||0):ee(document.documentElement.clientWidth,window.innerWidth||0),a/100*r}return r}function X(e,t,o,n){var i=[0,0],r=-1!==['right','left'].indexOf(n),p=e.split(/(\+|\-)/).map(function(e){return e.trim()}),s=p.indexOf(D(p,function(e){return-1!==e.search(/,|\s/)}));p[s]&&-1===p[s].indexOf(',')&&console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');var d=/\s*,\s*|\s+/,a=-1===s?[p]:[p.slice(0,s).concat([p[s].split(d)[0]]),[p[s].split(d)[1]].concat(p.slice(s+1))];return a=a.map(function(e,n){var i=(1===n?!r:r)?'height':'width',p=!1;return e.reduce(function(e,t){return''===e[e.length-1]&&-1!==['+','-'].indexOf(t)?(e[e.length-1]=t,p=!0,e):p?(e[e.length-1]+=t,p=!1,e):e.concat(t)},[]).map(function(e){return _(e,i,t,o)})}),a.forEach(function(e,t){e.forEach(function(o,n){Y(o)&&(i[t]+=o*('-'===e[n-1]?-1:1))})}),i}function J(e,t){var o,n=t.offset,i=e.placement,r=e.offsets,p=r.popper,s=r.reference,d=i.split('-')[0];return o=Y(+n)?[+n,0]:X(n,p,s,d),'left'===d?(p.top+=o[0],p.left-=o[1]):'right'===d?(p.top+=o[0],p.left+=o[1]):'top'===d?(p.left+=o[0],p.top-=o[1]):'bottom'===d&&(p.left+=o[0],p.top+=o[1]),e.popper=p,e}for(var Q=Math.min,Z=Math.floor,$=Math.round,ee=Math.max,te='undefined'!=typeof window&&'undefined'!=typeof document,oe=['Edge','Trident','Firefox'],ne=0,ie=0;ie<oe.length;ie+=1)if(te&&0<=navigator.userAgent.indexOf(oe[ie])){ne=1;break}var i=te&&window.Promise,re=i?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},ne))}},pe=te&&!!(window.MSInputMethodContext&&document.documentMode),se=te&&/MSIE 10/.test(navigator.userAgent),de=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')},ae=function(){function e(e,t){for(var o,n=0;n<t.length;n++)o=t[n],o.enumerable=o.enumerable||!1,o.configurable=!0,'value'in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}return function(t,o,n){return o&&e(t.prototype,o),n&&e(t,n),t}}(),le=function(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e},fe=Object.assign||function(e){for(var t,o=1;o<arguments.length;o++)for(var n in t=arguments[o],t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},me=te&&/Firefox/i.test(navigator.userAgent),he=['auto-start','auto','auto-end','top-start','top','top-end','right-start','right','right-end','bottom-end','bottom','bottom-start','left-end','left','left-start'],ce=he.slice(3),ge={FLIP:'flip',CLOCKWISE:'clockwise',COUNTERCLOCKWISE:'counterclockwise'},ue=function(){function t(o,n){var i=this,r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};de(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=re(this.update.bind(this)),this.options=fe({},t.Defaults,r),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=o&&o.jquery?o[0]:o,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(fe({},t.Defaults.modifiers,r.modifiers)).forEach(function(e){i.options.modifiers[e]=fe({},t.Defaults.modifiers[e]||{},r.modifiers?r.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return fe({name:e},i.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(t){t.enabled&&e(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)}),this.update();var p=this.options.eventsEnabled;p&&this.enableEventListeners(),this.state.eventsEnabled=p}return ae(t,[{key:'update',value:function(){return k.call(this)}},{key:'destroy',value:function(){return H.call(this)}},{key:'enableEventListeners',value:function(){return I.call(this)}},{key:'disableEventListeners',value:function(){return U.call(this)}}]),t}();return ue.Utils=('undefined'==typeof window?global:window).PopperUtils,ue.placements=he,ue.Defaults={placement:'bottom',positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,o=t.split('-')[0],n=t.split('-')[1];if(n){var i=e.offsets,r=i.reference,p=i.popper,s=-1!==['bottom','top'].indexOf(o),d=s?'left':'top',a=s?'width':'height',l={start:le({},d,r[d]),end:le({},d,r[d]+r[a]-p[a])};e.offsets.popper=fe({},p,l[n])}return e}},offset:{order:200,enabled:!0,fn:J,offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var o=t.boundariesElement||p(e.instance.popper);e.instance.reference===o&&(o=p(o));var n=B('transform'),i=e.instance.popper.style,r=i.top,s=i.left,d=i[n];i.top='',i.left='',i[n]='';var a=v(e.instance.popper,e.instance.reference,t.padding,o,e.positionFixed);i.top=r,i.left=s,i[n]=d,t.boundaries=a;var l=t.priority,f=e.offsets.popper,m={primary:function(e){var o=f[e];return f[e]<a[e]&&!t.escapeWithReference&&(o=ee(f[e],a[e])),le({},e,o)},secondary:function(e){var o='right'===e?'left':'top',n=f[o];return f[e]>a[e]&&!t.escapeWithReference&&(n=Q(f[o],a[e]-('right'===e?f.width:f.height))),le({},o,n)}};return l.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';f=fe({},f,m[t](e))}),e.offsets.popper=f,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split('-')[0],r=Z,p=-1!==['top','bottom'].indexOf(i),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]<r(n[d])&&(e.offsets.popper[d]=r(n[d])-o[a]),o[d]>r(n[s])&&(e.offsets.popper[d]=r(n[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var n;if(!K(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',c=a?'bottom':'right',u=S(i)[l];d[c]-u<s[m]&&(e.offsets.popper[m]-=s[m]-(d[c]-u)),d[m]+u>s[c]&&(e.offsets.popper[m]+=d[m]+u-s[c]),e.offsets.popper=g(e.offsets.popper);var b=d[m]+d[l]/2-u/2,w=t(e.instance.popper),y=parseFloat(w['margin'+f],10),E=parseFloat(w['border'+f+'Width'],10),v=b-e.offsets.popper[m]-y-E;return v=ee(Q(s[l]-u,v),0),e.arrowElement=i,e.offsets.arrow=(n={},le(n,m,$(v)),le(n,h,''),n),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=v(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split('-')[0],i=T(n),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case ge.FLIP:p=[n,i];break;case ge.CLOCKWISE:p=G(n);break;case ge.COUNTERCLOCKWISE:p=G(n,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(n!==s||p.length===d+1)return e;n=e.placement.split('-')[0],i=T(n);var a=e.offsets.popper,l=e.offsets.reference,f=Z,m='left'===n&&f(a.right)>f(l.left)||'right'===n&&f(a.left)<f(l.right)||'top'===n&&f(a.bottom)>f(l.top)||'bottom'===n&&f(a.top)<f(l.bottom),h=f(a.left)<f(o.left),c=f(a.right)>f(o.right),g=f(a.top)<f(o.top),u=f(a.bottom)>f(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&g||'bottom'===n&&u,w=-1!==['top','bottom'].indexOf(n),y=!!t.flipVariations&&(w&&'start'===r&&h||w&&'end'===r&&c||!w&&'start'===r&&g||!w&&'end'===r&&u),E=!!t.flipVariationsByContent&&(w&&'start'===r&&c||w&&'end'===r&&h||!w&&'start'===r&&u||!w&&'end'===r&&g),v=y||E;(m||b||v)&&(e.flipped=!0,(m||b)&&(n=p[d+1]),v&&(r=z(r)),e.placement=n+(r?'-'+r:''),e.offsets.popper=fe({},e.offsets.popper,C(e.instance.popper,e.offsets.reference,e.placement)),e=P(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport',flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],n=e.offsets,i=n.popper,r=n.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return i[p?'left':'top']=r[o]-(s?i[p?'width':'height']:0),e.placement=T(t),e.offsets.popper=g(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!K(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=D(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottom<o.top||t.left>o.right||t.top>o.bottom||t.right<o.left){if(!0===e.hide)return e;e.hide=!0,e.attributes['x-out-of-boundaries']=''}else{if(!1===e.hide)return e;e.hide=!1,e.attributes['x-out-of-boundaries']=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var o=t.x,n=t.y,i=e.offsets.popper,r=D(e.instance.modifiers,function(e){return'applyStyle'===e.name}).gpuAcceleration;void 0!==r&&console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');var s,d,a=void 0===r?t.gpuAcceleration:r,l=p(e.instance.popper),f=u(l),m={position:i.position},h=q(e,2>window.devicePixelRatio||!me),c='bottom'===o?'top':'bottom',g='right'===n?'left':'right',b=B('transform');if(d='bottom'==c?'HTML'===l.nodeName?-l.clientHeight+h.bottom:-f.height+h.bottom:h.top,s='right'==g?'HTML'===l.nodeName?-l.clientWidth+h.right:-f.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[c]=0,m[g]=0,m.willChange='transform';else{var w='bottom'==c?-1:1,y='right'==g?-1:1;m[c]=d*w,m[g]=s*y,m.willChange=c+', '+g}var E={"x-placement":e.placement};return e.attributes=fe({},E,e.attributes),e.styles=fe({},m,e.styles),e.arrowStyles=fe({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return V(e.instance.popper,e.styles),j(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&V(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,n,i){var r=L(i,t,e,o.positionFixed),p=O(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),V(t,{position:o.positionFixed?'fixed':'absolute'}),o},gpuAcceleration:void 0}}},ue}); +//# sourceMappingURL=popper.min.js.map diff --git a/test/coverage/dashboard.html b/test/coverage/dashboard.html new file mode 100644 index 0000000..3475854 --- /dev/null +++ b/test/coverage/dashboard.html @@ -0,0 +1,327 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Dashboard for /home/cbleek/AtomProjects/Solr/src</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="_css/nv.d3.min.css" rel="stylesheet" type="text/css"> + <link href="_css/style.css" rel="stylesheet" type="text/css"> + <link href="_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item"><a href="index.html">/home/cbleek/AtomProjects/Solr/src</a></li> + <li class="breadcrumb-item active">(Dashboard)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <h2>Classes</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="classCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="classComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + <tr><td><a href="Controller/Plugin/FacetsInjectorProcessJsonRequestDecorator.php.html#20">Solr\Controller\Plugin\FacetsInjectorProcessJsonRequestDecorator</a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Factory/Controller/Plugin/ProcessJsonRequestDelegatorFactory.php.html#22">Solr\Factory\Controller\Plugin\ProcessJsonRequestDelegatorFactory</a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Factory/Filter/JobBoardPaginationQueryFactory.php.html#14">Solr\Factory\Filter\JobBoardPaginationQueryFactory</a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Module.php.html#25">Solr\Module</a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Entity/JobProxy.php.html#32">Solr\Entity\JobProxy</a></td><td class="text-right">77%</td></tr> + <tr><td><a href="Filter/EntityToDocument/JobEntityToSolrDocument.php.html#21">Solr\Filter\EntityToDocument\JobEntityToSolrDocument</a></td><td class="text-right">89%</td></tr> + <tr><td><a href="Filter/JobBoardPaginationQuery.php.html#30">Solr\Filter\JobBoardPaginationQuery</a></td><td class="text-right">89%</td></tr> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Class</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + <tr><td><a href="Entity/JobProxy.php.html#32">Solr\Entity\JobProxy</a></td><td class="text-right">151</td></tr> + <tr><td><a href="Filter/JobBoardPaginationQuery.php.html#30">Solr\Filter\JobBoardPaginationQuery</a></td><td class="text-right">26</td></tr> + <tr><td><a href="Filter/EntityToDocument/JobEntityToSolrDocument.php.html#21">Solr\Filter\EntityToDocument\JobEntityToSolrDocument</a></td><td class="text-right">24</td></tr> + <tr><td><a href="Controller/Plugin/FacetsInjectorProcessJsonRequestDecorator.php.html#20">Solr\Controller\Plugin\FacetsInjectorProcessJsonRequestDecorator</a></td><td class="text-right">20</td></tr> + <tr><td><a href="Factory/Controller/Plugin/ProcessJsonRequestDelegatorFactory.php.html#22">Solr\Factory\Controller\Plugin\ProcessJsonRequestDelegatorFactory</a></td><td class="text-right">6</td></tr> + + </tbody> + </table> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <h2>Methods</h2> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Coverage Distribution</h3> + <div id="methodCoverageDistribution" style="height: 300px;"> + <svg></svg> + </div> + </div> + <div class="col-md-6"> + <h3>Complexity</h3> + <div id="methodComplexity" style="height: 300px;"> + <svg></svg> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <h3>Insufficient Coverage</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right">Coverage</th> + </tr> + </thead> + <tbody> + <tr><td><a href="Controller/Plugin/FacetsInjectorProcessJsonRequestDecorator.php.html#27"><abbr title="Solr\Controller\Plugin\FacetsInjectorProcessJsonRequestDecorator::__construct">__construct</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Controller/Plugin/FacetsInjectorProcessJsonRequestDecorator.php.html#32"><abbr title="Solr\Controller\Plugin\FacetsInjectorProcessJsonRequestDecorator::setController">setController</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Module.php.html#43"><abbr title="Solr\Module::getConfig">getConfig</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Module.php.html#31"><abbr title="Solr\Module::getConsoleUsage">getConsoleUsage</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Listener/JobEventSubscriber.php.html#79"><abbr title="Solr\Listener\JobEventSubscriber::forceUpdate">forceUpdate</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Filter/EntityToDocument/JobEntityToSolrDocument.php.html#28"><abbr title="Solr\Filter\EntityToDocument\JobEntityToSolrDocument::__construct">__construct</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Factory/Filter/JobBoardPaginationQueryFactory.php.html#29"><abbr title="Solr\Factory\Filter\JobBoardPaginationQueryFactory::createService">createService</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Factory/Filter/JobBoardPaginationQueryFactory.php.html#16"><abbr title="Solr\Factory\Filter\JobBoardPaginationQueryFactory::__invoke">__invoke</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Factory/Controller/Plugin/ProcessJsonRequestDelegatorFactory.php.html#24"><abbr title="Solr\Factory\Controller\Plugin\ProcessJsonRequestDelegatorFactory::__invoke">__invoke</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Entity/JobProxy.php.html#622"><abbr title="Solr\Entity\JobProxy::createAttachedEntity">createAttachedEntity</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Entity/JobProxy.php.html#607"><abbr title="Solr\Entity\JobProxy::hasAttachedEntity">hasAttachedEntity</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Entity/JobProxy.php.html#597"><abbr title="Solr\Entity\JobProxy::removeAttachedEntity">removeAttachedEntity</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Entity/JobProxy.php.html#587"><abbr title="Solr\Entity\JobProxy::getAttachedEntity">getAttachedEntity</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Entity/JobProxy.php.html#576"><abbr title="Solr\Entity\JobProxy::addAttachedEntity">addAttachedEntity</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Entity/JobProxy.php.html#560"><abbr title="Solr\Entity\JobProxy::setAttachableEntityManager">setAttachableEntityManager</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Entity/JobProxy.php.html#549"><abbr title="Solr\Entity\JobProxy::setClassifications">setClassifications</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Entity/JobProxy.php.html#530"><abbr title="Solr\Entity\JobProxy::setTemplateValues">setTemplateValues</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Entity/JobProxy.php.html#510"><abbr title="Solr\Entity\JobProxy::hasMetaData">hasMetaData</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Entity/JobProxy.php.html#497"><abbr title="Solr\Entity\JobProxy::setMetaData">setMetaData</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Entity/JobProxy.php.html#484"><abbr title="Solr\Entity\JobProxy::getMetaData">getMetaData</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Controller/Plugin/FacetsInjectorProcessJsonRequestDecorator.php.html#38"><abbr title="Solr\Controller\Plugin\FacetsInjectorProcessJsonRequestDecorator::__invoke">__invoke</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Options/ModuleOptions.php.html#401"><abbr title="Solr\Options\ModuleOptions::getParameterName">getParameterName</abbr></a></td><td class="text-right">0%</td></tr> + <tr><td><a href="Filter/JobBoardPaginationQuery.php.html#201"><abbr title="Solr\Filter\JobBoardPaginationQuery::configureBoostQuery">configureBoostQuery</abbr></a></td><td class="text-right">60%</td></tr> + <tr><td><a href="Filter/EntityToDocument/JobEntityToSolrDocument.php.html#38"><abbr title="Solr\Filter\EntityToDocument\JobEntityToSolrDocument::filter">filter</abbr></a></td><td class="text-right">85%</td></tr> + <tr><td><a href="Filter/JobBoardPaginationQuery.php.html#48"><abbr title="Solr\Filter\JobBoardPaginationQuery::createQuery">createQuery</abbr></a></td><td class="text-right">89%</td></tr> + + </tbody> + </table> + </div> + </div> + <div class="col-md-6"> + <h3>Project Risks</h3> + <div class="scrollbox"> + <table class="table"> + <thead> + <tr> + <th>Method</th> + <th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th> + </tr> + </thead> + <tbody> + <tr><td><a href="Filter/EntityToDocument/JobEntityToSolrDocument.php.html#38"><abbr title="Solr\Filter\EntityToDocument\JobEntityToSolrDocument::filter">filter</abbr></a></td><td class="text-right">14</td></tr> + <tr><td><a href="Filter/JobBoardPaginationQuery.php.html#48"><abbr title="Solr\Filter\JobBoardPaginationQuery::createQuery">createQuery</abbr></a></td><td class="text-right">14</td></tr> + <tr><td><a href="Controller/Plugin/FacetsInjectorProcessJsonRequestDecorator.php.html#38"><abbr title="Solr\Controller\Plugin\FacetsInjectorProcessJsonRequestDecorator::__invoke">__invoke</abbr></a></td><td class="text-right">6</td></tr> + <tr><td><a href="Factory/Controller/Plugin/ProcessJsonRequestDelegatorFactory.php.html#24"><abbr title="Solr\Factory\Controller\Plugin\ProcessJsonRequestDelegatorFactory::__invoke">__invoke</abbr></a></td><td class="text-right">6</td></tr> + <tr><td><a href="Listener/JobEventSubscriber.php.html#79"><abbr title="Solr\Listener\JobEventSubscriber::forceUpdate">forceUpdate</abbr></a></td><td class="text-right">6</td></tr> + <tr><td><a href="Options/ModuleOptions.php.html#401"><abbr title="Solr\Options\ModuleOptions::getParameterName">getParameterName</abbr></a></td><td class="text-right">6</td></tr> + <tr><td><a href="Filter/JobBoardPaginationQuery.php.html#201"><abbr title="Solr\Filter\JobBoardPaginationQuery::configureBoostQuery">configureBoostQuery</abbr></a></td><td class="text-right">3</td></tr> + + </tbody> + </table> + </div> + </div> + </div> + <footer> + <hr/> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + <script src="_js/jquery.min.js" type="text/javascript"></script> + <script src="_js/d3.min.js" type="text/javascript"></script> + <script src="_js/nv.d3.min.js" type="text/javascript"></script> + <script type="text/javascript"> +$(document).ready(function() { + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#classCoverageDistribution svg') + .datum(getCoverageDistributionData([4,0,0,0,0,0,0,0,1,2,2,13], "Class Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.tooltips(false) + .showControls(false) + .showLegend(false) + .reduceXTicks(false) + .staggerLabels(true) + .yAxis.tickFormat(d3.format('d')); + + d3.select('#methodCoverageDistribution svg') + .datum(getCoverageDistributionData([22,0,0,0,0,0,0,1,0,2,0,141], "Method Coverage")) + .transition().duration(500).call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getCoverageDistributionData(data, label) { + var labels = [ + '0%', + '0-10%', + '10-20%', + '20-30%', + '30-40%', + '40-50%', + '50-60%', + '60-70%', + '70-80%', + '80-90%', + '90-100%', + '100%' + ]; + var values = []; + $.each(labels, function(key) { + values.push({x: labels[key], y: data[key]}); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Cyclomatic Complexity'); + + d3.select('#classComplexity svg') + .datum(getComplexityData([[100,5,"<a href=\"Bridge\/Manager.php.html#24\">Solr\\Bridge\\Manager<\/a>"],[100,10,"<a href=\"Bridge\/ResultConverter.php.html#28\">Solr\\Bridge\\ResultConverter<\/a>"],[100,6,"<a href=\"Bridge\/Util.php.html#23\">Solr\\Bridge\\Util<\/a>"],[100,5,"<a href=\"Controller\/ConsoleController.php.html#23\">Solr\\Controller\\ConsoleController<\/a>"],[0,4,"<a href=\"Controller\/Plugin\/FacetsInjectorProcessJsonRequestDecorator.php.html#20\">Solr\\Controller\\Plugin\\FacetsInjectorProcessJsonRequestDecorator<\/a>"],[77.64705882352942,80,"<a href=\"Entity\/JobProxy.php.html#32\">Solr\\Entity\\JobProxy<\/a>"],[100,0,"<a href=\"Exception\/ServerException.php.html#22\">Solr\\Exception\\ServerException<\/a>"],[100,30,"<a href=\"Facets.php.html#22\">Solr\\Facets<\/a>"],[100,1,"<a href=\"Factory\/Controller\/ConsoleControllerFactory.php.html#16\">Solr\\Factory\\Controller\\ConsoleControllerFactory<\/a>"],[0,2,"<a href=\"Factory\/Controller\/Plugin\/ProcessJsonRequestDelegatorFactory.php.html#22\">Solr\\Factory\\Controller\\Plugin\\ProcessJsonRequestDelegatorFactory<\/a>"],[0,2,"<a href=\"Factory\/Filter\/JobBoardPaginationQueryFactory.php.html#14\">Solr\\Factory\\Filter\\JobBoardPaginationQueryFactory<\/a>"],[100,6,"<a href=\"Filter\/AbstractPaginationQuery.php.html#26\">Solr\\Filter\\AbstractPaginationQuery<\/a>"],[89.28571428571429,24,"<a href=\"Filter\/EntityToDocument\/JobEntityToSolrDocument.php.html#21\">Solr\\Filter\\EntityToDocument\\JobEntityToSolrDocument<\/a>"],[89.41176470588236,26,"<a href=\"Filter\/JobBoardPaginationQuery.php.html#30\">Solr\\Filter\\JobBoardPaginationQuery<\/a>"],[100,3,"<a href=\"Listener\/CreatePaginatorListener.php.html#22\">Solr\\Listener\\CreatePaginatorListener<\/a>"],[92.15686274509804,25,"<a href=\"Listener\/JobEventSubscriber.php.html#32\">Solr\\Listener\\JobEventSubscriber<\/a>"],[0,2,"<a href=\"Module.php.html#25\">Solr\\Module<\/a>"],[93.75,32,"<a href=\"Options\/ModuleOptions.php.html#22\">Solr\\Options\\ModuleOptions<\/a>"],[100,7,"<a href=\"Paginator\/Adapter\/SolrAdapter.php.html#28\">Solr\\Paginator\\Adapter\\SolrAdapter<\/a>"],[100,2,"<a href=\"Paginator\/JobsBoardPaginatorFactory.php.html#23\">Solr\\Paginator\\JobsBoardPaginatorFactory<\/a>"],[100,3,"<a href=\"Paginator\/Paginator.php.html#16\">Solr\\Paginator\\Paginator<\/a>"],[100,3,"<a href=\"Paginator\/PaginatorFactoryAbstract.php.html#29\">Solr\\Paginator\\PaginatorFactoryAbstract<\/a>"]], 'Class Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showDistX(true) + .showDistY(true) + .showLegend(false) + .forceX([0, 100]); + chart.tooltipContent(function(graph) { + return '<p>' + graph.point.class + '</p>'; + }); + + chart.xAxis.axisLabel('Code Coverage (in percent)'); + chart.yAxis.axisLabel('Method Complexity'); + + d3.select('#methodComplexity svg') + .datum(getComplexityData([[100,1,"<a href=\"Bridge\/Manager.php.html#42\">Solr\\Bridge\\Manager::__construct<\/a>"],[100,2,"<a href=\"Bridge\/Manager.php.html#53\">Solr\\Bridge\\Manager::getClient<\/a>"],[100,1,"<a href=\"Bridge\/Manager.php.html#77\">Solr\\Bridge\\Manager::getOptions<\/a>"],[100,1,"<a href=\"Bridge\/Manager.php.html#89\">Solr\\Bridge\\Manager::factory<\/a>"],[100,1,"<a href=\"Bridge\/ResultConverter.php.html#39\">Solr\\Bridge\\ResultConverter::__construct<\/a>"],[100,8,"<a href=\"Bridge\/ResultConverter.php.html#52\">Solr\\Bridge\\ResultConverter::convert<\/a>"],[100,1,"<a href=\"Bridge\/ResultConverter.php.html#93\">Solr\\Bridge\\ResultConverter::factory<\/a>"],[100,1,"<a href=\"Bridge\/Util.php.html#30\">Solr\\Bridge\\Util::convertLocationCoordinates<\/a>"],[100,1,"<a href=\"Bridge\/Util.php.html#47\">Solr\\Bridge\\Util::convertLocationString<\/a>"],[100,1,"<a href=\"Bridge\/Util.php.html#63\">Solr\\Bridge\\Util::convertDateTime<\/a>"],[100,3,"<a href=\"Bridge\/Util.php.html#74\">Solr\\Bridge\\Util::convertSolrDateToPhpDateTime<\/a>"],[100,1,"<a href=\"Controller\/ConsoleController.php.html#52\">Solr\\Controller\\ConsoleController::__construct<\/a>"],[100,3,"<a href=\"Controller\/ConsoleController.php.html#60\">Solr\\Controller\\ConsoleController::activeJobIndexAction<\/a>"],[100,1,"<a href=\"Controller\/ConsoleController.php.html#92\">Solr\\Controller\\ConsoleController::getProgressBarFactory<\/a>"],[0,1,"<a href=\"Controller\/Plugin\/FacetsInjectorProcessJsonRequestDecorator.php.html#27\">Solr\\Controller\\Plugin\\FacetsInjectorProcessJsonRequestDecorator::__construct<\/a>"],[0,1,"<a href=\"Controller\/Plugin\/FacetsInjectorProcessJsonRequestDecorator.php.html#32\">Solr\\Controller\\Plugin\\FacetsInjectorProcessJsonRequestDecorator::setController<\/a>"],[0,2,"<a href=\"Controller\/Plugin\/FacetsInjectorProcessJsonRequestDecorator.php.html#38\">Solr\\Controller\\Plugin\\FacetsInjectorProcessJsonRequestDecorator::__invoke<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#49\">Solr\\Entity\\JobProxy::__construct<\/a>"],[100,2,"<a href=\"Entity\/JobProxy.php.html#58\">Solr\\Entity\\JobProxy::getId<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#66\">Solr\\Entity\\JobProxy::getApplications<\/a>"],[100,2,"<a href=\"Entity\/JobProxy.php.html#74\">Solr\\Entity\\JobProxy::getApplyId<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#82\">Solr\\Entity\\JobProxy::getAtsEnabled<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#90\">Solr\\Entity\\JobProxy::getAtsMode<\/a>"],[100,2,"<a href=\"Entity\/JobProxy.php.html#98\">Solr\\Entity\\JobProxy::getCompany<\/a>"],[100,2,"<a href=\"Entity\/JobProxy.php.html#106\">Solr\\Entity\\JobProxy::getContactEmail<\/a>"],[100,2,"<a href=\"Entity\/JobProxy.php.html#114\">Solr\\Entity\\JobProxy::getDatePublishEnd<\/a>"],[100,2,"<a href=\"Entity\/JobProxy.php.html#124\">Solr\\Entity\\JobProxy::getDatePublishStart<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#134\">Solr\\Entity\\JobProxy::getHistory<\/a>"],[100,2,"<a href=\"Entity\/JobProxy.php.html#142\">Solr\\Entity\\JobProxy::getLanguage<\/a>"],[100,3,"<a href=\"Entity\/JobProxy.php.html#150\">Solr\\Entity\\JobProxy::getLink<\/a>"],[100,7,"<a href=\"Entity\/JobProxy.php.html#165\">Solr\\Entity\\JobProxy::getLocation<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#188\">Solr\\Entity\\JobProxy::getLocations<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#196\">Solr\\Entity\\JobProxy::getOrganization<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#204\">Solr\\Entity\\JobProxy::getPortals<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#212\">Solr\\Entity\\JobProxy::getReference<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#220\">Solr\\Entity\\JobProxy::getStatus<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#228\">Solr\\Entity\\JobProxy::getTermsAccepted<\/a>"],[100,2,"<a href=\"Entity\/JobProxy.php.html#236\">Solr\\Entity\\JobProxy::getTitle<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#244\">Solr\\Entity\\JobProxy::getUriApply<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#252\">Solr\\Entity\\JobProxy::getUriPublisher<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#260\">Solr\\Entity\\JobProxy::getUser<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#268\">Solr\\Entity\\JobProxy::setApplications<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#276\">Solr\\Entity\\JobProxy::setApplyId<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#284\">Solr\\Entity\\JobProxy::setAtsEnabled<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#292\">Solr\\Entity\\JobProxy::setAtsMode<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#300\">Solr\\Entity\\JobProxy::setCompany<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#308\">Solr\\Entity\\JobProxy::setContactEmail<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#316\">Solr\\Entity\\JobProxy::setDatePublishEnd<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#324\">Solr\\Entity\\JobProxy::setDatePublishStart<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#332\">Solr\\Entity\\JobProxy::setHistory<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#340\">Solr\\Entity\\JobProxy::setLanguage<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#348\">Solr\\Entity\\JobProxy::setLink<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#356\">Solr\\Entity\\JobProxy::setLocation<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#364\">Solr\\Entity\\JobProxy::setLocations<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#372\">Solr\\Entity\\JobProxy::setOrganization<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#380\">Solr\\Entity\\JobProxy::setPortals<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#388\">Solr\\Entity\\JobProxy::setReference<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#396\">Solr\\Entity\\JobProxy::setStatus<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#404\">Solr\\Entity\\JobProxy::setTermsAccepted<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#412\">Solr\\Entity\\JobProxy::setTitle<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#420\">Solr\\Entity\\JobProxy::setUriApply<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#428\">Solr\\Entity\\JobProxy::setUriPublisher<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#436\">Solr\\Entity\\JobProxy::setUser<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#444\">Solr\\Entity\\JobProxy::getResourceId<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#452\">Solr\\Entity\\JobProxy::getPermissions<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#460\">Solr\\Entity\\JobProxy::setPermissions<\/a>"],[100,2,"<a href=\"Entity\/JobProxy.php.html#469\">Solr\\Entity\\JobProxy::getSolrValue<\/a>"],[0,1,"<a href=\"Entity\/JobProxy.php.html#484\">Solr\\Entity\\JobProxy::getMetaData<\/a>"],[0,1,"<a href=\"Entity\/JobProxy.php.html#497\">Solr\\Entity\\JobProxy::setMetaData<\/a>"],[0,1,"<a href=\"Entity\/JobProxy.php.html#510\">Solr\\Entity\\JobProxy::hasMetaData<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#520\">Solr\\Entity\\JobProxy::getTemplateValues<\/a>"],[0,1,"<a href=\"Entity\/JobProxy.php.html#530\">Solr\\Entity\\JobProxy::setTemplateValues<\/a>"],[100,1,"<a href=\"Entity\/JobProxy.php.html#539\">Solr\\Entity\\JobProxy::getClassifications<\/a>"],[0,1,"<a href=\"Entity\/JobProxy.php.html#549\">Solr\\Entity\\JobProxy::setClassifications<\/a>"],[0,1,"<a href=\"Entity\/JobProxy.php.html#560\">Solr\\Entity\\JobProxy::setAttachableEntityManager<\/a>"],[0,1,"<a href=\"Entity\/JobProxy.php.html#576\">Solr\\Entity\\JobProxy::addAttachedEntity<\/a>"],[0,1,"<a href=\"Entity\/JobProxy.php.html#587\">Solr\\Entity\\JobProxy::getAttachedEntity<\/a>"],[0,1,"<a href=\"Entity\/JobProxy.php.html#597\">Solr\\Entity\\JobProxy::removeAttachedEntity<\/a>"],[0,1,"<a href=\"Entity\/JobProxy.php.html#607\">Solr\\Entity\\JobProxy::hasAttachedEntity<\/a>"],[0,1,"<a href=\"Entity\/JobProxy.php.html#622\">Solr\\Entity\\JobProxy::createAttachedEntity<\/a>"],[100,2,"<a href=\"Facets.php.html#59\">Solr\\Facets::addDefinition<\/a>"],[100,1,"<a href=\"Facets.php.html#76\">Solr\\Facets::getIterator<\/a>"],[100,1,"<a href=\"Facets.php.html#84\">Solr\\Facets::count<\/a>"],[100,5,"<a href=\"Facets.php.html#92\">Solr\\Facets::toArray<\/a>"],[100,1,"<a href=\"Facets.php.html#121\">Solr\\Facets::setFacetResult<\/a>"],[100,1,"<a href=\"Facets.php.html#132\">Solr\\Facets::setParams<\/a>"],[100,5,"<a href=\"Facets.php.html#143\">Solr\\Facets::setupQuery<\/a>"],[100,3,"<a href=\"Facets.php.html#172\">Solr\\Facets::isValueActive<\/a>"],[100,8,"<a href=\"Facets.php.html#184\">Solr\\Facets::getActiveValues<\/a>"],[100,1,"<a href=\"Facets.php.html#215\">Solr\\Facets::getTitle<\/a>"],[100,2,"<a href=\"Facets.php.html#226\">Solr\\Facets::assertValidName<\/a>"],[100,1,"<a href=\"Factory\/Controller\/ConsoleControllerFactory.php.html#18\">Solr\\Factory\\Controller\\ConsoleControllerFactory::__invoke<\/a>"],[0,2,"<a href=\"Factory\/Controller\/Plugin\/ProcessJsonRequestDelegatorFactory.php.html#24\">Solr\\Factory\\Controller\\Plugin\\ProcessJsonRequestDelegatorFactory::__invoke<\/a>"],[0,1,"<a href=\"Factory\/Filter\/JobBoardPaginationQueryFactory.php.html#16\">Solr\\Factory\\Filter\\JobBoardPaginationQueryFactory::__invoke<\/a>"],[0,1,"<a href=\"Factory\/Filter\/JobBoardPaginationQueryFactory.php.html#29\">Solr\\Factory\\Filter\\JobBoardPaginationQueryFactory::createService<\/a>"],[100,3,"<a href=\"Filter\/AbstractPaginationQuery.php.html#34\">Solr\\Filter\\AbstractPaginationQuery::filter<\/a>"],[100,1,"<a href=\"Filter\/AbstractPaginationQuery.php.html#52\">Solr\\Filter\\AbstractPaginationQuery::proxyFactory<\/a>"],[100,1,"<a href=\"Filter\/AbstractPaginationQuery.php.html#59\">Solr\\Filter\\AbstractPaginationQuery::getRepositoryName<\/a>"],[100,1,"<a href=\"Filter\/AbstractPaginationQuery.php.html#66\">Solr\\Filter\\AbstractPaginationQuery::createQuery<\/a>"],[0,1,"<a href=\"Filter\/EntityToDocument\/JobEntityToSolrDocument.php.html#28\">Solr\\Filter\\EntityToDocument\\JobEntityToSolrDocument::__construct<\/a>"],[85.1063829787234,14,"<a href=\"Filter\/EntityToDocument\/JobEntityToSolrDocument.php.html#38\">Solr\\Filter\\EntityToDocument\\JobEntityToSolrDocument::filter<\/a>"],[100,3,"<a href=\"Filter\/EntityToDocument\/JobEntityToSolrDocument.php.html#114\">Solr\\Filter\\EntityToDocument\\JobEntityToSolrDocument::getDocumentIds<\/a>"],[100,2,"<a href=\"Filter\/EntityToDocument\/JobEntityToSolrDocument.php.html#132\">Solr\\Filter\\EntityToDocument\\JobEntityToSolrDocument::processOrganization<\/a>"],[100,3,"<a href=\"Filter\/EntityToDocument\/JobEntityToSolrDocument.php.html#148\">Solr\\Filter\\EntityToDocument\\JobEntityToSolrDocument::processLocation<\/a>"],[100,1,"<a href=\"Filter\/EntityToDocument\/JobEntityToSolrDocument.php.html#181\">Solr\\Filter\\EntityToDocument\\JobEntityToSolrDocument::getLocationDocumentId<\/a>"],[100,1,"<a href=\"Filter\/JobBoardPaginationQuery.php.html#40\">Solr\\Filter\\JobBoardPaginationQuery::__construct<\/a>"],[89.39393939393939,14,"<a href=\"Filter\/JobBoardPaginationQuery.php.html#48\">Solr\\Filter\\JobBoardPaginationQuery::createQuery<\/a>"],[100,1,"<a href=\"Filter\/JobBoardPaginationQuery.php.html#168\">Solr\\Filter\\JobBoardPaginationQuery::proxyFactory<\/a>"],[100,1,"<a href=\"Filter\/JobBoardPaginationQuery.php.html#176\">Solr\\Filter\\JobBoardPaginationQuery::getRepositoryName<\/a>"],[100,2,"<a href=\"Filter\/JobBoardPaginationQuery.php.html#181\">Solr\\Filter\\JobBoardPaginationQuery::configureSorts<\/a>"],[100,4,"<a href=\"Filter\/JobBoardPaginationQuery.php.html#188\">Solr\\Filter\\JobBoardPaginationQuery::configureFilterQuery<\/a>"],[60,3,"<a href=\"Filter\/JobBoardPaginationQuery.php.html#201\">Solr\\Filter\\JobBoardPaginationQuery::configureBoostQuery<\/a>"],[100,3,"<a href=\"Listener\/CreatePaginatorListener.php.html#29\">Solr\\Listener\\CreatePaginatorListener::onCreatePaginator<\/a>"],[100,1,"<a href=\"Listener\/JobEventSubscriber.php.html#69\">Solr\\Listener\\JobEventSubscriber::__construct<\/a>"],[0,2,"<a href=\"Listener\/JobEventSubscriber.php.html#79\">Solr\\Listener\\JobEventSubscriber::forceUpdate<\/a>"],[100,1,"<a href=\"Listener\/JobEventSubscriber.php.html#93\">Solr\\Listener\\JobEventSubscriber::getSubscribedEvents<\/a>"],[100,3,"<a href=\"Listener\/JobEventSubscriber.php.html#106\">Solr\\Listener\\JobEventSubscriber::prePersist<\/a>"],[100,10,"<a href=\"Listener\/JobEventSubscriber.php.html#127\">Solr\\Listener\\JobEventSubscriber::preUpdate<\/a>"],[100,5,"<a href=\"Listener\/JobEventSubscriber.php.html#169\">Solr\\Listener\\JobEventSubscriber::postFlush<\/a>"],[100,2,"<a href=\"Listener\/JobEventSubscriber.php.html#204\">Solr\\Listener\\JobEventSubscriber::getSolrClient<\/a>"],[100,1,"<a href=\"Listener\/JobEventSubscriber.php.html#218\">Solr\\Listener\\JobEventSubscriber::factory<\/a>"],[0,1,"<a href=\"Module.php.html#31\">Solr\\Module::getConsoleUsage<\/a>"],[0,1,"<a href=\"Module.php.html#43\">Solr\\Module::getConfig<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#142\">Solr\\Options\\ModuleOptions::getBoostQueries<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#150\">Solr\\Options\\ModuleOptions::setBoostQueries<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#158\">Solr\\Options\\ModuleOptions::getSorts<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#166\">Solr\\Options\\ModuleOptions::setSorts<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#174\">Solr\\Options\\ModuleOptions::getFilterQueries<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#182\">Solr\\Options\\ModuleOptions::setFilterQueries<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#190\">Solr\\Options\\ModuleOptions::isSecure<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#199\">Solr\\Options\\ModuleOptions::setSecure<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#209\">Solr\\Options\\ModuleOptions::getHostname<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#218\">Solr\\Options\\ModuleOptions::setHostname<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#228\">Solr\\Options\\ModuleOptions::getPort<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#237\">Solr\\Options\\ModuleOptions::setPort<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#247\">Solr\\Options\\ModuleOptions::getPath<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#256\">Solr\\Options\\ModuleOptions::setPath<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#266\">Solr\\Options\\ModuleOptions::getUsername<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#275\">Solr\\Options\\ModuleOptions::setUsername<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#285\">Solr\\Options\\ModuleOptions::getPassword<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#294\">Solr\\Options\\ModuleOptions::setPassword<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#304\">Solr\\Options\\ModuleOptions::getJobsPath<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#313\">Solr\\Options\\ModuleOptions::setJobsPath<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#323\">Solr\\Options\\ModuleOptions::getFacetFields<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#333\">Solr\\Options\\ModuleOptions::setFacetFields<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#342\">Solr\\Options\\ModuleOptions::getParameterNames<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#352\">Solr\\Options\\ModuleOptions::setParameterNames<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#361\">Solr\\Options\\ModuleOptions::getFacetLimit<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#371\">Solr\\Options\\ModuleOptions::setFacetLimit<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#380\">Solr\\Options\\ModuleOptions::getFacetMinCount<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#390\">Solr\\Options\\ModuleOptions::setFacetMinCount<\/a>"],[0,2,"<a href=\"Options\/ModuleOptions.php.html#401\">Solr\\Options\\ModuleOptions::getParameterName<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#409\">Solr\\Options\\ModuleOptions::getMappings<\/a>"],[100,1,"<a href=\"Options\/ModuleOptions.php.html#414\">Solr\\Options\\ModuleOptions::setMappings<\/a>"],[100,1,"<a href=\"Paginator\/Adapter\/SolrAdapter.php.html#77\">Solr\\Paginator\\Adapter\\SolrAdapter::__construct<\/a>"],[100,1,"<a href=\"Paginator\/Adapter\/SolrAdapter.php.html#89\">Solr\\Paginator\\Adapter\\SolrAdapter::getItems<\/a>"],[100,1,"<a href=\"Paginator\/Adapter\/SolrAdapter.php.html#102\">Solr\\Paginator\\Adapter\\SolrAdapter::count<\/a>"],[100,1,"<a href=\"Paginator\/Adapter\/SolrAdapter.php.html#111\">Solr\\Paginator\\Adapter\\SolrAdapter::getFacets<\/a>"],[100,3,"<a href=\"Paginator\/Adapter\/SolrAdapter.php.html#124\">Solr\\Paginator\\Adapter\\SolrAdapter::getResponse<\/a>"],[100,1,"<a href=\"Paginator\/JobsBoardPaginatorFactory.php.html#25\">Solr\\Paginator\\JobsBoardPaginatorFactory::getFilter<\/a>"],[100,1,"<a href=\"Paginator\/JobsBoardPaginatorFactory.php.html#33\">Solr\\Paginator\\JobsBoardPaginatorFactory::getConnectPath<\/a>"],[100,2,"<a href=\"Paginator\/Paginator.php.html#22\">Solr\\Paginator\\Paginator::__construct<\/a>"],[100,1,"<a href=\"Paginator\/Paginator.php.html#34\">Solr\\Paginator\\Paginator::getFacets<\/a>"],[100,1,"<a href=\"Paginator\/PaginatorFactoryAbstract.php.html#31\">Solr\\Paginator\\PaginatorFactoryAbstract::__invoke<\/a>"],[100,1,"<a href=\"Paginator\/PaginatorFactoryAbstract.php.html#51\">Solr\\Paginator\\PaginatorFactoryAbstract::getFilter<\/a>"],[100,1,"<a href=\"Paginator\/PaginatorFactoryAbstract.php.html#60\">Solr\\Paginator\\PaginatorFactoryAbstract::getConnectPath<\/a>"]], 'Method Complexity')) + .transition() + .duration(500) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + + function getComplexityData(data, label) { + var values = []; + $.each(data, function(key) { + var value = Math.round(data[key][0]*100) / 100; + values.push({ + x: value, + y: data[key][1], + class: data[key][2], + size: 0.05, + shape: 'diamond' + }); + }); + + return [ + { + key: label, + values: values, + color: "#4572A7" + } + ]; + } +}); + </script> + </body> +</html> diff --git a/test/coverage/index.html b/test/coverage/index.html new file mode 100644 index 0000000..2fa60cc --- /dev/null +++ b/test/coverage/index.html @@ -0,0 +1,396 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Code Coverage for /home/cbleek/AtomProjects/Solr/src</title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link href="_css/bootstrap.min.css" rel="stylesheet" type="text/css"> + <link href="_css/octicons.css" rel="stylesheet" type="text/css"> + <link href="_css/style.css" rel="stylesheet" type="text/css"> + <link href="_css/custom.css" rel="stylesheet" type="text/css"> + </head> + <body> + <header> + <div class="container-fluid"> + <div class="row"> + <div class="col-md-12"> + <nav aria-label="breadcrumb"> + <ol class="breadcrumb"> + <li class="breadcrumb-item active">/home/cbleek/AtomProjects/Solr/src</li> + <li class="breadcrumb-item">(<a href="dashboard.html">Dashboard</a>)</li> + + </ol> + </nav> + </div> + </div> + </div> + </header> + <div class="container-fluid"> + <div class="table-responsive"> + <table class="table table-bordered"> + <thead> + <tr> + <td> </td> + <td colspan="9"><div align="center"><strong>Code Coverage</strong></div></td> + </tr> + <tr> + <td> </td> + <td colspan="3"><div align="center"><strong>Lines</strong></div></td> + <td colspan="3"><div align="center"><strong>Functions and Methods</strong></div></td> + <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td> + </tr> + </thead> + <tbody> + <tr> + <td class="warning">Total</td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="85.30" aria-valuemin="0" aria-valuemax="100" style="width: 85.30%"> + <span class="sr-only">85.30% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">85.30%</div></td> + <td class="warning small"><div align="right">499 / 585</div></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="84.47" aria-valuemin="0" aria-valuemax="100" style="width: 84.47%"> + <span class="sr-only">84.47% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">84.47%</div></td> + <td class="warning small"><div align="right">136 / 161</div></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="57.14" aria-valuemin="0" aria-valuemax="100" style="width: 57.14%"> + <span class="sr-only">57.14% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">57.14%</div></td> + <td class="warning small"><div align="right">12 / 21</div></td> + </tr> + + <tr> + <td class="success"><img src="_icons/file-directory.svg" class="octicon" /><a href="Bridge/index.html">Bridge</a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">55 / 55</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">11 / 11</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">3 / 3</div></td> + </tr> + + <tr> + <td class="warning"><img src="_icons/file-directory.svg" class="octicon" /><a href="Controller/index.html">Controller</a></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="56.41" aria-valuemin="0" aria-valuemax="100" style="width: 56.41%"> + <span class="sr-only">56.41% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">56.41%</div></td> + <td class="warning small"><div align="right">22 / 39</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%"> + <span class="sr-only">50.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">50.00%</div></td> + <td class="danger small"><div align="right">3 / 6</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%"> + <span class="sr-only">50.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">50.00%</div></td> + <td class="danger small"><div align="right">1 / 2</div></td> + </tr> + + <tr> + <td class="warning"><img src="_icons/file-directory.svg" class="octicon" /><a href="Entity/index.html">Entity</a></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="77.65" aria-valuemin="0" aria-valuemax="100" style="width: 77.65%"> + <span class="sr-only">77.65% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">77.65%</div></td> + <td class="warning small"><div align="right">66 / 85</div></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="82.54" aria-valuemin="0" aria-valuemax="100" style="width: 82.54%"> + <span class="sr-only">82.54% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">82.54%</div></td> + <td class="warning small"><div align="right">52 / 63</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + <tr> + <td class=""><img src="_icons/file-directory.svg" class="octicon" /><a href="Exception/index.html">Exception</a></td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + </tr> + + <tr> + <td class="danger"><img src="_icons/file-directory.svg" class="octicon" /><a href="Factory/index.html">Factory</a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="29.17" aria-valuemin="0" aria-valuemax="100" style="width: 29.17%"> + <span class="sr-only">29.17% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">29.17%</div></td> + <td class="danger small"><div align="right">7 / 24</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="25.00" aria-valuemin="0" aria-valuemax="100" style="width: 25.00%"> + <span class="sr-only">25.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">25.00%</div></td> + <td class="danger small"><div align="right">1 / 4</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="33.33" aria-valuemin="0" aria-valuemax="100" style="width: 33.33%"> + <span class="sr-only">33.33% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">33.33%</div></td> + <td class="danger small"><div align="right">1 / 3</div></td> + </tr> + + <tr> + <td class="warning"><img src="_icons/file-directory.svg" class="octicon" /><a href="Filter/index.html">Filter</a></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="89.71" aria-valuemin="0" aria-valuemax="100" style="width: 89.71%"> + <span class="sr-only">89.71% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">89.71%</div></td> + <td class="warning small"><div align="right">157 / 175</div></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="71.43" aria-valuemin="0" aria-valuemax="100" style="width: 71.43%"> + <span class="sr-only">71.43% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">71.43%</div></td> + <td class="warning small"><div align="right">10 / 14</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="33.33" aria-valuemin="0" aria-valuemax="100" style="width: 33.33%"> + <span class="sr-only">33.33% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">33.33%</div></td> + <td class="danger small"><div align="right">1 / 3</div></td> + </tr> + + <tr> + <td class="success"><img src="_icons/file-directory.svg" class="octicon" /><a href="Listener/index.html">Listener</a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="93.22" aria-valuemin="0" aria-valuemax="100" style="width: 93.22%"> + <span class="sr-only">93.22% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">93.22%</div></td> + <td class="success small"><div align="right">55 / 59</div></td> + <td class="warning big"> <div class="progress"> + <div class="progress-bar bg-warning" role="progressbar" aria-valuenow="88.89" aria-valuemin="0" aria-valuemax="100" style="width: 88.89%"> + <span class="sr-only">88.89% covered (warning)</span> + </div> + </div> +</td> + <td class="warning small"><div align="right">88.89%</div></td> + <td class="warning small"><div align="right">8 / 9</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%"> + <span class="sr-only">50.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">50.00%</div></td> + <td class="danger small"><div align="right">1 / 2</div></td> + </tr> + + <tr> + <td class="success"><img src="_icons/file-directory.svg" class="octicon" /><a href="Options/index.html">Options</a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="93.75" aria-valuemin="0" aria-valuemax="100" style="width: 93.75%"> + <span class="sr-only">93.75% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">93.75%</div></td> + <td class="success small"><div align="right">45 / 48</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="96.77" aria-valuemin="0" aria-valuemax="100" style="width: 96.77%"> + <span class="sr-only">96.77% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">96.77%</div></td> + <td class="success small"><div align="right">30 / 31</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + <tr> + <td class="success"><img src="_icons/file-directory.svg" class="octicon" /><a href="Paginator/index.html">Paginator</a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">37 / 37</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">10 / 10</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">4 / 4</div></td> + </tr> + + <tr> + <td class="success"><img src="_icons/file-code.svg" class="octicon" /><a href="Facets.php.html">Facets.php</a></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">55 / 55</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">11 / 11</div></td> + <td class="success big"> <div class="progress"> + <div class="progress-bar bg-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%"> + <span class="sr-only">100.00% covered (success)</span> + </div> + </div> +</td> + <td class="success small"><div align="right">100.00%</div></td> + <td class="success small"><div align="right">1 / 1</div></td> + </tr> + + <tr> + <td class=""><img src="_icons/file-code.svg" class="octicon" /><a href="FacetsProviderInterface.php.html">FacetsProviderInterface.php</a></td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + <td class=" big"></td> + <td class=" small"><div align="right">n/a</div></td> + <td class=" small"><div align="right">0 / 0</div></td> + </tr> + + <tr> + <td class="danger"><img src="_icons/file-code.svg" class="octicon" /><a href="Module.php.html">Module.php</a></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 8</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 2</div></td> + <td class="danger big"> <div class="progress"> + <div class="progress-bar bg-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%"> + <span class="sr-only">0.00% covered (danger)</span> + </div> + </div> +</td> + <td class="danger small"><div align="right">0.00%</div></td> + <td class="danger small"><div align="right">0 / 1</div></td> + </tr> + + + </tbody> + </table> + </div> + <footer> + <hr/> + <h4>Legend</h4> + <p> + <span class="danger"><strong>Low</strong>: 0% to 50%</span> + <span class="warning"><strong>Medium</strong>: 50% to 90%</span> + <span class="success"><strong>High</strong>: 90% to 100%</span> + </p> + <p> + <small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 7.0.8</a> using <a href="https://secure.php.net/" target="_top">PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1</a> with <a href="https://xdebug.org/">Xdebug 2.7.2</a> and <a href="https://phpunit.de/">PHPUnit 8.3.5</a> at Wed Oct 16 10:02:38 UTC 2019.</small> + </p> + </footer> + </div> + </body> +</html> diff --git a/test/sandbox/config/autoload/mail-service.global.php b/test/sandbox/config/autoload/mail-service.global.php index b09f3e4..721936d 100644 --- a/test/sandbox/config/autoload/mail-service.global.php +++ b/test/sandbox/config/autoload/mail-service.global.php @@ -19,7 +19,7 @@ $transport = 'file'; /** - * Fully-qualified classname or short name resolvable via Zend\Mail\Protocol\SmtpLoader. + * Fully-qualified classname or short name resolvable via Laminas\Mail\Protocol\SmtpLoader. * Typically, this will be one of “smtp”, “plain”, “login”, or “crammd5”, and defaults to “smtp”. */ $auth = 'login'; diff --git a/test/sandbox/config/autoload/solr.moduleoptions.local.php~ b/test/sandbox/config/autoload/solr.moduleoptions.local.php~ new file mode 100644 index 0000000..8518116 --- /dev/null +++ b/test/sandbox/config/autoload/solr.moduleoptions.local.php~ @@ -0,0 +1,83 @@ +<?php +/** + * Module options override. + */ + +$options = [ + // set true if using https + 'secure' => false, + + // The hostname for the Solr server + 'hostname' => 'solr.hq.cross', + + // The port number + 'port' => 8983, + + // The username used for HTTP Authentication, if any + 'username' => null, #'yawik', + + // The HTTP Authentication password + 'password' => null, #'3qaS2uQU86dGbMXjDds2', + + // A path for solr jobs index + 'jobsPath' => '/solr/Gastro24', + + // List of Facet Fields. Fieldnames must exist in the solr index. Each facet field must have a 'name'. + // 'label' is optional. It can be used as a headline of the facet result. + 'facetFields' => [ + [ + 'name' => 'region_MultiString', + 'label' => 'Region' + ], + [ + 'name' => 'city_MultiString', + 'label' => 'Stadt' + ], + [ + 'name' => 'organizationTag', + 'label' => 'Firma' + ], + [ + 'name' => 'profession_MultiString', + 'label' => 'Berufsfeld' + ], + [ + 'name' => 'industry_MultiString', + 'label' => 'Branche' + ], + [ + 'name' => 'employmentType_MultiString', + 'label' => 'Art der Anstellung' + ] + + ], + // + 'parameterNames' => [ + 'q' => [ + 'name' => 'q' + ], + 'l' => [ + 'name' => 'l' + ], + 'd' => [ + 'name' => 'd' + ] + ], + 'sorts' => [ + 'random' => \SolrQuery::ORDER_ASC, + ], + 'filterQueries' => [ + // 'text:(vertrieb OR sales OR Verkäufer OR "Key Account") AND NOT (oracle OR softwareentwicklung OR Netzwerktechniker OR SAP or JAVA OR sachbearbeiter OR Maschinenbau OR P + ], + 'boostQueries' => [ + 'organizationName:(hays orizon)^-1', + ], + + + +]; + +/* + * Do not change below this line + */ +return [ 'options' => [ 'Solr/Options/Module' => [ 'options' => $options ] ] ]; From 4b083117ca5a01113d9f564476d8d2cab22c97c0 Mon Sep 17 00:00:00 2001 From: Carsten Bleek <bleek@cross-solution.de> Date: Tue, 18 Feb 2020 12:09:26 +0100 Subject: [PATCH 2/2] updates to lamina. Sets version to 0.9.0 --- composer.json | 20 +- composer.lock | 9025 +++++++++++++++++++++++++++++++++++++++++++++ package-lock.json | 7 - src/Module.php | 2 +- 4 files changed, 9036 insertions(+), 18 deletions(-) create mode 100644 composer.lock diff --git a/composer.json b/composer.json index 776dde0..6c60080 100644 --- a/composer.json +++ b/composer.json @@ -69,19 +69,19 @@ "php": ">=7.2", "ext-solr": ">=2.4", "laminas/laminas-progressbar": "^2.5", - "yawik/core": "^0.33.14", - "yawik/cv": ">=0.32", - "yawik/auth": ">=0.32", - "yawik/jobs": ">=0.32", - "yawik/applications": ">=0.32", - "yawik/settings": ">=0.32", - "yawik/organizations": ">=0.32", - "yawik/geo": ">=0.32", - "yawik/composer-plugin": ">=0.32", + "yawik/core": "^0.34.0", + "yawik/cv": "^0.34.0", + "yawik/auth": "^0.34.0", + "yawik/jobs": "^0.34.0", + "yawik/applications": "^0.34.0", + "yawik/settings": "^0.34.0", + "yawik/organizations": "^0.34.0", + "yawik/geo": "^1.1.0", + "yawik/composer-plugin": "^1.0.0", "laminas/laminas-dependency-plugin": "^1.0" }, "require-dev": { - "yawik/behat": ">=0.32@dev", + "yawik/behat": "^0.34.0", "cross-solution/phpunit-utils": "^2.0", "phpunit/phpunit": "^8.2.3" } diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..ce10f2e --- /dev/null +++ b/composer.lock @@ -0,0 +1,9025 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "69f82ee98db93c1133cedf456c3e87bc", + "packages": [ + { + "name": "alcaeus/mongo-php-adapter", + "version": "1.1.11", + "source": { + "type": "git", + "url": "https://github.com/alcaeus/mongo-php-adapter.git", + "reference": "43b6add94c8b4cb9890d662cba4c0defde733dcf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/alcaeus/mongo-php-adapter/zipball/43b6add94c8b4cb9890d662cba4c0defde733dcf", + "reference": "43b6add94c8b4cb9890d662cba4c0defde733dcf", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-hash": "*", + "ext-mongodb": "^1.2.0", + "mongodb/mongodb": "^1.0.1", + "php": "^5.6 || ^7.0" + }, + "provide": { + "ext-mongo": "1.6.14" + }, + "require-dev": { + "phpunit/phpunit": "^5.7.27 || ^6.0 || ^7.0", + "squizlabs/php_codesniffer": "^3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-0": { + "Mongo": "lib/Mongo" + }, + "psr-4": { + "Alcaeus\\MongoDbAdapter\\": "lib/Alcaeus/MongoDbAdapter" + }, + "files": [ + "lib/Mongo/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "alcaeus", + "email": "alcaeus@alcaeus.org" + }, + { + "name": "Olivier Lechevalier", + "email": "olivier.lechevalier@gmail.com" + } + ], + "description": "Adapter to provide ext-mongo interface on top of mongo-php-libary", + "keywords": [ + "database", + "mongodb" + ], + "time": "2019-11-11T20:47:32+00:00" + }, + { + "name": "container-interop/container-interop", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/container-interop/container-interop.git", + "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8", + "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8", + "shasum": "" + }, + "require": { + "psr/container": "^1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Interop\\Container\\": "src/Interop/Container/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Promoting the interoperability of container objects (DIC, SL, etc.)", + "homepage": "https://github.com/container-interop/container-interop", + "abandoned": "psr/container", + "time": "2017-02-14T19:40:03+00:00" + }, + { + "name": "doctrine/annotations", + "version": "v1.8.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/annotations.git", + "reference": "904dca4eb10715b92569fbcd79e201d5c349b6bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/904dca4eb10715b92569fbcd79e201d5c349b6bc", + "reference": "904dca4eb10715b92569fbcd79e201d5c349b6bc", + "shasum": "" + }, + "require": { + "doctrine/lexer": "1.*", + "php": "^7.1" + }, + "require-dev": { + "doctrine/cache": "1.*", + "phpunit/phpunit": "^7.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.7.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Docblock Annotations Parser", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "annotations", + "docblock", + "parser" + ], + "time": "2019-10-01T18:55:10+00:00" + }, + { + "name": "doctrine/cache", + "version": "1.10.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/cache.git", + "reference": "382e7f4db9a12dc6c19431743a2b096041bcdd62" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/cache/zipball/382e7f4db9a12dc6c19431743a2b096041bcdd62", + "reference": "382e7f4db9a12dc6c19431743a2b096041bcdd62", + "shasum": "" + }, + "require": { + "php": "~7.1" + }, + "conflict": { + "doctrine/common": ">2.2,<2.4" + }, + "require-dev": { + "alcaeus/mongo-php-adapter": "^1.1", + "doctrine/coding-standard": "^6.0", + "mongodb/mongodb": "^1.1", + "phpunit/phpunit": "^7.0", + "predis/predis": "~1.0" + }, + "suggest": { + "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", + "homepage": "https://www.doctrine-project.org/projects/cache.html", + "keywords": [ + "abstraction", + "apcu", + "cache", + "caching", + "couchdb", + "memcached", + "php", + "redis", + "xcache" + ], + "time": "2019-11-29T15:36:20+00:00" + }, + { + "name": "doctrine/collections", + "version": "1.6.4", + "source": { + "type": "git", + "url": "https://github.com/doctrine/collections.git", + "reference": "6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/collections/zipball/6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7", + "reference": "6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan-shim": "^0.9.2", + "phpunit/phpunit": "^7.0", + "vimeo/psalm": "^3.2.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.", + "homepage": "https://www.doctrine-project.org/projects/collections.html", + "keywords": [ + "array", + "collections", + "iterators", + "php" + ], + "time": "2019-11-13T13:07:11+00:00" + }, + { + "name": "doctrine/common", + "version": "2.12.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/common.git", + "reference": "2053eafdf60c2172ee1373d1b9289ba1db7f1fc6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/common/zipball/2053eafdf60c2172ee1373d1b9289ba1db7f1fc6", + "reference": "2053eafdf60c2172ee1373d1b9289ba1db7f1fc6", + "shasum": "" + }, + "require": { + "doctrine/annotations": "^1.0", + "doctrine/cache": "^1.0", + "doctrine/collections": "^1.0", + "doctrine/event-manager": "^1.0", + "doctrine/inflector": "^1.0", + "doctrine/lexer": "^1.0", + "doctrine/persistence": "^1.1", + "doctrine/reflection": "^1.0", + "php": "^7.1" + }, + "require-dev": { + "doctrine/coding-standard": "^1.0", + "phpstan/phpstan": "^0.11", + "phpstan/phpstan-phpunit": "^0.11", + "phpunit/phpunit": "^7.0", + "squizlabs/php_codesniffer": "^3.0", + "symfony/phpunit-bridge": "^4.0.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.11.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, persistence interfaces, proxies, event system and much more.", + "homepage": "https://www.doctrine-project.org/projects/common.html", + "keywords": [ + "common", + "doctrine", + "php" + ], + "time": "2020-01-10T15:49:25+00:00" + }, + { + "name": "doctrine/doctrine-module", + "version": "2.1.10", + "source": { + "type": "git", + "url": "https://github.com/doctrine/DoctrineModule.git", + "reference": "2b961e58eb911bfe1e99a6e9a69087e05a24201c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/DoctrineModule/zipball/2b961e58eb911bfe1e99a6e9a69087e05a24201c", + "reference": "2b961e58eb911bfe1e99a6e9a69087e05a24201c", + "shasum": "" + }, + "require": { + "doctrine/cache": "^1.7", + "doctrine/common": "^2.8", + "php": "^7.1", + "symfony/console": "^3.3 || ^4.0 || ^5.0", + "zendframework/zend-authentication": "^2.5.3", + "zendframework/zend-cache": "^2.7.1", + "zendframework/zend-form": "^2.11", + "zendframework/zend-hydrator": "^2.3", + "zendframework/zend-mvc": "^3.1", + "zendframework/zend-paginator": "^2.8", + "zendframework/zend-servicemanager": "^3.3", + "zendframework/zend-stdlib": "^3.1", + "zendframework/zend-validator": "^2.10" + }, + "require-dev": { + "phpunit/phpunit": "^7.5.2", + "predis/predis": "^1.1", + "squizlabs/php_codesniffer": "^2.7", + "zendframework/zend-i18n": "^2.7", + "zendframework/zend-log": "^2.9", + "zendframework/zend-modulemanager": "^2.8", + "zendframework/zend-mvc-console": "^1.1.11", + "zendframework/zend-serializer": "^2.8", + "zendframework/zend-session": "^2.8", + "zendframework/zend-test": "^3.1.1", + "zendframework/zend-version": "^2.5.1" + }, + "suggest": { + "doctrine/data-fixtures": "Data Fixtures if you want to generate test data or bootstrap data for your deployments", + "zendframework/zend-mvc-console": "^1.1.11 if you want to use the ZF3 console libraries" + }, + "bin": [ + "bin/doctrine-module" + ], + "type": "library", + "extra": { + "zf": { + "config-provider": "DoctrineModule\\ConfigProvider", + "module": "DoctrineModule" + }, + "branch-alias": { + "dev-1.2-dev": "1.2-dev", + "dev-2.0-dev": "2.0-dev", + "dev-master": "1.2-dev", + "dev-develop": "2.0-dev" + } + }, + "autoload": { + "psr-0": { + "DoctrineModule\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kyle Spraggs", + "email": "theman@spiffyjr.me", + "homepage": "http://www.spiffyjr.me/" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://marco-pivetta.com/" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@hotmail.com" + }, + { + "name": "Michaël Gallego", + "email": "mic.gallego@gmail.com", + "homepage": "http://www.michaelgallego.fr" + } + ], + "description": "Zend Framework Module that provides Doctrine basic functionality required for ORM and ODM modules", + "homepage": "http://www.doctrine-project.org/", + "keywords": [ + "doctrine", + "module", + "zf" + ], + "time": "2019-11-23T21:33:35+00:00" + }, + { + "name": "doctrine/doctrine-mongo-odm-module", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/DoctrineMongoODMModule.git", + "reference": "45857f034cc55554236a5b8cbc7626b89a69a01d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/DoctrineMongoODMModule/zipball/45857f034cc55554236a5b8cbc7626b89a69a01d", + "reference": "45857f034cc55554236a5b8cbc7626b89a69a01d", + "shasum": "" + }, + "require": { + "doctrine/doctrine-module": "^1.2 || ^2.1.7", + "doctrine/mongodb-odm": "^1.1", + "php": "^7.1", + "zendframework/zend-hydrator": "^2.2", + "zendframework/zend-mvc": "^2.7.15 || ^3.0.1", + "zendframework/zend-servicemanager": "^2.7.6 || ^3.1", + "zendframework/zend-stdlib": "^3.2.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.5", + "squizlabs/php_codesniffer": "^3.0.0", + "zendframework/zend-console": "^2.6", + "zendframework/zend-i18n": "^2.7.3", + "zendframework/zend-log": "^2.9", + "zendframework/zend-modulemanager": "^2.7.2", + "zendframework/zend-mvc-console": "^1.1.8", + "zendframework/zend-serializer": "^2.8", + "zendframework/zend-session": "^2.8.5", + "zendframework/zend-view": "^2.8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + }, + "zf": { + "module": "DoctrineMongoODMModule" + } + }, + "autoload": { + "psr-4": { + "DoctrineMongoODMModule\\": "src/DoctrineMongoODMModule/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@hotmail.com" + }, + { + "name": "Kyle Spraggs", + "email": "theman@spiffyjr.me" + }, + { + "name": "Tim Roediger", + "email": "superdweebie@gmail.com" + }, + { + "name": "Maciej Malarz", + "email": "malarzm@gmail.com" + }, + { + "name": "Andreas Braun", + "email": "alcaeus@alcaeus.org" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + }, + { + "name": "Evan Coury", + "email": "me@evancoury.com" + } + ], + "description": "Zend Framework Module that provides Doctrine MongoDB ODM functionality", + "homepage": "http://www.doctrine-project.org/", + "keywords": [ + "doctrine", + "module", + "mongodb", + "odm", + "zf" + ], + "time": "2019-02-15T10:16:41+00:00" + }, + { + "name": "doctrine/event-manager", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/event-manager.git", + "reference": "629572819973f13486371cb611386eb17851e85c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/629572819973f13486371cb611386eb17851e85c", + "reference": "629572819973f13486371cb611386eb17851e85c", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "conflict": { + "doctrine/common": "<2.9@dev" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", + "homepage": "https://www.doctrine-project.org/projects/event-manager.html", + "keywords": [ + "event", + "event dispatcher", + "event manager", + "event system", + "events" + ], + "time": "2019-11-10T09:48:07+00:00" + }, + { + "name": "doctrine/inflector", + "version": "1.3.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/ec3a55242203ffa6a4b27c58176da97ff0a7aec1", + "reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^6.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Common String Manipulations with regard to casing and singular/plural rules.", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "inflection", + "pluralize", + "singularize", + "string" + ], + "time": "2019-10-30T19:59:35+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "ae466f726242e637cebdd526a7d991b9433bacf1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", + "reference": "ae466f726242e637cebdd526a7d991b9433bacf1", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.13", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-shim": "^0.11", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.com/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "time": "2019-10-21T16:45:58+00:00" + }, + { + "name": "doctrine/lexer", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", + "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", + "shasum": "" + }, + "require": { + "php": "^7.2" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11.8", + "phpunit/phpunit": "^8.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "time": "2019-10-30T14:39:59+00:00" + }, + { + "name": "doctrine/mongodb", + "version": "1.6.4", + "source": { + "type": "git", + "url": "https://github.com/doctrine/mongodb.git", + "reference": "46b6316ae42df121df1b870b2cd4342ce7eeac80" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/mongodb/zipball/46b6316ae42df121df1b870b2cd4342ce7eeac80", + "reference": "46b6316ae42df121df1b870b2cd4342ce7eeac80", + "shasum": "" + }, + "require": { + "doctrine/common": "^2.2", + "ext-mongo": "^1.6.7", + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "jmikola/geojson": "^1.0", + "phpunit/phpunit": "^5.7 || ^6.0" + }, + "suggest": { + "alcaeus/mongo-php-adapter": "Allows usage of PHP 7", + "jmikola/geojson": "Support GeoJSON geometry objects in 2dsphere queries" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\MongoDB": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jonathan H. Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Jeremy Mikola", + "email": "jmikola@gmail.com" + }, + { + "name": "Bulat Shakirzyanov", + "email": "mallluhuct@gmail.com" + }, + { + "name": "Kris Wallsmith", + "email": "kris.wallsmith@gmail.com" + }, + { + "name": "Maciej Malarz", + "email": "malarzm@gmail.com" + }, + { + "name": "Andreas Braun", + "email": "alcaeus@alcaeus.org" + } + ], + "description": "Doctrine MongoDB Abstraction Layer", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "database", + "mongodb", + "persistence" + ], + "time": "2019-07-11T05:36:15+00:00" + }, + { + "name": "doctrine/mongodb-odm", + "version": "1.3.6", + "source": { + "type": "git", + "url": "https://github.com/doctrine/mongodb-odm.git", + "reference": "11243e32159145d8c9414dfc0e76c1a645ff6576" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/mongodb-odm/zipball/11243e32159145d8c9414dfc0e76c1a645ff6576", + "reference": "11243e32159145d8c9414dfc0e76c1a645ff6576", + "shasum": "" + }, + "require": { + "doctrine/annotations": "~1.2", + "doctrine/cache": "~1.0", + "doctrine/collections": "~1.1", + "doctrine/common": "^2.5.0", + "doctrine/inflector": "~1.0", + "doctrine/instantiator": "^1.0.1", + "doctrine/mongodb": "^1.6.4", + "php": "^5.6 || ^7.0", + "symfony/console": "~2.3|~3.0|^4.0|^5.0" + }, + "require-dev": { + "phpbench/phpbench": "^0.13.0", + "phpunit/phpunit": "^5.7.21|^7.5", + "symfony/yaml": "~2.3|~3.0|^4.0" + }, + "suggest": { + "alcaeus/mongo-php-adapter": "Allows usage of PHP 7", + "symfony/yaml": "Enables the YAML metadata mapping driver" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\ODM\\MongoDB": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bulat Shakirzyanov", + "email": "mallluhuct@gmail.com" + }, + { + "name": "Kris Wallsmith", + "email": "kris.wallsmith@gmail.com" + }, + { + "name": "Jonathan H. Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Jeremy Mikola", + "email": "jmikola@gmail.com" + }, + { + "name": "Maciej Malarz", + "email": "malarzm@gmail.com" + }, + { + "name": "Andreas Braun", + "email": "alcaeus@alcaeus.org" + } + ], + "description": "Doctrine MongoDB Object Document Mapper", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "database", + "mongodb", + "odm", + "persistence" + ], + "time": "2019-12-26T13:21:26+00:00" + }, + { + "name": "doctrine/persistence", + "version": "1.3.6", + "source": { + "type": "git", + "url": "https://github.com/doctrine/persistence.git", + "reference": "5dd3ac5eebef2d0b074daa4440bb18f93132dee4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/5dd3ac5eebef2d0b074daa4440bb18f93132dee4", + "reference": "5dd3ac5eebef2d0b074daa4440bb18f93132dee4", + "shasum": "" + }, + "require": { + "doctrine/annotations": "^1.0", + "doctrine/cache": "^1.0", + "doctrine/collections": "^1.0", + "doctrine/event-manager": "^1.0", + "doctrine/reflection": "^1.1", + "php": "^7.1" + }, + "conflict": { + "doctrine/common": "<2.10@dev" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common", + "Doctrine\\Persistence\\": "lib/Doctrine/Persistence" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.", + "homepage": "https://doctrine-project.org/projects/persistence.html", + "keywords": [ + "mapper", + "object", + "odm", + "orm", + "persistence" + ], + "time": "2020-01-16T22:06:23+00:00" + }, + { + "name": "doctrine/reflection", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/reflection.git", + "reference": "bc420ead87fdfe08c03ecc3549db603a45b06d4c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/reflection/zipball/bc420ead87fdfe08c03ecc3549db603a45b06d4c", + "reference": "bc420ead87fdfe08c03ecc3549db603a45b06d4c", + "shasum": "" + }, + "require": { + "doctrine/annotations": "^1.0", + "ext-tokenizer": "*", + "php": "^7.1" + }, + "conflict": { + "doctrine/common": "<2.9" + }, + "require-dev": { + "doctrine/coding-standard": "^5.0", + "doctrine/common": "^2.10", + "phpstan/phpstan": "^0.11.0", + "phpstan/phpstan-phpunit": "^0.11.0", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Reflection project is a simple library used by the various Doctrine projects which adds some additional functionality on top of the reflection functionality that comes with PHP. It allows you to get the reflection information about classes, methods and properties statically.", + "homepage": "https://www.doctrine-project.org/projects/reflection.html", + "keywords": [ + "reflection", + "static" + ], + "time": "2020-01-08T19:53:19+00:00" + }, + { + "name": "ezyang/htmlpurifier", + "version": "v4.12.0", + "source": { + "type": "git", + "url": "https://github.com/ezyang/htmlpurifier.git", + "reference": "a617e55bc62a87eec73bd456d146d134ad716f03" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/a617e55bc62a87eec73bd456d146d134ad716f03", + "reference": "a617e55bc62a87eec73bd456d146d134ad716f03", + "shasum": "" + }, + "require": { + "php": ">=5.2" + }, + "require-dev": { + "simpletest/simpletest": "dev-master#72de02a7b80c6bb8864ef9bf66d41d2f58f826bd" + }, + "type": "library", + "autoload": { + "psr-0": { + "HTMLPurifier": "library/" + }, + "files": [ + "library/HTMLPurifier.composer.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Edward Z. Yang", + "email": "admin@htmlpurifier.org", + "homepage": "http://ezyang.com" + } + ], + "description": "Standards compliant HTML filter written in PHP", + "homepage": "http://htmlpurifier.org/", + "keywords": [ + "html" + ], + "time": "2019-10-28T03:44:26+00:00" + }, + { + "name": "facebook/graph-sdk", + "version": "5.7.0", + "source": { + "type": "git", + "url": "https://github.com/facebook/php-graph-sdk.git", + "reference": "2d8250638b33d73e7a87add65f47fabf91f8ad9b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/facebook/php-graph-sdk/zipball/2d8250638b33d73e7a87add65f47fabf91f8ad9b", + "reference": "2d8250638b33d73e7a87add65f47fabf91f8ad9b", + "shasum": "" + }, + "require": { + "php": "^5.4|^7.0" + }, + "require-dev": { + "guzzlehttp/guzzle": "~5.0", + "mockery/mockery": "~0.8", + "phpunit/phpunit": "~4.0" + }, + "suggest": { + "guzzlehttp/guzzle": "Allows for implementation of the Guzzle HTTP client", + "paragonie/random_compat": "Provides a better CSPRNG option in PHP 5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "Facebook\\": "src/Facebook/" + }, + "files": [ + "src/Facebook/polyfills.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Facebook Platform" + ], + "authors": [ + { + "name": "Facebook", + "homepage": "https://github.com/facebook/php-graph-sdk/contributors" + } + ], + "description": "Facebook SDK for PHP", + "homepage": "https://github.com/facebook/php-graph-sdk", + "keywords": [ + "facebook", + "sdk" + ], + "time": "2018-12-11T22:56:31+00:00" + }, + { + "name": "hybridauth/hybridauth", + "version": "v2.17.0", + "source": { + "type": "git", + "url": "https://github.com/hybridauth/hybridauth.git", + "reference": "06909cd8cbc1201f01db8a8d36bc8c06dd27223d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hybridauth/hybridauth/zipball/06909cd8cbc1201f01db8a8d36bc8c06dd27223d", + "reference": "06909cd8cbc1201f01db8a8d36bc8c06dd27223d", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "facebook/graph-sdk": "^5.4", + "paypal/rest-api-sdk-php": "*", + "php": ">=5.2.0" + }, + "require-dev": { + "squizlabs/php_codesniffer": "2.*" + }, + "type": "library", + "autoload": { + "psr-0": { + "Hybrid": "hybridauth/" + }, + "classmap": [ + "hybridauth/Hybrid" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "(MIT or GPL-3.0+)" + ], + "authors": [ + { + "name": "Miled", + "email": "hybridauth@gmail.com" + } + ], + "description": "Open source social sign on PHP library.", + "homepage": "http://hybridauth.sourceforge.net", + "keywords": [ + "OpenId", + "facebook", + "google", + "hybridauth", + "login", + "oauth", + "social", + "twitter", + "yahoo" + ], + "time": "2019-12-13T11:20:07+00:00" + }, + { + "name": "imagine/imagine", + "version": "1.2.3", + "source": { + "type": "git", + "url": "https://github.com/avalanche123/Imagine.git", + "reference": "cb2361e5bb4410b681462d8e4f912bc5dabf84ab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/avalanche123/Imagine/zipball/cb2361e5bb4410b681462d8e4f912bc5dabf84ab", + "reference": "cb2361e5bb4410b681462d8e4f912bc5dabf84ab", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "2.2.*", + "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5 || ^8.4" + }, + "suggest": { + "ext-gd": "to use the GD implementation", + "ext-gmagick": "to use the Gmagick implementation", + "ext-imagick": "to use the Imagick implementation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-develop": "0.7-dev" + } + }, + "autoload": { + "psr-4": { + "Imagine\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bulat Shakirzyanov", + "email": "mallluhuct@gmail.com", + "homepage": "http://avalanche123.com" + } + ], + "description": "Image processing for PHP 5.3", + "homepage": "http://imagine.readthedocs.org/", + "keywords": [ + "drawing", + "graphics", + "image manipulation", + "image processing" + ], + "time": "2019-12-04T09:55:33+00:00" + }, + { + "name": "jmikola/geojson", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/jmikola/geojson.git", + "reference": "6ec3016cc0215667b7775f6ead7bd0337ad66eee" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jmikola/geojson/zipball/6ec3016cc0215667b7775f6ead7bd0337ad66eee", + "reference": "6ec3016cc0215667b7775f6ead7bd0337ad66eee", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~3.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "GeoJson\\": "src/" + }, + "classmap": [ + "stubs/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jeremy Mikola", + "email": "jmikola@gmail.com" + } + ], + "description": "GeoJSON implementation for PHP", + "homepage": "https://github.com/jmikola/geojson", + "keywords": [ + "geo", + "geojson", + "geospatial" + ], + "time": "2015-09-27T15:35:21+00:00" + }, + { + "name": "laminas/laminas-authentication", + "version": "2.7.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-authentication.git", + "reference": "53505e07858d243792b96be763456f786d953501" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-authentication/zipball/53505e07858d243792b96be763456f786d953501", + "reference": "53505e07858d243792b96be763456f786d953501", + "shasum": "" + }, + "require": { + "laminas/laminas-stdlib": "^3.2.1", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-authentication": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-crypt": "^2.6 || ^3.2.1", + "laminas/laminas-db": "^2.8.2", + "laminas/laminas-http": "^2.7", + "laminas/laminas-ldap": "^2.8", + "laminas/laminas-session": "^2.8", + "laminas/laminas-uri": "^2.5.2", + "laminas/laminas-validator": "^2.10.1", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2" + }, + "suggest": { + "laminas/laminas-crypt": "Laminas\\Crypt component", + "laminas/laminas-db": "Laminas\\Db component", + "laminas/laminas-http": "Laminas\\Http component", + "laminas/laminas-ldap": "Laminas\\Ldap component", + "laminas/laminas-session": "Laminas\\Session component", + "laminas/laminas-uri": "Laminas\\Uri component", + "laminas/laminas-validator": "Laminas\\Validator component" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7.x-dev", + "dev-develop": "2.8.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Authentication\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "provides an API for authentication and includes concrete authentication adapters for common use case scenarios", + "homepage": "https://laminas.dev", + "keywords": [ + "Authentication", + "laminas" + ], + "time": "2019-12-31T16:14:48+00:00" + }, + { + "name": "laminas/laminas-cache", + "version": "2.9.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-cache.git", + "reference": "f4746a868c3e2f2da63c19d23efac12b9d1bb554" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-cache/zipball/f4746a868c3e2f2da63c19d23efac12b9d1bb554", + "reference": "f4746a868c3e2f2da63c19d23efac12b9d1bb554", + "shasum": "" + }, + "require": { + "laminas/laminas-eventmanager": "^2.6.3 || ^3.2", + "laminas/laminas-servicemanager": "^2.7.8 || ^3.3", + "laminas/laminas-stdlib": "^3.2.1", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0", + "psr/cache": "^1.0", + "psr/simple-cache": "^1.0" + }, + "provide": { + "psr/cache-implementation": "1.0", + "psr/simple-cache-implementation": "1.0" + }, + "replace": { + "zendframework/zend-cache": "self.version" + }, + "require-dev": { + "cache/integration-tests": "^0.16", + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-serializer": "^2.6", + "laminas/laminas-session": "^2.7.4", + "phpbench/phpbench": "^0.13", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2" + }, + "suggest": { + "ext-apc": "APC or compatible extension, to use the APC storage adapter", + "ext-apcu": "APCU >= 5.1.0, to use the APCu storage adapter", + "ext-dba": "DBA, to use the DBA storage adapter", + "ext-memcache": "Memcache >= 2.0.0 to use the Memcache storage adapter", + "ext-memcached": "Memcached >= 1.0.0 to use the Memcached storage adapter", + "ext-mongo": "Mongo, to use MongoDb storage adapter", + "ext-mongodb": "MongoDB, to use the ExtMongoDb storage adapter", + "ext-redis": "Redis, to use Redis storage adapter", + "ext-wincache": "WinCache, to use the WinCache storage adapter", + "ext-xcache": "XCache, to use the XCache storage adapter", + "laminas/laminas-serializer": "Laminas\\Serializer component", + "laminas/laminas-session": "Laminas\\Session component", + "mongodb/mongodb": "Required for use with the ext-mongodb adapter", + "mongofill/mongofill": "Alternative to ext-mongo - a pure PHP implementation designed as a drop in replacement" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.9.x-dev", + "dev-develop": "2.10.x-dev" + }, + "laminas": { + "component": "Laminas\\Cache", + "config-provider": "Laminas\\Cache\\ConfigProvider" + } + }, + "autoload": { + "files": [ + "autoload/patternPluginManagerPolyfill.php" + ], + "psr-4": { + "Laminas\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Caching implementation with a variety of storage options, as well as codified caching strategies for callbacks, classes, and output", + "homepage": "https://laminas.dev", + "keywords": [ + "cache", + "laminas", + "psr-16", + "psr-6" + ], + "time": "2019-12-31T16:23:18+00:00" + }, + { + "name": "laminas/laminas-captcha", + "version": "2.9.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-captcha.git", + "reference": "b88f650f3adf2d902ef56f6377cceb5cd87b9876" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-captcha/zipball/b88f650f3adf2d902ef56f6377cceb5cd87b9876", + "reference": "b88f650f3adf2d902ef56f6377cceb5cd87b9876", + "shasum": "" + }, + "require": { + "laminas/laminas-math": "^2.7 || ^3.0", + "laminas/laminas-stdlib": "^3.2.1", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-captcha": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-recaptcha": "^3.0", + "laminas/laminas-session": "^2.8", + "laminas/laminas-text": "^2.6", + "laminas/laminas-validator": "^2.10.1", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2" + }, + "suggest": { + "laminas/laminas-i18n-resources": "Translations of captcha messages", + "laminas/laminas-recaptcha": "Laminas\\ReCaptcha component", + "laminas/laminas-session": "Laminas\\Session component", + "laminas/laminas-text": "Laminas\\Text component", + "laminas/laminas-validator": "Laminas\\Validator component" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.9.x-dev", + "dev-develop": "2.10.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Captcha\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Generate and validate CAPTCHAs using Figlets, images, ReCaptcha, and more", + "homepage": "https://laminas.dev", + "keywords": [ + "captcha", + "laminas" + ], + "time": "2019-12-31T16:24:14+00:00" + }, + { + "name": "laminas/laminas-code", + "version": "3.4.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-code.git", + "reference": "1cb8f203389ab1482bf89c0e70a04849bacd7766" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-code/zipball/1cb8f203389ab1482bf89c0e70a04849bacd7766", + "reference": "1cb8f203389ab1482bf89c0e70a04849bacd7766", + "shasum": "" + }, + "require": { + "laminas/laminas-eventmanager": "^2.6 || ^3.0", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^7.1" + }, + "conflict": { + "phpspec/prophecy": "<1.9.0" + }, + "replace": { + "zendframework/zend-code": "self.version" + }, + "require-dev": { + "doctrine/annotations": "^1.7", + "ext-phar": "*", + "laminas/laminas-coding-standard": "^1.0", + "laminas/laminas-stdlib": "^2.7 || ^3.0", + "phpunit/phpunit": "^7.5.16 || ^8.4" + }, + "suggest": { + "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features", + "laminas/laminas-stdlib": "Laminas\\Stdlib component" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4.x-dev", + "dev-develop": "3.5.x-dev", + "dev-dev-4.0": "4.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Code\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Extensions to the PHP Reflection API, static code scanning, and code generation", + "homepage": "https://laminas.dev", + "keywords": [ + "code", + "laminas" + ], + "time": "2019-12-31T16:28:24+00:00" + }, + { + "name": "laminas/laminas-config", + "version": "3.3.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-config.git", + "reference": "b8fe057f55e69a0e7a2e4ced79218a43f58606a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-config/zipball/b8fe057f55e69a0e7a2e4ced79218a43f58606a8", + "reference": "b8fe057f55e69a0e7a2e4ced79218a43f58606a8", + "shasum": "" + }, + "require": { + "ext-json": "*", + "laminas/laminas-stdlib": "^2.7.7 || ^3.1", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0", + "psr/container": "^1.0" + }, + "conflict": { + "container-interop/container-interop": "<1.2.0" + }, + "replace": { + "zendframework/zend-config": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-filter": "^2.7.2", + "laminas/laminas-i18n": "^2.7.4", + "laminas/laminas-servicemanager": "^2.7.8 || ^3.3", + "malukenho/docheader": "^0.1.6", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2" + }, + "suggest": { + "laminas/laminas-filter": "^2.7.2; install if you want to use the Filter processor", + "laminas/laminas-i18n": "^2.7.4; install if you want to use the Translator processor", + "laminas/laminas-servicemanager": "^2.7.8 || ^3.3; if you need an extensible plugin manager for use with the Config Factory" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3.x-dev", + "dev-develop": "3.4.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Config\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "provides a nested object property based user interface for accessing this configuration data within application code", + "homepage": "https://laminas.dev", + "keywords": [ + "config", + "laminas" + ], + "time": "2019-12-31T16:30:11+00:00" + }, + { + "name": "laminas/laminas-console", + "version": "2.8.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-console.git", + "reference": "478a6ceac3e31fb38d6314088abda8b239ee23a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-console/zipball/478a6ceac3e31fb38d6314088abda8b239ee23a5", + "reference": "478a6ceac3e31fb38d6314088abda8b239ee23a5", + "shasum": "" + }, + "require": { + "laminas/laminas-stdlib": "^3.2.1", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-console": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-filter": "^2.7.2", + "laminas/laminas-json": "^2.6 || ^3.0", + "laminas/laminas-validator": "^2.10.1", + "phpunit/phpunit": "^5.7.23 || ^6.4.3" + }, + "suggest": { + "laminas/laminas-filter": "To support DefaultRouteMatcher usage", + "laminas/laminas-validator": "To support DefaultRouteMatcher usage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8.x-dev", + "dev-develop": "2.9.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Console\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Build console applications using getopt syntax or routing, complete with prompts", + "homepage": "https://laminas.dev", + "keywords": [ + "console", + "laminas" + ], + "time": "2019-12-31T16:31:45+00:00" + }, + { + "name": "laminas/laminas-dependency-plugin", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-dependency-plugin.git", + "reference": "f269716dc584cd7b69e7f6e8ac1092d645ab56d5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-dependency-plugin/zipball/f269716dc584cd7b69e7f6e8ac1092d645ab56d5", + "reference": "f269716dc584cd7b69e7f6e8ac1092d645ab56d5", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1", + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "composer/composer": "^1.9", + "dealerdirect/phpcodesniffer-composer-installer": "^0.5.0", + "phpcompatibility/php-compatibility": "^9.3", + "phpunit/phpunit": "^8.4", + "roave/security-advisories": "dev-master", + "webimpress/coding-standard": "^1.0" + }, + "type": "composer-plugin", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev", + "dev-develop": "1.1.x-dev" + }, + "class": "Laminas\\DependencyPlugin\\DependencyRewriterPlugin" + }, + "autoload": { + "psr-4": { + "Laminas\\DependencyPlugin\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Replace zendframework and zfcampus packages with their Laminas Project equivalents.", + "time": "2020-01-14T19:36:52+00:00" + }, + { + "name": "laminas/laminas-di", + "version": "2.6.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-di.git", + "reference": "239b22408a1f8eacda6fc2b838b5065c4cf1d88e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-di/zipball/239b22408a1f8eacda6fc2b838b5065c4cf1d88e", + "reference": "239b22408a1f8eacda6fc2b838b5065c4cf1d88e", + "shasum": "" + }, + "require": { + "container-interop/container-interop": "^1.1", + "laminas/laminas-code": "^2.6 || ^3.0", + "laminas/laminas-stdlib": "^2.7 || ^3.0", + "laminas/laminas-zendframework-bridge": "^0.4.5 || ^1.0", + "php": "^5.5 || ^7.0" + }, + "replace": { + "zendframework/zend-di": "self.version" + }, + "require-dev": { + "fabpot/php-cs-fixer": "1.7.*", + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.6-dev", + "dev-develop": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Di\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "homepage": "https://laminas.dev", + "keywords": [ + "di", + "laminas" + ], + "time": "2019-12-31T15:17:33+00:00" + }, + { + "name": "laminas/laminas-escaper", + "version": "2.6.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-escaper.git", + "reference": "25f2a053eadfa92ddacb609dcbbc39362610da70" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/25f2a053eadfa92ddacb609dcbbc39362610da70", + "reference": "25f2a053eadfa92ddacb609dcbbc39362610da70", + "shasum": "" + }, + "require": { + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-escaper": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.6.x-dev", + "dev-develop": "2.7.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Escaper\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Securely and safely escape HTML, HTML attributes, JavaScript, CSS, and URLs", + "homepage": "https://laminas.dev", + "keywords": [ + "escaper", + "laminas" + ], + "time": "2019-12-31T16:43:30+00:00" + }, + { + "name": "laminas/laminas-eventmanager", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-eventmanager.git", + "reference": "ce4dc0bdf3b14b7f9815775af9dfee80a63b4748" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-eventmanager/zipball/ce4dc0bdf3b14b7f9815775af9dfee80a63b4748", + "reference": "ce4dc0bdf3b14b7f9815775af9dfee80a63b4748", + "shasum": "" + }, + "require": { + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-eventmanager": "self.version" + }, + "require-dev": { + "athletic/athletic": "^0.1", + "container-interop/container-interop": "^1.1.0", + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-stdlib": "^2.7.3 || ^3.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2" + }, + "suggest": { + "container-interop/container-interop": "^1.1.0, to use the lazy listeners feature", + "laminas/laminas-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev", + "dev-develop": "3.3-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\EventManager\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Trigger and listen to events within a PHP application", + "homepage": "https://laminas.dev", + "keywords": [ + "event", + "eventmanager", + "events", + "laminas" + ], + "time": "2019-12-31T16:44:52+00:00" + }, + { + "name": "laminas/laminas-feed", + "version": "2.12.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-feed.git", + "reference": "64d25e18a6ea3db90c27fe2d6b95630daa1bf602" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-feed/zipball/64d25e18a6ea3db90c27fe2d6b95630daa1bf602", + "reference": "64d25e18a6ea3db90c27fe2d6b95630daa1bf602", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "laminas/laminas-escaper": "^2.5.2", + "laminas/laminas-stdlib": "^3.2.1", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-feed": "self.version" + }, + "require-dev": { + "laminas/laminas-cache": "^2.7.2", + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-db": "^2.8.2", + "laminas/laminas-http": "^2.7", + "laminas/laminas-servicemanager": "^2.7.8 || ^3.3", + "laminas/laminas-validator": "^2.10.1", + "phpunit/phpunit": "^5.7.23 || ^6.4.3", + "psr/http-message": "^1.0.1" + }, + "suggest": { + "laminas/laminas-cache": "Laminas\\Cache component, for optionally caching feeds between requests", + "laminas/laminas-db": "Laminas\\Db component, for use with PubSubHubbub", + "laminas/laminas-http": "Laminas\\Http for PubSubHubbub, and optionally for use with Laminas\\Feed\\Reader", + "laminas/laminas-servicemanager": "Laminas\\ServiceManager component, for easily extending ExtensionManager implementations", + "laminas/laminas-validator": "Laminas\\Validator component, for validating email addresses used in Atom feeds and entries when using the Writer subcomponent", + "psr/http-message": "PSR-7 ^1.0.1, if you wish to use Laminas\\Feed\\Reader\\Http\\Psr7ResponseDecorator" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.12.x-dev", + "dev-develop": "2.13.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Feed\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "provides functionality for consuming RSS and Atom feeds", + "homepage": "https://laminas.dev", + "keywords": [ + "feed", + "laminas" + ], + "time": "2019-12-31T16:46:54+00:00" + }, + { + "name": "laminas/laminas-filter", + "version": "2.9.3", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-filter.git", + "reference": "52b5cdbef8902280996e687e7352a648a8e22f31" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-filter/zipball/52b5cdbef8902280996e687e7352a648a8e22f31", + "reference": "52b5cdbef8902280996e687e7352a648a8e22f31", + "shasum": "" + }, + "require": { + "laminas/laminas-stdlib": "^2.7.7 || ^3.1", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-validator": "<2.10.1" + }, + "replace": { + "zendframework/zend-filter": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-crypt": "^3.2.1", + "laminas/laminas-servicemanager": "^2.7.8 || ^3.3", + "laminas/laminas-uri": "^2.6", + "pear/archive_tar": "^1.4.3", + "phpunit/phpunit": "^5.7.23 || ^6.4.3", + "psr/http-factory": "^1.0" + }, + "suggest": { + "laminas/laminas-crypt": "Laminas\\Crypt component, for encryption filters", + "laminas/laminas-i18n": "Laminas\\I18n component for filters depending on i18n functionality", + "laminas/laminas-servicemanager": "Laminas\\ServiceManager component, for using the filter chain functionality", + "laminas/laminas-uri": "Laminas\\Uri component, for the UriNormalize filter", + "psr/http-factory-implementation": "psr/http-factory-implementation, for creating file upload instances when consuming PSR-7 in file upload filters" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.9.x-dev", + "dev-develop": "2.10.x-dev" + }, + "laminas": { + "component": "Laminas\\Filter", + "config-provider": "Laminas\\Filter\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Filter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Programmatically filter and normalize data and files", + "homepage": "https://laminas.dev", + "keywords": [ + "filter", + "laminas" + ], + "time": "2020-01-07T20:43:53+00:00" + }, + { + "name": "laminas/laminas-form", + "version": "2.14.3", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-form.git", + "reference": "012aae01366cb8c8fb64e39a887363ef82f388dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-form/zipball/012aae01366cb8c8fb64e39a887363ef82f388dd", + "reference": "012aae01366cb8c8fb64e39a887363ef82f388dd", + "shasum": "" + }, + "require": { + "laminas/laminas-hydrator": "^1.1 || ^2.1 || ^3.0", + "laminas/laminas-inputfilter": "^2.8", + "laminas/laminas-stdlib": "^3.2.1", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-form": "self.version" + }, + "require-dev": { + "doctrine/annotations": "~1.0", + "laminas/laminas-cache": "^2.6.1", + "laminas/laminas-captcha": "^2.7.1", + "laminas/laminas-code": "^2.6 || ^3.0", + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-escaper": "^2.5", + "laminas/laminas-eventmanager": "^2.6.2 || ^3.0", + "laminas/laminas-filter": "^2.6", + "laminas/laminas-i18n": "^2.6", + "laminas/laminas-recaptcha": "^3.0.0", + "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3", + "laminas/laminas-session": "^2.8.1", + "laminas/laminas-text": "^2.6", + "laminas/laminas-validator": "^2.6", + "laminas/laminas-view": "^2.6.2", + "phpunit/phpunit": "^5.7.23 || ^6.5.3" + }, + "suggest": { + "laminas/laminas-captcha": "^2.7.1, required for using CAPTCHA form elements", + "laminas/laminas-code": "^2.6 || ^3.0, required to use laminas-form annotations support", + "laminas/laminas-eventmanager": "^2.6.2 || ^3.0, reuired for laminas-form annotations support", + "laminas/laminas-i18n": "^2.6, required when using laminas-form view helpers", + "laminas/laminas-recaptcha": "in order to use the ReCaptcha form element", + "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3, required to use the form factories or provide services", + "laminas/laminas-view": "^2.6.2, required for using the laminas-form view helpers" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.14.x-dev", + "dev-develop": "2.15.x-dev" + }, + "laminas": { + "component": "Laminas\\Form", + "config-provider": "Laminas\\Form\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Form\\": "src/" + }, + "files": [ + "autoload/formElementManagerPolyfill.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Validate and display simple and complex forms, casting forms to business objects and vice versa", + "homepage": "https://laminas.dev", + "keywords": [ + "form", + "laminas" + ], + "time": "2019-12-31T16:56:34+00:00" + }, + { + "name": "laminas/laminas-http", + "version": "2.11.2", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-http.git", + "reference": "8c66963b933c80da59433da56a44dfa979f3ec88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-http/zipball/8c66963b933c80da59433da56a44dfa979f3ec88", + "reference": "8c66963b933c80da59433da56a44dfa979f3ec88", + "shasum": "" + }, + "require": { + "laminas/laminas-loader": "^2.5.1", + "laminas/laminas-stdlib": "^3.2.1", + "laminas/laminas-uri": "^2.5.2", + "laminas/laminas-validator": "^2.10.1", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-http": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-config": "^3.1 || ^2.6", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.3" + }, + "suggest": { + "paragonie/certainty": "For automated management of cacert.pem" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.11.x-dev", + "dev-develop": "2.12.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Http\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Provides an easy interface for performing Hyper-Text Transfer Protocol (HTTP) requests", + "homepage": "https://laminas.dev", + "keywords": [ + "http", + "http client", + "laminas" + ], + "time": "2019-12-31T17:02:36+00:00" + }, + { + "name": "laminas/laminas-hydrator", + "version": "2.4.2", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-hydrator.git", + "reference": "4a0e81cf05f32edcace817f1f48cb4055f689d85" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-hydrator/zipball/4a0e81cf05f32edcace817f1f48cb4055f689d85", + "reference": "4a0e81cf05f32edcace817f1f48cb4055f689d85", + "shasum": "" + }, + "require": { + "laminas/laminas-stdlib": "^3.0", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-hydrator": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-eventmanager": "^2.6.2 || ^3.0", + "laminas/laminas-filter": "^2.6", + "laminas/laminas-inputfilter": "^2.6", + "laminas/laminas-serializer": "^2.6.1", + "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2" + }, + "suggest": { + "laminas/laminas-eventmanager": "^2.6.2 || ^3.0, to support aggregate hydrator usage", + "laminas/laminas-filter": "^2.6, to support naming strategy hydrator usage", + "laminas/laminas-serializer": "^2.6.1, to use the SerializableStrategy", + "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3, to support hydrator plugin manager usage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-release-2.4": "2.4.x-dev" + }, + "laminas": { + "component": "Laminas\\Hydrator", + "config-provider": "Laminas\\Hydrator\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Hydrator\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Serialize objects to arrays, and vice versa", + "homepage": "https://laminas.dev", + "keywords": [ + "hydrator", + "laminas" + ], + "time": "2019-12-31T17:06:38+00:00" + }, + { + "name": "laminas/laminas-i18n", + "version": "2.10.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-i18n.git", + "reference": "815be447f1c77f70a86bf24d00087fcb975b39ff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-i18n/zipball/815be447f1c77f70a86bf24d00087fcb975b39ff", + "reference": "815be447f1c77f70a86bf24d00087fcb975b39ff", + "shasum": "" + }, + "require": { + "ext-intl": "*", + "laminas/laminas-stdlib": "^2.7 || ^3.0", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "conflict": { + "phpspec/prophecy": "<1.9.0" + }, + "replace": { + "zendframework/zend-i18n": "self.version" + }, + "require-dev": { + "laminas/laminas-cache": "^2.6.1", + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-config": "^2.6", + "laminas/laminas-eventmanager": "^2.6.2 || ^3.0", + "laminas/laminas-filter": "^2.6.1", + "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3", + "laminas/laminas-validator": "^2.6", + "laminas/laminas-view": "^2.6.3", + "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.16" + }, + "suggest": { + "laminas/laminas-cache": "Laminas\\Cache component", + "laminas/laminas-config": "Laminas\\Config component", + "laminas/laminas-eventmanager": "You should install this package to use the events in the translator", + "laminas/laminas-filter": "You should install this package to use the provided filters", + "laminas/laminas-i18n-resources": "Translation resources", + "laminas/laminas-servicemanager": "Laminas\\ServiceManager component", + "laminas/laminas-validator": "You should install this package to use the provided validators", + "laminas/laminas-view": "You should install this package to use the provided view helpers" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.10.x-dev", + "dev-develop": "2.11.x-dev" + }, + "laminas": { + "component": "Laminas\\I18n", + "config-provider": "Laminas\\I18n\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\I18n\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Provide translations for your application, and filter and validate internationalized values", + "homepage": "https://laminas.dev", + "keywords": [ + "i18n", + "laminas" + ], + "time": "2019-12-31T17:07:17+00:00" + }, + { + "name": "laminas/laminas-i18n-resources", + "version": "2.6.1", + "source": { + "type": "git", + "url": "git@github.com:laminas/laminas-i18n-resources.git", + "reference": "7585cd3a4f9656814425b35689919a220c73834b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-i18n-resources/zipball/7585cd3a4f9656814425b35689919a220c73834b", + "reference": "7585cd3a4f9656814425b35689919a220c73834b", + "shasum": "" + }, + "require": { + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-i18n-resources": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.6.x-dev", + "dev-develop": "2.7.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/Resources.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Provides validator translations for laminas-i18n's Translator", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "resources", + "translations" + ], + "time": "2019-12-31T17:11:35+00:00" + }, + { + "name": "laminas/laminas-inputfilter", + "version": "2.10.1", + "source": { + "type": "git", + "url": "git@github.com:laminas/laminas-inputfilter.git", + "reference": "b29ce8f512c966468eee37ea4873ae5fb545d00a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-inputfilter/zipball/b29ce8f512c966468eee37ea4873ae5fb545d00a", + "reference": "b29ce8f512c966468eee37ea4873ae5fb545d00a", + "shasum": "" + }, + "require": { + "laminas/laminas-filter": "^2.9.1", + "laminas/laminas-servicemanager": "^2.7.10 || ^3.3.1", + "laminas/laminas-stdlib": "^2.7 || ^3.0", + "laminas/laminas-validator": "^2.11", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-inputfilter": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.15", + "psr/http-message": "^1.0" + }, + "suggest": { + "psr/http-message-implementation": "PSR-7 is required if you wish to validate PSR-7 UploadedFileInterface payloads" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.10.x-dev", + "dev-develop": "2.11.x-dev" + }, + "laminas": { + "component": "Laminas\\InputFilter", + "config-provider": "Laminas\\InputFilter\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\InputFilter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Normalize and validate input sets from the web, APIs, the CLI, and more, including files", + "homepage": "https://laminas.dev", + "keywords": [ + "inputfilter", + "laminas" + ], + "time": "2019-12-31T17:11:54+00:00" + }, + { + "name": "laminas/laminas-json", + "version": "3.1.2", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-json.git", + "reference": "00dc0da7b5e5018904c5c4a8e80a5faa16c2c1c6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-json/zipball/00dc0da7b5e5018904c5c4a8e80a5faa16c2c1c6", + "reference": "00dc0da7b5e5018904c5c4a8e80a5faa16c2c1c6", + "shasum": "" + }, + "require": { + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-json": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-stdlib": "^2.7.7 || ^3.1", + "phpunit/phpunit": "^5.7.23 || ^6.4.3" + }, + "suggest": { + "laminas/laminas-json-server": "For implementing JSON-RPC servers", + "laminas/laminas-xml2json": "For converting XML documents to JSON" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1.x-dev", + "dev-develop": "3.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Json\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "provides convenience methods for serializing native PHP to JSON and decoding JSON to native PHP", + "homepage": "https://laminas.dev", + "keywords": [ + "json", + "laminas" + ], + "time": "2019-12-31T17:15:04+00:00" + }, + { + "name": "laminas/laminas-loader", + "version": "2.6.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-loader.git", + "reference": "5d01c2c237ae9e68bec262f339947e2ea18979bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-loader/zipball/5d01c2c237ae9e68bec262f339947e2ea18979bc", + "reference": "5d01c2c237ae9e68bec262f339947e2ea18979bc", + "shasum": "" + }, + "require": { + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-loader": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.6.x-dev", + "dev-develop": "2.7.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Loader\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Autoloading and plugin loading strategies", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "loader" + ], + "time": "2019-12-31T17:18:27+00:00" + }, + { + "name": "laminas/laminas-log", + "version": "2.12.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-log.git", + "reference": "4e92d841b48868714a070b10866e94be80fc92ff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-log/zipball/4e92d841b48868714a070b10866e94be80fc92ff", + "reference": "4e92d841b48868714a070b10866e94be80fc92ff", + "shasum": "" + }, + "require": { + "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3", + "laminas/laminas-stdlib": "^2.7 || ^3.0", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0", + "psr/log": "^1.1.2" + }, + "provide": { + "psr/log-implementation": "1.0.0" + }, + "replace": { + "zendframework/zend-log": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-db": "^2.6", + "laminas/laminas-escaper": "^2.5", + "laminas/laminas-filter": "^2.5", + "laminas/laminas-mail": "^2.6.1", + "laminas/laminas-validator": "^2.10.1", + "mikey179/vfsstream": "^1.6.7", + "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.15" + }, + "suggest": { + "ext-mongo": "mongo extension to use Mongo writer", + "ext-mongodb": "mongodb extension to use MongoDB writer", + "laminas/laminas-db": "Laminas\\Db component to use the database log writer", + "laminas/laminas-escaper": "Laminas\\Escaper component, for use in the XML log formatter", + "laminas/laminas-mail": "Laminas\\Mail component to use the email log writer", + "laminas/laminas-validator": "Laminas\\Validator component to block invalid log messages" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.12.x-dev", + "dev-develop": "2.13.x-dev" + }, + "laminas": { + "component": "Laminas\\Log", + "config-provider": "Laminas\\Log\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Log\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Robust, composite logger with filtering, formatting, and PSR-3 support", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "log", + "logging" + ], + "time": "2019-12-31T17:18:59+00:00" + }, + { + "name": "laminas/laminas-mail", + "version": "2.10.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-mail.git", + "reference": "019fb670c1dff6be7fc91d3b88942bd0a5f68792" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-mail/zipball/019fb670c1dff6be7fc91d3b88942bd0a5f68792", + "reference": "019fb670c1dff6be7fc91d3b88942bd0a5f68792", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "laminas/laminas-loader": "^2.5", + "laminas/laminas-mime": "^2.5", + "laminas/laminas-stdlib": "^2.7 || ^3.0", + "laminas/laminas-validator": "^2.10.2", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0", + "true/punycode": "^2.1" + }, + "replace": { + "zendframework/zend-mail": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-config": "^2.6", + "laminas/laminas-crypt": "^2.6 || ^3.0", + "laminas/laminas-servicemanager": "^2.7.10 || ^3.3.1", + "phpunit/phpunit": "^5.7.25 || ^6.4.4 || ^7.1.4" + }, + "suggest": { + "laminas/laminas-crypt": "Crammd5 support in SMTP Auth", + "laminas/laminas-servicemanager": "^2.7.10 || ^3.3.1 when using SMTP to deliver messages" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.10.x-dev", + "dev-develop": "2.11.x-dev" + }, + "laminas": { + "component": "Laminas\\Mail", + "config-provider": "Laminas\\Mail\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Mail\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Provides generalized functionality to compose and send both text and MIME-compliant multipart e-mail messages", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "mail" + ], + "time": "2019-12-31T17:21:22+00:00" + }, + { + "name": "laminas/laminas-math", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-math.git", + "reference": "dd603c7d151d46eafd243a405d5b7eefa4222d74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-math/zipball/dd603c7d151d46eafd243a405d5b7eefa4222d74", + "reference": "dd603c7d151d46eafd243a405d5b7eefa4222d74", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "laminas/laminas-zendframework-bridge": "^1.0", + "paragonie/random_compat": "^2.0.11 || 9.99.99", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-math": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2" + }, + "suggest": { + "ext-bcmath": "If using the bcmath functionality", + "ext-gmp": "If using the gmp functionality" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2.x-dev", + "dev-develop": "3.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Math\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Create cryptographically secure pseudo-random numbers, and manage big integers", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "math" + ], + "time": "2019-12-31T17:24:18+00:00" + }, + { + "name": "laminas/laminas-mime", + "version": "2.7.2", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-mime.git", + "reference": "2dbace2c69542e5a251af3becb6d7209ac9fb42b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-mime/zipball/2dbace2c69542e5a251af3becb6d7209ac9fb42b", + "reference": "2dbace2c69542e5a251af3becb6d7209ac9fb42b", + "shasum": "" + }, + "require": { + "laminas/laminas-stdlib": "^2.7 || ^3.0", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-mime": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-mail": "^2.6", + "phpunit/phpunit": "^5.7.21 || ^6.3" + }, + "suggest": { + "laminas/laminas-mail": "Laminas\\Mail component" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7.x-dev", + "dev-develop": "2.8.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Mime\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Create and parse MIME messages and parts", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "mime" + ], + "time": "2019-12-31T17:25:27+00:00" + }, + { + "name": "laminas/laminas-modulemanager", + "version": "2.8.4", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-modulemanager.git", + "reference": "92b1cde1aab5aef687b863face6dd5d9c6751c78" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-modulemanager/zipball/92b1cde1aab5aef687b863face6dd5d9c6751c78", + "reference": "92b1cde1aab5aef687b863face6dd5d9c6751c78", + "shasum": "" + }, + "require": { + "laminas/laminas-config": "^3.1 || ^2.6", + "laminas/laminas-eventmanager": "^3.2 || ^2.6.3", + "laminas/laminas-stdlib": "^3.1 || ^2.7", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-modulemanager": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-console": "^2.6", + "laminas/laminas-di": "^2.6", + "laminas/laminas-loader": "^2.5", + "laminas/laminas-mvc": "^3.0 || ^2.7", + "laminas/laminas-servicemanager": "^3.0.3 || ^2.7.5", + "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.16" + }, + "suggest": { + "laminas/laminas-console": "Laminas\\Console component", + "laminas/laminas-loader": "Laminas\\Loader component if you are not using Composer autoloading for your modules", + "laminas/laminas-mvc": "Laminas\\Mvc component", + "laminas/laminas-servicemanager": "Laminas\\ServiceManager component" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8.x-dev", + "dev-develop": "2.9.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\ModuleManager\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Modular application system for laminas-mvc applications", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "modulemanager" + ], + "time": "2019-12-31T17:26:56+00:00" + }, + { + "name": "laminas/laminas-mvc", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-mvc.git", + "reference": "ead09f8ab5ff0e562dbd0198c7f67523c2f61980" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-mvc/zipball/ead09f8ab5ff0e562dbd0198c7f67523c2f61980", + "reference": "ead09f8ab5ff0e562dbd0198c7f67523c2f61980", + "shasum": "" + }, + "require": { + "container-interop/container-interop": "^1.2", + "laminas/laminas-eventmanager": "^3.2", + "laminas/laminas-http": "^2.7", + "laminas/laminas-modulemanager": "^2.8", + "laminas/laminas-router": "^3.0.2", + "laminas/laminas-servicemanager": "^3.3", + "laminas/laminas-stdlib": "^3.1", + "laminas/laminas-view": "^2.9", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-mvc": "self.version" + }, + "require-dev": { + "http-interop/http-middleware": "^0.4.1", + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-json": "^2.6.1 || ^3.0", + "laminas/laminas-psr7bridge": "^1.0", + "laminas/laminas-stratigility": "^2.0.1", + "phpunit/phpunit": "^6.4.4 || ^5.7.14" + }, + "suggest": { + "http-interop/http-middleware": "^0.4.1 to be used together with laminas-stratigility", + "laminas/laminas-json": "(^2.6.1 || ^3.0) To auto-deserialize JSON body content in AbstractRestfulController extensions, when json_decode is unavailable", + "laminas/laminas-log": "^2.9.1 To provide log functionality via LogFilterManager, LogFormatterManager, and LogProcessorManager", + "laminas/laminas-mvc-console": "laminas-mvc-console provides the ability to expose laminas-mvc as a console application", + "laminas/laminas-mvc-i18n": "laminas-mvc-i18n provides integration with laminas-i18n, including a translation bridge and translatable route segments", + "laminas/laminas-mvc-plugin-fileprg": "To provide Post/Redirect/Get functionality around forms that container file uploads", + "laminas/laminas-mvc-plugin-flashmessenger": "To provide flash messaging capabilities between requests", + "laminas/laminas-mvc-plugin-identity": "To access the authenticated identity (per laminas-authentication) in controllers", + "laminas/laminas-mvc-plugin-prg": "To provide Post/Redirect/Get functionality within controllers", + "laminas/laminas-paginator": "^2.7 To provide pagination functionality via PaginatorPluginManager", + "laminas/laminas-psr7bridge": "(^0.2) To consume PSR-7 middleware within the MVC workflow", + "laminas/laminas-servicemanager-di": "laminas-servicemanager-di provides utilities for integrating laminas-di and laminas-servicemanager in your laminas-mvc application", + "laminas/laminas-stratigility": "laminas-stratigility is required to use middleware pipes in the MiddlewareListener" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev", + "dev-develop": "3.2-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Mvc\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Laminas's event-driven MVC layer, including MVC Applications, Controllers, and Plugins", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "mvc" + ], + "time": "2019-12-31T17:33:14+00:00" + }, + { + "name": "laminas/laminas-mvc-console", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-mvc-console.git", + "reference": "0c16223557fdb9bba853f6de22e1040824c1c966" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-mvc-console/zipball/0c16223557fdb9bba853f6de22e1040824c1c966", + "reference": "0c16223557fdb9bba853f6de22e1040824c1c966", + "shasum": "" + }, + "require": { + "container-interop/container-interop": "^1.1", + "laminas/laminas-console": "^2.6", + "laminas/laminas-eventmanager": "^2.6.2 || ^3.0", + "laminas/laminas-modulemanager": "^2.7.1", + "laminas/laminas-mvc": "^3.0.3", + "laminas/laminas-router": "^3.0", + "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3", + "laminas/laminas-stdlib": "^2.7.5 || ^3.0", + "laminas/laminas-text": "^2.6", + "laminas/laminas-view": "^2.6.3", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-mvc": "<3.0.0" + }, + "replace": { + "zendframework/zend-mvc-console": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-filter": "^2.6.1", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4" + }, + "suggest": { + "laminas/laminas-filter": "^2.6.1, to filter rendered results" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev", + "dev-develop": "1.3.x-dev" + }, + "laminas": { + "component": "Laminas\\Mvc\\Console" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Mvc\\Console\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Integration between laminas-mvc and laminas-console", + "homepage": "https://laminas.dev", + "keywords": [ + "console", + "laminas", + "mvc" + ], + "time": "2019-12-31T17:33:37+00:00" + }, + { + "name": "laminas/laminas-mvc-i18n", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-mvc-i18n.git", + "reference": "4184f6572b5244a5f5781604f1e03d7955e304a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-mvc-i18n/zipball/4184f6572b5244a5f5781604f1e03d7955e304a0", + "reference": "4184f6572b5244a5f5781604f1e03d7955e304a0", + "shasum": "" + }, + "require": { + "container-interop/container-interop": "^1.1", + "laminas/laminas-i18n": "^2.7", + "laminas/laminas-router": "^3.0", + "laminas/laminas-servicemanager": "^2.7.10 || ^3.0.3", + "laminas/laminas-stdlib": "^2.7.6 || ^3.0", + "laminas/laminas-validator": "^2.6", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-mvc": "<3.0.0", + "phpspec/prophecy": "<1.8.0" + }, + "replace": { + "zendframework/zend-mvc-i18n": "self.version" + }, + "require-dev": { + "laminas/laminas-cache": "^2.6.1", + "laminas/laminas-coding-standard": "~1.0.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.5" + }, + "suggest": { + "laminas/laminas-cache": "To enable caching of translation strings" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev", + "dev-develop": "1.2.x-dev" + }, + "laminas": { + "component": "Laminas\\Mvc\\I18n", + "config-provider": "Laminas\\Mvc\\I18n\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Mvc\\I18n\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Integration between laminas-mvc and laminas-i18n", + "homepage": "https://laminas.dev", + "keywords": [ + "i18n", + "laminas", + "mvc" + ], + "time": "2019-12-31T17:33:41+00:00" + }, + { + "name": "laminas/laminas-mvc-plugin-fileprg", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-mvc-plugin-fileprg.git", + "reference": "4a1a3729b3789a4d9e7cfe285ce84a636be87a67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-mvc-plugin-fileprg/zipball/4a1a3729b3789a4d9e7cfe285ce84a636be87a67", + "reference": "4a1a3729b3789a4d9e7cfe285ce84a636be87a67", + "shasum": "" + }, + "require": { + "laminas/laminas-filter": "^2.6.1", + "laminas/laminas-form": "^2.7", + "laminas/laminas-inputfilter": "^2.8.1", + "laminas/laminas-mvc": "^3.0", + "laminas/laminas-session": "^2.8.5", + "laminas/laminas-stdlib": "^2.7 || ^3.0", + "laminas/laminas-validator": "^2.6", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-mvc": "<3.0.0" + }, + "replace": { + "zendframework/zend-mvc-plugin-fileprg": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev", + "dev-develop": "1.2.x-dev" + }, + "laminas": { + "component": "Laminas\\Mvc\\Plugin\\FilePrg" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Mvc\\Plugin\\FilePrg\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Post/Redirect/Get plugin with file upload handling for laminas-mvc controllers", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "mvc" + ], + "time": "2019-12-31T17:33:44+00:00" + }, + { + "name": "laminas/laminas-mvc-plugin-flashmessenger", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-mvc-plugin-flashmessenger.git", + "reference": "f5a522c3aab215a9b89a0630beb91582f4a3f202" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-mvc-plugin-flashmessenger/zipball/f5a522c3aab215a9b89a0630beb91582f4a3f202", + "reference": "f5a522c3aab215a9b89a0630beb91582f4a3f202", + "shasum": "" + }, + "require": { + "laminas/laminas-mvc": "^3.0", + "laminas/laminas-session": "^2.8.5", + "laminas/laminas-stdlib": "^3.2.1", + "laminas/laminas-view": "^2.10", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-mvc": "<3.0.0" + }, + "replace": { + "zendframework/zend-mvc-plugin-flashmessenger": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-i18n": "^2.8", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev", + "dev-develop": "1.3.x-dev" + }, + "laminas": { + "component": "Laminas\\Mvc\\Plugin\\FlashMessenger" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Mvc\\Plugin\\FlashMessenger\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Plugin for creating and exposing flash messages via laminas-mvc controllers", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "mvc" + ], + "time": "2019-12-31T17:33:46+00:00" + }, + { + "name": "laminas/laminas-mvc-plugin-identity", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-mvc-plugin-identity.git", + "reference": "0dc0c349be0faee67bbb4ae2a0206435a7a51516" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-mvc-plugin-identity/zipball/0dc0c349be0faee67bbb4ae2a0206435a7a51516", + "reference": "0dc0c349be0faee67bbb4ae2a0206435a7a51516", + "shasum": "" + }, + "require": { + "container-interop/container-interop": "^1.1", + "laminas/laminas-authentication": "^2.5.3", + "laminas/laminas-mvc": "^3.0", + "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-mvc": "<3.0.0" + }, + "replace": { + "zendframework/zend-mvc-plugin-identity": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev", + "dev-develop": "1.2.x-dev" + }, + "laminas": { + "component": "Laminas\\Mvc\\Plugin\\Identity" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Mvc\\Plugin\\Identity\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Plugin for retrieving the current authenticated identity within laminas-mvc controllers", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "mvc" + ], + "time": "2019-12-31T17:33:49+00:00" + }, + { + "name": "laminas/laminas-mvc-plugin-prg", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-mvc-plugin-prg.git", + "reference": "f9b094373795dd4250d3551a1fbd6d304762b621" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-mvc-plugin-prg/zipball/f9b094373795dd4250d3551a1fbd6d304762b621", + "reference": "f9b094373795dd4250d3551a1fbd6d304762b621", + "shasum": "" + }, + "require": { + "laminas/laminas-mvc": "^3.0", + "laminas/laminas-session": "^2.8.5", + "laminas/laminas-stdlib": "^3.2.1", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-mvc-plugin-prg": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev", + "dev-develop": "1.3.x-dev" + }, + "laminas": { + "component": "Laminas\\Mvc\\Plugin\\Prg" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Mvc\\Plugin\\Prg\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Post/Redirect/Get plugin for laminas-mvc controllers", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "mvc" + ], + "time": "2019-12-31T17:33:51+00:00" + }, + { + "name": "laminas/laminas-mvc-plugins", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-mvc-plugins.git", + "reference": "896104a57c3898c2ca932c1ec10c6a3afea2f815" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-mvc-plugins/zipball/896104a57c3898c2ca932c1ec10c6a3afea2f815", + "reference": "896104a57c3898c2ca932c1ec10c6a3afea2f815", + "shasum": "" + }, + "require": { + "laminas/laminas-mvc-plugin-fileprg": "^1.0", + "laminas/laminas-mvc-plugin-flashmessenger": "^1.0", + "laminas/laminas-mvc-plugin-identity": "^1.0", + "laminas/laminas-mvc-plugin-prg": "^1.0", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-mvc-plugins": "self.version" + }, + "type": "metapackage", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + }, + "laminas": { + "component": [ + "Laminas\\Mvc\\Plugin\\FilePrg", + "Laminas\\Mvc\\Plugin\\FlashMessenger", + "Laminas\\Mvc\\Plugin\\Identity", + "Laminas\\Mvc\\Plugin\\Prg" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Collection of all stable laminas-mvc plugins served via separate packages.", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "mvc", + "plugins" + ], + "time": "2019-12-31T17:33:52+00:00" + }, + { + "name": "laminas/laminas-navigation", + "version": "2.9.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-navigation.git", + "reference": "1b4210ea3afeffb8a69e502e169088180ba3275d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-navigation/zipball/1b4210ea3afeffb8a69e502e169088180ba3275d", + "reference": "1b4210ea3afeffb8a69e502e169088180ba3275d", + "shasum": "" + }, + "require": { + "laminas/laminas-stdlib": "^2.7 || ^3.0", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-navigation": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-config": "^2.6 || ^3.1", + "laminas/laminas-console": "^2.6", + "laminas/laminas-http": "^2.6", + "laminas/laminas-i18n": "^2.7.3", + "laminas/laminas-log": "^2.9.1", + "laminas/laminas-mvc": "^2.7.9 || ^3.0.4", + "laminas/laminas-permissions-acl": "^2.6", + "laminas/laminas-router": "^3.0.2", + "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3", + "laminas/laminas-uri": "^2.5.2", + "laminas/laminas-view": "^2.9", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2" + }, + "suggest": { + "laminas/laminas-config": "^2.6 || ^3.1, to provide page configuration (optional, as arrays and Traversables are also allowed)", + "laminas/laminas-permissions-acl": "^2.6, to provide ACL-based access restrictions to pages", + "laminas/laminas-router": "^3.0, to use router-based URI generation with Mvc pages", + "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3, to use the navigation factories", + "laminas/laminas-view": "^2.8.1, to use the navigation view helpers" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.9.x-dev", + "dev-develop": "2.10.x-dev" + }, + "laminas": { + "component": "Laminas\\Navigation", + "config-provider": "Laminas\\Navigation\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Navigation\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Manage trees of pointers to web pages in order to build navigation systems", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "navigation" + ], + "time": "2019-12-31T17:35:22+00:00" + }, + { + "name": "laminas/laminas-paginator", + "version": "2.8.2", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-paginator.git", + "reference": "5e53d927776b2d20e420bc2b289fa0c364a6b0bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-paginator/zipball/5e53d927776b2d20e420bc2b289fa0c364a6b0bd", + "reference": "5e53d927776b2d20e420bc2b289fa0c364a6b0bd", + "shasum": "" + }, + "require": { + "laminas/laminas-stdlib": "^2.7 || ^3.0", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^7.0 || ^5.6" + }, + "replace": { + "zendframework/zend-paginator": "self.version" + }, + "require-dev": { + "laminas/laminas-cache": "^2.6.1", + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-config": "^2.6.0", + "laminas/laminas-db": "^2.9.2", + "laminas/laminas-filter": "^2.6.1", + "laminas/laminas-json": "^2.6.1", + "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3", + "laminas/laminas-view": "^2.6.3", + "phpunit/phpunit": "^6.2.1 || ^5.7.15" + }, + "suggest": { + "laminas/laminas-cache": "Laminas\\Cache component to support cache features", + "laminas/laminas-db": "Laminas\\Db component", + "laminas/laminas-filter": "Laminas\\Filter component", + "laminas/laminas-json": "Laminas\\Json component", + "laminas/laminas-servicemanager": "Laminas\\ServiceManager component", + "laminas/laminas-view": "Laminas\\View component" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8.x-dev", + "dev-develop": "2.9.x-dev" + }, + "laminas": { + "component": "Laminas\\Paginator", + "config-provider": "Laminas\\Paginator\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Paginator\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Paginate collections of data from arbitrary sources", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "paginator" + ], + "time": "2019-12-31T17:36:22+00:00" + }, + { + "name": "laminas/laminas-permissions-acl", + "version": "2.7.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-permissions-acl.git", + "reference": "624567fe376a70e0bfb5aa8217d5afa13b9d6e61" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-permissions-acl/zipball/624567fe376a70e0bfb5aa8217d5afa13b9d6e61", + "reference": "624567fe376a70e0bfb5aa8217d5afa13b9d6e61", + "shasum": "" + }, + "require": { + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-permissions-acl": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.5" + }, + "suggest": { + "laminas/laminas-servicemanager": "To support Laminas\\Permissions\\Acl\\Assertion\\AssertionManager plugin manager usage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7.x-dev", + "dev-develop": "2.8.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Permissions\\Acl\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Provides a lightweight and flexible access control list (ACL) implementation for privileges management", + "homepage": "https://laminas.dev", + "keywords": [ + "acl", + "laminas" + ], + "time": "2019-12-31T17:37:23+00:00" + }, + { + "name": "laminas/laminas-progressbar", + "version": "2.7.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-progressbar.git", + "reference": "15f9e983276462f30d7d38660dc7488c6e3df34b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-progressbar/zipball/15f9e983276462f30d7d38660dc7488c6e3df34b", + "reference": "15f9e983276462f30d7d38660dc7488c6e3df34b", + "shasum": "" + }, + "require": { + "laminas/laminas-stdlib": "^3.2.1", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-progressbar": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-json": "^2.6.1", + "laminas/laminas-session": "^2.8.5", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4" + }, + "suggest": { + "laminas/laminas-json": "Laminas\\Json component", + "laminas/laminas-session": "To support progressbar persistent" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7.x-dev", + "dev-develop": "2.8.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\ProgressBar\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Create and update progress bars in different environments", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "progressbar" + ], + "time": "2019-12-31T17:38:44+00:00" + }, + { + "name": "laminas/laminas-recaptcha", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-recaptcha.git", + "reference": "f84222c958c9784db8bcc5b37a8021e5ffcb9557" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-recaptcha/zipball/f84222c958c9784db8bcc5b37a8021e5ffcb9557", + "reference": "f84222c958c9784db8bcc5b37a8021e5ffcb9557", + "shasum": "" + }, + "require": { + "laminas/laminas-http": "^2.5.4", + "laminas/laminas-json": "^2.6.1 || ^3.0", + "laminas/laminas-stdlib": "^3.2.1", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zendservice-recaptcha": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-config": "^2.0", + "laminas/laminas-validator": "^2.8.2", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.5" + }, + "suggest": { + "laminas/laminas-validator": "~2.0, if using ReCaptcha's Mailhide API" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2.x-dev", + "dev-develop": "3.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\ReCaptcha\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "OOP wrapper for the ReCaptcha web service", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "recaptcha" + ], + "time": "2019-12-31T17:38:56+00:00" + }, + { + "name": "laminas/laminas-router", + "version": "3.3.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-router.git", + "reference": "c94f13f39dfbc4313efdbfcd9772487b4b009026" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-router/zipball/c94f13f39dfbc4313efdbfcd9772487b4b009026", + "reference": "c94f13f39dfbc4313efdbfcd9772487b4b009026", + "shasum": "" + }, + "require": { + "container-interop/container-interop": "^1.2", + "laminas/laminas-http": "^2.8.1", + "laminas/laminas-servicemanager": "^2.7.8 || ^3.3", + "laminas/laminas-stdlib": "^3.2.1", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-mvc": "<3.0.0" + }, + "replace": { + "zendframework/zend-router": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-i18n": "^2.7.4", + "phpunit/phpunit": "^5.7.22 || ^6.4.1 || ^7.5.18" + }, + "suggest": { + "laminas/laminas-i18n": "^2.7.4, if defining translatable HTTP path segments" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3.x-dev", + "dev-develop": "4.0.x-dev" + }, + "laminas": { + "component": "Laminas\\Router", + "config-provider": "Laminas\\Router\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Router\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Flexible routing system for HTTP and console applications", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "mvc", + "routing" + ], + "time": "2020-01-03T17:19:34+00:00" + }, + { + "name": "laminas/laminas-serializer", + "version": "2.9.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-serializer.git", + "reference": "c1c9361f114271b0736db74e0083a919081af5e0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-serializer/zipball/c1c9361f114271b0736db74e0083a919081af5e0", + "reference": "c1c9361f114271b0736db74e0083a919081af5e0", + "shasum": "" + }, + "require": { + "laminas/laminas-json": "^2.5 || ^3.0", + "laminas/laminas-stdlib": "^2.7 || ^3.0", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-serializer": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-math": "^2.6 || ^3.0", + "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3", + "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.16" + }, + "suggest": { + "laminas/laminas-math": "(^2.6 || ^3.0) To support Python Pickle serialization", + "laminas/laminas-servicemanager": "(^2.7.5 || ^3.0.3) To support plugin manager support" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.9.x-dev", + "dev-develop": "2.10.x-dev" + }, + "laminas": { + "component": "Laminas\\Serializer", + "config-provider": "Laminas\\Serializer\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Serializer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Serialize and deserialize PHP structures to a variety of representations", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "serializer" + ], + "time": "2019-12-31T17:42:11+00:00" + }, + { + "name": "laminas/laminas-servicemanager", + "version": "3.4.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-servicemanager.git", + "reference": "044cb8e380682563fb277ed5f6de4f690e4e6239" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-servicemanager/zipball/044cb8e380682563fb277ed5f6de4f690e4e6239", + "reference": "044cb8e380682563fb277ed5f6de4f690e4e6239", + "shasum": "" + }, + "require": { + "container-interop/container-interop": "^1.2", + "laminas/laminas-stdlib": "^3.2.1", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0", + "psr/container": "^1.0" + }, + "provide": { + "container-interop/container-interop-implementation": "^1.2", + "psr/container-implementation": "^1.0" + }, + "replace": { + "zendframework/zend-servicemanager": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "mikey179/vfsstream": "^1.6.5", + "ocramius/proxy-manager": "^1.0 || ^2.0", + "phpbench/phpbench": "^0.13.0", + "phpunit/phpunit": "^5.7.25 || ^6.4.4" + }, + "suggest": { + "laminas/laminas-stdlib": "laminas-stdlib ^2.5 if you wish to use the MergeReplaceKey or MergeRemoveKey features in Config instances", + "ocramius/proxy-manager": "ProxyManager 1.* to handle lazy initialization of services" + }, + "bin": [ + "bin/generate-deps-for-config-factory", + "bin/generate-factory-for-class" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev", + "dev-develop": "4.0-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\ServiceManager\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Factory-Driven Dependency Injection Container", + "homepage": "https://laminas.dev", + "keywords": [ + "PSR-11", + "dependency-injection", + "di", + "dic", + "laminas", + "service-manager", + "servicemanager" + ], + "time": "2019-12-31T17:44:47+00:00" + }, + { + "name": "laminas/laminas-servicemanager-di", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-servicemanager-di.git", + "reference": "abb2409f9dbf1b7c88f5dbe06bac726daa7c0325" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-servicemanager-di/zipball/abb2409f9dbf1b7c88f5dbe06bac726daa7c0325", + "reference": "abb2409f9dbf1b7c88f5dbe06bac726daa7c0325", + "shasum": "" + }, + "require": { + "container-interop/container-interop": "^1.1", + "laminas/laminas-di": "^2.6", + "laminas/laminas-servicemanager": "^3.0.3", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "conflict": { + "laminas/laminas-servicemanager": "<3.0" + }, + "replace": { + "zendframework/zend-servicemanager-di": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev", + "dev-develop": "1.3.x-dev" + }, + "laminas": { + "component": "Laminas\\ServiceManager\\Di", + "config-provider": "Laminas\\ServiceManager\\Di\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\ServiceManager\\Di\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "laminas-di integration for laminas-servicemanager", + "homepage": "https://laminas.dev", + "keywords": [ + "di", + "laminas" + ], + "time": "2019-12-31T17:44:51+00:00" + }, + { + "name": "laminas/laminas-session", + "version": "2.9.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-session.git", + "reference": "60b5cc844e09627d4f1a2a547e13268f376ccb3d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-session/zipball/60b5cc844e09627d4f1a2a547e13268f376ccb3d", + "reference": "60b5cc844e09627d4f1a2a547e13268f376ccb3d", + "shasum": "" + }, + "require": { + "laminas/laminas-eventmanager": "^2.6.2 || ^3.0", + "laminas/laminas-stdlib": "^3.2.1", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-session": "self.version" + }, + "require-dev": { + "container-interop/container-interop": "^1.1", + "laminas/laminas-cache": "^2.6.1", + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-db": "^2.7", + "laminas/laminas-http": "^2.5.4", + "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3", + "laminas/laminas-validator": "^2.6", + "mongodb/mongodb": "^1.0.1", + "php-mock/php-mock-phpunit": "^1.1.2 || ^2.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.16" + }, + "suggest": { + "laminas/laminas-cache": "Laminas\\Cache component", + "laminas/laminas-db": "Laminas\\Db component", + "laminas/laminas-http": "Laminas\\Http component", + "laminas/laminas-servicemanager": "Laminas\\ServiceManager component", + "laminas/laminas-validator": "Laminas\\Validator component", + "mongodb/mongodb": "If you want to use the MongoDB session save handler" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.9.x-dev", + "dev-develop": "2.10.x-dev" + }, + "laminas": { + "component": "Laminas\\Session", + "config-provider": "Laminas\\Session\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Session\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Object-oriented interface to PHP sessions and storage", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "session" + ], + "time": "2019-12-31T17:46:59+00:00" + }, + { + "name": "laminas/laminas-stdlib", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-stdlib.git", + "reference": "2b18347625a2f06a1a485acfbc870f699dbe51c6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/2b18347625a2f06a1a485acfbc870f699dbe51c6", + "reference": "2b18347625a2f06a1a485acfbc870f699dbe51c6", + "shasum": "" + }, + "require": { + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-stdlib": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "phpbench/phpbench": "^0.13", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2.x-dev", + "dev-develop": "3.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Stdlib\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "SPL extensions, array utilities, error handlers, and more", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "stdlib" + ], + "time": "2019-12-31T17:51:15+00:00" + }, + { + "name": "laminas/laminas-text", + "version": "2.7.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-text.git", + "reference": "3601b5eacb06ed0a12f658df860cc0f9613cf4db" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-text/zipball/3601b5eacb06ed0a12f658df860cc0f9613cf4db", + "reference": "3601b5eacb06ed0a12f658df860cc0f9613cf4db", + "shasum": "" + }, + "require": { + "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3", + "laminas/laminas-stdlib": "^2.7 || ^3.0", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-text": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-config": "^2.6", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7.x-dev", + "dev-develop": "2.8.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Text\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Create FIGlets and text-based tables", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "text" + ], + "time": "2019-12-31T17:54:52+00:00" + }, + { + "name": "laminas/laminas-uri", + "version": "2.7.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-uri.git", + "reference": "6be8ce19622f359b048ce4faebf1aa1bca73a7ff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-uri/zipball/6be8ce19622f359b048ce4faebf1aa1bca73a7ff", + "reference": "6be8ce19622f359b048ce4faebf1aa1bca73a7ff", + "shasum": "" + }, + "require": { + "laminas/laminas-escaper": "^2.5", + "laminas/laminas-validator": "^2.10", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-uri": "self.version" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~1.0.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7.x-dev", + "dev-develop": "2.8.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Uri\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "A component that aids in manipulating and validating » Uniform Resource Identifiers (URIs)", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "uri" + ], + "time": "2019-12-31T17:56:00+00:00" + }, + { + "name": "laminas/laminas-validator", + "version": "2.13.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-validator.git", + "reference": "36702f033486bf1953e254f5299aad205302e79d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-validator/zipball/36702f033486bf1953e254f5299aad205302e79d", + "reference": "36702f033486bf1953e254f5299aad205302e79d", + "shasum": "" + }, + "require": { + "container-interop/container-interop": "^1.1", + "laminas/laminas-stdlib": "^3.2.1", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^7.1" + }, + "replace": { + "zendframework/zend-validator": "self.version" + }, + "require-dev": { + "laminas/laminas-cache": "^2.6.1", + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-config": "^2.6", + "laminas/laminas-db": "^2.7", + "laminas/laminas-filter": "^2.6", + "laminas/laminas-http": "^2.5.4", + "laminas/laminas-i18n": "^2.6", + "laminas/laminas-math": "^2.6", + "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3", + "laminas/laminas-session": "^2.8", + "laminas/laminas-uri": "^2.5", + "phpunit/phpunit": "^7.5.20 || ^8.5.2", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0" + }, + "suggest": { + "laminas/laminas-db": "Laminas\\Db component, required by the (No)RecordExists validator", + "laminas/laminas-filter": "Laminas\\Filter component, required by the Digits validator", + "laminas/laminas-i18n": "Laminas\\I18n component to allow translation of validation error messages", + "laminas/laminas-i18n-resources": "Translations of validator messages", + "laminas/laminas-math": "Laminas\\Math component, required by the Csrf validator", + "laminas/laminas-servicemanager": "Laminas\\ServiceManager component to allow using the ValidatorPluginManager and validator chains", + "laminas/laminas-session": "Laminas\\Session component, ^2.8; required by the Csrf validator", + "laminas/laminas-uri": "Laminas\\Uri component, required by the Uri and Sitemap\\Loc validators", + "psr/http-message": "psr/http-message, required when validating PSR-7 UploadedFileInterface instances via the Upload and UploadFile validators" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.13.x-dev", + "dev-develop": "2.14.x-dev" + }, + "laminas": { + "component": "Laminas\\Validator", + "config-provider": "Laminas\\Validator\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Validator\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Validation classes for a wide range of domains, and the ability to chain validators to create complex validation criteria", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "validator" + ], + "time": "2020-01-15T09:59:30+00:00" + }, + { + "name": "laminas/laminas-view", + "version": "2.11.4", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-view.git", + "reference": "3bbb2e94287383604c898284a18d2d06cf17301e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-view/zipball/3bbb2e94287383604c898284a18d2d06cf17301e", + "reference": "3bbb2e94287383604c898284a18d2d06cf17301e", + "shasum": "" + }, + "require": { + "laminas/laminas-eventmanager": "^2.6.2 || ^3.0", + "laminas/laminas-json": "^2.6.1 || ^3.0", + "laminas/laminas-loader": "^2.5", + "laminas/laminas-stdlib": "^2.7 || ^3.0", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-view": "self.version" + }, + "require-dev": { + "laminas/laminas-authentication": "^2.5", + "laminas/laminas-cache": "^2.6.1", + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-config": "^2.6", + "laminas/laminas-console": "^2.6", + "laminas/laminas-escaper": "^2.5", + "laminas/laminas-feed": "^2.7", + "laminas/laminas-filter": "^2.6.1", + "laminas/laminas-http": "^2.5.4", + "laminas/laminas-i18n": "^2.6", + "laminas/laminas-log": "^2.7", + "laminas/laminas-modulemanager": "^2.7.1", + "laminas/laminas-mvc": "^2.7.14 || ^3.0", + "laminas/laminas-navigation": "^2.5", + "laminas/laminas-paginator": "^2.5", + "laminas/laminas-permissions-acl": "^2.6", + "laminas/laminas-router": "^3.0.1", + "laminas/laminas-serializer": "^2.6.1", + "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3", + "laminas/laminas-session": "^2.8.1", + "laminas/laminas-uri": "^2.5", + "phpunit/phpunit": "^5.7.15 || ^6.0.8" + }, + "suggest": { + "laminas/laminas-authentication": "Laminas\\Authentication component", + "laminas/laminas-escaper": "Laminas\\Escaper component", + "laminas/laminas-feed": "Laminas\\Feed component", + "laminas/laminas-filter": "Laminas\\Filter component", + "laminas/laminas-http": "Laminas\\Http component", + "laminas/laminas-i18n": "Laminas\\I18n component", + "laminas/laminas-mvc": "Laminas\\Mvc component", + "laminas/laminas-mvc-plugin-flashmessenger": "laminas-mvc-plugin-flashmessenger component, if you want to use the FlashMessenger view helper with laminas-mvc versions 3 and up", + "laminas/laminas-navigation": "Laminas\\Navigation component", + "laminas/laminas-paginator": "Laminas\\Paginator component", + "laminas/laminas-permissions-acl": "Laminas\\Permissions\\Acl component", + "laminas/laminas-servicemanager": "Laminas\\ServiceManager component", + "laminas/laminas-uri": "Laminas\\Uri component" + }, + "bin": [ + "bin/templatemap_generator.php" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.11.x-dev", + "dev-develop": "2.12.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\View\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Flexible view layer supporting and providing multiple view layers, helpers, and more", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "view" + ], + "time": "2019-12-31T18:03:30+00:00" + }, + { + "name": "laminas/laminas-zendframework-bridge", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-zendframework-bridge.git", + "reference": "0fb9675b84a1666ab45182b6c5b29956921e818d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/0fb9675b84a1666ab45182b6c5b29956921e818d", + "reference": "0fb9675b84a1666ab45182b6c5b29956921e818d", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.1", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev", + "dev-develop": "1.1.x-dev" + }, + "laminas": { + "module": "Laminas\\ZendFrameworkBridge" + } + }, + "autoload": { + "files": [ + "src/autoload.php" + ], + "psr-4": { + "Laminas\\ZendFrameworkBridge\\": "src//" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Alias legacy ZF class names to Laminas Project equivalents.", + "keywords": [ + "ZendFramework", + "autoloading", + "laminas", + "zf" + ], + "time": "2020-01-07T22:58:31+00:00" + }, + { + "name": "mongodb/mongodb", + "version": "1.4.3", + "source": { + "type": "git", + "url": "https://github.com/mongodb/mongo-php-library.git", + "reference": "18fca8cc8d0c2cc07f76605760d20632bb3dab96" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mongodb/mongo-php-library/zipball/18fca8cc8d0c2cc07f76605760d20632bb3dab96", + "reference": "18fca8cc8d0c2cc07f76605760d20632bb3dab96", + "shasum": "" + }, + "require": { + "ext-hash": "*", + "ext-json": "*", + "ext-mongodb": "^1.5.0", + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36 || ^6.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "MongoDB\\": "src/" + }, + "files": [ + "src/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Jeremy Mikola", + "email": "jmikola@gmail.com" + }, + { + "name": "Derick Rethans", + "email": "github@derickrethans.nl" + }, + { + "name": "Katherine Walker", + "email": "katherine.walker@mongodb.com" + } + ], + "description": "MongoDB driver library", + "homepage": "https://jira.mongodb.org/browse/PHPLIB", + "keywords": [ + "database", + "driver", + "mongodb", + "persistence" + ], + "time": "2019-07-02T18:04:14+00:00" + }, + { + "name": "mpdf/mpdf", + "version": "v5.7.4", + "source": { + "type": "git", + "url": "https://github.com/mpdf/mpdf.git", + "reference": "f9a374c7ea975ce8c795cec4dfd17ef55addac9c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mpdf/mpdf/zipball/f9a374c7ea975ce8c795cec4dfd17ef55addac9c", + "reference": "f9a374c7ea975ce8c795cec4dfd17ef55addac9c", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=4.3.10" + }, + "type": "library", + "autoload": { + "classmap": [ + "mpdf.php", + "classes" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-1.0+" + ], + "authors": [ + { + "name": "Ian Back" + } + ], + "description": "A PHP class to generate PDF files from HTML with Unicode/UTF-8 and CJK support", + "homepage": "http://www.mpdf1.com/mpdf/index.php", + "keywords": [ + "pdf", + "php", + "utf-8" + ], + "time": "2014-12-14T18:32:11+00:00" + }, + { + "name": "paragonie/random_compat", + "version": "v9.99.99", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", + "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", + "shasum": "" + }, + "require": { + "php": "^7" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*", + "vimeo/psalm": "^1" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "polyfill", + "pseudorandom", + "random" + ], + "time": "2018-07-02T15:55:56+00:00" + }, + { + "name": "paypal/rest-api-sdk-php", + "version": "1.14.0", + "source": { + "type": "git", + "url": "https://github.com/paypal/PayPal-PHP-SDK.git", + "reference": "72e2f2466975bf128a31e02b15110180f059fc04" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paypal/PayPal-PHP-SDK/zipball/72e2f2466975bf128a31e02b15110180f059fc04", + "reference": "72e2f2466975bf128a31e02b15110180f059fc04", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-json": "*", + "php": ">=5.3.0", + "psr/log": "^1.0.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35" + }, + "type": "library", + "autoload": { + "psr-0": { + "PayPal": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "PayPal", + "homepage": "https://github.com/paypal/rest-api-sdk-php/contributors" + } + ], + "description": "PayPal's PHP SDK for REST APIs", + "homepage": "http://paypal.github.io/PayPal-PHP-SDK/", + "keywords": [ + "payments", + "paypal", + "rest", + "sdk" + ], + "time": "2019-01-04T20:04:25+00:00" + }, + { + "name": "psr/cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "time": "2016-08-06T20:24:11+00:00" + }, + { + "name": "psr/container", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "time": "2017-02-14T16:28:37+00:00" + }, + { + "name": "psr/log", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", + "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2019-11-01T11:05:21+00:00" + }, + { + "name": "psr/simple-cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "time": "2017-10-23T01:57:42+00:00" + }, + { + "name": "sebastian/version", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "time": "2016-10-03T07:35:21+00:00" + }, + { + "name": "slm/queue", + "version": "1.0.4", + "source": { + "type": "git", + "url": "https://github.com/JouwWeb/SlmQueue.git", + "reference": "6f0d92a04ef3dfa088fac9a3f9638c554968fe77" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/JouwWeb/SlmQueue/zipball/6f0d92a04ef3dfa088fac9a3f9638c554968fe77", + "reference": "6f0d92a04ef3dfa088fac9a3f9638c554968fe77", + "shasum": "" + }, + "require": { + "php": ">=5.5", + "zendframework/zend-eventmanager": "^2.6 || ^3.0", + "zendframework/zend-servicemanager": "^2.7 || ^3.0", + "zendframework/zend-stdlib": "^2.7 || ^3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8", + "squizlabs/php_codesniffer": "^2.0", + "zendframework/zend-config": "^2.6", + "zendframework/zend-console": "^2.6", + "zendframework/zend-i18n": "^2.6", + "zendframework/zend-log": "^2.7", + "zendframework/zend-modulemanager": "^2.5", + "zendframework/zend-mvc": "^2.5", + "zendframework/zend-serializer": "^2.6", + "zendframework/zend-view": "^2.7" + }, + "suggest": { + "slm/queue-beanstalkd": "If you are using Beanstalk", + "slm/queue-doctrine": "If you are using Doctrine ORM", + "slm/queue-sqs": "If you are using Amazon SQS" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + }, + "zf": { + "module": "SlmQueue", + "config-provider": "SlmQueue\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "SlmQueue\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jurian Sluiman", + "email": "jurian@juriansluiman.nl", + "homepage": "http://juriansluiman.nl" + }, + { + "name": "Michaël Gallego", + "email": "mic.gallego@gmail.com", + "homepage": "http://www.michaelgallego.fr" + }, + { + "name": "Bas Kamer", + "email": "baskamer@gmail.com" + }, + { + "name": "Roel van Duijnhoven", + "email": "roel.duijnhoven@gmail.com", + "homepage": "http://www.roelvanduijnhoven.nl" + } + ], + "description": "Zend Framework module that integrates with various queue management systems", + "homepage": "https://github.com/juriansluiman/SlmQueue", + "keywords": [ + "ZendFramework", + "expressive", + "job", + "queue", + "zf2", + "zf3" + ], + "time": "2019-03-21T12:39:36+00:00" + }, + { + "name": "symfony/console", + "version": "v4.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "f512001679f37e6a042b51897ed24a2f05eba656" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/f512001679f37e6a042b51897ed24a2f05eba656", + "reference": "f512001679f37e6a042b51897ed24a2f05eba656", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/lock": "<4.4", + "symfony/process": "<3.3" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/event-dispatcher": "^4.3", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^4.3|^5.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Console Component", + "homepage": "https://symfony.com", + "time": "2020-01-25T12:44:29+00:00" + }, + { + "name": "symfony/dotenv", + "version": "v4.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/dotenv.git", + "reference": "b74a1638f53e3c65e4bbfc2a03c23fdc400fd243" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/b74a1638f53e3c65e4bbfc2a03c23fdc400fd243", + "reference": "b74a1638f53e3c65e4bbfc2a03c23fdc400fd243", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "require-dev": { + "symfony/process": "^3.4.2|^4.0|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Dotenv\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Registers environment variables from a .env file", + "homepage": "https://symfony.com", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "time": "2020-01-08T17:29:02+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v4.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "266c9540b475f26122b61ef8b23dd9198f5d1cfd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/266c9540b475f26122b61ef8b23dd9198f5d1cfd", + "reference": "266c9540b475f26122b61ef8b23dd9198f5d1cfd", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Filesystem Component", + "homepage": "https://symfony.com", + "time": "2020-01-21T08:20:44+00:00" + }, + { + "name": "symfony/finder", + "version": "v4.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "3a50be43515590faf812fbd7708200aabc327ec3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/3a50be43515590faf812fbd7708200aabc327ec3", + "reference": "3a50be43515590faf812fbd7708200aabc327ec3", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Finder Component", + "homepage": "https://symfony.com", + "time": "2020-01-04T13:00:46+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.14.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", + "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.14-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "time": "2020-01-13T11:15:53+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.14.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/34094cfa9abe1f0f14f48f490772db7a775559f2", + "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.14-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "time": "2020-01-13T11:15:53+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.14.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "5e66a0fa1070bf46bec4bea7962d285108edd675" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/5e66a0fa1070bf46bec4bea7962d285108edd675", + "reference": "5e66a0fa1070bf46bec4bea7962d285108edd675", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.14-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2020-01-13T11:15:53+00:00" + }, + { + "name": "symfony/process", + "version": "v4.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "f5697ab4cb14a5deed7473819e63141bf5352c36" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/f5697ab4cb14a5deed7473819e63141bf5352c36", + "reference": "f5697ab4cb14a5deed7473819e63141bf5352c36", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Process Component", + "homepage": "https://symfony.com", + "time": "2020-01-09T09:50:08+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "144c5e51266b281231e947b51223ba14acf1a749" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/144c5e51266b281231e947b51223ba14acf1a749", + "reference": "144c5e51266b281231e947b51223ba14acf1a749", + "shasum": "" + }, + "require": { + "php": "^7.2.5", + "psr/container": "^1.0" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-11-18T17:27:11+00:00" + }, + { + "name": "tracy/tracy", + "version": "v2.7.2", + "source": { + "type": "git", + "url": "https://github.com/nette/tracy.git", + "reference": "d28ebdf7ab8d88f231310aef1e8cce965ea0b2ca" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/tracy/zipball/d28ebdf7ab8d88f231310aef1e8cce965ea0b2ca", + "reference": "d28ebdf7ab8d88f231310aef1e8cce965ea0b2ca", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-session": "*", + "php": ">=7.1" + }, + "conflict": { + "nette/di": "<3.0" + }, + "require-dev": { + "nette/di": "^3.0", + "nette/tester": "^2.2", + "nette/utils": "^3.0", + "phpstan/phpstan": "^0.12", + "psr/log": "^1.0" + }, + "suggest": { + "https://nette.org/donate": "Please support Tracy via a donation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "classmap": [ + "src" + ], + "files": [ + "src/Tracy/shortcuts.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "😎 Tracy: the addictive tool to ease debugging PHP code for cool developers. Friendly design, logging, profiler, advanced features like debugging AJAX calls or CLI support. You will love it.", + "homepage": "https://tracy.nette.org", + "keywords": [ + "Xdebug", + "debug", + "debugger", + "nette", + "profiler" + ], + "time": "2019-12-15T22:48:05+00:00" + }, + { + "name": "true/punycode", + "version": "v2.1.1", + "source": { + "type": "git", + "url": "https://github.com/true/php-punycode.git", + "reference": "a4d0c11a36dd7f4e7cd7096076cab6d3378a071e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/true/php-punycode/zipball/a4d0c11a36dd7f4e7cd7096076cab6d3378a071e", + "reference": "a4d0c11a36dd7f4e7cd7096076cab6d3378a071e", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "symfony/polyfill-mbstring": "^1.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.7", + "squizlabs/php_codesniffer": "~2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "TrueBV\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Renan Gonçalves", + "email": "renan.saddam@gmail.com" + } + ], + "description": "A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)", + "homepage": "https://github.com/true/php-punycode", + "keywords": [ + "idna", + "punycode" + ], + "time": "2016-11-16T10:37:54+00:00" + }, + { + "name": "yawik/applications", + "version": "v0.34.0", + "source": { + "type": "git", + "url": "https://github.com/yawik/applications.git", + "reference": "3eadfbfb817d511bb3adca8af32b07095f5792a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yawik/applications/zipball/3eadfbfb817d511bb3adca8af32b07095f5792a5", + "reference": "3eadfbfb817d511bb3adca8af32b07095f5792a5", + "shasum": "" + }, + "require": { + "yawik/core": ">=0.33@dev" + }, + "type": "yawik-module", + "extra": { + "branch-alias": { + "dev-develop": "0.33-dev" + }, + "zf": { + "module": "Applications" + } + }, + "autoload": { + "psr-4": { + "Applications\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mathias Gelhausen", + "email": "gelhausen@cross-solution.de" + }, + { + "name": "Carsten Bleek", + "email": "bleek@cross-solution.de" + }, + { + "name": "Anthonius Munthi", + "email": "me@itstoni.com" + } + ], + "description": "This package provide an Applications modules for yawik.", + "keywords": [ + "module", + "yawik", + "zf" + ], + "time": "2020-02-17T19:11:37+00:00" + }, + { + "name": "yawik/auth", + "version": "v0.34.0", + "source": { + "type": "git", + "url": "https://github.com/yawik/auth.git", + "reference": "4032406eb238d29ce1e70a468916811caa266bbf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yawik/auth/zipball/4032406eb238d29ce1e70a468916811caa266bbf", + "reference": "4032406eb238d29ce1e70a468916811caa266bbf", + "shasum": "" + }, + "require": { + "hybridauth/hybridauth": "^2.10", + "yawik/core": ">=0.33@dev" + }, + "type": "yawik-module", + "extra": { + "branch-alias": { + "dev-develop": "0.33-dev" + }, + "zf": { + "module": "Auth" + } + }, + "autoload": { + "psr-4": { + "Auth\\": "src/Auth/", + "Acl\\": "src/Acl/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mathias Gelhausen", + "email": "gelhausen@cross-solution.de" + }, + { + "name": "Carsten Bleek", + "email": "bleek@cross-solution.de" + }, + { + "name": "Anthonius Munthi", + "email": "me@itstoni.com" + } + ], + "description": "This package provide an Auth modules for Yawik.", + "keywords": [ + "module", + "yawik", + "zf" + ], + "time": "2020-02-17T19:11:37+00:00" + }, + { + "name": "yawik/composer-plugin", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/yawik/composer-plugin.git", + "reference": "d3a45d2ab342fc0eb21e1126e8637fb7752464e4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yawik/composer-plugin/zipball/d3a45d2ab342fc0eb21e1126e8637fb7752464e4", + "reference": "d3a45d2ab342fc0eb21e1126e8637fb7752464e4", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1", + "php": ">=5.6", + "psr/log": "^1.0", + "symfony/console": "^3.4 | ^4.1", + "symfony/finder": "^3.4 | ^4.1", + "zendframework/zend-eventmanager": "^3.2" + }, + "replace": { + "yawik/composer-plugin": "self.version" + }, + "require-dev": { + "composer/composer": ">=1.0.0-alpha10", + "mikey179/vfsstream": "^1.6", + "phpunit/phpunit": "^5.7.23 || ^6.4.3", + "squizlabs/php_codesniffer": "^2.6.2", + "yawik/core": ">=0.32@dev" + }, + "type": "composer-plugin", + "extra": { + "branch-alias": { + "dev-master": "0.32-dev", + "dev-develop": "0.33-dev" + }, + "class": "Yawik\\Composer\\Plugin" + }, + "autoload": { + "psr-4": { + "Yawik\\Composer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mathias Gelhausen", + "email": "gelhausen@cross-solution.de" + }, + { + "name": "Carsten Bleek", + "email": "bleek@cross-solution.de" + }, + { + "name": "Anthonius Munthi", + "homepage": "https://itstoni.com" + } + ], + "description": "The composer plugin for yawik application", + "time": "2018-11-24T04:11:48+00:00" + }, + { + "name": "yawik/core", + "version": "v0.34.0", + "source": { + "type": "git", + "url": "https://github.com/yawik/core.git", + "reference": "07c06820b7801bc59ab938005639d7e94cc19bad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yawik/core/zipball/07c06820b7801bc59ab938005639d7e94cc19bad", + "reference": "07c06820b7801bc59ab938005639d7e94cc19bad", + "shasum": "" + }, + "require": { + "alcaeus/mongo-php-adapter": "^1.0.0", + "doctrine/doctrine-mongo-odm-module": "^1.0.0", + "ext-intl": "*", + "ext-mongodb": "*", + "ezyang/htmlpurifier": "^4.12", + "hybridauth/hybridauth": "^2.10", + "imagine/imagine": "^1.0", + "jmikola/geojson": "^1.0", + "laminas/laminas-authentication": "^2.5", + "laminas/laminas-cache": "^2.7", + "laminas/laminas-captcha": "^2.7", + "laminas/laminas-feed": "^2.8", + "laminas/laminas-form": "^2.10", + "laminas/laminas-i18n-resources": "^2.5", + "laminas/laminas-json": "^3.0", + "laminas/laminas-log": "^2.9", + "laminas/laminas-mail": "^2.7", + "laminas/laminas-math": "^3.0", + "laminas/laminas-mvc": "^3.0", + "laminas/laminas-mvc-console": "^1.1", + "laminas/laminas-mvc-i18n": "^1.0", + "laminas/laminas-mvc-plugins": "^1.0", + "laminas/laminas-navigation": "^2.8", + "laminas/laminas-permissions-acl": "^2.6", + "laminas/laminas-progressbar": "^2.5", + "laminas/laminas-recaptcha": "^3.0", + "laminas/laminas-serializer": "^2.8", + "laminas/laminas-servicemanager-di": "^1.1", + "laminas/laminas-session": "^2.7", + "laminas/laminas-view": "^2.9", + "mpdf/mpdf": "5.7.*", + "php": ">=7.1", + "sebastian/version": "^2.0", + "slm/queue": "^1.0", + "symfony/console": "^3.4 | ^4.1", + "symfony/dotenv": "^3.4 | ^4.1", + "symfony/filesystem": "^3.4 | ^4.1", + "symfony/finder": "^3.4 | ^4.1", + "symfony/process": "^3.4 | ^4.1", + "tracy/tracy": "^2.4" + }, + "require-dev": { + "cbleek/pecl-solr-hint": "dev-master", + "laminas/laminas-test": "^3.1", + "mikey179/vfsstream": "^1.6", + "phpunit/phpunit": "^5.7" + }, + "bin": [ + "bin/yawik" + ], + "type": "yawik-module", + "extra": { + "branch-alias": { + "dev-develop": "0.33-dev" + }, + "zf": { + "module": "Core" + } + }, + "autoload": { + "psr-4": { + "Core\\": "src/" + }, + "psr-0": { + "": "test/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mathias Gelhausen", + "email": "gelhausen@cross-solution.de" + }, + { + "name": "Carsten Bleek", + "email": "bleek@cross-solution.de" + }, + { + "name": "Anthonius Munthi", + "email": "me@itstoni.com" + } + ], + "description": "This package provide a Core Module for yawik", + "keywords": [ + "module", + "yawik", + "zf3" + ], + "time": "2020-02-18T10:32:08+00:00" + }, + { + "name": "yawik/cv", + "version": "v0.34.0", + "source": { + "type": "git", + "url": "https://github.com/yawik/cv.git", + "reference": "4d1c598eb89f72a0ed3d1075e9df0d91c5a7ba6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yawik/cv/zipball/4d1c598eb89f72a0ed3d1075e9df0d91c5a7ba6e", + "reference": "4d1c598eb89f72a0ed3d1075e9df0d91c5a7ba6e", + "shasum": "" + }, + "require": { + "yawik/core": ">=0.33@dev" + }, + "type": "yawik-module", + "extra": { + "branch-alias": { + "dev-develop": "0.33-dev" + }, + "zf": { + "module": "Cv" + } + }, + "autoload": { + "psr-4": { + "Cv\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mathias Gelhausen", + "email": "gelhausen@cross-solution.de" + }, + { + "name": "Carsten Bleek", + "email": "bleek@cross-solution.de" + }, + { + "name": "Anthonius Munthi", + "email": "me@itstoni.com" + } + ], + "description": "This package provide a CV modules for yawik.", + "keywords": [ + "module", + "yawik" + ], + "time": "2020-02-17T19:11:37+00:00" + }, + { + "name": "yawik/geo", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/yawik/geo.git", + "reference": "569e6b4eb38cbf31f668bf9f00aafa61877d40f0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yawik/geo/zipball/569e6b4eb38cbf31f668bf9f00aafa61877d40f0", + "reference": "569e6b4eb38cbf31f668bf9f00aafa61877d40f0", + "shasum": "" + }, + "require": { + "jmikola/geojson": "^1.0.0", + "yawik/core": ">=0.33@dev" + }, + "type": "yawik-module", + "extra": { + "branch-alias": { + "dev-develop": "0.33-dev" + }, + "zf": { + "module": "Geo" + } + }, + "autoload": { + "psr-4": { + "Geo\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Anthonius Munthi", + "email": "me@itstoni.com" + }, + { + "name": "Mathias Gelhausen", + "email": "gelhausen@cross-solution.de" + }, + { + "name": "Carsten Bleek", + "email": "bleek@cross-solution.de" + } + ], + "description": "This package provide a Geo modules for yawik.", + "keywords": [ + "module", + "yawik", + "zf3" + ], + "time": "2019-05-06T09:57:07+00:00" + }, + { + "name": "yawik/jobs", + "version": "v0.34.0", + "source": { + "type": "git", + "url": "https://github.com/yawik/jobs.git", + "reference": "f201f3b3fecfef9ef59abecb92c0c898b3604958" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yawik/jobs/zipball/f201f3b3fecfef9ef59abecb92c0c898b3604958", + "reference": "f201f3b3fecfef9ef59abecb92c0c898b3604958", + "shasum": "" + }, + "require": { + "yawik/core": ">=0.33@dev" + }, + "type": "yawik-module", + "extra": { + "branch-alias": { + "dev-develop": "0.33-dev" + }, + "zf": { + "module": "Jobs" + } + }, + "autoload": { + "psr-4": { + "Jobs\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mathias Gelhausen", + "email": "gelhausen@cross-solution.de" + }, + { + "name": "Carsten Bleek", + "email": "bleek@cross-solution.de" + }, + { + "name": "Anthonius Munthi", + "email": "me@itstoni.com" + } + ], + "description": "This package provide a Jobs module for yawik.", + "keywords": [ + "module", + "yawik", + "zf3" + ], + "time": "2020-02-17T19:11:37+00:00" + }, + { + "name": "yawik/organizations", + "version": "v0.34.0", + "source": { + "type": "git", + "url": "https://github.com/yawik/organizations.git", + "reference": "c929634bf62c9935d6ba45099bc6e71559c6a166" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yawik/organizations/zipball/c929634bf62c9935d6ba45099bc6e71559c6a166", + "reference": "c929634bf62c9935d6ba45099bc6e71559c6a166", + "shasum": "" + }, + "require": { + "yawik/core": ">=0.33@dev" + }, + "type": "yawik-module", + "extra": { + "branch-alias": { + "dev-develop": "0.33-dev" + }, + "zf": { + "module": "Organizations" + } + }, + "autoload": { + "psr-4": { + "Organizations\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mathias Gelhausen", + "email": "gelhausen@cross-solution.de" + }, + { + "name": "Carsten Bleek", + "email": "bleek@cross-solution.de" + }, + { + "name": "Anthonius Munthi", + "email": "me@itstoni.com" + } + ], + "description": "This package provide an Organizations module for yawik.", + "keywords": [ + "module", + "yawik", + "zf3" + ], + "time": "2020-02-17T19:11:37+00:00" + }, + { + "name": "yawik/settings", + "version": "v0.34.0", + "source": { + "type": "git", + "url": "https://github.com/yawik/settings.git", + "reference": "13b3a54b9b3652005045e5e6713253387d4ccd18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yawik/settings/zipball/13b3a54b9b3652005045e5e6713253387d4ccd18", + "reference": "13b3a54b9b3652005045e5e6713253387d4ccd18", + "shasum": "" + }, + "require": { + "yawik/core": ">=0.33@dev" + }, + "type": "yawik-module", + "extra": { + "branch-alias": { + "dev-develop": "0.33-dev" + }, + "zf": { + "module": "Settings" + } + }, + "autoload": { + "psr-4": { + "Settings\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mathias Gelhausen", + "email": "gelhausen@cross-solution.de" + }, + { + "name": "Carsten Bleek", + "email": "bleek@cross-solution.de" + }, + { + "name": "Anthonius Munthi", + "email": "me@itstoni.com" + } + ], + "description": "This package provide a Settings module for yawik.", + "keywords": [ + "module", + "yawik", + "zf3" + ], + "time": "2020-02-17T19:11:37+00:00" + } + ], + "packages-dev": [ + { + "name": "behat/behat", + "version": "v3.6.1", + "source": { + "type": "git", + "url": "https://github.com/Behat/Behat.git", + "reference": "9bfe195b4745c32e068af03fa4df9558b4916d30" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Behat/Behat/zipball/9bfe195b4745c32e068af03fa4df9558b4916d30", + "reference": "9bfe195b4745c32e068af03fa4df9558b4916d30", + "shasum": "" + }, + "require": { + "behat/gherkin": "^4.6.0", + "behat/transliterator": "^1.2", + "container-interop/container-interop": "^1.2", + "ext-mbstring": "*", + "php": ">=5.3.3", + "psr/container": "^1.0", + "symfony/config": "^2.7.51 || ^3.0 || ^4.0 || ^5.0", + "symfony/console": "^2.7.51 || ^2.8.33 || ^3.3.15 || ^3.4.3 || ^4.0.3 || ^5.0", + "symfony/dependency-injection": "^2.7.51 || ^3.0 || ^4.0 || ^5.0", + "symfony/event-dispatcher": "^2.7.51 || ^3.0 || ^4.0 || ^5.0", + "symfony/translation": "^2.7.51 || ^3.0 || ^4.0 || ^5.0", + "symfony/yaml": "^2.7.51 || ^3.0 || ^4.0 || ^5.0" + }, + "require-dev": { + "herrera-io/box": "~1.6.1", + "phpunit/phpunit": "^4.8.36 || ^6.3", + "symfony/process": "~2.5 || ^3.0 || ^4.0 || ^5.0" + }, + "suggest": { + "ext-dom": "Needed to output test results in JUnit format." + }, + "bin": [ + "bin/behat" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.6.x-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Behat\\": "src/Behat/Behat/", + "Behat\\Testwork\\": "src/Behat/Testwork/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Scenario-oriented BDD framework for PHP 5.3", + "homepage": "http://behat.org/", + "keywords": [ + "Agile", + "BDD", + "ScenarioBDD", + "Scrum", + "StoryBDD", + "User story", + "business", + "development", + "documentation", + "examples", + "symfony", + "testing" + ], + "time": "2020-02-06T09:54:48+00:00" + }, + { + "name": "behat/gherkin", + "version": "v4.6.0", + "source": { + "type": "git", + "url": "https://github.com/Behat/Gherkin.git", + "reference": "ab0a02ea14893860bca00f225f5621d351a3ad07" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/ab0a02ea14893860bca00f225f5621d351a3ad07", + "reference": "ab0a02ea14893860bca00f225f5621d351a3ad07", + "shasum": "" + }, + "require": { + "php": ">=5.3.1" + }, + "require-dev": { + "phpunit/phpunit": "~4.5|~5", + "symfony/phpunit-bridge": "~2.7|~3|~4", + "symfony/yaml": "~2.3|~3|~4" + }, + "suggest": { + "symfony/yaml": "If you want to parse features, represented in YAML files" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-0": { + "Behat\\Gherkin": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Gherkin DSL parser for PHP 5.3", + "homepage": "http://behat.org/", + "keywords": [ + "BDD", + "Behat", + "Cucumber", + "DSL", + "gherkin", + "parser" + ], + "time": "2019-01-16T14:22:17+00:00" + }, + { + "name": "behat/mink", + "version": "v1.7.1", + "source": { + "type": "git", + "url": "https://github.com/minkphp/Mink.git", + "reference": "e6930b9c74693dff7f4e58577e1b1743399f3ff9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/minkphp/Mink/zipball/e6930b9c74693dff7f4e58577e1b1743399f3ff9", + "reference": "e6930b9c74693dff7f4e58577e1b1743399f3ff9", + "shasum": "" + }, + "require": { + "php": ">=5.3.1", + "symfony/css-selector": "~2.1|~3.0" + }, + "require-dev": { + "symfony/phpunit-bridge": "~2.7|~3.0" + }, + "suggest": { + "behat/mink-browserkit-driver": "extremely fast headless driver for Symfony\\Kernel-based apps (Sf2, Silex)", + "behat/mink-goutte-driver": "fast headless driver for any app without JS emulation", + "behat/mink-selenium2-driver": "slow, but JS-enabled driver for any app (requires Selenium2)", + "behat/mink-zombie-driver": "fast and JS-enabled headless driver for any app (requires node.js)" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.7.x-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Mink\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Browser controller/emulator abstraction for PHP", + "homepage": "http://mink.behat.org/", + "keywords": [ + "browser", + "testing", + "web" + ], + "time": "2016-03-05T08:26:18+00:00" + }, + { + "name": "behat/mink-browserkit-driver", + "version": "1.3.3", + "source": { + "type": "git", + "url": "https://github.com/minkphp/MinkBrowserKitDriver.git", + "reference": "1b9a7ce903cfdaaec5fb32bfdbb26118343662eb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/minkphp/MinkBrowserKitDriver/zipball/1b9a7ce903cfdaaec5fb32bfdbb26118343662eb", + "reference": "1b9a7ce903cfdaaec5fb32bfdbb26118343662eb", + "shasum": "" + }, + "require": { + "behat/mink": "^1.7.1@dev", + "php": ">=5.3.6", + "symfony/browser-kit": "~2.3|~3.0|~4.0", + "symfony/dom-crawler": "~2.3|~3.0|~4.0" + }, + "require-dev": { + "mink/driver-testsuite": "dev-master", + "symfony/http-kernel": "~2.3|~3.0|~4.0" + }, + "type": "mink-driver", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Mink\\Driver\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Symfony2 BrowserKit driver for Mink framework", + "homepage": "http://mink.behat.org/", + "keywords": [ + "Mink", + "Symfony2", + "browser", + "testing" + ], + "time": "2018-05-02T09:25:31+00:00" + }, + { + "name": "behat/mink-extension", + "version": "2.3.1", + "source": { + "type": "git", + "url": "https://github.com/Behat/MinkExtension.git", + "reference": "80f7849ba53867181b7e412df9210e12fba50177" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Behat/MinkExtension/zipball/80f7849ba53867181b7e412df9210e12fba50177", + "reference": "80f7849ba53867181b7e412df9210e12fba50177", + "shasum": "" + }, + "require": { + "behat/behat": "^3.0.5", + "behat/mink": "^1.5", + "php": ">=5.3.2", + "symfony/config": "^2.7|^3.0|^4.0" + }, + "require-dev": { + "behat/mink-goutte-driver": "^1.1", + "phpspec/phpspec": "^2.0" + }, + "type": "behat-extension", + "extra": { + "branch-alias": { + "dev-master": "2.1.x-dev" + } + }, + "autoload": { + "psr-0": { + "Behat\\MinkExtension": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christophe Coevoet", + "email": "stof@notk.org" + }, + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com" + } + ], + "description": "Mink extension for Behat", + "homepage": "http://extensions.behat.org/mink", + "keywords": [ + "browser", + "gui", + "test", + "web" + ], + "time": "2018-02-06T15:36:30+00:00" + }, + { + "name": "behat/mink-selenium2-driver", + "version": "v1.3.1", + "source": { + "type": "git", + "url": "https://github.com/minkphp/MinkSelenium2Driver.git", + "reference": "473a9f3ebe0c134ee1e623ce8a9c852832020288" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/minkphp/MinkSelenium2Driver/zipball/473a9f3ebe0c134ee1e623ce8a9c852832020288", + "reference": "473a9f3ebe0c134ee1e623ce8a9c852832020288", + "shasum": "" + }, + "require": { + "behat/mink": "~1.7@dev", + "instaclick/php-webdriver": "~1.1", + "php": ">=5.3.1" + }, + "require-dev": { + "symfony/phpunit-bridge": "~2.7" + }, + "type": "mink-driver", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Mink\\Driver\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Pete Otaqui", + "email": "pete@otaqui.com", + "homepage": "https://github.com/pete-otaqui" + } + ], + "description": "Selenium2 (WebDriver) driver for Mink framework", + "homepage": "http://mink.behat.org/", + "keywords": [ + "ajax", + "browser", + "javascript", + "selenium", + "testing", + "webdriver" + ], + "time": "2016-03-05T09:10:18+00:00" + }, + { + "name": "behat/transliterator", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/Behat/Transliterator.git", + "reference": "3c4ec1d77c3d05caa1f0bf8fb3aae4845005c7fc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Behat/Transliterator/zipball/3c4ec1d77c3d05caa1f0bf8fb3aae4845005c7fc", + "reference": "3c4ec1d77c3d05caa1f0bf8fb3aae4845005c7fc", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "chuyskywalker/rolling-curl": "^3.1", + "php-yaoi/php-yaoi": "^1.0", + "phpunit/phpunit": "^4.8.36|^6.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Transliterator\\": "src/Behat/Transliterator" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Artistic-1.0" + ], + "description": "String transliterator", + "keywords": [ + "i18n", + "slug", + "transliterator" + ], + "time": "2020-01-14T16:39:13+00:00" + }, + { + "name": "cross-solution/phpunit-utils", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/cross-solution/phpunit-utils.git", + "reference": "0eec4a71b48b0b1757636732255c40acd1fedd17" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cross-solution/phpunit-utils/zipball/0eec4a71b48b0b1757636732255c40acd1fedd17", + "reference": "0eec4a71b48b0b1757636732255c40acd1fedd17", + "shasum": "" + }, + "require": { + "php": ">=7.2", + "phpunit/phpunit": "^8.0" + }, + "require-dev": { + "php-mock/php-mock-prophecy": "^0.0.2", + "psr/container": "^1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Cross\\TestUtils\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mathias Gelhausen", + "email": "gelhausen@cross-solution.de" + } + ], + "description": "Utilities to aid in writing unit tests with the PHPUnit Framework", + "keywords": [ + "helper", + "phpunit", + "testing", + "utilities" + ], + "time": "2019-06-21T12:00:58+00:00" + }, + { + "name": "enm1989/chromedriver", + "version": "2.46", + "source": { + "type": "git", + "url": "https://github.com/ENM1989/chromedriver.git", + "reference": "08927b4412eb1bb668c42797139c8a82ffde2087" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ENM1989/chromedriver/zipball/08927b4412eb1bb668c42797139c8a82ffde2087", + "reference": "08927b4412eb1bb668c42797139c8a82ffde2087", + "shasum": "" + }, + "bin": [ + "bin/chromedriver" + ], + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Nico Müller", + "email": "nico.mueller.1989@googlemail.com" + } + ], + "description": "Composer distribution of Chromedriver. Adds a executable to your composer bin directory.", + "homepage": "https://github.com/ENM1989/chromedriver", + "keywords": [ + "Chromedriver", + "chrome", + "selenium", + "webdriver" + ], + "time": "2019-03-17T19:47:18+00:00" + }, + { + "name": "instaclick/php-webdriver", + "version": "1.4.7", + "source": { + "type": "git", + "url": "https://github.com/instaclick/php-webdriver.git", + "reference": "b5f330e900e9b3edfc18024a5ec8c07136075712" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/b5f330e900e9b3edfc18024a5ec8c07136075712", + "reference": "b5f330e900e9b3edfc18024a5ec8c07136075712", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "^4.8", + "satooshi/php-coveralls": "^1.0||^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "psr-0": { + "WebDriver": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Justin Bishop", + "email": "jubishop@gmail.com", + "role": "Developer" + }, + { + "name": "Anthon Pang", + "email": "apang@softwaredevelopment.ca", + "role": "Fork Maintainer" + } + ], + "description": "PHP WebDriver for Selenium 2", + "homepage": "http://instaclick.com/", + "keywords": [ + "browser", + "selenium", + "webdriver", + "webtest" + ], + "time": "2019-09-25T09:05:11+00:00" + }, + { + "name": "lakion/mink-debug-extension", + "version": "v1.2.3", + "source": { + "type": "git", + "url": "https://github.com/Lakion/MinkDebugExtension.git", + "reference": "fb04a47076df15ff38e6c7d298aac93dd6a63468" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Lakion/MinkDebugExtension/zipball/fb04a47076df15ff38e6c7d298aac93dd6a63468", + "reference": "fb04a47076df15ff38e6c7d298aac93dd6a63468", + "shasum": "" + }, + "require": { + "behat/behat": "^3.0.5", + "behat/mink-extension": "^2.0.1", + "php": "^5.5.9|^7.0" + }, + "require-dev": { + "behat/mink-goutte-driver": "^1.1", + "behat/mink-selenium2-driver": "^1.2", + "phpspec/phpspec": "^2.0" + }, + "suggest": { + "behat/mink-browserkit-driver": "To get request debug information included in log file", + "behat/mink-selenium2-driver": "To get screenshots" + }, + "bin": [ + "travis/tools/upload-screenshots", + "travis/tools/upload-textfiles", + "travis/tools/wait-for-port" + ], + "type": "behat-extension", + "autoload": { + "psr-4": { + "Lakion\\Behat\\MinkDebugExtension\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kamil Kokot", + "email": "kamil@kokot.me", + "homepage": "http://kamil.kokot.me" + } + ], + "description": "Debug extension for Behat", + "homepage": "https://github.com/Lakion/MinkDebugExtension", + "keywords": [ + "Behat", + "Mink", + "debug", + "logging" + ], + "time": "2016-10-27T15:30:36+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.9.5", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef", + "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "replace": { + "myclabs/deep-copy": "self.version" + }, + "require-dev": { + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + }, + "files": [ + "src/DeepCopy/deep_copy.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "time": "2020-01-17T21:11:47+00:00" + }, + { + "name": "novaway/common-contexts", + "version": "2.3.2", + "source": { + "type": "git", + "url": "https://github.com/novaway/BehatCommonContext.git", + "reference": "b5349bd6a36c0e0ca71465a5349f8d68c1d1e102" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/novaway/BehatCommonContext/zipball/b5349bd6a36c0e0ca71465a5349f8d68c1d1e102", + "reference": "b5349bd6a36c0e0ca71465a5349f8d68c1d1e102", + "shasum": "" + }, + "require": { + "behat/behat": "~3.0", + "behat/mink-extension": "~2.0", + "php": ">=5.4.0" + }, + "require-dev": { + "behat/mink-goutte-driver": "~1.1", + "behat/mink-selenium2-driver": "~1.2", + "kherge/box": "~2.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Novaway\\CommonContexts\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jérémy DECOOL" + } + ], + "description": "Novaway Behat common contexts", + "keywords": [ + "BDD", + "Behat", + "Context", + "select2", + "symfony" + ], + "time": "2017-12-20T06:07:51+00:00" + }, + { + "name": "phar-io/manifest", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "phar-io/version": "^2.0", + "php": "^5.6 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "time": "2018-07-08T19:23:20+00:00" + }, + { + "name": "phar-io/version", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "time": "2018-07-08T19:19:57+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a", + "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "~6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "time": "2018-08-07T13:53:10+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.0.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "a48807183a4b819072f26e347bbd0b5199a9d15f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/a48807183a4b819072f26e347bbd0b5199a9d15f", + "reference": "a48807183a4b819072f26e347bbd0b5199a9d15f", + "shasum": "" + }, + "require": { + "ext-filter": "^7.1", + "php": "^7.2", + "phpdocumentor/reflection-common": "^2.0", + "phpdocumentor/type-resolver": "^1.0", + "webmozart/assert": "^1" + }, + "require-dev": { + "doctrine/instantiator": "^1", + "mockery/mockery": "^1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "time": "2020-02-09T09:16:15+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", + "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", + "shasum": "" + }, + "require": { + "php": "^7.1", + "phpdocumentor/reflection-common": "^2.0" + }, + "require-dev": { + "ext-tokenizer": "^7.1", + "mockery/mockery": "~1", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "time": "2019-08-22T18:11:29+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "v1.10.2", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/b4400efc9d206e83138e2bb97ed7f5b14b831cd9", + "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "php": "^5.3|^7.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", + "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" + }, + "require-dev": { + "phpspec/phpspec": "^2.5 || ^3.2", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10.x-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\": "src/Prophecy" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "time": "2020-01-20T15:57:02+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "7.0.10", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "f1884187926fbb755a9aaf0b3836ad3165b478bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f1884187926fbb755a9aaf0b3836ad3165b478bf", + "reference": "f1884187926fbb755a9aaf0b3836ad3165b478bf", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": "^7.2", + "phpunit/php-file-iterator": "^2.0.2", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-token-stream": "^3.1.1", + "sebastian/code-unit-reverse-lookup": "^1.0.1", + "sebastian/environment": "^4.2.2", + "sebastian/version": "^2.0.1", + "theseer/tokenizer": "^1.1.3" + }, + "require-dev": { + "phpunit/phpunit": "^8.2.2" + }, + "suggest": { + "ext-xdebug": "^2.7.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "time": "2019-11-20T13:55:58+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "050bedf145a257b1ff02746c31894800e5122946" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", + "reference": "050bedf145a257b1ff02746c31894800e5122946", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "time": "2018-09-13T20:33:42+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2015-06-21T13:50:34+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "2.1.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", + "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2019-06-07T04:22:29+00:00" + }, + { + "name": "phpunit/php-token-stream", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff", + "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "time": "2019-09-17T06:23:10+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "8.5.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "018b6ac3c8ab20916db85fa91bf6465acb64d1e0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/018b6ac3c8ab20916db85fa91bf6465acb64d1e0", + "reference": "018b6ac3c8ab20916db85fa91bf6465acb64d1e0", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.2.0", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.9.1", + "phar-io/manifest": "^1.0.3", + "phar-io/version": "^2.0.1", + "php": "^7.2", + "phpspec/prophecy": "^1.8.1", + "phpunit/php-code-coverage": "^7.0.7", + "phpunit/php-file-iterator": "^2.0.2", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-timer": "^2.1.2", + "sebastian/comparator": "^3.0.2", + "sebastian/diff": "^3.0.2", + "sebastian/environment": "^4.2.2", + "sebastian/exporter": "^3.1.1", + "sebastian/global-state": "^3.0.0", + "sebastian/object-enumerator": "^3.0.3", + "sebastian/resource-operations": "^2.0.1", + "sebastian/type": "^1.1.3", + "sebastian/version": "^2.0.1" + }, + "require-dev": { + "ext-pdo": "*" + }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*", + "phpunit/php-invoker": "^2.0.0" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "8.5-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "time": "2020-01-08T08:49:49+00:00" + }, + { + "name": "se/selenium-server-standalone", + "version": "v2.53.1", + "source": { + "type": "git", + "url": "https://github.com/sveneisenschmidt/selenium-server-standalone.git", + "reference": "ef4eea9c99efb9c0e3084e9cae625662ccd43361" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sveneisenschmidt/selenium-server-standalone/zipball/ef4eea9c99efb9c0e3084e9cae625662ccd43361", + "reference": "ef4eea9c99efb9c0e3084e9cae625662ccd43361", + "shasum": "" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "bin": [ + "bin/selenium-server-standalone" + ], + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache 2.0" + ], + "authors": [ + { + "name": "Sven Eisenschmidt", + "email": "sven.eisenschmidt@gmail.com" + } + ], + "description": "Composer distribution of Selenium Server Standalone, the browser automation framework. Adds a executable to your composer bin directory.", + "homepage": "https://github.com/sveneisenschmidt/selenium-server-standalone", + "keywords": [ + "selenium", + "testing" + ], + "time": "2016-07-01T14:16:52+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7 || ^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "time": "2017-03-04T06:30:41+00:00" + }, + { + "name": "sebastian/comparator", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "shasum": "" + }, + "require": { + "php": "^7.1", + "sebastian/diff": "^3.0", + "sebastian/exporter": "^3.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "time": "2018-07-12T15:12:46+00:00" + }, + { + "name": "sebastian/diff", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.5 || ^8.0", + "symfony/process": "^2 || ^3.3 || ^4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "time": "2019-02-04T06:01:07+00:00" + }, + { + "name": "sebastian/environment", + "version": "4.2.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/464c90d7bdf5ad4e8a6aea15c091fec0603d4368", + "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.5" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "time": "2019-11-20T08:46:58+00:00" + }, + { + "name": "sebastian/exporter", + "version": "3.1.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", + "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", + "shasum": "" + }, + "require": { + "php": "^7.0", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "time": "2019-09-14T09:02:43+00:00" + }, + { + "name": "sebastian/global-state", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", + "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", + "shasum": "" + }, + "require": { + "php": "^7.2", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^8.0" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "time": "2019-02-01T05:30:01+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "shasum": "" + }, + "require": { + "php": "^7.0", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "time": "2017-08-03T12:35:26+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "773f97c67f28de00d397be301821b06708fca0be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", + "reference": "773f97c67f28de00d397be301821b06708fca0be", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "time": "2017-03-29T09:07:27+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "time": "2017-03-03T06:23:57+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "time": "2018-10-04T04:07:39+00:00" + }, + { + "name": "sebastian/type", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/3aaaa15fa71d27650d62a948be022fe3b48541a3", + "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3", + "shasum": "" + }, + "require": { + "php": "^7.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "time": "2019-07-02T08:10:15+00:00" + }, + { + "name": "symfony/browser-kit", + "version": "v4.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/browser-kit.git", + "reference": "45cae6dd8683d2de56df7ec23638e9429c70135f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/45cae6dd8683d2de56df7ec23638e9429c70135f", + "reference": "45cae6dd8683d2de56df7ec23638e9429c70135f", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/dom-crawler": "^3.4|^4.0|^5.0" + }, + "require-dev": { + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/http-client": "^4.3|^5.0", + "symfony/mime": "^4.3|^5.0", + "symfony/process": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\BrowserKit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony BrowserKit Component", + "homepage": "https://symfony.com", + "time": "2020-01-04T13:00:46+00:00" + }, + { + "name": "symfony/config", + "version": "v4.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "4d3979f54472637169080f802dc82197e21fdcce" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/4d3979f54472637169080f802dc82197e21fdcce", + "reference": "4d3979f54472637169080f802dc82197e21fdcce", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/filesystem": "^3.4|^4.0|^5.0", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/finder": "<3.4" + }, + "require-dev": { + "symfony/event-dispatcher": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/messenger": "^4.1|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Config Component", + "homepage": "https://symfony.com", + "time": "2020-01-04T13:00:46+00:00" + }, + { + "name": "symfony/css-selector", + "version": "v3.4.37", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "e1b3e1a0621d6e48ee46092b4c7d8280f746b3c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/e1b3e1a0621d6e48ee46092b4c7d8280f746b3c5", + "reference": "e1b3e1a0621d6e48ee46092b4c7d8280f746b3c5", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony CssSelector Component", + "homepage": "https://symfony.com", + "time": "2020-01-01T11:03:25+00:00" + }, + { + "name": "symfony/dependency-injection", + "version": "v4.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "ec60a7d12f5e8ab0f99456adce724717d9c1784a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/ec60a7d12f5e8ab0f99456adce724717d9c1784a", + "reference": "ec60a7d12f5e8ab0f99456adce724717d9c1784a", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "psr/container": "^1.0", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/config": "<4.3|>=5.0", + "symfony/finder": "<3.4", + "symfony/proxy-manager-bridge": "<3.4", + "symfony/yaml": "<3.4" + }, + "provide": { + "psr/container-implementation": "1.0", + "symfony/service-implementation": "1.0" + }, + "require-dev": { + "symfony/config": "^4.3", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony DependencyInjection Component", + "homepage": "https://symfony.com", + "time": "2020-01-31T09:49:27+00:00" + }, + { + "name": "symfony/dom-crawler", + "version": "v4.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "b66fe8ccc850ea11c4cd31677706c1219768bea1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/b66fe8ccc850ea11c4cd31677706c1219768bea1", + "reference": "b66fe8ccc850ea11c4cd31677706c1219768bea1", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "masterminds/html5": "<2.6" + }, + "require-dev": { + "masterminds/html5": "^2.6", + "symfony/css-selector": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/css-selector": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\DomCrawler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony DomCrawler Component", + "homepage": "https://symfony.com", + "time": "2020-01-04T13:00:46+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v4.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "9e3de195e5bc301704dd6915df55892f6dfc208b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9e3de195e5bc301704dd6915df55892f6dfc208b", + "reference": "9e3de195e5bc301704dd6915df55892f6dfc208b", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/event-dispatcher-contracts": "^1.1" + }, + "conflict": { + "symfony/dependency-injection": "<3.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "1.1" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/stopwatch": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony EventDispatcher Component", + "homepage": "https://symfony.com", + "time": "2020-01-10T21:54:01+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v1.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c43ab685673fb6c8d84220c77897b1d6cdbe1d18", + "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "suggest": { + "psr/event-dispatcher": "", + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-09-17T09:54:03+00:00" + }, + { + "name": "symfony/translation", + "version": "v4.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "f5d2ac46930238b30a9c2f1b17c905f3697d808c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/f5d2ac46930238b30a9c2f1b17c905f3697d808c", + "reference": "f5d2ac46930238b30a9c2f1b17c905f3697d808c", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/config": "<3.4", + "symfony/dependency-injection": "<3.4", + "symfony/http-kernel": "<4.4", + "symfony/yaml": "<3.4" + }, + "provide": { + "symfony/translation-implementation": "1.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/finder": "~2.8|~3.0|~4.0|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/intl": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1.2|^2", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "psr/log-implementation": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Translation Component", + "homepage": "https://symfony.com", + "time": "2020-01-15T13:29:06+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "8cc682ac458d75557203b2f2f14b0b92e1c744ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/8cc682ac458d75557203b2f2f14b0b92e1c744ed", + "reference": "8cc682ac458d75557203b2f2f14b0b92e1c744ed", + "shasum": "" + }, + "require": { + "php": "^7.2.5" + }, + "suggest": { + "symfony/translation-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-11-18T17:27:11+00:00" + }, + { + "name": "symfony/yaml", + "version": "v5.0.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "69b44e3b8f90949aee2eb3aa9b86ceeb01cbf62a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/69b44e3b8f90949aee2eb3aa9b86ceeb01cbf62a", + "reference": "69b44e3b8f90949aee2eb3aa9b86ceeb01cbf62a", + "shasum": "" + }, + "require": { + "php": "^7.2.5", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<4.4" + }, + "require-dev": { + "symfony/console": "^4.4|^5.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Yaml Component", + "homepage": "https://symfony.com", + "time": "2020-01-21T11:12:28+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", + "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "time": "2019-06-13T22:48:21+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.7.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "aed98a490f9a8f78468232db345ab9cf606cf598" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/aed98a490f9a8f78468232db345ab9cf606cf598", + "reference": "aed98a490f9a8f78468232db345ab9cf606cf598", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "vimeo/psalm": "<3.6.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36 || ^7.5.13" + }, + "type": "library", + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "time": "2020-02-14T12:15:55+00:00" + }, + { + "name": "yawik/behat", + "version": "v0.34.0", + "source": { + "type": "git", + "url": "https://github.com/yawik/behat.git", + "reference": "926530c3995b0361fb12eb172d148bcc5a60455f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yawik/behat/zipball/926530c3995b0361fb12eb172d148bcc5a60455f", + "reference": "926530c3995b0361fb12eb172d148bcc5a60455f", + "shasum": "" + }, + "require": { + "behat/behat": "^3.2", + "behat/mink": "^1.7", + "behat/mink-browserkit-driver": "^1.3", + "behat/mink-extension": "^2.3", + "behat/mink-selenium2-driver": "^1.3", + "enm1989/chromedriver": "~2.35", + "lakion/mink-debug-extension": "^1.2.3", + "novaway/common-contexts": "~2.0", + "se/selenium-server-standalone": "^2.52" + }, + "bin": [ + "bin/imgur-uploader", + "bin/start-selenium" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-develop": "0.33-dev", + "dev-master": "0.32-dev" + } + }, + "autoload": { + "psr-4": { + "Yawik\\Behat\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mathias Gelhausen", + "email": "gelhausen@cross-solution.de" + }, + { + "name": "Carsten Bleek", + "email": "bleek@cross-solution.de" + }, + { + "name": "Anthonius Munthi", + "email": "me@itstoni.com" + } + ], + "description": "This package provide a Behat tests utility for yawik", + "keywords": [ + "Behat", + "module", + "yawik", + "zf3" + ], + "time": "2020-02-17T19:11:37+00:00" + } + ], + "aliases": [], + "minimum-stability": "dev", + "stability-flags": [], + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "php": ">=7.2", + "ext-solr": ">=2.4" + }, + "platform-dev": [], + "platform-overrides": { + "ext-mongo": "1.6.16" + } +} diff --git a/package-lock.json b/package-lock.json index eafd0c5..08cd88c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2126,12 +2126,6 @@ "qs": "^6.4.0" } }, - "tinymce": { - "version": "4.5.9", - "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-4.5.9.tgz", - "integrity": "sha512-W1mf5AxNgu5G2m9p15MI6UpiohEGgC9JRq186sEUcbg6G0fhgVsf8AoBUYURp+HgXLRKJEMzKI4sbQplds88og==", - "dev": true - }, "tough-cookie": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", @@ -2319,7 +2313,6 @@ "jquery-migrate": "^3.0.1", "pnotify": "^3.0.0", "select2": "^4.0.3", - "tinymce": "^4.9.8", "twitter-bootstrap-wizard": "^1.2.0" }, "dependencies": { diff --git a/src/Module.php b/src/Module.php index 3299d15..44d064c 100644 --- a/src/Module.php +++ b/src/Module.php @@ -26,7 +26,7 @@ class Module implements ConsoleUsageProviderInterface,VersionProviderInterface { use VersionProviderTrait; - const VERSION = '0.8.2'; + const VERSION = '0.9.0'; public function getConsoleUsage(AdapterInterface $console) {