vendor
This commit is contained in:
@@ -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]
|
||||
|
||||
10
vendor/cakephp/chronos/Dockerfile
vendored
Normal file
10
vendor/cakephp/chronos/Dockerfile
vendored
Normal file
@@ -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' ]
|
||||
20
vendor/cakephp/chronos/LICENSE
vendored
Normal file
20
vendor/cakephp/chronos/LICENSE
vendored
Normal file
@@ -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.
|
||||
147
vendor/cakephp/chronos/README.md
vendored
Normal file
147
vendor/cakephp/chronos/README.md
vendored
Normal file
@@ -0,0 +1,147 @@
|
||||
# CakePHP Chronos
|
||||
|
||||
[](LICENSE)
|
||||
[](https://travis-ci.org/cakephp/chronos)
|
||||
[](https://coveralls.io/r/cakephp/chronos?branch=master)
|
||||
[](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
|
||||
<?php
|
||||
require 'vendor/autoload.php';
|
||||
|
||||
use Cake\Chronos\Chronos;
|
||||
|
||||
printf("Now: %s", Chronos::now());
|
||||
```
|
||||
|
||||
# Differences with nesbot/carbon
|
||||
|
||||
The biggest and main difference is that `Chronos` extends `DateTimeImmutable` instead of `DateTime`.
|
||||
Immutability for date values has proven to be a great way of avoiding bugs and reduce the amount of code,
|
||||
since developers don't have to manually copy the instance every time they need a change.
|
||||
|
||||
Another important feature it offers is the `Date` class, which is used for representing dates without time (calendar dates).
|
||||
Any time method called on this type of object is basically a no-op.
|
||||
|
||||
A minor but still noticeable difference is that `Chronos` has no external dependencies, it is completely standalone.
|
||||
|
||||
Finally, Chronos is faster than Carbon as it has been optimized for the creation of hundreds of instances with minimal
|
||||
overhead.
|
||||
|
||||
Chronos also strives for HHVM compatibility, this library can be used safely with HHVM 3.11.
|
||||
|
||||
# Migrating from Carbon
|
||||
|
||||
|
||||
First add `cakephp/chronos` to your `composer.json`:
|
||||
|
||||
```shell
|
||||
php composer.phar require cakephp/chronos
|
||||
```
|
||||
|
||||
By default Chronos includes a compatibility script that creates aliases for the
|
||||
relevant Carbon classes. This will let most applications upgrade with very
|
||||
little effort. If you'd like to permanently update your code, you will
|
||||
need to update imports and typehints. Assuming `src` contains the files you
|
||||
want to migrate, we could use the following to update files:
|
||||
|
||||
```
|
||||
# Replace imports
|
||||
find ./src -type f -exec sed -i '' 's/use Carbon\\CarbonInterval/use Cake\\Chronos\\ChronosInterval/g' {} \;
|
||||
find ./src -type f -exec sed -i '' 's/use Carbon\\Carbon/use Cake\\Chronos\\Chronos/g' {} \;
|
||||
|
||||
# Replace typehints and extensions
|
||||
find ./src -type f -exec sed -i '' 's/CarbonInterval/ChronosInterval/g' {} \;
|
||||
find ./src -type f -exec sed -i '' 's/Carbon/Chronos/g' {} \;
|
||||
```
|
||||
|
||||
At this point your code should mostly work as it did before. The biggest
|
||||
difference is that Chronos instances are immutable.
|
||||
|
||||
## Immutable Object Changes
|
||||
|
||||
Immutable objects have a number of advantages:
|
||||
|
||||
1. Using immutable objects is always free of side-effects.
|
||||
2. Dates and times don't accidentally change underneath other parts of your code.
|
||||
|
||||
With those benefits in mind, there are a few things you need to keep in mind
|
||||
when modifying immutable objects:
|
||||
|
||||
```php
|
||||
// This will lose modifications
|
||||
$date = new Chronos('2015-10-21 16:29:00');
|
||||
$date->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).
|
||||
62
vendor/cakephp/chronos/composer.json
vendored
Normal file
62
vendor/cakephp/chronos/composer.json
vendored
Normal file
@@ -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"
|
||||
}
|
||||
}
|
||||
19
vendor/cakephp/chronos/docs.Dockerfile
vendored
Normal file
19
vendor/cakephp/chronos/docs.Dockerfile
vendored
Normal file
@@ -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
|
||||
0
vendor/cakephp/chronos/docs/config/__init__.py
vendored
Normal file
0
vendor/cakephp/chronos/docs/config/__init__.py
vendored
Normal file
46
vendor/cakephp/chronos/docs/config/all.py
vendored
Normal file
46
vendor/cakephp/chronos/docs/config/all.py
vendored
Normal file
@@ -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/'
|
||||
9
vendor/cakephp/chronos/docs/en/conf.py
vendored
Normal file
9
vendor/cakephp/chronos/docs/en/conf.py
vendored
Normal file
@@ -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'
|
||||
7
vendor/cakephp/chronos/docs/en/contents.rst
vendored
Normal file
7
vendor/cakephp/chronos/docs/en/contents.rst
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: CakePHP Chronos
|
||||
|
||||
/index
|
||||
|
||||
API <https://api.cakephp.org/chronos>
|
||||
313
vendor/cakephp/chronos/docs/en/index.rst
vendored
Normal file
313
vendor/cakephp/chronos/docs/en/index.rst
vendored
Normal file
@@ -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.
|
||||
9
vendor/cakephp/chronos/docs/fr/conf.py
vendored
Normal file
9
vendor/cakephp/chronos/docs/fr/conf.py
vendored
Normal file
@@ -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'
|
||||
7
vendor/cakephp/chronos/docs/fr/contents.rst
vendored
Normal file
7
vendor/cakephp/chronos/docs/fr/contents.rst
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: CakePHP Chronos
|
||||
|
||||
/index
|
||||
|
||||
API <https://api.cakephp.org/chronos>
|
||||
306
vendor/cakephp/chronos/docs/fr/index.rst
vendored
Normal file
306
vendor/cakephp/chronos/docs/fr/index.rst
vendored
Normal file
@@ -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.
|
||||
9
vendor/cakephp/chronos/docs/ja/conf.py
vendored
Normal file
9
vendor/cakephp/chronos/docs/ja/conf.py
vendored
Normal file
@@ -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'
|
||||
7
vendor/cakephp/chronos/docs/ja/contents.rst
vendored
Normal file
7
vendor/cakephp/chronos/docs/ja/contents.rst
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: CakePHP Chronos
|
||||
|
||||
/index
|
||||
|
||||
API <https://api.cakephp.org/chronos>
|
||||
304
vendor/cakephp/chronos/docs/ja/index.rst
vendored
Normal file
304
vendor/cakephp/chronos/docs/ja/index.rst
vendored
Normal file
@@ -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`` を設定して
|
||||
再び呼び出してください。
|
||||
9
vendor/cakephp/chronos/docs/pt/conf.py
vendored
Normal file
9
vendor/cakephp/chronos/docs/pt/conf.py
vendored
Normal file
@@ -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'
|
||||
7
vendor/cakephp/chronos/docs/pt/contents.rst
vendored
Normal file
7
vendor/cakephp/chronos/docs/pt/contents.rst
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: CakePHP Chronos
|
||||
|
||||
/index
|
||||
|
||||
API <https://api.cakephp.org/chronos>
|
||||
285
vendor/cakephp/chronos/docs/pt/index.rst
vendored
Normal file
285
vendor/cakephp/chronos/docs/pt/index.rst
vendored
Normal file
@@ -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
|
||||
|
||||
212
vendor/cakephp/chronos/src/Chronos.php
vendored
Normal file
212
vendor/cakephp/chronos/src/Chronos.php
vendored
Normal file
@@ -0,0 +1,212 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
* @copyright Copyright (c) Brian Nesbitt <brian@nesbot.com>
|
||||
* @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;
|
||||
}
|
||||
}
|
||||
1254
vendor/cakephp/chronos/src/ChronosInterface.php
vendored
Normal file
1254
vendor/cakephp/chronos/src/ChronosInterface.php
vendored
Normal file
File diff suppressed because it is too large
Load Diff
526
vendor/cakephp/chronos/src/ChronosInterval.php
vendored
Normal file
526
vendor/cakephp/chronos/src/ChronosInterval.php
vendored
Normal file
@@ -0,0 +1,526 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
* @copyright Copyright (c) Brian Nesbitt <brian@nesbot.com>
|
||||
* @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;
|
||||
}
|
||||
}
|
||||
150
vendor/cakephp/chronos/src/Date.php
vendored
Normal file
150
vendor/cakephp/chronos/src/Date.php
vendored
Normal file
@@ -0,0 +1,150 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
* @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 date object that converts all time components into 00:00:00.
|
||||
*
|
||||
* This class is useful when you want to represent a calendar date and ignore times.
|
||||
* This means that timezone changes take no effect as a calendar date exists in all timezones
|
||||
* in each respective date.
|
||||
*
|
||||
* @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 Date extends DateTimeImmutable implements ChronosInterface
|
||||
{
|
||||
use Traits\ComparisonTrait;
|
||||
use Traits\DifferenceTrait;
|
||||
use Traits\FactoryTrait;
|
||||
use Traits\FormattingTrait;
|
||||
use Traits\FrozenTimeTrait;
|
||||
use Traits\MagicPropertyTrait;
|
||||
use Traits\ModifierTrait;
|
||||
use Traits\TestingAidTrait;
|
||||
|
||||
/**
|
||||
* Format to use for __toString method when type juggling occurs.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected static $toStringFormat = 'Y-m-d';
|
||||
|
||||
/**
|
||||
* Create a new Immutable Date instance.
|
||||
*
|
||||
* Please see the testing aids section (specifically static::setTestNow())
|
||||
* for more on the possibility of this constructor returning a test instance.
|
||||
*
|
||||
* Date instances lack time components, however due to limitations in PHP's
|
||||
* internal Datetime object the time will always be set to 00:00:00, and the
|
||||
* timezone will always be UTC. Normalizing the timezone allows for
|
||||
* subtraction/addition to have deterministic results.
|
||||
*
|
||||
* @param string|null $time Fixed or relative time
|
||||
*/
|
||||
public function __construct($time = 'now')
|
||||
{
|
||||
$tz = new DateTimeZone('UTC');
|
||||
$testNow = Chronos::getTestNow();
|
||||
if ($testNow === null) {
|
||||
$time = $this->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;
|
||||
}
|
||||
}
|
||||
103
vendor/cakephp/chronos/src/DifferenceFormatter.php
vendored
Normal file
103
vendor/cakephp/chronos/src/DifferenceFormatter.php
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
* @copyright Copyright (c) Brian Nesbitt <brian@nesbot.com>
|
||||
* @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]);
|
||||
}
|
||||
}
|
||||
149
vendor/cakephp/chronos/src/MutableDate.php
vendored
Normal file
149
vendor/cakephp/chronos/src/MutableDate.php
vendored
Normal file
@@ -0,0 +1,149 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
* @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;
|
||||
|
||||
/**
|
||||
* A mutable date object that converts all time components into 00:00:00.
|
||||
*
|
||||
* This class is useful when you want to represent a calendar date and ignore times.
|
||||
* This means that timezone changes take no effect as a calendar date exists in all timezones
|
||||
* in each respective date.
|
||||
*
|
||||
* @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 MutableDate extends DateTime implements ChronosInterface
|
||||
{
|
||||
use Traits\ComparisonTrait;
|
||||
use Traits\DifferenceTrait;
|
||||
use Traits\FactoryTrait;
|
||||
use Traits\FormattingTrait;
|
||||
use Traits\FrozenTimeTrait;
|
||||
use Traits\MagicPropertyTrait;
|
||||
use Traits\ModifierTrait;
|
||||
use Traits\TestingAidTrait;
|
||||
|
||||
/**
|
||||
* Format to use for __toString method when type juggling occurs.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected static $toStringFormat = 'Y-m-d';
|
||||
|
||||
/**
|
||||
* Create a new mutable Date instance.
|
||||
*
|
||||
* Please see the testing aids section (specifically static::setTestNow())
|
||||
* for more on the possibility of this constructor returning a test instance.
|
||||
*
|
||||
* Date instances lack time components, however due to limitations in PHP's
|
||||
* internal Datetime object the time will always be set to 00:00:00, and the
|
||||
* timezone will always be UTC. Normalizing the timezone allows for
|
||||
* subtraction/addition to have deterministic results.
|
||||
*
|
||||
* @param string|null $time Fixed or relative time
|
||||
*/
|
||||
public function __construct($time = 'now')
|
||||
{
|
||||
$tz = new DateTimeZone('UTC');
|
||||
|
||||
$testNow = Chronos::getTestNow();
|
||||
if ($testNow === null) {
|
||||
$time = $this->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;
|
||||
}
|
||||
}
|
||||
196
vendor/cakephp/chronos/src/MutableDateTime.php
vendored
Normal file
196
vendor/cakephp/chronos/src/MutableDateTime.php
vendored
Normal file
@@ -0,0 +1,196 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
* @copyright Copyright (c) Brian Nesbitt <brian@nesbot.com>
|
||||
* @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;
|
||||
}
|
||||
}
|
||||
499
vendor/cakephp/chronos/src/Traits/ComparisonTrait.php
vendored
Normal file
499
vendor/cakephp/chronos/src/Traits/ComparisonTrait.php
vendored
Normal file
@@ -0,0 +1,499 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
* @copyright Copyright (c) Brian Nesbitt <brian@nesbot.com>
|
||||
* @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;
|
||||
}
|
||||
}
|
||||
31
vendor/cakephp/chronos/src/Traits/CopyTrait.php
vendored
Normal file
31
vendor/cakephp/chronos/src/Traits/CopyTrait.php
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
* @copyright Copyright (c) Brian Nesbitt <brian@nesbot.com>
|
||||
* @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);
|
||||
}
|
||||
}
|
||||
302
vendor/cakephp/chronos/src/Traits/DifferenceTrait.php
vendored
Normal file
302
vendor/cakephp/chronos/src/Traits/DifferenceTrait.php
vendored
Normal file
@@ -0,0 +1,302 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
* @copyright Copyright (c) Brian Nesbitt <brian@nesbot.com>
|
||||
* @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;
|
||||
}
|
||||
}
|
||||
280
vendor/cakephp/chronos/src/Traits/FactoryTrait.php
vendored
Normal file
280
vendor/cakephp/chronos/src/Traits/FactoryTrait.php
vendored
Normal file
@@ -0,0 +1,280 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
* @copyright Copyright (c) Brian Nesbitt <brian@nesbot.com>
|
||||
* @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;
|
||||
}
|
||||
}
|
||||
259
vendor/cakephp/chronos/src/Traits/FormattingTrait.php
vendored
Normal file
259
vendor/cakephp/chronos/src/Traits/FormattingTrait.php
vendored
Normal file
@@ -0,0 +1,259 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
* @copyright Copyright (c) Brian Nesbitt <brian@nesbot.com>
|
||||
* @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');
|
||||
}
|
||||
}
|
||||
186
vendor/cakephp/chronos/src/Traits/FrozenTimeTrait.php
vendored
Normal file
186
vendor/cakephp/chronos/src/Traits/FrozenTimeTrait.php
vendored
Normal file
@@ -0,0 +1,186 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
* @link http://cakephp.org CakePHP(tm) Project
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
namespace Cake\Chronos\Traits;
|
||||
|
||||
use DateTimeInterface;
|
||||
|
||||
/**
|
||||
* A trait for freezing the time aspect of a DateTime.
|
||||
*
|
||||
* Used in making calendar date objects, both mutable and immutable.
|
||||
*/
|
||||
trait FrozenTimeTrait
|
||||
{
|
||||
use RelativeKeywordTrait;
|
||||
|
||||
/**
|
||||
* Removes the time components from an input string.
|
||||
*
|
||||
* Used to ensure constructed objects always lack time.
|
||||
*
|
||||
* @param string|int $time The input time. Integer values will be assumed
|
||||
* to be in UTC. The 'now' and '' values will use the current local time.
|
||||
* @return string The date component of $time.
|
||||
*/
|
||||
protected function stripTime($time)
|
||||
{
|
||||
if (is_int($time) || ctype_digit($time)) {
|
||||
return gmdate('Y-m-d 00:00:00', $time);
|
||||
}
|
||||
if ($time instanceof DateTimeInterface) {
|
||||
$time = $time->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;
|
||||
}
|
||||
}
|
||||
131
vendor/cakephp/chronos/src/Traits/MagicPropertyTrait.php
vendored
Normal file
131
vendor/cakephp/chronos/src/Traits/MagicPropertyTrait.php
vendored
Normal file
@@ -0,0 +1,131 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* Redistributions of files must retain the above copyright notice. Provides various operator methods for datetime
|
||||
* objects.
|
||||
*
|
||||
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
* @copyright Copyright (c) Brian Nesbitt <brian@nesbot.com>
|
||||
* @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;
|
||||
}
|
||||
}
|
||||
1082
vendor/cakephp/chronos/src/Traits/ModifierTrait.php
vendored
Normal file
1082
vendor/cakephp/chronos/src/Traits/ModifierTrait.php
vendored
Normal file
File diff suppressed because it is too large
Load Diff
58
vendor/cakephp/chronos/src/Traits/RelativeKeywordTrait.php
vendored
Normal file
58
vendor/cakephp/chronos/src/Traits/RelativeKeywordTrait.php
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* Redistributions of files must retain the above copyright notice. Provides various operator methods for datetime
|
||||
* objects.
|
||||
*
|
||||
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
* @copyright Copyright (c) Brian Nesbitt <brian@nesbot.com>
|
||||
* @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;
|
||||
}
|
||||
}
|
||||
59
vendor/cakephp/chronos/src/Traits/TestingAidTrait.php
vendored
Normal file
59
vendor/cakephp/chronos/src/Traits/TestingAidTrait.php
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* Redistributions of files must retain the above copyright notice. Provides various operator methods for datetime
|
||||
* objects.
|
||||
*
|
||||
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
* @copyright Copyright (c) Brian Nesbitt <brian@nesbot.com>
|
||||
* @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();
|
||||
}
|
||||
}
|
||||
60
vendor/cakephp/chronos/src/Traits/TimezoneTrait.php
vendored
Normal file
60
vendor/cakephp/chronos/src/Traits/TimezoneTrait.php
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* Redistributions of files must retain the above copyright notice. Provides various operator methods for datetime
|
||||
* objects.
|
||||
*
|
||||
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
* @copyright Copyright (c) Brian Nesbitt <brian@nesbot.com>
|
||||
* @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;
|
||||
}
|
||||
}
|
||||
93
vendor/cakephp/chronos/src/Translator.php
vendored
Normal file
93
vendor/cakephp/chronos/src/Translator.php
vendored
Normal file
@@ -0,0 +1,93 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
* @link http://cakephp.org CakePHP(tm) Project
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
*/
|
||||
namespace Cake\Chronos;
|
||||
|
||||
/**
|
||||
* Basic english only 'translator' for diffForHumans()
|
||||
*/
|
||||
class Translator
|
||||
{
|
||||
/**
|
||||
* Translation strings.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public static $strings = [
|
||||
'year' => '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 '';
|
||||
}
|
||||
}
|
||||
20
vendor/cakephp/chronos/src/carbon_compat.php
vendored
Normal file
20
vendor/cakephp/chronos/src/carbon_compat.php
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
*
|
||||
* Licensed under The MIT License
|
||||
* Redistributions of files must retain the above copyright notice.
|
||||
*
|
||||
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
* @copyright Copyright (c) Brian Nesbitt <brian@nesbot.com>
|
||||
* @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');
|
||||
}
|
||||
2
vendor/composer/ClassLoader.php
vendored
2
vendor/composer/ClassLoader.php
vendored
@@ -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) {
|
||||
|
||||
280
vendor/composer/autoload_classmap.php
vendored
280
vendor/composer/autoload_classmap.php
vendored
@@ -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',
|
||||
|
||||
1
vendor/composer/autoload_files.php
vendored
1
vendor/composer/autoload_files.php
vendored
@@ -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',
|
||||
|
||||
3
vendor/composer/autoload_psr4.php
vendored
3
vendor/composer/autoload_psr4.php
vendored
@@ -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'),
|
||||
);
|
||||
|
||||
299
vendor/composer/autoload_static.php
vendored
299
vendor/composer/autoload_static.php
vendored
@@ -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',
|
||||
|
||||
198
vendor/composer/installed.json
vendored
198
vendor/composer/installed.json
vendored
@@ -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",
|
||||
|
||||
30
vendor/khill/lavacharts/.github/CONTRIBUTING.md
vendored
Normal file
30
vendor/khill/lavacharts/.github/CONTRIBUTING.md
vendored
Normal file
@@ -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.)
|
||||
18
vendor/khill/lavacharts/.github/ISSUE_TEMPLATE.md
vendored
Normal file
18
vendor/khill/lavacharts/.github/ISSUE_TEMPLATE.md
vendored
Normal file
@@ -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
|
||||
```
|
||||
24
vendor/khill/lavacharts/.gitlab-ci.yml
vendored
Normal file
24
vendor/khill/lavacharts/.gitlab-ci.yml
vendored
Normal file
@@ -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
|
||||
226
vendor/khill/lavacharts/CHANGELOG.md
vendored
Normal file
226
vendor/khill/lavacharts/CHANGELOG.md
vendored
Normal file
@@ -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
|
||||
14
vendor/khill/lavacharts/CONTRIBUTORS.md
vendored
Normal file
14
vendor/khill/lavacharts/CONTRIBUTORS.md
vendored
Normal file
@@ -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.
|
||||
23
vendor/khill/lavacharts/LICENSE
vendored
Normal file
23
vendor/khill/lavacharts/LICENSE
vendored
Normal file
@@ -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.
|
||||
248
vendor/khill/lavacharts/README.md
vendored
Normal file
248
vendor/khill/lavacharts/README.md
vendored
Normal file
@@ -0,0 +1,248 @@
|
||||
# Lavacharts 3.1.11
|
||||
|
||||
[](https://packagist.org/packages/khill/lavacharts)
|
||||
[](http://opensource.org/licenses/MIT)
|
||||
[](https://php.net/)
|
||||
[](https://gitter.im/kevinkhill/lavacharts?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
|
||||
[](https://www.paypal.me/kevinkhill/)
|
||||
|
||||
Lavacharts is a graphing / chart library for PHP5.4+ that wraps the Google Chart API.
|
||||
|
||||
Stable:
|
||||
[](https://github.com/kevinkhill/lavacharts/releases)
|
||||
[](https://travis-ci.org/kevinkhill/lavacharts)
|
||||
[](https://coveralls.io/r/kevinkhill/lavacharts?branch=3.1)
|
||||
|
||||
Dev:
|
||||
[](https://github.com/kevinkhill/lavacharts/tree/master)
|
||||
[](https://travis-ci.org/kevinkhill/lavacharts)
|
||||
[](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
|
||||
<?php
|
||||
// config/app.php
|
||||
|
||||
// ...
|
||||
'providers' => [
|
||||
// ...
|
||||
|
||||
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
|
||||
<?php
|
||||
// app/config/app.php
|
||||
|
||||
// ...
|
||||
'providers' => 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
|
||||
<?php
|
||||
// app/AppKernel.php
|
||||
|
||||
class AppKernel extends Kernel
|
||||
{
|
||||
// ..
|
||||
|
||||
public function registerBundles()
|
||||
{
|
||||
$bundles = array(
|
||||
// ...
|
||||
|
||||
new Khill\Lavacharts\Symfony\Bundle\LavachartsBundle(),
|
||||
);
|
||||
}
|
||||
}
|
||||
```
|
||||
### Import Config
|
||||
Add the service definition to the `app/config/config.yml` file
|
||||
```yaml
|
||||
imports:
|
||||
# ...
|
||||
- { resource: "@LavachartsBundle/Resources/config/services.yml"
|
||||
```
|
||||
|
||||
|
||||
# Usage
|
||||
The creation of charts is separated into two parts:
|
||||
First, within a route or controller, you define the chart, the data table, and the customization of the output.
|
||||
|
||||
Second, within a view, you use one line and the library will output all the necessary JavaScript code for you.
|
||||
|
||||
## Basic Example
|
||||
Here is an example of the simplest chart you can create: A line chart with one dataset and a title, no configuration.
|
||||
|
||||
### Controller
|
||||
Setting up your first chart.
|
||||
|
||||
#### Data
|
||||
```php
|
||||
$data = $lava->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 `<div id="stocks-div"></div>`
|
||||
- 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
|
||||
<?= $lava->render('LineChart', 'Stocks', 'stocks-div'); ?>
|
||||
```
|
||||
|
||||
Or if you have multiple charts, you can condense theh view code withL
|
||||
```php
|
||||
<?= $lava->renderAll(); ?>
|
||||
```
|
||||
|
||||
|
||||
# Changelog
|
||||
The complete changelog can be found [here](https://github.com/kevinkhill/lavacharts/wiki/Changelog)
|
||||
|
||||
## Stargazers over time
|
||||
|
||||
[](https://starchart.cc/kevinkhill/lavacharts)
|
||||
78
vendor/khill/lavacharts/composer.json
vendored
Normal file
78
vendor/khill/lavacharts/composer.json
vendored
Normal file
@@ -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"
|
||||
}
|
||||
2097
vendor/khill/lavacharts/composer.lock
generated
vendored
Normal file
2097
vendor/khill/lavacharts/composer.lock
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
4
vendor/khill/lavacharts/javascript/dist/lava.js
vendored
Normal file
4
vendor/khill/lavacharts/javascript/dist/lava.js
vendored
Normal file
File diff suppressed because one or more lines are too long
17
vendor/khill/lavacharts/javascript/karma.conf.js
vendored
Normal file
17
vendor/khill/lavacharts/javascript/karma.conf.js
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
module.exports = function (config) {
|
||||
config.set({
|
||||
frameworks: ['jasmine','sinon'],
|
||||
files: [
|
||||
'./node_modules/jasmine-sinon/lib/jasmine-sinon.js',
|
||||
'./dist/lava.js',
|
||||
'./tests/lava.spec.js'
|
||||
],
|
||||
singleRun: false,
|
||||
reporters: ['dots'],
|
||||
port: 9876,
|
||||
colors: true,
|
||||
logLevel: config.LOG_ERROR,
|
||||
autoWatch: true,
|
||||
browsers: [(process.env.TRAVIS ? 'PhantomJS' : 'Chrome')]
|
||||
});
|
||||
};
|
||||
19
vendor/khill/lavacharts/javascript/phantomjs/compare.js
vendored
Normal file
19
vendor/khill/lavacharts/javascript/phantomjs/compare.js
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
/* jshint undef: true */
|
||||
/* globals module, require, phantom, window */
|
||||
"use strict";
|
||||
|
||||
var resemble = require('node-resemble-js');
|
||||
|
||||
var rendersDir = './javascript/phantomjs/renders/';
|
||||
var args = process.argv;
|
||||
var chart = args[2];
|
||||
|
||||
resemble(rendersDir + chart + '.png').compareTo(rendersDir + chart + '.png').onComplete(function (data) {
|
||||
//console.log(data);
|
||||
|
||||
if (Number(data.misMatchPercentage) <= 0.01) {
|
||||
console.log('Pass!');
|
||||
} else {
|
||||
console.log('Fail!');
|
||||
}
|
||||
});
|
||||
33
vendor/khill/lavacharts/javascript/phantomjs/render.js
vendored
Normal file
33
vendor/khill/lavacharts/javascript/phantomjs/render.js
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
/* jshint undef: true */
|
||||
/* globals module, require, phantom, window */
|
||||
"use strict";
|
||||
|
||||
var page = require('webpage').create();
|
||||
var args = require('system').args;
|
||||
|
||||
var renderOutputDir = './javascript/phantomjs/renders';
|
||||
var url = 'http://127.0.0.1:5000/';
|
||||
var chart = args[1];
|
||||
|
||||
page.onConsoleMessage = function(msg) {
|
||||
console.log(msg);
|
||||
};
|
||||
|
||||
page.open(url + chart, function (status) {
|
||||
if (status !== "success") {
|
||||
console.log('Error loading page.');
|
||||
} else {
|
||||
console.log('Page loaded, waiting on chart to render.');
|
||||
|
||||
page.onCallback = function (data) {
|
||||
page.render(renderOutputDir + '/' + chart + '.png');
|
||||
|
||||
console.log('Saved to disk.');
|
||||
|
||||
phantom.exit();
|
||||
|
||||
//console.log('CALLBACK: ' + JSON.stringify(data));
|
||||
// Prints 'CALLBACK: { "hello": "world" }'
|
||||
};
|
||||
}
|
||||
});
|
||||
44
vendor/khill/lavacharts/javascript/src/lava.entry.js
vendored
Normal file
44
vendor/khill/lavacharts/javascript/src/lava.entry.js
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
/* jshint undef: true, unused: true */
|
||||
/* globals window, require */
|
||||
|
||||
/**
|
||||
* Lava.js entry point for Browserify
|
||||
*/
|
||||
(function(){
|
||||
"use strict";
|
||||
|
||||
var window = this;
|
||||
var debounced = null;
|
||||
var debounceTimeout = 250;
|
||||
var bind = require('lodash').bind;
|
||||
var ready = require('document-ready');
|
||||
var addResizeEvent = require('./lava/Utils').addResizeEvent;
|
||||
|
||||
window.lava = require('./lava/Lava.js');
|
||||
|
||||
/**
|
||||
* Once the window is ready...
|
||||
*/
|
||||
ready(function() {
|
||||
/**
|
||||
* Adding the resize event listener for redrawing charts.
|
||||
*/
|
||||
addResizeEvent(function (event) {
|
||||
var redraw = bind(event.target.lava.redrawCharts, window.lava);
|
||||
|
||||
console.log('Window resized, redrawing charts');
|
||||
|
||||
clearTimeout(debounced);
|
||||
|
||||
debounced = setTimeout(redraw, debounceTimeout);
|
||||
});
|
||||
|
||||
/**
|
||||
* Let's go!
|
||||
*/
|
||||
|
||||
if (window.lava.options.auto_run === true) {
|
||||
window.lava.run();
|
||||
}
|
||||
});
|
||||
}.apply(window));
|
||||
162
vendor/khill/lavacharts/javascript/src/lava/Chart.js
vendored
Normal file
162
vendor/khill/lavacharts/javascript/src/lava/Chart.js
vendored
Normal file
@@ -0,0 +1,162 @@
|
||||
/* jshint undef: true */
|
||||
/* globals document, google, require, module */
|
||||
|
||||
/**
|
||||
* Chart class used for storing all the needed configuration for rendering.
|
||||
*
|
||||
* @typedef {Function} Chart
|
||||
* @property {string} label - Label for the chart.
|
||||
* @property {string} type - Type of chart.
|
||||
* @property {Object} element - Html element in which to render the chart.
|
||||
* @property {Object} chart - Google chart object.
|
||||
* @property {string} package - Type of Google chart package to load.
|
||||
* @property {boolean} pngOutput - Should the chart be displayed as a PNG.
|
||||
* @property {Object} data - Datatable for the chart.
|
||||
* @property {Object} options - Configuration options for the chart.
|
||||
* @property {Array} formats - Formatters to apply to the chart data.
|
||||
* @property {Object} promises - Promises used in the rendering chain.
|
||||
* @property {Function} init - Initializes the chart.
|
||||
* @property {Function} configure - Configures the chart.
|
||||
* @property {Function} render - Renders the chart.
|
||||
* @property {Function} uuid - Creates identification string for the chart.
|
||||
* @property {Object} _errors - Collection of errors to be thrown.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Chart module
|
||||
*
|
||||
* @class Chart
|
||||
* @module lava/Chart
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @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.<Array>} data.cols Array of column definitions
|
||||
* @param {Array.<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.<Object>} 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;
|
||||
|
||||
}());
|
||||
74
vendor/khill/lavacharts/javascript/src/lava/Dashboard.js
vendored
Normal file
74
vendor/khill/lavacharts/javascript/src/lava/Dashboard.js
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
/* jshint undef: true */
|
||||
/* globals document, google, require, module */
|
||||
|
||||
/**
|
||||
* Dashboard module
|
||||
*
|
||||
* @class Dashboard
|
||||
* @module lava/Dashboard
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @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.<Array>} data.cols Array of column definitions
|
||||
* @param {Array.<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;
|
||||
|
||||
}());
|
||||
82
vendor/khill/lavacharts/javascript/src/lava/Errors.js
vendored
Normal file
82
vendor/khill/lavacharts/javascript/src/lava/Errors.js
vendored
Normal file
@@ -0,0 +1,82 @@
|
||||
/* jshint undef: true */
|
||||
/* globals module, require */
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Errors module
|
||||
*
|
||||
* @module lava/Errors
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @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;
|
||||
540
vendor/khill/lavacharts/javascript/src/lava/Lava.js
vendored
Normal file
540
vendor/khill/lavacharts/javascript/src/lava/Lava.js
vendored
Normal file
@@ -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 <kevinkhill@gmail.com>
|
||||
* @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.<Chart>}
|
||||
* @private
|
||||
*/
|
||||
this._charts = [];
|
||||
|
||||
/**
|
||||
* Array of dashboards stored in the module.
|
||||
*
|
||||
* @type {Array.<Dashboard>}
|
||||
* @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();
|
||||
}());
|
||||
22
vendor/khill/lavacharts/javascript/src/lava/Utils.js
vendored
Normal file
22
vendor/khill/lavacharts/javascript/src/lava/Utils.js
vendored
Normal file
@@ -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;
|
||||
}
|
||||
};
|
||||
43
vendor/khill/lavacharts/javascript/templates/chart.tmpl.js
vendored
Normal file
43
vendor/khill/lavacharts/javascript/templates/chart.tmpl.js
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
/* jshint undef: true, unused: true */
|
||||
/* globals lava, google */
|
||||
|
||||
(function(){
|
||||
"use strict";
|
||||
|
||||
var $chart = lava.createChart('<chartType>', '<chartLabel>');
|
||||
|
||||
$chart.init = function() {
|
||||
$chart.package = '<chartPackage>';
|
||||
$chart.setElement('<elemId>');
|
||||
$chart.setPngOutput(<pngOutput>);
|
||||
|
||||
$chart.configure = function () {
|
||||
$chart.render = function (data) {
|
||||
$chart.setData(<chartData>);
|
||||
|
||||
$chart.options = <chartOptions>;
|
||||
|
||||
$chart.chart = new <chartClass>($chart.element);
|
||||
|
||||
<formats>
|
||||
<events>
|
||||
|
||||
$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);
|
||||
})();
|
||||
34
vendor/khill/lavacharts/javascript/templates/dashboard.tmpl.js
vendored
Normal file
34
vendor/khill/lavacharts/javascript/templates/dashboard.tmpl.js
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
/* jshint undef: true, unused: true */
|
||||
/* globals lava, google */
|
||||
|
||||
(function(){
|
||||
"use strict";
|
||||
|
||||
var $dash = lava.createDashboard('<label>');
|
||||
|
||||
$dash.init = function () {
|
||||
$dash.setElement('<elemId>');
|
||||
$dash.packages = <packages>;
|
||||
|
||||
$dash.configure = function () {
|
||||
$dash.render = function (data) {
|
||||
$dash.dashboard = new <class>($dash.element);
|
||||
|
||||
$dash.setData(<chartData>);
|
||||
|
||||
<bindings>
|
||||
|
||||
$dash.dashboard.draw($dash.data);
|
||||
|
||||
lava.emit('rendered', $dash);
|
||||
};
|
||||
|
||||
$dash.deferred.resolve();
|
||||
return $dash.deferred.promise;
|
||||
};
|
||||
|
||||
lava.emit('ready', $dash);
|
||||
};
|
||||
|
||||
lava.store($dash);
|
||||
})();
|
||||
56
vendor/khill/lavacharts/phpunit.xml
vendored
Normal file
56
vendor/khill/lavacharts/phpunit.xml
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<phpunit backupGlobals="false"
|
||||
backupStaticAttributes="false"
|
||||
bootstrap="vendor/autoload.php"
|
||||
convertErrorsToExceptions="true"
|
||||
convertNoticesToExceptions="true"
|
||||
convertWarningsToExceptions="true"
|
||||
syntaxCheck="true"
|
||||
>
|
||||
<testsuites>
|
||||
<testsuite name="core">
|
||||
<file>tests/LavachartsTest.php</file>
|
||||
<file>tests/VolcanoTest.php</file>
|
||||
</testsuite>
|
||||
<testsuite name="charts">
|
||||
<directory>tests/Charts/</directory>
|
||||
</testsuite>
|
||||
<testsuite name="dashboards">
|
||||
<directory>tests/Dashboards/</directory>
|
||||
</testsuite>
|
||||
<testsuite name="datatables">
|
||||
<directory>tests/DataTables/</directory>
|
||||
</testsuite>
|
||||
<testsuite name="javascript">
|
||||
<directory>tests/Javascript/</directory>
|
||||
</testsuite>
|
||||
<testsuite name="values">
|
||||
<directory>tests/Values/</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
|
||||
<filter>
|
||||
<blacklist>
|
||||
<directory>vendor/</directory>
|
||||
<directory>tests/</directory>
|
||||
<directory>src/Laravel/</directory>
|
||||
<directory>src/Symfony/</directory>
|
||||
</blacklist>
|
||||
</filter>
|
||||
|
||||
<logging>
|
||||
<log type="coverage-clover"
|
||||
target="build/logs/clover.xml"
|
||||
charset="UTF-8"
|
||||
highlight="false"
|
||||
lowUpperBound="35"
|
||||
highLowerBound="70" />
|
||||
<log type="testdox-html"
|
||||
target="build/logs/testdox.html" />
|
||||
</logging>
|
||||
|
||||
<listeners>
|
||||
<listener class="\Mockery\Adapter\Phpunit\TestListener" />
|
||||
</listeners>
|
||||
</phpunit>
|
||||
164
vendor/khill/lavacharts/src/Builders/ChartBuilder.php
vendored
Normal file
164
vendor/khill/lavacharts/src/Builders/ChartBuilder.php
vendored
Normal file
@@ -0,0 +1,164 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Builders;
|
||||
|
||||
use Khill\Lavacharts\Charts\ChartFactory;
|
||||
use Khill\Lavacharts\DataTables\DataTable;
|
||||
use Khill\Lavacharts\Exceptions\InvalidChartType;
|
||||
|
||||
/**
|
||||
* Class ChartBuilder
|
||||
*
|
||||
* This class is used to build charts by setting the properties, instead of trying to cover
|
||||
* everything in the constructor.
|
||||
*
|
||||
* @package Khill\Lavacharts\Builders
|
||||
* @since 3.1.0
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class ChartBuilder extends GenericBuilder
|
||||
{
|
||||
/**
|
||||
* Type of chart to create.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $type = null;
|
||||
|
||||
/**
|
||||
* Datatable for the chart.
|
||||
*
|
||||
* @var \Khill\Lavacharts\DataTables\DataTable
|
||||
*/
|
||||
protected $datatable = null;
|
||||
|
||||
/**
|
||||
* Options for the chart.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $options = [];
|
||||
|
||||
/**
|
||||
* The chart's png output override.
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
protected $pngOutput = false;
|
||||
|
||||
/**
|
||||
* The chart's material output override.
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
protected $materialOutput = false;
|
||||
|
||||
/**
|
||||
* Set the type of chart to create.
|
||||
*
|
||||
* @param string $type Type of chart.
|
||||
* @return self
|
||||
* @throws \Khill\Lavacharts\Exceptions\InvalidChartType description
|
||||
*/
|
||||
public function setType($type)
|
||||
{
|
||||
if (ChartFactory::isValidChart($type) === false) {
|
||||
throw new InvalidChartType($type);
|
||||
}
|
||||
|
||||
$this->type = $type;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the DataTable for the chart.
|
||||
*
|
||||
* @param \Khill\Lavacharts\DataTables\DataTable $datatable
|
||||
* @return self
|
||||
*/
|
||||
public function setDatatable(DataTable $datatable = null)
|
||||
{
|
||||
$this->datatable = $datatable;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the options for the chart.
|
||||
*
|
||||
* @param array $options
|
||||
* @return self
|
||||
*/
|
||||
public function setOptions($options)
|
||||
{
|
||||
$this->options = $options;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the charts output override.
|
||||
*
|
||||
* @param bool $png
|
||||
* @return self
|
||||
*/
|
||||
public function setPngOutput($png)
|
||||
{
|
||||
$this->pngOutput = (is_bool($png) ? $png : false);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the charts output override.
|
||||
*
|
||||
* @param bool $material
|
||||
* @return self
|
||||
*/
|
||||
public function setMaterialOutput($material)
|
||||
{
|
||||
$this->materialOutput = (is_bool($material) ? $material : false);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the chart from the assigned values.
|
||||
*
|
||||
* @return \Khill\Lavacharts\Charts\Chart
|
||||
*/
|
||||
public function getChart()
|
||||
{
|
||||
$chart = '\\Khill\\Lavacharts\\Charts\\' . $this->type;
|
||||
|
||||
/** @var \Khill\Lavacharts\Charts\Chart $newChart */
|
||||
$newChart = new $chart(
|
||||
$this->label,
|
||||
$this->datatable,
|
||||
$this->options
|
||||
);
|
||||
|
||||
if (array_key_exists('elementId', $this->options)) {
|
||||
$newChart->setElementId($this->options['elementId']);
|
||||
}
|
||||
|
||||
if (isset($this->elementId)) {
|
||||
$newChart->setElementId($this->elementId);
|
||||
}
|
||||
|
||||
if (method_exists($newChart, 'setPngOutput')) {
|
||||
$newChart->setPngOutput($this->pngOutput);
|
||||
}
|
||||
|
||||
if (method_exists($newChart, 'setMaterialOutput')) {
|
||||
$newChart->setMaterialOutput($this->materialOutput);
|
||||
}
|
||||
|
||||
return $newChart;
|
||||
}
|
||||
}
|
||||
79
vendor/khill/lavacharts/src/Builders/DashboardBuilder.php
vendored
Normal file
79
vendor/khill/lavacharts/src/Builders/DashboardBuilder.php
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Builders;
|
||||
|
||||
use \Khill\Lavacharts\Dashboards\Dashboard;
|
||||
use \Khill\Lavacharts\DataTables\DataTable;
|
||||
|
||||
/**
|
||||
* Class DashboardBuilder
|
||||
*
|
||||
* This class is used to build dashboards by setting the properties, instead of trying to cover
|
||||
* everything in the constructor.
|
||||
*
|
||||
* @package Khill\Lavacharts\Builders
|
||||
* @since 3.0.3
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class DashboardBuilder extends GenericBuilder
|
||||
{
|
||||
/**
|
||||
* Datatable for the chart.
|
||||
*
|
||||
* @var \Khill\Lavacharts\DataTables\DataTable
|
||||
*/
|
||||
protected $datatable = null;
|
||||
|
||||
/**
|
||||
* Bindings to use for the dashboard.
|
||||
*
|
||||
* @var \Khill\Lavacharts\Dashboards\Bindings\Binding[]
|
||||
*/
|
||||
protected $bindings = [];
|
||||
|
||||
/**
|
||||
* Set the bindings for the Dashboard.
|
||||
*
|
||||
* @param \Khill\Lavacharts\Dashboards\Bindings\Binding[] $bindings Array of bindings
|
||||
* @return $this
|
||||
*/
|
||||
public function setBindings(array $bindings)
|
||||
{
|
||||
$this->bindings = $bindings;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the DataTable for the dashboard
|
||||
*
|
||||
* @param \Khill\Lavacharts\DataTables\DataTable $datatable
|
||||
* @return $this
|
||||
*/
|
||||
public function setDataTable(DataTable $datatable)
|
||||
{
|
||||
$this->datatable = $datatable;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the built Dashboard.
|
||||
*
|
||||
* @return \Khill\Lavacharts\Dashboards\Dashboard
|
||||
*/
|
||||
public function getDashboard()
|
||||
{
|
||||
$dash = new Dashboard(
|
||||
$this->label,
|
||||
$this->datatable,
|
||||
$this->elementId
|
||||
);
|
||||
|
||||
return $dash->setBindings($this->bindings);
|
||||
}
|
||||
}
|
||||
64
vendor/khill/lavacharts/src/Builders/GenericBuilder.php
vendored
Normal file
64
vendor/khill/lavacharts/src/Builders/GenericBuilder.php
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Builders;
|
||||
|
||||
use Khill\Lavacharts\Values\Label;
|
||||
use Khill\Lavacharts\Values\ElementId;
|
||||
|
||||
/**
|
||||
* Class GenericBuilder
|
||||
*
|
||||
* This class will provide some common methods to the other builders.
|
||||
*
|
||||
* @package Khill\Lavacharts\Builders
|
||||
* @since 3.1.0
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class GenericBuilder
|
||||
{
|
||||
/**
|
||||
* The chart's unique label.
|
||||
*
|
||||
* @var \Khill\Lavacharts\Values\Label
|
||||
*/
|
||||
protected $label = null;
|
||||
|
||||
/**
|
||||
* The chart's unique elementId.
|
||||
*
|
||||
* @var \Khill\Lavacharts\Values\ElementId
|
||||
*/
|
||||
protected $elementId = null;
|
||||
|
||||
/**
|
||||
* Creates and sets the label for the chart.
|
||||
*
|
||||
* @param string|\Khill\Lavacharts\Values\Label $label
|
||||
* @return self
|
||||
* @throws \Khill\Lavacharts\Exceptions\InvalidLabel
|
||||
*/
|
||||
public function setLabel($label)
|
||||
{
|
||||
$this->label = new Label($label);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates and sets the elementId for the chart.
|
||||
*
|
||||
* @param string|\Khill\Lavacharts\Values\ElementId $elementId
|
||||
* @return self
|
||||
* @throws \Khill\Lavacharts\Exceptions\InvalidElementId
|
||||
*/
|
||||
public function setElementId($elementId)
|
||||
{
|
||||
$this->elementId = new ElementId($elementId);
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
43
vendor/khill/lavacharts/src/Charts/AnnotationChart.php
vendored
Normal file
43
vendor/khill/lavacharts/src/Charts/AnnotationChart.php
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
/**
|
||||
* AnnotationChart Class
|
||||
*
|
||||
* Annotation charts are interactive time series line charts that support annotations.
|
||||
* Unlike the annotated timeline, which uses Flash, annotation charts are SVG/VML and
|
||||
* should be preferred whenever possible.
|
||||
*
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 3.0.5
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class AnnotationChart extends Chart
|
||||
{
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'AnnotationChart';
|
||||
|
||||
/**
|
||||
* Javascript chart version.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '1';
|
||||
|
||||
/**
|
||||
* Javascript chart package.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VISUALIZATION_PACKAGE = 'annotationchart';
|
||||
}
|
||||
46
vendor/khill/lavacharts/src/Charts/AreaChart.php
vendored
Executable file
46
vendor/khill/lavacharts/src/Charts/AreaChart.php
vendored
Executable file
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
use \Khill\Lavacharts\Support\Traits\PngRenderableTrait as PngRenderable;
|
||||
|
||||
/**
|
||||
* AreaChart Class
|
||||
*
|
||||
* An area chart that is rendered within the browser using SVG or VML. Displays
|
||||
* tips when hovering over points.
|
||||
*
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 1.0.0
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class AreaChart extends Chart
|
||||
{
|
||||
use PngRenderable;
|
||||
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'AreaChart';
|
||||
|
||||
/**
|
||||
* Javascript chart version.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '1';
|
||||
|
||||
/**
|
||||
* Javascript chart package.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VISUALIZATION_PACKAGE = 'corechart';
|
||||
}
|
||||
78
vendor/khill/lavacharts/src/Charts/BarChart.php
vendored
Executable file
78
vendor/khill/lavacharts/src/Charts/BarChart.php
vendored
Executable file
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
use \Khill\Lavacharts\Support\Traits\PngRenderableTrait as PngRenderable;
|
||||
use \Khill\Lavacharts\Support\Traits\MaterialRenderableTrait as MaterialRenderable;
|
||||
|
||||
/**
|
||||
* BarChart Class
|
||||
*
|
||||
* A vertical bar chart that is rendered within the browser using SVG or VML.
|
||||
* Displays tips when hovering over bars. For a horizontal version of this
|
||||
* chart, see the Bar Chart.
|
||||
*
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 2.3.0
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class BarChart extends Chart
|
||||
{
|
||||
use PngRenderable, MaterialRenderable;
|
||||
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'BarChart';
|
||||
|
||||
/**
|
||||
* Javascript chart version.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '1';
|
||||
|
||||
/**
|
||||
* Javascript chart package.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VISUALIZATION_PACKAGE = 'corechart';
|
||||
|
||||
/**
|
||||
* Returns the chart visualization class.
|
||||
*
|
||||
* @since 3.1.0
|
||||
* @return string
|
||||
*/
|
||||
public function getJsPackage()
|
||||
{
|
||||
if ($this->material) {
|
||||
return 'bar';
|
||||
} else {
|
||||
return static::VISUALIZATION_PACKAGE;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the chart visualization package.
|
||||
*
|
||||
* @since 3.1.0
|
||||
* @return string
|
||||
*/
|
||||
public function getJsClass()
|
||||
{
|
||||
if ($this->material) {
|
||||
return 'google.charts.Bar';
|
||||
} else {
|
||||
return 'google.visualization.' . static::TYPE;
|
||||
}
|
||||
}
|
||||
}
|
||||
47
vendor/khill/lavacharts/src/Charts/BubbleChart.php
vendored
Normal file
47
vendor/khill/lavacharts/src/Charts/BubbleChart.php
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
use \Khill\Lavacharts\Support\Traits\PngRenderableTrait as PngRenderable;
|
||||
|
||||
/**
|
||||
* BubbleChart Class
|
||||
*
|
||||
* A bubble chart is used to visualize a data set with two to four dimensions.
|
||||
* The first two dimensions are visualized as coordinates, the third as color
|
||||
* and the fourth as size.
|
||||
*
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 3.1.0
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class BubbleChart extends Chart
|
||||
{
|
||||
use PngRenderable;
|
||||
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'BubbleChart';
|
||||
|
||||
/**
|
||||
* Javascript chart version.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '1';
|
||||
|
||||
/**
|
||||
* Javascript chart package.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VISUALIZATION_PACKAGE = 'corechart';
|
||||
}
|
||||
54
vendor/khill/lavacharts/src/Charts/CalendarChart.php
vendored
Normal file
54
vendor/khill/lavacharts/src/Charts/CalendarChart.php
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
/**
|
||||
* CalendarChart Class
|
||||
*
|
||||
* A calendar chart is a visualization used to show activity over the course of a long span of time,
|
||||
* such as months or years. They're best used when you want to illustrate how some quantity varies
|
||||
* depending on the day of the week, or how it trends over time.
|
||||
*
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 2.1.0
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class CalendarChart extends Chart
|
||||
{
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'CalendarChart';
|
||||
|
||||
/**
|
||||
* Javascript chart version.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '1.1';
|
||||
|
||||
/**
|
||||
* Javascript chart package.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VISUALIZATION_PACKAGE = 'calendar';
|
||||
|
||||
/**
|
||||
* Returns the google javascript package name.
|
||||
*
|
||||
* @since 3.0.5
|
||||
* @return string
|
||||
*/
|
||||
public function getJsClass()
|
||||
{
|
||||
return 'google.visualization.Calendar';
|
||||
}
|
||||
}
|
||||
47
vendor/khill/lavacharts/src/Charts/CandlestickChart.php
vendored
Normal file
47
vendor/khill/lavacharts/src/Charts/CandlestickChart.php
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
use \Khill\Lavacharts\Support\Traits\PngRenderableTrait as PngRenderable;
|
||||
|
||||
/**
|
||||
* CandlestickChart Class
|
||||
*
|
||||
* A bubble chart is used to visualize a data set with two to four dimensions.
|
||||
* The first two dimensions are visualized as coordinates, the third as color
|
||||
* and the fourth as size.
|
||||
*
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 3.1.0
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class CandlestickChart extends Chart
|
||||
{
|
||||
use PngRenderable;
|
||||
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'CandlestickChart';
|
||||
|
||||
/**
|
||||
* Javascript chart version.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '1';
|
||||
|
||||
/**
|
||||
* Javascript chart package.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VISUALIZATION_PACKAGE = 'corechart';
|
||||
}
|
||||
197
vendor/khill/lavacharts/src/Charts/Chart.php
vendored
Executable file
197
vendor/khill/lavacharts/src/Charts/Chart.php
vendored
Executable file
@@ -0,0 +1,197 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
use Khill\Lavacharts\Support\Customizable;
|
||||
use Khill\Lavacharts\DataTables\DataTable;
|
||||
use Khill\Lavacharts\Values\ElementId;
|
||||
use Khill\Lavacharts\Values\Label;
|
||||
use Khill\Lavacharts\Support\Traits\ElementIdTrait as HasElementId;
|
||||
use Khill\Lavacharts\Support\Traits\DataTableTrait as HasDataTable;
|
||||
use Khill\Lavacharts\Support\Traits\RenderableTrait as IsRenderable;
|
||||
use Khill\Lavacharts\Support\Contracts\JsonableInterface as Jsonable;
|
||||
use Khill\Lavacharts\Support\Contracts\WrappableInterface as Wrappable;
|
||||
use Khill\Lavacharts\Support\Contracts\RenderableInterface as Renderable;
|
||||
use Khill\Lavacharts\Support\Contracts\VisualizationInterface as Visualization;
|
||||
|
||||
/**
|
||||
* Class Chart
|
||||
*
|
||||
* Parent to all charts which has common properties and methods
|
||||
* used between all the different charts.
|
||||
*
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class Chart extends Customizable implements Renderable, Wrappable, Jsonable, Visualization
|
||||
{
|
||||
use HasDataTable, IsRenderable;
|
||||
|
||||
/**
|
||||
* Type of wrappable class
|
||||
*/
|
||||
const WRAP_TYPE = 'chartType';
|
||||
|
||||
/**
|
||||
* Builds a new chart with the given label.
|
||||
*
|
||||
* @param \Khill\Lavacharts\Values\Label $chartLabel Identifying label for the chart.
|
||||
* @param \Khill\Lavacharts\DataTables\DataTable $datatable DataTable used for the chart.
|
||||
* @param array $options Options fot the chart.
|
||||
*/
|
||||
public function __construct(Label $chartLabel, DataTable $datatable = null, array $options = [])
|
||||
{
|
||||
parent::__construct($options);
|
||||
|
||||
$this->label = $chartLabel;
|
||||
$this->datatable = $datatable;
|
||||
|
||||
$this->setExtendedAttributes();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set extended chart attributes from the assigned options, if present.
|
||||
*
|
||||
* @since 3.1.9
|
||||
*/
|
||||
protected function setExtendedAttributes()
|
||||
{
|
||||
if (array_key_exists('elementId', $this->options)) {
|
||||
$this->setElementId($this->options['elementId']);
|
||||
|
||||
unset($this->options['elementId']);
|
||||
}
|
||||
|
||||
if (method_exists($this, 'setPngOutput') &&
|
||||
array_key_exists('png', $this->options))
|
||||
{
|
||||
$this->setPngOutput($this->options['png']);
|
||||
|
||||
unset($this->options['png']);
|
||||
}
|
||||
|
||||
if (method_exists($this, 'setMaterialOutput') &&
|
||||
array_key_exists('material', $this->options))
|
||||
{
|
||||
$this->setMaterialOutput($this->options['material']);
|
||||
|
||||
unset($this->options['material']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the chart type.
|
||||
*
|
||||
* @since 3.0.0
|
||||
* @return string
|
||||
*/
|
||||
public function getType()
|
||||
{
|
||||
return static::TYPE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the Filter wrap type.
|
||||
*
|
||||
* @since 3.0.5
|
||||
* @return string
|
||||
*/
|
||||
public function getWrapType()
|
||||
{
|
||||
return static::WRAP_TYPE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the chart version.
|
||||
*
|
||||
* @since 3.0.5
|
||||
* @return string
|
||||
*/
|
||||
public function getVersion()
|
||||
{
|
||||
return static::VERSION;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the chart visualization class.
|
||||
*
|
||||
* @since 3.0.5
|
||||
* @return string
|
||||
*/
|
||||
public function getJsPackage()
|
||||
{
|
||||
return static::VISUALIZATION_PACKAGE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the chart visualization package.
|
||||
*
|
||||
* @since 3.0.5
|
||||
* @return string
|
||||
*/
|
||||
public function getJsClass()
|
||||
{
|
||||
return 'google.visualization.' . static::TYPE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a JSON representation of the chart, which would be the customizations.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function toJson()
|
||||
{
|
||||
return json_encode($this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the events if any have been assigned to the chart.
|
||||
*
|
||||
* @since 3.0.5
|
||||
* @return array
|
||||
*/
|
||||
public function getEvents()
|
||||
{
|
||||
return $this['events'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if any events have been assigned to the chart.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function hasEvents()
|
||||
{
|
||||
return isset($this['events']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets any configuration option, with no checks for type / validity
|
||||
*
|
||||
*
|
||||
* This is method was added in 2.5 as a bandaid to remove the handcuffs from
|
||||
* users who want to add options that Google has added, that I have not.
|
||||
* I didn't intend to restrict the user to only select options, as the
|
||||
* goal was to type isNonEmpty and validate. This method can be used to set
|
||||
* any option, just pass in arrays with key value pairs for any setting.
|
||||
*
|
||||
* If the setting is an object, per the google docs, then use multi-dimensional
|
||||
* arrays and they will be converted upon rendering.
|
||||
*
|
||||
* @since 3.0.0
|
||||
* @param array $options Array of customization options for the chart
|
||||
* @return \Khill\Lavacharts\Charts\Chart
|
||||
*/
|
||||
public function customize(array $options)
|
||||
{
|
||||
$this->setOptions($options);
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
154
vendor/khill/lavacharts/src/Charts/ChartFactory.php
vendored
Normal file
154
vendor/khill/lavacharts/src/Charts/ChartFactory.php
vendored
Normal file
@@ -0,0 +1,154 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
use \Khill\Lavacharts\Builders\ChartBuilder;
|
||||
use Khill\Lavacharts\DataTables\DataTable;
|
||||
use \Khill\Lavacharts\Exceptions\InvalidDataTable;
|
||||
|
||||
/**
|
||||
* ChartFactory Class
|
||||
*
|
||||
* Used for creating new charts and removing the need for the main Lavacharts
|
||||
* class to handle the creation.
|
||||
*
|
||||
*
|
||||
* @category Class
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 3.1.0
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class ChartFactory
|
||||
{
|
||||
/**
|
||||
* Instance of the ChartBuilder for, well, building charts.
|
||||
*
|
||||
* @var \Khill\Lavacharts\Builders\ChartBuilder
|
||||
*/
|
||||
private $chartBuilder;
|
||||
|
||||
/**
|
||||
* Types of charts that can be created.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public static $CHART_TYPES = [
|
||||
'AreaChart',
|
||||
'AnnotationChart',
|
||||
'BarChart',
|
||||
'BubbleChart',
|
||||
'CalendarChart',
|
||||
'CandlestickChart',
|
||||
'ColumnChart',
|
||||
'ComboChart',
|
||||
'DonutChart',
|
||||
'GanttChart',
|
||||
'GaugeChart',
|
||||
'GeoChart',
|
||||
'HistogramChart',
|
||||
'LineChart',
|
||||
'PieChart',
|
||||
'SankeyChart',
|
||||
'ScatterChart',
|
||||
'SteppedAreaChart',
|
||||
'TableChart',
|
||||
'TimelineChart',
|
||||
'TreeMapChart',
|
||||
'WordTreeChart',
|
||||
];
|
||||
|
||||
/**
|
||||
* ChartFactory constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->chartBuilder = new ChartBuilder;
|
||||
}
|
||||
|
||||
/**
|
||||
* ChartFactory constructor.
|
||||
*/
|
||||
public static function build($type, $args)
|
||||
{
|
||||
return (new self)->create($type, $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create new chart from type with DataTable and config passed
|
||||
* from the main Lavacharts class.
|
||||
*
|
||||
* @param string $type Type of chart to create.
|
||||
* @param array $args Passed arguments from __call in Lavacharts.
|
||||
* @return \Khill\Lavacharts\Charts\Chart
|
||||
* @throws \Khill\Lavacharts\Exceptions\InvalidChartType
|
||||
* @throws \Khill\Lavacharts\Exceptions\InvalidDataTable
|
||||
*/
|
||||
public function create($type, $args)
|
||||
{
|
||||
if ($args[1] !== null && $args[1] instanceof DataTable === false) {
|
||||
throw new InvalidDataTable;
|
||||
}
|
||||
|
||||
$this->chartBuilder->setType($type)
|
||||
->setLabel($args[0])
|
||||
->setDatatable($args[1]);
|
||||
|
||||
if (isset($args[2])) {
|
||||
if (is_string($args[2])) {
|
||||
$this->chartBuilder->setElementId($args[2]);
|
||||
}
|
||||
|
||||
if (is_array($args[2])) {
|
||||
if (array_key_exists('elementId', $args[2])) {
|
||||
$this->chartBuilder->setElementId($args[2]['elementId']);
|
||||
unset($args[2]['elementId']);
|
||||
}
|
||||
|
||||
if (array_key_exists('png', $args[2])) {
|
||||
$this->chartBuilder->setPngOutput($args[2]['png']);
|
||||
unset($args[2]['png']);
|
||||
}
|
||||
|
||||
if (array_key_exists('material', $args[2])) {
|
||||
$this->chartBuilder->setMaterialOutput($args[2]['material']);
|
||||
unset($args[2]['material']);
|
||||
}
|
||||
|
||||
$this->chartBuilder->setOptions($args[2]);
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($args[3])) {
|
||||
$this->chartBuilder->setElementId($args[3]);
|
||||
}
|
||||
|
||||
return $this->chartBuilder->getChart();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the array of supported chart types.
|
||||
*
|
||||
* @since 3.1.0
|
||||
* @return array
|
||||
*/
|
||||
public static function getChartTypes()
|
||||
{
|
||||
return static::$CHART_TYPES;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the array of supported chart types.
|
||||
*
|
||||
* @since 3.1.0
|
||||
* @param string $type Type of chart to check.
|
||||
* @return bool
|
||||
*/
|
||||
public static function isValidChart($type)
|
||||
{
|
||||
return in_array($type, self::$CHART_TYPES, true);
|
||||
}
|
||||
}
|
||||
47
vendor/khill/lavacharts/src/Charts/ColumnChart.php
vendored
Executable file
47
vendor/khill/lavacharts/src/Charts/ColumnChart.php
vendored
Executable file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
use \Khill\Lavacharts\Support\Traits\PngRenderableTrait as PngRenderable;
|
||||
|
||||
/**
|
||||
* ColumnChart Class
|
||||
*
|
||||
* A vertical bar chart that is rendered within the browser using SVG or VML.
|
||||
* Displays tips when hovering over bars. For a horizontal version of this
|
||||
* chart, see the Bar Chart.
|
||||
*
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 1.0.0
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class ColumnChart extends Chart
|
||||
{
|
||||
use PngRenderable;
|
||||
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'ColumnChart';
|
||||
|
||||
/**
|
||||
* Javascript chart version.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '1';
|
||||
|
||||
/**
|
||||
* Javascript chart package.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VISUALIZATION_PACKAGE = 'corechart';
|
||||
}
|
||||
49
vendor/khill/lavacharts/src/Charts/ComboChart.php
vendored
Executable file
49
vendor/khill/lavacharts/src/Charts/ComboChart.php
vendored
Executable file
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
use \Khill\Lavacharts\Support\Traits\PngRenderableTrait as PngRenderable;
|
||||
|
||||
/**
|
||||
* ComboChart Class
|
||||
*
|
||||
* A chart that lets you render each series as a different marker type from the following list:
|
||||
* line, area, bars, candlesticks and stepped area.
|
||||
*
|
||||
* To assign a default marker type for series, specify the seriesType property.
|
||||
* Use the series property to specify properties of each series individually.
|
||||
*
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 2.0.0
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class ComboChart extends Chart
|
||||
{
|
||||
use PngRenderable;
|
||||
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'ComboChart';
|
||||
|
||||
/**
|
||||
* Javascript chart version.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '1';
|
||||
|
||||
/**
|
||||
* Javascript chart package.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VISUALIZATION_PACKAGE = 'corechart';
|
||||
}
|
||||
38
vendor/khill/lavacharts/src/Charts/DonutChart.php
vendored
Normal file
38
vendor/khill/lavacharts/src/Charts/DonutChart.php
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
/**
|
||||
* DonutChart Class
|
||||
*
|
||||
* A pie chart, with a hole in the center, that is rendered within the browser using SVG or VML.
|
||||
* Displays tooltips when hovering over slices.
|
||||
*
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 3.1.5
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class DonutChart extends PieChart
|
||||
{
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'DonutChart';
|
||||
|
||||
/**
|
||||
* Returns the chart visualization package.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getJsClass()
|
||||
{
|
||||
return 'google.visualization.PieChart';
|
||||
}
|
||||
}
|
||||
57
vendor/khill/lavacharts/src/Charts/GanttChart.php
vendored
Normal file
57
vendor/khill/lavacharts/src/Charts/GanttChart.php
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
/**
|
||||
* GanttChart Class
|
||||
*
|
||||
* A Gantt chart is a type of chart that illustrates the breakdown of a
|
||||
* project into its component tasks. Google Gantt charts illustrate the
|
||||
* start, end, and duration of tasks within a project, as well as any
|
||||
* dependencies a task may have. Google Gantt charts are rendered in
|
||||
* the browser using SVG. Like all Google charts, Gantt charts display
|
||||
* tooltips when the user hovers over the data.
|
||||
*
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 3.0.5
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class GanttChart extends Chart
|
||||
{
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'GanttChart';
|
||||
|
||||
/**
|
||||
* Javascript chart version.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '1';
|
||||
|
||||
/**
|
||||
* Javascript chart package.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VISUALIZATION_PACKAGE = 'gantt';
|
||||
|
||||
/**
|
||||
* Returns the google javascript package name.
|
||||
*
|
||||
* @since 3.0.5
|
||||
* @return string
|
||||
*/
|
||||
public function getJsClass()
|
||||
{
|
||||
return 'google.visualization.Gantt';
|
||||
}
|
||||
}
|
||||
52
vendor/khill/lavacharts/src/Charts/GaugeChart.php
vendored
Executable file
52
vendor/khill/lavacharts/src/Charts/GaugeChart.php
vendored
Executable file
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
/**
|
||||
* GaugeChart Class
|
||||
*
|
||||
* A gauge with a dial, rendered within the browser using SVG or VML.
|
||||
*
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 2.2.0
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class GaugeChart extends Chart
|
||||
{
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'GaugeChart';
|
||||
|
||||
/**
|
||||
* Javascript chart version.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '1';
|
||||
|
||||
/**
|
||||
* Javascript chart package.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VISUALIZATION_PACKAGE = 'gauge';
|
||||
|
||||
/**
|
||||
* Returns the google javascript package name.
|
||||
*
|
||||
* @since 3.0.5
|
||||
* @return string
|
||||
*/
|
||||
public function getJsClass()
|
||||
{
|
||||
return 'google.visualization.Gauge';
|
||||
}
|
||||
}
|
||||
49
vendor/khill/lavacharts/src/Charts/GeoChart.php
vendored
Normal file
49
vendor/khill/lavacharts/src/Charts/GeoChart.php
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
use \Khill\Lavacharts\Support\Traits\PngRenderableTrait as PngRenderable;
|
||||
|
||||
/**
|
||||
* GeoChart Class
|
||||
*
|
||||
* A Geochart is a map of a country, a continent, or a region with two modes:
|
||||
* - The region mode colorizes whole regions, such as countries, provinces,
|
||||
* or states.
|
||||
* - The marker mode marks designated regions using bubbles that are scaled
|
||||
* according to a value that you specify.
|
||||
*
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 1.0.0
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class GeoChart extends Chart
|
||||
{
|
||||
use PngRenderable;
|
||||
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'GeoChart';
|
||||
|
||||
/**
|
||||
* Javascript chart version.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '1';
|
||||
|
||||
/**
|
||||
* Javascript chart package.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VISUALIZATION_PACKAGE = 'geochart';
|
||||
}
|
||||
64
vendor/khill/lavacharts/src/Charts/HistogramChart.php
vendored
Normal file
64
vendor/khill/lavacharts/src/Charts/HistogramChart.php
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
use \Khill\Lavacharts\Support\Traits\PngRenderableTrait as PngRenderable;
|
||||
|
||||
/**
|
||||
* HistogramChart Class
|
||||
*
|
||||
* A histogram is a chart that groups numeric data into bins,
|
||||
* displaying the bins as segmented columns. They're used to
|
||||
* depict the distribution of a dataset: how often values fall
|
||||
* into ranges.
|
||||
*
|
||||
* Google Charts automatically chooses the number of bins for you.
|
||||
* All bins are equal width and have a height proportional to the
|
||||
* number of data points in the bin. In other respects, histograms
|
||||
* are similar to column charts.
|
||||
*
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 3.1.0
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class HistogramChart extends Chart
|
||||
{
|
||||
use PngRenderable;
|
||||
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'HistogramChart';
|
||||
|
||||
/**
|
||||
* Javascript chart version.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '1';
|
||||
|
||||
/**
|
||||
* Javascript chart package.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VISUALIZATION_PACKAGE = 'corechart';
|
||||
|
||||
/**
|
||||
* Returns the google javascript package name.
|
||||
*
|
||||
* @since 3.1.0
|
||||
* @return string
|
||||
*/
|
||||
public function getJsClass()
|
||||
{
|
||||
return 'google.visualization.Histogram';
|
||||
}
|
||||
}
|
||||
77
vendor/khill/lavacharts/src/Charts/LineChart.php
vendored
Executable file
77
vendor/khill/lavacharts/src/Charts/LineChart.php
vendored
Executable file
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
use \Khill\Lavacharts\Support\Traits\PngRenderableTrait as PngRenderable;
|
||||
use \Khill\Lavacharts\Support\Traits\MaterialRenderableTrait as MaterialRenderable;
|
||||
|
||||
/**
|
||||
* LineChart Class
|
||||
*
|
||||
* A line chart that is rendered within the browser using SVG or VML. Displays
|
||||
* tips when hovering over points.
|
||||
*
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 1.0.0
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class LineChart extends Chart
|
||||
{
|
||||
use PngRenderable, MaterialRenderable;
|
||||
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'LineChart';
|
||||
|
||||
/**
|
||||
* Javascript chart version.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '1';
|
||||
|
||||
/**
|
||||
* Javascript chart package.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VISUALIZATION_PACKAGE = 'corechart';
|
||||
|
||||
/**
|
||||
* Returns the chart visualization class.
|
||||
*
|
||||
* @since 3.1.0
|
||||
* @return string
|
||||
*/
|
||||
public function getJsPackage()
|
||||
{
|
||||
if ($this->material) {
|
||||
return 'line';
|
||||
} else {
|
||||
return static::VISUALIZATION_PACKAGE;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the chart visualization package.
|
||||
*
|
||||
* @since 3.1.0
|
||||
* @return string
|
||||
*/
|
||||
public function getJsClass()
|
||||
{
|
||||
if ($this->material) {
|
||||
return 'google.charts.Line';
|
||||
} else {
|
||||
return 'google.visualization.' . static::TYPE;
|
||||
}
|
||||
}
|
||||
}
|
||||
47
vendor/khill/lavacharts/src/Charts/OrgChart.php
vendored
Normal file
47
vendor/khill/lavacharts/src/Charts/OrgChart.php
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
use Khill\Lavacharts\Support\Traits\PngOutputTrait as PngRenderable;
|
||||
|
||||
/**
|
||||
* OrgChart Class
|
||||
*
|
||||
* Org charts are diagrams of a hierarchy of nodes, commonly used to
|
||||
* portray superior/subordinate relationships in an organization.
|
||||
* A family tree is a type of org chart.
|
||||
*
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 3.0.5
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class OrgChart extends Chart
|
||||
{
|
||||
use PngRenderable;
|
||||
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'OrgChart';
|
||||
|
||||
/**
|
||||
* Javascript chart version.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '1';
|
||||
|
||||
/**
|
||||
* Javascript chart package.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VISUALIZATION_PACKAGE = 'orgchart';
|
||||
}
|
||||
46
vendor/khill/lavacharts/src/Charts/PieChart.php
vendored
Normal file
46
vendor/khill/lavacharts/src/Charts/PieChart.php
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
use \Khill\Lavacharts\Support\Traits\PngRenderableTrait as PngRenderable;
|
||||
|
||||
/**
|
||||
* PieChart Class
|
||||
*
|
||||
* A pie chart that is rendered within the browser using SVG or VML. Displays
|
||||
* tooltips when hovering over slices.
|
||||
*
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 1.0.0
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class PieChart extends Chart
|
||||
{
|
||||
use PngRenderable;
|
||||
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'PieChart';
|
||||
|
||||
/**
|
||||
* Javascript chart version.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '1';
|
||||
|
||||
/**
|
||||
* Javascript chart package.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VISUALIZATION_PACKAGE = 'corechart';
|
||||
}
|
||||
59
vendor/khill/lavacharts/src/Charts/SankeyChart.php
vendored
Normal file
59
vendor/khill/lavacharts/src/Charts/SankeyChart.php
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
/**
|
||||
* SankeyChart Class
|
||||
*
|
||||
* A sankey diagram is a visualization used to depict a flow from one set
|
||||
* of values to another. The things being connected are called nodes and
|
||||
* the connections are called links.
|
||||
*
|
||||
* Sankeys are best used when you want to show a many-to-many mapping
|
||||
* between two domains (e.g., universities and majors) or multiple paths
|
||||
* through a set of stages (for instance, Google Analytics uses sankeys
|
||||
* to show how traffic flows from pages to other pages on your web site).
|
||||
*
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 3.0.5
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class SankeyChart extends Chart
|
||||
{
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'SankeyChart';
|
||||
|
||||
/**
|
||||
* Javascript chart version.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '1';
|
||||
|
||||
/**
|
||||
* Javascript chart package.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VISUALIZATION_PACKAGE = 'sankey';
|
||||
|
||||
/**
|
||||
* Returns the google javascript package name.
|
||||
*
|
||||
* @since 3.0.5
|
||||
* @return string
|
||||
*/
|
||||
public function getJsClass()
|
||||
{
|
||||
return 'google.visualization.Sankey';
|
||||
}
|
||||
}
|
||||
80
vendor/khill/lavacharts/src/Charts/ScatterChart.php
vendored
Normal file
80
vendor/khill/lavacharts/src/Charts/ScatterChart.php
vendored
Normal file
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
use \Khill\Lavacharts\Support\Traits\PngRenderableTrait as PngRenderable;
|
||||
use \Khill\Lavacharts\Support\Traits\MaterialRenderableTrait as MaterialRenderable;
|
||||
|
||||
/**
|
||||
* ScatterChart Class
|
||||
*
|
||||
* A chart that lets you render each series as a different marker type from the following list:
|
||||
* line, area, bars, candlesticks and stepped area.
|
||||
*
|
||||
* To assign a default marker type for series, specify the seriesType property.
|
||||
* Use the series property to specify properties of each series individually.
|
||||
*
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 3.0.0
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class ScatterChart extends Chart
|
||||
{
|
||||
use PngRenderable, MaterialRenderable;
|
||||
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'ScatterChart';
|
||||
|
||||
/**
|
||||
* Javascript chart version.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '1';
|
||||
|
||||
/**
|
||||
* Javascript chart package.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VISUALIZATION_PACKAGE = 'corechart';
|
||||
|
||||
/**
|
||||
* Returns the chart visualization class.
|
||||
*
|
||||
* @since 3.1.0
|
||||
* @return string
|
||||
*/
|
||||
public function getJsPackage()
|
||||
{
|
||||
if ($this->material) {
|
||||
return 'scatter';
|
||||
} else {
|
||||
return static::VISUALIZATION_PACKAGE;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the chart visualization package.
|
||||
*
|
||||
* @since 3.1.0
|
||||
* @return string
|
||||
*/
|
||||
public function getJsClass()
|
||||
{
|
||||
if ($this->material) {
|
||||
return 'google.charts.Scatter';
|
||||
} else {
|
||||
return 'google.visualization.' . static::TYPE;
|
||||
}
|
||||
}
|
||||
}
|
||||
45
vendor/khill/lavacharts/src/Charts/SteppedAreaChart.php
vendored
Normal file
45
vendor/khill/lavacharts/src/Charts/SteppedAreaChart.php
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
use \Khill\Lavacharts\Support\Traits\PngRenderableTrait as PngRenderable;
|
||||
|
||||
/**
|
||||
* SteppedAreaChart Class
|
||||
*
|
||||
* A stacking, stair like version of the AreaChart.
|
||||
*
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 3.1.0
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class SteppedAreaChart extends Chart
|
||||
{
|
||||
use PngRenderable;
|
||||
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'SteppedAreaChart';
|
||||
|
||||
/**
|
||||
* Javascript chart version.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '1';
|
||||
|
||||
/**
|
||||
* Javascript chart package.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VISUALIZATION_PACKAGE = 'corechart';
|
||||
}
|
||||
54
vendor/khill/lavacharts/src/Charts/TableChart.php
vendored
Normal file
54
vendor/khill/lavacharts/src/Charts/TableChart.php
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
/**
|
||||
* Table Chart Class
|
||||
*
|
||||
* A table chart is rendered within the browser. Displays a data from a DataTable in an easily sortable form.
|
||||
* Can be searched by rendering as a wrapper and binding to a control within a dashboard.
|
||||
*
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 3.0.0
|
||||
* @author Peter Draznik <peter.draznik@38thStreetStudios.com>
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, 38th Street Studios
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class TableChart extends Chart
|
||||
{
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'TableChart';
|
||||
|
||||
/**
|
||||
* Javascript chart version.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '1';
|
||||
|
||||
/**
|
||||
* Javascript chart package.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VISUALIZATION_PACKAGE = 'table';
|
||||
|
||||
/**
|
||||
* Returns the google javascript package name.
|
||||
*
|
||||
* @since 3.0.5
|
||||
* @return string
|
||||
*/
|
||||
public function getJsClass()
|
||||
{
|
||||
return 'google.visualization.Table';
|
||||
}
|
||||
}
|
||||
56
vendor/khill/lavacharts/src/Charts/TimelineChart.php
vendored
Normal file
56
vendor/khill/lavacharts/src/Charts/TimelineChart.php
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
/**
|
||||
* TimelineChart Class
|
||||
*
|
||||
*
|
||||
* A timeline is a chart that depicts how a set of resources are used over time.
|
||||
* If you're managing a software project and want to illustrate who is doing what
|
||||
* and when, or if you're organizing a conference and need to schedule meeting
|
||||
* rooms, a timeline is often a reasonable visualization choice.
|
||||
*
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 3.0.5
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class TimelineChart extends Chart
|
||||
{
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'TimelineChart';
|
||||
|
||||
/**
|
||||
* Javascript chart version.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '1';
|
||||
|
||||
/**
|
||||
* Javascript chart package.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VISUALIZATION_PACKAGE = 'timeline';
|
||||
|
||||
/**
|
||||
* Returns the google javascript package name.
|
||||
*
|
||||
* @since 3.0.5
|
||||
* @return string
|
||||
*/
|
||||
public function getJsClass()
|
||||
{
|
||||
return 'google.visualization.Timeline';
|
||||
}
|
||||
}
|
||||
65
vendor/khill/lavacharts/src/Charts/TreeMapChart.php
vendored
Normal file
65
vendor/khill/lavacharts/src/Charts/TreeMapChart.php
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
/**
|
||||
* TreeMap Chart Class
|
||||
*
|
||||
*
|
||||
* A visual representation of a data tree, where each node can have zero or more
|
||||
* children, and one parent (except for the root, which has no parents). Each
|
||||
* node is displayed as a rectangle, sized and colored according to values that
|
||||
* you assign. Sizes and colors are valued relative to all other nodes in the
|
||||
* graph. You can specify how many levels to display simultaneously, and
|
||||
* optionally to display deeper levels in a hinted fashion. If a node is a leaf
|
||||
* node, you can specify a size and color; if it is not a leaf, it will be
|
||||
* displayed as a bounding box for leaf nodes. The default behavior is to move
|
||||
* down the tree when a user left-clicks a node, and to move back up the tree
|
||||
* when a user right-clicks the graph.
|
||||
*
|
||||
* The total size of the graph is determined by the size of the containing
|
||||
* element that you insert in your page. If you have leaf nodes with names too
|
||||
* long to show, the name will be truncated with an ellipsis (...).
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 3.1.0
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class TreeMapChart extends Chart
|
||||
{
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'TreeMapChart';
|
||||
|
||||
/**
|
||||
* Javascript chart version.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '1';
|
||||
|
||||
/**
|
||||
* Javascript chart package.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VISUALIZATION_PACKAGE = 'treemap';
|
||||
|
||||
/**
|
||||
* Returns the google javascript package name.
|
||||
*
|
||||
* @since 3.1.0
|
||||
* @return string
|
||||
*/
|
||||
public function getJsClass()
|
||||
{
|
||||
return 'google.visualization.TreeMap';
|
||||
}
|
||||
}
|
||||
65
vendor/khill/lavacharts/src/Charts/WordTreeChart.php
vendored
Normal file
65
vendor/khill/lavacharts/src/Charts/WordTreeChart.php
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Charts;
|
||||
|
||||
/**
|
||||
* WordTreeChart Class
|
||||
*
|
||||
*
|
||||
* A visual representation of a data tree, where each node can have zero or more
|
||||
* children, and one parent (except for the root, which has no parents). Each
|
||||
* node is displayed as a rectangle, sized and colored according to values that
|
||||
* you assign. Sizes and colors are valued relative to all other nodes in the
|
||||
* graph. You can specify how many levels to display simultaneously, and
|
||||
* optionally to display deeper levels in a hinted fashion. If a node is a leaf
|
||||
* node, you can specify a size and color; if it is not a leaf, it will be
|
||||
* displayed as a bounding box for leaf nodes. The default behavior is to move
|
||||
* down the tree when a user left-clicks a node, and to move back up the tree
|
||||
* when a user right-clicks the graph.
|
||||
*
|
||||
* The total size of the graph is determined by the size of the containing
|
||||
* element that you insert in your page. If you have leaf nodes with names too
|
||||
* long to show, the name will be truncated with an ellipsis (...).
|
||||
*
|
||||
* @package Khill\Lavacharts\Charts
|
||||
* @since 3.0.5
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class WordTreeChart extends Chart
|
||||
{
|
||||
/**
|
||||
* Javascript chart type.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'WordTreeChart';
|
||||
|
||||
/**
|
||||
* Javascript chart version.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '1';
|
||||
|
||||
/**
|
||||
* Javascript chart package.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VISUALIZATION_PACKAGE = 'wordtree';
|
||||
|
||||
/**
|
||||
* Returns the google javascript package name.
|
||||
*
|
||||
* @since 3.0.5
|
||||
* @return string
|
||||
*/
|
||||
public function getJsClass()
|
||||
{
|
||||
return 'google.visualization.WordTree';
|
||||
}
|
||||
}
|
||||
89
vendor/khill/lavacharts/src/Dashboards/Bindings/Binding.php
vendored
Normal file
89
vendor/khill/lavacharts/src/Dashboards/Bindings/Binding.php
vendored
Normal file
@@ -0,0 +1,89 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Dashboards\Bindings;
|
||||
|
||||
/**
|
||||
* Parent Binding Class
|
||||
*
|
||||
* Binds a ControlWrapper to a ChartWrapper to use in dashboards.
|
||||
*
|
||||
* @package Khill\Lavacharts\Dashboards\Bindings
|
||||
* @since 3.0.0
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class Binding
|
||||
{
|
||||
/**
|
||||
* Array of ControlWrappers.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $controlWrappers;
|
||||
|
||||
/**
|
||||
* Array of ChartWrappers.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $chartWrappers;
|
||||
|
||||
/**
|
||||
* Assigns the wrappers and creates the new Binding.
|
||||
*
|
||||
* @param array $chartWrappers
|
||||
* @param array $controlWrappers
|
||||
*/
|
||||
public function __construct(array $controlWrappers, array $chartWrappers)
|
||||
{
|
||||
$this->chartWrappers = $chartWrappers;
|
||||
$this->controlWrappers = $controlWrappers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the ChartWrappers
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getChartWrappers()
|
||||
{
|
||||
return $this->chartWrappers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the a specific ChartWrap
|
||||
*
|
||||
* @since 3.1.0
|
||||
* @param int $index Which chart wrap to retrieve
|
||||
* @return array
|
||||
*/
|
||||
public function getChartWrap($index)
|
||||
{
|
||||
return $this->chartWrappers[$index];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the ControlWrappers
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getControlWrappers()
|
||||
{
|
||||
return $this->controlWrappers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the a specific ControlWrap
|
||||
*
|
||||
* @since 3.1.0
|
||||
* @param int $index Which control wrap to retrieve
|
||||
* @return array
|
||||
*/
|
||||
public function getControlWrap($index)
|
||||
{
|
||||
return $this->controlWrappers[$index];
|
||||
}
|
||||
}
|
||||
52
vendor/khill/lavacharts/src/Dashboards/Bindings/BindingFactory.php
vendored
Normal file
52
vendor/khill/lavacharts/src/Dashboards/Bindings/BindingFactory.php
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Dashboards\Bindings;
|
||||
|
||||
use \Khill\Lavacharts\Dashboards\Wrappers\ChartWrapper;
|
||||
use \Khill\Lavacharts\Dashboards\Wrappers\ControlWrapper;
|
||||
use \Khill\Lavacharts\Exceptions\InvalidBindings;
|
||||
|
||||
/**
|
||||
* BindingFactory Class
|
||||
*
|
||||
* Creates new bindings for dashboards.
|
||||
*
|
||||
* @package Khill\Lavacharts\Dashboards\Bindings
|
||||
* @since 3.0.0
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class BindingFactory
|
||||
{
|
||||
/**
|
||||
* Create a new Binding for the dashboard.
|
||||
*
|
||||
* @param mixed $controlWraps One or array of many ControlWrappers
|
||||
* @param mixed $chartWraps One or array of many ChartWrappers
|
||||
* @throws \Khill\Lavacharts\Exceptions\InvalidBindings
|
||||
* @return \Khill\Lavacharts\Dashboards\Bindings\Binding
|
||||
*/
|
||||
public function create($controlWraps, $chartWraps)
|
||||
{
|
||||
if ($controlWraps instanceof ControlWrapper && $chartWraps instanceof ChartWrapper) {
|
||||
return new OneToOne($controlWraps, $chartWraps);
|
||||
}
|
||||
|
||||
if ($controlWraps instanceof ControlWrapper && is_array($chartWraps)) {
|
||||
return new OneToMany($controlWraps, $chartWraps);
|
||||
}
|
||||
|
||||
if (is_array($controlWraps) && $chartWraps instanceof ChartWrapper) {
|
||||
return new ManyToOne($controlWraps, $chartWraps);
|
||||
}
|
||||
|
||||
if (is_array($chartWraps) && is_array($controlWraps)) {
|
||||
return new ManyToMany($controlWraps, $chartWraps);
|
||||
}
|
||||
|
||||
throw new InvalidBindings;
|
||||
}
|
||||
}
|
||||
37
vendor/khill/lavacharts/src/Dashboards/Bindings/ManyToMany.php
vendored
Normal file
37
vendor/khill/lavacharts/src/Dashboards/Bindings/ManyToMany.php
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Dashboards\Bindings;
|
||||
|
||||
/**
|
||||
* ManyToMany Binding Class
|
||||
*
|
||||
* Binds multiple ControlWrappers to a multiple ChartWrapper for use in dashboards.
|
||||
*
|
||||
* @package Khill\Lavacharts\Dashboards\Bindings
|
||||
* @since 3.0.0
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class ManyToMany extends Binding
|
||||
{
|
||||
/**
|
||||
* Type of binding.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'ManyToMany';
|
||||
|
||||
/**
|
||||
* Creates the new Binding.
|
||||
*
|
||||
* @param array $chartWrappers
|
||||
* @param array $controlWrappers
|
||||
*/
|
||||
public function __construct(array $controlWrappers, array $chartWrappers)
|
||||
{
|
||||
parent::__construct($controlWrappers, $chartWrappers);
|
||||
}
|
||||
}
|
||||
39
vendor/khill/lavacharts/src/Dashboards/Bindings/ManyToOne.php
vendored
Normal file
39
vendor/khill/lavacharts/src/Dashboards/Bindings/ManyToOne.php
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace Khill\Lavacharts\Dashboards\Bindings;
|
||||
|
||||
use Khill\Lavacharts\Dashboards\Wrappers\ChartWrapper;
|
||||
|
||||
/**
|
||||
* ManyToOne Binding Class
|
||||
*
|
||||
* Binds multiple ControlWrappers to a single ChartWrapper for use in dashboards.
|
||||
*
|
||||
* @package Khill\Lavacharts\Dashboards\Bindings
|
||||
* @since 3.0.0
|
||||
* @author Kevin Hill <kevinkhill@gmail.com>
|
||||
* @copyright (c) 2017, KHill Designs
|
||||
* @link http://github.com/kevinkhill/lavacharts GitHub Repository Page
|
||||
* @link http://lavacharts.com Official Docs Site
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
class ManyToOne extends Binding
|
||||
{
|
||||
/**
|
||||
* Type of binding.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TYPE = 'ManyToOne';
|
||||
|
||||
/**
|
||||
* Creates the new Binding.
|
||||
*
|
||||
* @param array $controlWrappers
|
||||
* @param \Khill\Lavacharts\Dashboards\Wrappers\ChartWrapper $chartWrapper
|
||||
*/
|
||||
public function __construct(array $controlWrappers, ChartWrapper $chartWrapper)
|
||||
{
|
||||
parent::__construct($controlWrappers, [$chartWrapper]);
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user