Merge branch 'master' into CellAddress-object
This commit is contained in:
commit
3becd5696a
|
|
@ -951,29 +951,30 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "doctrine/instantiator",
|
"name": "doctrine/instantiator",
|
||||||
"version": "1.4.0",
|
"version": "1.4.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/doctrine/instantiator.git",
|
"url": "https://github.com/doctrine/instantiator.git",
|
||||||
"reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b"
|
"reference": "10dcfce151b967d20fde1b34ae6640712c3891bc"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b",
|
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc",
|
||||||
"reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b",
|
"reference": "10dcfce151b967d20fde1b34ae6640712c3891bc",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.1 || ^8.0"
|
"php": "^7.1 || ^8.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/coding-standard": "^8.0",
|
"doctrine/coding-standard": "^9",
|
||||||
"ext-pdo": "*",
|
"ext-pdo": "*",
|
||||||
"ext-phar": "*",
|
"ext-phar": "*",
|
||||||
"phpbench/phpbench": "^0.13 || 1.0.0-alpha2",
|
"phpbench/phpbench": "^0.16 || ^1",
|
||||||
"phpstan/phpstan": "^0.12",
|
"phpstan/phpstan": "^1.4",
|
||||||
"phpstan/phpstan-phpunit": "^0.12",
|
"phpstan/phpstan-phpunit": "^1",
|
||||||
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
|
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
|
||||||
|
"vimeo/psalm": "^4.22"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
|
@ -1000,7 +1001,7 @@
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/doctrine/instantiator/issues",
|
"issues": "https://github.com/doctrine/instantiator/issues",
|
||||||
"source": "https://github.com/doctrine/instantiator/tree/1.4.0"
|
"source": "https://github.com/doctrine/instantiator/tree/1.4.1"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
|
@ -1016,7 +1017,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2020-11-10T18:47:58+00:00"
|
"time": "2022-03-03T08:28:38+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "doctrine/lexer",
|
"name": "doctrine/lexer",
|
||||||
|
|
@ -1100,16 +1101,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "dompdf/dompdf",
|
"name": "dompdf/dompdf",
|
||||||
"version": "v1.2.0",
|
"version": "v1.2.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/dompdf/dompdf.git",
|
"url": "https://github.com/dompdf/dompdf.git",
|
||||||
"reference": "60b704331479a69e9bcdb3496da2315b5c4f94fd"
|
"reference": "c6dfd9bb8b0040609f04754f729d4cb3016e0575"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/dompdf/dompdf/zipball/60b704331479a69e9bcdb3496da2315b5c4f94fd",
|
"url": "https://api.github.com/repos/dompdf/dompdf/zipball/c6dfd9bb8b0040609f04754f729d4cb3016e0575",
|
||||||
"reference": "60b704331479a69e9bcdb3496da2315b5c4f94fd",
|
"reference": "c6dfd9bb8b0040609f04754f729d4cb3016e0575",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
|
@ -1161,9 +1162,9 @@
|
||||||
"homepage": "https://github.com/dompdf/dompdf",
|
"homepage": "https://github.com/dompdf/dompdf",
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/dompdf/dompdf/issues",
|
"issues": "https://github.com/dompdf/dompdf/issues",
|
||||||
"source": "https://github.com/dompdf/dompdf/tree/v1.2.0"
|
"source": "https://github.com/dompdf/dompdf/tree/v1.2.1"
|
||||||
},
|
},
|
||||||
"time": "2022-02-07T13:02:10+00:00"
|
"time": "2022-03-24T12:57:42+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "friendsofphp/php-cs-fixer",
|
"name": "friendsofphp/php-cs-fixer",
|
||||||
|
|
@ -1376,25 +1377,29 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "myclabs/deep-copy",
|
"name": "myclabs/deep-copy",
|
||||||
"version": "1.10.2",
|
"version": "1.11.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/myclabs/DeepCopy.git",
|
"url": "https://github.com/myclabs/DeepCopy.git",
|
||||||
"reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220"
|
"reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220",
|
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614",
|
||||||
"reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220",
|
"reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.1 || ^8.0"
|
"php": "^7.1 || ^8.0"
|
||||||
},
|
},
|
||||||
|
"conflict": {
|
||||||
|
"doctrine/collections": "<1.6.8",
|
||||||
|
"doctrine/common": "<2.13.3 || >=3,<3.2.2"
|
||||||
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/collections": "^1.0",
|
"doctrine/collections": "^1.6.8",
|
||||||
"doctrine/common": "^2.6",
|
"doctrine/common": "^2.13.3 || ^3.2.2",
|
||||||
"phpunit/phpunit": "^7.1"
|
"phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
|
@ -1419,7 +1424,7 @@
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/myclabs/DeepCopy/issues",
|
"issues": "https://github.com/myclabs/DeepCopy/issues",
|
||||||
"source": "https://github.com/myclabs/DeepCopy/tree/1.10.2"
|
"source": "https://github.com/myclabs/DeepCopy/tree/1.11.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
|
@ -1427,7 +1432,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2020-11-13T09:40:50+00:00"
|
"time": "2022-03-03T13:19:32+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "nikic/php-parser",
|
"name": "nikic/php-parser",
|
||||||
|
|
@ -1692,23 +1697,25 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phenx/php-svg-lib",
|
"name": "phenx/php-svg-lib",
|
||||||
"version": "v0.3.3",
|
"version": "0.4.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/PhenX/php-svg-lib.git",
|
"url": "https://github.com/dompdf/php-svg-lib.git",
|
||||||
"reference": "5fa61b65e612ce1ae15f69b3d223cb14ecc60e32"
|
"reference": "4498b5df7b08e8469f0f8279651ea5de9626ed02"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/PhenX/php-svg-lib/zipball/5fa61b65e612ce1ae15f69b3d223cb14ecc60e32",
|
"url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/4498b5df7b08e8469f0f8279651ea5de9626ed02",
|
||||||
"reference": "5fa61b65e612ce1ae15f69b3d223cb14ecc60e32",
|
"reference": "4498b5df7b08e8469f0f8279651ea5de9626ed02",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"sabberworm/php-css-parser": "^8.3"
|
"ext-mbstring": "*",
|
||||||
|
"php": "^7.1 || ^7.2 || ^7.3 || ^7.4 || ^8.0",
|
||||||
|
"sabberworm/php-css-parser": "^8.4"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpunit/phpunit": "^5.5|^6.5"
|
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
|
@ -1729,10 +1736,10 @@
|
||||||
"description": "A library to read, parse and export to PDF SVG files.",
|
"description": "A library to read, parse and export to PDF SVG files.",
|
||||||
"homepage": "https://github.com/PhenX/php-svg-lib",
|
"homepage": "https://github.com/PhenX/php-svg-lib",
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/PhenX/php-svg-lib/issues",
|
"issues": "https://github.com/dompdf/php-svg-lib/issues",
|
||||||
"source": "https://github.com/PhenX/php-svg-lib/tree/master"
|
"source": "https://github.com/dompdf/php-svg-lib/tree/0.4.1"
|
||||||
},
|
},
|
||||||
"time": "2019-09-11T20:02:13+00:00"
|
"time": "2022-03-07T12:52:04+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "php-cs-fixer/diff",
|
"name": "php-cs-fixer/diff",
|
||||||
|
|
@ -1960,16 +1967,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpdocumentor/type-resolver",
|
"name": "phpdocumentor/type-resolver",
|
||||||
"version": "1.6.0",
|
"version": "1.6.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/phpDocumentor/TypeResolver.git",
|
"url": "https://github.com/phpDocumentor/TypeResolver.git",
|
||||||
"reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706"
|
"reference": "77a32518733312af16a44300404e945338981de3"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/93ebd0014cab80c4ea9f5e297ea48672f1b87706",
|
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3",
|
||||||
"reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706",
|
"reference": "77a32518733312af16a44300404e945338981de3",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
|
@ -2004,9 +2011,9 @@
|
||||||
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
|
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/phpDocumentor/TypeResolver/issues",
|
"issues": "https://github.com/phpDocumentor/TypeResolver/issues",
|
||||||
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.0"
|
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1"
|
||||||
},
|
},
|
||||||
"time": "2022-01-04T19:58:01+00:00"
|
"time": "2022-03-15T21:29:03+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpspec/prophecy",
|
"name": "phpspec/prophecy",
|
||||||
|
|
@ -2077,20 +2084,20 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpstan/phpstan",
|
"name": "phpstan/phpstan",
|
||||||
"version": "1.4.6",
|
"version": "1.5.4",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/phpstan/phpstan.git",
|
"url": "https://github.com/phpstan/phpstan.git",
|
||||||
"reference": "8a7761f1c520e0dad6e04d862fdc697445457cfe"
|
"reference": "bbf68cae24f6dc023c607ea0f87da55dd9d55c2b"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/8a7761f1c520e0dad6e04d862fdc697445457cfe",
|
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/bbf68cae24f6dc023c607ea0f87da55dd9d55c2b",
|
||||||
"reference": "8a7761f1c520e0dad6e04d862fdc697445457cfe",
|
"reference": "bbf68cae24f6dc023c607ea0f87da55dd9d55c2b",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.1|^8.0"
|
"php": "^7.2|^8.0"
|
||||||
},
|
},
|
||||||
"conflict": {
|
"conflict": {
|
||||||
"phpstan/phpstan-shim": "*"
|
"phpstan/phpstan-shim": "*"
|
||||||
|
|
@ -2100,11 +2107,6 @@
|
||||||
"phpstan.phar"
|
"phpstan.phar"
|
||||||
],
|
],
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.4-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"files": [
|
"files": [
|
||||||
"bootstrap.php"
|
"bootstrap.php"
|
||||||
|
|
@ -2117,7 +2119,7 @@
|
||||||
"description": "PHPStan - PHP Static Analysis Tool",
|
"description": "PHPStan - PHP Static Analysis Tool",
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/phpstan/phpstan/issues",
|
"issues": "https://github.com/phpstan/phpstan/issues",
|
||||||
"source": "https://github.com/phpstan/phpstan/tree/1.4.6"
|
"source": "https://github.com/phpstan/phpstan/tree/1.5.4"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
|
@ -2137,25 +2139,25 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-02-06T12:56:13+00:00"
|
"time": "2022-04-03T12:39:00+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpstan/phpstan-phpunit",
|
"name": "phpstan/phpstan-phpunit",
|
||||||
"version": "1.0.0",
|
"version": "1.1.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/phpstan/phpstan-phpunit.git",
|
"url": "https://github.com/phpstan/phpstan-phpunit.git",
|
||||||
"reference": "9eb88c9f689003a8a2a5ae9e010338ee94dc39b3"
|
"reference": "09133ce914f1388a8bb8c7f8573aaa3723cff52a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/9eb88c9f689003a8a2a5ae9e010338ee94dc39b3",
|
"url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/09133ce914f1388a8bb8c7f8573aaa3723cff52a",
|
||||||
"reference": "9eb88c9f689003a8a2a5ae9e010338ee94dc39b3",
|
"reference": "09133ce914f1388a8bb8c7f8573aaa3723cff52a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.1 || ^8.0",
|
"php": "^7.2 || ^8.0",
|
||||||
"phpstan/phpstan": "^1.0"
|
"phpstan/phpstan": "^1.5.0"
|
||||||
},
|
},
|
||||||
"conflict": {
|
"conflict": {
|
||||||
"phpunit/phpunit": "<7.0"
|
"phpunit/phpunit": "<7.0"
|
||||||
|
|
@ -2168,9 +2170,6 @@
|
||||||
},
|
},
|
||||||
"type": "phpstan-extension",
|
"type": "phpstan-extension",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.0-dev"
|
|
||||||
},
|
|
||||||
"phpstan": {
|
"phpstan": {
|
||||||
"includes": [
|
"includes": [
|
||||||
"extension.neon",
|
"extension.neon",
|
||||||
|
|
@ -2190,22 +2189,22 @@
|
||||||
"description": "PHPUnit extensions and rules for PHPStan",
|
"description": "PHPUnit extensions and rules for PHPStan",
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/phpstan/phpstan-phpunit/issues",
|
"issues": "https://github.com/phpstan/phpstan-phpunit/issues",
|
||||||
"source": "https://github.com/phpstan/phpstan-phpunit/tree/1.0.0"
|
"source": "https://github.com/phpstan/phpstan-phpunit/tree/1.1.0"
|
||||||
},
|
},
|
||||||
"time": "2021-10-14T08:03:54+00:00"
|
"time": "2022-03-28T09:20:49+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/php-code-coverage",
|
"name": "phpunit/php-code-coverage",
|
||||||
"version": "9.2.14",
|
"version": "9.2.15",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
||||||
"reference": "9f4d60b6afe5546421462b76cd4e633ebc364ab4"
|
"reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/9f4d60b6afe5546421462b76cd4e633ebc364ab4",
|
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2e9da11878c4202f97915c1cb4bb1ca318a63f5f",
|
||||||
"reference": "9f4d60b6afe5546421462b76cd4e633ebc364ab4",
|
"reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
|
@ -2261,7 +2260,7 @@
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
|
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
|
||||||
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.14"
|
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.15"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
|
@ -2269,7 +2268,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-02-28T12:38:02+00:00"
|
"time": "2022-03-07T09:28:20+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/php-file-iterator",
|
"name": "phpunit/php-file-iterator",
|
||||||
|
|
@ -2514,16 +2513,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/phpunit",
|
"name": "phpunit/phpunit",
|
||||||
"version": "9.5.16",
|
"version": "9.5.20",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||||
"reference": "5ff8c545a50226c569310a35f4fa89d79f1ddfdc"
|
"reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5ff8c545a50226c569310a35f4fa89d79f1ddfdc",
|
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/12bc8879fb65aef2138b26fc633cb1e3620cffba",
|
||||||
"reference": "5ff8c545a50226c569310a35f4fa89d79f1ddfdc",
|
"reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
|
@ -2553,7 +2552,7 @@
|
||||||
"sebastian/global-state": "^5.0.1",
|
"sebastian/global-state": "^5.0.1",
|
||||||
"sebastian/object-enumerator": "^4.0.3",
|
"sebastian/object-enumerator": "^4.0.3",
|
||||||
"sebastian/resource-operations": "^3.0.3",
|
"sebastian/resource-operations": "^3.0.3",
|
||||||
"sebastian/type": "^2.3.4",
|
"sebastian/type": "^3.0",
|
||||||
"sebastian/version": "^3.0.2"
|
"sebastian/version": "^3.0.2"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
|
|
@ -2601,7 +2600,7 @@
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
||||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.16"
|
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.20"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
|
@ -2613,7 +2612,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-02-23T17:10:58+00:00"
|
"time": "2022-04-01T12:37:26+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "psr/cache",
|
"name": "psr/cache",
|
||||||
|
|
@ -3231,16 +3230,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/environment",
|
"name": "sebastian/environment",
|
||||||
"version": "5.1.3",
|
"version": "5.1.4",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/environment.git",
|
"url": "https://github.com/sebastianbergmann/environment.git",
|
||||||
"reference": "388b6ced16caa751030f6a69e588299fa09200ac"
|
"reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac",
|
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7",
|
||||||
"reference": "388b6ced16caa751030f6a69e588299fa09200ac",
|
"reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
|
@ -3282,7 +3281,7 @@
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/sebastianbergmann/environment/issues",
|
"issues": "https://github.com/sebastianbergmann/environment/issues",
|
||||||
"source": "https://github.com/sebastianbergmann/environment/tree/5.1.3"
|
"source": "https://github.com/sebastianbergmann/environment/tree/5.1.4"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
|
@ -3290,7 +3289,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2020-09-28T05:52:38+00:00"
|
"time": "2022-04-03T09:37:03+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/exporter",
|
"name": "sebastian/exporter",
|
||||||
|
|
@ -3722,28 +3721,28 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/type",
|
"name": "sebastian/type",
|
||||||
"version": "2.3.4",
|
"version": "3.0.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/type.git",
|
"url": "https://github.com/sebastianbergmann/type.git",
|
||||||
"reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914"
|
"reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b8cd8a1c753c90bc1a0f5372170e3e489136f914",
|
"url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b233b84bc4465aff7b57cf1c4bc75c86d00d6dad",
|
||||||
"reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914",
|
"reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.3"
|
"php": ">=7.3"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpunit/phpunit": "^9.3"
|
"phpunit/phpunit": "^9.5"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "2.3-dev"
|
"dev-master": "3.0-dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
|
@ -3766,7 +3765,7 @@
|
||||||
"homepage": "https://github.com/sebastianbergmann/type",
|
"homepage": "https://github.com/sebastianbergmann/type",
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/sebastianbergmann/type/issues",
|
"issues": "https://github.com/sebastianbergmann/type/issues",
|
||||||
"source": "https://github.com/sebastianbergmann/type/tree/2.3.4"
|
"source": "https://github.com/sebastianbergmann/type/tree/3.0.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
|
@ -3774,7 +3773,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2021-06-15T12:49:02+00:00"
|
"time": "2022-03-15T09:54:48+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/version",
|
"name": "sebastian/version",
|
||||||
|
|
@ -4485,7 +4484,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-ctype",
|
"name": "symfony/polyfill-ctype",
|
||||||
"version": "v1.24.0",
|
"version": "v1.25.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-ctype.git",
|
"url": "https://github.com/symfony/polyfill-ctype.git",
|
||||||
|
|
@ -4547,7 +4546,7 @@
|
||||||
"portable"
|
"portable"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0"
|
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
|
@ -5469,5 +5468,5 @@
|
||||||
"ext-zlib": "*"
|
"ext-zlib": "*"
|
||||||
},
|
},
|
||||||
"platform-dev": [],
|
"platform-dev": [],
|
||||||
"plugin-api-version": "2.2.0"
|
"plugin-api-version": "2.3.0"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -340,11 +340,6 @@ parameters:
|
||||||
count: 1
|
count: 1
|
||||||
path: src/PhpSpreadsheet/Calculation/Engineering/BesselJ.php
|
path: src/PhpSpreadsheet/Calculation/Engineering/BesselJ.php
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Method PhpOffice\\\\PhpSpreadsheet\\\\Calculation\\\\Engineering\\\\BesselK\\:\\:besselK2\\(\\) has no return type specified\\.$#"
|
|
||||||
count: 1
|
|
||||||
path: src/PhpSpreadsheet/Calculation/Engineering/BesselK.php
|
|
||||||
|
|
||||||
-
|
-
|
||||||
message: "#^Method PhpOffice\\\\PhpSpreadsheet\\\\Calculation\\\\Engineering\\\\ConvertBase\\:\\:validatePlaces\\(\\) has parameter \\$places with no type specified\\.$#"
|
message: "#^Method PhpOffice\\\\PhpSpreadsheet\\\\Calculation\\\\Engineering\\\\ConvertBase\\:\\:validatePlaces\\(\\) has parameter \\$places with no type specified\\.$#"
|
||||||
count: 1
|
count: 1
|
||||||
|
|
@ -2070,11 +2065,6 @@ parameters:
|
||||||
count: 1
|
count: 1
|
||||||
path: src/PhpSpreadsheet/Reader/Ods.php
|
path: src/PhpSpreadsheet/Reader/Ods.php
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^If condition is always true\\.$#"
|
|
||||||
count: 1
|
|
||||||
path: src/PhpSpreadsheet/Reader/Ods.php
|
|
||||||
|
|
||||||
-
|
-
|
||||||
message: "#^Method PhpOffice\\\\PhpSpreadsheet\\\\Reader\\\\Ods\\:\\:listWorksheetNames\\(\\) should return array\\<string\\> but returns array\\<int, string\\|null\\>\\.$#"
|
message: "#^Method PhpOffice\\\\PhpSpreadsheet\\\\Reader\\\\Ods\\:\\:listWorksheetNames\\(\\) should return array\\<string\\> but returns array\\<int, string\\|null\\>\\.$#"
|
||||||
count: 1
|
count: 1
|
||||||
|
|
@ -2095,11 +2085,6 @@ parameters:
|
||||||
count: 1
|
count: 1
|
||||||
path: src/PhpSpreadsheet/Reader/Ods.php
|
path: src/PhpSpreadsheet/Reader/Ods.php
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^While loop condition is always true\\.$#"
|
|
||||||
count: 2
|
|
||||||
path: src/PhpSpreadsheet/Reader/Ods.php
|
|
||||||
|
|
||||||
-
|
-
|
||||||
message: "#^Cannot call method getElementsByTagNameNS\\(\\) on DOMElement\\|null\\.$#"
|
message: "#^Cannot call method getElementsByTagNameNS\\(\\) on DOMElement\\|null\\.$#"
|
||||||
count: 3
|
count: 3
|
||||||
|
|
@ -3880,11 +3865,6 @@ parameters:
|
||||||
count: 1
|
count: 1
|
||||||
path: src/PhpSpreadsheet/Shared/Trend/Trend.php
|
path: src/PhpSpreadsheet/Shared/Trend/Trend.php
|
||||||
|
|
||||||
-
|
|
||||||
message: "#^Parameter \\#1 \\$order of class PhpOffice\\\\PhpSpreadsheet\\\\Shared\\\\Trend\\\\PolynomialBestFit constructor expects int, string given\\.$#"
|
|
||||||
count: 2
|
|
||||||
path: src/PhpSpreadsheet/Shared/Trend/Trend.php
|
|
||||||
|
|
||||||
-
|
-
|
||||||
message: "#^Method PhpOffice\\\\PhpSpreadsheet\\\\Shared\\\\XMLWriter\\:\\:getData\\(\\) should return string but returns string\\|false\\.$#"
|
message: "#^Method PhpOffice\\\\PhpSpreadsheet\\\\Shared\\\\XMLWriter\\:\\:getData\\(\\) should return string but returns string\\|false\\.$#"
|
||||||
count: 1
|
count: 1
|
||||||
|
|
|
||||||
|
|
@ -68,13 +68,28 @@ class BesselK
|
||||||
return self::besselK2($x, $ord);
|
return self::besselK2($x, $ord);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mollify Phpstan.
|
||||||
|
*
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
*/
|
||||||
|
private static function callBesselI(float $x, int $ord): float
|
||||||
|
{
|
||||||
|
$rslt = BesselI::BESSELI($x, $ord);
|
||||||
|
if (!is_float($rslt)) {
|
||||||
|
throw new Exception('Unexpected array or string');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $rslt;
|
||||||
|
}
|
||||||
|
|
||||||
private static function besselK0(float $x): float
|
private static function besselK0(float $x): float
|
||||||
{
|
{
|
||||||
if ($x <= 2) {
|
if ($x <= 2) {
|
||||||
$fNum2 = $x * 0.5;
|
$fNum2 = $x * 0.5;
|
||||||
$y = ($fNum2 * $fNum2);
|
$y = ($fNum2 * $fNum2);
|
||||||
|
|
||||||
return -log($fNum2) * BesselI::BESSELI($x, 0) +
|
return -log($fNum2) * self::callBesselI($x, 0) +
|
||||||
(-0.57721566 + $y * (0.42278420 + $y * (0.23069756 + $y * (0.3488590e-1 + $y * (0.262698e-2 + $y *
|
(-0.57721566 + $y * (0.42278420 + $y * (0.23069756 + $y * (0.3488590e-1 + $y * (0.262698e-2 + $y *
|
||||||
(0.10750e-3 + $y * 0.74e-5))))));
|
(0.10750e-3 + $y * 0.74e-5))))));
|
||||||
}
|
}
|
||||||
|
|
@ -92,7 +107,7 @@ class BesselK
|
||||||
$fNum2 = $x * 0.5;
|
$fNum2 = $x * 0.5;
|
||||||
$y = ($fNum2 * $fNum2);
|
$y = ($fNum2 * $fNum2);
|
||||||
|
|
||||||
return log($fNum2) * BesselI::BESSELI($x, 1) +
|
return log($fNum2) * self::callBesselI($x, 1) +
|
||||||
(1 + $y * (0.15443144 + $y * (-0.67278579 + $y * (-0.18156897 + $y * (-0.1919402e-1 + $y *
|
(1 + $y * (0.15443144 + $y * (-0.67278579 + $y * (-0.18156897 + $y * (-0.1919402e-1 + $y *
|
||||||
(-0.110404e-2 + $y * (-0.4686e-4))))))) / $x;
|
(-0.110404e-2 + $y * (-0.4686e-4))))))) / $x;
|
||||||
}
|
}
|
||||||
|
|
@ -104,7 +119,7 @@ class BesselK
|
||||||
(0.325614e-2 + $y * (-0.68245e-3)))))));
|
(0.325614e-2 + $y * (-0.68245e-3)))))));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function besselK2(float $x, int $ord)
|
private static function besselK2(float $x, int $ord): float
|
||||||
{
|
{
|
||||||
$fTox = 2 / $x;
|
$fTox = 2 / $x;
|
||||||
$fBkm = self::besselK0($x);
|
$fBkm = self::besselK0($x);
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,21 @@ class BesselY
|
||||||
return self::besselY2($x, $ord);
|
return self::besselY2($x, $ord);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mollify Phpstan.
|
||||||
|
*
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
*/
|
||||||
|
private static function callBesselJ(float $x, int $ord): float
|
||||||
|
{
|
||||||
|
$rslt = BesselJ::BESSELJ($x, $ord);
|
||||||
|
if (!is_float($rslt)) {
|
||||||
|
throw new Exception('Unexpected array or string');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $rslt;
|
||||||
|
}
|
||||||
|
|
||||||
private static function besselY0(float $x): float
|
private static function besselY0(float $x): float
|
||||||
{
|
{
|
||||||
if ($x < 8.0) {
|
if ($x < 8.0) {
|
||||||
|
|
@ -75,7 +90,7 @@ class BesselY
|
||||||
$ans2 = 40076544269.0 + $y * (745249964.8 + $y * (7189466.438 + $y *
|
$ans2 = 40076544269.0 + $y * (745249964.8 + $y * (7189466.438 + $y *
|
||||||
(47447.26470 + $y * (226.1030244 + $y))));
|
(47447.26470 + $y * (226.1030244 + $y))));
|
||||||
|
|
||||||
return $ans1 / $ans2 + 0.636619772 * BesselJ::BESSELJ($x, 0) * log($x);
|
return $ans1 / $ans2 + 0.636619772 * self::callBesselJ($x, 0) * log($x);
|
||||||
}
|
}
|
||||||
|
|
||||||
$z = 8.0 / $x;
|
$z = 8.0 / $x;
|
||||||
|
|
@ -97,7 +112,7 @@ class BesselY
|
||||||
$ans2 = 0.2499580570e14 + $y * (0.4244419664e12 + $y * (0.3733650367e10 + $y * (0.2245904002e8 + $y *
|
$ans2 = 0.2499580570e14 + $y * (0.4244419664e12 + $y * (0.3733650367e10 + $y * (0.2245904002e8 + $y *
|
||||||
(0.1020426050e6 + $y * (0.3549632885e3 + $y)))));
|
(0.1020426050e6 + $y * (0.3549632885e3 + $y)))));
|
||||||
|
|
||||||
return ($ans1 / $ans2) + 0.636619772 * (BesselJ::BESSELJ($x, 1) * log($x) - 1 / $x);
|
return ($ans1 / $ans2) + 0.636619772 * (self::callBesselJ($x, 1) * log($x) - 1 / $x);
|
||||||
}
|
}
|
||||||
|
|
||||||
$z = 8.0 / $x;
|
$z = 8.0 / $x;
|
||||||
|
|
|
||||||
|
|
@ -70,10 +70,12 @@ class Amortization
|
||||||
return $e->getMessage();
|
return $e->getMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
$yearFrac = DateTimeExcel\YearFrac::fraction($purchased, $firstPeriod, $basis);
|
$yearFracx = DateTimeExcel\YearFrac::fraction($purchased, $firstPeriod, $basis);
|
||||||
if (is_string($yearFrac)) {
|
if (is_string($yearFracx)) {
|
||||||
return $yearFrac;
|
return $yearFracx;
|
||||||
}
|
}
|
||||||
|
/** @var float */
|
||||||
|
$yearFrac = $yearFracx;
|
||||||
|
|
||||||
$amortiseCoeff = self::getAmortizationCoefficient($rate);
|
$amortiseCoeff = self::getAmortizationCoefficient($rate);
|
||||||
|
|
||||||
|
|
@ -161,10 +163,12 @@ class Amortization
|
||||||
$fCostDelta = $cost - $salvage;
|
$fCostDelta = $cost - $salvage;
|
||||||
// Note, quirky variation for leap years on the YEARFRAC for this function
|
// Note, quirky variation for leap years on the YEARFRAC for this function
|
||||||
$purchasedYear = DateTimeExcel\DateParts::year($purchased);
|
$purchasedYear = DateTimeExcel\DateParts::year($purchased);
|
||||||
$yearFrac = DateTimeExcel\YearFrac::fraction($purchased, $firstPeriod, $basis);
|
$yearFracx = DateTimeExcel\YearFrac::fraction($purchased, $firstPeriod, $basis);
|
||||||
if (is_string($yearFrac)) {
|
if (is_string($yearFracx)) {
|
||||||
return $yearFrac;
|
return $yearFracx;
|
||||||
}
|
}
|
||||||
|
/** @var float */
|
||||||
|
$yearFrac = $yearFracx;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
($basis == FinancialConstants::BASIS_DAYS_PER_YEAR_ACTUAL) &&
|
($basis == FinancialConstants::BASIS_DAYS_PER_YEAR_ACTUAL) &&
|
||||||
|
|
|
||||||
|
|
@ -199,6 +199,7 @@ class Coupons
|
||||||
return $e->getMessage();
|
return $e->getMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @var int */
|
||||||
$daysPerYear = Helpers::daysPerYear(DateTimeExcel\DateParts::year($settlement), $basis);
|
$daysPerYear = Helpers::daysPerYear(DateTimeExcel\DateParts::year($settlement), $basis);
|
||||||
$next = self::couponFirstPeriodDate($settlement, $maturity, $frequency, self::PERIOD_DATE_NEXT);
|
$next = self::couponFirstPeriodDate($settlement, $maturity, $frequency, self::PERIOD_DATE_NEXT);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,9 @@ class Confidence
|
||||||
if (($alpha <= 0) || ($alpha >= 1) || ($stdDev <= 0) || ($size < 1)) {
|
if (($alpha <= 0) || ($alpha >= 1) || ($stdDev <= 0) || ($size < 1)) {
|
||||||
return ExcelError::NAN();
|
return ExcelError::NAN();
|
||||||
}
|
}
|
||||||
|
/** @var float */
|
||||||
|
$temp = Distributions\StandardNormal::inverse(1 - $alpha / 2);
|
||||||
|
|
||||||
return Functions::scalar(Distributions\StandardNormal::inverse(1 - $alpha / 2) * $stdDev / sqrt($size));
|
return Functions::scalar($temp * $stdDev / sqrt($size));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -56,8 +56,10 @@ class Binomial
|
||||||
if ($cumulative) {
|
if ($cumulative) {
|
||||||
return self::calculateCumulativeBinomial($value, $trials, $probability);
|
return self::calculateCumulativeBinomial($value, $trials, $probability);
|
||||||
}
|
}
|
||||||
|
/** @var float */
|
||||||
|
$comb = Combinations::withoutRepetition($trials, $value);
|
||||||
|
|
||||||
return Combinations::withoutRepetition($trials, $value) * $probability ** $value
|
return $comb * $probability ** $value
|
||||||
* (1 - $probability) ** ($trials - $value);
|
* (1 - $probability) ** ($trials - $value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -107,7 +109,9 @@ class Binomial
|
||||||
|
|
||||||
$summer = 0;
|
$summer = 0;
|
||||||
for ($i = $successes; $i <= $limit; ++$i) {
|
for ($i = $successes; $i <= $limit; ++$i) {
|
||||||
$summer += Combinations::withoutRepetition($trials, $i) * $probability ** $i
|
/** @var float */
|
||||||
|
$comb = Combinations::withoutRepetition($trials, $i);
|
||||||
|
$summer += $comb * $probability ** $i
|
||||||
* (1 - $probability) ** ($trials - $i);
|
* (1 - $probability) ** ($trials - $i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -159,8 +163,10 @@ class Binomial
|
||||||
return ExcelError::NAN();
|
return ExcelError::NAN();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/** @var float */
|
||||||
|
$comb = Combinations::withoutRepetition($failures + $successes - 1, $successes - 1);
|
||||||
|
|
||||||
return (Combinations::withoutRepetition($failures + $successes - 1, $successes - 1))
|
return $comb
|
||||||
* ($probability ** $successes) * ((1 - $probability) ** $failures);
|
* ($probability ** $successes) * ((1 - $probability) ** $failures);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -220,7 +226,9 @@ class Binomial
|
||||||
{
|
{
|
||||||
$summer = 0;
|
$summer = 0;
|
||||||
for ($i = 0; $i <= $value; ++$i) {
|
for ($i = 0; $i <= $value; ++$i) {
|
||||||
$summer += Combinations::withoutRepetition($trials, $i) * $probability ** $i
|
/** @var float */
|
||||||
|
$comb = Combinations::withoutRepetition($trials, $i);
|
||||||
|
$summer += $comb * $probability ** $i
|
||||||
* (1 - $probability) ** ($trials - $i);
|
* (1 - $probability) ** ($trials - $i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -281,6 +281,7 @@ class ChiSquared
|
||||||
// Relative error controlled by the eps parameter
|
// Relative error controlled by the eps parameter
|
||||||
private static function gser($n, $x)
|
private static function gser($n, $x)
|
||||||
{
|
{
|
||||||
|
/** @var float */
|
||||||
$gln = Gamma::ln($n / 2);
|
$gln = Gamma::ln($n / 2);
|
||||||
$a = 0.5 * $n;
|
$a = 0.5 * $n;
|
||||||
$ap = $a;
|
$ap = $a;
|
||||||
|
|
@ -304,6 +305,7 @@ class ChiSquared
|
||||||
// Relative error controlled by the eps parameter
|
// Relative error controlled by the eps parameter
|
||||||
private static function gcf($n, $x)
|
private static function gcf($n, $x)
|
||||||
{
|
{
|
||||||
|
/** @var float */
|
||||||
$gln = Gamma::ln($n / 2);
|
$gln = Gamma::ln($n / 2);
|
||||||
$a = 0.5 * $n;
|
$a = 0.5 * $n;
|
||||||
$b = $x + 1 - $a;
|
$b = $x + 1 - $a;
|
||||||
|
|
|
||||||
|
|
@ -131,7 +131,9 @@ class LogNormal
|
||||||
if ($stdDev <= 0) {
|
if ($stdDev <= 0) {
|
||||||
return ExcelError::NAN();
|
return ExcelError::NAN();
|
||||||
}
|
}
|
||||||
|
/** @var float */
|
||||||
|
$inverse = StandardNormal::inverse($probability);
|
||||||
|
|
||||||
return exp($mean + $stdDev * StandardNormal::inverse($probability));
|
return exp($mean + $stdDev * $inverse);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -51,12 +51,16 @@ class Poisson
|
||||||
$summer = 0;
|
$summer = 0;
|
||||||
$floor = floor($value);
|
$floor = floor($value);
|
||||||
for ($i = 0; $i <= $floor; ++$i) {
|
for ($i = 0; $i <= $floor; ++$i) {
|
||||||
$summer += $mean ** $i / MathTrig\Factorial::fact($i);
|
/** @var float */
|
||||||
|
$fact = MathTrig\Factorial::fact($i);
|
||||||
|
$summer += $mean ** $i / $fact;
|
||||||
}
|
}
|
||||||
|
|
||||||
return exp(0 - $mean) * $summer;
|
return exp(0 - $mean) * $summer;
|
||||||
}
|
}
|
||||||
|
/** @var float */
|
||||||
|
$fact = MathTrig\Factorial::fact($value);
|
||||||
|
|
||||||
return (exp(0 - $mean) * $mean ** $value) / MathTrig\Factorial::fact($value);
|
return (exp(0 - $mean) * $mean ** $value) / $fact;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -103,8 +103,10 @@ class StandardNormal
|
||||||
if (!is_numeric($value)) {
|
if (!is_numeric($value)) {
|
||||||
return ExcelError::VALUE();
|
return ExcelError::VALUE();
|
||||||
}
|
}
|
||||||
|
/** @var float */
|
||||||
|
$dist = self::distribution($value, true);
|
||||||
|
|
||||||
return self::distribution($value, true) - 0.5;
|
return $dist - 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -139,6 +141,7 @@ class StandardNormal
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($sigma === null) {
|
if ($sigma === null) {
|
||||||
|
/** @var float */
|
||||||
$sigma = StandardDeviations::STDEV($dataSet);
|
$sigma = StandardDeviations::STDEV($dataSet);
|
||||||
}
|
}
|
||||||
$n = count($dataSet);
|
$n = count($dataSet);
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ class Size
|
||||||
$mArgs = self::filter($aArgs);
|
$mArgs = self::filter($aArgs);
|
||||||
$count = Counts::COUNT($mArgs);
|
$count = Counts::COUNT($mArgs);
|
||||||
--$entry;
|
--$entry;
|
||||||
if (($entry < 0) || ($entry >= $count) || ($count == 0)) {
|
if ($count === 0 || $entry < 0 || $entry >= $count) {
|
||||||
return ExcelError::NAN();
|
return ExcelError::NAN();
|
||||||
}
|
}
|
||||||
rsort($mArgs);
|
rsort($mArgs);
|
||||||
|
|
@ -67,7 +67,7 @@ class Size
|
||||||
$mArgs = self::filter($aArgs);
|
$mArgs = self::filter($aArgs);
|
||||||
$count = Counts::COUNT($mArgs);
|
$count = Counts::COUNT($mArgs);
|
||||||
--$entry;
|
--$entry;
|
||||||
if (($entry < 0) || ($entry >= $count) || ($count == 0)) {
|
if ($count === 0 || $entry < 0 || $entry >= $count) {
|
||||||
return ExcelError::NAN();
|
return ExcelError::NAN();
|
||||||
}
|
}
|
||||||
sort($mArgs);
|
sort($mArgs);
|
||||||
|
|
|
||||||
|
|
@ -179,6 +179,8 @@ class AdvancedValueBinder extends DefaultValueBinder implements IValueBinder
|
||||||
{
|
{
|
||||||
// Convert value to number
|
// Convert value to number
|
||||||
[$hours, $minutes] = explode(':', $value);
|
[$hours, $minutes] = explode(':', $value);
|
||||||
|
$hours = (int) $hours;
|
||||||
|
$minutes = (int) $minutes;
|
||||||
$days = ($hours / 24) + ($minutes / 1440);
|
$days = ($hours / 24) + ($minutes / 1440);
|
||||||
$cell->setValueExplicit($days, DataType::TYPE_NUMERIC);
|
$cell->setValueExplicit($days, DataType::TYPE_NUMERIC);
|
||||||
|
|
||||||
|
|
@ -193,6 +195,9 @@ class AdvancedValueBinder extends DefaultValueBinder implements IValueBinder
|
||||||
{
|
{
|
||||||
// Convert value to number
|
// Convert value to number
|
||||||
[$hours, $minutes, $seconds] = explode(':', $value);
|
[$hours, $minutes, $seconds] = explode(':', $value);
|
||||||
|
$hours = (int) $hours;
|
||||||
|
$minutes = (int) $minutes;
|
||||||
|
$seconds = (int) $seconds;
|
||||||
$days = ($hours / 24) + ($minutes / 1440) + ($seconds / 86400);
|
$days = ($hours / 24) + ($minutes / 1440) + ($seconds / 86400);
|
||||||
$cell->setValueExplicit($days, DataType::TYPE_NUMERIC);
|
$cell->setValueExplicit($days, DataType::TYPE_NUMERIC);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -105,7 +105,7 @@ class Ods extends BaseReader
|
||||||
$xml->read();
|
$xml->read();
|
||||||
while ($xml->read()) {
|
while ($xml->read()) {
|
||||||
// Quickly jump through to the office:body node
|
// Quickly jump through to the office:body node
|
||||||
while ($xml->name !== 'office:body') {
|
while (self::getXmlName($xml) !== 'office:body') {
|
||||||
if ($xml->isEmptyElement) {
|
if ($xml->isEmptyElement) {
|
||||||
$xml->read();
|
$xml->read();
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -114,12 +114,13 @@ class Ods extends BaseReader
|
||||||
}
|
}
|
||||||
// Now read each node until we find our first table:table node
|
// Now read each node until we find our first table:table node
|
||||||
while ($xml->read()) {
|
while ($xml->read()) {
|
||||||
if ($xml->name == 'table:table' && $xml->nodeType == XMLReader::ELEMENT) {
|
$xmlName = self::getXmlName($xml);
|
||||||
|
if ($xmlName == 'table:table' && $xml->nodeType == XMLReader::ELEMENT) {
|
||||||
// Loop through each table:table node reading the table:name attribute for each worksheet name
|
// Loop through each table:table node reading the table:name attribute for each worksheet name
|
||||||
do {
|
do {
|
||||||
$worksheetNames[] = $xml->getAttribute('table:name');
|
$worksheetNames[] = $xml->getAttribute('table:name');
|
||||||
$xml->next();
|
$xml->next();
|
||||||
} while ($xml->name == 'table:table' && $xml->nodeType == XMLReader::ELEMENT);
|
} while (self::getXmlName($xml) == 'table:table' && $xml->nodeType == XMLReader::ELEMENT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -152,7 +153,7 @@ class Ods extends BaseReader
|
||||||
$xml->read();
|
$xml->read();
|
||||||
while ($xml->read()) {
|
while ($xml->read()) {
|
||||||
// Quickly jump through to the office:body node
|
// Quickly jump through to the office:body node
|
||||||
while ($xml->name !== 'office:body') {
|
while (self::getXmlName($xml) !== 'office:body') {
|
||||||
if ($xml->isEmptyElement) {
|
if ($xml->isEmptyElement) {
|
||||||
$xml->read();
|
$xml->read();
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -161,7 +162,7 @@ class Ods extends BaseReader
|
||||||
}
|
}
|
||||||
// Now read each node until we find our first table:table node
|
// Now read each node until we find our first table:table node
|
||||||
while ($xml->read()) {
|
while ($xml->read()) {
|
||||||
if ($xml->name == 'table:table' && $xml->nodeType == XMLReader::ELEMENT) {
|
if (self::getXmlName($xml) == 'table:table' && $xml->nodeType == XMLReader::ELEMENT) {
|
||||||
$worksheetNames[] = $xml->getAttribute('table:name');
|
$worksheetNames[] = $xml->getAttribute('table:name');
|
||||||
|
|
||||||
$tmpInfo = [
|
$tmpInfo = [
|
||||||
|
|
@ -176,7 +177,7 @@ class Ods extends BaseReader
|
||||||
$currCells = 0;
|
$currCells = 0;
|
||||||
do {
|
do {
|
||||||
$xml->read();
|
$xml->read();
|
||||||
if ($xml->name == 'table:table-row' && $xml->nodeType == XMLReader::ELEMENT) {
|
if (self::getXmlName($xml) == 'table:table-row' && $xml->nodeType == XMLReader::ELEMENT) {
|
||||||
$rowspan = $xml->getAttribute('table:number-rows-repeated');
|
$rowspan = $xml->getAttribute('table:number-rows-repeated');
|
||||||
$rowspan = empty($rowspan) ? 1 : $rowspan;
|
$rowspan = empty($rowspan) ? 1 : $rowspan;
|
||||||
$tmpInfo['totalRows'] += $rowspan;
|
$tmpInfo['totalRows'] += $rowspan;
|
||||||
|
|
@ -186,22 +187,22 @@ class Ods extends BaseReader
|
||||||
$xml->read();
|
$xml->read();
|
||||||
do {
|
do {
|
||||||
$doread = true;
|
$doread = true;
|
||||||
if ($xml->name == 'table:table-cell' && $xml->nodeType == XMLReader::ELEMENT) {
|
if (self::getXmlName($xml) == 'table:table-cell' && $xml->nodeType == XMLReader::ELEMENT) {
|
||||||
if (!$xml->isEmptyElement) {
|
if (!$xml->isEmptyElement) {
|
||||||
++$currCells;
|
++$currCells;
|
||||||
$xml->next();
|
$xml->next();
|
||||||
$doread = false;
|
$doread = false;
|
||||||
}
|
}
|
||||||
} elseif ($xml->name == 'table:covered-table-cell' && $xml->nodeType == XMLReader::ELEMENT) {
|
} elseif (self::getXmlName($xml) == 'table:covered-table-cell' && $xml->nodeType == XMLReader::ELEMENT) {
|
||||||
$mergeSize = $xml->getAttribute('table:number-columns-repeated');
|
$mergeSize = $xml->getAttribute('table:number-columns-repeated');
|
||||||
$currCells += (int) $mergeSize;
|
$currCells += (int) $mergeSize;
|
||||||
}
|
}
|
||||||
if ($doread) {
|
if ($doread) {
|
||||||
$xml->read();
|
$xml->read();
|
||||||
}
|
}
|
||||||
} while ($xml->name != 'table:table-row');
|
} while (self::getXmlName($xml) != 'table:table-row');
|
||||||
}
|
}
|
||||||
} while ($xml->name != 'table:table');
|
} while (self::getXmlName($xml) != 'table:table');
|
||||||
|
|
||||||
$tmpInfo['totalColumns'] = max($tmpInfo['totalColumns'], $currCells);
|
$tmpInfo['totalColumns'] = max($tmpInfo['totalColumns'], $currCells);
|
||||||
$tmpInfo['lastColumnIndex'] = $tmpInfo['totalColumns'] - 1;
|
$tmpInfo['lastColumnIndex'] = $tmpInfo['totalColumns'] - 1;
|
||||||
|
|
@ -214,6 +215,16 @@ class Ods extends BaseReader
|
||||||
return $worksheetInfo;
|
return $worksheetInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Counteract Phpstan caching.
|
||||||
|
*
|
||||||
|
* @phpstan-impure
|
||||||
|
*/
|
||||||
|
private static function getXmlName(XMLReader $xml): string
|
||||||
|
{
|
||||||
|
return $xml->name;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Loads PhpSpreadsheet from file.
|
* Loads PhpSpreadsheet from file.
|
||||||
*/
|
*/
|
||||||
|
|
@ -644,7 +655,7 @@ class Ods extends BaseReader
|
||||||
$setRow = $configItem->nodeValue;
|
$setRow = $configItem->nodeValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$this->setSelected($spreadsheet, $wsname, $setCol, $setRow);
|
$this->setSelected($spreadsheet, $wsname, "$setCol", "$setRow");
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
@ -681,12 +692,7 @@ class Ods extends BaseReader
|
||||||
// Multiple spaces?
|
// Multiple spaces?
|
||||||
/** @var DOMAttr $cAttr */
|
/** @var DOMAttr $cAttr */
|
||||||
$cAttr = $child->attributes->getNamedItem('c');
|
$cAttr = $child->attributes->getNamedItem('c');
|
||||||
if ($cAttr) {
|
$multiplier = self::getMultiplier($cAttr);
|
||||||
$multiplier = (int) $cAttr->nodeValue;
|
|
||||||
} else {
|
|
||||||
$multiplier = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
$str .= str_repeat(' ', $multiplier);
|
$str .= str_repeat(' ', $multiplier);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -698,6 +704,17 @@ class Ods extends BaseReader
|
||||||
return $str;
|
return $str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static function getMultiplier(?DOMAttr $cAttr): int
|
||||||
|
{
|
||||||
|
if ($cAttr) {
|
||||||
|
$multiplier = (int) $cAttr->nodeValue;
|
||||||
|
} else {
|
||||||
|
$multiplier = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $multiplier;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $is
|
* @param string $is
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -894,7 +894,7 @@ class Xlsx extends BaseReader
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($xmlSheet->extLst->ext->children('x14', true)->dataValidations->dataValidation as $item) {
|
foreach ($xmlSheet->extLst->ext->children('x14', true)->dataValidations->dataValidation as $item) {
|
||||||
$node = $xmlSheet->dataValidations->addChild('dataValidation');
|
$node = self::testSimpleXml($xmlSheet->dataValidations)->addChild('dataValidation');
|
||||||
foreach ($item->attributes() ?? [] as $attr) {
|
foreach ($item->attributes() ?? [] as $attr) {
|
||||||
$node->addAttribute($attr->getName(), $attr);
|
$node->addAttribute($attr->getName(), $attr);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@ class Trend
|
||||||
case self::TREND_POLYNOMIAL_5:
|
case self::TREND_POLYNOMIAL_5:
|
||||||
case self::TREND_POLYNOMIAL_6:
|
case self::TREND_POLYNOMIAL_6:
|
||||||
if (!isset(self::$trendCache[$key])) {
|
if (!isset(self::$trendCache[$key])) {
|
||||||
$order = substr($trendType, -1);
|
$order = (int) substr($trendType, -1);
|
||||||
self::$trendCache[$key] = new PolynomialBestFit($order, $yValues, $xValues);
|
self::$trendCache[$key] = new PolynomialBestFit($order, $yValues, $xValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -101,7 +101,7 @@ class Trend
|
||||||
}
|
}
|
||||||
if ($trendType != self::TREND_BEST_FIT_NO_POLY) {
|
if ($trendType != self::TREND_BEST_FIT_NO_POLY) {
|
||||||
foreach (self::$trendTypePolynomialOrders as $trendMethod) {
|
foreach (self::$trendTypePolynomialOrders as $trendMethod) {
|
||||||
$order = substr($trendMethod, -1);
|
$order = (int) substr($trendMethod, -1);
|
||||||
$bestFit[$trendMethod] = new PolynomialBestFit($order, $yValues, $xValues);
|
$bestFit[$trendMethod] = new PolynomialBestFit($order, $yValues, $xValues);
|
||||||
if ($bestFit[$trendMethod]->getError()) {
|
if ($bestFit[$trendMethod]->getError()) {
|
||||||
unset($bestFit[$trendMethod]);
|
unset($bestFit[$trendMethod]);
|
||||||
|
|
|
||||||
|
|
@ -293,7 +293,10 @@ class Color extends Supervisor
|
||||||
*/
|
*/
|
||||||
private static function getColourComponent($rgbValue, $offset, $hex = true)
|
private static function getColourComponent($rgbValue, $offset, $hex = true)
|
||||||
{
|
{
|
||||||
$colour = substr($rgbValue, $offset, 2);
|
$colour = substr($rgbValue, $offset, 2) ?: '';
|
||||||
|
if (preg_match('/^[0-9a-f]{2}$/i', $colour) !== 1) {
|
||||||
|
$colour = '00';
|
||||||
|
}
|
||||||
|
|
||||||
return ($hex) ? $colour : (int) hexdec($colour);
|
return ($hex) ? $colour : (int) hexdec($colour);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,9 +26,12 @@ class FractionFormatter extends BaseFormatter
|
||||||
$decimalLength = strlen($decimalPart);
|
$decimalLength = strlen($decimalPart);
|
||||||
$decimalDivisor = 10 ** $decimalLength;
|
$decimalDivisor = 10 ** $decimalLength;
|
||||||
|
|
||||||
|
/** @var float */
|
||||||
$GCD = MathTrig\Gcd::evaluate($decimalPart, $decimalDivisor);
|
$GCD = MathTrig\Gcd::evaluate($decimalPart, $decimalDivisor);
|
||||||
|
/** @var float */
|
||||||
|
$decimalPartx = $decimalPart;
|
||||||
|
|
||||||
$adjustedDecimalPart = $decimalPart / $GCD;
|
$adjustedDecimalPart = $decimalPartx / $GCD;
|
||||||
$adjustedDecimalDivisor = $decimalDivisor / $GCD;
|
$adjustedDecimalDivisor = $decimalDivisor / $GCD;
|
||||||
|
|
||||||
if ((strpos($format, '0') !== false)) {
|
if ((strpos($format, '0') !== false)) {
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,12 @@ use PhpOffice\PhpSpreadsheet\Writer\Exception as WriterException;
|
||||||
// */
|
// */
|
||||||
class Worksheet extends BIFFwriter
|
class Worksheet extends BIFFwriter
|
||||||
{
|
{
|
||||||
|
/** @var int */
|
||||||
|
private static $always0 = 0;
|
||||||
|
|
||||||
|
/** @var int */
|
||||||
|
private static $always1 = 1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Formula parser.
|
* Formula parser.
|
||||||
*
|
*
|
||||||
|
|
@ -2923,11 +2929,11 @@ class Worksheet extends BIFFwriter
|
||||||
$flags |= (1 == $bAlignWrapTx ? 0x00000004 : 0);
|
$flags |= (1 == $bAlignWrapTx ? 0x00000004 : 0);
|
||||||
$flags |= (1 == $bTxRotation ? 0x00000008 : 0);
|
$flags |= (1 == $bTxRotation ? 0x00000008 : 0);
|
||||||
// Justify last line flag
|
// Justify last line flag
|
||||||
$flags |= (1 == 1 ? 0x00000010 : 0);
|
$flags |= (1 == self::$always1 ? 0x00000010 : 0);
|
||||||
$flags |= (1 == $bIndent ? 0x00000020 : 0);
|
$flags |= (1 == $bIndent ? 0x00000020 : 0);
|
||||||
$flags |= (1 == $bShrinkToFit ? 0x00000040 : 0);
|
$flags |= (1 == $bShrinkToFit ? 0x00000040 : 0);
|
||||||
// Default
|
// Default
|
||||||
$flags |= (1 == 1 ? 0x00000080 : 0);
|
$flags |= (1 == self::$always1 ? 0x00000080 : 0);
|
||||||
// Protection
|
// Protection
|
||||||
$flags |= (1 == $bProtLocked ? 0x00000100 : 0);
|
$flags |= (1 == $bProtLocked ? 0x00000100 : 0);
|
||||||
$flags |= (1 == $bProtHidden ? 0x00000200 : 0);
|
$flags |= (1 == $bProtHidden ? 0x00000200 : 0);
|
||||||
|
|
@ -2936,13 +2942,13 @@ class Worksheet extends BIFFwriter
|
||||||
$flags |= (1 == $bBorderRight ? 0x00000800 : 0);
|
$flags |= (1 == $bBorderRight ? 0x00000800 : 0);
|
||||||
$flags |= (1 == $bBorderTop ? 0x00001000 : 0);
|
$flags |= (1 == $bBorderTop ? 0x00001000 : 0);
|
||||||
$flags |= (1 == $bBorderBottom ? 0x00002000 : 0);
|
$flags |= (1 == $bBorderBottom ? 0x00002000 : 0);
|
||||||
$flags |= (1 == 1 ? 0x00004000 : 0); // Top left to Bottom right border
|
$flags |= (1 == self::$always1 ? 0x00004000 : 0); // Top left to Bottom right border
|
||||||
$flags |= (1 == 1 ? 0x00008000 : 0); // Bottom left to Top right border
|
$flags |= (1 == self::$always1 ? 0x00008000 : 0); // Bottom left to Top right border
|
||||||
// Pattern
|
// Pattern
|
||||||
$flags |= (1 == $bFillStyle ? 0x00010000 : 0);
|
$flags |= (1 == $bFillStyle ? 0x00010000 : 0);
|
||||||
$flags |= (1 == $bFillColor ? 0x00020000 : 0);
|
$flags |= (1 == $bFillColor ? 0x00020000 : 0);
|
||||||
$flags |= (1 == $bFillColorBg ? 0x00040000 : 0);
|
$flags |= (1 == $bFillColorBg ? 0x00040000 : 0);
|
||||||
$flags |= (1 == 1 ? 0x00380000 : 0);
|
$flags |= (1 == self::$always1 ? 0x00380000 : 0);
|
||||||
// Font
|
// Font
|
||||||
$flags |= (1 == $bFormatFont ? 0x04000000 : 0);
|
$flags |= (1 == $bFormatFont ? 0x04000000 : 0);
|
||||||
// Alignment:
|
// Alignment:
|
||||||
|
|
@ -2954,7 +2960,7 @@ class Worksheet extends BIFFwriter
|
||||||
// Protection
|
// Protection
|
||||||
$flags |= (1 == $bFormatProt ? 0x40000000 : 0);
|
$flags |= (1 == $bFormatProt ? 0x40000000 : 0);
|
||||||
// Text direction
|
// Text direction
|
||||||
$flags |= (1 == 0 ? 0x80000000 : 0);
|
$flags |= (1 == self::$always0 ? 0x80000000 : 0);
|
||||||
|
|
||||||
$dataBlockFont = null;
|
$dataBlockFont = null;
|
||||||
$dataBlockAlign = null;
|
$dataBlockAlign = null;
|
||||||
|
|
@ -3040,10 +3046,10 @@ class Worksheet extends BIFFwriter
|
||||||
$optionsFlags = 0;
|
$optionsFlags = 0;
|
||||||
$optionsFlagsBold = ($conditional->getStyle()->getFont()->getBold() === null ? 1 : 0);
|
$optionsFlagsBold = ($conditional->getStyle()->getFont()->getBold() === null ? 1 : 0);
|
||||||
$optionsFlags |= (1 == $optionsFlagsBold ? 0x00000002 : 0);
|
$optionsFlags |= (1 == $optionsFlagsBold ? 0x00000002 : 0);
|
||||||
$optionsFlags |= (1 == 1 ? 0x00000008 : 0);
|
$optionsFlags |= (1 == self::$always1 ? 0x00000008 : 0);
|
||||||
$optionsFlags |= (1 == 1 ? 0x00000010 : 0);
|
$optionsFlags |= (1 == self::$always1 ? 0x00000010 : 0);
|
||||||
$optionsFlags |= (1 == 0 ? 0x00000020 : 0);
|
$optionsFlags |= (1 == self::$always0 ? 0x00000020 : 0);
|
||||||
$optionsFlags |= (1 == 1 ? 0x00000080 : 0);
|
$optionsFlags |= (1 == self::$always1 ? 0x00000080 : 0);
|
||||||
$dataBlockFont .= pack('V', $optionsFlags);
|
$dataBlockFont .= pack('V', $optionsFlags);
|
||||||
// Escapement type
|
// Escapement type
|
||||||
$dataBlockFont .= pack('V', $fontEscapement);
|
$dataBlockFont .= pack('V', $fontEscapement);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue