From cb51be5f725714fa979fa45f4a6bbeadb63b88b4 Mon Sep 17 00:00:00 2001 From: drkthunder02 Date: Mon, 30 Sep 2019 01:25:32 +0000 Subject: [PATCH] vendor --- public/logs/eseye-2019-09-29.log | 1 + vendor/cakephp/chronos/Dockerfile | 10 + vendor/cakephp/chronos/LICENSE | 20 + vendor/cakephp/chronos/README.md | 147 + vendor/cakephp/chronos/composer.json | 62 + vendor/cakephp/chronos/docs.Dockerfile | 19 + .../cakephp/chronos/docs/config/__init__.py | 0 vendor/cakephp/chronos/docs/config/all.py | 46 + vendor/cakephp/chronos/docs/en/conf.py | 9 + vendor/cakephp/chronos/docs/en/contents.rst | 7 + vendor/cakephp/chronos/docs/en/index.rst | 313 + vendor/cakephp/chronos/docs/fr/conf.py | 9 + vendor/cakephp/chronos/docs/fr/contents.rst | 7 + vendor/cakephp/chronos/docs/fr/index.rst | 306 + vendor/cakephp/chronos/docs/ja/conf.py | 9 + vendor/cakephp/chronos/docs/ja/contents.rst | 7 + vendor/cakephp/chronos/docs/ja/index.rst | 304 + vendor/cakephp/chronos/docs/pt/conf.py | 9 + vendor/cakephp/chronos/docs/pt/contents.rst | 7 + vendor/cakephp/chronos/docs/pt/index.rst | 285 + vendor/cakephp/chronos/src/Chronos.php | 212 + .../cakephp/chronos/src/ChronosInterface.php | 1254 +++ .../cakephp/chronos/src/ChronosInterval.php | 526 + vendor/cakephp/chronos/src/Date.php | 150 + .../chronos/src/DifferenceFormatter.php | 103 + vendor/cakephp/chronos/src/MutableDate.php | 149 + .../cakephp/chronos/src/MutableDateTime.php | 196 + .../chronos/src/Traits/ComparisonTrait.php | 499 + .../cakephp/chronos/src/Traits/CopyTrait.php | 31 + .../chronos/src/Traits/DifferenceTrait.php | 302 + .../chronos/src/Traits/FactoryTrait.php | 280 + .../chronos/src/Traits/FormattingTrait.php | 259 + .../chronos/src/Traits/FrozenTimeTrait.php | 186 + .../chronos/src/Traits/MagicPropertyTrait.php | 131 + .../chronos/src/Traits/ModifierTrait.php | 1082 ++ .../src/Traits/RelativeKeywordTrait.php | 58 + .../chronos/src/Traits/TestingAidTrait.php | 59 + .../chronos/src/Traits/TimezoneTrait.php | 60 + vendor/cakephp/chronos/src/Translator.php | 93 + vendor/cakephp/chronos/src/carbon_compat.php | 20 + vendor/composer/ClassLoader.php | 2 +- vendor/composer/autoload_classmap.php | 280 + vendor/composer/autoload_files.php | 1 + vendor/composer/autoload_psr4.php | 3 + vendor/composer/autoload_static.php | 299 + vendor/composer/installed.json | 198 + .../khill/lavacharts/.github/CONTRIBUTING.md | 30 + .../lavacharts/.github/ISSUE_TEMPLATE.md | 18 + vendor/khill/lavacharts/.gitlab-ci.yml | 24 + vendor/khill/lavacharts/CHANGELOG.md | 226 + vendor/khill/lavacharts/CONTRIBUTORS.md | 14 + vendor/khill/lavacharts/LICENSE | 23 + vendor/khill/lavacharts/README.md | 248 + vendor/khill/lavacharts/composer.json | 78 + vendor/khill/lavacharts/composer.lock | 2097 ++++ .../khill/lavacharts/javascript/dist/lava.js | 4 + .../khill/lavacharts/javascript/karma.conf.js | 17 + .../javascript/phantomjs/compare.js | 19 + .../lavacharts/javascript/phantomjs/render.js | 33 + .../lavacharts/javascript/src/lava.entry.js | 44 + .../lavacharts/javascript/src/lava/Chart.js | 162 + .../javascript/src/lava/Dashboard.js | 74 + .../lavacharts/javascript/src/lava/Errors.js | 82 + .../lavacharts/javascript/src/lava/Lava.js | 540 + .../lavacharts/javascript/src/lava/Utils.js | 22 + .../javascript/templates/chart.tmpl.js | 43 + .../javascript/templates/dashboard.tmpl.js | 34 + vendor/khill/lavacharts/phpunit.xml | 56 + .../lavacharts/src/Builders/ChartBuilder.php | 164 + .../src/Builders/DashboardBuilder.php | 79 + .../src/Builders/GenericBuilder.php | 64 + .../lavacharts/src/Charts/AnnotationChart.php | 43 + .../khill/lavacharts/src/Charts/AreaChart.php | 46 + .../khill/lavacharts/src/Charts/BarChart.php | 78 + .../lavacharts/src/Charts/BubbleChart.php | 47 + .../lavacharts/src/Charts/CalendarChart.php | 54 + .../src/Charts/CandlestickChart.php | 47 + vendor/khill/lavacharts/src/Charts/Chart.php | 197 + .../lavacharts/src/Charts/ChartFactory.php | 154 + .../lavacharts/src/Charts/ColumnChart.php | 47 + .../lavacharts/src/Charts/ComboChart.php | 49 + .../lavacharts/src/Charts/DonutChart.php | 38 + .../lavacharts/src/Charts/GanttChart.php | 57 + .../lavacharts/src/Charts/GaugeChart.php | 52 + .../khill/lavacharts/src/Charts/GeoChart.php | 49 + .../lavacharts/src/Charts/HistogramChart.php | 64 + .../khill/lavacharts/src/Charts/LineChart.php | 77 + .../khill/lavacharts/src/Charts/OrgChart.php | 47 + .../khill/lavacharts/src/Charts/PieChart.php | 46 + .../lavacharts/src/Charts/SankeyChart.php | 59 + .../lavacharts/src/Charts/ScatterChart.php | 80 + .../src/Charts/SteppedAreaChart.php | 45 + .../lavacharts/src/Charts/TableChart.php | 54 + .../lavacharts/src/Charts/TimelineChart.php | 56 + .../lavacharts/src/Charts/TreeMapChart.php | 65 + .../lavacharts/src/Charts/WordTreeChart.php | 65 + .../src/Dashboards/Bindings/Binding.php | 89 + .../Dashboards/Bindings/BindingFactory.php | 52 + .../src/Dashboards/Bindings/ManyToMany.php | 37 + .../src/Dashboards/Bindings/ManyToOne.php | 39 + .../src/Dashboards/Bindings/OneToMany.php | 39 + .../src/Dashboards/Bindings/OneToOne.php | 40 + .../lavacharts/src/Dashboards/Dashboard.php | 193 + .../src/Dashboards/DashboardFactory.php | 77 + .../src/Dashboards/Filters/CategoryFilter.php | 27 + .../Dashboards/Filters/ChartRangeFilter.php | 28 + .../Dashboards/Filters/DateRangeFilter.php | 28 + .../src/Dashboards/Filters/Filter.php | 78 + .../src/Dashboards/Filters/FilterFactory.php | 80 + .../Dashboards/Filters/NumberRangeFilter.php | 25 + .../src/Dashboards/Filters/StringFilter.php | 25 + .../src/Dashboards/Wrappers/ChartWrapper.php | 42 + .../Dashboards/Wrappers/ControlWrapper.php | 40 + .../src/Dashboards/Wrappers/Wrapper.php | 108 + .../lavacharts/src/DataTables/Cells/Cell.php | 151 + .../src/DataTables/Cells/DateCell.php | 130 + .../src/DataTables/Cells/NullCell.php | 31 + .../src/DataTables/Columns/Column.php | 147 + .../src/DataTables/Columns/ColumnBuilder.php | 136 + .../src/DataTables/Columns/ColumnFactory.php | 104 + .../lavacharts/src/DataTables/DataFactory.php | 212 + .../lavacharts/src/DataTables/DataTable.php | 766 ++ .../src/DataTables/Formats/ArrowFormat.php | 29 + .../src/DataTables/Formats/BarFormat.php | 29 + .../src/DataTables/Formats/DateFormat.php | 28 + .../src/DataTables/Formats/Format.php | 70 + .../src/DataTables/Formats/NumberFormat.php | 28 + .../src/DataTables/Rows/NullRow.php | 37 + .../lavacharts/src/DataTables/Rows/Row.php | 201 + .../src/DataTables/Rows/RowFactory.php | 98 + .../src/Exceptions/ChartNotFound.php | 13 + .../src/Exceptions/DashboardNotFound.php | 13 + .../src/Exceptions/DataTableNotFound.php | 15 + .../src/Exceptions/ElementIdException.php | 15 + .../src/Exceptions/InvalidBindings.php | 13 + .../src/Exceptions/InvalidCellCount.php | 14 + .../src/Exceptions/InvalidChartType.php | 18 + .../Exceptions/InvalidChartWrapperParams.php | 13 + .../Exceptions/InvalidColumnDefinition.php | 14 + .../src/Exceptions/InvalidColumnFormat.php | 13 + .../src/Exceptions/InvalidColumnIndex.php | 17 + .../src/Exceptions/InvalidColumnRole.php | 21 + .../src/Exceptions/InvalidColumnType.php | 19 + .../src/Exceptions/InvalidConfigProperty.php | 16 + .../src/Exceptions/InvalidConfigValue.php | 17 + .../InvalidControlWrapperParams.php | 13 + .../src/Exceptions/InvalidDataTable.php | 13 + .../lavacharts/src/Exceptions/InvalidDate.php | 13 + .../src/Exceptions/InvalidDateTimeFormat.php | 17 + .../src/Exceptions/InvalidDateTimeString.php | 17 + .../src/Exceptions/InvalidDivDimensions.php | 13 + .../src/Exceptions/InvalidElementId.php | 17 + .../src/Exceptions/InvalidFilterParam.php | 13 + .../src/Exceptions/InvalidFilterType.php | 21 + .../src/Exceptions/InvalidFormatType.php | 13 + .../src/Exceptions/InvalidFunctionParam.php | 13 + .../lavacharts/src/Exceptions/InvalidJson.php | 11 + .../src/Exceptions/InvalidLabel.php | 17 + .../src/Exceptions/InvalidLavaObject.php | 13 + .../src/Exceptions/InvalidOptions.php | 13 + .../src/Exceptions/InvalidParamType.php | 13 + .../src/Exceptions/InvalidRowDefinition.php | 13 + .../src/Exceptions/InvalidRowProperty.php | 13 + .../src/Exceptions/InvalidStringValue.php | 11 + .../src/Exceptions/InvalidTimeZone.php | 17 + .../src/Exceptions/InvalidUIProperty.php | 16 + .../src/Exceptions/LavaException.php | 8 + .../src/Exceptions/RenderingException.php | 21 + .../src/Javascript/ChartJsFactory.php | 175 + .../src/Javascript/DashboardJsFactory.php | 142 + .../src/Javascript/JavascriptFactory.php | 79 + .../src/Javascript/ScriptManager.php | 155 + .../src/Laravel/BladeTemplateExtensions.php | 56 + .../src/Laravel/LavachartsFacade.php | 27 + .../src/Laravel/LavachartsServiceProvider.php | 80 + .../src/Laravel/config/lavacharts.php | 74 + vendor/khill/lavacharts/src/Lavacharts.php | 506 + .../khill/lavacharts/src/Support/Buffer.php | 131 + .../khill/lavacharts/src/Support/Config.php | 41 + .../src/Support/Contracts/Arrayable.php | 27 + .../Support/Contracts/DataTableInterface.php | 46 + .../Support/Contracts/JsClassInterface.php | 26 + .../src/Support/Contracts/Jsonable.php | 35 + .../Support/Contracts/JsonableInterface.php | 26 + .../Support/Contracts/RenderableInterface.php | 44 + .../Contracts/VisualizationInterface.php | 26 + .../Support/Contracts/WrappableInterface.php | 26 + .../lavacharts/src/Support/Customizable.php | 172 + .../src/Support/Html/HtmlFactory.php | 94 + .../lavacharts/src/Support/JavascriptDate.php | 47 + .../khill/lavacharts/src/Support/Options.php | 148 + .../lavacharts/src/Support/Psr4Autoloader.php | 152 + .../lavacharts/src/Support/Renderable.php | 111 + .../src/Support/Traits/DataTableTrait.php | 64 + .../src/Support/Traits/ElementIdTrait.php | 68 + .../src/Support/Traits/HasOptionsTrait.php | 54 + .../Traits/MaterialRenderableTrait.php | 46 + .../Traits/ParameterValidatorsTrait.php | 99 + .../src/Support/Traits/PngRenderableTrait.php | 46 + .../src/Support/Traits/RenderableTrait.php | 104 + .../src/Symfony/Bundle/LavachartsBundle.php | 10 + .../Bundle/Resources/config/services.yml | 14 + .../Symfony/Bundle/Resources/docs/README.md | 71 + .../Bundle/Twig/LavachartsExtension.php | 75 + .../khill/lavacharts/src/Values/ElementId.php | 32 + vendor/khill/lavacharts/src/Values/Label.php | 30 + vendor/khill/lavacharts/src/Values/Role.php | 68 + .../lavacharts/src/Values/StringValue.php | 75 + vendor/khill/lavacharts/src/Volcano.php | 203 + vendor/laravel/horizon/LICENSE.md | 21 + vendor/laravel/horizon/README.md | 27 + vendor/laravel/horizon/composer.json | 59 + vendor/laravel/horizon/config/horizon.php | 163 + vendor/laravel/horizon/package-lock.json | 9307 +++++++++++++++++ vendor/laravel/horizon/package.json | 35 + vendor/laravel/horizon/public/app-dark.css | 8 + vendor/laravel/horizon/public/app.css | 8 + vendor/laravel/horizon/public/app.js | 1 + vendor/laravel/horizon/public/img/favicon.png | Bin 0 -> 648 bytes vendor/laravel/horizon/public/img/horizon.svg | 4 + vendor/laravel/horizon/public/img/sprite.svg | 806 ++ .../laravel/horizon/public/mix-manifest.json | 5 + .../laravel/horizon/resources/img/favicon.png | Bin 0 -> 648 bytes vendor/laravel/horizon/resources/js/app.js | 55 + vendor/laravel/horizon/resources/js/base.js | 156 + .../horizon/resources/js/components/Alert.vue | 120 + .../resources/js/components/LineChart.vue | 67 + .../resources/js/components/Stacktrace.vue | 41 + vendor/laravel/horizon/resources/js/routes.js | 77 + .../resources/js/screens/dashboard.vue | 323 + .../resources/js/screens/failedJobs/index.vue | 257 + .../resources/js/screens/failedJobs/job.vue | 228 + .../resources/js/screens/metrics/index.vue | 37 + .../resources/js/screens/metrics/jobs.vue | 79 + .../resources/js/screens/metrics/preview.vue | 147 + .../resources/js/screens/metrics/queues.vue | 79 + .../resources/js/screens/monitoring/index.vue | 183 + .../js/screens/monitoring/tag-jobs.vue | 216 + .../resources/js/screens/monitoring/tag.vue | 30 + .../resources/js/screens/recentJobs/index.vue | 211 + .../horizon/resources/sass/app-dark.scss | 68 + .../laravel/horizon/resources/sass/app.scss | 56 + .../laravel/horizon/resources/sass/base.scss | 270 + .../resources/sass/syntaxhighlight.scss | 43 + .../horizon/resources/views/layout.blade.php | 100 + vendor/laravel/horizon/routes/web.php | 37 + vendor/laravel/horizon/src/AutoScaler.php | 143 + .../laravel/horizon/src/BackgroundProcess.php | 18 + .../horizon/src/Connectors/RedisConnector.php | 26 + .../horizon/src/Console/AssetsCommand.php | 35 + .../horizon/src/Console/ContinueCommand.php | 47 + .../horizon/src/Console/HorizonCommand.php | 65 + .../horizon/src/Console/InstallCommand.php | 75 + .../horizon/src/Console/ListCommand.php | 51 + .../horizon/src/Console/PauseCommand.php | 47 + .../horizon/src/Console/PurgeCommand.php | 122 + .../horizon/src/Console/SnapshotCommand.php | 40 + .../horizon/src/Console/StatusCommand.php | 51 + .../horizon/src/Console/SupervisorCommand.php | 131 + .../src/Console/SupervisorsCommand.php | 52 + .../horizon/src/Console/TerminateCommand.php | 61 + .../horizon/src/Console/TimeoutCommand.php | 41 + .../horizon/src/Console/WorkCommand.php | 48 + .../src/Contracts/HorizonCommandQueue.php | 31 + .../horizon/src/Contracts/JobRepository.php | 200 + .../Contracts/MasterSupervisorRepository.php | 61 + .../src/Contracts/MetricsRepository.php | 136 + .../horizon/src/Contracts/Pausable.php | 20 + .../src/Contracts/ProcessRepository.php | 41 + .../horizon/src/Contracts/Restartable.php | 13 + .../src/Contracts/SupervisorRepository.php | 68 + .../horizon/src/Contracts/TagRepository.php | 90 + .../horizon/src/Contracts/Terminable.php | 14 + .../src/Contracts/WorkloadRepository.php | 13 + vendor/laravel/horizon/src/EventMap.php | 71 + .../laravel/horizon/src/Events/JobDeleted.php | 27 + .../laravel/horizon/src/Events/JobFailed.php | 36 + .../laravel/horizon/src/Events/JobPushed.php | 8 + .../horizon/src/Events/JobReleased.php | 8 + .../horizon/src/Events/JobReserved.php | 8 + .../horizon/src/Events/JobsMigrated.php | 68 + .../horizon/src/Events/LongWaitDetected.php | 56 + .../src/Events/MasterSupervisorDeployed.php | 24 + .../src/Events/MasterSupervisorLooped.php | 26 + .../src/Events/MasterSupervisorReviving.php | 24 + .../laravel/horizon/src/Events/RedisEvent.php | 66 + .../horizon/src/Events/SupervisorLooped.php | 26 + .../Events/SupervisorProcessRestarting.php | 26 + .../src/Events/UnableToLaunchProcess.php | 26 + .../src/Events/WorkerProcessRestarting.php | 26 + vendor/laravel/horizon/src/Exec.php | 19 + vendor/laravel/horizon/src/Horizon.php | 172 + .../src/HorizonApplicationServiceProvider.php | 60 + .../horizon/src/HorizonServiceProvider.php | 192 + .../src/Http/Controllers/Controller.php | 19 + .../Controllers/DashboardStatsController.php | 65 + .../Http/Controllers/FailedJobsController.php | 123 + .../src/Http/Controllers/HomeController.php | 21 + .../Http/Controllers/JobMetricsController.php | 54 + .../MasterSupervisorController.php | 28 + .../Http/Controllers/MonitoringController.php | 114 + .../Controllers/QueueMetricsController.php | 54 + .../Http/Controllers/RecentJobsController.php | 49 + .../src/Http/Controllers/RetryController.php | 19 + .../Http/Controllers/WorkloadController.php | 19 + .../src/Http/Middleware/Authenticate.php | 20 + vendor/laravel/horizon/src/JobId.php | 40 + vendor/laravel/horizon/src/JobPayload.php | 215 + .../laravel/horizon/src/Jobs/MonitorTag.php | 37 + .../horizon/src/Jobs/RetryFailedJob.php | 64 + .../horizon/src/Jobs/StopMonitoringTag.php | 43 + .../src/Listeners/ExpireSupervisors.php | 23 + .../src/Listeners/MarkJobAsComplete.php | 52 + .../horizon/src/Listeners/MarkJobAsFailed.php | 41 + .../src/Listeners/MarkJobAsReleased.php | 38 + .../src/Listeners/MarkJobAsReserved.php | 38 + .../src/Listeners/MarkJobsAsMigrated.php | 38 + .../src/Listeners/MarshalFailedEvent.php | 46 + .../MonitorMasterSupervisorMemory.php | 23 + .../src/Listeners/MonitorSupervisorMemory.php | 23 + .../src/Listeners/MonitorWaitTimes.php | 104 + .../Listeners/PruneTerminatingProcesses.php | 19 + .../src/Listeners/SendNotification.php | 30 + .../horizon/src/Listeners/StartTimingJob.php | 38 + .../horizon/src/Listeners/StoreJob.php | 40 + .../src/Listeners/StoreMonitoredTags.php | 42 + .../src/Listeners/StoreTagsForFailedJob.php | 44 + .../horizon/src/Listeners/TrimFailedJobs.php | 47 + .../src/Listeners/TrimMonitoredJobs.php | 47 + .../horizon/src/Listeners/TrimRecentJobs.php | 43 + .../src/Listeners/UpdateJobMetrics.php | 60 + .../laravel/horizon/src/ListensForSignals.php | 57 + vendor/laravel/horizon/src/Lock.php | 95 + vendor/laravel/horizon/src/LuaScripts.php | 37 + .../laravel/horizon/src/MasterSupervisor.php | 377 + .../AddSupervisor.php | 45 + .../src/Notifications/LongWaitDetected.php | 131 + vendor/laravel/horizon/src/PhpBinary.php | 18 + .../laravel/horizon/src/ProcessInspector.php | 72 + vendor/laravel/horizon/src/ProcessPool.php | 330 + .../laravel/horizon/src/ProvisioningPlan.php | 165 + .../horizon/src/QueueCommandString.php | 31 + .../horizon/src/RedisHorizonCommandQueue.php | 88 + vendor/laravel/horizon/src/RedisQueue.php | 169 + .../src/Repositories/RedisJobRepository.php | 617 ++ .../RedisMasterSupervisorRepository.php | 161 + .../Repositories/RedisMetricsRepository.php | 384 + .../Repositories/RedisProcessRepository.php | 107 + .../RedisSupervisorRepository.php | 178 + .../src/Repositories/RedisTagRepository.php | 185 + .../Repositories/RedisWorkloadRepository.php | 103 + .../laravel/horizon/src/ServiceBindings.php | 31 + vendor/laravel/horizon/src/Stopwatch.php | 37 + vendor/laravel/horizon/src/Supervisor.php | 495 + .../horizon/src/SupervisorCommandString.php | 54 + .../src/SupervisorCommands/Balance.php | 20 + .../SupervisorCommands/ContinueWorking.php | 19 + .../horizon/src/SupervisorCommands/Pause.php | 19 + .../src/SupervisorCommands/Restart.php | 19 + .../horizon/src/SupervisorCommands/Scale.php | 20 + .../src/SupervisorCommands/Terminate.php | 20 + .../laravel/horizon/src/SupervisorFactory.php | 17 + .../laravel/horizon/src/SupervisorOptions.php | 198 + .../laravel/horizon/src/SupervisorProcess.php | 144 + .../horizon/src/SystemProcessCounter.php | 30 + vendor/laravel/horizon/src/Tags.php | 146 + .../horizon/src/WaitTimeCalculator.php | 133 + .../horizon/src/WorkerCommandString.php | 53 + vendor/laravel/horizon/src/WorkerProcess.php | 208 + .../horizon/stubs/HorizonServiceProvider.stub | 42 + vendor/laravel/horizon/webpack.mix.js | 39 + 371 files changed, 44076 insertions(+), 1 deletion(-) create mode 100644 vendor/cakephp/chronos/Dockerfile create mode 100644 vendor/cakephp/chronos/LICENSE create mode 100644 vendor/cakephp/chronos/README.md create mode 100644 vendor/cakephp/chronos/composer.json create mode 100644 vendor/cakephp/chronos/docs.Dockerfile create mode 100644 vendor/cakephp/chronos/docs/config/__init__.py create mode 100644 vendor/cakephp/chronos/docs/config/all.py create mode 100644 vendor/cakephp/chronos/docs/en/conf.py create mode 100644 vendor/cakephp/chronos/docs/en/contents.rst create mode 100644 vendor/cakephp/chronos/docs/en/index.rst create mode 100644 vendor/cakephp/chronos/docs/fr/conf.py create mode 100644 vendor/cakephp/chronos/docs/fr/contents.rst create mode 100644 vendor/cakephp/chronos/docs/fr/index.rst create mode 100644 vendor/cakephp/chronos/docs/ja/conf.py create mode 100644 vendor/cakephp/chronos/docs/ja/contents.rst create mode 100644 vendor/cakephp/chronos/docs/ja/index.rst create mode 100644 vendor/cakephp/chronos/docs/pt/conf.py create mode 100644 vendor/cakephp/chronos/docs/pt/contents.rst create mode 100644 vendor/cakephp/chronos/docs/pt/index.rst create mode 100644 vendor/cakephp/chronos/src/Chronos.php create mode 100644 vendor/cakephp/chronos/src/ChronosInterface.php create mode 100644 vendor/cakephp/chronos/src/ChronosInterval.php create mode 100644 vendor/cakephp/chronos/src/Date.php create mode 100644 vendor/cakephp/chronos/src/DifferenceFormatter.php create mode 100644 vendor/cakephp/chronos/src/MutableDate.php create mode 100644 vendor/cakephp/chronos/src/MutableDateTime.php create mode 100644 vendor/cakephp/chronos/src/Traits/ComparisonTrait.php create mode 100644 vendor/cakephp/chronos/src/Traits/CopyTrait.php create mode 100644 vendor/cakephp/chronos/src/Traits/DifferenceTrait.php create mode 100644 vendor/cakephp/chronos/src/Traits/FactoryTrait.php create mode 100644 vendor/cakephp/chronos/src/Traits/FormattingTrait.php create mode 100644 vendor/cakephp/chronos/src/Traits/FrozenTimeTrait.php create mode 100644 vendor/cakephp/chronos/src/Traits/MagicPropertyTrait.php create mode 100644 vendor/cakephp/chronos/src/Traits/ModifierTrait.php create mode 100644 vendor/cakephp/chronos/src/Traits/RelativeKeywordTrait.php create mode 100644 vendor/cakephp/chronos/src/Traits/TestingAidTrait.php create mode 100644 vendor/cakephp/chronos/src/Traits/TimezoneTrait.php create mode 100644 vendor/cakephp/chronos/src/Translator.php create mode 100644 vendor/cakephp/chronos/src/carbon_compat.php create mode 100644 vendor/khill/lavacharts/.github/CONTRIBUTING.md create mode 100644 vendor/khill/lavacharts/.github/ISSUE_TEMPLATE.md create mode 100644 vendor/khill/lavacharts/.gitlab-ci.yml create mode 100644 vendor/khill/lavacharts/CHANGELOG.md create mode 100644 vendor/khill/lavacharts/CONTRIBUTORS.md create mode 100644 vendor/khill/lavacharts/LICENSE create mode 100644 vendor/khill/lavacharts/README.md create mode 100644 vendor/khill/lavacharts/composer.json create mode 100644 vendor/khill/lavacharts/composer.lock create mode 100644 vendor/khill/lavacharts/javascript/dist/lava.js create mode 100644 vendor/khill/lavacharts/javascript/karma.conf.js create mode 100644 vendor/khill/lavacharts/javascript/phantomjs/compare.js create mode 100644 vendor/khill/lavacharts/javascript/phantomjs/render.js create mode 100644 vendor/khill/lavacharts/javascript/src/lava.entry.js create mode 100644 vendor/khill/lavacharts/javascript/src/lava/Chart.js create mode 100644 vendor/khill/lavacharts/javascript/src/lava/Dashboard.js create mode 100644 vendor/khill/lavacharts/javascript/src/lava/Errors.js create mode 100644 vendor/khill/lavacharts/javascript/src/lava/Lava.js create mode 100644 vendor/khill/lavacharts/javascript/src/lava/Utils.js create mode 100644 vendor/khill/lavacharts/javascript/templates/chart.tmpl.js create mode 100644 vendor/khill/lavacharts/javascript/templates/dashboard.tmpl.js create mode 100644 vendor/khill/lavacharts/phpunit.xml create mode 100644 vendor/khill/lavacharts/src/Builders/ChartBuilder.php create mode 100644 vendor/khill/lavacharts/src/Builders/DashboardBuilder.php create mode 100644 vendor/khill/lavacharts/src/Builders/GenericBuilder.php create mode 100644 vendor/khill/lavacharts/src/Charts/AnnotationChart.php create mode 100755 vendor/khill/lavacharts/src/Charts/AreaChart.php create mode 100755 vendor/khill/lavacharts/src/Charts/BarChart.php create mode 100644 vendor/khill/lavacharts/src/Charts/BubbleChart.php create mode 100644 vendor/khill/lavacharts/src/Charts/CalendarChart.php create mode 100644 vendor/khill/lavacharts/src/Charts/CandlestickChart.php create mode 100755 vendor/khill/lavacharts/src/Charts/Chart.php create mode 100644 vendor/khill/lavacharts/src/Charts/ChartFactory.php create mode 100755 vendor/khill/lavacharts/src/Charts/ColumnChart.php create mode 100755 vendor/khill/lavacharts/src/Charts/ComboChart.php create mode 100644 vendor/khill/lavacharts/src/Charts/DonutChart.php create mode 100644 vendor/khill/lavacharts/src/Charts/GanttChart.php create mode 100755 vendor/khill/lavacharts/src/Charts/GaugeChart.php create mode 100644 vendor/khill/lavacharts/src/Charts/GeoChart.php create mode 100644 vendor/khill/lavacharts/src/Charts/HistogramChart.php create mode 100755 vendor/khill/lavacharts/src/Charts/LineChart.php create mode 100644 vendor/khill/lavacharts/src/Charts/OrgChart.php create mode 100644 vendor/khill/lavacharts/src/Charts/PieChart.php create mode 100644 vendor/khill/lavacharts/src/Charts/SankeyChart.php create mode 100644 vendor/khill/lavacharts/src/Charts/ScatterChart.php create mode 100644 vendor/khill/lavacharts/src/Charts/SteppedAreaChart.php create mode 100644 vendor/khill/lavacharts/src/Charts/TableChart.php create mode 100644 vendor/khill/lavacharts/src/Charts/TimelineChart.php create mode 100644 vendor/khill/lavacharts/src/Charts/TreeMapChart.php create mode 100644 vendor/khill/lavacharts/src/Charts/WordTreeChart.php create mode 100644 vendor/khill/lavacharts/src/Dashboards/Bindings/Binding.php create mode 100644 vendor/khill/lavacharts/src/Dashboards/Bindings/BindingFactory.php create mode 100644 vendor/khill/lavacharts/src/Dashboards/Bindings/ManyToMany.php create mode 100644 vendor/khill/lavacharts/src/Dashboards/Bindings/ManyToOne.php create mode 100644 vendor/khill/lavacharts/src/Dashboards/Bindings/OneToMany.php create mode 100644 vendor/khill/lavacharts/src/Dashboards/Bindings/OneToOne.php create mode 100644 vendor/khill/lavacharts/src/Dashboards/Dashboard.php create mode 100644 vendor/khill/lavacharts/src/Dashboards/DashboardFactory.php create mode 100644 vendor/khill/lavacharts/src/Dashboards/Filters/CategoryFilter.php create mode 100644 vendor/khill/lavacharts/src/Dashboards/Filters/ChartRangeFilter.php create mode 100644 vendor/khill/lavacharts/src/Dashboards/Filters/DateRangeFilter.php create mode 100644 vendor/khill/lavacharts/src/Dashboards/Filters/Filter.php create mode 100644 vendor/khill/lavacharts/src/Dashboards/Filters/FilterFactory.php create mode 100644 vendor/khill/lavacharts/src/Dashboards/Filters/NumberRangeFilter.php create mode 100644 vendor/khill/lavacharts/src/Dashboards/Filters/StringFilter.php create mode 100644 vendor/khill/lavacharts/src/Dashboards/Wrappers/ChartWrapper.php create mode 100644 vendor/khill/lavacharts/src/Dashboards/Wrappers/ControlWrapper.php create mode 100644 vendor/khill/lavacharts/src/Dashboards/Wrappers/Wrapper.php create mode 100644 vendor/khill/lavacharts/src/DataTables/Cells/Cell.php create mode 100644 vendor/khill/lavacharts/src/DataTables/Cells/DateCell.php create mode 100644 vendor/khill/lavacharts/src/DataTables/Cells/NullCell.php create mode 100644 vendor/khill/lavacharts/src/DataTables/Columns/Column.php create mode 100644 vendor/khill/lavacharts/src/DataTables/Columns/ColumnBuilder.php create mode 100644 vendor/khill/lavacharts/src/DataTables/Columns/ColumnFactory.php create mode 100644 vendor/khill/lavacharts/src/DataTables/DataFactory.php create mode 100644 vendor/khill/lavacharts/src/DataTables/DataTable.php create mode 100644 vendor/khill/lavacharts/src/DataTables/Formats/ArrowFormat.php create mode 100644 vendor/khill/lavacharts/src/DataTables/Formats/BarFormat.php create mode 100644 vendor/khill/lavacharts/src/DataTables/Formats/DateFormat.php create mode 100644 vendor/khill/lavacharts/src/DataTables/Formats/Format.php create mode 100644 vendor/khill/lavacharts/src/DataTables/Formats/NumberFormat.php create mode 100644 vendor/khill/lavacharts/src/DataTables/Rows/NullRow.php create mode 100644 vendor/khill/lavacharts/src/DataTables/Rows/Row.php create mode 100644 vendor/khill/lavacharts/src/DataTables/Rows/RowFactory.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/ChartNotFound.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/DashboardNotFound.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/DataTableNotFound.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/ElementIdException.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidBindings.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidCellCount.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidChartType.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidChartWrapperParams.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidColumnDefinition.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidColumnFormat.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidColumnIndex.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidColumnRole.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidColumnType.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidConfigProperty.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidConfigValue.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidControlWrapperParams.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidDataTable.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidDate.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidDateTimeFormat.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidDateTimeString.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidDivDimensions.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidElementId.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidFilterParam.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidFilterType.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidFormatType.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidFunctionParam.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidJson.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidLabel.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidLavaObject.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidOptions.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidParamType.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidRowDefinition.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidRowProperty.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidStringValue.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidTimeZone.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/InvalidUIProperty.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/LavaException.php create mode 100644 vendor/khill/lavacharts/src/Exceptions/RenderingException.php create mode 100644 vendor/khill/lavacharts/src/Javascript/ChartJsFactory.php create mode 100644 vendor/khill/lavacharts/src/Javascript/DashboardJsFactory.php create mode 100644 vendor/khill/lavacharts/src/Javascript/JavascriptFactory.php create mode 100644 vendor/khill/lavacharts/src/Javascript/ScriptManager.php create mode 100644 vendor/khill/lavacharts/src/Laravel/BladeTemplateExtensions.php create mode 100644 vendor/khill/lavacharts/src/Laravel/LavachartsFacade.php create mode 100644 vendor/khill/lavacharts/src/Laravel/LavachartsServiceProvider.php create mode 100644 vendor/khill/lavacharts/src/Laravel/config/lavacharts.php create mode 100644 vendor/khill/lavacharts/src/Lavacharts.php create mode 100644 vendor/khill/lavacharts/src/Support/Buffer.php create mode 100644 vendor/khill/lavacharts/src/Support/Config.php create mode 100644 vendor/khill/lavacharts/src/Support/Contracts/Arrayable.php create mode 100644 vendor/khill/lavacharts/src/Support/Contracts/DataTableInterface.php create mode 100644 vendor/khill/lavacharts/src/Support/Contracts/JsClassInterface.php create mode 100644 vendor/khill/lavacharts/src/Support/Contracts/Jsonable.php create mode 100644 vendor/khill/lavacharts/src/Support/Contracts/JsonableInterface.php create mode 100644 vendor/khill/lavacharts/src/Support/Contracts/RenderableInterface.php create mode 100644 vendor/khill/lavacharts/src/Support/Contracts/VisualizationInterface.php create mode 100644 vendor/khill/lavacharts/src/Support/Contracts/WrappableInterface.php create mode 100644 vendor/khill/lavacharts/src/Support/Customizable.php create mode 100644 vendor/khill/lavacharts/src/Support/Html/HtmlFactory.php create mode 100644 vendor/khill/lavacharts/src/Support/JavascriptDate.php create mode 100644 vendor/khill/lavacharts/src/Support/Options.php create mode 100644 vendor/khill/lavacharts/src/Support/Psr4Autoloader.php create mode 100644 vendor/khill/lavacharts/src/Support/Renderable.php create mode 100644 vendor/khill/lavacharts/src/Support/Traits/DataTableTrait.php create mode 100644 vendor/khill/lavacharts/src/Support/Traits/ElementIdTrait.php create mode 100644 vendor/khill/lavacharts/src/Support/Traits/HasOptionsTrait.php create mode 100644 vendor/khill/lavacharts/src/Support/Traits/MaterialRenderableTrait.php create mode 100644 vendor/khill/lavacharts/src/Support/Traits/ParameterValidatorsTrait.php create mode 100644 vendor/khill/lavacharts/src/Support/Traits/PngRenderableTrait.php create mode 100644 vendor/khill/lavacharts/src/Support/Traits/RenderableTrait.php create mode 100644 vendor/khill/lavacharts/src/Symfony/Bundle/LavachartsBundle.php create mode 100644 vendor/khill/lavacharts/src/Symfony/Bundle/Resources/config/services.yml create mode 100644 vendor/khill/lavacharts/src/Symfony/Bundle/Resources/docs/README.md create mode 100644 vendor/khill/lavacharts/src/Symfony/Bundle/Twig/LavachartsExtension.php create mode 100644 vendor/khill/lavacharts/src/Values/ElementId.php create mode 100644 vendor/khill/lavacharts/src/Values/Label.php create mode 100644 vendor/khill/lavacharts/src/Values/Role.php create mode 100644 vendor/khill/lavacharts/src/Values/StringValue.php create mode 100644 vendor/khill/lavacharts/src/Volcano.php create mode 100644 vendor/laravel/horizon/LICENSE.md create mode 100644 vendor/laravel/horizon/README.md create mode 100644 vendor/laravel/horizon/composer.json create mode 100644 vendor/laravel/horizon/config/horizon.php create mode 100644 vendor/laravel/horizon/package-lock.json create mode 100644 vendor/laravel/horizon/package.json create mode 100644 vendor/laravel/horizon/public/app-dark.css create mode 100644 vendor/laravel/horizon/public/app.css create mode 100644 vendor/laravel/horizon/public/app.js create mode 100644 vendor/laravel/horizon/public/img/favicon.png create mode 100644 vendor/laravel/horizon/public/img/horizon.svg create mode 100644 vendor/laravel/horizon/public/img/sprite.svg create mode 100644 vendor/laravel/horizon/public/mix-manifest.json create mode 100644 vendor/laravel/horizon/resources/img/favicon.png create mode 100644 vendor/laravel/horizon/resources/js/app.js create mode 100644 vendor/laravel/horizon/resources/js/base.js create mode 100644 vendor/laravel/horizon/resources/js/components/Alert.vue create mode 100644 vendor/laravel/horizon/resources/js/components/LineChart.vue create mode 100644 vendor/laravel/horizon/resources/js/components/Stacktrace.vue create mode 100644 vendor/laravel/horizon/resources/js/routes.js create mode 100644 vendor/laravel/horizon/resources/js/screens/dashboard.vue create mode 100644 vendor/laravel/horizon/resources/js/screens/failedJobs/index.vue create mode 100644 vendor/laravel/horizon/resources/js/screens/failedJobs/job.vue create mode 100644 vendor/laravel/horizon/resources/js/screens/metrics/index.vue create mode 100644 vendor/laravel/horizon/resources/js/screens/metrics/jobs.vue create mode 100644 vendor/laravel/horizon/resources/js/screens/metrics/preview.vue create mode 100644 vendor/laravel/horizon/resources/js/screens/metrics/queues.vue create mode 100644 vendor/laravel/horizon/resources/js/screens/monitoring/index.vue create mode 100644 vendor/laravel/horizon/resources/js/screens/monitoring/tag-jobs.vue create mode 100644 vendor/laravel/horizon/resources/js/screens/monitoring/tag.vue create mode 100644 vendor/laravel/horizon/resources/js/screens/recentJobs/index.vue create mode 100644 vendor/laravel/horizon/resources/sass/app-dark.scss create mode 100644 vendor/laravel/horizon/resources/sass/app.scss create mode 100644 vendor/laravel/horizon/resources/sass/base.scss create mode 100644 vendor/laravel/horizon/resources/sass/syntaxhighlight.scss create mode 100644 vendor/laravel/horizon/resources/views/layout.blade.php create mode 100644 vendor/laravel/horizon/routes/web.php create mode 100644 vendor/laravel/horizon/src/AutoScaler.php create mode 100644 vendor/laravel/horizon/src/BackgroundProcess.php create mode 100644 vendor/laravel/horizon/src/Connectors/RedisConnector.php create mode 100644 vendor/laravel/horizon/src/Console/AssetsCommand.php create mode 100644 vendor/laravel/horizon/src/Console/ContinueCommand.php create mode 100644 vendor/laravel/horizon/src/Console/HorizonCommand.php create mode 100644 vendor/laravel/horizon/src/Console/InstallCommand.php create mode 100644 vendor/laravel/horizon/src/Console/ListCommand.php create mode 100644 vendor/laravel/horizon/src/Console/PauseCommand.php create mode 100644 vendor/laravel/horizon/src/Console/PurgeCommand.php create mode 100644 vendor/laravel/horizon/src/Console/SnapshotCommand.php create mode 100644 vendor/laravel/horizon/src/Console/StatusCommand.php create mode 100644 vendor/laravel/horizon/src/Console/SupervisorCommand.php create mode 100644 vendor/laravel/horizon/src/Console/SupervisorsCommand.php create mode 100644 vendor/laravel/horizon/src/Console/TerminateCommand.php create mode 100644 vendor/laravel/horizon/src/Console/TimeoutCommand.php create mode 100644 vendor/laravel/horizon/src/Console/WorkCommand.php create mode 100644 vendor/laravel/horizon/src/Contracts/HorizonCommandQueue.php create mode 100644 vendor/laravel/horizon/src/Contracts/JobRepository.php create mode 100644 vendor/laravel/horizon/src/Contracts/MasterSupervisorRepository.php create mode 100644 vendor/laravel/horizon/src/Contracts/MetricsRepository.php create mode 100644 vendor/laravel/horizon/src/Contracts/Pausable.php create mode 100644 vendor/laravel/horizon/src/Contracts/ProcessRepository.php create mode 100644 vendor/laravel/horizon/src/Contracts/Restartable.php create mode 100644 vendor/laravel/horizon/src/Contracts/SupervisorRepository.php create mode 100644 vendor/laravel/horizon/src/Contracts/TagRepository.php create mode 100644 vendor/laravel/horizon/src/Contracts/Terminable.php create mode 100644 vendor/laravel/horizon/src/Contracts/WorkloadRepository.php create mode 100644 vendor/laravel/horizon/src/EventMap.php create mode 100644 vendor/laravel/horizon/src/Events/JobDeleted.php create mode 100644 vendor/laravel/horizon/src/Events/JobFailed.php create mode 100644 vendor/laravel/horizon/src/Events/JobPushed.php create mode 100644 vendor/laravel/horizon/src/Events/JobReleased.php create mode 100644 vendor/laravel/horizon/src/Events/JobReserved.php create mode 100644 vendor/laravel/horizon/src/Events/JobsMigrated.php create mode 100644 vendor/laravel/horizon/src/Events/LongWaitDetected.php create mode 100644 vendor/laravel/horizon/src/Events/MasterSupervisorDeployed.php create mode 100644 vendor/laravel/horizon/src/Events/MasterSupervisorLooped.php create mode 100644 vendor/laravel/horizon/src/Events/MasterSupervisorReviving.php create mode 100644 vendor/laravel/horizon/src/Events/RedisEvent.php create mode 100644 vendor/laravel/horizon/src/Events/SupervisorLooped.php create mode 100644 vendor/laravel/horizon/src/Events/SupervisorProcessRestarting.php create mode 100644 vendor/laravel/horizon/src/Events/UnableToLaunchProcess.php create mode 100644 vendor/laravel/horizon/src/Events/WorkerProcessRestarting.php create mode 100644 vendor/laravel/horizon/src/Exec.php create mode 100644 vendor/laravel/horizon/src/Horizon.php create mode 100644 vendor/laravel/horizon/src/HorizonApplicationServiceProvider.php create mode 100644 vendor/laravel/horizon/src/HorizonServiceProvider.php create mode 100644 vendor/laravel/horizon/src/Http/Controllers/Controller.php create mode 100644 vendor/laravel/horizon/src/Http/Controllers/DashboardStatsController.php create mode 100644 vendor/laravel/horizon/src/Http/Controllers/FailedJobsController.php create mode 100644 vendor/laravel/horizon/src/Http/Controllers/HomeController.php create mode 100644 vendor/laravel/horizon/src/Http/Controllers/JobMetricsController.php create mode 100644 vendor/laravel/horizon/src/Http/Controllers/MasterSupervisorController.php create mode 100644 vendor/laravel/horizon/src/Http/Controllers/MonitoringController.php create mode 100644 vendor/laravel/horizon/src/Http/Controllers/QueueMetricsController.php create mode 100644 vendor/laravel/horizon/src/Http/Controllers/RecentJobsController.php create mode 100644 vendor/laravel/horizon/src/Http/Controllers/RetryController.php create mode 100644 vendor/laravel/horizon/src/Http/Controllers/WorkloadController.php create mode 100644 vendor/laravel/horizon/src/Http/Middleware/Authenticate.php create mode 100644 vendor/laravel/horizon/src/JobId.php create mode 100644 vendor/laravel/horizon/src/JobPayload.php create mode 100644 vendor/laravel/horizon/src/Jobs/MonitorTag.php create mode 100644 vendor/laravel/horizon/src/Jobs/RetryFailedJob.php create mode 100644 vendor/laravel/horizon/src/Jobs/StopMonitoringTag.php create mode 100644 vendor/laravel/horizon/src/Listeners/ExpireSupervisors.php create mode 100644 vendor/laravel/horizon/src/Listeners/MarkJobAsComplete.php create mode 100644 vendor/laravel/horizon/src/Listeners/MarkJobAsFailed.php create mode 100644 vendor/laravel/horizon/src/Listeners/MarkJobAsReleased.php create mode 100644 vendor/laravel/horizon/src/Listeners/MarkJobAsReserved.php create mode 100644 vendor/laravel/horizon/src/Listeners/MarkJobsAsMigrated.php create mode 100644 vendor/laravel/horizon/src/Listeners/MarshalFailedEvent.php create mode 100644 vendor/laravel/horizon/src/Listeners/MonitorMasterSupervisorMemory.php create mode 100644 vendor/laravel/horizon/src/Listeners/MonitorSupervisorMemory.php create mode 100644 vendor/laravel/horizon/src/Listeners/MonitorWaitTimes.php create mode 100644 vendor/laravel/horizon/src/Listeners/PruneTerminatingProcesses.php create mode 100644 vendor/laravel/horizon/src/Listeners/SendNotification.php create mode 100644 vendor/laravel/horizon/src/Listeners/StartTimingJob.php create mode 100644 vendor/laravel/horizon/src/Listeners/StoreJob.php create mode 100644 vendor/laravel/horizon/src/Listeners/StoreMonitoredTags.php create mode 100644 vendor/laravel/horizon/src/Listeners/StoreTagsForFailedJob.php create mode 100644 vendor/laravel/horizon/src/Listeners/TrimFailedJobs.php create mode 100644 vendor/laravel/horizon/src/Listeners/TrimMonitoredJobs.php create mode 100644 vendor/laravel/horizon/src/Listeners/TrimRecentJobs.php create mode 100644 vendor/laravel/horizon/src/Listeners/UpdateJobMetrics.php create mode 100644 vendor/laravel/horizon/src/ListensForSignals.php create mode 100644 vendor/laravel/horizon/src/Lock.php create mode 100644 vendor/laravel/horizon/src/LuaScripts.php create mode 100644 vendor/laravel/horizon/src/MasterSupervisor.php create mode 100644 vendor/laravel/horizon/src/MasterSupervisorCommands/AddSupervisor.php create mode 100644 vendor/laravel/horizon/src/Notifications/LongWaitDetected.php create mode 100644 vendor/laravel/horizon/src/PhpBinary.php create mode 100644 vendor/laravel/horizon/src/ProcessInspector.php create mode 100644 vendor/laravel/horizon/src/ProcessPool.php create mode 100644 vendor/laravel/horizon/src/ProvisioningPlan.php create mode 100644 vendor/laravel/horizon/src/QueueCommandString.php create mode 100644 vendor/laravel/horizon/src/RedisHorizonCommandQueue.php create mode 100644 vendor/laravel/horizon/src/RedisQueue.php create mode 100644 vendor/laravel/horizon/src/Repositories/RedisJobRepository.php create mode 100644 vendor/laravel/horizon/src/Repositories/RedisMasterSupervisorRepository.php create mode 100644 vendor/laravel/horizon/src/Repositories/RedisMetricsRepository.php create mode 100644 vendor/laravel/horizon/src/Repositories/RedisProcessRepository.php create mode 100644 vendor/laravel/horizon/src/Repositories/RedisSupervisorRepository.php create mode 100644 vendor/laravel/horizon/src/Repositories/RedisTagRepository.php create mode 100644 vendor/laravel/horizon/src/Repositories/RedisWorkloadRepository.php create mode 100644 vendor/laravel/horizon/src/ServiceBindings.php create mode 100644 vendor/laravel/horizon/src/Stopwatch.php create mode 100644 vendor/laravel/horizon/src/Supervisor.php create mode 100644 vendor/laravel/horizon/src/SupervisorCommandString.php create mode 100644 vendor/laravel/horizon/src/SupervisorCommands/Balance.php create mode 100644 vendor/laravel/horizon/src/SupervisorCommands/ContinueWorking.php create mode 100644 vendor/laravel/horizon/src/SupervisorCommands/Pause.php create mode 100644 vendor/laravel/horizon/src/SupervisorCommands/Restart.php create mode 100644 vendor/laravel/horizon/src/SupervisorCommands/Scale.php create mode 100644 vendor/laravel/horizon/src/SupervisorCommands/Terminate.php create mode 100644 vendor/laravel/horizon/src/SupervisorFactory.php create mode 100644 vendor/laravel/horizon/src/SupervisorOptions.php create mode 100644 vendor/laravel/horizon/src/SupervisorProcess.php create mode 100644 vendor/laravel/horizon/src/SystemProcessCounter.php create mode 100644 vendor/laravel/horizon/src/Tags.php create mode 100644 vendor/laravel/horizon/src/WaitTimeCalculator.php create mode 100644 vendor/laravel/horizon/src/WorkerCommandString.php create mode 100644 vendor/laravel/horizon/src/WorkerProcess.php create mode 100644 vendor/laravel/horizon/stubs/HorizonServiceProvider.stub create mode 100644 vendor/laravel/horizon/webpack.mix.js diff --git a/public/logs/eseye-2019-09-29.log b/public/logs/eseye-2019-09-29.log index 4d73c1e..9bcba86 100644 --- a/public/logs/eseye-2019-09-29.log +++ b/public/logs/eseye-2019-09-29.log @@ -1,2 +1,3 @@ [2019-09-29 07:53:00] eseye.INFO: [http 200, ok] get -> https://esi.evetech.net/latest/route/30000142/30002269/?datasource=tranquility&flag=secure [t/e: 0.10s/100] [2019-09-29 08:40:11] eseye.INFO: [http 304, not modified] get -> https://esi.evetech.net/latest/route/30002269/30000142/?datasource=tranquility&flag=secure [t/e: 0.10s/100] +[2019-09-29 11:19:34] eseye.INFO: [http 304, not modified] get -> https://esi.evetech.net/latest/route/30002269/30000142/?datasource=tranquility&flag=secure [t/e: 0.07s/100] diff --git a/vendor/cakephp/chronos/Dockerfile b/vendor/cakephp/chronos/Dockerfile new file mode 100644 index 0000000..0d8356e --- /dev/null +++ b/vendor/cakephp/chronos/Dockerfile @@ -0,0 +1,10 @@ +# Basic docker based environment +# Necessary to trick dokku into building the documentation +# using dockerfile instead of herokuish +FROM php:7.3 + +WORKDIR /code + +VOLUME ["/code"] + +CMD [ '/bin/bash' ] diff --git a/vendor/cakephp/chronos/LICENSE b/vendor/cakephp/chronos/LICENSE new file mode 100644 index 0000000..97f3ee6 --- /dev/null +++ b/vendor/cakephp/chronos/LICENSE @@ -0,0 +1,20 @@ +Copyright (C) Brian Nesbitt +Copyright (C) Cake Software Foundation, Inc. (http://cakefoundation.org) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/cakephp/chronos/README.md b/vendor/cakephp/chronos/README.md new file mode 100644 index 0000000..70bb73f --- /dev/null +++ b/vendor/cakephp/chronos/README.md @@ -0,0 +1,147 @@ +# CakePHP Chronos + +[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE) +[![Build Status](https://img.shields.io/travis/cakephp/chronos/master.svg?style=flat-square)](https://travis-ci.org/cakephp/chronos) +[![Coverage Status](https://img.shields.io/coveralls/cakephp/chronos/master.svg?style=flat-square)](https://coveralls.io/r/cakephp/chronos?branch=master) +[![Total Downloads](https://img.shields.io/packagist/dt/cakephp/chronos.svg?style=flat-square)](https://packagist.org/packages/cakephp/chronos) + +Chronos aims to be a drop-in replacement for `nesbot/carbon`. It focuses on providing +immutable date/datetime objects. Immutable objects help ensure that datetime objects +aren't accidentally modified keeping data more predictable. + +# Installation + +Installing with composer: + +``` +$ composer require cakephp/chronos +``` + +You can then use Chronos: + +```php +modify('+2 hours'); + +// This will keep modifications +$date = new Chronos('2015-10-21 16:29:00'); +$date = $date->modify('+2 hours'); +``` + +## Getting Mutable Objects + +In the case that you need a mutable instance you can get one: + +```php +$time = new Chronos('2015-10-21 16:29:00'); +$mutable = $time->toMutable(); + +$date = new Date('2015-10-21'); +$mutable = $date->toMutable(); +``` + +## Converting Mutable Objects into Immutable ones. + +If you have a mutable object and want an immutable variant you can do the following: + +```php +$time = new MutableDateTime('2015-10-21 16:29:00'); +$fixed = $time->toImmutable(); + +$date = new MutableDate('2015-10-21'); +$fixed = $date->toImmutable(); +``` + +# Calendar Dates + +PHP only offers datetime objects as part of the native extensions. Chronos +adds a number of conveniences to the traditional DateTime object and introduces +a `Date` object. `Date` instances offer compatibility with the `ChronosInterface`, but +have their time & timezone frozen to `00:00:00 UTC`. This makes them ideal when working with +calendar dates as the time components will always match. + +```php +use Cake\Chronos\Date; + +$today = new Date(); +echo $today; +// Outputs '2015-10-21' + +echo $today->modify('+3 hours'); +// Outputs '2015-10-21' +``` + +Like instances of `Chronos`, `Date` objects are also *immutable*. The `MutableDate` class provides +a mutable variant of `Date`. + +# Documentation + +A more descriptive documentation can be found at [book.cakephp.org/chronos/1.x/en/](https://book.cakephp.org/chronos/1.x/en/). + +# API Documentation + +API documentation can be found on [api.cakephp.org/chronos](https://api.cakephp.org/chronos). diff --git a/vendor/cakephp/chronos/composer.json b/vendor/cakephp/chronos/composer.json new file mode 100644 index 0000000..6aa3f87 --- /dev/null +++ b/vendor/cakephp/chronos/composer.json @@ -0,0 +1,62 @@ +{ + "name": "cakephp/chronos", + "type": "library", + "description": "A simple API extension for DateTime.", + "keywords": [ + "date", + "time", + "DateTime" + ], + "homepage": "http://cakephp.org", + "license": "MIT", + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "http://nesbot.com" + }, + { + "name": "The CakePHP Team", + "homepage": "http://cakephp.org" + } + ], + "support": { + "issues": "https://github.com/cakephp/chronos/issues", + "irc": "irc://irc.freenode.org/cakephp", + "source": "https://github.com/cakephp/chronos" + }, + "require": { + "php": "^5.5.9|^7" + }, + "require-dev": { + "phpunit/phpunit": "<6.0 || ^7.0", + "athletic/athletic": "~0.1", + "cakephp/cakephp-codesniffer": "^3.0", + "phpbench/phpbench": "@dev", + "phpstan/phpstan": "^0.6.4" + }, + "autoload": { + "psr-4": { + "Cake\\Chronos\\": "src/" + }, + "files": ["src/carbon_compat.php"] + }, + "autoload-dev": { + "psr-4": { + "Cake\\Chronos\\Test\\": "tests/" + }, + "files": ["tests/TestCase.php"] + }, + "scripts": { + "check": [ + "@test", + "@cs-check", + "@phpstan" + ], + "test": "phpunit", + "cs-check": "phpcs", + "cs-fix": "phpcbf", + "bench": "phpbench run", + "phpstan": "phpstan analyze -c phpstan.neon -l 3 src tests" + } +} diff --git a/vendor/cakephp/chronos/docs.Dockerfile b/vendor/cakephp/chronos/docs.Dockerfile new file mode 100644 index 0000000..e881add --- /dev/null +++ b/vendor/cakephp/chronos/docs.Dockerfile @@ -0,0 +1,19 @@ +# Generate the HTML output. +FROM markstory/cakephp-docs-builder as builder + +RUN pip install git+https://github.com/sphinx-contrib/video.git@master + +COPY docs /data/docs + +RUN cd /data/docs-builder && \ + # In the future repeat website for each version + make website LANGS="en fr ja pt" SOURCE=/data/docs DEST=/data/website/1.x + +# Build a small nginx container with just the static site in it. +FROM nginx:1.15-alpine + +COPY --from=builder /data/website /data/website +COPY --from=builder /data/docs-builder/nginx.conf /etc/nginx/conf.d/default.conf + +# Move each version into place +RUN mv /data/website/1.x/html/ /usr/share/nginx/html/1.x diff --git a/vendor/cakephp/chronos/docs/config/__init__.py b/vendor/cakephp/chronos/docs/config/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vendor/cakephp/chronos/docs/config/all.py b/vendor/cakephp/chronos/docs/config/all.py new file mode 100644 index 0000000..2f802ca --- /dev/null +++ b/vendor/cakephp/chronos/docs/config/all.py @@ -0,0 +1,46 @@ +# Global configuration information used across all the +# translations of documentation. +# +# Import the base theme configuration +from cakephpsphinx.config.all import * + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# + +# The full version, including alpha/beta/rc tags. +release = '1.x' + +# The search index version. +search_version = 'chronos-1' + +# The marketing display name for the book. +version_name = '' + +# Project name shown in the black header bar +project = 'Chronos' + +# Other versions that display in the version picker menu. +version_list = [ + {'name': '1.x', 'number': '/chronos/1.x', 'title': '1.x', 'current': True}, +] + +# Languages available. +languages = ['en', 'fr', 'ja', 'pt'] + +# The GitHub branch name for this version of the docs +# for edit links to point at. +branch = 'master' + +# Current version being built +version = '1.x' + +# Language in use for this directory. +language = 'en' + +show_root_link = True + +repository = 'cakephp/chronos' + +source_path = 'docs/' diff --git a/vendor/cakephp/chronos/docs/en/conf.py b/vendor/cakephp/chronos/docs/en/conf.py new file mode 100644 index 0000000..f638bda --- /dev/null +++ b/vendor/cakephp/chronos/docs/en/conf.py @@ -0,0 +1,9 @@ +import sys, os + +# Append the top level directory of the docs, so we can import from the config dir. +sys.path.insert(0, os.path.abspath('..')) + +# Pull in all the configuration options defined in the global config file.. +from config.all import * + +language = 'en' diff --git a/vendor/cakephp/chronos/docs/en/contents.rst b/vendor/cakephp/chronos/docs/en/contents.rst new file mode 100644 index 0000000..10625a2 --- /dev/null +++ b/vendor/cakephp/chronos/docs/en/contents.rst @@ -0,0 +1,7 @@ +.. toctree:: + :maxdepth: 2 + :caption: CakePHP Chronos + + /index + + API \ No newline at end of file diff --git a/vendor/cakephp/chronos/docs/en/index.rst b/vendor/cakephp/chronos/docs/en/index.rst new file mode 100644 index 0000000..2347105 --- /dev/null +++ b/vendor/cakephp/chronos/docs/en/index.rst @@ -0,0 +1,313 @@ +Chronos +####### + +Chronos provides a zero-dependency collection of extensions to the ``DateTime`` +object. In addition to convenience methods, Chronos provides: + +* ``Date`` objects for representing calendar dates. +* Immutable date and datetime objects. +* A pluggable translation system. Only English translations are included in the + library. However, ``cakephp/i18n`` can be used for full language support. + +Installation +------------ + +To install Chronos, you should use ``composer``. From your +application's ROOT directory (where composer.json file is located) run the +following:: + + php composer.phar require cakephp/chronos "@stable" + +Overview +-------- + +Chronos provides a number of extensions to the DateTime objects provided by PHP. +Chronos provides 5 classes that cover mutable and immutable date/time variants +and extensions to ``DateInterval``. + +* ``Cake\Chronos\Chronos`` is an immutable *date and time* object. +* ``Cake\Chronos\Date`` is a immutable *date* object. +* ``Cake\Chronos\MutableDateTime`` is a mutable *date and time* object. +* ``Cake\Chronos\MutableDate`` is a mutable *date* object. +* ``Cake\Chronos\ChronosInterval`` is an extension to the ``DateInterval`` + object. + +Lastly, if you want to typehint against Chronos-provided date/time objects you +should use ``Cake\Chronos\ChronosInterface``. All of the date and time objects +implement this interface. + +Creating Instances +------------------ + +There are many ways to get an instance of Chronos or Date. There are a number of +factory methods that work with different argument sets:: + + use Cake\Chronos\Chronos; + + $now = Chronos::now(); + $today = Chronos::today(); + $yesterday = Chronos::yesterday(); + $tomorrow = Chronos::tomorrow(); + + // Parse relative expressions + $date = Chronos::parse('+2 days, +3 hours'); + + // Date and time integer values. + $date = Chronos::create(2015, 12, 25, 4, 32, 58); + + // Date or time integer values. + $date = Chronos::createFromDate(2015, 12, 25); + $date = Chronos::createFromTime(11, 45, 10); + + // Parse formatted values. + $date = Chronos::createFromFormat('m/d/Y', '06/15/2015'); + +Working with Immutable Objects +------------------------------ + +If you've used PHP's ``DateTime`` objects, you're comfortable with *mutable* +objects. Chronos offers mutable objects, but it also provides *immutable* +objects. Immutable objects create copies of objects each time an object is +modified. Because modifier methods around datetimes are not always transparent, +data can be modified accidentally or without the developer knowing. +Immutable objects prevent accidental changes to +data, and make code free of order-based dependency issues. Immutability +does mean that you will need to remember to replace variables when using +modifiers:: + + // This code doesn't work with immutable objects + $time->addDay(1); + doSomething($time); + return $time; + + // This works like you'd expect + $time = $time->addDay(1); + $time = doSomething($time); + return $time; + +By capturing the return value of each modification your code will work as +expected. If you ever have an immutable object, and want to create a mutable +one, you can use ``toMutable()``:: + + $inplace = $time->toMutable(); + +Date Objects +------------ + +PHP only provides a single DateTime object. Representing calendar dates can be +a bit awkward with this class as it includes timezones, and time components that +don't really belong in the concept of a 'day'. Chronos provides a ``Date`` +object that allows you to represent dates. The time and timezone for these +objects is always fixed to ``00:00:00 UTC`` and all formatting/difference +methods operate at the day resolution:: + + use Cake\Chronos\Date; + + $today = Date::today(); + + // Changes to the time/timezone are ignored. + $today->modify('+1 hours'); + + // Outputs '2015-12-20' + echo $today; + +Modifier Methods +---------------- + +Chronos objects provide modifier methods that let you modify the value in +a granular way:: + + // Set components of the datetime value. + $halloween = Date::create() + ->year(2015) + ->month(10) + ->day(31) + ->hour(20) + ->minute(30); + +You can also modify parts of a date relatively:: + + $future = Date::create() + ->addYear(1) + ->subMonth(2) + ->addDays(15) + ->addHours(20) + ->subMinutes(2); + +It is also possible to make big jumps to defined points in time:: + + $time = Chronos::create(); + $time->startOfDay(); + $time->endOfDay(); + $time->startOfMonth(); + $time->endOfMonth(); + $time->startOfYear(); + $time->endOfYear(); + $time->startOfWeek(); + $time->endOfWeek(); + +Or jump to specific days of the week:: + + $time->next(ChronosInterface::TUESDAY); + $time->previous(ChronosInterface::MONDAY); + +When modifying dates/times across :abbr:`DST (Daylight Savings Time)` transitions +your operations may gain/lose an additional hours resulting in hour values that +don't add up. You can avoid these issues by first changing your timezone to +``UTC``, modifying the time:: + + // Additional hour gained. + $time = new Chronos('2014-03-30 00:00:00', 'Europe/London'); + debug($time->modify('+24 hours')); // 2014-03-31 01:00:00 + + // First switch to UTC, and modify + $time = $time->setTimezone('UTC') + ->modify('+24 hours'); + +Once you are done modifying the time you can add the original timezone to get +the localized time. + +Comparison Methods +------------------ + +Once you have 2 instances of Chronos date/time objects you can compare them in +a variety of ways:: + + // Full suite of comparators exist + // ne, gt, lt, lte. + $first->eq($second); + $first->gte($second); + + // See if the current object is between two others. + $now->between($start, $end); + + // Find which argument is closest or farthest. + $now->closest($june, $november); + $now->farthest($june, $november); + +You can also inquire about where a given value falls on the calendar:: + + $now->isToday(); + $now->isYesterday(); + $now->isFuture(); + $now->isPast(); + + // Check the day of the week + $now->isWeekend(); + + // All other weekday methods exist too. + $now->isMonday(); + +You can also find out if a value was within a relative time period:: + + $time->wasWithinLast('3 days'); + $time->isWithinNext('3 hours'); + +Generating Differences +---------------------- + +In addition to comparing datetimes, calculating differences or deltas between +two values is a common task:: + + // Get a DateInterval representing the difference + $first->diff($second); + + // Get difference as a count of specific units. + $first->diffInHours($second); + $first->diffInDays($second); + $first->diffInWeeks($second); + $first->diffInYears($second); + +You can generate human readable differences suitable for use in a feed or +timeline:: + + // Difference from now. + echo $date->diffForHumans(); + + // Difference from another point in time. + echo $date->diffForHumans($other); // 1 hour ago; + +Formatting Strings +------------------ + +Chronos provides a number of methods for displaying our outputting datetime +objects:: + + // Uses the format controlled by setToStringFormat() + echo $date; + + // Different standard formats + echo $time->toAtomString(); // 1975-12-25T14:15:16-05:00 + echo $time->toCookieString(); // Thursday, 25-Dec-1975 14:15:16 EST + echo $time->toIso8601String(); // 1975-12-25T14:15:16-05:00 + echo $time->toRfc822String(); // Thu, 25 Dec 75 14:15:16 -0500 + echo $time->toRfc850String(); // Thursday, 25-Dec-75 14:15:16 EST + echo $time->toRfc1036String(); // Thu, 25 Dec 75 14:15:16 -0500 + echo $time->toRfc1123String(); // Thu, 25 Dec 1975 14:15:16 -0500 + echo $time->toRfc2822String(); // Thu, 25 Dec 1975 14:15:16 -0500 + echo $time->toRfc3339String(); // 1975-12-25T14:15:16-05:00 + echo $time->toRssString(); // Thu, 25 Dec 1975 14:15:16 -0500 + echo $time->toW3cString(); // 1975-12-25T14:15:16-05:00 + + // Get the quarter/week + echo $time->toQuarter(); // 4 + echo $time->toWeek(); // 52 + + // Generic formatting + echo $time->toTimeString(); // 14:15:16 + echo $time->toDateString(); // 1975-12-25 + echo $time->toDateTimeString(); // 1975-12-25 14:15:16 + echo $time->toFormattedDateString(); // Dec 25, 1975 + echo $time->toDayDateTimeString(); // Thu, Dec 25, 1975 2:15 PM + +Extracting Date Components +-------------------------- + +Getting parts of a date object can be done by directly accessing properties:: + + $time = new Chronos('2015-12-31 23:59:58'); + $time->year; // 2015 + $time->month; // 12 + $time->day; // 31 + $time->hour // 23 + $time->minute // 59 + $time->second // 58 + +Other properties that can be accessed are: + +- timezone +- timezoneName +- micro +- dayOfWeek +- dayOfMonth +- dayOfYear +- daysInMonth +- timestamp +- quarter + +Testing Aids +------------ + +When writing unit tests, it is helpful to fixate the current time. Chronos lets +you fix the current time for each class. As part of your test suite's bootstrap +process you can include the following:: + + Chronos::setTestNow(Chronos::now()); + MutableDateTime::setTestNow(MutableDateTime::now()); + Date::setTestNow(Date::now()); + MutableDate::setTestNow(MutableDate::now()); + +This will fix the current time of all objects to be the point at which the test +suite started. + +For example, if you fixate the ``Chronos`` to some moment in the past, any new +instance of ``Chronos`` created with ``now`` or a relative time string, will be +returned relative to the fixated time:: + + Chronos::setTestNow(new Chronos('1975-12-25 00:00:00')); + + $time = new Chronos(); // 1975-12-25 00:00:00 + $time = new Chronos('1 hour ago'); // 1975-12-24 23:00:00 + +To reset the fixation, simply call ``setTestNow()`` again with no parameter or +with ``null`` as a parameter. diff --git a/vendor/cakephp/chronos/docs/fr/conf.py b/vendor/cakephp/chronos/docs/fr/conf.py new file mode 100644 index 0000000..b02032e --- /dev/null +++ b/vendor/cakephp/chronos/docs/fr/conf.py @@ -0,0 +1,9 @@ +import sys, os + +# Append the top level directory of the docs, so we can import from the config dir. +sys.path.insert(0, os.path.abspath('..')) + +# Pull in all the configuration options defined in the global config file.. +from config.all import * + +language = 'fr' diff --git a/vendor/cakephp/chronos/docs/fr/contents.rst b/vendor/cakephp/chronos/docs/fr/contents.rst new file mode 100644 index 0000000..10625a2 --- /dev/null +++ b/vendor/cakephp/chronos/docs/fr/contents.rst @@ -0,0 +1,7 @@ +.. toctree:: + :maxdepth: 2 + :caption: CakePHP Chronos + + /index + + API \ No newline at end of file diff --git a/vendor/cakephp/chronos/docs/fr/index.rst b/vendor/cakephp/chronos/docs/fr/index.rst new file mode 100644 index 0000000..932eaf6 --- /dev/null +++ b/vendor/cakephp/chronos/docs/fr/index.rst @@ -0,0 +1,306 @@ +Chronos +####### + +Chronos fournit une collection d'extensions sans aucune dépendance pour l'objet +``DateTime``. En plus de méthodes pratiques, Chronos fournit: + +* Des objets ``Date`` pour représenter les dates du calendrier. +* Des objets immutables pour les dates et les datetimes. +* Un système de traduction intégrable. Seules les traductions anglaises sont + inclues dans la librairie. Cependant, ``cakephp/i18n`` peut être utilisé + pour un support complet d'autres langues. + +Installation +------------ + +Pour installer Chronos, vous devez utiliser ``composer``. A partir du répertoire +ROOT de votre application (où le fichier composer.json se trouve) exécutez ce +qui suit:: + + php composer.phar require cakephp/chronos "@stable" + +Vue d'Ensemble +-------------- + +Chronos fournit un certain nombre d'extensions pour les objets DateTime fournis +par PHP. Chronos fournit 5 classes qui gèrent les variantes mutables et +immutables de date/time et les extensions de ``DateInterval``. + +* ``Cake\Chronos\Chronos`` est un objet de *date et time* immutable. +* ``Cake\Chronos\Date`` est un objet de *date* immutable. +* ``Cake\Chronos\MutableDateTime`` est un objet de *date et time* mutable. +* ``Cake\Chronos\MutableDate`` est un objet de *date* mutable. +* ``Cake\Chronos\ChronosInterval`` est une extension pour l'objet + ``DateInterval``. + +Enfin si vous voulez typer selon les objets date/time fournis par Chronos, +vous devez utiliser ``Cake\Chronos\ChronosInterface``. Tous les objets date et +time implémentent cette interface. + +Créer des Instances +------------------- + +Il y a plusieurs façons d'obtenir une instance de Chronos ou de Date. Il y a +un certain nombre de méthodes factory qui fonctionnent avec des ensembles +ayant des arguments différents:: + + use Cake\Chronos\Chronos; + + $now = Chronos::now(); + $today = Chronos::today(); + $yesterday = Chronos::yesterday(); + $tomorrow = Chronos::tomorrow(); + + // Parse les expressions relatives + $date = Chronos::parse('+2 days, +3 hours'); + + // Les valeurs d'entier de Date et time. + $date = Chronos::create(2015, 12, 25, 4, 32, 58); + + // Les valeurs d'entier pour Date ou time. + $date = Chronos::createFromDate(2015, 12, 25); + $date = Chronos::createFromTime(11, 45, 10); + + // Parse les valeurs formatées. + $date = Chronos::createFromFormat('m/d/Y', '06/15/2015'); + +Travailler avec les Objets Immutables +------------------------------------- + +Si vous avez utilisé les objets ``DateTime`` de PHP, vous êtes à l'aise avec +les objets *mutable*. Chronos offre des objets mutables, mais elle fournit +également des objets *immutables*. Les objets Immutables créent des copies des +objets à chaque fois qu'un objet est modifié. Puisque les méthodes de +modification autour des datetimes ne sont pas toujours transparentes, les +données peuvent être modifiées accidentellement ou sans que le développeur ne +le sache. Les objets immutables évitent les changements accidentels des +données et permettent de s'affranchir de tout problème lié à l'ordre d'appel +des fonctions ou des dépendances. L'immutabilité signifie que vous devez vous +souvenir de remplacer les variables quand vous utilisez les modificateurs:: + + // Ce code ne fonctionne pas avec les objets immutables + $time->addDay(1); + doSomething($time); + return $time; + + // Ceci fonctionne comme vous le souhaitez + $time = $time->addDay(1); + $time = doSomething($time); + return $time; + +En capturant la valeur de retour pour chaque modification, votre code +fonctionnera comme souhaité. Si vous avez déjà créé un objet immutable, et que +vous souhaitez un objet mutable, vous pouvez utiliser ``toMutable()``:: + + $inplace = $time->toMutable(); + +Objets Date +----------- + +PHP fournit seulement un unique objet DateTime. Représenter les dates de +calendrier peut être un peu gênant avec cette classe puisqu'elle inclut les +timezones, et les composants de time qui n'appartiennent pas vraiment +dans le concept d'un 'jour'. Chronos fournit un objet ``Date`` qui vous permet +de représenter les dates. Les time et timezone pour ces objets sont toujours +fixés à ``00:00:00 UTC`` et toutes les méthodes de formatage/différence +fonctionnent au niveau du jour:: + + use Cake\Chronos\Date; + + $today = Date::today(); + + // Changements selon le time/timezone sont ignorés. + $today->modify('+1 hours'); + + // Affiche '2015-12-20' + echo $today; + +Méthodes de Modification +------------------------ + +Les objets Chronos fournissent des méthodes de modification qui vous laissent +modifier la valeur d'une façon assez précise:: + + // Définit les composants de la valeur du datetime. + $halloween = Date::create() + ->year(2015) + ->month(10) + ->day(31) + ->hour(20) + ->minute(30); + +Vous pouvez aussi modifier les parties de la date de façon relative:: + + $future = Date::create() + ->addYear(1) + ->subMonth(2) + ->addDays(15) + ->addHours(20) + ->subMinutes(2); + +Il est également possible de faire des sauts vers des points définis dans le +temps:: + + $time = Chronos::create(); + $time->startOfDay(); + $time->endOfDay(); + $time->startOfMonth(); + $time->endOfMonth(); + $time->startOfYear(); + $time->endOfYear(); + $time->startOfWeek(); + $time->endOfWeek(); + +Ou de sauter à un jour spécifique de la semaine:: + + $time->next(ChronosInterface::TUESDAY); + $time->previous(ChronosInterface::MONDAY); + +Méthodes de Comparaison +----------------------- + +Une fois que vous avez 2 instances d'objets date/time de Chronos, vous pouvez +les comparer de plusieurs façons:: + + // Suite complète de comparateurs existante + // ne, gt, lt, lte. + $first->eq($second); + $first->gte($second); + + // Regardez si l'objet courant est entre deux autres. + $now->between($start, $end); + + // Trouver l'argument le plus proche ou le plus éloigné. + $now->closest($june, $november); + $now->farthest($june, $november); + +Vous pouvez aussi vous renseigner sur le moment où une valeur donnée tombe dans +le calendrier:: + + $now->isToday(); + $now->isYesterday(); + $now->isFuture(); + $now->isPast(); + + // Vérifie le jour de la semaine + $now->isWeekend(); + + // Toutes les autres méthodes des jours de la semaine existent aussi. + $now->isMonday(); + +Vous pouvez aussi trouver si une valeur était dans une période de temps relative:: + + $time->wasWithinLast('3 days'); + $time->isWithinNext('3 hours'); + +Générer des Différences +----------------------- + +En plus de comparer les datetimes, calculer les différences ou les deltas entre +des valeurs est une tâche courante:: + + // Récupère un DateInterval représentant la différence + $first->diff($second); + + // Récupère la différence en tant que nombre d'unités spécifiques. + $first->diffInHours($second); + $first->diffInDays($second); + $first->diffInWeeks($second); + $first->diffInYears($second); + +Vous pouvez générer des différences lisibles qui peuvent vous servir pour +l'utilisation d'un feed ou d'une timeline:: + + // Différence à partir de maintenant. + echo $date->diffForHumans(); + + // Différence à partir d'un autre point du temps. + echo $date->diffForHumans($other); // 1 hour ago; + +Formater les Chaînes +-------------------- + +Chronos fournit un certain nombre de méthodes pour afficher nos sorties d'objets +datetime:: + + // Utilise le format contrôlé par setToStringFormat() + echo $date; + + // Différents formats standards + echo $time->toAtomString(); // 1975-12-25T14:15:16-05:00 + echo $time->toCookieString(); // Thursday, 25-Dec-1975 14:15:16 EST + echo $time->toIso8601String(); // 1975-12-25T14:15:16-05:00 + echo $time->toRfc822String(); // Thu, 25 Dec 75 14:15:16 -0500 + echo $time->toRfc850String(); // Thursday, 25-Dec-75 14:15:16 EST + echo $time->toRfc1036String(); // Thu, 25 Dec 75 14:15:16 -0500 + echo $time->toRfc1123String(); // Thu, 25 Dec 1975 14:15:16 -0500 + echo $time->toRfc2822String(); // Thu, 25 Dec 1975 14:15:16 -0500 + echo $time->toRfc3339String(); // 1975-12-25T14:15:16-05:00 + echo $time->toRssString(); // Thu, 25 Dec 1975 14:15:16 -0500 + echo $time->toW3cString(); // 1975-12-25T14:15:16-05:00 + + // Récupère le trimestre + echo $time->toQuarter(); // 4; + // Récupère la semaine + echo $time->toWeek(); // 52; + + // Formatage générique + echo $time->toTimeString(); // 14:15:16 + echo $time->toDateString(); // 1975-12-25 + echo $time->toDateTimeString(); // 1975-12-25 14:15:16 + echo $time->toFormattedDateString(); // Dec 25, 1975 + echo $time->toDayDateTimeString(); // Thu, Dec 25, 1975 2:15 PM + +Extraire des Fragments de Date +------------------------------ + +Il est possible de récupérer des parties d'un objet date en accédant directement +à ses propriétés:: + + $time = new Chronos('2015-12-31 23:59:58'); + $time->year; // 2015 + $time->month; // 12 + $time->day; // 31 + $time->hour // 23 + $time->minute // 59 + $time->second // 58 + +Les autres propriétés accessibles sont: + +- timezone +- timezoneName +- micro +- dayOfWeek +- dayOfMonth +- dayOfYear +- daysInMonth +- timestamp +- quarter + +Aides aux Tests +--------------- + +Quand vous écrivez des tests unitaires, il peut être utile de fixer le *time* +courant. Chronos vous permet de fixer le time courant pour chaque classe. +Pour l'intégrer dans votre processus de démarrage (bootstrap) de suite de tests, +vous pouvez inclure ce qui suit:: + + Chronos::setTestNow(Chronos::now()); + MutableDateTime::setTestNow(MutableDateTime::now()); + Date::setTestNow(Date::now()); + MutableDate::setTestNow(MutableDate::now()); + +Ceci va fixer le time courant de tous les objets selon le moment où la suite de +tests a démarré. + +Par exemple, si vous fixez le ``Chronos`` à un moment du passé, chaque nouvelle +instance de ``Chronos`` créée avec ``now`` ou une chaine de temps relative, sera +retournée relativement à la date fixée:: + + Chronos::setTestNow(new Chronos('1975-12-25 00:00:00')); + + $time = new Chronos(); // 1975-12-25 00:00:00 + $time = new Chronos('1 hour ago'); // 1975-12-24 23:00:00 + +Pour réinitialiser la "fixation" du temps, appelez simplement ``setTestNow()`` +sans paramètre ou avec ``null`` comme paramètre. diff --git a/vendor/cakephp/chronos/docs/ja/conf.py b/vendor/cakephp/chronos/docs/ja/conf.py new file mode 100644 index 0000000..5871da6 --- /dev/null +++ b/vendor/cakephp/chronos/docs/ja/conf.py @@ -0,0 +1,9 @@ +import sys, os + +# Append the top level directory of the docs, so we can import from the config dir. +sys.path.insert(0, os.path.abspath('..')) + +# Pull in all the configuration options defined in the global config file.. +from config.all import * + +language = 'ja' diff --git a/vendor/cakephp/chronos/docs/ja/contents.rst b/vendor/cakephp/chronos/docs/ja/contents.rst new file mode 100644 index 0000000..10625a2 --- /dev/null +++ b/vendor/cakephp/chronos/docs/ja/contents.rst @@ -0,0 +1,7 @@ +.. toctree:: + :maxdepth: 2 + :caption: CakePHP Chronos + + /index + + API \ No newline at end of file diff --git a/vendor/cakephp/chronos/docs/ja/index.rst b/vendor/cakephp/chronos/docs/ja/index.rst new file mode 100644 index 0000000..e17578b --- /dev/null +++ b/vendor/cakephp/chronos/docs/ja/index.rst @@ -0,0 +1,304 @@ +Chronos +####### + +Chronos (クロノス) は、 ``DateTime`` オブジェクトへの拡張の依存関係の無いコレクションを提供します。 +便利なメソッドに加えて、Chronos は以下を提供します。 + +* カレンダー日付のための ``Date`` オブジェクト +* イミュータブルな日付と日時オブジェクト +* プラグインのような翻訳システム。ライブラリーは英語のみの翻訳を含んでいます。 + しかし、全ての言語サポートのために、 ``cakephp/i18n`` を使うことができます。 + +インストール +------------ + +Chronos をインストールするためには、 ``composer`` を利用することができます。 +アプリケーションの ROOT ディレクトリー(composer.json ファイルのある場所) +で以下のように実行します。 :: + + php composer.phar require cakephp/chronos "@stable" + +概要 +---- + +Chronos は PHP が提供する DateTime オブジェクトのいくつかの拡張を提供します。 +Chronos は ``DateInterval`` の拡張機能および、ミュータブル(変更可能)と +イミュータブル(変更不可)な 日付/時刻 の派生系をカバーする5つのクラスを提供します。 + +* ``Cake\Chronos\Chronos`` はイミュータブルな *日付と時刻* オブジェクト。 +* ``Cake\Chronos\Date`` はイミュータブルな *日付* オブジェクト。 +* ``Cake\Chronos\MutableDateTime`` はミュータブルな *日付と時刻* オブジェクト。 +* ``Cake\Chronos\MutableDate`` はミュータブルな *日付* オブジェクト。 +* ``Cake\Chronos\ChronosInterval`` は ``DateInterval`` の拡張機能。 + +最後に、もしあなたが Chronos が提供する 日付/時刻 のオブジェクトに対して型宣言を行ないたい場合、 +``Cake\Chronos\ChronosInterface`` を使用することができます。 +全ての日付と時間のオブジェクトはこのインターフェイスを実装しています。 + +インスタンスの作成 +------------------ + +Chronos または Date のインスタンスを取得するためには、多くの方法があります。 +異なる引数セットで動作する多くのファクトリーメソッドがあります。 :: + + use Cake\Chronos\Chronos; + + $now = Chronos::now(); + $today = Chronos::today(); + $yesterday = Chronos::yesterday(); + $tomorrow = Chronos::tomorrow(); + + // 相対式のパース + $date = Chronos::parse('+2 days, +3 hours'); + + // 日付と時間の整数値 + $date = Chronos::create(2015, 12, 25, 4, 32, 58); + + // 日付または時間の整数値 + $date = Chronos::createFromDate(2015, 12, 25); + $date = Chronos::createFromTime(11, 45, 10); + + // 整形した値にパース + $date = Chronos::createFromFormat('m/d/Y', '06/15/2015'); + +イミュータブルオブジェクトの動作 +-------------------------------- + +もしあなたが、PHP の ``DateTime`` オブジェクトを使用したことがあるなら、 +*ミュータブル* オブジェクトは簡単に使用できます。 +Chronos はミュータブルオブジェクトを提供しますが、これは *イミュータブル* オブジェクトにもなります。 +イミュータブルオブジェクトはオブジェクトが変更されるたびにオブジェクトのコピーを作ります。 +なぜなら、日時周りの変更メソッドは必ずしも透明でないため、データが誤って、 +または開発者が知らない内に変更してしまうからです。 +イミュータブルオブジェクトはデータが誤って変更されることを防止し、 +順序ベースの依存関係の問題の無いコードを作ります。 +不変性は、変更時に忘れずに変数を置き換える必要があることを意味しています。 :: + + // このコードはイミュータブルオブジェクトでは動作しません + $time->addDay(1); + doSomething($time); + return $time + + // このコードは期待通りに動作します + $time = $time->addDay(1); + $time = doSomething($time); + return $time + +各修正の戻り値をキャプチャーすることによって、コードは期待通りに動作します。 +イミュータブルオブジェクトを持っていて、ミュータブルオブジェクトを作りたい場合、 +``toMutable()`` が使用できます。 :: + + $inplace = $time->toMutable(); + +日付オブジェクト +------------------ + +PHP は単純な DateTime オブジェクトだけを提供します。このクラスのカレンダー日付の表現で、 +タイムゾーンおよび、本当に「日」の概念に属していないタイムコンポーネントを含むと、 +少し厄介な可能性があります。 +Chronos は日時表現のための ``Date`` オブジェクトを提供します。 +これらのオブジェクトの時間とタイムゾーンは常に ``00:00:00 UTC`` に固定されており、 +全ての書式/差分のメソッドは一日単位で動作します。 :: + + use Cake\Chronos\Date; + + $today = Date::today(); + + // 時間/タイムゾーンの変更は無視されます + $today->modify('+1 hours'); + + // 出力 '2015-12-20' + echo $today; + +変更メソッド +------------ + +Chronos オブジェクトは細やかに値を変更できるメソッドを提供します。 :: + + // 日時の値のコンポーネントを設定 + $halloween = Date::create() + ->year(2015) + ->month(10) + ->day(31) + ->hour(20) + ->minute(30); + +また、日付部分を相対日付に変更することもできます。 :: + + $future = Date::create() + ->addYear(1) + ->subMonth(2) + ->addDays(15) + ->addHours(20) + ->subMinutes(2); + +また、ある時間の中で、定義された時点に飛ぶことも可能です。 :: + + $time = Chronos::create(); + $time->startOfDay(); + $time->endOfDay(); + $time->startOfMonth(); + $time->endOfMonth(); + $time->startOfYear(); + $time->endOfYear(); + $time->startOfWeek(); + $time->endOfWeek(); + +また、1週間中の特定の日にも飛べます。 :: + + $time->next(ChronosInterface::TUESDAY); + $time->previous(ChronosInterface::MONDAY); + +:abbr:`DST (夏時間)` の遷移の前後で日付/時間を変更すると、 +あなたの操作で時間が増減するかもしれませんが、その結果、意図しない時間の値になります。 +これらの問題を回避するには、最初にタイムゾーンを ``UTC`` に変更し、時間を変更します。 :: + + // 余分な時間が追加されました + $time = new Chronos('2014-03-30 00:00:00', 'Europe/London'); + debug($time->modify('+24 hours')); // 2014-03-31 01:00:00 + + // 最初に UTC に切り替え、そして更新 + $time = $time->setTimezone('UTC') + ->modify('+24 hours'); + +時間を変更すると、元のタイムゾーンを追加してローカライズされた時間を取得することができます。 + +比較メソッド +------------ + +Chronos の日付/時間オブジェクトの2つのインスタンスを様々な方法で比較することができます。 :: + + // 比較のフルセットが存在します + // ne, gt, lt, lte. + $first->eq($second); + $first->gte($second); + + // カレントオブジェクトが2つのオブジェクトの間にあるかどうかを確認します。 + $now->between($start, $end); + + // どちらの引数が最も近い (closest) か、または最も遠い (farthest) かを見つけます。 + $now->closest($june, $november); + $now->farthest($june, $november); + +また、与えられた値のカレンダーに当たる場所について問い合わせできます。 :: + + $now->isToday(); + $now->isYesterday(); + $now->isFuture(); + $now->isPast(); + + // 曜日をチェック + $now->isWeekend(); + + // 他の曜日のメソッドも全て存在します。 + $now->isMonday(); + +また、値が相対的な期間内にあったかどうかを見つけることができます。 :: + + $time->wasWithinLast('3 days'); + $time->isWithinNext('3 hours'); + +差の生成 +-------- + +日時比較に加えて、2つの値の差や変化の計算は一般的なタスクです。 :: + + // 差をあらわす DateInterval を取得 + $first->diff($second); + + // 特定の単位での差を取得 + $first->diffInHours($second); + $first->diffInDays($second); + $first->diffInWeeks($second); + $first->diffInYears($second); + +フィードやタイムラインで使用するのに適した、人が読める形式の差を生成することができます。 :: + + // 現在からの差 + echo $date->diffForHumans(); + + // 別の時点からの差 + echo $date->diffForHumans($other); // 1時間前; + +フォーマットの設定 +------------------ + +Chronos は、出力した日時オブジェクトを表示するための多くのメソッドを提供します。 :: + + // setToStringFormat() が制御するフォーマットを使用します + echo $date; + + // 別の標準フォーマット + echo $time->toAtomString(); // 1975-12-25T14:15:16-05:00 + echo $time->toCookieString(); // Thursday, 25-Dec-1975 14:15:16 EST + echo $time->toIso8601String(); // 1975-12-25T14:15:16-05:00 + echo $time->toRfc822String(); // Thu, 25 Dec 75 14:15:16 -0500 + echo $time->toRfc850String(); // Thursday, 25-Dec-75 14:15:16 EST + echo $time->toRfc1036String(); // Thu, 25 Dec 75 14:15:16 -0500 + echo $time->toRfc1123String(); // Thu, 25 Dec 1975 14:15:16 -0500 + echo $time->toRfc2822String(); // Thu, 25 Dec 1975 14:15:16 -0500 + echo $time->toRfc3339String(); // 1975-12-25T14:15:16-05:00 + echo $time->toRssString(); // Thu, 25 Dec 1975 14:15:16 -0500 + echo $time->toW3cString(); // 1975-12-25T14:15:16-05:00 + + // クォーター/週数を取得 + echo $time->toQuarter(); // 4; + echo $time->toWeek(); // 52 + + // 一般的なフォーマット + echo $time->toTimeString(); // 14:15:16 + echo $time->toDateString(); // 1975-12-25 + echo $time->toDateTimeString(); // 1975-12-25 14:15:16 + echo $time->toFormattedDateString(); // Dec 25, 1975 + echo $time->toDayDateTimeString(); // Thu, Dec 25, 1975 2:15 PM + +日付要素の抽出 +-------------- + +日付オブジェクトのプロパティーに直接アクセスして要素を取得することができます。 :: + + $time = new Chronos('2015-12-31 23:59:58'); + $time->year; // 2015 + $time->month; // 12 + $time->day; // 31 + $time->hour // 23 + $time->minute // 59 + $time->second // 58 + +以下のプロパティーにもアクセスできます。 : + +- timezone +- timezoneName +- micro +- dayOfWeek +- dayOfMonth +- dayOfYear +- daysInMonth +- timestamp +- quarter + +テストの支援 +------------ + +単体テストを書いている時、現在時刻を固定すると便利です。Chronos は、 +各クラスの現在時刻を修正することができます。 +テストスイートの bootstrap 処理に以下を含めることができます。 :: + + Chronos::setTestNow(Chronos::now()); + MutableDateTime::setTestNow(MutableDateTime::now()); + Date::setTestNow(Date::now()); + MutableDate::setTestNow(MutableDate::now()); + +これでテストスイートが開始された時点で全てのオブジェクトの現在時刻を修正します。 + +例えば、 ``Chronos`` を過去のある瞬間に固定した場合、新たな ``Chronos`` +のインスタンスが生成する ``now`` または相対時刻の文字列は、 +固定された時刻の相対を返却します。 :: + + Chronos::setTestNow(new Chronos('1975-12-25 00:00:00')); + + $time = new Chronos(); // 1975-12-25 00:00:00 + $time = new Chronos('1 hour ago'); // 1975-12-24 23:00:00 + +固定をリセットするには、 ``setTestNow()`` をパラメーター無し、または ``null`` を設定して +再び呼び出してください。 diff --git a/vendor/cakephp/chronos/docs/pt/conf.py b/vendor/cakephp/chronos/docs/pt/conf.py new file mode 100644 index 0000000..9e22cb0 --- /dev/null +++ b/vendor/cakephp/chronos/docs/pt/conf.py @@ -0,0 +1,9 @@ +import sys, os + +# Append the top level directory of the docs, so we can import from the config dir. +sys.path.insert(0, os.path.abspath('..')) + +# Pull in all the configuration options defined in the global config file.. +from config.all import * + +language = 'pt' diff --git a/vendor/cakephp/chronos/docs/pt/contents.rst b/vendor/cakephp/chronos/docs/pt/contents.rst new file mode 100644 index 0000000..10625a2 --- /dev/null +++ b/vendor/cakephp/chronos/docs/pt/contents.rst @@ -0,0 +1,7 @@ +.. toctree:: + :maxdepth: 2 + :caption: CakePHP Chronos + + /index + + API \ No newline at end of file diff --git a/vendor/cakephp/chronos/docs/pt/index.rst b/vendor/cakephp/chronos/docs/pt/index.rst new file mode 100644 index 0000000..ebf4565 --- /dev/null +++ b/vendor/cakephp/chronos/docs/pt/index.rst @@ -0,0 +1,285 @@ +Chronos +####### + +O Chronos oferece uma coleção independente de extensões para lidar com o objeto +``DateTime``. Além de métodos de conveniência, o Chronos oferece: + +* Objetos ``Date`` para representar datas de calendário. +* Objetos *date* e *datetime* imutáveis. +* Um sistema de tradução acoplável. Apenas traduções em inglês estão incluídas + na biblioteca. Todavia, ``cakephp/i18n`` pode ser usado para suporte completo + a idiomas. + +Instalação +---------- + +Para instalar o Chronos, você deve usar o ``composer``. A partir do diretório +*ROOT* de sua aplicação (local onde o arquivo composer.json está localizado) +execute o seguinte comando:: + + php composer.phar require cakephp/chronos "@stable" + +Visão geral +----------- + +Chronos oferece extensões para lidar com objetos *DateTime* do PHP. 5 classes +cobrem variantes de data/hora mutáveis e imutáveis e uma extensão do objeto +``DateInterval``. + +* ``Cake\Chronos\Chronos`` é um objeto *date & time* imutável. +* ``Cake\Chronos\Date`` é um objeto *date* imutável. +* ``Cake\Chronos\MutableDateTime`` é um objeto *date and time* mutável. +* ``Cake\Chronos\MutableDate`` é um objeto *date* mutável. +* ``Cake\Chronos\ChronosInterval`` é uma extensão do objeto ``DateInterval``. + +Por último, se você quiser usar o *typehint* em objetos do Chronos, será preciso +usar a interface ``Cake\Chronos\ChronosInterface``. Todos os objetos de data e +hora implementam essa interface. + +Criando instâncias +------------------ + +Existem várias maneiras de criar instâncias do Chronos ou mesmo, do objeto Date. +Um número considerável de métodos padrão que funcionam com conjuntos diferentes +de argumentos:: + + use Cake\Chronos\Chronos; + + $now = Chronos::now(); + $today = Chronos::today(); + $yesterday = Chronos::yesterday(); + $tomorrow = Chronos::tomorrow(); + + // Interpreta expressões relativas. + $date = Chronos::parse('+2 days, +3 hours'); + + // Valores inteiros de Date e Time. + $date = Chronos::create(2015, 12, 25, 4, 32, 58); + + // Valores inteiros de Date ou Time. + $date = Chronos::createFromDate(2015, 12, 25); + $date = Chronos::createFromTime(11, 45, 10); + + // Interpreta valores formatados. + $date = Chronos::createFromFormat('m/d/Y', '06/15/2015'); + +Trabalhando com objetos imutáveis +--------------------------------- + +Se você é familiarizado com os objetos ``DateTime`` do PHP, você se sentirá +confortável com objetos *mutáveis*. Além de objetos mutáveis o Chronos também +oferece objetos imutáveis que por sua vez criam cópias de objetos toda vez que +um objeto é modificado. Devido ao fato de que metodos modificadores relativos +a data e hora nem sempre serem transparentes, informações podem ser modificadas +acidentalmente ou sem que o desenvolvedor saiba. Objetos imutáveis previnem +essas alterações acidentais nos dados. Imutabilidade significa que você deverá +lembrar de substituir variáveis usando modificadores:: + + // Esse código não funciona com objetos imutáveis + $time->addDay(1); + doSomething($time); + return $time; + + // Esse funciona como o esperado + $time = $time->addDay(1); + $time = doSomething($time); + return $time; + +Ao capturar o valor de retorno de cada modificação, seu código funcionará como o +esperado. Se você tem um objeto imutável e quer criar um mutável a partir do +mesmo, use ``toMutable()``:: + + $inplace = $time->toMutable(); + +Objetos Date +------------ + +O PHP disponibiliza um único objeto DateTime. Representar datas de calendário +pode ser um pouco desconfortável por essa classe, uma vez que ela inclui +*timezones* e componentes de hora que realmente não se encaixam no conceito de +'dia'. O Chronos oferece um objeto ``Date`` para representar datas. A hora e a +zona desse objeto é sempre fixado em ``00:00:00 UTC`` e todos os métodos de +formatação/diferença operam sob a resolução de dia:: + + use Cake\Chronos\Date; + + $today = Date::today(); + + // Mudanças na hora/timezone são ignoradas + $today->modify('+1 hours'); + + // Exibe '2016-08-15' + echo $today; + +Métodos modificadores +--------------------- + +Objetos Chronos disponibilizam métodos que permitem a modificação de valores de +forma granular:: + + // Define componentes do valor datetime + $halloween = Date::create() + ->year(2015) + ->month(10) + ->day(31) + ->hour(20) + ->minute(30); + +Você também pode modificar partes da data relativamente:: + + $future = Date::create() + ->addYear(1) + ->subMonth(2) + ->addDays(15) + ->addHours(20) + ->subMinutes(2); + +Também é possível realizar grandes saltos para períodos definidos no tempo:: + + $time = Chronos::create(); + $time->startOfDay(); + $time->startOfMonth(); + $time->endOfMonth(); + $time->endOfYear(); + $time->startOfWeek(); + $time->endOfWeek(); + +Ou ainda para dias específicos da semana:: + + $time->next(ChronosInterface::TUESDAY); + $time->previous(ChronosInterface::MONDAY); + +Métodos de comparação +--------------------- + +Uma vez que você possui 2 instâncias de objetos data/hora do Chronos, é possível +compará-los de várias maneiras:: + + // Coleção completa de comparadores + // ne, gt, lt, lte. + $first->eq($second); + $first->gte($second); + + // Veja se o objeto atual está entre outros + $now->between($start, $end); + + // Encontre qual argumento está mais perto ou mais longe + $now->closest($june, $november); + $now->farthest($june, $november); + +Você também pode arguir sobre quando um determinado valor cai no calendário:: + + $now->isToday(); + $now->isYesterday(); + $now->isFuture(); + $now->isPast(); + + // Verifica se o dia é no final de semana + $now->isWeekend(); + + // Todos os métodos para outros dias da semana existem também + $now->isMonday(); + +Você também pode verificar se um determinado valor está dentro de um período de +tempo relativo:: + + $time->wasWithinLast('3 days'); + $time->isWithinNext('3 hours'); + +Gerando diferenças +------------------ + +Em adição à comparação de *datetimes*, calcular diferenças ou deltas entre +valores é uma tarefa simples:: + + // Recebe um DateInterval representando a diferença + $first->diff($second); + + // Recebe a diferença como um contador de unidades específicas + $first->diffInHours($second); + $first->diffInDays($second); + $first->diffInWeeks($second); + $first->diffInYears($second); + +Você pode gerar diferenças de fácil leitura para humanos para usar em um *feed* +ou *timeline*:: + + // Diferença em relação ao momento atual + echo $date->diffForHumans(); + + // Diferença em relação a outro período no tempo + echo $date->diffForHumans($other); // 1 hora atrás; + +Formatando strings +------------------ + +O Chronos disponibiliza métodos para exibir nossos objetos *datetime*:: + + // Usa o formato controlado por setToStringFormat() + echo $date; + + // Diferentes padrões de formato + echo $time->toAtomString(); // 1975-12-25T14:15:16-05:00 + echo $time->toCookieString(); // Thursday, 25-Dec-1975 14:15:16 EST + echo $time->toIso8601String(); // 1975-12-25T14:15:16-05:00 + echo $time->toRfc822String(); // Thu, 25 Dec 75 14:15:16 -0500 + echo $time->toRfc850String(); // Thursday, 25-Dec-75 14:15:16 EST + echo $time->toRfc1036String(); // Thu, 25 Dec 75 14:15:16 -0500 + echo $time->toRfc1123String(); // Thu, 25 Dec 1975 14:15:16 -0500 + echo $time->toRfc2822String(); // Thu, 25 Dec 1975 14:15:16 -0500 + echo $time->toRfc3339String(); // 1975-12-25T14:15:16-05:00 + echo $time->toRssString(); // Thu, 25 Dec 1975 14:15:16 -0500 + echo $time->toW3cString(); // 1975-12-25T14:15:16-05:00 + + // Recebe o trimestre + echo $time->toQuarter(); // 4; + +Extraindo componentes de data +----------------------------- + +Podemos receber partes de um objeto *date* acessando propriedades:: + + $time = new Chronos('2015-12-31 23:59:58'); + $time->year; // 2015 + $time->month; // 12 + $time->day; // 31 + $time->hour // 23 + $time->minute // 59 + $time->second // 58 + +Outras propriedades que podem ser acessadas são: + +- timezone +- timezoneName +- micro +- dayOfWeek +- dayOfMonth +- dayOfYear +- daysInMonth +- timestamp +- quarter + +Auxílio para testes +------------------- + +Ao escrever testes unitários, fixar a hora atual é bastante útil. O Chronos +lhe permite fixar a hora atual para cada classe. Como parte das suas ferramentas +de testes, você pode incluir o seguinte:: + + Chronos::setTestNow(Chronos::now()); + MutableDateTime::setTestNow(MutableDateTime::now()); + Date::setTestNow(Date::now()); + MutableDate::setTestNow(MutableDate::now()); + +Isso irá corrigir a hora atual de todos os objetos para o momento em que o +processo de testes foi iniciado. + +Por exemplo, se você fixar o ``Chronos`` em algum momento no passado, qualquer +nova instância do ``Chronos`` criada com ``now`` ou uma *string* de tempo +relativa, teremos um retorno referente ao tempo fixado:: + + Chronos::setTestNow(new Chronos('1975-12-25 00:00:00')); + + $time = new Chronos(); // 1975-12-25 00:00:00 + $time = new Chronos('1 hour ago'); // 1975-12-24 23:00:00 + diff --git a/vendor/cakephp/chronos/src/Chronos.php b/vendor/cakephp/chronos/src/Chronos.php new file mode 100644 index 0000000..625c999 --- /dev/null +++ b/vendor/cakephp/chronos/src/Chronos.php @@ -0,0 +1,212 @@ + + * @link http://cakephp.org CakePHP(tm) Project + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +namespace Cake\Chronos; + +use DateTimeImmutable; +use DateTimeZone; + +/** + * An Immutable extension on the native DateTime object. + * + * Adds a number of convenience APIs methods and the ability + * to easily convert into a mutable object. + * + * @property-read int $year + * @property-read int $yearIso + * @property-read int $month + * @property-read int $day + * @property-read int $hour + * @property-read int $minute + * @property-read int $second + * @property-read int $timestamp seconds since the Unix Epoch + * @property-read DateTimeZone $timezone the current timezone + * @property-read DateTimeZone $tz alias of timezone + * @property-read int $micro + * @property-read int $dayOfWeek 1 (for Monday) through 7 (for Sunday) + * @property-read int $dayOfYear 0 through 365 + * @property-read int $weekOfMonth 1 through 5 + * @property-read int $weekOfYear ISO-8601 week number of year, weeks starting on Monday + * @property-read int $daysInMonth number of days in the given month + * @property-read int $age does a diffInYears() with default parameters + * @property-read int $quarter the quarter of this instance, 1 - 4 + * @property-read int $offset the timezone offset in seconds from UTC + * @property-read int $offsetHours the timezone offset in hours from UTC + * @property-read bool $dst daylight savings time indicator, true if DST, false otherwise + * @property-read bool $local checks if the timezone is local, true if local, false otherwise + * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise + * @property-read string $timezoneName + * @property-read string $tzName + */ +class Chronos extends DateTimeImmutable implements ChronosInterface +{ + use Traits\ComparisonTrait; + use Traits\DifferenceTrait; + use Traits\FactoryTrait; + use Traits\FormattingTrait; + use Traits\MagicPropertyTrait; + use Traits\ModifierTrait; + use Traits\RelativeKeywordTrait; + use Traits\TimezoneTrait; + + /** + * A test ChronosInterface instance to be returned when now instances are created + * + * There is a single test now for all date/time classes provided by Chronos. + * This aims to emulate stubbing out 'now' which is a single global fact. + * + * @var \Cake\Chronos\ChronosInterface + */ + protected static $testNow; + + /** + * Format to use for __toString method when type juggling occurs. + * + * @var string + */ + protected static $toStringFormat = ChronosInterface::DEFAULT_TO_STRING_FORMAT; + + /** + * Create a new Chronos instance. + * + * Please see the testing aids section (specifically static::setTestNow()) + * for more on the possibility of this constructor returning a test instance. + * + * @param string|null $time Fixed or relative time + * @param \DateTimeZone|string|null $tz The timezone for the instance + */ + public function __construct($time = 'now', $tz = null) + { + if ($tz !== null) { + $tz = $tz instanceof DateTimeZone ? $tz : new DateTimeZone($tz); + } + + static::$_lastErrors = []; + $testNow = static::getTestNow(); + if ($testNow === null) { + parent::__construct($time === null ? 'now' : $time, $tz); + + return; + } + + $relative = static::hasRelativeKeywords($time); + if (!empty($time) && $time !== 'now' && !$relative) { + parent::__construct($time, $tz); + + return; + } + + $testNow = clone $testNow; + if ($relative) { + $testNow = $testNow->modify($time); + } + + $relativetime = static::isTimeExpression($time); + if (!$relativetime && $tz !== $testNow->getTimezone()) { + $testNow = $testNow->setTimezone($tz === null ? date_default_timezone_get() : $tz); + } + + $time = $testNow->format('Y-m-d H:i:s.u'); + parent::__construct($time, $tz); + } + + /** + * Create a new mutable instance from current immutable instance. + * + * @return \Cake\Chronos\MutableDateTime + */ + public function toMutable() + { + return MutableDateTime::instance($this); + } + + /** + * Get a copy of the instance + * + * @return $this + */ + public function copy() + { + return $this; + } + + /** + * Set a ChronosInterface instance (real or mock) to be returned when a "now" + * instance is created. The provided instance will be returned + * specifically under the following conditions: + * - A call to the static now() method, ex. ChronosInterface::now() + * - When a null (or blank string) is passed to the constructor or parse(), ex. new Chronos(null) + * - When the string "now" is passed to the constructor or parse(), ex. new Chronos('now') + * - When a string containing the desired time is passed to ChronosInterface::parse() + * + * Note the timezone parameter was left out of the examples above and + * has no affect as the mock value will be returned regardless of its value. + * + * To clear the test instance call this method using the default + * parameter of null. + * + * @param \Cake\Chronos\ChronosInterface|string|null $testNow The instance to use for all future instances. + * @return void + */ + public static function setTestNow($testNow = null) + { + static::$testNow = is_string($testNow) ? static::parse($testNow) : $testNow; + } + + /** + * Get the ChronosInterface instance (real or mock) to be returned when a "now" + * instance is created. + * + * @return \Cake\Chronos\ChronosInterface The current instance used for testing + */ + public static function getTestNow() + { + return static::$testNow; + } + + /** + * Determine if there is a valid test instance set. A valid test instance + * is anything that is not null. + * + * @return bool True if there is a test instance, otherwise false + */ + public static function hasTestNow() + { + return static::$testNow !== null; + } + + /** + * Return properties for debugging. + * + * @return array + */ + public function __debugInfo() + { + // Conditionally add properties if state exists to avoid + // errors when using a debugger. + $vars = get_object_vars($this); + + $properties = [ + 'hasFixedNow' => static::hasTestNow(), + ]; + + if (isset($vars['date'])) { + $properties['time'] = $this->format('Y-m-d H:i:s.u'); + } + + if (isset($vars['timezone'])) { + $properties['timezone'] = $this->getTimezone()->getName(); + } + + return $properties; + } +} diff --git a/vendor/cakephp/chronos/src/ChronosInterface.php b/vendor/cakephp/chronos/src/ChronosInterface.php new file mode 100644 index 0000000..ce89c8f --- /dev/null +++ b/vendor/cakephp/chronos/src/ChronosInterface.php @@ -0,0 +1,1254 @@ + + * @link http://cakephp.org CakePHP(tm) Project + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +namespace Cake\Chronos; + +use DateTimeInterface; +use DateTimeZone; + +/** + * An extension to the DateTimeInterface for a friendlier API + * + * @method static modify(string $relative) + */ +interface ChronosInterface extends DateTimeInterface +{ + /** + * The day constants + */ + const MONDAY = 1; + const TUESDAY = 2; + const WEDNESDAY = 3; + const THURSDAY = 4; + const FRIDAY = 5; + const SATURDAY = 6; + const SUNDAY = 7; + + /** + * Number of X in Y + */ + const YEARS_PER_CENTURY = 100; + const YEARS_PER_DECADE = 10; + const MONTHS_PER_YEAR = 12; + const MONTHS_PER_QUARTER = 3; + const WEEKS_PER_YEAR = 52; + const DAYS_PER_WEEK = 7; + const HOURS_PER_DAY = 24; + const MINUTES_PER_HOUR = 60; + const SECONDS_PER_MINUTE = 60; + + /** + * Default format to use for __toString method when type juggling occurs. + * + * @var string + */ + const DEFAULT_TO_STRING_FORMAT = 'Y-m-d H:i:s'; + + /** + * Get a ChronosInterface instance for the current date and time + * + * @param \DateTimeZone|string|null $tz The DateTimeZone object or timezone name. + * @return static + */ + public static function now($tz); + + /** + * Get a copy of the instance + * + * @return static + */ + public function copy(); + + /** + * Set the instance's year + * + * @param int $value The year value. + * @return static + */ + public function year($value); + + /** + * Set the instance's month + * + * @param int $value The month value. + * @return static + */ + public function month($value); + + /** + * Set the instance's day + * + * @param int $value The day value. + * @return static + */ + public function day($value); + + /** + * Set the instance's hour + * + * @param int $value The hour value. + * @return static + */ + public function hour($value); + + /** + * Set the instance's minute + * + * @param int $value The minute value. + * @return static + */ + public function minute($value); + + /** + * Set the instance's second + * + * @param int $value The seconds value. + * @return static + */ + public function second($value); + + /** + * Set the date and time all together + * + * @param int $year The year to set. + * @param int $month The month to set. + * @param int $day The day to set. + * @param int $hour The hour to set. + * @param int $minute The minute to set. + * @param int $second The second to set. + * @return static + */ + public function setDateTime($year, $month, $day, $hour, $minute, $second = 0); + + /** + * Set the time by time string + * + * @param string $time Time as string. + * @return static + */ + public function setTimeFromTimeString($time); + + /** + * Set the instance's timestamp + * + * @param int $value The timestamp value to set. + * @return static + */ + public function timestamp($value); + + /** + * Alias for setTimezone() + * + * @param \DateTimeZone|string $value The DateTimeZone object or timezone name to use. + * @return static + */ + public function timezone($value); + + /** + * Alias for setTimezone() + * + * @param \DateTimeZone|string $value The DateTimeZone object or timezone name to use. + * @return static + */ + public function tz($value); + + /** + * Set the instance's timezone from a string or object + * + * @param \DateTimeZone|string $value The DateTimeZone object or timezone name to use. + * @return static + */ + public function setTimezone($value); + + /** + * Format the instance as date + * + * @return string + */ + public function toDateString(); + + /** + * Format the instance as a readable date + * + * @return string + */ + public function toFormattedDateString(); + + /** + * Format the instance as time + * + * @return string + */ + public function toTimeString(); + + /** + * Format the instance as date and time + * + * @return string + */ + public function toDateTimeString(); + + /** + * Format the instance with day, date and time + * + * @return string + */ + public function toDayDateTimeString(); + + /** + * Format the instance as ATOM + * + * @return string + */ + public function toAtomString(); + + /** + * Format the instance as COOKIE + * + * @return string + */ + public function toCookieString(); + + /** + * Format the instance as ISO8601 + * + * @return string + */ + public function toIso8601String(); + + /** + * Format the instance as RFC822 + * + * @return string + */ + public function toRfc822String(); + + /** + * Format the instance as RFC850 + * + * @return string + */ + public function toRfc850String(); + + /** + * Format the instance as RFC1036 + * + * @return string + */ + public function toRfc1036String(); + + /** + * Format the instance as RFC1123 + * + * @return string + */ + public function toRfc1123String(); + + /** + * Format the instance as RFC2822 + * + * @return string + */ + public function toRfc2822String(); + + /** + * Format the instance as RFC3339 + * + * @return string + */ + public function toRfc3339String(); + + /** + * Format the instance as RSS + * + * @return string + */ + public function toRssString(); + + /** + * Format the instance as W3C + * + * @return string + */ + public function toW3cString(); + + /** + * Determines if the instance is equal to another + * + * @param \Cake\Chronos\ChronosInterface $dt The instance to compare with. + * @return bool + */ + public function eq(ChronosInterface $dt); + + /** + * Determines if the instance is not equal to another + * + * @param \Cake\Chronos\ChronosInterface $dt The instance to compare with. + * @return bool + */ + public function ne(ChronosInterface $dt); + + /** + * Determines if the instance is greater (after) than another + * + * @param \Cake\Chronos\ChronosInterface $dt The instance to compare with. + * @return bool + */ + public function gt(ChronosInterface $dt); + + /** + * Determines if the instance is greater (after) than or equal to another + * + * @param \Cake\Chronos\ChronosInterface $dt The instance to compare with. + * @return bool + */ + public function gte(ChronosInterface $dt); + + /** + * Determines if the instance is less (before) than another + * + * @param \Cake\Chronos\ChronosInterface $dt The instance to compare with. + * @return bool + */ + public function lt(ChronosInterface $dt); + + /** + * Determines if the instance is less (before) or equal to another + * + * @param \Cake\Chronos\ChronosInterface $dt The instance to compare with. + * @return bool + */ + public function lte(ChronosInterface $dt); + + /** + * Determines if the instance is between two others + * + * @param \Cake\Chronos\ChronosInterface $dt1 The instance to compare with. + * @param \Cake\Chronos\ChronosInterface $dt2 The instance to compare with. + * @param bool $equal Indicates if a > and < comparison should be used or <= or >= + * @return bool + */ + public function between(ChronosInterface $dt1, ChronosInterface $dt2, $equal = true); + + /** + * Get the closest date from the instance. + * + * @param \Cake\Chronos\ChronosInterface $dt1 The instance to compare with. + * @param \Cake\Chronos\ChronosInterface $dt2 The instance to compare with. + * @return static + */ + public function closest(ChronosInterface $dt1, ChronosInterface $dt2); + + /** + * Get the farthest date from the instance. + * + * @param \Cake\Chronos\ChronosInterface $dt1 The instance to compare with. + * @param \Cake\Chronos\ChronosInterface $dt2 The instance to compare with. + * @return static + */ + public function farthest(ChronosInterface $dt1, ChronosInterface $dt2); + + /** + * Get the minimum instance between a given instance (default now) and the current instance. + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to compare with. + * @return static + */ + public function min(ChronosInterface $dt = null); + + /** + * Get the maximum instance between a given instance (default now) and the current instance. + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to compare with. + * @return static + */ + public function max(ChronosInterface $dt = null); + + /** + * Determines if the instance is a weekday + * + * @return bool + */ + public function isWeekday(); + + /** + * Determines if the instance is a weekend day + * + * @return bool + */ + public function isWeekend(); + + /** + * Determines if the instance is yesterday + * + * @return bool + */ + public function isYesterday(); + + /** + * Determines if the instance is today + * + * @return bool + */ + public function isToday(); + + /** + * Determines if the instance is tomorrow + * + * @return bool + */ + public function isTomorrow(); + + /** + * Determines if the instance is in the future, ie. greater (after) than now + * + * @return bool + */ + public function isFuture(); + + /** + * Determines if the instance is in the past, ie. less (before) than now + * + * @return bool + */ + public function isPast(); + + /** + * Determines if the instance is a leap year + * + * @return bool + */ + public function isLeapYear(); + + /** + * Checks if the passed in date is the same day as the instance current day. + * + * @param \Cake\Chronos\ChronosInterface $dt The instance to check against. + * @return bool + */ + public function isSameDay(ChronosInterface $dt); + + /** + * Checks if this day is a Sunday. + * + * @return bool + */ + public function isSunday(); + + /** + * Checks if this day is a Monday. + * + * @return bool + */ + public function isMonday(); + + /** + * Checks if this day is a Tuesday. + * + * @return bool + */ + public function isTuesday(); + + /** + * Checks if this day is a Wednesday. + * + * @return bool + */ + public function isWednesday(); + + /** + * Checks if this day is a Thursday. + * + * @return bool + */ + public function isThursday(); + + /** + * Checks if this day is a Friday. + * + * @return bool + */ + public function isFriday(); + + /** + * Checks if this day is a Saturday. + * + * @return bool + */ + public function isSaturday(); + + /** + * Returns true if this object represents a date within the current week + * + * @return bool + */ + public function isThisWeek(); + + /** + * Returns true if this object represents a date within the current month + * + * @return bool + */ + public function isThisMonth(); + + /** + * Returns true if this object represents a date within the current year + * + * @return bool + */ + public function isThisYear(); + + /** + * Add years to the instance. Positive $value travel forward while + * negative $value travel into the past. + * + * @param int $value The number of years to add. + * @return static + */ + public function addYears($value); + + /** + * Add a year to the instance + * + * @param int $value The number of years to add. + * @return static + */ + public function addYear($value = 1); + + /** + * Remove a year from the instance + * + * @param int $value The number of years to remove. + * @return static + */ + public function subYear($value = 1); + + /** + * Remove years from the instance. + * + * @param int $value The number of years to remove. + * @return static + */ + public function subYears($value); + + /** + * Add months to the instance. Positive $value travels forward while + * negative $value travels into the past. + * + * When adding or subtracting months, if the resulting time is a date + * that does not exist, the result of this operation will always be the + * last day of the intended month. + * + * ### Example: + * + * ``` + * (new Chronos('2015-01-03'))->addMonths(1); // Results in 2015-02-03 + * + * (new Chronos('2015-01-31'))->addMonths(1); // Results in 2015-02-28 + * ``` + * + * @param int $value The number of months to add. + * @return static + */ + public function addMonths($value); + + /** + * Add a month to the instance + * + * When adding or subtracting months, if the resulting time is a date + * that does not exist, the result of this operation will always be the + * last day of the intended month. + * + * ### Example: + * + * ``` + * (new Chronos('2015-01-03'))->addMonth(); // Results in 2015-02-03 + * + * (new Chronos('2015-01-31'))->addMonth(); // Results in 2015-02-28 + * ``` + * + * @param int $value The number of months to add. + * @return static + */ + public function addMonth($value = 1); + + /** + * Remove a month from the instance + * + * When adding or subtracting months, if the resulting time is a date + * that does not exist, the result of this operation will always be the + * last day of the intended month. + * + * ### Example: + * + * ``` + * (new Chronos('2015-03-01'))->subMonth(); // Results in 2015-02-01 + * + * (new Chronos('2015-03-31'))->subMonth(); // Results in 2015-02-28 + * ``` + * + * @param int $value The number of months to remove. + * @return static + */ + public function subMonth($value = 1); + + /** + * Remove months from the instance + * + * When adding or subtracting months, if the resulting time is a date + * that does not exist, the result of this operation will always be the + * last day of the intended month. + * + * ### Example: + * + * ``` + * (new Chronos('2015-03-01'))->subMonths(1); // Results in 2015-02-01 + * + * (new Chronos('2015-03-31'))->subMonths(1); // Results in 2015-02-28 + * ``` + * + * @param int $value The number of months to remove. + * @return static + */ + public function subMonths($value); + + /** + * Add months with overflowing to the instance. Positive $value + * travels forward while negative $value travels into the past. + * + * @param int $value The number of months to add. + * @return static + */ + public function addMonthsWithOverflow($value); + + /** + * Add a month with overflow to the instance + * + * @param int $value The number of months to add. + * @return static + */ + public function addMonthWithOverflow($value = 1); + + /** + * Remove a month with overflow from the instance + * + * @param int $value The number of months to remove. + * @return static + */ + public function subMonthWithOverflow($value = 1); + + /** + * Remove months with overflow from the instance + * + * @param int $value The number of months to remove. + * @return static + */ + public function subMonthsWithOverflow($value); + + /** + * Add days to the instance. Positive $value travels forward while + * negative $value travels into the past. + * + * @param int $value The number of days to add. + * @return static + */ + public function addDays($value); + + /** + * Add a day to the instance + * + * @param int $value The number of days to add. + * @return static + */ + public function addDay($value = 1); + + /** + * Remove a day from the instance + * + * @param int $value The number of days to remove. + * @return static + */ + public function subDay($value = 1); + + /** + * Remove days from the instance + * + * @param int $value The number of days to remove. + * @return static + */ + public function subDays($value); + + /** + * Add weekdays to the instance. Positive $value travels forward while + * negative $value travels into the past. + * + * @param int $value The number of weekdays to add. + * @return static + */ + public function addWeekdays($value); + + /** + * Add a weekday to the instance + * + * @param int $value The number of weekdays to add. + * @return static + */ + public function addWeekday($value = 1); + + /** + * Remove a weekday from the instance + * + * @param int $value The number of weekdays to remove. + * @return static + */ + public function subWeekday($value = 1); + + /** + * Remove weekdays from the instance + * + * @param int $value The number of weekdays to remove. + * @return static + */ + public function subWeekdays($value); + + /** + * Add weeks to the instance. Positive $value travels forward while + * negative $value travels into the past. + * + * @param int $value The number of weeks to add. + * @return static + */ + public function addWeeks($value); + + /** + * Add a week to the instance + * + * @param int $value The number of weeks to add. + * @return static + */ + public function addWeek($value = 1); + + /** + * Remove a week from the instance + * + * @param int $value The number of weeks to remove. + * @return static + */ + public function subWeek($value = 1); + + /** + * Remove weeks to the instance + * + * @param int $value The number of weeks to remove. + * @return static + */ + public function subWeeks($value); + + /** + * Add hours to the instance. Positive $value travels forward while + * negative $value travels into the past. + * + * @param int $value The number of hours to add. + * @return static + */ + public function addHours($value); + + /** + * Add an hour to the instance + * + * @param int $value The number of hours to add. + * @return static + */ + public function addHour($value = 1); + + /** + * Remove an hour from the instance + * + * @param int $value The number of hours to remove. + * @return static + */ + public function subHour($value = 1); + + /** + * Remove hours from the instance + * + * @param int $value The number of hours to remove. + * @return static + */ + public function subHours($value); + + /** + * Add minutes to the instance. Positive $value travels forward while + * negative $value travels into the past. + * + * @param int $value The number of minutes to add. + * @return static + */ + public function addMinutes($value); + + /** + * Add a minute to the instance + * + * @param int $value The number of minutes to add. + * @return static + */ + public function addMinute($value = 1); + + /** + * Remove a minute from the instance + * + * @param int $value The number of minutes to remove. + * @return static + */ + public function subMinute($value = 1); + + /** + * Remove minutes from the instance + * + * @param int $value The number of minutes to remove. + * @return static + */ + public function subMinutes($value); + + /** + * Add seconds to the instance. Positive $value travels forward while + * negative $value travels into the past. + * + * @param int $value The number of seconds to add. + * @return static + */ + public function addSeconds($value); + + /** + * Add a second to the instance + * + * @param int $value The number of seconds to add. + * @return static + */ + public function addSecond($value = 1); + + /** + * Remove a second from the instance + * + * @param int $value The number of seconds to remove. + * @return static + */ + public function subSecond($value = 1); + + /** + * Remove seconds from the instance + * + * @param int $value The number of seconds to remove. + * @return static + */ + public function subSeconds($value); + + /** + * Get the difference in a human readable format in the current locale. + * + * When comparing a value in the past to default now: + * 1 hour ago + * 5 months ago + * + * When comparing a value in the future to default now: + * 1 hour from now + * 5 months from now + * + * When comparing a value in the past to another value: + * 1 hour before + * 5 months before + * + * When comparing a value in the future to another value: + * 1 hour after + * 5 months after + * + * @param \Cake\Chronos\ChronosInterface|null $other The datetime to compare with. + * @param bool $absolute Removes time difference modifiers ago, after, etc + * @return string + */ + public function diffForHumans(ChronosInterface $other = null, $absolute = false); + + /** + * Get the difference in years + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffInYears(ChronosInterface $dt = null, $abs = true); + + /** + * Get the difference in months + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffInMonths(ChronosInterface $dt = null, $abs = true); + + /** + * Get the difference in weeks + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffInWeeks(ChronosInterface $dt = null, $abs = true); + + /** + * Get the difference in days + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffInDays(ChronosInterface $dt = null, $abs = true); + + /** + * Get the difference in days using a filter callable + * + * @param callable $callback The callback to use for filtering. + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffInDaysFiltered(callable $callback, ChronosInterface $dt = null, $abs = true); + + /** + * Get the difference in hours using a filter callable + * + * @param callable $callback The callback to use for filtering. + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffInHoursFiltered(callable $callback, ChronosInterface $dt = null, $abs = true); + + /** + * Get the difference by the given interval using a filter callable + * + * @param \Cake\Chronos\ChronosInterval $ci An interval to traverse by + * @param callable $callback The callback to use for filtering. + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffFiltered(ChronosInterval $ci, callable $callback, ChronosInterface $dt = null, $abs = true); + + /** + * Get the difference in weekdays + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffInWeekdays(ChronosInterface $dt = null, $abs = true); + + /** + * Get the difference in weekend days using a filter + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffInWeekendDays(ChronosInterface $dt = null, $abs = true); + + /** + * Get the difference in hours + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffInHours(ChronosInterface $dt = null, $abs = true); + + /** + * Get the difference in minutes + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffInMinutes(ChronosInterface $dt = null, $abs = true); + + /** + * Get the difference in seconds + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffInSeconds(ChronosInterface $dt = null, $abs = true); + + /** + * The number of seconds since midnight. + * + * @return int + */ + public function secondsSinceMidnight(); + + /** + * The number of seconds until 23:59:59. + * + * @return int + */ + public function secondsUntilEndOfDay(); + + /** + * Resets the time to 00:00:00 + * + * @return static + */ + public function startOfDay(); + + /** + * Resets the time to 23:59:59 + * + * @return static + */ + public function endOfDay(); + + /** + * Resets the date to the first day of the month and the time to 00:00:00 + * + * @return static + */ + public function startOfMonth(); + + /** + * Resets the date to end of the month and time to 23:59:59 + * + * @return static + */ + public function endOfMonth(); + + /** + * Resets the date to the first day of the year and the time to 00:00:00 + * + * @return static + */ + public function startOfYear(); + + /** + * Resets the date to end of the year and time to 23:59:59 + * + * @return static + */ + public function endOfYear(); + + /** + * Resets the date to the first day of the decade and the time to 00:00:00 + * + * @return static + */ + public function startOfDecade(); + + /** + * Resets the date to end of the decade and time to 23:59:59 + * + * @return static + */ + public function endOfDecade(); + + /** + * Resets the date to the first day of the century and the time to 00:00:00 + * + * @return static + */ + public function startOfCentury(); + + /** + * Resets the date to end of the century and time to 23:59:59 + * + * @return static + */ + public function endOfCentury(); + + /** + * Resets the date to the first day of week (defined in $weekStartsAt) and the time to 00:00:00 + * + * @return static + */ + public function startOfWeek(); + + /** + * Resets the date to end of week (defined in $weekEndsAt) and time to 23:59:59 + * + * @return static + */ + public function endOfWeek(); + + /** + * Modify to the next occurrence of a given day of the week. + * If no dayOfWeek is provided, modify to the next occurrence + * of the current day of the week. Use the supplied consts + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $dayOfWeek The day of the week to move to. + * @return mixed + */ + public function next($dayOfWeek = null); + + /** + * Modify to the previous occurrence of a given day of the week. + * If no dayOfWeek is provided, modify to the previous occurrence + * of the current day of the week. Use the supplied consts + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $dayOfWeek The day of the week to move to. + * @return mixed + */ + public function previous($dayOfWeek = null); + + /** + * Modify to the first occurrence of a given day of the week + * in the current month. If no dayOfWeek is provided, modify to the + * first day of the current month. Use the supplied consts + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $dayOfWeek The day of the week to move to. + * @return mixed + */ + public function firstOfMonth($dayOfWeek = null); + + /** + * Modify to the last occurrence of a given day of the week + * in the current month. If no dayOfWeek is provided, modify to the + * last day of the current month. Use the supplied consts + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $dayOfWeek The day of the week to move to. + * @return mixed + */ + public function lastOfMonth($dayOfWeek = null); + + /** + * Modify to the given occurrence of a given day of the week + * in the current month. If the calculated occurrence is outside the scope + * of the current month, then return false and no modifications are made. + * Use the supplied consts to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $nth The offset to use. + * @param int $dayOfWeek The day of the week to move to. + * @return mixed + */ + public function nthOfMonth($nth, $dayOfWeek); + + /** + * Modify to the first occurrence of a given day of the week + * in the current quarter. If no dayOfWeek is provided, modify to the + * first day of the current quarter. Use the supplied consts + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $dayOfWeek The day of the week to move to. + * @return mixed + */ + public function firstOfQuarter($dayOfWeek = null); + + /** + * Modify to the last occurrence of a given day of the week + * in the current quarter. If no dayOfWeek is provided, modify to the + * last day of the current quarter. Use the supplied consts + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $dayOfWeek The day of the week to move to. + * @return mixed + */ + public function lastOfQuarter($dayOfWeek = null); + + /** + * Modify to the given occurrence of a given day of the week + * in the current quarter. If the calculated occurrence is outside the scope + * of the current quarter, then return false and no modifications are made. + * Use the supplied consts to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $nth The offset to use. + * @param int $dayOfWeek The day of the week to move to. + * @return mixed + */ + public function nthOfQuarter($nth, $dayOfWeek); + + /** + * Modify to the first occurrence of a given day of the week + * in the current year. If no dayOfWeek is provided, modify to the + * first day of the current year. Use the supplied consts + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $dayOfWeek The day of the week to move to. + * @return mixed + */ + public function firstOfYear($dayOfWeek = null); + + /** + * Modify to the last occurrence of a given day of the week + * in the current year. If no dayOfWeek is provided, modify to the + * last day of the current year. Use the supplied consts + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $dayOfWeek The day of the week to move to. + * @return mixed + */ + public function lastOfYear($dayOfWeek = null); + + /** + * Modify to the given occurrence of a given day of the week + * in the current year. If the calculated occurrence is outside the scope + * of the current year, then return false and no modifications are made. + * Use the supplied consts to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $nth The offset to use. + * @param int $dayOfWeek The day of the week to move to. + * @return mixed + */ + public function nthOfYear($nth, $dayOfWeek); + + /** + * Modify the current instance to the average of a given instance (default now) and the current instance. + * + * @param \Cake\Chronos\ChronosInterface $dt The instance to compare with. + * @return static + */ + public function average(ChronosInterface $dt = null); + + /** + * Check if its the birthday. Compares the date/month values of the two dates. + * + * @param \Cake\Chronos\ChronosInterface $dt The instance to compare with. + * @return bool + */ + public function isBirthday(ChronosInterface $dt); + + /** + * Returns true this instance happened within the specified interval + * + * @param string|int $timeInterval the numeric value with space then time type. + * Example of valid types: 6 hours, 2 days, 1 minute. + * @return bool + */ + public function wasWithinLast($timeInterval); + + /** + * Returns true this instance will happen within the specified interval + * + * @param string|int $timeInterval the numeric value with space then time type. + * Example of valid types: 6 hours, 2 days, 1 minute. + * @return bool + */ + public function isWithinNext($timeInterval); + + /** + * Check if instance of ChronosInterface is mutable. + * + * @return bool + */ + public function isMutable(); +} diff --git a/vendor/cakephp/chronos/src/ChronosInterval.php b/vendor/cakephp/chronos/src/ChronosInterval.php new file mode 100644 index 0000000..a60605b --- /dev/null +++ b/vendor/cakephp/chronos/src/ChronosInterval.php @@ -0,0 +1,526 @@ + + * @link http://cakephp.org CakePHP(tm) Project + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +namespace Cake\Chronos; + +use DateInterval; +use InvalidArgumentException; + +/** + * A simple API extension for DateInterval. + * The implementation provides helpers to handle weeks but only days are saved. + * Weeks are calculated based on the total days of the current instance. + * + * @property int $years Total years of the current interval. + * @property int $months Total months of the current interval. + * @property int $weeks Total weeks of the current interval calculated from the days. + * @property int $dayz Total days of the current interval (weeks * 7 + days). + * @property int $hours Total hours of the current interval. + * @property int $minutes Total minutes of the current interval. + * @property int $seconds Total seconds of the current interval. + * + * @property-read int $dayzExcludeWeeks Total days remaining in the final week of the current instance (days % 7). + * @property-read int $daysExcludeWeeks alias of dayzExcludeWeeks + * + * @method static ChronosInterval years($years = 1) Create instance specifying a number of years. + * @method static ChronosInterval year($years = 1) Alias for years + * @method static ChronosInterval months($months = 1) Create instance specifying a number of months. + * @method static ChronosInterval month($months = 1) Alias for months + * @method static ChronosInterval weeks($weeks = 1) Create instance specifying a number of weeks. + * @method static ChronosInterval week($weeks = 1) Alias for weeks + * @method static ChronosInterval days($days = 1) Create instance specifying a number of days. + * @method static ChronosInterval dayz($days = 1) Alias for days + * @method static ChronosInterval day($days = 1) Alias for days + * @method static ChronosInterval hours($hours = 1) Create instance specifying a number of hours. + * @method static ChronosInterval hour($hours = 1) Alias for hours + * @method static ChronosInterval minutes($minutes = 1) Create instance specifying a number of minutes. + * @method static ChronosInterval minute($minutes = 1) Alias for minutes + * @method static ChronosInterval seconds($seconds = 1) Create instance specifying a number of seconds. + * @method static ChronosInterval second($seconds = 1) Alias for seconds + * + * @method ChronosInterval years() years($years = 1) Set the years portion of the current interval. + * @method ChronosInterval year() year($years = 1) Alias for years. + * @method ChronosInterval months() months($months = 1) Set the months portion of the current interval. + * @method ChronosInterval month() month($months = 1) Alias for months. + * @method ChronosInterval weeks() weeks($weeks = 1) Set the weeks portion of the current interval. Will overwrite dayz value. + * @method ChronosInterval week() week($weeks = 1) Alias for weeks. + * @method ChronosInterval days() days($days = 1) Set the days portion of the current interval. + * @method ChronosInterval dayz() dayz($days = 1) Alias for days. + * @method ChronosInterval day() day($days = 1) Alias for days. + * @method ChronosInterval hours() hours($hours = 1) Set the hours portion of the current interval. + * @method ChronosInterval hour() hour($hours = 1) Alias for hours. + * @method ChronosInterval minutes() minutes($minutes = 1) Set the minutes portion of the current interval. + * @method ChronosInterval minute() minute($minutes = 1) Alias for minutes. + * @method ChronosInterval seconds() seconds($seconds = 1) Set the seconds portion of the current interval. + * @method ChronosInterval second() second($seconds = 1) Alias for seconds. + */ +class ChronosInterval extends DateInterval +{ + /** + * Interval spec period designators + */ + const PERIOD_PREFIX = 'P'; + const PERIOD_YEARS = 'Y'; + const PERIOD_MONTHS = 'M'; + const PERIOD_DAYS = 'D'; + const PERIOD_TIME_PREFIX = 'T'; + const PERIOD_HOURS = 'H'; + const PERIOD_MINUTES = 'M'; + const PERIOD_SECONDS = 'S'; + + /** + * Before PHP 5.4.20/5.5.4 instead of `false` days will be set to -99999 when the interval instance + * was created by DateTime:diff(). + */ + const PHP_DAYS_FALSE = -99999; + + /** + * Whether or not this object was created in HHVM + * + * @var bool + */ + protected $isHHVM = false; + + /** + * Determine if the interval was created via DateTime:diff() or not. + * + * @param \DateInterval $interval The interval to check. + * @return bool + */ + protected static function wasCreatedFromDiff(DateInterval $interval) + { + return ($interval->days !== false && $interval->days !== static::PHP_DAYS_FALSE); + } + + /** + * Create a new ChronosInterval instance. + * + * @param int|null $years The year to use. + * @param int|null $months The month to use. + * @param int|null $weeks The week to use. + * @param int|null $days The day to use. + * @param int|null $hours The hours to use. + * @param int|null $minutes The minutes to use. + * @param int|null $seconds The seconds to use. + */ + public function __construct($years = 1, $months = null, $weeks = null, $days = null, $hours = null, $minutes = null, $seconds = null) + { + $this->isHHVM = defined('HHVM_VERSION'); + $spec = static::PERIOD_PREFIX; + + $spec .= $years > 0 ? $years . static::PERIOD_YEARS : ''; + $spec .= $months > 0 ? $months . static::PERIOD_MONTHS : ''; + + $specDays = 0; + $specDays += $weeks > 0 ? $weeks * ChronosInterface::DAYS_PER_WEEK : 0; + $specDays += $days > 0 ? $days : 0; + + $spec .= ($specDays > 0) ? $specDays . static::PERIOD_DAYS : ''; + + if ($spec === static::PERIOD_PREFIX) { + $spec .= '0' . static::PERIOD_YEARS; + } + + if ($hours > 0 || $minutes > 0 || $seconds > 0) { + $spec .= static::PERIOD_TIME_PREFIX; + $spec .= $hours > 0 ? $hours . static::PERIOD_HOURS : ''; + $spec .= $minutes > 0 ? $minutes . static::PERIOD_MINUTES : ''; + $spec .= $seconds > 0 ? $seconds . static::PERIOD_SECONDS : ''; + } + + parent::__construct($spec); + } + + /** + * Create a new ChronosInterval instance from specific values. + * This is an alias for the constructor that allows better fluent + * syntax as it allows you to do ChronosInterval::create(1)->fn() rather than + * (new ChronosInterval(1))->fn(). + * + * @param int|null $years The year to use. + * @param int|null $months The month to use. + * @param int|null $weeks The week to use. + * @param int|null $days The day to use. + * @param int|null $hours The hours to use. + * @param int|null $minutes The minutes to use. + * @param int|null $seconds The seconds to use. + * @return static + */ + public static function create($years = 1, $months = null, $weeks = null, $days = null, $hours = null, $minutes = null, $seconds = null) + { + return new static($years, $months, $weeks, $days, $hours, $minutes, $seconds); + } + + /** + * Provide static helpers to create instances. Allows: + * + * ``` + * ChronosInterval::years(3) + * // or + * ChronosInterval::month(1); + * ``` + * + * Note: This is done using the magic method to allow static and instance methods to + * have the same names. + * + * @param string $name The property to configure. Accepts singular and plural forms. + * @param array $args Contains the value to use. + * @return static + */ + public static function __callStatic($name, $args) + { + $arg = count($args) === 0 ? 1 : $args[0]; + + switch ($name) { + case 'years': + case 'year': + return new static($arg); + + case 'months': + case 'month': + return new static(null, $arg); + + case 'weeks': + case 'week': + return new static(null, null, $arg); + + case 'days': + case 'dayz': + case 'day': + return new static(null, null, null, $arg); + + case 'hours': + case 'hour': + return new static(null, null, null, null, $arg); + + case 'minutes': + case 'minute': + return new static(null, null, null, null, null, $arg); + + case 'seconds': + case 'second': + return new static(null, null, null, null, null, null, $arg); + } + } + + /** + * Create a ChronosInterval instance from a DateInterval one. Can not instance + * DateInterval objects created from DateTime::diff() as you can't externally + * set the $days field. + * + * @param \DateInterval $di The DateInterval instance to copy. + * @throws \InvalidArgumentException + * @return static + */ + public static function instance(DateInterval $di) + { + if (static::wasCreatedFromDiff($di)) { + throw new InvalidArgumentException( + "Can not instance a DateInterval object created from DateTime::diff()." + ); + } + + $instance = new static($di->y, $di->m, 0, $di->d, $di->h, $di->i, $di->s); + $instance->invert = $di->invert; + $instance->days = $di->days; + + return $instance; + } + + /** + * Get a part of the ChronosInterval object + * + * @param string $name The property to read. + * @throws \InvalidArgumentException + * @return int + */ + public function __get($name) + { + switch ($name) { + case 'years': + return $this->isHHVM ? parent::__get('y') : $this->y; + + case 'months': + return $this->isHHVM ? parent::__get('m') : $this->m; + + case 'dayz': + return $this->isHHVM ? parent::__get('d') : $this->d; + + case 'hours': + return $this->isHHVM ? parent::__get('h') : $this->h; + + case 'minutes': + return $this->isHHVM ? parent::__get('i') : $this->i; + + case 'seconds': + return $this->isHHVM ? parent::__get('s') : $this->s; + + case 'weeks': + return (int)floor(($this->isHHVM ? parent::__get('d') : $this->d) / ChronosInterface::DAYS_PER_WEEK); + + case 'daysExcludeWeeks': + case 'dayzExcludeWeeks': + return $this->dayz % ChronosInterface::DAYS_PER_WEEK; + case 'days': + return $this->isHHVM ? parent::__get('days') : $this->days; + case 'y': + case 'm': + case 'd': + case 'h': + case 'i': + case 's': + case 'invert': + return parent::__get($name); + default: + throw new InvalidArgumentException(sprintf("Unknown getter '%s'", $name)); + } + } + + /** + * Set a part of the ChronosInterval object + * + * @param string $name The property to augment. + * @param int $val The value to change. + * @return void + * @throws \InvalidArgumentException + */ + public function __set($name, $val) + { + switch ($name) { + case 'years': + $this->isHHVM ? parent::__set('y', $val) : $this->y = $val; + break; + + case 'months': + $this->isHHVM ? parent::__set('m', $val) : $this->m = $val; + break; + + case 'weeks': + $val = $val * ChronosInterface::DAYS_PER_WEEK; + $this->isHHVM ? parent::__set('d', $val) : $this->d = $val; + break; + + case 'dayz': + $this->isHHVM ? parent::__set('d', $val) : $this->d = $val; + break; + + case 'hours': + $this->isHHVM ? parent::__set('h', $val) : $this->h = $val; + break; + + case 'minutes': + $this->isHHVM ? parent::__set('i', $val) : $this->i = $val; + break; + + case 'seconds': + $this->isHHVM ? parent::__set('s', $val) : $this->s = $val; + break; + + case 'invert': + $this->isHHVM ? parent::__set('invert', $val) : $this->invert = $val; + break; + default: + if ($this->isHHVM) { + parent::__set($name, $val); + } + } + } + + /** + * Allow setting of weeks and days to be cumulative. + * + * @param int $weeks Number of weeks to set + * @param int $days Number of days to set + * @return static + */ + public function weeksAndDays($weeks, $days) + { + $this->dayz = ($weeks * ChronosInterface::DAYS_PER_WEEK) + $days; + + return $this; + } + + /** + * Allow fluent calls on the setters... ChronosInterval::years(3)->months(5)->day(). + * + * Note: This is done using the magic method to allow static and instance methods to + * have the same names. + * + * @param string $name The property name to augment. Accepts plural forms in addition + * to singular ones. + * @param array $args The value to set. + * @return static + */ + public function __call($name, $args) + { + $arg = count($args) === 0 ? 1 : $args[0]; + + switch ($name) { + case 'years': + case 'year': + $this->years = $arg; + break; + + case 'months': + case 'month': + $this->months = $arg; + break; + + case 'weeks': + case 'week': + $this->dayz = $arg * ChronosInterface::DAYS_PER_WEEK; + break; + + case 'days': + case 'dayz': + case 'day': + $this->dayz = $arg; + break; + + case 'hours': + case 'hour': + $this->hours = $arg; + break; + + case 'minutes': + case 'minute': + $this->minutes = $arg; + break; + + case 'seconds': + case 'second': + $this->seconds = $arg; + break; + } + + return $this; + } + + /** + * Add the passed interval to the current instance + * + * @param \DateInterval $interval The interval to add. + * @return static + */ + public function add(DateInterval $interval) + { + $sign = ($interval->invert === 1) ? -1 : 1; + + if (static::wasCreatedFromDiff($interval)) { + $this->dayz = $this->dayz + ($interval->days * $sign); + } else { + $this->years = $this->years + ($interval->y * $sign); + $this->months = $this->months + ($interval->m * $sign); + $this->dayz = $this->dayz + ($interval->d * $sign); + $this->hours = $this->hours + ($interval->h * $sign); + $this->minutes = $this->minutes + ($interval->i * $sign); + $this->seconds = $this->seconds + ($interval->s * $sign); + } + + return $this; + } + + /** + * Returns the ISO 8601 interval string. + * + * @return string Interval as string representation + */ + public function __toString() + { + // equivalence + $oneMinuteInSeconds = 60; + $oneHourInSeconds = $oneMinuteInSeconds * 60; + $oneDayInSeconds = $oneHourInSeconds * 24; + $oneMonthInDays = 365 / 12; + $oneMonthInSeconds = $oneDayInSeconds * $oneMonthInDays; + $oneYearInSeconds = 12 * $oneMonthInSeconds; + + // convert + $ySecs = $this->y * $oneYearInSeconds; + $mSecs = $this->m * $oneMonthInSeconds; + $dSecs = $this->d * $oneDayInSeconds; + $hSecs = $this->h * $oneHourInSeconds; + $iSecs = $this->i * $oneMinuteInSeconds; + $sSecs = $this->s; + + $totalSecs = $ySecs + $mSecs + $dSecs + $hSecs + $iSecs + $sSecs; + + $y = null; + $m = null; + $d = null; + $h = null; + $i = null; + + // years + if ($totalSecs >= $oneYearInSeconds) { + $y = floor($totalSecs / $oneYearInSeconds); + $totalSecs = $totalSecs - $y * $oneYearInSeconds; + } + + // months + if ($totalSecs >= $oneMonthInSeconds) { + $m = floor($totalSecs / $oneMonthInSeconds); + $totalSecs = $totalSecs - $m * $oneMonthInSeconds; + } + + // days + if ($totalSecs >= $oneDayInSeconds) { + $d = floor($totalSecs / $oneDayInSeconds); + $totalSecs = $totalSecs - $d * $oneDayInSeconds; + } + + // hours + if ($totalSecs >= $oneHourInSeconds) { + $h = floor($totalSecs / $oneHourInSeconds); + $totalSecs = $totalSecs - $h * $oneHourInSeconds; + } + + // minutes + if ($totalSecs >= $oneMinuteInSeconds) { + $i = floor($totalSecs / $oneMinuteInSeconds); + $totalSecs = $totalSecs - $i * $oneMinuteInSeconds; + } + + $s = $totalSecs; + + $date = array_filter([ + static::PERIOD_YEARS => $y, + static::PERIOD_MONTHS => $m, + static::PERIOD_DAYS => $d, + ]); + + $time = array_filter([ + static::PERIOD_HOURS => $h, + static::PERIOD_MINUTES => $i, + static::PERIOD_SECONDS => $s, + ]); + + $specString = static::PERIOD_PREFIX; + + foreach ($date as $key => $value) { + $specString .= $value . $key; + } + + if (count($time) > 0) { + $specString .= static::PERIOD_TIME_PREFIX; + foreach ($time as $key => $value) { + $specString .= $value . $key; + } + } + + if ($specString === static::PERIOD_PREFIX) { + return 'PT0S'; + } + + return $this->invert === 1 ? '-' . $specString : $specString; + } +} diff --git a/vendor/cakephp/chronos/src/Date.php b/vendor/cakephp/chronos/src/Date.php new file mode 100644 index 0000000..387d0a9 --- /dev/null +++ b/vendor/cakephp/chronos/src/Date.php @@ -0,0 +1,150 @@ +stripTime($time); + + parent::__construct($time, $tz); + + return; + } + + $relative = static::hasRelativeKeywords($time); + if (!empty($time) && $time !== 'now' && !$relative) { + $time = $this->stripTime($time); + + parent::__construct($time, $tz); + + return; + } + + $testNow = clone $testNow; + if ($relative) { + $time = $this->stripRelativeTime($time); + if (strlen($time) > 0) { + $testNow = $testNow->modify($time); + } + } + + if ($tz !== $testNow->getTimezone()) { + $testNow = $testNow->setTimezone($tz === null ? date_default_timezone_get() : $tz); + } + + $time = $testNow->format('Y-m-d 00:00:00'); + parent::__construct($time, $tz); + } + + /** + * Create a new mutable instance from current immutable instance. + * + * @return \Cake\Chronos\MutableDate + */ + public function toMutable() + { + return MutableDate::instance($this); + } + + /** + * Return properties for debugging. + * + * @return array + */ + public function __debugInfo() + { + // Conditionally add properties if state exists to avoid + // errors when using a debugger. + $vars = get_object_vars($this); + + $properties = [ + 'hasFixedNow' => static::hasTestNow(), + ]; + + if (isset($vars['date'])) { + $properties['date'] = $this->format('Y-m-d'); + } + + return $properties; + } +} diff --git a/vendor/cakephp/chronos/src/DifferenceFormatter.php b/vendor/cakephp/chronos/src/DifferenceFormatter.php new file mode 100644 index 0000000..d64db63 --- /dev/null +++ b/vendor/cakephp/chronos/src/DifferenceFormatter.php @@ -0,0 +1,103 @@ + + * @link http://cakephp.org CakePHP(tm) Project + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +namespace Cake\Chronos; + +/** + * Handles formatting differences in text. + * + * Provides a swappable component for other libraries to leverage. + * when localizing or customizing the difference output. + */ +class DifferenceFormatter +{ + + /** + * The text translator object + * + * @var \Cake\Chronos\Translator + */ + protected $translate; + + /** + * Constructor. + * + * @param \Cake\Chronos\Translator|null $translate The text translator object. + */ + public function __construct($translate = null) + { + $this->translate = $translate ?: new Translator(); + } + + /** + * Get the difference in a human readable format. + * + * @param \Cake\Chronos\ChronosInterface $date The datetime to start with. + * @param \Cake\Chronos\ChronosInterface|null $other The datetime to compare against. + * @param bool $absolute removes time difference modifiers ago, after, etc + * @return string The difference between the two days in a human readable format + * @see \Cake\Chronos\ChronosInterface::diffForHumans + */ + public function diffForHumans(ChronosInterface $date, ChronosInterface $other = null, $absolute = false) + { + $isNow = $other === null; + if ($isNow) { + $other = $date->now($date->tz); + } + $diffInterval = $date->diff($other); + + switch (true) { + case ($diffInterval->y > 0): + $unit = 'year'; + $count = $diffInterval->y; + break; + case ($diffInterval->m > 0): + $unit = 'month'; + $count = $diffInterval->m; + break; + case ($diffInterval->d > 0): + $unit = 'day'; + $count = $diffInterval->d; + if ($count >= ChronosInterface::DAYS_PER_WEEK) { + $unit = 'week'; + $count = (int)($count / ChronosInterface::DAYS_PER_WEEK); + } + break; + case ($diffInterval->h > 0): + $unit = 'hour'; + $count = $diffInterval->h; + break; + case ($diffInterval->i > 0): + $unit = 'minute'; + $count = $diffInterval->i; + break; + default: + $count = $diffInterval->s; + $unit = 'second'; + break; + } + $time = $this->translate->plural($unit, $count, ['count' => $count]); + if ($absolute) { + return $time; + } + $isFuture = $diffInterval->invert === 1; + $transId = $isNow ? ($isFuture ? 'from_now' : 'ago') : ($isFuture ? 'after' : 'before'); + + // Some langs have special pluralization for past and future tense. + $tryKeyExists = $unit . '_' . $transId; + if ($this->translate->exists($tryKeyExists)) { + $time = $this->translate->plural($tryKeyExists, $count, ['count' => $count]); + } + + return $this->translate->singular($transId, ['time' => $time]); + } +} diff --git a/vendor/cakephp/chronos/src/MutableDate.php b/vendor/cakephp/chronos/src/MutableDate.php new file mode 100644 index 0000000..00ea85b --- /dev/null +++ b/vendor/cakephp/chronos/src/MutableDate.php @@ -0,0 +1,149 @@ +stripTime($time); + parent::__construct($time, $tz); + + return; + } + + $relative = static::hasRelativeKeywords($time); + if (!empty($time) && $time !== 'now' && !$relative) { + $time = $this->stripTime($time); + + parent::__construct($time, $tz); + + return; + } + + $testNow = clone $testNow; + if ($relative) { + $time = $this->stripRelativeTime($time); + if (strlen($time) > 0) { + $testNow = $testNow->modify($time); + } + } + + if ($tz !== $testNow->getTimezone()) { + $testNow = $testNow->setTimezone($tz === null ? date_default_timezone_get() : $tz); + } + + $time = $testNow->format('Y-m-d 00:00:00'); + parent::__construct($time, $tz); + } + + /** + * Create a new immutable instance from current mutable instance. + * + * @return \Cake\Chronos\Date + */ + public function toImmutable() + { + return Date::instance($this); + } + + /** + * Return properties for debugging. + * + * @return array + */ + public function __debugInfo() + { + // Conditionally add properties if state exists to avoid + // errors when using a debugger. + $vars = get_object_vars($this); + + $properties = [ + 'hasFixedNow' => static::hasTestNow(), + ]; + + if (isset($vars['date'])) { + $properties['date'] = $this->format('Y-m-d'); + } + + return $properties; + } +} diff --git a/vendor/cakephp/chronos/src/MutableDateTime.php b/vendor/cakephp/chronos/src/MutableDateTime.php new file mode 100644 index 0000000..78985ae --- /dev/null +++ b/vendor/cakephp/chronos/src/MutableDateTime.php @@ -0,0 +1,196 @@ + + * @link http://cakephp.org CakePHP(tm) Project + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +namespace Cake\Chronos; + +use DateTime; +use DateTimeZone; +use InvalidArgumentException; + +/** + * A mutable datetime instance that implements the ChronosInterface. + * + * This object can be mutated in place using any setter method, + * or __set(). + * + * @property-read int $year + * @property-read int $yearIso + * @property-read int $month + * @property-read int $day + * @property-read int $hour + * @property-read int $minute + * @property-read int $second + * @property-read int $timestamp seconds since the Unix Epoch + * @property-read DateTimeZone $timezone the current timezone + * @property-read DateTimeZone $tz alias of timezone + * @property-read int $micro + * @property-read int $dayOfWeek 1 (for Monday) through 7 (for Sunday) + * @property-read int $dayOfYear 0 through 365 + * @property-read int $weekOfMonth 1 through 5 + * @property-read int $weekOfYear ISO-8601 week number of year, weeks starting on Monday + * @property-read int $daysInMonth number of days in the given month + * @property-read int $age does a diffInYears() with default parameters + * @property-read int $quarter the quarter of this instance, 1 - 4 + * @property-read int $offset the timezone offset in seconds from UTC + * @property-read int $offsetHours the timezone offset in hours from UTC + * @property-read bool $dst daylight savings time indicator, true if DST, false otherwise + * @property-read bool $local checks if the timezone is local, true if local, false otherwise + * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise + * @property-read string $timezoneName + * @property-read string $tzName + */ +class MutableDateTime extends DateTime implements ChronosInterface +{ + use Traits\ComparisonTrait; + use Traits\DifferenceTrait; + use Traits\FactoryTrait; + use Traits\FormattingTrait; + use Traits\MagicPropertyTrait; + use Traits\ModifierTrait; + use Traits\RelativeKeywordTrait; + use Traits\TestingAidTrait; + use Traits\TimezoneTrait; + + /** + * Format to use for __toString method when type juggling occurs. + * + * @var string + */ + protected static $toStringFormat = ChronosInterface::DEFAULT_TO_STRING_FORMAT; + + /** + * Create a new MutableDateTime instance. + * + * Please see the testing aids section (specifically static::setTestNow()) + * for more on the possibility of this constructor returning a test instance. + * + * @param string|null $time Fixed or relative time + * @param \DateTimeZone|string|null $tz The timezone for the instance + */ + public function __construct($time = 'now', $tz = null) + { + if ($tz !== null) { + $tz = $tz instanceof DateTimeZone ? $tz : new DateTimeZone($tz); + } + + $testNow = Chronos::getTestNow(); + if ($testNow === null) { + parent::__construct($time === null ? 'now' : $time, $tz); + + return; + } + + $relative = static::hasRelativeKeywords($time); + if (!empty($time) && $time !== 'now' && !$relative) { + parent::__construct($time, $tz); + + return; + } + + $testNow = clone $testNow; + if ($relative) { + $testNow = $testNow->modify($time); + } + + $relativetime = static::isTimeExpression($time); + if (!$relativetime && $tz !== $testNow->getTimezone()) { + $testNow = $testNow->setTimezone($tz === null ? date_default_timezone_get() : $tz); + } + $time = $testNow->format('Y-m-d H:i:s.u'); + parent::__construct($time, $tz); + } + + /** + * Create a new immutable instance from current mutable instance. + * + * @return Chronos + */ + public function toImmutable() + { + return Chronos::instance($this); + } + + /** + * Set a part of the ChronosInterface object + * + * @param string $name The property to set. + * @param string|int|\DateTimeZone $value The value to set. + * @throws \InvalidArgumentException + * @return void + */ + public function __set($name, $value) + { + switch ($name) { + case 'year': + $this->year($value); + break; + + case 'month': + $this->month($value); + break; + + case 'day': + $this->day($value); + break; + + case 'hour': + $this->hour($value); + break; + + case 'minute': + $this->minute($value); + break; + + case 'second': + $this->second($value); + break; + + case 'timestamp': + $this->timestamp($value); + break; + + case 'timezone': + case 'tz': + $this->timezone($value); + break; + + default: + throw new InvalidArgumentException(sprintf("Unknown setter '%s'", $name)); + } + } + + /** + * Return properties for debugging. + * + * @return array + */ + public function __debugInfo() + { + // Conditionally add properties if state exists to avoid + // errors when using a debugger. + $vars = get_object_vars($this); + + $properties = [ + 'hasFixedNow' => static::hasTestNow(), + ]; + + if (isset($vars['date'])) { + $properties['time'] = $this->format('Y-m-d H:i:s.u'); + } + + if (isset($vars['timezone'])) { + $properties['timezone'] = $this->getTimezone()->getName(); + } + + return $properties; + } +} diff --git a/vendor/cakephp/chronos/src/Traits/ComparisonTrait.php b/vendor/cakephp/chronos/src/Traits/ComparisonTrait.php new file mode 100644 index 0000000..8973e4e --- /dev/null +++ b/vendor/cakephp/chronos/src/Traits/ComparisonTrait.php @@ -0,0 +1,499 @@ + + * @link http://cakephp.org CakePHP(tm) Project + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +namespace Cake\Chronos\Traits; + +use Cake\Chronos\ChronosInterface; +use DateTime; + +/** + * Provides various comparison operator methods for datetime objects. + */ +trait ComparisonTrait +{ + use CopyTrait; + + /** + * Days of weekend + * + * @var array + */ + protected static $weekendDays = [ChronosInterface::SATURDAY, ChronosInterface::SUNDAY]; + + /** + * Get weekend days + * + * @return array + */ + public static function getWeekendDays() + { + return static::$weekendDays; + } + + /** + * Set weekend days + * + * @param array $days Which days are 'weekends'. + * @return void + */ + public static function setWeekendDays($days) + { + static::$weekendDays = $days; + } + + /** + * Determines if the instance is equal to another + * + * @param \Cake\Chronos\ChronosInterface $dt The instance to compare with. + * @return bool + */ + public function eq(ChronosInterface $dt) + { + return $this == $dt; + } + + /** + * Determines if the instance is not equal to another + * + * @param \Cake\Chronos\ChronosInterface $dt The instance to compare with. + * @return bool + */ + public function ne(ChronosInterface $dt) + { + return !$this->eq($dt); + } + + /** + * Determines if the instance is greater (after) than another + * + * @param \Cake\Chronos\ChronosInterface $dt The instance to compare with. + * @return bool + */ + public function gt(ChronosInterface $dt) + { + return $this > $dt; + } + + /** + * Determines if the instance is greater (after) than or equal to another + * + * @param \Cake\Chronos\ChronosInterface $dt The instance to compare with. + * @return bool + */ + public function gte(ChronosInterface $dt) + { + return $this >= $dt; + } + + /** + * Determines if the instance is less (before) than another + * + * @param \Cake\Chronos\ChronosInterface $dt The instance to compare with. + * @return bool + */ + public function lt(ChronosInterface $dt) + { + return $this < $dt; + } + + /** + * Determines if the instance is less (before) or equal to another + * + * @param \Cake\Chronos\ChronosInterface $dt The instance to compare with. + * @return bool + */ + public function lte(ChronosInterface $dt) + { + return $this <= $dt; + } + + /** + * Determines if the instance is between two others + * + * @param \Cake\Chronos\ChronosInterface $dt1 The instance to compare with. + * @param \Cake\Chronos\ChronosInterface $dt2 The instance to compare with. + * @param bool $equal Indicates if a > and < comparison should be used or <= or >= + * @return bool + */ + public function between(ChronosInterface $dt1, ChronosInterface $dt2, $equal = true) + { + if ($dt1->gt($dt2)) { + $temp = $dt1; + $dt1 = $dt2; + $dt2 = $temp; + } + + if ($equal) { + return $this->gte($dt1) && $this->lte($dt2); + } + + return $this->gt($dt1) && $this->lt($dt2); + } + + /** + * Get the closest date from the instance. + * + * @param \Cake\Chronos\ChronosInterface $dt1 The instance to compare with. + * @param \Cake\Chronos\ChronosInterface $dt2 The instance to compare with. + * @return \Cake\Chronos\ChronosInterface + */ + public function closest(ChronosInterface $dt1, ChronosInterface $dt2) + { + return $this->diffInSeconds($dt1) < $this->diffInSeconds($dt2) ? $dt1 : $dt2; + } + + /** + * Get the farthest date from the instance. + * + * @param \Cake\Chronos\ChronosInterface $dt1 The instance to compare with. + * @param \Cake\Chronos\ChronosInterface $dt2 The instance to compare with. + * @return \Cake\Chronos\ChronosInterface + */ + public function farthest(ChronosInterface $dt1, ChronosInterface $dt2) + { + return $this->diffInSeconds($dt1) > $this->diffInSeconds($dt2) ? $dt1 : $dt2; + } + + /** + * Get the minimum instance between a given instance (default now) and the current instance. + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to compare with. + * @return static + */ + public function min(ChronosInterface $dt = null) + { + $dt = ($dt === null) ? static::now($this->tz) : $dt; + + return $this->lt($dt) ? $this : $dt; + } + + /** + * Get the maximum instance between a given instance (default now) and the current instance. + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to compare with. + * @return static + */ + public function max(ChronosInterface $dt = null) + { + $dt = ($dt === null) ? static::now($this->tz) : $dt; + + return $this->gt($dt) ? $this : $dt; + } + + /** + * Determines if the instance is a weekday + * + * @return bool + */ + public function isWeekday() + { + return !$this->isWeekend(); + } + + /** + * Determines if the instance is a weekend day + * + * @return bool + */ + public function isWeekend() + { + return in_array($this->dayOfWeek, self::$weekendDays, true); + } + + /** + * Determines if the instance is yesterday + * + * @return bool + */ + public function isYesterday() + { + return $this->toDateString() === static::yesterday($this->tz)->toDateString(); + } + + /** + * Determines if the instance is today + * + * @return bool + */ + public function isToday() + { + return $this->toDateString() === static::now($this->tz)->toDateString(); + } + + /** + * Determines if the instance is tomorrow + * + * @return bool + */ + public function isTomorrow() + { + return $this->toDateString() === static::tomorrow($this->tz)->toDateString(); + } + + /** + * Determines if the instance is within the next week + * + * @return bool + */ + public function isNextWeek() + { + return $this->format('W o') === static::now($this->tz)->addWeek()->format('W o'); + } + + /** + * Determines if the instance is within the last week + * + * @return bool + */ + public function isLastWeek() + { + return $this->format('W o') === static::now($this->tz)->subWeek()->format('W o'); + } + + /** + * Determines if the instance is within the next month + * + * @return bool + */ + public function isNextMonth() + { + return $this->format('m Y') === static::now($this->tz)->addMonth()->format('m Y'); + } + + /** + * Determines if the instance is within the last month + * + * @return bool + */ + public function isLastMonth() + { + return $this->format('m Y') === static::now($this->tz)->subMonth()->format('m Y'); + } + + /** + * Determines if the instance is within the next year + * + * @return bool + */ + public function isNextYear() + { + return $this->year === static::now($this->tz)->addYear()->year; + } + + /** + * Determines if the instance is within the last year + * + * @return bool + */ + public function isLastYear() + { + return $this->year === static::now($this->tz)->subYear()->year; + } + + /** + * Determines if the instance is in the future, ie. greater (after) than now + * + * @return bool + */ + public function isFuture() + { + return $this->gt(static::now($this->tz)); + } + + /** + * Determines if the instance is in the past, ie. less (before) than now + * + * @return bool + */ + public function isPast() + { + return $this->lt(static::now($this->tz)); + } + + /** + * Determines if the instance is a leap year + * + * @return bool + */ + public function isLeapYear() + { + return $this->format('L') === '1'; + } + + /** + * Checks if the passed in date is the same day as the instance current day. + * + * @param \Cake\Chronos\ChronosInterface $dt The instance to check against. + * @return bool + */ + public function isSameDay(ChronosInterface $dt) + { + return $this->toDateString() === $dt->toDateString(); + } + + /** + * Checks if this day is a Sunday. + * + * @return bool + */ + public function isSunday() + { + return $this->dayOfWeek === ChronosInterface::SUNDAY; + } + + /** + * Checks if this day is a Monday. + * + * @return bool + */ + public function isMonday() + { + return $this->dayOfWeek === ChronosInterface::MONDAY; + } + + /** + * Checks if this day is a Tuesday. + * + * @return bool + */ + public function isTuesday() + { + return $this->dayOfWeek === ChronosInterface::TUESDAY; + } + + /** + * Checks if this day is a Wednesday. + * + * @return bool + */ + public function isWednesday() + { + return $this->dayOfWeek === ChronosInterface::WEDNESDAY; + } + + /** + * Checks if this day is a Thursday. + * + * @return bool + */ + public function isThursday() + { + return $this->dayOfWeek === ChronosInterface::THURSDAY; + } + + /** + * Checks if this day is a Friday. + * + * @return bool + */ + public function isFriday() + { + return $this->dayOfWeek === ChronosInterface::FRIDAY; + } + + /** + * Checks if this day is a Saturday. + * + * @return bool + */ + public function isSaturday() + { + return $this->dayOfWeek === ChronosInterface::SATURDAY; + } + + /** + * Returns true if this object represents a date within the current week + * + * @return bool + */ + public function isThisWeek() + { + return static::now($this->getTimezone())->format('W o') === $this->format('W o'); + } + + /** + * Returns true if this object represents a date within the current month + * + * @return bool + */ + public function isThisMonth() + { + return static::now($this->getTimezone())->format('m Y') === $this->format('m Y'); + } + + /** + * Returns true if this object represents a date within the current year + * + * @return bool + */ + public function isThisYear() + { + return static::now($this->getTimezone())->format('Y') === $this->format('Y'); + } + + /** + * Check if its the birthday. Compares the date/month values of the two dates. + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to compare with or null to use current day. + * @return static + */ + public function isBirthday(ChronosInterface $dt = null) + { + if ($dt === null) { + $dt = static::now($this->tz); + } + + return $this->format('md') === $dt->format('md'); + } + + /** + * Returns true this instance happened within the specified interval + * + * @param string|int $timeInterval the numeric value with space then time type. + * Example of valid types: 6 hours, 2 days, 1 minute. + * @return bool + */ + public function wasWithinLast($timeInterval) + { + $now = new static(); + $interval = $now->copy()->modify('-' . $timeInterval); + $thisTime = $this->format('U'); + + return $thisTime >= $interval->format('U') && $thisTime <= $now->format('U'); + } + + /** + * Returns true this instance will happen within the specified interval + * + * @param string|int $timeInterval the numeric value with space then time type. + * Example of valid types: 6 hours, 2 days, 1 minute. + * @return bool + */ + public function isWithinNext($timeInterval) + { + $now = new static(); + $interval = $now->copy()->modify('+' . $timeInterval); + $thisTime = $this->format('U'); + + return $thisTime <= $interval->format('U') && $thisTime >= $now->format('U'); + } + + /** + * Check if instance of ChronosInterface is mutable. + * + * @return bool + */ + public function isMutable() + { + return $this instanceof DateTime; + } +} diff --git a/vendor/cakephp/chronos/src/Traits/CopyTrait.php b/vendor/cakephp/chronos/src/Traits/CopyTrait.php new file mode 100644 index 0000000..bed0daa --- /dev/null +++ b/vendor/cakephp/chronos/src/Traits/CopyTrait.php @@ -0,0 +1,31 @@ + + * @link http://cakephp.org CakePHP(tm) Project + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +namespace Cake\Chronos\Traits; + +/** + * Provides methods for copying datetime objects. + * + * Expects that implementing classes provide a static `instance()` method. + */ +trait CopyTrait +{ + /** + * Get a copy of the instance + * + * @return static + */ + public function copy() + { + return static::instance($this); + } +} diff --git a/vendor/cakephp/chronos/src/Traits/DifferenceTrait.php b/vendor/cakephp/chronos/src/Traits/DifferenceTrait.php new file mode 100644 index 0000000..f25fdcb --- /dev/null +++ b/vendor/cakephp/chronos/src/Traits/DifferenceTrait.php @@ -0,0 +1,302 @@ + + * @link http://cakephp.org CakePHP(tm) Project + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +namespace Cake\Chronos\Traits; + +use Cake\Chronos\ChronosInterface; +use Cake\Chronos\ChronosInterval; +use Cake\Chronos\DifferenceFormatter; +use DatePeriod; +use DateTimeImmutable; +use DateTimeInterface; + +/** + * Provides methods for getting differences between datetime objects. + * + * Expects that the implementing class implements: + * + * - static::now() + * - static::instance() + * - copy() + */ +trait DifferenceTrait +{ + /** + * Instance of the diff formatting object. + * + * @var \Cake\Chronos\DifferenceFormatter + */ + protected static $diffFormatter; + + /** + * Get the difference in years + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffInYears(ChronosInterface $dt = null, $abs = true) + { + $dt = $dt === null ? static::now($this->tz) : $dt; + + return (int)$this->diff($dt, $abs)->format('%r%y'); + } + + /** + * Get the difference in months + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffInMonths(ChronosInterface $dt = null, $abs = true) + { + $dt = $dt === null ? static::now($this->tz) : $dt; + + return $this->diffInYears($dt, $abs) * ChronosInterface::MONTHS_PER_YEAR + (int)$this->diff($dt, $abs)->format('%r%m'); + } + + /** + * Get the difference in weeks + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffInWeeks(ChronosInterface $dt = null, $abs = true) + { + return (int)($this->diffInDays($dt, $abs) / ChronosInterface::DAYS_PER_WEEK); + } + + /** + * Get the difference in days + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffInDays(ChronosInterface $dt = null, $abs = true) + { + $dt = $dt === null ? static::now($this->tz) : $dt; + + return (int)$this->diff($dt, $abs)->format('%r%a'); + } + + /** + * Get the difference in days using a filter callable + * + * @param callable $callback The callback to use for filtering. + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffInDaysFiltered(callable $callback, ChronosInterface $dt = null, $abs = true) + { + return $this->diffFiltered(ChronosInterval::day(), $callback, $dt, $abs); + } + + /** + * Get the difference in hours using a filter callable + * + * @param callable $callback The callback to use for filtering. + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffInHoursFiltered(callable $callback, ChronosInterface $dt = null, $abs = true) + { + return $this->diffFiltered(ChronosInterval::hour(), $callback, $dt, $abs); + } + + /** + * Get the difference by the given interval using a filter callable + * + * @param \Cake\Chronos\ChronosInterval $ci An interval to traverse by + * @param callable $callback The callback to use for filtering. + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffFiltered(ChronosInterval $ci, callable $callback, ChronosInterface $dt = null, $abs = true) + { + $start = $this; + $end = $dt === null ? static::now($this->tz) : $dt; + $inverse = false; + + if (defined('HHVM_VERSION')) { + $start = new DateTimeImmutable($this->toIso8601String()); + $end = new DateTimeImmutable($end->toIso8601String()); + } + + if ($end < $start) { + $start = $end; + $end = $this; + $inverse = true; + } + + $period = new DatePeriod($start, $ci, $end); + $vals = array_filter(iterator_to_array($period), function (DateTimeInterface $date) use ($callback) { + return $callback(static::instance($date)); + }); + + $diff = count($vals); + + return $inverse && !$abs ? -$diff : $diff; + } + + /** + * Get the difference in weekdays + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffInWeekdays(ChronosInterface $dt = null, $abs = true) + { + return $this->diffInDaysFiltered(function (ChronosInterface $date) { + return $date->isWeekday(); + }, $dt, $abs); + } + + /** + * Get the difference in weekend days using a filter + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffInWeekendDays(ChronosInterface $dt = null, $abs = true) + { + return $this->diffInDaysFiltered(function (ChronosInterface $date) { + return $date->isWeekend(); + }, $dt, $abs); + } + + /** + * Get the difference in hours + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffInHours(ChronosInterface $dt = null, $abs = true) + { + return (int)($this->diffInSeconds($dt, $abs) / ChronosInterface::SECONDS_PER_MINUTE / ChronosInterface::MINUTES_PER_HOUR); + } + + /** + * Get the difference in minutes + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffInMinutes(ChronosInterface $dt = null, $abs = true) + { + return (int)($this->diffInSeconds($dt, $abs) / ChronosInterface::SECONDS_PER_MINUTE); + } + + /** + * Get the difference in seconds + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from. + * @param bool $abs Get the absolute of the difference + * @return int + */ + public function diffInSeconds(ChronosInterface $dt = null, $abs = true) + { + $dt = ($dt === null) ? static::now($this->tz) : $dt; + $value = $dt->getTimestamp() - $this->getTimestamp(); + + return $abs ? abs($value) : $value; + } + + /** + * The number of seconds since midnight. + * + * @return int + */ + public function secondsSinceMidnight() + { + return $this->diffInSeconds($this->copy()->startOfDay()); + } + + /** + * The number of seconds until 23:59:59. + * + * @return int + */ + public function secondsUntilEndOfDay() + { + return $this->diffInSeconds($this->copy()->endOfDay()); + } + + /** + * Convenience method for getting the remaining time from a given time. + * + * @param \DateTime|\DateTimeImmutable $datetime The date to get the remaining time from. + * @return \DateInterval|bool The DateInterval object representing the difference between the two dates or FALSE on failure. + */ + public static function fromNow($datetime) + { + $timeNow = new static(); + + return $timeNow->diff($datetime); + } + + /** + * Get the difference in a human readable format. + * + * When comparing a value in the past to default now: + * 1 hour ago + * 5 months ago + * + * When comparing a value in the future to default now: + * 1 hour from now + * 5 months from now + * + * When comparing a value in the past to another value: + * 1 hour before + * 5 months before + * + * When comparing a value in the future to another value: + * 1 hour after + * 5 months after + * + * @param \Cake\Chronos\ChronosInterface|null $other The datetime to compare with. + * @param bool $absolute removes time difference modifiers ago, after, etc + * @return string + */ + public function diffForHumans(ChronosInterface $other = null, $absolute = false) + { + return static::diffFormatter()->diffForHumans($this, $other, $absolute); + } + + /** + * Get the difference formatter instance or overwrite the current one. + * + * @param \Cake\Chronos\DifferenceFormatter|null $formatter The formatter instance when setting. + * @return \Cake\Chronos\DifferenceFormatter The formatter instance. + */ + public static function diffFormatter($formatter = null) + { + if ($formatter === null) { + if (static::$diffFormatter === null) { + static::$diffFormatter = new DifferenceFormatter(); + } + + return static::$diffFormatter; + } + + return static::$diffFormatter = $formatter; + } +} diff --git a/vendor/cakephp/chronos/src/Traits/FactoryTrait.php b/vendor/cakephp/chronos/src/Traits/FactoryTrait.php new file mode 100644 index 0000000..1e1650b --- /dev/null +++ b/vendor/cakephp/chronos/src/Traits/FactoryTrait.php @@ -0,0 +1,280 @@ + + * @link http://cakephp.org CakePHP(tm) Project + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +namespace Cake\Chronos\Traits; + +use DateTimeInterface; +use DateTimeZone; +use InvalidArgumentException; + +/** + * Provides a number of datetime related factory methods. + */ +trait FactoryTrait +{ + /** + * Holds the last error generated by createFromFormat + * + * @var array + */ + protected static $_lastErrors = []; + + /** + * Create a ChronosInterface instance from a DateTimeInterface one + * + * @param \DateTimeInterface $dt The datetime instance to convert. + * @return static + */ + public static function instance(DateTimeInterface $dt) + { + if ($dt instanceof static) { + return clone $dt; + } + + return new static($dt->format('Y-m-d H:i:s.u'), $dt->getTimezone()); + } + + /** + * Create a ChronosInterface instance from a string. This is an alias for the + * constructor that allows better fluent syntax as it allows you to do + * ChronosInterface::parse('Monday next week')->fn() rather than + * (new Chronos('Monday next week'))->fn() + * + * @param string $time The strtotime compatible string to parse + * @param \DateTimeZone|string|null $tz The DateTimeZone object or timezone name. + * @return static + */ + public static function parse($time = 'now', $tz = null) + { + return new static($time, $tz); + } + + /** + * Get a ChronosInterface instance for the current date and time + * + * @param \DateTimeZone|string|null $tz The DateTimeZone object or timezone name. + * @return static + */ + public static function now($tz = null) + { + return new static('now', $tz); + } + + /** + * Create a ChronosInterface instance for today + * + * @param \DateTimeZone|string|null $tz The timezone to use. + * @return static + */ + public static function today($tz = null) + { + return new static('midnight', $tz); + } + + /** + * Create a ChronosInterface instance for tomorrow + * + * @param \DateTimeZone|string|null $tz The DateTimeZone object or timezone name the new instance should use. + * @return static + */ + public static function tomorrow($tz = null) + { + return new static('tomorrow, midnight', $tz); + } + + /** + * Create a ChronosInterface instance for yesterday + * + * @param \DateTimeZone|string|null $tz The DateTimeZone object or timezone name the new instance should use. + * @return static + */ + public static function yesterday($tz = null) + { + return new static('yesterday, midnight', $tz); + } + + /** + * Create a ChronosInterface instance for the greatest supported date. + * + * @return \Cake\Chronos\ChronosInterface + */ + public static function maxValue() + { + return static::createFromTimestampUTC(PHP_INT_MAX); + } + + /** + * Create a ChronosInterface instance for the lowest supported date. + * + * @return \Cake\Chronos\ChronosInterface + */ + public static function minValue() + { + $max = PHP_INT_SIZE === 4 ? PHP_INT_MAX : PHP_INT_MAX / 10; + + return static::createFromTimestampUTC(~$max); + } + + /** + * Create a new ChronosInterface instance from a specific date and time. + * + * If any of $year, $month or $day are set to null their now() values + * will be used. + * + * If $hour is null it will be set to its now() value and the default values + * for $minute and $second will be their now() values. + * If $hour is not null then the default values for $minute and $second + * will be 0. + * + * @param int|null $year The year to create an instance with. + * @param int|null $month The month to create an instance with. + * @param int|null $day The day to create an instance with. + * @param int|null $hour The hour to create an instance with. + * @param int|null $minute The minute to create an instance with. + * @param int|null $second The second to create an instance with. + * @param \DateTimeZone|string|null $tz The DateTimeZone object or timezone name the new instance should use. + * @return static + */ + public static function create($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null) + { + $year = ($year === null) ? date('Y') : $year; + $month = ($month === null) ? date('n') : $month; + $day = ($day === null) ? date('j') : $day; + + if ($hour === null) { + $hour = date('G'); + $minute = ($minute === null) ? date('i') : $minute; + $second = ($second === null) ? date('s') : $second; + } else { + $minute = ($minute === null) ? 0 : $minute; + $second = ($second === null) ? 0 : $second; + } + + $instance = static::createFromFormat('Y-n-j G:i:s', sprintf('%s-%s-%s %s:%02s:%02s', 0, $month, $day, $hour, $minute, $second), $tz); + + return $instance->addYears($year); + } + + /** + * Create a ChronosInterface instance from just a date. The time portion is set to now. + * + * @param int $year The year to create an instance with. + * @param int $month The month to create an instance with. + * @param int $day The day to create an instance with. + * @param \DateTimeZone|string|null $tz The DateTimeZone object or timezone name the new instance should use. + * @return static + */ + public static function createFromDate($year = null, $month = null, $day = null, $tz = null) + { + return static::create($year, $month, $day, null, null, null, $tz); + } + + /** + * Create a ChronosInterface instance from just a time. The date portion is set to today. + * + * @param int|null $hour The hour to create an instance with. + * @param int|null $minute The minute to create an instance with. + * @param int|null $second The second to create an instance with. + * @param \DateTimeZone|string|null $tz The DateTimeZone object or timezone name the new instance should use. + * @return static + */ + public static function createFromTime($hour = null, $minute = null, $second = null, $tz = null) + { + return static::create(null, null, null, $hour, $minute, $second, $tz); + } + + /** + * Create a ChronosInterface instance from a specific format + * + * @param string $format The date() compatible format string. + * @param string $time The formatted date string to interpret. + * @param \DateTimeZone|string|null $tz The DateTimeZone object or timezone name the new instance should use. + * @return static + * @throws \InvalidArgumentException + */ + public static function createFromFormat($format, $time, $tz = null) + { + if ($tz !== null) { + $dt = parent::createFromFormat($format, $time, static::safeCreateDateTimeZone($tz)); + } else { + $dt = parent::createFromFormat($format, $time); + } + + $errors = parent::getLastErrors(); + if ($dt == false) { + throw new InvalidArgumentException(implode(PHP_EOL, $errors['errors'])); + } + + $dt = static::instance($dt); + static::$_lastErrors = $errors; + + return $dt; + } + + /** + * Create a ChronosInterface instance from a timestamp + * + * @param int $timestamp The timestamp to create an instance from. + * @param \DateTimeZone|string|null $tz The DateTimeZone object or timezone name the new instance should use. + * @return static + */ + public static function createFromTimestamp($timestamp, $tz = null) + { + return static::now($tz)->setTimestamp($timestamp); + } + + /** + * Create a ChronosInterface instance from an UTC timestamp + * + * @param int $timestamp The UTC timestamp to create an instance from. + * @return static + */ + public static function createFromTimestampUTC($timestamp) + { + return new static('@' . $timestamp); + } + + /** + * Creates a DateTimeZone from a string or a DateTimeZone + * + * @param \DateTimeZone|string|null $object The value to convert. + * @return \DateTimeZone + * @throws \InvalidArgumentException + */ + protected static function safeCreateDateTimeZone($object) + { + if ($object === null) { + return new DateTimeZone(date_default_timezone_get()); + } + + if ($object instanceof DateTimeZone) { + return $object; + } + + return new DateTimeZone($object); + } + + /** + * Returns any errors or warnings that were found during the parsing + * of the last object created by this class. + * + * @return array + */ + public static function getLastErrors() + { + if (empty(static::$_lastErrors)) { + return parent::getLastErrors(); + } + + return static::$_lastErrors; + } +} diff --git a/vendor/cakephp/chronos/src/Traits/FormattingTrait.php b/vendor/cakephp/chronos/src/Traits/FormattingTrait.php new file mode 100644 index 0000000..1af15c5 --- /dev/null +++ b/vendor/cakephp/chronos/src/Traits/FormattingTrait.php @@ -0,0 +1,259 @@ + + * @link http://cakephp.org CakePHP(tm) Project + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +namespace Cake\Chronos\Traits; + +use Cake\Chronos\ChronosInterface; +use DateTime; + +/** + * Provides string formatting methods for datetime instances. + * + * Expects implementing classes to define static::$toStringFormat + */ +trait FormattingTrait +{ + /** + * Reset the format used to the default when type juggling a ChronosInterface instance to a string + * + * @return void + */ + public static function resetToStringFormat() + { + static::setToStringFormat(ChronosInterface::DEFAULT_TO_STRING_FORMAT); + } + + /** + * Set the default format used when type juggling a ChronosInterface instance to a string + * + * @param string $format The format to use in future __toString() calls. + * @return void + */ + public static function setToStringFormat($format) + { + static::$toStringFormat = $format; + } + + /** + * Format the instance as a string using the set format + * + * @return string + */ + public function __toString() + { + return $this->format(static::$toStringFormat); + } + + /** + * Format the instance as date + * + * @return string + */ + public function toDateString() + { + return $this->format('Y-m-d'); + } + + /** + * Format the instance as a readable date + * + * @return string + */ + public function toFormattedDateString() + { + return $this->format('M j, Y'); + } + + /** + * Format the instance as time + * + * @return string + */ + public function toTimeString() + { + return $this->format('H:i:s'); + } + + /** + * Format the instance as date and time + * + * @return string + */ + public function toDateTimeString() + { + return $this->format('Y-m-d H:i:s'); + } + + /** + * Format the instance with day, date and time + * + * @return string + */ + public function toDayDateTimeString() + { + return $this->format('D, M j, Y g:i A'); + } + + /** + * Format the instance as ATOM + * + * @return string + */ + public function toAtomString() + { + return $this->format(DateTime::ATOM); + } + + /** + * Format the instance as COOKIE + * + * @return string + */ + public function toCookieString() + { + return $this->format(DateTime::COOKIE); + } + + /** + * Format the instance as ISO8601 + * + * @return string + */ + public function toIso8601String() + { + return $this->format(DateTime::ATOM); + } + + /** + * Format the instance as RFC822 + * + * @return string + */ + public function toRfc822String() + { + return $this->format(DateTime::RFC822); + } + + /** + * Format the instance as RFC850 + * + * @return string + */ + public function toRfc850String() + { + return $this->format(DateTime::RFC850); + } + + /** + * Format the instance as RFC1036 + * + * @return string + */ + public function toRfc1036String() + { + return $this->format(DateTime::RFC1036); + } + + /** + * Format the instance as RFC1123 + * + * @return string + */ + public function toRfc1123String() + { + return $this->format(DateTime::RFC1123); + } + + /** + * Format the instance as RFC2822 + * + * @return string + */ + public function toRfc2822String() + { + return $this->format(DateTime::RFC2822); + } + + /** + * Format the instance as RFC3339 + * + * @return string + */ + public function toRfc3339String() + { + return $this->format(DateTime::RFC3339); + } + + /** + * Format the instance as RSS + * + * @return string + */ + public function toRssString() + { + return $this->format(DateTime::RSS); + } + + /** + * Format the instance as W3C + * + * @return string + */ + public function toW3cString() + { + return $this->format(DateTime::W3C); + } + + /** + * Returns a UNIX timestamp. + * + * @return string UNIX timestamp + */ + public function toUnixString() + { + return $this->format('U'); + } + + /** + * Returns the quarter + * + * @param bool $range Range. + * @return int|array 1, 2, 3, or 4 quarter of year or array if $range true + */ + public function toQuarter($range = false) + { + $quarter = ceil($this->format('m') / 3); + if ($range === false) { + return $quarter; + } + + $year = $this->format('Y'); + switch ($quarter) { + case 1: + return [$year . '-01-01', $year . '-03-31']; + case 2: + return [$year . '-04-01', $year . '-06-30']; + case 3: + return [$year . '-07-01', $year . '-09-30']; + case 4: + return [$year . '-10-01', $year . '-12-31']; + } + } + + /** + * @return int + */ + public function toWeek() + { + return (int)$this->format('W'); + } +} diff --git a/vendor/cakephp/chronos/src/Traits/FrozenTimeTrait.php b/vendor/cakephp/chronos/src/Traits/FrozenTimeTrait.php new file mode 100644 index 0000000..8222d7b --- /dev/null +++ b/vendor/cakephp/chronos/src/Traits/FrozenTimeTrait.php @@ -0,0 +1,186 @@ +format('Y-m-d 00:00:00'); + } + if (substr($time, 0, 1) === '@') { + return gmdate('Y-m-d 00:00:00', substr($time, 1)); + } + if ($time === null || $time === 'now' || $time === '') { + return date('Y-m-d 00:00:00'); + } + if ($this->hasRelativeKeywords($time)) { + return date('Y-m-d 00:00:00', strtotime($time)); + } + + return preg_replace('/\d{1,2}:\d{1,2}:\d{1,2}(?:\.\d+)?/', '00:00:00', $time); + } + + /** + * Remove time components from strtotime relative strings. + * + * @param string $time The input expression + * @return string The output expression with no time modifiers. + */ + protected function stripRelativeTime($time) + { + return preg_replace('/([-+]\s*\d+\s(?:minutes|seconds|hours|microseconds))/', '', $time); + } + + /** + * Modify the time on the Date. + * + * This method ignores all inputs and forces all inputs to 0. + * + * @param int $hours The hours to set (ignored) + * @param int $minutes The minutes to set (ignored) + * @param int $seconds The seconds to set (ignored) + * @param int $microseconds The microseconds to set (ignored) + * @return static A modified Date instance. + */ + public function setTime($hours, $minutes, $seconds = null, $microseconds = null) + { + if (CHRONOS_SUPPORTS_MICROSECONDS) { + return parent::setTime(0, 0, 0, 0); + } + + return parent::setTime(0, 0, 0); + } + + /** + * Add an Interval to a Date + * + * Any changes to the time will be ignored and reset to 00:00:00 + * + * @param \DateInterval $interval The interval to modify this date by. + * @return static A modified Date instance + */ + public function add($interval) + { + return parent::add($interval)->setTime(0, 0, 0); + } + + /** + * Subtract an Interval from a Date. + * + * Any changes to the time will be ignored and reset to 00:00:00 + * + * @param \DateInterval $interval The interval to modify this date by. + * @return static A modified Date instance + */ + public function sub($interval) + { + return parent::sub($interval)->setTime(0, 0, 0); + } + + /** + * No-op method. + * + * Timezones have no effect on calendar dates. + * + * @param \DateTimeZone|string $value The DateTimeZone object or timezone name to use. + * @return $this + */ + public function timezone($value) + { + return $this; + } + + /** + * No-op method. + * + * Timezones have no effect on calendar dates. + * + * @param \DateTimeZone|string $value The DateTimeZone object or timezone name to use. + * @return $this + */ + public function tz($value) + { + return $this; + } + + /** + * No-op method. + * + * Timezones have no effect on calendar dates. + * + * @param \DateTimeZone|string $value The DateTimeZone object or timezone name to use. + * @return $this + */ + public function setTimezone($value) + { + return $this; + } + + /** + * Set the timestamp value and get a new object back. + * + * This method will discard the time aspects of the timestamp + * and only apply the date portions + * + * @param int $value The timestamp value to set. + * @return static + */ + public function setTimestamp($value) + { + return parent::setTimestamp($value)->setTime(0, 0, 0); + } + + /** + * Overloaded to ignore time changes. + * + * Changing any aspect of the time will be ignored, and the resulting object + * will have its time frozen to 00:00:00. + * + * @param string $relative The relative change to make. + * @return static A new date with the applied date changes. + */ + public function modify($relative) + { + if (preg_match('/hour|minute|second/', $relative)) { + return $this; + } + $new = parent::modify($relative); + if ($new->format('H:i:s') !== '00:00:00') { + return $new->setTime(0, 0, 0); + } + + return $new; + } +} diff --git a/vendor/cakephp/chronos/src/Traits/MagicPropertyTrait.php b/vendor/cakephp/chronos/src/Traits/MagicPropertyTrait.php new file mode 100644 index 0000000..1af4b88 --- /dev/null +++ b/vendor/cakephp/chronos/src/Traits/MagicPropertyTrait.php @@ -0,0 +1,131 @@ + + * @link http://cakephp.org CakePHP(tm) Project + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +namespace Cake\Chronos\Traits; + +use Cake\Chronos\ChronosInterface; +use InvalidArgumentException; + +/** + * Provides the magic methods that allow read access + * to magic properties. + * + * @property-read int $year + * @property-read int $yearIso + * @property-read int $month + * @property-read int $day + * @property-read int $hour + * @property-read int $minute + * @property-read int $second + * @property-read int $micro + * @property-read int $dayOfWeek + * @property-read int $dayOfYear + * @property-read int $weekOfYear + * @property-read int $daysInMonth + * @property-read int $timestamp + * @property-read int $weekOfMonth + * @property-read int $age + * @property-read int $quarter + * @property-read int $offset + * @property-read int $offsetHours + * @property-read boolean $dst + * @property-read boolean $local + * @property-read boolean $utc + * @property-read \DateTimeZone $timezone + * @property-read \DateTimeZone $tz + * @property-read string $timezoneName + * @property-read string $tzName + */ +trait MagicPropertyTrait +{ + /** + * Get a part of the ChronosInterface object + * + * @param string $name The property name to read. + * @return string|int|\DateTimeZone The property value. + * @throws \InvalidArgumentException + */ + public function __get($name) + { + static $formats = [ + 'year' => 'Y', + 'yearIso' => 'o', + 'month' => 'n', + 'day' => 'j', + 'hour' => 'G', + 'minute' => 'i', + 'second' => 's', + 'micro' => 'u', + 'dayOfWeek' => 'N', + 'dayOfYear' => 'z', + 'weekOfYear' => 'W', + 'daysInMonth' => 't', + 'timestamp' => 'U', + ]; + + switch (true) { + case isset($formats[$name]): + return (int)$this->format($formats[$name]); + + case $name === 'weekOfMonth': + return (int)ceil($this->day / ChronosInterface::DAYS_PER_WEEK); + + case $name === 'age': + return $this->diffInYears(); + + case $name === 'quarter': + return (int)ceil($this->month / 3); + + case $name === 'offset': + return $this->getOffset(); + + case $name === 'offsetHours': + return $this->getOffset() / ChronosInterface::SECONDS_PER_MINUTE / ChronosInterface::MINUTES_PER_HOUR; + + case $name === 'dst': + return $this->format('I') === '1'; + + case $name === 'local': + return $this->offset === $this->copy()->setTimezone(date_default_timezone_get())->offset; + + case $name === 'utc': + return $this->offset === 0; + + case $name === 'timezone' || $name === 'tz': + return $this->getTimezone(); + + case $name === 'timezoneName' || $name === 'tzName': + return $this->getTimezone()->getName(); + + default: + throw new InvalidArgumentException(sprintf("Unknown getter '%s'", $name)); + } + } + + /** + * Check if an attribute exists on the object + * + * @param string $name The property name to check. + * @return bool Whether or not the property exists. + */ + public function __isset($name) + { + try { + $this->__get($name); + } catch (InvalidArgumentException $e) { + return false; + } + + return true; + } +} diff --git a/vendor/cakephp/chronos/src/Traits/ModifierTrait.php b/vendor/cakephp/chronos/src/Traits/ModifierTrait.php new file mode 100644 index 0000000..d561a4e --- /dev/null +++ b/vendor/cakephp/chronos/src/Traits/ModifierTrait.php @@ -0,0 +1,1082 @@ + + * @link http://cakephp.org CakePHP(tm) Project + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +namespace Cake\Chronos\Traits; + +use Cake\Chronos\ChronosInterface; +use DateTime; +use DateTimeImmutable; + +/** + * Provides a suite of modifier methods. + * + * These methods let you modify the various aspects + * of a DateTime with a series of fluent methods. + * + * This trait expects that the implementing class + * also implements a copy() method. This method can be obtained + * using the CopyTrait. + */ +trait ModifierTrait +{ + + /** + * Names of days of the week. + * + * @var array + */ + protected static $days = [ + ChronosInterface::MONDAY => 'Monday', + ChronosInterface::TUESDAY => 'Tuesday', + ChronosInterface::WEDNESDAY => 'Wednesday', + ChronosInterface::THURSDAY => 'Thursday', + ChronosInterface::FRIDAY => 'Friday', + ChronosInterface::SATURDAY => 'Saturday', + ChronosInterface::SUNDAY => 'Sunday', + ]; + + /** + * First day of week + * + * @var int + */ + protected static $weekStartsAt = ChronosInterface::MONDAY; + + /** + * Last day of week + * + * @var int + */ + protected static $weekEndsAt = ChronosInterface::SUNDAY; + + /** + * Get the first day of week + * + * @return int + */ + public static function getWeekStartsAt() + { + return static::$weekStartsAt; + } + + /** + * Set the first day of week + * + * @param int $day The day the week starts with. + * @return void + */ + public static function setWeekStartsAt($day) + { + static::$weekStartsAt = $day; + } + + /** + * Get the last day of week + * + * @return int + */ + public static function getWeekEndsAt() + { + return static::$weekEndsAt; + } + + /** + * Set the last day of week + * + * @param int $day The day the week ends with. + * @return void + */ + public static function setWeekEndsAt($day) + { + static::$weekEndsAt = $day; + } + + /** + * Set the date to a different date. + * + * Workaround for a PHP bug related to the first day of a month + * + * @param int $year The year to set. + * @param int $month The month to set. + * @param int $day The day to set. + * @return static + * @see https://bugs.php.net/bug.php?id=63863 + */ + public function setDate($year, $month, $day) + { + return $this->modify('+0 day')->setDateParent($year, $month, $day); + } + + /** + * Just calling to parent setDate + * It used in overwritten setDate + * + * @param int $year The year to set. + * @param int $month The month to set. + * @param int $day The day to set. + * @return static + */ + private function setDateParent($year, $month, $day) + { + return parent::setDate($year, $month, $day); + } + + /** + * Set the date and time all together + * + * @param int $year The year to set. + * @param int $month The month to set. + * @param int $day The day to set. + * @param int $hour The hour to set. + * @param int $minute The minute to set. + * @param int $second The second to set. + * @return static + */ + public function setDateTime($year, $month, $day, $hour, $minute, $second = 0) + { + return $this->setDate($year, $month, $day)->setTime($hour, $minute, $second); + } + + /** + * Set the time by time string + * + * @param string $time Time as string. + * @return static + */ + public function setTimeFromTimeString($time) + { + $time = explode(":", $time); + $hour = $time[0]; + $minute = isset($time[1]) ? $time[1] : 0; + $second = isset($time[2]) ? $time[2] : 0; + + return $this->setTime($hour, $minute, $second); + } + + /** + * Set the instance's timestamp + * + * @param int $value The timestamp value to set. + * @return static + */ + public function timestamp($value) + { + return $this->setTimestamp($value); + } + + /** + * Set the instance's year + * + * @param int $value The year value. + * @return static + */ + public function year($value) + { + return $this->setDate($value, $this->month, $this->day); + } + + /** + * Set the instance's month + * + * @param int $value The month value. + * @return static + */ + public function month($value) + { + return $this->setDate($this->year, $value, $this->day); + } + + /** + * Set the instance's day + * + * @param int $value The day value. + * @return static + */ + public function day($value) + { + return $this->setDate($this->year, $this->month, $value); + } + + /** + * Set the instance's hour + * + * @param int $value The hour value. + * @return static + */ + public function hour($value) + { + return $this->setTime($value, $this->minute, $this->second); + } + + /** + * Set the instance's minute + * + * @param int $value The minute value. + * @return static + */ + public function minute($value) + { + return $this->setTime($this->hour, $value, $this->second); + } + + /** + * Set the instance's second + * + * @param int $value The seconds value. + * @return static + */ + public function second($value) + { + return $this->setTime($this->hour, $this->minute, $value); + } + + /** + * Add years to the instance. Positive $value travel forward while + * negative $value travel into the past. + * + * @param int $value The number of years to add. + * @return static + */ + public function addYears($value) + { + return $this->modify((int)$value . ' year'); + } + + /** + * Add a year to the instance + * + * @param int $value The number of years to add. + * @return static + */ + public function addYear($value = 1) + { + return $this->addYears($value); + } + + /** + * Remove a year from the instance + * + * @param int $value The number of years to remove. + * @return static + */ + public function subYear($value = 1) + { + return $this->subYears($value); + } + + /** + * Remove years from the instance. + * + * @param int $value The number of years to remove. + * @return static + */ + public function subYears($value) + { + return $this->addYears(-1 * $value); + } + + /** + * Add months to the instance. Positive $value travels forward while + * negative $value travels into the past. + * + * When adding or subtracting months, if the resulting time is a date + * that does not exist, the result of this operation will always be the + * last day of the intended month. + * + * ### Example: + * + * ``` + * (new Chronos('2015-01-03'))->addMonths(1); // Results in 2015-02-03 + * + * (new Chronos('2015-01-31'))->addMonths(1); // Results in 2015-02-28 + * ``` + * + * @param int $value The number of months to add. + * @return static + */ + public function addMonths($value) + { + $day = $this->day; + $date = $this->modify((int)$value . ' month'); + + if ($date->day !== $day) { + return $date->modify('last day of previous month'); + } + + return $date; + } + + /** + * Add a month to the instance + * + * When adding or subtracting months, if the resulting time is a date + * that does not exist, the result of this operation will always be the + * last day of the intended month. + * + * ### Example: + * + * ``` + * (new Chronos('2015-01-03'))->addMonth(); // Results in 2015-02-03 + * + * (new Chronos('2015-01-31'))->addMonth(); // Results in 2015-02-28 + * ``` + * + * @param int $value The number of months to add. + * @return static + */ + public function addMonth($value = 1) + { + return $this->addMonths($value); + } + + /** + * Remove a month from the instance + * + * When adding or subtracting months, if the resulting time is a date + * that does not exist, the result of this operation will always be the + * last day of the intended month. + * + * ### Example: + * + * ``` + * (new Chronos('2015-03-01'))->subMonth(); // Results in 2015-02-01 + * + * (new Chronos('2015-03-31'))->subMonth(); // Results in 2015-02-28 + * ``` + * + * @param int $value The number of months to remove. + * @return static + */ + public function subMonth($value = 1) + { + return $this->subMonths($value); + } + + /** + * Remove months from the instance + * + * When adding or subtracting months, if the resulting time is a date + * that does not exist, the result of this operation will always be the + * last day of the intended month. + * + * ### Example: + * + * ``` + * (new Chronos('2015-03-01'))->subMonths(1); // Results in 2015-02-01 + * + * (new Chronos('2015-03-31'))->subMonths(1); // Results in 2015-02-28 + * ``` + * + * @param int $value The number of months to remove. + * @return static + */ + public function subMonths($value) + { + return $this->addMonths(-1 * $value); + } + + /** + * Add months with overflowing to the instance. Positive $value + * travels forward while negative $value travels into the past. + * + * @param int $value The number of months to add. + * @return static + */ + public function addMonthsWithOverflow($value) + { + return $this->modify((int)$value . ' month'); + } + + /** + * Add a month with overflow to the instance + * + * @param int $value The number of months to add. + * @return static + */ + public function addMonthWithOverflow($value = 1) + { + return $this->modify((int)$value . ' month'); + } + + /** + * Remove a month with overflow from the instance + * + * @param int $value The number of months to remove. + * @return static + */ + public function subMonthWithOverflow($value = 1) + { + return $this->subMonthsWithOverflow($value); + } + + /** + * Remove months with overflow from the instance + * + * @param int $value The number of months to remove. + * @return static + */ + public function subMonthsWithOverflow($value) + { + return $this->addMonthsWithOverflow(-1 * $value); + } + + /** + * Add days to the instance. Positive $value travels forward while + * negative $value travels into the past. + * + * @param int $value The number of days to add. + * @return static + */ + public function addDays($value) + { + $value = (int)$value; + + return $this->modify("$value day"); + } + + /** + * Add a day to the instance + * + * @param int $value The number of days to add. + * @return static + */ + public function addDay($value = 1) + { + $value = (int)$value; + + return $this->modify("$value day"); + } + + /** + * Remove a day from the instance + * + * @param int $value The number of days to remove. + * @return static + */ + public function subDay($value = 1) + { + $value = (int)$value; + + return $this->modify("-$value day"); + } + + /** + * Remove days from the instance + * + * @param int $value The number of days to remove. + * @return static + */ + public function subDays($value) + { + $value = (int)$value; + + return $this->modify("-$value day"); + } + + /** + * Add weekdays to the instance. Positive $value travels forward while + * negative $value travels into the past. + * + * @param int $value The number of weekdays to add. + * @return static + */ + public function addWeekdays($value) + { + return $this->modify((int)$value . ' weekdays ' . $this->format('H:i:s')); + } + + /** + * Add a weekday to the instance + * + * @param int $value The number of weekdays to add. + * @return static + */ + public function addWeekday($value = 1) + { + return $this->addWeekdays($value); + } + + /** + * Remove weekdays from the instance + * + * @param int $value The number of weekdays to remove. + * @return static + */ + public function subWeekdays($value) + { + $value = (int)$value; + + return $this->modify("$value weekdays ago, " . $this->format('H:i:s')); + } + + /** + * Remove a weekday from the instance + * + * @param int $value The number of weekdays to remove. + * @return static + */ + public function subWeekday($value = 1) + { + return $this->subWeekdays($value); + } + + /** + * Add weeks to the instance. Positive $value travels forward while + * negative $value travels into the past. + * + * @param int $value The number of weeks to add. + * @return static + */ + public function addWeeks($value) + { + $value = (int)$value; + + return $this->modify("$value week"); + } + + /** + * Add a week to the instance + * + * @param int $value The number of weeks to add. + * @return static + */ + public function addWeek($value = 1) + { + $value = (int)$value; + + return $this->modify("$value week"); + } + + /** + * Remove a week from the instance + * + * @param int $value The number of weeks to remove. + * @return static + */ + public function subWeek($value = 1) + { + $value = (int)$value; + + return $this->modify("-$value week"); + } + + /** + * Remove weeks to the instance + * + * @param int $value The number of weeks to remove. + * @return static + */ + public function subWeeks($value) + { + $value = (int)$value; + + return $this->modify("-$value week"); + } + + /** + * Add hours to the instance. Positive $value travels forward while + * negative $value travels into the past. + * + * @param int $value The number of hours to add. + * @return static + */ + public function addHours($value) + { + $value = (int)$value; + + return $this->modify("$value hour"); + } + + /** + * Add an hour to the instance + * + * @param int $value The number of hours to add. + * @return static + */ + public function addHour($value = 1) + { + $value = (int)$value; + + return $this->modify("$value hour"); + } + + /** + * Remove an hour from the instance + * + * @param int $value The number of hours to remove. + * @return static + */ + public function subHour($value = 1) + { + $value = (int)$value; + + return $this->modify("-$value hour"); + } + + /** + * Remove hours from the instance + * + * @param int $value The number of hours to remove. + * @return static + */ + public function subHours($value) + { + $value = (int)$value; + + return $this->modify("-$value hour"); + } + + /** + * Add minutes to the instance. Positive $value travels forward while + * negative $value travels into the past. + * + * @param int $value The number of minutes to add. + * @return static + */ + public function addMinutes($value) + { + $value = (int)$value; + + return $this->modify("$value minute"); + } + + /** + * Add a minute to the instance + * + * @param int $value The number of minutes to add. + * @return static + */ + public function addMinute($value = 1) + { + $value = (int)$value; + + return $this->modify("$value minute"); + } + + /** + * Remove a minute from the instance + * + * @param int $value The number of minutes to remove. + * @return static + */ + public function subMinute($value = 1) + { + $value = (int)$value; + + return $this->modify("-$value minute"); + } + + /** + * Remove minutes from the instance + * + * @param int $value The number of minutes to remove. + * @return static + */ + public function subMinutes($value) + { + $value = (int)$value; + + return $this->modify("-$value minute"); + } + + /** + * Add seconds to the instance. Positive $value travels forward while + * negative $value travels into the past. + * + * @param int $value The number of seconds to add. + * @return static + */ + public function addSeconds($value) + { + $value = (int)$value; + + return $this->modify("$value second"); + } + + /** + * Add a second to the instance + * + * @param int $value The number of seconds to add. + * @return static + */ + public function addSecond($value = 1) + { + $value = (int)$value; + + return $this->modify("$value second"); + } + + /** + * Remove a second from the instance + * + * @param int $value The number of seconds to remove. + * @return static + */ + public function subSecond($value = 1) + { + $value = (int)$value; + + return $this->modify("-$value second"); + } + + /** + * Remove seconds from the instance + * + * @param int $value The number of seconds to remove. + * @return static + */ + public function subSeconds($value) + { + $value = (int)$value; + + return $this->modify("-$value second"); + } + + /** + * Resets the time to 00:00:00 + * + * @return static + */ + public function startOfDay() + { + return $this->modify('midnight'); + } + + /** + * Resets the time to 23:59:59 + * + * @return static + */ + public function endOfDay() + { + return $this->modify('23:59:59'); + } + + /** + * Resets the date to the first day of the month and the time to 00:00:00 + * + * @return static + */ + public function startOfMonth() + { + return $this->modify('first day of this month midnight'); + } + + /** + * Resets the date to end of the month and time to 23:59:59 + * + * @return static + */ + public function endOfMonth() + { + return $this->modify('last day of this month, 23:59:59'); + } + + /** + * Resets the date to the first day of the year and the time to 00:00:00 + * + * @return static + */ + public function startOfYear() + { + return $this->modify('first day of january midnight'); + } + + /** + * Resets the date to end of the year and time to 23:59:59 + * + * @return static + */ + public function endOfYear() + { + return $this->modify('last day of december, 23:59:59'); + } + + /** + * Resets the date to the first day of the decade and the time to 00:00:00 + * + * @return static + */ + public function startOfDecade() + { + $year = $this->year - $this->year % ChronosInterface::YEARS_PER_DECADE; + + return $this->modify("first day of january $year, midnight"); + } + + /** + * Resets the date to end of the decade and time to 23:59:59 + * + * @return static + */ + public function endOfDecade() + { + $year = $this->year - $this->year % ChronosInterface::YEARS_PER_DECADE + ChronosInterface::YEARS_PER_DECADE - 1; + + return $this->modify("last day of december $year, 23:59:59"); + } + + /** + * Resets the date to the first day of the century and the time to 00:00:00 + * + * @return static + */ + public function startOfCentury() + { + $year = $this->startOfYear()->year(($this->year - 1) - ($this->year - 1) % ChronosInterface::YEARS_PER_CENTURY + 1)->year; + + return $this->modify("first day of january $year, midnight"); + } + + /** + * Resets the date to end of the century and time to 23:59:59 + * + * @return static + */ + public function endOfCentury() + { + $year = $this->endOfYear()->year(($this->year - 1) - ($this->year - 1) % ChronosInterface::YEARS_PER_CENTURY + ChronosInterface::YEARS_PER_CENTURY)->year; + + return $this->modify("last day of december $year, 23:59:59"); + } + + /** + * Resets the date to the first day of week (defined in $weekStartsAt) and the time to 00:00:00 + * + * @return static + */ + public function startOfWeek() + { + $dt = $this; + if ($dt->dayOfWeek !== static::$weekStartsAt) { + $dt = $dt->previous(static::$weekStartsAt); + } + + return $dt->startOfDay(); + } + + /** + * Resets the date to end of week (defined in $weekEndsAt) and time to 23:59:59 + * + * @return static + */ + public function endOfWeek() + { + $dt = $this; + if ($dt->dayOfWeek !== static::$weekEndsAt) { + $dt = $dt->next(static::$weekEndsAt); + } + + return $dt->endOfDay(); + } + + /** + * Modify to the next occurrence of a given day of the week. + * If no dayOfWeek is provided, modify to the next occurrence + * of the current day of the week. Use the supplied consts + * to indicate the desired dayOfWeek, ex. ChronosInterface::MONDAY. + * + * @param int|null $dayOfWeek The day of the week to move to. + * @return mixed + */ + public function next($dayOfWeek = null) + { + if ($dayOfWeek === null) { + $dayOfWeek = $this->dayOfWeek; + } + + $day = static::$days[$dayOfWeek]; + + return $this->modify("next $day, midnight"); + } + + /** + * Modify to the previous occurrence of a given day of the week. + * If no dayOfWeek is provided, modify to the previous occurrence + * of the current day of the week. Use the supplied consts + * to indicate the desired dayOfWeek, ex. ChronosInterface::MONDAY. + * + * @param int|null $dayOfWeek The day of the week to move to. + * @return mixed + */ + public function previous($dayOfWeek = null) + { + if ($dayOfWeek === null) { + $dayOfWeek = $this->dayOfWeek; + } + + $day = static::$days[$dayOfWeek]; + + return $this->modify("last $day, midnight"); + } + + /** + * Modify to the first occurrence of a given day of the week + * in the current month. If no dayOfWeek is provided, modify to the + * first day of the current month. Use the supplied consts + * to indicate the desired dayOfWeek, ex. ChronosInterface::MONDAY. + * + * @param int|null $dayOfWeek The day of the week to move to. + * @return mixed + */ + public function firstOfMonth($dayOfWeek = null) + { + $day = $dayOfWeek === null ? 'day' : static::$days[$dayOfWeek]; + + return $this->modify("first $day of this month, midnight"); + } + + /** + * Modify to the last occurrence of a given day of the week + * in the current month. If no dayOfWeek is provided, modify to the + * last day of the current month. Use the supplied consts + * to indicate the desired dayOfWeek, ex. ChronosInterface::MONDAY. + * + * @param int|null $dayOfWeek The day of the week to move to. + * @return mixed + */ + public function lastOfMonth($dayOfWeek = null) + { + $day = $dayOfWeek === null ? 'day' : static::$days[$dayOfWeek]; + + return $this->modify("last $day of this month, midnight"); + } + + /** + * Modify to the given occurrence of a given day of the week + * in the current month. If the calculated occurrence is outside the scope + * of the current month, then return false and no modifications are made. + * Use the supplied consts to indicate the desired dayOfWeek, ex. ChronosInterface::MONDAY. + * + * @param int $nth The offset to use. + * @param int $dayOfWeek The day of the week to move to. + * @return mixed + */ + public function nthOfMonth($nth, $dayOfWeek) + { + $dt = $this->copy()->firstOfMonth(); + $check = $dt->format('Y-m'); + $dt = $dt->modify("+$nth " . static::$days[$dayOfWeek]); + + return ($dt->format('Y-m') === $check) ? $dt : false; + } + + /** + * Modify to the first occurrence of a given day of the week + * in the current quarter. If no dayOfWeek is provided, modify to the + * first day of the current quarter. Use the supplied consts + * to indicate the desired dayOfWeek, ex. ChronosInterface::MONDAY. + * + * @param int|null $dayOfWeek The day of the week to move to. + * @return mixed + */ + public function firstOfQuarter($dayOfWeek = null) + { + return $this->day(1)->month($this->quarter * ChronosInterface::MONTHS_PER_QUARTER - 2)->firstOfMonth($dayOfWeek); + } + + /** + * Modify to the last occurrence of a given day of the week + * in the current quarter. If no dayOfWeek is provided, modify to the + * last day of the current quarter. Use the supplied consts + * to indicate the desired dayOfWeek, ex. ChronosInterface::MONDAY. + * + * @param int|null $dayOfWeek The day of the week to move to. + * @return mixed + */ + public function lastOfQuarter($dayOfWeek = null) + { + return $this->day(1)->month($this->quarter * ChronosInterface::MONTHS_PER_QUARTER)->lastOfMonth($dayOfWeek); + } + + /** + * Modify to the given occurrence of a given day of the week + * in the current quarter. If the calculated occurrence is outside the scope + * of the current quarter, then return false and no modifications are made. + * Use the supplied consts to indicate the desired dayOfWeek, ex. ChronosInterface::MONDAY. + * + * @param int $nth The offset to use. + * @param int $dayOfWeek The day of the week to move to. + * @return mixed + */ + public function nthOfQuarter($nth, $dayOfWeek) + { + $dt = $this->copy()->day(1)->month($this->quarter * ChronosInterface::MONTHS_PER_QUARTER); + $lastMonth = $dt->month; + $year = $dt->year; + $dt = $dt->firstOfQuarter()->modify("+$nth" . static::$days[$dayOfWeek]); + + return ($lastMonth < $dt->month || $year !== $dt->year) ? false : $dt; + } + + /** + * Modify to the first occurrence of a given day of the week + * in the current year. If no dayOfWeek is provided, modify to the + * first day of the current year. Use the supplied consts + * to indicate the desired dayOfWeek, ex. ChronosInterface::MONDAY. + * + * @param int|null $dayOfWeek The day of the week to move to. + * @return mixed + */ + public function firstOfYear($dayOfWeek = null) + { + $day = $dayOfWeek === null ? 'day' : static::$days[$dayOfWeek]; + + return $this->modify("first $day of january, midnight"); + } + + /** + * Modify to the last occurrence of a given day of the week + * in the current year. If no dayOfWeek is provided, modify to the + * last day of the current year. Use the supplied consts + * to indicate the desired dayOfWeek, ex. ChronosInterface::MONDAY. + * + * @param int|null $dayOfWeek The day of the week to move to. + * @return mixed + */ + public function lastOfYear($dayOfWeek = null) + { + $day = $dayOfWeek === null ? 'day' : static::$days[$dayOfWeek]; + + return $this->modify("last $day of december, midnight"); + } + + /** + * Modify to the given occurrence of a given day of the week + * in the current year. If the calculated occurrence is outside the scope + * of the current year, then return false and no modifications are made. + * Use the supplied consts to indicate the desired dayOfWeek, ex. ChronosInterface::MONDAY. + * + * @param int $nth The offset to use. + * @param int $dayOfWeek The day of the week to move to. + * @return mixed + */ + public function nthOfYear($nth, $dayOfWeek) + { + $dt = $this->copy()->firstOfYear()->modify("+$nth " . static::$days[$dayOfWeek]); + + return $this->year === $dt->year ? $dt : false; + } + + /** + * Modify the current instance to the average of a given instance (default now) and the current instance. + * + * @param \Cake\Chronos\ChronosInterface|null $dt The instance to compare with. + * @return static + */ + public function average(ChronosInterface $dt = null) + { + $dt = ($dt === null) ? static::now($this->tz) : $dt; + + return $this->addSeconds((int)($this->diffInSeconds($dt, false) / 2)); + } +} diff --git a/vendor/cakephp/chronos/src/Traits/RelativeKeywordTrait.php b/vendor/cakephp/chronos/src/Traits/RelativeKeywordTrait.php new file mode 100644 index 0000000..69c6cd6 --- /dev/null +++ b/vendor/cakephp/chronos/src/Traits/RelativeKeywordTrait.php @@ -0,0 +1,58 @@ + + * @link http://cakephp.org CakePHP(tm) Project + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +namespace Cake\Chronos\Traits; + +/** + * Provides methods for testing if strings contain relative keywords. + */ +trait RelativeKeywordTrait +{ + protected static $relativePattern = '/this|next|last|tomorrow|yesterday|midnight|today|[+-]|first|last|ago/i'; + + /** + * Determine if there is just a time in the time string + * + * @param string $time The time string to check. + * @return bool true if there is a keyword, otherwise false + */ + private static function isTimeExpression($time) + { + // Just a time + if (preg_match('/^[0-2]?[0-9]:[0-5][0-9](?::[0-5][0-9])?$/', $time)) { + return true; + } + + return false; + } + + /** + * Determine if there is a relative keyword in the time string, this is to + * create dates relative to now for test instances. e.g.: next tuesday + * + * @param string $time The time string to check. + * @return bool true if there is a keyword, otherwise false + */ + public static function hasRelativeKeywords($time) + { + if (self::isTimeExpression($time)) { + return true; + } + // skip common format with a '-' in it + if (preg_match('/[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}/', $time) !== 1) { + return preg_match(static::$relativePattern, $time) > 0; + } + + return false; + } +} diff --git a/vendor/cakephp/chronos/src/Traits/TestingAidTrait.php b/vendor/cakephp/chronos/src/Traits/TestingAidTrait.php new file mode 100644 index 0000000..58d1408 --- /dev/null +++ b/vendor/cakephp/chronos/src/Traits/TestingAidTrait.php @@ -0,0 +1,59 @@ + + * @link http://cakephp.org CakePHP(tm) Project + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +namespace Cake\Chronos\Traits; + +use Cake\Chronos\Chronos; +use Cake\Chronos\ChronosInterface; + +/** + * Provides methods for setting a 'test' now. This lets you + * retrieve pre-determined times with now(). + */ +trait TestingAidTrait +{ + + /** + * Set the test now used by Date and Time classes provided by Chronos + * + * @see \Cake\Chronos\Chronos::setTestNow() + * @param \Cake\Chronos\ChronosInterface|string|null $testNow The instance to use for all future instances. + * @return void + */ + public static function setTestNow($testNow = null) + { + Chronos::setTestNow($testNow); + } + + /** + * Get the test instance stored in Chronos + * + * @see \Cake\Chronos\Chronos::getTestNow() + * @return static|null the current instance used for testing or null. + */ + public static function getTestNow() + { + return Chronos::getTestNow(); + } + + /** + * Get whether or not Chronos has a test instance set. + * + * @see \Cake\Chronos\Chronos::hasTestNow() + * @return bool True if there is a test instance, otherwise false + */ + public static function hasTestNow() + { + return Chronos::hasTestNow(); + } +} diff --git a/vendor/cakephp/chronos/src/Traits/TimezoneTrait.php b/vendor/cakephp/chronos/src/Traits/TimezoneTrait.php new file mode 100644 index 0000000..97816ba --- /dev/null +++ b/vendor/cakephp/chronos/src/Traits/TimezoneTrait.php @@ -0,0 +1,60 @@ + + * @link http://cakephp.org CakePHP(tm) Project + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +namespace Cake\Chronos\Traits; + +/** + * Methods for modifying/reading timezone data. + */ +trait TimezoneTrait +{ + /** + * Alias for setTimezone() + * + * @param \DateTimeZone|string $value The DateTimeZone object or timezone name to use. + * @return static + */ + public function timezone($value) + { + return $this->setTimezone($value); + } + + /** + * Alias for setTimezone() + * + * @param \DateTimeZone|string $value The DateTimeZone object or timezone name to use. + * @return static + */ + public function tz($value) + { + return $this->setTimezone($value); + } + + /** + * Set the instance's timezone from a string or object + * + * @param \DateTimeZone|string $value The DateTimeZone object or timezone name to use. + * @return static + */ + public function setTimezone($value) + { + $date = parent::setTimezone(static::safeCreateDateTimeZone($value)); + + // https://bugs.php.net/bug.php?id=72338 + // this is workaround for this bug + // Needed for PHP below 7.0 version + $date->getTimestamp(); + + return $date; + } +} diff --git a/vendor/cakephp/chronos/src/Translator.php b/vendor/cakephp/chronos/src/Translator.php new file mode 100644 index 0000000..e5f9788 --- /dev/null +++ b/vendor/cakephp/chronos/src/Translator.php @@ -0,0 +1,93 @@ + '1 year', + 'year_plural' => '{count} years', + 'month' => '1 month', + 'month_plural' => '{count} months', + 'week' => '1 week', + 'week_plural' => '{count} weeks', + 'day' => '1 day', + 'day_plural' => '{count} days', + 'hour' => '1 hour', + 'hour_plural' => '{count} hours', + 'minute' => '1 minute', + 'minute_plural' => '{count} minutes', + 'second' => '1 second', + 'second_plural' => '{count} seconds', + 'ago' => '{time} ago', + 'from_now' => '{time} from now', + 'after' => '{time} after', + 'before' => '{time} before', + ]; + + /** + * Check if a translation key exists. + * + * @param string $key The key to check. + * @return bool Whether or not the key exists. + */ + public function exists($key) + { + return isset(static::$strings[$key]); + } + + /** + * Get a plural message. + * + * @param string $key The key to use. + * @param int $count The number of items in the translation. + * @param array $vars Additional context variables. + * @return string The translated message or ''. + */ + public function plural($key, $count, array $vars = []) + { + if ($count === 1) { + return $this->singular($key, $vars); + } + + return $this->singular($key . '_plural', ['count' => $count] + $vars); + } + + /** + * Get a singular message. + * + * @param string $key The key to use. + * @param array $vars Additional context variables. + * @return string The translated message or ''. + */ + public function singular($key, array $vars = []) + { + if (isset(static::$strings[$key])) { + $varKeys = array_keys($vars); + foreach ($varKeys as $i => $k) { + $varKeys[$i] = '{' . $k . '}'; + } + + return str_replace($varKeys, $vars, static::$strings[$key]); + } + + return ''; + } +} diff --git a/vendor/cakephp/chronos/src/carbon_compat.php b/vendor/cakephp/chronos/src/carbon_compat.php new file mode 100644 index 0000000..f947cb7 --- /dev/null +++ b/vendor/cakephp/chronos/src/carbon_compat.php @@ -0,0 +1,20 @@ + + * @link http://cakephp.org CakePHP(tm) Project + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +define('CHRONOS_SUPPORTS_MICROSECONDS', version_compare(PHP_VERSION, '7.1.0', '>=')); + +if (!class_exists('Carbon\Carbon')) { + // Create class aliases for Carbon so applications + // can upgrade more easily. + class_alias('Cake\Chronos\Chronos', 'Carbon\MutableDateTime'); + class_alias('Cake\Chronos\ChronosInterface', 'Carbon\CarbonInterface'); +} diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php index 95f7e09..dc02dfb 100644 --- a/vendor/composer/ClassLoader.php +++ b/vendor/composer/ClassLoader.php @@ -377,7 +377,7 @@ class ClassLoader $subPath = $class; while (false !== $lastPos = strrpos($subPath, '\\')) { $subPath = substr($subPath, 0, $lastPos); - $search = $subPath . '\\'; + $search = $subPath.'\\'; if (isset($this->prefixDirsPsr4[$search])) { $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); foreach ($this->prefixDirsPsr4[$search] as $dir) { diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 00410f0..3257e18 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -44,6 +44,7 @@ return array( 'App\\Providers\\EveOnlineOAuthProvider' => $baseDir . '/app/Providers/EveOnlineOAuthProvider.php', 'App\\Providers\\EveOnlineOAuthServiceProvider' => $baseDir . '/app/Providers/EveOnlineOAuthServiceProvider.php', 'App\\Providers\\EventServiceProvider' => $baseDir . '/app/Providers/EventServiceProvider.php', + 'App\\Providers\\HorizonServiceProvider' => $baseDir . '/app/Providers/HorizonServiceProvider.php', 'App\\Providers\\RouteServiceProvider' => $baseDir . '/app/Providers/RouteServiceProvider.php', 'App\\SolarSystemDistance' => $baseDir . '/app/Models/Lookups/SolarSystemDistance.php', 'App\\User' => $baseDir . '/app/Models/User/User.php', @@ -84,6 +85,25 @@ return array( 'Barryvdh\\Debugbar\\Twig\\Extension\\Stopwatch' => $vendorDir . '/barryvdh/laravel-debugbar/src/Twig/Extension/Stopwatch.php', 'Barryvdh\\Debugbar\\Twig\\Node\\StopwatchNode' => $vendorDir . '/barryvdh/laravel-debugbar/src/Twig/Node/StopwatchNode.php', 'Barryvdh\\Debugbar\\Twig\\TokenParser\\StopwatchTokenParser' => $vendorDir . '/barryvdh/laravel-debugbar/src/Twig/TokenParser/StopwatchTokenParser.php', + 'Cake\\Chronos\\Chronos' => $vendorDir . '/cakephp/chronos/src/Chronos.php', + 'Cake\\Chronos\\ChronosInterface' => $vendorDir . '/cakephp/chronos/src/ChronosInterface.php', + 'Cake\\Chronos\\ChronosInterval' => $vendorDir . '/cakephp/chronos/src/ChronosInterval.php', + 'Cake\\Chronos\\Date' => $vendorDir . '/cakephp/chronos/src/Date.php', + 'Cake\\Chronos\\DifferenceFormatter' => $vendorDir . '/cakephp/chronos/src/DifferenceFormatter.php', + 'Cake\\Chronos\\MutableDate' => $vendorDir . '/cakephp/chronos/src/MutableDate.php', + 'Cake\\Chronos\\MutableDateTime' => $vendorDir . '/cakephp/chronos/src/MutableDateTime.php', + 'Cake\\Chronos\\Traits\\ComparisonTrait' => $vendorDir . '/cakephp/chronos/src/Traits/ComparisonTrait.php', + 'Cake\\Chronos\\Traits\\CopyTrait' => $vendorDir . '/cakephp/chronos/src/Traits/CopyTrait.php', + 'Cake\\Chronos\\Traits\\DifferenceTrait' => $vendorDir . '/cakephp/chronos/src/Traits/DifferenceTrait.php', + 'Cake\\Chronos\\Traits\\FactoryTrait' => $vendorDir . '/cakephp/chronos/src/Traits/FactoryTrait.php', + 'Cake\\Chronos\\Traits\\FormattingTrait' => $vendorDir . '/cakephp/chronos/src/Traits/FormattingTrait.php', + 'Cake\\Chronos\\Traits\\FrozenTimeTrait' => $vendorDir . '/cakephp/chronos/src/Traits/FrozenTimeTrait.php', + 'Cake\\Chronos\\Traits\\MagicPropertyTrait' => $vendorDir . '/cakephp/chronos/src/Traits/MagicPropertyTrait.php', + 'Cake\\Chronos\\Traits\\ModifierTrait' => $vendorDir . '/cakephp/chronos/src/Traits/ModifierTrait.php', + 'Cake\\Chronos\\Traits\\RelativeKeywordTrait' => $vendorDir . '/cakephp/chronos/src/Traits/RelativeKeywordTrait.php', + 'Cake\\Chronos\\Traits\\TestingAidTrait' => $vendorDir . '/cakephp/chronos/src/Traits/TestingAidTrait.php', + 'Cake\\Chronos\\Traits\\TimezoneTrait' => $vendorDir . '/cakephp/chronos/src/Traits/TimezoneTrait.php', + 'Cake\\Chronos\\Translator' => $vendorDir . '/cakephp/chronos/src/Translator.php', 'Carbon\\Carbon' => $vendorDir . '/nesbot/carbon/src/Carbon/Carbon.php', 'Carbon\\CarbonImmutable' => $vendorDir . '/nesbot/carbon/src/Carbon/CarbonImmutable.php', 'Carbon\\CarbonInterface' => $vendorDir . '/nesbot/carbon/src/Carbon/CarbonInterface.php', @@ -1842,6 +1862,266 @@ return array( 'JakubOnderka\\PhpConsoleColor\\InvalidStyleException' => $vendorDir . '/jakub-onderka/php-console-color/src/InvalidStyleException.php', 'JakubOnderka\\PhpConsoleHighlighter\\Highlighter' => $vendorDir . '/jakub-onderka/php-console-highlighter/src/Highlighter.php', 'JsonException' => $vendorDir . '/symfony/polyfill-php73/Resources/stubs/JsonException.php', + 'Khill\\Lavacharts\\Builders\\ChartBuilder' => $vendorDir . '/khill/lavacharts/src/Builders/ChartBuilder.php', + 'Khill\\Lavacharts\\Builders\\DashboardBuilder' => $vendorDir . '/khill/lavacharts/src/Builders/DashboardBuilder.php', + 'Khill\\Lavacharts\\Builders\\GenericBuilder' => $vendorDir . '/khill/lavacharts/src/Builders/GenericBuilder.php', + 'Khill\\Lavacharts\\Charts\\AnnotationChart' => $vendorDir . '/khill/lavacharts/src/Charts/AnnotationChart.php', + 'Khill\\Lavacharts\\Charts\\AreaChart' => $vendorDir . '/khill/lavacharts/src/Charts/AreaChart.php', + 'Khill\\Lavacharts\\Charts\\BarChart' => $vendorDir . '/khill/lavacharts/src/Charts/BarChart.php', + 'Khill\\Lavacharts\\Charts\\BubbleChart' => $vendorDir . '/khill/lavacharts/src/Charts/BubbleChart.php', + 'Khill\\Lavacharts\\Charts\\CalendarChart' => $vendorDir . '/khill/lavacharts/src/Charts/CalendarChart.php', + 'Khill\\Lavacharts\\Charts\\CandlestickChart' => $vendorDir . '/khill/lavacharts/src/Charts/CandlestickChart.php', + 'Khill\\Lavacharts\\Charts\\Chart' => $vendorDir . '/khill/lavacharts/src/Charts/Chart.php', + 'Khill\\Lavacharts\\Charts\\ChartFactory' => $vendorDir . '/khill/lavacharts/src/Charts/ChartFactory.php', + 'Khill\\Lavacharts\\Charts\\ColumnChart' => $vendorDir . '/khill/lavacharts/src/Charts/ColumnChart.php', + 'Khill\\Lavacharts\\Charts\\ComboChart' => $vendorDir . '/khill/lavacharts/src/Charts/ComboChart.php', + 'Khill\\Lavacharts\\Charts\\DonutChart' => $vendorDir . '/khill/lavacharts/src/Charts/DonutChart.php', + 'Khill\\Lavacharts\\Charts\\GanttChart' => $vendorDir . '/khill/lavacharts/src/Charts/GanttChart.php', + 'Khill\\Lavacharts\\Charts\\GaugeChart' => $vendorDir . '/khill/lavacharts/src/Charts/GaugeChart.php', + 'Khill\\Lavacharts\\Charts\\GeoChart' => $vendorDir . '/khill/lavacharts/src/Charts/GeoChart.php', + 'Khill\\Lavacharts\\Charts\\HistogramChart' => $vendorDir . '/khill/lavacharts/src/Charts/HistogramChart.php', + 'Khill\\Lavacharts\\Charts\\LineChart' => $vendorDir . '/khill/lavacharts/src/Charts/LineChart.php', + 'Khill\\Lavacharts\\Charts\\OrgChart' => $vendorDir . '/khill/lavacharts/src/Charts/OrgChart.php', + 'Khill\\Lavacharts\\Charts\\PieChart' => $vendorDir . '/khill/lavacharts/src/Charts/PieChart.php', + 'Khill\\Lavacharts\\Charts\\SankeyChart' => $vendorDir . '/khill/lavacharts/src/Charts/SankeyChart.php', + 'Khill\\Lavacharts\\Charts\\ScatterChart' => $vendorDir . '/khill/lavacharts/src/Charts/ScatterChart.php', + 'Khill\\Lavacharts\\Charts\\SteppedAreaChart' => $vendorDir . '/khill/lavacharts/src/Charts/SteppedAreaChart.php', + 'Khill\\Lavacharts\\Charts\\TableChart' => $vendorDir . '/khill/lavacharts/src/Charts/TableChart.php', + 'Khill\\Lavacharts\\Charts\\TimelineChart' => $vendorDir . '/khill/lavacharts/src/Charts/TimelineChart.php', + 'Khill\\Lavacharts\\Charts\\TreeMapChart' => $vendorDir . '/khill/lavacharts/src/Charts/TreeMapChart.php', + 'Khill\\Lavacharts\\Charts\\WordTreeChart' => $vendorDir . '/khill/lavacharts/src/Charts/WordTreeChart.php', + 'Khill\\Lavacharts\\Dashboards\\Bindings\\Binding' => $vendorDir . '/khill/lavacharts/src/Dashboards/Bindings/Binding.php', + 'Khill\\Lavacharts\\Dashboards\\Bindings\\BindingFactory' => $vendorDir . '/khill/lavacharts/src/Dashboards/Bindings/BindingFactory.php', + 'Khill\\Lavacharts\\Dashboards\\Bindings\\ManyToMany' => $vendorDir . '/khill/lavacharts/src/Dashboards/Bindings/ManyToMany.php', + 'Khill\\Lavacharts\\Dashboards\\Bindings\\ManyToOne' => $vendorDir . '/khill/lavacharts/src/Dashboards/Bindings/ManyToOne.php', + 'Khill\\Lavacharts\\Dashboards\\Bindings\\OneToMany' => $vendorDir . '/khill/lavacharts/src/Dashboards/Bindings/OneToMany.php', + 'Khill\\Lavacharts\\Dashboards\\Bindings\\OneToOne' => $vendorDir . '/khill/lavacharts/src/Dashboards/Bindings/OneToOne.php', + 'Khill\\Lavacharts\\Dashboards\\Dashboard' => $vendorDir . '/khill/lavacharts/src/Dashboards/Dashboard.php', + 'Khill\\Lavacharts\\Dashboards\\DashboardFactory' => $vendorDir . '/khill/lavacharts/src/Dashboards/DashboardFactory.php', + 'Khill\\Lavacharts\\Dashboards\\Filters\\CategoryFilter' => $vendorDir . '/khill/lavacharts/src/Dashboards/Filters/CategoryFilter.php', + 'Khill\\Lavacharts\\Dashboards\\Filters\\ChartRangeFilter' => $vendorDir . '/khill/lavacharts/src/Dashboards/Filters/ChartRangeFilter.php', + 'Khill\\Lavacharts\\Dashboards\\Filters\\DateRangeFilter' => $vendorDir . '/khill/lavacharts/src/Dashboards/Filters/DateRangeFilter.php', + 'Khill\\Lavacharts\\Dashboards\\Filters\\Filter' => $vendorDir . '/khill/lavacharts/src/Dashboards/Filters/Filter.php', + 'Khill\\Lavacharts\\Dashboards\\Filters\\FilterFactory' => $vendorDir . '/khill/lavacharts/src/Dashboards/Filters/FilterFactory.php', + 'Khill\\Lavacharts\\Dashboards\\Filters\\NumberRangeFilter' => $vendorDir . '/khill/lavacharts/src/Dashboards/Filters/NumberRangeFilter.php', + 'Khill\\Lavacharts\\Dashboards\\Filters\\StringFilter' => $vendorDir . '/khill/lavacharts/src/Dashboards/Filters/StringFilter.php', + 'Khill\\Lavacharts\\Dashboards\\Wrappers\\ChartWrapper' => $vendorDir . '/khill/lavacharts/src/Dashboards/Wrappers/ChartWrapper.php', + 'Khill\\Lavacharts\\Dashboards\\Wrappers\\ControlWrapper' => $vendorDir . '/khill/lavacharts/src/Dashboards/Wrappers/ControlWrapper.php', + 'Khill\\Lavacharts\\Dashboards\\Wrappers\\Wrapper' => $vendorDir . '/khill/lavacharts/src/Dashboards/Wrappers/Wrapper.php', + 'Khill\\Lavacharts\\DataTables\\Cells\\Cell' => $vendorDir . '/khill/lavacharts/src/DataTables/Cells/Cell.php', + 'Khill\\Lavacharts\\DataTables\\Cells\\DateCell' => $vendorDir . '/khill/lavacharts/src/DataTables/Cells/DateCell.php', + 'Khill\\Lavacharts\\DataTables\\Cells\\NullCell' => $vendorDir . '/khill/lavacharts/src/DataTables/Cells/NullCell.php', + 'Khill\\Lavacharts\\DataTables\\Columns\\Column' => $vendorDir . '/khill/lavacharts/src/DataTables/Columns/Column.php', + 'Khill\\Lavacharts\\DataTables\\Columns\\ColumnBuilder' => $vendorDir . '/khill/lavacharts/src/DataTables/Columns/ColumnBuilder.php', + 'Khill\\Lavacharts\\DataTables\\Columns\\ColumnFactory' => $vendorDir . '/khill/lavacharts/src/DataTables/Columns/ColumnFactory.php', + 'Khill\\Lavacharts\\DataTables\\DataFactory' => $vendorDir . '/khill/lavacharts/src/DataTables/DataFactory.php', + 'Khill\\Lavacharts\\DataTables\\DataTable' => $vendorDir . '/khill/lavacharts/src/DataTables/DataTable.php', + 'Khill\\Lavacharts\\DataTables\\Formats\\ArrowFormat' => $vendorDir . '/khill/lavacharts/src/DataTables/Formats/ArrowFormat.php', + 'Khill\\Lavacharts\\DataTables\\Formats\\BarFormat' => $vendorDir . '/khill/lavacharts/src/DataTables/Formats/BarFormat.php', + 'Khill\\Lavacharts\\DataTables\\Formats\\DateFormat' => $vendorDir . '/khill/lavacharts/src/DataTables/Formats/DateFormat.php', + 'Khill\\Lavacharts\\DataTables\\Formats\\Format' => $vendorDir . '/khill/lavacharts/src/DataTables/Formats/Format.php', + 'Khill\\Lavacharts\\DataTables\\Formats\\NumberFormat' => $vendorDir . '/khill/lavacharts/src/DataTables/Formats/NumberFormat.php', + 'Khill\\Lavacharts\\DataTables\\Rows\\NullRow' => $vendorDir . '/khill/lavacharts/src/DataTables/Rows/NullRow.php', + 'Khill\\Lavacharts\\DataTables\\Rows\\Row' => $vendorDir . '/khill/lavacharts/src/DataTables/Rows/Row.php', + 'Khill\\Lavacharts\\DataTables\\Rows\\RowFactory' => $vendorDir . '/khill/lavacharts/src/DataTables/Rows/RowFactory.php', + 'Khill\\Lavacharts\\Exceptions\\ChartNotFound' => $vendorDir . '/khill/lavacharts/src/Exceptions/ChartNotFound.php', + 'Khill\\Lavacharts\\Exceptions\\DashboardNotFound' => $vendorDir . '/khill/lavacharts/src/Exceptions/DashboardNotFound.php', + 'Khill\\Lavacharts\\Exceptions\\DataTableNotFound' => $vendorDir . '/khill/lavacharts/src/Exceptions/DataTableNotFound.php', + 'Khill\\Lavacharts\\Exceptions\\ElementIdException' => $vendorDir . '/khill/lavacharts/src/Exceptions/ElementIdException.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidBindings' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidBindings.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidCellCount' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidCellCount.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidChartType' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidChartType.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidChartWrapperParams' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidChartWrapperParams.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidColumnDefinition' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidColumnDefinition.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidColumnFormat' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidColumnFormat.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidColumnIndex' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidColumnIndex.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidColumnRole' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidColumnRole.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidColumnType' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidColumnType.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidConfigProperty' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidConfigProperty.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidConfigValue' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidConfigValue.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidControlWrapperParams' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidControlWrapperParams.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidDataTable' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidDataTable.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidDate' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidDate.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidDateTimeFormat' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidDateTimeFormat.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidDateTimeString' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidDateTimeString.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidDivDimensions' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidDivDimensions.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidElementId' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidElementId.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidFilterParam' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidFilterParam.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidFilterType' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidFilterType.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidFormatType' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidFormatType.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidFunctionParam' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidFunctionParam.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidJson' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidJson.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidLabel' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidLabel.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidLavaObject' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidLavaObject.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidOptions' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidOptions.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidParamType' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidParamType.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidRowDefinition' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidRowDefinition.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidRowProperty' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidRowProperty.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidStringValue' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidStringValue.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidTimeZone' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidTimeZone.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidUIProperty' => $vendorDir . '/khill/lavacharts/src/Exceptions/InvalidUIProperty.php', + 'Khill\\Lavacharts\\Exceptions\\LavaException' => $vendorDir . '/khill/lavacharts/src/Exceptions/LavaException.php', + 'Khill\\Lavacharts\\Exceptions\\RenderingException' => $vendorDir . '/khill/lavacharts/src/Exceptions/RenderingException.php', + 'Khill\\Lavacharts\\Javascript\\ChartJsFactory' => $vendorDir . '/khill/lavacharts/src/Javascript/ChartJsFactory.php', + 'Khill\\Lavacharts\\Javascript\\DashboardJsFactory' => $vendorDir . '/khill/lavacharts/src/Javascript/DashboardJsFactory.php', + 'Khill\\Lavacharts\\Javascript\\JavascriptFactory' => $vendorDir . '/khill/lavacharts/src/Javascript/JavascriptFactory.php', + 'Khill\\Lavacharts\\Javascript\\ScriptManager' => $vendorDir . '/khill/lavacharts/src/Javascript/ScriptManager.php', + 'Khill\\Lavacharts\\Laravel\\LavachartsFacade' => $vendorDir . '/khill/lavacharts/src/Laravel/LavachartsFacade.php', + 'Khill\\Lavacharts\\Laravel\\LavachartsServiceProvider' => $vendorDir . '/khill/lavacharts/src/Laravel/LavachartsServiceProvider.php', + 'Khill\\Lavacharts\\Lavacharts' => $vendorDir . '/khill/lavacharts/src/Lavacharts.php', + 'Khill\\Lavacharts\\Support\\Buffer' => $vendorDir . '/khill/lavacharts/src/Support/Buffer.php', + 'Khill\\Lavacharts\\Support\\Config' => $vendorDir . '/khill/lavacharts/src/Support/Config.php', + 'Khill\\Lavacharts\\Support\\Contracts\\Arrayable' => $vendorDir . '/khill/lavacharts/src/Support/Contracts/Arrayable.php', + 'Khill\\Lavacharts\\Support\\Contracts\\DataTableInterface' => $vendorDir . '/khill/lavacharts/src/Support/Contracts/DataTableInterface.php', + 'Khill\\Lavacharts\\Support\\Contracts\\JsClassInterface' => $vendorDir . '/khill/lavacharts/src/Support/Contracts/JsClassInterface.php', + 'Khill\\Lavacharts\\Support\\Contracts\\Jsonable' => $vendorDir . '/khill/lavacharts/src/Support/Contracts/Jsonable.php', + 'Khill\\Lavacharts\\Support\\Contracts\\JsonableInterface' => $vendorDir . '/khill/lavacharts/src/Support/Contracts/JsonableInterface.php', + 'Khill\\Lavacharts\\Support\\Contracts\\RenderableInterface' => $vendorDir . '/khill/lavacharts/src/Support/Contracts/RenderableInterface.php', + 'Khill\\Lavacharts\\Support\\Contracts\\VisualizationInterface' => $vendorDir . '/khill/lavacharts/src/Support/Contracts/VisualizationInterface.php', + 'Khill\\Lavacharts\\Support\\Contracts\\WrappableInterface' => $vendorDir . '/khill/lavacharts/src/Support/Contracts/WrappableInterface.php', + 'Khill\\Lavacharts\\Support\\Customizable' => $vendorDir . '/khill/lavacharts/src/Support/Customizable.php', + 'Khill\\Lavacharts\\Support\\Html\\HtmlFactory' => $vendorDir . '/khill/lavacharts/src/Support/Html/HtmlFactory.php', + 'Khill\\Lavacharts\\Support\\JavascriptDate' => $vendorDir . '/khill/lavacharts/src/Support/JavascriptDate.php', + 'Khill\\Lavacharts\\Support\\Options' => $vendorDir . '/khill/lavacharts/src/Support/Options.php', + 'Khill\\Lavacharts\\Support\\Psr4Autoloader' => $vendorDir . '/khill/lavacharts/src/Support/Psr4Autoloader.php', + 'Khill\\Lavacharts\\Support\\RenderableTrait' => $vendorDir . '/khill/lavacharts/src/Support/Renderable.php', + 'Khill\\Lavacharts\\Support\\Traits\\DataTableTrait' => $vendorDir . '/khill/lavacharts/src/Support/Traits/DataTableTrait.php', + 'Khill\\Lavacharts\\Support\\Traits\\ElementIdTrait' => $vendorDir . '/khill/lavacharts/src/Support/Traits/ElementIdTrait.php', + 'Khill\\Lavacharts\\Support\\Traits\\HasOptionsTrait' => $vendorDir . '/khill/lavacharts/src/Support/Traits/HasOptionsTrait.php', + 'Khill\\Lavacharts\\Support\\Traits\\MaterialRenderableTrait' => $vendorDir . '/khill/lavacharts/src/Support/Traits/MaterialRenderableTrait.php', + 'Khill\\Lavacharts\\Support\\Traits\\ParameterValidatorsTrait' => $vendorDir . '/khill/lavacharts/src/Support/Traits/ParameterValidatorsTrait.php', + 'Khill\\Lavacharts\\Support\\Traits\\PngRenderableTrait' => $vendorDir . '/khill/lavacharts/src/Support/Traits/PngRenderableTrait.php', + 'Khill\\Lavacharts\\Support\\Traits\\RenderableTrait' => $vendorDir . '/khill/lavacharts/src/Support/Traits/RenderableTrait.php', + 'Khill\\Lavacharts\\Symfony\\Bundle\\LavachartsBundle' => $vendorDir . '/khill/lavacharts/src/Symfony/Bundle/LavachartsBundle.php', + 'Khill\\Lavacharts\\Symfony\\Bundle\\Twig\\LavachartsExtension' => $vendorDir . '/khill/lavacharts/src/Symfony/Bundle/Twig/LavachartsExtension.php', + 'Khill\\Lavacharts\\Values\\ElementId' => $vendorDir . '/khill/lavacharts/src/Values/ElementId.php', + 'Khill\\Lavacharts\\Values\\Label' => $vendorDir . '/khill/lavacharts/src/Values/Label.php', + 'Khill\\Lavacharts\\Values\\Role' => $vendorDir . '/khill/lavacharts/src/Values/Role.php', + 'Khill\\Lavacharts\\Values\\StringValue' => $vendorDir . '/khill/lavacharts/src/Values/StringValue.php', + 'Khill\\Lavacharts\\Volcano' => $vendorDir . '/khill/lavacharts/src/Volcano.php', + 'Laravel\\Horizon\\AutoScaler' => $vendorDir . '/laravel/horizon/src/AutoScaler.php', + 'Laravel\\Horizon\\BackgroundProcess' => $vendorDir . '/laravel/horizon/src/BackgroundProcess.php', + 'Laravel\\Horizon\\Connectors\\RedisConnector' => $vendorDir . '/laravel/horizon/src/Connectors/RedisConnector.php', + 'Laravel\\Horizon\\Console\\AssetsCommand' => $vendorDir . '/laravel/horizon/src/Console/AssetsCommand.php', + 'Laravel\\Horizon\\Console\\ContinueCommand' => $vendorDir . '/laravel/horizon/src/Console/ContinueCommand.php', + 'Laravel\\Horizon\\Console\\HorizonCommand' => $vendorDir . '/laravel/horizon/src/Console/HorizonCommand.php', + 'Laravel\\Horizon\\Console\\InstallCommand' => $vendorDir . '/laravel/horizon/src/Console/InstallCommand.php', + 'Laravel\\Horizon\\Console\\ListCommand' => $vendorDir . '/laravel/horizon/src/Console/ListCommand.php', + 'Laravel\\Horizon\\Console\\PauseCommand' => $vendorDir . '/laravel/horizon/src/Console/PauseCommand.php', + 'Laravel\\Horizon\\Console\\PurgeCommand' => $vendorDir . '/laravel/horizon/src/Console/PurgeCommand.php', + 'Laravel\\Horizon\\Console\\SnapshotCommand' => $vendorDir . '/laravel/horizon/src/Console/SnapshotCommand.php', + 'Laravel\\Horizon\\Console\\StatusCommand' => $vendorDir . '/laravel/horizon/src/Console/StatusCommand.php', + 'Laravel\\Horizon\\Console\\SupervisorCommand' => $vendorDir . '/laravel/horizon/src/Console/SupervisorCommand.php', + 'Laravel\\Horizon\\Console\\SupervisorsCommand' => $vendorDir . '/laravel/horizon/src/Console/SupervisorsCommand.php', + 'Laravel\\Horizon\\Console\\TerminateCommand' => $vendorDir . '/laravel/horizon/src/Console/TerminateCommand.php', + 'Laravel\\Horizon\\Console\\TimeoutCommand' => $vendorDir . '/laravel/horizon/src/Console/TimeoutCommand.php', + 'Laravel\\Horizon\\Console\\WorkCommand' => $vendorDir . '/laravel/horizon/src/Console/WorkCommand.php', + 'Laravel\\Horizon\\Contracts\\HorizonCommandQueue' => $vendorDir . '/laravel/horizon/src/Contracts/HorizonCommandQueue.php', + 'Laravel\\Horizon\\Contracts\\JobRepository' => $vendorDir . '/laravel/horizon/src/Contracts/JobRepository.php', + 'Laravel\\Horizon\\Contracts\\MasterSupervisorRepository' => $vendorDir . '/laravel/horizon/src/Contracts/MasterSupervisorRepository.php', + 'Laravel\\Horizon\\Contracts\\MetricsRepository' => $vendorDir . '/laravel/horizon/src/Contracts/MetricsRepository.php', + 'Laravel\\Horizon\\Contracts\\Pausable' => $vendorDir . '/laravel/horizon/src/Contracts/Pausable.php', + 'Laravel\\Horizon\\Contracts\\ProcessRepository' => $vendorDir . '/laravel/horizon/src/Contracts/ProcessRepository.php', + 'Laravel\\Horizon\\Contracts\\Restartable' => $vendorDir . '/laravel/horizon/src/Contracts/Restartable.php', + 'Laravel\\Horizon\\Contracts\\SupervisorRepository' => $vendorDir . '/laravel/horizon/src/Contracts/SupervisorRepository.php', + 'Laravel\\Horizon\\Contracts\\TagRepository' => $vendorDir . '/laravel/horizon/src/Contracts/TagRepository.php', + 'Laravel\\Horizon\\Contracts\\Terminable' => $vendorDir . '/laravel/horizon/src/Contracts/Terminable.php', + 'Laravel\\Horizon\\Contracts\\WorkloadRepository' => $vendorDir . '/laravel/horizon/src/Contracts/WorkloadRepository.php', + 'Laravel\\Horizon\\EventMap' => $vendorDir . '/laravel/horizon/src/EventMap.php', + 'Laravel\\Horizon\\Events\\JobDeleted' => $vendorDir . '/laravel/horizon/src/Events/JobDeleted.php', + 'Laravel\\Horizon\\Events\\JobFailed' => $vendorDir . '/laravel/horizon/src/Events/JobFailed.php', + 'Laravel\\Horizon\\Events\\JobPushed' => $vendorDir . '/laravel/horizon/src/Events/JobPushed.php', + 'Laravel\\Horizon\\Events\\JobReleased' => $vendorDir . '/laravel/horizon/src/Events/JobReleased.php', + 'Laravel\\Horizon\\Events\\JobReserved' => $vendorDir . '/laravel/horizon/src/Events/JobReserved.php', + 'Laravel\\Horizon\\Events\\JobsMigrated' => $vendorDir . '/laravel/horizon/src/Events/JobsMigrated.php', + 'Laravel\\Horizon\\Events\\LongWaitDetected' => $vendorDir . '/laravel/horizon/src/Events/LongWaitDetected.php', + 'Laravel\\Horizon\\Events\\MasterSupervisorDeployed' => $vendorDir . '/laravel/horizon/src/Events/MasterSupervisorDeployed.php', + 'Laravel\\Horizon\\Events\\MasterSupervisorLooped' => $vendorDir . '/laravel/horizon/src/Events/MasterSupervisorLooped.php', + 'Laravel\\Horizon\\Events\\MasterSupervisorReviving' => $vendorDir . '/laravel/horizon/src/Events/MasterSupervisorReviving.php', + 'Laravel\\Horizon\\Events\\RedisEvent' => $vendorDir . '/laravel/horizon/src/Events/RedisEvent.php', + 'Laravel\\Horizon\\Events\\SupervisorLooped' => $vendorDir . '/laravel/horizon/src/Events/SupervisorLooped.php', + 'Laravel\\Horizon\\Events\\SupervisorProcessRestarting' => $vendorDir . '/laravel/horizon/src/Events/SupervisorProcessRestarting.php', + 'Laravel\\Horizon\\Events\\UnableToLaunchProcess' => $vendorDir . '/laravel/horizon/src/Events/UnableToLaunchProcess.php', + 'Laravel\\Horizon\\Events\\WorkerProcessRestarting' => $vendorDir . '/laravel/horizon/src/Events/WorkerProcessRestarting.php', + 'Laravel\\Horizon\\Exec' => $vendorDir . '/laravel/horizon/src/Exec.php', + 'Laravel\\Horizon\\Horizon' => $vendorDir . '/laravel/horizon/src/Horizon.php', + 'Laravel\\Horizon\\HorizonApplicationServiceProvider' => $vendorDir . '/laravel/horizon/src/HorizonApplicationServiceProvider.php', + 'Laravel\\Horizon\\HorizonServiceProvider' => $vendorDir . '/laravel/horizon/src/HorizonServiceProvider.php', + 'Laravel\\Horizon\\Http\\Controllers\\Controller' => $vendorDir . '/laravel/horizon/src/Http/Controllers/Controller.php', + 'Laravel\\Horizon\\Http\\Controllers\\DashboardStatsController' => $vendorDir . '/laravel/horizon/src/Http/Controllers/DashboardStatsController.php', + 'Laravel\\Horizon\\Http\\Controllers\\FailedJobsController' => $vendorDir . '/laravel/horizon/src/Http/Controllers/FailedJobsController.php', + 'Laravel\\Horizon\\Http\\Controllers\\HomeController' => $vendorDir . '/laravel/horizon/src/Http/Controllers/HomeController.php', + 'Laravel\\Horizon\\Http\\Controllers\\JobMetricsController' => $vendorDir . '/laravel/horizon/src/Http/Controllers/JobMetricsController.php', + 'Laravel\\Horizon\\Http\\Controllers\\MasterSupervisorController' => $vendorDir . '/laravel/horizon/src/Http/Controllers/MasterSupervisorController.php', + 'Laravel\\Horizon\\Http\\Controllers\\MonitoringController' => $vendorDir . '/laravel/horizon/src/Http/Controllers/MonitoringController.php', + 'Laravel\\Horizon\\Http\\Controllers\\QueueMetricsController' => $vendorDir . '/laravel/horizon/src/Http/Controllers/QueueMetricsController.php', + 'Laravel\\Horizon\\Http\\Controllers\\RecentJobsController' => $vendorDir . '/laravel/horizon/src/Http/Controllers/RecentJobsController.php', + 'Laravel\\Horizon\\Http\\Controllers\\RetryController' => $vendorDir . '/laravel/horizon/src/Http/Controllers/RetryController.php', + 'Laravel\\Horizon\\Http\\Controllers\\WorkloadController' => $vendorDir . '/laravel/horizon/src/Http/Controllers/WorkloadController.php', + 'Laravel\\Horizon\\Http\\Middleware\\Authenticate' => $vendorDir . '/laravel/horizon/src/Http/Middleware/Authenticate.php', + 'Laravel\\Horizon\\JobId' => $vendorDir . '/laravel/horizon/src/JobId.php', + 'Laravel\\Horizon\\JobPayload' => $vendorDir . '/laravel/horizon/src/JobPayload.php', + 'Laravel\\Horizon\\Jobs\\MonitorTag' => $vendorDir . '/laravel/horizon/src/Jobs/MonitorTag.php', + 'Laravel\\Horizon\\Jobs\\RetryFailedJob' => $vendorDir . '/laravel/horizon/src/Jobs/RetryFailedJob.php', + 'Laravel\\Horizon\\Jobs\\StopMonitoringTag' => $vendorDir . '/laravel/horizon/src/Jobs/StopMonitoringTag.php', + 'Laravel\\Horizon\\Listeners\\ExpireSupervisors' => $vendorDir . '/laravel/horizon/src/Listeners/ExpireSupervisors.php', + 'Laravel\\Horizon\\Listeners\\MarkJobAsComplete' => $vendorDir . '/laravel/horizon/src/Listeners/MarkJobAsComplete.php', + 'Laravel\\Horizon\\Listeners\\MarkJobAsFailed' => $vendorDir . '/laravel/horizon/src/Listeners/MarkJobAsFailed.php', + 'Laravel\\Horizon\\Listeners\\MarkJobAsReleased' => $vendorDir . '/laravel/horizon/src/Listeners/MarkJobAsReleased.php', + 'Laravel\\Horizon\\Listeners\\MarkJobAsReserved' => $vendorDir . '/laravel/horizon/src/Listeners/MarkJobAsReserved.php', + 'Laravel\\Horizon\\Listeners\\MarkJobsAsMigrated' => $vendorDir . '/laravel/horizon/src/Listeners/MarkJobsAsMigrated.php', + 'Laravel\\Horizon\\Listeners\\MarshalFailedEvent' => $vendorDir . '/laravel/horizon/src/Listeners/MarshalFailedEvent.php', + 'Laravel\\Horizon\\Listeners\\MonitorMasterSupervisorMemory' => $vendorDir . '/laravel/horizon/src/Listeners/MonitorMasterSupervisorMemory.php', + 'Laravel\\Horizon\\Listeners\\MonitorSupervisorMemory' => $vendorDir . '/laravel/horizon/src/Listeners/MonitorSupervisorMemory.php', + 'Laravel\\Horizon\\Listeners\\MonitorWaitTimes' => $vendorDir . '/laravel/horizon/src/Listeners/MonitorWaitTimes.php', + 'Laravel\\Horizon\\Listeners\\PruneTerminatingProcesses' => $vendorDir . '/laravel/horizon/src/Listeners/PruneTerminatingProcesses.php', + 'Laravel\\Horizon\\Listeners\\SendNotification' => $vendorDir . '/laravel/horizon/src/Listeners/SendNotification.php', + 'Laravel\\Horizon\\Listeners\\StartTimingJob' => $vendorDir . '/laravel/horizon/src/Listeners/StartTimingJob.php', + 'Laravel\\Horizon\\Listeners\\StoreJob' => $vendorDir . '/laravel/horizon/src/Listeners/StoreJob.php', + 'Laravel\\Horizon\\Listeners\\StoreMonitoredTags' => $vendorDir . '/laravel/horizon/src/Listeners/StoreMonitoredTags.php', + 'Laravel\\Horizon\\Listeners\\StoreTagsForFailedJob' => $vendorDir . '/laravel/horizon/src/Listeners/StoreTagsForFailedJob.php', + 'Laravel\\Horizon\\Listeners\\TrimFailedJobs' => $vendorDir . '/laravel/horizon/src/Listeners/TrimFailedJobs.php', + 'Laravel\\Horizon\\Listeners\\TrimMonitoredJobs' => $vendorDir . '/laravel/horizon/src/Listeners/TrimMonitoredJobs.php', + 'Laravel\\Horizon\\Listeners\\TrimRecentJobs' => $vendorDir . '/laravel/horizon/src/Listeners/TrimRecentJobs.php', + 'Laravel\\Horizon\\Listeners\\UpdateJobMetrics' => $vendorDir . '/laravel/horizon/src/Listeners/UpdateJobMetrics.php', + 'Laravel\\Horizon\\ListensForSignals' => $vendorDir . '/laravel/horizon/src/ListensForSignals.php', + 'Laravel\\Horizon\\Lock' => $vendorDir . '/laravel/horizon/src/Lock.php', + 'Laravel\\Horizon\\LuaScripts' => $vendorDir . '/laravel/horizon/src/LuaScripts.php', + 'Laravel\\Horizon\\MasterSupervisor' => $vendorDir . '/laravel/horizon/src/MasterSupervisor.php', + 'Laravel\\Horizon\\MasterSupervisorCommands\\AddSupervisor' => $vendorDir . '/laravel/horizon/src/MasterSupervisorCommands/AddSupervisor.php', + 'Laravel\\Horizon\\Notifications\\LongWaitDetected' => $vendorDir . '/laravel/horizon/src/Notifications/LongWaitDetected.php', + 'Laravel\\Horizon\\PhpBinary' => $vendorDir . '/laravel/horizon/src/PhpBinary.php', + 'Laravel\\Horizon\\ProcessInspector' => $vendorDir . '/laravel/horizon/src/ProcessInspector.php', + 'Laravel\\Horizon\\ProcessPool' => $vendorDir . '/laravel/horizon/src/ProcessPool.php', + 'Laravel\\Horizon\\ProvisioningPlan' => $vendorDir . '/laravel/horizon/src/ProvisioningPlan.php', + 'Laravel\\Horizon\\QueueCommandString' => $vendorDir . '/laravel/horizon/src/QueueCommandString.php', + 'Laravel\\Horizon\\RedisHorizonCommandQueue' => $vendorDir . '/laravel/horizon/src/RedisHorizonCommandQueue.php', + 'Laravel\\Horizon\\RedisQueue' => $vendorDir . '/laravel/horizon/src/RedisQueue.php', + 'Laravel\\Horizon\\Repositories\\RedisJobRepository' => $vendorDir . '/laravel/horizon/src/Repositories/RedisJobRepository.php', + 'Laravel\\Horizon\\Repositories\\RedisMasterSupervisorRepository' => $vendorDir . '/laravel/horizon/src/Repositories/RedisMasterSupervisorRepository.php', + 'Laravel\\Horizon\\Repositories\\RedisMetricsRepository' => $vendorDir . '/laravel/horizon/src/Repositories/RedisMetricsRepository.php', + 'Laravel\\Horizon\\Repositories\\RedisProcessRepository' => $vendorDir . '/laravel/horizon/src/Repositories/RedisProcessRepository.php', + 'Laravel\\Horizon\\Repositories\\RedisSupervisorRepository' => $vendorDir . '/laravel/horizon/src/Repositories/RedisSupervisorRepository.php', + 'Laravel\\Horizon\\Repositories\\RedisTagRepository' => $vendorDir . '/laravel/horizon/src/Repositories/RedisTagRepository.php', + 'Laravel\\Horizon\\Repositories\\RedisWorkloadRepository' => $vendorDir . '/laravel/horizon/src/Repositories/RedisWorkloadRepository.php', + 'Laravel\\Horizon\\ServiceBindings' => $vendorDir . '/laravel/horizon/src/ServiceBindings.php', + 'Laravel\\Horizon\\Stopwatch' => $vendorDir . '/laravel/horizon/src/Stopwatch.php', + 'Laravel\\Horizon\\Supervisor' => $vendorDir . '/laravel/horizon/src/Supervisor.php', + 'Laravel\\Horizon\\SupervisorCommandString' => $vendorDir . '/laravel/horizon/src/SupervisorCommandString.php', + 'Laravel\\Horizon\\SupervisorCommands\\Balance' => $vendorDir . '/laravel/horizon/src/SupervisorCommands/Balance.php', + 'Laravel\\Horizon\\SupervisorCommands\\ContinueWorking' => $vendorDir . '/laravel/horizon/src/SupervisorCommands/ContinueWorking.php', + 'Laravel\\Horizon\\SupervisorCommands\\Pause' => $vendorDir . '/laravel/horizon/src/SupervisorCommands/Pause.php', + 'Laravel\\Horizon\\SupervisorCommands\\Restart' => $vendorDir . '/laravel/horizon/src/SupervisorCommands/Restart.php', + 'Laravel\\Horizon\\SupervisorCommands\\Scale' => $vendorDir . '/laravel/horizon/src/SupervisorCommands/Scale.php', + 'Laravel\\Horizon\\SupervisorCommands\\Terminate' => $vendorDir . '/laravel/horizon/src/SupervisorCommands/Terminate.php', + 'Laravel\\Horizon\\SupervisorFactory' => $vendorDir . '/laravel/horizon/src/SupervisorFactory.php', + 'Laravel\\Horizon\\SupervisorOptions' => $vendorDir . '/laravel/horizon/src/SupervisorOptions.php', + 'Laravel\\Horizon\\SupervisorProcess' => $vendorDir . '/laravel/horizon/src/SupervisorProcess.php', + 'Laravel\\Horizon\\SystemProcessCounter' => $vendorDir . '/laravel/horizon/src/SystemProcessCounter.php', + 'Laravel\\Horizon\\Tags' => $vendorDir . '/laravel/horizon/src/Tags.php', + 'Laravel\\Horizon\\WaitTimeCalculator' => $vendorDir . '/laravel/horizon/src/WaitTimeCalculator.php', + 'Laravel\\Horizon\\WorkerCommandString' => $vendorDir . '/laravel/horizon/src/WorkerCommandString.php', + 'Laravel\\Horizon\\WorkerProcess' => $vendorDir . '/laravel/horizon/src/WorkerProcess.php', 'Laravel\\Socialite\\AbstractUser' => $vendorDir . '/laravel/socialite/src/AbstractUser.php', 'Laravel\\Socialite\\Contracts\\Factory' => $vendorDir . '/laravel/socialite/src/Contracts/Factory.php', 'Laravel\\Socialite\\Contracts\\Provider' => $vendorDir . '/laravel/socialite/src/Contracts/Provider.php', diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php index 45ff68d..1c50f71 100644 --- a/vendor/composer/autoload_files.php +++ b/vendor/composer/autoload_files.php @@ -21,6 +21,7 @@ return array( '538ca81a9a966a6716601ecf48f4eaef' => $vendorDir . '/opis/closure/functions.php', 'f0906e6318348a765ffb6eb24e0d0938' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/helpers.php', '58571171fd5812e6e447dce228f52f4d' => $vendorDir . '/laravel/framework/src/Illuminate/Support/helpers.php', + '34122c0574b76bf21c9a8db62b5b9cf3' => $vendorDir . '/cakephp/chronos/src/carbon_compat.php', '9cdd7b9056abc3081735233ba9dd9c7f' => $vendorDir . '/facade/flare-client-php/src/helpers.php', '6124b4c8570aa390c21fafd04a26c69f' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php', '801c31d8ed748cfa537fa45402288c95' => $vendorDir . '/psy/psysh/src/functions.php', diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index 008b811..e8262e8 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -50,6 +50,8 @@ return array( 'League\\Flysystem\\' => array($vendorDir . '/league/flysystem/src'), 'Laravel\\Tinker\\' => array($vendorDir . '/laravel/tinker/src'), 'Laravel\\Socialite\\' => array($vendorDir . '/laravel/socialite/src'), + 'Laravel\\Horizon\\' => array($vendorDir . '/laravel/horizon/src'), + 'Khill\\Lavacharts\\' => array($vendorDir . '/khill/lavacharts/src'), 'JakubOnderka\\PhpConsoleHighlighter\\' => array($vendorDir . '/jakub-onderka/php-console-highlighter/src'), 'JakubOnderka\\PhpConsoleColor\\' => array($vendorDir . '/jakub-onderka/php-console-color/src'), 'Illuminate\\' => array($vendorDir . '/laravel/framework/src/Illuminate'), @@ -71,6 +73,7 @@ return array( 'Cron\\' => array($vendorDir . '/dragonmantank/cron-expression/src/Cron'), 'Collective\\Html\\' => array($vendorDir . '/laravelcollective/html/src'), 'Carbon\\' => array($vendorDir . '/nesbot/carbon/src/Carbon'), + 'Cake\\Chronos\\' => array($vendorDir . '/cakephp/chronos/src'), 'Barryvdh\\Debugbar\\' => array($vendorDir . '/barryvdh/laravel-debugbar/src'), 'App\\' => array($baseDir . '/app'), ); diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 1824274..bb40f88 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -22,6 +22,7 @@ class ComposerStaticInit33afb8ba5b252c3933eb137784fa7f04 '538ca81a9a966a6716601ecf48f4eaef' => __DIR__ . '/..' . '/opis/closure/functions.php', 'f0906e6318348a765ffb6eb24e0d0938' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/helpers.php', '58571171fd5812e6e447dce228f52f4d' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/helpers.php', + '34122c0574b76bf21c9a8db62b5b9cf3' => __DIR__ . '/..' . '/cakephp/chronos/src/carbon_compat.php', '9cdd7b9056abc3081735233ba9dd9c7f' => __DIR__ . '/..' . '/facade/flare-client-php/src/helpers.php', '6124b4c8570aa390c21fafd04a26c69f' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php', '801c31d8ed748cfa537fa45402288c95' => __DIR__ . '/..' . '/psy/psysh/src/functions.php', @@ -108,6 +109,11 @@ class ComposerStaticInit33afb8ba5b252c3933eb137784fa7f04 'League\\Flysystem\\' => 17, 'Laravel\\Tinker\\' => 15, 'Laravel\\Socialite\\' => 18, + 'Laravel\\Horizon\\' => 16, + ), + 'K' => + array ( + 'Khill\\Lavacharts\\' => 17, ), 'J' => array ( @@ -150,6 +156,7 @@ class ComposerStaticInit33afb8ba5b252c3933eb137784fa7f04 'Cron\\' => 5, 'Collective\\Html\\' => 16, 'Carbon\\' => 7, + 'Cake\\Chronos\\' => 13, ), 'B' => array ( @@ -340,6 +347,14 @@ class ComposerStaticInit33afb8ba5b252c3933eb137784fa7f04 array ( 0 => __DIR__ . '/..' . '/laravel/socialite/src', ), + 'Laravel\\Horizon\\' => + array ( + 0 => __DIR__ . '/..' . '/laravel/horizon/src', + ), + 'Khill\\Lavacharts\\' => + array ( + 0 => __DIR__ . '/..' . '/khill/lavacharts/src', + ), 'JakubOnderka\\PhpConsoleHighlighter\\' => array ( 0 => __DIR__ . '/..' . '/jakub-onderka/php-console-highlighter/src', @@ -424,6 +439,10 @@ class ComposerStaticInit33afb8ba5b252c3933eb137784fa7f04 array ( 0 => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon', ), + 'Cake\\Chronos\\' => + array ( + 0 => __DIR__ . '/..' . '/cakephp/chronos/src', + ), 'Barryvdh\\Debugbar\\' => array ( 0 => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src', @@ -505,6 +524,7 @@ class ComposerStaticInit33afb8ba5b252c3933eb137784fa7f04 'App\\Providers\\EveOnlineOAuthProvider' => __DIR__ . '/../..' . '/app/Providers/EveOnlineOAuthProvider.php', 'App\\Providers\\EveOnlineOAuthServiceProvider' => __DIR__ . '/../..' . '/app/Providers/EveOnlineOAuthServiceProvider.php', 'App\\Providers\\EventServiceProvider' => __DIR__ . '/../..' . '/app/Providers/EventServiceProvider.php', + 'App\\Providers\\HorizonServiceProvider' => __DIR__ . '/../..' . '/app/Providers/HorizonServiceProvider.php', 'App\\Providers\\RouteServiceProvider' => __DIR__ . '/../..' . '/app/Providers/RouteServiceProvider.php', 'App\\SolarSystemDistance' => __DIR__ . '/../..' . '/app/Models/Lookups/SolarSystemDistance.php', 'App\\User' => __DIR__ . '/../..' . '/app/Models/User/User.php', @@ -545,6 +565,25 @@ class ComposerStaticInit33afb8ba5b252c3933eb137784fa7f04 'Barryvdh\\Debugbar\\Twig\\Extension\\Stopwatch' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/Twig/Extension/Stopwatch.php', 'Barryvdh\\Debugbar\\Twig\\Node\\StopwatchNode' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/Twig/Node/StopwatchNode.php', 'Barryvdh\\Debugbar\\Twig\\TokenParser\\StopwatchTokenParser' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/Twig/TokenParser/StopwatchTokenParser.php', + 'Cake\\Chronos\\Chronos' => __DIR__ . '/..' . '/cakephp/chronos/src/Chronos.php', + 'Cake\\Chronos\\ChronosInterface' => __DIR__ . '/..' . '/cakephp/chronos/src/ChronosInterface.php', + 'Cake\\Chronos\\ChronosInterval' => __DIR__ . '/..' . '/cakephp/chronos/src/ChronosInterval.php', + 'Cake\\Chronos\\Date' => __DIR__ . '/..' . '/cakephp/chronos/src/Date.php', + 'Cake\\Chronos\\DifferenceFormatter' => __DIR__ . '/..' . '/cakephp/chronos/src/DifferenceFormatter.php', + 'Cake\\Chronos\\MutableDate' => __DIR__ . '/..' . '/cakephp/chronos/src/MutableDate.php', + 'Cake\\Chronos\\MutableDateTime' => __DIR__ . '/..' . '/cakephp/chronos/src/MutableDateTime.php', + 'Cake\\Chronos\\Traits\\ComparisonTrait' => __DIR__ . '/..' . '/cakephp/chronos/src/Traits/ComparisonTrait.php', + 'Cake\\Chronos\\Traits\\CopyTrait' => __DIR__ . '/..' . '/cakephp/chronos/src/Traits/CopyTrait.php', + 'Cake\\Chronos\\Traits\\DifferenceTrait' => __DIR__ . '/..' . '/cakephp/chronos/src/Traits/DifferenceTrait.php', + 'Cake\\Chronos\\Traits\\FactoryTrait' => __DIR__ . '/..' . '/cakephp/chronos/src/Traits/FactoryTrait.php', + 'Cake\\Chronos\\Traits\\FormattingTrait' => __DIR__ . '/..' . '/cakephp/chronos/src/Traits/FormattingTrait.php', + 'Cake\\Chronos\\Traits\\FrozenTimeTrait' => __DIR__ . '/..' . '/cakephp/chronos/src/Traits/FrozenTimeTrait.php', + 'Cake\\Chronos\\Traits\\MagicPropertyTrait' => __DIR__ . '/..' . '/cakephp/chronos/src/Traits/MagicPropertyTrait.php', + 'Cake\\Chronos\\Traits\\ModifierTrait' => __DIR__ . '/..' . '/cakephp/chronos/src/Traits/ModifierTrait.php', + 'Cake\\Chronos\\Traits\\RelativeKeywordTrait' => __DIR__ . '/..' . '/cakephp/chronos/src/Traits/RelativeKeywordTrait.php', + 'Cake\\Chronos\\Traits\\TestingAidTrait' => __DIR__ . '/..' . '/cakephp/chronos/src/Traits/TestingAidTrait.php', + 'Cake\\Chronos\\Traits\\TimezoneTrait' => __DIR__ . '/..' . '/cakephp/chronos/src/Traits/TimezoneTrait.php', + 'Cake\\Chronos\\Translator' => __DIR__ . '/..' . '/cakephp/chronos/src/Translator.php', 'Carbon\\Carbon' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Carbon.php', 'Carbon\\CarbonImmutable' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/CarbonImmutable.php', 'Carbon\\CarbonInterface' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/CarbonInterface.php', @@ -2303,6 +2342,266 @@ class ComposerStaticInit33afb8ba5b252c3933eb137784fa7f04 'JakubOnderka\\PhpConsoleColor\\InvalidStyleException' => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src/InvalidStyleException.php', 'JakubOnderka\\PhpConsoleHighlighter\\Highlighter' => __DIR__ . '/..' . '/jakub-onderka/php-console-highlighter/src/Highlighter.php', 'JsonException' => __DIR__ . '/..' . '/symfony/polyfill-php73/Resources/stubs/JsonException.php', + 'Khill\\Lavacharts\\Builders\\ChartBuilder' => __DIR__ . '/..' . '/khill/lavacharts/src/Builders/ChartBuilder.php', + 'Khill\\Lavacharts\\Builders\\DashboardBuilder' => __DIR__ . '/..' . '/khill/lavacharts/src/Builders/DashboardBuilder.php', + 'Khill\\Lavacharts\\Builders\\GenericBuilder' => __DIR__ . '/..' . '/khill/lavacharts/src/Builders/GenericBuilder.php', + 'Khill\\Lavacharts\\Charts\\AnnotationChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/AnnotationChart.php', + 'Khill\\Lavacharts\\Charts\\AreaChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/AreaChart.php', + 'Khill\\Lavacharts\\Charts\\BarChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/BarChart.php', + 'Khill\\Lavacharts\\Charts\\BubbleChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/BubbleChart.php', + 'Khill\\Lavacharts\\Charts\\CalendarChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/CalendarChart.php', + 'Khill\\Lavacharts\\Charts\\CandlestickChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/CandlestickChart.php', + 'Khill\\Lavacharts\\Charts\\Chart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/Chart.php', + 'Khill\\Lavacharts\\Charts\\ChartFactory' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/ChartFactory.php', + 'Khill\\Lavacharts\\Charts\\ColumnChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/ColumnChart.php', + 'Khill\\Lavacharts\\Charts\\ComboChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/ComboChart.php', + 'Khill\\Lavacharts\\Charts\\DonutChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/DonutChart.php', + 'Khill\\Lavacharts\\Charts\\GanttChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/GanttChart.php', + 'Khill\\Lavacharts\\Charts\\GaugeChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/GaugeChart.php', + 'Khill\\Lavacharts\\Charts\\GeoChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/GeoChart.php', + 'Khill\\Lavacharts\\Charts\\HistogramChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/HistogramChart.php', + 'Khill\\Lavacharts\\Charts\\LineChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/LineChart.php', + 'Khill\\Lavacharts\\Charts\\OrgChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/OrgChart.php', + 'Khill\\Lavacharts\\Charts\\PieChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/PieChart.php', + 'Khill\\Lavacharts\\Charts\\SankeyChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/SankeyChart.php', + 'Khill\\Lavacharts\\Charts\\ScatterChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/ScatterChart.php', + 'Khill\\Lavacharts\\Charts\\SteppedAreaChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/SteppedAreaChart.php', + 'Khill\\Lavacharts\\Charts\\TableChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/TableChart.php', + 'Khill\\Lavacharts\\Charts\\TimelineChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/TimelineChart.php', + 'Khill\\Lavacharts\\Charts\\TreeMapChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/TreeMapChart.php', + 'Khill\\Lavacharts\\Charts\\WordTreeChart' => __DIR__ . '/..' . '/khill/lavacharts/src/Charts/WordTreeChart.php', + 'Khill\\Lavacharts\\Dashboards\\Bindings\\Binding' => __DIR__ . '/..' . '/khill/lavacharts/src/Dashboards/Bindings/Binding.php', + 'Khill\\Lavacharts\\Dashboards\\Bindings\\BindingFactory' => __DIR__ . '/..' . '/khill/lavacharts/src/Dashboards/Bindings/BindingFactory.php', + 'Khill\\Lavacharts\\Dashboards\\Bindings\\ManyToMany' => __DIR__ . '/..' . '/khill/lavacharts/src/Dashboards/Bindings/ManyToMany.php', + 'Khill\\Lavacharts\\Dashboards\\Bindings\\ManyToOne' => __DIR__ . '/..' . '/khill/lavacharts/src/Dashboards/Bindings/ManyToOne.php', + 'Khill\\Lavacharts\\Dashboards\\Bindings\\OneToMany' => __DIR__ . '/..' . '/khill/lavacharts/src/Dashboards/Bindings/OneToMany.php', + 'Khill\\Lavacharts\\Dashboards\\Bindings\\OneToOne' => __DIR__ . '/..' . '/khill/lavacharts/src/Dashboards/Bindings/OneToOne.php', + 'Khill\\Lavacharts\\Dashboards\\Dashboard' => __DIR__ . '/..' . '/khill/lavacharts/src/Dashboards/Dashboard.php', + 'Khill\\Lavacharts\\Dashboards\\DashboardFactory' => __DIR__ . '/..' . '/khill/lavacharts/src/Dashboards/DashboardFactory.php', + 'Khill\\Lavacharts\\Dashboards\\Filters\\CategoryFilter' => __DIR__ . '/..' . '/khill/lavacharts/src/Dashboards/Filters/CategoryFilter.php', + 'Khill\\Lavacharts\\Dashboards\\Filters\\ChartRangeFilter' => __DIR__ . '/..' . '/khill/lavacharts/src/Dashboards/Filters/ChartRangeFilter.php', + 'Khill\\Lavacharts\\Dashboards\\Filters\\DateRangeFilter' => __DIR__ . '/..' . '/khill/lavacharts/src/Dashboards/Filters/DateRangeFilter.php', + 'Khill\\Lavacharts\\Dashboards\\Filters\\Filter' => __DIR__ . '/..' . '/khill/lavacharts/src/Dashboards/Filters/Filter.php', + 'Khill\\Lavacharts\\Dashboards\\Filters\\FilterFactory' => __DIR__ . '/..' . '/khill/lavacharts/src/Dashboards/Filters/FilterFactory.php', + 'Khill\\Lavacharts\\Dashboards\\Filters\\NumberRangeFilter' => __DIR__ . '/..' . '/khill/lavacharts/src/Dashboards/Filters/NumberRangeFilter.php', + 'Khill\\Lavacharts\\Dashboards\\Filters\\StringFilter' => __DIR__ . '/..' . '/khill/lavacharts/src/Dashboards/Filters/StringFilter.php', + 'Khill\\Lavacharts\\Dashboards\\Wrappers\\ChartWrapper' => __DIR__ . '/..' . '/khill/lavacharts/src/Dashboards/Wrappers/ChartWrapper.php', + 'Khill\\Lavacharts\\Dashboards\\Wrappers\\ControlWrapper' => __DIR__ . '/..' . '/khill/lavacharts/src/Dashboards/Wrappers/ControlWrapper.php', + 'Khill\\Lavacharts\\Dashboards\\Wrappers\\Wrapper' => __DIR__ . '/..' . '/khill/lavacharts/src/Dashboards/Wrappers/Wrapper.php', + 'Khill\\Lavacharts\\DataTables\\Cells\\Cell' => __DIR__ . '/..' . '/khill/lavacharts/src/DataTables/Cells/Cell.php', + 'Khill\\Lavacharts\\DataTables\\Cells\\DateCell' => __DIR__ . '/..' . '/khill/lavacharts/src/DataTables/Cells/DateCell.php', + 'Khill\\Lavacharts\\DataTables\\Cells\\NullCell' => __DIR__ . '/..' . '/khill/lavacharts/src/DataTables/Cells/NullCell.php', + 'Khill\\Lavacharts\\DataTables\\Columns\\Column' => __DIR__ . '/..' . '/khill/lavacharts/src/DataTables/Columns/Column.php', + 'Khill\\Lavacharts\\DataTables\\Columns\\ColumnBuilder' => __DIR__ . '/..' . '/khill/lavacharts/src/DataTables/Columns/ColumnBuilder.php', + 'Khill\\Lavacharts\\DataTables\\Columns\\ColumnFactory' => __DIR__ . '/..' . '/khill/lavacharts/src/DataTables/Columns/ColumnFactory.php', + 'Khill\\Lavacharts\\DataTables\\DataFactory' => __DIR__ . '/..' . '/khill/lavacharts/src/DataTables/DataFactory.php', + 'Khill\\Lavacharts\\DataTables\\DataTable' => __DIR__ . '/..' . '/khill/lavacharts/src/DataTables/DataTable.php', + 'Khill\\Lavacharts\\DataTables\\Formats\\ArrowFormat' => __DIR__ . '/..' . '/khill/lavacharts/src/DataTables/Formats/ArrowFormat.php', + 'Khill\\Lavacharts\\DataTables\\Formats\\BarFormat' => __DIR__ . '/..' . '/khill/lavacharts/src/DataTables/Formats/BarFormat.php', + 'Khill\\Lavacharts\\DataTables\\Formats\\DateFormat' => __DIR__ . '/..' . '/khill/lavacharts/src/DataTables/Formats/DateFormat.php', + 'Khill\\Lavacharts\\DataTables\\Formats\\Format' => __DIR__ . '/..' . '/khill/lavacharts/src/DataTables/Formats/Format.php', + 'Khill\\Lavacharts\\DataTables\\Formats\\NumberFormat' => __DIR__ . '/..' . '/khill/lavacharts/src/DataTables/Formats/NumberFormat.php', + 'Khill\\Lavacharts\\DataTables\\Rows\\NullRow' => __DIR__ . '/..' . '/khill/lavacharts/src/DataTables/Rows/NullRow.php', + 'Khill\\Lavacharts\\DataTables\\Rows\\Row' => __DIR__ . '/..' . '/khill/lavacharts/src/DataTables/Rows/Row.php', + 'Khill\\Lavacharts\\DataTables\\Rows\\RowFactory' => __DIR__ . '/..' . '/khill/lavacharts/src/DataTables/Rows/RowFactory.php', + 'Khill\\Lavacharts\\Exceptions\\ChartNotFound' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/ChartNotFound.php', + 'Khill\\Lavacharts\\Exceptions\\DashboardNotFound' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/DashboardNotFound.php', + 'Khill\\Lavacharts\\Exceptions\\DataTableNotFound' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/DataTableNotFound.php', + 'Khill\\Lavacharts\\Exceptions\\ElementIdException' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/ElementIdException.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidBindings' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidBindings.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidCellCount' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidCellCount.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidChartType' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidChartType.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidChartWrapperParams' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidChartWrapperParams.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidColumnDefinition' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidColumnDefinition.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidColumnFormat' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidColumnFormat.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidColumnIndex' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidColumnIndex.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidColumnRole' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidColumnRole.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidColumnType' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidColumnType.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidConfigProperty' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidConfigProperty.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidConfigValue' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidConfigValue.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidControlWrapperParams' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidControlWrapperParams.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidDataTable' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidDataTable.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidDate' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidDate.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidDateTimeFormat' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidDateTimeFormat.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidDateTimeString' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidDateTimeString.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidDivDimensions' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidDivDimensions.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidElementId' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidElementId.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidFilterParam' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidFilterParam.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidFilterType' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidFilterType.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidFormatType' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidFormatType.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidFunctionParam' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidFunctionParam.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidJson' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidJson.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidLabel' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidLabel.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidLavaObject' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidLavaObject.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidOptions' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidOptions.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidParamType' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidParamType.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidRowDefinition' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidRowDefinition.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidRowProperty' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidRowProperty.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidStringValue' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidStringValue.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidTimeZone' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidTimeZone.php', + 'Khill\\Lavacharts\\Exceptions\\InvalidUIProperty' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/InvalidUIProperty.php', + 'Khill\\Lavacharts\\Exceptions\\LavaException' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/LavaException.php', + 'Khill\\Lavacharts\\Exceptions\\RenderingException' => __DIR__ . '/..' . '/khill/lavacharts/src/Exceptions/RenderingException.php', + 'Khill\\Lavacharts\\Javascript\\ChartJsFactory' => __DIR__ . '/..' . '/khill/lavacharts/src/Javascript/ChartJsFactory.php', + 'Khill\\Lavacharts\\Javascript\\DashboardJsFactory' => __DIR__ . '/..' . '/khill/lavacharts/src/Javascript/DashboardJsFactory.php', + 'Khill\\Lavacharts\\Javascript\\JavascriptFactory' => __DIR__ . '/..' . '/khill/lavacharts/src/Javascript/JavascriptFactory.php', + 'Khill\\Lavacharts\\Javascript\\ScriptManager' => __DIR__ . '/..' . '/khill/lavacharts/src/Javascript/ScriptManager.php', + 'Khill\\Lavacharts\\Laravel\\LavachartsFacade' => __DIR__ . '/..' . '/khill/lavacharts/src/Laravel/LavachartsFacade.php', + 'Khill\\Lavacharts\\Laravel\\LavachartsServiceProvider' => __DIR__ . '/..' . '/khill/lavacharts/src/Laravel/LavachartsServiceProvider.php', + 'Khill\\Lavacharts\\Lavacharts' => __DIR__ . '/..' . '/khill/lavacharts/src/Lavacharts.php', + 'Khill\\Lavacharts\\Support\\Buffer' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/Buffer.php', + 'Khill\\Lavacharts\\Support\\Config' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/Config.php', + 'Khill\\Lavacharts\\Support\\Contracts\\Arrayable' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/Contracts/Arrayable.php', + 'Khill\\Lavacharts\\Support\\Contracts\\DataTableInterface' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/Contracts/DataTableInterface.php', + 'Khill\\Lavacharts\\Support\\Contracts\\JsClassInterface' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/Contracts/JsClassInterface.php', + 'Khill\\Lavacharts\\Support\\Contracts\\Jsonable' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/Contracts/Jsonable.php', + 'Khill\\Lavacharts\\Support\\Contracts\\JsonableInterface' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/Contracts/JsonableInterface.php', + 'Khill\\Lavacharts\\Support\\Contracts\\RenderableInterface' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/Contracts/RenderableInterface.php', + 'Khill\\Lavacharts\\Support\\Contracts\\VisualizationInterface' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/Contracts/VisualizationInterface.php', + 'Khill\\Lavacharts\\Support\\Contracts\\WrappableInterface' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/Contracts/WrappableInterface.php', + 'Khill\\Lavacharts\\Support\\Customizable' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/Customizable.php', + 'Khill\\Lavacharts\\Support\\Html\\HtmlFactory' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/Html/HtmlFactory.php', + 'Khill\\Lavacharts\\Support\\JavascriptDate' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/JavascriptDate.php', + 'Khill\\Lavacharts\\Support\\Options' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/Options.php', + 'Khill\\Lavacharts\\Support\\Psr4Autoloader' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/Psr4Autoloader.php', + 'Khill\\Lavacharts\\Support\\RenderableTrait' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/Renderable.php', + 'Khill\\Lavacharts\\Support\\Traits\\DataTableTrait' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/Traits/DataTableTrait.php', + 'Khill\\Lavacharts\\Support\\Traits\\ElementIdTrait' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/Traits/ElementIdTrait.php', + 'Khill\\Lavacharts\\Support\\Traits\\HasOptionsTrait' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/Traits/HasOptionsTrait.php', + 'Khill\\Lavacharts\\Support\\Traits\\MaterialRenderableTrait' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/Traits/MaterialRenderableTrait.php', + 'Khill\\Lavacharts\\Support\\Traits\\ParameterValidatorsTrait' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/Traits/ParameterValidatorsTrait.php', + 'Khill\\Lavacharts\\Support\\Traits\\PngRenderableTrait' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/Traits/PngRenderableTrait.php', + 'Khill\\Lavacharts\\Support\\Traits\\RenderableTrait' => __DIR__ . '/..' . '/khill/lavacharts/src/Support/Traits/RenderableTrait.php', + 'Khill\\Lavacharts\\Symfony\\Bundle\\LavachartsBundle' => __DIR__ . '/..' . '/khill/lavacharts/src/Symfony/Bundle/LavachartsBundle.php', + 'Khill\\Lavacharts\\Symfony\\Bundle\\Twig\\LavachartsExtension' => __DIR__ . '/..' . '/khill/lavacharts/src/Symfony/Bundle/Twig/LavachartsExtension.php', + 'Khill\\Lavacharts\\Values\\ElementId' => __DIR__ . '/..' . '/khill/lavacharts/src/Values/ElementId.php', + 'Khill\\Lavacharts\\Values\\Label' => __DIR__ . '/..' . '/khill/lavacharts/src/Values/Label.php', + 'Khill\\Lavacharts\\Values\\Role' => __DIR__ . '/..' . '/khill/lavacharts/src/Values/Role.php', + 'Khill\\Lavacharts\\Values\\StringValue' => __DIR__ . '/..' . '/khill/lavacharts/src/Values/StringValue.php', + 'Khill\\Lavacharts\\Volcano' => __DIR__ . '/..' . '/khill/lavacharts/src/Volcano.php', + 'Laravel\\Horizon\\AutoScaler' => __DIR__ . '/..' . '/laravel/horizon/src/AutoScaler.php', + 'Laravel\\Horizon\\BackgroundProcess' => __DIR__ . '/..' . '/laravel/horizon/src/BackgroundProcess.php', + 'Laravel\\Horizon\\Connectors\\RedisConnector' => __DIR__ . '/..' . '/laravel/horizon/src/Connectors/RedisConnector.php', + 'Laravel\\Horizon\\Console\\AssetsCommand' => __DIR__ . '/..' . '/laravel/horizon/src/Console/AssetsCommand.php', + 'Laravel\\Horizon\\Console\\ContinueCommand' => __DIR__ . '/..' . '/laravel/horizon/src/Console/ContinueCommand.php', + 'Laravel\\Horizon\\Console\\HorizonCommand' => __DIR__ . '/..' . '/laravel/horizon/src/Console/HorizonCommand.php', + 'Laravel\\Horizon\\Console\\InstallCommand' => __DIR__ . '/..' . '/laravel/horizon/src/Console/InstallCommand.php', + 'Laravel\\Horizon\\Console\\ListCommand' => __DIR__ . '/..' . '/laravel/horizon/src/Console/ListCommand.php', + 'Laravel\\Horizon\\Console\\PauseCommand' => __DIR__ . '/..' . '/laravel/horizon/src/Console/PauseCommand.php', + 'Laravel\\Horizon\\Console\\PurgeCommand' => __DIR__ . '/..' . '/laravel/horizon/src/Console/PurgeCommand.php', + 'Laravel\\Horizon\\Console\\SnapshotCommand' => __DIR__ . '/..' . '/laravel/horizon/src/Console/SnapshotCommand.php', + 'Laravel\\Horizon\\Console\\StatusCommand' => __DIR__ . '/..' . '/laravel/horizon/src/Console/StatusCommand.php', + 'Laravel\\Horizon\\Console\\SupervisorCommand' => __DIR__ . '/..' . '/laravel/horizon/src/Console/SupervisorCommand.php', + 'Laravel\\Horizon\\Console\\SupervisorsCommand' => __DIR__ . '/..' . '/laravel/horizon/src/Console/SupervisorsCommand.php', + 'Laravel\\Horizon\\Console\\TerminateCommand' => __DIR__ . '/..' . '/laravel/horizon/src/Console/TerminateCommand.php', + 'Laravel\\Horizon\\Console\\TimeoutCommand' => __DIR__ . '/..' . '/laravel/horizon/src/Console/TimeoutCommand.php', + 'Laravel\\Horizon\\Console\\WorkCommand' => __DIR__ . '/..' . '/laravel/horizon/src/Console/WorkCommand.php', + 'Laravel\\Horizon\\Contracts\\HorizonCommandQueue' => __DIR__ . '/..' . '/laravel/horizon/src/Contracts/HorizonCommandQueue.php', + 'Laravel\\Horizon\\Contracts\\JobRepository' => __DIR__ . '/..' . '/laravel/horizon/src/Contracts/JobRepository.php', + 'Laravel\\Horizon\\Contracts\\MasterSupervisorRepository' => __DIR__ . '/..' . '/laravel/horizon/src/Contracts/MasterSupervisorRepository.php', + 'Laravel\\Horizon\\Contracts\\MetricsRepository' => __DIR__ . '/..' . '/laravel/horizon/src/Contracts/MetricsRepository.php', + 'Laravel\\Horizon\\Contracts\\Pausable' => __DIR__ . '/..' . '/laravel/horizon/src/Contracts/Pausable.php', + 'Laravel\\Horizon\\Contracts\\ProcessRepository' => __DIR__ . '/..' . '/laravel/horizon/src/Contracts/ProcessRepository.php', + 'Laravel\\Horizon\\Contracts\\Restartable' => __DIR__ . '/..' . '/laravel/horizon/src/Contracts/Restartable.php', + 'Laravel\\Horizon\\Contracts\\SupervisorRepository' => __DIR__ . '/..' . '/laravel/horizon/src/Contracts/SupervisorRepository.php', + 'Laravel\\Horizon\\Contracts\\TagRepository' => __DIR__ . '/..' . '/laravel/horizon/src/Contracts/TagRepository.php', + 'Laravel\\Horizon\\Contracts\\Terminable' => __DIR__ . '/..' . '/laravel/horizon/src/Contracts/Terminable.php', + 'Laravel\\Horizon\\Contracts\\WorkloadRepository' => __DIR__ . '/..' . '/laravel/horizon/src/Contracts/WorkloadRepository.php', + 'Laravel\\Horizon\\EventMap' => __DIR__ . '/..' . '/laravel/horizon/src/EventMap.php', + 'Laravel\\Horizon\\Events\\JobDeleted' => __DIR__ . '/..' . '/laravel/horizon/src/Events/JobDeleted.php', + 'Laravel\\Horizon\\Events\\JobFailed' => __DIR__ . '/..' . '/laravel/horizon/src/Events/JobFailed.php', + 'Laravel\\Horizon\\Events\\JobPushed' => __DIR__ . '/..' . '/laravel/horizon/src/Events/JobPushed.php', + 'Laravel\\Horizon\\Events\\JobReleased' => __DIR__ . '/..' . '/laravel/horizon/src/Events/JobReleased.php', + 'Laravel\\Horizon\\Events\\JobReserved' => __DIR__ . '/..' . '/laravel/horizon/src/Events/JobReserved.php', + 'Laravel\\Horizon\\Events\\JobsMigrated' => __DIR__ . '/..' . '/laravel/horizon/src/Events/JobsMigrated.php', + 'Laravel\\Horizon\\Events\\LongWaitDetected' => __DIR__ . '/..' . '/laravel/horizon/src/Events/LongWaitDetected.php', + 'Laravel\\Horizon\\Events\\MasterSupervisorDeployed' => __DIR__ . '/..' . '/laravel/horizon/src/Events/MasterSupervisorDeployed.php', + 'Laravel\\Horizon\\Events\\MasterSupervisorLooped' => __DIR__ . '/..' . '/laravel/horizon/src/Events/MasterSupervisorLooped.php', + 'Laravel\\Horizon\\Events\\MasterSupervisorReviving' => __DIR__ . '/..' . '/laravel/horizon/src/Events/MasterSupervisorReviving.php', + 'Laravel\\Horizon\\Events\\RedisEvent' => __DIR__ . '/..' . '/laravel/horizon/src/Events/RedisEvent.php', + 'Laravel\\Horizon\\Events\\SupervisorLooped' => __DIR__ . '/..' . '/laravel/horizon/src/Events/SupervisorLooped.php', + 'Laravel\\Horizon\\Events\\SupervisorProcessRestarting' => __DIR__ . '/..' . '/laravel/horizon/src/Events/SupervisorProcessRestarting.php', + 'Laravel\\Horizon\\Events\\UnableToLaunchProcess' => __DIR__ . '/..' . '/laravel/horizon/src/Events/UnableToLaunchProcess.php', + 'Laravel\\Horizon\\Events\\WorkerProcessRestarting' => __DIR__ . '/..' . '/laravel/horizon/src/Events/WorkerProcessRestarting.php', + 'Laravel\\Horizon\\Exec' => __DIR__ . '/..' . '/laravel/horizon/src/Exec.php', + 'Laravel\\Horizon\\Horizon' => __DIR__ . '/..' . '/laravel/horizon/src/Horizon.php', + 'Laravel\\Horizon\\HorizonApplicationServiceProvider' => __DIR__ . '/..' . '/laravel/horizon/src/HorizonApplicationServiceProvider.php', + 'Laravel\\Horizon\\HorizonServiceProvider' => __DIR__ . '/..' . '/laravel/horizon/src/HorizonServiceProvider.php', + 'Laravel\\Horizon\\Http\\Controllers\\Controller' => __DIR__ . '/..' . '/laravel/horizon/src/Http/Controllers/Controller.php', + 'Laravel\\Horizon\\Http\\Controllers\\DashboardStatsController' => __DIR__ . '/..' . '/laravel/horizon/src/Http/Controllers/DashboardStatsController.php', + 'Laravel\\Horizon\\Http\\Controllers\\FailedJobsController' => __DIR__ . '/..' . '/laravel/horizon/src/Http/Controllers/FailedJobsController.php', + 'Laravel\\Horizon\\Http\\Controllers\\HomeController' => __DIR__ . '/..' . '/laravel/horizon/src/Http/Controllers/HomeController.php', + 'Laravel\\Horizon\\Http\\Controllers\\JobMetricsController' => __DIR__ . '/..' . '/laravel/horizon/src/Http/Controllers/JobMetricsController.php', + 'Laravel\\Horizon\\Http\\Controllers\\MasterSupervisorController' => __DIR__ . '/..' . '/laravel/horizon/src/Http/Controllers/MasterSupervisorController.php', + 'Laravel\\Horizon\\Http\\Controllers\\MonitoringController' => __DIR__ . '/..' . '/laravel/horizon/src/Http/Controllers/MonitoringController.php', + 'Laravel\\Horizon\\Http\\Controllers\\QueueMetricsController' => __DIR__ . '/..' . '/laravel/horizon/src/Http/Controllers/QueueMetricsController.php', + 'Laravel\\Horizon\\Http\\Controllers\\RecentJobsController' => __DIR__ . '/..' . '/laravel/horizon/src/Http/Controllers/RecentJobsController.php', + 'Laravel\\Horizon\\Http\\Controllers\\RetryController' => __DIR__ . '/..' . '/laravel/horizon/src/Http/Controllers/RetryController.php', + 'Laravel\\Horizon\\Http\\Controllers\\WorkloadController' => __DIR__ . '/..' . '/laravel/horizon/src/Http/Controllers/WorkloadController.php', + 'Laravel\\Horizon\\Http\\Middleware\\Authenticate' => __DIR__ . '/..' . '/laravel/horizon/src/Http/Middleware/Authenticate.php', + 'Laravel\\Horizon\\JobId' => __DIR__ . '/..' . '/laravel/horizon/src/JobId.php', + 'Laravel\\Horizon\\JobPayload' => __DIR__ . '/..' . '/laravel/horizon/src/JobPayload.php', + 'Laravel\\Horizon\\Jobs\\MonitorTag' => __DIR__ . '/..' . '/laravel/horizon/src/Jobs/MonitorTag.php', + 'Laravel\\Horizon\\Jobs\\RetryFailedJob' => __DIR__ . '/..' . '/laravel/horizon/src/Jobs/RetryFailedJob.php', + 'Laravel\\Horizon\\Jobs\\StopMonitoringTag' => __DIR__ . '/..' . '/laravel/horizon/src/Jobs/StopMonitoringTag.php', + 'Laravel\\Horizon\\Listeners\\ExpireSupervisors' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/ExpireSupervisors.php', + 'Laravel\\Horizon\\Listeners\\MarkJobAsComplete' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/MarkJobAsComplete.php', + 'Laravel\\Horizon\\Listeners\\MarkJobAsFailed' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/MarkJobAsFailed.php', + 'Laravel\\Horizon\\Listeners\\MarkJobAsReleased' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/MarkJobAsReleased.php', + 'Laravel\\Horizon\\Listeners\\MarkJobAsReserved' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/MarkJobAsReserved.php', + 'Laravel\\Horizon\\Listeners\\MarkJobsAsMigrated' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/MarkJobsAsMigrated.php', + 'Laravel\\Horizon\\Listeners\\MarshalFailedEvent' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/MarshalFailedEvent.php', + 'Laravel\\Horizon\\Listeners\\MonitorMasterSupervisorMemory' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/MonitorMasterSupervisorMemory.php', + 'Laravel\\Horizon\\Listeners\\MonitorSupervisorMemory' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/MonitorSupervisorMemory.php', + 'Laravel\\Horizon\\Listeners\\MonitorWaitTimes' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/MonitorWaitTimes.php', + 'Laravel\\Horizon\\Listeners\\PruneTerminatingProcesses' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/PruneTerminatingProcesses.php', + 'Laravel\\Horizon\\Listeners\\SendNotification' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/SendNotification.php', + 'Laravel\\Horizon\\Listeners\\StartTimingJob' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/StartTimingJob.php', + 'Laravel\\Horizon\\Listeners\\StoreJob' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/StoreJob.php', + 'Laravel\\Horizon\\Listeners\\StoreMonitoredTags' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/StoreMonitoredTags.php', + 'Laravel\\Horizon\\Listeners\\StoreTagsForFailedJob' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/StoreTagsForFailedJob.php', + 'Laravel\\Horizon\\Listeners\\TrimFailedJobs' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/TrimFailedJobs.php', + 'Laravel\\Horizon\\Listeners\\TrimMonitoredJobs' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/TrimMonitoredJobs.php', + 'Laravel\\Horizon\\Listeners\\TrimRecentJobs' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/TrimRecentJobs.php', + 'Laravel\\Horizon\\Listeners\\UpdateJobMetrics' => __DIR__ . '/..' . '/laravel/horizon/src/Listeners/UpdateJobMetrics.php', + 'Laravel\\Horizon\\ListensForSignals' => __DIR__ . '/..' . '/laravel/horizon/src/ListensForSignals.php', + 'Laravel\\Horizon\\Lock' => __DIR__ . '/..' . '/laravel/horizon/src/Lock.php', + 'Laravel\\Horizon\\LuaScripts' => __DIR__ . '/..' . '/laravel/horizon/src/LuaScripts.php', + 'Laravel\\Horizon\\MasterSupervisor' => __DIR__ . '/..' . '/laravel/horizon/src/MasterSupervisor.php', + 'Laravel\\Horizon\\MasterSupervisorCommands\\AddSupervisor' => __DIR__ . '/..' . '/laravel/horizon/src/MasterSupervisorCommands/AddSupervisor.php', + 'Laravel\\Horizon\\Notifications\\LongWaitDetected' => __DIR__ . '/..' . '/laravel/horizon/src/Notifications/LongWaitDetected.php', + 'Laravel\\Horizon\\PhpBinary' => __DIR__ . '/..' . '/laravel/horizon/src/PhpBinary.php', + 'Laravel\\Horizon\\ProcessInspector' => __DIR__ . '/..' . '/laravel/horizon/src/ProcessInspector.php', + 'Laravel\\Horizon\\ProcessPool' => __DIR__ . '/..' . '/laravel/horizon/src/ProcessPool.php', + 'Laravel\\Horizon\\ProvisioningPlan' => __DIR__ . '/..' . '/laravel/horizon/src/ProvisioningPlan.php', + 'Laravel\\Horizon\\QueueCommandString' => __DIR__ . '/..' . '/laravel/horizon/src/QueueCommandString.php', + 'Laravel\\Horizon\\RedisHorizonCommandQueue' => __DIR__ . '/..' . '/laravel/horizon/src/RedisHorizonCommandQueue.php', + 'Laravel\\Horizon\\RedisQueue' => __DIR__ . '/..' . '/laravel/horizon/src/RedisQueue.php', + 'Laravel\\Horizon\\Repositories\\RedisJobRepository' => __DIR__ . '/..' . '/laravel/horizon/src/Repositories/RedisJobRepository.php', + 'Laravel\\Horizon\\Repositories\\RedisMasterSupervisorRepository' => __DIR__ . '/..' . '/laravel/horizon/src/Repositories/RedisMasterSupervisorRepository.php', + 'Laravel\\Horizon\\Repositories\\RedisMetricsRepository' => __DIR__ . '/..' . '/laravel/horizon/src/Repositories/RedisMetricsRepository.php', + 'Laravel\\Horizon\\Repositories\\RedisProcessRepository' => __DIR__ . '/..' . '/laravel/horizon/src/Repositories/RedisProcessRepository.php', + 'Laravel\\Horizon\\Repositories\\RedisSupervisorRepository' => __DIR__ . '/..' . '/laravel/horizon/src/Repositories/RedisSupervisorRepository.php', + 'Laravel\\Horizon\\Repositories\\RedisTagRepository' => __DIR__ . '/..' . '/laravel/horizon/src/Repositories/RedisTagRepository.php', + 'Laravel\\Horizon\\Repositories\\RedisWorkloadRepository' => __DIR__ . '/..' . '/laravel/horizon/src/Repositories/RedisWorkloadRepository.php', + 'Laravel\\Horizon\\ServiceBindings' => __DIR__ . '/..' . '/laravel/horizon/src/ServiceBindings.php', + 'Laravel\\Horizon\\Stopwatch' => __DIR__ . '/..' . '/laravel/horizon/src/Stopwatch.php', + 'Laravel\\Horizon\\Supervisor' => __DIR__ . '/..' . '/laravel/horizon/src/Supervisor.php', + 'Laravel\\Horizon\\SupervisorCommandString' => __DIR__ . '/..' . '/laravel/horizon/src/SupervisorCommandString.php', + 'Laravel\\Horizon\\SupervisorCommands\\Balance' => __DIR__ . '/..' . '/laravel/horizon/src/SupervisorCommands/Balance.php', + 'Laravel\\Horizon\\SupervisorCommands\\ContinueWorking' => __DIR__ . '/..' . '/laravel/horizon/src/SupervisorCommands/ContinueWorking.php', + 'Laravel\\Horizon\\SupervisorCommands\\Pause' => __DIR__ . '/..' . '/laravel/horizon/src/SupervisorCommands/Pause.php', + 'Laravel\\Horizon\\SupervisorCommands\\Restart' => __DIR__ . '/..' . '/laravel/horizon/src/SupervisorCommands/Restart.php', + 'Laravel\\Horizon\\SupervisorCommands\\Scale' => __DIR__ . '/..' . '/laravel/horizon/src/SupervisorCommands/Scale.php', + 'Laravel\\Horizon\\SupervisorCommands\\Terminate' => __DIR__ . '/..' . '/laravel/horizon/src/SupervisorCommands/Terminate.php', + 'Laravel\\Horizon\\SupervisorFactory' => __DIR__ . '/..' . '/laravel/horizon/src/SupervisorFactory.php', + 'Laravel\\Horizon\\SupervisorOptions' => __DIR__ . '/..' . '/laravel/horizon/src/SupervisorOptions.php', + 'Laravel\\Horizon\\SupervisorProcess' => __DIR__ . '/..' . '/laravel/horizon/src/SupervisorProcess.php', + 'Laravel\\Horizon\\SystemProcessCounter' => __DIR__ . '/..' . '/laravel/horizon/src/SystemProcessCounter.php', + 'Laravel\\Horizon\\Tags' => __DIR__ . '/..' . '/laravel/horizon/src/Tags.php', + 'Laravel\\Horizon\\WaitTimeCalculator' => __DIR__ . '/..' . '/laravel/horizon/src/WaitTimeCalculator.php', + 'Laravel\\Horizon\\WorkerCommandString' => __DIR__ . '/..' . '/laravel/horizon/src/WorkerCommandString.php', + 'Laravel\\Horizon\\WorkerProcess' => __DIR__ . '/..' . '/laravel/horizon/src/WorkerProcess.php', 'Laravel\\Socialite\\AbstractUser' => __DIR__ . '/..' . '/laravel/socialite/src/AbstractUser.php', 'Laravel\\Socialite\\Contracts\\Factory' => __DIR__ . '/..' . '/laravel/socialite/src/Contracts/Factory.php', 'Laravel\\Socialite\\Contracts\\Provider' => __DIR__ . '/..' . '/laravel/socialite/src/Contracts/Provider.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index cfa935a..d0c861a 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -69,6 +69,65 @@ "webprofiler" ] }, + { + "name": "cakephp/chronos", + "version": "1.2.8", + "version_normalized": "1.2.8.0", + "source": { + "type": "git", + "url": "https://github.com/cakephp/chronos.git", + "reference": "0292f06e8cc23fc82f0574889da2d8bf27b613c1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cakephp/chronos/zipball/0292f06e8cc23fc82f0574889da2d8bf27b613c1", + "reference": "0292f06e8cc23fc82f0574889da2d8bf27b613c1", + "shasum": "" + }, + "require": { + "php": "^5.5.9|^7" + }, + "require-dev": { + "athletic/athletic": "~0.1", + "cakephp/cakephp-codesniffer": "^3.0", + "phpbench/phpbench": "@dev", + "phpstan/phpstan": "^0.6.4", + "phpunit/phpunit": "<6.0 || ^7.0" + }, + "time": "2019-06-17T15:19:18+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Cake\\Chronos\\": "src/" + }, + "files": [ + "src/carbon_compat.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "http://nesbot.com" + }, + { + "name": "The CakePHP Team", + "homepage": "http://cakephp.org" + } + ], + "description": "A simple API extension for DateTime.", + "homepage": "http://cakephp.org", + "keywords": [ + "date", + "datetime", + "time" + ] + }, { "name": "dnoegel/php-xdg-base-dir", "version": "0.1", @@ -1190,6 +1249,74 @@ ], "description": "Highlight PHP code in terminal" }, + { + "name": "khill/lavacharts", + "version": "3.1.12", + "version_normalized": "3.1.12.0", + "source": { + "type": "git", + "url": "https://github.com/kevinkhill/lavacharts.git", + "reference": "5823620b6c976ced1ab28ae900dab2bb573af793" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/kevinkhill/lavacharts/zipball/5823620b6c976ced1ab28ae900dab2bb573af793", + "reference": "5823620b6c976ced1ab28ae900dab2bb573af793", + "shasum": "" + }, + "require": { + "nesbot/carbon": ">=1.14 <3.0", + "php": ">=5.4.0" + }, + "require-dev": { + "codeclimate/php-test-reporter": "~0.3", + "mockery/mockery": "~0.9", + "phpunit/phpunit": "~4.8", + "satooshi/php-coveralls": "~1.0", + "squizlabs/php_codesniffer": "~2.5" + }, + "suggest": { + "khill/datatableplus": "Adds extra features to DataTables such as csv and laravel collection parsing." + }, + "time": "2019-07-11T15:47:24+00:00", + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Khill\\Lavacharts\\Laravel\\LavachartsServiceProvider" + ], + "aliases": { + "Lava": "Khill\\Lavacharts\\Laravel\\LavachartsFacade" + } + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Khill\\Lavacharts\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kevin Hill", + "email": "kevinkhill@gmail.com", + "role": "Creator" + } + ], + "description": "PHP wrapper library for the Google Chart API", + "homepage": "http://lavacharts.com", + "keywords": [ + "charts", + "google", + "graphs", + "laravel", + "symfony" + ] + }, { "name": "laravel/framework", "version": "v6.0.4", @@ -1337,6 +1464,77 @@ "laravel" ] }, + { + "name": "laravel/horizon", + "version": "v3.3.2", + "version_normalized": "3.3.2.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/horizon.git", + "reference": "692d3649a9c1bd13a3340ecc10036c1d3b55155b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/horizon/zipball/692d3649a9c1bd13a3340ecc10036c1d3b55155b", + "reference": "692d3649a9c1bd13a3340ecc10036c1d3b55155b", + "shasum": "" + }, + "require": { + "cakephp/chronos": "^1.0", + "ext-json": "*", + "ext-pcntl": "*", + "ext-posix": "*", + "illuminate/contracts": "~5.7.0|~5.8.0|^6.0|^7.0", + "illuminate/queue": "~5.7.0|~5.8.0|^6.0|^7.0", + "illuminate/support": "~5.7.0|~5.8.0|^6.0|^7.0", + "php": ">=7.1.0", + "predis/predis": "^1.1", + "ramsey/uuid": "^3.5", + "symfony/debug": "^4.2", + "symfony/process": "^4.2" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "orchestra/testbench": "^3.7|^4.0|^5.0", + "phpunit/phpunit": "^7.0|^8.0" + }, + "time": "2019-08-27T14:30:05+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Horizon\\HorizonServiceProvider" + ], + "aliases": { + "Horizon": "Laravel\\Horizon\\Horizon" + } + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Laravel\\Horizon\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Dashboard and code-driven configuration for Laravel queues.", + "keywords": [ + "laravel", + "queue" + ] + }, { "name": "laravel/socialite", "version": "v4.2.0", diff --git a/vendor/khill/lavacharts/.github/CONTRIBUTING.md b/vendor/khill/lavacharts/.github/CONTRIBUTING.md new file mode 100644 index 0000000..bade2b9 --- /dev/null +++ b/vendor/khill/lavacharts/.github/CONTRIBUTING.md @@ -0,0 +1,30 @@ +## Contributing + +First of all, **thank you** for contributing! + +Here are a few guidelines to follow in order to ease code reviews and merging: + +### For the PHP code base + +- follow [PSR-1](http://www.php-fig.org/psr/1/) and [PSR-2](http://www.php-fig.org/psr/2/) +- run the test suite +- write (or update) unit tests when applicable +- write documentation for new features +- use [commit messages that make sense](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) + +One may ask you to [squash your commits](http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html) too. This is used to "clean" your pull request before merging it (we don't want commits such as `fix tests`, `fix 2`, `fix 3`, etc.). + +When creating your pull request on GitHub, please write a description which gives the context and/or explains why you are creating it. + + +### For the Javascript code base + +To get started, you will need to have nodejs installed with npm. + +- From the root of the project, navigate to the javascript directory: `cd javascript` +- Then run `npm install` to fetch all the tooling needed for compiling lava.js + +Gulp is used to build the module so you will need to use the tasks: +- Use `gulp watch` to monitor the files for changes and rebuild when detected. +- Use `gulp build` to initiate a manual dev build. +- Use `gulp release` to initiate a manual production build. (Strips comments, removes logging, and minifys the code.) diff --git a/vendor/khill/lavacharts/.github/ISSUE_TEMPLATE.md b/vendor/khill/lavacharts/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..fa658fd --- /dev/null +++ b/vendor/khill/lavacharts/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,18 @@ +#### What Version? +> Run `composer show khill/lavacharts` if you don't know + + +#### Issue +> Please describe the issue. + + +#### Controller Code (chart creation code) +``` +// paste over this +``` + + +#### View Code +``` +// paste over this +``` diff --git a/vendor/khill/lavacharts/.gitlab-ci.yml b/vendor/khill/lavacharts/.gitlab-ci.yml new file mode 100644 index 0000000..d93b6cd --- /dev/null +++ b/vendor/khill/lavacharts/.gitlab-ci.yml @@ -0,0 +1,24 @@ +# Select image from https://hub.docker.com/_/php/ +image: php:5.6 + +# Select what we should cache +cache: + paths: + - vendor/ + +before_script: +- apt-get update -yqq +- apt-get install git unzip nodejs -yqq +- curl -sS https://getcomposer.org/installer | php +#- echo 'date.timezone = "America/Los_Angeles"' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini +- mkdir -p build/logs +- php composer.phar install --no-progress --no-interaction --prefer-dist +- npm install --no-progress --production + +after_script: + - php ./vendor/bin/coveralls + +test: + script: + - php composer.phar run test + - npm run test diff --git a/vendor/khill/lavacharts/CHANGELOG.md b/vendor/khill/lavacharts/CHANGELOG.md new file mode 100644 index 0000000..72b1cfa --- /dev/null +++ b/vendor/khill/lavacharts/CHANGELOG.md @@ -0,0 +1,226 @@ +- 3.1.9 + - Fixing bug where using `setOptions` instead of the constructor skipped the processing of `png` and `material` attributes. + +- 3.1.8 + - Production build of the Lava.js module. + +- 3.1.7 + - Added the tag lavacharts to the config publishing. + Use `php artisan vendor:publish --tag=lavacharts` + If that does not work, try to clear the cache with `php artisan config:clear` and re-publish with `--force`. + +- 3.1.6 + - The event callback within lava.js was modified to pass back the chart and the datatable so users can interact with either during an event. This solves issue [#203](https://github.com/kevinkhill/lavacharts/issues/203) + +- 3.1.5 + - Adding DonutChart alias class back + +- 3.1.4 + - Chart's should resize properly on page resize. + +- 3.1.3 + - Adding support for date columns to be null which enables support for Gantt charts to have linked sections. + - Adding JavascriptDate class that mimics the way the Javascript Date object is created. (I wanted to be able to copy and paste google's examples into addRows) + +- 3.1.1 & 3.1.2 + - Adding back and repairing the Symfony Bundle + +- 3.1.0 + - Public Release + +- 3.1.0-beta2 + - Adjusting elementId precedence to prevent backwards compatability breaks and enable new features. The order of precedence goes as follows: + - An elementId string passed to the render method will override an elementId set to the chart. + - It is recommended to move all of the elementId strings on `render()` methods into the constructor, as an option: `['elementId' => 'render-to-div']` + - Setting the elementId as an option during creation is preferred, to enable the use of the new feature, `renderAll()`, that will output all defined charts to the page. + +- 3.1.0-beta1 + - Adding setLocale() method for changing language of charts. + +- 3.1.0-alpha + - Adding more supported chart types + - AnnotationChart + - BubbleChart + - CandlestickChart + - HistogramChart + - SankeyChart + - SteppedAreaChart + - TimelineChart + - TreemapChart + - Adding DataFactory with arrayToDataTable() method to try and automatically + create columns and rows based on an array of data with labels. This mimics how + Google's javascript version of the method works for creating DataTables more + efficiently. Currently only works with strings and numbers. + - Adding DataTable() method to the DataFactory as a shortcut to chaining methods. + - The method has three signatures: + - No params for an empty, default timezone DataTable + - String param for setting the timezone + - Array of columns and array of rows as 1st and 2nd for a complete DataTable in + one method call. (The third parameter can also be used to set the timezone.) + - [DataFactory Examples](https://gist.github.com/kevinkhill/0c7c5f6211c7fd8f9658) + - Massive overhaul of lava.js module. + - Refactored and using browserify to compile + - Added `lava.ready()` method for wrapping any lava.js interaction. When given a function + it will be called after all charts have rendered onto the page. Useful for delaying ajax requests + until the chart is ready. + - Added the ability to render directly as PNGs instead of SVGs + - Just pass into the options `['png' => true]` + - Created examples for each chart, available to view locally using the built in PHP server. + - Navigate to the Examples folder in the lavacharts package folder. If you installed with Composer, then it + should be at `$PROJECT_ROOT/vendor/khill/lavacharts/tests/Examples` + - Use the given config and router to start the examples page `php -S 127.0.0.1:8000 -c php.ini router.php` + - All exceptions now extend LavaException if the user wants to have a catch all + - Utils class removed, broken into traits, and applied to classes that needed the methods + +- 3.0.4 + - Fixing bug where TreeMap was not in list of chartClasses + +- 3.0.3 + - Events Bugfix + +- 3.0.2 + - Blade template extension bug fixes + - Combining the `customize` method into the constructor to provide + restriction free option setting without the extra method call. + +- 3.0.1 + - Bug fixes + +- 3.0.0 + - Dropping support for PHP 5.3 + - Minimum version PHP 5.4+ + - Added Dashboards + - ChartWrappers + - ControlWrappers + - Added filters for Dashboard ControlWrappers + - Category + - ChartRange + - DateRange + - NumberRange + - String + - Chart Improvements + - Assign DataTable and options via constructor. + - Refactored all ConfigObject creation into the classes, no more manually instantiation. + - Removed Event classes in favor of associative array definitions of events. + - DataTable Improvements + - Added support for csv file read/write and Laravel collection parsing into DataTables, + just add the separate package to composer "khill/datatableplus":"dev-master". + DataTablePlus extends the DataTable to add the extra functions and Lavacharts will seamlessly + create DataTablePluses over DataTables if available via composer. + - Added ScatterChart & TableChart + - Added Format#formatColumn method to format datatable columns. + - Added new formats. + - ArrowFormat + - BarFormat + - lava.js has been refactored: + - lava.get() replaced with: + - getChart(label, callback) -> callback(Google chartObj, Lava chartObj) + - Google chart object allows for using google's documented chart methods + - Lava chart object contains all relevant info about the chart + - chart, data, options, formats etc... + - getDashboard(label, callback) -> callback(Google dashboardObj, Lava dashboardObj) + - Google dashboard object allows for using google's documented dashboard methods + - Lava dashboard object contains all relevant info about the dashboard + - dashboard, control bindings, chart wrapper, data, options, etc... + - lava.ready() used to wrap other lava.js interaction. + - Called after all of the google jsapi is loaded and the charts are rendered. + +- 2.5.7 + - AJAX data loading bugfixes + +- 2.5.6 + - Fixes for AJAX chart loading + +- 2.5.5 + - Blade extensions fix + +- 2.5.4 + - Fixed namespace bug + +- 2.5.3 + - Added column roles + +- 2.5.2 + - AddedTimeOfDay columns + +- 2.5.1 + - Lava.js bug fixes + +- 2.5.0 + - Ajax chart loading + +- 2.4.2 + - Added Lava#exists() method for checking if a chart exists + +- 2.4.1 + - Added focusTarget to Line and Area charts + +- 2.4.0 + - BarCharts added + - Cleaned up code to PSR2 + - Changed from PSR0 -> PSR4 + +- 2.3.0 + - Added jsapi() method for manual script placement. + +- 2.2.1 + - Timezone fixes + Now they can be set with the constructor when creating a DataTable. + +- 2.2.0 + - Gauge Chart support + +- 2.1.0 + - Calendar Chart support + +- 2.0.5 + - Updated Carbon + - Laravel 5 compatibility + +- 2.0.4 + - Multiple chart bug fixes + +- 2.0.3 + - Fixing event bugs + +- 2.0.2 + - Responsive charts + +- 2.0.1 + - Multiple chart support + +- 2.0.0 + - Its Here! + +- 2.0.0-beta1 + - Passed 75% test coverage + - Added new options to TextStyle + - Bold + - Italic + +- 2.0.0-alpha4 + - Added Events + - select + - onmouseover + - onmouseout + +- 2.0.0-alpha3 + - Added DataTable column formatters + - DateFormat + - NumberFormat + +- 2.0.0-alpha2 + - Added render method in favor of outputInto method + - Added blade template extensions for seamless chart rendering + - Moar tests! + +- 2.0.0-alpha1 + - Refactored the main Lavacharts class to not be static anymore (yay!) + - Moved the creation of the javascript into it's own class + - Added a new class "Volcano" to store all the charts. + - Modified the charts to not statically call the Lavacharts functions + - DataTables are no longer magic, but applied via method chaining + - Added render method in favor of outputInto method + - Added blade template extensions as aliases to the render method + - Tests tests tests! + - Using phpcs to bring all the code up to PSR2 standards diff --git a/vendor/khill/lavacharts/CONTRIBUTORS.md b/vendor/khill/lavacharts/CONTRIBUTORS.md new file mode 100644 index 0000000..54f03c4 --- /dev/null +++ b/vendor/khill/lavacharts/CONTRIBUTORS.md @@ -0,0 +1,14 @@ +# Contributors + +Thank you for finding bugs, helping me fix them, pull requests, issues and anything else. + + - [deringer](https://github.com/deringer) + - [MicahKV](micah138@yahoo.com) + - [rajivseelam](https://github.com/rajivseelam) + - [SendDerek](https://github.com/SendDerek) + - [stevebauman](https://github.com/stevebauman) + - [Stonos](https://github.com/Stonos) + - [tobias-kuendig](https://github.com/tobias-kuendig) + - [twify93](https://github.com/twify93) + +If your name is not on this list and needs to be, I'm sorry! Please add it in a pull request and I will merge it in. diff --git a/vendor/khill/lavacharts/LICENSE b/vendor/khill/lavacharts/LICENSE new file mode 100644 index 0000000..4733363 --- /dev/null +++ b/vendor/khill/lavacharts/LICENSE @@ -0,0 +1,23 @@ + Lavacharts - A PHP wrapper library for the Google Chart API + + Copyright (c) 2017 Kevin Hill + + The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/khill/lavacharts/README.md b/vendor/khill/lavacharts/README.md new file mode 100644 index 0000000..d6c9668 --- /dev/null +++ b/vendor/khill/lavacharts/README.md @@ -0,0 +1,248 @@ +# Lavacharts 3.1.11 + +[![Total Downloads](https://img.shields.io/packagist/dt/khill/lavacharts.svg?style=plastic)](https://packagist.org/packages/khill/lavacharts) +[![License](https://img.shields.io/packagist/l/khill/lavacharts.svg?style=plastic)](http://opensource.org/licenses/MIT) +[![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%205.4-8892BF.svg?style=plastic)](https://php.net/) +[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/kevinkhill/lavacharts?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +[![PayPal](https://img.shields.io/badge/paypal-donate-yellow.svg?style=plastic)](https://www.paypal.me/kevinkhill/) + +Lavacharts is a graphing / chart library for PHP5.4+ that wraps the Google Chart API. + +Stable: +[![Current Release](https://img.shields.io/github/release/kevinkhill/lavacharts.svg?style=plastic)](https://github.com/kevinkhill/lavacharts/releases) +[![Build Status](https://img.shields.io/travis/kevinkhill/lavacharts/3.1.svg?style=plastic)](https://travis-ci.org/kevinkhill/lavacharts) +[![Coverage Status](https://img.shields.io/coveralls/kevinkhill/lavacharts/3.1.svg?style=plastic)](https://coveralls.io/r/kevinkhill/lavacharts?branch=3.1) + +Dev: +[![Development Release](https://img.shields.io/badge/release-dev--master-brightgreen.svg?style=plastic)](https://github.com/kevinkhill/lavacharts/tree/master) +[![Build Status](https://img.shields.io/travis/kevinkhill/lavacharts/master.svg?style=plastic)](https://travis-ci.org/kevinkhill/lavacharts) +[![Coverage Status](https://img.shields.io/coveralls/kevinkhill/lavacharts/master.svg?style=plastic)](https://coveralls.io/r/kevinkhill/lavacharts?branch=master) + + +## Package Features +- **Updated!** Laravel 5.5+ auto-discovery +- Any option for customizing charts that Google supports, Lavacharts should as well. Just use the chart constructor to assign any customization options you wish! + - Visit [Google's Chart Gallery](https://developers.google.com/chart/interactive/docs/gallery) for details on available options +- Custom JavaScript module for interacting with charts client-side + - AJAX data reloading + - Fetching charts + - Events integration +- Column Formatters & Roles +- Blade template extensions for Laravel +- Twig template extensions for Symfony +- [Carbon](https://github.com/briannesbitt/Carbon) support for date/datetime/timeofday columns +- Now supporting **22** Charts! + - Annotation, Area, Bar, Bubble, Calendar, Candlestick, Column, Combo, Gantt, Gauge, Geo, Histogram, Line, Org, Pie, Sankey, Scatter, SteppedArea, Table, Timeline, TreeMap, and WordTree! + + +### For complete documentation, please visit [lavacharts.com](http://lavacharts.com/) + +#### Upgrade guide: [Migrating from 2.5.x to 3.0.x](https://github.com/kevinkhill/lavacharts/wiki/Upgrading-from-2.5-to-3.0) +#### For contributing, a handy guide [can be found here](https://github.com/kevinkhill/lavacharts/blob/master/.github/CONTRIBUTING.md) + +--- + +## Installing +In your project's main `composer.json` file, add this line to the requirements: +```json +"khill/lavacharts": "^3.1" +``` + +Run Composer to install Lavacharts: +```bash +$ composer update +``` + +## Framework Agnostic +If you are using Lavacharts with Silex, Lumen or your own Composer project, that's no problem! Just make sure to: +`require 'vendor/autoload.php';` within you project and create an instance of Lavacharts: `$lava = new Khill\Lavacharts\Lavacharts;` + + +## Laravel +To integrate Lavacharts into Laravel, a ServiceProvider has been included. + + +### Laravel ~5.5 +Thanks to the fantastic new [Package Auto-Discovery](https://laravel-news.com/package-auto-discovery) feature added in 5.5, you're ready to go, no registration required :+1: + +#### Configuration +To modify the default configuration of Lavacharts, datetime formats for datatables or adding your maps api key... +Publish the configuration with `php artisan vendor:publish --tag=lavacharts` + +### Laravel ~5.4 +Register Lavacharts in your app by adding these lines to the respective arrays found in `config/app.php`: +```php + [ + // ... + + Khill\Lavacharts\Laravel\LavachartsServiceProvider::class, +], + +// ... +'aliases' => [ + // ... + + 'Lava' => Khill\Lavacharts\Laravel\LavachartsFacade::class, +] +``` +#### Configuration +To modify the default configuration of Lavacharts, datetime formats for datatables or adding your maps api key... +Publish the configuration with `php artisan vendor:publish --tag=lavacharts` + + +### Laravel ~4 +Register Lavacharts in your app by adding these lines to the respective arrays found in `app/config/app.php`: + +```php + array( + // ... + + "Khill\Lavacharts\Laravel\LavachartsServiceProvider", +), + +// ... +'aliases' => array( + // ... + + 'Lava' => "Khill\Lavacharts\Laravel\LavachartsFacade", +) +``` +#### Configuration +To modify the default configuration of Lavacharts, datetime formats for datatables or adding your maps api key... +Publish the configuration with `php artisan config:publish khill/lavacharts` + + +## Symfony +The package also includes a Bundle for Symfony to enable Lavacharts as a service that can be pulled from the Container. + +### Add Bundle +Add the bundle to the registerBundles method in the AppKernel, found at `app/AppKernel.php`: +```php +DataTable(); + +$data->addDateColumn('Day of Month') + ->addNumberColumn('Projected') + ->addNumberColumn('Official'); + +// Random Data For Example +for ($a = 1; $a < 30; $a++) { + $rowData = [ + "2017-4-$a", rand(800,1000), rand(800,1000) + ]; + + $data->addRow($rowData); +} +``` + +Arrays work for datatables as well... +```php +$data->addColumns([ + ['date', 'Day of Month'], + ['number', 'Projected'], + ['number', 'Official'] +]); +``` + +Or you can `use \Khill\Lavacharts\DataTables\DataFactory` [to create DataTables in another way](https://gist.github.com/kevinkhill/0c7c5f6211c7fd8f9658) + +#### Chart Options +Customize your chart, with any options found in Google's documentation. Break objects down into arrays and pass to the chart. +```php +$lava->LineChart('Stocks', $data, [ + 'title' => 'Stock Market Trends', + 'animation' => [ + 'startup' => true, + 'easing' => 'inAndOut' + ], + 'colors' => ['blue', '#F4C1D8'] +]); +``` + +#### Output ID +The chart will needs to be output into a div on the page, so an html ID for a div is needed. +Here is where you want your chart `
` + - If no options for the chart are set, then the third parameter is the id of the output: +```php +$lava->LineChart('Stocks', $data, 'stocks-div'); +``` + - If there are options set for the chart, then the id may be included in the options: +```php +$lava->LineChart('Stocks', $data, [ + 'elementId' => 'stocks-div' + 'title' => 'Stock Market Trends' +]); +``` + - The 4th parameter will also work: +```php +$lava->LineChart('Stocks', $data, [ + 'title' => 'Stock Market Trends' +], 'stocks-div'); +``` + + +## View +Pass the main Lavacharts instance to the view, because all of the defined charts are stored within, and render! +```php +render('LineChart', 'Stocks', 'stocks-div'); ?> +``` + +Or if you have multiple charts, you can condense theh view code withL +```php +renderAll(); ?> +``` + + +# Changelog +The complete changelog can be found [here](https://github.com/kevinkhill/lavacharts/wiki/Changelog) + +## Stargazers over time + +[![Stargazers over time](https://starchart.cc/kevinkhill/lavacharts.svg)](https://starchart.cc/kevinkhill/lavacharts) diff --git a/vendor/khill/lavacharts/composer.json b/vendor/khill/lavacharts/composer.json new file mode 100644 index 0000000..e940cda --- /dev/null +++ b/vendor/khill/lavacharts/composer.json @@ -0,0 +1,78 @@ +{ + "name": "khill/lavacharts", + "description": "PHP wrapper library for the Google Chart API", + "keywords": [ + "charts", + "graphs", + "google", + "laravel", + "symfony" + ], + "homepage": "http://lavacharts.com", + "license": "MIT", + "authors": [ + { + "name": "Kevin Hill", + "email": "kevinkhill@gmail.com", + "role": "Creator" + } + ], + "support": { + "docs": "http://lavacharts.com", + "email": "kevinkhill@gmail.com", + "forum": "https://gitter.im/kevinkhill/lavacharts", + "wiki": "https://github.com/kevinkhill/lavacharts/wiki", + "source": "https://github.com/kevinkhill/lavacharts", + "issues": "https://github.com/kevinkhill/lavacharts/issues" + }, + "suggest": { + "khill/datatableplus": "Adds extra features to DataTables such as csv and laravel collection parsing." + }, + "require": { + "php": ">=5.4.0", + "nesbot/carbon": ">=1.14 <3.0" + }, + "autoload": { + "psr-4": { + "Khill\\Lavacharts\\": "src/" + } + }, + "require-dev": { + "phpunit/phpunit": "~4.8", + "mockery/mockery": "~0.9", + "squizlabs/php_codesniffer": "~2.5", + "satooshi/php-coveralls": "~1.0", + "codeclimate/php-test-reporter": "~0.3" + }, + "autoload-dev": { + "psr-4": { + "Khill\\Lavacharts\\Tests\\": "tests/" + } + }, + "scripts": { + "test": "phpunit -c phpunit.xml", + "cs": "phpcs --standard=PSR2 src tests", + "cbf" : "phpcbf --standard=PSR2 src tests", + "version": "php -r \"require(__DIR__.\\\"/src/Lavacharts.php\\\");echo \\Khill\\Lavacharts\\Lavacharts::VERSION;\"", + "lavajs:release" : "gulp --cwd javascript release && git add javascript/dist/lava.js && git commit -m 'Releasing new build of the lava.js module' && git push", + "lavajs:gulp" : "gulp --cwd javascript", + "lavajs:pull" : "git subtree --prefix=javascript pull lavajs master", + "lavajs:push" : "git subtree --prefix=javascript push lavajs master" + }, + "extra": { + "laravel": { + "providers": [ + "Khill\\Lavacharts\\Laravel\\LavachartsServiceProvider" + ], + "aliases": { + "Lava": "Khill\\Lavacharts\\Laravel\\LavachartsFacade" + } + } + }, + "config": { + "platform": { + "php": "5.4" + } + }, + "minimum-stability": "stable" +} diff --git a/vendor/khill/lavacharts/composer.lock b/vendor/khill/lavacharts/composer.lock new file mode 100644 index 0000000..7171392 --- /dev/null +++ b/vendor/khill/lavacharts/composer.lock @@ -0,0 +1,2097 @@ +{ + "_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#composer-lock-the-lock-file", + "This file is @generated automatically" + ], + "content-hash": "f9cf500e36992261845269a06db90d73", + "packages": [ + { + "name": "nesbot/carbon", + "version": "1.22.1", + "source": { + "type": "git", + "url": "https://github.com/briannesbitt/Carbon.git", + "reference": "7cdf42c0b1cc763ab7e4c33c47a24e27c66bfccc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/7cdf42c0b1cc763ab7e4c33c47a24e27c66bfccc", + "reference": "7cdf42c0b1cc763ab7e4c33c47a24e27c66bfccc", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "symfony/translation": "~2.6 || ~3.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~2", + "phpunit/phpunit": "~4.0 || ~5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.23-dev" + } + }, + "autoload": { + "psr-4": { + "Carbon\\": "src/Carbon/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "http://nesbot.com" + } + ], + "description": "A simple API extension for DateTime.", + "homepage": "http://carbon.nesbot.com", + "keywords": [ + "date", + "datetime", + "time" + ], + "time": "2017-01-16T07:55:07+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.6.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296", + "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6-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": "2017-10-11T12:05:26+00:00" + }, + { + "name": "symfony/translation", + "version": "v2.8.28", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "1248f84f702c4490adb526856e9356e52aa991be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/1248f84f702c4490adb526856e9356e52aa991be", + "reference": "1248f84f702c4490adb526856e9356e52aa991be", + "shasum": "" + }, + "require": { + "php": ">=5.3.9", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/config": "<2.7" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~2.8", + "symfony/intl": "~2.7.25|^2.8.18|~3.2.5", + "symfony/yaml": "~2.2|~3.0.0" + }, + "suggest": { + "psr/log": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8-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": "2017-10-01T21:00:16+00:00" + } + ], + "packages-dev": [ + { + "name": "codeclimate/php-test-reporter", + "version": "v0.4.4", + "source": { + "type": "git", + "url": "https://github.com/codeclimate/php-test-reporter.git", + "reference": "eab9ac233f23a4c12a12755793750f22fc46dd3e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/codeclimate/php-test-reporter/zipball/eab9ac233f23a4c12a12755793750f22fc46dd3e", + "reference": "eab9ac233f23a4c12a12755793750f22fc46dd3e", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "padraic/phar-updater": "^1.0", + "php": "^5.3 || ^7.0", + "psr/log": "^1.0", + "satooshi/php-coveralls": "^1.0", + "symfony/console": "^2.0 || ^3.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.0.0", + "phpunit/phpunit": "^4.8.31" + }, + "bin": [ + "composer/bin/test-reporter" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "CodeClimate\\PhpTestReporter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Code Climate", + "email": "hello@codeclimate.com", + "homepage": "https://codeclimate.com" + } + ], + "description": "PHP client for reporting test coverage to Code Climate", + "homepage": "https://github.com/codeclimate/php-test-reporter", + "keywords": [ + "codeclimate", + "coverage" + ], + "time": "2017-02-15T22:25:47+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", + "shasum": "" + }, + "require": { + "php": ">=5.3,<8.0-DEV" + }, + "require-dev": { + "athletic/athletic": "~0.1.8", + "ext-pdo": "*", + "ext-phar": "*", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.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://github.com/doctrine/instantiator", + "keywords": [ + "constructor", + "instantiate" + ], + "time": "2015-06-14T21:17:01+00:00" + }, + { + "name": "guzzle/guzzle", + "version": "v3.9.3", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle3.git", + "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle3/zipball/0645b70d953bc1c067bbc8d5bc53194706b628d9", + "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.3", + "symfony/event-dispatcher": "~2.1" + }, + "replace": { + "guzzle/batch": "self.version", + "guzzle/cache": "self.version", + "guzzle/common": "self.version", + "guzzle/http": "self.version", + "guzzle/inflection": "self.version", + "guzzle/iterator": "self.version", + "guzzle/log": "self.version", + "guzzle/parser": "self.version", + "guzzle/plugin": "self.version", + "guzzle/plugin-async": "self.version", + "guzzle/plugin-backoff": "self.version", + "guzzle/plugin-cache": "self.version", + "guzzle/plugin-cookie": "self.version", + "guzzle/plugin-curlauth": "self.version", + "guzzle/plugin-error-response": "self.version", + "guzzle/plugin-history": "self.version", + "guzzle/plugin-log": "self.version", + "guzzle/plugin-md5": "self.version", + "guzzle/plugin-mock": "self.version", + "guzzle/plugin-oauth": "self.version", + "guzzle/service": "self.version", + "guzzle/stream": "self.version" + }, + "require-dev": { + "doctrine/cache": "~1.3", + "monolog/monolog": "~1.0", + "phpunit/phpunit": "3.7.*", + "psr/log": "~1.0", + "symfony/class-loader": "~2.1", + "zendframework/zend-cache": "2.*,<2.3", + "zendframework/zend-log": "2.*,<2.3" + }, + "suggest": { + "guzzlehttp/guzzle": "Guzzle 5 has moved to a new package name. The package you have installed, Guzzle 3, is deprecated." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.9-dev" + } + }, + "autoload": { + "psr-0": { + "Guzzle": "src/", + "Guzzle\\Tests": "tests/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Guzzle Community", + "homepage": "https://github.com/guzzle/guzzle/contributors" + } + ], + "description": "PHP HTTP client. This library is deprecated in favor of https://packagist.org/packages/guzzlehttp/guzzle", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "abandoned": "guzzlehttp/guzzle", + "time": "2015-03-18T18:23:50+00:00" + }, + { + "name": "hamcrest/hamcrest-php", + "version": "v1.2.2", + "source": { + "type": "git", + "url": "https://github.com/hamcrest/hamcrest-php.git", + "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/b37020aa976fa52d3de9aa904aa2522dc518f79c", + "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "replace": { + "cordoval/hamcrest-php": "*", + "davedevelopment/hamcrest-php": "*", + "kodova/hamcrest-php": "*" + }, + "require-dev": { + "phpunit/php-file-iterator": "1.3.3", + "satooshi/php-coveralls": "dev-master" + }, + "type": "library", + "autoload": { + "classmap": [ + "hamcrest" + ], + "files": [ + "hamcrest/Hamcrest.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD" + ], + "description": "This is the PHP port of Hamcrest Matchers", + "keywords": [ + "test" + ], + "time": "2015-05-11T14:41:42+00:00" + }, + { + "name": "mockery/mockery", + "version": "0.9.9", + "source": { + "type": "git", + "url": "https://github.com/mockery/mockery.git", + "reference": "6fdb61243844dc924071d3404bb23994ea0b6856" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mockery/mockery/zipball/6fdb61243844dc924071d3404bb23994ea0b6856", + "reference": "6fdb61243844dc924071d3404bb23994ea0b6856", + "shasum": "" + }, + "require": { + "hamcrest/hamcrest-php": "~1.1", + "lib-pcre": ">=7.0", + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.9.x-dev" + } + }, + "autoload": { + "psr-0": { + "Mockery": "library/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "http://blog.astrumfutura.com" + }, + { + "name": "Dave Marshall", + "email": "dave.marshall@atstsolutions.co.uk", + "homepage": "http://davedevelopment.co.uk" + } + ], + "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with PHPUnit and can operate alongside phpunit-mock-objects without the World ending.", + "homepage": "http://github.com/padraic/mockery", + "keywords": [ + "BDD", + "TDD", + "library", + "mock", + "mock objects", + "mockery", + "stub", + "test", + "test double", + "testing" + ], + "time": "2017-02-28T12:52:32+00:00" + }, + { + "name": "mybuilder/phpunit-accelerator", + "version": "v1.1.1", + "source": { + "type": "git", + "url": "https://github.com/mybuilder/phpunit-accelerator.git", + "reference": "4c10c23c5559e7a5fa0d917997f798fc05a8009f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mybuilder/phpunit-accelerator/zipball/4c10c23c5559e7a5fa0d917997f798fc05a8009f", + "reference": "4c10c23c5559e7a5fa0d917997f798fc05a8009f", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "phpunit/phpunit": ">=3.7" + }, + "type": "library", + "autoload": { + "psr-4": { + "MyBuilder\\PhpunitAccelerator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Keyvan Akbary", + "email": "keyvan@mybuilder.com" + } + ], + "description": "PHPUnit accelerator", + "keywords": [ + "accelerator", + "fast", + "free", + "memory", + "phpunit", + "property" + ], + "time": "2015-12-29T13:04:25+00:00" + }, + { + "name": "padraic/humbug_get_contents", + "version": "1.0.4", + "source": { + "type": "git", + "url": "https://github.com/humbug/file_get_contents.git", + "reference": "66797199019d0cb4529cb8d29c6f0b4c5085b53a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/humbug/file_get_contents/zipball/66797199019d0cb4529cb8d29c6f0b4c5085b53a", + "reference": "66797199019d0cb4529cb8d29c6f0b4c5085b53a", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Humbug\\": "src/Humbug/" + }, + "files": [ + "src/function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "http://blog.astrumfutura.com" + } + ], + "description": "Secure wrapper for accessing HTTPS resources with file_get_contents for PHP 5.3+", + "homepage": "https://github.com/padraic/file_get_contents", + "keywords": [ + "download", + "file_get_contents", + "http", + "https", + "ssl", + "tls" + ], + "time": "2015-04-22T18:45:00+00:00" + }, + { + "name": "padraic/phar-updater", + "version": "1.0.4", + "source": { + "type": "git", + "url": "https://github.com/humbug/phar-updater.git", + "reference": "ac8802df2d1d03b7092b6f044a914f8d21592aae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/humbug/phar-updater/zipball/ac8802df2d1d03b7092b6f044a914f8d21592aae", + "reference": "ac8802df2d1d03b7092b6f044a914f8d21592aae", + "shasum": "" + }, + "require": { + "padraic/humbug_get_contents": "1.0.4", + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Humbug\\SelfUpdate\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "http://blog.astrumfutura.com" + } + ], + "description": "A thing to make PHAR self-updating easy and secure.", + "keywords": [ + "humbug", + "phar", + "self-update", + "update" + ], + "time": "2017-07-12T22:42:45+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "2.0.5", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e6a969a640b00d8daa3c66518b0405fb41ae0c4b", + "reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "suggest": { + "dflydev/markdown": "~1.0", + "erusev/parsedown": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "phpDocumentor": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "mike.vanriel@naenius.com" + } + ], + "time": "2016-01-25T08:17:30+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "v1.7.2", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "c9b8c6088acd19d769d4cc0ffa60a9fe34344bd6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/c9b8c6088acd19d769d4cc0ffa60a9fe34344bd6", + "reference": "c9b8c6088acd19d769d4cc0ffa60a9fe34344bd6", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "php": "^5.3|^7.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", + "sebastian/comparator": "^1.1|^2.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0" + }, + "require-dev": { + "phpspec/phpspec": "^2.5|^3.2", + "phpunit/phpunit": "^4.8 || ^5.6.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.7.x-dev" + } + }, + "autoload": { + "psr-0": { + "Prophecy\\": "src/" + } + }, + "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": "2017-09-04T11:05:03+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "2.2.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979", + "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "phpunit/php-file-iterator": "~1.3", + "phpunit/php-text-template": "~1.2", + "phpunit/php-token-stream": "~1.3", + "sebastian/environment": "^1.3.2", + "sebastian/version": "~1.0" + }, + "require-dev": { + "ext-xdebug": ">=2.1.4", + "phpunit/phpunit": "~4" + }, + "suggest": { + "ext-dom": "*", + "ext-xdebug": ">=2.2.1", + "ext-xmlwriter": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.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": "2015-10-06T15:47:00+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "1.4.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5", + "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.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": "2016-10-03T07:40:28+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": "1.0.9", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2017-02-26T11:10:40+00:00" + }, + { + "name": "phpunit/php-token-stream", + "version": "1.4.11", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e03f8f67534427a787e21a385a67ec3ca6978ea7", + "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-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": "2017-02-27T10:12:30+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "4.8.36", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "46023de9a91eec7dfb06cc56cb4e260017298517" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/46023de9a91eec7dfb06cc56cb4e260017298517", + "reference": "46023de9a91eec7dfb06cc56cb4e260017298517", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=5.3.3", + "phpspec/prophecy": "^1.3.1", + "phpunit/php-code-coverage": "~2.1", + "phpunit/php-file-iterator": "~1.4", + "phpunit/php-text-template": "~1.2", + "phpunit/php-timer": "^1.0.6", + "phpunit/phpunit-mock-objects": "~2.3", + "sebastian/comparator": "~1.2.2", + "sebastian/diff": "~1.2", + "sebastian/environment": "~1.3", + "sebastian/exporter": "~1.2", + "sebastian/global-state": "~1.0", + "sebastian/version": "~1.0", + "symfony/yaml": "~2.1|~3.0" + }, + "suggest": { + "phpunit/php-invoker": "~1.1" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.8.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": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "time": "2017-06-21T08:07:12+00:00" + }, + { + "name": "phpunit/phpunit-mock-objects", + "version": "2.3.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", + "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983", + "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "php": ">=5.3.3", + "phpunit/php-text-template": "~1.2", + "sebastian/exporter": "~1.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" + }, + "suggest": { + "ext-soap": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Mock Object library for PHPUnit", + "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "keywords": [ + "mock", + "xunit" + ], + "time": "2015-10-02T06:51:40+00:00" + }, + { + "name": "psr/log", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.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": "2016-10-10T12:19:37+00:00" + }, + { + "name": "satooshi/php-coveralls", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/satooshi/php-coveralls.git", + "reference": "da51d304fe8622bf9a6da39a8446e7afd432115c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/satooshi/php-coveralls/zipball/da51d304fe8622bf9a6da39a8446e7afd432115c", + "reference": "da51d304fe8622bf9a6da39a8446e7afd432115c", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-simplexml": "*", + "guzzle/guzzle": "^2.8|^3.0", + "php": ">=5.3.3", + "psr/log": "^1.0", + "symfony/config": "^2.1|^3.0", + "symfony/console": "^2.1|^3.0", + "symfony/stopwatch": "^2.0|^3.0", + "symfony/yaml": "^2.0|^3.0" + }, + "suggest": { + "symfony/http-kernel": "Allows Symfony integration" + }, + "bin": [ + "bin/coveralls" + ], + "type": "library", + "autoload": { + "psr-4": { + "Satooshi\\": "src/Satooshi/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kitamura Satoshi", + "email": "with.no.parachute@gmail.com", + "homepage": "https://www.facebook.com/satooshi.jp" + } + ], + "description": "PHP client library for Coveralls API", + "homepage": "https://github.com/satooshi/php-coveralls", + "keywords": [ + "ci", + "coverage", + "github", + "test" + ], + "time": "2016-01-20T17:35:46+00:00" + }, + { + "name": "sebastian/comparator", + "version": "1.2.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "sebastian/diff": "~1.2", + "sebastian/exporter": "~1.2 || ~2.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-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": "http://www.github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "time": "2017-01-29T09:50:25+00:00" + }, + { + "name": "sebastian/diff", + "version": "1.4.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-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" + ], + "time": "2017-05-22T07:24:03+00:00" + }, + { + "name": "sebastian/environment", + "version": "1.3.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea", + "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8 || ^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-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": "2016-08-18T05:49:44+00:00" + }, + { + "name": "sebastian/exporter", + "version": "1.2.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4", + "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "sebastian/recursion-context": "~1.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "~4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-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" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "time": "2016-06-17T09:04:28+00:00" + }, + { + "name": "sebastian/global-state", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", + "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.2" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.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": "2015-10-12T03:26:01+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7", + "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" + }, + "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": "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": "2016-10-03T07:41:43+00:00" + }, + { + "name": "sebastian/version", + "version": "1.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", + "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", + "shasum": "" + }, + "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": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "time": "2015-06-21T13:59:46+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "2.9.1", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dcbed1074f8244661eecddfc2a675430d8d33f62", + "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.1.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "bin": [ + "scripts/phpcs", + "scripts/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "classmap": [ + "CodeSniffer.php", + "CodeSniffer/CLI.php", + "CodeSniffer/Exception.php", + "CodeSniffer/File.php", + "CodeSniffer/Fixer.php", + "CodeSniffer/Report.php", + "CodeSniffer/Reporting.php", + "CodeSniffer/Sniff.php", + "CodeSniffer/Tokens.php", + "CodeSniffer/Reports/", + "CodeSniffer/Tokenizers/", + "CodeSniffer/DocGenerators/", + "CodeSniffer/Standards/AbstractPatternSniff.php", + "CodeSniffer/Standards/AbstractScopeSniff.php", + "CodeSniffer/Standards/AbstractVariableSniff.php", + "CodeSniffer/Standards/IncorrectPatternException.php", + "CodeSniffer/Standards/Generic/Sniffs/", + "CodeSniffer/Standards/MySource/Sniffs/", + "CodeSniffer/Standards/PEAR/Sniffs/", + "CodeSniffer/Standards/PSR1/Sniffs/", + "CodeSniffer/Standards/PSR2/Sniffs/", + "CodeSniffer/Standards/Squiz/Sniffs/", + "CodeSniffer/Standards/Zend/Sniffs/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "http://www.squizlabs.com/php-codesniffer", + "keywords": [ + "phpcs", + "standards" + ], + "time": "2017-05-22T02:43:20+00:00" + }, + { + "name": "symfony/config", + "version": "v2.8.28", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "1dbeaa8e2db4b29159265867efff075ad961558c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/1dbeaa8e2db4b29159265867efff075ad961558c", + "reference": "1dbeaa8e2db4b29159265867efff075ad961558c", + "shasum": "" + }, + "require": { + "php": ">=5.3.9", + "symfony/filesystem": "~2.3|~3.0.0" + }, + "require-dev": { + "symfony/yaml": "~2.7|~3.0.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8-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": "2017-10-04T18:56:36+00:00" + }, + { + "name": "symfony/console", + "version": "v2.8.28", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "f81549d2c5fdee8d711c9ab3c7e7362353ea5853" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/f81549d2c5fdee8d711c9ab3c7e7362353ea5853", + "reference": "f81549d2c5fdee8d711c9ab3c7e7362353ea5853", + "shasum": "" + }, + "require": { + "php": ">=5.3.9", + "symfony/debug": "^2.7.2|~3.0.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/event-dispatcher": "~2.1|~3.0.0", + "symfony/process": "~2.1|~3.0.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8-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": "2017-10-01T21:00:16+00:00" + }, + { + "name": "symfony/debug", + "version": "v2.8.28", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "eaaec993ca5e8067e204b2ee653cdd142961f33e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/eaaec993ca5e8067e204b2ee653cdd142961f33e", + "reference": "eaaec993ca5e8067e204b2ee653cdd142961f33e", + "shasum": "" + }, + "require": { + "php": ">=5.3.9", + "psr/log": "~1.0" + }, + "conflict": { + "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" + }, + "require-dev": { + "symfony/class-loader": "~2.2|~3.0.0", + "symfony/http-kernel": "~2.3.24|~2.5.9|^2.6.2|~3.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "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 Debug Component", + "homepage": "https://symfony.com", + "time": "2017-10-01T21:00:16+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v2.8.28", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "7fe089232554357efb8d4af65ce209fc6e5a2186" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/7fe089232554357efb8d4af65ce209fc6e5a2186", + "reference": "7fe089232554357efb8d4af65ce209fc6e5a2186", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^2.0.5|~3.0.0", + "symfony/dependency-injection": "~2.6|~3.0.0", + "symfony/expression-language": "~2.6|~3.0.0", + "symfony/stopwatch": "~2.3|~3.0.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8-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": "2017-10-01T21:00:16+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v2.8.28", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "5e3af878f144089faddd4060a48cadae4fc44dee" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/5e3af878f144089faddd4060a48cadae4fc44dee", + "reference": "5e3af878f144089faddd4060a48cadae4fc44dee", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8-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": "2017-10-02T08:46:46+00:00" + }, + { + "name": "symfony/stopwatch", + "version": "v2.8.28", + "source": { + "type": "git", + "url": "https://github.com/symfony/stopwatch.git", + "reference": "28ee62ea4736431ca817cdaebcb005663e9cd1cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/28ee62ea4736431ca817cdaebcb005663e9cd1cb", + "reference": "28ee62ea4736431ca817cdaebcb005663e9cd1cb", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Stopwatch\\": "" + }, + "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 Stopwatch Component", + "homepage": "https://symfony.com", + "time": "2017-10-01T21:00:16+00:00" + }, + { + "name": "symfony/yaml", + "version": "v2.8.28", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "842fb6df22180244b4c65935ce1a88d324e5ff9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/842fb6df22180244b4c65935ce1a88d324e5ff9e", + "reference": "842fb6df22180244b4c65935ce1a88d324e5ff9e", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8-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": "2017-10-05T14:38:30+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=5.4.0" + }, + "platform-dev": [], + "platform-overrides": { + "php": "5.4" + } +} diff --git a/vendor/khill/lavacharts/javascript/dist/lava.js b/vendor/khill/lavacharts/javascript/dist/lava.js new file mode 100644 index 0000000..e333802 --- /dev/null +++ b/vendor/khill/lavacharts/javascript/dist/lava.js @@ -0,0 +1,4 @@ +!function t(n,e,r){function i(u,a){if(!e[u]){if(!n[u]){var f="function"==typeof require&&require;if(!a&&f)return f(u,!0);if(o)return o(u,!0);var c=new Error("Cannot find module '"+u+"'");throw c.code="MODULE_NOT_FOUND",c}var s=e[u]={exports:{}};n[u][0].call(s.exports,function(t){var e=n[u][1][t];return i(e?e:t)},s,s.exports,t,n,e,r)}return e[u].exports}for(var o="function"==typeof require&&require,u=0;u0&&this._events[t].length>e&&(this._events[t].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[t].length),"function"==typeof console.trace&&console.trace())),this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(t,n){function e(){this.removeListener(t,e),r||(r=!0,n.apply(this,arguments))}if(!i(n))throw TypeError("listener must be a function");var r=!1;return e.listener=n,this.on(t,e),this},r.prototype.removeListener=function(t,n){var e,r,o,a;if(!i(n))throw TypeError("listener must be a function");if(!this._events||!this._events[t])return this;if(e=this._events[t],o=e.length,r=-1,e===n||i(e.listener)&&e.listener===n)delete this._events[t],this._events.removeListener&&this.emit("removeListener",t,n);else if(u(e)){for(a=o;a-- >0;)if(e[a]===n||e[a].listener&&e[a].listener===n){r=a;break}if(r<0)return this;1===e.length?(e.length=0,delete this._events[t]):e.splice(r,1),this._events.removeListener&&this.emit("removeListener",t,n)}return this},r.prototype.removeAllListeners=function(t){var n,e;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(n in this._events)"removeListener"!==n&&this.removeAllListeners(n);return this.removeAllListeners("removeListener"),this._events={},this}if(e=this._events[t],i(e))this.removeListener(t,e);else if(e)for(;e.length;)this.removeListener(t,e[e.length-1]);return delete this._events[t],this},r.prototype.listeners=function(t){var n;return n=this._events&&this._events[t]?i(this._events[t])?[this._events[t]]:this._events[t].slice():[]},r.prototype.listenerCount=function(t){if(this._events){var n=this._events[t];if(i(n))return 1;if(n)return n.length}return 0},r.listenerCount=function(t,n){return t.listenerCount(n)}},{}],4:[function(t,n,e){(function(e){var r,i="undefined"!=typeof e?e:"undefined"!=typeof window?window:{},o=t("min-document");"undefined"!=typeof document?r=document:(r=i["__GLOBAL_DOCUMENT_CACHE@4"],r||(r=i["__GLOBAL_DOCUMENT_CACHE@4"]=o)),n.exports=r}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"min-document":1}],5:[function(t,n,e){(function(t){(function(){function r(t,n){return t.set(n[0],n[1]),t}function i(t,n){return t.add(n),t}function o(t,n,e){switch(e.length){case 0:return t.call(n);case 1:return t.call(n,e[0]);case 2:return t.call(n,e[0],e[1]);case 3:return t.call(n,e[0],e[1],e[2])}return t.apply(n,e)}function u(t,n,e,r){for(var i=-1,o=null==t?0:t.length;++i-1}function p(t,n,e){for(var r=-1,i=null==t?0:t.length;++r-1;);return e}function U(t,n){for(var e=t.length;e--&&x(n,t[e],0)>-1;);return e}function B(t,n){for(var e=t.length,r=0;e--;)t[e]===n&&++r;return r}function F(t){return"\\"+tr[t]}function M(t,n){return null==t?et:t[n]}function P(t){return Ge.test(t)}function W(t){return Qe.test(t)}function $(t){for(var n,e=[];!(n=t.next()).done;)e.push(n.value);return e}function q(t){var n=-1,e=Array(t.size);return t.forEach(function(t,r){e[++n]=[r,t]}),e}function G(t,n){return function(e){return t(n(e))}}function Q(t,n){for(var e=-1,r=t.length,i=0,o=[];++e>>1,Ft=[["ary",xt],["bind",dt],["bindKey",yt],["curry",gt],["curryRight",mt],["flip",kt],["partial",wt],["partialRight",bt],["rearg",jt]],Mt="[object Arguments]",Pt="[object Array]",Wt="[object AsyncFunction]",$t="[object Boolean]",qt="[object Date]",Gt="[object DOMException]",Qt="[object Error]",Ht="[object Function]",Jt="[object GeneratorFunction]",Zt="[object Map]",Kt="[object Number]",Vt="[object Null]",Yt="[object Object]",Xt="[object Promise]",tn="[object Proxy]",nn="[object RegExp]",en="[object Set]",rn="[object String]",on="[object Symbol]",un="[object Undefined]",an="[object WeakMap]",fn="[object WeakSet]",cn="[object ArrayBuffer]",sn="[object DataView]",ln="[object Float32Array]",pn="[object Float64Array]",hn="[object Int8Array]",vn="[object Int16Array]",dn="[object Int32Array]",yn="[object Uint8Array]",_n="[object Uint8ClampedArray]",gn="[object Uint16Array]",mn="[object Uint32Array]",wn=/\b__p \+= '';/g,bn=/\b(__p \+=) '' \+/g,xn=/(__e\(.*?\)|\b__t\)) \+\n'';/g,jn=/&(?:amp|lt|gt|quot|#39);/g,kn=/[&<>"']/g,En=RegExp(jn.source),On=RegExp(kn.source),An=/<%-([\s\S]+?)%>/g,Ln=/<%([\s\S]+?)%>/g,Cn=/<%=([\s\S]+?)%>/g,Rn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Sn=/^\w*$/,Tn=/^\./,In=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,zn=/[\\^$.*+?()[\]{}|]/g,Dn=RegExp(zn.source),Nn=/^\s+|\s+$/g,Un=/^\s+/,Bn=/\s+$/,Fn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Mn=/\{\n\/\* \[wrapped with (.+)\] \*/,Pn=/,? & /,Wn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,$n=/\\(\\)?/g,qn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Gn=/\w*$/,Qn=/^[-+]0x[0-9a-f]+$/i,Hn=/^0b[01]+$/i,Jn=/^\[object .+?Constructor\]$/,Zn=/^0o[0-7]+$/i,Kn=/^(?:0|[1-9]\d*)$/,Vn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Yn=/($^)/,Xn=/['\n\r\u2028\u2029\\]/g,te="\\ud800-\\udfff",ne="\\u0300-\\u036f",ee="\\ufe20-\\ufe2f",re="\\u20d0-\\u20ff",ie=ne+ee+re,oe="\\u2700-\\u27bf",ue="a-z\\xdf-\\xf6\\xf8-\\xff",ae="\\xac\\xb1\\xd7\\xf7",fe="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",ce="\\u2000-\\u206f",se=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",le="A-Z\\xc0-\\xd6\\xd8-\\xde",pe="\\ufe0e\\ufe0f",he=ae+fe+ce+se,ve="['’]",de="["+te+"]",ye="["+he+"]",_e="["+ie+"]",ge="\\d+",me="["+oe+"]",we="["+ue+"]",be="[^"+te+he+ge+oe+ue+le+"]",xe="\\ud83c[\\udffb-\\udfff]",je="(?:"+_e+"|"+xe+")",ke="[^"+te+"]",Ee="(?:\\ud83c[\\udde6-\\uddff]){2}",Oe="[\\ud800-\\udbff][\\udc00-\\udfff]",Ae="["+le+"]",Le="\\u200d",Ce="(?:"+we+"|"+be+")",Re="(?:"+Ae+"|"+be+")",Se="(?:"+ve+"(?:d|ll|m|re|s|t|ve))?",Te="(?:"+ve+"(?:D|LL|M|RE|S|T|VE))?",Ie=je+"?",ze="["+pe+"]?",De="(?:"+Le+"(?:"+[ke,Ee,Oe].join("|")+")"+ze+Ie+")*",Ne="\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)",Ue="\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)",Be=ze+Ie+De,Fe="(?:"+[me,Ee,Oe].join("|")+")"+Be,Me="(?:"+[ke+_e+"?",_e,Ee,Oe,de].join("|")+")",Pe=RegExp(ve,"g"),We=RegExp(_e,"g"),$e=RegExp(xe+"(?="+xe+")|"+Me+Be,"g"),qe=RegExp([Ae+"?"+we+"+"+Se+"(?="+[ye,Ae,"$"].join("|")+")",Re+"+"+Te+"(?="+[ye,Ae+Ce,"$"].join("|")+")",Ae+"?"+Ce+"+"+Se,Ae+"+"+Te,Ue,Ne,ge,Fe].join("|"),"g"),Ge=RegExp("["+Le+te+ie+pe+"]"),Qe=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,He=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Je=-1,Ze={};Ze[ln]=Ze[pn]=Ze[hn]=Ze[vn]=Ze[dn]=Ze[yn]=Ze[_n]=Ze[gn]=Ze[mn]=!0,Ze[Mt]=Ze[Pt]=Ze[cn]=Ze[$t]=Ze[sn]=Ze[qt]=Ze[Qt]=Ze[Ht]=Ze[Zt]=Ze[Kt]=Ze[Yt]=Ze[nn]=Ze[en]=Ze[rn]=Ze[an]=!1;var Ke={};Ke[Mt]=Ke[Pt]=Ke[cn]=Ke[sn]=Ke[$t]=Ke[qt]=Ke[ln]=Ke[pn]=Ke[hn]=Ke[vn]=Ke[dn]=Ke[Zt]=Ke[Kt]=Ke[Yt]=Ke[nn]=Ke[en]=Ke[rn]=Ke[on]=Ke[yn]=Ke[_n]=Ke[gn]=Ke[mn]=!0,Ke[Qt]=Ke[Ht]=Ke[an]=!1;var Ve={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"},Ye={"&":"&","<":"<",">":">",'"':""","'":"'"},Xe={"&":"&","<":"<",">":">",""":'"',"'":"'"},tr={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},nr=parseFloat,er=parseInt,rr="object"==typeof t&&t&&t.Object===Object&&t,ir="object"==typeof self&&self&&self.Object===Object&&self,or=rr||ir||Function("return this")(),ur="object"==typeof e&&e&&!e.nodeType&&e,ar=ur&&"object"==typeof n&&n&&!n.nodeType&&n,fr=ar&&ar.exports===ur,cr=fr&&rr.process,sr=function(){try{return cr&&cr.binding&&cr.binding("util")}catch(t){}}(),lr=sr&&sr.isArrayBuffer,pr=sr&&sr.isDate,hr=sr&&sr.isMap,vr=sr&&sr.isRegExp,dr=sr&&sr.isSet,yr=sr&&sr.isTypedArray,_r=O("length"),gr=A(Ve),mr=A(Ye),wr=A(Xe),br=function jr(t){function n(t){if(sf(t)&&!bp(t)&&!(t instanceof A)){if(t instanceof g)return t;if(bs.call(t,"__wrapped__"))return uu(t)}return new g(t)}function e(){}function g(t,n){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!n,this.__index__=0,this.__values__=et}function A(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Nt,this.__views__=[]}function Z(){var t=new A(this.__wrapped__);return t.__actions__=Mi(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=Mi(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=Mi(this.__views__),t}function X(){if(this.__filtered__){var t=new A(this);t.__dir__=-1,t.__filtered__=!0}else t=this.clone(),t.__dir__*=-1;return t}function tt(){var t=this.__wrapped__.value(),n=this.__dir__,e=bp(t),r=n<0,i=e?t.length:0,o=Ro(0,i,this.__views__),u=o.start,a=o.end,f=a-u,c=r?a:u-1,s=this.__iteratees__,l=s.length,p=0,h=Vs(f,this.__takeCount__);if(!e||!r&&i==f&&h==f)return bi(t,this.__actions__);var v=[];t:for(;f--&&p-1}function se(t,n){var e=this.__data__,r=Te(e,t);return r<0?(++this.size,e.push([t,n])):e[r][1]=n,this}function le(t){var n=-1,e=null==t?0:t.length;for(this.clear();++n=n?t:n)),t}function Fe(t,n,e,r,i,o){var u,f=n&st,c=n<,s=n&pt;if(e&&(u=i?e(t,r,i,o):e(t)),u!==et)return u;if(!cf(t))return t;var l=bp(t);if(l){if(u=Io(t),!f)return Mi(t,u)}else{var p=Sl(t),h=p==Ht||p==Jt;if(jp(t))return Li(t,f);if(p==Yt||p==Mt||h&&!i){if(u=c||h?{}:zo(t),!f)return c?$i(t,De(u,t)):Wi(t,ze(u,t))}else{if(!Ke[p])return i?t:{};u=Do(t,p,Fe,f)}}o||(o=new we);var v=o.get(t);if(v)return v;o.set(t,u);var d=s?c?xo:bo:c?Qf:Gf,y=l?et:d(t);return a(y||t,function(r,i){y&&(i=r,r=t[i]),Se(u,i,Fe(r,n,e,i,t,o))}),u}function Me(t){var n=Gf(t);return function(e){return $e(e,t,n)}}function $e(t,n,e){var r=e.length;if(null==t)return!r;for(t=ps(t);r--;){var i=e[r],o=n[i],u=t[i];if(u===et&&!(i in t)||!o(u))return!1}return!0}function qe(t,n,e){if("function"!=typeof t)throw new ds(ut);return zl(function(){t.apply(et,e)},n)}function Ge(t,n,e,r){var i=-1,o=l,u=!0,a=t.length,f=[],c=n.length;if(!a)return f;e&&(n=h(n,I(e))),r?(o=p,u=!1):n.length>=it&&(o=D,u=!1,n=new _e(n));t:for(;++ii?0:i+e),r=r===et||r>i?i:Af(r),r<0&&(r+=i),r=e>r?0:Lf(r);e0&&e(a)?n>1?tr(a,n-1,e,r,i):v(i,a):r||(i[i.length]=a)}return i}function rr(t,n){return t&&bl(t,n,Gf)}function ir(t,n){return t&&xl(t,n,Gf)}function ur(t,n){return s(n,function(n){return uf(t[n])})}function ar(t,n){n=Oi(n,t);for(var e=0,r=n.length;null!=t&&en}function br(t,n){return null!=t&&bs.call(t,n)}function kr(t,n){return null!=t&&n in ps(t)}function Er(t,n,e){return t>=Vs(n,e)&&t=120&&s.length>=120)?new _e(u&&s):et}s=t[0];var v=-1,d=a[0];t:for(;++v-1;)a!==t&&Ds.call(a,f,1),Ds.call(t,f,1);return t}function ni(t,n){for(var e=t?n.length:0,r=e-1;e--;){var i=n[e];if(e==r||i!==o){var o=i;Bo(i)?Ds.call(t,i,1):gi(t,i)}}return t}function ei(t,n){return t+qs(tl()*(n-t+1))}function ri(t,n,e,r){for(var i=-1,o=Ks($s((n-t)/(e||1)),0),u=as(o);o--;)u[r?o:++i]=t,t+=e;return u}function ii(t,n){var e="";if(!t||n<1||n>It)return e;do n%2&&(e+=t),n=qs(n/2),n&&(t+=t);while(n);return e}function oi(t,n){return Dl(Vo(t,n,Dc),t+"")}function ui(t){return Ae(ic(t))}function ai(t,n){var e=ic(t);return eu(e,Be(n,0,e.length))}function fi(t,n,e,r){if(!cf(t))return t;n=Oi(n,t);for(var i=-1,o=n.length,u=o-1,a=t;null!=a&&++ii?0:i+n),e=e>i?i:e,e<0&&(e+=i),i=n>e?0:e-n>>>0,n>>>=0;for(var o=as(i);++r>>1,u=t[o];null!==u&&!bf(u)&&(e?u<=n:u=it){var c=n?null:Al(t);if(c)return H(c);u=!1,i=D,f=new _e}else f=n?[]:a;t:for(;++r=r?t:si(t,n,e)}function Li(t,n){if(n)return t.slice();var e=t.length,r=Ss?Ss(e):new t.constructor(e);return t.copy(r),r}function Ci(t){var n=new t.constructor(t.byteLength);return new Rs(n).set(new Rs(t)),n}function Ri(t,n){var e=n?Ci(t.buffer):t.buffer;return new t.constructor(e,t.byteOffset,t.byteLength)}function Si(t,n,e){var i=n?e(q(t),st):q(t);return d(i,r,new t.constructor)}function Ti(t){var n=new t.constructor(t.source,Gn.exec(t));return n.lastIndex=t.lastIndex,n}function Ii(t,n,e){var r=n?e(H(t),st):H(t);return d(r,i,new t.constructor)}function zi(t){return yl?ps(yl.call(t)):{}}function Di(t,n){var e=n?Ci(t.buffer):t.buffer;return new t.constructor(e,t.byteOffset,t.length)}function Ni(t,n){if(t!==n){var e=t!==et,r=null===t,i=t===t,o=bf(t),u=n!==et,a=null===n,f=n===n,c=bf(n);if(!a&&!c&&!o&&t>n||o&&u&&f&&!a&&!c||r&&u&&f||!e&&f||!i)return 1;if(!r&&!o&&!c&&t=a)return f;var c=e[r];return f*("desc"==c?-1:1)}}return t.index-n.index}function Bi(t,n,e,r){for(var i=-1,o=t.length,u=e.length,a=-1,f=n.length,c=Ks(o-u,0),s=as(f+c),l=!r;++a1?e[i-1]:et,u=i>2?e[2]:et;for(o=t.length>3&&"function"==typeof o?(i--,o):et,u&&Fo(e[0],e[1],u)&&(o=i<3?et:o,i=1),n=ps(n);++r-1?i[o?n[u]:u]:et; +}}function to(t){return wo(function(n){var e=n.length,r=e,i=g.prototype.thru;for(t&&n.reverse();r--;){var o=n[r];if("function"!=typeof o)throw new ds(ut);if(i&&!u&&"wrapper"==jo(o))var u=new g([],(!0))}for(r=u?r:e;++r1&&g.reverse(),l&&f<_&&(g.length=f),this&&this!==or&&this instanceof s&&(k=y||Vi(k)),k.apply(j,g)}var l=n&xt,p=n&dt,h=n&yt,v=n&(gt|mt),d=n&kt,y=h?et:Vi(t);return s}function eo(t,n){return function(e,r){return Ar(e,t,n(r),{})}}function ro(t,n){return function(e,r){var i;if(e===et&&r===et)return n;if(e!==et&&(i=e),r!==et){if(i===et)return r;"string"==typeof e||"string"==typeof r?(e=yi(e),r=yi(r)):(e=di(e),r=di(r)),i=t(e,r)}return i}}function io(t){return wo(function(n){return n=h(n,I(Eo())),oi(function(e){var r=this;return t(n,function(t){return o(t,r,e)})})})}function oo(t,n){n=n===et?" ":yi(n);var e=n.length;if(e<2)return e?ii(n,t):n;var r=ii(n,$s(t/V(n)));return P(n)?Ai(Y(r),0,t).join(""):r.slice(0,t)}function uo(t,n,e,r){function i(){for(var n=-1,f=arguments.length,c=-1,s=r.length,l=as(s+f),p=this&&this!==or&&this instanceof i?a:t;++ca))return!1;var c=o.get(t);if(c&&o.get(n))return c==n;var s=-1,l=!0,p=e&vt?new _e:et;for(o.set(t,n),o.set(n,t);++s1?"& ":"")+n[r],n=n.join(e>2?", ":" "),t.replace(Fn,"{\n/* [wrapped with "+n+"] */\n")}function Uo(t){return bp(t)||wp(t)||!!(Ns&&t&&t[Ns])}function Bo(t,n){return n=null==n?It:n,!!n&&("number"==typeof t||Kn.test(t))&&t>-1&&t%1==0&&t0){if(++n>=At)return arguments[0]}else n=0;return t.apply(et,arguments)}}function eu(t,n){var e=-1,r=t.length,i=r-1;for(n=n===et?r:n;++e=this.__values__.length,n=t?et:this.__values__[this.__index__++];return{done:t,value:n}}function ua(){return this}function aa(t){for(var n,r=this;r instanceof e;){var i=uu(r);i.__index__=0,i.__values__=et,n?o.__wrapped__=i:n=i;var o=i;r=r.__wrapped__}return o.__wrapped__=t,n}function fa(){var t=this.__wrapped__;if(t instanceof A){var n=t;return this.__actions__.length&&(n=new A(this)),n=n.reverse(),n.__actions__.push({func:ea,args:[Tu],thisArg:et}),new g(n,this.__chain__)}return this.thru(Tu)}function ca(){return bi(this.__wrapped__,this.__actions__)}function sa(t,n,e){var r=bp(t)?c:Qe;return e&&Fo(t,n,e)&&(n=et),r(t,Eo(n,3))}function la(t,n){var e=bp(t)?s:Xe;return e(t,Eo(n,3))}function pa(t,n){return tr(ga(t,n),1)}function ha(t,n){return tr(ga(t,n),Tt)}function va(t,n,e){return e=e===et?1:Af(e),tr(ga(t,n),e)}function da(t,n){var e=bp(t)?a:ml;return e(t,Eo(n,3))}function ya(t,n){var e=bp(t)?f:wl;return e(t,Eo(n,3))}function _a(t,n,e,r){t=Ka(t)?t:ic(t),e=e&&!r?Af(e):0;var i=t.length;return e<0&&(e=Ks(i+e,0)),wf(t)?e<=i&&t.indexOf(n,e)>-1:!!i&&x(t,n,e)>-1}function ga(t,n){var e=bp(t)?h:qr;return e(t,Eo(n,3))}function ma(t,n,e,r){return null==t?[]:(bp(n)||(n=null==n?[]:[n]),e=r?et:e,bp(e)||(e=null==e?[]:[e]),Kr(t,n,e))}function wa(t,n,e){var r=bp(t)?d:L,i=arguments.length<3;return r(t,Eo(n,4),e,i,ml)}function ba(t,n,e){var r=bp(t)?y:L,i=arguments.length<3;return r(t,Eo(n,4),e,i,wl)}function xa(t,n){var e=bp(t)?s:Xe;return e(t,Na(Eo(n,3)))}function ja(t){var n=bp(t)?Ae:ui;return n(t)}function ka(t,n,e){n=(e?Fo(t,n,e):n===et)?1:Af(n);var r=bp(t)?Le:ai;return r(t,n)}function Ea(t){var n=bp(t)?Ce:ci;return n(t)}function Oa(t){if(null==t)return 0;if(Ka(t))return wf(t)?V(t):t.length;var n=Sl(t);return n==Zt||n==en?t.size:Pr(t).length}function Aa(t,n,e){var r=bp(t)?_:li;return e&&Fo(t,n,e)&&(n=et),r(t,Eo(n,3))}function La(t,n){if("function"!=typeof n)throw new ds(ut);return t=Af(t),function(){if(--t<1)return n.apply(this,arguments)}}function Ca(t,n,e){return n=e?et:n,n=t&&null==n?t.length:n,po(t,xt,et,et,et,et,n)}function Ra(t,n){var e;if("function"!=typeof n)throw new ds(ut);return t=Af(t),function(){return--t>0&&(e=n.apply(this,arguments)),t<=1&&(n=et),e}}function Sa(t,n,e){n=e?et:n;var r=po(t,gt,et,et,et,et,et,n);return r.placeholder=Sa.placeholder,r}function Ta(t,n,e){n=e?et:n;var r=po(t,mt,et,et,et,et,et,n);return r.placeholder=Ta.placeholder,r}function Ia(t,n,e){function r(n){var e=p,r=h;return p=h=et,g=n,d=t.apply(r,e)}function i(t){return g=t,y=zl(a,n),m?r(t):d}function o(t){var e=t-_,r=t-g,i=n-e;return w?Vs(i,v-r):i}function u(t){var e=t-_,r=t-g;return _===et||e>=n||e<0||w&&r>=v}function a(){var t=cp();return u(t)?f(t):void(y=zl(a,o(t)))}function f(t){return y=et,b&&p?r(t):(p=h=et,d)}function c(){y!==et&&Ol(y),g=0,p=_=h=y=et}function s(){return y===et?d:f(cp())}function l(){var t=cp(),e=u(t);if(p=arguments,h=this,_=t,e){if(y===et)return i(_);if(w)return y=zl(a,n),r(_)}return y===et&&(y=zl(a,n)),d}var p,h,v,d,y,_,g=0,m=!1,w=!1,b=!0;if("function"!=typeof t)throw new ds(ut);return n=Cf(n)||0,cf(e)&&(m=!!e.leading,w="maxWait"in e,v=w?Ks(Cf(e.maxWait)||0,n):v,b="trailing"in e?!!e.trailing:b),l.cancel=c,l.flush=s,l}function za(t){return po(t,kt)}function Da(t,n){if("function"!=typeof t||null!=n&&"function"!=typeof n)throw new ds(ut);var e=function(){var r=arguments,i=n?n.apply(this,r):r[0],o=e.cache;if(o.has(i))return o.get(i);var u=t.apply(this,r);return e.cache=o.set(i,u)||o,u};return e.cache=new(Da.Cache||le),e}function Na(t){if("function"!=typeof t)throw new ds(ut);return function(){var n=arguments;switch(n.length){case 0:return!t.call(this);case 1:return!t.call(this,n[0]);case 2:return!t.call(this,n[0],n[1]);case 3:return!t.call(this,n[0],n[1],n[2])}return!t.apply(this,n)}}function Ua(t){return Ra(2,t)}function Ba(t,n){if("function"!=typeof t)throw new ds(ut);return n=n===et?n:Af(n),oi(t,n)}function Fa(t,n){if("function"!=typeof t)throw new ds(ut);return n=null==n?0:Ks(Af(n),0),oi(function(e){var r=e[n],i=Ai(e,0,n);return r&&v(i,r),o(t,this,i)})}function Ma(t,n,e){var r=!0,i=!0;if("function"!=typeof t)throw new ds(ut);return cf(e)&&(r="leading"in e?!!e.leading:r,i="trailing"in e?!!e.trailing:i),Ia(t,n,{leading:r,maxWait:n,trailing:i})}function Pa(t){return Ca(t,1)}function Wa(t,n){return dp(Ei(n),t)}function $a(){if(!arguments.length)return[];var t=arguments[0];return bp(t)?t:[t]}function qa(t){return Fe(t,pt)}function Ga(t,n){return n="function"==typeof n?n:et,Fe(t,pt,n)}function Qa(t){return Fe(t,st|pt)}function Ha(t,n){return n="function"==typeof n?n:et,Fe(t,st|pt,n)}function Ja(t,n){return null==n||$e(t,n,Gf(n))}function Za(t,n){return t===n||t!==t&&n!==n}function Ka(t){return null!=t&&ff(t.length)&&!uf(t)}function Va(t){return sf(t)&&Ka(t)}function Ya(t){return t===!0||t===!1||sf(t)&&sr(t)==$t}function Xa(t){return sf(t)&&1===t.nodeType&&!gf(t)}function tf(t){if(null==t)return!0;if(Ka(t)&&(bp(t)||"string"==typeof t||"function"==typeof t.splice||jp(t)||Lp(t)||wp(t)))return!t.length;var n=Sl(t);if(n==Zt||n==en)return!t.size;if(qo(t))return!Pr(t).length;for(var e in t)if(bs.call(t,e))return!1;return!0}function nf(t,n){return Tr(t,n)}function ef(t,n,e){e="function"==typeof e?e:et;var r=e?e(t,n):et;return r===et?Tr(t,n,et,e):!!r}function rf(t){if(!sf(t))return!1;var n=sr(t);return n==Qt||n==Gt||"string"==typeof t.message&&"string"==typeof t.name&&!gf(t)}function of(t){return"number"==typeof t&&Hs(t)}function uf(t){if(!cf(t))return!1;var n=sr(t);return n==Ht||n==Jt||n==Wt||n==tn}function af(t){return"number"==typeof t&&t==Af(t)}function ff(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=It}function cf(t){var n=typeof t;return null!=t&&("object"==n||"function"==n)}function sf(t){return null!=t&&"object"==typeof t}function lf(t,n){return t===n||Dr(t,n,Ao(n))}function pf(t,n,e){return e="function"==typeof e?e:et,Dr(t,n,Ao(n),e)}function hf(t){return _f(t)&&t!=+t}function vf(t){if(Tl(t))throw new cs(ot);return Nr(t)}function df(t){return null===t}function yf(t){return null==t}function _f(t){return"number"==typeof t||sf(t)&&sr(t)==Kt}function gf(t){if(!sf(t)||sr(t)!=Yt)return!1;var n=Ts(t);if(null===n)return!0;var e=bs.call(n,"constructor")&&n.constructor;return"function"==typeof e&&e instanceof e&&ws.call(e)==Es}function mf(t){return af(t)&&t>=-It&&t<=It}function wf(t){return"string"==typeof t||!bp(t)&&sf(t)&&sr(t)==rn}function bf(t){return"symbol"==typeof t||sf(t)&&sr(t)==on}function xf(t){return t===et}function jf(t){return sf(t)&&Sl(t)==an}function kf(t){return sf(t)&&sr(t)==fn}function Ef(t){if(!t)return[];if(Ka(t))return wf(t)?Y(t):Mi(t);if(Us&&t[Us])return $(t[Us]());var n=Sl(t),e=n==Zt?q:n==en?H:ic;return e(t)}function Of(t){if(!t)return 0===t?t:0;if(t=Cf(t),t===Tt||t===-Tt){var n=t<0?-1:1;return n*zt}return t===t?t:0}function Af(t){var n=Of(t),e=n%1;return n===n?e?n-e:n:0}function Lf(t){return t?Be(Af(t),0,Nt):0}function Cf(t){if("number"==typeof t)return t;if(bf(t))return Dt;if(cf(t)){var n="function"==typeof t.valueOf?t.valueOf():t;t=cf(n)?n+"":n}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(Nn,"");var e=Hn.test(t);return e||Zn.test(t)?er(t.slice(2),e?2:8):Qn.test(t)?Dt:+t}function Rf(t){return Pi(t,Qf(t))}function Sf(t){return t?Be(Af(t),-It,It):0===t?t:0}function Tf(t){return null==t?"":yi(t)}function If(t,n){var e=gl(t);return null==n?e:ze(e,n)}function zf(t,n){return w(t,Eo(n,3),rr)}function Df(t,n){return w(t,Eo(n,3),ir)}function Nf(t,n){return null==t?t:bl(t,Eo(n,3),Qf)}function Uf(t,n){return null==t?t:xl(t,Eo(n,3),Qf)}function Bf(t,n){return t&&rr(t,Eo(n,3))}function Ff(t,n){return t&&ir(t,Eo(n,3))}function Mf(t){return null==t?[]:ur(t,Gf(t))}function Pf(t){return null==t?[]:ur(t,Qf(t))}function Wf(t,n,e){var r=null==t?et:ar(t,n);return r===et?e:r}function $f(t,n){return null!=t&&To(t,n,br)}function qf(t,n){return null!=t&&To(t,n,kr)}function Gf(t){return Ka(t)?Oe(t):Pr(t)}function Qf(t){return Ka(t)?Oe(t,!0):Wr(t)}function Hf(t,n){var e={};return n=Eo(n,3),rr(t,function(t,r,i){Ne(e,n(t,r,i),t)}),e}function Jf(t,n){var e={};return n=Eo(n,3),rr(t,function(t,r,i){Ne(e,r,n(t,r,i))}),e}function Zf(t,n){return Kf(t,Na(Eo(n)))}function Kf(t,n){if(null==t)return{};var e=h(xo(t),function(t){return[t]});return n=Eo(n),Yr(t,e,function(t,e){return n(t,e[0])})}function Vf(t,n,e){n=Oi(n,t);var r=-1,i=n.length;for(i||(i=1,t=et);++rn){var r=t;t=n,n=r}if(e||t%1||n%1){var i=tl();return Vs(t+i*(n-t+nr("1e-"+((i+"").length-1))),n)}return ei(t,n)}function cc(t){return th(Tf(t).toLowerCase())}function sc(t){return t=Tf(t),t&&t.replace(Vn,gr).replace(We,"")}function lc(t,n,e){t=Tf(t),n=yi(n);var r=t.length;e=e===et?r:Be(Af(e),0,r);var i=e;return e-=n.length,e>=0&&t.slice(e,i)==n}function pc(t){return t=Tf(t),t&&On.test(t)?t.replace(kn,mr):t}function hc(t){return t=Tf(t),t&&Dn.test(t)?t.replace(zn,"\\$&"):t}function vc(t,n,e){t=Tf(t),n=Af(n);var r=n?V(t):0;if(!n||r>=n)return t;var i=(n-r)/2;return oo(qs(i),e)+t+oo($s(i),e)}function dc(t,n,e){t=Tf(t),n=Af(n);var r=n?V(t):0;return n&&r>>0)?(t=Tf(t),t&&("string"==typeof n||null!=n&&!Op(n))&&(n=yi(n),!n&&P(t))?Ai(Y(t),0,e):t.split(n,e)):[]}function bc(t,n,e){return t=Tf(t),e=null==e?0:Be(Af(e),0,t.length),n=yi(n),t.slice(e,e+n.length)==n}function xc(t,e,r){var i=n.templateSettings;r&&Fo(t,e,r)&&(e=et),t=Tf(t),e=Ip({},e,i,ho);var o,u,a=Ip({},e.imports,i.imports,ho),f=Gf(a),c=z(a,f),s=0,l=e.interpolate||Yn,p="__p += '",h=hs((e.escape||Yn).source+"|"+l.source+"|"+(l===Cn?qn:Yn).source+"|"+(e.evaluate||Yn).source+"|$","g"),v="//# sourceURL="+("sourceURL"in e?e.sourceURL:"lodash.templateSources["+ ++Je+"]")+"\n";t.replace(h,function(n,e,r,i,a,f){return r||(r=i),p+=t.slice(s,f).replace(Xn,F),e&&(o=!0,p+="' +\n__e("+e+") +\n'"),a&&(u=!0,p+="';\n"+a+";\n__p += '"),r&&(p+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),s=f+n.length,n}),p+="';\n";var d=e.variable;d||(p="with (obj) {\n"+p+"\n}\n"),p=(u?p.replace(wn,""):p).replace(bn,"$1").replace(xn,"$1;"),p="function("+(d||"obj")+") {\n"+(d?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(o?", __e = _.escape":"")+(u?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+p+"return __p\n}";var y=nh(function(){return ss(f,v+"return "+p).apply(et,c)});if(y.source=p,rf(y))throw y;return y}function jc(t){return Tf(t).toLowerCase()}function kc(t){return Tf(t).toUpperCase()}function Ec(t,n,e){if(t=Tf(t),t&&(e||n===et))return t.replace(Nn,"");if(!t||!(n=yi(n)))return t;var r=Y(t),i=Y(n),o=N(r,i),u=U(r,i)+1;return Ai(r,o,u).join("")}function Oc(t,n,e){if(t=Tf(t),t&&(e||n===et))return t.replace(Bn,"");if(!t||!(n=yi(n)))return t;var r=Y(t),i=U(r,Y(n))+1;return Ai(r,0,i).join("")}function Ac(t,n,e){if(t=Tf(t),t&&(e||n===et))return t.replace(Un,"");if(!t||!(n=yi(n)))return t;var r=Y(t),i=N(r,Y(n));return Ai(r,i).join("")}function Lc(t,n){var e=Et,r=Ot;if(cf(n)){var i="separator"in n?n.separator:i;e="length"in n?Af(n.length):e,r="omission"in n?yi(n.omission):r}t=Tf(t);var o=t.length;if(P(t)){var u=Y(t);o=u.length}if(e>=o)return t;var a=e-V(r);if(a<1)return r;var f=u?Ai(u,0,a).join(""):t.slice(0,a);if(i===et)return f+r;if(u&&(a+=f.length-a),Op(i)){if(t.slice(a).search(i)){var c,s=f;for(i.global||(i=hs(i.source,Tf(Gn.exec(i))+"g")),i.lastIndex=0;c=i.exec(s);)var l=c.index;f=f.slice(0,l===et?a:l)}}else if(t.indexOf(yi(i),a)!=a){var p=f.lastIndexOf(i);p>-1&&(f=f.slice(0,p))}return f+r}function Cc(t){return t=Tf(t),t&&En.test(t)?t.replace(jn,wr):t}function Rc(t,n,e){return t=Tf(t),n=e?et:n,n===et?W(t)?nt(t):m(t):t.match(n)||[]}function Sc(t){var n=null==t?0:t.length,e=Eo();return t=n?h(t,function(t){if("function"!=typeof t[1])throw new ds(ut);return[e(t[0]),t[1]]}):[],oi(function(e){for(var r=-1;++rIt)return[];var e=Nt,r=Vs(t,Nt);n=Eo(n),t-=Nt;for(var i=S(r,n);++e1?t[n-1]:et;return e="function"==typeof e?(t.pop(),e):et,Vu(t,e)}),tp=wo(function(t){var n=t.length,e=n?t[0]:0,r=this.__wrapped__,i=function(n){return Ue(n,t)};return!(n>1||this.__actions__.length)&&r instanceof A&&Bo(e)?(r=r.slice(e,+e+(n?1:0)),r.__actions__.push({func:ea,args:[i],thisArg:et}),new g(r,this.__chain__).thru(function(t){return n&&!t.length&&t.push(et),t})):this.thru(i)}),np=qi(function(t,n,e){bs.call(t,e)?++t[e]:Ne(t,e,1)}),ep=Xi(du),rp=Xi(yu),ip=qi(function(t,n,e){bs.call(t,e)?t[e].push(n):Ne(t,e,[n])}),op=oi(function(t,n,e){var r=-1,i="function"==typeof n,u=Ka(t)?as(t.length):[];return ml(t,function(t){u[++r]=i?o(n,t,e):Lr(t,n,e)}),u}),up=qi(function(t,n,e){Ne(t,e,n)}),ap=qi(function(t,n,e){t[e?0:1].push(n)},function(){return[[],[]]}),fp=oi(function(t,n){if(null==t)return[];var e=n.length;return e>1&&Fo(t,n[0],n[1])?n=[]:e>2&&Fo(n[0],n[1],n[2])&&(n=[n[0]]),Kr(t,tr(n,1),[])}),cp=Ps||function(){return or.Date.now()},sp=oi(function(t,n,e){var r=dt;if(e.length){var i=Q(e,ko(sp));r|=wt}return po(t,r,n,e,i)}),lp=oi(function(t,n,e){var r=dt|yt;if(e.length){var i=Q(e,ko(lp));r|=wt}return po(n,r,t,e,i)}),pp=oi(function(t,n){return qe(t,1,n)}),hp=oi(function(t,n,e){return qe(t,Cf(n)||0,e)});Da.Cache=le;var vp=El(function(t,n){n=1==n.length&&bp(n[0])?h(n[0],I(Eo())):h(tr(n,1),I(Eo()));var e=n.length;return oi(function(r){for(var i=-1,u=Vs(r.length,e);++i=n}),wp=Cr(function(){return arguments}())?Cr:function(t){return sf(t)&&bs.call(t,"callee")&&!zs.call(t,"callee")},bp=as.isArray,xp=lr?I(lr):Rr,jp=Qs||Qc,kp=pr?I(pr):Sr,Ep=hr?I(hr):zr,Op=vr?I(vr):Ur,Ap=dr?I(dr):Br,Lp=yr?I(yr):Fr,Cp=fo($r),Rp=fo(function(t,n){return t<=n}),Sp=Gi(function(t,n){if(qo(n)||Ka(n))return void Pi(n,Gf(n),t);for(var e in n)bs.call(n,e)&&Se(t,e,n[e])}),Tp=Gi(function(t,n){Pi(n,Qf(n),t)}),Ip=Gi(function(t,n,e,r){Pi(n,Qf(n),t,r)}),zp=Gi(function(t,n,e,r){Pi(n,Gf(n),t,r)}),Dp=wo(Ue),Np=oi(function(t){return t.push(et,ho),o(Ip,et,t)}),Up=oi(function(t){return t.push(et,vo),o(Wp,et,t)}),Bp=eo(function(t,n,e){t[n]=e},Ic(Dc)),Fp=eo(function(t,n,e){bs.call(t,n)?t[n].push(e):t[n]=[e]},Eo),Mp=oi(Lr),Pp=Gi(function(t,n,e){Hr(t,n,e)}),Wp=Gi(function(t,n,e,r){Hr(t,n,e,r)}),$p=wo(function(t,n){var e={};if(null==t)return e;var r=!1;n=h(n,function(n){return n=Oi(n,t),r||(r=n.length>1),n}),Pi(t,xo(t),e),r&&(e=Fe(e,st|lt|pt,yo));for(var i=n.length;i--;)gi(e,n[i]);return e}),qp=wo(function(t,n){return null==t?{}:Vr(t,n)}),Gp=lo(Gf),Qp=lo(Qf),Hp=Ki(function(t,n,e){return n=n.toLowerCase(),t+(e?cc(n):n)}),Jp=Ki(function(t,n,e){return t+(e?"-":"")+n.toLowerCase()}),Zp=Ki(function(t,n,e){return t+(e?" ":"")+n.toLowerCase()}),Kp=Zi("toLowerCase"),Vp=Ki(function(t,n,e){return t+(e?"_":"")+n.toLowerCase()}),Yp=Ki(function(t,n,e){return t+(e?" ":"")+th(n)}),Xp=Ki(function(t,n,e){return t+(e?" ":"")+n.toUpperCase()}),th=Zi("toUpperCase"),nh=oi(function(t,n){try{return o(t,et,n)}catch(e){return rf(e)?e:new cs(e)}}),eh=wo(function(t,n){return a(n,function(n){n=ru(n),Ne(t,n,sp(t[n],t))}),t}),rh=to(),ih=to(!0),oh=oi(function(t,n){return function(e){return Lr(e,t,n)}}),uh=oi(function(t,n){return function(e){return Lr(t,e,n)}}),ah=io(h),fh=io(c),ch=io(_),sh=ao(),lh=ao(!0),ph=ro(function(t,n){return t+n},0),hh=so("ceil"),vh=ro(function(t,n){return t/n},1),dh=so("floor"),yh=ro(function(t,n){return t*n},1),_h=so("round"),gh=ro(function(t,n){return t-n},0);return n.after=La,n.ary=Ca,n.assign=Sp,n.assignIn=Tp,n.assignInWith=Ip,n.assignWith=zp,n.at=Dp,n.before=Ra,n.bind=sp,n.bindAll=eh,n.bindKey=lp,n.castArray=$a,n.chain=ta,n.chunk=au,n.compact=fu,n.concat=cu,n.cond=Sc,n.conforms=Tc,n.constant=Ic,n.countBy=np,n.create=If,n.curry=Sa,n.curryRight=Ta,n.debounce=Ia,n.defaults=Np,n.defaultsDeep=Up,n.defer=pp,n.delay=hp,n.difference=Ul,n.differenceBy=Bl,n.differenceWith=Fl,n.drop=su,n.dropRight=lu,n.dropRightWhile=pu,n.dropWhile=hu,n.fill=vu,n.filter=la,n.flatMap=pa,n.flatMapDeep=ha,n.flatMapDepth=va,n.flatten=_u,n.flattenDeep=gu,n.flattenDepth=mu,n.flip=za,n.flow=rh,n.flowRight=ih,n.fromPairs=wu,n.functions=Mf,n.functionsIn=Pf,n.groupBy=ip,n.initial=ju,n.intersection=Ml,n.intersectionBy=Pl,n.intersectionWith=Wl,n.invert=Bp,n.invertBy=Fp,n.invokeMap=op,n.iteratee=Nc,n.keyBy=up,n.keys=Gf,n.keysIn=Qf,n.map=ga,n.mapKeys=Hf,n.mapValues=Jf,n.matches=Uc,n.matchesProperty=Bc,n.memoize=Da,n.merge=Pp,n.mergeWith=Wp,n.method=oh,n.methodOf=uh,n.mixin=Fc,n.negate=Na,n.nthArg=Wc,n.omit=$p,n.omitBy=Zf,n.once=Ua,n.orderBy=ma,n.over=ah,n.overArgs=vp,n.overEvery=fh,n.overSome=ch,n.partial=dp,n.partialRight=yp,n.partition=ap,n.pick=qp,n.pickBy=Kf,n.property=$c,n.propertyOf=qc,n.pull=$l,n.pullAll=Lu,n.pullAllBy=Cu,n.pullAllWith=Ru,n.pullAt=ql,n.range=sh,n.rangeRight=lh,n.rearg=_p,n.reject=xa,n.remove=Su,n.rest=Ba,n.reverse=Tu,n.sampleSize=ka,n.set=Yf,n.setWith=Xf,n.shuffle=Ea,n.slice=Iu,n.sortBy=fp,n.sortedUniq=Mu,n.sortedUniqBy=Pu,n.split=wc,n.spread=Fa,n.tail=Wu,n.take=$u,n.takeRight=qu,n.takeRightWhile=Gu,n.takeWhile=Qu,n.tap=na,n.throttle=Ma,n.thru=ea,n.toArray=Ef,n.toPairs=Gp,n.toPairsIn=Qp,n.toPath=Vc,n.toPlainObject=Rf,n.transform=tc,n.unary=Pa,n.union=Gl,n.unionBy=Ql,n.unionWith=Hl,n.uniq=Hu,n.uniqBy=Ju,n.uniqWith=Zu,n.unset=nc,n.unzip=Ku,n.unzipWith=Vu,n.update=ec,n.updateWith=rc,n.values=ic,n.valuesIn=oc,n.without=Jl,n.words=Rc,n.wrap=Wa,n.xor=Zl,n.xorBy=Kl,n.xorWith=Vl,n.zip=Yl,n.zipObject=Yu,n.zipObjectDeep=Xu,n.zipWith=Xl,n.entries=Gp,n.entriesIn=Qp,n.extend=Tp,n.extendWith=Ip,Fc(n,n),n.add=ph,n.attempt=nh,n.camelCase=Hp,n.capitalize=cc,n.ceil=hh,n.clamp=uc,n.clone=qa,n.cloneDeep=Qa,n.cloneDeepWith=Ha,n.cloneWith=Ga,n.conformsTo=Ja,n.deburr=sc,n.defaultTo=zc,n.divide=vh,n.endsWith=lc,n.eq=Za,n.escape=pc,n.escapeRegExp=hc,n.every=sa,n.find=ep,n.findIndex=du,n.findKey=zf,n.findLast=rp,n.findLastIndex=yu,n.findLastKey=Df,n.floor=dh,n.forEach=da,n.forEachRight=ya,n.forIn=Nf,n.forInRight=Uf,n.forOwn=Bf,n.forOwnRight=Ff,n.get=Wf,n.gt=gp,n.gte=mp,n.has=$f,n.hasIn=qf,n.head=bu,n.identity=Dc,n.includes=_a,n.indexOf=xu,n.inRange=ac,n.invoke=Mp,n.isArguments=wp,n.isArray=bp,n.isArrayBuffer=xp,n.isArrayLike=Ka,n.isArrayLikeObject=Va,n.isBoolean=Ya,n.isBuffer=jp,n.isDate=kp,n.isElement=Xa,n.isEmpty=tf,n.isEqual=nf,n.isEqualWith=ef,n.isError=rf,n.isFinite=of,n.isFunction=uf,n.isInteger=af,n.isLength=ff,n.isMap=Ep,n.isMatch=lf,n.isMatchWith=pf,n.isNaN=hf,n.isNative=vf,n.isNil=yf,n.isNull=df,n.isNumber=_f,n.isObject=cf,n.isObjectLike=sf,n.isPlainObject=gf,n.isRegExp=Op,n.isSafeInteger=mf,n.isSet=Ap,n.isString=wf,n.isSymbol=bf,n.isTypedArray=Lp,n.isUndefined=xf,n.isWeakMap=jf,n.isWeakSet=kf,n.join=ku,n.kebabCase=Jp,n.last=Eu,n.lastIndexOf=Ou,n.lowerCase=Zp,n.lowerFirst=Kp,n.lt=Cp,n.lte=Rp,n.max=Xc,n.maxBy=ts,n.mean=ns,n.meanBy=es,n.min=rs,n.minBy=is,n.stubArray=Gc,n.stubFalse=Qc,n.stubObject=Hc,n.stubString=Jc,n.stubTrue=Zc,n.multiply=yh,n.nth=Au,n.noConflict=Mc,n.noop=Pc,n.now=cp,n.pad=vc,n.padEnd=dc,n.padStart=yc,n.parseInt=_c,n.random=fc,n.reduce=wa,n.reduceRight=ba,n.repeat=gc,n.replace=mc,n.result=Vf,n.round=_h,n.runInContext=jr,n.sample=ja,n.size=Oa,n.snakeCase=Vp,n.some=Aa,n.sortedIndex=zu,n.sortedIndexBy=Du,n.sortedIndexOf=Nu,n.sortedLastIndex=Uu,n.sortedLastIndexBy=Bu,n.sortedLastIndexOf=Fu,n.startCase=Yp,n.startsWith=bc,n.subtract=gh,n.sum=os,n.sumBy=us,n.template=xc,n.times=Kc,n.toFinite=Of,n.toInteger=Af,n.toLength=Lf,n.toLower=jc,n.toNumber=Cf,n.toSafeInteger=Sf,n.toString=Tf,n.toUpper=kc,n.trim=Ec,n.trimEnd=Oc,n.trimStart=Ac,n.truncate=Lc,n.unescape=Cc,n.uniqueId=Yc,n.upperCase=Xp,n.upperFirst=th,n.each=da,n.eachRight=ya,n.first=bu,Fc(n,function(){var t={};return rr(n,function(e,r){bs.call(n.prototype,r)||(t[r]=e)}),t}(),{chain:!1}),n.VERSION=rt,a(["bind","bindKey","curry","curryRight","partial","partialRight"],function(t){n[t].placeholder=n}),a(["drop","take"],function(t,n){A.prototype[t]=function(e){e=e===et?1:Ks(Af(e),0);var r=this.__filtered__&&!n?new A(this):this.clone();return r.__filtered__?r.__takeCount__=Vs(e,r.__takeCount__):r.__views__.push({size:Vs(e,Nt),type:t+(r.__dir__<0?"Right":"")}),r},A.prototype[t+"Right"]=function(n){return this.reverse()[t](n).reverse()}}),a(["filter","map","takeWhile"],function(t,n){var e=n+1,r=e==Ct||e==St;A.prototype[t]=function(t){var n=this.clone();return n.__iteratees__.push({iteratee:Eo(t,3),type:e}),n.__filtered__=n.__filtered__||r,n}}),a(["head","last"],function(t,n){var e="take"+(n?"Right":"");A.prototype[t]=function(){return this[e](1).value()[0]}}),a(["initial","tail"],function(t,n){var e="drop"+(n?"":"Right");A.prototype[t]=function(){return this.__filtered__?new A(this):this[e](1)}}),A.prototype.compact=function(){return this.filter(Dc)},A.prototype.find=function(t){return this.filter(t).head()},A.prototype.findLast=function(t){return this.reverse().find(t)},A.prototype.invokeMap=oi(function(t,n){return"function"==typeof t?new A(this):this.map(function(e){return Lr(e,t,n)})}),A.prototype.reject=function(t){return this.filter(Na(Eo(t)))},A.prototype.slice=function(t,n){t=Af(t);var e=this;return e.__filtered__&&(t>0||n<0)?new A(e):(t<0?e=e.takeRight(-t):t&&(e=e.drop(t)),n!==et&&(n=Af(n),e=n<0?e.dropRight(-n):e.take(n-t)),e)},A.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},A.prototype.toArray=function(){return this.take(Nt)},rr(A.prototype,function(t,e){var r=/^(?:filter|find|map|reject)|While$/.test(e),i=/^(?:head|last)$/.test(e),o=n[i?"take"+("last"==e?"Right":""):e],u=i||/^find/.test(e);o&&(n.prototype[e]=function(){var e=this.__wrapped__,a=i?[1]:arguments,f=e instanceof A,c=a[0],s=f||bp(e),l=function(t){var e=o.apply(n,v([t],a));return i&&p?e[0]:e};s&&r&&"function"==typeof c&&1!=c.length&&(f=s=!1);var p=this.__chain__,h=!!this.__actions__.length,d=u&&!p,y=f&&!h;if(!u&&s){e=y?e:new A(this);var _=t.apply(e,a);return _.__actions__.push({func:ea,args:[l],thisArg:et}),new g(_,p)}return d&&y?t.apply(this,a):(_=this.thru(l),d?i?_.value()[0]:_.value():_)})}),a(["pop","push","shift","sort","splice","unshift"],function(t){var e=ys[t],r=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",i=/^(?:pop|shift)$/.test(t);n.prototype[t]=function(){var t=arguments;if(i&&!this.__chain__){var n=this.value();return e.apply(bp(n)?n:[],t)}return this[r](function(n){return e.apply(bp(n)?n:[],t)})}}),rr(A.prototype,function(t,e){var r=n[e];if(r){var i=r.name+"",o=cl[i]||(cl[i]=[]);o.push({name:e,func:r})}}),cl[no(et,yt).name]=[{name:"wrapper",func:et}],A.prototype.clone=Z,A.prototype.reverse=X,A.prototype.value=tt,n.prototype.at=tp,n.prototype.chain=ra,n.prototype.commit=ia,n.prototype.next=oa,n.prototype.plant=aa,n.prototype.reverse=fa,n.prototype.toJSON=n.prototype.valueOf=n.prototype.value=ca,n.prototype.first=n.prototype.head,Us&&(n.prototype[Us]=ua),n},xr=br();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(or._=xr,define(function(){return xr})):ar?((ar.exports=xr)._=xr,ur._=xr):or._=xr}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],6:[function(t,n,e){function r(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function o(t){if(l===setTimeout)return setTimeout(t,0);if((l===r||!l)&&setTimeout)return l=setTimeout,setTimeout(t,0);try{return l(t,0)}catch(n){try{return l.call(null,t,0)}catch(n){return l.call(this,t,0)}}}function u(t){if(p===clearTimeout)return clearTimeout(t);if((p===i||!p)&&clearTimeout)return p=clearTimeout,clearTimeout(t);try{return p(t)}catch(n){try{return p.call(null,t)}catch(n){return p.call(this,t)}}}function a(){y&&v&&(y=!1,v.length?d=v.concat(d):_=-1,d.length&&f())}function f(){if(!y){var t=o(a);y=!0;for(var n=d.length;n;){for(v=d,d=[];++_1)for(var e=1;er.stackCounter)&&(nt(t,"__minimumStackCounter__",{value:r.stackCounter,configurable:!0}),e.unshift(r.stack));e.unshift(t.stack);var i=e.join("\n"+ot+"\n"),u=o(i);nt(t,"stack",{value:u,configurable:!0})}}function o(t){for(var n=t.split("\n"),e=[],r=0;r=Q&&r<=lt}function c(){if(W)try{throw new Error}catch(t){var n=t.stack.split("\n"),e=n[0].indexOf("@")>0?n[1]:n[2],r=a(e);if(!r)return;return q=r[0],r[1]}}function s(t,n,e){return function(){return"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(n+" is deprecated, use "+e+" instead.",new Error("").stack),t.apply(t,arguments)}}function l(t){return t instanceof d?t:m(t)?L(t):A(t)}function p(){function t(t){n=t,l.longStackSupport&&W&&(o.source=t),V(e,function(n,e){l.nextTick(function(){t.promiseDispatch.apply(t,e)})},void 0),e=void 0,r=void 0}var n,e=[],r=[],i=tt(p.prototype),o=tt(d.prototype);if(o.promiseDispatch=function(t,i,o){var u=K(arguments);e?(e.push(u),"when"===i&&o[1]&&r.push(o[1])):l.nextTick(function(){n.promiseDispatch.apply(n,u)})},o.valueOf=function(){if(e)return o;var t=_(n);return g(t)&&(n=t),t},o.inspect=function(){return n?n.inspect():{state:"pending"}},l.longStackSupport&&W)try{throw new Error}catch(u){o.stack=u.stack.substring(u.stack.indexOf("\n")+1),o.stackCounter=ut++}return i.promise=o,i.resolve=function(e){n||t(l(e))},i.fulfill=function(e){n||t(A(e))},i.reject=function(e){n||t(O(e))},i.notify=function(t){n||V(r,function(n,e){l.nextTick(function(){e(t)})},void 0)},i}function h(t){if("function"!=typeof t)throw new TypeError("resolver must be a function.");var n=p();try{t(n.resolve,n.reject,n.notify)}catch(e){n.reject(e)}return n.promise}function v(t){return h(function(n,e){for(var r=0,i=t.length;r=r)throw new TypeError}for(;e2?t.resolve(K(arguments,1)):t.resolve(e)}},l.Promise=h,l.promise=h,h.race=v,h.all=N,h.reject=O,h.resolve=l,l.passByCopy=function(t){return t},d.prototype.passByCopy=function(){return this},l.join=function(t,n){return l(t).join(n)},d.prototype.join=function(t){return l([this,t]).spread(function(t,n){if(t===n)return t;throw new Error("Q can't join: not the same: "+t+" "+n)})},l.race=v,d.prototype.race=function(){return this.then(l.race)},l.makePromise=d,d.prototype.toString=function(){return"[object Promise]"},d.prototype.then=function(t,n,e){function r(n){try{return"function"==typeof t?t(n):n}catch(e){return O(e)}}function o(t){if("function"==typeof n){i(t,a);try{return n(t)}catch(e){return O(e)}}return O(t)}function u(t){return"function"==typeof e?e(t):t}var a=this,f=p(),c=!1;return l.nextTick(function(){a.promiseDispatch(function(t){c||(c=!0,f.resolve(r(t)))},"when",[function(t){c||(c=!0,f.resolve(o(t)))}])}),a.promiseDispatch(void 0,"when",[void 0,function(t){var n,e=!1;try{n=u(t)}catch(r){if(e=!0,!l.onerror)throw r;l.onerror(r)}e||f.notify(n)}]),f.promise},l.tap=function(t,n){return l(t).tap(n)},d.prototype.tap=function(t){return t=l(t),this.then(function(n){return t.fcall(n).thenResolve(n)})},l.when=y,d.prototype.thenResolve=function(t){return this.then(function(){return t})},l.thenResolve=function(t,n){return l(t).thenResolve(n)},d.prototype.thenReject=function(t){return this.then(function(){throw t})},l.thenReject=function(t,n){return l(t).thenReject(n)},l.nearer=_,l.isPromise=g,l.isPromiseAlike=m,l.isPending=w,d.prototype.isPending=function(){return"pending"===this.inspect().state},l.isFulfilled=b,d.prototype.isFulfilled=function(){return"fulfilled"===this.inspect().state},l.isRejected=x,d.prototype.isRejected=function(){return"rejected"===this.inspect().state};var at=[],ft=[],ct=[],st=!0;l.resetUnhandledRejections=j,l.getUnhandledReasons=function(){return at.slice()},l.stopUnhandledRejectionTracking=function(){j(),st=!1},j(),l.reject=O,l.fulfill=A,l.master=C,l.spread=R,d.prototype.spread=function(t,n){return this.all().then(function(n){return t.apply(void 0,n)},n)},l.async=S,l.spawn=T,l["return"]=I,l.promised=z,l.dispatch=D,d.prototype.dispatch=function(t,n){var e=this,r=p();return l.nextTick(function(){e.promiseDispatch(r.resolve,t,n)}),r.promise},l.get=function(t,n){return l(t).dispatch("get",[n])},d.prototype.get=function(t){return this.dispatch("get",[t])},l.set=function(t,n,e){return l(t).dispatch("set",[n,e])},d.prototype.set=function(t,n){return this.dispatch("set",[t,n])},l.del=l["delete"]=function(t,n){return l(t).dispatch("delete",[n])},d.prototype.del=d.prototype["delete"]=function(t){return this.dispatch("delete",[t])},l.mapply=l.post=function(t,n,e){return l(t).dispatch("post",[n,e])},d.prototype.mapply=d.prototype.post=function(t,n){return this.dispatch("post",[t,n])},l.send=l.mcall=l.invoke=function(t,n){return l(t).dispatch("post",[n,K(arguments,2)])},d.prototype.send=d.prototype.mcall=d.prototype.invoke=function(t){return this.dispatch("post",[t,K(arguments,1)])},l.fapply=function(t,n){return l(t).dispatch("apply",[void 0,n])},d.prototype.fapply=function(t){return this.dispatch("apply",[void 0,t])},l["try"]=l.fcall=function(t){return l(t).dispatch("apply",[void 0,K(arguments,1)])},d.prototype.fcall=function(){return this.dispatch("apply",[void 0,K(arguments)])},l.fbind=function(t){var n=l(t),e=K(arguments,1);return function(){return n.dispatch("apply",[this,e.concat(K(arguments))])}},d.prototype.fbind=function(){var t=this,n=K(arguments);return function(){return t.dispatch("apply",[this,n.concat(K(arguments))])}},l.keys=function(t){return l(t).dispatch("keys",[])},d.prototype.keys=function(){return this.dispatch("keys",[])},l.all=N,d.prototype.all=function(){return N(this)},l.any=U,d.prototype.any=function(){return U(this)},l.allResolved=s(B,"allResolved","allSettled"),d.prototype.allResolved=function(){return B(this)},l.allSettled=F,d.prototype.allSettled=function(){return this.then(function(t){return N(X(t,function(t){function n(){return t.inspect()}return t=l(t),t.then(n,n)}))})},l.fail=l["catch"]=function(t,n){return l(t).then(void 0,n)},d.prototype.fail=d.prototype["catch"]=function(t){return this.then(void 0,t)},l.progress=M,d.prototype.progress=function(t){return this.then(void 0,void 0,t)},l.fin=l["finally"]=function(t,n){return l(t)["finally"](n)},d.prototype.fin=d.prototype["finally"]=function(t){if(!t||"function"!=typeof t.apply)throw new Error("Q can't apply finally callback");return t=l(t),this.then(function(n){return t.fcall().then(function(){return n})},function(n){return t.fcall().then(function(){throw n})})},l.done=function(t,n,e,r){return l(t).done(n,e,r)},d.prototype.done=function(n,e,r){var o=function(t){l.nextTick(function(){if(i(t,u),!l.onerror)throw t;l.onerror(t)})},u=n||e||r?this.then(n,e,r):this;"object"==typeof t&&t&&t.domain&&(o=t.domain.bind(o)),u.then(void 0,o)},l.timeout=function(t,n,e){return l(t).timeout(n,e)},d.prototype.timeout=function(t,n){var e=p(),r=setTimeout(function(){n&&"string"!=typeof n||(n=new Error(n||"Timed out after "+t+" ms"),n.code="ETIMEDOUT"),e.reject(n)},t);return this.then(function(t){clearTimeout(r),e.resolve(t)},function(t){clearTimeout(r),e.reject(t)},e.notify),e.promise},l.delay=function(t,n){return void 0===n&&(n=t,t=void 0),l(t).delay(n)},d.prototype.delay=function(t){return this.then(function(n){var e=p();return setTimeout(function(){e.resolve(n)},t),e.promise})},l.nfapply=function(t,n){return l(t).nfapply(n)},d.prototype.nfapply=function(t){var n=p(),e=K(t);return e.push(n.makeNodeResolver()),this.fapply(e).fail(n.reject),n.promise},l.nfcall=function(t){var n=K(arguments,1);return l(t).nfapply(n)},d.prototype.nfcall=function(){var t=K(arguments),n=p();return t.push(n.makeNodeResolver()),this.fapply(t).fail(n.reject),n.promise},l.nfbind=l.denodeify=function(t){if(void 0===t)throw new Error("Q can't wrap an undefined function");var n=K(arguments,1);return function(){var e=n.concat(K(arguments)),r=p();return e.push(r.makeNodeResolver()),l(t).fapply(e).fail(r.reject),r.promise}},d.prototype.nfbind=d.prototype.denodeify=function(){var t=K(arguments);return t.unshift(this),l.denodeify.apply(void 0,t)},l.nbind=function(t,n){var e=K(arguments,2);return function(){function r(){return t.apply(n,arguments)}var i=e.concat(K(arguments)),o=p();return i.push(o.makeNodeResolver()),l(r).fapply(i).fail(o.reject),o.promise}},d.prototype.nbind=function(){var t=K(arguments,0);return t.unshift(this),l.nbind.apply(void 0,t)},l.nmapply=l.npost=function(t,n,e){return l(t).npost(n,e)},d.prototype.nmapply=d.prototype.npost=function(t,n){var e=K(n||[]),r=p();return e.push(r.makeNodeResolver()),this.dispatch("post",[t,e]).fail(r.reject),r.promise},l.nsend=l.nmcall=l.ninvoke=function(t,n){var e=K(arguments,2),r=p();return e.push(r.makeNodeResolver()),l(t).dispatch("post",[n,e]).fail(r.reject),r.promise},d.prototype.nsend=d.prototype.nmcall=d.prototype.ninvoke=function(t){var n=K(arguments,1),e=p();return n.push(e.makeNodeResolver()),this.dispatch("post",[t,n]).fail(e.reject),e.promise},l.nodeify=P,d.prototype.nodeify=function(t){return t?void this.then(function(n){l.nextTick(function(){t(null,n)})},function(n){l.nextTick(function(){t(n)})}):this},l.noConflict=function(){throw new Error("Q.noConflict only works when Q is used as a global")};var lt=c();return l})}).call(this,t("_process"))},{_process:6}],8:[function(t,n,e){"function"==typeof Object.create?n.exports=function(t,n){t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:n.exports=function(t,n){t.super_=n;var e=function(){};e.prototype=n.prototype,t.prototype=new e,t.prototype.constructor=t}},{}],9:[function(t,n,e){n.exports=function(t){return t&&"object"==typeof t&&"function"==typeof t.copy&&"function"==typeof t.fill&&"function"==typeof t.readUInt8}},{}],10:[function(t,n,e){(function(n,r){function i(t,n){var r={seen:[],stylize:u};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&e._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=o),f(r,t,r.depth)}function o(t,n){var e=i.styles[n];return e?"["+i.colors[e][0]+"m"+t+"["+i.colors[e][1]+"m":t}function u(t,n){return t}function a(t){var n={};return t.forEach(function(t,e){n[t]=!0}),n}function f(t,n,r){if(t.customInspect&&n&&O(n.inspect)&&n.inspect!==e.inspect&&(!n.constructor||n.constructor.prototype!==n)){var i=n.inspect(r,t);return m(i)||(i=f(t,i,r)),i}var o=c(t,n);if(o)return o;var u=Object.keys(n),d=a(u);if(t.showHidden&&(u=Object.getOwnPropertyNames(n)),E(n)&&(u.indexOf("message")>=0||u.indexOf("description")>=0))return s(n);if(0===u.length){if(O(n)){var y=n.name?": "+n.name:"";return t.stylize("[Function"+y+"]","special")}if(x(n))return t.stylize(RegExp.prototype.toString.call(n),"regexp");if(k(n))return t.stylize(Date.prototype.toString.call(n),"date");if(E(n))return s(n)}var _="",g=!1,w=["{","}"];if(v(n)&&(g=!0,w=["[","]"]),O(n)){var b=n.name?": "+n.name:"";_=" [Function"+b+"]"}if(x(n)&&(_=" "+RegExp.prototype.toString.call(n)),k(n)&&(_=" "+Date.prototype.toUTCString.call(n)),E(n)&&(_=" "+s(n)),0===u.length&&(!g||0==n.length))return w[0]+_+w[1]; +if(r<0)return x(n)?t.stylize(RegExp.prototype.toString.call(n),"regexp"):t.stylize("[Object]","special");t.seen.push(n);var j;return j=g?l(t,n,r,d,u):u.map(function(e){return p(t,n,r,d,e,g)}),t.seen.pop(),h(j,_,w)}function c(t,n){if(b(n))return t.stylize("undefined","undefined");if(m(n)){var e="'"+JSON.stringify(n).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(e,"string")}return g(n)?t.stylize(""+n,"number"):d(n)?t.stylize(""+n,"boolean"):y(n)?t.stylize("null","null"):void 0}function s(t){return"["+Error.prototype.toString.call(t)+"]"}function l(t,n,e,r,i){for(var o=[],u=0,a=n.length;u-1&&(a=o?a.split("\n").map(function(t){return" "+t}).join("\n").substr(2):"\n"+a.split("\n").map(function(t){return" "+t}).join("\n"))):a=t.stylize("[Circular]","special")),b(u)){if(o&&i.match(/^\d+$/))return a;u=JSON.stringify(""+i),u.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(u=u.substr(1,u.length-2),u=t.stylize(u,"name")):(u=u.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),u=t.stylize(u,"string"))}return u+": "+a}function h(t,n,e){var r=0,i=t.reduce(function(t,n){return r++,n.indexOf("\n")>=0&&r++,t+n.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?e[0]+(""===n?"":n+"\n ")+" "+t.join(",\n ")+" "+e[1]:e[0]+n+" "+t.join(", ")+" "+e[1]}function v(t){return Array.isArray(t)}function d(t){return"boolean"==typeof t}function y(t){return null===t}function _(t){return null==t}function g(t){return"number"==typeof t}function m(t){return"string"==typeof t}function w(t){return"symbol"==typeof t}function b(t){return void 0===t}function x(t){return j(t)&&"[object RegExp]"===L(t)}function j(t){return"object"==typeof t&&null!==t}function k(t){return j(t)&&"[object Date]"===L(t)}function E(t){return j(t)&&("[object Error]"===L(t)||t instanceof Error)}function O(t){return"function"==typeof t}function A(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||"undefined"==typeof t}function L(t){return Object.prototype.toString.call(t)}function C(t){return t<10?"0"+t.toString(10):t.toString(10)}function R(){var t=new Date,n=[C(t.getHours()),C(t.getMinutes()),C(t.getSeconds())].join(":");return[t.getDate(),D[t.getMonth()],n].join(" ")}function S(t,n){return Object.prototype.hasOwnProperty.call(t,n)}var T=/%[sdj%]/g;e.format=function(t){if(!m(t)){for(var n=[],e=0;e=o)return t;switch(t){case"%s":return String(r[e++]);case"%d":return Number(r[e++]);case"%j":try{return JSON.stringify(r[e++])}catch(n){return"[Circular]"}default:return t}}),a=r[e];e + * @copyright (c) 2017, KHill Designs + * @license MIT + */ +module.exports = (function() { + 'use strict'; + + var Q = require('q'); + + /** + * Chart Class + * + * This is the javascript version of a lavachart with methods for interacting with + * the google chart and the PHP lavachart output. + * + * @param {string} type + * @param {string} label + * @constructor + */ + function Chart (type, label) { + this.label = label; + this.type = type; + this.element = null; + this.chart = null; + this.package = null; + this.pngOutput = false; + this.data = {}; + this.options = {}; + this.formats = []; + this.promises = { + configure: Q.defer(), + rendered: Q.defer() + }; + this.init = function(){}; + this.configure = function(){}; + this.render = function(){}; + this.uuid = function() { + return this.type+'::'+this.label; + }; + this._errors = require('./Errors.js'); + } + + /** + * Sets the data for the chart by creating a new DataTable + * + * @public + * @external "google.visualization.DataTable" + * @see {@link https://developers.google.com/chart/interactive/docs/reference#DataTable|DataTable Class} + * @param {object} data Json representation of a DataTable + * @param {Array.} data.cols Array of column definitions + * @param {Array.} data.rows Array of row definitions + */ + Chart.prototype.setData = function (data) { + this.data = new google.visualization.DataTable(data); + }; + + /** + * Sets the options for the chart. + * + * @public + * @param {object} options + */ + Chart.prototype.setOptions = function (options) { + this.options = options; + }; + + /** + * Sets whether the chart is to be rendered as PNG or SVG + * + * @public + * @param {string|int} png + */ + Chart.prototype.setPngOutput = function (png) { + this.pngOutput = Boolean(typeof png == 'undefined' ? false : png); + }; + + /** + * Set the ID of the output element for the Dashboard. + * + * @public + * @param {string} elemId + * @throws ElementIdNotFound + */ + Chart.prototype.setElement = function (elemId) { + this.element = document.getElementById(elemId); + + if (! this.element) { + throw new this._errors.ElementIdNotFound(elemId); + } + }; + + /** + * Redraws the chart. + * + * @public + */ + Chart.prototype.redraw = function() { + this.chart.draw(this.data, this.options); + }; + + /** + * Draws the chart as a PNG instead of the standard SVG + * + * @public + * @external "chart.getImageURI" + * @see {@link https://developers.google.com/chart/interactive/docs/printing|Printing PNG Charts} + */ + Chart.prototype.drawPng = function() { + var img = document.createElement('img'); + img.src = this.chart.getImageURI(); + + this.element.innerHTML = ''; + this.element.appendChild(img); + }; + + /** + * Formats columns of the DataTable. + * + * @public + * @param {Array.} formatArr Array of format definitions + */ + Chart.prototype.applyFormats = function (formatArr) { + for(var a=0; a < formatArr.length; a++) { + var formatJson = formatArr[a]; + var formatter = new google.visualization[formatJson.type](formatJson.config); + + formatter.format(this.data, formatJson.index); + } + }; + + return Chart; + +}()); diff --git a/vendor/khill/lavacharts/javascript/src/lava/Dashboard.js b/vendor/khill/lavacharts/javascript/src/lava/Dashboard.js new file mode 100644 index 0000000..d5a4935 --- /dev/null +++ b/vendor/khill/lavacharts/javascript/src/lava/Dashboard.js @@ -0,0 +1,74 @@ +/* jshint undef: true */ +/* globals document, google, require, module */ + +/** + * Dashboard module + * + * @class Dashboard + * @module lava/Dashboard + * @author Kevin Hill + * @copyright (c) 2017, KHill Designs + * @license MIT + */ +module.exports = (function() { + 'use strict'; + + var Q = require('q'); + + /** + * Dashboard Class + * + * This is the javascript version of a dashboard with methods for interacting with + * the google chart and the PHP lavachart output. + * + * @param {String} label + * @constructor + */ + function Dashboard (label) { + this.label = label; + this.type = 'Dashboard'; + this.element = null; + this.data = null; + this.bindings = []; + this.dashboard = null; + this.deferred = Q.defer(); + this.init = function(){}; + this.configure = function(){}; + this.render = function(){}; + this.uuid = function() { + return this.type+'::'+this.label; + }; + this._errors = require('./Errors.js'); + } + + /** + * Sets the data for the chart by creating a new DataTable + * + * @external "google.visualization.DataTable" + * @see {@link https://developers.google.com/chart/interactive/docs/reference#DataTable|DataTable} + * @param {Object} data Json representation of a DataTable + * @param {Array.} data.cols Array of column definitions + * @param {Array.} data.rows Array of row definitions + */ + Dashboard.prototype.setData = function (data) { + this.data = new google.visualization.DataTable(data); + }; + + /** + * Set the ID of the output element for the Dashboard. + * + * @public + * @param {string} elemId + * @throws ElementIdNotFound + */ + Dashboard.prototype.setElement = function (elemId) { + this.element = document.getElementById(elemId); + + if (! this.element) { + throw new this._errors.ElementIdNotFound(elemId); + } + }; + + return Dashboard; + +}()); diff --git a/vendor/khill/lavacharts/javascript/src/lava/Errors.js b/vendor/khill/lavacharts/javascript/src/lava/Errors.js new file mode 100644 index 0000000..3955828 --- /dev/null +++ b/vendor/khill/lavacharts/javascript/src/lava/Errors.js @@ -0,0 +1,82 @@ +/* jshint undef: true */ +/* globals module, require */ +'use strict'; + +/** + * Errors module + * + * @module lava/Errors + * @author Kevin Hill + * @copyright (c) 2017, KHill Designs + * @license MIT + */ +var LavachartsError = function (message) { + this.name = 'LavachartsError'; + this.message = (message || ''); +}; +LavachartsError.prototype = Error.prototype; + +/** + * InvalidCallback Error + * + * thrown when when anything but a function is given as a callback + * @type {function} + */ +var InvalidCallback = function (callback) { + this.name = 'InvalidCallback'; + this.message = '[Lavacharts] ' + typeof callback + ' is not a valid callback.'; +}; +InvalidCallback.prototype = LavachartsError.prototype; +module.exports.InvalidCallback = InvalidCallback; + +/** + * InvalidLabel Error + * + * Thrown when when anything but a string is given as a label. + * + * @type {function} + */ +module.exports.InvalidLabel = function (label) { + this.name = 'InvalidLabel'; + this.message = '[Lavacharts] "' + typeof label + '" is not a valid label.'; +}; +module.exports.InvalidLabel.prototype = Error.prototype; + +/** + * ElementIdNotFound Error + * + * Thrown when when anything but a string is given as a label. + * + * @type {function} + */ +module.exports.ElementIdNotFound = function (elemId) { + this.name = 'ElementIdNotFound'; + this.message = '[Lavacharts] DOM node #' + elemId + ' was not found.'; +}; +module.exports.ElementIdNotFound.prototype = Error.prototype; + +/** + * ChartNotFound Error + * + * Thrown when when the getChart() method cannot find a chart with the given label. + * + * @type {function} + */ +module.exports.ChartNotFound = function (label) { + this.name = 'ChartNotFound'; + this.message = '[Lavacharts] Chart with label "' + label + '" was not found.'; +}; +module.exports.ChartNotFound.prototype = Error.prototype; + +/** + * DashboardNotFound Error + * + * Thrown when when the getDashboard() method cannot find a chart with the given label. + * + * @type {function} + */ +module.exports.DashboardNotFound = function (label) { + this.name = 'DashboardNotFound'; + this.message = '[Lavacharts] Dashboard with label "' + label + '" was not found.'; +}; +module.exports.DashboardNotFound.prototype = Error.prototype; diff --git a/vendor/khill/lavacharts/javascript/src/lava/Lava.js b/vendor/khill/lavacharts/javascript/src/lava/Lava.js new file mode 100644 index 0000000..4e23756 --- /dev/null +++ b/vendor/khill/lavacharts/javascript/src/lava/Lava.js @@ -0,0 +1,540 @@ +/* jshint undef: true, unused: true */ +/* globals window, document, console, google, module, require */ + +/** + * lava.js module + * + * @module lava/Lava + * @author Kevin Hill + * @copyright (c) 2017, KHill Designs + * @license http://opensource.org/licenses/MIT MIT + */ +module.exports = (function() { + 'use strict'; + + var Q = require('q'); + // var Promise = require('bluebird'); + var _ = require('lodash'); + var util = require('util'); + var EventEmitter = require('events'); + + function Lava() { + /** + * Defining the Chart class within the module. + * + * @type {Chart} + */ + this.Chart = require('./Chart.js'); + + /** + * Defining the Dashboard class within the module. + * + * @type {Dashboard} + */ + this.Dashboard = require('./Dashboard.js'); + + /** + * Urls to Google's static loader + * + * @type {string} + * @public + */ + this.gstaticUrl = 'https://www.gstatic.com/charts/loader.js'; + + /** + * JSON object of config items. + * + * @type {Object} + * @private + */ + this.options = (function () { + if (typeof OPTIONS_JSON !== 'object') { + return {}; + } + + return OPTIONS_JSON; + }()); + + /** + * Array of charts stored in the module. + * + * @type {Array.} + * @private + */ + this._charts = []; + + /** + * Array of dashboards stored in the module. + * + * @type {Array.} + * @private + */ + this._dashboards = []; + + /** + * Ready callback to be called when the module is finished running. + * + * @callback _readyCallback + * @private + */ + this._readyCallback = _.noop(); + + /** + * Error definitions for the module. + * + * @private + */ + this._errors = require('./Errors.js'); + + /** + * Apply the EventEmitter methods to Lava + */ + EventEmitter.call(this); + } + + /** + * Inherit from the EventEmitter + */ + util.inherits(Lava, EventEmitter); + + /** + * Initialize the Lava.js module by attaching the event listeners + * and calling the charts' and dashboards' init methods + * + * @public + */ + Lava.prototype.init = function () { + console.log('[lava.js] Initializing'); + + var $lava = this; + var readyCount = 0; + + this.on('ready', function (renderable) { + console.log('[lava.js] ' + renderable.uuid() + ' -> ready'); + + readyCount++; + + if (readyCount === $lava._getRenderables().length) { + console.log('[lava.js] Loading Google'); + + $lava._loadGoogle().then(function() { + return $lava._mapRenderables(function (renderable) { + console.log('[lava.js] ' + renderable.uuid() + ' -> configuring'); + + return renderable.configure(); + }); + }).then(function() { + return $lava._mapRenderables(function (renderable) { + console.log('[lava.js] ' + renderable.uuid() + ' -> rendering'); + + return renderable.render(); + }); + }).then(function() { + console.log('[lava.js] Ready, firing ready callback'); + + $lava._readyCallback(); + }); + } + }); + }; + + /** + * Runs the Lava.js module by calling all the renderables' init methods + * + * @public + */ + Lava.prototype.run = function () { + this.init(); + + this._forEachRenderable(function (renderable) { + console.log('[lava.js] ' + renderable.uuid() + ' -> initializing'); + + renderable.init(); + }); + }; + + /** + * Stores a renderable lava object within the module. + * + * @param {Chart|Dashboard} renderable + */ + Lava.prototype.store = function (renderable) { + if (renderable instanceof this.Chart) { + this.storeChart(renderable); + } + + if (renderable instanceof this.Dashboard) { + this.storeDashboard(renderable); + } + }; + + /** + * Assigns a callback for when the charts are ready to be interacted with. + * + * This is used to wrap calls to lava.loadData() or lava.loadOptions() + * to protect against accessing charts that aren't loaded yet + * + * @public + * @param {Function} callback + */ + Lava.prototype.ready = function (callback) { + if (typeof callback !== 'function') { + throw new this._errors.InvalidCallback(callback); + } + + this._readyCallback = callback; + }; + + /** + * Event wrapper for chart events. + * + * + * Used internally when events are applied so the user event function has + * access to the chart within the event callback. + * + * @param {Object} event + * @param {Object} lavachart + * @param {Function} callback + * @return {Function} + */ + Lava.prototype.event = function (event, lavachart, callback) { + if (typeof callback !== 'function') { + throw new this._errors.InvalidCallback(callback); + } + + return callback(event, lavachart.chart, lavachart.data); + }; + + /** + * Loads new data into the chart and redraws. + * + * + * Used with an AJAX call to a PHP method returning DataTable->toJson(), + * a chart can be dynamically update in page, without reloads. + * + * @public + * @param {string} label + * @param {string} json + * @param {Function} callback + */ + Lava.prototype.loadData = function (label, json, callback) { + if (typeof callback === 'undefined') { + callback = _.noop; + } + + if (typeof callback !== 'function') { + throw new this._errors.InvalidCallback(callback); + } + + this.getChart(label, function (chart) { + if (typeof json.data !== 'undefined') { + chart.setData(json.data); + } else { + chart.setData(json); + } + + if (typeof json.formats !== 'undefined') { + chart.applyFormats(json.formats); + } + + chart.redraw(); + + callback(chart); + }); + }; + + /** + * Loads new options into a chart and redraws. + * + * + * Used with an AJAX call, or javascript events, to load a new array of options into a chart. + * This can be used to update a chart dynamically, without reloads. + * + * @public + * @param {string} label + * @param {string} json + * @param {Function} callback + */ + Lava.prototype.loadOptions = function (label, json, callback) { + if (typeof callback === 'undefined') { + callback = callback || _.noop; + } + + if (typeof callback !== 'function') { + throw new this._errors.InvalidCallback(callback); + } + + this.getChart(label, function (chart) { + chart.setOptions(json); + + chart.redraw(); + + callback(chart); + }); + }; + + /** + * Redraws all of the registered charts on screen. + * + * This method is attached to the window resize event with a 300ms debounce + * to make the charts responsive to the browser resizing. + */ + Lava.prototype.redrawCharts = function() { + this._forEachRenderable(function (renderable) { + console.log('[lava.js] ' + renderable.uuid() + ' -> redrawing'); + + var redraw = _.bind(renderable.redraw, renderable); + + redraw(); + }); + }; + + /** + * Create a new Chart. + * + * @public + * @param {string} type Type of chart to create + * @param {string} label Label for the chart + * @return {Chart} + */ + Lava.prototype.createChart = function (type, label) { + return new this.Chart(type, label); + }; + + /** + * Stores a chart within the module. + * + * @public + * @param {Chart} chart + */ + Lava.prototype.storeChart = function (chart) { + this._charts.push(chart); + }; + + /** + * Returns the LavaChart javascript objects + * + * + * The LavaChart object holds all the user defined properties such as data, options, formats, + * the GoogleChart object, and relative methods for internal use. + * + * The GoogleChart object is available as ".chart" from the returned LavaChart. + * It can be used to access any of the available methods such as + * getImageURI() or getChartLayoutInterface(). + * See https://google-developers.appspot.com/chart/interactive/docs/gallery/linechart#methods + * for some examples relative to LineCharts. + * + * @public + * @param {string} label + * @param {Function} callback + * @throws InvalidLabel + * @throws InvalidCallback + * @throws ChartNotFound + */ + Lava.prototype.getChart = function (label, callback) { + if (typeof label !== 'string') { + throw new this._errors.InvalidLabel(label); + } + + if (typeof callback !== 'function') { + throw new this._errors.InvalidCallback(callback); + } + + var chart = _.find(this._charts, {label: label}); + + if (!chart) { + throw new this._errors.ChartNotFound(label); + } + + callback(chart); + }; + + /** + * Create a new Dashboard with a given label. + * + * @public + * @param {string} label + * @return {Dashboard} + */ + Lava.prototype.createDashboard = function (label) { + return new this.Dashboard(label); + }; + + /** + * Stores a dashboard within the module. + * + * @public + * @param {Dashboard} dash + */ + Lava.prototype.storeDashboard = function (dash) { + this._dashboards.push(dash); + }; + + /** + * Retrieve a Dashboard from Lava.js + * + * @public + * @param {string} label Dashboard label + * @param {Function} callback Callback function + * @throws InvalidLabel + * @throws InvalidCallback + * @throws DashboardNotFound + */ + Lava.prototype.getDashboard = function (label, callback) { + if (typeof label !== 'string') { + throw new this._errors.InvalidLabel(label); + } + + if (typeof callback !== 'function') { + throw new this._errors.InvalidCallback(callback); + } + + var dash = _.find(this._dashboards, {label: label}); + + if (dash instanceof this.Dashboard === false) { + throw new this._errors.DashboardNotFound(label); + } + + callback(dash); + }; + + /** + * Returns an array with the charts and dashboards. + * + * @private + * @return {Array} + */ + Lava.prototype._getRenderables = function () { + return _.concat(this._charts, this._dashboards); + }; + + /** + * Applies the callback to each of the charts and dashboards. + * + * @private + * @param {Function} callback + */ + Lava.prototype._forEachRenderable = function (callback) { + _.forEach(this._getRenderables(), callback); + }; + + /** + * Applies the callback and builds an array of return values + * for each of the charts and dashboards. + * + * @private + * @param {Function} callback + * @return {Array} + */ + Lava.prototype._mapRenderables = function (callback) { + return _.map(this._getRenderables(), callback); + }; + + /** + * Returns an array of the google packages to load. + * + * @private + * @return {Array} + */ + Lava.prototype._getPackages = function () { + return _.union( + _.map(this._charts, 'package'), + _.flatten(_.map(this._dashboards, 'packages')) + ); + }; + + /** + * Check if Google's Static Loader is in page. + * + * @private + * @returns {boolean} + */ + Lava.prototype._googleIsLoaded = function () { + var scripts = document.getElementsByTagName('script'); + var loaded = false; + + for (var i = scripts.length; i--;) { + if (scripts[i].src === this.gstaticUrl) { + loaded = true; + } + } + + return loaded; + }; + + /** + * Load the Google Static Loader and resolve the promise when ready. + * + * @private + * @returns {Promise} + */ + Lava.prototype._loadGoogle = function () { + var $lava = this; + var deferred = Q.defer(); + var script = this._createScriptTag(deferred); + + if (this._googleIsLoaded()) { + console.log('[lava.js] Static loader found, initializing window.google'); + + $lava._googleChartLoader(deferred); + } else { + console.log('[lava.js] Static loader not found, appending to head'); + + document.head.appendChild(script); + } + + return deferred.promise; + }; + + /** + * Create a new script tag for the Google Static Loader. + * + * @private + * @param {Promise} deferred + * @returns {Element} + */ + Lava.prototype._createScriptTag = function (deferred) { + var script = document.createElement('script'); + var $lava = this; + + script.type = 'text/javascript'; + script.async = true; + script.src = this.gstaticUrl; + script.onload = script.onreadystatechange = function (event) { + event = event || window.event; + + if (event.type === 'load' || (/loaded|complete/.test(this.readyState))) { + this.onload = this.onreadystatechange = null; + + $lava._googleChartLoader(deferred); + } + }; + + return script; + }; + + /** + * Runs the Google chart loader and resolves the promise. + * + * @param {Promise} deferred + * @private + */ + Lava.prototype._googleChartLoader = function (deferred) { + var config = { + packages: this._getPackages(), + language: this.options.locale + }; + + if (this.options.maps_api_key !== '') { + config.mapsApiKey = this.options.maps_api_key; + } + + console.log('[lava.js] Google loaded with options:', config); + + google.charts.load('current', config); + + google.charts.setOnLoadCallback(deferred.resolve); + }; + + return new Lava(); +}()); diff --git a/vendor/khill/lavacharts/javascript/src/lava/Utils.js b/vendor/khill/lavacharts/javascript/src/lava/Utils.js new file mode 100644 index 0000000..7f65248 --- /dev/null +++ b/vendor/khill/lavacharts/javascript/src/lava/Utils.js @@ -0,0 +1,22 @@ +/* jshint undef: true, unused: true */ +/* globals exports, window */ + +/** + * Slightly modified event attachment handler. + * + * Credit to Alex V. + * + * @link https://stackoverflow.com/users/327934/alex-v + * @link http://stackoverflow.com/a/3150139 + * @param {Function} callback + */ +exports.addResizeEvent = function (callback) { + if (window === null || typeof(window) === 'undefined') return; + if (window.addEventListener) { + window.addEventListener('resize', callback, false); + } else if (window.attachEvent) { + window.attachEvent('onresize', callback); + } else { + window['onresize'] = callback; + } +}; diff --git a/vendor/khill/lavacharts/javascript/templates/chart.tmpl.js b/vendor/khill/lavacharts/javascript/templates/chart.tmpl.js new file mode 100644 index 0000000..2296706 --- /dev/null +++ b/vendor/khill/lavacharts/javascript/templates/chart.tmpl.js @@ -0,0 +1,43 @@ +/* jshint undef: true, unused: true */ +/* globals lava, google */ + +(function(){ + "use strict"; + + var $chart = lava.createChart('', ''); + + $chart.init = function() { + $chart.package = ''; + $chart.setElement(''); + $chart.setPngOutput(); + + $chart.configure = function () { + $chart.render = function (data) { + $chart.setData(); + + $chart.options = ; + + $chart.chart = new ($chart.element); + + + + + $chart.chart.draw($chart.data, $chart.options); + + if ($chart.pngOutput === true) { + $chart.drawPng(); + } + + $chart.promises.rendered.resolve(); + return $chart.promises.rendered.promise; + }; + + $chart.promises.configure.resolve(); + return $chart.promises.configure.promise; + }; + + lava.emit('ready', $chart); + }; + + lava.store($chart); +})(); diff --git a/vendor/khill/lavacharts/javascript/templates/dashboard.tmpl.js b/vendor/khill/lavacharts/javascript/templates/dashboard.tmpl.js new file mode 100644 index 0000000..be049bf --- /dev/null +++ b/vendor/khill/lavacharts/javascript/templates/dashboard.tmpl.js @@ -0,0 +1,34 @@ +/* jshint undef: true, unused: true */ +/* globals lava, google */ + +(function(){ + "use strict"; + + var $dash = lava.createDashboard('