Version Description
Download this release
Release Info
Developer | webnus |
Plugin | Modern Events Calendar Lite |
Version | 4.5.0 |
Comparing to | |
See all releases |
Code changes from version 4.4.9 to 4.5.0
- app/api/Stripe/Account.php +302 -41
- app/api/Stripe/AccountLink.php +20 -0
- app/api/Stripe/AlipayAccount.php +59 -1
- app/api/Stripe/ApiOperations/All.php +34 -0
- app/api/Stripe/ApiOperations/Create.php +28 -0
- app/api/Stripe/ApiOperations/Delete.php +27 -0
- app/api/Stripe/ApiOperations/NestedResource.php +118 -0
- app/api/Stripe/ApiOperations/Request.php +61 -0
- app/api/Stripe/ApiOperations/Retrieve.php +27 -0
- app/api/Stripe/ApiOperations/Update.php +46 -0
- app/api/Stripe/ApiRequestor.php +266 -41
- app/api/Stripe/ApiResource.php +40 -133
- app/api/Stripe/ApplePayDomain.php +7 -45
- app/api/Stripe/ApplicationFee.php +50 -22
- app/api/Stripe/ApplicationFeeRefund.php +15 -0
- app/api/Stripe/AttachedObject.php +0 -31
- app/api/Stripe/Balance.php +6 -3
- app/api/Stripe/BalanceTransaction.php +35 -27
- app/api/Stripe/BankAccount.php +87 -4
- app/api/Stripe/BitcoinReceiver.php +17 -54
- app/api/Stripe/BitcoinTransaction.php +1 -1
- app/api/Stripe/Capability.php +82 -0
- app/api/Stripe/Card.php +117 -1
- app/api/Stripe/Charge.php +86 -64
- app/api/Stripe/Checkout/Session.php +39 -0
- app/api/Stripe/Collection.php +27 -7
- app/api/Stripe/CountrySpec.php +12 -31
- app/api/Stripe/Coupon.php +22 -64
- app/api/Stripe/CreditNote.php +73 -0
- app/api/Stripe/Customer.php +203 -74
- app/api/Stripe/CustomerBalanceTransaction.php +88 -0
- app/api/Stripe/Discount.php +20 -0
- app/api/Stripe/Dispute.php +32 -38
- app/api/Stripe/EphemeralKey.php +40 -0
- app/api/Stripe/Error/Base.php +9 -0
- app/api/Stripe/Error/Card.php +6 -7
- app/api/Stripe/Error/Idempotency.php +7 -0
- app/api/Stripe/Error/OAuth/InvalidClient.php +10 -0
- app/api/Stripe/Error/OAuth/InvalidGrant.php +13 -0
- app/api/Stripe/Error/OAuth/InvalidRequest.php +11 -0
- app/api/Stripe/Error/OAuth/InvalidScope.php +10 -0
- app/api/Stripe/Error/OAuth/OAuthBase.php +23 -0
- app/api/Stripe/Error/OAuth/UnsupportedGrantType.php +11 -0
- app/api/Stripe/Error/OAuth/UnsupportedResponseType.php +11 -0
- app/api/Stripe/Error/SignatureVerification.php +20 -0
- app/api/Stripe/Event.php +147 -23
- app/api/Stripe/ExchangeRate.php +16 -0
- app/api/Stripe/ExternalAccount.php +0 -89
- app/api/Stripe/File.php +62 -0
- app/api/Stripe/FileLink.php +28 -0
- app/api/Stripe/FileUpload.php +2 -57
- app/api/Stripe/HttpClient/ClientInterface.php +5 -2
- app/api/Stripe/HttpClient/CurlClient.php +246 -65
- app/api/Stripe/HttpClient/data/ca-certificates.crt +421 -694
- app/api/Stripe/Invoice.php +137 -27
- app/api/Stripe/InvoiceItem.php +26 -64
- app/api/Stripe/InvoiceLineItem.php +32 -0
- app/api/Stripe/IssuerFraudRecord.php +24 -0
- app/api/Stripe/Issuing/Authorization.php +68 -0
- app/api/Stripe/Issuing/Card.php +51 -0
- app/api/Stripe/Issuing/CardDetails.php +21 -0
- app/api/Stripe/Issuing/Cardholder.php +30 -0
- app/api/Stripe/Issuing/Dispute.php +30 -0
- app/api/Stripe/Issuing/Transaction.php +35 -0
- app/api/Stripe/JsonSerializable.php +0 -18
- app/api/Stripe/LoginLink.php +17 -0
- app/api/Stripe/OAuth.php +93 -0
- app/api/Stripe/Order.php +29 -53
- app/api/Stripe/OrderItem.php +21 -0
- app/api/Stripe/OrderReturn.php +13 -20
- app/api/Stripe/PaymentIntent.php +106 -0
- app/api/Stripe/PaymentMethod.php +59 -0
- app/api/Stripe/Payout.php +92 -0
- app/api/Stripe/Person.php +107 -0
- app/api/Stripe/Plan.php +25 -76
- app/api/Stripe/Product.php +30 -61
- app/api/Stripe/Radar/EarlyFraudWarning.php +36 -0
- app/api/Stripe/Radar/ValueList.php +32 -0
- app/api/Stripe/Radar/ValueListItem.php +26 -0
- app/api/Stripe/Recipient.php +22 -67
- app/api/Stripe/RecipientTransfer.php +38 -0
- app/api/Stripe/Refund.php +30 -49
- app/api/Stripe/Reporting/ReportRun.php +28 -0
- app/api/Stripe/Reporting/ReportType.php +24 -0
- app/api/Stripe/RequestTelemetry.php +27 -0
- app/api/Stripe/Review.php +57 -0
- app/api/Stripe/SKU.php +21 -64
- app/api/Stripe/SetupIntent.php +74 -0
- app/api/Stripe/Sigma/ScheduledQueryRun.php +33 -0
- app/api/Stripe/SingletonApiResource.php +3 -1
- app/api/Stripe/Source.php +109 -14
- app/api/Stripe/SourceTransaction.php +22 -0
- app/api/Stripe/Stripe.php +146 -7
- app/api/Stripe/StripeObject.php +347 -117
- app/api/Stripe/Subscription.php +58 -57
- app/api/Stripe/SubscriptionItem.php +29 -58
- app/api/Stripe/SubscriptionSchedule.php +68 -0
- app/api/Stripe/TaxId.php +80 -0
- app/api/Stripe/TaxRate.php +30 -0
- app/api/Stripe/Terminal/ConnectionToken.php +17 -0
- app/api/Stripe/Terminal/Location.php +25 -0
- app/api/Stripe/Terminal/Reader.php +30 -0
- app/api/Stripe/ThreeDSecure.php +5 -22
- app/api/Stripe/Token.php +13 -21
- app/api/Stripe/Topup.php +59 -0
- app/api/Stripe/Transfer.php +61 -56
- app/api/Stripe/TransferReversal.php +9 -1
- app/api/Stripe/UsageRecord.php +43 -0
- app/api/Stripe/UsageRecordSummary.php +21 -0
- app/api/Stripe/Util/AutoPagingIterator.php +3 -3
- app/api/Stripe/Util/CaseInsensitiveArray.php +62 -0
- app/api/Stripe/Util/DefaultLogger.php +18 -0
- app/api/Stripe/Util/LoggerInterface.php +36 -0
- app/api/Stripe/Util/RandomGenerator.php +34 -0
- app/api/Stripe/Util/RequestOptions.php +34 -5
- app/api/Stripe/Util/Set.php +2 -2
- app/api/Stripe/Util/Util.php +260 -44
- app/api/Stripe/Webhook.php +40 -0
- app/api/Stripe/WebhookEndpoint.php +28 -0
- app/api/Stripe/WebhookSignature.php +133 -0
- app/features/events.php +69 -3
- app/features/fes.php +72 -5
- app/features/login.php +81 -0
- app/features/login/index.html +0 -0
- app/features/login/login.php +60 -0
- app/features/mec.php +16 -16
- app/features/mec/booking.php +197 -0
- app/features/mec/gateways.php +1 -117
- app/features/mec/meta_boxes/display_options.php +158 -36
- app/features/mec/notifications.php +1 -197
- app/features/mec/regform.php +2 -234
- app/features/mec/single.php +1 -1
- app/features/mec/support-page.php +2 -2
- app/features/mec/support.php +1 -1
- app/features/search.php +6 -1
- app/libraries/factory.php +8 -0
- app/libraries/main.php +4 -21
- app/libraries/render.php +1 -1
- app/libraries/skins.php +1 -0
- app/modules/booking/steps/tickets.php +1 -1
- app/skins/grid.php +3 -0
- app/skins/grid/render.php +35 -3
- app/skins/grid/tpl.php +6 -0
- app/skins/list.php +3 -0
- app/skins/list/render.php +35 -1
- app/skins/list/tpl.php +7 -1
- app/skins/masonry/render.php +1 -0
- assets/css/backend.css +407 -1
- assets/css/backend.min.css +1 -1
- assets/css/frontend.css +213 -2
- assets/css/frontend.min.css +1 -1
app/api/Stripe/Account.php
CHANGED
@@ -7,35 +7,88 @@ namespace Stripe;
|
|
7 |
Â
*
|
8 |
Â
* @property string $id
|
9 |
Â
* @property string $object
|
10 |
-
* @property mixed $
|
11 |
-
* @property string $
|
12 |
-
* @property mixed $
|
13 |
Â
* @property bool $charges_enabled
|
Â
|
|
14 |
Â
* @property string $country
|
15 |
-
* @property
|
16 |
-
* @property mixed $decline_charge_on
|
17 |
Â
* @property string $default_currency
|
18 |
Â
* @property bool $details_submitted
|
19 |
-
* @property string $display_name
|
20 |
Â
* @property string $email
|
21 |
-
* @property
|
22 |
-
* @property mixed $
|
23 |
-
* @property
|
24 |
-
* @property
|
25 |
-
* @property mixed $
|
26 |
-
* @property mixed $
|
27 |
-
* @property mixed $support_phone
|
28 |
-
* @property string $timezone
|
29 |
Â
* @property mixed $tos_acceptance
|
30 |
-
* @property
|
31 |
-
* @property bool $transfers_enabled
|
32 |
-
* @property mixed $verification
|
33 |
-
* @property mixed $keys
|
34 |
Â
*
|
35 |
Â
* @package Stripe
|
36 |
Â
*/
|
37 |
Â
class Account extends ApiResource
|
38 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
39 |
Â
public function instanceUrl()
|
40 |
Â
{
|
41 |
Â
if ($this['id'] === null) {
|
@@ -46,7 +99,8 @@ class Account extends ApiResource
|
|
46 |
Â
}
|
47 |
Â
|
48 |
Â
/**
|
49 |
-
* @param string|null $id
|
Â
|
|
50 |
Â
* @param array|string|null $opts
|
51 |
Â
*
|
52 |
Â
* @return Account
|
@@ -64,68 +118,275 @@ class Account extends ApiResource
|
|
64 |
Â
* @param array|null $params
|
65 |
Â
* @param array|string|null $opts
|
66 |
Â
*
|
67 |
-
* @return Account
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
68 |
Â
*/
|
69 |
-
public static function
|
70 |
Â
{
|
71 |
-
return self::
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
72 |
Â
}
|
73 |
Â
|
74 |
Â
/**
|
75 |
-
* @param string $id The ID of the account to update.
|
76 |
Â
* @param array|null $params
|
77 |
Â
* @param array|string|null $options
|
78 |
Â
*
|
79 |
-
* @return
|
80 |
Â
*/
|
81 |
-
public
|
82 |
Â
{
|
83 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
84 |
Â
}
|
85 |
Â
|
86 |
Â
/**
|
Â
|
|
Â
|
|
87 |
Â
* @param array|string|null $opts
|
88 |
Â
*
|
89 |
-
* @return
|
90 |
Â
*/
|
91 |
-
public function
|
92 |
Â
{
|
93 |
-
return
|
94 |
Â
}
|
95 |
Â
|
96 |
Â
/**
|
Â
|
|
Â
|
|
97 |
Â
* @param array|null $params
|
98 |
Â
* @param array|string|null $opts
|
99 |
Â
*
|
100 |
-
* @return
|
101 |
Â
*/
|
102 |
-
public function
|
103 |
Â
{
|
104 |
-
return
|
105 |
Â
}
|
106 |
Â
|
107 |
Â
/**
|
Â
|
|
Â
|
|
108 |
Â
* @param array|null $params
|
109 |
Â
* @param array|string|null $opts
|
110 |
Â
*
|
111 |
-
* @return
|
112 |
Â
*/
|
113 |
-
public function
|
114 |
Â
{
|
115 |
-
$
|
116 |
-
|
117 |
-
|
118 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
119 |
Â
}
|
120 |
Â
|
121 |
Â
/**
|
Â
|
|
122 |
Â
* @param array|null $params
|
123 |
Â
* @param array|string|null $opts
|
124 |
Â
*
|
125 |
-
* @return Collection of
|
126 |
Â
*/
|
127 |
-
public static function
|
128 |
Â
{
|
129 |
-
return self::
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
130 |
Â
}
|
131 |
Â
}
|
7 |
Â
*
|
8 |
Â
* @property string $id
|
9 |
Â
* @property string $object
|
10 |
+
* @property mixed $business_profile
|
11 |
+
* @property string $business_type
|
12 |
+
* @property mixed $capabilities
|
13 |
Â
* @property bool $charges_enabled
|
14 |
+
* @property mixed $company
|
15 |
Â
* @property string $country
|
16 |
+
* @property int $created
|
Â
|
|
17 |
Â
* @property string $default_currency
|
18 |
Â
* @property bool $details_submitted
|
Â
|
|
19 |
Â
* @property string $email
|
20 |
+
* @property Collection $external_accounts
|
21 |
+
* @property mixed $individual
|
22 |
+
* @property StripeObject $metadata
|
23 |
+
* @property bool $payouts_enabled
|
24 |
+
* @property mixed $requirements
|
25 |
+
* @property mixed $settings
|
Â
|
|
Â
|
|
26 |
Â
* @property mixed $tos_acceptance
|
27 |
+
* @property string $type
|
Â
|
|
Â
|
|
Â
|
|
28 |
Â
*
|
29 |
Â
* @package Stripe
|
30 |
Â
*/
|
31 |
Â
class Account extends ApiResource
|
32 |
Â
{
|
33 |
+
const OBJECT_NAME = "account";
|
34 |
+
|
35 |
+
use ApiOperations\All;
|
36 |
+
use ApiOperations\Create;
|
37 |
+
use ApiOperations\Delete;
|
38 |
+
use ApiOperations\NestedResource;
|
39 |
+
use ApiOperations\Retrieve {
|
40 |
+
retrieve as protected _retrieve;
|
41 |
+
}
|
42 |
+
use ApiOperations\Update;
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Possible string representations of an account's business type.
|
46 |
+
* @link https://stripe.com/docs/api/accounts/object#account_object-business_type
|
47 |
+
*/
|
48 |
+
const BUSINESS_TYPE_COMPANY = 'company';
|
49 |
+
const BUSINESS_TYPE_INDIVIDUAL = 'individual';
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Possible string representations of an account's capabilities.
|
53 |
+
* @link https://stripe.com/docs/api/accounts/object#account_object-capabilities
|
54 |
+
*/
|
55 |
+
const CAPABILITY_CARD_PAYMENTS = 'card_payments';
|
56 |
+
const CAPABILITY_LEGACY_PAYMENTS = 'legacy_payments';
|
57 |
+
const CAPABILITY_PLATFORM_PAYMENTS = 'platform_payments';
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Possible string representations of an account's capability status.
|
61 |
+
* @link https://stripe.com/docs/api/accounts/object#account_object-capabilities
|
62 |
+
*/
|
63 |
+
const CAPABILITY_STATUS_ACTIVE = 'active';
|
64 |
+
const CAPABILITY_STATUS_INACTIVE = 'inactive';
|
65 |
+
const CAPABILITY_STATUS_PENDING = 'pending';
|
66 |
+
|
67 |
+
/**
|
68 |
+
* Possible string representations of an account's type.
|
69 |
+
* @link https://stripe.com/docs/api/accounts/object#account_object-type
|
70 |
+
*/
|
71 |
+
const TYPE_CUSTOM = 'custom';
|
72 |
+
const TYPE_EXPRESS = 'express';
|
73 |
+
const TYPE_STANDARD = 'standard';
|
74 |
+
|
75 |
+
public static function getSavedNestedResources()
|
76 |
+
{
|
77 |
+
static $savedNestedResources = null;
|
78 |
+
if ($savedNestedResources === null) {
|
79 |
+
$savedNestedResources = new Util\Set([
|
80 |
+
'external_account',
|
81 |
+
'bank_account',
|
82 |
+
]);
|
83 |
+
}
|
84 |
+
return $savedNestedResources;
|
85 |
+
}
|
86 |
+
|
87 |
+
const PATH_CAPABILITIES = '/capabilities';
|
88 |
+
const PATH_EXTERNAL_ACCOUNTS = '/external_accounts';
|
89 |
+
const PATH_LOGIN_LINKS = '/login_links';
|
90 |
+
const PATH_PERSONS = '/persons';
|
91 |
+
|
92 |
Â
public function instanceUrl()
|
93 |
Â
{
|
94 |
Â
if ($this['id'] === null) {
|
99 |
Â
}
|
100 |
Â
|
101 |
Â
/**
|
102 |
+
* @param array|string|null $id The ID of the account to retrieve, or an
|
103 |
+
* options array containing an `id` key.
|
104 |
Â
* @param array|string|null $opts
|
105 |
Â
*
|
106 |
Â
* @return Account
|
118 |
Â
* @param array|null $params
|
119 |
Â
* @param array|string|null $opts
|
120 |
Â
*
|
121 |
+
* @return Account The rejected account.
|
122 |
+
*/
|
123 |
+
public function reject($params = null, $opts = null)
|
124 |
+
{
|
125 |
+
$url = $this->instanceUrl() . '/reject';
|
126 |
+
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
127 |
+
$this->refreshFrom($response, $opts);
|
128 |
+
return $this;
|
129 |
+
}
|
130 |
+
|
131 |
+
/**
|
132 |
+
* @param array|null $clientId
|
133 |
+
* @param array|string|null $opts
|
134 |
+
*
|
135 |
+
* @return StripeObject Object containing the response from the API.
|
136 |
+
*/
|
137 |
+
public function deauthorize($clientId = null, $opts = null)
|
138 |
+
{
|
139 |
+
$params = [
|
140 |
+
'client_id' => $clientId,
|
141 |
+
'stripe_user_id' => $this->id,
|
142 |
+
];
|
143 |
+
return OAuth::deauthorize($params, $opts);
|
144 |
+
}
|
145 |
+
|
146 |
+
/*
|
147 |
+
* Capabilities methods
|
148 |
+
* We can not add the capabilities() method today as the Account object already has a
|
149 |
+
* capabilities property which is a hash and not the sub-list of capabilities.
|
150 |
+
*/
|
151 |
+
|
152 |
+
|
153 |
+
/**
|
154 |
+
* @param string $id The ID of the account to which the capability belongs.
|
155 |
+
* @param string $capabilityId The ID of the capability to retrieve.
|
156 |
+
* @param array|null $params
|
157 |
+
* @param array|string|null $opts
|
158 |
+
*
|
159 |
+
* @return Capability
|
160 |
+
*/
|
161 |
+
public static function retrieveCapability($id, $capabilityId, $params = null, $opts = null)
|
162 |
+
{
|
163 |
+
return self::_retrieveNestedResource($id, static::PATH_CAPABILITIES, $capabilityId, $params, $opts);
|
164 |
+
}
|
165 |
+
|
166 |
+
/**
|
167 |
+
* @param string $id The ID of the account to which the capability belongs.
|
168 |
+
* @param string $capabilityId The ID of the capability to update.
|
169 |
+
* @param array|null $params
|
170 |
+
* @param array|string|null $opts
|
171 |
+
*
|
172 |
+
* @return Capability
|
173 |
Â
*/
|
174 |
+
public static function updateCapability($id, $capabilityId, $params = null, $opts = null)
|
175 |
Â
{
|
176 |
+
return self::_updateNestedResource($id, static::PATH_CAPABILITIES, $capabilityId, $params, $opts);
|
177 |
+
}
|
178 |
+
|
179 |
+
/**
|
180 |
+
* @param string $id The ID of the account on which to retrieve the capabilities.
|
181 |
+
* @param array|null $params
|
182 |
+
* @param array|string|null $opts
|
183 |
+
*
|
184 |
+
* @return Collection The list of capabilities.
|
185 |
+
*/
|
186 |
+
public static function allCapabilities($id, $params = null, $opts = null)
|
187 |
+
{
|
188 |
+
return self::_allNestedResources($id, static::PATH_CAPABILITIES, $params, $opts);
|
189 |
+
}
|
190 |
+
|
191 |
+
/**
|
192 |
+
* @param string $id The ID of the account on which to create the external account.
|
193 |
+
* @param array|null $params
|
194 |
+
* @param array|string|null $opts
|
195 |
+
*
|
196 |
+
* @return BankAccount|Card
|
197 |
+
*/
|
198 |
+
public static function createExternalAccount($id, $params = null, $opts = null)
|
199 |
+
{
|
200 |
+
return self::_createNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $params, $opts);
|
201 |
+
}
|
202 |
+
|
203 |
+
/**
|
204 |
+
* @param string $id The ID of the account to which the external account belongs.
|
205 |
+
* @param string $externalAccountId The ID of the external account to retrieve.
|
206 |
+
* @param array|null $params
|
207 |
+
* @param array|string|null $opts
|
208 |
+
*
|
209 |
+
* @return BankAccount|Card
|
210 |
+
*/
|
211 |
+
public static function retrieveExternalAccount($id, $externalAccountId, $params = null, $opts = null)
|
212 |
+
{
|
213 |
+
return self::_retrieveNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $externalAccountId, $params, $opts);
|
214 |
+
}
|
215 |
+
|
216 |
+
/**
|
217 |
+
* @param string $id The ID of the account to which the external account belongs.
|
218 |
+
* @param string $externalAccountId The ID of the external account to update.
|
219 |
+
* @param array|null $params
|
220 |
+
* @param array|string|null $opts
|
221 |
+
*
|
222 |
+
* @return BankAccount|Card
|
223 |
+
*/
|
224 |
+
public static function updateExternalAccount($id, $externalAccountId, $params = null, $opts = null)
|
225 |
+
{
|
226 |
+
return self::_updateNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $externalAccountId, $params, $opts);
|
227 |
+
}
|
228 |
+
|
229 |
+
/**
|
230 |
+
* @param string $id The ID of the account to which the external account belongs.
|
231 |
+
* @param string $externalAccountId The ID of the external account to delete.
|
232 |
+
* @param array|null $params
|
233 |
+
* @param array|string|null $opts
|
234 |
+
*
|
235 |
+
* @return BankAccount|Card
|
236 |
+
*/
|
237 |
+
public static function deleteExternalAccount($id, $externalAccountId, $params = null, $opts = null)
|
238 |
+
{
|
239 |
+
return self::_deleteNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $externalAccountId, $params, $opts);
|
240 |
+
}
|
241 |
+
|
242 |
+
/**
|
243 |
+
* @param string $id The ID of the account on which to retrieve the external accounts.
|
244 |
+
* @param array|null $params
|
245 |
+
* @param array|string|null $opts
|
246 |
+
*
|
247 |
+
* @return Collection The list of external accounts (BankAccount or Card).
|
248 |
+
*/
|
249 |
+
public static function allExternalAccounts($id, $params = null, $opts = null)
|
250 |
+
{
|
251 |
+
return self::_allNestedResources($id, static::PATH_EXTERNAL_ACCOUNTS, $params, $opts);
|
252 |
+
}
|
253 |
+
|
254 |
+
/**
|
255 |
+
* @param string $id The ID of the account on which to create the login link.
|
256 |
+
* @param array|null $params
|
257 |
+
* @param array|string|null $opts
|
258 |
+
*
|
259 |
+
* @return LoginLink
|
260 |
+
*/
|
261 |
+
public static function createLoginLink($id, $params = null, $opts = null)
|
262 |
+
{
|
263 |
+
return self::_createNestedResource($id, static::PATH_LOGIN_LINKS, $params, $opts);
|
264 |
Â
}
|
265 |
Â
|
266 |
Â
/**
|
Â
|
|
267 |
Â
* @param array|null $params
|
268 |
Â
* @param array|string|null $options
|
269 |
Â
*
|
270 |
+
* @return Collection The list of persons.
|
271 |
Â
*/
|
272 |
+
public function persons($params = null, $options = null)
|
273 |
Â
{
|
274 |
+
$url = $this->instanceUrl() . '/persons';
|
275 |
+
list($response, $opts) = $this->_request('get', $url, $params, $options);
|
276 |
+
$obj = Util\Util::convertToStripeObject($response, $opts);
|
277 |
+
$obj->setLastResponse($response);
|
278 |
+
return $obj;
|
279 |
Â
}
|
280 |
Â
|
281 |
Â
/**
|
282 |
+
* @param string $id The ID of the account on which to create the person.
|
283 |
+
* @param array|null $params
|
284 |
Â
* @param array|string|null $opts
|
285 |
Â
*
|
286 |
+
* @return Person
|
287 |
Â
*/
|
288 |
+
public static function createPerson($id, $params = null, $opts = null)
|
289 |
Â
{
|
290 |
+
return self::_createNestedResource($id, static::PATH_PERSONS, $params, $opts);
|
291 |
Â
}
|
292 |
Â
|
293 |
Â
/**
|
294 |
+
* @param string $id The ID of the account to which the person belongs.
|
295 |
+
* @param string $personId The ID of the person to retrieve.
|
296 |
Â
* @param array|null $params
|
297 |
Â
* @param array|string|null $opts
|
298 |
Â
*
|
299 |
+
* @return Person
|
300 |
Â
*/
|
301 |
+
public static function retrievePerson($id, $personId, $params = null, $opts = null)
|
302 |
Â
{
|
303 |
+
return self::_retrieveNestedResource($id, static::PATH_PERSONS, $personId, $params, $opts);
|
304 |
Â
}
|
305 |
Â
|
306 |
Â
/**
|
307 |
+
* @param string $id The ID of the account to which the person belongs.
|
308 |
+
* @param string $personId The ID of the person to update.
|
309 |
Â
* @param array|null $params
|
310 |
Â
* @param array|string|null $opts
|
311 |
Â
*
|
312 |
+
* @return Person
|
313 |
Â
*/
|
314 |
+
public static function updatePerson($id, $personId, $params = null, $opts = null)
|
315 |
Â
{
|
316 |
+
return self::_updateNestedResource($id, static::PATH_PERSONS, $personId, $params, $opts);
|
317 |
+
}
|
318 |
+
|
319 |
+
/**
|
320 |
+
* @param string $id The ID of the account to which the person belongs.
|
321 |
+
* @param string $personId The ID of the person to delete.
|
322 |
+
* @param array|null $params
|
323 |
+
* @param array|string|null $opts
|
324 |
+
*
|
325 |
+
* @return Person
|
326 |
+
*/
|
327 |
+
public static function deletePerson($id, $personId, $params = null, $opts = null)
|
328 |
+
{
|
329 |
+
return self::_deleteNestedResource($id, static::PATH_PERSONS, $personId, $params, $opts);
|
330 |
Â
}
|
331 |
Â
|
332 |
Â
/**
|
333 |
+
* @param string $id The ID of the account on which to retrieve the persons.
|
334 |
Â
* @param array|null $params
|
335 |
Â
* @param array|string|null $opts
|
336 |
Â
*
|
337 |
+
* @return Collection The list of persons.
|
338 |
Â
*/
|
339 |
+
public static function allPersons($id, $params = null, $opts = null)
|
340 |
Â
{
|
341 |
+
return self::_allNestedResources($id, static::PATH_PERSONS, $params, $opts);
|
342 |
+
}
|
343 |
+
|
344 |
+
public function serializeParameters($force = false)
|
345 |
+
{
|
346 |
+
$update = parent::serializeParameters($force);
|
347 |
+
if (isset($this->_values['legal_entity'])) {
|
348 |
+
$entity = $this['legal_entity'];
|
349 |
+
if (isset($entity->_values['additional_owners'])) {
|
350 |
+
$owners = $entity['additional_owners'];
|
351 |
+
$entityUpdate = isset($update['legal_entity']) ? $update['legal_entity'] : [];
|
352 |
+
$entityUpdate['additional_owners'] = $this->serializeAdditionalOwners($entity, $owners);
|
353 |
+
$update['legal_entity'] = $entityUpdate;
|
354 |
+
}
|
355 |
+
}
|
356 |
+
if (isset($this->_values['individual'])) {
|
357 |
+
$individual = $this['individual'];
|
358 |
+
if (($individual instanceof Person) && !isset($update['individual'])) {
|
359 |
+
$update['individual'] = $individual->serializeParameters($force);
|
360 |
+
}
|
361 |
+
}
|
362 |
+
return $update;
|
363 |
+
}
|
364 |
+
|
365 |
+
private function serializeAdditionalOwners($legalEntity, $additionalOwners)
|
366 |
+
{
|
367 |
+
if (isset($legalEntity->_originalValues['additional_owners'])) {
|
368 |
+
$originalValue = $legalEntity->_originalValues['additional_owners'];
|
369 |
+
} else {
|
370 |
+
$originalValue = [];
|
371 |
+
}
|
372 |
+
if (($originalValue) && (count($originalValue) > count($additionalOwners))) {
|
373 |
+
throw new \InvalidArgumentException(
|
374 |
+
"You cannot delete an item from an array, you must instead set a new array"
|
375 |
+
);
|
376 |
+
}
|
377 |
+
|
378 |
+
$updateArr = [];
|
379 |
+
foreach ($additionalOwners as $i => $v) {
|
380 |
+
$update = ($v instanceof StripeObject) ? $v->serializeParameters() : $v;
|
381 |
+
|
382 |
+
if ($update !== []) {
|
383 |
+
if (!$originalValue ||
|
384 |
+
!array_key_exists($i, $originalValue) ||
|
385 |
+
($update != $legalEntity->serializeParamsValue($originalValue[$i], null, false, true))) {
|
386 |
+
$updateArr[$i] = $update;
|
387 |
+
}
|
388 |
+
}
|
389 |
+
}
|
390 |
+
return $updateArr;
|
391 |
Â
}
|
392 |
Â
}
|
app/api/Stripe/AccountLink.php
ADDED
@@ -0,0 +1,20 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class AccountLink
|
7 |
+
*
|
8 |
+
* @property string $object
|
9 |
+
* @property int $created
|
10 |
+
* @property int $expires_at
|
11 |
+
* @property string $url
|
12 |
+
*
|
13 |
+
* @package Stripe
|
14 |
+
*/
|
15 |
+
class AccountLink extends ApiResource
|
16 |
+
{
|
17 |
+
const OBJECT_NAME = "account_link";
|
18 |
+
|
19 |
+
use ApiOperations\Create;
|
20 |
+
}
|
app/api/Stripe/AlipayAccount.php
CHANGED
@@ -6,8 +6,66 @@ namespace Stripe;
|
|
6 |
Â
* Class AlipayAccount
|
7 |
Â
*
|
8 |
Â
* @package Stripe
|
Â
|
|
Â
|
|
Â
|
|
9 |
Â
*/
|
10 |
-
class AlipayAccount extends
|
11 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
12 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
13 |
Â
}
|
6 |
Â
* Class AlipayAccount
|
7 |
Â
*
|
8 |
Â
* @package Stripe
|
9 |
+
*
|
10 |
+
* @deprecated Alipay accounts are deprecated. Please use the sources API instead.
|
11 |
+
* @link https://stripe.com/docs/sources/alipay
|
12 |
Â
*/
|
13 |
+
class AlipayAccount extends ApiResource
|
14 |
Â
{
|
15 |
+
const OBJECT_NAME = "alipay_account";
|
16 |
+
|
17 |
+
use ApiOperations\Delete;
|
18 |
+
use ApiOperations\Update;
|
19 |
+
|
20 |
+
/**
|
21 |
+
* @return string The instance URL for this resource. It needs to be special
|
22 |
+
* cased because it doesn't fit into the standard resource pattern.
|
23 |
+
*/
|
24 |
+
public function instanceUrl()
|
25 |
+
{
|
26 |
+
if ($this['customer']) {
|
27 |
+
$base = Customer::classUrl();
|
28 |
+
$parent = $this['customer'];
|
29 |
+
$path = 'sources';
|
30 |
+
} else {
|
31 |
+
$msg = "Alipay accounts cannot be accessed without a customer ID.";
|
32 |
+
throw new Error\InvalidRequest($msg, null);
|
33 |
+
}
|
34 |
+
$parentExtn = urlencode(Util\Util::utf8($parent));
|
35 |
+
$extn = urlencode(Util\Util::utf8($this['id']));
|
36 |
+
return "$base/$parentExtn/$path/$extn";
|
37 |
+
}
|
38 |
+
|
39 |
+
/**
|
40 |
+
* @param array|string $_id
|
41 |
+
* @param array|string|null $_opts
|
42 |
+
*
|
43 |
+
* @throws \Stripe\Error\InvalidRequest
|
44 |
+
*
|
45 |
+
* @deprecated Alipay accounts are deprecated. Please use the sources API instead.
|
46 |
+
* @link https://stripe.com/docs/sources/alipay
|
47 |
+
*/
|
48 |
+
public static function retrieve($_id, $_opts = null)
|
49 |
+
{
|
50 |
+
$msg = "Alipay accounts cannot be accessed without a customer ID. " .
|
51 |
+
"Retrieve an Alipay account using \$customer->sources->retrieve('alipay_account_id') instead.";
|
52 |
+
throw new Error\InvalidRequest($msg, null);
|
53 |
+
}
|
54 |
Â
|
55 |
+
/**
|
56 |
+
* @param string $_id
|
57 |
+
* @param array|null $_params
|
58 |
+
* @param array|string|null $_options
|
59 |
+
*
|
60 |
+
* @throws \Stripe\Error\InvalidRequest
|
61 |
+
*
|
62 |
+
* @deprecated Alipay accounts are deprecated. Please use the sources API instead.
|
63 |
+
* @link https://stripe.com/docs/sources/alipay
|
64 |
+
*/
|
65 |
+
public static function update($_id, $_params = null, $_options = null)
|
66 |
+
{
|
67 |
+
$msg = "Alipay accounts cannot be accessed without a customer ID. " .
|
68 |
+
"Call save() on \$customer->sources->retrieve('alipay_account_id') instead.";
|
69 |
+
throw new Error\InvalidRequest($msg, null);
|
70 |
+
}
|
71 |
Â
}
|
app/api/Stripe/ApiOperations/All.php
ADDED
@@ -0,0 +1,34 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\ApiOperations;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Trait for listable resources. Adds a `all()` static method to the class.
|
7 |
+
*
|
8 |
+
* This trait should only be applied to classes that derive from StripeObject.
|
9 |
+
*/
|
10 |
+
trait All
|
11 |
+
{
|
12 |
+
/**
|
13 |
+
* @param array|null $params
|
14 |
+
* @param array|string|null $opts
|
15 |
+
*
|
16 |
+
* @return \Stripe\Collection of ApiResources
|
17 |
+
*/
|
18 |
+
public static function all($params = null, $opts = null)
|
19 |
+
{
|
20 |
+
self::_validateParams($params);
|
21 |
+
$url = static::classUrl();
|
22 |
+
|
23 |
+
list($response, $opts) = static::_staticRequest('get', $url, $params, $opts);
|
24 |
+
$obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
|
25 |
+
if (!is_a($obj, 'Stripe\\Collection')) {
|
26 |
+
$class = get_class($obj);
|
27 |
+
$message = "Expected type \"Stripe\\Collection\", got \"$class\" instead";
|
28 |
+
throw new \Stripe\Error\Api($message);
|
29 |
+
}
|
30 |
+
$obj->setLastResponse($response);
|
31 |
+
$obj->setRequestParams($params);
|
32 |
+
return $obj;
|
33 |
+
}
|
34 |
+
}
|
app/api/Stripe/ApiOperations/Create.php
ADDED
@@ -0,0 +1,28 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\ApiOperations;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Trait for creatable resources. Adds a `create()` static method to the class.
|
7 |
+
*
|
8 |
+
* This trait should only be applied to classes that derive from StripeObject.
|
9 |
+
*/
|
10 |
+
trait Create
|
11 |
+
{
|
12 |
+
/**
|
13 |
+
* @param array|null $params
|
14 |
+
* @param array|string|null $options
|
15 |
+
*
|
16 |
+
* @return static The created resource.
|
17 |
+
*/
|
18 |
+
public static function create($params = null, $options = null)
|
19 |
+
{
|
20 |
+
self::_validateParams($params);
|
21 |
+
$url = static::classUrl();
|
22 |
+
|
23 |
+
list($response, $opts) = static::_staticRequest('post', $url, $params, $options);
|
24 |
+
$obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
|
25 |
+
$obj->setLastResponse($response);
|
26 |
+
return $obj;
|
27 |
+
}
|
28 |
+
}
|
app/api/Stripe/ApiOperations/Delete.php
ADDED
@@ -0,0 +1,27 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\ApiOperations;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Trait for deletable resources. Adds a `delete()` method to the class.
|
7 |
+
*
|
8 |
+
* This trait should only be applied to classes that derive from StripeObject.
|
9 |
+
*/
|
10 |
+
trait Delete
|
11 |
+
{
|
12 |
+
/**
|
13 |
+
* @param array|null $params
|
14 |
+
* @param array|string|null $opts
|
15 |
+
*
|
16 |
+
* @return static The deleted resource.
|
17 |
+
*/
|
18 |
+
public function delete($params = null, $opts = null)
|
19 |
+
{
|
20 |
+
self::_validateParams($params);
|
21 |
+
|
22 |
+
$url = $this->instanceUrl();
|
23 |
+
list($response, $opts) = $this->_request('delete', $url, $params, $opts);
|
24 |
+
$this->refreshFrom($response, $opts);
|
25 |
+
return $this;
|
26 |
+
}
|
27 |
+
}
|
app/api/Stripe/ApiOperations/NestedResource.php
ADDED
@@ -0,0 +1,118 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\ApiOperations;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Trait for resources that have nested resources.
|
7 |
+
*
|
8 |
+
* This trait should only be applied to classes that derive from StripeObject.
|
9 |
+
*/
|
10 |
+
trait NestedResource
|
11 |
+
{
|
12 |
+
/**
|
13 |
+
* @param string $method
|
14 |
+
* @param string $url
|
15 |
+
* @param array|null $params
|
16 |
+
* @param array|string|null $options
|
17 |
+
*
|
18 |
+
* @return \Stripe\StripeObject
|
19 |
+
*/
|
20 |
+
protected static function _nestedResourceOperation($method, $url, $params = null, $options = null)
|
21 |
+
{
|
22 |
+
self::_validateParams($params);
|
23 |
+
|
24 |
+
list($response, $opts) = static::_staticRequest($method, $url, $params, $options);
|
25 |
+
$obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
|
26 |
+
$obj->setLastResponse($response);
|
27 |
+
return $obj;
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* @param string $id
|
32 |
+
* @param string $nestedPath
|
33 |
+
* @param string|null $nestedId
|
34 |
+
*
|
35 |
+
* @return string
|
36 |
+
*/
|
37 |
+
protected static function _nestedResourceUrl($id, $nestedPath, $nestedId = null)
|
38 |
+
{
|
39 |
+
$url = static::resourceUrl($id) . $nestedPath;
|
40 |
+
if ($nestedId !== null) {
|
41 |
+
$url .= "/$nestedId";
|
42 |
+
}
|
43 |
+
return $url;
|
44 |
+
}
|
45 |
+
|
46 |
+
/**
|
47 |
+
* @param string $id
|
48 |
+
* @param string $nestedPath
|
49 |
+
* @param array|null $params
|
50 |
+
* @param array|string|null $options
|
51 |
+
*
|
52 |
+
* @return \Stripe\StripeObject
|
53 |
+
*/
|
54 |
+
protected static function _createNestedResource($id, $nestedPath, $params = null, $options = null)
|
55 |
+
{
|
56 |
+
$url = static::_nestedResourceUrl($id, $nestedPath);
|
57 |
+
return self::_nestedResourceOperation('post', $url, $params, $options);
|
58 |
+
}
|
59 |
+
|
60 |
+
/**
|
61 |
+
* @param string $id
|
62 |
+
* @param string $nestedPath
|
63 |
+
* @param string|null $nestedId
|
64 |
+
* @param array|null $params
|
65 |
+
* @param array|string|null $options
|
66 |
+
*
|
67 |
+
* @return \Stripe\StripeObject
|
68 |
+
*/
|
69 |
+
protected static function _retrieveNestedResource($id, $nestedPath, $nestedId, $params = null, $options = null)
|
70 |
+
{
|
71 |
+
$url = static::_nestedResourceUrl($id, $nestedPath, $nestedId);
|
72 |
+
return self::_nestedResourceOperation('get', $url, $params, $options);
|
73 |
+
}
|
74 |
+
|
75 |
+
/**
|
76 |
+
* @param string $id
|
77 |
+
* @param string $nestedPath
|
78 |
+
* @param string|null $nestedId
|
79 |
+
* @param array|null $params
|
80 |
+
* @param array|string|null $options
|
81 |
+
*
|
82 |
+
* @return \Stripe\StripeObject
|
83 |
+
*/
|
84 |
+
protected static function _updateNestedResource($id, $nestedPath, $nestedId, $params = null, $options = null)
|
85 |
+
{
|
86 |
+
$url = static::_nestedResourceUrl($id, $nestedPath, $nestedId);
|
87 |
+
return self::_nestedResourceOperation('post', $url, $params, $options);
|
88 |
+
}
|
89 |
+
|
90 |
+
/**
|
91 |
+
* @param string $id
|
92 |
+
* @param string $nestedPath
|
93 |
+
* @param string|null $nestedId
|
94 |
+
* @param array|null $params
|
95 |
+
* @param array|string|null $options
|
96 |
+
*
|
97 |
+
* @return \Stripe\StripeObject
|
98 |
+
*/
|
99 |
+
protected static function _deleteNestedResource($id, $nestedPath, $nestedId, $params = null, $options = null)
|
100 |
+
{
|
101 |
+
$url = static::_nestedResourceUrl($id, $nestedPath, $nestedId);
|
102 |
+
return self::_nestedResourceOperation('delete', $url, $params, $options);
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* @param string $id
|
107 |
+
* @param string $nestedPath
|
108 |
+
* @param array|null $params
|
109 |
+
* @param array|string|null $options
|
110 |
+
*
|
111 |
+
* @return \Stripe\StripeObject
|
112 |
+
*/
|
113 |
+
protected static function _allNestedResources($id, $nestedPath, $params = null, $options = null)
|
114 |
+
{
|
115 |
+
$url = static::_nestedResourceUrl($id, $nestedPath);
|
116 |
+
return self::_nestedResourceOperation('get', $url, $params, $options);
|
117 |
+
}
|
118 |
+
}
|
app/api/Stripe/ApiOperations/Request.php
ADDED
@@ -0,0 +1,61 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\ApiOperations;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Trait for resources that need to make API requests.
|
7 |
+
*
|
8 |
+
* This trait should only be applied to classes that derive from StripeObject.
|
9 |
+
*/
|
10 |
+
trait Request
|
11 |
+
{
|
12 |
+
/**
|
13 |
+
* @param array|null|mixed $params The list of parameters to validate
|
14 |
+
*
|
15 |
+
* @throws \Stripe\Error\Api if $params exists and is not an array
|
16 |
+
*/
|
17 |
+
protected static function _validateParams($params = null)
|
18 |
+
{
|
19 |
+
if ($params && !is_array($params)) {
|
20 |
+
$message = "You must pass an array as the first argument to Stripe API "
|
21 |
+
. "method calls. (HINT: an example call to create a charge "
|
22 |
+
. "would be: \"Stripe\\Charge::create(['amount' => 100, "
|
23 |
+
. "'currency' => 'usd', 'source' => 'tok_1234'])\")";
|
24 |
+
throw new \Stripe\Error\Api($message);
|
25 |
+
}
|
26 |
+
}
|
27 |
+
|
28 |
+
/**
|
29 |
+
* @param string $method HTTP method ('get', 'post', etc.)
|
30 |
+
* @param string $url URL for the request
|
31 |
+
* @param array $params list of parameters for the request
|
32 |
+
* @param array|string|null $options
|
33 |
+
*
|
34 |
+
* @return array tuple containing (the JSON response, $options)
|
35 |
+
*/
|
36 |
+
protected function _request($method, $url, $params = [], $options = null)
|
37 |
+
{
|
38 |
+
$opts = $this->_opts->merge($options);
|
39 |
+
list($resp, $options) = static::_staticRequest($method, $url, $params, $opts);
|
40 |
+
$this->setLastResponse($resp);
|
41 |
+
return [$resp->json, $options];
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* @param string $method HTTP method ('get', 'post', etc.)
|
46 |
+
* @param string $url URL for the request
|
47 |
+
* @param array $params list of parameters for the request
|
48 |
+
* @param array|string|null $options
|
49 |
+
*
|
50 |
+
* @return array tuple containing (the JSON response, $options)
|
51 |
+
*/
|
52 |
+
protected static function _staticRequest($method, $url, $params, $options)
|
53 |
+
{
|
54 |
+
$opts = \Stripe\Util\RequestOptions::parse($options);
|
55 |
+
$baseUrl = isset($opts->apiBase) ? $opts->apiBase : static::baseUrl();
|
56 |
+
$requestor = new \Stripe\ApiRequestor($opts->apiKey, $baseUrl);
|
57 |
+
list($response, $opts->apiKey) = $requestor->request($method, $url, $params, $opts->headers);
|
58 |
+
$opts->discardNonPersistentHeaders();
|
59 |
+
return [$response, $opts];
|
60 |
+
}
|
61 |
+
}
|
app/api/Stripe/ApiOperations/Retrieve.php
ADDED
@@ -0,0 +1,27 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\ApiOperations;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Trait for retrievable resources. Adds a `retrieve()` static method to the
|
7 |
+
* class.
|
8 |
+
*
|
9 |
+
* This trait should only be applied to classes that derive from StripeObject.
|
10 |
+
*/
|
11 |
+
trait Retrieve
|
12 |
+
{
|
13 |
+
/**
|
14 |
+
* @param array|string $id The ID of the API resource to retrieve,
|
15 |
+
* or an options array containing an `id` key.
|
16 |
+
* @param array|string|null $opts
|
17 |
+
*
|
18 |
+
* @return static
|
19 |
+
*/
|
20 |
+
public static function retrieve($id, $opts = null)
|
21 |
+
{
|
22 |
+
$opts = \Stripe\Util\RequestOptions::parse($opts);
|
23 |
+
$instance = new static($id, $opts);
|
24 |
+
$instance->refresh();
|
25 |
+
return $instance;
|
26 |
+
}
|
27 |
+
}
|
app/api/Stripe/ApiOperations/Update.php
ADDED
@@ -0,0 +1,46 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\ApiOperations;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Trait for updatable resources. Adds an `update()` static method and a
|
7 |
+
* `save()` method to the class.
|
8 |
+
*
|
9 |
+
* This trait should only be applied to classes that derive from StripeObject.
|
10 |
+
*/
|
11 |
+
trait Update
|
12 |
+
{
|
13 |
+
/**
|
14 |
+
* @param string $id The ID of the resource to update.
|
15 |
+
* @param array|null $params
|
16 |
+
* @param array|string|null $opts
|
17 |
+
*
|
18 |
+
* @return static The updated resource.
|
19 |
+
*/
|
20 |
+
public static function update($id, $params = null, $opts = null)
|
21 |
+
{
|
22 |
+
self::_validateParams($params);
|
23 |
+
$url = static::resourceUrl($id);
|
24 |
+
|
25 |
+
list($response, $opts) = static::_staticRequest('post', $url, $params, $opts);
|
26 |
+
$obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
|
27 |
+
$obj->setLastResponse($response);
|
28 |
+
return $obj;
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* @param array|string|null $opts
|
33 |
+
*
|
34 |
+
* @return static The saved resource.
|
35 |
+
*/
|
36 |
+
public function save($opts = null)
|
37 |
+
{
|
38 |
+
$params = $this->serializeParameters();
|
39 |
+
if (count($params) > 0) {
|
40 |
+
$url = $this->instanceUrl();
|
41 |
+
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
42 |
+
$this->refreshFrom($response, $opts);
|
43 |
+
}
|
44 |
+
return $this;
|
45 |
+
}
|
46 |
+
}
|
app/api/Stripe/ApiRequestor.php
CHANGED
@@ -9,12 +9,32 @@ namespace Stripe;
|
|
9 |
Â
*/
|
10 |
Â
class ApiRequestor
|
11 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
12 |
Â
private $_apiKey;
|
13 |
Â
|
Â
|
|
Â
|
|
Â
|
|
14 |
Â
private $_apiBase;
|
15 |
Â
|
Â
|
|
Â
|
|
Â
|
|
16 |
Â
private static $_httpClient;
|
17 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
18 |
Â
public function __construct($apiKey = null, $apiBase = null)
|
19 |
Â
{
|
20 |
Â
$this->_apiKey = $apiKey;
|
@@ -24,6 +44,37 @@ class ApiRequestor
|
|
24 |
Â
$this->_apiBase = $apiBase;
|
25 |
Â
}
|
26 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
27 |
Â
private static function _encodeObjects($d)
|
28 |
Â
{
|
29 |
Â
if ($d instanceof ApiResource) {
|
@@ -33,7 +84,7 @@ class ApiRequestor
|
|
33 |
Â
} elseif ($d === false) {
|
34 |
Â
return 'false';
|
35 |
Â
} elseif (is_array($d)) {
|
36 |
-
$res =
|
37 |
Â
foreach ($d as $k => $v) {
|
38 |
Â
$res[$k] = self::_encodeObjects($v);
|
39 |
Â
}
|
@@ -44,27 +95,37 @@ class ApiRequestor
|
|
44 |
Â
}
|
45 |
Â
|
46 |
Â
/**
|
47 |
-
* @param string
|
48 |
-
* @param string
|
49 |
Â
* @param array|null $params
|
50 |
Â
* @param array|null $headers
|
51 |
Â
*
|
52 |
Â
* @return array An array whose first element is an API response and second
|
53 |
Â
* element is the API key used to make the request.
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
54 |
Â
*/
|
55 |
Â
public function request($method, $url, $params = null, $headers = null)
|
56 |
Â
{
|
57 |
-
|
58 |
-
|
59 |
-
}
|
60 |
-
if (!$headers) {
|
61 |
-
$headers = array();
|
62 |
-
}
|
63 |
Â
list($rbody, $rcode, $rheaders, $myApiKey) =
|
64 |
Â
$this->_requestRaw($method, $url, $params, $headers);
|
65 |
Â
$json = $this->_interpretResponse($rbody, $rcode, $rheaders);
|
66 |
Â
$resp = new ApiResponse($rbody, $rcode, $rheaders, $json);
|
67 |
-
return
|
68 |
Â
}
|
69 |
Â
|
70 |
Â
/**
|
@@ -80,11 +141,21 @@ class ApiRequestor
|
|
80 |
Â
* permissions.
|
81 |
Â
* @throws Error\Card if the error is the error code is 402 (payment
|
82 |
Â
* required)
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
83 |
Â
* @throws Error\RateLimit if the error is caused by too many requests
|
84 |
Â
* hitting the API.
|
85 |
Â
* @throws Error\Api otherwise.
|
86 |
Â
*/
|
87 |
-
public function
|
88 |
Â
{
|
89 |
Â
if (!is_array($resp) || !isset($resp['error'])) {
|
90 |
Â
$msg = "Invalid response object from API: $rbody "
|
@@ -92,35 +163,104 @@ class ApiRequestor
|
|
92 |
Â
throw new Error\Api($msg, $rcode, $rbody, $resp, $rheaders);
|
93 |
Â
}
|
94 |
Â
|
95 |
-
$
|
96 |
-
|
97 |
-
$
|
98 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
99 |
Â
|
100 |
Â
switch ($rcode) {
|
101 |
Â
case 400:
|
102 |
Â
// 'rate_limit' code is deprecated, but left here for backwards compatibility
|
103 |
Â
// for API versions earlier than 2015-09-08
|
104 |
Â
if ($code == 'rate_limit') {
|
105 |
-
|
Â
|
|
Â
|
|
Â
|
|
106 |
Â
}
|
107 |
Â
|
108 |
-
//
|
109 |
Â
case 404:
|
110 |
-
|
111 |
Â
case 401:
|
112 |
-
|
113 |
Â
case 402:
|
114 |
-
|
115 |
Â
case 403:
|
116 |
-
|
117 |
Â
case 429:
|
118 |
-
|
119 |
Â
default:
|
120 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
121 |
Â
}
|
Â
|
|
Â
|
|
122 |
Â
}
|
123 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
124 |
Â
private static function _formatAppInfo($appInfo)
|
125 |
Â
{
|
126 |
Â
if ($appInfo !== null) {
|
@@ -137,38 +277,56 @@ class ApiRequestor
|
|
137 |
Â
}
|
138 |
Â
}
|
139 |
Â
|
140 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
141 |
Â
{
|
142 |
-
$appInfo = Stripe::getAppInfo();
|
143 |
-
|
144 |
Â
$uaString = 'Stripe/v1 PhpBindings/' . Stripe::VERSION;
|
145 |
Â
|
146 |
Â
$langVersion = phpversion();
|
147 |
Â
$uname = php_uname();
|
148 |
-
|
149 |
Â
$appInfo = Stripe::getAppInfo();
|
150 |
-
$ua =
|
151 |
Â
'bindings_version' => Stripe::VERSION,
|
152 |
Â
'lang' => 'php',
|
153 |
Â
'lang_version' => $langVersion,
|
154 |
Â
'publisher' => 'stripe',
|
155 |
Â
'uname' => $uname,
|
156 |
-
|
157 |
-
|
158 |
-
|
Â
|
|
159 |
Â
if ($appInfo !== null) {
|
160 |
Â
$uaString .= ' ' . self::_formatAppInfo($appInfo);
|
161 |
Â
$ua['application'] = $appInfo;
|
162 |
Â
}
|
163 |
Â
|
164 |
-
$defaultHeaders =
|
165 |
Â
'X-Stripe-Client-User-Agent' => json_encode($ua),
|
166 |
Â
'User-Agent' => $uaString,
|
167 |
Â
'Authorization' => 'Bearer ' . $apiKey,
|
168 |
-
|
169 |
Â
return $defaultHeaders;
|
170 |
Â
}
|
171 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
172 |
Â
private function _requestRaw($method, $url, $params, $headers)
|
173 |
Â
{
|
174 |
Â
$myApiKey = $this->_apiKey;
|
@@ -184,9 +342,17 @@ class ApiRequestor
|
|
184 |
Â
throw new Error\Authentication($msg);
|
185 |
Â
}
|
186 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
187 |
Â
$absUrl = $this->_apiBase.$url;
|
188 |
Â
$params = self::_encodeObjects($params);
|
189 |
-
$defaultHeaders = $this->_defaultHeaders($myApiKey);
|
190 |
Â
if (Stripe::$apiVersion) {
|
191 |
Â
$defaultHeaders['Stripe-Version'] = Stripe::$apiVersion;
|
192 |
Â
}
|
@@ -195,6 +361,10 @@ class ApiRequestor
|
|
195 |
Â
$defaultHeaders['Stripe-Account'] = Stripe::$accountId;
|
196 |
Â
}
|
197 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
198 |
Â
$hasFile = false;
|
199 |
Â
$hasCurlFile = class_exists('\CURLFile', false);
|
200 |
Â
foreach ($params as $k => $v) {
|
@@ -213,12 +383,14 @@ class ApiRequestor
|
|
213 |
Â
}
|
214 |
Â
|
215 |
Â
$combinedHeaders = array_merge($defaultHeaders, $headers);
|
216 |
-
$rawHeaders =
|
217 |
Â
|
218 |
Â
foreach ($combinedHeaders as $header => $value) {
|
219 |
Â
$rawHeaders[] = $header . ': ' . $value;
|
220 |
Â
}
|
221 |
Â
|
Â
|
|
Â
|
|
222 |
Â
list($rbody, $rcode, $rheaders) = $this->httpClient()->request(
|
223 |
Â
$method,
|
224 |
Â
$absUrl,
|
@@ -226,9 +398,24 @@ class ApiRequestor
|
|
226 |
Â
$params,
|
227 |
Â
$hasFile
|
228 |
Â
);
|
229 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
230 |
Â
}
|
231 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
232 |
Â
private function _processResourceParam($resource, $hasCurlFile)
|
233 |
Â
{
|
234 |
Â
if (get_resource_type($resource) !== 'stream') {
|
@@ -252,27 +439,65 @@ class ApiRequestor
|
|
252 |
Â
}
|
253 |
Â
}
|
254 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
255 |
Â
private function _interpretResponse($rbody, $rcode, $rheaders)
|
256 |
Â
{
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
Â
$msg = "Invalid response body from API: $rbody "
|
261 |
-
. "(HTTP response code was $rcode)";
|
262 |
Â
throw new Error\Api($msg, $rcode, $rbody);
|
263 |
Â
}
|
264 |
Â
|
265 |
Â
if ($rcode < 200 || $rcode >= 300) {
|
266 |
-
$this->
|
267 |
Â
}
|
268 |
Â
return $resp;
|
269 |
Â
}
|
270 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
271 |
Â
public static function setHttpClient($client)
|
272 |
Â
{
|
273 |
Â
self::$_httpClient = $client;
|
274 |
Â
}
|
275 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
276 |
Â
private function httpClient()
|
277 |
Â
{
|
278 |
Â
if (!self::$_httpClient) {
|
9 |
Â
*/
|
10 |
Â
class ApiRequestor
|
11 |
Â
{
|
12 |
+
/**
|
13 |
+
* @var string|null
|
14 |
+
*/
|
15 |
Â
private $_apiKey;
|
16 |
Â
|
17 |
+
/**
|
18 |
+
* @var string
|
19 |
+
*/
|
20 |
Â
private $_apiBase;
|
21 |
Â
|
22 |
+
/**
|
23 |
+
* @var HttpClient\ClientInterface
|
24 |
+
*/
|
25 |
Â
private static $_httpClient;
|
26 |
Â
|
27 |
+
/**
|
28 |
+
* @var RequestTelemetry
|
29 |
+
*/
|
30 |
+
private static $requestTelemetry;
|
31 |
+
|
32 |
+
/**
|
33 |
+
* ApiRequestor constructor.
|
34 |
+
*
|
35 |
+
* @param string|null $apiKey
|
36 |
+
* @param string|null $apiBase
|
37 |
+
*/
|
38 |
Â
public function __construct($apiKey = null, $apiBase = null)
|
39 |
Â
{
|
40 |
Â
$this->_apiKey = $apiKey;
|
44 |
Â
$this->_apiBase = $apiBase;
|
45 |
Â
}
|
46 |
Â
|
47 |
+
/**
|
48 |
+
* Creates a telemetry json blob for use in 'X-Stripe-Client-Telemetry' headers
|
49 |
+
* @static
|
50 |
+
*
|
51 |
+
* @param RequestTelemetry $requestTelemetry
|
52 |
+
* @return string
|
53 |
+
*/
|
54 |
+
private static function _telemetryJson($requestTelemetry)
|
55 |
+
{
|
56 |
+
$payload = array(
|
57 |
+
'last_request_metrics' => array(
|
58 |
+
'request_id' => $requestTelemetry->requestId,
|
59 |
+
'request_duration_ms' => $requestTelemetry->requestDuration,
|
60 |
+
));
|
61 |
+
|
62 |
+
$result = json_encode($payload);
|
63 |
+
if ($result != false) {
|
64 |
+
return $result;
|
65 |
+
} else {
|
66 |
+
Stripe::getLogger()->error("Serializing telemetry payload failed!");
|
67 |
+
return "{}";
|
68 |
+
}
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* @static
|
73 |
+
*
|
74 |
+
* @param ApiResource|bool|array|mixed $d
|
75 |
+
*
|
76 |
+
* @return ApiResource|array|string|mixed
|
77 |
+
*/
|
78 |
Â
private static function _encodeObjects($d)
|
79 |
Â
{
|
80 |
Â
if ($d instanceof ApiResource) {
|
84 |
Â
} elseif ($d === false) {
|
85 |
Â
return 'false';
|
86 |
Â
} elseif (is_array($d)) {
|
87 |
+
$res = [];
|
88 |
Â
foreach ($d as $k => $v) {
|
89 |
Â
$res[$k] = self::_encodeObjects($v);
|
90 |
Â
}
|
95 |
Â
}
|
96 |
Â
|
97 |
Â
/**
|
98 |
+
* @param string $method
|
99 |
+
* @param string $url
|
100 |
Â
* @param array|null $params
|
101 |
Â
* @param array|null $headers
|
102 |
Â
*
|
103 |
Â
* @return array An array whose first element is an API response and second
|
104 |
Â
* element is the API key used to make the request.
|
105 |
+
* @throws Error\Api
|
106 |
+
* @throws Error\Authentication
|
107 |
+
* @throws Error\Card
|
108 |
+
* @throws Error\InvalidRequest
|
109 |
+
* @throws Error\OAuth\InvalidClient
|
110 |
+
* @throws Error\OAuth\InvalidGrant
|
111 |
+
* @throws Error\OAuth\InvalidRequest
|
112 |
+
* @throws Error\OAuth\InvalidScope
|
113 |
+
* @throws Error\OAuth\UnsupportedGrantType
|
114 |
+
* @throws Error\OAuth\UnsupportedResponseType
|
115 |
+
* @throws Error\Permission
|
116 |
+
* @throws Error\RateLimit
|
117 |
+
* @throws Error\Idempotency
|
118 |
+
* @throws Error\ApiConnection
|
119 |
Â
*/
|
120 |
Â
public function request($method, $url, $params = null, $headers = null)
|
121 |
Â
{
|
122 |
+
$params = $params ?: [];
|
123 |
+
$headers = $headers ?: [];
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
124 |
Â
list($rbody, $rcode, $rheaders, $myApiKey) =
|
125 |
Â
$this->_requestRaw($method, $url, $params, $headers);
|
126 |
Â
$json = $this->_interpretResponse($rbody, $rcode, $rheaders);
|
127 |
Â
$resp = new ApiResponse($rbody, $rcode, $rheaders, $json);
|
128 |
+
return [$resp, $myApiKey];
|
129 |
Â
}
|
130 |
Â
|
131 |
Â
/**
|
141 |
Â
* permissions.
|
142 |
Â
* @throws Error\Card if the error is the error code is 402 (payment
|
143 |
Â
* required)
|
144 |
+
* @throws Error\InvalidRequest if the error is caused by the user.
|
145 |
+
* @throws Error\Idempotency if the error is caused by an idempotency key.
|
146 |
+
* @throws Error\OAuth\InvalidClient
|
147 |
+
* @throws Error\OAuth\InvalidGrant
|
148 |
+
* @throws Error\OAuth\InvalidRequest
|
149 |
+
* @throws Error\OAuth\InvalidScope
|
150 |
+
* @throws Error\OAuth\UnsupportedGrantType
|
151 |
+
* @throws Error\OAuth\UnsupportedResponseType
|
152 |
+
* @throws Error\Permission if the error is caused by insufficient
|
153 |
+
* permissions.
|
154 |
Â
* @throws Error\RateLimit if the error is caused by too many requests
|
155 |
Â
* hitting the API.
|
156 |
Â
* @throws Error\Api otherwise.
|
157 |
Â
*/
|
158 |
+
public function handleErrorResponse($rbody, $rcode, $rheaders, $resp)
|
159 |
Â
{
|
160 |
Â
if (!is_array($resp) || !isset($resp['error'])) {
|
161 |
Â
$msg = "Invalid response object from API: $rbody "
|
163 |
Â
throw new Error\Api($msg, $rcode, $rbody, $resp, $rheaders);
|
164 |
Â
}
|
165 |
Â
|
166 |
+
$errorData = $resp['error'];
|
167 |
+
|
168 |
+
$error = null;
|
169 |
+
if (is_string($errorData)) {
|
170 |
+
$error = self::_specificOAuthError($rbody, $rcode, $rheaders, $resp, $errorData);
|
171 |
+
}
|
172 |
+
if (!$error) {
|
173 |
+
$error = self::_specificAPIError($rbody, $rcode, $rheaders, $resp, $errorData);
|
174 |
+
}
|
175 |
+
|
176 |
+
throw $error;
|
177 |
+
}
|
178 |
+
|
179 |
+
/**
|
180 |
+
* @static
|
181 |
+
*
|
182 |
+
* @param string $rbody
|
183 |
+
* @param int $rcode
|
184 |
+
* @param array $rheaders
|
185 |
+
* @param array $resp
|
186 |
+
* @param array $errorData
|
187 |
+
*
|
188 |
+
* @return Error\RateLimit|Error\Idempotency|Error\InvalidRequest|Error\Authentication|Error\Card|Error\Permission|Error\Api
|
189 |
+
*/
|
190 |
+
private static function _specificAPIError($rbody, $rcode, $rheaders, $resp, $errorData)
|
191 |
+
{
|
192 |
+
$msg = isset($errorData['message']) ? $errorData['message'] : null;
|
193 |
+
$param = isset($errorData['param']) ? $errorData['param'] : null;
|
194 |
+
$code = isset($errorData['code']) ? $errorData['code'] : null;
|
195 |
+
$type = isset($errorData['type']) ? $errorData['type'] : null;
|
196 |
Â
|
197 |
Â
switch ($rcode) {
|
198 |
Â
case 400:
|
199 |
Â
// 'rate_limit' code is deprecated, but left here for backwards compatibility
|
200 |
Â
// for API versions earlier than 2015-09-08
|
201 |
Â
if ($code == 'rate_limit') {
|
202 |
+
return new Error\RateLimit($msg, $param, $rcode, $rbody, $resp, $rheaders);
|
203 |
+
}
|
204 |
+
if ($type == 'idempotency_error') {
|
205 |
+
return new Error\Idempotency($msg, $rcode, $rbody, $resp, $rheaders);
|
206 |
Â
}
|
207 |
Â
|
208 |
+
// no break
|
209 |
Â
case 404:
|
210 |
+
return new Error\InvalidRequest($msg, $param, $rcode, $rbody, $resp, $rheaders);
|
211 |
Â
case 401:
|
212 |
+
return new Error\Authentication($msg, $rcode, $rbody, $resp, $rheaders);
|
213 |
Â
case 402:
|
214 |
+
return new Error\Card($msg, $param, $code, $rcode, $rbody, $resp, $rheaders);
|
215 |
Â
case 403:
|
216 |
+
return new Error\Permission($msg, $rcode, $rbody, $resp, $rheaders);
|
217 |
Â
case 429:
|
218 |
+
return new Error\RateLimit($msg, $param, $rcode, $rbody, $resp, $rheaders);
|
219 |
Â
default:
|
220 |
+
return new Error\Api($msg, $rcode, $rbody, $resp, $rheaders);
|
221 |
+
}
|
222 |
+
}
|
223 |
+
|
224 |
+
/**
|
225 |
+
* @static
|
226 |
+
*
|
227 |
+
* @param string|bool $rbody
|
228 |
+
* @param int $rcode
|
229 |
+
* @param array $rheaders
|
230 |
+
* @param array $resp
|
231 |
+
* @param string $errorCode
|
232 |
+
*
|
233 |
+
* @return null|Error\OAuth\InvalidClient|Error\OAuth\InvalidGrant|Error\OAuth\InvalidRequest|Error\OAuth\InvalidScope|Error\OAuth\UnsupportedGrantType|Error\OAuth\UnsupportedResponseType
|
234 |
+
*/
|
235 |
+
private static function _specificOAuthError($rbody, $rcode, $rheaders, $resp, $errorCode)
|
236 |
+
{
|
237 |
+
$description = isset($resp['error_description']) ? $resp['error_description'] : $errorCode;
|
238 |
+
|
239 |
+
switch ($errorCode) {
|
240 |
+
case 'invalid_client':
|
241 |
+
return new Error\OAuth\InvalidClient($errorCode, $description, $rcode, $rbody, $resp, $rheaders);
|
242 |
+
case 'invalid_grant':
|
243 |
+
return new Error\OAuth\InvalidGrant($errorCode, $description, $rcode, $rbody, $resp, $rheaders);
|
244 |
+
case 'invalid_request':
|
245 |
+
return new Error\OAuth\InvalidRequest($errorCode, $description, $rcode, $rbody, $resp, $rheaders);
|
246 |
+
case 'invalid_scope':
|
247 |
+
return new Error\OAuth\InvalidScope($errorCode, $description, $rcode, $rbody, $resp, $rheaders);
|
248 |
+
case 'unsupported_grant_type':
|
249 |
+
return new Error\OAuth\UnsupportedGrantType($errorCode, $description, $rcode, $rbody, $resp, $rheaders);
|
250 |
+
case 'unsupported_response_type':
|
251 |
+
return new Error\OAuth\UnsupportedResponseType($errorCode, $description, $rcode, $rbody, $resp, $rheaders);
|
252 |
Â
}
|
253 |
+
|
254 |
+
return null;
|
255 |
Â
}
|
256 |
Â
|
257 |
+
/**
|
258 |
+
* @static
|
259 |
+
*
|
260 |
+
* @param null|array $appInfo
|
261 |
+
*
|
262 |
+
* @return null|string
|
263 |
+
*/
|
264 |
Â
private static function _formatAppInfo($appInfo)
|
265 |
Â
{
|
266 |
Â
if ($appInfo !== null) {
|
277 |
Â
}
|
278 |
Â
}
|
279 |
Â
|
280 |
+
/**
|
281 |
+
* @static
|
282 |
+
*
|
283 |
+
* @param string $apiKey
|
284 |
+
* @param null $clientInfo
|
285 |
+
*
|
286 |
+
* @return array
|
287 |
+
*/
|
288 |
+
private static function _defaultHeaders($apiKey, $clientInfo = null)
|
289 |
Â
{
|
Â
|
|
Â
|
|
290 |
Â
$uaString = 'Stripe/v1 PhpBindings/' . Stripe::VERSION;
|
291 |
Â
|
292 |
Â
$langVersion = phpversion();
|
293 |
Â
$uname = php_uname();
|
294 |
+
|
295 |
Â
$appInfo = Stripe::getAppInfo();
|
296 |
+
$ua = [
|
297 |
Â
'bindings_version' => Stripe::VERSION,
|
298 |
Â
'lang' => 'php',
|
299 |
Â
'lang_version' => $langVersion,
|
300 |
Â
'publisher' => 'stripe',
|
301 |
Â
'uname' => $uname,
|
302 |
+
];
|
303 |
+
if ($clientInfo) {
|
304 |
+
$ua = array_merge($clientInfo, $ua);
|
305 |
+
}
|
306 |
Â
if ($appInfo !== null) {
|
307 |
Â
$uaString .= ' ' . self::_formatAppInfo($appInfo);
|
308 |
Â
$ua['application'] = $appInfo;
|
309 |
Â
}
|
310 |
Â
|
311 |
+
$defaultHeaders = [
|
312 |
Â
'X-Stripe-Client-User-Agent' => json_encode($ua),
|
313 |
Â
'User-Agent' => $uaString,
|
314 |
Â
'Authorization' => 'Bearer ' . $apiKey,
|
315 |
+
];
|
316 |
Â
return $defaultHeaders;
|
317 |
Â
}
|
318 |
Â
|
319 |
+
/**
|
320 |
+
* @param string $method
|
321 |
+
* @param string $url
|
322 |
+
* @param array $params
|
323 |
+
* @param array $headers
|
324 |
+
*
|
325 |
+
* @return array
|
326 |
+
* @throws Error\Api
|
327 |
+
* @throws Error\ApiConnection
|
328 |
+
* @throws Error\Authentication
|
329 |
+
*/
|
330 |
Â
private function _requestRaw($method, $url, $params, $headers)
|
331 |
Â
{
|
332 |
Â
$myApiKey = $this->_apiKey;
|
342 |
Â
throw new Error\Authentication($msg);
|
343 |
Â
}
|
344 |
Â
|
345 |
+
// Clients can supply arbitrary additional keys to be included in the
|
346 |
+
// X-Stripe-Client-User-Agent header via the optional getUserAgentInfo()
|
347 |
+
// method
|
348 |
+
$clientUAInfo = null;
|
349 |
+
if (method_exists($this->httpClient(), 'getUserAgentInfo')) {
|
350 |
+
$clientUAInfo = $this->httpClient()->getUserAgentInfo();
|
351 |
+
}
|
352 |
+
|
353 |
Â
$absUrl = $this->_apiBase.$url;
|
354 |
Â
$params = self::_encodeObjects($params);
|
355 |
+
$defaultHeaders = $this->_defaultHeaders($myApiKey, $clientUAInfo);
|
356 |
Â
if (Stripe::$apiVersion) {
|
357 |
Â
$defaultHeaders['Stripe-Version'] = Stripe::$apiVersion;
|
358 |
Â
}
|
361 |
Â
$defaultHeaders['Stripe-Account'] = Stripe::$accountId;
|
362 |
Â
}
|
363 |
Â
|
364 |
+
if (Stripe::$enableTelemetry && self::$requestTelemetry != null) {
|
365 |
+
$defaultHeaders["X-Stripe-Client-Telemetry"] = self::_telemetryJson(self::$requestTelemetry);
|
366 |
+
}
|
367 |
+
|
368 |
Â
$hasFile = false;
|
369 |
Â
$hasCurlFile = class_exists('\CURLFile', false);
|
370 |
Â
foreach ($params as $k => $v) {
|
383 |
Â
}
|
384 |
Â
|
385 |
Â
$combinedHeaders = array_merge($defaultHeaders, $headers);
|
386 |
+
$rawHeaders = [];
|
387 |
Â
|
388 |
Â
foreach ($combinedHeaders as $header => $value) {
|
389 |
Â
$rawHeaders[] = $header . ': ' . $value;
|
390 |
Â
}
|
391 |
Â
|
392 |
+
$requestStartMs = Util\Util::currentTimeMillis();
|
393 |
+
|
394 |
Â
list($rbody, $rcode, $rheaders) = $this->httpClient()->request(
|
395 |
Â
$method,
|
396 |
Â
$absUrl,
|
398 |
Â
$params,
|
399 |
Â
$hasFile
|
400 |
Â
);
|
401 |
+
|
402 |
+
if (array_key_exists('request-id', $rheaders)) {
|
403 |
+
self::$requestTelemetry = new RequestTelemetry(
|
404 |
+
$rheaders['request-id'],
|
405 |
+
Util\Util::currentTimeMillis() - $requestStartMs
|
406 |
+
);
|
407 |
+
}
|
408 |
+
|
409 |
+
return [$rbody, $rcode, $rheaders, $myApiKey];
|
410 |
Â
}
|
411 |
Â
|
412 |
+
/**
|
413 |
+
* @param resource $resource
|
414 |
+
* @param bool $hasCurlFile
|
415 |
+
*
|
416 |
+
* @return \CURLFile|string
|
417 |
+
* @throws Error\Api
|
418 |
+
*/
|
419 |
Â
private function _processResourceParam($resource, $hasCurlFile)
|
420 |
Â
{
|
421 |
Â
if (get_resource_type($resource) !== 'stream') {
|
439 |
Â
}
|
440 |
Â
}
|
441 |
Â
|
442 |
+
/**
|
443 |
+
* @param string $rbody
|
444 |
+
* @param int $rcode
|
445 |
+
* @param array $rheaders
|
446 |
+
*
|
447 |
+
* @return mixed
|
448 |
+
* @throws Error\Api
|
449 |
+
* @throws Error\Authentication
|
450 |
+
* @throws Error\Card
|
451 |
+
* @throws Error\InvalidRequest
|
452 |
+
* @throws Error\OAuth\InvalidClient
|
453 |
+
* @throws Error\OAuth\InvalidGrant
|
454 |
+
* @throws Error\OAuth\InvalidRequest
|
455 |
+
* @throws Error\OAuth\InvalidScope
|
456 |
+
* @throws Error\OAuth\UnsupportedGrantType
|
457 |
+
* @throws Error\OAuth\UnsupportedResponseType
|
458 |
+
* @throws Error\Permission
|
459 |
+
* @throws Error\RateLimit
|
460 |
+
* @throws Error\Idempotency
|
461 |
+
*/
|
462 |
Â
private function _interpretResponse($rbody, $rcode, $rheaders)
|
463 |
Â
{
|
464 |
+
$resp = json_decode($rbody, true);
|
465 |
+
$jsonError = json_last_error();
|
466 |
+
if ($resp === null && $jsonError !== JSON_ERROR_NONE) {
|
467 |
Â
$msg = "Invalid response body from API: $rbody "
|
468 |
+
. "(HTTP response code was $rcode, json_last_error() was $jsonError)";
|
469 |
Â
throw new Error\Api($msg, $rcode, $rbody);
|
470 |
Â
}
|
471 |
Â
|
472 |
Â
if ($rcode < 200 || $rcode >= 300) {
|
473 |
+
$this->handleErrorResponse($rbody, $rcode, $rheaders, $resp);
|
474 |
Â
}
|
475 |
Â
return $resp;
|
476 |
Â
}
|
477 |
Â
|
478 |
+
/**
|
479 |
+
* @static
|
480 |
+
*
|
481 |
+
* @param HttpClient\ClientInterface $client
|
482 |
+
*/
|
483 |
Â
public static function setHttpClient($client)
|
484 |
Â
{
|
485 |
Â
self::$_httpClient = $client;
|
486 |
Â
}
|
487 |
Â
|
488 |
+
/**
|
489 |
+
* @static
|
490 |
+
*
|
491 |
+
* Resets any stateful telemetry data
|
492 |
+
*/
|
493 |
+
public static function resetTelemetry()
|
494 |
+
{
|
495 |
+
self::$requestTelemetry = null;
|
496 |
+
}
|
497 |
+
|
498 |
+
/**
|
499 |
+
* @return HttpClient\ClientInterface
|
500 |
+
*/
|
501 |
Â
private function httpClient()
|
502 |
Â
{
|
503 |
Â
if (!self::$_httpClient) {
|
app/api/Stripe/ApiResource.php
CHANGED
@@ -9,11 +9,42 @@ namespace Stripe;
|
|
9 |
Â
*/
|
10 |
Â
abstract class ApiResource extends StripeObject
|
11 |
Â
{
|
12 |
-
|
13 |
Â
|
14 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
15 |
Â
{
|
16 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
17 |
Â
}
|
18 |
Â
|
19 |
Â
/**
|
@@ -36,27 +67,11 @@ abstract class ApiResource extends StripeObject
|
|
36 |
Â
}
|
37 |
Â
|
38 |
Â
/**
|
39 |
-
* @return string The
|
40 |
-
* stripped.
|
41 |
Â
*/
|
42 |
-
public static function
|
43 |
Â
{
|
44 |
-
|
45 |
-
// Useful for namespaces: Foo\Charge
|
46 |
-
if ($postfixNamespaces = strrchr($class, '\\')) {
|
47 |
-
$class = substr($postfixNamespaces, 1);
|
48 |
-
}
|
49 |
-
// Useful for underscored 'namespaces': Foo_Charge
|
50 |
-
if ($postfixFakeNamespaces = strrchr($class, '')) {
|
51 |
-
$class = $postfixFakeNamespaces;
|
52 |
-
}
|
53 |
-
if (substr($class, 0, strlen('Stripe')) == 'Stripe') {
|
54 |
-
$class = substr($class, strlen('Stripe'));
|
55 |
-
}
|
56 |
-
$class = str_replace('_', '', $class);
|
57 |
-
$name = urlencode($class);
|
58 |
-
$name = strtolower($name);
|
59 |
-
return $name;
|
60 |
Â
}
|
61 |
Â
|
62 |
Â
/**
|
@@ -64,7 +79,9 @@ abstract class ApiResource extends StripeObject
|
|
64 |
Â
*/
|
65 |
Â
public static function classUrl()
|
66 |
Â
{
|
67 |
-
|
Â
|
|
Â
|
|
68 |
Â
return "/v1/${base}s";
|
69 |
Â
}
|
70 |
Â
|
@@ -92,114 +109,4 @@ abstract class ApiResource extends StripeObject
|
|
92 |
Â
{
|
93 |
Â
return static::resourceUrl($this['id']);
|
94 |
Â
}
|
95 |
-
|
96 |
-
private static function _validateParams($params = null)
|
97 |
-
{
|
98 |
-
if ($params && !is_array($params)) {
|
99 |
-
$message = "You must pass an array as the first argument to Stripe API "
|
100 |
-
. "method calls. (HINT: an example call to create a charge "
|
101 |
-
. "would be: \"Stripe\\Charge::create(array('amount' => 100, "
|
102 |
-
. "'currency' => 'usd', 'card' => array('number' => "
|
103 |
-
. "4242424242424242, 'exp_month' => 5, 'exp_year' => 2015)))\")";
|
104 |
-
throw new Error\Api($message);
|
105 |
-
}
|
106 |
-
}
|
107 |
-
|
108 |
-
protected function _request($method, $url, $params = array(), $options = null)
|
109 |
-
{
|
110 |
-
$opts = $this->_opts->merge($options);
|
111 |
-
list($resp, $options) = static::_staticRequest($method, $url, $params, $opts);
|
112 |
-
$this->setLastResponse($resp);
|
113 |
-
return array($resp->json, $options);
|
114 |
-
}
|
115 |
-
|
116 |
-
protected static function _staticRequest($method, $url, $params, $options)
|
117 |
-
{
|
118 |
-
$opts = Util\RequestOptions::parse($options);
|
119 |
-
$requestor = new ApiRequestor($opts->apiKey, static::baseUrl());
|
120 |
-
list($response, $opts->apiKey) = $requestor->request($method, $url, $params, $opts->headers);
|
121 |
-
foreach ($opts->headers as $k => $v) {
|
122 |
-
if (!array_key_exists($k, self::$HEADERS_TO_PERSIST)) {
|
123 |
-
unset($opts->headers[$k]);
|
124 |
-
}
|
125 |
-
}
|
126 |
-
return array($response, $opts);
|
127 |
-
}
|
128 |
-
|
129 |
-
protected static function _retrieve($id, $options = null)
|
130 |
-
{
|
131 |
-
$opts = Util\RequestOptions::parse($options);
|
132 |
-
$instance = new static($id, $opts);
|
133 |
-
$instance->refresh();
|
134 |
-
return $instance;
|
135 |
-
}
|
136 |
-
|
137 |
-
protected static function _all($params = null, $options = null)
|
138 |
-
{
|
139 |
-
self::_validateParams($params);
|
140 |
-
$url = static::classUrl();
|
141 |
-
|
142 |
-
list($response, $opts) = static::_staticRequest('get', $url, $params, $options);
|
143 |
-
$obj = Util\Util::convertToStripeObject($response->json, $opts);
|
144 |
-
if (!is_a($obj, 'Stripe\\Collection')) {
|
145 |
-
$class = get_class($obj);
|
146 |
-
$message = "Expected type \"Stripe\\Collection\", got \"$class\" instead";
|
147 |
-
throw new Error\Api($message);
|
148 |
-
}
|
149 |
-
$obj->setLastResponse($response);
|
150 |
-
$obj->setRequestParams($params);
|
151 |
-
return $obj;
|
152 |
-
}
|
153 |
-
|
154 |
-
protected static function _create($params = null, $options = null)
|
155 |
-
{
|
156 |
-
self::_validateParams($params);
|
157 |
-
$base = static::baseUrl();
|
158 |
-
$url = static::classUrl();
|
159 |
-
|
160 |
-
list($response, $opts) = static::_staticRequest('post', $url, $params, $options);
|
161 |
-
$obj = Util\Util::convertToStripeObject($response->json, $opts);
|
162 |
-
$obj->setLastResponse($response);
|
163 |
-
return $obj;
|
164 |
-
}
|
165 |
-
|
166 |
-
/**
|
167 |
-
* @param string $id The ID of the API resource to update.
|
168 |
-
* @param array|null $params
|
169 |
-
* @param array|string|null $opts
|
170 |
-
*
|
171 |
-
* @return ApiResource the updated API resource
|
172 |
-
*/
|
173 |
-
protected static function _update($id, $params = null, $options = null)
|
174 |
-
{
|
175 |
-
self::_validateParams($params);
|
176 |
-
$base = static::baseUrl();
|
177 |
-
$url = static::resourceUrl($id);
|
178 |
-
|
179 |
-
list($response, $opts) = static::_staticRequest('post', $url, $params, $options);
|
180 |
-
$obj = Util\Util::convertToStripeObject($response->json, $opts);
|
181 |
-
$obj->setLastResponse($response);
|
182 |
-
return $obj;
|
183 |
-
}
|
184 |
-
|
185 |
-
protected function _save($options = null)
|
186 |
-
{
|
187 |
-
$params = $this->serializeParameters();
|
188 |
-
if (count($params) > 0) {
|
189 |
-
$url = $this->instanceUrl();
|
190 |
-
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
191 |
-
$this->refreshFrom($response, $opts);
|
192 |
-
}
|
193 |
-
return $this;
|
194 |
-
}
|
195 |
-
|
196 |
-
protected function _delete($params = null, $options = null)
|
197 |
-
{
|
198 |
-
self::_validateParams($params);
|
199 |
-
|
200 |
-
$url = $this->instanceUrl();
|
201 |
-
list($response, $opts) = $this->_request('delete', $url, $params, $options);
|
202 |
-
$this->refreshFrom($response, $opts);
|
203 |
-
return $this;
|
204 |
-
}
|
205 |
Â
}
|
9 |
Â
*/
|
10 |
Â
abstract class ApiResource extends StripeObject
|
11 |
Â
{
|
12 |
+
use ApiOperations\Request;
|
13 |
Â
|
14 |
+
/**
|
15 |
+
* @return \Stripe\Util\Set A list of fields that can be their own type of
|
16 |
+
* API resource (say a nested card under an account for example), and if
|
17 |
+
* that resource is set, it should be transmitted to the API on a create or
|
18 |
+
* update. Doing so is not the default behavior because API resources
|
19 |
+
* should normally be persisted on their own RESTful endpoints.
|
20 |
+
*/
|
21 |
+
public static function getSavedNestedResources()
|
22 |
Â
{
|
23 |
+
static $savedNestedResources = null;
|
24 |
+
if ($savedNestedResources === null) {
|
25 |
+
$savedNestedResources = new Util\Set();
|
26 |
+
}
|
27 |
+
return $savedNestedResources;
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* @var boolean A flag that can be set a behavior that will cause this
|
32 |
+
* resource to be encoded and sent up along with an update of its parent
|
33 |
+
* resource. This is usually not desirable because resources are updated
|
34 |
+
* individually on their own endpoints, but there are certain cases,
|
35 |
+
* replacing a customer's source for example, where this is allowed.
|
36 |
+
*/
|
37 |
+
public $saveWithParent = false;
|
38 |
+
|
39 |
+
public function __set($k, $v)
|
40 |
+
{
|
41 |
+
parent::__set($k, $v);
|
42 |
+
$v = $this->$k;
|
43 |
+
if ((static::getSavedNestedResources()->includes($k)) &&
|
44 |
+
($v instanceof ApiResource)) {
|
45 |
+
$v->saveWithParent = true;
|
46 |
+
}
|
47 |
+
return $v;
|
48 |
Â
}
|
49 |
Â
|
50 |
Â
/**
|
67 |
Â
}
|
68 |
Â
|
69 |
Â
/**
|
70 |
+
* @return string The base URL for the given class.
|
Â
|
|
71 |
Â
*/
|
72 |
+
public static function baseUrl()
|
73 |
Â
{
|
74 |
+
return Stripe::$apiBase;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
75 |
Â
}
|
76 |
Â
|
77 |
Â
/**
|
79 |
Â
*/
|
80 |
Â
public static function classUrl()
|
81 |
Â
{
|
82 |
+
// Replace dots with slashes for namespaced resources, e.g. if the object's name is
|
83 |
+
// "foo.bar", then its URL will be "/v1/foo/bars".
|
84 |
+
$base = str_replace('.', '/', static::OBJECT_NAME);
|
85 |
Â
return "/v1/${base}s";
|
86 |
Â
}
|
87 |
Â
|
109 |
Â
{
|
110 |
Â
return static::resourceUrl($this['id']);
|
111 |
Â
}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
112 |
Â
}
|
app/api/Stripe/ApplePayDomain.php
CHANGED
@@ -9,7 +9,13 @@ namespace Stripe;
|
|
9 |
Â
*/
|
10 |
Â
class ApplePayDomain extends ApiResource
|
11 |
Â
{
|
12 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
13 |
Â
/**
|
14 |
Â
* @return string The class URL for this resource. It needs to be special
|
15 |
Â
* cased because it doesn't fit into the standard resource pattern.
|
@@ -18,48 +24,4 @@ class ApplePayDomain extends ApiResource
|
|
18 |
Â
{
|
19 |
Â
return '/v1/apple_pay/domains';
|
20 |
Â
}
|
21 |
-
|
22 |
-
/**
|
23 |
-
* @param string $id The ID of the domain to retrieve.
|
24 |
-
* @param array|string|null $opts
|
25 |
-
*
|
26 |
-
* @return ApplePayDomain
|
27 |
-
*/
|
28 |
-
public static function retrieve($id, $opts = null)
|
29 |
-
{
|
30 |
-
return self::_retrieve($id, $opts);
|
31 |
-
}
|
32 |
-
|
33 |
-
/**
|
34 |
-
* @param array|null $params
|
35 |
-
* @param array|string|null $opts
|
36 |
-
*
|
37 |
-
* @return ApplePayDomain The created domain.
|
38 |
-
*/
|
39 |
-
public static function create($params = null, $opts = null)
|
40 |
-
{
|
41 |
-
return self::_create($params, $opts);
|
42 |
-
}
|
43 |
-
|
44 |
-
/**
|
45 |
-
* @param array|null $params
|
46 |
-
* @param array|string|null $opts
|
47 |
-
*
|
48 |
-
* @return ApplePayDomain The deleted domain.
|
49 |
-
*/
|
50 |
-
public function delete($params = null, $opts = null)
|
51 |
-
{
|
52 |
-
return $this->_delete($params, $opts);
|
53 |
-
}
|
54 |
-
|
55 |
-
/**
|
56 |
-
* @param array|null $params
|
57 |
-
* @param array|string|null $opts
|
58 |
-
*
|
59 |
-
* @return Collection of ApplePayDomains
|
60 |
-
*/
|
61 |
-
public static function all($params = null, $opts = null)
|
62 |
-
{
|
63 |
-
return self::_all($params, $opts);
|
64 |
-
}
|
65 |
Â
}
|
9 |
Â
*/
|
10 |
Â
class ApplePayDomain extends ApiResource
|
11 |
Â
{
|
12 |
+
const OBJECT_NAME = "apple_pay_domain";
|
13 |
+
|
14 |
+
use ApiOperations\All;
|
15 |
+
use ApiOperations\Create;
|
16 |
+
use ApiOperations\Delete;
|
17 |
+
use ApiOperations\Retrieve;
|
18 |
+
|
19 |
Â
/**
|
20 |
Â
* @return string The class URL for this resource. It needs to be special
|
21 |
Â
* cased because it doesn't fit into the standard resource pattern.
|
24 |
Â
{
|
25 |
Â
return '/v1/apple_pay/domains';
|
26 |
Â
}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
27 |
Â
}
|
app/api/Stripe/ApplicationFee.php
CHANGED
@@ -5,65 +5,93 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class ApplicationFee
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class ApplicationFee extends ApiResource
|
11 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
12 |
Â
/**
|
13 |
-
*
|
14 |
-
*
|
15 |
Â
*
|
16 |
-
* @return
|
17 |
Â
*/
|
18 |
-
public
|
19 |
Â
{
|
20 |
-
|
Â
|
|
Â
|
|
21 |
Â
}
|
22 |
Â
|
23 |
Â
/**
|
24 |
-
* @param string $id The ID of the application fee to
|
Â
|
|
25 |
Â
* @param array|string|null $opts
|
26 |
Â
*
|
27 |
-
* @return
|
28 |
Â
*/
|
29 |
-
public static function
|
30 |
Â
{
|
31 |
-
return self::
|
32 |
Â
}
|
33 |
Â
|
34 |
Â
/**
|
35 |
-
* @param string $id The ID of the application fee to
|
Â
|
|
36 |
Â
* @param array|null $params
|
37 |
-
* @param array|string|null $
|
38 |
Â
*
|
39 |
-
* @return
|
40 |
Â
*/
|
41 |
-
public static function
|
42 |
Â
{
|
43 |
-
return self::
|
44 |
Â
}
|
45 |
Â
|
46 |
Â
/**
|
Â
|
|
Â
|
|
47 |
Â
* @param array|null $params
|
48 |
Â
* @param array|string|null $opts
|
49 |
Â
*
|
50 |
-
* @return
|
51 |
Â
*/
|
52 |
-
public static function
|
53 |
Â
{
|
54 |
-
return self::
|
55 |
Â
}
|
56 |
Â
|
57 |
Â
/**
|
Â
|
|
58 |
Â
* @param array|null $params
|
59 |
Â
* @param array|string|null $opts
|
60 |
Â
*
|
61 |
-
* @return
|
62 |
Â
*/
|
63 |
-
public function
|
64 |
Â
{
|
65 |
-
|
66 |
-
$this->refresh();
|
67 |
-
return $this;
|
68 |
Â
}
|
69 |
Â
}
|
5 |
Â
/**
|
6 |
Â
* Class ApplicationFee
|
7 |
Â
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property string $account
|
11 |
+
* @property int $amount
|
12 |
+
* @property int $amount_refunded
|
13 |
+
* @property string $application
|
14 |
+
* @property string $balance_transaction
|
15 |
+
* @property string $charge
|
16 |
+
* @property int $created
|
17 |
+
* @property string $currency
|
18 |
+
* @property bool $livemode
|
19 |
+
* @property string $originating_transaction
|
20 |
+
* @property bool $refunded
|
21 |
+
* @property Collection $refunds
|
22 |
+
*
|
23 |
Â
* @package Stripe
|
24 |
Â
*/
|
25 |
Â
class ApplicationFee extends ApiResource
|
26 |
Â
{
|
27 |
+
const OBJECT_NAME = "application_fee";
|
28 |
+
|
29 |
+
use ApiOperations\All;
|
30 |
+
use ApiOperations\NestedResource;
|
31 |
+
use ApiOperations\Retrieve;
|
32 |
+
|
33 |
+
const PATH_REFUNDS = '/refunds';
|
34 |
+
|
35 |
Â
/**
|
36 |
+
* @param array|null $params
|
37 |
+
* @param array|string|null $opts
|
38 |
Â
*
|
39 |
+
* @return ApplicationFee The refunded application fee.
|
40 |
Â
*/
|
41 |
+
public function refund($params = null, $opts = null)
|
42 |
Â
{
|
43 |
+
$this->refunds->create($params, $opts);
|
44 |
+
$this->refresh();
|
45 |
+
return $this;
|
46 |
Â
}
|
47 |
Â
|
48 |
Â
/**
|
49 |
+
* @param string|null $id The ID of the application fee on which to create the refund.
|
50 |
+
* @param array|null $params
|
51 |
Â
* @param array|string|null $opts
|
52 |
Â
*
|
53 |
+
* @return ApplicationFeeRefund
|
54 |
Â
*/
|
55 |
+
public static function createRefund($id, $params = null, $opts = null)
|
56 |
Â
{
|
57 |
+
return self::_createNestedResource($id, static::PATH_REFUNDS, $params, $opts);
|
58 |
Â
}
|
59 |
Â
|
60 |
Â
/**
|
61 |
+
* @param string|null $id The ID of the application fee to which the refund belongs.
|
62 |
+
* @param array|null $refundId The ID of the refund to retrieve.
|
63 |
Â
* @param array|null $params
|
64 |
+
* @param array|string|null $opts
|
65 |
Â
*
|
66 |
+
* @return ApplicationFeeRefund
|
67 |
Â
*/
|
68 |
+
public static function retrieveRefund($id, $refundId, $params = null, $opts = null)
|
69 |
Â
{
|
70 |
+
return self::_retrieveNestedResource($id, static::PATH_REFUNDS, $refundId, $params, $opts);
|
71 |
Â
}
|
72 |
Â
|
73 |
Â
/**
|
74 |
+
* @param string|null $id The ID of the application fee to which the refund belongs.
|
75 |
+
* @param array|null $refundId The ID of the refund to update.
|
76 |
Â
* @param array|null $params
|
77 |
Â
* @param array|string|null $opts
|
78 |
Â
*
|
79 |
+
* @return ApplicationFeeRefund
|
80 |
Â
*/
|
81 |
+
public static function updateRefund($id, $refundId, $params = null, $opts = null)
|
82 |
Â
{
|
83 |
+
return self::_updateNestedResource($id, static::PATH_REFUNDS, $refundId, $params, $opts);
|
84 |
Â
}
|
85 |
Â
|
86 |
Â
/**
|
87 |
+
* @param string|null $id The ID of the application fee on which to retrieve the refunds.
|
88 |
Â
* @param array|null $params
|
89 |
Â
* @param array|string|null $opts
|
90 |
Â
*
|
91 |
+
* @return Collection The list of refunds.
|
92 |
Â
*/
|
93 |
+
public static function allRefunds($id, $params = null, $opts = null)
|
94 |
Â
{
|
95 |
+
return self::_allNestedResources($id, static::PATH_REFUNDS, $params, $opts);
|
Â
|
|
Â
|
|
96 |
Â
}
|
97 |
Â
}
|
app/api/Stripe/ApplicationFeeRefund.php
CHANGED
@@ -5,10 +5,25 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class ApplicationFeeRefund
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class ApplicationFeeRefund extends ApiResource
|
11 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
12 |
Â
/**
|
13 |
Â
* @return string The API URL for this Stripe refund.
|
14 |
Â
*/
|
5 |
Â
/**
|
6 |
Â
* Class ApplicationFeeRefund
|
7 |
Â
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $amount
|
11 |
+
* @property string $balance_transaction
|
12 |
+
* @property int $created
|
13 |
+
* @property string $currency
|
14 |
+
* @property string $fee
|
15 |
+
* @property StripeObject $metadata
|
16 |
+
*
|
17 |
Â
* @package Stripe
|
18 |
Â
*/
|
19 |
Â
class ApplicationFeeRefund extends ApiResource
|
20 |
Â
{
|
21 |
+
const OBJECT_NAME = "fee_refund";
|
22 |
+
|
23 |
+
use ApiOperations\Update {
|
24 |
+
save as protected _save;
|
25 |
+
}
|
26 |
+
|
27 |
Â
/**
|
28 |
Â
* @return string The API URL for this Stripe refund.
|
29 |
Â
*/
|
app/api/Stripe/AttachedObject.php
DELETED
@@ -1,31 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace Stripe;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Class AttachedObject
|
7 |
-
*
|
8 |
-
* e.g. metadata on Stripe objects.
|
9 |
-
*
|
10 |
-
* @package Stripe
|
11 |
-
*/
|
12 |
-
class AttachedObject extends StripeObject
|
13 |
-
{
|
14 |
-
/**
|
15 |
-
* Updates this object.
|
16 |
-
*
|
17 |
-
* @param array $properties A mapping of properties to update on this object.
|
18 |
-
*/
|
19 |
-
public function replaceWith($properties)
|
20 |
-
{
|
21 |
-
$removed = array_diff(array_keys($this->_values), array_keys($properties));
|
22 |
-
// Don't unset, but rather set to null so we send up '' for deletion.
|
23 |
-
foreach ($removed as $k) {
|
24 |
-
$this->$k = null;
|
25 |
-
}
|
26 |
-
|
27 |
-
foreach ($properties as $k => $v) {
|
28 |
-
$this->$k = $v;
|
29 |
-
}
|
30 |
-
}
|
31 |
-
}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
app/api/Stripe/Balance.php
CHANGED
@@ -6,14 +6,17 @@ namespace Stripe;
|
|
6 |
Â
* Class Balance
|
7 |
Â
*
|
8 |
Â
* @property string $object
|
9 |
-
* @property
|
10 |
-
* @property
|
11 |
-
* @property
|
Â
|
|
12 |
Â
*
|
13 |
Â
* @package Stripe
|
14 |
Â
*/
|
15 |
Â
class Balance extends SingletonApiResource
|
16 |
Â
{
|
Â
|
|
Â
|
|
17 |
Â
/**
|
18 |
Â
* @param array|string|null $opts
|
19 |
Â
*
|
6 |
Â
* Class Balance
|
7 |
Â
*
|
8 |
Â
* @property string $object
|
9 |
+
* @property array $available
|
10 |
+
* @property array $connect_reserved
|
11 |
+
* @property bool $livemode
|
12 |
+
* @property array $pending
|
13 |
Â
*
|
14 |
Â
* @package Stripe
|
15 |
Â
*/
|
16 |
Â
class Balance extends SingletonApiResource
|
17 |
Â
{
|
18 |
+
const OBJECT_NAME = "balance";
|
19 |
+
|
20 |
Â
/**
|
21 |
Â
* @param array|string|null $opts
|
22 |
Â
*
|
app/api/Stripe/BalanceTransaction.php
CHANGED
@@ -12,11 +12,11 @@ namespace Stripe;
|
|
12 |
Â
* @property int $created
|
13 |
Â
* @property string $currency
|
14 |
Â
* @property string $description
|
Â
|
|
15 |
Â
* @property int $fee
|
16 |
Â
* @property mixed $fee_details
|
17 |
Â
* @property int $net
|
18 |
Â
* @property string $source
|
19 |
-
* @property mixed $sourced_transfers
|
20 |
Â
* @property string $status
|
21 |
Â
* @property string $type
|
22 |
Â
*
|
@@ -24,34 +24,42 @@ namespace Stripe;
|
|
24 |
Â
*/
|
25 |
Â
class BalanceTransaction extends ApiResource
|
26 |
Â
{
|
27 |
-
|
28 |
-
* @return string The class URL for this resource. It needs to be special
|
29 |
-
* cased because it doesn't fit into the standard resource pattern.
|
30 |
-
*/
|
31 |
-
public static function classUrl()
|
32 |
-
{
|
33 |
-
return "/v1/balance/history";
|
34 |
-
}
|
35 |
Â
|
36 |
-
|
37 |
-
|
38 |
-
* @param array|string|null $opts
|
39 |
-
*
|
40 |
-
* @return BalanceTransaction
|
41 |
-
*/
|
42 |
-
public static function retrieve($id, $opts = null)
|
43 |
-
{
|
44 |
-
return self::_retrieve($id, $opts);
|
45 |
-
}
|
46 |
Â
|
47 |
Â
/**
|
48 |
-
*
|
49 |
-
* @
|
50 |
-
*
|
51 |
-
* @return Collection of BalanceTransactions
|
52 |
Â
*/
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
57 |
Â
}
|
12 |
Â
* @property int $created
|
13 |
Â
* @property string $currency
|
14 |
Â
* @property string $description
|
15 |
+
* @property float $exchange_rate
|
16 |
Â
* @property int $fee
|
17 |
Â
* @property mixed $fee_details
|
18 |
Â
* @property int $net
|
19 |
Â
* @property string $source
|
Â
|
|
20 |
Â
* @property string $status
|
21 |
Â
* @property string $type
|
22 |
Â
*
|
24 |
Â
*/
|
25 |
Â
class BalanceTransaction extends ApiResource
|
26 |
Â
{
|
27 |
+
const OBJECT_NAME = "balance_transaction";
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
28 |
Â
|
29 |
+
use ApiOperations\All;
|
30 |
+
use ApiOperations\Retrieve;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
31 |
Â
|
32 |
Â
/**
|
33 |
+
* Possible string representations of the type of balance transaction.
|
34 |
+
* @link https://stripe.com/docs/api/balance/balance_transaction#balance_transaction_object-type
|
Â
|
|
Â
|
|
35 |
Â
*/
|
36 |
+
const TYPE_ADJUSTMENT = 'adjustment';
|
37 |
+
const TYPE_ADVANCE = 'advance';
|
38 |
+
const TYPE_ADVANCE_FUNDING = 'advance_funding';
|
39 |
+
const TYPE_APPLICATION_FEE = 'application_fee';
|
40 |
+
const TYPE_APPLICATION_FEE_REFUND = 'application_fee_refund';
|
41 |
+
const TYPE_CHARGE = 'charge';
|
42 |
+
const TYPE_CONNECT_COLLECTION_TRANSFER = 'connect_collection_transfer';
|
43 |
+
const TYPE_ISSUING_AUTHORIZATION_HOLD = 'issuing_authorization_hold';
|
44 |
+
const TYPE_ISSUING_AUTHORIZATION_RELEASE = 'issuing_authorization_release';
|
45 |
+
const TYPE_ISSUING_TRANSACTION = 'issuing_transaction';
|
46 |
+
const TYPE_PAYMENT = 'payment';
|
47 |
+
const TYPE_PAYMENT_FAILURE_REFUND = 'payment_failure_refund';
|
48 |
+
const TYPE_PAYMENT_REFUND = 'payment_refund';
|
49 |
+
const TYPE_PAYOUT = 'payout';
|
50 |
+
const TYPE_PAYOUT_CANCEL = 'payout_cancel';
|
51 |
+
const TYPE_PAYOUT_FAILURE = 'payout_failure';
|
52 |
+
const TYPE_REFUND = 'refund';
|
53 |
+
const TYPE_REFUND_FAILURE = 'refund_failure';
|
54 |
+
const TYPE_RESERVE_TRANSACTION = 'reserve_transaction';
|
55 |
+
const TYPE_RESERVED_FUNDS = 'reserved_funds';
|
56 |
+
const TYPE_STRIPE_FEE = 'stripe_fee';
|
57 |
+
const TYPE_STRIPE_FX_FEE = 'stripe_fx_fee';
|
58 |
+
const TYPE_TAX_FEE = 'tax_fee';
|
59 |
+
const TYPE_TOPUP = 'topup';
|
60 |
+
const TYPE_TOPUP_REVERSAL = 'topup_reversal';
|
61 |
+
const TYPE_TRANSFER = 'transfer';
|
62 |
+
const TYPE_TRANSFER_CANCEL = 'transfer_cancel';
|
63 |
+
const TYPE_TRANSFER_FAILURE = 'transfer_failure';
|
64 |
+
const TYPE_TRANSFER_REFUND = 'transfer_refund';
|
65 |
Â
}
|
app/api/Stripe/BankAccount.php
CHANGED
@@ -5,16 +5,99 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class BankAccount
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
-
class BankAccount extends
|
11 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
12 |
Â
/**
|
13 |
-
* @param array|
|
14 |
-
* @param array|string|null $
|
15 |
Â
*
|
16 |
-
* @
|
17 |
Â
*/
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
18 |
Â
public function verify($params = null, $options = null)
|
19 |
Â
{
|
20 |
Â
$url = $this->instanceUrl() . '/verify';
|
5 |
Â
/**
|
6 |
Â
* Class BankAccount
|
7 |
Â
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property string $account
|
11 |
+
* @property string $account_holder_name
|
12 |
+
* @property string $account_holder_type
|
13 |
+
* @property string $bank_name
|
14 |
+
* @property string $country
|
15 |
+
* @property string $currency
|
16 |
+
* @property string $customer
|
17 |
+
* @property bool $default_for_currency
|
18 |
+
* @property string $fingerprint
|
19 |
+
* @property string $last4
|
20 |
+
* @property StripeObject $metadata
|
21 |
+
* @property string $routing_number
|
22 |
+
* @property string $status
|
23 |
+
*
|
24 |
Â
* @package Stripe
|
25 |
Â
*/
|
26 |
+
class BankAccount extends ApiResource
|
27 |
Â
{
|
28 |
+
const OBJECT_NAME = "bank_account";
|
29 |
+
|
30 |
+
use ApiOperations\Delete;
|
31 |
+
use ApiOperations\Update;
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Possible string representations of the bank verification status.
|
35 |
+
* @link https://stripe.com/docs/api/external_account_bank_accounts/object#account_bank_account_object-status
|
36 |
+
*/
|
37 |
+
const STATUS_NEW = 'new';
|
38 |
+
const STATUS_VALIDATED = 'validated';
|
39 |
+
const STATUS_VERIFIED = 'verified';
|
40 |
+
const STATUS_VERIFICATION_FAILED = 'verification_failed';
|
41 |
+
const STATUS_ERRORED = 'errored';
|
42 |
+
|
43 |
+
/**
|
44 |
+
* @return string The instance URL for this resource. It needs to be special
|
45 |
+
* cased because it doesn't fit into the standard resource pattern.
|
46 |
+
*/
|
47 |
+
public function instanceUrl()
|
48 |
+
{
|
49 |
+
if ($this['customer']) {
|
50 |
+
$base = Customer::classUrl();
|
51 |
+
$parent = $this['customer'];
|
52 |
+
$path = 'sources';
|
53 |
+
} elseif ($this['account']) {
|
54 |
+
$base = Account::classUrl();
|
55 |
+
$parent = $this['account'];
|
56 |
+
$path = 'external_accounts';
|
57 |
+
} else {
|
58 |
+
$msg = "Bank accounts cannot be accessed without a customer ID or account ID.";
|
59 |
+
throw new Error\InvalidRequest($msg, null);
|
60 |
+
}
|
61 |
+
$parentExtn = urlencode(Util\Util::utf8($parent));
|
62 |
+
$extn = urlencode(Util\Util::utf8($this['id']));
|
63 |
+
return "$base/$parentExtn/$path/$extn";
|
64 |
+
}
|
65 |
+
|
66 |
Â
/**
|
67 |
+
* @param array|string $_id
|
68 |
+
* @param array|string|null $_opts
|
69 |
Â
*
|
70 |
+
* @throws \Stripe\Error\InvalidRequest
|
71 |
Â
*/
|
72 |
+
public static function retrieve($_id, $_opts = null)
|
73 |
+
{
|
74 |
+
$msg = "Bank accounts cannot be accessed without a customer ID or account ID. " .
|
75 |
+
"Retrieve a bank account using \$customer->sources->retrieve('bank_account_id') or " .
|
76 |
+
"\$account->external_accounts->retrieve('bank_account_id') instead.";
|
77 |
+
throw new Error\InvalidRequest($msg, null);
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* @param string $_id
|
82 |
+
* @param array|null $_params
|
83 |
+
* @param array|string|null $_options
|
84 |
+
*
|
85 |
+
* @throws \Stripe\Error\InvalidRequest
|
86 |
+
*/
|
87 |
+
public static function update($_id, $_params = null, $_options = null)
|
88 |
+
{
|
89 |
+
$msg = "Bank accounts cannot be accessed without a customer ID or account ID. " .
|
90 |
+
"Call save() on \$customer->sources->retrieve('bank_account_id') or " .
|
91 |
+
"\$account->external_accounts->retrieve('bank_account_id') instead.";
|
92 |
+
throw new Error\InvalidRequest($msg, null);
|
93 |
+
}
|
94 |
+
|
95 |
+
/**
|
96 |
+
* @param array|null $params
|
97 |
+
* @param array|string|null $options
|
98 |
+
*
|
99 |
+
* @return BankAccount The verified bank account.
|
100 |
+
*/
|
101 |
Â
public function verify($params = null, $options = null)
|
102 |
Â
{
|
103 |
Â
$url = $this->instanceUrl() . '/verify';
|
app/api/Stripe/BitcoinReceiver.php
CHANGED
@@ -6,9 +6,17 @@ namespace Stripe;
|
|
6 |
Â
* Class BitcoinReceiver
|
7 |
Â
*
|
8 |
Â
* @package Stripe
|
Â
|
|
Â
|
|
Â
|
|
9 |
Â
*/
|
10 |
-
class BitcoinReceiver extends
|
11 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
12 |
Â
/**
|
13 |
Â
* @return string The class URL for this resource. It needs to be special
|
14 |
Â
* cased because it doesn't fit into the standard resource pattern.
|
@@ -24,62 +32,17 @@ class BitcoinReceiver extends ExternalAccount
|
|
24 |
Â
*/
|
25 |
Â
public function instanceUrl()
|
26 |
Â
{
|
27 |
-
|
28 |
-
|
29 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
30 |
Â
} else {
|
31 |
-
$id = $this['id'];
|
32 |
-
$id = Util\Util::utf8($id);
|
33 |
-
$extn = urlencode($id);
|
34 |
Â
$base = BitcoinReceiver::classUrl();
|
Â
|
|
35 |
Â
return "$base/$extn";
|
36 |
Â
}
|
37 |
Â
}
|
38 |
-
|
39 |
-
/**
|
40 |
-
* @param string $id The ID of the Bitcoin Receiver to retrieve.
|
41 |
-
* @param array|string|null $opts
|
42 |
-
*
|
43 |
-
* @return BitcoinReceiver
|
44 |
-
*/
|
45 |
-
public static function retrieve($id, $opts = null)
|
46 |
-
{
|
47 |
-
return self::_retrieve($id, $opts);
|
48 |
-
}
|
49 |
-
|
50 |
-
/**
|
51 |
-
* @param array|null $params
|
52 |
-
* @param array|string|null $opts
|
53 |
-
*
|
54 |
-
* @return Collection of BitcoinReceivers
|
55 |
-
*/
|
56 |
-
public static function all($params = null, $opts = null)
|
57 |
-
{
|
58 |
-
return self::_all($params, $opts);
|
59 |
-
}
|
60 |
-
|
61 |
-
/**
|
62 |
-
* @param array|null $params
|
63 |
-
* @param array|string|null $opts
|
64 |
-
*
|
65 |
-
* @return BitcoinReceiver The created Bitcoin Receiver item.
|
66 |
-
*/
|
67 |
-
public static function create($params = null, $opts = null)
|
68 |
-
{
|
69 |
-
return self::_create($params, $opts);
|
70 |
-
}
|
71 |
-
|
72 |
-
/**
|
73 |
-
* @param array|null $params
|
74 |
-
* @param array|string|null $options
|
75 |
-
*
|
76 |
-
* @return BitcoinReceiver The refunded Bitcoin Receiver item.
|
77 |
-
*/
|
78 |
-
public function refund($params = null, $options = null)
|
79 |
-
{
|
80 |
-
$url = $this->instanceUrl() . '/refund';
|
81 |
-
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
82 |
-
$this->refreshFrom($response, $opts);
|
83 |
-
return $this;
|
84 |
-
}
|
85 |
Â
}
|
6 |
Â
* Class BitcoinReceiver
|
7 |
Â
*
|
8 |
Â
* @package Stripe
|
9 |
+
*
|
10 |
+
* @deprecated Bitcoin receivers are deprecated. Please use the sources API instead.
|
11 |
+
* @link https://stripe.com/docs/sources/bitcoin
|
12 |
Â
*/
|
13 |
+
class BitcoinReceiver extends ApiResource
|
14 |
Â
{
|
15 |
+
const OBJECT_NAME = "bitcoin_receiver";
|
16 |
+
|
17 |
+
use ApiOperations\All;
|
18 |
+
use ApiOperations\Retrieve;
|
19 |
+
|
20 |
Â
/**
|
21 |
Â
* @return string The class URL for this resource. It needs to be special
|
22 |
Â
* cased because it doesn't fit into the standard resource pattern.
|
32 |
Â
*/
|
33 |
Â
public function instanceUrl()
|
34 |
Â
{
|
35 |
+
if ($this['customer']) {
|
36 |
+
$base = Customer::classUrl();
|
37 |
+
$parent = $this['customer'];
|
38 |
+
$path = 'sources';
|
39 |
+
$parentExtn = urlencode(Util\Util::utf8($parent));
|
40 |
+
$extn = urlencode(Util\Util::utf8($this['id']));
|
41 |
+
return "$base/$parentExtn/$path/$extn";
|
42 |
Â
} else {
|
Â
|
|
Â
|
|
Â
|
|
43 |
Â
$base = BitcoinReceiver::classUrl();
|
44 |
+
$extn = urlencode(Util\Util::utf8($this['id']));
|
45 |
Â
return "$base/$extn";
|
46 |
Â
}
|
47 |
Â
}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
48 |
Â
}
|
app/api/Stripe/BitcoinTransaction.php
CHANGED
@@ -9,5 +9,5 @@ namespace Stripe;
|
|
9 |
Â
*/
|
10 |
Â
class BitcoinTransaction extends ApiResource
|
11 |
Â
{
|
12 |
-
|
13 |
Â
}
|
9 |
Â
*/
|
10 |
Â
class BitcoinTransaction extends ApiResource
|
11 |
Â
{
|
12 |
+
const OBJECT_NAME = "bitcoin_transaction";
|
13 |
Â
}
|
app/api/Stripe/Capability.php
ADDED
@@ -0,0 +1,82 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Capability
|
7 |
+
*
|
8 |
+
* @package Stripe
|
9 |
+
*
|
10 |
+
* @property string $id
|
11 |
+
* @property string $object
|
12 |
+
* @property string $account
|
13 |
+
* @property bool $requested
|
14 |
+
* @property int $requested_at
|
15 |
+
* @property mixed $requirements
|
16 |
+
* @property string $status
|
17 |
+
*/
|
18 |
+
class Capability extends ApiResource
|
19 |
+
{
|
20 |
+
const OBJECT_NAME = "capability";
|
21 |
+
|
22 |
+
use ApiOperations\Update;
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Possible string representations of a capability's status.
|
26 |
+
* @link https://stripe.com/docs/api/capabilities/object#capability_object-status
|
27 |
+
*/
|
28 |
+
const STATUS_ACTIVE = 'active';
|
29 |
+
const STATUS_INACTIVE = 'inactive';
|
30 |
+
const STATUS_PENDING = 'pending';
|
31 |
+
const STATUS_UNREQUESTED = 'unrequested';
|
32 |
+
|
33 |
+
/**
|
34 |
+
* @return string The API URL for this Stripe account reversal.
|
35 |
+
*/
|
36 |
+
public function instanceUrl()
|
37 |
+
{
|
38 |
+
$id = $this['id'];
|
39 |
+
$account = $this['account'];
|
40 |
+
if (!$id) {
|
41 |
+
throw new Error\InvalidRequest(
|
42 |
+
"Could not determine which URL to request: " .
|
43 |
+
"class instance has invalid ID: $id",
|
44 |
+
null
|
45 |
+
);
|
46 |
+
}
|
47 |
+
$id = Util\Util::utf8($id);
|
48 |
+
$account = Util\Util::utf8($account);
|
49 |
+
|
50 |
+
$base = Account::classUrl();
|
51 |
+
$accountExtn = urlencode($account);
|
52 |
+
$extn = urlencode($id);
|
53 |
+
return "$base/$accountExtn/capabilities/$extn";
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* @param array|string $_id
|
58 |
+
* @param array|string|null $_opts
|
59 |
+
*
|
60 |
+
* @throws \Stripe\Error\InvalidRequest
|
61 |
+
*/
|
62 |
+
public static function retrieve($_id, $_opts = null)
|
63 |
+
{
|
64 |
+
$msg = "Capabilities cannot be accessed without an account ID. " .
|
65 |
+
"Retrieve a Capability using \$account->retrieveCapability('acap_123') instead.";
|
66 |
+
throw new Error\InvalidRequest($msg, null);
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
* @param string $_id
|
71 |
+
* @param array|null $_params
|
72 |
+
* @param array|string|null $_options
|
73 |
+
*
|
74 |
+
* @throws \Stripe\Error\InvalidRequest
|
75 |
+
*/
|
76 |
+
public static function update($_id, $_params = null, $_options = null)
|
77 |
+
{
|
78 |
+
$msg = "Capabilities cannot be accessed without an account ID. " .
|
79 |
+
"Update a Capability using \$account->updateCapability('acap_123') instead.";
|
80 |
+
throw new Error\InvalidRequest($msg, null);
|
81 |
+
}
|
82 |
+
}
|
app/api/Stripe/Card.php
CHANGED
@@ -5,9 +5,125 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class Card
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
-
class Card extends
|
11 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
12 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
13 |
Â
}
|
5 |
Â
/**
|
6 |
Â
* Class Card
|
7 |
Â
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property string $account
|
11 |
+
* @property string $address_city
|
12 |
+
* @property string $address_country
|
13 |
+
* @property string $address_line1
|
14 |
+
* @property string $address_line1_check
|
15 |
+
* @property string $address_line2
|
16 |
+
* @property string $address_state
|
17 |
+
* @property string $address_zip
|
18 |
+
* @property string $address_zip_check
|
19 |
+
* @property string[] $available_payout_methods
|
20 |
+
* @property string $brand
|
21 |
+
* @property string $country
|
22 |
+
* @property string $currency
|
23 |
+
* @property string $customer
|
24 |
+
* @property string $cvc_check
|
25 |
+
* @property bool $default_for_currency
|
26 |
+
* @property string $dynamic_last4
|
27 |
+
* @property int $exp_month
|
28 |
+
* @property int $exp_year
|
29 |
+
* @property string $fingerprint
|
30 |
+
* @property string $funding
|
31 |
+
* @property string $last4
|
32 |
+
* @property StripeObject $metadata
|
33 |
+
* @property string $name
|
34 |
+
* @property string $recipient
|
35 |
+
* @property string $tokenization_method
|
36 |
+
*
|
37 |
Â
* @package Stripe
|
38 |
Â
*/
|
39 |
+
class Card extends ApiResource
|
40 |
Â
{
|
41 |
+
const OBJECT_NAME = "card";
|
42 |
+
|
43 |
+
use ApiOperations\Delete;
|
44 |
+
use ApiOperations\Update;
|
45 |
+
|
46 |
+
/**
|
47 |
+
* Possible string representations of the CVC check status.
|
48 |
+
* @link https://stripe.com/docs/api/cards/object#card_object-cvc_check
|
49 |
+
*/
|
50 |
+
const CVC_CHECK_FAIL = 'fail';
|
51 |
+
const CVC_CHECK_PASS = 'pass';
|
52 |
+
const CVC_CHECK_UNAVAILABLE = 'unavailable';
|
53 |
+
const CVC_CHECK_UNCHECKED = 'unchecked';
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Possible string representations of the funding of the card.
|
57 |
+
* @link https://stripe.com/docs/api/cards/object#card_object-funding
|
58 |
+
*/
|
59 |
+
const FUNDING_CREDIT = 'credit';
|
60 |
+
const FUNDING_DEBIT = 'debit';
|
61 |
+
const FUNDING_PREPAID = 'prepaid';
|
62 |
+
const FUNDING_UNKNOWN = 'unknown';
|
63 |
+
|
64 |
+
/**
|
65 |
+
* Possible string representations of the tokenization method when using Apple Pay or Google Pay.
|
66 |
+
* @link https://stripe.com/docs/api/cards/object#card_object-tokenization_method
|
67 |
+
*/
|
68 |
+
const TOKENIZATION_METHOD_APPLE_PAY = 'apple_pay';
|
69 |
+
const TOKENIZATION_METHOD_GOOGLE_PAY = 'google_pay';
|
70 |
+
|
71 |
+
/**
|
72 |
+
* @return string The instance URL for this resource. It needs to be special
|
73 |
+
* cased because cards are nested resources that may belong to different
|
74 |
+
* top-level resources.
|
75 |
+
*/
|
76 |
+
public function instanceUrl()
|
77 |
+
{
|
78 |
+
if ($this['customer']) {
|
79 |
+
$base = Customer::classUrl();
|
80 |
+
$parent = $this['customer'];
|
81 |
+
$path = 'sources';
|
82 |
+
} elseif ($this['account']) {
|
83 |
+
$base = Account::classUrl();
|
84 |
+
$parent = $this['account'];
|
85 |
+
$path = 'external_accounts';
|
86 |
+
} elseif ($this['recipient']) {
|
87 |
+
$base = Recipient::classUrl();
|
88 |
+
$parent = $this['recipient'];
|
89 |
+
$path = 'cards';
|
90 |
+
} else {
|
91 |
+
$msg = "Cards cannot be accessed without a customer ID, account ID or recipient ID.";
|
92 |
+
throw new Error\InvalidRequest($msg, null);
|
93 |
+
}
|
94 |
+
$parentExtn = urlencode(Util\Util::utf8($parent));
|
95 |
+
$extn = urlencode(Util\Util::utf8($this['id']));
|
96 |
+
return "$base/$parentExtn/$path/$extn";
|
97 |
+
}
|
98 |
+
|
99 |
+
/**
|
100 |
+
* @param array|string $_id
|
101 |
+
* @param array|string|null $_opts
|
102 |
+
*
|
103 |
+
* @throws \Stripe\Error\InvalidRequest
|
104 |
+
*/
|
105 |
+
public static function retrieve($_id, $_opts = null)
|
106 |
+
{
|
107 |
+
$msg = "Cards cannot be accessed without a customer, recipient or account ID. " .
|
108 |
+
"Retrieve a card using \$customer->sources->retrieve('card_id'), " .
|
109 |
+
"\$recipient->cards->retrieve('card_id'), or " .
|
110 |
+
"\$account->external_accounts->retrieve('card_id') instead.";
|
111 |
+
throw new Error\InvalidRequest($msg, null);
|
112 |
+
}
|
113 |
Â
|
114 |
+
/**
|
115 |
+
* @param string $_id
|
116 |
+
* @param array|null $_params
|
117 |
+
* @param array|string|null $_options
|
118 |
+
*
|
119 |
+
* @throws \Stripe\Error\InvalidRequest
|
120 |
+
*/
|
121 |
+
public static function update($_id, $_params = null, $_options = null)
|
122 |
+
{
|
123 |
+
$msg = "Cards cannot be accessed without a customer, recipient or account ID. " .
|
124 |
+
"Call save() on \$customer->sources->retrieve('card_id'), " .
|
125 |
+
"\$recipient->cards->retrieve('card_id'), or " .
|
126 |
+
"\$account->external_accounts->retrieve('card_id') instead.";
|
127 |
+
throw new Error\InvalidRequest($msg, null);
|
128 |
+
}
|
129 |
Â
}
|
app/api/Stripe/Charge.php
CHANGED
@@ -9,91 +9,113 @@ namespace Stripe;
|
|
9 |
Â
* @property string $object
|
10 |
Â
* @property int $amount
|
11 |
Â
* @property int $amount_refunded
|
12 |
-
* @property
|
Â
|
|
Â
|
|
13 |
Â
* @property string $balance_transaction
|
Â
|
|
14 |
Â
* @property bool $captured
|
15 |
Â
* @property int $created
|
16 |
Â
* @property string $currency
|
17 |
Â
* @property string $customer
|
18 |
-
* @property
|
19 |
-
* @property
|
20 |
-
* @property
|
21 |
-
* @property
|
22 |
-
* @property
|
23 |
Â
* @property mixed $fraud_details
|
24 |
-
* @property
|
25 |
Â
* @property bool $livemode
|
26 |
-
* @property
|
27 |
-
* @property
|
Â
|
|
Â
|
|
28 |
Â
* @property bool $paid
|
29 |
-
* @property
|
30 |
-
* @property
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
31 |
Â
* @property bool $refunded
|
32 |
-
* @property
|
Â
|
|
33 |
Â
* @property mixed $shipping
|
34 |
Â
* @property mixed $source
|
35 |
-
* @property
|
36 |
-
* @property
|
37 |
Â
* @property string $status
|
Â
|
|
Â
|
|
Â
|
|
38 |
Â
*
|
39 |
Â
* @package Stripe
|
40 |
Â
*/
|
41 |
Â
class Charge extends ApiResource
|
42 |
Â
{
|
43 |
-
|
44 |
-
* @param string $id The ID of the charge to retrieve.
|
45 |
-
* @param array|string|null $options
|
46 |
-
*
|
47 |
-
* @return Charge
|
48 |
-
*/
|
49 |
-
public static function retrieve($id, $options = null)
|
50 |
-
{
|
51 |
-
return self::_retrieve($id, $options);
|
52 |
-
}
|
53 |
Â
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
* @return Collection of Charges
|
59 |
-
*/
|
60 |
-
public static function all($params = null, $options = null)
|
61 |
-
{
|
62 |
-
return self::_all($params, $options);
|
63 |
-
}
|
64 |
Â
|
65 |
Â
/**
|
66 |
-
*
|
67 |
-
*
|
68 |
-
*
|
69 |
-
* @return Charge The created charge.
|
70 |
Â
*/
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
75 |
Â
|
76 |
Â
/**
|
77 |
-
*
|
78 |
-
* @
|
79 |
-
* @param array|string|null $options
|
80 |
-
*
|
81 |
-
* @return Charge The updated charge.
|
82 |
Â
*/
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
}
|
87 |
-
|
88 |
-
/**
|
89 |
-
* @param array|string|null $options
|
90 |
-
*
|
91 |
-
* @return Charge The saved charge.
|
92 |
-
*/
|
93 |
-
public function save($options = null)
|
94 |
-
{
|
95 |
-
return $this->_save($options);
|
96 |
-
}
|
97 |
Â
|
98 |
Â
/**
|
99 |
Â
* @param array|null $params
|
@@ -135,7 +157,7 @@ class Charge extends ApiResource
|
|
135 |
Â
{
|
136 |
Â
$url = $this->instanceUrl() . '/dispute';
|
137 |
Â
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
138 |
-
$this->refreshFrom(
|
139 |
Â
return $this->dispute;
|
140 |
Â
}
|
141 |
Â
|
@@ -161,7 +183,7 @@ class Charge extends ApiResource
|
|
161 |
Â
*/
|
162 |
Â
public function markAsFraudulent($opts = null)
|
163 |
Â
{
|
164 |
-
$params =
|
165 |
Â
$url = $this->instanceUrl();
|
166 |
Â
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
167 |
Â
$this->refreshFrom($response, $opts);
|
@@ -175,7 +197,7 @@ class Charge extends ApiResource
|
|
175 |
Â
*/
|
176 |
Â
public function markAsSafe($opts = null)
|
177 |
Â
{
|
178 |
-
$params =
|
179 |
Â
$url = $this->instanceUrl();
|
180 |
Â
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
181 |
Â
$this->refreshFrom($response, $opts);
|
9 |
Â
* @property string $object
|
10 |
Â
* @property int $amount
|
11 |
Â
* @property int $amount_refunded
|
12 |
+
* @property string $application
|
13 |
+
* @property string $application_fee
|
14 |
+
* @property int $application_fee_amount
|
15 |
Â
* @property string $balance_transaction
|
16 |
+
* @property mixed $billing_details
|
17 |
Â
* @property bool $captured
|
18 |
Â
* @property int $created
|
19 |
Â
* @property string $currency
|
20 |
Â
* @property string $customer
|
21 |
+
* @property string $description
|
22 |
+
* @property string $destination
|
23 |
+
* @property string $dispute
|
24 |
+
* @property string $failure_code
|
25 |
+
* @property string $failure_message
|
26 |
Â
* @property mixed $fraud_details
|
27 |
+
* @property string $invoice
|
28 |
Â
* @property bool $livemode
|
29 |
+
* @property StripeObject $metadata
|
30 |
+
* @property string $on_behalf_of
|
31 |
+
* @property string $order
|
32 |
+
* @property mixed $outcome
|
33 |
Â
* @property bool $paid
|
34 |
+
* @property string $payment_intent
|
35 |
+
* @property string $payment_method
|
36 |
+
* @property mixed $payment_method_details
|
37 |
+
* @property string $receipt_email
|
38 |
+
* @property string $receipt_number
|
39 |
+
* @property string $receipt_url
|
40 |
Â
* @property bool $refunded
|
41 |
+
* @property Collection $refunds
|
42 |
+
* @property string $review
|
43 |
Â
* @property mixed $shipping
|
44 |
Â
* @property mixed $source
|
45 |
+
* @property string $source_transfer
|
46 |
+
* @property string $statement_descriptor
|
47 |
Â
* @property string $status
|
48 |
+
* @property string $transfer
|
49 |
+
* @property mixed $transfer_data
|
50 |
+
* @property string $transfer_group
|
51 |
Â
*
|
52 |
Â
* @package Stripe
|
53 |
Â
*/
|
54 |
Â
class Charge extends ApiResource
|
55 |
Â
{
|
56 |
+
const OBJECT_NAME = "charge";
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
57 |
Â
|
58 |
+
use ApiOperations\All;
|
59 |
+
use ApiOperations\Create;
|
60 |
+
use ApiOperations\Retrieve;
|
61 |
+
use ApiOperations\Update;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
62 |
Â
|
63 |
Â
/**
|
64 |
+
* Possible string representations of decline codes.
|
65 |
+
* These strings are applicable to the decline_code property of the \Stripe\Error\Card exception.
|
66 |
+
* @link https://stripe.com/docs/declines/codes
|
Â
|
|
67 |
Â
*/
|
68 |
+
const DECLINED_APPROVE_WITH_ID = 'approve_with_id';
|
69 |
+
const DECLINED_CALL_ISSUER = 'call_issuer';
|
70 |
+
const DECLINED_CARD_NOT_SUPPORTED = 'card_not_supported';
|
71 |
+
const DECLINED_CARD_VELOCITY_EXCEEDED = 'card_velocity_exceeded';
|
72 |
+
const DECLINED_CURRENCY_NOT_SUPPORTED = 'currency_not_supported';
|
73 |
+
const DECLINED_DO_NOT_HONOR = 'do_not_honor';
|
74 |
+
const DECLINED_DO_NOT_TRY_AGAIN = 'do_not_try_again';
|
75 |
+
const DECLINED_DUPLICATED_TRANSACTION = 'duplicate_transaction';
|
76 |
+
const DECLINED_EXPIRED_CARD = 'expired_card';
|
77 |
+
const DECLINED_FRAUDULENT = 'fraudulent';
|
78 |
+
const DECLINED_GENERIC_DECLINE = 'generic_decline';
|
79 |
+
const DECLINED_INCORRECT_NUMBER = 'incorrect_number';
|
80 |
+
const DECLINED_INCORRECT_CVC = 'incorrect_cvc';
|
81 |
+
const DECLINED_INCORRECT_PIN = 'incorrect_pin';
|
82 |
+
const DECLINED_INCORRECT_ZIP = 'incorrect_zip';
|
83 |
+
const DECLINED_INSUFFICIENT_FUNDS = 'insufficient_funds';
|
84 |
+
const DECLINED_INVALID_ACCOUNT = 'invalid_account';
|
85 |
+
const DECLINED_INVALID_AMOUNT = 'invalid_amount';
|
86 |
+
const DECLINED_INVALID_CVC = 'invalid_cvc';
|
87 |
+
const DECLINED_INVALID_EXPIRY_YEAR = 'invalid_expiry_year';
|
88 |
+
const DECLINED_INVALID_NUMBER = 'invalid_number';
|
89 |
+
const DECLINED_INVALID_PIN = 'invalid_pin';
|
90 |
+
const DECLINED_ISSUER_NOT_AVAILABLE = 'issuer_not_available';
|
91 |
+
const DECLINED_LOST_CARD = 'lost_card';
|
92 |
+
const DECLINED_MERCHANT_BLACKLIST = 'merchant_blacklist';
|
93 |
+
const DECLINED_NEW_ACCOUNT_INFORMATION_AVAILABLE = 'new_account_information_available';
|
94 |
+
const DECLINED_NO_ACTION_TAKEN = 'no_action_taken';
|
95 |
+
const DECLINED_NOT_PERMITTED = 'not_permitted';
|
96 |
+
const DECLINED_PICKUP_CARD = 'pickup_card';
|
97 |
+
const DECLINED_PIN_TRY_EXCEEDED = 'pin_try_exceeded';
|
98 |
+
const DECLINED_PROCESSING_ERROR = 'processing_error';
|
99 |
+
const DECLINED_REENTER_TRANSACTION = 'reenter_transaction';
|
100 |
+
const DECLINED_RESTRICTED_CARD = 'restricted_card';
|
101 |
+
const DECLINED_REVOCATION_OF_ALL_AUTHORIZATIONS = 'revocation_of_all_authorizations';
|
102 |
+
const DECLINED_REVOCATION_OF_AUTHORIZATION = 'revocation_of_authorization';
|
103 |
+
const DECLINED_SECURITY_VIOLATION = 'security_violation';
|
104 |
+
const DECLINED_SERVICE_NOT_ALLOWED = 'service_not_allowed';
|
105 |
+
const DECLINED_STOLEN_CARD = 'stolen_card';
|
106 |
+
const DECLINED_STOP_PAYMENT_ORDER = 'stop_payment_order';
|
107 |
+
const DECLINED_TESTMODE_DECLINE = 'testmode_decline';
|
108 |
+
const DECLINED_TRANSACTION_NOT_ALLOWED = 'transaction_not_allowed';
|
109 |
+
const DECLINED_TRY_AGAIN_LATER = 'try_again_later';
|
110 |
+
const DECLINED_WITHDRAWAL_COUNT_LIMIT_EXCEEDED = 'withdrawal_count_limit_exceeded';
|
111 |
Â
|
112 |
Â
/**
|
113 |
+
* Possible string representations of the status of the charge.
|
114 |
+
* @link https://stripe.com/docs/api/charges/object#charge_object-status
|
Â
|
|
Â
|
|
Â
|
|
115 |
Â
*/
|
116 |
+
const STATUS_FAILED = 'failed';
|
117 |
+
const STATUS_PENDING = 'pending';
|
118 |
+
const STATUS_SUCCEEDED = 'succeeded';
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
119 |
Â
|
120 |
Â
/**
|
121 |
Â
* @param array|null $params
|
157 |
Â
{
|
158 |
Â
$url = $this->instanceUrl() . '/dispute';
|
159 |
Â
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
160 |
+
$this->refreshFrom(['dispute' => $response], $opts, true);
|
161 |
Â
return $this->dispute;
|
162 |
Â
}
|
163 |
Â
|
183 |
Â
*/
|
184 |
Â
public function markAsFraudulent($opts = null)
|
185 |
Â
{
|
186 |
+
$params = ['fraud_details' => ['user_report' => 'fraudulent']];
|
187 |
Â
$url = $this->instanceUrl();
|
188 |
Â
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
189 |
Â
$this->refreshFrom($response, $opts);
|
197 |
Â
*/
|
198 |
Â
public function markAsSafe($opts = null)
|
199 |
Â
{
|
200 |
+
$params = ['fraud_details' => ['user_report' => 'safe']];
|
201 |
Â
$url = $this->instanceUrl();
|
202 |
Â
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
203 |
Â
$this->refreshFrom($response, $opts);
|
app/api/Stripe/Checkout/Session.php
ADDED
@@ -0,0 +1,39 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Checkout;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Session
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property string $cancel_url
|
11 |
+
* @property string $client_reference_id
|
12 |
+
* @property string $customer
|
13 |
+
* @property string $customer_email
|
14 |
+
* @property mixed $display_items
|
15 |
+
* @property bool $livemode
|
16 |
+
* @property string $payment_intent
|
17 |
+
* @property string[] $payment_method_types
|
18 |
+
* @property string $submit_type
|
19 |
+
* @property string $subscription
|
20 |
+
* @property string $success_url
|
21 |
+
*
|
22 |
+
* @package Stripe
|
23 |
+
*/
|
24 |
+
class Session extends \Stripe\ApiResource
|
25 |
+
{
|
26 |
+
const OBJECT_NAME = "checkout.session";
|
27 |
+
|
28 |
+
use \Stripe\ApiOperations\Create;
|
29 |
+
use \Stripe\ApiOperations\Retrieve;
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Possible string representations of submit type.
|
33 |
+
* @link https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-submit_type
|
34 |
+
*/
|
35 |
+
const SUBMIT_TYPE_AUTO = 'auto';
|
36 |
+
const SUBMIT_TYPE_BOOK = 'book';
|
37 |
+
const SUBMIT_TYPE_DONATE = 'donate';
|
38 |
+
const SUBMIT_TYPE_PAY = 'pay';
|
39 |
+
}
|
app/api/Stripe/Collection.php
CHANGED
@@ -12,9 +12,21 @@ namespace Stripe;
|
|
12 |
Â
*
|
13 |
Â
* @package Stripe
|
14 |
Â
*/
|
15 |
-
class Collection extends
|
16 |
Â
{
|
17 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
18 |
Â
|
19 |
Â
public function setRequestParams($params)
|
20 |
Â
{
|
@@ -56,7 +68,16 @@ class Collection extends ApiResource
|
|
56 |
Â
}
|
57 |
Â
|
58 |
Â
/**
|
59 |
-
* @return
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
60 |
Â
* across all objects across all pages. As page boundaries are
|
61 |
Â
* encountered, the next page will be fetched automatically for
|
62 |
Â
* continued iteration.
|
@@ -76,12 +97,11 @@ class Collection extends ApiResource
|
|
76 |
Â
if (isset($url['query'])) {
|
77 |
Â
// If the URL contains a query param, parse it out into $params so they
|
78 |
Â
// don't interact weirdly with each other.
|
79 |
-
$query =
|
80 |
Â
parse_str($url['query'], $query);
|
81 |
-
|
82 |
-
$params = array_merge($params ? $params : array(), $query);
|
83 |
Â
}
|
84 |
Â
|
85 |
-
return
|
86 |
Â
}
|
87 |
Â
}
|
12 |
Â
*
|
13 |
Â
* @package Stripe
|
14 |
Â
*/
|
15 |
+
class Collection extends StripeObject implements \IteratorAggregate
|
16 |
Â
{
|
17 |
+
const OBJECT_NAME = "list";
|
18 |
+
|
19 |
+
use ApiOperations\Request;
|
20 |
+
|
21 |
+
protected $_requestParams = [];
|
22 |
+
|
23 |
+
/**
|
24 |
+
* @return string The base URL for the given class.
|
25 |
+
*/
|
26 |
+
public static function baseUrl()
|
27 |
+
{
|
28 |
+
return Stripe::$apiBase;
|
29 |
+
}
|
30 |
Â
|
31 |
Â
public function setRequestParams($params)
|
32 |
Â
{
|
68 |
Â
}
|
69 |
Â
|
70 |
Â
/**
|
71 |
+
* @return \ArrayIterator An iterator that can be used to iterate
|
72 |
+
* across objects in the current page.
|
73 |
+
*/
|
74 |
+
public function getIterator()
|
75 |
+
{
|
76 |
+
return new \ArrayIterator($this->data);
|
77 |
+
}
|
78 |
+
|
79 |
+
/**
|
80 |
+
* @return Util\AutoPagingIterator An iterator that can be used to iterate
|
81 |
Â
* across all objects across all pages. As page boundaries are
|
82 |
Â
* encountered, the next page will be fetched automatically for
|
83 |
Â
* continued iteration.
|
97 |
Â
if (isset($url['query'])) {
|
98 |
Â
// If the URL contains a query param, parse it out into $params so they
|
99 |
Â
// don't interact weirdly with each other.
|
100 |
+
$query = [];
|
101 |
Â
parse_str($url['query'], $query);
|
102 |
+
$params = array_merge($params ?: [], $query);
|
Â
|
|
103 |
Â
}
|
104 |
Â
|
105 |
+
return [$url['path'], $params];
|
106 |
Â
}
|
107 |
Â
}
|
app/api/Stripe/CountrySpec.php
CHANGED
@@ -5,40 +5,21 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class CountrySpec
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class CountrySpec extends ApiResource
|
11 |
Â
{
|
12 |
-
|
13 |
-
* This is a special case because the country specs endpoint has an
|
14 |
-
* underscore in it. The parent `className` function strips underscores.
|
15 |
-
*
|
16 |
-
* @return string The name of the class.
|
17 |
-
*/
|
18 |
-
public static function className()
|
19 |
-
{
|
20 |
-
return 'country_spec';
|
21 |
-
}
|
22 |
-
|
23 |
-
/**
|
24 |
-
* @param string $country The ISO country code of the country we retrieve the CountrySpec for.
|
25 |
-
* @param array|string|null $opts
|
26 |
-
*
|
27 |
-
* @return CountrySpec
|
28 |
-
*/
|
29 |
-
public static function retrieve($country, $opts = null)
|
30 |
-
{
|
31 |
-
return self::_retrieve($country, $opts);
|
32 |
-
}
|
33 |
Â
|
34 |
-
|
35 |
-
|
36 |
-
* @param array|string|null $opts
|
37 |
-
*
|
38 |
-
* @return Collection of CountrySpecs
|
39 |
-
*/
|
40 |
-
public static function all($params = null, $opts = null)
|
41 |
-
{
|
42 |
-
return self::_all($params, $opts);
|
43 |
-
}
|
44 |
Â
}
|
5 |
Â
/**
|
6 |
Â
* Class CountrySpec
|
7 |
Â
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property string $default_currency
|
11 |
+
* @property mixed $supported_bank_account_currencies
|
12 |
+
* @property string[] $supported_payment_currencies
|
13 |
+
* @property string[] $supported_payment_methods
|
14 |
+
* @property string[] $supported_transfer_countries
|
15 |
+
* @property mixed $verification_fields
|
16 |
+
*
|
17 |
Â
* @package Stripe
|
18 |
Â
*/
|
19 |
Â
class CountrySpec extends ApiResource
|
20 |
Â
{
|
21 |
+
const OBJECT_NAME = "country_spec";
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
22 |
Â
|
23 |
+
use ApiOperations\All;
|
24 |
+
use ApiOperations\Retrieve;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
25 |
Â
}
|
app/api/Stripe/Coupon.php
CHANGED
@@ -5,73 +5,31 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class Coupon
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class Coupon extends ApiResource
|
11 |
Â
{
|
12 |
-
|
13 |
-
* @param string $id The ID of the coupon to retrieve.
|
14 |
-
* @param array|string|null $opts
|
15 |
-
*
|
16 |
-
* @return Coupon
|
17 |
-
*/
|
18 |
-
public static function retrieve($id, $opts = null)
|
19 |
-
{
|
20 |
-
return self::_retrieve($id, $opts);
|
21 |
-
}
|
22 |
-
|
23 |
-
/**
|
24 |
-
* @param array|null $params
|
25 |
-
* @param array|string|null $opts
|
26 |
-
*
|
27 |
-
* @return Coupon The created coupon.
|
28 |
-
*/
|
29 |
-
public static function create($params = null, $opts = null)
|
30 |
-
{
|
31 |
-
return self::_create($params, $opts);
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @param string $id The ID of the coupon to update.
|
36 |
-
* @param array|null $params
|
37 |
-
* @param array|string|null $options
|
38 |
-
*
|
39 |
-
* @return Coupon The updated coupon.
|
40 |
-
*/
|
41 |
-
public static function update($id, $params = null, $options = null)
|
42 |
-
{
|
43 |
-
return self::_update($id, $params, $options);
|
44 |
-
}
|
45 |
-
|
46 |
-
/**
|
47 |
-
* @param array|null $params
|
48 |
-
* @param array|string|null $opts
|
49 |
-
*
|
50 |
-
* @return Coupon The deleted coupon.
|
51 |
-
*/
|
52 |
-
public function delete($params = null, $opts = null)
|
53 |
-
{
|
54 |
-
return $this->_delete($params, $opts);
|
55 |
-
}
|
56 |
-
|
57 |
-
/**
|
58 |
-
* @param array|string|null $opts
|
59 |
-
*
|
60 |
-
* @return Coupon The saved coupon.
|
61 |
-
*/
|
62 |
-
public function save($opts = null)
|
63 |
-
{
|
64 |
-
return $this->_save($opts);
|
65 |
-
}
|
66 |
Â
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
*/
|
73 |
-
public static function all($params = null, $opts = null)
|
74 |
-
{
|
75 |
-
return self::_all($params, $opts);
|
76 |
-
}
|
77 |
Â
}
|
5 |
Â
/**
|
6 |
Â
* Class Coupon
|
7 |
Â
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $amount_off
|
11 |
+
* @property int $created
|
12 |
+
* @property string $currency
|
13 |
+
* @property string $duration
|
14 |
+
* @property int $duration_in_months
|
15 |
+
* @property bool $livemode
|
16 |
+
* @property int $max_redemptions
|
17 |
+
* @property StripeObject $metadata
|
18 |
+
* @property string $name
|
19 |
+
* @property float $percent_off
|
20 |
+
* @property int $redeem_by
|
21 |
+
* @property int $times_redeemed
|
22 |
+
* @property bool $valid
|
23 |
+
*
|
24 |
Â
* @package Stripe
|
25 |
Â
*/
|
26 |
Â
class Coupon extends ApiResource
|
27 |
Â
{
|
28 |
+
const OBJECT_NAME = "coupon";
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
29 |
Â
|
30 |
+
use ApiOperations\All;
|
31 |
+
use ApiOperations\Create;
|
32 |
+
use ApiOperations\Delete;
|
33 |
+
use ApiOperations\Retrieve;
|
34 |
+
use ApiOperations\Update;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
35 |
Â
}
|
app/api/Stripe/CreditNote.php
ADDED
@@ -0,0 +1,73 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class CreditNote
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $amount
|
11 |
+
* @property string $customer_balance_transaction
|
12 |
+
* @property int $created
|
13 |
+
* @property string $currency
|
14 |
+
* @property string $customer
|
15 |
+
* @property string $invoice
|
16 |
+
* @property bool $livemode
|
17 |
+
* @property string $memo
|
18 |
+
* @property StripeObject $metadata
|
19 |
+
* @property string $number
|
20 |
+
* @property string $pdf
|
21 |
+
* @property string $reason
|
22 |
+
* @property string $refund
|
23 |
+
* @property string $status
|
24 |
+
* @property string $type
|
25 |
+
*
|
26 |
+
* @package Stripe
|
27 |
+
*/
|
28 |
+
class CreditNote extends ApiResource
|
29 |
+
{
|
30 |
+
const OBJECT_NAME = "credit_note";
|
31 |
+
|
32 |
+
use ApiOperations\All;
|
33 |
+
use ApiOperations\Create;
|
34 |
+
use ApiOperations\Retrieve;
|
35 |
+
use ApiOperations\Update;
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Possible string representations of the credit note reason.
|
39 |
+
* @link https://stripe.com/docs/api/credit_notes/object#credit_note_object-reason
|
40 |
+
*/
|
41 |
+
const REASON_DUPLICATE = 'duplicate';
|
42 |
+
const REASON_FRAUDULENT = 'fraudulent';
|
43 |
+
const REASON_ORDER_CHANGE = 'order_change';
|
44 |
+
const REASON_PRODUCT_UNSATISFACTORY = 'product_unsatisfactory';
|
45 |
+
|
46 |
+
/**
|
47 |
+
* Possible string representations of the credit note status.
|
48 |
+
* @link https://stripe.com/docs/api/credit_notes/object#credit_note_object-status
|
49 |
+
*/
|
50 |
+
const STATUS_ISSUED = 'issued';
|
51 |
+
const STATUS_VOID = 'void';
|
52 |
+
|
53 |
+
/**
|
54 |
+
* Possible string representations of the credit note type.
|
55 |
+
* @link https://stripe.com/docs/api/credit_notes/object#credit_note_object-status
|
56 |
+
*/
|
57 |
+
const TYPE_POST_PAYMENT = 'post_payment';
|
58 |
+
const TYPE_PRE_PAYMENT = 'pre_payment';
|
59 |
+
|
60 |
+
/**
|
61 |
+
* @param array|null $params
|
62 |
+
* @param array|string|null $opts
|
63 |
+
*
|
64 |
+
* @return CreditNote The voided credit note.
|
65 |
+
*/
|
66 |
+
public function voidCreditNote($params = null, $opts = null)
|
67 |
+
{
|
68 |
+
$url = $this->instanceUrl() . '/void';
|
69 |
+
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
70 |
+
$this->refreshFrom($response, $opts);
|
71 |
+
return $this;
|
72 |
+
}
|
73 |
+
}
|
app/api/Stripe/Customer.php
CHANGED
@@ -7,184 +7,313 @@ namespace Stripe;
|
|
7 |
Â
*
|
8 |
Â
* @property string $id
|
9 |
Â
* @property string $object
|
10 |
-
* @property
|
11 |
-
* @property
|
12 |
Â
* @property string $created
|
13 |
Â
* @property string $currency
|
14 |
Â
* @property string $default_source
|
15 |
Â
* @property bool $delinquent
|
16 |
Â
* @property string $description
|
17 |
-
* @property
|
18 |
Â
* @property string $email
|
Â
|
|
Â
|
|
19 |
Â
* @property bool $livemode
|
20 |
-
* @property
|
Â
|
|
Â
|
|
Â
|
|
21 |
Â
* @property mixed $shipping
|
22 |
Â
* @property Collection $sources
|
23 |
Â
* @property Collection $subscriptions
|
Â
|
|
Â
|
|
24 |
Â
*
|
25 |
Â
* @package Stripe
|
26 |
Â
*/
|
27 |
Â
class Customer extends ApiResource
|
28 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
29 |
Â
/**
|
30 |
-
* @param
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
31 |
Â
* @param array|string|null $opts
|
32 |
Â
*
|
33 |
-
* @return
|
34 |
Â
*/
|
35 |
-
public static function
|
36 |
Â
{
|
37 |
-
return self::
|
38 |
Â
}
|
39 |
Â
|
40 |
Â
/**
|
Â
|
|
Â
|
|
41 |
Â
* @param array|null $params
|
42 |
Â
* @param array|string|null $opts
|
43 |
Â
*
|
44 |
-
* @return
|
45 |
Â
*/
|
46 |
-
public static function
|
47 |
Â
{
|
48 |
-
return self::
|
49 |
Â
}
|
50 |
Â
|
51 |
Â
/**
|
Â
|
|
Â
|
|
52 |
Â
* @param array|null $params
|
53 |
Â
* @param array|string|null $opts
|
54 |
Â
*
|
55 |
-
* @return
|
56 |
Â
*/
|
57 |
-
public static function
|
58 |
Â
{
|
59 |
-
return self::
|
60 |
Â
}
|
61 |
Â
|
62 |
Â
/**
|
63 |
-
* @param string $id The ID of the customer to
|
Â
|
|
64 |
Â
* @param array|null $params
|
65 |
-
* @param array|string|null $
|
66 |
Â
*
|
67 |
-
* @return
|
68 |
Â
*/
|
69 |
-
public static function
|
70 |
Â
{
|
71 |
-
return self::
|
72 |
Â
}
|
73 |
Â
|
74 |
Â
/**
|
Â
|
|
Â
|
|
75 |
Â
* @param array|string|null $opts
|
76 |
Â
*
|
77 |
-
* @return
|
78 |
Â
*/
|
79 |
-
public function
|
80 |
Â
{
|
81 |
-
return
|
82 |
Â
}
|
83 |
Â
|
84 |
Â
/**
|
Â
|
|
85 |
Â
* @param array|null $params
|
86 |
Â
* @param array|string|null $opts
|
87 |
Â
*
|
88 |
-
* @return
|
89 |
Â
*/
|
90 |
-
public function
|
91 |
Â
{
|
92 |
-
return
|
93 |
Â
}
|
94 |
Â
|
95 |
Â
/**
|
Â
|
|
Â
|
|
96 |
Â
* @param array|null $params
|
Â
|
|
97 |
Â
*
|
98 |
-
* @return
|
99 |
Â
*/
|
100 |
-
public function
|
101 |
Â
{
|
102 |
-
|
103 |
-
$params = array();
|
104 |
-
}
|
105 |
-
$params['customer'] = $this->id;
|
106 |
-
$ii = InvoiceItem::create($params, $this->_opts);
|
107 |
-
return $ii;
|
108 |
Â
}
|
109 |
Â
|
110 |
Â
/**
|
Â
|
|
Â
|
|
111 |
Â
* @param array|null $params
|
Â
|
|
112 |
Â
*
|
113 |
-
* @return
|
114 |
Â
*/
|
115 |
-
public function
|
116 |
Â
{
|
117 |
-
|
118 |
-
$params = array();
|
119 |
-
}
|
120 |
-
$params['customer'] = $this->id;
|
121 |
-
$invoices = Invoice::all($params, $this->_opts);
|
122 |
-
return $invoices;
|
123 |
Â
}
|
124 |
Â
|
125 |
Â
/**
|
Â
|
|
126 |
Â
* @param array|null $params
|
Â
|
|
127 |
Â
*
|
128 |
-
* @return
|
129 |
Â
*/
|
130 |
-
public function
|
131 |
Â
{
|
132 |
-
|
133 |
-
$params = array();
|
134 |
-
}
|
135 |
-
$params['customer'] = $this->id;
|
136 |
-
$iis = InvoiceItem::all($params, $this->_opts);
|
137 |
-
return $iis;
|
138 |
Â
}
|
139 |
Â
|
140 |
Â
/**
|
Â
|
|
141 |
Â
* @param array|null $params
|
Â
|
|
142 |
Â
*
|
143 |
-
* @return
|
144 |
Â
*/
|
145 |
-
public function
|
146 |
Â
{
|
147 |
-
|
148 |
-
$params = array();
|
149 |
-
}
|
150 |
-
$params['customer'] = $this->id;
|
151 |
-
$charges = Charge::all($params, $this->_opts);
|
152 |
-
return $charges;
|
153 |
Â
}
|
154 |
Â
|
155 |
Â
/**
|
Â
|
|
Â
|
|
156 |
Â
* @param array|null $params
|
Â
|
|
157 |
Â
*
|
158 |
-
* @return
|
159 |
Â
*/
|
160 |
-
public function
|
161 |
Â
{
|
162 |
-
$
|
163 |
-
list($response, $opts) = $this->_request('post', $url, $params);
|
164 |
-
$this->refreshFrom(array('subscription' => $response), $opts, true);
|
165 |
-
return $this->subscription;
|
166 |
Â
}
|
167 |
Â
|
168 |
Â
/**
|
Â
|
|
Â
|
|
169 |
Â
* @param array|null $params
|
Â
|
|
170 |
Â
*
|
171 |
-
*
|
Â
|
|
172 |
Â
*/
|
173 |
-
public function
|
174 |
Â
{
|
175 |
-
$
|
176 |
-
list($response, $opts) = $this->_request('delete', $url, $params);
|
177 |
-
$this->refreshFrom(array('subscription' => $response), $opts, true);
|
178 |
-
return $this->subscription;
|
179 |
Â
}
|
180 |
Â
|
181 |
Â
/**
|
182 |
-
* @
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
183 |
Â
*/
|
184 |
-
public function
|
185 |
Â
{
|
186 |
-
$
|
187 |
-
list($response, $opts) = $this->_request('delete', $url);
|
188 |
-
$this->refreshFrom(array('discount' => null), $opts, true);
|
189 |
Â
}
|
190 |
Â
}
|
7 |
Â
*
|
8 |
Â
* @property string $id
|
9 |
Â
* @property string $object
|
10 |
+
* @property mixed $address
|
11 |
+
* @property int $balance
|
12 |
Â
* @property string $created
|
13 |
Â
* @property string $currency
|
14 |
Â
* @property string $default_source
|
15 |
Â
* @property bool $delinquent
|
16 |
Â
* @property string $description
|
17 |
+
* @property Discount $discount
|
18 |
Â
* @property string $email
|
19 |
+
* @property string $invoice_prefix
|
20 |
+
* @property mixed $invoice_settings
|
21 |
Â
* @property bool $livemode
|
22 |
+
* @property StripeObject $metadata
|
23 |
+
* @property string $name
|
24 |
+
* @property string $phone
|
25 |
+
* @property string[] preferred_locales
|
26 |
Â
* @property mixed $shipping
|
27 |
Â
* @property Collection $sources
|
28 |
Â
* @property Collection $subscriptions
|
29 |
+
* @property string $tax_exempt
|
30 |
+
* @property Collection $tax_ids
|
31 |
Â
*
|
32 |
Â
* @package Stripe
|
33 |
Â
*/
|
34 |
Â
class Customer extends ApiResource
|
35 |
Â
{
|
36 |
+
const OBJECT_NAME = "customer";
|
37 |
+
|
38 |
+
use ApiOperations\All;
|
39 |
+
use ApiOperations\Create;
|
40 |
+
use ApiOperations\Delete;
|
41 |
+
use ApiOperations\NestedResource;
|
42 |
+
use ApiOperations\Retrieve;
|
43 |
+
use ApiOperations\Update;
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Possible string representations of the customer's type of tax exemption.
|
47 |
+
* @link https://stripe.com/docs/api/customers/object#customer_object-tax_exempt
|
48 |
+
*/
|
49 |
+
const TAX_EXEMPT_NONE = 'none';
|
50 |
+
const TAX_EXEMPT_EXEMPT = 'exempt';
|
51 |
+
const TAX_EXEMPT_REVERSE = 'reverse';
|
52 |
+
|
53 |
+
public static function getSavedNestedResources()
|
54 |
+
{
|
55 |
+
static $savedNestedResources = null;
|
56 |
+
if ($savedNestedResources === null) {
|
57 |
+
$savedNestedResources = new Util\Set([
|
58 |
+
'source',
|
59 |
+
]);
|
60 |
+
}
|
61 |
+
return $savedNestedResources;
|
62 |
+
}
|
63 |
+
|
64 |
+
const PATH_BALANCE_TRANSACTIONS = '/balance_transactions';
|
65 |
+
const PATH_SOURCES = '/sources';
|
66 |
+
const PATH_TAX_IDS = '/tax_ids';
|
67 |
+
|
68 |
+
/**
|
69 |
+
* @param array|null $params
|
70 |
+
*
|
71 |
+
* @return InvoiceItem The resulting invoice item.
|
72 |
+
*/
|
73 |
+
public function addInvoiceItem($params = null)
|
74 |
+
{
|
75 |
+
$params = $params ?: [];
|
76 |
+
$params['customer'] = $this->id;
|
77 |
+
$ii = InvoiceItem::create($params, $this->_opts);
|
78 |
+
return $ii;
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
+
* @param array|null $params
|
83 |
+
*
|
84 |
+
* @return array An array of the customer's Invoices.
|
85 |
+
*/
|
86 |
+
public function invoices($params = null)
|
87 |
+
{
|
88 |
+
$params = $params ?: [];
|
89 |
+
$params['customer'] = $this->id;
|
90 |
+
$invoices = Invoice::all($params, $this->_opts);
|
91 |
+
return $invoices;
|
92 |
+
}
|
93 |
+
|
94 |
+
/**
|
95 |
+
* @param array|null $params
|
96 |
+
*
|
97 |
+
* @return array An array of the customer's InvoiceItems.
|
98 |
+
*/
|
99 |
+
public function invoiceItems($params = null)
|
100 |
+
{
|
101 |
+
$params = $params ?: [];
|
102 |
+
$params['customer'] = $this->id;
|
103 |
+
$iis = InvoiceItem::all($params, $this->_opts);
|
104 |
+
return $iis;
|
105 |
+
}
|
106 |
+
|
107 |
+
/**
|
108 |
+
* @param array|null $params
|
109 |
+
*
|
110 |
+
* @return array An array of the customer's Charges.
|
111 |
+
*/
|
112 |
+
public function charges($params = null)
|
113 |
+
{
|
114 |
+
$params = $params ?: [];
|
115 |
+
$params['customer'] = $this->id;
|
116 |
+
$charges = Charge::all($params, $this->_opts);
|
117 |
+
return $charges;
|
118 |
+
}
|
119 |
+
|
120 |
+
/**
|
121 |
+
* @param array|null $params
|
122 |
+
*
|
123 |
+
* @return Subscription The updated subscription.
|
124 |
+
*/
|
125 |
+
public function updateSubscription($params = null)
|
126 |
+
{
|
127 |
+
$url = $this->instanceUrl() . '/subscription';
|
128 |
+
list($response, $opts) = $this->_request('post', $url, $params);
|
129 |
+
$this->refreshFrom(['subscription' => $response], $opts, true);
|
130 |
+
return $this->subscription;
|
131 |
+
}
|
132 |
+
|
133 |
Â
/**
|
134 |
+
* @param array|null $params
|
135 |
+
*
|
136 |
+
* @return Subscription The cancelled subscription.
|
137 |
+
*/
|
138 |
+
public function cancelSubscription($params = null)
|
139 |
+
{
|
140 |
+
$url = $this->instanceUrl() . '/subscription';
|
141 |
+
list($response, $opts) = $this->_request('delete', $url, $params);
|
142 |
+
$this->refreshFrom(['subscription' => $response], $opts, true);
|
143 |
+
return $this->subscription;
|
144 |
+
}
|
145 |
+
|
146 |
+
/**
|
147 |
+
* @return Customer The updated customer.
|
148 |
+
*/
|
149 |
+
public function deleteDiscount()
|
150 |
+
{
|
151 |
+
$url = $this->instanceUrl() . '/discount';
|
152 |
+
list($response, $opts) = $this->_request('delete', $url);
|
153 |
+
$this->refreshFrom(['discount' => null], $opts, true);
|
154 |
+
}
|
155 |
+
|
156 |
+
/**
|
157 |
+
* @param string|null $id The ID of the customer on which to create the source.
|
158 |
+
* @param array|null $params
|
159 |
Â
* @param array|string|null $opts
|
160 |
Â
*
|
161 |
+
* @return ApiResource
|
162 |
Â
*/
|
163 |
+
public static function createSource($id, $params = null, $opts = null)
|
164 |
Â
{
|
165 |
+
return self::_createNestedResource($id, static::PATH_SOURCES, $params, $opts);
|
166 |
Â
}
|
167 |
Â
|
168 |
Â
/**
|
169 |
+
* @param string|null $id The ID of the customer to which the source belongs.
|
170 |
+
* @param string|null $sourceId The ID of the source to retrieve.
|
171 |
Â
* @param array|null $params
|
172 |
Â
* @param array|string|null $opts
|
173 |
Â
*
|
174 |
+
* @return ApiResource
|
175 |
Â
*/
|
176 |
+
public static function retrieveSource($id, $sourceId, $params = null, $opts = null)
|
177 |
Â
{
|
178 |
+
return self::_retrieveNestedResource($id, static::PATH_SOURCES, $sourceId, $params, $opts);
|
179 |
Â
}
|
180 |
Â
|
181 |
Â
/**
|
182 |
+
* @param string|null $id The ID of the customer to which the source belongs.
|
183 |
+
* @param string|null $sourceId The ID of the source to update.
|
184 |
Â
* @param array|null $params
|
185 |
Â
* @param array|string|null $opts
|
186 |
Â
*
|
187 |
+
* @return ApiResource
|
188 |
Â
*/
|
189 |
+
public static function updateSource($id, $sourceId, $params = null, $opts = null)
|
190 |
Â
{
|
191 |
+
return self::_updateNestedResource($id, static::PATH_SOURCES, $sourceId, $params, $opts);
|
192 |
Â
}
|
193 |
Â
|
194 |
Â
/**
|
195 |
+
* @param string|null $id The ID of the customer to which the source belongs.
|
196 |
+
* @param string|null $sourceId The ID of the source to delete.
|
197 |
Â
* @param array|null $params
|
198 |
+
* @param array|string|null $opts
|
199 |
Â
*
|
200 |
+
* @return ApiResource
|
201 |
Â
*/
|
202 |
+
public static function deleteSource($id, $sourceId, $params = null, $opts = null)
|
203 |
Â
{
|
204 |
+
return self::_deleteNestedResource($id, static::PATH_SOURCES, $sourceId, $params, $opts);
|
205 |
Â
}
|
206 |
Â
|
207 |
Â
/**
|
208 |
+
* @param string|null $id The ID of the customer on which to retrieve the sources.
|
209 |
+
* @param array|null $params
|
210 |
Â
* @param array|string|null $opts
|
211 |
Â
*
|
212 |
+
* @return Collection The list of sources.
|
213 |
Â
*/
|
214 |
+
public static function allSources($id, $params = null, $opts = null)
|
215 |
Â
{
|
216 |
+
return self::_allNestedResources($id, static::PATH_SOURCES, $params, $opts);
|
217 |
Â
}
|
218 |
Â
|
219 |
Â
/**
|
220 |
+
* @param string|null $id The ID of the customer on which to create the tax id.
|
221 |
Â
* @param array|null $params
|
222 |
Â
* @param array|string|null $opts
|
223 |
Â
*
|
224 |
+
* @return ApiResource
|
225 |
Â
*/
|
226 |
+
public static function createTaxId($id, $params = null, $opts = null)
|
227 |
Â
{
|
228 |
+
return self::_createNestedResource($id, static::PATH_TAX_IDS, $params, $opts);
|
229 |
Â
}
|
230 |
Â
|
231 |
Â
/**
|
232 |
+
* @param string|null $id The ID of the customer to which the tax id belongs.
|
233 |
+
* @param string|null $taxIdId The ID of the tax id to retrieve.
|
234 |
Â
* @param array|null $params
|
235 |
+
* @param array|string|null $opts
|
236 |
Â
*
|
237 |
+
* @return ApiResource
|
238 |
Â
*/
|
239 |
+
public static function retrieveTaxId($id, $taxIdId, $params = null, $opts = null)
|
240 |
Â
{
|
241 |
+
return self::_retrieveNestedResource($id, static::PATH_TAX_IDS, $taxIdId, $params, $opts);
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
242 |
Â
}
|
243 |
Â
|
244 |
Â
/**
|
245 |
+
* @param string|null $id The ID of the customer to which the tax id belongs.
|
246 |
+
* @param string|null $taxIdId The ID of the tax id to delete.
|
247 |
Â
* @param array|null $params
|
248 |
+
* @param array|string|null $opts
|
249 |
Â
*
|
250 |
+
* @return ApiResource
|
251 |
Â
*/
|
252 |
+
public static function deleteTaxId($id, $taxIdId, $params = null, $opts = null)
|
253 |
Â
{
|
254 |
+
return self::_deleteNestedResource($id, static::PATH_TAX_IDS, $taxIdId, $params, $opts);
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
255 |
Â
}
|
256 |
Â
|
257 |
Â
/**
|
258 |
+
* @param string|null $id The ID of the customer on which to retrieve the tax ids.
|
259 |
Â
* @param array|null $params
|
260 |
+
* @param array|string|null $opts
|
261 |
Â
*
|
262 |
+
* @return Collection The list of tax ids.
|
263 |
Â
*/
|
264 |
+
public static function allTaxIds($id, $params = null, $opts = null)
|
265 |
Â
{
|
266 |
+
return self::_allNestedResources($id, static::PATH_TAX_IDS, $params, $opts);
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
267 |
Â
}
|
268 |
Â
|
269 |
Â
/**
|
270 |
+
* @param string|null $id The ID of the customer on which to create the balance transaction.
|
271 |
Â
* @param array|null $params
|
272 |
+
* @param array|string|null $opts
|
273 |
Â
*
|
274 |
+
* @return ApiResource
|
275 |
Â
*/
|
276 |
+
public static function createBalanceTransaction($id, $params = null, $opts = null)
|
277 |
Â
{
|
278 |
+
return self::_createNestedResource($id, static::PATH_BALANCE_TRANSACTIONS, $params, $opts);
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
279 |
Â
}
|
280 |
Â
|
281 |
Â
/**
|
282 |
+
* @param string|null $id The ID of the customer to which the balance transaction belongs.
|
283 |
+
* @param string|null $balanceTransactionId The ID of the balance transaction to retrieve.
|
284 |
Â
* @param array|null $params
|
285 |
+
* @param array|string|null $opts
|
286 |
Â
*
|
287 |
+
* @return ApiResource
|
288 |
Â
*/
|
289 |
+
public static function retrieveBalanceTransaction($id, $balanceTransactionId, $params = null, $opts = null)
|
290 |
Â
{
|
291 |
+
return self::_retrieveNestedResource($id, static::PATH_BALANCE_TRANSACTIONS, $balanceTransactionId, $params, $opts);
|
Â
|
|
Â
|
|
Â
|
|
292 |
Â
}
|
293 |
Â
|
294 |
Â
/**
|
295 |
+
* @param string|null $id The ID of the customer on which to update the balance transaction.
|
296 |
+
* @param string|null $balanceTransactionId The ID of the balance transaction to update.
|
297 |
Â
* @param array|null $params
|
298 |
+
* @param array|string|null $opts
|
299 |
Â
*
|
300 |
+
*
|
301 |
+
* @return ApiResource
|
302 |
Â
*/
|
303 |
+
public static function updateBalanceTransaction($id, $balanceTransactionId, $params = null, $opts = null)
|
304 |
Â
{
|
305 |
+
return self::_updateNestedResource($id, static::PATH_BALANCE_TRANSACTIONS, $balanceTransactionId, $params, $opts);
|
Â
|
|
Â
|
|
Â
|
|
306 |
Â
}
|
307 |
Â
|
308 |
Â
/**
|
309 |
+
* @param string|null $id The ID of the customer on which to retrieve the customer balance transactions.
|
310 |
+
* @param array|null $params
|
311 |
+
* @param array|string|null $opts
|
312 |
+
*
|
313 |
+
* @return Collection The list of customer balance transactions.
|
314 |
Â
*/
|
315 |
+
public static function allBalanceTransactions($id, $params = null, $opts = null)
|
316 |
Â
{
|
317 |
+
return self::_allNestedResources($id, static::PATH_BALANCE_TRANSACTIONS, $params, $opts);
|
Â
|
|
Â
|
|
318 |
Â
}
|
319 |
Â
}
|
app/api/Stripe/CustomerBalanceTransaction.php
ADDED
@@ -0,0 +1,88 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class CustomerBalanceTransaction
|
7 |
+
*
|
8 |
+
* @package Stripe
|
9 |
+
*
|
10 |
+
* @property string $id
|
11 |
+
* @property string $object
|
12 |
+
* @property int $amount
|
13 |
+
* @property string $credit_note
|
14 |
+
* @property int $created
|
15 |
+
* @property string $currency
|
16 |
+
* @property string $customer
|
17 |
+
* @property string $description
|
18 |
+
* @property int $ending_balance
|
19 |
+
* @property string $invoice
|
20 |
+
* @property bool $livemode
|
21 |
+
* @property StripeObject $metadata
|
22 |
+
* @property string $type
|
23 |
+
*/
|
24 |
+
class CustomerBalanceTransaction extends ApiResource
|
25 |
+
{
|
26 |
+
const OBJECT_NAME = "customer_balance_transaction";
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Possible string representations of a balance transaction's type.
|
30 |
+
* @link https://stripe.com/docs/api/customers/customer_balance_transaction_object#customer_balance_transaction_object-type
|
31 |
+
*/
|
32 |
+
const TYPE_ADJUSTEMENT = 'adjustment';
|
33 |
+
const TYPE_APPLIED_TO_INVOICE = 'applied_to_invoice';
|
34 |
+
const TYPE_CREDIT_NOTE = 'credit_note';
|
35 |
+
const TYPE_INITIAL = 'initial';
|
36 |
+
const TYPE_INVOICE_TOO_LARGE = 'invoice_too_large';
|
37 |
+
const TYPE_INVOICE_TOO_SMALL = 'invoice_too_small';
|
38 |
+
const TYPE_UNSPENT_RECEIVER_CREDIT = 'unspent_receiver_credit';
|
39 |
+
|
40 |
+
/**
|
41 |
+
* @return string The API URL for this balance transaction.
|
42 |
+
*/
|
43 |
+
public function instanceUrl()
|
44 |
+
{
|
45 |
+
$id = $this['id'];
|
46 |
+
$customer = $this['customer'];
|
47 |
+
if (!$id) {
|
48 |
+
throw new Error\InvalidRequest(
|
49 |
+
"Could not determine which URL to request: class instance has invalid ID: $id",
|
50 |
+
null
|
51 |
+
);
|
52 |
+
}
|
53 |
+
$id = Util\Util::utf8($id);
|
54 |
+
$customer = Util\Util::utf8($customer);
|
55 |
+
|
56 |
+
$base = Customer::classUrl();
|
57 |
+
$customerExtn = urlencode($customer);
|
58 |
+
$extn = urlencode($id);
|
59 |
+
return "$base/$customerExtn/balance_transactions/$extn";
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* @param array|string $_id
|
64 |
+
* @param array|string|null $_opts
|
65 |
+
*
|
66 |
+
* @throws \Stripe\Error\InvalidRequest
|
67 |
+
*/
|
68 |
+
public static function retrieve($_id, $_opts = null)
|
69 |
+
{
|
70 |
+
$msg = "Customer Balance Transactions cannot be accessed without a customer ID. " .
|
71 |
+
"Retrieve a balance transaction using Customer::retrieveBalanceTransaction('cus_123', 'cbtxn_123') instead.";
|
72 |
+
throw new Error\InvalidRequest($msg, null);
|
73 |
+
}
|
74 |
+
|
75 |
+
/**
|
76 |
+
* @param string $_id
|
77 |
+
* @param array|null $_params
|
78 |
+
* @param array|string|null $_options
|
79 |
+
*
|
80 |
+
* @throws \Stripe\Error\InvalidRequest
|
81 |
+
*/
|
82 |
+
public static function update($_id, $_params = null, $_options = null)
|
83 |
+
{
|
84 |
+
$msg = "Customer Balance Transactions cannot be accessed without a customer ID. " .
|
85 |
+
"Update a balance transaction using Customer::updateBalanceTransaction('cus_123', 'cbtxn_123', \$params) instead.";
|
86 |
+
throw new Error\InvalidRequest($msg, null);
|
87 |
+
}
|
88 |
+
}
|
app/api/Stripe/Discount.php
ADDED
@@ -0,0 +1,20 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Discount
|
7 |
+
*
|
8 |
+
* @property string $object
|
9 |
+
* @property Coupon $coupon
|
10 |
+
* @property string $customer
|
11 |
+
* @property int $end
|
12 |
+
* @property int $start
|
13 |
+
* @property string $subscription
|
14 |
+
*
|
15 |
+
* @package Stripe
|
16 |
+
*/
|
17 |
+
class Discount extends StripeObject
|
18 |
+
{
|
19 |
+
const OBJECT_NAME = "discount";
|
20 |
+
}
|
app/api/Stripe/Dispute.php
CHANGED
@@ -8,7 +8,7 @@ namespace Stripe;
|
|
8 |
Â
* @property string $id
|
9 |
Â
* @property string $object
|
10 |
Â
* @property int $amount
|
11 |
-
* @property
|
12 |
Â
* @property string $charge
|
13 |
Â
* @property int $created
|
14 |
Â
* @property string $currency
|
@@ -16,7 +16,7 @@ namespace Stripe;
|
|
16 |
Â
* @property mixed $evidence_details
|
17 |
Â
* @property bool $is_charge_refundable
|
18 |
Â
* @property bool $livemode
|
19 |
-
* @property
|
20 |
Â
* @property string $reason
|
21 |
Â
* @property string $status
|
22 |
Â
*
|
@@ -24,49 +24,43 @@ namespace Stripe;
|
|
24 |
Â
*/
|
25 |
Â
class Dispute extends ApiResource
|
26 |
Â
{
|
27 |
-
|
28 |
-
* @param string $id The ID of the dispute to retrieve.
|
29 |
-
* @param array|string|null $options
|
30 |
-
*
|
31 |
-
* @return Dispute
|
32 |
-
*/
|
33 |
-
public static function retrieve($id, $options = null)
|
34 |
-
{
|
35 |
-
return self::_retrieve($id, $options);
|
36 |
-
}
|
37 |
Â
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
*
|
42 |
-
* @return array An array of Disputes.
|
43 |
-
*/
|
44 |
-
public static function all($params = null, $options = null)
|
45 |
-
{
|
46 |
-
return self::_all($params, $options);
|
47 |
-
}
|
48 |
Â
|
49 |
Â
/**
|
50 |
-
*
|
51 |
-
* @
|
52 |
-
* @param array|string|null $options
|
53 |
-
*
|
54 |
-
* @return Dispute The updated dispute.
|
55 |
Â
*/
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
60 |
Â
|
61 |
Â
/**
|
62 |
-
*
|
63 |
-
*
|
64 |
-
* @return Dispute The saved charge.
|
65 |
Â
*/
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
70 |
Â
|
71 |
Â
/**
|
72 |
Â
* @param array|string|null $options
|
8 |
Â
* @property string $id
|
9 |
Â
* @property string $object
|
10 |
Â
* @property int $amount
|
11 |
+
* @property BalanceTransaction[] $balance_transactions
|
12 |
Â
* @property string $charge
|
13 |
Â
* @property int $created
|
14 |
Â
* @property string $currency
|
16 |
Â
* @property mixed $evidence_details
|
17 |
Â
* @property bool $is_charge_refundable
|
18 |
Â
* @property bool $livemode
|
19 |
+
* @property StripeObject $metadata
|
20 |
Â
* @property string $reason
|
21 |
Â
* @property string $status
|
22 |
Â
*
|
24 |
Â
*/
|
25 |
Â
class Dispute extends ApiResource
|
26 |
Â
{
|
27 |
+
const OBJECT_NAME = "dispute";
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
28 |
Â
|
29 |
+
use ApiOperations\All;
|
30 |
+
use ApiOperations\Retrieve;
|
31 |
+
use ApiOperations\Update;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
32 |
Â
|
33 |
Â
/**
|
34 |
+
* Possible string representations of dispute reasons.
|
35 |
+
* @link https://stripe.com/docs/api#dispute_object
|
Â
|
|
Â
|
|
Â
|
|
36 |
Â
*/
|
37 |
+
const REASON_BANK_CANNOT_PROCESS = 'bank_cannot_process';
|
38 |
+
const REASON_CHECK_RETURNED = 'check_returned';
|
39 |
+
const REASON_CREDIT_NOT_PROCESSED = 'credit_not_processed';
|
40 |
+
const REASON_CUSTOMER_INITIATED = 'customer_initiated';
|
41 |
+
const REASON_DEBIT_NOT_AUTHORIZED = 'debit_not_authorized';
|
42 |
+
const REASON_DUPLICATE = 'duplicate';
|
43 |
+
const REASON_FRAUDULENT = 'fraudulent';
|
44 |
+
const REASON_GENERAL = 'general';
|
45 |
+
const REASON_INCORRECT_ACCOUNT_DETAILS = 'incorrect_account_details';
|
46 |
+
const REASON_INSUFFICIENT_FUNDS = 'insufficient_funds';
|
47 |
+
const REASON_PRODUCT_NOT_RECEIVED = 'product_not_received';
|
48 |
+
const REASON_PRODUCT_UNACCEPTABLE = 'product_unacceptable';
|
49 |
+
const REASON_SUBSCRIPTION_CANCELED = 'subscription_canceled';
|
50 |
+
const REASON_UNRECOGNIZED = 'unrecognized';
|
51 |
Â
|
52 |
Â
/**
|
53 |
+
* Possible string representations of dispute statuses.
|
54 |
+
* @link https://stripe.com/docs/api#dispute_object
|
Â
|
|
55 |
Â
*/
|
56 |
+
const STATUS_CHARGE_REFUNDED = 'charge_refunded';
|
57 |
+
const STATUS_LOST = 'lost';
|
58 |
+
const STATUS_NEEDS_RESPONSE = 'needs_response';
|
59 |
+
const STATUS_UNDER_REVIEW = 'under_review';
|
60 |
+
const STATUS_WARNING_CLOSED = 'warning_closed';
|
61 |
+
const STATUS_WARNING_NEEDS_RESPONSE = 'warning_needs_response';
|
62 |
+
const STATUS_WARNING_UNDER_REVIEW = 'warning_under_review';
|
63 |
+
const STATUS_WON = 'won';
|
64 |
Â
|
65 |
Â
/**
|
66 |
Â
* @param array|string|null $options
|
app/api/Stripe/EphemeralKey.php
ADDED
@@ -0,0 +1,40 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class EphemeralKey
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $created
|
11 |
+
* @property int $expires
|
12 |
+
* @property bool $livemode
|
13 |
+
* @property string $secret
|
14 |
+
* @property array $associated_objects
|
15 |
+
*
|
16 |
+
* @package Stripe
|
17 |
+
*/
|
18 |
+
class EphemeralKey extends ApiResource
|
19 |
+
{
|
20 |
+
const OBJECT_NAME = "ephemeral_key";
|
21 |
+
|
22 |
+
use ApiOperations\Create {
|
23 |
+
create as protected _create;
|
24 |
+
}
|
25 |
+
use ApiOperations\Delete;
|
26 |
+
|
27 |
+
/**
|
28 |
+
* @param array|null $params
|
29 |
+
* @param array|string|null $opts
|
30 |
+
*
|
31 |
+
* @return EphemeralKey The created key.
|
32 |
+
*/
|
33 |
+
public static function create($params = null, $opts = null)
|
34 |
+
{
|
35 |
+
if (!$opts['stripe_version']) {
|
36 |
+
throw new \InvalidArgumentException('stripe_version must be specified to create an ephemeral key');
|
37 |
+
}
|
38 |
+
return self::_create($params, $opts);
|
39 |
+
}
|
40 |
+
}
|
app/api/Stripe/Error/Base.php
CHANGED
@@ -20,11 +20,20 @@ abstract class Base extends Exception
|
|
20 |
Â
$this->httpHeaders = $httpHeaders;
|
21 |
Â
$this->requestId = null;
|
22 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
23 |
Â
if ($httpHeaders && isset($httpHeaders['Request-Id'])) {
|
24 |
Â
$this->requestId = $httpHeaders['Request-Id'];
|
25 |
Â
}
|
26 |
Â
}
|
27 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
28 |
Â
public function getHttpStatus()
|
29 |
Â
{
|
30 |
Â
return $this->httpStatus;
|
20 |
Â
$this->httpHeaders = $httpHeaders;
|
21 |
Â
$this->requestId = null;
|
22 |
Â
|
23 |
+
// TODO: make this a proper constructor argument in the next major
|
24 |
+
// release.
|
25 |
+
$this->stripeCode = isset($jsonBody["error"]["code"]) ? $jsonBody["error"]["code"] : null;
|
26 |
+
|
27 |
Â
if ($httpHeaders && isset($httpHeaders['Request-Id'])) {
|
28 |
Â
$this->requestId = $httpHeaders['Request-Id'];
|
29 |
Â
}
|
30 |
Â
}
|
31 |
Â
|
32 |
+
public function getStripeCode()
|
33 |
+
{
|
34 |
+
return $this->stripeCode;
|
35 |
+
}
|
36 |
+
|
37 |
Â
public function getHttpStatus()
|
38 |
Â
{
|
39 |
Â
return $this->httpStatus;
|
app/api/Stripe/Error/Card.php
CHANGED
@@ -15,12 +15,16 @@ class Card extends Base
|
|
15 |
Â
) {
|
16 |
Â
parent::__construct($message, $httpStatus, $httpBody, $jsonBody, $httpHeaders);
|
17 |
Â
$this->stripeParam = $stripeParam;
|
Â
|
|
Â
|
|
Â
|
|
18 |
Â
$this->stripeCode = $stripeCode;
|
19 |
Â
|
20 |
Â
// This one is not like the others because it was added later and we're
|
21 |
Â
// trying to do our best not to change the public interface of this class'
|
22 |
-
// constructor.
|
23 |
-
//
|
Â
|
|
24 |
Â
$this->declineCode = isset($jsonBody["error"]["decline_code"]) ? $jsonBody["error"]["decline_code"] : null;
|
25 |
Â
}
|
26 |
Â
|
@@ -29,11 +33,6 @@ class Card extends Base
|
|
29 |
Â
return $this->declineCode;
|
30 |
Â
}
|
31 |
Â
|
32 |
-
public function getStripeCode()
|
33 |
-
{
|
34 |
-
return $this->stripeCode;
|
35 |
-
}
|
36 |
-
|
37 |
Â
public function getStripeParam()
|
38 |
Â
{
|
39 |
Â
return $this->stripeParam;
|
15 |
Â
) {
|
16 |
Â
parent::__construct($message, $httpStatus, $httpBody, $jsonBody, $httpHeaders);
|
17 |
Â
$this->stripeParam = $stripeParam;
|
18 |
+
|
19 |
+
// TODO: once Error\Base accepts the error code as an argument, pass it
|
20 |
+
// in the call to parent::__construct() and stop setting it here.
|
21 |
Â
$this->stripeCode = $stripeCode;
|
22 |
Â
|
23 |
Â
// This one is not like the others because it was added later and we're
|
24 |
Â
// trying to do our best not to change the public interface of this class'
|
25 |
+
// constructor.
|
26 |
+
// TODO: make this a proper constructor argument in the next major
|
27 |
+
// release.
|
28 |
Â
$this->declineCode = isset($jsonBody["error"]["decline_code"]) ? $jsonBody["error"]["decline_code"] : null;
|
29 |
Â
}
|
30 |
Â
|
33 |
Â
return $this->declineCode;
|
34 |
Â
}
|
35 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
36 |
Â
public function getStripeParam()
|
37 |
Â
{
|
38 |
Â
return $this->stripeParam;
|
app/api/Stripe/Error/Idempotency.php
ADDED
@@ -0,0 +1,7 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Error;
|
4 |
+
|
5 |
+
class Idempotency extends Base
|
6 |
+
{
|
7 |
+
}
|
app/api/Stripe/Error/OAuth/InvalidClient.php
ADDED
@@ -0,0 +1,10 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Error\OAuth;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* InvalidClient is raised when authentication fails.
|
7 |
+
*/
|
8 |
+
class InvalidClient extends OAuthBase
|
9 |
+
{
|
10 |
+
}
|
app/api/Stripe/Error/OAuth/InvalidGrant.php
ADDED
@@ -0,0 +1,13 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Error\OAuth;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* InvalidGrant is raised when a specified code doesn't exist, is
|
7 |
+
* expired, has been used, or doesn't belong to you; a refresh token doesn't
|
8 |
+
* exist, or doesn't belong to you; or if an API key's mode (live or test)
|
9 |
+
* doesn't match the mode of a code or refresh token.
|
10 |
+
*/
|
11 |
+
class InvalidGrant extends OAuthBase
|
12 |
+
{
|
13 |
+
}
|
app/api/Stripe/Error/OAuth/InvalidRequest.php
ADDED
@@ -0,0 +1,11 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Error\OAuth;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* InvalidRequest is raised when a code, refresh token, or grant type
|
7 |
+
* parameter is not provided, but was required.
|
8 |
+
*/
|
9 |
+
class InvalidRequest extends OAuthBase
|
10 |
+
{
|
11 |
+
}
|
app/api/Stripe/Error/OAuth/InvalidScope.php
ADDED
@@ -0,0 +1,10 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Error\OAuth;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* InvalidScope is raised when an invalid scope parameter is provided.
|
7 |
+
*/
|
8 |
+
class InvalidScope extends OAuthBase
|
9 |
+
{
|
10 |
+
}
|
app/api/Stripe/Error/OAuth/OAuthBase.php
ADDED
@@ -0,0 +1,23 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Error\OAuth;
|
4 |
+
|
5 |
+
class OAuthBase extends \Stripe\Error\Base
|
6 |
+
{
|
7 |
+
public function __construct(
|
8 |
+
$code,
|
9 |
+
$description,
|
10 |
+
$httpStatus = null,
|
11 |
+
$httpBody = null,
|
12 |
+
$jsonBody = null,
|
13 |
+
$httpHeaders = null
|
14 |
+
) {
|
15 |
+
parent::__construct($description, $httpStatus, $httpBody, $jsonBody, $httpHeaders);
|
16 |
+
$this->errorCode = $code;
|
17 |
+
}
|
18 |
+
|
19 |
+
public function getErrorCode()
|
20 |
+
{
|
21 |
+
return $this->errorCode;
|
22 |
+
}
|
23 |
+
}
|
app/api/Stripe/Error/OAuth/UnsupportedGrantType.php
ADDED
@@ -0,0 +1,11 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Error\OAuth;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* UnsupportedGrantType is raised when an unuspported grant type
|
7 |
+
* parameter is specified.
|
8 |
+
*/
|
9 |
+
class UnsupportedGrantType extends OAuthBase
|
10 |
+
{
|
11 |
+
}
|
app/api/Stripe/Error/OAuth/UnsupportedResponseType.php
ADDED
@@ -0,0 +1,11 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Error\OAuth;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* UnsupportedResponseType is raised when an unsupported response type
|
7 |
+
* parameter is specified.
|
8 |
+
*/
|
9 |
+
class UnsupportedResponseType extends OAuthBase
|
10 |
+
{
|
11 |
+
}
|
app/api/Stripe/Error/SignatureVerification.php
ADDED
@@ -0,0 +1,20 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Error;
|
4 |
+
|
5 |
+
class SignatureVerification extends Base
|
6 |
+
{
|
7 |
+
public function __construct(
|
8 |
+
$message,
|
9 |
+
$sigHeader,
|
10 |
+
$httpBody = null
|
11 |
+
) {
|
12 |
+
parent::__construct($message, null, $httpBody, null, null);
|
13 |
+
$this->sigHeader = $sigHeader;
|
14 |
+
}
|
15 |
+
|
16 |
+
public function getSigHeader()
|
17 |
+
{
|
18 |
+
return $this->sigHeader;
|
19 |
+
}
|
20 |
+
}
|
app/api/Stripe/Event.php
CHANGED
@@ -7,37 +7,161 @@ namespace Stripe;
|
|
7 |
Â
*
|
8 |
Â
* @property string $id
|
9 |
Â
* @property string $object
|
Â
|
|
10 |
Â
* @property string $api_version
|
11 |
-
* @property int
|
12 |
-
* @property mixed
|
13 |
-
* @property bool
|
14 |
-
* @property int
|
15 |
-
* @property
|
16 |
Â
* @property string $type
|
17 |
Â
*
|
18 |
Â
* @package Stripe
|
19 |
Â
*/
|
20 |
Â
class Event extends ApiResource
|
21 |
Â
{
|
22 |
-
|
23 |
-
* @param string $id The ID of the event to retrieve.
|
24 |
-
* @param array|string|null $opts
|
25 |
-
*
|
26 |
-
* @return Event
|
27 |
-
*/
|
28 |
-
public static function retrieve($id, $opts = null)
|
29 |
-
{
|
30 |
-
return self::_retrieve($id, $opts);
|
31 |
-
}
|
32 |
Â
|
33 |
Â
/**
|
34 |
-
*
|
35 |
-
* @
|
36 |
-
*
|
37 |
-
* @return Collection of Events
|
38 |
Â
*/
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
43 |
Â
}
|
7 |
Â
*
|
8 |
Â
* @property string $id
|
9 |
Â
* @property string $object
|
10 |
+
* @property string $account
|
11 |
Â
* @property string $api_version
|
12 |
+
* @property int $created
|
13 |
+
* @property mixed $data
|
14 |
+
* @property bool $livemode
|
15 |
+
* @property int $pending_webhooks
|
16 |
+
* @property mixed $request
|
17 |
Â
* @property string $type
|
18 |
Â
*
|
19 |
Â
* @package Stripe
|
20 |
Â
*/
|
21 |
Â
class Event extends ApiResource
|
22 |
Â
{
|
23 |
+
const OBJECT_NAME = "event";
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
24 |
Â
|
25 |
Â
/**
|
26 |
+
* Possible string representations of event types.
|
27 |
+
* @link https://stripe.com/docs/api#event_types
|
Â
|
|
Â
|
|
28 |
Â
*/
|
29 |
+
const ACCOUNT_UPDATED = 'account.updated';
|
30 |
+
const ACCOUNT_APPLICATION_AUTHORIZED = 'account.application.authorized';
|
31 |
+
const ACCOUNT_APPLICATION_DEAUTHORIZED = 'account.application.deauthorized';
|
32 |
+
const ACCOUNT_EXTERNAL_ACCOUNT_CREATED = 'account.external_account.created';
|
33 |
+
const ACCOUNT_EXTERNAL_ACCOUNT_DELETED = 'account.external_account.deleted';
|
34 |
+
const ACCOUNT_EXTERNAL_ACCOUNT_UPDATED = 'account.external_account.updated';
|
35 |
+
const APPLICATION_FEE_CREATED = 'application_fee.created';
|
36 |
+
const APPLICATION_FEE_REFUNDED = 'application_fee.refunded';
|
37 |
+
const APPLICATION_FEE_REFUND_UPDATED = 'application_fee.refund.updated';
|
38 |
+
const BALANCE_AVAILABLE = 'balance.available';
|
39 |
+
const CHARGE_CAPTURED = 'charge.captured';
|
40 |
+
const CHARGE_EXPIRED = 'charge.expired';
|
41 |
+
const CHARGE_FAILED = 'charge.failed';
|
42 |
+
const CHARGE_PENDING = 'charge.pending';
|
43 |
+
const CHARGE_REFUNDED = 'charge.refunded';
|
44 |
+
const CHARGE_SUCCEEDED = 'charge.succeeded';
|
45 |
+
const CHARGE_UPDATED = 'charge.updated';
|
46 |
+
const CHARGE_DISPUTE_CLOSED = 'charge.dispute.closed';
|
47 |
+
const CHARGE_DISPUTE_CREATED = 'charge.dispute.created';
|
48 |
+
const CHARGE_DISPUTE_FUNDS_REINSTATED = 'charge.dispute.funds_reinstated';
|
49 |
+
const CHARGE_DISPUTE_FUNDS_WITHDRAWN = 'charge.dispute.funds_withdrawn';
|
50 |
+
const CHARGE_DISPUTE_UPDATED = 'charge.dispute.updated';
|
51 |
+
const CHARGE_REFUND_UPDATED = 'charge.refund.updated';
|
52 |
+
const CHECKOUT_SESSION_COMPLETED = 'checkout.session.completed';
|
53 |
+
const COUPON_CREATED = 'coupon.created';
|
54 |
+
const COUPON_DELETED = 'coupon.deleted';
|
55 |
+
const COUPON_UPDATED = 'coupon.updated';
|
56 |
+
const CREDIT_NOTE_CREATED = 'credit_note.created';
|
57 |
+
const CREDIT_NOTE_UPDATED = 'credit_note.updated';
|
58 |
+
const CREDIT_NOTE_VOIDED = 'credit_note.voided';
|
59 |
+
const CUSTOMER_CREATED = 'customer.created';
|
60 |
+
const CUSTOMER_DELETED = 'customer.deleted';
|
61 |
+
const CUSTOMER_UPDATED = 'customer.updated';
|
62 |
+
const CUSTOMER_DISCOUNT_CREATED = 'customer.discount.created';
|
63 |
+
const CUSTOMER_DISCOUNT_DELETED = 'customer.discount.deleted';
|
64 |
+
const CUSTOMER_DISCOUNT_UPDATED = 'customer.discount.updated';
|
65 |
+
const CUSTOMER_SOURCE_CREATED = 'customer.source.created';
|
66 |
+
const CUSTOMER_SOURCE_DELETED = 'customer.source.deleted';
|
67 |
+
const CUSTOMER_SOURCE_EXPIRING = 'customer.source.expiring';
|
68 |
+
const CUSTOMER_SOURCE_UPDATED = 'customer.source.updated';
|
69 |
+
const CUSTOMER_SUBSCRIPTION_CREATED = 'customer.subscription.created';
|
70 |
+
const CUSTOMER_SUBSCRIPTION_DELETED = 'customer.subscription.deleted';
|
71 |
+
const CUSTOMER_SUBSCRIPTION_TRIAL_WILL_END = 'customer.subscription.trial_will_end';
|
72 |
+
const CUSTOMER_SUBSCRIPTION_UPDATED = 'customer.subscription.updated';
|
73 |
+
const FILE_CREATED = 'file.created';
|
74 |
+
const INVOICE_CREATED = 'invoice.created';
|
75 |
+
const INVOICE_DELETED = 'invoice.deleted';
|
76 |
+
const INVOICE_FINALIZED = 'invoice.finalized';
|
77 |
+
const INVOICE_MARKED_UNCOLLECTIBLE = 'invoice.marked_uncollectible';
|
78 |
+
const INVOICE_PAYMENT_ACTION_REQUIRED = 'invoice.payment_action_required';
|
79 |
+
const INVOICE_PAYMENT_FAILED = 'invoice.payment_failed';
|
80 |
+
const INVOICE_PAYMENT_SUCCEEDED = 'invoice.payment_succeeded';
|
81 |
+
const INVOICE_SENT = 'invoice.sent';
|
82 |
+
const INVOICE_UPCOMING = 'invoice.upcoming';
|
83 |
+
const INVOICE_UPDATED = 'invoice.updated';
|
84 |
+
const INVOICE_VOIDED = 'invoice.voided';
|
85 |
+
const INVOICEITEM_CREATED = 'invoiceitem.created';
|
86 |
+
const INVOICEITEM_DELETED = 'invoiceitem.deleted';
|
87 |
+
const INVOICEITEM_UPDATED = 'invoiceitem.updated';
|
88 |
+
const ISSUER_FRAUD_RECORD_CREATED = 'issuer_fraud_record.created';
|
89 |
+
const ISSUING_AUTHORIZATION_CREATED = 'issuing_authorization.created';
|
90 |
+
const ISSUING_AUTHORIZATION_REQUEST = 'issuing_authorization.request';
|
91 |
+
const ISSUING_AUTHORIZATION_UPDATED = 'issuing_authorization.updated';
|
92 |
+
const ISSUING_CARD_CREATED = 'issuing_card.created';
|
93 |
+
const ISSUING_CARD_UPDATED = 'issuing_card.updated';
|
94 |
+
const ISSUING_CARDHOLDER_CREATED = 'issuing_cardholder.created';
|
95 |
+
const ISSUING_CARDHOLDER_UPDATED = 'issuing_cardholder.updated';
|
96 |
+
const ISSUING_DISPUTE_CREATED = 'issuing_dispute.created';
|
97 |
+
const ISSUING_DISPUTE_UPDATED = 'issuing_dispute.updated';
|
98 |
+
const ISSUING_TRANSACTION_CREATED = 'issuing_transaction.created';
|
99 |
+
const ISSUING_TRANSACTION_UPDATED = 'issuing_transaction.updated';
|
100 |
+
const ORDER_CREATED = 'order.created';
|
101 |
+
const ORDER_PAYMENT_FAILED = 'order.payment_failed';
|
102 |
+
const ORDER_PAYMENT_SUCCEEDED = 'order.payment_succeeded';
|
103 |
+
const ORDER_UPDATED = 'order.updated';
|
104 |
+
const ORDER_RETURN_CREATED = 'order_return.created';
|
105 |
+
const PAYMENT_INTENT_AMOUNT_CAPTURABLE_UPDATED = 'payment_intent.amount_capturable_updated';
|
106 |
+
const PAYMENT_INTENT_CREATED = 'payment_intent.created';
|
107 |
+
const PAYMENT_INTENT_PAYMENT_FAILED = 'payment_intent.payment_failed';
|
108 |
+
const PAYMENT_INTENT_SUCCEEDED = 'payment_intent.succeeded';
|
109 |
+
const PAYMENT_METHOD_ATTACHED = 'payment_method.attached';
|
110 |
+
const PAYMENT_METHOD_CARD_AUTOMATICALLY_UPDATED = 'payment_method.card_automatically_updated';
|
111 |
+
const PAYMENT_METHOD_DETACHED = 'payment_method.detached';
|
112 |
+
const PAYMENT_METHOD_UPDATED = 'payment_method.updated';
|
113 |
+
const PAYOUT_CANCELED = 'payout.canceled';
|
114 |
+
const PAYOUT_CREATED = 'payout.created';
|
115 |
+
const PAYOUT_FAILED = 'payout.failed';
|
116 |
+
const PAYOUT_PAID = 'payout.paid';
|
117 |
+
const PAYOUT_UPDATED = 'payout.updated';
|
118 |
+
const PERSON_CREATED = 'person.created';
|
119 |
+
const PERSON_DELETED = 'person.deleted';
|
120 |
+
const PERSON_UPDATED = 'person.updated';
|
121 |
+
const PING = 'ping';
|
122 |
+
const PLAN_CREATED = 'plan.created';
|
123 |
+
const PLAN_DELETED = 'plan.deleted';
|
124 |
+
const PLAN_UPDATED = 'plan.updated';
|
125 |
+
const PRODUCT_CREATED = 'product.created';
|
126 |
+
const PRODUCT_DELETED = 'product.deleted';
|
127 |
+
const PRODUCT_UPDATED = 'product.updated';
|
128 |
+
const RECIPIENT_CREATED = 'recipient.created';
|
129 |
+
const RECIPIENT_DELETED = 'recipient.deleted';
|
130 |
+
const RECIPIENT_UPDATED = 'recipient.updated';
|
131 |
+
const REPORTING_REPORT_RUN_FAILED = 'reporting.report_run.failed';
|
132 |
+
const REPORTING_REPORT_RUN_SUCCEEDED = 'reporting.report_run.succeeded';
|
133 |
+
const REPORTING_REPORT_TYPE_UPDATED = 'reporting.report_type.updated';
|
134 |
+
const REVIEW_CLOSED = 'review.closed';
|
135 |
+
const REVIEW_OPENED = 'review.opened';
|
136 |
+
const SIGMA_SCHEDULED_QUERY_RUN_CREATED = 'sigma.scheduled_query_run.created';
|
137 |
+
const SKU_CREATED = 'sku.created';
|
138 |
+
const SKU_DELETED = 'sku.deleted';
|
139 |
+
const SKU_UPDATED = 'sku.updated';
|
140 |
+
const SOURCE_CANCELED = 'source.canceled';
|
141 |
+
const SOURCE_CHARGEABLE = 'source.chargeable';
|
142 |
+
const SOURCE_FAILED = 'source.failed';
|
143 |
+
const SOURCE_MANDATE_NOTIFICATION = 'source.mandate_notification';
|
144 |
+
const SOURCE_REFUND_ATTRIBUTES_REQUIRED = 'source.refund_attributes_required';
|
145 |
+
const SOURCE_TRANSACTION_CREATED = 'source.transaction.created';
|
146 |
+
const SOURCE_TRANSACTION_UPDATED = 'source.transaction.updated';
|
147 |
+
const SUBSCRIPTION_SCHEDULE_ABORTED = 'subscription_schedule.aborted';
|
148 |
+
const SUBSCRIPTION_SCHEDULE_CANCELED = 'subscription_schedule.canceled';
|
149 |
+
const SUBSCRIPTION_SCHEDULE_COMPLETED = 'subscription_schedule.completed';
|
150 |
+
const SUBSCRIPTION_SCHEDULE_CREATED = 'subscription_schedule.created';
|
151 |
+
const SUBSCRIPTION_SCHEDULE_EXPIRING = 'subscription_schedule.expiring';
|
152 |
+
const SUBSCRIPTION_SCHEDULE_RELEASED = 'subscription_schedule.released';
|
153 |
+
const SUBSCRIPTION_SCHEDULE_UPDATED = 'subscription_schedule.updated';
|
154 |
+
const TAX_RATE_CREATED = 'tax_rate.created';
|
155 |
+
const TAX_RATE_UPDATED = 'tax_rate.updated';
|
156 |
+
const TOPUP_CANCELED = 'topup.canceled';
|
157 |
+
const TOPUP_CREATED = 'topup.created';
|
158 |
+
const TOPUP_FAILED = 'topup.failed';
|
159 |
+
const TOPUP_REVERSED = 'topup.reversed';
|
160 |
+
const TOPUP_SUCCEEDED = 'topup.succeeded';
|
161 |
+
const TRANSFER_CREATED = 'transfer.created';
|
162 |
+
const TRANSFER_REVERSED = 'transfer.reversed';
|
163 |
+
const TRANSFER_UPDATED = 'transfer.updated';
|
164 |
+
|
165 |
+
use ApiOperations\All;
|
166 |
+
use ApiOperations\Retrieve;
|
167 |
Â
}
|
app/api/Stripe/ExchangeRate.php
ADDED
@@ -0,0 +1,16 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class ExchangeRate
|
7 |
+
*
|
8 |
+
* @package Stripe
|
9 |
+
*/
|
10 |
+
class ExchangeRate extends ApiResource
|
11 |
+
{
|
12 |
+
const OBJECT_NAME = "exchange_rate";
|
13 |
+
|
14 |
+
use ApiOperations\All;
|
15 |
+
use ApiOperations\Retrieve;
|
16 |
+
}
|
app/api/Stripe/ExternalAccount.php
DELETED
@@ -1,89 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace Stripe;
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Class ExternalAccount
|
7 |
-
*
|
8 |
-
* @package Stripe
|
9 |
-
*/
|
10 |
-
abstract class ExternalAccount extends ApiResource
|
11 |
-
{
|
12 |
-
/**
|
13 |
-
* @return string The instance URL for this resource. It needs to be special
|
14 |
-
* cased because it doesn't fit into the standard resource pattern.
|
15 |
-
*/
|
16 |
-
public function instanceUrl()
|
17 |
-
{
|
18 |
-
$id = $this['id'];
|
19 |
-
if (!$id) {
|
20 |
-
$class = get_class($this);
|
21 |
-
$msg = "Could not determine which URL to request: $class instance "
|
22 |
-
. "has invalid ID: $id";
|
23 |
-
throw new Error\InvalidRequest($msg, null);
|
24 |
-
}
|
25 |
-
|
26 |
-
if ($this['customer']) {
|
27 |
-
$parent = $this['customer'];
|
28 |
-
$base = Customer::classUrl();
|
29 |
-
$path = 'sources';
|
30 |
-
} elseif ($this['account']) {
|
31 |
-
$parent = $this['account'];
|
32 |
-
$base = Account::classUrl();
|
33 |
-
$path = 'external_accounts';
|
34 |
-
} elseif ($this['recipient']) {
|
35 |
-
$parent = $this['recipient'];
|
36 |
-
$base = Recipient::classUrl();
|
37 |
-
$path = 'cards';
|
38 |
-
} else {
|
39 |
-
return null;
|
40 |
-
}
|
41 |
-
|
42 |
-
$parent = Util\Util::utf8($parent);
|
43 |
-
$id = Util\Util::utf8($id);
|
44 |
-
|
45 |
-
$parentExtn = urlencode($parent);
|
46 |
-
$extn = urlencode($id);
|
47 |
-
return "$base/$parentExtn/$path/$extn";
|
48 |
-
}
|
49 |
-
|
50 |
-
/**
|
51 |
-
* @param array|null $params
|
52 |
-
* @param array|string|null $opts
|
53 |
-
*
|
54 |
-
* @return ExternalAccount The deleted external account.
|
55 |
-
*/
|
56 |
-
public function delete($params = null, $opts = null)
|
57 |
-
{
|
58 |
-
return $this->_delete($params, $opts);
|
59 |
-
}
|
60 |
-
|
61 |
-
/**
|
62 |
-
* @param array|string|null $opts
|
63 |
-
*
|
64 |
-
* @return ExternalAccount The saved external account.
|
65 |
-
*/
|
66 |
-
public function save($opts = null)
|
67 |
-
{
|
68 |
-
return $this->_save($opts);
|
69 |
-
}
|
70 |
-
|
71 |
-
/**
|
72 |
-
* @param array|null $params
|
73 |
-
* @param array|string|null $opts
|
74 |
-
*
|
75 |
-
* @return ExternalAccount The verified (or not) external account.
|
76 |
-
*/
|
77 |
-
public function verify($params = null, $opts = null)
|
78 |
-
{
|
79 |
-
if ($this['customer']) {
|
80 |
-
$url = $this->instanceUrl() . '/verify';
|
81 |
-
list($response, $options) = $this->_request('post', $url, $params, $opts);
|
82 |
-
$this->refreshFrom($response, $options);
|
83 |
-
return $this;
|
84 |
-
} else {
|
85 |
-
$message = 'Only customer external accounts can be verified in this manner.';
|
86 |
-
throw new Error\Api($message);
|
87 |
-
}
|
88 |
-
}
|
89 |
-
}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
app/api/Stripe/File.php
ADDED
@@ -0,0 +1,62 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class File
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $created
|
11 |
+
* @property string $filename
|
12 |
+
* @property Collection $links
|
13 |
+
* @property string $purpose
|
14 |
+
* @property int $size
|
15 |
+
* @property string $title
|
16 |
+
* @property string $type
|
17 |
+
* @property string $url
|
18 |
+
*
|
19 |
+
* @package Stripe
|
20 |
+
*/
|
21 |
+
class File extends ApiResource
|
22 |
+
{
|
23 |
+
// This resource can have two different object names. In latter API
|
24 |
+
// versions, only `file` is used, but since stripe-php may be used with
|
25 |
+
// any API version, we need to support deserializing the older
|
26 |
+
// `file_upload` object into the same class.
|
27 |
+
const OBJECT_NAME = "file";
|
28 |
+
const OBJECT_NAME_ALT = "file_upload";
|
29 |
+
|
30 |
+
use ApiOperations\All;
|
31 |
+
use ApiOperations\Create {
|
32 |
+
create as protected _create;
|
33 |
+
}
|
34 |
+
use ApiOperations\Retrieve;
|
35 |
+
|
36 |
+
public static function classUrl()
|
37 |
+
{
|
38 |
+
return '/v1/files';
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* @param array|null $params
|
43 |
+
* @param array|string|null $options
|
44 |
+
*
|
45 |
+
* @return \Stripe\File The created resource.
|
46 |
+
*/
|
47 |
+
public static function create($params = null, $options = null)
|
48 |
+
{
|
49 |
+
$opts = \Stripe\Util\RequestOptions::parse($options);
|
50 |
+
if (is_null($opts->apiBase)) {
|
51 |
+
$opts->apiBase = Stripe::$apiUploadBase;
|
52 |
+
}
|
53 |
+
// Manually flatten params, otherwise curl's multipart encoder will
|
54 |
+
// choke on nested arrays.
|
55 |
+
// TODO: use array_column() once we drop support for PHP 5.4
|
56 |
+
$flatParams = [];
|
57 |
+
foreach (\Stripe\Util\Util::flattenParams($params) as $pair) {
|
58 |
+
$flatParams[$pair[0]] = $pair[1];
|
59 |
+
}
|
60 |
+
return static::_create($flatParams, $opts);
|
61 |
+
}
|
62 |
+
}
|
app/api/Stripe/FileLink.php
ADDED
@@ -0,0 +1,28 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class FileLink
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $created
|
11 |
+
* @property bool $expired
|
12 |
+
* @property int $expires_at
|
13 |
+
* @property string $file
|
14 |
+
* @property bool $livemode
|
15 |
+
* @property StripeObject $metadata
|
16 |
+
* @property string $url
|
17 |
+
*
|
18 |
+
* @package Stripe
|
19 |
+
*/
|
20 |
+
class FileLink extends ApiResource
|
21 |
+
{
|
22 |
+
const OBJECT_NAME = "file_link";
|
23 |
+
|
24 |
+
use ApiOperations\All;
|
25 |
+
use ApiOperations\Create;
|
26 |
+
use ApiOperations\Retrieve;
|
27 |
+
use ApiOperations\Update;
|
28 |
+
}
|
app/api/Stripe/FileUpload.php
CHANGED
@@ -2,60 +2,5 @@
|
|
2 |
Â
|
3 |
Â
namespace Stripe;
|
4 |
Â
|
5 |
-
|
6 |
-
|
7 |
-
*
|
8 |
-
* @property string $id
|
9 |
-
* @property string $object
|
10 |
-
* @property int $created
|
11 |
-
* @property string $purpose
|
12 |
-
* @property int $size
|
13 |
-
* @property string $type
|
14 |
-
*
|
15 |
-
* @package Stripe
|
16 |
-
*/
|
17 |
-
class FileUpload extends ApiResource
|
18 |
-
{
|
19 |
-
public static function baseUrl()
|
20 |
-
{
|
21 |
-
return Stripe::$apiUploadBase;
|
22 |
-
}
|
23 |
-
|
24 |
-
public static function className()
|
25 |
-
{
|
26 |
-
return 'file';
|
27 |
-
}
|
28 |
-
|
29 |
-
/**
|
30 |
-
* @param string $id The ID of the file upload to retrieve.
|
31 |
-
* @param array|string|null $opts
|
32 |
-
*
|
33 |
-
* @return FileUpload
|
34 |
-
*/
|
35 |
-
public static function retrieve($id, $opts = null)
|
36 |
-
{
|
37 |
-
return self::_retrieve($id, $opts);
|
38 |
-
}
|
39 |
-
|
40 |
-
/**
|
41 |
-
* @param array|null $params
|
42 |
-
* @param array|string|null $opts
|
43 |
-
*
|
44 |
-
* @return FileUpload The created file upload.
|
45 |
-
*/
|
46 |
-
public static function create($params = null, $opts = null)
|
47 |
-
{
|
48 |
-
return self::_create($params, $opts);
|
49 |
-
}
|
50 |
-
|
51 |
-
/**
|
52 |
-
* @param array|null $params
|
53 |
-
* @param array|string|null $opts
|
54 |
-
*
|
55 |
-
* @return Collection of FileUploads
|
56 |
-
*/
|
57 |
-
public static function all($params = null, $opts = null)
|
58 |
-
{
|
59 |
-
return self::_all($params, $opts);
|
60 |
-
}
|
61 |
-
}
|
2 |
Â
|
3 |
Â
namespace Stripe;
|
4 |
Â
|
5 |
+
// For backwards compatibility, the `File` class is aliased to `FileUpload`.
|
6 |
+
class_alias('Stripe\\File', 'Stripe\\FileUpload');
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
app/api/Stripe/HttpClient/ClientInterface.php
CHANGED
@@ -11,8 +11,11 @@ interface ClientInterface
|
|
11 |
Â
* @param array $params KV pairs for parameters. Can be nested for arrays and hashes
|
12 |
Â
* @param boolean $hasFile Whether or not $params references a file (via an @ prefix or
|
13 |
Â
* CurlFile)
|
14 |
-
*
|
15 |
-
* @
|
Â
|
|
Â
|
|
Â
|
|
16 |
Â
*/
|
17 |
Â
public function request($method, $absUrl, $headers, $params, $hasFile);
|
18 |
Â
}
|
11 |
Â
* @param array $params KV pairs for parameters. Can be nested for arrays and hashes
|
12 |
Â
* @param boolean $hasFile Whether or not $params references a file (via an @ prefix or
|
13 |
Â
* CurlFile)
|
14 |
+
*
|
15 |
+
* @throws \Stripe\Error\Api
|
16 |
+
* @throws \Stripe\Error\ApiConnection
|
17 |
+
* @return array An array whose first element is raw request body, second
|
18 |
+
* element is HTTP status code and third array of HTTP headers.
|
19 |
Â
*/
|
20 |
Â
public function request($method, $absUrl, $headers, $params, $hasFile);
|
21 |
Â
}
|
app/api/Stripe/HttpClient/CurlClient.php
CHANGED
@@ -22,6 +22,10 @@ if (!defined('CURL_SSLVERSION_TLSv1_2')) {
|
|
22 |
Â
}
|
23 |
Â
// @codingStandardsIgnoreEnd
|
24 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
25 |
Â
class CurlClient implements ClientInterface
|
26 |
Â
{
|
27 |
Â
private static $instance;
|
@@ -36,6 +40,14 @@ class CurlClient implements ClientInterface
|
|
36 |
Â
|
37 |
Â
protected $defaultOptions;
|
38 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
39 |
Â
/**
|
40 |
Â
* CurlClient constructor.
|
41 |
Â
*
|
@@ -49,9 +61,31 @@ class CurlClient implements ClientInterface
|
|
49 |
Â
*
|
50 |
Â
* @param array|callable|null $defaultOptions
|
51 |
Â
*/
|
52 |
-
public function __construct($defaultOptions = null)
|
53 |
Â
{
|
54 |
Â
$this->defaultOptions = $defaultOptions;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
55 |
Â
}
|
56 |
Â
|
57 |
Â
public function getDefaultOptions()
|
@@ -59,6 +93,43 @@ class CurlClient implements ClientInterface
|
|
59 |
Â
return $this->defaultOptions;
|
60 |
Â
}
|
61 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
62 |
Â
// USER DEFINED TIMEOUTS
|
63 |
Â
|
64 |
Â
const DEFAULT_TIMEOUT = 80;
|
@@ -93,10 +164,9 @@ class CurlClient implements ClientInterface
|
|
93 |
Â
|
94 |
Â
public function request($method, $absUrl, $headers, $params, $hasFile)
|
95 |
Â
{
|
96 |
-
$curl = curl_init();
|
97 |
Â
$method = strtolower($method);
|
98 |
Â
|
99 |
-
$opts =
|
100 |
Â
if (is_callable($this->defaultOptions)) { // call defaultOptions callback, set options to return value
|
101 |
Â
$opts = call_user_func_array($this->defaultOptions, func_get_args());
|
102 |
Â
if (!is_array($opts)) {
|
@@ -106,6 +176,8 @@ class CurlClient implements ClientInterface
|
|
106 |
Â
$opts = $this->defaultOptions;
|
107 |
Â
}
|
108 |
Â
|
Â
|
|
Â
|
|
109 |
Â
if ($method == 'get') {
|
110 |
Â
if ($hasFile) {
|
111 |
Â
throw new Error\Api(
|
@@ -114,24 +186,32 @@ class CurlClient implements ClientInterface
|
|
114 |
Â
}
|
115 |
Â
$opts[CURLOPT_HTTPGET] = 1;
|
116 |
Â
if (count($params) > 0) {
|
117 |
-
$encoded =
|
118 |
Â
$absUrl = "$absUrl?$encoded";
|
119 |
Â
}
|
120 |
Â
} elseif ($method == 'post') {
|
121 |
Â
$opts[CURLOPT_POST] = 1;
|
122 |
-
$opts[CURLOPT_POSTFIELDS] = $hasFile ? $params :
|
123 |
Â
} elseif ($method == 'delete') {
|
124 |
Â
$opts[CURLOPT_CUSTOMREQUEST] = 'DELETE';
|
125 |
Â
if (count($params) > 0) {
|
126 |
-
$encoded =
|
127 |
Â
$absUrl = "$absUrl?$encoded";
|
128 |
Â
}
|
129 |
Â
} else {
|
130 |
Â
throw new Error\Api("Unrecognized method $method");
|
131 |
Â
}
|
132 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
133 |
Â
// Create a callback to capture HTTP headers for the response
|
134 |
-
$rheaders =
|
135 |
Â
$headerCallback = function ($curl, $header_line) use (&$rheaders) {
|
136 |
Â
// Ignore the HTTP request line (HTTP/1.1 200 OK)
|
137 |
Â
if (strpos($header_line, ":") === false) {
|
@@ -163,47 +243,70 @@ class CurlClient implements ClientInterface
|
|
163 |
Â
$opts[CURLOPT_TIMEOUT] = $this->timeout;
|
164 |
Â
$opts[CURLOPT_HEADERFUNCTION] = $headerCallback;
|
165 |
Â
$opts[CURLOPT_HTTPHEADER] = $headers;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
166 |
Â
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
if (!defined('CURLE_SSL_CACERT_BADFILE')) {
|
171 |
-
define('CURLE_SSL_CACERT_BADFILE', 77); // constant not defined in PHP
|
172 |
Â
}
|
173 |
Â
|
174 |
-
$
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
187 |
Â
}
|
188 |
Â
|
189 |
Â
if ($rbody === false) {
|
190 |
-
$errno
|
191 |
-
$message = curl_error($curl);
|
192 |
-
curl_close($curl);
|
193 |
-
$this->handleCurlError($absUrl, $errno, $message);
|
194 |
Â
}
|
195 |
Â
|
196 |
-
|
197 |
-
curl_close($curl);
|
198 |
-
return array($rbody, $rcode, $rheaders);
|
199 |
Â
}
|
200 |
Â
|
201 |
Â
/**
|
202 |
-
* @param
|
Â
|
|
203 |
Â
* @param string $message
|
Â
|
|
204 |
Â
* @throws Error\ApiConnection
|
205 |
Â
*/
|
206 |
-
private function handleCurlError($url, $errno, $message)
|
207 |
Â
{
|
208 |
Â
switch ($errno) {
|
209 |
Â
case CURLE_COULDNT_CONNECT:
|
@@ -228,52 +331,130 @@ class CurlClient implements ClientInterface
|
|
228 |
Â
$msg .= " let us know at support@stripe.com.";
|
229 |
Â
|
230 |
Â
$msg .= "\n\n(Network error [errno $errno]: $message)";
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
231 |
Â
throw new Error\ApiConnection($msg);
|
232 |
Â
}
|
233 |
Â
|
234 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
235 |
Â
{
|
236 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
237 |
Â
}
|
238 |
Â
|
239 |
Â
/**
|
240 |
-
*
|
241 |
-
* @param string|null $prefix
|
242 |
-
*
|
243 |
-
* Only public for testability, should not be called outside of CurlClient
|
244 |
-
*
|
245 |
-
* @return string A querystring, essentially.
|
246 |
Â
*/
|
247 |
-
|
248 |
Â
{
|
249 |
-
|
250 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
251 |
Â
}
|
Â
|
|
252 |
Â
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
258 |
Â
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
266 |
Â
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
274 |
Â
}
|
275 |
Â
}
|
276 |
Â
|
277 |
-
return
|
278 |
Â
}
|
279 |
Â
}
|
22 |
Â
}
|
23 |
Â
// @codingStandardsIgnoreEnd
|
24 |
Â
|
25 |
+
if (!defined('CURL_HTTP_VERSION_2TLS')) {
|
26 |
+
define('CURL_HTTP_VERSION_2TLS', 4);
|
27 |
+
}
|
28 |
+
|
29 |
Â
class CurlClient implements ClientInterface
|
30 |
Â
{
|
31 |
Â
private static $instance;
|
40 |
Â
|
41 |
Â
protected $defaultOptions;
|
42 |
Â
|
43 |
+
protected $userAgentInfo;
|
44 |
+
|
45 |
+
protected $enablePersistentConnections = null;
|
46 |
+
|
47 |
+
protected $enableHttp2 = null;
|
48 |
+
|
49 |
+
protected $curlHandle = null;
|
50 |
+
|
51 |
Â
/**
|
52 |
Â
* CurlClient constructor.
|
53 |
Â
*
|
61 |
Â
*
|
62 |
Â
* @param array|callable|null $defaultOptions
|
63 |
Â
*/
|
64 |
+
public function __construct($defaultOptions = null, $randomGenerator = null)
|
65 |
Â
{
|
66 |
Â
$this->defaultOptions = $defaultOptions;
|
67 |
+
$this->randomGenerator = $randomGenerator ?: new Util\RandomGenerator();
|
68 |
+
$this->initUserAgentInfo();
|
69 |
+
|
70 |
+
// TODO: curl_reset requires PHP >= 5.5.0. Once we drop support for PHP 5.4, we can simply
|
71 |
+
// initialize this to true.
|
72 |
+
$this->enablePersistentConnections = function_exists('curl_reset');
|
73 |
+
|
74 |
+
$this->enableHttp2 = $this->canSafelyUseHttp2();
|
75 |
+
}
|
76 |
+
|
77 |
+
public function __destruct()
|
78 |
+
{
|
79 |
+
$this->closeCurlHandle();
|
80 |
+
}
|
81 |
+
|
82 |
+
public function initUserAgentInfo()
|
83 |
+
{
|
84 |
+
$curlVersion = curl_version();
|
85 |
+
$this->userAgentInfo = [
|
86 |
+
'httplib' => 'curl ' . $curlVersion['version'],
|
87 |
+
'ssllib' => $curlVersion['ssl_version'],
|
88 |
+
];
|
89 |
Â
}
|
90 |
Â
|
91 |
Â
public function getDefaultOptions()
|
93 |
Â
return $this->defaultOptions;
|
94 |
Â
}
|
95 |
Â
|
96 |
+
public function getUserAgentInfo()
|
97 |
+
{
|
98 |
+
return $this->userAgentInfo;
|
99 |
+
}
|
100 |
+
|
101 |
+
/**
|
102 |
+
* @return boolean
|
103 |
+
*/
|
104 |
+
public function getEnablePersistentConnections()
|
105 |
+
{
|
106 |
+
return $this->enablePersistentConnections;
|
107 |
+
}
|
108 |
+
|
109 |
+
/**
|
110 |
+
* @param boolean $enable
|
111 |
+
*/
|
112 |
+
public function setEnablePersistentConnections($enable)
|
113 |
+
{
|
114 |
+
$this->enablePersistentConnections = $enable;
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
* @return boolean
|
119 |
+
*/
|
120 |
+
public function getEnableHttp2()
|
121 |
+
{
|
122 |
+
return $this->enableHttp2;
|
123 |
+
}
|
124 |
+
|
125 |
+
/**
|
126 |
+
* @param boolean $enable
|
127 |
+
*/
|
128 |
+
public function setEnableHttp2($enable)
|
129 |
+
{
|
130 |
+
$this->enableHttp2 = $enable;
|
131 |
+
}
|
132 |
+
|
133 |
Â
// USER DEFINED TIMEOUTS
|
134 |
Â
|
135 |
Â
const DEFAULT_TIMEOUT = 80;
|
164 |
Â
|
165 |
Â
public function request($method, $absUrl, $headers, $params, $hasFile)
|
166 |
Â
{
|
Â
|
|
167 |
Â
$method = strtolower($method);
|
168 |
Â
|
169 |
+
$opts = [];
|
170 |
Â
if (is_callable($this->defaultOptions)) { // call defaultOptions callback, set options to return value
|
171 |
Â
$opts = call_user_func_array($this->defaultOptions, func_get_args());
|
172 |
Â
if (!is_array($opts)) {
|
176 |
Â
$opts = $this->defaultOptions;
|
177 |
Â
}
|
178 |
Â
|
179 |
+
$params = Util\Util::objectsToIds($params);
|
180 |
+
|
181 |
Â
if ($method == 'get') {
|
182 |
Â
if ($hasFile) {
|
183 |
Â
throw new Error\Api(
|
186 |
Â
}
|
187 |
Â
$opts[CURLOPT_HTTPGET] = 1;
|
188 |
Â
if (count($params) > 0) {
|
189 |
+
$encoded = Util\Util::encodeParameters($params);
|
190 |
Â
$absUrl = "$absUrl?$encoded";
|
191 |
Â
}
|
192 |
Â
} elseif ($method == 'post') {
|
193 |
Â
$opts[CURLOPT_POST] = 1;
|
194 |
+
$opts[CURLOPT_POSTFIELDS] = $hasFile ? $params : Util\Util::encodeParameters($params);
|
195 |
Â
} elseif ($method == 'delete') {
|
196 |
Â
$opts[CURLOPT_CUSTOMREQUEST] = 'DELETE';
|
197 |
Â
if (count($params) > 0) {
|
198 |
+
$encoded = Util\Util::encodeParameters($params);
|
199 |
Â
$absUrl = "$absUrl?$encoded";
|
200 |
Â
}
|
201 |
Â
} else {
|
202 |
Â
throw new Error\Api("Unrecognized method $method");
|
203 |
Â
}
|
204 |
Â
|
205 |
+
// It is only safe to retry network failures on POST requests if we
|
206 |
+
// add an Idempotency-Key header
|
207 |
+
if (($method == 'post') && (Stripe::$maxNetworkRetries > 0)) {
|
208 |
+
if (!$this->hasHeader($headers, "Idempotency-Key")) {
|
209 |
+
array_push($headers, 'Idempotency-Key: ' . $this->randomGenerator->uuid());
|
210 |
+
}
|
211 |
+
}
|
212 |
+
|
213 |
Â
// Create a callback to capture HTTP headers for the response
|
214 |
+
$rheaders = new Util\CaseInsensitiveArray();
|
215 |
Â
$headerCallback = function ($curl, $header_line) use (&$rheaders) {
|
216 |
Â
// Ignore the HTTP request line (HTTP/1.1 200 OK)
|
217 |
Â
if (strpos($header_line, ":") === false) {
|
243 |
Â
$opts[CURLOPT_TIMEOUT] = $this->timeout;
|
244 |
Â
$opts[CURLOPT_HEADERFUNCTION] = $headerCallback;
|
245 |
Â
$opts[CURLOPT_HTTPHEADER] = $headers;
|
246 |
+
$opts[CURLOPT_CAINFO] = Stripe::getCABundlePath();
|
247 |
+
if (!Stripe::getVerifySslCerts()) {
|
248 |
+
$opts[CURLOPT_SSL_VERIFYPEER] = false;
|
249 |
+
}
|
250 |
Â
|
251 |
+
if (!isset($opts[CURLOPT_HTTP_VERSION]) && $this->getEnableHttp2()) {
|
252 |
+
// For HTTPS requests, enable HTTP/2, if supported
|
253 |
+
$opts[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_2TLS;
|
Â
|
|
Â
|
|
254 |
Â
}
|
255 |
Â
|
256 |
+
list($rbody, $rcode) = $this->executeRequestWithRetries($opts, $absUrl);
|
257 |
+
|
258 |
+
return [$rbody, $rcode, $rheaders];
|
259 |
+
}
|
260 |
+
|
261 |
+
/**
|
262 |
+
* @param array $opts cURL options
|
263 |
+
*/
|
264 |
+
private function executeRequestWithRetries($opts, $absUrl)
|
265 |
+
{
|
266 |
+
$numRetries = 0;
|
267 |
+
|
268 |
+
while (true) {
|
269 |
+
$rcode = 0;
|
270 |
+
$errno = 0;
|
271 |
+
|
272 |
+
$this->resetCurlHandle();
|
273 |
+
curl_setopt_array($this->curlHandle, $opts);
|
274 |
+
$rbody = curl_exec($this->curlHandle);
|
275 |
+
|
276 |
+
if ($rbody === false) {
|
277 |
+
$errno = curl_errno($this->curlHandle);
|
278 |
+
$message = curl_error($this->curlHandle);
|
279 |
+
} else {
|
280 |
+
$rcode = curl_getinfo($this->curlHandle, CURLINFO_HTTP_CODE);
|
281 |
+
}
|
282 |
+
if (!$this->getEnablePersistentConnections()) {
|
283 |
+
$this->closeCurlHandle();
|
284 |
+
}
|
285 |
+
|
286 |
+
if ($this->shouldRetry($errno, $rcode, $numRetries)) {
|
287 |
+
$numRetries += 1;
|
288 |
+
$sleepSeconds = $this->sleepTime($numRetries);
|
289 |
+
usleep(intval($sleepSeconds * 1000000));
|
290 |
+
} else {
|
291 |
+
break;
|
292 |
+
}
|
293 |
Â
}
|
294 |
Â
|
295 |
Â
if ($rbody === false) {
|
296 |
+
$this->handleCurlError($absUrl, $errno, $message, $numRetries);
|
Â
|
|
Â
|
|
Â
|
|
297 |
Â
}
|
298 |
Â
|
299 |
+
return [$rbody, $rcode];
|
Â
|
|
Â
|
|
300 |
Â
}
|
301 |
Â
|
302 |
Â
/**
|
303 |
+
* @param string $url
|
304 |
+
* @param int $errno
|
305 |
Â
* @param string $message
|
306 |
+
* @param int $numRetries
|
307 |
Â
* @throws Error\ApiConnection
|
308 |
Â
*/
|
309 |
+
private function handleCurlError($url, $errno, $message, $numRetries)
|
310 |
Â
{
|
311 |
Â
switch ($errno) {
|
312 |
Â
case CURLE_COULDNT_CONNECT:
|
331 |
Â
$msg .= " let us know at support@stripe.com.";
|
332 |
Â
|
333 |
Â
$msg .= "\n\n(Network error [errno $errno]: $message)";
|
334 |
+
|
335 |
+
if ($numRetries > 0) {
|
336 |
+
$msg .= "\n\nRequest was retried $numRetries times.";
|
337 |
+
}
|
338 |
+
|
339 |
Â
throw new Error\ApiConnection($msg);
|
340 |
Â
}
|
341 |
Â
|
342 |
+
/**
|
343 |
+
* Checks if an error is a problem that we should retry on. This includes both
|
344 |
+
* socket errors that may represent an intermittent problem and some special
|
345 |
+
* HTTP statuses.
|
346 |
+
* @param int $errno
|
347 |
+
* @param int $rcode
|
348 |
+
* @param int $numRetries
|
349 |
+
* @return bool
|
350 |
+
*/
|
351 |
+
private function shouldRetry($errno, $rcode, $numRetries)
|
352 |
Â
{
|
353 |
+
if ($numRetries >= Stripe::getMaxNetworkRetries()) {
|
354 |
+
return false;
|
355 |
+
}
|
356 |
+
|
357 |
+
// Retry on timeout-related problems (either on open or read).
|
358 |
+
if ($errno === CURLE_OPERATION_TIMEOUTED) {
|
359 |
+
return true;
|
360 |
+
}
|
361 |
+
|
362 |
+
// Destination refused the connection, the connection was reset, or a
|
363 |
+
// variety of other connection failures. This could occur from a single
|
364 |
+
// saturated server, so retry in case it's intermittent.
|
365 |
+
if ($errno === CURLE_COULDNT_CONNECT) {
|
366 |
+
return true;
|
367 |
+
}
|
368 |
+
|
369 |
+
// 409 conflict
|
370 |
+
if ($rcode === 409) {
|
371 |
+
return true;
|
372 |
+
}
|
373 |
+
|
374 |
+
return false;
|
375 |
+
}
|
376 |
+
|
377 |
+
private function sleepTime($numRetries)
|
378 |
+
{
|
379 |
+
// Apply exponential backoff with $initialNetworkRetryDelay on the
|
380 |
+
// number of $numRetries so far as inputs. Do not allow the number to exceed
|
381 |
+
// $maxNetworkRetryDelay.
|
382 |
+
$sleepSeconds = min(
|
383 |
+
Stripe::getInitialNetworkRetryDelay() * 1.0 * pow(2, $numRetries - 1),
|
384 |
+
Stripe::getMaxNetworkRetryDelay()
|
385 |
+
);
|
386 |
+
|
387 |
+
// Apply some jitter by randomizing the value in the range of
|
388 |
+
// ($sleepSeconds / 2) to ($sleepSeconds).
|
389 |
+
$sleepSeconds *= 0.5 * (1 + $this->randomGenerator->randFloat());
|
390 |
+
|
391 |
+
// But never sleep less than the base sleep seconds.
|
392 |
+
$sleepSeconds = max(Stripe::getInitialNetworkRetryDelay(), $sleepSeconds);
|
393 |
+
|
394 |
+
return $sleepSeconds;
|
395 |
Â
}
|
396 |
Â
|
397 |
Â
/**
|
398 |
+
* Initializes the curl handle. If already initialized, the handle is closed first.
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
399 |
Â
*/
|
400 |
+
private function initCurlHandle()
|
401 |
Â
{
|
402 |
+
$this->closeCurlHandle();
|
403 |
+
$this->curlHandle = curl_init();
|
404 |
+
}
|
405 |
+
|
406 |
+
/**
|
407 |
+
* Closes the curl handle if initialized. Do nothing if already closed.
|
408 |
+
*/
|
409 |
+
private function closeCurlHandle()
|
410 |
+
{
|
411 |
+
if (!is_null($this->curlHandle)) {
|
412 |
+
curl_close($this->curlHandle);
|
413 |
+
$this->curlHandle = null;
|
414 |
Â
}
|
415 |
+
}
|
416 |
Â
|
417 |
+
/**
|
418 |
+
* Resets the curl handle. If the handle is not already initialized, or if persistent
|
419 |
+
* connections are disabled, the handle is reinitialized instead.
|
420 |
+
*/
|
421 |
+
private function resetCurlHandle()
|
422 |
+
{
|
423 |
+
if (!is_null($this->curlHandle) && $this->getEnablePersistentConnections()) {
|
424 |
+
curl_reset($this->curlHandle);
|
425 |
+
} else {
|
426 |
+
$this->initCurlHandle();
|
427 |
+
}
|
428 |
+
}
|
429 |
Â
|
430 |
+
/**
|
431 |
+
* Indicates whether it is safe to use HTTP/2 or not.
|
432 |
+
*
|
433 |
+
* @return boolean
|
434 |
+
*/
|
435 |
+
private function canSafelyUseHttp2()
|
436 |
+
{
|
437 |
+
// Versions of curl older than 7.60.0 don't respect GOAWAY frames
|
438 |
+
// (cf. https://github.com/curl/curl/issues/2416), which Stripe use.
|
439 |
+
$curlVersion = curl_version()['version'];
|
440 |
+
return (version_compare($curlVersion, '7.60.0') >= 0);
|
441 |
+
}
|
442 |
Â
|
443 |
+
/**
|
444 |
+
* Checks if a list of headers contains a specific header name.
|
445 |
+
*
|
446 |
+
* @param string[] $headers
|
447 |
+
* @param string $name
|
448 |
+
* @return boolean
|
449 |
+
*/
|
450 |
+
private function hasHeader($headers, $name)
|
451 |
+
{
|
452 |
+
foreach ($headers as $header) {
|
453 |
+
if (strncasecmp($header, "{$name}: ", strlen($name) + 2) === 0) {
|
454 |
+
return true;
|
455 |
Â
}
|
456 |
Â
}
|
457 |
Â
|
458 |
+
return false;
|
459 |
Â
}
|
460 |
Â
}
|
app/api/Stripe/HttpClient/data/ca-certificates.crt
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
Â
##
|
2 |
Â
## Bundle of CA Root Certificates
|
3 |
Â
##
|
4 |
-
## Certificate data from Mozilla as of:
|
5 |
Â
##
|
6 |
Â
## This is a bundle of X.509 certificates of public Certificate Authorities
|
7 |
Â
## (CA). These were automatically extracted from Mozilla's root certificates
|
8 |
Â
## file (certdata.txt). This file can be found in the mozilla source tree:
|
9 |
-
##
|
10 |
Â
##
|
11 |
Â
## It contains the certificates in PEM format and therefore
|
12 |
Â
## can be directly used with curl / libcurl / php_curl, or with
|
13 |
Â
## an Apache+mod_ssl webserver for SSL client authentication.
|
14 |
Â
## Just configure this file as the SSLCACertificateFile.
|
15 |
Â
##
|
16 |
-
## Conversion done with mk-ca-bundle.pl version 1.
|
17 |
-
##
|
18 |
Â
##
|
19 |
Â
|
20 |
Â
|
@@ -130,30 +130,6 @@ Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
|
|
130 |
Â
RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
|
131 |
Â
-----END CERTIFICATE-----
|
132 |
Â
|
133 |
-
AddTrust Low-Value Services Root
|
134 |
-
================================
|
135 |
-
-----BEGIN CERTIFICATE-----
|
136 |
-
MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
|
137 |
-
QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU
|
138 |
-
cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw
|
139 |
-
CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO
|
140 |
-
ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB
|
141 |
-
AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6
|
142 |
-
54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr
|
143 |
-
oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1
|
144 |
-
Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui
|
145 |
-
GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w
|
146 |
-
HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD
|
147 |
-
AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT
|
148 |
-
RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw
|
149 |
-
HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt
|
150 |
-
ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph
|
151 |
-
iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
|
152 |
-
eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr
|
153 |
-
mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj
|
154 |
-
ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
|
155 |
-
-----END CERTIFICATE-----
|
156 |
-
|
157 |
Â
AddTrust External Root
|
158 |
Â
======================
|
159 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -178,54 +154,6 @@ e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
|
|
178 |
Â
G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
|
179 |
Â
-----END CERTIFICATE-----
|
180 |
Â
|
181 |
-
AddTrust Public Services Root
|
182 |
-
=============================
|
183 |
-
-----BEGIN CERTIFICATE-----
|
184 |
-
MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
|
185 |
-
QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU
|
186 |
-
cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ
|
187 |
-
BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l
|
188 |
-
dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF
|
189 |
-
AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu
|
190 |
-
nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i
|
191 |
-
d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG
|
192 |
-
Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw
|
193 |
-
HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G
|
194 |
-
A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
|
195 |
-
/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux
|
196 |
-
FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G
|
197 |
-
A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4
|
198 |
-
JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL
|
199 |
-
+YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
|
200 |
-
GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9
|
201 |
-
Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H
|
202 |
-
EufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
|
203 |
-
-----END CERTIFICATE-----
|
204 |
-
|
205 |
-
AddTrust Qualified Certificates Root
|
206 |
-
====================================
|
207 |
-
-----BEGIN CERTIFICATE-----
|
208 |
-
MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
|
209 |
-
QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU
|
210 |
-
cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx
|
211 |
-
CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ
|
212 |
-
IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG
|
213 |
-
9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx
|
214 |
-
64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3
|
215 |
-
KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o
|
216 |
-
L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR
|
217 |
-
wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU
|
218 |
-
MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/
|
219 |
-
BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE
|
220 |
-
BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y
|
221 |
-
azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD
|
222 |
-
ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG
|
223 |
-
GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
|
224 |
-
dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze
|
225 |
-
RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB
|
226 |
-
iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE=
|
227 |
-
-----END CERTIFICATE-----
|
228 |
-
|
229 |
Â
Entrust Root Certification Authority
|
230 |
Â
====================================
|
231 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -252,27 +180,6 @@ W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
|
|
252 |
Â
tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
|
253 |
Â
-----END CERTIFICATE-----
|
254 |
Â
|
255 |
-
RSA Security 2048 v3
|
256 |
-
====================
|
257 |
-
-----BEGIN CERTIFICATE-----
|
258 |
-
MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK
|
259 |
-
ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy
|
260 |
-
MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb
|
261 |
-
BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
|
262 |
-
AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7
|
263 |
-
Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb
|
264 |
-
WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH
|
265 |
-
KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP
|
266 |
-
+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/
|
267 |
-
MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E
|
268 |
-
FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY
|
269 |
-
v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj
|
270 |
-
0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj
|
271 |
-
VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395
|
272 |
-
nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA
|
273 |
-
pKnXwiJPZ9d37CAFYd4=
|
274 |
-
-----END CERTIFICATE-----
|
275 |
-
|
276 |
Â
GeoTrust Global CA
|
277 |
Â
==================
|
278 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -294,27 +201,6 @@ XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
|
|
294 |
Â
Mw==
|
295 |
Â
-----END CERTIFICATE-----
|
296 |
Â
|
297 |
-
GeoTrust Global CA 2
|
298 |
-
====================
|
299 |
-
-----BEGIN CERTIFICATE-----
|
300 |
-
MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
|
301 |
-
R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw
|
302 |
-
MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
|
303 |
-
LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
304 |
-
ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/
|
305 |
-
NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k
|
306 |
-
LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA
|
307 |
-
Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b
|
308 |
-
HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF
|
309 |
-
MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH
|
310 |
-
K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7
|
311 |
-
srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh
|
312 |
-
ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL
|
313 |
-
OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC
|
314 |
-
x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF
|
315 |
-
H4z1Ir+rzoPz4iIprn2DQKi6bA==
|
316 |
-
-----END CERTIFICATE-----
|
317 |
-
|
318 |
Â
GeoTrust Universal CA
|
319 |
Â
=====================
|
320 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -440,56 +326,6 @@ Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
|
|
440 |
Â
12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
|
441 |
Â
-----END CERTIFICATE-----
|
442 |
Â
|
443 |
-
Comodo Secure Services root
|
444 |
-
===========================
|
445 |
-
-----BEGIN CERTIFICATE-----
|
446 |
-
MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
|
447 |
-
R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
|
448 |
-
TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw
|
449 |
-
MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu
|
450 |
-
Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi
|
451 |
-
BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
452 |
-
ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP
|
453 |
-
9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc
|
454 |
-
rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC
|
455 |
-
oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V
|
456 |
-
p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E
|
457 |
-
FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
|
458 |
-
gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj
|
459 |
-
YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm
|
460 |
-
aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm
|
461 |
-
4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
|
462 |
-
Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL
|
463 |
-
DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw
|
464 |
-
pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H
|
465 |
-
RR3B7Hzs/Sk=
|
466 |
-
-----END CERTIFICATE-----
|
467 |
-
|
468 |
-
Comodo Trusted Services root
|
469 |
-
============================
|
470 |
-
-----BEGIN CERTIFICATE-----
|
471 |
-
MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
|
472 |
-
R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
|
473 |
-
TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw
|
474 |
-
MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h
|
475 |
-
bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw
|
476 |
-
IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC
|
477 |
-
AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7
|
478 |
-
3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y
|
479 |
-
/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6
|
480 |
-
juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS
|
481 |
-
ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud
|
482 |
-
DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
|
483 |
-
/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp
|
484 |
-
ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl
|
485 |
-
cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw
|
486 |
-
uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
|
487 |
-
pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA
|
488 |
-
BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l
|
489 |
-
R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O
|
490 |
-
9y5Xt5hwXsjEeLBi
|
491 |
-
-----END CERTIFICATE-----
|
492 |
-
|
493 |
Â
QuoVadis Root CA
|
494 |
Â
================
|
495 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -629,54 +465,6 @@ EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
|
|
629 |
Â
llpwrN9M
|
630 |
Â
-----END CERTIFICATE-----
|
631 |
Â
|
632 |
-
Staat der Nederlanden Root CA
|
633 |
-
=============================
|
634 |
-
-----BEGIN CERTIFICATE-----
|
635 |
-
MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE
|
636 |
-
ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g
|
637 |
-
Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w
|
638 |
-
HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh
|
639 |
-
bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt
|
640 |
-
vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P
|
641 |
-
jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca
|
642 |
-
C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth
|
643 |
-
vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6
|
644 |
-
22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV
|
645 |
-
HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v
|
646 |
-
dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN
|
647 |
-
BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR
|
648 |
-
EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw
|
649 |
-
MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y
|
650 |
-
nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
|
651 |
-
iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
|
652 |
-
-----END CERTIFICATE-----
|
653 |
-
|
654 |
-
UTN USERFirst Hardware Root CA
|
655 |
-
==============================
|
656 |
-
-----BEGIN CERTIFICATE-----
|
657 |
-
MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE
|
658 |
-
BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
|
659 |
-
IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd
|
660 |
-
BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx
|
661 |
-
OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0
|
662 |
-
eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz
|
663 |
-
ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3
|
664 |
-
DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI
|
665 |
-
wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd
|
666 |
-
tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8
|
667 |
-
i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf
|
668 |
-
Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw
|
669 |
-
gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF
|
670 |
-
lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF
|
671 |
-
UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF
|
672 |
-
BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
|
673 |
-
//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW
|
674 |
-
XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2
|
675 |
-
lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn
|
676 |
-
iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67
|
677 |
-
nfhmqA==
|
678 |
-
-----END CERTIFICATE-----
|
679 |
-
|
680 |
Â
Camerfirma Chambers of Commerce Root
|
681 |
Â
====================================
|
682 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -731,41 +519,6 @@ IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
|
|
731 |
Â
t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
|
732 |
Â
-----END CERTIFICATE-----
|
733 |
Â
|
734 |
-
NetLock Notary (Class A) Root
|
735 |
-
=============================
|
736 |
-
-----BEGIN CERTIFICATE-----
|
737 |
-
MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI
|
738 |
-
EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
|
739 |
-
dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j
|
740 |
-
ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX
|
741 |
-
DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH
|
742 |
-
EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD
|
743 |
-
VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz
|
744 |
-
cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM
|
745 |
-
D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ
|
746 |
-
z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC
|
747 |
-
/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7
|
748 |
-
tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6
|
749 |
-
4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG
|
750 |
-
A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC
|
751 |
-
Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv
|
752 |
-
bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
|
753 |
-
IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn
|
754 |
-
LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0
|
755 |
-
ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz
|
756 |
-
IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh
|
757 |
-
IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu
|
758 |
-
b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh
|
759 |
-
bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg
|
760 |
-
Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp
|
761 |
-
bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5
|
762 |
-
ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP
|
763 |
-
ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB
|
764 |
-
CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr
|
765 |
-
KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM
|
766 |
-
8CgHrTwXZoi1/baI
|
767 |
-
-----END CERTIFICATE-----
|
768 |
-
|
769 |
Â
XRamp Global CA Root
|
770 |
Â
====================
|
771 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -909,38 +662,6 @@ CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy
|
|
909 |
Â
+fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS
|
910 |
Â
-----END CERTIFICATE-----
|
911 |
Â
|
912 |
-
Swisscom Root CA 1
|
913 |
-
==================
|
914 |
-
-----BEGIN CERTIFICATE-----
|
915 |
-
MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG
|
916 |
-
EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy
|
917 |
-
dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4
|
918 |
-
MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln
|
919 |
-
aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC
|
920 |
-
IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM
|
921 |
-
MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF
|
922 |
-
NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe
|
923 |
-
AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC
|
924 |
-
b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn
|
925 |
-
7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN
|
926 |
-
cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp
|
927 |
-
WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5
|
928 |
-
haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY
|
929 |
-
MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw
|
930 |
-
HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j
|
931 |
-
BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9
|
932 |
-
MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn
|
933 |
-
jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ
|
934 |
-
MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H
|
935 |
-
VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl
|
936 |
-
vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl
|
937 |
-
OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3
|
938 |
-
1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq
|
939 |
-
nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy
|
940 |
-
x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW
|
941 |
-
NY6E0F/6MBr1mmz0DlP5OlvRHA==
|
942 |
-
-----END CERTIFICATE-----
|
943 |
-
|
944 |
Â
DigiCert Assured ID Root CA
|
945 |
Â
===========================
|
946 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -1298,33 +1019,6 @@ wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
|
|
1298 |
Â
ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
|
1299 |
Â
-----END CERTIFICATE-----
|
1300 |
Â
|
1301 |
-
WellsSecure Public Root Certificate Authority
|
1302 |
-
=============================================
|
1303 |
-
-----BEGIN CERTIFICATE-----
|
1304 |
-
MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM
|
1305 |
-
F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw
|
1306 |
-
NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
|
1307 |
-
MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl
|
1308 |
-
bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD
|
1309 |
-
VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
|
1310 |
-
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1
|
1311 |
-
iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13
|
1312 |
-
i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8
|
1313 |
-
bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB
|
1314 |
-
K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB
|
1315 |
-
AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu
|
1316 |
-
cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm
|
1317 |
-
lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB
|
1318 |
-
i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww
|
1319 |
-
GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg
|
1320 |
-
Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI
|
1321 |
-
K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0
|
1322 |
-
bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj
|
1323 |
-
qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es
|
1324 |
-
E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ
|
1325 |
-
tylv2G0xffX8oRAHh84vWdw+WNs=
|
1326 |
-
-----END CERTIFICATE-----
|
1327 |
-
|
1328 |
Â
COMODO ECC Certification Authority
|
1329 |
Â
==================================
|
1330 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -1342,30 +1036,6 @@ FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
|
|
1342 |
Â
U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
|
1343 |
Â
-----END CERTIFICATE-----
|
1344 |
Â
|
1345 |
-
IGC/A
|
1346 |
-
=====
|
1347 |
-
-----BEGIN CERTIFICATE-----
|
1348 |
-
MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD
|
1349 |
-
VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE
|
1350 |
-
Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy
|
1351 |
-
MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI
|
1352 |
-
EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT
|
1353 |
-
STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB
|
1354 |
-
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2
|
1355 |
-
TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW
|
1356 |
-
So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy
|
1357 |
-
HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd
|
1358 |
-
frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ
|
1359 |
-
tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB
|
1360 |
-
egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC
|
1361 |
-
iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK
|
1362 |
-
q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q
|
1363 |
-
MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
|
1364 |
-
Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI
|
1365 |
-
lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF
|
1366 |
-
0mBWWg==
|
1367 |
-
-----END CERTIFICATE-----
|
1368 |
-
|
1369 |
Â
Security Communication EV RootCA1
|
1370 |
Â
=================================
|
1371 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -1410,46 +1080,6 @@ hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY
|
|
1410 |
Â
okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
|
1411 |
Â
-----END CERTIFICATE-----
|
1412 |
Â
|
1413 |
-
Microsec e-Szigno Root CA
|
1414 |
-
=========================
|
1415 |
-
-----BEGIN CERTIFICATE-----
|
1416 |
-
MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE
|
1417 |
-
BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL
|
1418 |
-
EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0
|
1419 |
-
MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz
|
1420 |
-
dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT
|
1421 |
-
GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
|
1422 |
-
AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG
|
1423 |
-
d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N
|
1424 |
-
oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc
|
1425 |
-
QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ
|
1426 |
-
PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb
|
1427 |
-
MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG
|
1428 |
-
IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD
|
1429 |
-
VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3
|
1430 |
-
LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A
|
1431 |
-
dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn
|
1432 |
-
AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA
|
1433 |
-
4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg
|
1434 |
-
AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA
|
1435 |
-
egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6
|
1436 |
-
Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO
|
1437 |
-
PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv
|
1438 |
-
c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h
|
1439 |
-
cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw
|
1440 |
-
IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT
|
1441 |
-
WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV
|
1442 |
-
MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER
|
1443 |
-
MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp
|
1444 |
-
Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal
|
1445 |
-
HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT
|
1446 |
-
nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE
|
1447 |
-
aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a
|
1448 |
-
86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK
|
1449 |
-
yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB
|
1450 |
-
S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU=
|
1451 |
-
-----END CERTIFICATE-----
|
1452 |
-
|
1453 |
Â
Certigna
|
1454 |
Â
========
|
1455 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -1575,58 +1205,6 @@ LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M
|
|
1575 |
Â
dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
|
1576 |
Â
-----END CERTIFICATE-----
|
1577 |
Â
|
1578 |
-
Buypass Class 2 CA 1
|
1579 |
-
====================
|
1580 |
-
-----BEGIN CERTIFICATE-----
|
1581 |
-
MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
|
1582 |
-
QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2
|
1583 |
-
MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
|
1584 |
-
c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI
|
1585 |
-
hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M
|
1586 |
-
cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83
|
1587 |
-
0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4
|
1588 |
-
0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R
|
1589 |
-
uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC
|
1590 |
-
MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P
|
1591 |
-
AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV
|
1592 |
-
1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt
|
1593 |
-
7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2
|
1594 |
-
fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w
|
1595 |
-
wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
|
1596 |
-
-----END CERTIFICATE-----
|
1597 |
-
|
1598 |
-
EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
|
1599 |
-
==========================================================================
|
1600 |
-
-----BEGIN CERTIFICATE-----
|
1601 |
-
MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNVBAMML0VCRyBF
|
1602 |
-
bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMTcwNQYDVQQKDC5FQkcg
|
1603 |
-
QmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXptZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAe
|
1604 |
-
Fw0wNjA4MTcwMDIxMDlaFw0xNjA4MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25p
|
1605 |
-
ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2lt
|
1606 |
-
IFRla25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIiMA0GCSqG
|
1607 |
-
SIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h4fuXd7hxlugTlkaDT7by
|
1608 |
-
X3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAktiHq6yOU/im/+4mRDGSaBUorzAzu8T2b
|
1609 |
-
gmmkTPiab+ci2hC6X5L8GCcKqKpE+i4stPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfr
|
1610 |
-
eYteIAbTdgtsApWjluTLdlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZ
|
1611 |
-
TqNGFav4c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8UmTDGy
|
1612 |
-
Y5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z+kI2sSXFCjEmN1Zn
|
1613 |
-
uqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0OLna9XvNRiYuoP1Vzv9s6xiQFlpJI
|
1614 |
-
qkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMWOeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vm
|
1615 |
-
ExH8nYQKE3vwO9D8owrXieqWfo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0
|
1616 |
-
Nokb+Clsi7n2l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
|
1617 |
-
/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgwFoAU587GT/wW
|
1618 |
-
Z5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+8ygjdsZs93/mQJ7ANtyVDR2t
|
1619 |
-
FcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgm
|
1620 |
-
zJNSroIBk5DKd8pNSe/iWtkqvTDOTLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64k
|
1621 |
-
XPBfrAowzIpAoHMEwfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqT
|
1622 |
-
bCmYIai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJnxk1Gj7sU
|
1623 |
-
RT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4QDgZxGhBM/nV+/x5XOULK
|
1624 |
-
1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9qKd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt
|
1625 |
-
2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11thie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQ
|
1626 |
-
Y9iJSrSq3RZj9W6+YKH47ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9
|
1627 |
-
AahH3eU7QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT
|
1628 |
-
-----END CERTIFICATE-----
|
1629 |
-
|
1630 |
Â
certSIGN ROOT CA
|
1631 |
Â
================
|
1632 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -1647,49 +1225,6 @@ vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
|
|
1647 |
Â
TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
|
1648 |
Â
-----END CERTIFICATE-----
|
1649 |
Â
|
1650 |
-
CNNIC ROOT
|
1651 |
-
==========
|
1652 |
-
-----BEGIN CERTIFICATE-----
|
1653 |
-
MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE
|
1654 |
-
ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw
|
1655 |
-
OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw
|
1656 |
-
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD
|
1657 |
-
o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz
|
1658 |
-
VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT
|
1659 |
-
VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or
|
1660 |
-
czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK
|
1661 |
-
y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC
|
1662 |
-
wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S
|
1663 |
-
lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5
|
1664 |
-
Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM
|
1665 |
-
O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8
|
1666 |
-
BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2
|
1667 |
-
G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m
|
1668 |
-
mxE=
|
1669 |
-
-----END CERTIFICATE-----
|
1670 |
-
|
1671 |
-
ApplicationCA - Japanese Government
|
1672 |
-
===================================
|
1673 |
-
-----BEGIN CERTIFICATE-----
|
1674 |
-
MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT
|
1675 |
-
SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw
|
1676 |
-
MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl
|
1677 |
-
cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
1678 |
-
CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4
|
1679 |
-
fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN
|
1680 |
-
wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE
|
1681 |
-
jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu
|
1682 |
-
nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU
|
1683 |
-
WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV
|
1684 |
-
BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD
|
1685 |
-
vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs
|
1686 |
-
o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g
|
1687 |
-
/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD
|
1688 |
-
io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW
|
1689 |
-
dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL
|
1690 |
-
rosot4LKGAfmt1t06SAZf7IbiVQ=
|
1691 |
-
-----END CERTIFICATE-----
|
1692 |
-
|
1693 |
Â
GeoTrust Primary Certification Authority - G3
|
1694 |
Â
=============================================
|
1695 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -1821,7 +1356,7 @@ AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
|
|
1821 |
Â
-----END CERTIFICATE-----
|
1822 |
Â
|
1823 |
Â
NetLock Arany (Class Gold) FÅ‘tanúsÃtvány
|
1824 |
-
|
1825 |
Â
-----BEGIN CERTIFICATE-----
|
1826 |
Â
MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
|
1827 |
Â
A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
|
@@ -1876,58 +1411,6 @@ IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm
|
|
1876 |
Â
66+KAQ==
|
1877 |
Â
-----END CERTIFICATE-----
|
1878 |
Â
|
1879 |
-
CA Disig
|
1880 |
-
========
|
1881 |
-
-----BEGIN CERTIFICATE-----
|
1882 |
-
MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMK
|
1883 |
-
QnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwHhcNMDYw
|
1884 |
-
MzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlz
|
1885 |
-
bGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3
|
1886 |
-
DQEBAQUAA4IBDwAwggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgm
|
1887 |
-
GErENx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnXmjxUizkD
|
1888 |
-
Pw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYDXcDtab86wYqg6I7ZuUUo
|
1889 |
-
hwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhWS8+2rT+MitcE5eN4TPWGqvWP+j1scaMt
|
1890 |
-
ymfraHtuM6kMgiioTGohQBUgDCZbg8KpFhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8w
|
1891 |
-
gfwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0P
|
1892 |
-
AQH/BAQDAgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cuZGlz
|
1893 |
-
aWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5zay9jYS9jcmwvY2Ff
|
1894 |
-
ZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2svY2EvY3JsL2NhX2Rpc2lnLmNybDAa
|
1895 |
-
BgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEwDQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59t
|
1896 |
-
WDYcPQuBDRIrRhCA/ec8J9B6yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3
|
1897 |
-
mkkp7M5+cTxqEEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/
|
1898 |
-
CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeBEicTXxChds6K
|
1899 |
-
ezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFNPGO+I++MzVpQuGhU+QqZMxEA
|
1900 |
-
4Z7CRneC9VkGjCFMhwnN5ag=
|
1901 |
-
-----END CERTIFICATE-----
|
1902 |
-
|
1903 |
-
Juur-SK
|
1904 |
-
=======
|
1905 |
-
-----BEGIN CERTIFICATE-----
|
1906 |
-
MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA
|
1907 |
-
c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw
|
1908 |
-
DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG
|
1909 |
-
SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy
|
1910 |
-
aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
1911 |
-
ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf
|
1912 |
-
TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC
|
1913 |
-
+Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw
|
1914 |
-
UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa
|
1915 |
-
Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF
|
1916 |
-
MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD
|
1917 |
-
HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh
|
1918 |
-
AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA
|
1919 |
-
cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr
|
1920 |
-
AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw
|
1921 |
-
cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE
|
1922 |
-
FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G
|
1923 |
-
A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo
|
1924 |
-
ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL
|
1925 |
-
abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678
|
1926 |
-
IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh
|
1927 |
-
Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2
|
1928 |
-
yyqcjg==
|
1929 |
-
-----END CERTIFICATE-----
|
1930 |
-
|
1931 |
Â
Hongkong Post Root CA 1
|
1932 |
Â
=======================
|
1933 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -2361,7 +1844,7 @@ Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
|
|
2361 |
Â
-----END CERTIFICATE-----
|
2362 |
Â
|
2363 |
Â
Certinomis - Autorité Racine
|
2364 |
-
|
2365 |
Â
-----BEGIN CERTIFICATE-----
|
2366 |
Â
MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
|
2367 |
Â
Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg
|
@@ -2391,41 +1874,6 @@ wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/
|
|
2391 |
Â
vgt2Fl43N+bYdJeimUV5
|
2392 |
Â
-----END CERTIFICATE-----
|
2393 |
Â
|
2394 |
-
Root CA Generalitat Valenciana
|
2395 |
-
==============================
|
2396 |
-
-----BEGIN CERTIFICATE-----
|
2397 |
-
MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE
|
2398 |
-
ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290
|
2399 |
-
IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3
|
2400 |
-
WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE
|
2401 |
-
CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G
|
2402 |
-
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2
|
2403 |
-
F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B
|
2404 |
-
ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ
|
2405 |
-
D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte
|
2406 |
-
JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB
|
2407 |
-
AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n
|
2408 |
-
dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB
|
2409 |
-
ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl
|
2410 |
-
AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA
|
2411 |
-
YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy
|
2412 |
-
AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA
|
2413 |
-
aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt
|
2414 |
-
AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA
|
2415 |
-
YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu
|
2416 |
-
AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA
|
2417 |
-
OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0
|
2418 |
-
dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV
|
2419 |
-
BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G
|
2420 |
-
A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S
|
2421 |
-
b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh
|
2422 |
-
TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz
|
2423 |
-
Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63
|
2424 |
-
NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH
|
2425 |
-
iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt
|
2426 |
-
+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
|
2427 |
-
-----END CERTIFICATE-----
|
2428 |
-
|
2429 |
Â
TWCA Root Certification Authority
|
2430 |
Â
=================================
|
2431 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -2871,93 +2319,6 @@ poLWccret9W6aAjtmcz9opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3Y
|
|
2871 |
Â
eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km
|
2872 |
Â
-----END CERTIFICATE-----
|
2873 |
Â
|
2874 |
-
China Internet Network Information Center EV Certificates Root
|
2875 |
-
==============================================================
|
2876 |
-
-----BEGIN CERTIFICATE-----
|
2877 |
-
MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCQ04xMjAwBgNV
|
2878 |
-
BAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyMUcwRQYDVQQDDD5D
|
2879 |
-
aGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMg
|
2880 |
-
Um9vdDAeFw0xMDA4MzEwNzExMjVaFw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAG
|
2881 |
-
A1UECgwpQ2hpbmEgSW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMM
|
2882 |
-
PkNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRpZmljYXRl
|
2883 |
-
cyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z7r07eKpkQ0H1UN+U8i6y
|
2884 |
-
jUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV
|
2885 |
-
98YPjUesWgbdYavi7NifFy2cyjw1l1VxzUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2H
|
2886 |
-
klY0bBoQCxfVWhyXWIQ8hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23
|
2887 |
-
KzhmBsUs4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54ugQEC
|
2888 |
-
7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oYNJKiyoOCWTAPBgNV
|
2889 |
-
HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfHJLOcfA22KlT5uqGDSSosqD
|
2890 |
-
glkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd5
|
2891 |
-
0XPFtQO3WKwMVC/GVhMPMdoG52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM
|
2892 |
-
7+czV0I664zBechNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws
|
2893 |
-
ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrIzo9uoV1/A3U0
|
2894 |
-
5K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATywy39FCqQmbkHzJ8=
|
2895 |
-
-----END CERTIFICATE-----
|
2896 |
-
|
2897 |
-
Swisscom Root CA 2
|
2898 |
-
==================
|
2899 |
-
-----BEGIN CERTIFICATE-----
|
2900 |
-
MIIF2TCCA8GgAwIBAgIQHp4o6Ejy5e/DfEoeWhhntjANBgkqhkiG9w0BAQsFADBkMQswCQYDVQQG
|
2901 |
-
EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy
|
2902 |
-
dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMjAeFw0xMTA2MjQwODM4MTRaFw0zMTA2
|
2903 |
-
MjUwNzM4MTRaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln
|
2904 |
-
aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAyMIIC
|
2905 |
-
IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlUJOhJ1R5tMJ6HJaI2nbeHCOFvErjw0DzpPM
|
2906 |
-
LgAIe6szjPTpQOYXTKueuEcUMncy3SgM3hhLX3af+Dk7/E6J2HzFZ++r0rk0X2s682Q2zsKwzxNo
|
2907 |
-
ysjL67XiPS4h3+os1OD5cJZM/2pYmLcX5BtS5X4HAB1f2uY+lQS3aYg5oUFgJWFLlTloYhyxCwWJ
|
2908 |
-
wDaCFCE/rtuh/bxvHGCGtlOUSbkrRsVPACu/obvLP+DHVxxX6NZp+MEkUp2IVd3Chy50I9AU/SpH
|
2909 |
-
Wrumnf2U5NGKpV+GY3aFy6//SSj8gO1MedK75MDvAe5QQQg1I3ArqRa0jG6F6bYRzzHdUyYb3y1a
|
2910 |
-
SgJA/MTAtukxGggo5WDDH8SQjhBiYEQN7Aq+VRhxLKX0srwVYv8c474d2h5Xszx+zYIdkeNL6yxS
|
2911 |
-
NLCK/RJOlrDrcH+eOfdmQrGrrFLadkBXeyq96G4DsguAhYidDMfCd7Camlf0uPoTXGiTOmekl9Ab
|
2912 |
-
mbeGMktg2M7v0Ax/lZ9vh0+Hio5fCHyqW/xavqGRn1V9TrALacywlKinh/LTSlDcX3KwFnUey7QY
|
2913 |
-
Ypqwpzmqm59m2I2mbJYV4+by+PGDYmy7Velhk6M99bFXi08jsJvllGov34zflVEpYKELKeRcVVi3
|
2914 |
-
qPyZ7iVNTA6z00yPhOgpD/0QVAKFyPnlw4vP5w8CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw
|
2915 |
-
HQYDVR0hBBYwFDASBgdghXQBUwIBBgdghXQBUwIBMBIGA1UdEwEB/wQIMAYBAf8CAQcwHQYDVR0O
|
2916 |
-
BBYEFE0mICKJS9PVpAqhb97iEoHF8TwuMB8GA1UdIwQYMBaAFE0mICKJS9PVpAqhb97iEoHF8Twu
|
2917 |
-
MA0GCSqGSIb3DQEBCwUAA4ICAQAyCrKkG8t9voJXiblqf/P0wS4RfbgZPnm3qKhyN2abGu2sEzsO
|
2918 |
-
v2LwnN+ee6FTSA5BesogpxcbtnjsQJHzQq0Qw1zv/2BZf82Fo4s9SBwlAjxnffUy6S8w5X2lejjQ
|
2919 |
-
82YqZh6NM4OKb3xuqFp1mrjX2lhIREeoTPpMSQpKwhI3qEAMw8jh0FcNlzKVxzqfl9NX+Ave5XLz
|
2920 |
-
o9v/tdhZsnPdTSpxsrpJ9csc1fV5yJmz/MFMdOO0vSk3FQQoHt5FRnDsr7p4DooqzgB53MBfGWcs
|
2921 |
-
a0vvaGgLQ+OswWIJ76bdZWGgr4RVSJFSHMYlkSrQwSIjYVmvRRGFHQEkNI/Ps/8XciATwoCqISxx
|
2922 |
-
OQ7Qj1zB09GOInJGTB2Wrk9xseEFKZZZ9LuedT3PDTcNYtsmjGOpI99nBjx8Oto0QuFmtEYE3saW
|
2923 |
-
mA9LSHokMnWRn6z3aOkquVVlzl1h0ydw2Df+n7mvoC5Wt6NlUe07qxS/TFED6F+KBZvuim6c779o
|
2924 |
-
+sjaC+NCydAXFJy3SuCvkychVSa1ZC+N8f+mQAWFBVzKBxlcCxMoTFh/wqXvRdpg065lYZ1Tg3TC
|
2925 |
-
rvJcwhbtkj6EPnNgiLx29CzP0H1907he0ZESEOnN3col49XtmS++dYFLJPlFRpTJKSFTnCZFqhMX
|
2926 |
-
5OfNeOI5wSsSnqaeG8XmDtkx2Q==
|
2927 |
-
-----END CERTIFICATE-----
|
2928 |
-
|
2929 |
-
Swisscom Root EV CA 2
|
2930 |
-
=====================
|
2931 |
-
-----BEGIN CERTIFICATE-----
|
2932 |
-
MIIF4DCCA8igAwIBAgIRAPL6ZOJ0Y9ON/RAdBB92ylgwDQYJKoZIhvcNAQELBQAwZzELMAkGA1UE
|
2933 |
-
BhMCY2gxETAPBgNVBAoTCFN3aXNzY29tMSUwIwYDVQQLExxEaWdpdGFsIENlcnRpZmljYXRlIFNl
|
2934 |
-
cnZpY2VzMR4wHAYDVQQDExVTd2lzc2NvbSBSb290IEVWIENBIDIwHhcNMTEwNjI0MDk0NTA4WhcN
|
2935 |
-
MzEwNjI1MDg0NTA4WjBnMQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsT
|
2936 |
-
HERpZ2l0YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxHjAcBgNVBAMTFVN3aXNzY29tIFJvb3QgRVYg
|
2937 |
-
Q0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMT3HS9X6lds93BdY7BxUglgRCgz
|
2938 |
-
o3pOCvrY6myLURYaVa5UJsTMRQdBTxB5f3HSek4/OE6zAMaVylvNwSqD1ycfMQ4jFrclyxy0uYAy
|
2939 |
-
Xhqdk/HoPGAsp15XGVhRXrwsVgu42O+LgrQ8uMIkqBPHoCE2G3pXKSinLr9xJZDzRINpUKTk4Rti
|
2940 |
-
GZQJo/PDvO/0vezbE53PnUgJUmfANykRHvvSEaeFGHR55E+FFOtSN+KxRdjMDUN/rhPSays/p8Li
|
2941 |
-
qG12W0OfvrSdsyaGOx9/5fLoZigWJdBLlzin5M8J0TbDC77aO0RYjb7xnglrPvMyxyuHxuxenPaH
|
2942 |
-
Za0zKcQvidm5y8kDnftslFGXEBuGCxobP/YCfnvUxVFkKJ3106yDgYjTdLRZncHrYTNaRdHLOdAG
|
2943 |
-
alNgHa/2+2m8atwBz735j9m9W8E6X47aD0upm50qKGsaCnw8qyIL5XctcfaCNYGu+HuB5ur+rPQa
|
2944 |
-
m3Rc6I8k9l2dRsQs0h4rIWqDJ2dVSqTjyDKXZpBy2uPUZC5f46Fq9mDU5zXNysRojddxyNMkM3Ox
|
2945 |
-
bPlq4SjbX8Y96L5V5jcb7STZDxmPX2MYWFCBUWVv8p9+agTnNCRxunZLWB4ZvRVgRaoMEkABnRDi
|
2946 |
-
xzgHcgplwLa7JSnaFp6LNYth7eVxV4O1PHGf40+/fh6Bn0GXAgMBAAGjgYYwgYMwDgYDVR0PAQH/
|
2947 |
-
BAQDAgGGMB0GA1UdIQQWMBQwEgYHYIV0AVMCAgYHYIV0AVMCAjASBgNVHRMBAf8ECDAGAQH/AgED
|
2948 |
-
MB0GA1UdDgQWBBRF2aWBbj2ITY1x0kbBbkUe88SAnTAfBgNVHSMEGDAWgBRF2aWBbj2ITY1x0kbB
|
2949 |
-
bkUe88SAnTANBgkqhkiG9w0BAQsFAAOCAgEAlDpzBp9SSzBc1P6xXCX5145v9Ydkn+0UjrgEjihL
|
2950 |
-
j6p7jjm02Vj2e6E1CqGdivdj5eu9OYLU43otb98TPLr+flaYC/NUn81ETm484T4VvwYmneTwkLbU
|
2951 |
-
wp4wLh/vx3rEUMfqe9pQy3omywC0Wqu1kx+AiYQElY2NfwmTv9SoqORjbdlk5LgpWgi/UOGED1V7
|
2952 |
-
XwgiG/W9mR4U9s70WBCCswo9GcG/W6uqmdjyMb3lOGbcWAXH7WMaLgqXfIeTK7KK4/HsGOV1timH
|
2953 |
-
59yLGn602MnTihdsfSlEvoqq9X46Lmgxk7lq2prg2+kupYTNHAq4Sgj5nPFhJpiTt3tm7JFe3VE/
|
2954 |
-
23MPrQRYCd0EApUKPtN236YQHoA96M2kZNEzx5LH4k5E4wnJTsJdhw4Snr8PyQUQ3nqjsTzyP6Wq
|
2955 |
-
J3mtMX0f/fwZacXduT98zca0wjAefm6S139hdlqP65VNvBFuIXxZN5nQBrz5Bm0yFqXZaajh3DyA
|
2956 |
-
HmBR3NdUIR7KYndP+tiPsys6DXhyyWhBWkdKwqPrGtcKqzwyVcgKEZzfdNbwQBUdyLmPtTbFr/gi
|
2957 |
-
uMod89a2GQ+fYWVq6nTIfI/DT11lgh/ZDYnadXL77/FHZxOzyNEZiCcmmpl5fx7kLD977vHeTYuW
|
2958 |
-
l8PVP3wbI+2ksx0WckNLIOFZfsLorSa/ovc=
|
2959 |
-
-----END CERTIFICATE-----
|
2960 |
-
|
2961 |
Â
CA Disig Root R1
|
2962 |
Â
================
|
2963 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -3756,7 +3117,7 @@ ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
|
|
3756 |
Â
-----END CERTIFICATE-----
|
3757 |
Â
|
3758 |
Â
TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5
|
3759 |
-
|
3760 |
Â
-----BEGIN CERTIFICATE-----
|
3761 |
Â
MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN
|
3762 |
Â
BgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
|
@@ -3779,30 +3140,6 @@ lpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CFYv4HAqGEVka+lgqaE9chTLd8
|
|
3779 |
Â
B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU=
|
3780 |
Â
-----END CERTIFICATE-----
|
3781 |
Â
|
3782 |
-
TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H6
|
3783 |
-
=========================================================
|
3784 |
-
-----BEGIN CERTIFICATE-----
|
3785 |
-
MIIEJjCCAw6gAwIBAgIGfaHyZeyKMA0GCSqGSIb3DQEBCwUAMIGxMQswCQYDVQQGEwJUUjEPMA0G
|
3786 |
-
A1UEBwwGQW5rYXJhMU0wSwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
|
3787 |
-
acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBF
|
3788 |
-
bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg2MB4XDTEzMTIxODA5
|
3789 |
-
MDQxMFoXDTIzMTIxNjA5MDQxMFowgbExCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExTTBL
|
3790 |
-
BgNVBAoMRFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBCaWxpxZ9pbSBHw7x2ZW5sacSf
|
3791 |
-
aSBIaXptZXRsZXJpIEEuxZ4uMUIwQAYDVQQDDDlUw5xSS1RSVVNUIEVsZWt0cm9uaWsgU2VydGlm
|
3792 |
-
aWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLEgSDYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
|
3793 |
-
AoIBAQCdsGjW6L0UlqMACprx9MfMkU1xeHe59yEmFXNRFpQJRwXiM/VomjX/3EsvMsew7eKC5W/a
|
3794 |
-
2uqsxgbPJQ1BgfbBOCK9+bGlprMBvD9QFyv26WZV1DOzXPhDIHiTVRZwGTLmiddk671IUP320EED
|
3795 |
-
wnS3/faAz1vFq6TWlRKb55cTMgPp1KtDWxbtMyJkKbbSk60vbNg9tvYdDjTu0n2pVQ8g9P0pu5Fb
|
3796 |
-
HH3GQjhtQiht1AH7zYiXSX6484P4tZgvsycLSF5W506jM7NE1qXyGJTtHB6plVxiSvgNZ1GpryHV
|
3797 |
-
+DKdeboaX+UEVU0TRv/yz3THGmNtwx8XEsMeED5gCLMxAgMBAAGjQjBAMB0GA1UdDgQWBBTdVRcT
|
3798 |
-
9qzoSCHK77Wv0QAy7Z6MtTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
|
3799 |
-
9w0BAQsFAAOCAQEAb1gNl0OqFlQ+v6nfkkU/hQu7VtMMUszIv3ZnXuaqs6fvuay0EBQNdH49ba3R
|
3800 |
-
fdCaqaXKGDsCQC4qnFAUi/5XfldcEQlLNkVS9z2sFP1E34uXI9TDwe7UU5X+LEr+DXCqu4svLcsy
|
3801 |
-
o4LyVN/Y8t3XSHLuSqMplsNEzm61kod2pLv0kmzOLBQJZo6NrRa1xxsJYTvjIKIDgI6tflEATseW
|
3802 |
-
hvtDmHd9KMeP2Cpu54Rvl0EpABZeTeIT6lnAY2c6RPuY/ATTMHKm9ocJV612ph1jmv3XZch4gyt1
|
3803 |
-
O6VbuA1df74jrlZVlFjvH4GMKrLN5ptjnhi85WsGtAuYSyher4hYyw==
|
3804 |
-
-----END CERTIFICATE-----
|
3805 |
-
|
3806 |
Â
Certinomis - Root CA
|
3807 |
Â
====================
|
3808 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -3892,28 +3229,418 @@ Daupn75OcsqF1NnstTJFGG+rrQIwfcf3aWMvoeGY7xMQ0Xk/0f7qO3/eVvSQsRUR2LIiFdAvwyYu
|
|
3892 |
Â
a/GRspBl9JrmkO5K
|
3893 |
Â
-----END CERTIFICATE-----
|
3894 |
Â
|
3895 |
-
|
3896 |
-
|
3897 |
-
|
3898 |
-
|
3899 |
-
|
3900 |
-
|
3901 |
-
|
3902 |
-
|
3903 |
-
|
3904 |
-
|
3905 |
-
|
3906 |
-
|
3907 |
-
|
3908 |
-
|
3909 |
-
|
3910 |
-
|
3911 |
-
|
3912 |
-
|
3913 |
-
|
3914 |
-
|
3915 |
-
|
3916 |
-
|
3917 |
-
|
3918 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
3919 |
Â
-----END CERTIFICATE-----
|
1 |
Â
##
|
2 |
Â
## Bundle of CA Root Certificates
|
3 |
Â
##
|
4 |
+
## Certificate data from Mozilla as of: Wed Sep 20 03:12:05 2017 GMT
|
5 |
Â
##
|
6 |
Â
## This is a bundle of X.509 certificates of public Certificate Authorities
|
7 |
Â
## (CA). These were automatically extracted from Mozilla's root certificates
|
8 |
Â
## file (certdata.txt). This file can be found in the mozilla source tree:
|
9 |
+
## https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt
|
10 |
Â
##
|
11 |
Â
## It contains the certificates in PEM format and therefore
|
12 |
Â
## can be directly used with curl / libcurl / php_curl, or with
|
13 |
Â
## an Apache+mod_ssl webserver for SSL client authentication.
|
14 |
Â
## Just configure this file as the SSLCACertificateFile.
|
15 |
Â
##
|
16 |
+
## Conversion done with mk-ca-bundle.pl version 1.27.
|
17 |
+
## SHA256: 2b2dbe5244e0047e088c597998883a913f6c5fffd1cb5c0fe5a368c8466cb2ec
|
18 |
Â
##
|
19 |
Â
|
20 |
Â
|
130 |
Â
RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
|
131 |
Â
-----END CERTIFICATE-----
|
132 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
133 |
Â
AddTrust External Root
|
134 |
Â
======================
|
135 |
Â
-----BEGIN CERTIFICATE-----
|
154 |
Â
G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
|
155 |
Â
-----END CERTIFICATE-----
|
156 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
157 |
Â
Entrust Root Certification Authority
|
158 |
Â
====================================
|
159 |
Â
-----BEGIN CERTIFICATE-----
|
180 |
Â
tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
|
181 |
Â
-----END CERTIFICATE-----
|
182 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
183 |
Â
GeoTrust Global CA
|
184 |
Â
==================
|
185 |
Â
-----BEGIN CERTIFICATE-----
|
201 |
Â
Mw==
|
202 |
Â
-----END CERTIFICATE-----
|
203 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
204 |
Â
GeoTrust Universal CA
|
205 |
Â
=====================
|
206 |
Â
-----BEGIN CERTIFICATE-----
|
326 |
Â
12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
|
327 |
Â
-----END CERTIFICATE-----
|
328 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
329 |
Â
QuoVadis Root CA
|
330 |
Â
================
|
331 |
Â
-----BEGIN CERTIFICATE-----
|
465 |
Â
llpwrN9M
|
466 |
Â
-----END CERTIFICATE-----
|
467 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
468 |
Â
Camerfirma Chambers of Commerce Root
|
469 |
Â
====================================
|
470 |
Â
-----BEGIN CERTIFICATE-----
|
519 |
Â
t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
|
520 |
Â
-----END CERTIFICATE-----
|
521 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
522 |
Â
XRamp Global CA Root
|
523 |
Â
====================
|
524 |
Â
-----BEGIN CERTIFICATE-----
|
662 |
Â
+fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS
|
663 |
Â
-----END CERTIFICATE-----
|
664 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
665 |
Â
DigiCert Assured ID Root CA
|
666 |
Â
===========================
|
667 |
Â
-----BEGIN CERTIFICATE-----
|
1019 |
Â
ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
|
1020 |
Â
-----END CERTIFICATE-----
|
1021 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1022 |
Â
COMODO ECC Certification Authority
|
1023 |
Â
==================================
|
1024 |
Â
-----BEGIN CERTIFICATE-----
|
1036 |
Â
U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
|
1037 |
Â
-----END CERTIFICATE-----
|
1038 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1039 |
Â
Security Communication EV RootCA1
|
1040 |
Â
=================================
|
1041 |
Â
-----BEGIN CERTIFICATE-----
|
1080 |
Â
okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
|
1081 |
Â
-----END CERTIFICATE-----
|
1082 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1083 |
Â
Certigna
|
1084 |
Â
========
|
1085 |
Â
-----BEGIN CERTIFICATE-----
|
1205 |
Â
dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
|
1206 |
Â
-----END CERTIFICATE-----
|
1207 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1208 |
Â
certSIGN ROOT CA
|
1209 |
Â
================
|
1210 |
Â
-----BEGIN CERTIFICATE-----
|
1225 |
Â
TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
|
1226 |
Â
-----END CERTIFICATE-----
|
1227 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1228 |
Â
GeoTrust Primary Certification Authority - G3
|
1229 |
Â
=============================================
|
1230 |
Â
-----BEGIN CERTIFICATE-----
|
1356 |
Â
-----END CERTIFICATE-----
|
1357 |
Â
|
1358 |
Â
NetLock Arany (Class Gold) FÅ‘tanúsÃtvány
|
1359 |
+
========================================
|
1360 |
Â
-----BEGIN CERTIFICATE-----
|
1361 |
Â
MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
|
1362 |
Â
A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
|
1411 |
Â
66+KAQ==
|
1412 |
Â
-----END CERTIFICATE-----
|
1413 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1414 |
Â
Hongkong Post Root CA 1
|
1415 |
Â
=======================
|
1416 |
Â
-----BEGIN CERTIFICATE-----
|
1844 |
Â
-----END CERTIFICATE-----
|
1845 |
Â
|
1846 |
Â
Certinomis - Autorité Racine
|
1847 |
+
============================
|
1848 |
Â
-----BEGIN CERTIFICATE-----
|
1849 |
Â
MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
|
1850 |
Â
Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg
|
1874 |
Â
vgt2Fl43N+bYdJeimUV5
|
1875 |
Â
-----END CERTIFICATE-----
|
1876 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1877 |
Â
TWCA Root Certification Authority
|
1878 |
Â
=================================
|
1879 |
Â
-----BEGIN CERTIFICATE-----
|
2319 |
Â
eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km
|
2320 |
Â
-----END CERTIFICATE-----
|
2321 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
2322 |
Â
CA Disig Root R1
|
2323 |
Â
================
|
2324 |
Â
-----BEGIN CERTIFICATE-----
|
3117 |
Â
-----END CERTIFICATE-----
|
3118 |
Â
|
3119 |
Â
TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5
|
3120 |
+
====================================================
|
3121 |
Â
-----BEGIN CERTIFICATE-----
|
3122 |
Â
MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN
|
3123 |
Â
BgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
|
3140 |
Â
B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU=
|
3141 |
Â
-----END CERTIFICATE-----
|
3142 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
3143 |
Â
Certinomis - Root CA
|
3144 |
Â
====================
|
3145 |
Â
-----BEGIN CERTIFICATE-----
|
3229 |
Â
a/GRspBl9JrmkO5K
|
3230 |
Â
-----END CERTIFICATE-----
|
3231 |
Â
|
3232 |
+
SZAFIR ROOT CA2
|
3233 |
+
===============
|
3234 |
+
-----BEGIN CERTIFICATE-----
|
3235 |
+
MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQELBQAwUTELMAkG
|
3236 |
+
A1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4xGDAWBgNV
|
3237 |
+
BAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkwNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJ
|
3238 |
+
BgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYD
|
3239 |
+
VQQDDA9TWkFGSVIgUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5Q
|
3240 |
+
qEvNQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT3PSQ1hNK
|
3241 |
+
DJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw3gAeqDRHu5rr/gsUvTaE
|
3242 |
+
2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr63fE9biCloBK0TXC5ztdyO4mTp4CEHCdJ
|
3243 |
+
ckm1/zuVnsHMyAHs6A6KCpbns6aH5db5BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwi
|
3244 |
+
ieDhZNRnvDF5YTy7ykHNXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P
|
3245 |
+
AQH/BAQDAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsFAAOC
|
3246 |
+
AQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw8PRBEew/R40/cof5
|
3247 |
+
O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOGnXkZ7/e7DDWQw4rtTw/1zBLZpD67
|
3248 |
+
oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCPoky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul
|
3249 |
+
4+vJhaAlIDf7js4MNIThPIGyd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6
|
3250 |
+
+/NNIxuZMzSgLvWpCz/UXeHPhJ/iGcJfitYgHuNztw==
|
3251 |
+
-----END CERTIFICATE-----
|
3252 |
+
|
3253 |
+
Certum Trusted Network CA 2
|
3254 |
+
===========================
|
3255 |
+
-----BEGIN CERTIFICATE-----
|
3256 |
+
MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UE
|
3257 |
+
BhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1
|
3258 |
+
bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29y
|
3259 |
+
ayBDQSAyMCIYDzIwMTExMDA2MDgzOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQ
|
3260 |
+
TDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENl
|
3261 |
+
cnRpZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENB
|
3262 |
+
IDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWADGSdhhuWZGc/IjoedQF9
|
3263 |
+
7/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+o
|
3264 |
+
CgCXhVqqndwpyeI1B+twTUrWwbNWuKFBOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40b
|
3265 |
+
Rr5HMNUuctHFY9rnY3lEfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2p
|
3266 |
+
uTRZCr+ESv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1mo130
|
3267 |
+
GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02isx7QBlrd9pPPV3WZ
|
3268 |
+
9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOWOZV7bIBaTxNyxtd9KXpEulKkKtVB
|
3269 |
+
Rgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgezTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pye
|
3270 |
+
hizKV/Ma5ciSixqClnrDvFASadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vM
|
3271 |
+
BhBgu4M1t15n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
|
3272 |
+
AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI
|
3273 |
+
hvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQF/xlhMcQSZDe28cmk4gmb3DW
|
3274 |
+
Al45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTfCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuA
|
3275 |
+
L55MYIR4PSFk1vtBHxgP58l1cb29XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMo
|
3276 |
+
clm2q8KMZiYcdywmdjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tM
|
3277 |
+
pkT/WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jbAoJnwTnb
|
3278 |
+
w3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksqP/ujmv5zMnHCnsZy4Ypo
|
3279 |
+
J/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Kob7a6bINDd82Kkhehnlt4Fj1F4jNy3eFm
|
3280 |
+
ypnTycUm/Q1oBEauttmbjL4ZvrHG8hnjXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLX
|
3281 |
+
is7VmFxWlgPF7ncGNf/P5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7
|
3282 |
+
zAYspsbiDrW5viSP
|
3283 |
+
-----END CERTIFICATE-----
|
3284 |
+
|
3285 |
+
Hellenic Academic and Research Institutions RootCA 2015
|
3286 |
+
=======================================================
|
3287 |
+
-----BEGIN CERTIFICATE-----
|
3288 |
+
MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcT
|
3289 |
+
BkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0
|
3290 |
+
aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl
|
3291 |
+
YXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAx
|
3292 |
+
MTIxWjCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMg
|
3293 |
+
QWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNV
|
3294 |
+
BAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIw
|
3295 |
+
MTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDC+Kk/G4n8PDwEXT2QNrCROnk8Zlrv
|
3296 |
+
bTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+eh
|
3297 |
+
iGsxr/CL0BgzuNtFajT0AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+
|
3298 |
+
6PAQZe104S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06CojXd
|
3299 |
+
FPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV9Cz82XBST3i4vTwr
|
3300 |
+
i5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrDgfgXy5I2XdGj2HUb4Ysn6npIQf1F
|
3301 |
+
GQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2
|
3302 |
+
fu/Z8VFRfS0myGlZYeCsargqNhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9mu
|
3303 |
+
iNX6hME6wGkoLfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc
|
3304 |
+
Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
|
3305 |
+
AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVdctA4GGqd83EkVAswDQYJKoZI
|
3306 |
+
hvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0IXtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+
|
3307 |
+
D1hYc2Ryx+hFjtyp8iY/xnmMsVMIM4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrM
|
3308 |
+
d/K4kPFox/la/vot9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+y
|
3309 |
+
d+2VZ5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/eaj8GsGsVn
|
3310 |
+
82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnhX9izjFk0WaSrT2y7Hxjb
|
3311 |
+
davYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQl033DlZdwJVqwjbDG2jJ9SrcR5q+ss7F
|
3312 |
+
Jej6A7na+RZukYT1HCjI/CbM1xyQVqdfbzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVt
|
3313 |
+
J94Cj8rDtSvK6evIIVM4pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGa
|
3314 |
+
JI7ZjnHKe7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0vm9q
|
3315 |
+
p/UsQu0yrbYhnr68
|
3316 |
+
-----END CERTIFICATE-----
|
3317 |
+
|
3318 |
+
Hellenic Academic and Research Institutions ECC RootCA 2015
|
3319 |
+
===========================================================
|
3320 |
+
-----BEGIN CERTIFICATE-----
|
3321 |
+
MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0
|
3322 |
+
aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u
|
3323 |
+
cyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj
|
3324 |
+
aCBJbnN0aXR1dGlvbnMgRUNDIFJvb3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEw
|
3325 |
+
MzcxMlowgaoxCzAJBgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmlj
|
3326 |
+
IEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUQwQgYD
|
3327 |
+
VQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIEVDQyBSb290
|
3328 |
+
Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKgQehLgoRc4vgxEZmGZE4JJS+dQS8KrjVP
|
3329 |
+
dJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJajq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoK
|
3330 |
+
Vlp8aQuqgAkkbH7BRqNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
|
3331 |
+
BBYEFLQiC4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaeplSTA
|
3332 |
+
GiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7SofTUwJCA3sS61kFyjn
|
3333 |
+
dc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR
|
3334 |
+
-----END CERTIFICATE-----
|
3335 |
+
|
3336 |
+
Certplus Root CA G1
|
3337 |
+
===================
|
3338 |
+
-----BEGIN CERTIFICATE-----
|
3339 |
+
MIIFazCCA1OgAwIBAgISESBVg+QtPlRWhS2DN7cs3EYRMA0GCSqGSIb3DQEBDQUAMD4xCzAJBgNV
|
3340 |
+
BAYTAkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMTAe
|
3341 |
+
Fw0xNDA1MjYwMDAwMDBaFw0zODAxMTUwMDAwMDBaMD4xCzAJBgNVBAYTAkZSMREwDwYDVQQKDAhD
|
3342 |
+
ZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMTCCAiIwDQYJKoZIhvcNAQEBBQAD
|
3343 |
+
ggIPADCCAgoCggIBANpQh7bauKk+nWT6VjOaVj0W5QOVsjQcmm1iBdTYj+eJZJ+622SLZOZ5KmHN
|
3344 |
+
r49aiZFluVj8tANfkT8tEBXgfs+8/H9DZ6itXjYj2JizTfNDnjl8KvzsiNWI7nC9hRYt6kuJPKNx
|
3345 |
+
Qv4c/dMcLRC4hlTqQ7jbxofaqK6AJc96Jh2qkbBIb6613p7Y1/oA/caP0FG7Yn2ksYyy/yARujVj
|
3346 |
+
BYZHYEMzkPZHogNPlk2dT8Hq6pyi/jQu3rfKG3akt62f6ajUeD94/vI4CTYd0hYCyOwqaK/1jpTv
|
3347 |
+
LRN6HkJKHRUxrgwEV/xhc/MxVoYxgKDEEW4wduOU8F8ExKyHcomYxZ3MVwia9Az8fXoFOvpHgDm2
|
3348 |
+
z4QTd28n6v+WZxcIbekN1iNQMLAVdBM+5S//Ds3EC0pd8NgAM0lm66EYfFkuPSi5YXHLtaW6uOrc
|
3349 |
+
4nBvCGrch2c0798wct3zyT8j/zXhviEpIDCB5BmlIOklynMxdCm+4kLV87ImZsdo/Rmz5yCTmehd
|
3350 |
+
4F6H50boJZwKKSTUzViGUkAksnsPmBIgJPaQbEfIDbsYIC7Z/fyL8inqh3SV4EJQeIQEQWGw9CEj
|
3351 |
+
jy3LKCHyamz0GqbFFLQ3ZU+V/YDI+HLlJWvEYLF7bY5KinPOWftwenMGE9nTdDckQQoRb5fc5+R+
|
3352 |
+
ob0V8rqHDz1oihYHAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0G
|
3353 |
+
A1UdDgQWBBSowcCbkahDFXxdBie0KlHYlwuBsTAfBgNVHSMEGDAWgBSowcCbkahDFXxdBie0KlHY
|
3354 |
+
lwuBsTANBgkqhkiG9w0BAQ0FAAOCAgEAnFZvAX7RvUz1isbwJh/k4DgYzDLDKTudQSk0YcbX8ACh
|
3355 |
+
66Ryj5QXvBMsdbRX7gp8CXrc1cqh0DQT+Hern+X+2B50ioUHj3/MeXrKls3N/U/7/SMNkPX0XtPG
|
3356 |
+
YX2eEeAC7gkE2Qfdpoq3DIMku4NQkv5gdRE+2J2winq14J2by5BSS7CTKtQ+FjPlnsZlFT5kOwQ/
|
3357 |
+
2wyPX1wdaR+v8+khjPPvl/aatxm2hHSco1S1cE5j2FddUyGbQJJD+tZ3VTNPZNX70Cxqjm0lpu+F
|
3358 |
+
6ALEUz65noe8zDUa3qHpimOHZR4RKttjd5cUvpoUmRGywO6wT/gUITJDT5+rosuoD6o7BlXGEilX
|
3359 |
+
CNQ314cnrUlZp5GrRHpejXDbl85IULFzk/bwg2D5zfHhMf1bfHEhYxQUqq/F3pN+aLHsIqKqkHWe
|
3360 |
+
tUNy6mSjhEv9DKgma3GX7lZjZuhCVPnHHd/Qj1vfyDBviP4NxDMcU6ij/UgQ8uQKTuEVV/xuZDDC
|
3361 |
+
VRHc6qnNSlSsKWNEz0pAoNZoWRsz+e86i9sgktxChL8Bq4fA1SCC28a5g4VCXA9DO2pJNdWY9BW/
|
3362 |
+
+mGBDAkgGNLQFwzLSABQ6XaCjGTXOqAHVcweMcDvOrRl++O/QmueD6i9a5jc2NvLi6Td11n0bt3+
|
3363 |
+
qsOR0C5CB8AMTVPNJLFMWx5R9N/pkvo=
|
3364 |
+
-----END CERTIFICATE-----
|
3365 |
+
|
3366 |
+
Certplus Root CA G2
|
3367 |
+
===================
|
3368 |
+
-----BEGIN CERTIFICATE-----
|
3369 |
+
MIICHDCCAaKgAwIBAgISESDZkc6uo+jF5//pAq/Pc7xVMAoGCCqGSM49BAMDMD4xCzAJBgNVBAYT
|
3370 |
+
AkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMjAeFw0x
|
3371 |
+
NDA1MjYwMDAwMDBaFw0zODAxMTUwMDAwMDBaMD4xCzAJBgNVBAYTAkZSMREwDwYDVQQKDAhDZXJ0
|
3372 |
+
cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMjB2MBAGByqGSM49AgEGBSuBBAAiA2IA
|
3373 |
+
BM0PW1aC3/BFGtat93nwHcmsltaeTpwftEIRyoa/bfuFo8XlGVzX7qY/aWfYeOKmycTbLXku54uN
|
3374 |
+
Am8xIk0G42ByRZ0OQneezs/lf4WbGOT8zC5y0xaTTsqZY1yhBSpsBqNjMGEwDgYDVR0PAQH/BAQD
|
3375 |
+
AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNqDYwJ5jtpMxjwjFNiPwyCrKGBZMB8GA1Ud
|
3376 |
+
IwQYMBaAFNqDYwJ5jtpMxjwjFNiPwyCrKGBZMAoGCCqGSM49BAMDA2gAMGUCMHD+sAvZ94OX7PNV
|
3377 |
+
HdTcswYO/jOYnYs5kGuUIe22113WTNchp+e/IQ8rzfcq3IUHnQIxAIYUFuXcsGXCwI4Un78kFmjl
|
3378 |
+
vPl5adytRSv3tjFzzAalU5ORGpOucGpnutee5WEaXw==
|
3379 |
+
-----END CERTIFICATE-----
|
3380 |
+
|
3381 |
+
OpenTrust Root CA G1
|
3382 |
+
====================
|
3383 |
+
-----BEGIN CERTIFICATE-----
|
3384 |
+
MIIFbzCCA1egAwIBAgISESCzkFU5fX82bWTCp59rY45nMA0GCSqGSIb3DQEBCwUAMEAxCzAJBgNV
|
3385 |
+
BAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5UcnVzdCBSb290IENBIEcx
|
3386 |
+
MB4XDTE0MDUyNjA4NDU1MFoXDTM4MDExNTAwMDAwMFowQDELMAkGA1UEBhMCRlIxEjAQBgNVBAoM
|
3387 |
+
CU9wZW5UcnVzdDEdMBsGA1UEAwwUT3BlblRydXN0IFJvb3QgQ0EgRzEwggIiMA0GCSqGSIb3DQEB
|
3388 |
+
AQUAA4ICDwAwggIKAoICAQD4eUbalsUwXopxAy1wpLuwxQjczeY1wICkES3d5oeuXT2R0odsN7fa
|
3389 |
+
Yp6bwiTXj/HbpqbfRm9RpnHLPhsxZ2L3EVs0J9V5ToybWL0iEA1cJwzdMOWo010hOHQX/uMftk87
|
3390 |
+
ay3bfWAfjH1MBcLrARYVmBSO0ZB3Ij/swjm4eTrwSSTilZHcYTSSjFR077F9jAHiOH3BX2pfJLKO
|
3391 |
+
YheteSCtqx234LSWSE9mQxAGFiQD4eCcjsZGT44ameGPuY4zbGneWK2gDqdkVBFpRGZPTBKnjix9
|
3392 |
+
xNRbxQA0MMHZmf4yzgeEtE7NCv82TWLxp2NX5Ntqp66/K7nJ5rInieV+mhxNaMbBGN4zK1FGSxyO
|
3393 |
+
9z0M+Yo0FMT7MzUj8czxKselu7Cizv5Ta01BG2Yospb6p64KTrk5M0ScdMGTHPjgniQlQ/GbI4Kq
|
3394 |
+
3ywgsNw2TgOzfALU5nsaqocTvz6hdLubDuHAk5/XpGbKuxs74zD0M1mKB3IDVedzagMxbm+WG+Oi
|
3395 |
+
n6+Sx+31QrclTDsTBM8clq8cIqPQqwWyTBIjUtz9GVsnnB47ev1CI9sjgBPwvFEVVJSmdz7QdFG9
|
3396 |
+
URQIOTfLHzSpMJ1ShC5VkLG631UAC9hWLbFJSXKAqWLXwPYYEQRVzXR7z2FwefR7LFxckvzluFqr
|
3397 |
+
TJOVoSfupb7PcSNCupt2LQIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
|
3398 |
+
/zAdBgNVHQ4EFgQUl0YhVyE12jZVx/PxN3DlCPaTKbYwHwYDVR0jBBgwFoAUl0YhVyE12jZVx/Px
|
3399 |
+
N3DlCPaTKbYwDQYJKoZIhvcNAQELBQADggIBAB3dAmB84DWn5ph76kTOZ0BP8pNuZtQ5iSas000E
|
3400 |
+
PLuHIT839HEl2ku6q5aCgZG27dmxpGWX4m9kWaSW7mDKHyP7Rbr/jyTwyqkxf3kfgLMtMrpkZ2Cv
|
3401 |
+
uVnN35pJ06iCsfmYlIrM4LvgBBuZYLFGZdwIorJGnkSI6pN+VxbSFXJfLkur1J1juONI5f6ELlgK
|
3402 |
+
n0Md/rcYkoZDSw6cMoYsYPXpSOqV7XAp8dUv/TW0V8/bhUiZucJvbI/NeJWsZCj9VrDDb8O+WVLh
|
3403 |
+
X4SPgPL0DTatdrOjteFkdjpY3H1PXlZs5VVZV6Xf8YpmMIzUUmI4d7S+KNfKNsSbBfD4Fdvb8e80
|
3404 |
+
nR14SohWZ25g/4/Ii+GOvUKpMwpZQhISKvqxnUOOBZuZ2mKtVzazHbYNeS2WuOvyDEsMpZTGMKcm
|
3405 |
+
GS3tTAZQMPH9WD25SxdfGbRqhFS0OE85og2WaMMolP3tLR9Ka0OWLpABEPs4poEL0L9109S5zvE/
|
3406 |
+
bw4cHjdx5RiHdRk/ULlepEU0rbDK5uUTdg8xFKmOLZTW1YVNcxVPS/KyPu1svf0OnWZzsD2097+o
|
3407 |
+
4BGkxK51CUpjAEggpsadCwmKtODmzj7HPiY46SvepghJAwSQiumPv+i2tCqjI40cHLI5kqiPAlxA
|
3408 |
+
OXXUc0ECd97N4EOH1uS6SsNsEn/+KuYj1oxx
|
3409 |
+
-----END CERTIFICATE-----
|
3410 |
+
|
3411 |
+
OpenTrust Root CA G2
|
3412 |
+
====================
|
3413 |
+
-----BEGIN CERTIFICATE-----
|
3414 |
+
MIIFbzCCA1egAwIBAgISESChaRu/vbm9UpaPI+hIvyYRMA0GCSqGSIb3DQEBDQUAMEAxCzAJBgNV
|
3415 |
+
BAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5UcnVzdCBSb290IENBIEcy
|
3416 |
+
MB4XDTE0MDUyNjAwMDAwMFoXDTM4MDExNTAwMDAwMFowQDELMAkGA1UEBhMCRlIxEjAQBgNVBAoM
|
3417 |
+
CU9wZW5UcnVzdDEdMBsGA1UEAwwUT3BlblRydXN0IFJvb3QgQ0EgRzIwggIiMA0GCSqGSIb3DQEB
|
3418 |
+
AQUAA4ICDwAwggIKAoICAQDMtlelM5QQgTJT32F+D3Y5z1zCU3UdSXqWON2ic2rxb95eolq5cSG+
|
3419 |
+
Ntmh/LzubKh8NBpxGuga2F8ORAbtp+Dz0mEL4DKiltE48MLaARf85KxP6O6JHnSrT78eCbY2albz
|
3420 |
+
4e6WiWYkBuTNQjpK3eCasMSCRbP+yatcfD7J6xcvDH1urqWPyKwlCm/61UWY0jUJ9gNDlP7ZvyCV
|
3421 |
+
eYCYitmJNbtRG6Q3ffyZO6v/v6wNj0OxmXsWEH4db0fEFY8ElggGQgT4hNYdvJGmQr5J1WqIP7wt
|
3422 |
+
UdGejeBSzFfdNTVY27SPJIjki9/ca1TSgSuyzpJLHB9G+h3Ykst2Z7UJmQnlrBcUVXDGPKBWCgOz
|
3423 |
+
3GIZ38i1MH/1PCZ1Eb3XG7OHngevZXHloM8apwkQHZOJZlvoPGIytbU6bumFAYueQ4xncyhZW+vj
|
3424 |
+
3CzMpSZyYhK05pyDRPZRpOLAeiRXyg6lPzq1O4vldu5w5pLeFlwoW5cZJ5L+epJUzpM5ChaHvGOz
|
3425 |
+
9bGTXOBut9Dq+WIyiET7vycotjCVXRIouZW+j1MY5aIYFuJWpLIsEPUdN6b4t/bQWVyJ98LVtZR0
|
3426 |
+
0dX+G7bw5tYee9I8y6jj9RjzIR9u701oBnstXW5DiabA+aC/gh7PU3+06yzbXfZqfUAkBXKJOAGT
|
3427 |
+
y3HCOV0GEfZvePg3DTmEJwIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
|
3428 |
+
/zAdBgNVHQ4EFgQUajn6QiL35okATV59M4PLuG53hq8wHwYDVR0jBBgwFoAUajn6QiL35okATV59
|
3429 |
+
M4PLuG53hq8wDQYJKoZIhvcNAQENBQADggIBAJjLq0A85TMCl38th6aP1F5Kr7ge57tx+4BkJamz
|
3430 |
+
Gj5oXScmp7oq4fBXgwpkTx4idBvpkF/wrM//T2h6OKQQbA2xx6R3gBi2oihEdqc0nXGEL8pZ0keI
|
3431 |
+
mUEiyTCYYW49qKgFbdEfwFFEVn8nNQLdXpgKQuswv42hm1GqO+qTRmTFAHneIWv2V6CG1wZy7HBG
|
3432 |
+
S4tz3aAhdT7cHcCP009zHIXZ/n9iyJVvttN7jLpTwm+bREx50B1ws9efAvSyB7DH5fitIw6mVskp
|
3433 |
+
EndI2S9G/Tvw/HRwkqWOOAgfZDC2t0v7NqwQjqBSM2OdAzVWxWm9xiNaJ5T2pBL4LTM8oValX9YZ
|
3434 |
+
6e18CL13zSdkzJTaTkZQh+D5wVOAHrut+0dSixv9ovneDiK3PTNZbNTe9ZUGMg1RGUFcPk8G97kr
|
3435 |
+
gCf2o6p6fAbhQ8MTOWIaNr3gKC6UAuQpLmBVrkA9sHSSXvAgZJY/X0VdiLWK2gKgW0VU3jg9CcCo
|
3436 |
+
SmVGFvyqv1ROTVu+OEO3KMqLM6oaJbolXCkvW0pujOotnCr2BXbgd5eAiN1nE28daCSLT7d0geX0
|
3437 |
+
YJ96Vdc+N9oWaz53rK4YcJUIeSkDiv7BO7M/Gg+kO14fWKGVyasvc0rQLW6aWQ9VGHgtPFGml4vm
|
3438 |
+
u7JwqkwR3v98KzfUetF3NI/n+UL3PIEMS1IK
|
3439 |
+
-----END CERTIFICATE-----
|
3440 |
+
|
3441 |
+
OpenTrust Root CA G3
|
3442 |
+
====================
|
3443 |
+
-----BEGIN CERTIFICATE-----
|
3444 |
+
MIICITCCAaagAwIBAgISESDm+Ez8JLC+BUCs2oMbNGA/MAoGCCqGSM49BAMDMEAxCzAJBgNVBAYT
|
3445 |
+
AkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5UcnVzdCBSb290IENBIEczMB4X
|
3446 |
+
DTE0MDUyNjAwMDAwMFoXDTM4MDExNTAwMDAwMFowQDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCU9w
|
3447 |
+
ZW5UcnVzdDEdMBsGA1UEAwwUT3BlblRydXN0IFJvb3QgQ0EgRzMwdjAQBgcqhkjOPQIBBgUrgQQA
|
3448 |
+
IgNiAARK7liuTcpm3gY6oxH84Bjwbhy6LTAMidnW7ptzg6kjFYwvWYpa3RTqnVkrQ7cG7DK2uu5B
|
3449 |
+
ta1doYXM6h0UZqNnfkbilPPntlahFVmhTzeXuSIevRHr9LIfXsMUmuXZl5mjYzBhMA4GA1UdDwEB
|
3450 |
+
/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRHd8MUi2I5DMlv4VBN0BBY3JWIbTAf
|
3451 |
+
BgNVHSMEGDAWgBRHd8MUi2I5DMlv4VBN0BBY3JWIbTAKBggqhkjOPQQDAwNpADBmAjEAj6jcnboM
|
3452 |
+
BBf6Fek9LykBl7+BFjNAk2z8+e2AcG+qj9uEwov1NcoG3GRvaBbhj5G5AjEA2Euly8LQCGzpGPta
|
3453 |
+
3U1fJAuwACEl74+nBCZx4nxp5V2a+EEfOzmTk51V6s2N8fvB
|
3454 |
+
-----END CERTIFICATE-----
|
3455 |
+
|
3456 |
+
ISRG Root X1
|
3457 |
+
============
|
3458 |
+
-----BEGIN CERTIFICATE-----
|
3459 |
+
MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAwTzELMAkGA1UE
|
3460 |
+
BhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQD
|
3461 |
+
EwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQG
|
3462 |
+
EwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMT
|
3463 |
+
DElTUkcgUm9vdCBYMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54r
|
3464 |
+
Vygch77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+0TM8ukj1
|
3465 |
+
3Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6UA5/TR5d8mUgjU+g4rk8K
|
3466 |
+
b4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sWT8KOEUt+zwvo/7V3LvSye0rgTBIlDHCN
|
3467 |
+
Aymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyHB5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ
|
3468 |
+
4Q7e2RCOFvu396j3x+UCB5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf
|
3469 |
+
1b0SHzUvKBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWnOlFu
|
3470 |
+
hjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTnjh8BCNAw1FtxNrQH
|
3471 |
+
usEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbwqHyGO0aoSCqI3Haadr8faqU9GY/r
|
3472 |
+
OPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CIrU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4G
|
3473 |
+
A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY
|
3474 |
+
9umbbjANBgkqhkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
|
3475 |
+
ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ3BebYhtF8GaV
|
3476 |
+
0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KKNFtY2PwByVS5uCbMiogziUwt
|
3477 |
+
hDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJw
|
3478 |
+
TdwJx4nLCgdNbOhdjsnvzqvHu7UrTkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nx
|
3479 |
+
e5AW0wdeRlN8NwdCjNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZA
|
3480 |
+
JzVcoyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq4RgqsahD
|
3481 |
+
YVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPAmRGunUHBcnWEvgJBQl9n
|
3482 |
+
JEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57demyPxgcYxn/eR44/KJ4EBs+lVDR3veyJ
|
3483 |
+
m+kXQ99b21/+jh5Xos1AnX5iItreGCc=
|
3484 |
+
-----END CERTIFICATE-----
|
3485 |
+
|
3486 |
+
AC RAIZ FNMT-RCM
|
3487 |
+
================
|
3488 |
+
-----BEGIN CERTIFICATE-----
|
3489 |
+
MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsxCzAJBgNVBAYT
|
3490 |
+
AkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTAeFw0wODEw
|
3491 |
+
MjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJD
|
3492 |
+
TTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
|
3493 |
+
ggIBALpxgHpMhm5/yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcf
|
3494 |
+
qQgfBBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAzWHFctPVr
|
3495 |
+
btQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxFtBDXaEAUwED653cXeuYL
|
3496 |
+
j2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z374jNUUeAlz+taibmSXaXvMiwzn15Cou
|
3497 |
+
08YfxGyqxRxqAQVKL9LFwag0Jl1mpdICIfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mw
|
3498 |
+
WsXmo8RZZUc1g16p6DULmbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnT
|
3499 |
+
tOmlcYF7wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peSMKGJ
|
3500 |
+
47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2ZSysV4999AeU14EC
|
3501 |
+
ll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMetUqIJ5G+GR4of6ygnXYMgrwTJbFaa
|
3502 |
+
i0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
|
3503 |
+
FPd9xf3E6Jobd2Sn9R2gzL+HYJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1o
|
3504 |
+
dHRwOi8vd3d3LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD
|
3505 |
+
nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1RXxlDPiyN8+s
|
3506 |
+
D8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYMLVN0V2Ue1bLdI4E7pWYjJ2cJ
|
3507 |
+
j+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrT
|
3508 |
+
Qfv6MooqtyuGC2mDOL7Nii4LcK2NJpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW
|
3509 |
+
+YJF1DngoABd15jmfZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7
|
3510 |
+
Ixjp6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp1txyM/1d
|
3511 |
+
8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B9kiABdcPUXmsEKvU7ANm
|
3512 |
+
5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wokRqEIr9baRRmW1FMdW4R58MD3R++Lj8UG
|
3513 |
+
rp1MYp3/RgT408m2ECVAdf4WqslKYIYvuu8wd+RU4riEmViAqhOLUTpPSPaLtrM=
|
3514 |
+
-----END CERTIFICATE-----
|
3515 |
+
|
3516 |
+
Amazon Root CA 1
|
3517 |
+
================
|
3518 |
+
-----BEGIN CERTIFICATE-----
|
3519 |
+
MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsFADA5MQswCQYD
|
3520 |
+
VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAxMB4XDTE1
|
3521 |
+
MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv
|
3522 |
+
bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
3523 |
+
ggEBALJ4gHHKeNXjca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgH
|
3524 |
+
FzZM9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qwIFAGbHrQ
|
3525 |
+
gLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6VOujw5H5SNz/0egwLX0t
|
3526 |
+
dHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L93FcXmn/6pUCyziKrlA4b9v7LWIbxcce
|
3527 |
+
VOF34GfID5yHI9Y/QCB/IIDEgEw+OyQmjgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB
|
3528 |
+
/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3
|
3529 |
+
DQEBCwUAA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDIU5PM
|
3530 |
+
CCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUsN+gDS63pYaACbvXy
|
3531 |
+
8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vvo/ufQJVtMVT8QtPHRh8jrdkPSHCa
|
3532 |
+
2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2
|
3533 |
+
xJNDd2ZhwLnoQdeXeGADbkpyrqXRfboQnoZsG4q5WTP468SQvvG5
|
3534 |
+
-----END CERTIFICATE-----
|
3535 |
+
|
3536 |
+
Amazon Root CA 2
|
3537 |
+
================
|
3538 |
+
-----BEGIN CERTIFICATE-----
|
3539 |
+
MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwFADA5MQswCQYD
|
3540 |
+
VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAyMB4XDTE1
|
3541 |
+
MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv
|
3542 |
+
bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
|
3543 |
+
ggIBAK2Wny2cSkxKgXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4
|
3544 |
+
kHbZW0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg1dKmSYXp
|
3545 |
+
N+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K8nu+NQWpEjTj82R0Yiw9
|
3546 |
+
AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvd
|
3547 |
+
fLC6HM783k81ds8P+HgfajZRRidhW+mez/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAEx
|
3548 |
+
kv8LV/SasrlX6avvDXbR8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSS
|
3549 |
+
btqDT6ZjmUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz7Mt0
|
3550 |
+
Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6+XUyo05f7O0oYtlN
|
3551 |
+
c/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI0u1ufm8/0i2BWSlmy5A5lREedCf+
|
3552 |
+
3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSw
|
3553 |
+
DPBMMPQFWAJI/TPlUq9LhONmUjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oA
|
3554 |
+
A7CXDpO8Wqj2LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY
|
3555 |
+
+gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kSk5Nrp+gvU5LE
|
3556 |
+
YFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl7uxMMne0nxrpS10gxdr9HIcW
|
3557 |
+
xkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygmbtmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQ
|
3558 |
+
gj9sAq+uEjonljYE1x2igGOpm/HlurR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbW
|
3559 |
+
aQbLU8uz/mtBzUF+fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoV
|
3560 |
+
Yh63n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE76KlXIx3
|
3561 |
+
KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H9jVlpNMKVv/1F2Rs76gi
|
3562 |
+
JUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT4PsJYGw=
|
3563 |
+
-----END CERTIFICATE-----
|
3564 |
+
|
3565 |
+
Amazon Root CA 3
|
3566 |
+
================
|
3567 |
+
-----BEGIN CERTIFICATE-----
|
3568 |
+
MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQG
|
3569 |
+
EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUy
|
3570 |
+
NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ
|
3571 |
+
MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZB
|
3572 |
+
f8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjr
|
3573 |
+
Zt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43
|
3574 |
+
rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0Psc
|
3575 |
+
eGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw==
|
3576 |
+
-----END CERTIFICATE-----
|
3577 |
+
|
3578 |
+
Amazon Root CA 4
|
3579 |
+
================
|
3580 |
+
-----BEGIN CERTIFICATE-----
|
3581 |
+
MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5MQswCQYDVQQG
|
3582 |
+
EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4XDTE1MDUy
|
3583 |
+
NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ
|
3584 |
+
MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN
|
3585 |
+
/sGKe0uoe0ZLY7Bi9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri
|
3586 |
+
83BkM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
|
3587 |
+
HQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WBMAoGCCqGSM49BAMDA2gA
|
3588 |
+
MGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlwCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1
|
3589 |
+
AE47xDqUEpHJWEadIRNyp4iciuRMStuW1KyLa2tJElMzrdfkviT8tQp21KW8EA==
|
3590 |
+
-----END CERTIFICATE-----
|
3591 |
+
|
3592 |
+
LuxTrust Global Root 2
|
3593 |
+
======================
|
3594 |
+
-----BEGIN CERTIFICATE-----
|
3595 |
+
MIIFwzCCA6ugAwIBAgIUCn6m30tEntpqJIWe5rgV0xZ/u7EwDQYJKoZIhvcNAQELBQAwRjELMAkG
|
3596 |
+
A1UEBhMCTFUxFjAUBgNVBAoMDUx1eFRydXN0IFMuQS4xHzAdBgNVBAMMFkx1eFRydXN0IEdsb2Jh
|
3597 |
+
bCBSb290IDIwHhcNMTUwMzA1MTMyMTU3WhcNMzUwMzA1MTMyMTU3WjBGMQswCQYDVQQGEwJMVTEW
|
3598 |
+
MBQGA1UECgwNTHV4VHJ1c3QgUy5BLjEfMB0GA1UEAwwWTHV4VHJ1c3QgR2xvYmFsIFJvb3QgMjCC
|
3599 |
+
AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANeFl78RmOnwYoNMPIf5U2o3C/IPPIfOb9wm
|
3600 |
+
Kb3FibrJgz337spbxm1Jc7TJRqMbNBM/wYlFV/TZsfs2ZUv7COJIcRHIbjuend+JZTemhfY7RBi2
|
3601 |
+
xjcwYkSSl2l9QjAk5A0MiWtj3sXh306pFGxT4GHO9hcvHTy95iJMHZP1EMShduxq3sVs35a0VkBC
|
3602 |
+
wGKSMKEtFZSg0iAGCW5qbeXrt77U8PEVfIvmTroTzEsnXpk8F12PgX8zPU/TPxvsXD/wPEx1bvKm
|
3603 |
+
1Z3aLQdjAsZy6ZS8TEmVT4hSyNvoaYL4zDRbIvCGp4m9SAptZoFtyMhk+wHh9OHe2Z7d21vUKpkm
|
3604 |
+
FRseTJIpgp7VkoGSQXAZ96Tlk0u8d2cx3Rz9MXANF5kM+Qw5GSoXtTBxVdUPrljhPS80m8+f9niF
|
3605 |
+
wpN6cj5mj5wWEWCPnolvZ77gR1o7DJpni89Gxq44o/KnvObWhWszJHAiS8sIm7vI+AIpHb4gDEa/
|
3606 |
+
a4ebsypmQjVGbKq6rfmYe+lQVRQxv7HaLe2ArWgk+2mr2HETMOZns4dA/Yl+8kPREd8vZS9kzl8U
|
3607 |
+
ubG/Mb2HeFpZZYiq/FkySIbWTLkpS5XTdvN3JW1CHDiDTf2jX5t/Lax5Gw5CMZdjpPuKadUiDTSQ
|
3608 |
+
MC6otOBttpSsvItO13D8xTiOZCXhTTmQzsmHhFhxAgMBAAGjgagwgaUwDwYDVR0TAQH/BAUwAwEB
|
3609 |
+
/zBCBgNVHSAEOzA5MDcGByuBKwEBAQowLDAqBggrBgEFBQcCARYeaHR0cHM6Ly9yZXBvc2l0b3J5
|
3610 |
+
Lmx1eHRydXN0Lmx1MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBT/GCh2+UgFLKGu8SsbK7JT
|
3611 |
+
+Et8szAdBgNVHQ4EFgQU/xgodvlIBSyhrvErGyuyU/hLfLMwDQYJKoZIhvcNAQELBQADggIBAGoZ
|
3612 |
+
FO1uecEsh9QNcH7X9njJCwROxLHOk3D+sFTAMs2ZMGQXvw/l4jP9BzZAcg4atmpZ1gDlaCDdLnIN
|
3613 |
+
H2pkMSCEfUmmWjfrRcmF9dTHF5kH5ptV5AzoqbTOjFu1EVzPig4N1qx3gf4ynCSecs5U89BvolbW
|
3614 |
+
7MM3LGVYvlcAGvI1+ut7MV3CwRI9loGIlonBWVx65n9wNOeD4rHh4bhY79SV5GCc8JaXcozrhAIu
|
3615 |
+
ZY+kt9J/Z93I055cqqmkoCUUBpvsT34tC38ddfEz2O3OuHVtPlu5mB0xDVbYQw8wkbIEa91WvpWA
|
3616 |
+
VWe+2M2D2RjuLg+GLZKecBPs3lHJQ3gCpU3I+V/EkVhGFndadKpAvAefMLmx9xIX3eP/JEAdemrR
|
3617 |
+
TxgKqpAd60Ae36EeRJIQmvKN4dFLRp7oRUKX6kWZ8+xm1QL68qZKJKrezrnK+T+Tb/mjuuqlPpmt
|
3618 |
+
/f97mfVl7vBZKGfXkJWkE4SphMHozs51k2MavDzq1WQfLSoSOcbDWjLtR5EWDrw4wVDej8oqkDQc
|
3619 |
+
7kGUnF4ZLvhFSZl0kbAEb+MEWrGrKqv+x9CWttrhSmQGbmBNvUJO/3jaJMobtNeWOWyu8Q6qp31I
|
3620 |
+
iyBMz2TWuJdGsE7RKlY6oJO9r4Ak4Ap+58rVyuiFVdw2KuGUaJPHZnJED4AhMmwlxyOAgwrr
|
3621 |
+
-----END CERTIFICATE-----
|
3622 |
+
|
3623 |
+
TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1
|
3624 |
+
=============================================
|
3625 |
+
-----BEGIN CERTIFICATE-----
|
3626 |
+
MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIxGDAWBgNVBAcT
|
3627 |
+
D0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxpbXNlbCB2ZSBUZWtub2xvamlr
|
3628 |
+
IEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0wKwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24g
|
3629 |
+
TWVya2V6aSAtIEthbXUgU00xNjA0BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRp
|
3630 |
+
ZmlrYXNpIC0gU3VydW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYD
|
3631 |
+
VQQGEwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXllIEJpbGlt
|
3632 |
+
c2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklUQUsxLTArBgNVBAsTJEth
|
3633 |
+
bXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBTTTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11
|
3634 |
+
IFNNIFNTTCBLb2sgU2VydGlmaWthc2kgLSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
3635 |
+
MIIBCgKCAQEAr3UwM6q7a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y8
|
3636 |
+
6Ij5iySrLqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INrN3wc
|
3637 |
+
wv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2XYacQuFWQfw4tJzh0
|
3638 |
+
3+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/iSIzL+aFCr2lqBs23tPcLG07xxO9
|
3639 |
+
WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4fAJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQU
|
3640 |
+
ZT/HiobGPN08VFw1+DrtUgxHV8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJ
|
3641 |
+
KoZIhvcNAQELBQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh
|
3642 |
+
AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPfIPP54+M638yc
|
3643 |
+
lNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4lzwDGrpDxpa5RXI4s6ehlj2R
|
3644 |
+
e37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0j
|
3645 |
+
q5Rm+K37DwhuJi1/FwcJsoz7UMCflo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM=
|
3646 |
Â
-----END CERTIFICATE-----
|
app/api/Stripe/Invoice.php
CHANGED
@@ -5,53 +5,170 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class Invoice
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class Invoice extends ApiResource
|
11 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
12 |
Â
/**
|
13 |
Â
* @param array|null $params
|
14 |
Â
* @param array|string|null $opts
|
15 |
Â
*
|
16 |
-
* @return Invoice The
|
17 |
Â
*/
|
18 |
-
public
|
19 |
Â
{
|
20 |
-
|
Â
|
|
Â
|
|
Â
|
|
21 |
Â
}
|
22 |
Â
|
23 |
Â
/**
|
24 |
-
* @param
|
25 |
Â
* @param array|string|null $opts
|
26 |
Â
*
|
27 |
-
* @return Invoice
|
28 |
Â
*/
|
29 |
-
public
|
30 |
Â
{
|
31 |
-
|
Â
|
|
Â
|
|
Â
|
|
32 |
Â
}
|
33 |
Â
|
34 |
Â
/**
|
35 |
Â
* @param array|null $params
|
36 |
Â
* @param array|string|null $opts
|
37 |
Â
*
|
38 |
-
* @return
|
39 |
Â
*/
|
40 |
-
public
|
41 |
Â
{
|
42 |
-
|
Â
|
|
Â
|
|
Â
|
|
43 |
Â
}
|
44 |
Â
|
45 |
Â
/**
|
46 |
-
* @param string $id The ID of the invoice to update.
|
47 |
Â
* @param array|null $params
|
48 |
-
* @param array|string|null $
|
49 |
Â
*
|
50 |
-
* @return Invoice The
|
51 |
Â
*/
|
52 |
-
public
|
53 |
Â
{
|
54 |
-
|
Â
|
|
Â
|
|
Â
|
|
55 |
Â
}
|
56 |
Â
|
57 |
Â
/**
|
@@ -70,22 +187,15 @@ class Invoice extends ApiResource
|
|
70 |
Â
}
|
71 |
Â
|
72 |
Â
/**
|
Â
|
|
73 |
Â
* @param array|string|null $opts
|
74 |
Â
*
|
75 |
-
* @return Invoice The
|
76 |
-
*/
|
77 |
-
public function save($opts = null)
|
78 |
-
{
|
79 |
-
return $this->_save($opts);
|
80 |
-
}
|
81 |
-
|
82 |
-
/**
|
83 |
-
* @return Invoice The paid invoice.
|
84 |
Â
*/
|
85 |
-
public function
|
86 |
Â
{
|
87 |
-
$url = $this->instanceUrl() . '/
|
88 |
-
list($response, $opts) = $this->_request('post', $url,
|
89 |
Â
$this->refreshFrom($response, $opts);
|
90 |
Â
return $this;
|
91 |
Â
}
|
5 |
Â
/**
|
6 |
Â
* Class Invoice
|
7 |
Â
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property string $account_country
|
11 |
+
* @property string $account_name
|
12 |
+
* @property int $amount_due
|
13 |
+
* @property int $amount_paid
|
14 |
+
* @property int $amount_remaining
|
15 |
+
* @property int $application_fee_amount
|
16 |
+
* @property int $attempt_count
|
17 |
+
* @property bool $attempted
|
18 |
+
* @property bool $auto_advance
|
19 |
+
* @property string $billing
|
20 |
+
* @property string $billing_reason
|
21 |
+
* @property string $charge
|
22 |
+
* @property string $collection_method
|
23 |
+
* @property int $created
|
24 |
+
* @property string $currency
|
25 |
+
* @property array $custom_fields
|
26 |
+
* @property string $customer
|
27 |
+
* @property mixed $customer_address
|
28 |
+
* @property string $customer_email
|
29 |
+
* @property string $customer_name
|
30 |
+
* @property string $customer_phone
|
31 |
+
* @property mixed $customer_shipping
|
32 |
+
* @property string $customer_tax_exempt
|
33 |
+
* @property array $customer_tax_ids
|
34 |
+
* @property string $default_payment_method
|
35 |
+
* @property string $default_source
|
36 |
+
* @property array $default_tax_rates
|
37 |
+
* @property string $description
|
38 |
+
* @property Discount $discount
|
39 |
+
* @property int $due_date
|
40 |
+
* @property int $ending_balance
|
41 |
+
* @property string $footer
|
42 |
+
* @property string $hosted_invoice_url
|
43 |
+
* @property string $invoice_pdf
|
44 |
+
* @property Collection $lines
|
45 |
+
* @property bool $livemode
|
46 |
+
* @property StripeObject $metadata
|
47 |
+
* @property int $next_payment_attempt
|
48 |
+
* @property string $number
|
49 |
+
* @property bool $paid
|
50 |
+
* @property string $payment_intent
|
51 |
+
* @property int $period_end
|
52 |
+
* @property int $period_start
|
53 |
+
* @property int $post_payment_credit_notes_amount
|
54 |
+
* @property int $pre_payment_credit_notes_amount
|
55 |
+
* @property string $receipt_number
|
56 |
+
* @property int $starting_balance
|
57 |
+
* @property string $statement_descriptor
|
58 |
+
* @property string $status
|
59 |
+
* @property mixed $status_transitions
|
60 |
+
* @property string $subscription
|
61 |
+
* @property int $subscription_proration_date
|
62 |
+
* @property int $subtotal
|
63 |
+
* @property int $tax
|
64 |
+
* @property mixed $threshold_reason
|
65 |
+
* @property int $total
|
66 |
+
* @property array $total_tax_amounts
|
67 |
+
* @property int $webhooks_delivered_at
|
68 |
+
*
|
69 |
Â
* @package Stripe
|
70 |
Â
*/
|
71 |
Â
class Invoice extends ApiResource
|
72 |
Â
{
|
73 |
+
const OBJECT_NAME = "invoice";
|
74 |
+
|
75 |
+
use ApiOperations\All;
|
76 |
+
use ApiOperations\Create;
|
77 |
+
use ApiOperations\Delete;
|
78 |
+
use ApiOperations\Retrieve;
|
79 |
+
use ApiOperations\Update;
|
80 |
+
|
81 |
+
/**
|
82 |
+
* Possible string representations of the billing reason.
|
83 |
+
* @link https://stripe.com/docs/api/invoices/object#invoice_object-billing_reason
|
84 |
+
*/
|
85 |
+
const BILLING_REASON_MANUAL = 'manual';
|
86 |
+
const BILLING_REASON_SUBSCRIPTION = 'subscription';
|
87 |
+
const BILLING_REASON_SUBSCRIPTION_CREATE = 'subscription_create';
|
88 |
+
const BILLING_REASON_SUBSCRIPTION_CYCLE = 'subscription_cycle';
|
89 |
+
const BILLING_REASON_SUBSCRIPTION_THRESHOLD = 'subscription_threshold';
|
90 |
+
const BILLING_REASON_SUBSCRIPTION_UPDATE = 'subscription_update';
|
91 |
+
const BILLING_REASON_UPCOMING = 'upcoming';
|
92 |
+
|
93 |
+
/**
|
94 |
+
* Possible string representations of the `collection_method` property.
|
95 |
+
* @link https://stripe.com/docs/api/invoices/object#invoice_object-collection_method
|
96 |
+
*/
|
97 |
+
const COLLECTION_METHOD_CHARGE_AUTOMATICALLY = 'charge_automatically';
|
98 |
+
const COLLECTION_METHOD_SEND_INVOICE = 'send_invoice';
|
99 |
+
|
100 |
+
/**
|
101 |
+
* Possible string representations of the invoice status.
|
102 |
+
* @link https://stripe.com/docs/api/invoices/object#invoice_object-status
|
103 |
+
*/
|
104 |
+
const STATUS_DRAFT = 'draft';
|
105 |
+
const STATUS_OPEN = 'open';
|
106 |
+
const STATUS_PAID = 'paid';
|
107 |
+
const STATUS_UNCOLLECTIBLE = 'uncollectible';
|
108 |
+
const STATUS_VOID = 'void';
|
109 |
+
|
110 |
+
/**
|
111 |
+
* Possible string representations of the `billing` property.
|
112 |
+
* @deprecated Use `collection_method` instead.
|
113 |
+
* @link https://stripe.com/docs/api/invoices/object#invoice_object-billing
|
114 |
+
*/
|
115 |
+
const BILLING_CHARGE_AUTOMATICALLY = 'charge_automatically';
|
116 |
+
const BILLING_SEND_INVOICE = 'send_invoice';
|
117 |
+
|
118 |
Â
/**
|
119 |
Â
* @param array|null $params
|
120 |
Â
* @param array|string|null $opts
|
121 |
Â
*
|
122 |
+
* @return Invoice The finalized invoice.
|
123 |
Â
*/
|
124 |
+
public function finalizeInvoice($params = null, $opts = null)
|
125 |
Â
{
|
126 |
+
$url = $this->instanceUrl() . '/finalize';
|
127 |
+
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
128 |
+
$this->refreshFrom($response, $opts);
|
129 |
+
return $this;
|
130 |
Â
}
|
131 |
Â
|
132 |
Â
/**
|
133 |
+
* @param array|null $params
|
134 |
Â
* @param array|string|null $opts
|
135 |
Â
*
|
136 |
+
* @return Invoice The uncollectible invoice.
|
137 |
Â
*/
|
138 |
+
public function markUncollectible($params = null, $opts = null)
|
139 |
Â
{
|
140 |
+
$url = $this->instanceUrl() . '/mark_uncollectible';
|
141 |
+
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
142 |
+
$this->refreshFrom($response, $opts);
|
143 |
+
return $this;
|
144 |
Â
}
|
145 |
Â
|
146 |
Â
/**
|
147 |
Â
* @param array|null $params
|
148 |
Â
* @param array|string|null $opts
|
149 |
Â
*
|
150 |
+
* @return Invoice The paid invoice.
|
151 |
Â
*/
|
152 |
+
public function pay($params = null, $opts = null)
|
153 |
Â
{
|
154 |
+
$url = $this->instanceUrl() . '/pay';
|
155 |
+
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
156 |
+
$this->refreshFrom($response, $opts);
|
157 |
+
return $this;
|
158 |
Â
}
|
159 |
Â
|
160 |
Â
/**
|
Â
|
|
161 |
Â
* @param array|null $params
|
162 |
+
* @param array|string|null $opts
|
163 |
Â
*
|
164 |
+
* @return Invoice The sent invoice.
|
165 |
Â
*/
|
166 |
+
public function sendInvoice($params = null, $opts = null)
|
167 |
Â
{
|
168 |
+
$url = $this->instanceUrl() . '/send';
|
169 |
+
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
170 |
+
$this->refreshFrom($response, $opts);
|
171 |
+
return $this;
|
172 |
Â
}
|
173 |
Â
|
174 |
Â
/**
|
187 |
Â
}
|
188 |
Â
|
189 |
Â
/**
|
190 |
+
* @param array|null $params
|
191 |
Â
* @param array|string|null $opts
|
192 |
Â
*
|
193 |
+
* @return Invoice The voided invoice.
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
194 |
Â
*/
|
195 |
+
public function voidInvoice($params = null, $opts = null)
|
196 |
Â
{
|
197 |
+
$url = $this->instanceUrl() . '/void';
|
198 |
+
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
199 |
Â
$this->refreshFrom($response, $opts);
|
200 |
Â
return $this;
|
201 |
Â
}
|
app/api/Stripe/InvoiceItem.php
CHANGED
@@ -5,73 +5,35 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class InvoiceItem
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class InvoiceItem extends ApiResource
|
11 |
Â
{
|
12 |
-
|
13 |
-
* @param string $id The ID of the invoice item to retrieve.
|
14 |
-
* @param array|string|null $opts
|
15 |
-
*
|
16 |
-
* @return InvoiceItem
|
17 |
-
*/
|
18 |
-
public static function retrieve($id, $opts = null)
|
19 |
-
{
|
20 |
-
return self::_retrieve($id, $opts);
|
21 |
-
}
|
22 |
-
|
23 |
-
/**
|
24 |
-
* @param array|null $params
|
25 |
-
* @param array|string|null $opts
|
26 |
-
*
|
27 |
-
* @return Collection of InvoiceItems
|
28 |
-
*/
|
29 |
-
public static function all($params = null, $opts = null)
|
30 |
-
{
|
31 |
-
return self::_all($params, $opts);
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @param array|null $params
|
36 |
-
* @param array|string|null $opts
|
37 |
-
*
|
38 |
-
* @return InvoiceItem The created invoice item.
|
39 |
-
*/
|
40 |
-
public static function create($params = null, $opts = null)
|
41 |
-
{
|
42 |
-
return self::_create($params, $opts);
|
43 |
-
}
|
44 |
-
|
45 |
-
/**
|
46 |
-
* @param string $id The ID of the invoice item to update.
|
47 |
-
* @param array|null $params
|
48 |
-
* @param array|string|null $options
|
49 |
-
*
|
50 |
-
* @return InvoiceItem The updated invoice item.
|
51 |
-
*/
|
52 |
-
public static function update($id, $params = null, $options = null)
|
53 |
-
{
|
54 |
-
return self::_update($id, $params, $options);
|
55 |
-
}
|
56 |
-
|
57 |
-
/**
|
58 |
-
* @param array|string|null $opts
|
59 |
-
*
|
60 |
-
* @return InvoiceItem The saved invoice item.
|
61 |
-
*/
|
62 |
-
public function save($opts = null)
|
63 |
-
{
|
64 |
-
return $this->_save($opts);
|
65 |
-
}
|
66 |
Â
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
*/
|
73 |
-
public function delete($params = null, $opts = null)
|
74 |
-
{
|
75 |
-
return $this->_delete($params, $opts);
|
76 |
-
}
|
77 |
Â
}
|
5 |
Â
/**
|
6 |
Â
* Class InvoiceItem
|
7 |
Â
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $amount
|
11 |
+
* @property string $currency
|
12 |
+
* @property string $customer
|
13 |
+
* @property int $date
|
14 |
+
* @property string $description
|
15 |
+
* @property bool $discountable
|
16 |
+
* @property string $invoice
|
17 |
+
* @property bool $livemode
|
18 |
+
* @property StripeObject $metadata
|
19 |
+
* @property mixed $period
|
20 |
+
* @property Plan $plan
|
21 |
+
* @property bool $proration
|
22 |
+
* @property int $quantity
|
23 |
+
* @property string $subscription
|
24 |
+
* @property string $subscription_item
|
25 |
+
* @property array $tax_rates
|
26 |
+
* @property int $unit_amount
|
27 |
+
*
|
28 |
Â
* @package Stripe
|
29 |
Â
*/
|
30 |
Â
class InvoiceItem extends ApiResource
|
31 |
Â
{
|
32 |
+
const OBJECT_NAME = "invoiceitem";
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
33 |
Â
|
34 |
+
use ApiOperations\All;
|
35 |
+
use ApiOperations\Create;
|
36 |
+
use ApiOperations\Delete;
|
37 |
+
use ApiOperations\Retrieve;
|
38 |
+
use ApiOperations\Update;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
39 |
Â
}
|
app/api/Stripe/InvoiceLineItem.php
ADDED
@@ -0,0 +1,32 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class InvoiceLineItem
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $amount
|
11 |
+
* @property string $currency
|
12 |
+
* @property string $description
|
13 |
+
* @property bool $discountable
|
14 |
+
* @property string $invoice_item
|
15 |
+
* @property bool $livemode
|
16 |
+
* @property StripeObject $metadata
|
17 |
+
* @property mixed $period
|
18 |
+
* @property Plan $plan
|
19 |
+
* @property bool $proration
|
20 |
+
* @property int $quantity
|
21 |
+
* @property string $subscription
|
22 |
+
* @property string $subscription_item
|
23 |
+
* @property array $tax_amounts
|
24 |
+
* @property array $tax_rates
|
25 |
+
* @property string $type
|
26 |
+
*
|
27 |
+
* @package Stripe
|
28 |
+
*/
|
29 |
+
class InvoiceLineItem extends ApiResource
|
30 |
+
{
|
31 |
+
const OBJECT_NAME = "line_item";
|
32 |
+
}
|
app/api/Stripe/IssuerFraudRecord.php
ADDED
@@ -0,0 +1,24 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class IssuerFraudRecord
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property string $charge
|
11 |
+
* @property int $created
|
12 |
+
* @property int $post_date
|
13 |
+
* @property string $fraud_type
|
14 |
+
* @property bool $livemode
|
15 |
+
*
|
16 |
+
* @package Stripe
|
17 |
+
*/
|
18 |
+
class IssuerFraudRecord extends ApiResource
|
19 |
+
{
|
20 |
+
const OBJECT_NAME = "issuer_fraud_record";
|
21 |
+
|
22 |
+
use ApiOperations\All;
|
23 |
+
use ApiOperations\Retrieve;
|
24 |
+
}
|
app/api/Stripe/Issuing/Authorization.php
ADDED
@@ -0,0 +1,68 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Issuing;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Authorization
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property bool $approved
|
11 |
+
* @property string $authorization_method
|
12 |
+
* @property int $authorized_amount
|
13 |
+
* @property string $authorized_currency
|
14 |
+
* @property \Stripe\Collection $balance_transactions
|
15 |
+
* @property Card $card
|
16 |
+
* @property Cardholder $cardholder
|
17 |
+
* @property int $created
|
18 |
+
* @property int $held_amount
|
19 |
+
* @property string $held_currency
|
20 |
+
* @property bool $is_held_amount_controllable
|
21 |
+
* @property bool $livemode
|
22 |
+
* @property mixed $merchant_data
|
23 |
+
* @property \Stripe\StripeObject $metadata
|
24 |
+
* @property int $pending_authorized_amount
|
25 |
+
* @property int $pending_held_amount
|
26 |
+
* @property mixed $request_history
|
27 |
+
* @property string $status
|
28 |
+
* @property \Stripe\Collection $transactions
|
29 |
+
* @property mixed $verification_data
|
30 |
+
*
|
31 |
+
* @package Stripe\Issuing
|
32 |
+
*/
|
33 |
+
class Authorization extends \Stripe\ApiResource
|
34 |
+
{
|
35 |
+
const OBJECT_NAME = "issuing.authorization";
|
36 |
+
|
37 |
+
use \Stripe\ApiOperations\All;
|
38 |
+
use \Stripe\ApiOperations\Retrieve;
|
39 |
+
use \Stripe\ApiOperations\Update;
|
40 |
+
|
41 |
+
/**
|
42 |
+
* @param array|null $params
|
43 |
+
* @param array|string|null $options
|
44 |
+
*
|
45 |
+
* @return Authorization The approved authorization.
|
46 |
+
*/
|
47 |
+
public function approve($params = null, $options = null)
|
48 |
+
{
|
49 |
+
$url = $this->instanceUrl() . '/approve';
|
50 |
+
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
51 |
+
$this->refreshFrom($response, $opts);
|
52 |
+
return $this;
|
53 |
+
}
|
54 |
+
|
55 |
+
/**
|
56 |
+
* @param array|null $params
|
57 |
+
* @param array|string|null $options
|
58 |
+
*
|
59 |
+
* @return Authorization The declined authorization.
|
60 |
+
*/
|
61 |
+
public function decline($params = null, $options = null)
|
62 |
+
{
|
63 |
+
$url = $this->instanceUrl() . '/decline';
|
64 |
+
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
65 |
+
$this->refreshFrom($response, $opts);
|
66 |
+
return $this;
|
67 |
+
}
|
68 |
+
}
|
app/api/Stripe/Issuing/Card.php
ADDED
@@ -0,0 +1,51 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Issuing;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Card
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property mixed $authorization_controls
|
11 |
+
* @property mixed $billing
|
12 |
+
* @property string $brand
|
13 |
+
* @property Cardholder $cardholder
|
14 |
+
* @property int $created
|
15 |
+
* @property string $currency
|
16 |
+
* @property int $exp_month
|
17 |
+
* @property int $exp_year
|
18 |
+
* @property string $last4
|
19 |
+
* @property bool $livemode
|
20 |
+
* @property \Stripe\StripeObject $metadata
|
21 |
+
* @property string $name
|
22 |
+
* @property mixed $shipping
|
23 |
+
* @property string $status
|
24 |
+
* @property string $type
|
25 |
+
*
|
26 |
+
* @package Stripe\Issuing
|
27 |
+
*/
|
28 |
+
class Card extends \Stripe\ApiResource
|
29 |
+
{
|
30 |
+
const OBJECT_NAME = "issuing.card";
|
31 |
+
|
32 |
+
use \Stripe\ApiOperations\All;
|
33 |
+
use \Stripe\ApiOperations\Create;
|
34 |
+
use \Stripe\ApiOperations\Retrieve;
|
35 |
+
use \Stripe\ApiOperations\Update;
|
36 |
+
|
37 |
+
/**
|
38 |
+
* @param array|null $params
|
39 |
+
* @param array|string|null $options
|
40 |
+
*
|
41 |
+
* @return CardDetails The card details associated with that issuing card.
|
42 |
+
*/
|
43 |
+
public function details($params = null, $options = null)
|
44 |
+
{
|
45 |
+
$url = $this->instanceUrl() . '/details';
|
46 |
+
list($response, $opts) = $this->_request('get', $url, $params, $options);
|
47 |
+
$obj = \Stripe\Util\Util::convertToStripeObject($response, $opts);
|
48 |
+
$obj->setLastResponse($response);
|
49 |
+
return $obj;
|
50 |
+
}
|
51 |
+
}
|
app/api/Stripe/Issuing/CardDetails.php
ADDED
@@ -0,0 +1,21 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Issuing;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class CardDetails
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property Card $card
|
11 |
+
* @property string $cvc
|
12 |
+
* @property int $exp_month
|
13 |
+
* @property int $exp_year
|
14 |
+
* @property string $number
|
15 |
+
*
|
16 |
+
* @package Stripe\Issuing
|
17 |
+
*/
|
18 |
+
class CardDetails extends \Stripe\ApiResource
|
19 |
+
{
|
20 |
+
const OBJECT_NAME = "issuing.card_details";
|
21 |
+
}
|
app/api/Stripe/Issuing/Cardholder.php
ADDED
@@ -0,0 +1,30 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Issuing;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Cardholder
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property mixed $billing
|
11 |
+
* @property int $created
|
12 |
+
* @property string $email
|
13 |
+
* @property bool $livemode
|
14 |
+
* @property \Stripe\StripeObject $metadata
|
15 |
+
* @property string $name
|
16 |
+
* @property string $phone_number
|
17 |
+
* @property string $status
|
18 |
+
* @property string $type
|
19 |
+
*
|
20 |
+
* @package Stripe\Issuing
|
21 |
+
*/
|
22 |
+
class Cardholder extends \Stripe\ApiResource
|
23 |
+
{
|
24 |
+
const OBJECT_NAME = "issuing.cardholder";
|
25 |
+
|
26 |
+
use \Stripe\ApiOperations\All;
|
27 |
+
use \Stripe\ApiOperations\Create;
|
28 |
+
use \Stripe\ApiOperations\Retrieve;
|
29 |
+
use \Stripe\ApiOperations\Update;
|
30 |
+
}
|
app/api/Stripe/Issuing/Dispute.php
ADDED
@@ -0,0 +1,30 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Issuing;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Dispute
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $amount
|
11 |
+
* @property int $created
|
12 |
+
* @property string $currency
|
13 |
+
* @property mixed $evidence
|
14 |
+
* @property bool $livemode
|
15 |
+
* @property \Stripe\StripeObject $metadata
|
16 |
+
* @property string $reason
|
17 |
+
* @property string $status
|
18 |
+
* @property Transaction $transaction
|
19 |
+
*
|
20 |
+
* @package Stripe\Issuing
|
21 |
+
*/
|
22 |
+
class Dispute extends \Stripe\ApiResource
|
23 |
+
{
|
24 |
+
const OBJECT_NAME = "issuing.dispute";
|
25 |
+
|
26 |
+
use \Stripe\ApiOperations\All;
|
27 |
+
use \Stripe\ApiOperations\Create;
|
28 |
+
use \Stripe\ApiOperations\Retrieve;
|
29 |
+
use \Stripe\ApiOperations\Update;
|
30 |
+
}
|
app/api/Stripe/Issuing/Transaction.php
ADDED
@@ -0,0 +1,35 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Issuing;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Transaction
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $amount
|
11 |
+
* @property string $authorization
|
12 |
+
* @property string $balance_transaction
|
13 |
+
* @property string $card
|
14 |
+
* @property string $cardholder
|
15 |
+
* @property int $created
|
16 |
+
* @property string $currency
|
17 |
+
* @property string $dispute
|
18 |
+
* @property bool $livemode
|
19 |
+
* @property mixed $merchant_data
|
20 |
+
* @property int $merchant_amount
|
21 |
+
* @property string $merchant_currency
|
22 |
+
* @property \Stripe\StripeObject $metadata
|
23 |
+
* @property string $type
|
24 |
+
*
|
25 |
+
* @package Stripe\Issuing
|
26 |
+
*/
|
27 |
+
class Transaction extends \Stripe\ApiResource
|
28 |
+
{
|
29 |
+
const OBJECT_NAME = "issuing.transaction";
|
30 |
+
|
31 |
+
use \Stripe\ApiOperations\All;
|
32 |
+
use \Stripe\ApiOperations\Create;
|
33 |
+
use \Stripe\ApiOperations\Retrieve;
|
34 |
+
use \Stripe\ApiOperations\Update;
|
35 |
+
}
|
app/api/Stripe/JsonSerializable.php
DELETED
@@ -1,18 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace Stripe;
|
4 |
-
|
5 |
-
// JsonSerializable only exists in PHP 5.4+. Stub if out if it doesn't exist
|
6 |
-
if (interface_exists('\JsonSerializable', false)) {
|
7 |
-
interface JsonSerializable extends \JsonSerializable
|
8 |
-
{
|
9 |
-
}
|
10 |
-
} else {
|
11 |
-
// PSR2 wants each interface to have its own file.
|
12 |
-
// @codingStandardsIgnoreStart
|
13 |
-
interface JsonSerializable
|
14 |
-
{
|
15 |
-
// @codingStandardsIgnoreEnd
|
16 |
-
public function jsonSerialize();
|
17 |
-
}
|
18 |
-
}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
app/api/Stripe/LoginLink.php
ADDED
@@ -0,0 +1,17 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class LoginLink
|
7 |
+
*
|
8 |
+
* @property string $object
|
9 |
+
* @property int $created
|
10 |
+
* @property string $url
|
11 |
+
*
|
12 |
+
* @package Stripe
|
13 |
+
*/
|
14 |
+
class LoginLink extends ApiResource
|
15 |
+
{
|
16 |
+
const OBJECT_NAME = "login_link";
|
17 |
+
}
|
app/api/Stripe/OAuth.php
ADDED
@@ -0,0 +1,93 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
abstract class OAuth
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Generates a URL to Stripe's OAuth form.
|
9 |
+
*
|
10 |
+
* @param array|null $params
|
11 |
+
* @param array|null $opts
|
12 |
+
*
|
13 |
+
* @return string The URL to Stripe's OAuth form.
|
14 |
+
*/
|
15 |
+
public static function authorizeUrl($params = null, $opts = null)
|
16 |
+
{
|
17 |
+
$params = $params ?: [];
|
18 |
+
|
19 |
+
$base = ($opts && array_key_exists('connect_base', $opts)) ? $opts['connect_base'] : Stripe::$connectBase;
|
20 |
+
|
21 |
+
$params['client_id'] = self::_getClientId($params);
|
22 |
+
if (!array_key_exists('response_type', $params)) {
|
23 |
+
$params['response_type'] = 'code';
|
24 |
+
}
|
25 |
+
$query = Util\Util::encodeParameters($params);
|
26 |
+
|
27 |
+
return $base . '/oauth/authorize?' . $query;
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Use an authoriztion code to connect an account to your platform and
|
32 |
+
* fetch the user's credentials.
|
33 |
+
*
|
34 |
+
* @param array|null $params
|
35 |
+
* @param array|null $opts
|
36 |
+
*
|
37 |
+
* @return StripeObject Object containing the response from the API.
|
38 |
+
*/
|
39 |
+
public static function token($params = null, $opts = null)
|
40 |
+
{
|
41 |
+
$base = ($opts && array_key_exists('connect_base', $opts)) ? $opts['connect_base'] : Stripe::$connectBase;
|
42 |
+
$requestor = new ApiRequestor(null, $base);
|
43 |
+
list($response, $apiKey) = $requestor->request(
|
44 |
+
'post',
|
45 |
+
'/oauth/token',
|
46 |
+
$params,
|
47 |
+
null
|
48 |
+
);
|
49 |
+
return Util\Util::convertToStripeObject($response->json, $opts);
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* Disconnects an account from your platform.
|
54 |
+
*
|
55 |
+
* @param array|null $params
|
56 |
+
* @param array|null $opts
|
57 |
+
*
|
58 |
+
* @return StripeObject Object containing the response from the API.
|
59 |
+
*/
|
60 |
+
public static function deauthorize($params = null, $opts = null)
|
61 |
+
{
|
62 |
+
$params = $params ?: [];
|
63 |
+
$base = ($opts && array_key_exists('connect_base', $opts)) ? $opts['connect_base'] : Stripe::$connectBase;
|
64 |
+
$requestor = new ApiRequestor(null, $base);
|
65 |
+
$params['client_id'] = self::_getClientId($params);
|
66 |
+
list($response, $apiKey) = $requestor->request(
|
67 |
+
'post',
|
68 |
+
'/oauth/deauthorize',
|
69 |
+
$params,
|
70 |
+
null
|
71 |
+
);
|
72 |
+
return Util\Util::convertToStripeObject($response->json, $opts);
|
73 |
+
}
|
74 |
+
|
75 |
+
private static function _getClientId($params = null)
|
76 |
+
{
|
77 |
+
$clientId = ($params && array_key_exists('client_id', $params)) ? $params['client_id'] : null;
|
78 |
+
if ($clientId === null) {
|
79 |
+
$clientId = Stripe::getClientId();
|
80 |
+
}
|
81 |
+
if ($clientId === null) {
|
82 |
+
$msg = 'No client_id provided. (HINT: set your client_id using '
|
83 |
+
. '"Stripe::setClientId(<CLIENT-ID>)". You can find your client_ids '
|
84 |
+
. 'in your Stripe dashboard at '
|
85 |
+
. 'https://dashboard.stripe.com/account/applications/settings, '
|
86 |
+
. 'after registering your account as a platform. See '
|
87 |
+
. 'https://stripe.com/docs/connect/standard-accounts for details, '
|
88 |
+
. 'or email support@stripe.com if you have any questions.';
|
89 |
+
throw new Error\Authentication($msg);
|
90 |
+
}
|
91 |
+
return $clientId;
|
92 |
+
}
|
93 |
+
}
|
app/api/Stripe/Order.php
CHANGED
@@ -5,64 +5,40 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class Order
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class Order extends ApiResource
|
11 |
Â
{
|
12 |
-
|
13 |
-
* @param string $id The ID of the Order to retrieve.
|
14 |
-
* @param array|string|null $opts
|
15 |
-
*
|
16 |
-
* @return Order
|
17 |
-
*/
|
18 |
-
public static function retrieve($id, $opts = null)
|
19 |
-
{
|
20 |
-
return self::_retrieve($id, $opts);
|
21 |
-
}
|
22 |
-
|
23 |
-
/**
|
24 |
-
* @param array|null $params
|
25 |
-
* @param array|string|null $opts
|
26 |
-
*
|
27 |
-
* @return Order The created Order.
|
28 |
-
*/
|
29 |
-
public static function create($params = null, $opts = null)
|
30 |
-
{
|
31 |
-
return self::_create($params, $opts);
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @param string $id The ID of the order to update.
|
36 |
-
* @param array|null $params
|
37 |
-
* @param array|string|null $options
|
38 |
-
*
|
39 |
-
* @return Order The updated order.
|
40 |
-
*/
|
41 |
-
public static function update($id, $params = null, $options = null)
|
42 |
-
{
|
43 |
-
return self::_update($id, $params, $options);
|
44 |
-
}
|
45 |
-
|
46 |
-
/**
|
47 |
-
* @param array|string|null $opts
|
48 |
-
*
|
49 |
-
* @return Order The saved Order.
|
50 |
-
*/
|
51 |
-
public function save($opts = null)
|
52 |
-
{
|
53 |
-
return $this->_save($opts);
|
54 |
-
}
|
55 |
Â
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
* @return Collection of Orders
|
61 |
-
*/
|
62 |
-
public static function all($params = null, $opts = null)
|
63 |
-
{
|
64 |
-
return self::_all($params, $opts);
|
65 |
-
}
|
66 |
Â
|
67 |
Â
/**
|
68 |
Â
* @return Order The paid order.
|
5 |
Â
/**
|
6 |
Â
* Class Order
|
7 |
Â
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $amount
|
11 |
+
* @property int $amount_returned
|
12 |
+
* @property string $application
|
13 |
+
* @property int $application_fee
|
14 |
+
* @property string $charge
|
15 |
+
* @property int $created
|
16 |
+
* @property string $currency
|
17 |
+
* @property string $customer
|
18 |
+
* @property string $email
|
19 |
+
* @property string $external_coupon_code
|
20 |
+
* @property OrderItem[] $items
|
21 |
+
* @property bool $livemode
|
22 |
+
* @property StripeObject $metadata
|
23 |
+
* @property Collection $returns
|
24 |
+
* @property string $selected_shipping_method
|
25 |
+
* @property mixed $shipping
|
26 |
+
* @property array $shipping_methods
|
27 |
+
* @property string $status
|
28 |
+
* @property mixed $status_transitions
|
29 |
+
* @property int $updated
|
30 |
+
* @property string $upstream_id
|
31 |
+
*
|
32 |
Â
* @package Stripe
|
33 |
Â
*/
|
34 |
Â
class Order extends ApiResource
|
35 |
Â
{
|
36 |
+
const OBJECT_NAME = "order";
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
37 |
Â
|
38 |
+
use ApiOperations\All;
|
39 |
+
use ApiOperations\Create;
|
40 |
+
use ApiOperations\Retrieve;
|
41 |
+
use ApiOperations\Update;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
42 |
Â
|
43 |
Â
/**
|
44 |
Â
* @return Order The paid order.
|
app/api/Stripe/OrderItem.php
ADDED
@@ -0,0 +1,21 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class OrderItem
|
7 |
+
*
|
8 |
+
* @property string $object
|
9 |
+
* @property int $amount
|
10 |
+
* @property string $currency
|
11 |
+
* @property string $description
|
12 |
+
* @property string $parent
|
13 |
+
* @property int $quantity
|
14 |
+
* @property string $type
|
15 |
+
*
|
16 |
+
* @package Stripe
|
17 |
+
*/
|
18 |
+
class OrderItem extends StripeObject
|
19 |
+
{
|
20 |
+
const OBJECT_NAME = "order_item";
|
21 |
+
}
|
app/api/Stripe/OrderReturn.php
CHANGED
@@ -5,29 +5,22 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class OrderReturn
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class OrderReturn extends ApiResource
|
11 |
Â
{
|
12 |
-
|
13 |
-
* @param string $id The ID of the OrderReturn to retrieve.
|
14 |
-
* @param array|string|null $opts
|
15 |
-
*
|
16 |
-
* @return Order
|
17 |
-
*/
|
18 |
-
public static function retrieve($id, $opts = null)
|
19 |
-
{
|
20 |
-
return self::_retrieve($id, $opts);
|
21 |
-
}
|
22 |
Â
|
23 |
-
|
24 |
-
|
25 |
-
* @param array|string|null $opts
|
26 |
-
*
|
27 |
-
* @return Collection of OrderReturns
|
28 |
-
*/
|
29 |
-
public static function all($params = null, $opts = null)
|
30 |
-
{
|
31 |
-
return self::_all($params, $opts);
|
32 |
-
}
|
33 |
Â
}
|
5 |
Â
/**
|
6 |
Â
* Class OrderReturn
|
7 |
Â
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $amount
|
11 |
+
* @property int $created
|
12 |
+
* @property string $currency
|
13 |
+
* @property OrderItem[] $items
|
14 |
+
* @property bool $livemode
|
15 |
+
* @property string $order
|
16 |
+
* @property string $refund
|
17 |
+
*
|
18 |
Â
* @package Stripe
|
19 |
Â
*/
|
20 |
Â
class OrderReturn extends ApiResource
|
21 |
Â
{
|
22 |
+
const OBJECT_NAME = "order_return";
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
23 |
Â
|
24 |
+
use ApiOperations\All;
|
25 |
+
use ApiOperations\Retrieve;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
26 |
Â
}
|
app/api/Stripe/PaymentIntent.php
ADDED
@@ -0,0 +1,106 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class PaymentIntent
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $amount
|
11 |
+
* @property int $amount_capturable
|
12 |
+
* @property int $amount_received
|
13 |
+
* @property string $application
|
14 |
+
* @property int $application_fee_amount
|
15 |
+
* @property int $canceled_at
|
16 |
+
* @property string $cancellation_reason
|
17 |
+
* @property string $capture_method
|
18 |
+
* @property Collection $charges
|
19 |
+
* @property string $client_secret
|
20 |
+
* @property string $confirmation_method
|
21 |
+
* @property int $created
|
22 |
+
* @property string $currency
|
23 |
+
* @property string $customer
|
24 |
+
* @property string $description
|
25 |
+
* @property mixed $last_payment_error
|
26 |
+
* @property bool $livemode
|
27 |
+
* @property StripeObject $metadata
|
28 |
+
* @property mixed $next_action
|
29 |
+
* @property string $on_behalf_of
|
30 |
+
* @property string $payment_method
|
31 |
+
* @property string[] $payment_method_types
|
32 |
+
* @property string $receipt_email
|
33 |
+
* @property string $review
|
34 |
+
* @property mixed $shipping
|
35 |
+
* @property string $source
|
36 |
+
* @property string $statement_descriptor
|
37 |
+
* @property string $status
|
38 |
+
* @property mixed $transfer_data
|
39 |
+
* @property string $transfer_group
|
40 |
+
*
|
41 |
+
* @package Stripe
|
42 |
+
*/
|
43 |
+
class PaymentIntent extends ApiResource
|
44 |
+
{
|
45 |
+
const OBJECT_NAME = "payment_intent";
|
46 |
+
|
47 |
+
use ApiOperations\All;
|
48 |
+
use ApiOperations\Create;
|
49 |
+
use ApiOperations\Retrieve;
|
50 |
+
use ApiOperations\Update;
|
51 |
+
|
52 |
+
/**
|
53 |
+
* These constants are possible representations of the status field.
|
54 |
+
*
|
55 |
+
* @link https://stripe.com/docs/api/payment_intents/object#payment_intent_object-status
|
56 |
+
*/
|
57 |
+
const STATUS_CANCELED = 'canceled';
|
58 |
+
const STATUS_PROCESSING = 'processing';
|
59 |
+
const STATUS_REQUIRES_ACTION = 'requires_action';
|
60 |
+
const STATUS_REQUIRES_CAPTURE = 'requires_capture';
|
61 |
+
const STATUS_REQUIRES_CONFIRMATION = 'requires_confirmation';
|
62 |
+
const STATUS_REQUIRES_PAYMENT_METHOD = 'requires_payment_method';
|
63 |
+
const STATUS_SUCCEEDED = 'succeeded';
|
64 |
+
|
65 |
+
/**
|
66 |
+
* @param array|null $params
|
67 |
+
* @param array|string|null $options
|
68 |
+
*
|
69 |
+
* @return PaymentIntent The canceled payment intent.
|
70 |
+
*/
|
71 |
+
public function cancel($params = null, $options = null)
|
72 |
+
{
|
73 |
+
$url = $this->instanceUrl() . '/cancel';
|
74 |
+
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
75 |
+
$this->refreshFrom($response, $opts);
|
76 |
+
return $this;
|
77 |
+
}
|
78 |
+
|
79 |
+
/**
|
80 |
+
* @param array|null $params
|
81 |
+
* @param array|string|null $options
|
82 |
+
*
|
83 |
+
* @return PaymentIntent The captured payment intent.
|
84 |
+
*/
|
85 |
+
public function capture($params = null, $options = null)
|
86 |
+
{
|
87 |
+
$url = $this->instanceUrl() . '/capture';
|
88 |
+
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
89 |
+
$this->refreshFrom($response, $opts);
|
90 |
+
return $this;
|
91 |
+
}
|
92 |
+
|
93 |
+
/**
|
94 |
+
* @param array|null $params
|
95 |
+
* @param array|string|null $options
|
96 |
+
*
|
97 |
+
* @return PaymentIntent The confirmed payment intent.
|
98 |
+
*/
|
99 |
+
public function confirm($params = null, $options = null)
|
100 |
+
{
|
101 |
+
$url = $this->instanceUrl() . '/confirm';
|
102 |
+
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
103 |
+
$this->refreshFrom($response, $opts);
|
104 |
+
return $this;
|
105 |
+
}
|
106 |
+
}
|
app/api/Stripe/PaymentMethod.php
ADDED
@@ -0,0 +1,59 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class PaymentMethod
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property mixed $billing_details
|
11 |
+
* @property mixed $card
|
12 |
+
* @property mixed $card_present
|
13 |
+
* @property int $created
|
14 |
+
* @property string $customer
|
15 |
+
* @property mixed $ideal
|
16 |
+
* @property bool $livemode
|
17 |
+
* @property StripeObject $metadata
|
18 |
+
* @property mixed $sepa_debit
|
19 |
+
* @property string $type
|
20 |
+
*
|
21 |
+
* @package Stripe
|
22 |
+
*/
|
23 |
+
class PaymentMethod extends ApiResource
|
24 |
+
{
|
25 |
+
const OBJECT_NAME = "payment_method";
|
26 |
+
|
27 |
+
use ApiOperations\All;
|
28 |
+
use ApiOperations\Create;
|
29 |
+
use ApiOperations\Retrieve;
|
30 |
+
use ApiOperations\Update;
|
31 |
+
|
32 |
+
/**
|
33 |
+
* @param array|null $params
|
34 |
+
* @param array|string|null $opts
|
35 |
+
*
|
36 |
+
* @return PaymentMethod The attached payment method.
|
37 |
+
*/
|
38 |
+
public function attach($params = null, $opts = null)
|
39 |
+
{
|
40 |
+
$url = $this->instanceUrl() . '/attach';
|
41 |
+
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
42 |
+
$this->refreshFrom($response, $opts);
|
43 |
+
return $this;
|
44 |
+
}
|
45 |
+
|
46 |
+
/**
|
47 |
+
* @param array|null $params
|
48 |
+
* @param array|string|null $opts
|
49 |
+
*
|
50 |
+
* @return PaymentMethod The detached payment method.
|
51 |
+
*/
|
52 |
+
public function detach($params = null, $opts = null)
|
53 |
+
{
|
54 |
+
$url = $this->instanceUrl() . '/detach';
|
55 |
+
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
56 |
+
$this->refreshFrom($response, $opts);
|
57 |
+
return $this;
|
58 |
+
}
|
59 |
+
}
|
app/api/Stripe/Payout.php
ADDED
@@ -0,0 +1,92 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Payout
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $amount
|
11 |
+
* @property int $arrival_date
|
12 |
+
* @property bool $automatic
|
13 |
+
* @property string $balance_transaction
|
14 |
+
* @property int $created
|
15 |
+
* @property string $currency
|
16 |
+
* @property string $description
|
17 |
+
* @property string $destination
|
18 |
+
* @property string $failure_balance_transaction
|
19 |
+
* @property string $failure_code
|
20 |
+
* @property string $failure_message
|
21 |
+
* @property bool $livemode
|
22 |
+
* @property StripeObject $metadata
|
23 |
+
* @property string $method
|
24 |
+
* @property string $source_type
|
25 |
+
* @property string $statement_descriptor
|
26 |
+
* @property string $status
|
27 |
+
* @property string $type
|
28 |
+
*
|
29 |
+
* @package Stripe
|
30 |
+
*/
|
31 |
+
class Payout extends ApiResource
|
32 |
+
{
|
33 |
+
const OBJECT_NAME = "payout";
|
34 |
+
|
35 |
+
use ApiOperations\All;
|
36 |
+
use ApiOperations\Create;
|
37 |
+
use ApiOperations\Retrieve;
|
38 |
+
use ApiOperations\Update;
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Types of payout failure codes.
|
42 |
+
* @link https://stripe.com/docs/api#payout_failures
|
43 |
+
*/
|
44 |
+
const FAILURE_ACCOUNT_CLOSED = 'account_closed';
|
45 |
+
const FAILURE_ACCOUNT_FROZEN = 'account_frozen';
|
46 |
+
const FAILURE_BANK_ACCOUNT_RESTRICTED = 'bank_account_restricted';
|
47 |
+
const FAILURE_BANK_OWNERSHIP_CHANGED = 'bank_ownership_changed';
|
48 |
+
const FAILURE_COULD_NOT_PROCESS = 'could_not_process';
|
49 |
+
const FAILURE_DEBIT_NOT_AUTHORIZED = 'debit_not_authorized';
|
50 |
+
const FAILURE_DECLINED = 'declined';
|
51 |
+
const FAILURE_INCORRECT_ACCOUNT_HOLDER_NAME = 'incorrect_account_holder_name';
|
52 |
+
const FAILURE_INSUFFICIENT_FUNDS = 'insufficient_funds';
|
53 |
+
const FAILURE_INVALID_ACCOUNT_NUMBER = 'invalid_account_number';
|
54 |
+
const FAILURE_INVALID_CURRENCY = 'invalid_currency';
|
55 |
+
const FAILURE_NO_ACCOUNT = 'no_account';
|
56 |
+
const FAILURE_UNSUPPORTED_CARD = 'unsupported_card';
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Possible string representations of the payout methods.
|
60 |
+
* @link https://stripe.com/docs/api/payouts/object#payout_object-method
|
61 |
+
*/
|
62 |
+
const METHOD_STANDARD = 'standard';
|
63 |
+
const METHOD_INSTANT = 'instant';
|
64 |
+
|
65 |
+
/**
|
66 |
+
* Possible string representations of the status of the payout.
|
67 |
+
* @link https://stripe.com/docs/api/payouts/object#payout_object-status
|
68 |
+
*/
|
69 |
+
const STATUS_CANCELED = 'canceled';
|
70 |
+
const STATUS_IN_TRANSIT = 'in_transit';
|
71 |
+
const STATUS_FAILED = 'failed';
|
72 |
+
const STATUS_PAID = 'paid';
|
73 |
+
const STATUS_PENDING = 'pending';
|
74 |
+
|
75 |
+
/**
|
76 |
+
* Possible string representations of the type of payout.
|
77 |
+
* @link https://stripe.com/docs/api/payouts/object#payout_object-type
|
78 |
+
*/
|
79 |
+
const TYPE_BANK_ACCOUNT = 'bank_account';
|
80 |
+
const TYPE_CARD = 'card';
|
81 |
+
|
82 |
+
/**
|
83 |
+
* @return Payout The canceled payout.
|
84 |
+
*/
|
85 |
+
public function cancel()
|
86 |
+
{
|
87 |
+
$url = $this->instanceUrl() . '/cancel';
|
88 |
+
list($response, $opts) = $this->_request('post', $url);
|
89 |
+
$this->refreshFrom($response, $opts);
|
90 |
+
return $this;
|
91 |
+
}
|
92 |
+
}
|
app/api/Stripe/Person.php
ADDED
@@ -0,0 +1,107 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Person
|
7 |
+
*
|
8 |
+
* @package Stripe
|
9 |
+
*
|
10 |
+
* @property string $id
|
11 |
+
* @property string $object
|
12 |
+
* @property string $account
|
13 |
+
* @property mixed $address
|
14 |
+
* @property mixed $address_kana
|
15 |
+
* @property mixed $address_kanji
|
16 |
+
* @property int $created
|
17 |
+
* @property bool $deleted
|
18 |
+
* @property mixed $dob
|
19 |
+
* @property string $email
|
20 |
+
* @property string $first_name
|
21 |
+
* @property string $first_name_kana
|
22 |
+
* @property string $first_name_kanji
|
23 |
+
* @property string $gender
|
24 |
+
* @property bool $id_number_provided
|
25 |
+
* @property string $last_name
|
26 |
+
* @property string $last_name_kana
|
27 |
+
* @property string $last_name_kanji
|
28 |
+
* @property string $maiden_name
|
29 |
+
* @property StripeObject $metadata
|
30 |
+
* @property string $phone
|
31 |
+
* @property mixed $relationship
|
32 |
+
* @property mixed $requirements
|
33 |
+
* @property bool $ssn_last_4_provided
|
34 |
+
* @property mixed $verification
|
35 |
+
*/
|
36 |
+
class Person extends ApiResource
|
37 |
+
{
|
38 |
+
const OBJECT_NAME = "person";
|
39 |
+
|
40 |
+
use ApiOperations\Delete;
|
41 |
+
use ApiOperations\Update;
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Possible string representations of a person's gender.
|
45 |
+
* @link https://stripe.com/docs/api/persons/object#person_object-gender
|
46 |
+
*/
|
47 |
+
const GENDER_MALE = 'male';
|
48 |
+
const GENDER_FEMALE = 'female';
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Possible string representations of a person's verification status.
|
52 |
+
* @link https://stripe.com/docs/api/persons/object#person_object-verification-status
|
53 |
+
*/
|
54 |
+
const VERIFICATION_STATUS_PENDING = 'pending';
|
55 |
+
const VERIFICATION_STATUS_UNVERIFIED = 'unverified';
|
56 |
+
const VERIFICATION_STATUS_VERIFIED = 'verified';
|
57 |
+
|
58 |
+
/**
|
59 |
+
* @return string The API URL for this Stripe account reversal.
|
60 |
+
*/
|
61 |
+
public function instanceUrl()
|
62 |
+
{
|
63 |
+
$id = $this['id'];
|
64 |
+
$account = $this['account'];
|
65 |
+
if (!$id) {
|
66 |
+
throw new Error\InvalidRequest(
|
67 |
+
"Could not determine which URL to request: " .
|
68 |
+
"class instance has invalid ID: $id",
|
69 |
+
null
|
70 |
+
);
|
71 |
+
}
|
72 |
+
$id = Util\Util::utf8($id);
|
73 |
+
$account = Util\Util::utf8($account);
|
74 |
+
|
75 |
+
$base = Account::classUrl();
|
76 |
+
$accountExtn = urlencode($account);
|
77 |
+
$extn = urlencode($id);
|
78 |
+
return "$base/$accountExtn/persons/$extn";
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
+
* @param array|string $_id
|
83 |
+
* @param array|string|null $_opts
|
84 |
+
*
|
85 |
+
* @throws \Stripe\Error\InvalidRequest
|
86 |
+
*/
|
87 |
+
public static function retrieve($_id, $_opts = null)
|
88 |
+
{
|
89 |
+
$msg = "Persons cannot be accessed without an account ID. " .
|
90 |
+
"Retrieve a Person using \$account->retrievePerson('person_id') instead.";
|
91 |
+
throw new Error\InvalidRequest($msg, null);
|
92 |
+
}
|
93 |
+
|
94 |
+
/**
|
95 |
+
* @param string $_id
|
96 |
+
* @param array|null $_params
|
97 |
+
* @param array|string|null $_options
|
98 |
+
*
|
99 |
+
* @throws \Stripe\Error\InvalidRequest
|
100 |
+
*/
|
101 |
+
public static function update($_id, $_params = null, $_options = null)
|
102 |
+
{
|
103 |
+
$msg = "Persons cannot be accessed without an account ID. " .
|
104 |
+
"Retrieve a Person using \$account->retrievePerson('person_id') instead.";
|
105 |
+
throw new Error\InvalidRequest($msg, null);
|
106 |
+
}
|
107 |
+
}
|
app/api/Stripe/Plan.php
CHANGED
@@ -7,84 +7,33 @@ namespace Stripe;
|
|
7 |
Â
*
|
8 |
Â
* @package Stripe
|
9 |
Â
*
|
10 |
-
* @property $id
|
11 |
-
* @property $object
|
12 |
-
* @property $
|
13 |
-
* @property $
|
14 |
-
* @property $
|
15 |
-
* @property $
|
16 |
-
* @property $
|
17 |
-
* @property $
|
18 |
-
* @property
|
19 |
-
* @property $
|
20 |
-
* @property $
|
21 |
-
* @property $
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
22 |
Â
*/
|
23 |
Â
class Plan extends ApiResource
|
24 |
Â
{
|
25 |
-
|
26 |
-
* @param string $id The ID of the plan to retrieve.
|
27 |
-
* @param array|string|null $opts
|
28 |
-
*
|
29 |
-
* @return Plan
|
30 |
-
*/
|
31 |
-
public static function retrieve($id, $opts = null)
|
32 |
-
{
|
33 |
-
return self::_retrieve($id, $opts);
|
34 |
-
}
|
35 |
Â
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
*/
|
42 |
-
public static function create($params = null, $opts = null)
|
43 |
-
{
|
44 |
-
return self::_create($params, $opts);
|
45 |
-
}
|
46 |
-
|
47 |
-
/**
|
48 |
-
* @param string $id The ID of the plan to update.
|
49 |
-
* @param array|null $params
|
50 |
-
* @param array|string|null $options
|
51 |
-
*
|
52 |
-
* @return Plan The updated plan.
|
53 |
-
*/
|
54 |
-
public static function update($id, $params = null, $options = null)
|
55 |
-
{
|
56 |
-
return self::_update($id, $params, $options);
|
57 |
-
}
|
58 |
-
|
59 |
-
/**
|
60 |
-
* @param array|null $params
|
61 |
-
* @param array|string|null $opts
|
62 |
-
*
|
63 |
-
* @return Plan The deleted plan.
|
64 |
-
*/
|
65 |
-
public function delete($params = null, $opts = null)
|
66 |
-
{
|
67 |
-
return $this->_delete($params, $opts);
|
68 |
-
}
|
69 |
-
|
70 |
-
/**
|
71 |
-
* @param array|string|null $opts
|
72 |
-
*
|
73 |
-
* @return Plan The saved plan.
|
74 |
-
*/
|
75 |
-
public function save($opts = null)
|
76 |
-
{
|
77 |
-
return $this->_save($opts);
|
78 |
-
}
|
79 |
-
|
80 |
-
/**
|
81 |
-
* @param array|null $params
|
82 |
-
* @param array|string|null $opts
|
83 |
-
*
|
84 |
-
* @return Collection of Plans
|
85 |
-
*/
|
86 |
-
public static function all($params = null, $opts = null)
|
87 |
-
{
|
88 |
-
return self::_all($params, $opts);
|
89 |
-
}
|
90 |
Â
}
|
7 |
Â
*
|
8 |
Â
* @package Stripe
|
9 |
Â
*
|
10 |
+
* @property string $id
|
11 |
+
* @property string $object
|
12 |
+
* @property bool $active
|
13 |
+
* @property string $aggregate_usage
|
14 |
+
* @property int $amount
|
15 |
+
* @property string $billing_scheme
|
16 |
+
* @property int $created
|
17 |
+
* @property string $currency
|
18 |
+
* @property string $interval
|
19 |
+
* @property int $interval_count
|
20 |
+
* @property bool $livemode
|
21 |
+
* @property StripeObject $metadata
|
22 |
+
* @property string $nickname
|
23 |
+
* @property string $product
|
24 |
+
* @property mixed $tiers
|
25 |
+
* @property string $tiers_mode
|
26 |
+
* @property mixed $transform_usage
|
27 |
+
* @property int $trial_period_days
|
28 |
+
* @property string $usage_type
|
29 |
Â
*/
|
30 |
Â
class Plan extends ApiResource
|
31 |
Â
{
|
32 |
+
const OBJECT_NAME = "plan";
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
33 |
Â
|
34 |
+
use ApiOperations\All;
|
35 |
+
use ApiOperations\Create;
|
36 |
+
use ApiOperations\Delete;
|
37 |
+
use ApiOperations\Retrieve;
|
38 |
+
use ApiOperations\Update;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
39 |
Â
}
|
app/api/Stripe/Product.php
CHANGED
@@ -5,73 +5,42 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class Product
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class Product extends ApiResource
|
11 |
Â
{
|
12 |
-
|
13 |
-
* @param string $id The ID of the Product to retrieve.
|
14 |
-
* @param array|string|null $opts
|
15 |
-
*
|
16 |
-
* @return Product
|
17 |
-
*/
|
18 |
-
public static function retrieve($id, $opts = null)
|
19 |
-
{
|
20 |
-
return self::_retrieve($id, $opts);
|
21 |
-
}
|
22 |
-
|
23 |
-
/**
|
24 |
-
* @param array|null $params
|
25 |
-
* @param array|string|null $opts
|
26 |
-
*
|
27 |
-
* @return Product The created Product.
|
28 |
-
*/
|
29 |
-
public static function create($params = null, $opts = null)
|
30 |
-
{
|
31 |
-
return self::_create($params, $opts);
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @param string $id The ID of the product to update.
|
36 |
-
* @param array|null $params
|
37 |
-
* @param array|string|null $options
|
38 |
-
*
|
39 |
-
* @return Product The updated product.
|
40 |
-
*/
|
41 |
-
public static function update($id, $params = null, $options = null)
|
42 |
-
{
|
43 |
-
return self::_update($id, $params, $options);
|
44 |
-
}
|
45 |
Â
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
public function save($opts = null)
|
52 |
-
{
|
53 |
-
return $this->_save($opts);
|
54 |
-
}
|
55 |
-
|
56 |
-
/**
|
57 |
-
* @param array|null $params
|
58 |
-
* @param array|string|null $opts
|
59 |
-
*
|
60 |
-
* @return Collection of Products
|
61 |
-
*/
|
62 |
-
public static function all($params = null, $opts = null)
|
63 |
-
{
|
64 |
-
return self::_all($params, $opts);
|
65 |
-
}
|
66 |
Â
|
67 |
Â
/**
|
68 |
-
*
|
69 |
-
* @
|
70 |
-
*
|
71 |
-
* @return Product The deleted product.
|
72 |
Â
*/
|
73 |
-
|
74 |
-
|
75 |
-
return $this->_delete($params, $opts);
|
76 |
-
}
|
77 |
Â
}
|
5 |
Â
/**
|
6 |
Â
* Class Product
|
7 |
Â
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property bool $active
|
11 |
+
* @property string[] $attributes
|
12 |
+
* @property string $caption
|
13 |
+
* @property int $created
|
14 |
+
* @property string[] $deactivate_on
|
15 |
+
* @property string $description
|
16 |
+
* @property string[] $images
|
17 |
+
* @property bool $livemode
|
18 |
+
* @property StripeObject $metadata
|
19 |
+
* @property string $name
|
20 |
+
* @property mixed $package_dimensions
|
21 |
+
* @property bool $shippable
|
22 |
+
* @property string $statement_descriptor
|
23 |
+
* @property string $type
|
24 |
+
* @property string $unit_label
|
25 |
+
* @property int $updated
|
26 |
+
* @property string $url
|
27 |
+
*
|
28 |
Â
* @package Stripe
|
29 |
Â
*/
|
30 |
Â
class Product extends ApiResource
|
31 |
Â
{
|
32 |
+
const OBJECT_NAME = "product";
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
33 |
Â
|
34 |
+
use ApiOperations\All;
|
35 |
+
use ApiOperations\Create;
|
36 |
+
use ApiOperations\Delete;
|
37 |
+
use ApiOperations\Retrieve;
|
38 |
+
use ApiOperations\Update;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
39 |
Â
|
40 |
Â
/**
|
41 |
+
* Possible string representations of the type of product.
|
42 |
+
* @link https://stripe.com/docs/api/service_products/object#service_product_object-type
|
Â
|
|
Â
|
|
43 |
Â
*/
|
44 |
+
const TYPE_GOOD = 'good';
|
45 |
+
const TYPE_SERVICE = 'service';
|
Â
|
|
Â
|
|
46 |
Â
}
|
app/api/Stripe/Radar/EarlyFraudWarning.php
ADDED
@@ -0,0 +1,36 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Radar;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class EarlyFraudWarning
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property bool $actionable
|
11 |
+
* @property string $charge
|
12 |
+
* @property int $created
|
13 |
+
* @property string $fraud_type
|
14 |
+
* @property bool $livemode
|
15 |
+
*
|
16 |
+
* @package Stripe\Radar
|
17 |
+
*/
|
18 |
+
class EarlyFraudWarning extends \Stripe\ApiResource
|
19 |
+
{
|
20 |
+
const OBJECT_NAME = "radar.early_fraud_warning";
|
21 |
+
|
22 |
+
use \Stripe\ApiOperations\All;
|
23 |
+
use \Stripe\ApiOperations\Retrieve;
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Possible string representations of an early fraud warning's fraud type.
|
27 |
+
* @link https://stripe.com/docs/api/early_fraud_warnings/object#early_fraud_warning_object-fraud_type
|
28 |
+
*/
|
29 |
+
const FRAUD_TYPE_CARD_NEVER_RECEIVED = 'card_never_received';
|
30 |
+
const FRAUD_TYPE_FRAUDULENT_CARD_APPLICATION = 'fraudulent_card_application';
|
31 |
+
const FRAUD_TYPE_MADE_WITH_COUNTERFEIT_CARD = 'made_with_counterfeit_card';
|
32 |
+
const FRAUD_TYPE_MADE_WITH_LOST_CARD = 'made_with_lost_card';
|
33 |
+
const FRAUD_TYPE_MADE_WITH_STOLEN_CARD = 'made_with_stolen_card';
|
34 |
+
const FRAUD_TYPE_MISC = 'misc';
|
35 |
+
const FRAUD_TYPE_UNAUTHORIZED_USE_OF_CARD = 'unauthorized_use_of_card';
|
36 |
+
}
|
app/api/Stripe/Radar/ValueList.php
ADDED
@@ -0,0 +1,32 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Radar;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class ValueList
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property string $alias
|
11 |
+
* @property int $created
|
12 |
+
* @property string $created_by
|
13 |
+
* @property string $item_type
|
14 |
+
* @property Collection $list_items
|
15 |
+
* @property bool $livemode
|
16 |
+
* @property StripeObject $metadata
|
17 |
+
* @property mixed $name
|
18 |
+
* @property int $updated
|
19 |
+
* @property string $updated_by
|
20 |
+
*
|
21 |
+
* @package Stripe\Radar
|
22 |
+
*/
|
23 |
+
class ValueList extends \Stripe\ApiResource
|
24 |
+
{
|
25 |
+
const OBJECT_NAME = "radar.value_list";
|
26 |
+
|
27 |
+
use \Stripe\ApiOperations\All;
|
28 |
+
use \Stripe\ApiOperations\Create;
|
29 |
+
use \Stripe\ApiOperations\Delete;
|
30 |
+
use \Stripe\ApiOperations\Retrieve;
|
31 |
+
use \Stripe\ApiOperations\Update;
|
32 |
+
}
|
app/api/Stripe/Radar/ValueListItem.php
ADDED
@@ -0,0 +1,26 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Radar;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class ValueListItem
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $created
|
11 |
+
* @property string $created_by
|
12 |
+
* @property string $list
|
13 |
+
* @property bool $livemode
|
14 |
+
* @property string $value
|
15 |
+
*
|
16 |
+
* @package Stripe\Radar
|
17 |
+
*/
|
18 |
+
class ValueListItem extends \Stripe\ApiResource
|
19 |
+
{
|
20 |
+
const OBJECT_NAME = "radar.value_list_item";
|
21 |
+
|
22 |
+
use \Stripe\ApiOperations\All;
|
23 |
+
use \Stripe\ApiOperations\Create;
|
24 |
+
use \Stripe\ApiOperations\Delete;
|
25 |
+
use \Stripe\ApiOperations\Retrieve;
|
26 |
+
}
|
app/api/Stripe/Recipient.php
CHANGED
@@ -6,74 +6,31 @@ namespace Stripe;
|
|
6 |
Â
* Class Recipient
|
7 |
Â
*
|
8 |
Â
* @package Stripe
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
9 |
Â
*/
|
10 |
Â
class Recipient extends ApiResource
|
11 |
Â
{
|
12 |
-
|
13 |
-
* @param string $id The ID of the recipient to retrieve.
|
14 |
-
* @param array|string|null $opts
|
15 |
-
*
|
16 |
-
* @return Recipient
|
17 |
-
*/
|
18 |
-
public static function retrieve($id, $opts = null)
|
19 |
-
{
|
20 |
-
return self::_retrieve($id, $opts);
|
21 |
-
}
|
22 |
-
|
23 |
-
/**
|
24 |
-
* @param array|null $params
|
25 |
-
* @param array|string|null $opts
|
26 |
-
*
|
27 |
-
* @return Collection of Recipients
|
28 |
-
*/
|
29 |
-
public static function all($params = null, $opts = null)
|
30 |
-
{
|
31 |
-
return self::_all($params, $opts);
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @param array|null $params
|
36 |
-
* @param array|string|null $opts
|
37 |
-
*
|
38 |
-
* @return Recipient The created recipient.
|
39 |
-
*/
|
40 |
-
public static function create($params = null, $opts = null)
|
41 |
-
{
|
42 |
-
return self::_create($params, $opts);
|
43 |
-
}
|
44 |
-
|
45 |
-
/**
|
46 |
-
* @param string $id The ID of the recipient to update.
|
47 |
-
* @param array|null $params
|
48 |
-
* @param array|string|null $options
|
49 |
-
*
|
50 |
-
* @return Recipient The updated recipient.
|
51 |
-
*/
|
52 |
-
public static function update($id, $params = null, $options = null)
|
53 |
-
{
|
54 |
-
return self::_update($id, $params, $options);
|
55 |
-
}
|
56 |
-
|
57 |
-
/**
|
58 |
-
* @param array|string|null $opts
|
59 |
-
*
|
60 |
-
* @return Recipient The saved recipient.
|
61 |
-
*/
|
62 |
-
public function save($opts = null)
|
63 |
-
{
|
64 |
-
return $this->_save($opts);
|
65 |
-
}
|
66 |
-
|
67 |
-
/**
|
68 |
-
* @param array|null $params
|
69 |
-
*
|
70 |
-
* @return Recipient The deleted recipient.
|
71 |
-
*/
|
72 |
-
public function delete($params = null, $opts = null)
|
73 |
-
{
|
74 |
-
return $this->_delete($params, $opts);
|
75 |
-
}
|
76 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
77 |
Â
|
78 |
Â
/**
|
79 |
Â
* @param array|null $params
|
@@ -82,9 +39,7 @@ class Recipient extends ApiResource
|
|
82 |
Â
*/
|
83 |
Â
public function transfers($params = null)
|
84 |
Â
{
|
85 |
-
|
86 |
-
$params = array();
|
87 |
-
}
|
88 |
Â
$params['recipient'] = $this->id;
|
89 |
Â
$transfers = Transfer::all($params, $this->_opts);
|
90 |
Â
return $transfers;
|
6 |
Â
* Class Recipient
|
7 |
Â
*
|
8 |
Â
* @package Stripe
|
9 |
+
*
|
10 |
+
* @property string $id
|
11 |
+
* @property string $object
|
12 |
+
* @property mixed $active_account
|
13 |
+
* @property Collection $cards
|
14 |
+
* @property int $created
|
15 |
+
* @property string $default_card
|
16 |
+
* @property string $description
|
17 |
+
* @property string $email
|
18 |
+
* @property bool $livemode
|
19 |
+
* @property StripeObject $metadata
|
20 |
+
* @property string $migrated_to
|
21 |
+
* @property string $name
|
22 |
+
* @property string $rolled_back_from
|
23 |
+
* @property string $type
|
24 |
Â
*/
|
25 |
Â
class Recipient extends ApiResource
|
26 |
Â
{
|
27 |
+
const OBJECT_NAME = "recipient";
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
28 |
Â
|
29 |
+
use ApiOperations\All;
|
30 |
+
use ApiOperations\Create;
|
31 |
+
use ApiOperations\Delete;
|
32 |
+
use ApiOperations\Retrieve;
|
33 |
+
use ApiOperations\Update;
|
34 |
Â
|
35 |
Â
/**
|
36 |
Â
* @param array|null $params
|
39 |
Â
*/
|
40 |
Â
public function transfers($params = null)
|
41 |
Â
{
|
42 |
+
$params = $params ?: [];
|
Â
|
|
Â
|
|
43 |
Â
$params['recipient'] = $this->id;
|
44 |
Â
$transfers = Transfer::all($params, $this->_opts);
|
45 |
Â
return $transfers;
|
app/api/Stripe/RecipientTransfer.php
ADDED
@@ -0,0 +1,38 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class RecipientTransfer
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $amount
|
11 |
+
* @property int $amount_reversed
|
12 |
+
* @property string $balance_transaction
|
13 |
+
* @property string $bank_account
|
14 |
+
* @property string $card
|
15 |
+
* @property int $created
|
16 |
+
* @property string $currency
|
17 |
+
* @property int $date
|
18 |
+
* @property string $description
|
19 |
+
* @property string $destination
|
20 |
+
* @property string $failure_code
|
21 |
+
* @property string $failure_message
|
22 |
+
* @property bool $livemode
|
23 |
+
* @property StripeObject $metadata
|
24 |
+
* @property string $method
|
25 |
+
* @property string $recipient
|
26 |
+
* @property mixed $reversals
|
27 |
+
* @property bool $reversed
|
28 |
+
* @property string $source_type
|
29 |
+
* @property string $statement_descriptor
|
30 |
+
* @property string $status
|
31 |
+
* @property string $type
|
32 |
+
*
|
33 |
+
* @package Stripe
|
34 |
+
*/
|
35 |
+
class RecipientTransfer extends ApiResource
|
36 |
+
{
|
37 |
+
const OBJECT_NAME = "recipient_transfer";
|
38 |
+
}
|
app/api/Stripe/Refund.php
CHANGED
@@ -8,72 +8,53 @@ namespace Stripe;
|
|
8 |
Â
* @property string $id
|
9 |
Â
* @property string $object
|
10 |
Â
* @property int $amount
|
11 |
-
* @property
|
12 |
Â
* @property string $charge
|
13 |
Â
* @property int $created
|
14 |
Â
* @property string $currency
|
15 |
-
* @property
|
16 |
-
* @property
|
17 |
-
* @property
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
18 |
Â
* @property string $status
|
Â
|
|
19 |
Â
*
|
20 |
Â
* @package Stripe
|
21 |
Â
*/
|
22 |
Â
class Refund extends ApiResource
|
23 |
Â
{
|
Â
|
|
24 |
Â
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
* @return Refund
|
30 |
-
*/
|
31 |
-
public static function retrieve($id, $options = null)
|
32 |
-
{
|
33 |
-
return self::_retrieve($id, $options);
|
34 |
-
}
|
35 |
-
|
36 |
-
/**
|
37 |
-
* @param string $id The ID of the refund to update.
|
38 |
-
* @param array|null $params
|
39 |
-
* @param array|string|null $options
|
40 |
-
*
|
41 |
-
* @return Refund The updated refund.
|
42 |
-
*/
|
43 |
-
public static function update($id, $params = null, $options = null)
|
44 |
-
{
|
45 |
-
return self::_update($id, $params, $options);
|
46 |
-
}
|
47 |
Â
|
48 |
Â
/**
|
49 |
-
*
|
50 |
-
* @
|
51 |
-
*
|
52 |
-
* @return Collection of Refunds
|
53 |
Â
*/
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
}
|
58 |
Â
|
59 |
Â
/**
|
60 |
-
*
|
61 |
-
* @
|
62 |
-
*
|
63 |
-
* @return Refund The created refund.
|
64 |
Â
*/
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
}
|
69 |
Â
|
70 |
Â
/**
|
71 |
-
*
|
72 |
-
*
|
73 |
-
* @return Refund The saved refund.
|
74 |
Â
*/
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
Â
}
|
8 |
Â
* @property string $id
|
9 |
Â
* @property string $object
|
10 |
Â
* @property int $amount
|
11 |
+
* @property string $balance_transaction
|
12 |
Â
* @property string $charge
|
13 |
Â
* @property int $created
|
14 |
Â
* @property string $currency
|
15 |
+
* @property string $description
|
16 |
+
* @property string $failure_balance_transaction
|
17 |
+
* @property string $failure_reason
|
18 |
+
* @property StripeObject $metadata
|
19 |
+
* @property string $reason
|
20 |
+
* @property string $receipt_number
|
21 |
+
* @property string $source_transfer_reversal
|
22 |
Â
* @property string $status
|
23 |
+
* @property string $transfer_reversal
|
24 |
Â
*
|
25 |
Â
* @package Stripe
|
26 |
Â
*/
|
27 |
Â
class Refund extends ApiResource
|
28 |
Â
{
|
29 |
+
const OBJECT_NAME = "refund";
|
30 |
Â
|
31 |
+
use ApiOperations\All;
|
32 |
+
use ApiOperations\Create;
|
33 |
+
use ApiOperations\Retrieve;
|
34 |
+
use ApiOperations\Update;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
35 |
Â
|
36 |
Â
/**
|
37 |
+
* Possible string representations of the failure reason.
|
38 |
+
* @link https://stripe.com/docs/api/refunds/object#refund_object-failure_reason
|
Â
|
|
Â
|
|
39 |
Â
*/
|
40 |
+
const FAILURE_REASON = 'expired_or_canceled_card';
|
41 |
+
const FAILURE_REASON_LOST_OR_STOLEN_CARD = 'lost_or_stolen_card';
|
42 |
+
const FAILURE_REASON_UNKNOWN = 'unknown';
|
Â
|
|
43 |
Â
|
44 |
Â
/**
|
45 |
+
* Possible string representations of the refund reason.
|
46 |
+
* @link https://stripe.com/docs/api/refunds/object#refund_object-reason
|
Â
|
|
Â
|
|
47 |
Â
*/
|
48 |
+
const REASON_DUPLICATE = 'duplicate';
|
49 |
+
const REASON_FRAUDULENT = 'fraudulent';
|
50 |
+
const REASON_REQUESTED_BY_CUSTOMER = 'requested_by_customer';
|
Â
|
|
51 |
Â
|
52 |
Â
/**
|
53 |
+
* Possible string representations of the refund status.
|
54 |
+
* @link https://stripe.com/docs/api/refunds/object#refund_object-status
|
Â
|
|
55 |
Â
*/
|
56 |
+
const STATUS_CANCELED = 'canceled';
|
57 |
+
const STATUS_FAILED = 'failed';
|
58 |
+
const STATUS_PENDING = 'pending';
|
59 |
+
const STATUS_SUCCEEDED = 'succeeded';
|
60 |
Â
}
|
app/api/Stripe/Reporting/ReportRun.php
ADDED
@@ -0,0 +1,28 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Reporting;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class ReportRun
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $created
|
11 |
+
* @property string $error
|
12 |
+
* @property bool $livemode
|
13 |
+
* @property mixed $parameters
|
14 |
+
* @property string $report_type
|
15 |
+
* @property mixed $result
|
16 |
+
* @property string $status
|
17 |
+
* @property int $succeeded_at
|
18 |
+
*
|
19 |
+
* @package Stripe\Reporting
|
20 |
+
*/
|
21 |
+
class ReportRun extends \Stripe\ApiResource
|
22 |
+
{
|
23 |
+
const OBJECT_NAME = "reporting.report_run";
|
24 |
+
|
25 |
+
use \Stripe\ApiOperations\All;
|
26 |
+
use \Stripe\ApiOperations\Create;
|
27 |
+
use \Stripe\ApiOperations\Retrieve;
|
28 |
+
}
|
app/api/Stripe/Reporting/ReportType.php
ADDED
@@ -0,0 +1,24 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Reporting;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class ReportType
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $data_available_end
|
11 |
+
* @property int $data_available_start
|
12 |
+
* @property string $name
|
13 |
+
* @property int $updated
|
14 |
+
* @property string $version
|
15 |
+
*
|
16 |
+
* @package Stripe\Reporting
|
17 |
+
*/
|
18 |
+
class ReportType extends \Stripe\ApiResource
|
19 |
+
{
|
20 |
+
const OBJECT_NAME = "reporting.report_type";
|
21 |
+
|
22 |
+
use \Stripe\ApiOperations\All;
|
23 |
+
use \Stripe\ApiOperations\Retrieve;
|
24 |
+
}
|
app/api/Stripe/RequestTelemetry.php
ADDED
@@ -0,0 +1,27 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class RequestTelemetry
|
7 |
+
*
|
8 |
+
* Tracks client request telemetry
|
9 |
+
* @package Stripe
|
10 |
+
*/
|
11 |
+
class RequestTelemetry
|
12 |
+
{
|
13 |
+
public $requestId;
|
14 |
+
public $requestDuration;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Initialize a new telemetry object.
|
18 |
+
*
|
19 |
+
* @param string $requestId The request's request ID.
|
20 |
+
* @param int $requestDuration The request's duration in milliseconds.
|
21 |
+
*/
|
22 |
+
public function __construct($requestId, $requestDuration)
|
23 |
+
{
|
24 |
+
$this->requestId = $requestId;
|
25 |
+
$this->requestDuration = $requestDuration;
|
26 |
+
}
|
27 |
+
}
|
app/api/Stripe/Review.php
ADDED
@@ -0,0 +1,57 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Review
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property string $billing_zip
|
11 |
+
* @property string $charge
|
12 |
+
* @property string $closed_reason
|
13 |
+
* @property int $created
|
14 |
+
* @property string $ip_address
|
15 |
+
* @property mixed $ip_address_location
|
16 |
+
* @property bool $livemode
|
17 |
+
* @property bool $open
|
18 |
+
* @property string $opened_reason
|
19 |
+
* @property string $payment_intent
|
20 |
+
* @property string $reason
|
21 |
+
* @property mixed $session
|
22 |
+
*
|
23 |
+
* @package Stripe
|
24 |
+
*/
|
25 |
+
class Review extends ApiResource
|
26 |
+
{
|
27 |
+
const OBJECT_NAME = "review";
|
28 |
+
|
29 |
+
use ApiOperations\All;
|
30 |
+
use ApiOperations\Retrieve;
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Possible string representations of the current, the opening or the closure reason of the review.
|
34 |
+
* Not all of these enumeration apply to all of the ´reason´ fields. Please consult the Review object to
|
35 |
+
* determine where these are apply.
|
36 |
+
* @link https://stripe.com/docs/api/radar/reviews/object
|
37 |
+
*/
|
38 |
+
const REASON_APPROVED = 'approved';
|
39 |
+
const REASON_DISPUTED = 'disputed';
|
40 |
+
const REASON_MANUAL = 'manual';
|
41 |
+
const REASON_REFUNDED = 'refunded';
|
42 |
+
const REASON_REFUNDED_AS_FRAUD = 'refunded_as_fraud';
|
43 |
+
const REASON_RULE = 'rule';
|
44 |
+
|
45 |
+
/**
|
46 |
+
* @param array|string|null $options
|
47 |
+
*
|
48 |
+
* @return Review The approved review.
|
49 |
+
*/
|
50 |
+
public function approve($params = null, $options = null)
|
51 |
+
{
|
52 |
+
$url = $this->instanceUrl() . '/approve';
|
53 |
+
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
54 |
+
$this->refreshFrom($response, $opts);
|
55 |
+
return $this;
|
56 |
+
}
|
57 |
+
}
|
app/api/Stripe/SKU.php
CHANGED
@@ -5,73 +5,30 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class SKU
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class SKU extends ApiResource
|
11 |
Â
{
|
12 |
-
|
13 |
-
* @param string $id The ID of the SKU to retrieve.
|
14 |
-
* @param array|string|null $opts
|
15 |
-
*
|
16 |
-
* @return SKU
|
17 |
-
*/
|
18 |
-
public static function retrieve($id, $opts = null)
|
19 |
-
{
|
20 |
-
return self::_retrieve($id, $opts);
|
21 |
-
}
|
22 |
-
|
23 |
-
/**
|
24 |
-
* @param array|null $params
|
25 |
-
* @param array|string|null $opts
|
26 |
-
*
|
27 |
-
* @return SKU The created SKU.
|
28 |
-
*/
|
29 |
-
public static function create($params = null, $opts = null)
|
30 |
-
{
|
31 |
-
return self::_create($params, $opts);
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @param string $id The ID of the SKU to update.
|
36 |
-
* @param array|null $params
|
37 |
-
* @param array|string|null $options
|
38 |
-
*
|
39 |
-
* @return SKU The updated SKU.
|
40 |
-
*/
|
41 |
-
public static function update($id, $params = null, $options = null)
|
42 |
-
{
|
43 |
-
return self::_update($id, $params, $options);
|
44 |
-
}
|
45 |
-
|
46 |
-
/**
|
47 |
-
* @param array|string|null $opts
|
48 |
-
*
|
49 |
-
* @return SKU The saved SKU.
|
50 |
-
*/
|
51 |
-
public function save($opts = null)
|
52 |
-
{
|
53 |
-
return $this->_save($opts);
|
54 |
-
}
|
55 |
-
|
56 |
-
/**
|
57 |
-
* @param array|null $params
|
58 |
-
* @param array|string|null $opts
|
59 |
-
*
|
60 |
-
* @return Collection of SKUs
|
61 |
-
*/
|
62 |
-
public static function all($params = null, $opts = null)
|
63 |
-
{
|
64 |
-
return self::_all($params, $opts);
|
65 |
-
}
|
66 |
Â
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
*/
|
73 |
-
public function delete($params = null, $opts = null)
|
74 |
-
{
|
75 |
-
return $this->_delete($params, $opts);
|
76 |
-
}
|
77 |
Â
}
|
5 |
Â
/**
|
6 |
Â
* Class SKU
|
7 |
Â
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property bool $active
|
11 |
+
* @property mixed $attributes
|
12 |
+
* @property int $created
|
13 |
+
* @property string $currency
|
14 |
+
* @property string $image
|
15 |
+
* @property mixed $inventory
|
16 |
+
* @property bool $livemode
|
17 |
+
* @property StripeObject $metadata
|
18 |
+
* @property mixed $package_dimensions
|
19 |
+
* @property int $price
|
20 |
+
* @property string $product
|
21 |
+
* @property int $updated
|
22 |
+
*
|
23 |
Â
* @package Stripe
|
24 |
Â
*/
|
25 |
Â
class SKU extends ApiResource
|
26 |
Â
{
|
27 |
+
const OBJECT_NAME = "sku";
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
28 |
Â
|
29 |
+
use ApiOperations\All;
|
30 |
+
use ApiOperations\Create;
|
31 |
+
use ApiOperations\Delete;
|
32 |
+
use ApiOperations\Retrieve;
|
33 |
+
use ApiOperations\Update;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
34 |
Â
}
|
app/api/Stripe/SetupIntent.php
ADDED
@@ -0,0 +1,74 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class SetupIntent
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property string $application
|
11 |
+
* @property string $client_secret
|
12 |
+
* @property int $created
|
13 |
+
* @property string $customer
|
14 |
+
* @property string $description
|
15 |
+
* @property mixed $last_setup_error
|
16 |
+
* @property bool $livemode
|
17 |
+
* @property StripeObject $metadata
|
18 |
+
* @property mixed $next_action
|
19 |
+
* @property string $on_behalf_of
|
20 |
+
* @property string $payment_method
|
21 |
+
* @property string[] $payment_method_types
|
22 |
+
* @property string $status
|
23 |
+
*
|
24 |
+
* @package Stripe
|
25 |
+
*/
|
26 |
+
class SetupIntent extends ApiResource
|
27 |
+
{
|
28 |
+
const OBJECT_NAME = "setup_intent";
|
29 |
+
|
30 |
+
use ApiOperations\All;
|
31 |
+
use ApiOperations\Create;
|
32 |
+
use ApiOperations\Retrieve;
|
33 |
+
use ApiOperations\Update;
|
34 |
+
|
35 |
+
/**
|
36 |
+
* These constants are possible representations of the status field.
|
37 |
+
*
|
38 |
+
* @link https://stripe.com/docs/api/setup_intents/object#setup_intent_object-status
|
39 |
+
*/
|
40 |
+
const STATUS_CANCELED = 'canceled';
|
41 |
+
const STATUS_PROCESSING = 'processing';
|
42 |
+
const STATUS_REQUIRES_ACTION = 'requires_action';
|
43 |
+
const STATUS_REQUIRES_CONFIRMATION = 'requires_confirmation';
|
44 |
+
const STATUS_REQUIRES_PAYMENT_METHOD = 'requires_payment_method';
|
45 |
+
const STATUS_SUCCEEDED = 'succeeded';
|
46 |
+
|
47 |
+
/**
|
48 |
+
* @param array|null $params
|
49 |
+
* @param array|string|null $options
|
50 |
+
*
|
51 |
+
* @return SetupIntent The canceled setup intent.
|
52 |
+
*/
|
53 |
+
public function cancel($params = null, $options = null)
|
54 |
+
{
|
55 |
+
$url = $this->instanceUrl() . '/cancel';
|
56 |
+
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
57 |
+
$this->refreshFrom($response, $opts);
|
58 |
+
return $this;
|
59 |
+
}
|
60 |
+
|
61 |
+
/**
|
62 |
+
* @param array|null $params
|
63 |
+
* @param array|string|null $options
|
64 |
+
*
|
65 |
+
* @return SetupIntent The confirmed setup intent.
|
66 |
+
*/
|
67 |
+
public function confirm($params = null, $options = null)
|
68 |
+
{
|
69 |
+
$url = $this->instanceUrl() . '/confirm';
|
70 |
+
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
71 |
+
$this->refreshFrom($response, $opts);
|
72 |
+
return $this;
|
73 |
+
}
|
74 |
+
}
|
app/api/Stripe/Sigma/ScheduledQueryRun.php
ADDED
@@ -0,0 +1,33 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Sigma;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Authorization
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $created
|
11 |
+
* @property int $data_load_time
|
12 |
+
* @property string $error
|
13 |
+
* @property \Stripe\FileUpload $file
|
14 |
+
* @property bool $livemode
|
15 |
+
* @property int $result_available_until
|
16 |
+
* @property string $sql
|
17 |
+
* @property string $status
|
18 |
+
* @property string $title
|
19 |
+
*
|
20 |
+
* @package Stripe\Sigma
|
21 |
+
*/
|
22 |
+
class ScheduledQueryRun extends \Stripe\ApiResource
|
23 |
+
{
|
24 |
+
const OBJECT_NAME = "scheduled_query_run";
|
25 |
+
|
26 |
+
use \Stripe\ApiOperations\All;
|
27 |
+
use \Stripe\ApiOperations\Retrieve;
|
28 |
+
|
29 |
+
public static function classUrl()
|
30 |
+
{
|
31 |
+
return "/v1/sigma/scheduled_query_runs";
|
32 |
+
}
|
33 |
+
}
|
app/api/Stripe/SingletonApiResource.php
CHANGED
@@ -22,7 +22,9 @@ abstract class SingletonApiResource extends ApiResource
|
|
22 |
Â
*/
|
23 |
Â
public static function classUrl()
|
24 |
Â
{
|
25 |
-
|
Â
|
|
Â
|
|
26 |
Â
return "/v1/${base}";
|
27 |
Â
}
|
28 |
Â
|
22 |
Â
*/
|
23 |
Â
public static function classUrl()
|
24 |
Â
{
|
25 |
+
// Replace dots with slashes for namespaced resources, e.g. if the object's name is
|
26 |
+
// "foo.bar", then its URL will be "/v1/foo/bar".
|
27 |
+
$base = str_replace('.', '/', static::OBJECT_NAME);
|
28 |
Â
return "/v1/${base}";
|
29 |
Â
}
|
30 |
Â
|
app/api/Stripe/Source.php
CHANGED
@@ -5,48 +5,143 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class Source
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class Source extends ApiResource
|
11 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
12 |
Â
/**
|
13 |
-
* @param
|
14 |
-
* @param array|string|null $
|
15 |
Â
*
|
16 |
-
* @return Source
|
17 |
Â
*/
|
18 |
-
public
|
19 |
Â
{
|
20 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
21 |
Â
}
|
22 |
Â
|
23 |
Â
/**
|
24 |
Â
* @param array|null $params
|
25 |
-
* @param array|string|null $
|
26 |
Â
*
|
27 |
-
* @return
|
Â
|
|
Â
|
|
28 |
Â
*/
|
29 |
-
public
|
30 |
Â
{
|
31 |
-
|
32 |
Â
}
|
33 |
Â
|
34 |
Â
/**
|
35 |
Â
* @param array|null $params
|
36 |
-
* @param array|string|null $
|
37 |
Â
*
|
38 |
-
* @return
|
39 |
Â
*/
|
40 |
-
public
|
41 |
Â
{
|
42 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
43 |
Â
}
|
44 |
Â
|
45 |
Â
/**
|
46 |
Â
* @param array|null $params
|
47 |
Â
* @param array|string|null $options
|
48 |
Â
*
|
49 |
-
* @return
|
50 |
Â
*/
|
51 |
Â
public function verify($params = null, $options = null)
|
52 |
Â
{
|
5 |
Â
/**
|
6 |
Â
* Class Source
|
7 |
Â
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property mixed $ach_credit_transfer
|
11 |
+
* @property mixed $ach_debit
|
12 |
+
* @property mixed $alipay
|
13 |
+
* @property int $amount
|
14 |
+
* @property mixed $bancontact
|
15 |
+
* @property mixed $card
|
16 |
+
* @property mixed $card_present
|
17 |
+
* @property string $client_secret
|
18 |
+
* @property mixed $code_verification
|
19 |
+
* @property int $created
|
20 |
+
* @property string $currency
|
21 |
+
* @property string $customer
|
22 |
+
* @property mixed $eps
|
23 |
+
* @property string $flow
|
24 |
+
* @property mixed $giropay
|
25 |
+
* @property mixed $ideal
|
26 |
+
* @property bool $livemode
|
27 |
+
* @property StripeObject $metadata
|
28 |
+
* @property mixed $multibanco
|
29 |
+
* @property mixed $owner
|
30 |
+
* @property mixed $p24
|
31 |
+
* @property mixed $receiver
|
32 |
+
* @property mixed $redirect
|
33 |
+
* @property mixed $sepa_debit
|
34 |
+
* @property mixed $sofort
|
35 |
+
* @property string $statement_descriptor
|
36 |
+
* @property string $status
|
37 |
+
* @property mixed $three_d_secure
|
38 |
+
* @property string $type
|
39 |
+
* @property string $usage
|
40 |
+
* @property mixed $wechat
|
41 |
+
|
42 |
Â
* @package Stripe
|
43 |
Â
*/
|
44 |
Â
class Source extends ApiResource
|
45 |
Â
{
|
46 |
+
const OBJECT_NAME = "source";
|
47 |
+
|
48 |
+
use ApiOperations\Create;
|
49 |
+
use ApiOperations\Retrieve;
|
50 |
+
use ApiOperations\Update;
|
51 |
+
|
52 |
+
/**
|
53 |
+
* Possible string representations of source flows.
|
54 |
+
* @link https://stripe.com/docs/api#source_object-flow
|
55 |
+
*/
|
56 |
+
const FLOW_REDIRECT = 'redirect';
|
57 |
+
const FLOW_RECEIVER = 'receiver';
|
58 |
+
const FLOW_CODE_VERIFICATION = 'code_verification';
|
59 |
+
const FLOW_NONE = 'none';
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Possible string representations of source statuses.
|
63 |
+
* @link https://stripe.com/docs/api#source_object-status
|
64 |
+
*/
|
65 |
+
const STATUS_CANCELED = 'canceled';
|
66 |
+
const STATUS_CHARGEABLE = 'chargeable';
|
67 |
+
const STATUS_CONSUMED = 'consumed';
|
68 |
+
const STATUS_FAILED = 'failed';
|
69 |
+
const STATUS_PENDING = 'pending';
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Possible string representations of source usage.
|
73 |
+
* @link https://stripe.com/docs/api#source_object-usage
|
74 |
+
*/
|
75 |
+
const USAGE_REUSABLE = 'reusable';
|
76 |
+
const USAGE_SINGLE_USE = 'single_use';
|
77 |
+
|
78 |
Â
/**
|
79 |
+
* @param array|null $params
|
80 |
+
* @param array|string|null $options
|
81 |
Â
*
|
82 |
+
* @return Source The detached source.
|
83 |
Â
*/
|
84 |
+
public function detach($params = null, $options = null)
|
85 |
Â
{
|
86 |
+
self::_validateParams($params);
|
87 |
+
|
88 |
+
$id = $this['id'];
|
89 |
+
if (!$id) {
|
90 |
+
$class = get_class($this);
|
91 |
+
$msg = "Could not determine which URL to request: $class instance "
|
92 |
+
. "has invalid ID: $id";
|
93 |
+
throw new Error\InvalidRequest($msg, null);
|
94 |
+
}
|
95 |
+
|
96 |
+
if ($this['customer']) {
|
97 |
+
$base = Customer::classUrl();
|
98 |
+
$parentExtn = urlencode(Util\Util::utf8($this['customer']));
|
99 |
+
$extn = urlencode(Util\Util::utf8($id));
|
100 |
+
$url = "$base/$parentExtn/sources/$extn";
|
101 |
+
|
102 |
+
list($response, $opts) = $this->_request('delete', $url, $params, $options);
|
103 |
+
$this->refreshFrom($response, $opts);
|
104 |
+
return $this;
|
105 |
+
} else {
|
106 |
+
$message = "This source object does not appear to be currently attached "
|
107 |
+
. "to a customer object.";
|
108 |
+
throw new Error\Api($message);
|
109 |
+
}
|
110 |
Â
}
|
111 |
Â
|
112 |
Â
/**
|
113 |
Â
* @param array|null $params
|
114 |
+
* @param array|string|null $options
|
115 |
Â
*
|
116 |
+
* @return Source The detached source.
|
117 |
+
*
|
118 |
+
* @deprecated Use the `detach` method instead.
|
119 |
Â
*/
|
120 |
+
public function delete($params = null, $options = null)
|
121 |
Â
{
|
122 |
+
$this->detach($params, $options);
|
123 |
Â
}
|
124 |
Â
|
125 |
Â
/**
|
126 |
Â
* @param array|null $params
|
127 |
+
* @param array|string|null $options
|
128 |
Â
*
|
129 |
+
* @return Collection The list of source transactions.
|
130 |
Â
*/
|
131 |
+
public function sourceTransactions($params = null, $options = null)
|
132 |
Â
{
|
133 |
+
$url = $this->instanceUrl() . '/source_transactions';
|
134 |
+
list($response, $opts) = $this->_request('get', $url, $params, $options);
|
135 |
+
$obj = Util\Util::convertToStripeObject($response, $opts);
|
136 |
+
$obj->setLastResponse($response);
|
137 |
+
return $obj;
|
138 |
Â
}
|
139 |
Â
|
140 |
Â
/**
|
141 |
Â
* @param array|null $params
|
142 |
Â
* @param array|string|null $options
|
143 |
Â
*
|
144 |
+
* @return Source The verified source.
|
145 |
Â
*/
|
146 |
Â
public function verify($params = null, $options = null)
|
147 |
Â
{
|
app/api/Stripe/SourceTransaction.php
ADDED
@@ -0,0 +1,22 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class SourceTransaction
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $amount
|
11 |
+
* @property int $created
|
12 |
+
* @property string $customer_data
|
13 |
+
* @property string $currency
|
14 |
+
* @property string $type
|
15 |
+
* @property mixed $ach_credit_transfer
|
16 |
+
*
|
17 |
+
* @package Stripe
|
18 |
+
*/
|
19 |
+
class SourceTransaction extends ApiResource
|
20 |
+
{
|
21 |
+
const OBJECT_NAME = "source_transaction";
|
22 |
+
}
|
app/api/Stripe/Stripe.php
CHANGED
@@ -12,11 +12,17 @@ class Stripe
|
|
12 |
Â
// @var string The Stripe API key to be used for requests.
|
13 |
Â
public static $apiKey;
|
14 |
Â
|
Â
|
|
Â
|
|
Â
|
|
15 |
Â
// @var string The base URL for the Stripe API.
|
16 |
Â
public static $apiBase = 'https://api.stripe.com';
|
17 |
Â
|
Â
|
|
Â
|
|
Â
|
|
18 |
Â
// @var string The base URL for the Stripe API uploads endpoint.
|
19 |
-
public static $apiUploadBase = 'https://
|
20 |
Â
|
21 |
Â
// @var string|null The version of the Stripe API to use for requests.
|
22 |
Â
public static $apiVersion = null;
|
@@ -24,13 +30,32 @@ class Stripe
|
|
24 |
Â
// @var string|null The account ID for connected accounts requests.
|
25 |
Â
public static $accountId = null;
|
26 |
Â
|
Â
|
|
Â
|
|
Â
|
|
27 |
Â
// @var boolean Defaults to true.
|
28 |
Â
public static $verifySslCerts = true;
|
29 |
Â
|
30 |
Â
// @var array The application's information (name, version, URL)
|
31 |
Â
public static $appInfo = null;
|
32 |
Â
|
33 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
34 |
Â
|
35 |
Â
/**
|
36 |
Â
* @return string The API key used for requests.
|
@@ -40,6 +65,35 @@ class Stripe
|
|
40 |
Â
return self::$apiKey;
|
41 |
Â
}
|
42 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
43 |
Â
/**
|
44 |
Â
* Sets the API key to be used for requests.
|
45 |
Â
*
|
@@ -50,6 +104,16 @@ class Stripe
|
|
50 |
Â
self::$apiKey = $apiKey;
|
51 |
Â
}
|
52 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
53 |
Â
/**
|
54 |
Â
* @return string The API version used for requests. null if we're using the
|
55 |
Â
* latest version.
|
@@ -67,6 +131,30 @@ class Stripe
|
|
67 |
Â
self::$apiVersion = $apiVersion;
|
68 |
Â
}
|
69 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
70 |
Â
/**
|
71 |
Â
* @return boolean
|
72 |
Â
*/
|
@@ -114,13 +202,64 @@ class Stripe
|
|
114 |
Â
* @param string $appVersion The application's version
|
115 |
Â
* @param string $appUrl The application's URL
|
116 |
Â
*/
|
117 |
-
public static function setAppInfo($appName, $appVersion = null, $appUrl = null)
|
118 |
Â
{
|
119 |
-
|
120 |
-
self::$appInfo = array();
|
121 |
-
}
|
122 |
Â
self::$appInfo['name'] = $appName;
|
123 |
-
self::$appInfo['
|
124 |
Â
self::$appInfo['url'] = $appUrl;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
125 |
Â
}
|
126 |
Â
}
|
12 |
Â
// @var string The Stripe API key to be used for requests.
|
13 |
Â
public static $apiKey;
|
14 |
Â
|
15 |
+
// @var string The Stripe client_id to be used for Connect requests.
|
16 |
+
public static $clientId;
|
17 |
+
|
18 |
Â
// @var string The base URL for the Stripe API.
|
19 |
Â
public static $apiBase = 'https://api.stripe.com';
|
20 |
Â
|
21 |
+
// @var string The base URL for the OAuth API.
|
22 |
+
public static $connectBase = 'https://connect.stripe.com';
|
23 |
+
|
24 |
Â
// @var string The base URL for the Stripe API uploads endpoint.
|
25 |
+
public static $apiUploadBase = 'https://files.stripe.com';
|
26 |
Â
|
27 |
Â
// @var string|null The version of the Stripe API to use for requests.
|
28 |
Â
public static $apiVersion = null;
|
30 |
Â
// @var string|null The account ID for connected accounts requests.
|
31 |
Â
public static $accountId = null;
|
32 |
Â
|
33 |
+
// @var string Path to the CA bundle used to verify SSL certificates
|
34 |
+
public static $caBundlePath = null;
|
35 |
+
|
36 |
Â
// @var boolean Defaults to true.
|
37 |
Â
public static $verifySslCerts = true;
|
38 |
Â
|
39 |
Â
// @var array The application's information (name, version, URL)
|
40 |
Â
public static $appInfo = null;
|
41 |
Â
|
42 |
+
// @var Util\LoggerInterface|null The logger to which the library will
|
43 |
+
// produce messages.
|
44 |
+
public static $logger = null;
|
45 |
+
|
46 |
+
// @var int Maximum number of request retries
|
47 |
+
public static $maxNetworkRetries = 0;
|
48 |
+
|
49 |
+
// @var boolean Whether client telemetry is enabled. Defaults to false.
|
50 |
+
public static $enableTelemetry = true;
|
51 |
+
|
52 |
+
// @var float Maximum delay between retries, in seconds
|
53 |
+
private static $maxNetworkRetryDelay = 2.0;
|
54 |
+
|
55 |
+
// @var float Initial delay between retries, in seconds
|
56 |
+
private static $initialNetworkRetryDelay = 0.5;
|
57 |
+
|
58 |
+
const VERSION = '6.43.0';
|
59 |
Â
|
60 |
Â
/**
|
61 |
Â
* @return string The API key used for requests.
|
65 |
Â
return self::$apiKey;
|
66 |
Â
}
|
67 |
Â
|
68 |
+
/**
|
69 |
+
* @return string The client_id used for Connect requests.
|
70 |
+
*/
|
71 |
+
public static function getClientId()
|
72 |
+
{
|
73 |
+
return self::$clientId;
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* @return Util\LoggerInterface The logger to which the library will
|
78 |
+
* produce messages.
|
79 |
+
*/
|
80 |
+
public static function getLogger()
|
81 |
+
{
|
82 |
+
if (self::$logger == null) {
|
83 |
+
return new Util\DefaultLogger();
|
84 |
+
}
|
85 |
+
return self::$logger;
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* @param Util\LoggerInterface $logger The logger to which the library
|
90 |
+
* will produce messages.
|
91 |
+
*/
|
92 |
+
public static function setLogger($logger)
|
93 |
+
{
|
94 |
+
self::$logger = $logger;
|
95 |
+
}
|
96 |
+
|
97 |
Â
/**
|
98 |
Â
* Sets the API key to be used for requests.
|
99 |
Â
*
|
104 |
Â
self::$apiKey = $apiKey;
|
105 |
Â
}
|
106 |
Â
|
107 |
+
/**
|
108 |
+
* Sets the client_id to be used for Connect requests.
|
109 |
+
*
|
110 |
+
* @param string $clientId
|
111 |
+
*/
|
112 |
+
public static function setClientId($clientId)
|
113 |
+
{
|
114 |
+
self::$clientId = $clientId;
|
115 |
+
}
|
116 |
+
|
117 |
Â
/**
|
118 |
Â
* @return string The API version used for requests. null if we're using the
|
119 |
Â
* latest version.
|
131 |
Â
self::$apiVersion = $apiVersion;
|
132 |
Â
}
|
133 |
Â
|
134 |
+
/**
|
135 |
+
* @return string
|
136 |
+
*/
|
137 |
+
private static function getDefaultCABundlePath()
|
138 |
+
{
|
139 |
+
return realpath(dirname(__FILE__) . '/HttpClient/data/ca-certificates.crt');
|
140 |
+
}
|
141 |
+
|
142 |
+
/**
|
143 |
+
* @return string
|
144 |
+
*/
|
145 |
+
public static function getCABundlePath()
|
146 |
+
{
|
147 |
+
return self::$caBundlePath ?: self::getDefaultCABundlePath();
|
148 |
+
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
* @param string $caBundlePath
|
152 |
+
*/
|
153 |
+
public static function setCABundlePath($caBundlePath)
|
154 |
+
{
|
155 |
+
self::$caBundlePath = $caBundlePath;
|
156 |
+
}
|
157 |
+
|
158 |
Â
/**
|
159 |
Â
* @return boolean
|
160 |
Â
*/
|
202 |
Â
* @param string $appVersion The application's version
|
203 |
Â
* @param string $appUrl The application's URL
|
204 |
Â
*/
|
205 |
+
public static function setAppInfo($appName, $appVersion = null, $appUrl = null, $appPartnerId = null)
|
206 |
Â
{
|
207 |
+
self::$appInfo = self::$appInfo ?: [];
|
Â
|
|
Â
|
|
208 |
Â
self::$appInfo['name'] = $appName;
|
209 |
+
self::$appInfo['partner_id'] = $appPartnerId;
|
210 |
Â
self::$appInfo['url'] = $appUrl;
|
211 |
+
self::$appInfo['version'] = $appVersion;
|
212 |
+
}
|
213 |
+
|
214 |
+
/**
|
215 |
+
* @return int Maximum number of request retries
|
216 |
+
*/
|
217 |
+
public static function getMaxNetworkRetries()
|
218 |
+
{
|
219 |
+
return self::$maxNetworkRetries;
|
220 |
+
}
|
221 |
+
|
222 |
+
/**
|
223 |
+
* @param int $maxNetworkRetries Maximum number of request retries
|
224 |
+
*/
|
225 |
+
public static function setMaxNetworkRetries($maxNetworkRetries)
|
226 |
+
{
|
227 |
+
self::$maxNetworkRetries = $maxNetworkRetries;
|
228 |
+
}
|
229 |
+
|
230 |
+
/**
|
231 |
+
* @return float Maximum delay between retries, in seconds
|
232 |
+
*/
|
233 |
+
public static function getMaxNetworkRetryDelay()
|
234 |
+
{
|
235 |
+
return self::$maxNetworkRetryDelay;
|
236 |
+
}
|
237 |
+
|
238 |
+
/**
|
239 |
+
* @return float Initial delay between retries, in seconds
|
240 |
+
*/
|
241 |
+
public static function getInitialNetworkRetryDelay()
|
242 |
+
{
|
243 |
+
return self::$initialNetworkRetryDelay;
|
244 |
+
}
|
245 |
+
|
246 |
+
/**
|
247 |
+
* @return bool Whether client telemetry is enabled
|
248 |
+
*/
|
249 |
+
public static function getEnableTelemetry()
|
250 |
+
{
|
251 |
+
return self::$enableTelemetry;
|
252 |
+
}
|
253 |
+
|
254 |
+
/**
|
255 |
+
* @param bool $enableTelemetry Enables client telemetry.
|
256 |
+
*
|
257 |
+
* Client telemetry enables timing and request metrics to be sent back to Stripe as an HTTP Header
|
258 |
+
* with the current request. This enables Stripe to do latency and metrics analysis without adding extra
|
259 |
+
* overhead (such as extra network calls) on the client.
|
260 |
+
*/
|
261 |
+
public static function setEnableTelemetry($enableTelemetry)
|
262 |
+
{
|
263 |
+
self::$enableTelemetry = $enableTelemetry;
|
264 |
Â
}
|
265 |
Â
}
|
app/api/Stripe/StripeObject.php
CHANGED
@@ -2,126 +2,158 @@
|
|
2 |
Â
|
3 |
Â
namespace Stripe;
|
4 |
Â
|
5 |
-
use ArrayAccess;
|
6 |
-
use InvalidArgumentException;
|
7 |
-
|
8 |
Â
/**
|
9 |
Â
* Class StripeObject
|
10 |
Â
*
|
11 |
Â
* @package Stripe
|
12 |
Â
*/
|
13 |
-
class StripeObject implements ArrayAccess, JsonSerializable
|
14 |
Â
{
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
* the parent class's URL (e.g. metadata).
|
23 |
-
*/
|
24 |
-
public static $nestedUpdatableAttributes;
|
25 |
-
|
26 |
-
public static function init()
|
27 |
-
{
|
28 |
-
self::$permanentAttributes = new Util\Set(array('_opts', 'id'));
|
29 |
-
self::$nestedUpdatableAttributes = new Util\Set(array(
|
30 |
-
'metadata', 'legal_entity', 'address', 'dob', 'transfer_schedule', 'verification',
|
31 |
-
'tos_acceptance', 'personal_address',
|
32 |
-
// will make the array into an AttachedObject: weird, but works for now
|
33 |
-
'additional_owners', 0, 1, 2, 3, 4, // Max 3, but leave the 4th so errors work properly
|
34 |
-
'inventory'
|
35 |
-
));
|
36 |
-
}
|
37 |
Â
|
38 |
Â
/**
|
39 |
-
* @return
|
Â
|
|
40 |
Â
*/
|
41 |
-
public function
|
42 |
Â
{
|
43 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
44 |
Â
}
|
45 |
Â
|
46 |
Â
/**
|
47 |
-
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
48 |
Â
*
|
49 |
-
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
50 |
Â
*/
|
51 |
-
public function
|
52 |
Â
{
|
53 |
-
$
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
54 |
Â
}
|
55 |
Â
|
56 |
-
protected $_opts;
|
57 |
-
protected $_values;
|
58 |
-
protected $_unsavedValues;
|
59 |
-
protected $_transientValues;
|
60 |
-
protected $_retrieveOptions;
|
61 |
-
protected $_lastResponse;
|
62 |
-
|
63 |
Â
public function __construct($id = null, $opts = null)
|
64 |
Â
{
|
65 |
-
$this->
|
66 |
-
$this->
|
Â
|
|
Â
|
|
67 |
Â
$this->_unsavedValues = new Util\Set();
|
68 |
Â
$this->_transientValues = new Util\Set();
|
69 |
-
|
70 |
-
$this->_retrieveOptions = array();
|
71 |
-
if (is_array($id)) {
|
72 |
-
foreach ($id as $key => $value) {
|
73 |
-
if ($key != 'id') {
|
74 |
-
$this->_retrieveOptions[$key] = $value;
|
75 |
-
}
|
76 |
-
}
|
77 |
-
$id = $id['id'];
|
78 |
-
}
|
79 |
-
|
80 |
Â
if ($id !== null) {
|
81 |
-
$this->id = $id;
|
82 |
Â
}
|
83 |
Â
}
|
84 |
Â
|
85 |
Â
// Standard accessor magic methods
|
86 |
Â
public function __set($k, $v)
|
87 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
88 |
Â
if ($v === "") {
|
89 |
-
throw new InvalidArgumentException(
|
90 |
Â
'You cannot set \''.$k.'\'to an empty string. '
|
91 |
Â
.'We interpret empty strings as NULL in requests. '
|
92 |
Â
.'You may set obj->'.$k.' = NULL to delete the property'
|
93 |
Â
);
|
94 |
Â
}
|
95 |
Â
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
} else {
|
100 |
-
// TODO: may want to clear from $_transientValues (Won't be user-visible).
|
101 |
-
$this->_values[$k] = $v;
|
102 |
-
}
|
103 |
-
if (!self::$permanentAttributes->includes($k)) {
|
104 |
-
$this->_unsavedValues->add($k);
|
105 |
-
}
|
106 |
Â
}
|
107 |
Â
|
108 |
Â
public function __isset($k)
|
109 |
Â
{
|
110 |
Â
return isset($this->_values[$k]);
|
111 |
Â
}
|
Â
|
|
112 |
Â
public function __unset($k)
|
113 |
Â
{
|
114 |
Â
unset($this->_values[$k]);
|
115 |
Â
$this->_transientValues->add($k);
|
116 |
Â
$this->_unsavedValues->discard($k);
|
117 |
Â
}
|
Â
|
|
118 |
Â
public function &__get($k)
|
119 |
Â
{
|
120 |
Â
// function should return a reference, using $nullval to return a reference to null
|
121 |
Â
$nullval = null;
|
122 |
Â
if (!empty($this->_values) && array_key_exists($k, $this->_values)) {
|
123 |
Â
return $this->_values[$k];
|
124 |
-
}
|
125 |
Â
$class = get_class($this);
|
126 |
Â
$attrs = join(', ', array_keys($this->_values));
|
127 |
Â
$message = "Stripe Notice: Undefined property of $class instance: $k. "
|
@@ -130,15 +162,21 @@ class StripeObject implements ArrayAccess, JsonSerializable
|
|
130 |
Â
. "with the result returned by Stripe's API, "
|
131 |
Â
. "probably as a result of a save(). The attributes currently "
|
132 |
Â
. "available on this object are: $attrs";
|
133 |
-
|
134 |
Â
return $nullval;
|
135 |
Â
} else {
|
136 |
Â
$class = get_class($this);
|
137 |
-
|
138 |
Â
return $nullval;
|
139 |
Â
}
|
140 |
Â
}
|
141 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
142 |
Â
// ArrayAccess methods
|
143 |
Â
public function offsetSet($k, $v)
|
144 |
Â
{
|
@@ -154,25 +192,37 @@ class StripeObject implements ArrayAccess, JsonSerializable
|
|
154 |
Â
{
|
155 |
Â
unset($this->$k);
|
156 |
Â
}
|
Â
|
|
157 |
Â
public function offsetGet($k)
|
158 |
Â
{
|
159 |
Â
return array_key_exists($k, $this->_values) ? $this->_values[$k] : null;
|
160 |
Â
}
|
161 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
162 |
Â
public function keys()
|
163 |
Â
{
|
164 |
Â
return array_keys($this->_values);
|
165 |
Â
}
|
166 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
167 |
Â
/**
|
168 |
Â
* This unfortunately needs to be public to be used in Util\Util
|
169 |
Â
*
|
170 |
Â
* @param array $values
|
171 |
-
* @param array $opts
|
172 |
Â
*
|
173 |
-
* @return
|
174 |
Â
*/
|
175 |
-
public static function constructFrom($values, $opts)
|
176 |
Â
{
|
177 |
Â
$obj = new static(isset($values['id']) ? $values['id'] : null);
|
178 |
Â
$obj->refreshFrom($values, $opts);
|
@@ -183,16 +233,18 @@ class StripeObject implements ArrayAccess, JsonSerializable
|
|
183 |
Â
* Refreshes this object using the provided values.
|
184 |
Â
*
|
185 |
Â
* @param array $values
|
186 |
-
* @param array|Util\RequestOptions $opts
|
187 |
Â
* @param boolean $partial Defaults to false.
|
188 |
Â
*/
|
189 |
Â
public function refreshFrom($values, $opts, $partial = false)
|
190 |
Â
{
|
191 |
-
|
192 |
-
$opts = Util\RequestOptions::parse($opts);
|
193 |
-
}
|
194 |
Â
|
195 |
-
$this->
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
196 |
Â
|
197 |
Â
// Wipe old state before setting new. This is useful for e.g. updating a
|
198 |
Â
// customer, where there is no persistent card parameter. Mark those values
|
@@ -200,30 +252,43 @@ class StripeObject implements ArrayAccess, JsonSerializable
|
|
200 |
Â
if ($partial) {
|
201 |
Â
$removed = new Util\Set();
|
202 |
Â
} else {
|
203 |
-
$removed = array_diff(array_keys($this->_values), array_keys($values));
|
204 |
Â
}
|
205 |
Â
|
206 |
-
foreach ($removed as $k) {
|
207 |
-
if (self::$permanentAttributes->includes($k)) {
|
208 |
-
continue;
|
209 |
-
}
|
210 |
-
|
211 |
Â
unset($this->$k);
|
212 |
Â
}
|
213 |
Â
|
Â
|
|
214 |
Â
foreach ($values as $k => $v) {
|
215 |
-
|
216 |
-
|
217 |
-
|
Â
|
|
218 |
Â
|
219 |
-
|
220 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
221 |
Â
} else {
|
222 |
Â
$this->_values[$k] = Util\Util::convertToStripeObject($v, $opts);
|
223 |
Â
}
|
224 |
-
|
225 |
-
|
226 |
-
|
Â
|
|
227 |
Â
}
|
228 |
Â
}
|
229 |
Â
|
@@ -231,33 +296,107 @@ class StripeObject implements ArrayAccess, JsonSerializable
|
|
231 |
Â
* @return array A recursive mapping of attributes to values for this object,
|
232 |
Â
* including the proper value for deleted attributes.
|
233 |
Â
*/
|
234 |
-
public function serializeParameters()
|
235 |
Â
{
|
236 |
-
$
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
245 |
Â
}
|
246 |
Â
}
|
247 |
Â
|
248 |
-
//
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
256 |
Â
}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
257 |
Â
}
|
Â
|
|
Â
|
|
Â
|
|
258 |
Â
}
|
259 |
-
|
260 |
-
return $params;
|
261 |
Â
}
|
262 |
Â
|
263 |
Â
public function jsonSerialize()
|
@@ -267,11 +406,7 @@ class StripeObject implements ArrayAccess, JsonSerializable
|
|
267 |
Â
|
268 |
Â
public function __toJSON()
|
269 |
Â
{
|
270 |
-
|
271 |
-
return json_encode($this->__toArray(true), JSON_PRETTY_PRINT);
|
272 |
-
} else {
|
273 |
-
return json_encode($this->__toArray(true));
|
274 |
-
}
|
275 |
Â
}
|
276 |
Â
|
277 |
Â
public function __toString()
|
@@ -288,6 +423,101 @@ class StripeObject implements ArrayAccess, JsonSerializable
|
|
288 |
Â
return $this->_values;
|
289 |
Â
}
|
290 |
Â
}
|
291 |
-
}
|
292 |
Â
|
293 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
2 |
Â
|
3 |
Â
namespace Stripe;
|
4 |
Â
|
Â
|
|
Â
|
|
Â
|
|
5 |
Â
/**
|
6 |
Â
* Class StripeObject
|
7 |
Â
*
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
+
class StripeObject implements \ArrayAccess, \Countable, \JsonSerializable
|
11 |
Â
{
|
12 |
+
protected $_opts;
|
13 |
+
protected $_originalValues;
|
14 |
+
protected $_values;
|
15 |
+
protected $_unsavedValues;
|
16 |
+
protected $_transientValues;
|
17 |
+
protected $_retrieveOptions;
|
18 |
+
protected $_lastResponse;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
19 |
Â
|
20 |
Â
/**
|
21 |
+
* @return Util\Set Attributes that should not be sent to the API because
|
22 |
+
* they're not updatable (e.g. ID).
|
23 |
Â
*/
|
24 |
+
public static function getPermanentAttributes()
|
25 |
Â
{
|
26 |
+
static $permanentAttributes = null;
|
27 |
+
if ($permanentAttributes === null) {
|
28 |
+
$permanentAttributes = new Util\Set([
|
29 |
+
'id',
|
30 |
+
]);
|
31 |
+
}
|
32 |
+
return $permanentAttributes;
|
33 |
Â
}
|
34 |
Â
|
35 |
Â
/**
|
36 |
+
* Additive objects are subobjects in the API that don't have the same
|
37 |
+
* semantics as most subobjects, which are fully replaced when they're set.
|
38 |
+
* This is best illustrated by example. The `source` parameter sent when
|
39 |
+
* updating a subscription is *not* additive; if we set it:
|
40 |
+
*
|
41 |
+
* source[object]=card&source[number]=123
|
42 |
+
*
|
43 |
+
* We expect the old `source` object to have been overwritten completely. If
|
44 |
+
* the previous source had an `address_state` key associated with it and we
|
45 |
+
* didn't send one this time, that value of `address_state` is gone.
|
46 |
Â
*
|
47 |
+
* By contrast, additive objects are those that will have new data added to
|
48 |
+
* them while keeping any existing data in place. The only known case of its
|
49 |
+
* use is for `metadata`, but it could in theory be more general. As an
|
50 |
+
* example, say we have a `metadata` object that looks like this on the
|
51 |
+
* server side:
|
52 |
+
*
|
53 |
+
* metadata = ["old" => "old_value"]
|
54 |
+
*
|
55 |
+
* If we update the object with `metadata[new]=new_value`, the server side
|
56 |
+
* object now has *both* fields:
|
57 |
+
*
|
58 |
+
* metadata = ["old" => "old_value", "new" => "new_value"]
|
59 |
+
*
|
60 |
+
* This is okay in itself because usually users will want to treat it as
|
61 |
+
* additive:
|
62 |
+
*
|
63 |
+
* $obj->metadata["new"] = "new_value";
|
64 |
+
* $obj->save();
|
65 |
+
*
|
66 |
+
* However, in other cases, they may want to replace the entire existing
|
67 |
+
* contents:
|
68 |
+
*
|
69 |
+
* $obj->metadata = ["new" => "new_value"];
|
70 |
+
* $obj->save();
|
71 |
+
*
|
72 |
+
* This is where things get a little bit tricky because in order to clear
|
73 |
+
* any old keys that may have existed, we actually have to send an explicit
|
74 |
+
* empty string to the server. So the operation above would have to send
|
75 |
+
* this form to get the intended behavior:
|
76 |
+
*
|
77 |
+
* metadata[old]=&metadata[new]=new_value
|
78 |
+
*
|
79 |
+
* This method allows us to track which parameters are considered additive,
|
80 |
+
* and lets us behave correctly where appropriate when serializing
|
81 |
+
* parameters to be sent.
|
82 |
+
*
|
83 |
+
* @return Util\Set Set of additive parameters
|
84 |
Â
*/
|
85 |
+
public static function getAdditiveParams()
|
86 |
Â
{
|
87 |
+
static $additiveParams = null;
|
88 |
+
if ($additiveParams === null) {
|
89 |
+
// Set `metadata` as additive so that when it's set directly we remember
|
90 |
+
// to clear keys that may have been previously set by sending empty
|
91 |
+
// values for them.
|
92 |
+
//
|
93 |
+
// It's possible that not every object has `metadata`, but having this
|
94 |
+
// option set when there is no `metadata` field is not harmful.
|
95 |
+
$additiveParams = new Util\Set([
|
96 |
+
'metadata',
|
97 |
+
]);
|
98 |
+
}
|
99 |
+
return $additiveParams;
|
100 |
Â
}
|
101 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
102 |
Â
public function __construct($id = null, $opts = null)
|
103 |
Â
{
|
104 |
+
list($id, $this->_retrieveOptions) = Util\Util::normalizeId($id);
|
105 |
+
$this->_opts = Util\RequestOptions::parse($opts);
|
106 |
+
$this->_originalValues = [];
|
107 |
+
$this->_values = [];
|
108 |
Â
$this->_unsavedValues = new Util\Set();
|
109 |
Â
$this->_transientValues = new Util\Set();
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
110 |
Â
if ($id !== null) {
|
111 |
+
$this->_values['id'] = $id;
|
112 |
Â
}
|
113 |
Â
}
|
114 |
Â
|
115 |
Â
// Standard accessor magic methods
|
116 |
Â
public function __set($k, $v)
|
117 |
Â
{
|
118 |
+
if (static::getPermanentAttributes()->includes($k)) {
|
119 |
+
throw new \InvalidArgumentException(
|
120 |
+
"Cannot set $k on this object. HINT: you can't set: " .
|
121 |
+
join(', ', static::getPermanentAttributes()->toArray())
|
122 |
+
);
|
123 |
+
}
|
124 |
+
|
125 |
Â
if ($v === "") {
|
126 |
+
throw new \InvalidArgumentException(
|
127 |
Â
'You cannot set \''.$k.'\'to an empty string. '
|
128 |
Â
.'We interpret empty strings as NULL in requests. '
|
129 |
Â
.'You may set obj->'.$k.' = NULL to delete the property'
|
130 |
Â
);
|
131 |
Â
}
|
132 |
Â
|
133 |
+
$this->_values[$k] = Util\Util::convertToStripeObject($v, $this->_opts);
|
134 |
+
$this->dirtyValue($this->_values[$k]);
|
135 |
+
$this->_unsavedValues->add($k);
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
136 |
Â
}
|
137 |
Â
|
138 |
Â
public function __isset($k)
|
139 |
Â
{
|
140 |
Â
return isset($this->_values[$k]);
|
141 |
Â
}
|
142 |
+
|
143 |
Â
public function __unset($k)
|
144 |
Â
{
|
145 |
Â
unset($this->_values[$k]);
|
146 |
Â
$this->_transientValues->add($k);
|
147 |
Â
$this->_unsavedValues->discard($k);
|
148 |
Â
}
|
149 |
+
|
150 |
Â
public function &__get($k)
|
151 |
Â
{
|
152 |
Â
// function should return a reference, using $nullval to return a reference to null
|
153 |
Â
$nullval = null;
|
154 |
Â
if (!empty($this->_values) && array_key_exists($k, $this->_values)) {
|
155 |
Â
return $this->_values[$k];
|
156 |
+
} elseif (!empty($this->_transientValues) && $this->_transientValues->includes($k)) {
|
157 |
Â
$class = get_class($this);
|
158 |
Â
$attrs = join(', ', array_keys($this->_values));
|
159 |
Â
$message = "Stripe Notice: Undefined property of $class instance: $k. "
|
162 |
Â
. "with the result returned by Stripe's API, "
|
163 |
Â
. "probably as a result of a save(). The attributes currently "
|
164 |
Â
. "available on this object are: $attrs";
|
165 |
+
Stripe::getLogger()->error($message);
|
166 |
Â
return $nullval;
|
167 |
Â
} else {
|
168 |
Â
$class = get_class($this);
|
169 |
+
Stripe::getLogger()->error("Stripe Notice: Undefined property of $class instance: $k");
|
170 |
Â
return $nullval;
|
171 |
Â
}
|
172 |
Â
}
|
173 |
Â
|
174 |
+
// Magic method for var_dump output. Only works with PHP >= 5.6
|
175 |
+
public function __debugInfo()
|
176 |
+
{
|
177 |
+
return $this->_values;
|
178 |
+
}
|
179 |
+
|
180 |
Â
// ArrayAccess methods
|
181 |
Â
public function offsetSet($k, $v)
|
182 |
Â
{
|
192 |
Â
{
|
193 |
Â
unset($this->$k);
|
194 |
Â
}
|
195 |
+
|
196 |
Â
public function offsetGet($k)
|
197 |
Â
{
|
198 |
Â
return array_key_exists($k, $this->_values) ? $this->_values[$k] : null;
|
199 |
Â
}
|
200 |
Â
|
201 |
+
// Countable method
|
202 |
+
public function count()
|
203 |
+
{
|
204 |
+
return count($this->_values);
|
205 |
+
}
|
206 |
+
|
207 |
Â
public function keys()
|
208 |
Â
{
|
209 |
Â
return array_keys($this->_values);
|
210 |
Â
}
|
211 |
Â
|
212 |
+
public function values()
|
213 |
+
{
|
214 |
+
return array_values($this->_values);
|
215 |
+
}
|
216 |
+
|
217 |
Â
/**
|
218 |
Â
* This unfortunately needs to be public to be used in Util\Util
|
219 |
Â
*
|
220 |
Â
* @param array $values
|
221 |
+
* @param null|string|array|Util\RequestOptions $opts
|
222 |
Â
*
|
223 |
+
* @return static The object constructed from the given values.
|
224 |
Â
*/
|
225 |
+
public static function constructFrom($values, $opts = null)
|
226 |
Â
{
|
227 |
Â
$obj = new static(isset($values['id']) ? $values['id'] : null);
|
228 |
Â
$obj->refreshFrom($values, $opts);
|
233 |
Â
* Refreshes this object using the provided values.
|
234 |
Â
*
|
235 |
Â
* @param array $values
|
236 |
+
* @param null|string|array|Util\RequestOptions $opts
|
237 |
Â
* @param boolean $partial Defaults to false.
|
238 |
Â
*/
|
239 |
Â
public function refreshFrom($values, $opts, $partial = false)
|
240 |
Â
{
|
241 |
+
$this->_opts = Util\RequestOptions::parse($opts);
|
Â
|
|
Â
|
|
242 |
Â
|
243 |
+
$this->_originalValues = self::deepCopy($values);
|
244 |
+
|
245 |
+
if ($values instanceof StripeObject) {
|
246 |
+
$values = $values->__toArray(true);
|
247 |
+
}
|
248 |
Â
|
249 |
Â
// Wipe old state before setting new. This is useful for e.g. updating a
|
250 |
Â
// customer, where there is no persistent card parameter. Mark those values
|
252 |
Â
if ($partial) {
|
253 |
Â
$removed = new Util\Set();
|
254 |
Â
} else {
|
255 |
+
$removed = new Util\Set(array_diff(array_keys($this->_values), array_keys($values)));
|
256 |
Â
}
|
257 |
Â
|
258 |
+
foreach ($removed->toArray() as $k) {
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
259 |
Â
unset($this->$k);
|
260 |
Â
}
|
261 |
Â
|
262 |
+
$this->updateAttributes($values, $opts, false);
|
263 |
Â
foreach ($values as $k => $v) {
|
264 |
+
$this->_transientValues->discard($k);
|
265 |
+
$this->_unsavedValues->discard($k);
|
266 |
+
}
|
267 |
+
}
|
268 |
Â
|
269 |
+
/**
|
270 |
+
* Mass assigns attributes on the model.
|
271 |
+
*
|
272 |
+
* @param array $values
|
273 |
+
* @param null|string|array|Util\RequestOptions $opts
|
274 |
+
* @param boolean $dirty Defaults to true.
|
275 |
+
*/
|
276 |
+
public function updateAttributes($values, $opts = null, $dirty = true)
|
277 |
+
{
|
278 |
+
foreach ($values as $k => $v) {
|
279 |
+
// Special-case metadata to always be cast as a StripeObject
|
280 |
+
// This is necessary in case metadata is empty, as PHP arrays do
|
281 |
+
// not differentiate between lists and hashes, and we consider
|
282 |
+
// empty arrays to be lists.
|
283 |
+
if (($k === "metadata") && (is_array($v))) {
|
284 |
+
$this->_values[$k] = StripeObject::constructFrom($v, $opts);
|
285 |
Â
} else {
|
286 |
Â
$this->_values[$k] = Util\Util::convertToStripeObject($v, $opts);
|
287 |
Â
}
|
288 |
+
if ($dirty) {
|
289 |
+
$this->dirtyValue($this->_values[$k]);
|
290 |
+
}
|
291 |
+
$this->_unsavedValues->add($k);
|
292 |
Â
}
|
293 |
Â
}
|
294 |
Â
|
296 |
Â
* @return array A recursive mapping of attributes to values for this object,
|
297 |
Â
* including the proper value for deleted attributes.
|
298 |
Â
*/
|
299 |
+
public function serializeParameters($force = false)
|
300 |
Â
{
|
301 |
+
$updateParams = [];
|
302 |
+
|
303 |
+
foreach ($this->_values as $k => $v) {
|
304 |
+
// There are a few reasons that we may want to add in a parameter for
|
305 |
+
// update:
|
306 |
+
//
|
307 |
+
// 1. The `$force` option has been set.
|
308 |
+
// 2. We know that it was modified.
|
309 |
+
// 3. Its value is a StripeObject. A StripeObject may contain modified
|
310 |
+
// values within in that its parent StripeObject doesn't know about.
|
311 |
+
//
|
312 |
+
$original = array_key_exists($k, $this->_originalValues) ? $this->_originalValues[$k] : null;
|
313 |
+
$unsaved = $this->_unsavedValues->includes($k);
|
314 |
+
if ($force || $unsaved || $v instanceof StripeObject) {
|
315 |
+
$updateParams[$k] = $this->serializeParamsValue(
|
316 |
+
$this->_values[$k],
|
317 |
+
$original,
|
318 |
+
$unsaved,
|
319 |
+
$force,
|
320 |
+
$k
|
321 |
+
);
|
322 |
Â
}
|
323 |
Â
}
|
324 |
Â
|
325 |
+
// a `null` that makes it out of `serializeParamsValue` signals an empty
|
326 |
+
// value that we shouldn't appear in the serialized form of the object
|
327 |
+
$updateParams = array_filter(
|
328 |
+
$updateParams,
|
329 |
+
function ($v) {
|
330 |
+
return $v !== null;
|
331 |
+
}
|
332 |
+
);
|
333 |
+
|
334 |
+
return $updateParams;
|
335 |
+
}
|
336 |
+
|
337 |
+
|
338 |
+
public function serializeParamsValue($value, $original, $unsaved, $force, $key = null)
|
339 |
+
{
|
340 |
+
// The logic here is that essentially any object embedded in another
|
341 |
+
// object that had a `type` is actually an API resource of a different
|
342 |
+
// type that's been included in the response. These other resources must
|
343 |
+
// be updated from their proper endpoints, and therefore they are not
|
344 |
+
// included when serializing even if they've been modified.
|
345 |
+
//
|
346 |
+
// There are _some_ known exceptions though.
|
347 |
+
//
|
348 |
+
// For example, if the value is unsaved (meaning the user has set it), and
|
349 |
+
// it looks like the API resource is persisted with an ID, then we include
|
350 |
+
// the object so that parameters are serialized with a reference to its
|
351 |
+
// ID.
|
352 |
+
//
|
353 |
+
// Another example is that on save API calls it's sometimes desirable to
|
354 |
+
// update a customer's default source by setting a new card (or other)
|
355 |
+
// object with `->source=` and then saving the customer. The
|
356 |
+
// `saveWithParent` flag to override the default behavior allows us to
|
357 |
+
// handle these exceptions.
|
358 |
+
//
|
359 |
+
// We throw an error if a property was set explicitly but we can't do
|
360 |
+
// anything with it because the integration is probably not working as the
|
361 |
+
// user intended it to.
|
362 |
+
if ($value === null) {
|
363 |
+
return "";
|
364 |
+
} elseif (($value instanceof APIResource) && (!$value->saveWithParent)) {
|
365 |
+
if (!$unsaved) {
|
366 |
+
return null;
|
367 |
+
} elseif (isset($value->id)) {
|
368 |
+
return $value;
|
369 |
+
} else {
|
370 |
+
throw new \InvalidArgumentException(
|
371 |
+
"Cannot save property `$key` containing an API resource of type " .
|
372 |
+
get_class($value) . ". It doesn't appear to be persisted and is " .
|
373 |
+
"not marked as `saveWithParent`."
|
374 |
+
);
|
375 |
+
}
|
376 |
+
} elseif (is_array($value)) {
|
377 |
+
if (Util\Util::isList($value)) {
|
378 |
+
// Sequential array, i.e. a list
|
379 |
+
$update = [];
|
380 |
+
foreach ($value as $v) {
|
381 |
+
array_push($update, $this->serializeParamsValue($v, null, true, $force));
|
382 |
+
}
|
383 |
+
// This prevents an array that's unchanged from being resent.
|
384 |
+
if ($update !== $this->serializeParamsValue($original, null, true, $force, $key)) {
|
385 |
+
return $update;
|
386 |
Â
}
|
387 |
+
} else {
|
388 |
+
// Associative array, i.e. a map
|
389 |
+
return Util\Util::convertToStripeObject($value, $this->_opts)->serializeParameters();
|
390 |
+
}
|
391 |
+
} elseif ($value instanceof StripeObject) {
|
392 |
+
$update = $value->serializeParameters($force);
|
393 |
+
if ($original && $unsaved && $key && static::getAdditiveParams()->includes($key)) {
|
394 |
+
$update = array_merge(self::emptyValues($original), $update);
|
395 |
Â
}
|
396 |
+
return $update;
|
397 |
+
} else {
|
398 |
+
return $value;
|
399 |
Â
}
|
Â
|
|
Â
|
|
400 |
Â
}
|
401 |
Â
|
402 |
Â
public function jsonSerialize()
|
406 |
Â
|
407 |
Â
public function __toJSON()
|
408 |
Â
{
|
409 |
+
return json_encode($this->__toArray(true), JSON_PRETTY_PRINT);
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
410 |
Â
}
|
411 |
Â
|
412 |
Â
public function __toString()
|
423 |
Â
return $this->_values;
|
424 |
Â
}
|
425 |
Â
}
|
Â
|
|
426 |
Â
|
427 |
+
/**
|
428 |
+
* Sets all keys within the StripeObject as unsaved so that they will be
|
429 |
+
* included with an update when `serializeParameters` is called. This
|
430 |
+
* method is also recursive, so any StripeObjects contained as values or
|
431 |
+
* which are values in a tenant array are also marked as dirty.
|
432 |
+
*/
|
433 |
+
public function dirty()
|
434 |
+
{
|
435 |
+
$this->_unsavedValues = new Util\Set(array_keys($this->_values));
|
436 |
+
foreach ($this->_values as $k => $v) {
|
437 |
+
$this->dirtyValue($v);
|
438 |
+
}
|
439 |
+
}
|
440 |
+
|
441 |
+
protected function dirtyValue($value)
|
442 |
+
{
|
443 |
+
if (is_array($value)) {
|
444 |
+
foreach ($value as $v) {
|
445 |
+
$this->dirtyValue($v);
|
446 |
+
}
|
447 |
+
} elseif ($value instanceof StripeObject) {
|
448 |
+
$value->dirty();
|
449 |
+
}
|
450 |
+
}
|
451 |
+
|
452 |
+
/**
|
453 |
+
* Produces a deep copy of the given object including support for arrays
|
454 |
+
* and StripeObjects.
|
455 |
+
*/
|
456 |
+
protected static function deepCopy($obj)
|
457 |
+
{
|
458 |
+
if (is_array($obj)) {
|
459 |
+
$copy = [];
|
460 |
+
foreach ($obj as $k => $v) {
|
461 |
+
$copy[$k] = self::deepCopy($v);
|
462 |
+
}
|
463 |
+
return $copy;
|
464 |
+
} elseif ($obj instanceof StripeObject) {
|
465 |
+
return $obj::constructFrom(
|
466 |
+
self::deepCopy($obj->_values),
|
467 |
+
clone $obj->_opts
|
468 |
+
);
|
469 |
+
} else {
|
470 |
+
return $obj;
|
471 |
+
}
|
472 |
+
}
|
473 |
+
|
474 |
+
/**
|
475 |
+
* Returns a hash of empty values for all the values that are in the given
|
476 |
+
* StripeObject.
|
477 |
+
*/
|
478 |
+
public static function emptyValues($obj)
|
479 |
+
{
|
480 |
+
if (is_array($obj)) {
|
481 |
+
$values = $obj;
|
482 |
+
} elseif ($obj instanceof StripeObject) {
|
483 |
+
$values = $obj->_values;
|
484 |
+
} else {
|
485 |
+
throw new \InvalidArgumentException(
|
486 |
+
"empty_values got got unexpected object type: " . get_class($obj)
|
487 |
+
);
|
488 |
+
}
|
489 |
+
$update = array_fill_keys(array_keys($values), "");
|
490 |
+
return $update;
|
491 |
+
}
|
492 |
+
|
493 |
+
/**
|
494 |
+
* @return object The last response from the Stripe API
|
495 |
+
*/
|
496 |
+
public function getLastResponse()
|
497 |
+
{
|
498 |
+
return $this->_lastResponse;
|
499 |
+
}
|
500 |
+
|
501 |
+
/**
|
502 |
+
* Sets the last response from the Stripe API
|
503 |
+
*
|
504 |
+
* @param ApiResponse $resp
|
505 |
+
* @return void
|
506 |
+
*/
|
507 |
+
public function setLastResponse($resp)
|
508 |
+
{
|
509 |
+
$this->_lastResponse = $resp;
|
510 |
+
}
|
511 |
+
|
512 |
+
/**
|
513 |
+
* Indicates whether or not the resource has been deleted on the server.
|
514 |
+
* Note that some, but not all, resources can indicate whether they have
|
515 |
+
* been deleted.
|
516 |
+
*
|
517 |
+
* @return bool Whether the resource is deleted.
|
518 |
+
*/
|
519 |
+
public function isDeleted()
|
520 |
+
{
|
521 |
+
return isset($this->_values['deleted']) ? $this->_values['deleted'] : false;
|
522 |
+
}
|
523 |
+
}
|
app/api/Stripe/Subscription.php
CHANGED
@@ -5,64 +5,75 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class Subscription
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class Subscription extends ApiResource
|
11 |
Â
{
|
12 |
-
|
13 |
-
* These constants are possible representations of the status field.
|
14 |
-
*
|
15 |
-
* @link https://stripe.com/docs/api#subscription_object-status
|
16 |
-
*/
|
17 |
-
const STATUS_ACTIVE = 'active';
|
18 |
-
const STATUS_CANCELED = 'canceled';
|
19 |
-
const STATUS_PAST_DUE = 'past_due';
|
20 |
-
const STATUS_TRIALING = 'trialing';
|
21 |
-
const STATUS_UNPAID = 'unpaid';
|
22 |
Â
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
* @return Subscription
|
28 |
-
*/
|
29 |
-
public static function retrieve($id, $opts = null)
|
30 |
-
{
|
31 |
-
return self::_retrieve($id, $opts);
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @param array|null $params
|
36 |
-
* @param array|string|null $opts
|
37 |
-
*
|
38 |
-
* @return Collection of Subscriptions
|
39 |
-
*/
|
40 |
-
public static function all($params = null, $opts = null)
|
41 |
-
{
|
42 |
-
return self::_all($params, $opts);
|
43 |
Â
}
|
Â
|
|
Â
|
|
44 |
Â
|
45 |
Â
/**
|
46 |
-
*
|
47 |
-
* @param array|string|null $opts
|
48 |
Â
*
|
49 |
-
* @
|
50 |
Â
*/
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
Â
|
|
Â
|
|
Â
|
|
55 |
Â
|
56 |
-
|
57 |
-
* @param string $id The ID of the subscription to retrieve.
|
58 |
-
* @param array|null $params
|
59 |
-
* @param array|string|null $options
|
60 |
-
*
|
61 |
-
* @return Subscription The updated subscription.
|
62 |
-
*/
|
63 |
-
public static function update($id, $params = null, $options = null)
|
64 |
Â
{
|
65 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
66 |
Â
}
|
67 |
Â
|
68 |
Â
/**
|
@@ -75,16 +86,6 @@ class Subscription extends ApiResource
|
|
75 |
Â
return $this->_delete($params, $opts);
|
76 |
Â
}
|
77 |
Â
|
78 |
-
/**
|
79 |
-
* @param array|string|null $opts
|
80 |
-
*
|
81 |
-
* @return Subscription The saved subscription.
|
82 |
-
*/
|
83 |
-
public function save($opts = null)
|
84 |
-
{
|
85 |
-
return $this->_save($opts);
|
86 |
-
}
|
87 |
-
|
88 |
Â
/**
|
89 |
Â
* @return Subscription The updated subscription.
|
90 |
Â
*/
|
@@ -92,6 +93,6 @@ class Subscription extends ApiResource
|
|
92 |
Â
{
|
93 |
Â
$url = $this->instanceUrl() . '/discount';
|
94 |
Â
list($response, $opts) = $this->_request('delete', $url);
|
95 |
-
$this->refreshFrom(
|
96 |
Â
}
|
97 |
Â
}
|
5 |
Â
/**
|
6 |
Â
* Class Subscription
|
7 |
Â
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property float $application_fee_percent
|
11 |
+
* @property string $billing
|
12 |
+
* @property int $billing_cycle_anchor
|
13 |
+
* @property mixed $billing_thresholds
|
14 |
+
* @property bool $cancel_at_period_end
|
15 |
+
* @property int $canceled_at
|
16 |
+
* @property string $collection_method
|
17 |
+
* @property int $created
|
18 |
+
* @property int $current_period_end
|
19 |
+
* @property int $current_period_start
|
20 |
+
* @property string $customer
|
21 |
+
* @property int $days_until_due
|
22 |
+
* @property string $default_payment_method
|
23 |
+
* @property string $default_source
|
24 |
+
* @property array $default_tax_rates
|
25 |
+
* @property Discount $discount
|
26 |
+
* @property int $ended_at
|
27 |
+
* @property Collection $items
|
28 |
+
* @property string $latest_invoice
|
29 |
+
* @property boolean $livemode
|
30 |
+
* @property StripeObject $metadata
|
31 |
+
* @property Plan $plan
|
32 |
+
* @property int $quantity
|
33 |
+
* @property SubscriptionSchedule $schedule
|
34 |
+
* @property int $start
|
35 |
+
* @property int $start_date
|
36 |
+
* @property string $status
|
37 |
+
* @property float $tax_percent
|
38 |
+
* @property int $trial_end
|
39 |
+
* @property int $trial_start
|
40 |
+
*
|
41 |
Â
* @package Stripe
|
42 |
Â
*/
|
43 |
Â
class Subscription extends ApiResource
|
44 |
Â
{
|
45 |
+
const OBJECT_NAME = "subscription";
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
46 |
Â
|
47 |
+
use ApiOperations\All;
|
48 |
+
use ApiOperations\Create;
|
49 |
+
use ApiOperations\Delete {
|
50 |
+
delete as protected _delete;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
51 |
Â
}
|
52 |
+
use ApiOperations\Retrieve;
|
53 |
+
use ApiOperations\Update;
|
54 |
Â
|
55 |
Â
/**
|
56 |
+
* These constants are possible representations of the status field.
|
Â
|
|
57 |
Â
*
|
58 |
+
* @link https://stripe.com/docs/api#subscription_object-status
|
59 |
Â
*/
|
60 |
+
const STATUS_ACTIVE = 'active';
|
61 |
+
const STATUS_CANCELED = 'canceled';
|
62 |
+
const STATUS_PAST_DUE = 'past_due';
|
63 |
+
const STATUS_TRIALING = 'trialing';
|
64 |
+
const STATUS_UNPAID = 'unpaid';
|
65 |
+
const STATUS_INCOMPLETE = 'incomplete';
|
66 |
+
const STATUS_INCOMPLETE_EXPIRED = 'incomplete_expired';
|
67 |
Â
|
68 |
+
public static function getSavedNestedResources()
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
69 |
Â
{
|
70 |
+
static $savedNestedResources = null;
|
71 |
+
if ($savedNestedResources === null) {
|
72 |
+
$savedNestedResources = new Util\Set([
|
73 |
+
'source',
|
74 |
+
]);
|
75 |
+
}
|
76 |
+
return $savedNestedResources;
|
77 |
Â
}
|
78 |
Â
|
79 |
Â
/**
|
86 |
Â
return $this->_delete($params, $opts);
|
87 |
Â
}
|
88 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
89 |
Â
/**
|
90 |
Â
* @return Subscription The updated subscription.
|
91 |
Â
*/
|
93 |
Â
{
|
94 |
Â
$url = $this->instanceUrl() . '/discount';
|
95 |
Â
list($response, $opts) = $this->_request('delete', $url);
|
96 |
+
$this->refreshFrom(['discount' => null], $opts, true);
|
97 |
Â
}
|
98 |
Â
}
|
app/api/Stripe/SubscriptionItem.php
CHANGED
@@ -5,84 +5,55 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class SubscriptionItem
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class SubscriptionItem extends ApiResource
|
11 |
Â
{
|
12 |
-
|
13 |
-
* This is a special case because the subscription items endpoint has an
|
14 |
-
* underscore in it. The parent `className` function strips underscores.
|
15 |
-
*
|
16 |
-
* @return string The name of the class.
|
17 |
-
*/
|
18 |
-
public static function className()
|
19 |
-
{
|
20 |
-
return 'subscription_item';
|
21 |
-
}
|
22 |
Â
|
23 |
-
|
24 |
-
* @param string $id The ID of the subscription item to retrieve.
|
25 |
-
* @param array|string|null $opts
|
26 |
-
*
|
27 |
-
* @return SubscriptionItem
|
28 |
-
*/
|
29 |
-
public static function retrieve($id, $opts = null)
|
30 |
-
{
|
31 |
-
return self::_retrieve($id, $opts);
|
32 |
-
}
|
33 |
Â
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
public static function all($params = null, $opts = null)
|
41 |
-
{
|
42 |
-
return self::_all($params, $opts);
|
43 |
-
}
|
44 |
Â
|
45 |
Â
/**
|
Â
|
|
46 |
Â
* @param array|null $params
|
47 |
Â
* @param array|string|null $opts
|
48 |
Â
*
|
49 |
-
* @return
|
50 |
Â
*/
|
51 |
-
public static function
|
52 |
Â
{
|
53 |
-
return self::
|
54 |
Â
}
|
55 |
Â
|
56 |
Â
/**
|
57 |
-
* @param string $id The ID of the subscription item to update.
|
58 |
Â
* @param array|null $params
|
59 |
Â
* @param array|string|null $options
|
60 |
Â
*
|
61 |
-
* @return
|
62 |
-
*/
|
63 |
-
public static function update($id, $params = null, $options = null)
|
64 |
-
{
|
65 |
-
return self::_update($id, $params, $options);
|
66 |
-
}
|
67 |
-
|
68 |
-
/**
|
69 |
-
* @param array|string|null $opts
|
70 |
-
*
|
71 |
-
* @return SubscriptionItem The saved subscription item.
|
72 |
-
*/
|
73 |
-
public function save($opts = null)
|
74 |
-
{
|
75 |
-
return $this->_save($opts);
|
76 |
-
}
|
77 |
-
|
78 |
-
/**
|
79 |
-
* @param array|null $params
|
80 |
-
* @param array|string|null $opts
|
81 |
-
*
|
82 |
-
* @return SubscriptionItem The deleted subscription item.
|
83 |
Â
*/
|
84 |
-
public function
|
85 |
Â
{
|
86 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
87 |
Â
}
|
88 |
Â
}
|
5 |
Â
/**
|
6 |
Â
* Class SubscriptionItem
|
7 |
Â
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property mixed $billing_thresholds
|
11 |
+
* @property int $created
|
12 |
+
* @property StripeObject $metadata
|
13 |
+
* @property Plan $plan
|
14 |
+
* @property int $quantity
|
15 |
+
* @property string $subscription
|
16 |
+
* @property array $tax_rates
|
17 |
+
*
|
18 |
Â
* @package Stripe
|
19 |
Â
*/
|
20 |
Â
class SubscriptionItem extends ApiResource
|
21 |
Â
{
|
22 |
+
const OBJECT_NAME = "subscription_item";
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
23 |
Â
|
24 |
+
const PATH_USAGE_RECORDS = '/usage_records';
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
25 |
Â
|
26 |
+
use ApiOperations\All;
|
27 |
+
use ApiOperations\Create;
|
28 |
+
use ApiOperations\Delete;
|
29 |
+
use ApiOperations\NestedResource;
|
30 |
+
use ApiOperations\Retrieve;
|
31 |
+
use ApiOperations\Update;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
32 |
Â
|
33 |
Â
/**
|
34 |
+
* @param string|null $id The ID of the subscription item on which to create the usage record.
|
35 |
Â
* @param array|null $params
|
36 |
Â
* @param array|string|null $opts
|
37 |
Â
*
|
38 |
+
* @return ApiResource
|
39 |
Â
*/
|
40 |
+
public static function createUsageRecord($id, $params = null, $opts = null)
|
41 |
Â
{
|
42 |
+
return self::_createNestedResource($id, static::PATH_USAGE_RECORDS, $params, $opts);
|
43 |
Â
}
|
44 |
Â
|
45 |
Â
/**
|
Â
|
|
46 |
Â
* @param array|null $params
|
47 |
Â
* @param array|string|null $options
|
48 |
Â
*
|
49 |
+
* @return Collection The list of usage record summaries.
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
50 |
Â
*/
|
51 |
+
public function usageRecordSummaries($params = null, $options = null)
|
52 |
Â
{
|
53 |
+
$url = $this->instanceUrl() . '/usage_record_summaries';
|
54 |
+
list($response, $opts) = $this->_request('get', $url, $params, $options);
|
55 |
+
$obj = Util\Util::convertToStripeObject($response, $opts);
|
56 |
+
$obj->setLastResponse($response);
|
57 |
+
return $obj;
|
58 |
Â
}
|
59 |
Â
}
|
app/api/Stripe/SubscriptionSchedule.php
ADDED
@@ -0,0 +1,68 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class SubscriptionSchedule
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property string $billing
|
11 |
+
* @property mixed $billing_thresholds
|
12 |
+
* @property int $canceled_at
|
13 |
+
* @property int $completed_at
|
14 |
+
* @property int $created
|
15 |
+
* @property mixed $current_phase
|
16 |
+
* @property string $customer
|
17 |
+
* @property mixed $invoice_settings
|
18 |
+
* @property boolean $livemode
|
19 |
+
* @property StripeObject $metadata
|
20 |
+
* @property mixed $phases
|
21 |
+
* @property int $released_at
|
22 |
+
* @property string $released_subscription
|
23 |
+
* @property string $renewal_behavior
|
24 |
+
* @property mixed $renewal_interval
|
25 |
+
* @property string $revision
|
26 |
+
* @property string $status
|
27 |
+
* @property string $subscription
|
28 |
+
*
|
29 |
+
* @package Stripe
|
30 |
+
*/
|
31 |
+
class SubscriptionSchedule extends ApiResource
|
32 |
+
{
|
33 |
+
const OBJECT_NAME = "subscription_schedule";
|
34 |
+
|
35 |
+
use ApiOperations\All;
|
36 |
+
use ApiOperations\Create;
|
37 |
+
use ApiOperations\Retrieve;
|
38 |
+
use ApiOperations\Update;
|
39 |
+
use ApiOperations\NestedResource;
|
40 |
+
|
41 |
+
/**
|
42 |
+
* @param array|null $params
|
43 |
+
* @param array|string|null $opts
|
44 |
+
*
|
45 |
+
* @return SubscriptionSchedule The canceled subscription schedule.
|
46 |
+
*/
|
47 |
+
public function cancel($params = null, $opts = null)
|
48 |
+
{
|
49 |
+
$url = $this->instanceUrl() . '/cancel';
|
50 |
+
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
51 |
+
$this->refreshFrom($response, $opts);
|
52 |
+
return $this;
|
53 |
+
}
|
54 |
+
|
55 |
+
/**
|
56 |
+
* @param array|null $params
|
57 |
+
* @param array|string|null $opts
|
58 |
+
*
|
59 |
+
* @return SubscriptionSchedule The released subscription schedule.
|
60 |
+
*/
|
61 |
+
public function release($params = null, $opts = null)
|
62 |
+
{
|
63 |
+
$url = $this->instanceUrl() . '/release';
|
64 |
+
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
65 |
+
$this->refreshFrom($response, $opts);
|
66 |
+
return $this;
|
67 |
+
}
|
68 |
+
}
|
app/api/Stripe/TaxId.php
ADDED
@@ -0,0 +1,80 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class TaxId
|
7 |
+
*
|
8 |
+
* @package Stripe
|
9 |
+
*
|
10 |
+
* @property string $id
|
11 |
+
* @property string $object
|
12 |
+
* @property string $country
|
13 |
+
* @property int $created
|
14 |
+
* @property string $customer
|
15 |
+
* @property bool $livemode
|
16 |
+
* @property string $type
|
17 |
+
* @property string $value
|
18 |
+
* @property mixed $verification
|
19 |
+
*/
|
20 |
+
class TaxId extends ApiResource
|
21 |
+
{
|
22 |
+
const OBJECT_NAME = "tax_id";
|
23 |
+
|
24 |
+
use ApiOperations\Delete;
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Possible string representations of a tax id's type.
|
28 |
+
* @link https://stripe.com/docs/api/customer_tax_ids/object#tax_id_object-type
|
29 |
+
*/
|
30 |
+
const TYPE_AU_ABN = 'au_abn';
|
31 |
+
const TYPE_EU_VAT = 'eu_vat';
|
32 |
+
const TYPE_IN_GST = 'in_gst';
|
33 |
+
const TYPE_NO_VAT = 'no_vat';
|
34 |
+
const TYPE_NZ_GST = 'nz_gst';
|
35 |
+
const TYPE_UNKNOWN = 'unknown';
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Possible string representations of the verification status.
|
39 |
+
* @link https://stripe.com/docs/api/customer_tax_ids/object#tax_id_object-verification
|
40 |
+
*/
|
41 |
+
const VERIFICATION_STATUS_PENDING = 'pending';
|
42 |
+
const VERIFICATION_STATUS_UNAVAILABLE = 'unavailable';
|
43 |
+
const VERIFICATION_STATUS_UNVERIFIED = 'unverified';
|
44 |
+
const VERIFICATION_STATUS_VERIFIED = 'verified';
|
45 |
+
|
46 |
+
/**
|
47 |
+
* @return string The API URL for this tax id.
|
48 |
+
*/
|
49 |
+
public function instanceUrl()
|
50 |
+
{
|
51 |
+
$id = $this['id'];
|
52 |
+
$customer = $this['customer'];
|
53 |
+
if (!$id) {
|
54 |
+
throw new Error\InvalidRequest(
|
55 |
+
"Could not determine which URL to request: class instance has invalid ID: $id",
|
56 |
+
null
|
57 |
+
);
|
58 |
+
}
|
59 |
+
$id = Util\Util::utf8($id);
|
60 |
+
$customer = Util\Util::utf8($customer);
|
61 |
+
|
62 |
+
$base = Customer::classUrl();
|
63 |
+
$customerExtn = urlencode($customer);
|
64 |
+
$extn = urlencode($id);
|
65 |
+
return "$base/$customerExtn/tax_ids/$extn";
|
66 |
+
}
|
67 |
+
|
68 |
+
/**
|
69 |
+
* @param array|string $_id
|
70 |
+
* @param array|string|null $_opts
|
71 |
+
*
|
72 |
+
* @throws \Stripe\Error\InvalidRequest
|
73 |
+
*/
|
74 |
+
public static function retrieve($_id, $_opts = null)
|
75 |
+
{
|
76 |
+
$msg = "Tax Ids cannot be accessed without a customer ID. " .
|
77 |
+
"Retrieve a Tax Id using Customer::retrieveTaxId('tax_id') instead.";
|
78 |
+
throw new Error\InvalidRequest($msg, null);
|
79 |
+
}
|
80 |
+
}
|
app/api/Stripe/TaxRate.php
ADDED
@@ -0,0 +1,30 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class TaxRate
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property bool $active
|
11 |
+
* @property int $created
|
12 |
+
* @property string $description
|
13 |
+
* @property string $display_name
|
14 |
+
* @property bool $inclusive
|
15 |
+
* @property string $jurisdiction
|
16 |
+
* @property bool $livemode
|
17 |
+
* @property StripeObject $metadata
|
18 |
+
* @property float $percentage
|
19 |
+
*
|
20 |
+
* @package Stripe
|
21 |
+
*/
|
22 |
+
class TaxRate extends ApiResource
|
23 |
+
{
|
24 |
+
const OBJECT_NAME = "tax_rate";
|
25 |
+
|
26 |
+
use ApiOperations\All;
|
27 |
+
use ApiOperations\Create;
|
28 |
+
use ApiOperations\Retrieve;
|
29 |
+
use ApiOperations\Update;
|
30 |
+
}
|
app/api/Stripe/Terminal/ConnectionToken.php
ADDED
@@ -0,0 +1,17 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Terminal;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class ConnectionToken
|
7 |
+
*
|
8 |
+
* @property string $secret
|
9 |
+
*
|
10 |
+
* @package Stripe\Terminal
|
11 |
+
*/
|
12 |
+
class ConnectionToken extends \Stripe\ApiResource
|
13 |
+
{
|
14 |
+
const OBJECT_NAME = "terminal.connection_token";
|
15 |
+
|
16 |
+
use \Stripe\ApiOperations\Create;
|
17 |
+
}
|
app/api/Stripe/Terminal/Location.php
ADDED
@@ -0,0 +1,25 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Terminal;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Location
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property mixed $address
|
11 |
+
* @property bool $deleted
|
12 |
+
* @property string $display_name
|
13 |
+
*
|
14 |
+
* @package Stripe\Terminal
|
15 |
+
*/
|
16 |
+
class Location extends \Stripe\ApiResource
|
17 |
+
{
|
18 |
+
const OBJECT_NAME = "terminal.location";
|
19 |
+
|
20 |
+
use \Stripe\ApiOperations\All;
|
21 |
+
use \Stripe\ApiOperations\Create;
|
22 |
+
use \Stripe\ApiOperations\Delete;
|
23 |
+
use \Stripe\ApiOperations\Retrieve;
|
24 |
+
use \Stripe\ApiOperations\Update;
|
25 |
+
}
|
app/api/Stripe/Terminal/Reader.php
ADDED
@@ -0,0 +1,30 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Terminal;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Reader
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property bool $deleted
|
11 |
+
* @property string $device_sw_version
|
12 |
+
* @property string $device_type
|
13 |
+
* @property string $ip_address
|
14 |
+
* @property string $label
|
15 |
+
* @property string $location
|
16 |
+
* @property string $serial_number
|
17 |
+
* @property string $status
|
18 |
+
*
|
19 |
+
* @package Stripe\Terminal
|
20 |
+
*/
|
21 |
+
class Reader extends \Stripe\ApiResource
|
22 |
+
{
|
23 |
+
const OBJECT_NAME = "terminal.reader";
|
24 |
+
|
25 |
+
use \Stripe\ApiOperations\All;
|
26 |
+
use \Stripe\ApiOperations\Create;
|
27 |
+
use \Stripe\ApiOperations\Delete;
|
28 |
+
use \Stripe\ApiOperations\Retrieve;
|
29 |
+
use \Stripe\ApiOperations\Update;
|
30 |
+
}
|
app/api/Stripe/ThreeDSecure.php
CHANGED
@@ -4,6 +4,11 @@ namespace Stripe;
|
|
4 |
Â
|
5 |
Â
class ThreeDSecure extends ApiResource
|
6 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
7 |
Â
/**
|
8 |
Â
* @return string The endpoint URL for the given class.
|
9 |
Â
*/
|
@@ -11,26 +16,4 @@ class ThreeDSecure extends ApiResource
|
|
11 |
Â
{
|
12 |
Â
return "/v1/3d_secure";
|
13 |
Â
}
|
14 |
-
|
15 |
-
/**
|
16 |
-
* @param string $id The ID of the 3DS auth to retrieve.
|
17 |
-
* @param array|string|null $options
|
18 |
-
*
|
19 |
-
* @return ThreeDSecure
|
20 |
-
*/
|
21 |
-
public static function retrieve($id, $options = null)
|
22 |
-
{
|
23 |
-
return self::_retrieve($id, $options);
|
24 |
-
}
|
25 |
-
|
26 |
-
/**
|
27 |
-
* @param array|null $params
|
28 |
-
* @param array|string|null $opts
|
29 |
-
*
|
30 |
-
* @return ThreeDSecure The created 3D Secure object.
|
31 |
-
*/
|
32 |
-
public static function create($params = null, $opts = null)
|
33 |
-
{
|
34 |
-
return self::_create($params, $opts);
|
35 |
-
}
|
36 |
Â
}
|
4 |
Â
|
5 |
Â
class ThreeDSecure extends ApiResource
|
6 |
Â
{
|
7 |
+
const OBJECT_NAME = "three_d_secure";
|
8 |
+
|
9 |
+
use ApiOperations\Create;
|
10 |
+
use ApiOperations\Retrieve;
|
11 |
+
|
12 |
Â
/**
|
13 |
Â
* @return string The endpoint URL for the given class.
|
14 |
Â
*/
|
16 |
Â
{
|
17 |
Â
return "/v1/3d_secure";
|
18 |
Â
}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
19 |
Â
}
|
app/api/Stripe/Token.php
CHANGED
@@ -7,9 +7,9 @@ namespace Stripe;
|
|
7 |
Â
*
|
8 |
Â
* @property string $id
|
9 |
Â
* @property string $object
|
10 |
-
* @property
|
11 |
-
* @property
|
12 |
-
* @property
|
13 |
Â
* @property int $created
|
14 |
Â
* @property bool $livemode
|
15 |
Â
* @property string $type
|
@@ -19,25 +19,17 @@ namespace Stripe;
|
|
19 |
Â
*/
|
20 |
Â
class Token extends ApiResource
|
21 |
Â
{
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
* @return Token
|
27 |
-
*/
|
28 |
-
public static function retrieve($id, $opts = null)
|
29 |
-
{
|
30 |
-
return self::_retrieve($id, $opts);
|
31 |
-
}
|
32 |
Â
|
33 |
Â
/**
|
34 |
-
*
|
35 |
-
* @
|
36 |
-
*
|
37 |
-
* @return Token The created token.
|
38 |
Â
*/
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
Â
}
|
7 |
Â
*
|
8 |
Â
* @property string $id
|
9 |
Â
* @property string $object
|
10 |
+
* @property BankAccount $bank_account
|
11 |
+
* @property Card $card
|
12 |
+
* @property string $client_ip
|
13 |
Â
* @property int $created
|
14 |
Â
* @property bool $livemode
|
15 |
Â
* @property string $type
|
19 |
Â
*/
|
20 |
Â
class Token extends ApiResource
|
21 |
Â
{
|
22 |
+
const OBJECT_NAME = "token";
|
23 |
+
|
24 |
+
use ApiOperations\Create;
|
25 |
+
use ApiOperations\Retrieve;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
26 |
Â
|
27 |
Â
/**
|
28 |
+
* Possible string representations of the token type.
|
29 |
+
* @link https://stripe.com/docs/api/tokens/object#token_object-type
|
Â
|
|
Â
|
|
30 |
Â
*/
|
31 |
+
const TYPE_ACCOUNT = 'account';
|
32 |
+
const TYPE_BANK_ACCOUNT = 'bank_account';
|
33 |
+
const TYPE_CARD = 'card';
|
34 |
+
const TYPE_PII = 'pii';
|
35 |
Â
}
|
app/api/Stripe/Topup.php
ADDED
@@ -0,0 +1,59 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Topup
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $amount
|
11 |
+
* @property string $balance_transaction
|
12 |
+
* @property int $created
|
13 |
+
* @property string $currency
|
14 |
+
* @property string $description
|
15 |
+
* @property int $expected_availability_date
|
16 |
+
* @property string $failure_code
|
17 |
+
* @property string $failure_message
|
18 |
+
* @property bool $livemode
|
19 |
+
* @property StripeObject $metadata
|
20 |
+
* @property mixed $source
|
21 |
+
* @property string $statement_descriptor
|
22 |
+
* @property string $status
|
23 |
+
* @property string $transfer_group
|
24 |
+
*
|
25 |
+
* @package Stripe
|
26 |
+
*/
|
27 |
+
class Topup extends ApiResource
|
28 |
+
{
|
29 |
+
const OBJECT_NAME = "topup";
|
30 |
+
|
31 |
+
use ApiOperations\All;
|
32 |
+
use ApiOperations\Create;
|
33 |
+
use ApiOperations\Retrieve;
|
34 |
+
use ApiOperations\Update;
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Possible string representations of the status of the top-up.
|
38 |
+
* @link https://stripe.com/docs/api/topups/object#topup_object-status
|
39 |
+
*/
|
40 |
+
const STATUS_CANCELED = 'canceled';
|
41 |
+
const STATUS_FAILED = 'failed';
|
42 |
+
const STATUS_PENDING = 'pending';
|
43 |
+
const STATUS_REVERSED = 'reversed';
|
44 |
+
const STATUS_SUCCEEDED = 'succeeded';
|
45 |
+
|
46 |
+
/**
|
47 |
+
* @param array|null $params
|
48 |
+
* @param array|string|null $options
|
49 |
+
*
|
50 |
+
* @return Topup The canceled topup.
|
51 |
+
*/
|
52 |
+
public function cancel($params = null, $options = null)
|
53 |
+
{
|
54 |
+
$url = $this->instanceUrl() . '/cancel';
|
55 |
+
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
56 |
+
$this->refreshFrom($response, $opts);
|
57 |
+
return $this;
|
58 |
+
}
|
59 |
+
}
|
app/api/Stripe/Transfer.php
CHANGED
@@ -9,107 +9,112 @@ namespace Stripe;
|
|
9 |
Â
* @property string $object
|
10 |
Â
* @property int $amount
|
11 |
Â
* @property int $amount_reversed
|
12 |
-
* @property mixed $application_fee
|
13 |
Â
* @property string $balance_transaction
|
14 |
Â
* @property int $created
|
15 |
Â
* @property string $currency
|
16 |
-
* @property
|
17 |
-
* @property
|
18 |
-
* @property
|
19 |
-
* @property mixed $destination_payment
|
20 |
-
* @property mixed $failure_code
|
21 |
-
* @property mixed $failure_message
|
22 |
-
* @property mixed $fraud_details
|
23 |
-
* @property mixed $invoice
|
24 |
Â
* @property bool $livemode
|
25 |
-
* @property
|
26 |
-
* @property
|
27 |
-
* @property mixed $reversals
|
28 |
Â
* @property bool $reversed
|
29 |
-
* @property
|
30 |
Â
* @property string $source_type
|
31 |
-
* @property
|
32 |
-
* @property string $status
|
33 |
-
* @property string $type
|
34 |
Â
*
|
35 |
Â
* @package Stripe
|
36 |
Â
*/
|
37 |
Â
class Transfer extends ApiResource
|
38 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
39 |
Â
/**
|
40 |
-
*
|
41 |
-
* @
|
42 |
-
*
|
43 |
-
* @return Transfer
|
44 |
Â
*/
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
Â
|
50 |
Â
/**
|
51 |
-
* @
|
52 |
-
* @param array|string|null $opts
|
53 |
-
*
|
54 |
-
* @return Collection of Transfers
|
55 |
Â
*/
|
56 |
-
public
|
57 |
Â
{
|
58 |
-
|
Â
|
|
Â
|
|
Â
|
|
59 |
Â
}
|
60 |
Â
|
61 |
Â
/**
|
62 |
-
* @
|
63 |
-
* @param array|string|null $opts
|
64 |
-
*
|
65 |
-
* @return Transfer The created transfer.
|
66 |
Â
*/
|
67 |
-
public
|
68 |
Â
{
|
69 |
-
|
Â
|
|
Â
|
|
Â
|
|
70 |
Â
}
|
71 |
Â
|
72 |
Â
/**
|
73 |
-
* @param string $id The ID of the transfer to
|
74 |
Â
* @param array|null $params
|
75 |
-
* @param array|string|null $
|
76 |
Â
*
|
77 |
-
* @return
|
78 |
Â
*/
|
79 |
-
public static function
|
80 |
Â
{
|
81 |
-
return self::
|
82 |
Â
}
|
83 |
Â
|
84 |
Â
/**
|
85 |
-
* @
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
86 |
Â
*/
|
87 |
-
public function
|
88 |
Â
{
|
89 |
-
$
|
90 |
-
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
91 |
-
$this->refreshFrom($response, $opts);
|
92 |
-
return $this;
|
93 |
Â
}
|
94 |
Â
|
95 |
Â
/**
|
96 |
-
* @
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
97 |
Â
*/
|
98 |
-
public function
|
99 |
Â
{
|
100 |
-
$
|
101 |
-
list($response, $opts) = $this->_request('post', $url);
|
102 |
-
$this->refreshFrom($response, $opts);
|
103 |
-
return $this;
|
104 |
Â
}
|
105 |
Â
|
106 |
Â
/**
|
Â
|
|
Â
|
|
107 |
Â
* @param array|string|null $opts
|
108 |
Â
*
|
109 |
-
* @return
|
110 |
Â
*/
|
111 |
-
public function
|
112 |
Â
{
|
113 |
-
return
|
114 |
Â
}
|
115 |
Â
}
|
9 |
Â
* @property string $object
|
10 |
Â
* @property int $amount
|
11 |
Â
* @property int $amount_reversed
|
Â
|
|
12 |
Â
* @property string $balance_transaction
|
13 |
Â
* @property int $created
|
14 |
Â
* @property string $currency
|
15 |
+
* @property string $description
|
16 |
+
* @property string $destination
|
17 |
+
* @property string $destination_payment
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
18 |
Â
* @property bool $livemode
|
19 |
+
* @property StripeObject $metadata
|
20 |
+
* @property Collection $reversals
|
Â
|
|
21 |
Â
* @property bool $reversed
|
22 |
+
* @property string $source_transaction
|
23 |
Â
* @property string $source_type
|
24 |
+
* @property string $transfer_group
|
Â
|
|
Â
|
|
25 |
Â
*
|
26 |
Â
* @package Stripe
|
27 |
Â
*/
|
28 |
Â
class Transfer extends ApiResource
|
29 |
Â
{
|
30 |
+
const OBJECT_NAME = "transfer";
|
31 |
+
|
32 |
+
use ApiOperations\All;
|
33 |
+
use ApiOperations\Create;
|
34 |
+
use ApiOperations\NestedResource;
|
35 |
+
use ApiOperations\Retrieve;
|
36 |
+
use ApiOperations\Update;
|
37 |
+
|
38 |
+
const PATH_REVERSALS = '/reversals';
|
39 |
+
|
40 |
Â
/**
|
41 |
+
* Possible string representations of the source type of the transfer.
|
42 |
+
* @link https://stripe.com/docs/api/transfers/object#transfer_object-source_type
|
Â
|
|
Â
|
|
43 |
Â
*/
|
44 |
+
const SOURCE_TYPE_ALIPAY_ACCOUNT = 'alipay_account';
|
45 |
+
const SOURCE_TYPE_BANK_ACCOUNT = 'bank_account';
|
46 |
+
const SOURCE_TYPE_CARD = 'card';
|
47 |
+
const SOURCE_TYPE_FINANCING = 'financing';
|
48 |
Â
|
49 |
Â
/**
|
50 |
+
* @return TransferReversal The created transfer reversal.
|
Â
|
|
Â
|
|
Â
|
|
51 |
Â
*/
|
52 |
+
public function reverse($params = null, $opts = null)
|
53 |
Â
{
|
54 |
+
$url = $this->instanceUrl() . '/reversals';
|
55 |
+
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
56 |
+
$this->refreshFrom($response, $opts);
|
57 |
+
return $this;
|
58 |
Â
}
|
59 |
Â
|
60 |
Â
/**
|
61 |
+
* @return Transfer The canceled transfer.
|
Â
|
|
Â
|
|
Â
|
|
62 |
Â
*/
|
63 |
+
public function cancel()
|
64 |
Â
{
|
65 |
+
$url = $this->instanceUrl() . '/cancel';
|
66 |
+
list($response, $opts) = $this->_request('post', $url);
|
67 |
+
$this->refreshFrom($response, $opts);
|
68 |
+
return $this;
|
69 |
Â
}
|
70 |
Â
|
71 |
Â
/**
|
72 |
+
* @param string|null $id The ID of the transfer on which to create the reversal.
|
73 |
Â
* @param array|null $params
|
74 |
+
* @param array|string|null $opts
|
75 |
Â
*
|
76 |
+
* @return TransferReversal
|
77 |
Â
*/
|
78 |
+
public static function createReversal($id, $params = null, $opts = null)
|
79 |
Â
{
|
80 |
+
return self::_createNestedResource($id, static::PATH_REVERSALS, $params, $opts);
|
81 |
Â
}
|
82 |
Â
|
83 |
Â
/**
|
84 |
+
* @param string|null $id The ID of the transfer to which the reversal belongs.
|
85 |
+
* @param array|null $reversalId The ID of the reversal to retrieve.
|
86 |
+
* @param array|null $params
|
87 |
+
* @param array|string|null $opts
|
88 |
+
*
|
89 |
+
* @return TransferReversal
|
90 |
Â
*/
|
91 |
+
public static function retrieveReversal($id, $reversalId, $params = null, $opts = null)
|
92 |
Â
{
|
93 |
+
return self::_retrieveNestedResource($id, static::PATH_REVERSALS, $reversalId, $params, $opts);
|
Â
|
|
Â
|
|
Â
|
|
94 |
Â
}
|
95 |
Â
|
96 |
Â
/**
|
97 |
+
* @param string|null $id The ID of the transfer to which the reversal belongs.
|
98 |
+
* @param array|null $reversalId The ID of the reversal to update.
|
99 |
+
* @param array|null $params
|
100 |
+
* @param array|string|null $opts
|
101 |
+
*
|
102 |
+
* @return TransferReversal
|
103 |
Â
*/
|
104 |
+
public static function updateReversal($id, $reversalId, $params = null, $opts = null)
|
105 |
Â
{
|
106 |
+
return self::_updateNestedResource($id, static::PATH_REVERSALS, $reversalId, $params, $opts);
|
Â
|
|
Â
|
|
Â
|
|
107 |
Â
}
|
108 |
Â
|
109 |
Â
/**
|
110 |
+
* @param string|null $id The ID of the transfer on which to retrieve the reversals.
|
111 |
+
* @param array|null $params
|
112 |
Â
* @param array|string|null $opts
|
113 |
Â
*
|
114 |
+
* @return Collection The list of reversals.
|
115 |
Â
*/
|
116 |
+
public static function allReversals($id, $params = null, $opts = null)
|
117 |
Â
{
|
118 |
+
return self::_allNestedResources($id, static::PATH_REVERSALS, $params, $opts);
|
119 |
Â
}
|
120 |
Â
}
|
app/api/Stripe/TransferReversal.php
CHANGED
@@ -11,13 +11,21 @@ namespace Stripe;
|
|
11 |
Â
* @property string $balance_transaction
|
12 |
Â
* @property int $created
|
13 |
Â
* @property string $currency
|
14 |
-
* @property
|
Â
|
|
Â
|
|
15 |
Â
* @property string $transfer
|
16 |
Â
*
|
17 |
Â
* @package Stripe
|
18 |
Â
*/
|
19 |
Â
class TransferReversal extends ApiResource
|
20 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
21 |
Â
/**
|
22 |
Â
* @return string The API URL for this Stripe transfer reversal.
|
23 |
Â
*/
|
11 |
Â
* @property string $balance_transaction
|
12 |
Â
* @property int $created
|
13 |
Â
* @property string $currency
|
14 |
+
* @property string $destination_payment_refund
|
15 |
+
* @property StripeObject $metadata
|
16 |
+
* @property string $source_refund
|
17 |
Â
* @property string $transfer
|
18 |
Â
*
|
19 |
Â
* @package Stripe
|
20 |
Â
*/
|
21 |
Â
class TransferReversal extends ApiResource
|
22 |
Â
{
|
23 |
+
const OBJECT_NAME = "transfer_reversal";
|
24 |
+
|
25 |
+
use ApiOperations\Update {
|
26 |
+
save as protected _save;
|
27 |
+
}
|
28 |
+
|
29 |
Â
/**
|
30 |
Â
* @return string The API URL for this Stripe transfer reversal.
|
31 |
Â
*/
|
app/api/Stripe/UsageRecord.php
ADDED
@@ -0,0 +1,43 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class UsageRecord
|
7 |
+
*
|
8 |
+
* @package Stripe
|
9 |
+
*
|
10 |
+
* @property string $id
|
11 |
+
* @property string $object
|
12 |
+
* @property bool $livemode
|
13 |
+
* @property int $quantity
|
14 |
+
* @property string $subscription_item
|
15 |
+
* @property int $timestamp
|
16 |
+
*/
|
17 |
+
class UsageRecord extends ApiResource
|
18 |
+
{
|
19 |
+
const OBJECT_NAME = "usage_record";
|
20 |
+
|
21 |
+
/**
|
22 |
+
* @param array|null $params
|
23 |
+
* @param array|string|null $options
|
24 |
+
*
|
25 |
+
* @return \Stripe\ApiResource The created resource.
|
26 |
+
*/
|
27 |
+
public static function create($params = null, $options = null)
|
28 |
+
{
|
29 |
+
self::_validateParams($params);
|
30 |
+
if (!array_key_exists('subscription_item', $params)) {
|
31 |
+
throw new Error\InvalidRequest("Missing subscription_item param in request", null);
|
32 |
+
}
|
33 |
+
$subscription_item = $params['subscription_item'];
|
34 |
+
$url = "/v1/subscription_items/$subscription_item/usage_records";
|
35 |
+
$request_params = $params;
|
36 |
+
unset($request_params['subscription_item']);
|
37 |
+
|
38 |
+
list($response, $opts) = static::_staticRequest('post', $url, $request_params, $options);
|
39 |
+
$obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
|
40 |
+
$obj->setLastResponse($response);
|
41 |
+
return $obj;
|
42 |
+
}
|
43 |
+
}
|
app/api/Stripe/UsageRecordSummary.php
ADDED
@@ -0,0 +1,21 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class UsageRecord
|
7 |
+
*
|
8 |
+
* @package Stripe
|
9 |
+
*
|
10 |
+
* @property string $id
|
11 |
+
* @property string $object
|
12 |
+
* @property string $invoice
|
13 |
+
* @property bool $livemode
|
14 |
+
* @property mixed $period
|
15 |
+
* @property string $subscription_item
|
16 |
+
* @property int $total_usage
|
17 |
+
*/
|
18 |
+
class UsageRecordSummary extends ApiResource
|
19 |
+
{
|
20 |
+
const OBJECT_NAME = "usage_record_summary";
|
21 |
+
}
|
app/api/Stripe/Util/AutoPagingIterator.php
CHANGED
@@ -7,7 +7,7 @@ class AutoPagingIterator implements \Iterator
|
|
7 |
Â
private $lastId = null;
|
8 |
Â
private $page = null;
|
9 |
Â
private $pageOffset = 0;
|
10 |
-
private $params =
|
11 |
Â
|
12 |
Â
public function __construct($collection, $params)
|
13 |
Â
{
|
@@ -42,8 +42,8 @@ class AutoPagingIterator implements \Iterator
|
|
42 |
Â
$this->pageOffset += count($this->page->data);
|
43 |
Â
if ($this->page['has_more']) {
|
44 |
Â
$this->params = array_merge(
|
45 |
-
$this->params
|
46 |
-
|
47 |
Â
);
|
48 |
Â
$this->page = $this->page->all($this->params);
|
49 |
Â
} else {
|
7 |
Â
private $lastId = null;
|
8 |
Â
private $page = null;
|
9 |
Â
private $pageOffset = 0;
|
10 |
+
private $params = [];
|
11 |
Â
|
12 |
Â
public function __construct($collection, $params)
|
13 |
Â
{
|
42 |
Â
$this->pageOffset += count($this->page->data);
|
43 |
Â
if ($this->page['has_more']) {
|
44 |
Â
$this->params = array_merge(
|
45 |
+
$this->params ?: [],
|
46 |
+
['starting_after' => $this->lastId]
|
47 |
Â
);
|
48 |
Â
$this->page = $this->page->all($this->params);
|
49 |
Â
} else {
|
app/api/Stripe/Util/CaseInsensitiveArray.php
ADDED
@@ -0,0 +1,62 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Util;
|
4 |
+
|
5 |
+
use ArrayAccess;
|
6 |
+
|
7 |
+
/**
|
8 |
+
* CaseInsensitiveArray is an array-like class that ignores case for keys.
|
9 |
+
*
|
10 |
+
* It is used to store HTTP headers. Per RFC 2616, section 4.2:
|
11 |
+
* Each header field consists of a name followed by a colon (":") and the field value. Field names
|
12 |
+
* are case-insensitive.
|
13 |
+
*
|
14 |
+
* In the context of stripe-php, this is useful because the API will return headers with different
|
15 |
+
* case depending on whether HTTP/2 is used or not (with HTTP/2, headers are always in lowercase).
|
16 |
+
*/
|
17 |
+
class CaseInsensitiveArray implements ArrayAccess
|
18 |
+
{
|
19 |
+
private $container = array();
|
20 |
+
|
21 |
+
public function __construct($initial_array = array())
|
22 |
+
{
|
23 |
+
$this->container = array_map("strtolower", $initial_array);
|
24 |
+
}
|
25 |
+
|
26 |
+
public function offsetSet($offset, $value)
|
27 |
+
{
|
28 |
+
$offset = static::maybeLowercase($offset);
|
29 |
+
if (is_null($offset)) {
|
30 |
+
$this->container[] = $value;
|
31 |
+
} else {
|
32 |
+
$this->container[$offset] = $value;
|
33 |
+
}
|
34 |
+
}
|
35 |
+
|
36 |
+
public function offsetExists($offset)
|
37 |
+
{
|
38 |
+
$offset = static::maybeLowercase($offset);
|
39 |
+
return isset($this->container[$offset]);
|
40 |
+
}
|
41 |
+
|
42 |
+
public function offsetUnset($offset)
|
43 |
+
{
|
44 |
+
$offset = static::maybeLowercase($offset);
|
45 |
+
unset($this->container[$offset]);
|
46 |
+
}
|
47 |
+
|
48 |
+
public function offsetGet($offset)
|
49 |
+
{
|
50 |
+
$offset = static::maybeLowercase($offset);
|
51 |
+
return isset($this->container[$offset]) ? $this->container[$offset] : null;
|
52 |
+
}
|
53 |
+
|
54 |
+
private static function maybeLowercase($v)
|
55 |
+
{
|
56 |
+
if (is_string($v)) {
|
57 |
+
return strtolower($v);
|
58 |
+
} else {
|
59 |
+
return $v;
|
60 |
+
}
|
61 |
+
}
|
62 |
+
}
|
app/api/Stripe/Util/DefaultLogger.php
ADDED
@@ -0,0 +1,18 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Util;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* A very basic implementation of LoggerInterface that has just enough
|
7 |
+
* functionality that it can be the default for this library.
|
8 |
+
*/
|
9 |
+
class DefaultLogger implements LoggerInterface
|
10 |
+
{
|
11 |
+
public function error($message, array $context = [])
|
12 |
+
{
|
13 |
+
if (count($context) > 0) {
|
14 |
+
throw new \Exception('DefaultLogger does not currently implement context. Please implement if you need it.');
|
15 |
+
}
|
16 |
+
error_log($message);
|
17 |
+
}
|
18 |
+
}
|
app/api/Stripe/Util/LoggerInterface.php
ADDED
@@ -0,0 +1,36 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Util;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Describes a logger instance.
|
7 |
+
*
|
8 |
+
* This is a subset of the interface of the same name in the PSR-3 logger
|
9 |
+
* interface. We guarantee to keep it compatible, but we'd redefined it here so
|
10 |
+
* that we don't have to pull in the extra dependencies for users who don't want
|
11 |
+
* it.
|
12 |
+
*
|
13 |
+
* See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md
|
14 |
+
* for the full interface specification.
|
15 |
+
*
|
16 |
+
* The message MUST be a string or object implementing __toString().
|
17 |
+
*
|
18 |
+
* The message MAY contain placeholders in the form: {foo} where foo
|
19 |
+
* will be replaced by the context data in key "foo".
|
20 |
+
*
|
21 |
+
* The context array can contain arbitrary data, the only assumption that
|
22 |
+
* can be made by implementors is that if an Exception instance is given
|
23 |
+
* to produce a stack trace, it MUST be in a key named "exception".
|
24 |
+
*/
|
25 |
+
interface LoggerInterface
|
26 |
+
{
|
27 |
+
/**
|
28 |
+
* Runtime errors that do not require immediate action but should typically
|
29 |
+
* be logged and monitored.
|
30 |
+
*
|
31 |
+
* @param string $message
|
32 |
+
* @param array $context
|
33 |
+
* @return null
|
34 |
+
*/
|
35 |
+
public function error($message, array $context = []);
|
36 |
+
}
|
app/api/Stripe/Util/RandomGenerator.php
ADDED
@@ -0,0 +1,34 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Util;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* A basic random generator. This is in a separate class so we the generator
|
7 |
+
* can be injected as a dependency and replaced with a mock in tests.
|
8 |
+
*/
|
9 |
+
class RandomGenerator
|
10 |
+
{
|
11 |
+
/**
|
12 |
+
* Returns a random value between 0 and $max.
|
13 |
+
*
|
14 |
+
* @param float $max (optional)
|
15 |
+
* @return float
|
16 |
+
*/
|
17 |
+
public function randFloat($max = 1.0)
|
18 |
+
{
|
19 |
+
return mt_rand() / mt_getrandmax() * $max;
|
20 |
+
}
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Returns a v4 UUID.
|
24 |
+
*
|
25 |
+
* @return string
|
26 |
+
*/
|
27 |
+
public function uuid()
|
28 |
+
{
|
29 |
+
$arr = array_values(unpack('N1a/n4b/N1c', openssl_random_pseudo_bytes(16)));
|
30 |
+
$arr[2] = ($arr[2] & 0x0fff) | 0x4000;
|
31 |
+
$arr[3] = ($arr[3] & 0x3fff) | 0x8000;
|
32 |
+
return vsprintf('%08x-%04x-%04x-%04x-%04x%08x', $arr);
|
33 |
+
}
|
34 |
+
}
|
app/api/Stripe/Util/RequestOptions.php
CHANGED
@@ -6,13 +6,23 @@ use Stripe\Error;
|
|
6 |
Â
|
7 |
Â
class RequestOptions
|
8 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
9 |
Â
public $headers;
|
10 |
Â
public $apiKey;
|
Â
|
|
11 |
Â
|
12 |
-
public function __construct($key = null, $headers =
|
13 |
Â
{
|
14 |
Â
$this->apiKey = $key;
|
15 |
Â
$this->headers = $headers;
|
Â
|
|
16 |
Â
}
|
17 |
Â
|
18 |
Â
/**
|
@@ -28,10 +38,25 @@ class RequestOptions
|
|
28 |
Â
if ($other_options->apiKey === null) {
|
29 |
Â
$other_options->apiKey = $this->apiKey;
|
30 |
Â
}
|
Â
|
|
Â
|
|
Â
|
|
31 |
Â
$other_options->headers = array_merge($this->headers, $other_options->headers);
|
32 |
Â
return $other_options;
|
33 |
Â
}
|
34 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
35 |
Â
/**
|
36 |
Â
* Unpacks an options array into an RequestOptions object
|
37 |
Â
* @param array|string|null $options a key => value array
|
@@ -45,16 +70,17 @@ class RequestOptions
|
|
45 |
Â
}
|
46 |
Â
|
47 |
Â
if (is_null($options)) {
|
48 |
-
return new RequestOptions(null,
|
49 |
Â
}
|
50 |
Â
|
51 |
Â
if (is_string($options)) {
|
52 |
-
return new RequestOptions($options,
|
53 |
Â
}
|
54 |
Â
|
55 |
Â
if (is_array($options)) {
|
56 |
-
$headers =
|
57 |
Â
$key = null;
|
Â
|
|
58 |
Â
if (array_key_exists('api_key', $options)) {
|
59 |
Â
$key = $options['api_key'];
|
60 |
Â
}
|
@@ -67,7 +93,10 @@ class RequestOptions
|
|
67 |
Â
if (array_key_exists('stripe_version', $options)) {
|
68 |
Â
$headers['Stripe-Version'] = $options['stripe_version'];
|
69 |
Â
}
|
70 |
-
|
Â
|
|
Â
|
|
Â
|
|
71 |
Â
}
|
72 |
Â
|
73 |
Â
$message = 'The second argument to Stripe API method calls is an '
|
6 |
Â
|
7 |
Â
class RequestOptions
|
8 |
Â
{
|
9 |
+
/**
|
10 |
+
* @var array A list of headers that should be persisted across requests.
|
11 |
+
*/
|
12 |
+
public static $HEADERS_TO_PERSIST = [
|
13 |
+
'Stripe-Account',
|
14 |
+
'Stripe-Version',
|
15 |
+
];
|
16 |
+
|
17 |
Â
public $headers;
|
18 |
Â
public $apiKey;
|
19 |
+
public $apiBase;
|
20 |
Â
|
21 |
+
public function __construct($key = null, $headers = [], $base = null)
|
22 |
Â
{
|
23 |
Â
$this->apiKey = $key;
|
24 |
Â
$this->headers = $headers;
|
25 |
+
$this->apiBase = $base;
|
26 |
Â
}
|
27 |
Â
|
28 |
Â
/**
|
38 |
Â
if ($other_options->apiKey === null) {
|
39 |
Â
$other_options->apiKey = $this->apiKey;
|
40 |
Â
}
|
41 |
+
if ($other_options->apiBase === null) {
|
42 |
+
$other_options->apiBase = $this->apiBase;
|
43 |
+
}
|
44 |
Â
$other_options->headers = array_merge($this->headers, $other_options->headers);
|
45 |
Â
return $other_options;
|
46 |
Â
}
|
47 |
Â
|
48 |
+
/**
|
49 |
+
* Discards all headers that we don't want to persist across requests.
|
50 |
+
*/
|
51 |
+
public function discardNonPersistentHeaders()
|
52 |
+
{
|
53 |
+
foreach ($this->headers as $k => $v) {
|
54 |
+
if (!in_array($k, self::$HEADERS_TO_PERSIST)) {
|
55 |
+
unset($this->headers[$k]);
|
56 |
+
}
|
57 |
+
}
|
58 |
+
}
|
59 |
+
|
60 |
Â
/**
|
61 |
Â
* Unpacks an options array into an RequestOptions object
|
62 |
Â
* @param array|string|null $options a key => value array
|
70 |
Â
}
|
71 |
Â
|
72 |
Â
if (is_null($options)) {
|
73 |
+
return new RequestOptions(null, [], null);
|
74 |
Â
}
|
75 |
Â
|
76 |
Â
if (is_string($options)) {
|
77 |
+
return new RequestOptions($options, [], null);
|
78 |
Â
}
|
79 |
Â
|
80 |
Â
if (is_array($options)) {
|
81 |
+
$headers = [];
|
82 |
Â
$key = null;
|
83 |
+
$base = null;
|
84 |
Â
if (array_key_exists('api_key', $options)) {
|
85 |
Â
$key = $options['api_key'];
|
86 |
Â
}
|
93 |
Â
if (array_key_exists('stripe_version', $options)) {
|
94 |
Â
$headers['Stripe-Version'] = $options['stripe_version'];
|
95 |
Â
}
|
96 |
+
if (array_key_exists('api_base', $options)) {
|
97 |
+
$base = $options['api_base'];
|
98 |
+
}
|
99 |
+
return new RequestOptions($key, $headers, $base);
|
100 |
Â
}
|
101 |
Â
|
102 |
Â
$message = 'The second argument to Stripe API method calls is an '
|
app/api/Stripe/Util/Set.php
CHANGED
@@ -9,9 +9,9 @@ class Set implements IteratorAggregate
|
|
9 |
Â
{
|
10 |
Â
private $_elts;
|
11 |
Â
|
12 |
-
public function __construct($members =
|
13 |
Â
{
|
14 |
-
$this->_elts =
|
15 |
Â
foreach ($members as $item) {
|
16 |
Â
$this->_elts[$item] = true;
|
17 |
Â
}
|
9 |
Â
{
|
10 |
Â
private $_elts;
|
11 |
Â
|
12 |
+
public function __construct($members = [])
|
13 |
Â
{
|
14 |
+
$this->_elts = [];
|
15 |
Â
foreach ($members as $item) {
|
16 |
Â
$this->_elts[$item] = true;
|
17 |
Â
}
|
app/api/Stripe/Util/Util.php
CHANGED
@@ -7,24 +7,26 @@ use Stripe\StripeObject;
|
|
7 |
Â
abstract class Util
|
8 |
Â
{
|
9 |
Â
private static $isMbstringAvailable = null;
|
Â
|
|
10 |
Â
|
11 |
Â
/**
|
12 |
Â
* Whether the provided array (or other) is a list rather than a dictionary.
|
Â
|
|
Â
|
|
13 |
Â
*
|
14 |
Â
* @param array|mixed $array
|
15 |
-
* @return boolean
|
16 |
Â
*/
|
17 |
Â
public static function isList($array)
|
18 |
Â
{
|
19 |
Â
if (!is_array($array)) {
|
20 |
Â
return false;
|
21 |
Â
}
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
}
|
28 |
Â
}
|
29 |
Â
return true;
|
30 |
Â
}
|
@@ -37,7 +39,7 @@ abstract class Util
|
|
37 |
Â
*/
|
38 |
Â
public static function convertStripeObjectToArray($values)
|
39 |
Â
{
|
40 |
-
$results =
|
41 |
Â
foreach ($values as $k => $v) {
|
42 |
Â
// FIXME: this is an encapsulation violation
|
43 |
Â
if ($k[0] == '_') {
|
@@ -63,43 +65,92 @@ abstract class Util
|
|
63 |
Â
*/
|
64 |
Â
public static function convertToStripeObject($resp, $opts)
|
65 |
Â
{
|
66 |
-
$types =
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
101 |
Â
if (self::isList($resp)) {
|
102 |
-
$mapped =
|
103 |
Â
foreach ($resp as $i) {
|
104 |
Â
array_push($mapped, self::convertToStripeObject($i, $opts));
|
105 |
Â
}
|
@@ -141,4 +192,169 @@ abstract class Util
|
|
141 |
Â
return $value;
|
142 |
Â
}
|
143 |
Â
}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
144 |
Â
}
|
7 |
Â
abstract class Util
|
8 |
Â
{
|
9 |
Â
private static $isMbstringAvailable = null;
|
10 |
+
private static $isHashEqualsAvailable = null;
|
11 |
Â
|
12 |
Â
/**
|
13 |
Â
* Whether the provided array (or other) is a list rather than a dictionary.
|
14 |
+
* A list is defined as an array for which all the keys are consecutive
|
15 |
+
* integers starting at 0. Empty arrays are considered to be lists.
|
16 |
Â
*
|
17 |
Â
* @param array|mixed $array
|
18 |
+
* @return boolean true if the given object is a list.
|
19 |
Â
*/
|
20 |
Â
public static function isList($array)
|
21 |
Â
{
|
22 |
Â
if (!is_array($array)) {
|
23 |
Â
return false;
|
24 |
Â
}
|
25 |
+
if ($array === []) {
|
26 |
+
return true;
|
27 |
+
}
|
28 |
+
if (array_keys($array) !== range(0, count($array) - 1)) {
|
29 |
+
return false;
|
Â
|
|
30 |
Â
}
|
31 |
Â
return true;
|
32 |
Â
}
|
39 |
Â
*/
|
40 |
Â
public static function convertStripeObjectToArray($values)
|
41 |
Â
{
|
42 |
+
$results = [];
|
43 |
Â
foreach ($values as $k => $v) {
|
44 |
Â
// FIXME: this is an encapsulation violation
|
45 |
Â
if ($k[0] == '_') {
|
65 |
Â
*/
|
66 |
Â
public static function convertToStripeObject($resp, $opts)
|
67 |
Â
{
|
68 |
+
$types = [
|
69 |
+
// data structures
|
70 |
+
\Stripe\Collection::OBJECT_NAME => 'Stripe\\Collection',
|
71 |
+
|
72 |
+
// business objects
|
73 |
+
\Stripe\Account::OBJECT_NAME => 'Stripe\\Account',
|
74 |
+
\Stripe\AccountLink::OBJECT_NAME => 'Stripe\\AccountLink',
|
75 |
+
\Stripe\AlipayAccount::OBJECT_NAME => 'Stripe\\AlipayAccount',
|
76 |
+
\Stripe\ApplePayDomain::OBJECT_NAME => 'Stripe\\ApplePayDomain',
|
77 |
+
\Stripe\ApplicationFee::OBJECT_NAME => 'Stripe\\ApplicationFee',
|
78 |
+
\Stripe\Balance::OBJECT_NAME => 'Stripe\\Balance',
|
79 |
+
\Stripe\BalanceTransaction::OBJECT_NAME => 'Stripe\\BalanceTransaction',
|
80 |
+
\Stripe\BankAccount::OBJECT_NAME => 'Stripe\\BankAccount',
|
81 |
+
\Stripe\BitcoinReceiver::OBJECT_NAME => 'Stripe\\BitcoinReceiver',
|
82 |
+
\Stripe\BitcoinTransaction::OBJECT_NAME => 'Stripe\\BitcoinTransaction',
|
83 |
+
\Stripe\Capability::OBJECT_NAME => 'Stripe\\Capability',
|
84 |
+
\Stripe\Card::OBJECT_NAME => 'Stripe\\Card',
|
85 |
+
\Stripe\Charge::OBJECT_NAME => 'Stripe\\Charge',
|
86 |
+
\Stripe\Checkout\Session::OBJECT_NAME => 'Stripe\\Checkout\\Session',
|
87 |
+
\Stripe\CountrySpec::OBJECT_NAME => 'Stripe\\CountrySpec',
|
88 |
+
\Stripe\Coupon::OBJECT_NAME => 'Stripe\\Coupon',
|
89 |
+
\Stripe\CreditNote::OBJECT_NAME => 'Stripe\\CreditNote',
|
90 |
+
\Stripe\Customer::OBJECT_NAME => 'Stripe\\Customer',
|
91 |
+
\Stripe\CustomerBalanceTransaction::OBJECT_NAME => 'Stripe\\CustomerBalanceTransaction',
|
92 |
+
\Stripe\Discount::OBJECT_NAME => 'Stripe\\Discount',
|
93 |
+
\Stripe\Dispute::OBJECT_NAME => 'Stripe\\Dispute',
|
94 |
+
\Stripe\EphemeralKey::OBJECT_NAME => 'Stripe\\EphemeralKey',
|
95 |
+
\Stripe\Event::OBJECT_NAME => 'Stripe\\Event',
|
96 |
+
\Stripe\ExchangeRate::OBJECT_NAME => 'Stripe\\ExchangeRate',
|
97 |
+
\Stripe\ApplicationFeeRefund::OBJECT_NAME => 'Stripe\\ApplicationFeeRefund',
|
98 |
+
\Stripe\File::OBJECT_NAME => 'Stripe\\File',
|
99 |
+
\Stripe\File::OBJECT_NAME_ALT => 'Stripe\\File',
|
100 |
+
\Stripe\FileLink::OBJECT_NAME => 'Stripe\\FileLink',
|
101 |
+
\Stripe\Invoice::OBJECT_NAME => 'Stripe\\Invoice',
|
102 |
+
\Stripe\InvoiceItem::OBJECT_NAME => 'Stripe\\InvoiceItem',
|
103 |
+
\Stripe\InvoiceLineItem::OBJECT_NAME => 'Stripe\\InvoiceLineItem',
|
104 |
+
\Stripe\IssuerFraudRecord::OBJECT_NAME => 'Stripe\\IssuerFraudRecord',
|
105 |
+
\Stripe\Issuing\Authorization::OBJECT_NAME => 'Stripe\\Issuing\\Authorization',
|
106 |
+
\Stripe\Issuing\Card::OBJECT_NAME => 'Stripe\\Issuing\\Card',
|
107 |
+
\Stripe\Issuing\CardDetails::OBJECT_NAME => 'Stripe\\Issuing\\CardDetails',
|
108 |
+
\Stripe\Issuing\Cardholder::OBJECT_NAME => 'Stripe\\Issuing\\Cardholder',
|
109 |
+
\Stripe\Issuing\Dispute::OBJECT_NAME => 'Stripe\\Issuing\\Dispute',
|
110 |
+
\Stripe\Issuing\Transaction::OBJECT_NAME => 'Stripe\\Issuing\\Transaction',
|
111 |
+
\Stripe\LoginLink::OBJECT_NAME => 'Stripe\\LoginLink',
|
112 |
+
\Stripe\Order::OBJECT_NAME => 'Stripe\\Order',
|
113 |
+
\Stripe\OrderItem::OBJECT_NAME => 'Stripe\\OrderItem',
|
114 |
+
\Stripe\OrderReturn::OBJECT_NAME => 'Stripe\\OrderReturn',
|
115 |
+
\Stripe\PaymentIntent::OBJECT_NAME => 'Stripe\\PaymentIntent',
|
116 |
+
\Stripe\PaymentMethod::OBJECT_NAME => 'Stripe\\PaymentMethod',
|
117 |
+
\Stripe\Payout::OBJECT_NAME => 'Stripe\\Payout',
|
118 |
+
\Stripe\Person::OBJECT_NAME => 'Stripe\\Person',
|
119 |
+
\Stripe\Plan::OBJECT_NAME => 'Stripe\\Plan',
|
120 |
+
\Stripe\Product::OBJECT_NAME => 'Stripe\\Product',
|
121 |
+
\Stripe\Radar\EarlyFraudWarning::OBJECT_NAME => 'Stripe\\Radar\\EarlyFraudWarning',
|
122 |
+
\Stripe\Radar\ValueList::OBJECT_NAME => 'Stripe\\Radar\\ValueList',
|
123 |
+
\Stripe\Radar\ValueListItem::OBJECT_NAME => 'Stripe\\Radar\\ValueListItem',
|
124 |
+
\Stripe\Recipient::OBJECT_NAME => 'Stripe\\Recipient',
|
125 |
+
\Stripe\RecipientTransfer::OBJECT_NAME => 'Stripe\\RecipientTransfer',
|
126 |
+
\Stripe\Refund::OBJECT_NAME => 'Stripe\\Refund',
|
127 |
+
\Stripe\Reporting\ReportRun::OBJECT_NAME => 'Stripe\\Reporting\\ReportRun',
|
128 |
+
\Stripe\Reporting\ReportType::OBJECT_NAME => 'Stripe\\Reporting\\ReportType',
|
129 |
+
\Stripe\Review::OBJECT_NAME => 'Stripe\\Review',
|
130 |
+
\Stripe\SetupIntent::OBJECT_NAME => 'Stripe\\SetupIntent',
|
131 |
+
\Stripe\SKU::OBJECT_NAME => 'Stripe\\SKU',
|
132 |
+
\Stripe\Sigma\ScheduledQueryRun::OBJECT_NAME => 'Stripe\\Sigma\\ScheduledQueryRun',
|
133 |
+
\Stripe\Source::OBJECT_NAME => 'Stripe\\Source',
|
134 |
+
\Stripe\SourceTransaction::OBJECT_NAME => 'Stripe\\SourceTransaction',
|
135 |
+
\Stripe\Subscription::OBJECT_NAME => 'Stripe\\Subscription',
|
136 |
+
\Stripe\SubscriptionItem::OBJECT_NAME => 'Stripe\\SubscriptionItem',
|
137 |
+
\Stripe\SubscriptionSchedule::OBJECT_NAME => 'Stripe\\SubscriptionSchedule',
|
138 |
+
\Stripe\TaxId::OBJECT_NAME => 'Stripe\\TaxId',
|
139 |
+
\Stripe\TaxRate::OBJECT_NAME => 'Stripe\\TaxRate',
|
140 |
+
\Stripe\ThreeDSecure::OBJECT_NAME => 'Stripe\\ThreeDSecure',
|
141 |
+
\Stripe\Terminal\ConnectionToken::OBJECT_NAME => 'Stripe\\Terminal\\ConnectionToken',
|
142 |
+
\Stripe\Terminal\Location::OBJECT_NAME => 'Stripe\\Terminal\\Location',
|
143 |
+
\Stripe\Terminal\Reader::OBJECT_NAME => 'Stripe\\Terminal\\Reader',
|
144 |
+
\Stripe\Token::OBJECT_NAME => 'Stripe\\Token',
|
145 |
+
\Stripe\Topup::OBJECT_NAME => 'Stripe\\Topup',
|
146 |
+
\Stripe\Transfer::OBJECT_NAME => 'Stripe\\Transfer',
|
147 |
+
\Stripe\TransferReversal::OBJECT_NAME => 'Stripe\\TransferReversal',
|
148 |
+
\Stripe\UsageRecord::OBJECT_NAME => 'Stripe\\UsageRecord',
|
149 |
+
\Stripe\UsageRecordSummary::OBJECT_NAME => 'Stripe\\UsageRecordSummary',
|
150 |
+
\Stripe\WebhookEndpoint::OBJECT_NAME => 'Stripe\\WebhookEndpoint',
|
151 |
+
];
|
152 |
Â
if (self::isList($resp)) {
|
153 |
+
$mapped = [];
|
154 |
Â
foreach ($resp as $i) {
|
155 |
Â
array_push($mapped, self::convertToStripeObject($i, $opts));
|
156 |
Â
}
|
192 |
Â
return $value;
|
193 |
Â
}
|
194 |
Â
}
|
195 |
+
|
196 |
+
/**
|
197 |
+
* Compares two strings for equality. The time taken is independent of the
|
198 |
+
* number of characters that match.
|
199 |
+
*
|
200 |
+
* @param string $a one of the strings to compare.
|
201 |
+
* @param string $b the other string to compare.
|
202 |
+
* @return bool true if the strings are equal, false otherwise.
|
203 |
+
*/
|
204 |
+
public static function secureCompare($a, $b)
|
205 |
+
{
|
206 |
+
if (self::$isHashEqualsAvailable === null) {
|
207 |
+
self::$isHashEqualsAvailable = function_exists('hash_equals');
|
208 |
+
}
|
209 |
+
|
210 |
+
if (self::$isHashEqualsAvailable) {
|
211 |
+
return hash_equals($a, $b);
|
212 |
+
} else {
|
213 |
+
if (strlen($a) != strlen($b)) {
|
214 |
+
return false;
|
215 |
+
}
|
216 |
+
|
217 |
+
$result = 0;
|
218 |
+
for ($i = 0; $i < strlen($a); $i++) {
|
219 |
+
$result |= ord($a[$i]) ^ ord($b[$i]);
|
220 |
+
}
|
221 |
+
return ($result == 0);
|
222 |
+
}
|
223 |
+
}
|
224 |
+
|
225 |
+
/**
|
226 |
+
* Recursively goes through an array of parameters. If a parameter is an instance of
|
227 |
+
* ApiResource, then it is replaced by the resource's ID.
|
228 |
+
* Also clears out null values.
|
229 |
+
*
|
230 |
+
* @param mixed $h
|
231 |
+
* @return mixed
|
232 |
+
*/
|
233 |
+
public static function objectsToIds($h)
|
234 |
+
{
|
235 |
+
if ($h instanceof \Stripe\ApiResource) {
|
236 |
+
return $h->id;
|
237 |
+
} elseif (static::isList($h)) {
|
238 |
+
$results = [];
|
239 |
+
foreach ($h as $v) {
|
240 |
+
array_push($results, static::objectsToIds($v));
|
241 |
+
}
|
242 |
+
return $results;
|
243 |
+
} elseif (is_array($h)) {
|
244 |
+
$results = [];
|
245 |
+
foreach ($h as $k => $v) {
|
246 |
+
if (is_null($v)) {
|
247 |
+
continue;
|
248 |
+
}
|
249 |
+
$results[$k] = static::objectsToIds($v);
|
250 |
+
}
|
251 |
+
return $results;
|
252 |
+
} else {
|
253 |
+
return $h;
|
254 |
+
}
|
255 |
+
}
|
256 |
+
|
257 |
+
/**
|
258 |
+
* @param array $params
|
259 |
+
*
|
260 |
+
* @return string
|
261 |
+
*/
|
262 |
+
public static function encodeParameters($params)
|
263 |
+
{
|
264 |
+
$flattenedParams = self::flattenParams($params);
|
265 |
+
$pieces = [];
|
266 |
+
foreach ($flattenedParams as $param) {
|
267 |
+
list($k, $v) = $param;
|
268 |
+
array_push($pieces, self::urlEncode($k) . '=' . self::urlEncode($v));
|
269 |
+
}
|
270 |
+
return implode('&', $pieces);
|
271 |
+
}
|
272 |
+
|
273 |
+
/**
|
274 |
+
* @param array $params
|
275 |
+
* @param string|null $parentKey
|
276 |
+
*
|
277 |
+
* @return array
|
278 |
+
*/
|
279 |
+
public static function flattenParams($params, $parentKey = null)
|
280 |
+
{
|
281 |
+
$result = [];
|
282 |
+
|
283 |
+
foreach ($params as $key => $value) {
|
284 |
+
$calculatedKey = $parentKey ? "{$parentKey}[{$key}]" : $key;
|
285 |
+
|
286 |
+
if (self::isList($value)) {
|
287 |
+
$result = array_merge($result, self::flattenParamsList($value, $calculatedKey));
|
288 |
+
} elseif (is_array($value)) {
|
289 |
+
$result = array_merge($result, self::flattenParams($value, $calculatedKey));
|
290 |
+
} else {
|
291 |
+
array_push($result, [$calculatedKey, $value]);
|
292 |
+
}
|
293 |
+
}
|
294 |
+
|
295 |
+
return $result;
|
296 |
+
}
|
297 |
+
|
298 |
+
/**
|
299 |
+
* @param array $value
|
300 |
+
* @param string $calculatedKey
|
301 |
+
*
|
302 |
+
* @return array
|
303 |
+
*/
|
304 |
+
public static function flattenParamsList($value, $calculatedKey)
|
305 |
+
{
|
306 |
+
$result = [];
|
307 |
+
|
308 |
+
foreach ($value as $i => $elem) {
|
309 |
+
if (self::isList($elem)) {
|
310 |
+
$result = array_merge($result, self::flattenParamsList($elem, $calculatedKey));
|
311 |
+
} elseif (is_array($elem)) {
|
312 |
+
$result = array_merge($result, self::flattenParams($elem, "{$calculatedKey}[{$i}]"));
|
313 |
+
} else {
|
314 |
+
array_push($result, ["{$calculatedKey}[{$i}]", $elem]);
|
315 |
+
}
|
316 |
+
}
|
317 |
+
|
318 |
+
return $result;
|
319 |
+
}
|
320 |
+
|
321 |
+
/**
|
322 |
+
* @param string $key A string to URL-encode.
|
323 |
+
*
|
324 |
+
* @return string The URL-encoded string.
|
325 |
+
*/
|
326 |
+
public static function urlEncode($key)
|
327 |
+
{
|
328 |
+
$s = urlencode($key);
|
329 |
+
|
330 |
+
// Don't use strict form encoding by changing the square bracket control
|
331 |
+
// characters back to their literals. This is fine by the server, and
|
332 |
+
// makes these parameter strings easier to read.
|
333 |
+
$s = str_replace('%5B', '[', $s);
|
334 |
+
$s = str_replace('%5D', ']', $s);
|
335 |
+
|
336 |
+
return $s;
|
337 |
+
}
|
338 |
+
|
339 |
+
public static function normalizeId($id)
|
340 |
+
{
|
341 |
+
if (is_array($id)) {
|
342 |
+
$params = $id;
|
343 |
+
$id = $params['id'];
|
344 |
+
unset($params['id']);
|
345 |
+
} else {
|
346 |
+
$params = [];
|
347 |
+
}
|
348 |
+
return [$id, $params];
|
349 |
+
}
|
350 |
+
|
351 |
+
/**
|
352 |
+
* Returns UNIX timestamp in milliseconds
|
353 |
+
*
|
354 |
+
* @return integer current time in millis
|
355 |
+
*/
|
356 |
+
public static function currentTimeMillis()
|
357 |
+
{
|
358 |
+
return (int) round(microtime(true) * 1000);
|
359 |
+
}
|
360 |
Â
}
|
app/api/Stripe/Webhook.php
ADDED
@@ -0,0 +1,40 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
abstract class Webhook
|
6 |
+
{
|
7 |
+
const DEFAULT_TOLERANCE = 300;
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Returns an Event instance using the provided JSON payload. Throws a
|
11 |
+
* \UnexpectedValueException if the payload is not valid JSON, and a
|
12 |
+
* \Stripe\SignatureVerificationException if the signature verification
|
13 |
+
* fails for any reason.
|
14 |
+
*
|
15 |
+
* @param string $payload the payload sent by Stripe.
|
16 |
+
* @param string $sigHeader the contents of the signature header sent by
|
17 |
+
* Stripe.
|
18 |
+
* @param string $secret secret used to generate the signature.
|
19 |
+
* @param int $tolerance maximum difference allowed between the header's
|
20 |
+
* timestamp and the current time
|
21 |
+
* @return \Stripe\Event the Event instance
|
22 |
+
* @throws \UnexpectedValueException if the payload is not valid JSON,
|
23 |
+
* @throws \Stripe\Error\SignatureVerification if the verification fails.
|
24 |
+
*/
|
25 |
+
public static function constructEvent($payload, $sigHeader, $secret, $tolerance = self::DEFAULT_TOLERANCE)
|
26 |
+
{
|
27 |
+
WebhookSignature::verifyHeader($payload, $sigHeader, $secret, $tolerance);
|
28 |
+
|
29 |
+
$data = json_decode($payload, true);
|
30 |
+
$jsonError = json_last_error();
|
31 |
+
if ($data === null && $jsonError !== JSON_ERROR_NONE) {
|
32 |
+
$msg = "Invalid payload: $payload "
|
33 |
+
. "(json_last_error() was $jsonError)";
|
34 |
+
throw new \UnexpectedValueException($msg);
|
35 |
+
}
|
36 |
+
$event = Event::constructFrom($data);
|
37 |
+
|
38 |
+
return $event;
|
39 |
+
}
|
40 |
+
}
|
app/api/Stripe/WebhookEndpoint.php
ADDED
@@ -0,0 +1,28 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class WebhookEndpoint
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $created
|
11 |
+
* @property string[] $enabled_events
|
12 |
+
* @property bool $livemode
|
13 |
+
* @property string $secret
|
14 |
+
* @property string $status
|
15 |
+
* @property string $url
|
16 |
+
*
|
17 |
+
* @package Stripe
|
18 |
+
*/
|
19 |
+
class WebhookEndpoint extends ApiResource
|
20 |
+
{
|
21 |
+
const OBJECT_NAME = "webhook_endpoint";
|
22 |
+
|
23 |
+
use ApiOperations\All;
|
24 |
+
use ApiOperations\Create;
|
25 |
+
use ApiOperations\Delete;
|
26 |
+
use ApiOperations\Retrieve;
|
27 |
+
use ApiOperations\Update;
|
28 |
+
}
|
app/api/Stripe/WebhookSignature.php
ADDED
@@ -0,0 +1,133 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
abstract class WebhookSignature
|
6 |
+
{
|
7 |
+
const EXPECTED_SCHEME = "v1";
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Verifies the signature header sent by Stripe. Throws a
|
11 |
+
* SignatureVerification exception if the verification fails for any
|
12 |
+
* reason.
|
13 |
+
*
|
14 |
+
* @param string $payload the payload sent by Stripe.
|
15 |
+
* @param string $header the contents of the signature header sent by
|
16 |
+
* Stripe.
|
17 |
+
* @param string $secret secret used to generate the signature.
|
18 |
+
* @param int $tolerance maximum difference allowed between the header's
|
19 |
+
* timestamp and the current time
|
20 |
+
* @throws \Stripe\Error\SignatureVerification if the verification fails.
|
21 |
+
* @return bool
|
22 |
+
*/
|
23 |
+
public static function verifyHeader($payload, $header, $secret, $tolerance = null)
|
24 |
+
{
|
25 |
+
// Extract timestamp and signatures from header
|
26 |
+
$timestamp = self::getTimestamp($header);
|
27 |
+
$signatures = self::getSignatures($header, self::EXPECTED_SCHEME);
|
28 |
+
if ($timestamp == -1) {
|
29 |
+
throw new Error\SignatureVerification(
|
30 |
+
"Unable to extract timestamp and signatures from header",
|
31 |
+
$header,
|
32 |
+
$payload
|
33 |
+
);
|
34 |
+
}
|
35 |
+
if (empty($signatures)) {
|
36 |
+
throw new Error\SignatureVerification(
|
37 |
+
"No signatures found with expected scheme",
|
38 |
+
$header,
|
39 |
+
$payload
|
40 |
+
);
|
41 |
+
}
|
42 |
+
|
43 |
+
// Check if expected signature is found in list of signatures from
|
44 |
+
// header
|
45 |
+
$signedPayload = "$timestamp.$payload";
|
46 |
+
$expectedSignature = self::computeSignature($signedPayload, $secret);
|
47 |
+
$signatureFound = false;
|
48 |
+
foreach ($signatures as $signature) {
|
49 |
+
if (Util\Util::secureCompare($expectedSignature, $signature)) {
|
50 |
+
$signatureFound = true;
|
51 |
+
break;
|
52 |
+
}
|
53 |
+
}
|
54 |
+
if (!$signatureFound) {
|
55 |
+
throw new Error\SignatureVerification(
|
56 |
+
"No signatures found matching the expected signature for payload",
|
57 |
+
$header,
|
58 |
+
$payload
|
59 |
+
);
|
60 |
+
}
|
61 |
+
|
62 |
+
// Check if timestamp is within tolerance
|
63 |
+
if (($tolerance > 0) && (abs(time() - $timestamp) > $tolerance)) {
|
64 |
+
throw new Error\SignatureVerification(
|
65 |
+
"Timestamp outside the tolerance zone",
|
66 |
+
$header,
|
67 |
+
$payload
|
68 |
+
);
|
69 |
+
}
|
70 |
+
|
71 |
+
return true;
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* Extracts the timestamp in a signature header.
|
76 |
+
*
|
77 |
+
* @param string $header the signature header
|
78 |
+
* @return int the timestamp contained in the header, or -1 if no valid
|
79 |
+
* timestamp is found
|
80 |
+
*/
|
81 |
+
private static function getTimestamp($header)
|
82 |
+
{
|
83 |
+
$items = explode(",", $header);
|
84 |
+
|
85 |
+
foreach ($items as $item) {
|
86 |
+
$itemParts = explode("=", $item, 2);
|
87 |
+
if ($itemParts[0] == "t") {
|
88 |
+
if (!is_numeric($itemParts[1])) {
|
89 |
+
return -1;
|
90 |
+
}
|
91 |
+
return intval($itemParts[1]);
|
92 |
+
}
|
93 |
+
}
|
94 |
+
|
95 |
+
return -1;
|
96 |
+
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Extracts the signatures matching a given scheme in a signature header.
|
100 |
+
*
|
101 |
+
* @param string $header the signature header
|
102 |
+
* @param string $scheme the signature scheme to look for.
|
103 |
+
* @return array the list of signatures matching the provided scheme.
|
104 |
+
*/
|
105 |
+
private static function getSignatures($header, $scheme)
|
106 |
+
{
|
107 |
+
$signatures = [];
|
108 |
+
$items = explode(",", $header);
|
109 |
+
|
110 |
+
foreach ($items as $item) {
|
111 |
+
$itemParts = explode("=", $item, 2);
|
112 |
+
if ($itemParts[0] == $scheme) {
|
113 |
+
array_push($signatures, $itemParts[1]);
|
114 |
+
}
|
115 |
+
}
|
116 |
+
|
117 |
+
return $signatures;
|
118 |
+
}
|
119 |
+
|
120 |
+
/**
|
121 |
+
* Computes the signature for a given payload and secret.
|
122 |
+
*
|
123 |
+
* The current scheme used by Stripe ("v1") is HMAC/SHA-256.
|
124 |
+
*
|
125 |
+
* @param string $payload the payload to sign.
|
126 |
+
* @param string $secret the secret used to generate the signature.
|
127 |
+
* @return string the signature as a string.
|
128 |
+
*/
|
129 |
+
private static function computeSignature($payload, $secret)
|
130 |
+
{
|
131 |
+
return hash_hmac("sha256", $payload, $secret);
|
132 |
+
}
|
133 |
+
}
|
app/features/events.php
CHANGED
@@ -1530,7 +1530,7 @@ class MEC_feature_events extends MEC_base
|
|
1530 |
Â
}
|
1531 |
Â
?>
|
1532 |
Â
type="checkbox" value="1" name="mec[booking][bookings_user_limit_unlimited]" onchange="javascript: $(this).parent().parent().find('input[type=text]').toggle().val('');"/>
|
1533 |
-
<?php _e('
|
1534 |
Â
</label>
|
1535 |
Â
<input class="mec-col-4 <?php echo ($bookings_user_limit_unlimited == 1) ? 'mec-util-hidden' : ''; ?>" type="text" name="mec[booking][bookings_user_limit]" id="mec_bookings_user_limit"
|
1536 |
Â
value="<?php echo esc_attr($bookings_user_limit); ?>" placeholder="<?php _e('12', 'modern-events-calendar-lite'); ?>"/>
|
@@ -2441,6 +2441,21 @@ class MEC_feature_events extends MEC_base
|
|
2441 |
Â
// Get Modern Events Calendar Data
|
2442 |
Â
$_mec = isset($_POST['mec']) ? $_POST['mec'] : array();
|
2443 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
2444 |
Â
// Remove Cached Data
|
2445 |
Â
wp_cache_delete($post_id, 'mec-events-data');
|
2446 |
Â
|
@@ -2483,7 +2498,6 @@ class MEC_feature_events extends MEC_base
|
|
2483 |
Â
// Date Options
|
2484 |
Â
$date = isset($_mec['date']) ? $_mec['date'] : array();
|
2485 |
Â
|
2486 |
-
$start_date = (isset($date['start']) and trim($date['start']['date'])) ? $date['start']['date'] : date('Y-m-d');
|
2487 |
Â
$start_date = date('Y-m-d', strtotime($start_date));
|
2488 |
Â
|
2489 |
Â
// Set the date if it's empty
|
@@ -2495,7 +2509,6 @@ class MEC_feature_events extends MEC_base
|
|
2495 |
Â
$start_time_minutes = isset($date['start']) ? $date['start']['minutes'] : '00';
|
2496 |
Â
$start_time_ampm = (isset($date['start']) and isset($date['start']['ampm'])) ? $date['start']['ampm'] : 'AM';
|
2497 |
Â
|
2498 |
-
$end_date = (isset($date['end']) and trim($date['end']['date'])) ? $date['end']['date'] : date('Y-m-d');
|
2499 |
Â
$end_date = date('Y-m-d', strtotime($end_date));
|
2500 |
Â
|
2501 |
Â
// Fix end_date if it's smaller than start_date
|
@@ -2895,6 +2908,59 @@ class MEC_feature_events extends MEC_base
|
|
2895 |
Â
$op = isset($_mec['op']) ? $_mec['op'] : array();
|
2896 |
Â
update_post_meta($post_id, 'mec_op', $op);
|
2897 |
Â
update_user_meta(get_post_field('post_author', $post_id), 'mec_op', $op);
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
2898 |
Â
}
|
2899 |
Â
|
2900 |
Â
/**
|
1530 |
Â
}
|
1531 |
Â
?>
|
1532 |
Â
type="checkbox" value="1" name="mec[booking][bookings_user_limit_unlimited]" onchange="javascript: $(this).parent().parent().find('input[type=text]').toggle().val('');"/>
|
1533 |
+
<?php _e('Inherit from global options', 'modern-events-calendar-lite'); ?>
|
1534 |
Â
</label>
|
1535 |
Â
<input class="mec-col-4 <?php echo ($bookings_user_limit_unlimited == 1) ? 'mec-util-hidden' : ''; ?>" type="text" name="mec[booking][bookings_user_limit]" id="mec_bookings_user_limit"
|
1536 |
Â
value="<?php echo esc_attr($bookings_user_limit); ?>" placeholder="<?php _e('12', 'modern-events-calendar-lite'); ?>"/>
|
2441 |
Â
// Get Modern Events Calendar Data
|
2442 |
Â
$_mec = isset($_POST['mec']) ? $_POST['mec'] : array();
|
2443 |
Â
|
2444 |
+
$start_date = (isset($_mec['date']['start']['date']) and trim($_mec['date']['start']['date'])) ? $_mec['date']['start']['date'] : date('Y-m-d');
|
2445 |
+
$end_date = (isset($_mec['date']['end']['date']) and trim($_mec['date']['end']['date'])) ? $_mec['date']['end']['date'] : date('Y-m-d');
|
2446 |
+
|
2447 |
+
$event = $this->db->select("SELECT * FROM `#__mec_events` WHERE `post_id` = {$post_id}", 'loadAssoc');
|
2448 |
+
if(!is_array($event)) $event = array();
|
2449 |
+
|
2450 |
+
$booking_date_update = false;
|
2451 |
+
if(count($event))
|
2452 |
+
{
|
2453 |
+
$past_start_date = (isset($event['start']) and trim($event['start'])) ? $event['start'] : '';
|
2454 |
+
$past_end_date = (isset($event['end']) and trim($event['end'])) ? $event['end'] : '';
|
2455 |
+
|
2456 |
+
if(trim($start_date) != trim($past_start_date) or trim($end_date) != trim($past_end_date)) $booking_date_update = true;
|
2457 |
+
}
|
2458 |
+
|
2459 |
Â
// Remove Cached Data
|
2460 |
Â
wp_cache_delete($post_id, 'mec-events-data');
|
2461 |
Â
|
2498 |
Â
// Date Options
|
2499 |
Â
$date = isset($_mec['date']) ? $_mec['date'] : array();
|
2500 |
Â
|
Â
|
|
2501 |
Â
$start_date = date('Y-m-d', strtotime($start_date));
|
2502 |
Â
|
2503 |
Â
// Set the date if it's empty
|
2509 |
Â
$start_time_minutes = isset($date['start']) ? $date['start']['minutes'] : '00';
|
2510 |
Â
$start_time_ampm = (isset($date['start']) and isset($date['start']['ampm'])) ? $date['start']['ampm'] : 'AM';
|
2511 |
Â
|
Â
|
|
2512 |
Â
$end_date = date('Y-m-d', strtotime($end_date));
|
2513 |
Â
|
2514 |
Â
// Fix end_date if it's smaller than start_date
|
2908 |
Â
$op = isset($_mec['op']) ? $_mec['op'] : array();
|
2909 |
Â
update_post_meta($post_id, 'mec_op', $op);
|
2910 |
Â
update_user_meta(get_post_field('post_author', $post_id), 'mec_op', $op);
|
2911 |
+
|
2912 |
+
if($booking_date_update)
|
2913 |
+
{
|
2914 |
+
$render_date = $past_start_date . ':' . $past_end_date;
|
2915 |
+
$new_date = $start_date . ':' . $end_date;
|
2916 |
+
|
2917 |
+
$books_query = new WP_Query(array(
|
2918 |
+
'post_type' => 'mec-books',
|
2919 |
+
'nopaging' => true,
|
2920 |
+
'post_status' => array('publish','pending','draft','future','private'),
|
2921 |
+
'meta_query' => array(
|
2922 |
+
'relation' => 'AND',
|
2923 |
+
array(
|
2924 |
+
'key' => 'mec_event_id',
|
2925 |
+
'value' => $post_id.'',
|
2926 |
+
'type' => 'numeric',
|
2927 |
+
'compare' => '='
|
2928 |
+
),
|
2929 |
+
array(
|
2930 |
+
'key' => 'mec_date',
|
2931 |
+
'value' => $render_date,
|
2932 |
+
'compare' => '=',
|
2933 |
+
)
|
2934 |
+
)
|
2935 |
+
));
|
2936 |
+
|
2937 |
+
if($books_query->have_posts())
|
2938 |
+
{
|
2939 |
+
$book = $this->getBook();
|
2940 |
+
|
2941 |
+
while($books_query->have_posts())
|
2942 |
+
{
|
2943 |
+
$books_query->the_post();
|
2944 |
+
$booking_id = get_the_ID();
|
2945 |
+
|
2946 |
+
// Update Booking
|
2947 |
+
update_post_meta($booking_id, 'mec_date', trim($new_date));
|
2948 |
+
wp_update_post(array(
|
2949 |
+
'ID' => $booking_id,
|
2950 |
+
'post_date' => $start_date
|
2951 |
+
));
|
2952 |
+
|
2953 |
+
// Update Transaction
|
2954 |
+
$transaction_id = get_post_meta($booking_id, 'mec_transaction_id', true);
|
2955 |
+
$transaction = $book->get_transaction($transaction_id);
|
2956 |
+
|
2957 |
+
$transaction['date'] = trim($new_date);
|
2958 |
+
$book->update_transaction($transaction_id, $transaction);
|
2959 |
+
}
|
2960 |
+
|
2961 |
+
wp_reset_postdata();
|
2962 |
+
}
|
2963 |
+
}
|
2964 |
Â
}
|
2965 |
Â
|
2966 |
Â
/**
|
app/features/fes.php
CHANGED
@@ -252,8 +252,24 @@ class MEC_feature_fes extends MEC_base
|
|
252 |
Â
$g_recaptcha_response = isset($_POST['g-recaptcha-response']) ? sanitize_text_field($_POST['g-recaptcha-response']) : NULL;
|
253 |
Â
if(!$this->main->get_recaptcha_response($g_recaptcha_response)) $this->main->response(array('success'=>0, 'message'=>__('Captcha is invalid! Please try again.', 'modern-events-calendar-lite'), 'code'=>'CAPTCHA_IS_INVALID'));
|
254 |
Â
}
|
255 |
-
|
256 |
Â
$post_id = isset($mec['post_id']) ? sanitize_text_field($mec['post_id']) : -1;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
257 |
Â
$post_title = isset($mec['title']) ? sanitize_text_field($mec['title']) : '';
|
258 |
Â
$post_content = isset($mec['content']) ? $mec['content'] : '';
|
259 |
Â
$post_tags = isset($mec['tags']) ? sanitize_text_field($mec['tags']) : '';
|
@@ -448,8 +464,7 @@ class MEC_feature_fes extends MEC_base
|
|
448 |
Â
|
449 |
Â
// Date Options
|
450 |
Â
$date = isset($mec['date']) ? $mec['date'] : array();
|
451 |
-
|
452 |
-
$start_date = (isset($date['start']) and trim($date['start']['date'])) ? $date['start']['date'] : date('Y-m-d');
|
453 |
Â
$start_date = date('Y-m-d', strtotime($start_date));
|
454 |
Â
|
455 |
Â
// Set the date if it's empty
|
@@ -458,8 +473,7 @@ class MEC_feature_fes extends MEC_base
|
|
458 |
Â
$start_time_hour = isset($date['start']) ? $date['start']['hour'] : '8';
|
459 |
Â
$start_time_minutes = isset($date['start']) ? $date['start']['minutes'] : '00';
|
460 |
Â
$start_time_ampm = (isset($date['start']) and isset($date['start']['ampm'])) ? $date['start']['ampm'] : 'AM';
|
461 |
-
|
462 |
-
$end_date = (isset($date['end']) and trim($date['end']['date'])) ? $date['end']['date'] : date('Y-m-d');
|
463 |
Â
$end_date = date('Y-m-d', strtotime($end_date));
|
464 |
Â
|
465 |
Â
// Fix end_date if it's smaller than start_date
|
@@ -821,6 +835,59 @@ class MEC_feature_fes extends MEC_base
|
|
821 |
Â
update_post_meta($post_id, 'mec_op', $op);
|
822 |
Â
update_user_meta(get_post_field('post_author', $post_id), 'mec_op', $op);
|
823 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
824 |
Â
$message = '';
|
825 |
Â
if($status == 'pending') $message = __('The event submitted. It will publish as soon as possible.', 'modern-events-calendar-lite');
|
826 |
Â
elseif($status == 'publish') $message = __('The event published.', 'modern-events-calendar-lite');
|
252 |
Â
$g_recaptcha_response = isset($_POST['g-recaptcha-response']) ? sanitize_text_field($_POST['g-recaptcha-response']) : NULL;
|
253 |
Â
if(!$this->main->get_recaptcha_response($g_recaptcha_response)) $this->main->response(array('success'=>0, 'message'=>__('Captcha is invalid! Please try again.', 'modern-events-calendar-lite'), 'code'=>'CAPTCHA_IS_INVALID'));
|
254 |
Â
}
|
255 |
+
|
256 |
Â
$post_id = isset($mec['post_id']) ? sanitize_text_field($mec['post_id']) : -1;
|
257 |
+
|
258 |
+
$start_date = (isset($mec['date']['start']['date']) and trim($mec['date']['start']['date'])) ? $mec['date']['start']['date'] : date('Y-m-d');
|
259 |
+
$end_date = (isset($mec['date']['end']['date']) and trim($mec['date']['end']['date'])) ? $mec['date']['end']['date'] : date('Y-m-d');
|
260 |
+
|
261 |
+
$event = $this->db->select("SELECT * FROM `#__mec_events` WHERE `post_id` = {$post_id}", 'loadAssoc');
|
262 |
+
if(!is_array($event)) $event = array();
|
263 |
+
|
264 |
+
$booking_date_update = false;
|
265 |
+
if(count($event))
|
266 |
+
{
|
267 |
+
$past_start_date = (isset($event['start']) and trim($event['start'])) ? $event['start'] : '';
|
268 |
+
$past_end_date = (isset($event['end']) and trim($event['end'])) ? $event['end'] : '';
|
269 |
+
|
270 |
+
if(trim($start_date) != trim($past_start_date) or trim($end_date) != trim($past_end_date)) $booking_date_update = true;
|
271 |
+
}
|
272 |
+
|
273 |
Â
$post_title = isset($mec['title']) ? sanitize_text_field($mec['title']) : '';
|
274 |
Â
$post_content = isset($mec['content']) ? $mec['content'] : '';
|
275 |
Â
$post_tags = isset($mec['tags']) ? sanitize_text_field($mec['tags']) : '';
|
464 |
Â
|
465 |
Â
// Date Options
|
466 |
Â
$date = isset($mec['date']) ? $mec['date'] : array();
|
467 |
+
|
Â
|
|
468 |
Â
$start_date = date('Y-m-d', strtotime($start_date));
|
469 |
Â
|
470 |
Â
// Set the date if it's empty
|
473 |
Â
$start_time_hour = isset($date['start']) ? $date['start']['hour'] : '8';
|
474 |
Â
$start_time_minutes = isset($date['start']) ? $date['start']['minutes'] : '00';
|
475 |
Â
$start_time_ampm = (isset($date['start']) and isset($date['start']['ampm'])) ? $date['start']['ampm'] : 'AM';
|
476 |
+
|
Â
|
|
477 |
Â
$end_date = date('Y-m-d', strtotime($end_date));
|
478 |
Â
|
479 |
Â
// Fix end_date if it's smaller than start_date
|
835 |
Â
update_post_meta($post_id, 'mec_op', $op);
|
836 |
Â
update_user_meta(get_post_field('post_author', $post_id), 'mec_op', $op);
|
837 |
Â
|
838 |
+
if($booking_date_update)
|
839 |
+
{
|
840 |
+
$render_date = $past_start_date . ':' . $past_end_date;
|
841 |
+
$new_date = $start_date . ':' . $end_date;
|
842 |
+
|
843 |
+
$books_query = new WP_Query(array(
|
844 |
+
'post_type' => 'mec-books',
|
845 |
+
'nopaging' => true,
|
846 |
+
'post_status' => array('publish','pending','draft','future','private'),
|
847 |
+
'meta_query' => array(
|
848 |
+
'relation' => 'AND',
|
849 |
+
array(
|
850 |
+
'key' => 'mec_event_id',
|
851 |
+
'value' => $post_id.'',
|
852 |
+
'type' => 'numeric',
|
853 |
+
'compare' => '='
|
854 |
+
),
|
855 |
+
array(
|
856 |
+
'key' => 'mec_date',
|
857 |
+
'value' => $render_date,
|
858 |
+
'compare' => '=',
|
859 |
+
)
|
860 |
+
)
|
861 |
+
));
|
862 |
+
|
863 |
+
if($books_query->have_posts())
|
864 |
+
{
|
865 |
+
$book = $this->getBook();
|
866 |
+
|
867 |
+
while($books_query->have_posts())
|
868 |
+
{
|
869 |
+
$books_query->the_post();
|
870 |
+
$booking_id = get_the_ID();
|
871 |
+
|
872 |
+
// Update Booking
|
873 |
+
update_post_meta($booking_id, 'mec_date', trim($new_date));
|
874 |
+
wp_update_post(array(
|
875 |
+
'ID' => $booking_id,
|
876 |
+
'post_date' => $start_date
|
877 |
+
));
|
878 |
+
|
879 |
+
// Update Transaction
|
880 |
+
$transaction_id = get_post_meta($booking_id, 'mec_transaction_id', true);
|
881 |
+
$transaction = $book->get_transaction($transaction_id);
|
882 |
+
|
883 |
+
$transaction['date'] = trim($new_date);
|
884 |
+
$book->update_transaction($transaction_id, $transaction);
|
885 |
+
}
|
886 |
+
|
887 |
+
wp_reset_postdata();
|
888 |
+
}
|
889 |
+
}
|
890 |
+
|
891 |
Â
$message = '';
|
892 |
Â
if($status == 'pending') $message = __('The event submitted. It will publish as soon as possible.', 'modern-events-calendar-lite');
|
893 |
Â
elseif($status == 'publish') $message = __('The event published.', 'modern-events-calendar-lite');
|
app/features/login.php
ADDED
@@ -0,0 +1,81 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/** no direct access **/
|
3 |
+
defined('MECEXEC') or die();
|
4 |
+
|
5 |
+
/**
|
6 |
+
* @author Webnus <info@webnus.biz>
|
7 |
+
*/
|
8 |
+
class MEC_feature_login extends MEC_base
|
9 |
+
{
|
10 |
+
|
11 |
+
public $factory;
|
12 |
+
public $main;
|
13 |
+
public $settings;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Constructor method
|
17 |
+
* @author Webnus <info@webnus.biz>
|
18 |
+
*/
|
19 |
+
public function __construct()
|
20 |
+
{
|
21 |
+
// Import MEC Factory
|
22 |
+
$this->factory = $this->getFactory();
|
23 |
+
|
24 |
+
// Import MEC Main
|
25 |
+
$this->main = $this->getMain();
|
26 |
+
|
27 |
+
// MEC Settings
|
28 |
+
$this->settings = $this->main->get_settings();
|
29 |
+
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Initialize search feature
|
34 |
+
* @author Webnus <info@webnus.biz>
|
35 |
+
*/
|
36 |
+
public function init()
|
37 |
+
{
|
38 |
+
// login form shortcode
|
39 |
+
$this->factory->shortcode('MEC_login', array($this, 'login'));
|
40 |
+
|
41 |
+
$this->factory->action('wp_ajax_mec_ajax_login_data', array($this, 'mec_ajax_login_data'));
|
42 |
+
$this->factory->action('wp_ajax_nopriv_mec_ajax_login_data', array($this, 'mec_ajax_login_data'));
|
43 |
+
}
|
44 |
+
|
45 |
+
public function mec_ajax_login_data()
|
46 |
+
{
|
47 |
+
|
48 |
+
// Check if our nonce is set.
|
49 |
+
if(!isset($_POST['mec_login_nonce'])) return;
|
50 |
+
|
51 |
+
// Verify that the nonce is valid.
|
52 |
+
if(!wp_verify_nonce(sanitize_text_field($_POST['mec_login_nonce']), 'mec-ajax-login-nonce')) return;
|
53 |
+
|
54 |
+
$info = array();
|
55 |
+
$info['user_login'] = $_POST['username'];
|
56 |
+
$info['user_password'] = $_POST['password'];
|
57 |
+
$info['remember'] = true;
|
58 |
+
|
59 |
+
$user_signon = wp_signon( $info, false );
|
60 |
+
if ( is_wp_error($user_signon) ){
|
61 |
+
echo json_encode(array('loggedin'=>false, 'message'=>__('Wrong username or password.')));
|
62 |
+
} else {
|
63 |
+
echo json_encode(array('loggedin'=>true, 'message'=>__('Login successful, redirecting...')));
|
64 |
+
}
|
65 |
+
|
66 |
+
die();
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Show user login form
|
71 |
+
* @return string
|
72 |
+
*/
|
73 |
+
public function login()
|
74 |
+
{
|
75 |
+
$path = MEC::import('app.features.login.login', true, true);
|
76 |
+
|
77 |
+
ob_start();
|
78 |
+
include $path;
|
79 |
+
return ob_get_clean();
|
80 |
+
}
|
81 |
+
}
|
app/features/login/index.html
ADDED
File without changes
|
app/features/login/login.php
ADDED
@@ -0,0 +1,60 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<div class="mec-login-form">
|
2 |
+
<div class="mec-login-input">
|
3 |
+
<label>
|
4 |
+
<i class="mec-sl-user"></i>
|
5 |
+
<input name="email" id="email" type="text" />
|
6 |
+
</label>
|
7 |
+
</div>
|
8 |
+
<div class="mec-login-input">
|
9 |
+
<label>
|
10 |
+
<i class="mec-sl-key"></i>
|
11 |
+
<input name="password" id="password" type="password" />
|
12 |
+
</label>
|
13 |
+
</div>
|
14 |
+
<div class="mec-login-form-footer">
|
15 |
+
<div class="mec-login-forgotpassword">
|
16 |
+
<a class="mec-color-hover" href="<?php echo wp_lostpassword_url(); ?>">Forgot Password?</a>
|
17 |
+
</div>
|
18 |
+
<div class="mec-login-submit">
|
19 |
+
<button class="mec-bg-color">Login</button>
|
20 |
+
</div>
|
21 |
+
</div>
|
22 |
+
<?php wp_nonce_field( 'mec-ajax-login-nonce', 'mec_login_nonce' ); ?>
|
23 |
+
|
24 |
+
</div>
|
25 |
+
|
26 |
+
<script type="text/javascript">
|
27 |
+
|
28 |
+
jQuery(".mec-login-form-footer button").click(function (e) {
|
29 |
+
e.preventDefault();
|
30 |
+
var mec_email = jQuery(".mec-login-form #email").val(),
|
31 |
+
mec_pass = jQuery(".mec-login-form #password").val(),
|
32 |
+
mec_nonce = jQuery(".mec-login-form #mec_login_nonce").val();
|
33 |
+
|
34 |
+
jQuery.ajax({
|
35 |
+
url: '<?php echo admin_url('admin-ajax.php'); ?>',
|
36 |
+
type: 'post',
|
37 |
+
data: {
|
38 |
+
action: 'mec_ajax_login_data',
|
39 |
+
username: mec_email,
|
40 |
+
password : mec_pass,
|
41 |
+
mec_login_nonce : mec_nonce,
|
42 |
+
},
|
43 |
+
beforeSend: function(msg){
|
44 |
+
jQuery(".mec-login-form").append("<div class=\"mec-ajax-login-loading\"><div class=\"lds-ripple\"><div></div><div></div></div></div>");
|
45 |
+
},
|
46 |
+
success: function(data) {
|
47 |
+
var message = jQuery.parseJSON(data);
|
48 |
+
jQuery(".mec-ajax-login-loading").append("<div class=\"mec-ajax-login-loading-text\"></div>");
|
49 |
+
if ( !message.loggedin ){
|
50 |
+
jQuery(".mec-ajax-login-loading .lds-ripple").remove();
|
51 |
+
jQuery(".mec-ajax-login-loading-text").addClass('error').append(message.message);
|
52 |
+
} else {
|
53 |
+
jQuery(".mec-ajax-login-loading-text").addClass('success').append(message.message);
|
54 |
+
location.reload();
|
55 |
+
}
|
56 |
+
},
|
57 |
+
});
|
58 |
+
});
|
59 |
+
|
60 |
+
</script>
|
app/features/mec.php
CHANGED
@@ -601,8 +601,8 @@ class MEC_feature_mec extends MEC_base
|
|
601 |
Â
if($tab == 'MEC-customcss') $this->styles();
|
602 |
Â
elseif($tab == 'MEC-ie') $this->import_export();
|
603 |
Â
//elseif($tab == 'MEC-support') $this->support();
|
604 |
-
elseif($tab == 'MEC-reg-form') $this->regform();
|
605 |
-
elseif($tab == 'MEC-gateways') $this->gateways();
|
606 |
Â
elseif($tab == 'MEC-notifications') $this->notifications();
|
607 |
Â
elseif($tab == 'MEC-messages') $this->messages();
|
608 |
Â
elseif($tab == 'MEC-styling') $this->styling();
|
@@ -729,28 +729,28 @@ class MEC_feature_mec extends MEC_base
|
|
729 |
Â
* @author Webnus <info@webnus.biz>
|
730 |
Â
* @return void
|
731 |
Â
*/
|
732 |
-
public function regform()
|
733 |
-
{
|
734 |
-
|
735 |
Â
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
}
|
740 |
Â
|
741 |
Â
/**
|
742 |
Â
* Show content of gateways tab
|
743 |
Â
* @author Webnus <info@webnus.biz>
|
744 |
Â
* @return void
|
745 |
Â
*/
|
746 |
-
public function gateways()
|
747 |
-
{
|
748 |
-
|
749 |
Â
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
}
|
754 |
Â
|
755 |
Â
/**
|
756 |
Â
* Show content of notifications tab
|
601 |
Â
if($tab == 'MEC-customcss') $this->styles();
|
602 |
Â
elseif($tab == 'MEC-ie') $this->import_export();
|
603 |
Â
//elseif($tab == 'MEC-support') $this->support();
|
604 |
+
// elseif($tab == 'MEC-reg-form') $this->regform();
|
605 |
+
// elseif($tab == 'MEC-gateways') $this->gateways();
|
606 |
Â
elseif($tab == 'MEC-notifications') $this->notifications();
|
607 |
Â
elseif($tab == 'MEC-messages') $this->messages();
|
608 |
Â
elseif($tab == 'MEC-styling') $this->styling();
|
729 |
Â
* @author Webnus <info@webnus.biz>
|
730 |
Â
* @return void
|
731 |
Â
*/
|
732 |
+
// public function regform()
|
733 |
+
// {
|
734 |
+
// $path = MEC::import('app.features.mec.regform', true, true);
|
735 |
Â
|
736 |
+
// ob_start();
|
737 |
+
// include $path;
|
738 |
+
// echo $output = ob_get_clean();
|
739 |
+
// }
|
740 |
Â
|
741 |
Â
/**
|
742 |
Â
* Show content of gateways tab
|
743 |
Â
* @author Webnus <info@webnus.biz>
|
744 |
Â
* @return void
|
745 |
Â
*/
|
746 |
+
// public function gateways()
|
747 |
+
// {
|
748 |
+
// $path = MEC::import('app.features.mec.gateways', true, true);
|
749 |
Â
|
750 |
+
// ob_start();
|
751 |
+
// include $path;
|
752 |
+
// echo $output = ob_get_clean();
|
753 |
+
// }
|
754 |
Â
|
755 |
Â
/**
|
756 |
Â
* Show content of notifications tab
|
app/features/mec/booking.php
CHANGED
@@ -17,6 +17,51 @@ if($this->getPRO())
|
|
17 |
Â
$envato = $this->getEnvato();
|
18 |
Â
$verify = $envato->get_MEC_info('dl');
|
19 |
Â
}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
20 |
Â
?>
|
21 |
Â
<div class="wns-be-container wns-be-container-sticky">
|
22 |
Â
<div id="wns-be-infobar">
|
@@ -349,6 +394,158 @@ if($this->getPRO())
|
|
349 |
Â
<?php endif; ?>
|
350 |
Â
</div>
|
351 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
352 |
Â
<?php endif; ?>
|
353 |
Â
|
354 |
Â
<div class="mec-options-fields">
|
17 |
Â
$envato = $this->getEnvato();
|
18 |
Â
$verify = $envato->get_MEC_info('dl');
|
19 |
Â
}
|
20 |
+
|
21 |
+
|
22 |
+
// Booking form
|
23 |
+
$mec_email = false;
|
24 |
+
$mec_name = false;
|
25 |
+
$reg_fields = $this->main->get_reg_fields();
|
26 |
+
if(!is_array($reg_fields)) $reg_fields = array();
|
27 |
+
|
28 |
+
foreach($reg_fields as $field)
|
29 |
+
{
|
30 |
+
if(isset($field['type']))
|
31 |
+
{
|
32 |
+
if($field['type'] == 'name') $mec_name = true;
|
33 |
+
if($field['type'] == 'mec_email') $mec_email = true;
|
34 |
+
}
|
35 |
+
else break;
|
36 |
+
}
|
37 |
+
|
38 |
+
if(!$mec_name)
|
39 |
+
{
|
40 |
+
array_unshift(
|
41 |
+
$reg_fields,
|
42 |
+
array(
|
43 |
+
'mandatory' => '0',
|
44 |
+
'type' => 'name',
|
45 |
+
'label' => esc_html__('Name', 'modern-events-calendar-lite'),
|
46 |
+
)
|
47 |
+
);
|
48 |
+
}
|
49 |
+
|
50 |
+
if(!$mec_email)
|
51 |
+
{
|
52 |
+
array_unshift(
|
53 |
+
$reg_fields,
|
54 |
+
array(
|
55 |
+
'mandatory' => '0',
|
56 |
+
'type' => 'mec_email',
|
57 |
+
'label' => esc_html__('Email', 'modern-events-calendar-lite'),
|
58 |
+
)
|
59 |
+
);
|
60 |
+
}
|
61 |
+
|
62 |
+
// gateways
|
63 |
+
$gateways = $this->main->get_gateways();
|
64 |
+
$gateways_options = $this->main->get_gateways_options();
|
65 |
Â
?>
|
66 |
Â
<div class="wns-be-container wns-be-container-sticky">
|
67 |
Â
<div id="wns-be-infobar">
|
394 |
Â
<?php endif; ?>
|
395 |
Â
</div>
|
396 |
Â
|
397 |
+
<div id="booking_form_option" class="mec-options-fields">
|
398 |
+
<h4 class="mec-form-subtitle"><?php _e('Booking Form', 'modern-events-calendar-lite'); ?></h4>
|
399 |
+
<div class="mec-container">
|
400 |
+
<?php do_action( 'before_mec_reg_fields_form' ); ?>
|
401 |
+
<?php do_action( 'mec_reg_fields_form_start' ); ?>
|
402 |
+
<div class="mec-form-row" id="mec_reg_form_container">
|
403 |
+
<?php /** Don't remove this hidden field **/ ?>
|
404 |
+
<input type="hidden" name="mec[reg_fields]" value="" />
|
405 |
+
|
406 |
+
<ul id="mec_reg_form_fields">
|
407 |
+
<?php
|
408 |
+
$i = 0;
|
409 |
+
foreach ( $reg_fields as $key => $reg_field ) {
|
410 |
+
if ( ! is_numeric( $key ) ) {
|
411 |
+
continue;
|
412 |
+
}
|
413 |
+
$i = max( $i, $key );
|
414 |
+
|
415 |
+
if ( $reg_field['type'] == 'text' ) {
|
416 |
+
echo $this->main->field_text( $key, $reg_field );
|
417 |
+
} elseif ( $reg_field['type'] == 'name' ) {
|
418 |
+
echo $this->main->field_name( $key, $reg_field );
|
419 |
+
} elseif ( $reg_field['type'] == 'mec_email' ) {
|
420 |
+
echo $this->main->field_mec_email( $key, $reg_field );
|
421 |
+
} elseif ( $reg_field['type'] == 'email' ) {
|
422 |
+
echo $this->main->field_email( $key, $reg_field );
|
423 |
+
} elseif ( $reg_field['type'] == 'date' ) {
|
424 |
+
echo $this->main->field_date( $key, $reg_field );
|
425 |
+
} elseif ( $reg_field['type'] == 'file' ) {
|
426 |
+
echo $this->main->field_file( $key, $reg_field );
|
427 |
+
} elseif ( $reg_field['type'] == 'tel' ) {
|
428 |
+
echo $this->main->field_tel( $key, $reg_field );
|
429 |
+
} elseif ( $reg_field['type'] == 'textarea' ) {
|
430 |
+
echo $this->main->field_textarea( $key, $reg_field );
|
431 |
+
} elseif ( $reg_field['type'] == 'p' ) {
|
432 |
+
echo $this->main->field_p( $key, $reg_field );
|
433 |
+
} elseif ( $reg_field['type'] == 'checkbox' ) {
|
434 |
+
echo $this->main->field_checkbox( $key, $reg_field );
|
435 |
+
} elseif ( $reg_field['type'] == 'radio' ) {
|
436 |
+
echo $this->main->field_radio( $key, $reg_field );
|
437 |
+
} elseif ( $reg_field['type'] == 'select' ) {
|
438 |
+
echo $this->main->field_select( $key, $reg_field );
|
439 |
+
} elseif ( $reg_field['type'] == 'agreement' ) {
|
440 |
+
echo $this->main->field_agreement( $key, $reg_field );
|
441 |
+
}
|
442 |
+
}
|
443 |
+
?>
|
444 |
+
</ul>
|
445 |
+
<div id="mec_reg_form_field_types">
|
446 |
+
<button type="button" class="button red" data-type="name"><?php _e( 'MEC Name', 'modern-events-calendar-lite' ); ?></button>
|
447 |
+
<button type="button" class="button red" data-type="mec_email"><?php _e( 'MEC Email', 'modern-events-calendar-lite' ); ?></button>
|
448 |
+
<button type="button" class="button" data-type="text"><?php _e( 'Text', 'modern-events-calendar-lite' ); ?></button>
|
449 |
+
<button type="button" class="button" data-type="email"><?php _e( 'Email', 'modern-events-calendar-lite' ); ?></button>
|
450 |
+
<button type="button" class="button" data-type="date"><?php _e( 'Date', 'modern-events-calendar-lite' ); ?></button>
|
451 |
+
<button type="button" class="button" data-type="tel"><?php _e( 'Tel', 'modern-events-calendar-lite' ); ?></button>
|
452 |
+
<button type="button" class="button" data-type="file"><?php _e( 'File', 'modern-events-calendar-lite' ); ?></button>
|
453 |
+
<button type="button" class="button" data-type="textarea"><?php _e( 'Textarea', 'modern-events-calendar-lite' ); ?></button>
|
454 |
+
<button type="button" class="button" data-type="checkbox"><?php _e( 'Checkboxes', 'modern-events-calendar-lite' ); ?></button>
|
455 |
+
<button type="button" class="button" data-type="radio"><?php _e( 'Radio Buttons', 'modern-events-calendar-lite' ); ?></button>
|
456 |
+
<button type="button" class="button" data-type="select"><?php _e( 'Dropdown', 'modern-events-calendar-lite' ); ?></button>
|
457 |
+
<button type="button" class="button" data-type="agreement"><?php _e( 'Agreement', 'modern-events-calendar-lite' ); ?></button>
|
458 |
+
<button type="button" class="button" data-type="p"><?php _e( 'Paragraph', 'modern-events-calendar-lite' ); ?></button>
|
459 |
+
</div>
|
460 |
+
<?php do_action( 'mec_reg_fields_form_end' ); ?>
|
461 |
+
</div>
|
462 |
+
<div class="mec-form-row">
|
463 |
+
<?php wp_nonce_field( 'mec_options_form' ); ?>
|
464 |
+
<button style="display: none;" id="mec_reg_fields_form_button" class="button button-primary mec-button-primary" type="submit"><?php _e( 'Save Changes', 'modern-events-calendar-lite' ); ?></button>
|
465 |
+
</div>
|
466 |
+
<?php do_action( 'after_mec_reg_fields_form' ); ?>
|
467 |
+
</div>
|
468 |
+
<input type="hidden" id="mec_new_reg_field_key" value="<?php echo $i + 1; ?>" />
|
469 |
+
<div class="mec-util-hidden">
|
470 |
+
<div id="mec_reg_field_text">
|
471 |
+
<?php echo $this->main->field_text( ':i:' ); ?>
|
472 |
+
</div>
|
473 |
+
<div id="mec_reg_field_email">
|
474 |
+
<?php echo $this->main->field_email( ':i:' ); ?>
|
475 |
+
</div>
|
476 |
+
<div id="mec_reg_field_mec_email">
|
477 |
+
<?php echo $this->main->field_mec_email( ':i:' ); ?>
|
478 |
+
</div>
|
479 |
+
<div id="mec_reg_field_name">
|
480 |
+
<?php echo $this->main->field_name( ':i:' ); ?>
|
481 |
+
</div>
|
482 |
+
<div id="mec_reg_field_tel">
|
483 |
+
<?php echo $this->main->field_tel( ':i:' ); ?>
|
484 |
+
</div>
|
485 |
+
<div id="mec_reg_field_date">
|
486 |
+
<?php echo $this->main->field_date( ':i:' ); ?>
|
487 |
+
</div>
|
488 |
+
<div id="mec_reg_field_file">
|
489 |
+
<?php echo $this->main->field_file( ':i:' ); ?>
|
490 |
+
</div>
|
491 |
+
<div id="mec_reg_field_textarea">
|
492 |
+
<?php echo $this->main->field_textarea( ':i:' ); ?>
|
493 |
+
</div>
|
494 |
+
<div id="mec_reg_field_checkbox">
|
495 |
+
<?php echo $this->main->field_checkbox( ':i:' ); ?>
|
496 |
+
</div>
|
497 |
+
<div id="mec_reg_field_radio">
|
498 |
+
<?php echo $this->main->field_radio( ':i:' ); ?>
|
499 |
+
</div>
|
500 |
+
<div id="mec_reg_field_select">
|
501 |
+
<?php echo $this->main->field_select( ':i:' ); ?>
|
502 |
+
</div>
|
503 |
+
<div id="mec_reg_field_agreement">
|
504 |
+
<?php echo $this->main->field_agreement( ':i:' ); ?>
|
505 |
+
</div>
|
506 |
+
<div id="mec_reg_field_p">
|
507 |
+
<?php echo $this->main->field_p( ':i:' ); ?>
|
508 |
+
</div>
|
509 |
+
<div id="mec_reg_field_option">
|
510 |
+
<?php echo $this->main->field_option( ':fi:', ':i:' ); ?>
|
511 |
+
</div>
|
512 |
+
</div>
|
513 |
+
</div>
|
514 |
+
|
515 |
+
<div id="payment_gateways_option" class="mec-options-fields">
|
516 |
+
<h4 class="mec-form-subtitle"><?php _e('Payment Gateways', 'modern-events-calendar-lite'); ?></h4>
|
517 |
+
<div class="mec-container">
|
518 |
+
<div class="mec-form-row" id="mec_gateways_form_container">
|
519 |
+
<ul>
|
520 |
+
<?php foreach($gateways as $gateway): ?>
|
521 |
+
<li id="mec_gateway_id<?php echo $gateway->id(); ?>">
|
522 |
+
<?php $gateway->options_form(); ?>
|
523 |
+
</li>
|
524 |
+
<?php endforeach; ?>
|
525 |
+
</ul>
|
526 |
+
</div>
|
527 |
+
<div class="mec-form-row" style="margin-top: 30px;">
|
528 |
+
<div class="mec-col-4">
|
529 |
+
<label>
|
530 |
+
<input type="hidden" name="mec[gateways][op_status]" value="0" />
|
531 |
+
<input id="mec_gateways_op_status" value="1" type="checkbox" name="mec[gateways][op_status]" <?php if(isset($gateways_options['op_status']) and $gateways_options['op_status']) echo 'checked="checked"'; ?> /> <?php _e('Enable Organizer Payment Module', 'modern-events-calendar-lite'); ?>
|
532 |
+
</label>
|
533 |
+
<span class="mec-tooltip">
|
534 |
+
<div class="box">
|
535 |
+
<h5 class="title"><?php _e('Organizer Payment', 'modern-events-calendar-lite'); ?></h5>
|
536 |
+
<div class="content"><p><?php esc_attr_e("By enabling this module, organizers are able to insert their own payment credentials for enabled gateways per event and receive the payments directly!", 'modern-events-calendar-lite'); ?></p></div>
|
537 |
+
</div>
|
538 |
+
<i title="" class="dashicons-before dashicons-editor-help"></i>
|
539 |
+
</span>
|
540 |
+
</div>
|
541 |
+
</div>
|
542 |
+
<div class="mec-form-row">
|
543 |
+
<?php wp_nonce_field('mec_options_form'); ?>
|
544 |
+
<button style="display: none;" id="mec_gateways_form_button" class="button button-primary mec-button-primary" type="submit"><?php _e('Save Changes', 'modern-events-calendar-lite'); ?></button>
|
545 |
+
</div>
|
546 |
+
</div>
|
547 |
+
</div>
|
548 |
+
|
549 |
Â
<?php endif; ?>
|
550 |
Â
|
551 |
Â
<div class="mec-options-fields">
|
app/features/mec/gateways.php
CHANGED
@@ -1,120 +1,4 @@
|
|
1 |
Â
<?php
|
2 |
Â
/** no direct access **/
|
3 |
Â
defined('MECEXEC') or die();
|
4 |
-
|
5 |
-
$gateways = $this->main->get_gateways();
|
6 |
-
$gateways_options = $this->main->get_gateways_options();
|
7 |
-
?>
|
8 |
-
<div class="wns-be-container wns-be-container-sticky">
|
9 |
-
|
10 |
-
<div id="wns-be-infobar">
|
11 |
-
<a href="" id="" class="dpr-btn dpr-save-btn"><?php _e('Save Changes', 'modern-events-calendar-lite'); ?></a>
|
12 |
-
</div>
|
13 |
-
|
14 |
-
<div class="wns-be-sidebar">
|
15 |
-
<?php $this->main->get_sidebar_menu('gateways'); ?>
|
16 |
-
</div>
|
17 |
-
|
18 |
-
<div class="wns-be-main">
|
19 |
-
|
20 |
-
<div id="wns-be-notification"></div>
|
21 |
-
|
22 |
-
<div id="wns-be-content">
|
23 |
-
<div class="wns-be-group-tab">
|
24 |
-
<h2><?php _e('Payment Gateways', 'modern-events-calendar-lite'); ?></h2>
|
25 |
-
<div class="mec-container">
|
26 |
-
<form id="mec_gateways_form">
|
27 |
-
<div class="mec-form-row" id="mec_gateways_form_container">
|
28 |
-
<ul>
|
29 |
-
<?php foreach($gateways as $gateway): ?>
|
30 |
-
<li id="mec_gateway_id<?php echo $gateway->id(); ?>">
|
31 |
-
<?php $gateway->options_form(); ?>
|
32 |
-
</li>
|
33 |
-
<?php endforeach; ?>
|
34 |
-
</ul>
|
35 |
-
</div>
|
36 |
-
<div class="mec-form-row" style="margin-top: 30px;">
|
37 |
-
<div class="mec-col-4">
|
38 |
-
<label>
|
39 |
-
<input type="hidden" name="mec[gateways][op_status]" value="0" />
|
40 |
-
<input id="mec_gateways_op_status" value="1" type="checkbox" name="mec[gateways][op_status]" <?php if(isset($gateways_options['op_status']) and $gateways_options['op_status']) echo 'checked="checked"'; ?> /> <?php _e('Enable Organizer Payment Module', 'modern-events-calendar-lite'); ?>
|
41 |
-
</label>
|
42 |
-
<span class="mec-tooltip">
|
43 |
-
<div class="box">
|
44 |
-
<h5 class="title"><?php _e('Organizer Payment', 'modern-events-calendar-lite'); ?></h5>
|
45 |
-
<div class="content"><p><?php esc_attr_e("By enabling this module, organizers are able to insert their own payment credentials for enabled gateways per event and receive the payments directly!", 'modern-events-calendar-lite'); ?></p></div>
|
46 |
-
</div>
|
47 |
-
<i title="" class="dashicons-before dashicons-editor-help"></i>
|
48 |
-
</span>
|
49 |
-
</div>
|
50 |
-
</div>
|
51 |
-
<div class="mec-form-row">
|
52 |
-
<?php wp_nonce_field('mec_options_form'); ?>
|
53 |
-
<button style="display: none;" id="mec_gateways_form_button" class="button button-primary mec-button-primary" type="submit"><?php _e('Save Changes', 'modern-events-calendar-lite'); ?></button>
|
54 |
-
</div>
|
55 |
-
</form>
|
56 |
-
</div>
|
57 |
-
</div>
|
58 |
-
</div>
|
59 |
-
</div>
|
60 |
-
|
61 |
-
<div id="wns-be-footer">
|
62 |
-
<a href="" id="" class="dpr-btn dpr-save-btn"><?php _e('Save Changes', 'modern-events-calendar-lite'); ?></a>
|
63 |
-
</div>
|
64 |
-
|
65 |
-
</div>
|
66 |
-
|
67 |
-
<script type="text/javascript">
|
68 |
-
jQuery(document).ready(function()
|
69 |
-
{
|
70 |
-
jQuery(".dpr-save-btn").on('click', function(event)
|
71 |
-
{
|
72 |
-
event.preventDefault();
|
73 |
-
jQuery("#mec_gateways_form_button").trigger('click');
|
74 |
-
});
|
75 |
-
});
|
76 |
-
|
77 |
-
jQuery("#mec_gateways_form").on('submit', function(event)
|
78 |
-
{
|
79 |
-
event.preventDefault();
|
80 |
-
|
81 |
-
// Add loading Class to the button
|
82 |
-
jQuery(".dpr-save-btn").addClass('loading').text("<?php echo esc_js(esc_attr__('Saved', 'modern-events-calendar-lite')); ?>");
|
83 |
-
jQuery('<div class="wns-saved-settings"><?php echo esc_js(esc_attr__('Settings Saved!', 'modern-events-calendar-lite')); ?></div>').insertBefore('#wns-be-content');
|
84 |
-
|
85 |
-
if(jQuery('#wns-be-infobar').hasClass('sticky'))
|
86 |
-
{
|
87 |
-
jQuery('.wns-saved-settings').addClass('sticky');
|
88 |
-
}
|
89 |
-
|
90 |
-
var gateways = jQuery("#mec_gateways_form").serialize();
|
91 |
-
jQuery.ajax(
|
92 |
-
{
|
93 |
-
type: "POST",
|
94 |
-
url: ajaxurl,
|
95 |
-
data: "action=mec_save_gateways&"+gateways,
|
96 |
-
beforeSend: function () {
|
97 |
-
jQuery('.wns-be-main').append('<div class="mec-loarder-wrap mec-settings-loader"><div class="mec-loarder"><div></div><div></div><div></div></div></div>');
|
98 |
-
},
|
99 |
-
success: function(data)
|
100 |
-
{
|
101 |
-
// Remove the loading Class to the button
|
102 |
-
setTimeout(function(){
|
103 |
-
jQuery(".dpr-save-btn").removeClass('loading').text("<?php echo esc_js(esc_attr__('Save Changes', 'modern-events-calendar-lite')); ?>");
|
104 |
-
jQuery('.wns-saved-settings').remove();
|
105 |
-
jQuery('.mec-loarder-wrap').remove();
|
106 |
-
}, 1000);
|
107 |
-
|
108 |
-
},
|
109 |
-
error: function(jqXHR, textStatus, errorThrown)
|
110 |
-
{
|
111 |
-
// Remove the loading Class to the button
|
112 |
-
setTimeout(function(){
|
113 |
-
jQuery(".dpr-save-btn").removeClass('loading').text("<?php echo esc_js(esc_attr__('Save Changes', 'modern-events-calendar-lite')); ?>");
|
114 |
-
jQuery('.wns-saved-settings').remove();
|
115 |
-
jQuery('.mec-loarder-wrap').remove();
|
116 |
-
}, 1000);
|
117 |
-
}
|
118 |
-
});
|
119 |
-
});
|
120 |
-
</script>
|
1 |
Â
<?php
|
2 |
Â
/** no direct access **/
|
3 |
Â
defined('MECEXEC') or die();
|
4 |
+
?>
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
app/features/mec/meta_boxes/display_options.php
CHANGED
@@ -16,9 +16,11 @@ $events = $this->main->get_events();
|
|
16 |
Â
<div class="mec-meta-box-fields" id="mec_meta_box_calendar_skin_options">
|
17 |
Â
<div class="mec-form-row">
|
18 |
Â
<label class="mec-col-4" for="mec_skin"><?php _e('Skin', 'modern-events-calendar-lite'); ?></label>
|
19 |
-
<select class="mec-col-4" name="mec[skin]" id="mec_skin" onchange="if( jQuery('#mec_skin').val() != 'carousel' ){ jQuery('.mec-carousel-archive-link').hide();jQuery('.mec-carousel-head-text').hide();}">
|
20 |
Â
<?php foreach($skins as $skin=>$name): ?>
|
21 |
-
<option value="<?php echo $skin; ?>" <?php if($selected_skin == $skin) echo 'selected="selected"';
|
Â
|
|
Â
|
|
22 |
Â
<?php endforeach; ?>
|
23 |
Â
</select>
|
24 |
Â
</div>
|
@@ -30,7 +32,7 @@ $events = $this->main->get_events();
|
|
30 |
Â
<?php $sk_options_list = isset($sk_options['list']) ? $sk_options['list'] : array(); ?>
|
31 |
Â
<div class="mec-form-row">
|
32 |
Â
<label class="mec-col-4" for="mec_skin_list_style"><?php _e('Style', 'modern-events-calendar-lite'); ?></label>
|
33 |
-
<select class="mec-col-4" name="mec[sk-options][list][style]" id="mec_skin_list_style" onchange="mec_skin_style_changed('list', this.value); if(this.value == 'accordion'){ jQuery('.mec-sed-methode-container').hide();jQuery('.mec-toggle-month-divider').show(); }else{ jQuery('.mec-sed-methode-container').show();jQuery('.mec-toggle-month-divider').hide()}">
|
34 |
Â
<option value="classic" <?php if(isset($sk_options_list['style']) and $sk_options_list['style'] == 'classic') echo 'selected="selected"'; ?>><?php _e('Classic', 'modern-events-calendar-lite'); ?></option>
|
35 |
Â
<option value="minimal" <?php if(isset($sk_options_list['style']) and $sk_options_list['style'] == 'minimal') echo 'selected="selected"'; ?>><?php _e('Minimal', 'modern-events-calendar-lite'); ?></option>
|
36 |
Â
<option value="modern" <?php if(isset($sk_options_list['style']) and $sk_options_list['style'] == 'modern') echo 'selected="selected"'; ?>><?php _e('Modern', 'modern-events-calendar-lite'); ?></option>
|
@@ -40,7 +42,7 @@ $events = $this->main->get_events();
|
|
40 |
Â
</div>
|
41 |
Â
<div class="mec-form-row">
|
42 |
Â
<label class="mec-col-4" for="mec_skin_list_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
43 |
-
<select class="mec-col-4" name="mec[sk-options][list][start_date_type]" id="mec_skin_list_start_date_type" onchange="if(this.value === 'date') jQuery('#mec_skin_list_start_date_container').show(); else jQuery('#mec_skin_list_start_date_container').hide();">
|
44 |
Â
<option value="today" <?php if(isset($sk_options_list['start_date_type']) and $sk_options_list['start_date_type'] == 'today') echo 'selected="selected"'; ?>><?php _e('Today', 'modern-events-calendar-lite'); ?></option>
|
45 |
Â
<option value="tomorrow" <?php if(isset($sk_options_list['start_date_type']) and $sk_options_list['start_date_type'] == 'tomorrow') echo 'selected="selected"'; ?>><?php _e('Tomorrow', 'modern-events-calendar-lite'); ?></option>
|
46 |
Â
<option value="start_current_month" <?php if(isset($sk_options_list['start_date_type']) and $sk_options_list['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
@@ -135,6 +137,20 @@ $events = $this->main->get_events();
|
|
135 |
Â
<label for="mec_skin_list_month_divider"></label>
|
136 |
Â
</div>
|
137 |
Â
</div>
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
138 |
Â
<div class="mec-sed-methode-container">
|
139 |
Â
<?php echo $this->sed_method_field('list', (isset($sk_options_list['sed_method']) ? $sk_options_list['sed_method'] : 0), (isset($sk_options_list['image_popup']) ? $sk_options_list['image_popup'] : 0)); ?>
|
140 |
Â
</div>
|
@@ -155,7 +171,7 @@ $events = $this->main->get_events();
|
|
155 |
Â
<?php $sk_options_grid = isset($sk_options['grid']) ? $sk_options['grid'] : array(); ?>
|
156 |
Â
<div class="mec-form-row">
|
157 |
Â
<label class="mec-col-4" for="mec_skin_grid_style"><?php _e('Style', 'modern-events-calendar-lite'); ?></label>
|
158 |
-
<select class="mec-col-4" name="mec[sk-options][grid][style]" id="mec_skin_grid_style" onchange="mec_skin_style_changed('grid', this.value);">
|
159 |
Â
<option value="classic" <?php if(isset($sk_options_grid['style']) and $sk_options_grid['style'] == 'classic') echo 'selected="selected"'; ?>><?php _e('Classic', 'modern-events-calendar-lite'); ?></option>
|
160 |
Â
<option value="clean" <?php if(isset($sk_options_grid['style']) and $sk_options_grid['style'] == 'clean') echo 'selected="selected"'; ?>><?php _e('Clean', 'modern-events-calendar-lite'); ?></option>
|
161 |
Â
<option value="minimal" <?php if(isset($sk_options_grid['style']) and $sk_options_grid['style'] == 'minimal') echo 'selected="selected"'; ?>><?php _e('Minimal', 'modern-events-calendar-lite'); ?></option>
|
@@ -167,7 +183,7 @@ $events = $this->main->get_events();
|
|
167 |
Â
</div>
|
168 |
Â
<div class="mec-form-row">
|
169 |
Â
<label class="mec-col-4" for="mec_skin_grid_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
170 |
-
<select class="mec-col-4" name="mec[sk-options][grid][start_date_type]" id="mec_skin_grid_start_date_type" onchange="if(this.value === 'date') jQuery('#mec_skin_grid_start_date_container').show(); else jQuery('#mec_skin_grid_start_date_container').hide();">
|
171 |
Â
<option value="today" <?php if(isset($sk_options_grid['start_date_type']) and $sk_options_grid['start_date_type'] == 'today') echo 'selected="selected"'; ?>><?php _e('Today', 'modern-events-calendar-lite'); ?></option>
|
172 |
Â
<option value="tomorrow" <?php if(isset($sk_options_grid['start_date_type']) and $sk_options_grid['start_date_type'] == 'tomorrow') echo 'selected="selected"'; ?>><?php _e('Tomorrow', 'modern-events-calendar-lite'); ?></option>
|
173 |
Â
<option value="start_current_month" <?php if(isset($sk_options_grid['start_date_type']) and $sk_options_grid['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
@@ -263,7 +279,7 @@ $events = $this->main->get_events();
|
|
263 |
Â
</div>
|
264 |
Â
<div class="mec-form-row">
|
265 |
Â
<label class="mec-col-4" for="mec_skin_grid_count"><?php _e('Count in row', 'modern-events-calendar-lite'); ?></label>
|
266 |
-
<select class="mec-col-4" name="mec[sk-options][grid][count]" id="mec_skin_grid_count">
|
267 |
Â
<option value="1" <?php echo (isset($sk_options_grid['count']) and $sk_options_grid['count'] == 1) ? 'selected="selected"' : ''; ?>>1</option>
|
268 |
Â
<option value="2" <?php echo (isset($sk_options_grid['count']) and $sk_options_grid['count'] == 2) ? 'selected="selected"' : ''; ?>>2</option>
|
269 |
Â
<option value="3" <?php echo (isset($sk_options_grid['count']) and $sk_options_grid['count'] == 3) ? 'selected="selected"' : ''; ?>>3</option>
|
@@ -286,6 +302,20 @@ $events = $this->main->get_events();
|
|
286 |
Â
<label for="mec_skin_grid_load_more_button"></label>
|
287 |
Â
</div>
|
288 |
Â
</div>
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
289 |
Â
<?php echo $this->sed_method_field('grid', (isset($sk_options_grid['sed_method']) ? $sk_options_grid['sed_method'] : 0), (isset($sk_options_grid['image_popup']) ? $sk_options_grid['image_popup'] : 0)); ?>
|
290 |
Â
</div>
|
291 |
Â
|
@@ -299,13 +329,13 @@ $events = $this->main->get_events();
|
|
299 |
Â
<?php $sk_options_agenda = isset($sk_options['agenda']) ? $sk_options['agenda'] : array(); ?>
|
300 |
Â
<div class="mec-form-row">
|
301 |
Â
<label class="mec-col-4" for="mec_skin_agenda_style"><?php _e('Style', 'modern-events-calendar-lite'); ?></label>
|
302 |
-
<select class="mec-col-4" name="mec[sk-options][agenda][style]" id="mec_skin_agenda_style" onchange="mec_skin_style_changed('agenda', this.value);">
|
303 |
Â
<option value="clean" <?php if(isset($sk_options_agenda['style']) and $sk_options_agenda['style'] == 'clean') echo 'selected="selected"'; ?>><?php _e('Clean', 'modern-events-calendar-lite'); ?></option>
|
304 |
Â
</select>
|
305 |
Â
</div>
|
306 |
Â
<div class="mec-form-row">
|
307 |
Â
<label class="mec-col-4" for="mec_skin_agenda_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
308 |
-
<select class="mec-col-4" name="mec[sk-options][agenda][start_date_type]" id="mec_skin_agenda_start_date_type" onchange="if(this.value == 'date') jQuery('#mec_skin_agenda_start_date_container').show(); else jQuery('#mec_skin_agenda_start_date_container').hide();">
|
309 |
Â
<option value="today" <?php if(isset($sk_options_agenda['start_date_type']) and $sk_options_agenda['start_date_type'] == 'today') echo 'selected="selected"'; ?>><?php _e('Today', 'modern-events-calendar-lite'); ?></option>
|
310 |
Â
<option value="tomorrow" <?php if(isset($sk_options_agenda['start_date_type']) and $sk_options_agenda['start_date_type'] == 'tomorrow') echo 'selected="selected"'; ?>><?php _e('Tomorrow', 'modern-events-calendar-lite'); ?></option>
|
311 |
Â
<option value="start_current_month" <?php if(isset($sk_options_agenda['start_date_type']) and $sk_options_agenda['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
@@ -360,7 +390,7 @@ $events = $this->main->get_events();
|
|
360 |
Â
<?php $sk_options_full_calendar = isset($sk_options['full_calendar']) ? $sk_options['full_calendar'] : array(); ?>
|
361 |
Â
<div class="mec-form-row">
|
362 |
Â
<label class="mec-col-4" for="mec_skin_full_calendar_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
363 |
-
<select class="mec-col-4" name="mec[sk-options][full_calendar][start_date_type]" id="mec_skin_full_calendar_start_date_type" onchange="if(this.value == 'date') jQuery('#mec_skin_full_calendar_start_date_container').show(); else jQuery('#mec_skin_full_calendar_start_date_container').hide();">
|
364 |
Â
<option value="start_current_month" <?php if(isset($sk_options_full_calendar['start_date_type']) and $sk_options_full_calendar['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
365 |
Â
<option value="start_next_month" <?php if(isset($sk_options_full_calendar['start_date_type']) and $sk_options_full_calendar['start_date_type'] == 'start_next_month') echo 'selected="selected"'; ?>><?php _e('Start of Next Month', 'modern-events-calendar-lite'); ?></option>
|
366 |
Â
<option value="date" <?php if(isset($sk_options_full_calendar['start_date_type']) and $sk_options_full_calendar['start_date_type'] == 'date') echo 'selected="selected"'; ?>><?php _e('On a certain date', 'modern-events-calendar-lite'); ?></option>
|
@@ -371,7 +401,7 @@ $events = $this->main->get_events();
|
|
371 |
Â
</div>
|
372 |
Â
<div class="mec-form-row">
|
373 |
Â
<label class="mec-col-4" for="mec_skin_full_calendar_default_view"><?php _e('Default View', 'modern-events-calendar-lite'); ?></label>
|
374 |
-
<select class="mec-col-4" name="mec[sk-options][full_calendar][default_view]" id="mec_skin_full_calendar_default_view">
|
375 |
Â
<option value="list" <?php echo (isset($sk_options_full_calendar['default_view']) and $sk_options_full_calendar['default_view'] == 'list') ? 'selected="selected"' : ''; ?>><?php _e('List View', 'modern-events-calendar-lite'); ?></option>
|
376 |
Â
<option value="yearly" <?php echo (isset($sk_options_full_calendar['default_view']) and $sk_options_full_calendar['default_view'] == 'yearly') ? 'selected="selected"' : ''; ?>><?php _e('Yearly View', 'modern-events-calendar-lite'); ?></option>
|
377 |
Â
<option value="monthly" <?php echo (isset($sk_options_full_calendar['default_view']) and $sk_options_full_calendar['default_view'] == 'monthly') ? 'selected="selected"' : ''; ?>><?php _e('Monthly/Calendar View', 'modern-events-calendar-lite'); ?></option>
|
@@ -381,7 +411,7 @@ $events = $this->main->get_events();
|
|
381 |
Â
</div>
|
382 |
Â
<div class="mec-form-row">
|
383 |
Â
<label class="mec-col-4" for="mec_skin_full_calendar_monthly_style"><?php _e('Monthly Style', 'modern-events-calendar-lite'); ?></label>
|
384 |
-
<select class="mec-col-4" name="mec[sk-options][full_calendar][monthly_style]" id="mec_skin_full_calendar_monthly_style">
|
385 |
Â
<option value="clean" <?php echo (isset($sk_options_full_calendar['monthly_style']) and $sk_options_full_calendar['monthly_style'] == 'clean') ? 'selected="selected"' : ''; ?>><?php _e('Clean', 'modern-events-calendar-lite'); ?></option>
|
386 |
Â
<option value="novel" <?php echo (isset($sk_options_full_calendar['monthly_style']) and $sk_options_full_calendar['monthly_style'] == 'novel') ? 'selected="selected"' : ''; ?>><?php _e('Novel', 'modern-events-calendar-lite'); ?></option>
|
387 |
Â
<option value="simple" <?php echo (isset($sk_options_full_calendar['monthly_style']) and $sk_options_full_calendar['monthly_style'] == 'simple') ? 'selected="selected"' : ''; ?>><?php _e('Simple', 'modern-events-calendar-lite'); ?></option>
|
@@ -477,13 +507,13 @@ $events = $this->main->get_events();
|
|
477 |
Â
<?php $sk_options_yearly_view = isset($sk_options['yearly_view']) ? $sk_options['yearly_view'] : array(); ?>
|
478 |
Â
<div class="mec-form-row">
|
479 |
Â
<label class="mec-col-4" for="mec_skin_yearly_view_style"><?php _e('Style', 'modern-events-calendar-lite'); ?></label>
|
480 |
-
<select class="mec-col-4" name="mec[sk-options][yearly_view][style]" id="mec_skin_yearly_view_style" onchange="mec_skin_style_changed('yearly_view', this.value);">
|
481 |
Â
<option value="modern" <?php if(isset($sk_options_yearly_view['style']) and $sk_options_yearly_view['style'] == 'modern') echo 'selected="selected"'; ?>><?php _e('Modern', 'modern-events-calendar-lite'); ?></option>
|
482 |
Â
</select>
|
483 |
Â
</div>
|
484 |
Â
<div class="mec-form-row">
|
485 |
Â
<label class="mec-col-4" for="mec_skin_yearly_view_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
486 |
-
<select class="mec-col-4" name="mec[sk-options][yearly_view][start_date_type]" id="mec_skin_yearly_view_start_date_type" onchange="if(this.value == 'date') jQuery('#mec_skin_yearly_view_start_date_container').show(); else jQuery('#mec_skin_yearly_view_start_date_container').hide();">
|
487 |
Â
<option value="start_current_year" <?php if(isset($sk_options_yearly_view['start_date_type']) and $sk_options_yearly_view['start_date_type'] == 'start_current_year') echo 'selected="selected"'; ?>><?php _e('Start of Current Year', 'modern-events-calendar-lite'); ?></option>
|
488 |
Â
<option value="start_next_year" <?php if(isset($sk_options_yearly_view['start_date_type']) and $sk_options_yearly_view['start_date_type'] == 'start_next_year') echo 'selected="selected"'; ?>><?php _e('Start of Next Year', 'modern-events-calendar-lite'); ?></option>
|
489 |
Â
<option value="date" <?php if(isset($sk_options_yearly_view['start_date_type']) and $sk_options_yearly_view['start_date_type'] == 'date') echo 'selected="selected"'; ?>><?php _e('On a certain date', 'modern-events-calendar-lite'); ?></option>
|
@@ -527,7 +557,7 @@ $events = $this->main->get_events();
|
|
527 |
Â
<?php $sk_options_monthly_view = isset($sk_options['monthly_view']) ? $sk_options['monthly_view'] : array(); ?>
|
528 |
Â
<div class="mec-form-row">
|
529 |
Â
<label class="mec-col-4" for="mec_skin_monthly_view_style"><?php _e('Style', 'modern-events-calendar-lite'); ?></label>
|
530 |
-
<select class="mec-col-4" name="mec[sk-options][monthly_view][style]" id="mec_skin_monthly_view_style" onchange="mec_skin_style_changed('monthly_view', this.value);">
|
531 |
Â
<option value="classic" <?php if(isset($sk_options_monthly_view['style']) and $sk_options_monthly_view['style'] == 'classic') echo 'selected="selected"'; ?>><?php _e('Classic', 'modern-events-calendar-lite'); ?></option>
|
532 |
Â
<option value="clean" <?php if(isset($sk_options_monthly_view['style']) and $sk_options_monthly_view['style'] == 'clean') echo 'selected="selected"'; ?>><?php _e('Clean', 'modern-events-calendar-lite'); ?></option>
|
533 |
Â
<option value="modern" <?php if(isset($sk_options_monthly_view['style']) and $sk_options_monthly_view['style'] == 'modern') echo 'selected="selected"'; ?>><?php _e('Modern', 'modern-events-calendar-lite'); ?></option>
|
@@ -537,7 +567,7 @@ $events = $this->main->get_events();
|
|
537 |
Â
</div>
|
538 |
Â
<div class="mec-form-row">
|
539 |
Â
<label class="mec-col-4" for="mec_skin_monthly_view_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
540 |
-
<select class="mec-col-4" name="mec[sk-options][monthly_view][start_date_type]" id="mec_skin_monthly_view_start_date_type" onchange="if(this.value == 'date') jQuery('#mec_skin_monthly_view_start_date_container').show(); else jQuery('#mec_skin_monthly_view_start_date_container').hide();">
|
541 |
Â
<option value="start_current_month" <?php if(isset($sk_options_monthly_view['start_date_type']) and $sk_options_monthly_view['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
542 |
Â
<option value="start_next_month" <?php if(isset($sk_options_monthly_view['start_date_type']) and $sk_options_monthly_view['start_date_type'] == 'start_next_month') echo 'selected="selected"'; ?>><?php _e('Start of Next Month', 'modern-events-calendar-lite'); ?></option>
|
543 |
Â
<option value="date" <?php if(isset($sk_options_monthly_view['start_date_type']) and $sk_options_monthly_view['start_date_type'] == 'date') echo 'selected="selected"'; ?>><?php _e('On a certain date', 'modern-events-calendar-lite'); ?></option>
|
@@ -584,7 +614,7 @@ $events = $this->main->get_events();
|
|
584 |
Â
<?php $sk_options_map = isset($sk_options['map']) ? $sk_options['map'] : array(); ?>
|
585 |
Â
<div class="mec-form-row">
|
586 |
Â
<label class="mec-col-4" for="mec_skin_map_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
587 |
-
<select class="mec-col-4" name="mec[sk-options][map][start_date_type]" id="mec_skin_map_start_date_type" onchange="if(this.value == 'date') jQuery('#mec_skin_map_start_date_container').show(); else jQuery('#mec_skin_map_start_date_container').hide();">
|
588 |
Â
<option value="today" <?php if(isset($sk_options_map['start_date_type']) and $sk_options_map['start_date_type'] == 'today') echo 'selected="selected"'; ?>><?php _e('Today', 'modern-events-calendar-lite'); ?></option>
|
589 |
Â
<option value="tomorrow" <?php if(isset($sk_options_map['start_date_type']) and $sk_options_map['start_date_type'] == 'tomorrow') echo 'selected="selected"'; ?>><?php _e('Tomorrow', 'modern-events-calendar-lite'); ?></option>
|
590 |
Â
<option value="start_current_month" <?php if(isset($sk_options_map['start_date_type']) and $sk_options_map['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
@@ -617,7 +647,7 @@ $events = $this->main->get_events();
|
|
617 |
Â
<?php $sk_options_daily_view = isset($sk_options['daily_view']) ? $sk_options['daily_view'] : array(); ?>
|
618 |
Â
<div class="mec-form-row">
|
619 |
Â
<label class="mec-col-4" for="mec_skin_daily_view_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
620 |
-
<select class="mec-col-4" name="mec[sk-options][daily_view][start_date_type]" id="mec_skin_daily_view_start_date_type" onchange="if(this.value == 'date') jQuery('#mec_skin_daily_view_start_date_container').show(); else jQuery('#mec_skin_daily_view_start_date_container').hide();">
|
621 |
Â
<option value="today" <?php if(isset($sk_options_daily_view['start_date_type']) and $sk_options_daily_view['start_date_type'] == 'today') echo 'selected="selected"'; ?>><?php _e('Today', 'modern-events-calendar-lite'); ?></option>
|
622 |
Â
<option value="tomorrow" <?php if(isset($sk_options_daily_view['start_date_type']) and $sk_options_daily_view['start_date_type'] == 'tomorrow') echo 'selected="selected"'; ?>><?php _e('Tomorrow', 'modern-events-calendar-lite'); ?></option>
|
623 |
Â
<option value="start_current_month" <?php if(isset($sk_options_daily_view['start_date_type']) and $sk_options_daily_view['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
@@ -652,7 +682,7 @@ $events = $this->main->get_events();
|
|
652 |
Â
<?php $sk_options_weekly_view = isset($sk_options['weekly_view']) ? $sk_options['weekly_view'] : array(); ?>
|
653 |
Â
<div class="mec-form-row">
|
654 |
Â
<label class="mec-col-4" for="mec_skin_weekly_view_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
655 |
-
<select class="mec-col-4" name="mec[sk-options][weekly_view][start_date_type]" id="mec_skin_weekly_view_start_date_type" onchange="if(this.value == 'date') jQuery('#mec_skin_weekly_view_start_date_container').show(); else jQuery('#mec_skin_weekly_view_start_date_container').hide();">
|
656 |
Â
<option value="start_current_week" <?php if(isset($sk_options_weekly_view['start_date_type']) and $sk_options_weekly_view['start_date_type'] == 'start_current_week') echo 'selected="selected"'; ?>><?php _e('Current Week', 'modern-events-calendar-lite'); ?></option>
|
657 |
Â
<option value="start_next_week" <?php if(isset($sk_options_weekly_view['start_date_type']) and $sk_options_weekly_view['start_date_type'] == 'start_next_week') echo 'selected="selected"'; ?>><?php _e('Next Week', 'modern-events-calendar-lite'); ?></option>
|
658 |
Â
<option value="start_current_month" <?php if(isset($sk_options_weekly_view['start_date_type']) and $sk_options_weekly_view['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
@@ -691,14 +721,14 @@ $events = $this->main->get_events();
|
|
691 |
Â
<?php $sk_options_timetable = isset($sk_options['timetable']) ? $sk_options['timetable'] : array(); ?>
|
692 |
Â
<div class="mec-form-row">
|
693 |
Â
<label class="mec-col-4" for="mec_skin_timetable_style"><?php _e('Style', 'modern-events-calendar-lite'); ?></label>
|
694 |
-
<select class="mec-col-4" name="mec[sk-options][timetable][style]" id="mec_skin_timetable_style" onchange="mec_skin_style_changed('timetable', this.value); if(this.value == 'clean'){ jQuery('.mec-timetable-clean-style-depended').show(); jQuery('.mec-timetable-modern-style-depended').hide(); } else { jQuery('.mec-timetable-clean-style-depended').hide(); jQuery('.mec-timetable-modern-style-depended').show(); }">
|
695 |
Â
<option value="modern" <?php if(isset($sk_options_timetable['style']) and $sk_options_timetable['style'] == 'modern') echo 'selected="selected"'; ?>><?php _e('Modern', 'modern-events-calendar-lite'); ?></option>
|
696 |
Â
<option value="clean" <?php if(isset($sk_options_timetable['style']) and $sk_options_timetable['style'] == 'clean') echo 'selected="selected"'; ?>><?php _e('Clean', 'modern-events-calendar-lite'); ?></option>
|
697 |
Â
</select>
|
698 |
Â
</div>
|
699 |
Â
<div class="mec-form-row">
|
700 |
Â
<label class="mec-col-4" for="mec_skin_timetable_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
701 |
-
<select class="mec-col-4" name="mec[sk-options][timetable][start_date_type]" id="mec_skin_timetable_start_date_type" onchange="if(this.value == 'date') jQuery('#mec_skin_timetable_start_date_container').show(); else jQuery('#mec_skin_timetable_start_date_container').hide();">
|
702 |
Â
<option value="start_current_week" <?php if(isset($sk_options_timetable['start_date_type']) and $sk_options_timetable['start_date_type'] == 'start_current_week') echo 'selected="selected"'; ?>><?php _e('Current Week', 'modern-events-calendar-lite'); ?></option>
|
703 |
Â
<option value="start_next_week" <?php if(isset($sk_options_timetable['start_date_type']) and $sk_options_timetable['start_date_type'] == 'start_next_week') echo 'selected="selected"'; ?>><?php _e('Next Week', 'modern-events-calendar-lite'); ?></option>
|
704 |
Â
<option value="start_current_month" <?php if(isset($sk_options_timetable['start_date_type']) and $sk_options_timetable['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
@@ -716,7 +746,7 @@ $events = $this->main->get_events();
|
|
716 |
Â
<div class="mec-timetable-clean-style-depended">
|
717 |
Â
<div class="mec-form-row">
|
718 |
Â
<label class="mec-col-4" for="mec_skin_timetable_number_of_days"><?php _e('Number of Days', 'modern-events-calendar-lite'); ?></label>
|
719 |
-
<select class="mec-col-4" name="mec[sk-options][timetable][number_of_days]" id="mec_skin_timetable_number_of_days">
|
720 |
Â
<option value="5" <?php if(isset($sk_options_timetable['number_of_days']) and $sk_options_timetable['number_of_days'] == '5') echo 'selected="selected"'; ?>>5</option>
|
721 |
Â
<option value="6" <?php if(isset($sk_options_timetable['number_of_days']) and $sk_options_timetable['number_of_days'] == '6') echo 'selected="selected"'; ?>>6</option>
|
722 |
Â
<option value="7" <?php if(isset($sk_options_timetable['number_of_days']) and $sk_options_timetable['number_of_days'] == '7') echo 'selected="selected"'; ?>>7</option>
|
@@ -724,7 +754,7 @@ $events = $this->main->get_events();
|
|
724 |
Â
</div>
|
725 |
Â
<div class="mec-form-row">
|
726 |
Â
<label class="mec-col-4" for="mec_skin_timetable_week_start"><?php _e('Week Start', 'modern-events-calendar-lite'); ?></label>
|
727 |
-
<select class="mec-col-4" name="mec[sk-options][timetable][week_start]" id="mec_skin_timetable_week_start">
|
728 |
Â
<option value="-1" <?php if(isset($sk_options_timetable['week_start']) and $sk_options_timetable['week_start'] == '-1') echo 'selected="selected"'; ?>><?php _e('Inherite from WordPress options', 'modern-events-calendar-lite'); ?></option>
|
729 |
Â
<option value="0" <?php if(isset($sk_options_timetable['week_start']) and $sk_options_timetable['week_start'] == '0') echo 'selected="selected"'; ?>><?php _e('Sunday', 'modern-events-calendar-lite'); ?></option>
|
730 |
Â
<option value="1" <?php if(isset($sk_options_timetable['week_start']) and $sk_options_timetable['week_start'] == '1') echo 'selected="selected"'; ?>><?php _e('Monday', 'modern-events-calendar-lite'); ?></option>
|
@@ -764,7 +794,7 @@ $events = $this->main->get_events();
|
|
764 |
Â
<?php $sk_options_masonry = isset($sk_options['masonry']) ? $sk_options['masonry'] : array(); ?>
|
765 |
Â
<div class="mec-form-row">
|
766 |
Â
<label class="mec-col-4" for="mec_skin_masonry_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
767 |
-
<select class="mec-col-4" name="mec[sk-options][masonry][start_date_type]" id="mec_skin_masonry_start_date_type" onchange="if(this.value === 'date') jQuery('#mec_skin_masonry_start_date_container').show(); else jQuery('#mec_skin_masonry_start_date_container').hide();">
|
768 |
Â
<option value="today" <?php if(isset($sk_options_masonry['start_date_type']) and $sk_options_masonry['start_date_type'] == 'today') echo 'selected="selected"'; ?>><?php _e('Today', 'modern-events-calendar-lite'); ?></option>
|
769 |
Â
<option value="tomorrow" <?php if(isset($sk_options_masonry['start_date_type']) and $sk_options_masonry['start_date_type'] == 'tomorrow') echo 'selected="selected"'; ?>><?php _e('Tomorrow', 'modern-events-calendar-lite'); ?></option>
|
770 |
Â
<option value="start_current_month" <?php if(isset($sk_options_masonry['start_date_type']) and $sk_options_masonry['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
@@ -793,7 +823,7 @@ $events = $this->main->get_events();
|
|
793 |
Â
</div>
|
794 |
Â
<div class="mec-form-row">
|
795 |
Â
<label class="mec-col-4" for="mec_skin_masonry_filter_by"><?php _e('Filter By', 'modern-events-calendar-lite'); ?></label>
|
796 |
-
<select class="mec-col-4" name="mec[sk-options][masonry][filter_by]" id="mec_skin_masonry_filter_by">
|
797 |
Â
<option value="" <?php if(isset($sk_options_masonry['filter_by']) and $sk_options_masonry['filter_by'] == '') echo 'selected="selected"'; ?>><?php _e('None', 'modern-events-calendar-lite'); ?></option>
|
798 |
Â
<option value="category" <?php if(isset($sk_options_masonry['filter_by']) and $sk_options_masonry['filter_by'] == 'category') echo 'selected="selected"'; ?>><?php _e('Category', 'modern-events-calendar-lite'); ?></option>
|
799 |
Â
<option value="label" <?php if(isset($sk_options_masonry['filter_by']) and $sk_options_masonry['filter_by'] == 'label') echo 'selected="selected"'; ?>><?php _e('Label', 'modern-events-calendar-lite'); ?></option>
|
@@ -841,7 +871,7 @@ $events = $this->main->get_events();
|
|
841 |
Â
<?php $sk_options_cover = isset($sk_options['cover']) ? $sk_options['cover'] : array(); ?>
|
842 |
Â
<div class="mec-form-row">
|
843 |
Â
<label class="mec-col-4" for="mec_skin_cover_style"><?php _e('Style', 'modern-events-calendar-lite'); ?></label>
|
844 |
-
<select class="mec-col-4" name="mec[sk-options][cover][style]" id="mec_skin_cover_style" onchange="mec_skin_style_changed('cover', this.value);">
|
845 |
Â
<option value="classic" <?php if(isset($sk_options_cover['style']) and $sk_options_cover['style'] == 'classic') echo 'selected="selected"'; ?>><?php _e('Classic', 'modern-events-calendar-lite'); ?></option>
|
846 |
Â
<option value="clean" <?php if(isset($sk_options_cover['style']) and $sk_options_cover['style'] == 'clean') echo 'selected="selected"'; ?>><?php _e('Clean', 'modern-events-calendar-lite'); ?></option>
|
847 |
Â
<option value="modern" <?php if(isset($sk_options_cover['style']) and $sk_options_cover['style'] == 'modern') echo 'selected="selected"'; ?>><?php _e('Modern', 'modern-events-calendar-lite'); ?></option>
|
@@ -885,7 +915,7 @@ $events = $this->main->get_events();
|
|
885 |
Â
</div>
|
886 |
Â
<div class="mec-form-row">
|
887 |
Â
<label class="mec-col-4" for="mec_skin_cover_event_id"><?php _e('Event', 'modern-events-calendar-lite'); ?></label>
|
888 |
-
<select class="mec-col-4" name="mec[sk-options][cover][event_id]" id="mec_skin_cover_event_id">
|
889 |
Â
<?php foreach($events as $event): ?>
|
890 |
Â
<option value="<?php echo $event->ID; ?>" <?php if(isset($sk_options_cover['event_id']) and $sk_options_cover['event_id'] == $event->ID) echo 'selected="selected"'; ?>><?php echo $event->post_title; ?></option>
|
891 |
Â
<?php endforeach; ?>
|
@@ -898,7 +928,7 @@ $events = $this->main->get_events();
|
|
898 |
Â
<?php $sk_options_countdown = isset($sk_options['countdown']) ? $sk_options['countdown'] : array(); ?>
|
899 |
Â
<div class="mec-form-row">
|
900 |
Â
<label class="mec-col-4" for="mec_skin_countdown_style"><?php _e('Style', 'modern-events-calendar-lite'); ?></label>
|
901 |
-
<select class="mec-col-4" name="mec[sk-options][countdown][style]" id="mec_skin_countdown_style" onchange="mec_skin_style_changed('countdown', this.value);">
|
902 |
Â
<option value="style1" <?php if(isset($sk_options_countdown['style']) and $sk_options_countdown['style'] == 'style1') echo 'selected="selected"'; ?>><?php _e('Style 1', 'modern-events-calendar-lite'); ?></option>
|
903 |
Â
<option value="style2" <?php if(isset($sk_options_countdown['style']) and $sk_options_countdown['style'] == 'style2') echo 'selected="selected"'; ?>><?php _e('Style 2', 'modern-events-calendar-lite'); ?></option>
|
904 |
Â
<option value="style3" <?php if(isset($sk_options_countdown['style']) and $sk_options_countdown['style'] == 'style3') echo 'selected="selected"'; ?>><?php _e('Style 3', 'modern-events-calendar-lite'); ?></option>
|
@@ -941,7 +971,7 @@ $events = $this->main->get_events();
|
|
941 |
Â
</div>
|
942 |
Â
<div class="mec-form-row">
|
943 |
Â
<label class="mec-col-4" for="mec_skin_countdown_event_id"><?php _e('Event', 'modern-events-calendar-lite'); ?></label>
|
944 |
-
<select class="mec-col-4" name="mec[sk-options][countdown][event_id]" id="mec_skin_countdown_event_id">
|
945 |
Â
<option value="-1" <?php if(isset($sk_options_countdown['event_id']) and $sk_options_countdown['event_id'] == '-1') echo 'selected="selected"'; ?>><?php echo __(' -- Next Upcoming Event -- ', 'modern-events-calendar-lite') ?></option>
|
946 |
Â
<?php foreach($events as $event): ?>
|
947 |
Â
<option value="<?php echo $event->ID; ?>" <?php if(isset($sk_options_countdown['event_id']) and $sk_options_countdown['event_id'] == $event->ID) echo 'selected="selected"'; ?>><?php echo $event->post_title; ?></option>
|
@@ -976,7 +1006,7 @@ $events = $this->main->get_events();
|
|
976 |
Â
</div>
|
977 |
Â
<div class="mec-form-row">
|
978 |
Â
<label class="mec-col-4" for="mec_skin_available_spot_event_id"><?php _e('Event', 'modern-events-calendar-lite'); ?></label>
|
979 |
-
<select class="mec-col-4" name="mec[sk-options][available_spot][event_id]" id="mec_skin_available_spot_event_id">
|
980 |
Â
<option value="-1" <?php if(isset($sk_options_available_spot['event_id']) and $sk_options_available_spot['event_id'] == '-1') echo 'selected="selected"'; ?>><?php echo __(' -- Next Upcoming Event -- ', 'modern-events-calendar-lite') ?></option>
|
981 |
Â
<?php foreach($events as $event): ?>
|
982 |
Â
<option value="<?php echo $event->ID; ?>" <?php if(isset($sk_options_available_spot['event_id']) and $sk_options_available_spot['event_id'] == $event->ID) echo 'selected="selected"'; ?>><?php echo $event->post_title; ?></option>
|
@@ -990,7 +1020,7 @@ $events = $this->main->get_events();
|
|
990 |
Â
<?php $sk_options_carousel = isset($sk_options['carousel']) ? $sk_options['carousel'] : array(); ?>
|
991 |
Â
<div class="mec-form-row">
|
992 |
Â
<label class="mec-col-4" for="mec_skin_carousel_style"><?php _e('Style', 'modern-events-calendar-lite'); ?></label>
|
993 |
-
<select class="mec-col-4" name="mec[sk-options][carousel][style]" id="mec_skin_carousel_style" onchange="mec_skin_style_changed('carousel', this.value); if(this.value == 'type4'){ jQuery('.mec-carousel-archive-link').show();jQuery('.mec-carousel-head-text').show();} else { jQuery('.mec-carousel-archive-link').hide(); jQuery('.mec-carousel-head-text').hide(); }">
|
994 |
Â
<option value="type1" <?php if(isset($sk_options_carousel['style']) and $sk_options_carousel['style'] == 'type1') echo 'selected="selected"'; ?>><?php _e('Type 1', 'modern-events-calendar-lite'); ?></option>
|
995 |
Â
<option value="type2" <?php if(isset($sk_options_carousel['style']) and $sk_options_carousel['style'] == 'type2') echo 'selected="selected"'; ?>><?php _e('Type 2', 'modern-events-calendar-lite'); ?></option>
|
996 |
Â
<option value="type3" <?php if(isset($sk_options_carousel['style']) and $sk_options_carousel['style'] == 'type3') echo 'selected="selected"'; ?>><?php _e('Type 3', 'modern-events-calendar-lite'); ?></option>
|
@@ -999,7 +1029,7 @@ $events = $this->main->get_events();
|
|
999 |
Â
</div>
|
1000 |
Â
<div class="mec-form-row">
|
1001 |
Â
<label class="mec-col-4" for="mec_skin_carousel_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
1002 |
-
<select class="mec-col-4" name="mec[sk-options][carousel][start_date_type]" id="mec_skin_carousel_start_date_type" onchange="if(this.value == 'date') jQuery('#mec_skin_carousel_start_date_container').show(); else jQuery('#mec_skin_carousel_start_date_container').hide();">
|
1003 |
Â
<option value="today" <?php if(isset($sk_options_carousel['start_date_type']) and $sk_options_carousel['start_date_type'] == 'today') echo 'selected="selected"'; ?>><?php _e('Today', 'modern-events-calendar-lite'); ?></option>
|
1004 |
Â
<option value="tomorrow" <?php if(isset($sk_options_carousel['start_date_type']) and $sk_options_carousel['start_date_type'] == 'tomorrow') echo 'selected="selected"'; ?>><?php _e('Tomorrow', 'modern-events-calendar-lite'); ?></option>
|
1005 |
Â
<option value="start_current_month" <?php if(isset($sk_options_carousel['start_date_type']) and $sk_options_carousel['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
@@ -1047,7 +1077,7 @@ $events = $this->main->get_events();
|
|
1047 |
Â
</div>
|
1048 |
Â
<div class="mec-form-row">
|
1049 |
Â
<label class="mec-col-4" for="mec_skin_carousel_count"><?php _e('Count in row', 'modern-events-calendar-lite'); ?></label>
|
1050 |
-
<select class="mec-col-4" name="mec[sk-options][carousel][count]" id="mec_skin_carousel_count">
|
1051 |
Â
<option value="2" <?php echo (isset($sk_options_carousel['count']) and $sk_options_carousel['count'] == 2) ? 'selected="selected"' : ''; ?>>2</option>
|
1052 |
Â
<option value="3" <?php echo (isset($sk_options_carousel['count']) and $sk_options_carousel['count'] == 3) ? 'selected="selected"' : ''; ?>>3</option>
|
1053 |
Â
<option value="4" <?php echo (isset($sk_options_carousel['count']) and $sk_options_carousel['count'] == 4) ? 'selected="selected"' : ''; ?>>4</option>
|
@@ -1076,7 +1106,7 @@ $events = $this->main->get_events();
|
|
1076 |
Â
<?php $sk_options_slider = isset($sk_options['slider']) ? $sk_options['slider'] : array(); ?>
|
1077 |
Â
<div class="mec-form-row">
|
1078 |
Â
<label class="mec-col-4" for="mec_skin_slider_style"><?php _e('Style', 'modern-events-calendar-lite'); ?></label>
|
1079 |
-
<select class="mec-col-4" name="mec[sk-options][slider][style]" id="mec_skin_slider_style" onchange="mec_skin_style_changed('slider', this.value);">
|
1080 |
Â
<option value="t1" <?php if(isset($sk_options_slider['style']) and $sk_options_slider['style'] == 't1') echo 'selected="selected"'; ?>><?php _e('Type 1', 'modern-events-calendar-lite'); ?></option>
|
1081 |
Â
<option value="t2" <?php if(isset($sk_options_slider['style']) and $sk_options_slider['style'] == 't2') echo 'selected="selected"'; ?>><?php _e('Type 2', 'modern-events-calendar-lite'); ?></option>
|
1082 |
Â
<option value="t3" <?php if(isset($sk_options_slider['style']) and $sk_options_slider['style'] == 't3') echo 'selected="selected"'; ?>><?php _e('Type 3', 'modern-events-calendar-lite'); ?></option>
|
@@ -1086,7 +1116,7 @@ $events = $this->main->get_events();
|
|
1086 |
Â
</div>
|
1087 |
Â
<div class="mec-form-row">
|
1088 |
Â
<label class="mec-col-4" for="mec_skin_slider_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
1089 |
-
<select class="mec-col-4" name="mec[sk-options][slider][start_date_type]" id="mec_skin_slider_start_date_type" onchange="if(this.value == 'date') jQuery('#mec_skin_slider_start_date_container').show(); else jQuery('#mec_skin_slider_start_date_container').hide();">
|
1090 |
Â
<option value="today" <?php if(isset($sk_options_slider['start_date_type']) and $sk_options_slider['start_date_type'] == 'today') echo 'selected="selected"'; ?>><?php _e('Today', 'modern-events-calendar-lite'); ?></option>
|
1091 |
Â
<option value="tomorrow" <?php if(isset($sk_options_slider['start_date_type']) and $sk_options_slider['start_date_type'] == 'tomorrow') echo 'selected="selected"'; ?>><?php _e('Tomorrow', 'modern-events-calendar-lite'); ?></option>
|
1092 |
Â
<option value="start_current_month" <?php if(isset($sk_options_slider['start_date_type']) and $sk_options_slider['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
@@ -1176,4 +1206,96 @@ $events = $this->main->get_events();
|
|
1176 |
Â
<?php do_action('mec_skin_options', $sk_options); ?>
|
1177 |
Â
</div>
|
1178 |
Â
</div>
|
1179 |
-
</div>
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
16 |
Â
<div class="mec-meta-box-fields" id="mec_meta_box_calendar_skin_options">
|
17 |
Â
<div class="mec-form-row">
|
18 |
Â
<label class="mec-col-4" for="mec_skin"><?php _e('Skin', 'modern-events-calendar-lite'); ?></label>
|
19 |
+
<select class="mec-col-4 wn-mec-select mec-custom-nice-select" name="mec[skin]" id="mec_skin" onchange="if( jQuery('#mec_skin').val() != 'carousel' ){ jQuery('.mec-carousel-archive-link').hide();jQuery('.mec-carousel-head-text').hide();}">
|
20 |
Â
<?php foreach($skins as $skin=>$name): ?>
|
21 |
+
<option value="<?php echo $skin; ?>" <?php if($selected_skin == $skin) echo 'selected="selected"'; ?>>
|
22 |
+
<?php echo $name; ?>
|
23 |
+
</option>
|
24 |
Â
<?php endforeach; ?>
|
25 |
Â
</select>
|
26 |
Â
</div>
|
32 |
Â
<?php $sk_options_list = isset($sk_options['list']) ? $sk_options['list'] : array(); ?>
|
33 |
Â
<div class="mec-form-row">
|
34 |
Â
<label class="mec-col-4" for="mec_skin_list_style"><?php _e('Style', 'modern-events-calendar-lite'); ?></label>
|
35 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][list][style]" id="mec_skin_list_style" onchange="mec_skin_style_changed('list', this.value); if(this.value == 'accordion'){ jQuery('.mec-sed-methode-container').hide();jQuery('.mec-toggle-month-divider').show(); }else{ jQuery('.mec-sed-methode-container').show();jQuery('.mec-toggle-month-divider').hide()}">
|
36 |
Â
<option value="classic" <?php if(isset($sk_options_list['style']) and $sk_options_list['style'] == 'classic') echo 'selected="selected"'; ?>><?php _e('Classic', 'modern-events-calendar-lite'); ?></option>
|
37 |
Â
<option value="minimal" <?php if(isset($sk_options_list['style']) and $sk_options_list['style'] == 'minimal') echo 'selected="selected"'; ?>><?php _e('Minimal', 'modern-events-calendar-lite'); ?></option>
|
38 |
Â
<option value="modern" <?php if(isset($sk_options_list['style']) and $sk_options_list['style'] == 'modern') echo 'selected="selected"'; ?>><?php _e('Modern', 'modern-events-calendar-lite'); ?></option>
|
42 |
Â
</div>
|
43 |
Â
<div class="mec-form-row">
|
44 |
Â
<label class="mec-col-4" for="mec_skin_list_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
45 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][list][start_date_type]" id="mec_skin_list_start_date_type" onchange="if(this.value === 'date') jQuery('#mec_skin_list_start_date_container').show(); else jQuery('#mec_skin_list_start_date_container').hide();">
|
46 |
Â
<option value="today" <?php if(isset($sk_options_list['start_date_type']) and $sk_options_list['start_date_type'] == 'today') echo 'selected="selected"'; ?>><?php _e('Today', 'modern-events-calendar-lite'); ?></option>
|
47 |
Â
<option value="tomorrow" <?php if(isset($sk_options_list['start_date_type']) and $sk_options_list['start_date_type'] == 'tomorrow') echo 'selected="selected"'; ?>><?php _e('Tomorrow', 'modern-events-calendar-lite'); ?></option>
|
48 |
Â
<option value="start_current_month" <?php if(isset($sk_options_list['start_date_type']) and $sk_options_list['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
137 |
Â
<label for="mec_skin_list_month_divider"></label>
|
138 |
Â
</div>
|
139 |
Â
</div>
|
140 |
+
<div class="mec-form-row mec-switcher">
|
141 |
+
<div class="mec-col-4">
|
142 |
+
<label for="mec_skin_list_map_on_top"><?php _e('Show Map on top', 'modern-events-calendar-lite'); ?></label>
|
143 |
+
</div>
|
144 |
+
<div class="mec-col-4">
|
145 |
+
<?php if(!$this->main->getPRO()): ?>
|
146 |
+
<div class="info-msg"><?php echo sprintf(__("%s is required to use this feature.", 'modern-events-calendar-lite'), '<a href="'.$this->main->get_pro_link().'" target="_blank">'.__('Pro version of Modern Events Calendar', 'modern-events-calendar-lite').'</a>'); ?></div>
|
147 |
+
<?php else: ?>
|
148 |
+
<input type="hidden" name="mec[sk-options][list][map_on_top]" value="0" />
|
149 |
+
<input type="checkbox" name="mec[sk-options][list][map_on_top]" id="mec_skin_list_map_on_top" value="1" <?php if(isset($sk_options_list['map_on_top']) and $sk_options_list['map_on_top']) echo 'checked="checked"'; ?> />
|
150 |
+
<label for="mec_skin_list_map_on_top"></label>
|
151 |
+
<?php endif; ?>
|
152 |
+
</div>
|
153 |
+
</div>
|
154 |
Â
<div class="mec-sed-methode-container">
|
155 |
Â
<?php echo $this->sed_method_field('list', (isset($sk_options_list['sed_method']) ? $sk_options_list['sed_method'] : 0), (isset($sk_options_list['image_popup']) ? $sk_options_list['image_popup'] : 0)); ?>
|
156 |
Â
</div>
|
171 |
Â
<?php $sk_options_grid = isset($sk_options['grid']) ? $sk_options['grid'] : array(); ?>
|
172 |
Â
<div class="mec-form-row">
|
173 |
Â
<label class="mec-col-4" for="mec_skin_grid_style"><?php _e('Style', 'modern-events-calendar-lite'); ?></label>
|
174 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][grid][style]" id="mec_skin_grid_style" onchange="mec_skin_style_changed('grid', this.value);">
|
175 |
Â
<option value="classic" <?php if(isset($sk_options_grid['style']) and $sk_options_grid['style'] == 'classic') echo 'selected="selected"'; ?>><?php _e('Classic', 'modern-events-calendar-lite'); ?></option>
|
176 |
Â
<option value="clean" <?php if(isset($sk_options_grid['style']) and $sk_options_grid['style'] == 'clean') echo 'selected="selected"'; ?>><?php _e('Clean', 'modern-events-calendar-lite'); ?></option>
|
177 |
Â
<option value="minimal" <?php if(isset($sk_options_grid['style']) and $sk_options_grid['style'] == 'minimal') echo 'selected="selected"'; ?>><?php _e('Minimal', 'modern-events-calendar-lite'); ?></option>
|
183 |
Â
</div>
|
184 |
Â
<div class="mec-form-row">
|
185 |
Â
<label class="mec-col-4" for="mec_skin_grid_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
186 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][grid][start_date_type]" id="mec_skin_grid_start_date_type" onchange="if(this.value === 'date') jQuery('#mec_skin_grid_start_date_container').show(); else jQuery('#mec_skin_grid_start_date_container').hide();">
|
187 |
Â
<option value="today" <?php if(isset($sk_options_grid['start_date_type']) and $sk_options_grid['start_date_type'] == 'today') echo 'selected="selected"'; ?>><?php _e('Today', 'modern-events-calendar-lite'); ?></option>
|
188 |
Â
<option value="tomorrow" <?php if(isset($sk_options_grid['start_date_type']) and $sk_options_grid['start_date_type'] == 'tomorrow') echo 'selected="selected"'; ?>><?php _e('Tomorrow', 'modern-events-calendar-lite'); ?></option>
|
189 |
Â
<option value="start_current_month" <?php if(isset($sk_options_grid['start_date_type']) and $sk_options_grid['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
279 |
Â
</div>
|
280 |
Â
<div class="mec-form-row">
|
281 |
Â
<label class="mec-col-4" for="mec_skin_grid_count"><?php _e('Count in row', 'modern-events-calendar-lite'); ?></label>
|
282 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][grid][count]" id="mec_skin_grid_count">
|
283 |
Â
<option value="1" <?php echo (isset($sk_options_grid['count']) and $sk_options_grid['count'] == 1) ? 'selected="selected"' : ''; ?>>1</option>
|
284 |
Â
<option value="2" <?php echo (isset($sk_options_grid['count']) and $sk_options_grid['count'] == 2) ? 'selected="selected"' : ''; ?>>2</option>
|
285 |
Â
<option value="3" <?php echo (isset($sk_options_grid['count']) and $sk_options_grid['count'] == 3) ? 'selected="selected"' : ''; ?>>3</option>
|
302 |
Â
<label for="mec_skin_grid_load_more_button"></label>
|
303 |
Â
</div>
|
304 |
Â
</div>
|
305 |
+
<div class="mec-form-row mec-switcher">
|
306 |
+
<div class="mec-col-4">
|
307 |
+
<label for="mec_skin_grid_map_on_top"><?php _e('Show Map on top', 'modern-events-calendar-lite'); ?></label>
|
308 |
+
</div>
|
309 |
+
<div class="mec-col-4">
|
310 |
+
<?php if(!$this->main->getPRO()): ?>
|
311 |
+
<div class="info-msg"><?php echo sprintf(__("%s is required to use this feature.", 'modern-events-calendar-lite'), '<a href="'.$this->main->get_pro_link().'" target="_blank">'.__('Pro version of Modern Events Calendar', 'modern-events-calendar-lite').'</a>'); ?></div>
|
312 |
+
<?php else: ?>
|
313 |
+
<input type="hidden" name="mec[sk-options][grid][map_on_top]" value="0" />
|
314 |
+
<input type="checkbox" name="mec[sk-options][grid][map_on_top]" id="mec_skin_grid_map_on_top" value="1" <?php if(isset($sk_options_grid['map_on_top']) and $sk_options_grid['map_on_top']) echo 'checked="checked"'; ?> />
|
315 |
+
<label for="mec_skin_grid_map_on_top"></label>
|
316 |
+
<?php endif; ?>
|
317 |
+
</div>
|
318 |
+
</div>
|
319 |
Â
<?php echo $this->sed_method_field('grid', (isset($sk_options_grid['sed_method']) ? $sk_options_grid['sed_method'] : 0), (isset($sk_options_grid['image_popup']) ? $sk_options_grid['image_popup'] : 0)); ?>
|
320 |
Â
</div>
|
321 |
Â
|
329 |
Â
<?php $sk_options_agenda = isset($sk_options['agenda']) ? $sk_options['agenda'] : array(); ?>
|
330 |
Â
<div class="mec-form-row">
|
331 |
Â
<label class="mec-col-4" for="mec_skin_agenda_style"><?php _e('Style', 'modern-events-calendar-lite'); ?></label>
|
332 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][agenda][style]" id="mec_skin_agenda_style" onchange="mec_skin_style_changed('agenda', this.value);">
|
333 |
Â
<option value="clean" <?php if(isset($sk_options_agenda['style']) and $sk_options_agenda['style'] == 'clean') echo 'selected="selected"'; ?>><?php _e('Clean', 'modern-events-calendar-lite'); ?></option>
|
334 |
Â
</select>
|
335 |
Â
</div>
|
336 |
Â
<div class="mec-form-row">
|
337 |
Â
<label class="mec-col-4" for="mec_skin_agenda_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
338 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][agenda][start_date_type]" id="mec_skin_agenda_start_date_type" onchange="if(this.value == 'date') jQuery('#mec_skin_agenda_start_date_container').show(); else jQuery('#mec_skin_agenda_start_date_container').hide();">
|
339 |
Â
<option value="today" <?php if(isset($sk_options_agenda['start_date_type']) and $sk_options_agenda['start_date_type'] == 'today') echo 'selected="selected"'; ?>><?php _e('Today', 'modern-events-calendar-lite'); ?></option>
|
340 |
Â
<option value="tomorrow" <?php if(isset($sk_options_agenda['start_date_type']) and $sk_options_agenda['start_date_type'] == 'tomorrow') echo 'selected="selected"'; ?>><?php _e('Tomorrow', 'modern-events-calendar-lite'); ?></option>
|
341 |
Â
<option value="start_current_month" <?php if(isset($sk_options_agenda['start_date_type']) and $sk_options_agenda['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
390 |
Â
<?php $sk_options_full_calendar = isset($sk_options['full_calendar']) ? $sk_options['full_calendar'] : array(); ?>
|
391 |
Â
<div class="mec-form-row">
|
392 |
Â
<label class="mec-col-4" for="mec_skin_full_calendar_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
393 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][full_calendar][start_date_type]" id="mec_skin_full_calendar_start_date_type" onchange="if(this.value == 'date') jQuery('#mec_skin_full_calendar_start_date_container').show(); else jQuery('#mec_skin_full_calendar_start_date_container').hide();">
|
394 |
Â
<option value="start_current_month" <?php if(isset($sk_options_full_calendar['start_date_type']) and $sk_options_full_calendar['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
395 |
Â
<option value="start_next_month" <?php if(isset($sk_options_full_calendar['start_date_type']) and $sk_options_full_calendar['start_date_type'] == 'start_next_month') echo 'selected="selected"'; ?>><?php _e('Start of Next Month', 'modern-events-calendar-lite'); ?></option>
|
396 |
Â
<option value="date" <?php if(isset($sk_options_full_calendar['start_date_type']) and $sk_options_full_calendar['start_date_type'] == 'date') echo 'selected="selected"'; ?>><?php _e('On a certain date', 'modern-events-calendar-lite'); ?></option>
|
401 |
Â
</div>
|
402 |
Â
<div class="mec-form-row">
|
403 |
Â
<label class="mec-col-4" for="mec_skin_full_calendar_default_view"><?php _e('Default View', 'modern-events-calendar-lite'); ?></label>
|
404 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][full_calendar][default_view]" id="mec_skin_full_calendar_default_view">
|
405 |
Â
<option value="list" <?php echo (isset($sk_options_full_calendar['default_view']) and $sk_options_full_calendar['default_view'] == 'list') ? 'selected="selected"' : ''; ?>><?php _e('List View', 'modern-events-calendar-lite'); ?></option>
|
406 |
Â
<option value="yearly" <?php echo (isset($sk_options_full_calendar['default_view']) and $sk_options_full_calendar['default_view'] == 'yearly') ? 'selected="selected"' : ''; ?>><?php _e('Yearly View', 'modern-events-calendar-lite'); ?></option>
|
407 |
Â
<option value="monthly" <?php echo (isset($sk_options_full_calendar['default_view']) and $sk_options_full_calendar['default_view'] == 'monthly') ? 'selected="selected"' : ''; ?>><?php _e('Monthly/Calendar View', 'modern-events-calendar-lite'); ?></option>
|
411 |
Â
</div>
|
412 |
Â
<div class="mec-form-row">
|
413 |
Â
<label class="mec-col-4" for="mec_skin_full_calendar_monthly_style"><?php _e('Monthly Style', 'modern-events-calendar-lite'); ?></label>
|
414 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][full_calendar][monthly_style]" id="mec_skin_full_calendar_monthly_style">
|
415 |
Â
<option value="clean" <?php echo (isset($sk_options_full_calendar['monthly_style']) and $sk_options_full_calendar['monthly_style'] == 'clean') ? 'selected="selected"' : ''; ?>><?php _e('Clean', 'modern-events-calendar-lite'); ?></option>
|
416 |
Â
<option value="novel" <?php echo (isset($sk_options_full_calendar['monthly_style']) and $sk_options_full_calendar['monthly_style'] == 'novel') ? 'selected="selected"' : ''; ?>><?php _e('Novel', 'modern-events-calendar-lite'); ?></option>
|
417 |
Â
<option value="simple" <?php echo (isset($sk_options_full_calendar['monthly_style']) and $sk_options_full_calendar['monthly_style'] == 'simple') ? 'selected="selected"' : ''; ?>><?php _e('Simple', 'modern-events-calendar-lite'); ?></option>
|
507 |
Â
<?php $sk_options_yearly_view = isset($sk_options['yearly_view']) ? $sk_options['yearly_view'] : array(); ?>
|
508 |
Â
<div class="mec-form-row">
|
509 |
Â
<label class="mec-col-4" for="mec_skin_yearly_view_style"><?php _e('Style', 'modern-events-calendar-lite'); ?></label>
|
510 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][yearly_view][style]" id="mec_skin_yearly_view_style" onchange="mec_skin_style_changed('yearly_view', this.value);">
|
511 |
Â
<option value="modern" <?php if(isset($sk_options_yearly_view['style']) and $sk_options_yearly_view['style'] == 'modern') echo 'selected="selected"'; ?>><?php _e('Modern', 'modern-events-calendar-lite'); ?></option>
|
512 |
Â
</select>
|
513 |
Â
</div>
|
514 |
Â
<div class="mec-form-row">
|
515 |
Â
<label class="mec-col-4" for="mec_skin_yearly_view_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
516 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][yearly_view][start_date_type]" id="mec_skin_yearly_view_start_date_type" onchange="if(this.value == 'date') jQuery('#mec_skin_yearly_view_start_date_container').show(); else jQuery('#mec_skin_yearly_view_start_date_container').hide();">
|
517 |
Â
<option value="start_current_year" <?php if(isset($sk_options_yearly_view['start_date_type']) and $sk_options_yearly_view['start_date_type'] == 'start_current_year') echo 'selected="selected"'; ?>><?php _e('Start of Current Year', 'modern-events-calendar-lite'); ?></option>
|
518 |
Â
<option value="start_next_year" <?php if(isset($sk_options_yearly_view['start_date_type']) and $sk_options_yearly_view['start_date_type'] == 'start_next_year') echo 'selected="selected"'; ?>><?php _e('Start of Next Year', 'modern-events-calendar-lite'); ?></option>
|
519 |
Â
<option value="date" <?php if(isset($sk_options_yearly_view['start_date_type']) and $sk_options_yearly_view['start_date_type'] == 'date') echo 'selected="selected"'; ?>><?php _e('On a certain date', 'modern-events-calendar-lite'); ?></option>
|
557 |
Â
<?php $sk_options_monthly_view = isset($sk_options['monthly_view']) ? $sk_options['monthly_view'] : array(); ?>
|
558 |
Â
<div class="mec-form-row">
|
559 |
Â
<label class="mec-col-4" for="mec_skin_monthly_view_style"><?php _e('Style', 'modern-events-calendar-lite'); ?></label>
|
560 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][monthly_view][style]" id="mec_skin_monthly_view_style" onchange="mec_skin_style_changed('monthly_view', this.value);">
|
561 |
Â
<option value="classic" <?php if(isset($sk_options_monthly_view['style']) and $sk_options_monthly_view['style'] == 'classic') echo 'selected="selected"'; ?>><?php _e('Classic', 'modern-events-calendar-lite'); ?></option>
|
562 |
Â
<option value="clean" <?php if(isset($sk_options_monthly_view['style']) and $sk_options_monthly_view['style'] == 'clean') echo 'selected="selected"'; ?>><?php _e('Clean', 'modern-events-calendar-lite'); ?></option>
|
563 |
Â
<option value="modern" <?php if(isset($sk_options_monthly_view['style']) and $sk_options_monthly_view['style'] == 'modern') echo 'selected="selected"'; ?>><?php _e('Modern', 'modern-events-calendar-lite'); ?></option>
|
567 |
Â
</div>
|
568 |
Â
<div class="mec-form-row">
|
569 |
Â
<label class="mec-col-4" for="mec_skin_monthly_view_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
570 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][monthly_view][start_date_type]" id="mec_skin_monthly_view_start_date_type" onchange="if(this.value == 'date') jQuery('#mec_skin_monthly_view_start_date_container').show(); else jQuery('#mec_skin_monthly_view_start_date_container').hide();">
|
571 |
Â
<option value="start_current_month" <?php if(isset($sk_options_monthly_view['start_date_type']) and $sk_options_monthly_view['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
572 |
Â
<option value="start_next_month" <?php if(isset($sk_options_monthly_view['start_date_type']) and $sk_options_monthly_view['start_date_type'] == 'start_next_month') echo 'selected="selected"'; ?>><?php _e('Start of Next Month', 'modern-events-calendar-lite'); ?></option>
|
573 |
Â
<option value="date" <?php if(isset($sk_options_monthly_view['start_date_type']) and $sk_options_monthly_view['start_date_type'] == 'date') echo 'selected="selected"'; ?>><?php _e('On a certain date', 'modern-events-calendar-lite'); ?></option>
|
614 |
Â
<?php $sk_options_map = isset($sk_options['map']) ? $sk_options['map'] : array(); ?>
|
615 |
Â
<div class="mec-form-row">
|
616 |
Â
<label class="mec-col-4" for="mec_skin_map_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
617 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][map][start_date_type]" id="mec_skin_map_start_date_type" onchange="if(this.value == 'date') jQuery('#mec_skin_map_start_date_container').show(); else jQuery('#mec_skin_map_start_date_container').hide();">
|
618 |
Â
<option value="today" <?php if(isset($sk_options_map['start_date_type']) and $sk_options_map['start_date_type'] == 'today') echo 'selected="selected"'; ?>><?php _e('Today', 'modern-events-calendar-lite'); ?></option>
|
619 |
Â
<option value="tomorrow" <?php if(isset($sk_options_map['start_date_type']) and $sk_options_map['start_date_type'] == 'tomorrow') echo 'selected="selected"'; ?>><?php _e('Tomorrow', 'modern-events-calendar-lite'); ?></option>
|
620 |
Â
<option value="start_current_month" <?php if(isset($sk_options_map['start_date_type']) and $sk_options_map['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
647 |
Â
<?php $sk_options_daily_view = isset($sk_options['daily_view']) ? $sk_options['daily_view'] : array(); ?>
|
648 |
Â
<div class="mec-form-row">
|
649 |
Â
<label class="mec-col-4" for="mec_skin_daily_view_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
650 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][daily_view][start_date_type]" id="mec_skin_daily_view_start_date_type" onchange="if(this.value == 'date') jQuery('#mec_skin_daily_view_start_date_container').show(); else jQuery('#mec_skin_daily_view_start_date_container').hide();">
|
651 |
Â
<option value="today" <?php if(isset($sk_options_daily_view['start_date_type']) and $sk_options_daily_view['start_date_type'] == 'today') echo 'selected="selected"'; ?>><?php _e('Today', 'modern-events-calendar-lite'); ?></option>
|
652 |
Â
<option value="tomorrow" <?php if(isset($sk_options_daily_view['start_date_type']) and $sk_options_daily_view['start_date_type'] == 'tomorrow') echo 'selected="selected"'; ?>><?php _e('Tomorrow', 'modern-events-calendar-lite'); ?></option>
|
653 |
Â
<option value="start_current_month" <?php if(isset($sk_options_daily_view['start_date_type']) and $sk_options_daily_view['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
682 |
Â
<?php $sk_options_weekly_view = isset($sk_options['weekly_view']) ? $sk_options['weekly_view'] : array(); ?>
|
683 |
Â
<div class="mec-form-row">
|
684 |
Â
<label class="mec-col-4" for="mec_skin_weekly_view_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
685 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][weekly_view][start_date_type]" id="mec_skin_weekly_view_start_date_type" onchange="if(this.value == 'date') jQuery('#mec_skin_weekly_view_start_date_container').show(); else jQuery('#mec_skin_weekly_view_start_date_container').hide();">
|
686 |
Â
<option value="start_current_week" <?php if(isset($sk_options_weekly_view['start_date_type']) and $sk_options_weekly_view['start_date_type'] == 'start_current_week') echo 'selected="selected"'; ?>><?php _e('Current Week', 'modern-events-calendar-lite'); ?></option>
|
687 |
Â
<option value="start_next_week" <?php if(isset($sk_options_weekly_view['start_date_type']) and $sk_options_weekly_view['start_date_type'] == 'start_next_week') echo 'selected="selected"'; ?>><?php _e('Next Week', 'modern-events-calendar-lite'); ?></option>
|
688 |
Â
<option value="start_current_month" <?php if(isset($sk_options_weekly_view['start_date_type']) and $sk_options_weekly_view['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
721 |
Â
<?php $sk_options_timetable = isset($sk_options['timetable']) ? $sk_options['timetable'] : array(); ?>
|
722 |
Â
<div class="mec-form-row">
|
723 |
Â
<label class="mec-col-4" for="mec_skin_timetable_style"><?php _e('Style', 'modern-events-calendar-lite'); ?></label>
|
724 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][timetable][style]" id="mec_skin_timetable_style" onchange="mec_skin_style_changed('timetable', this.value); if(this.value == 'clean'){ jQuery('.mec-timetable-clean-style-depended').show(); jQuery('.mec-timetable-modern-style-depended').hide(); } else { jQuery('.mec-timetable-clean-style-depended').hide(); jQuery('.mec-timetable-modern-style-depended').show(); }">
|
725 |
Â
<option value="modern" <?php if(isset($sk_options_timetable['style']) and $sk_options_timetable['style'] == 'modern') echo 'selected="selected"'; ?>><?php _e('Modern', 'modern-events-calendar-lite'); ?></option>
|
726 |
Â
<option value="clean" <?php if(isset($sk_options_timetable['style']) and $sk_options_timetable['style'] == 'clean') echo 'selected="selected"'; ?>><?php _e('Clean', 'modern-events-calendar-lite'); ?></option>
|
727 |
Â
</select>
|
728 |
Â
</div>
|
729 |
Â
<div class="mec-form-row">
|
730 |
Â
<label class="mec-col-4" for="mec_skin_timetable_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
731 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][timetable][start_date_type]" id="mec_skin_timetable_start_date_type" onchange="if(this.value == 'date') jQuery('#mec_skin_timetable_start_date_container').show(); else jQuery('#mec_skin_timetable_start_date_container').hide();">
|
732 |
Â
<option value="start_current_week" <?php if(isset($sk_options_timetable['start_date_type']) and $sk_options_timetable['start_date_type'] == 'start_current_week') echo 'selected="selected"'; ?>><?php _e('Current Week', 'modern-events-calendar-lite'); ?></option>
|
733 |
Â
<option value="start_next_week" <?php if(isset($sk_options_timetable['start_date_type']) and $sk_options_timetable['start_date_type'] == 'start_next_week') echo 'selected="selected"'; ?>><?php _e('Next Week', 'modern-events-calendar-lite'); ?></option>
|
734 |
Â
<option value="start_current_month" <?php if(isset($sk_options_timetable['start_date_type']) and $sk_options_timetable['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
746 |
Â
<div class="mec-timetable-clean-style-depended">
|
747 |
Â
<div class="mec-form-row">
|
748 |
Â
<label class="mec-col-4" for="mec_skin_timetable_number_of_days"><?php _e('Number of Days', 'modern-events-calendar-lite'); ?></label>
|
749 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][timetable][number_of_days]" id="mec_skin_timetable_number_of_days">
|
750 |
Â
<option value="5" <?php if(isset($sk_options_timetable['number_of_days']) and $sk_options_timetable['number_of_days'] == '5') echo 'selected="selected"'; ?>>5</option>
|
751 |
Â
<option value="6" <?php if(isset($sk_options_timetable['number_of_days']) and $sk_options_timetable['number_of_days'] == '6') echo 'selected="selected"'; ?>>6</option>
|
752 |
Â
<option value="7" <?php if(isset($sk_options_timetable['number_of_days']) and $sk_options_timetable['number_of_days'] == '7') echo 'selected="selected"'; ?>>7</option>
|
754 |
Â
</div>
|
755 |
Â
<div class="mec-form-row">
|
756 |
Â
<label class="mec-col-4" for="mec_skin_timetable_week_start"><?php _e('Week Start', 'modern-events-calendar-lite'); ?></label>
|
757 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][timetable][week_start]" id="mec_skin_timetable_week_start">
|
758 |
Â
<option value="-1" <?php if(isset($sk_options_timetable['week_start']) and $sk_options_timetable['week_start'] == '-1') echo 'selected="selected"'; ?>><?php _e('Inherite from WordPress options', 'modern-events-calendar-lite'); ?></option>
|
759 |
Â
<option value="0" <?php if(isset($sk_options_timetable['week_start']) and $sk_options_timetable['week_start'] == '0') echo 'selected="selected"'; ?>><?php _e('Sunday', 'modern-events-calendar-lite'); ?></option>
|
760 |
Â
<option value="1" <?php if(isset($sk_options_timetable['week_start']) and $sk_options_timetable['week_start'] == '1') echo 'selected="selected"'; ?>><?php _e('Monday', 'modern-events-calendar-lite'); ?></option>
|
794 |
Â
<?php $sk_options_masonry = isset($sk_options['masonry']) ? $sk_options['masonry'] : array(); ?>
|
795 |
Â
<div class="mec-form-row">
|
796 |
Â
<label class="mec-col-4" for="mec_skin_masonry_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
797 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][masonry][start_date_type]" id="mec_skin_masonry_start_date_type" onchange="if(this.value === 'date') jQuery('#mec_skin_masonry_start_date_container').show(); else jQuery('#mec_skin_masonry_start_date_container').hide();">
|
798 |
Â
<option value="today" <?php if(isset($sk_options_masonry['start_date_type']) and $sk_options_masonry['start_date_type'] == 'today') echo 'selected="selected"'; ?>><?php _e('Today', 'modern-events-calendar-lite'); ?></option>
|
799 |
Â
<option value="tomorrow" <?php if(isset($sk_options_masonry['start_date_type']) and $sk_options_masonry['start_date_type'] == 'tomorrow') echo 'selected="selected"'; ?>><?php _e('Tomorrow', 'modern-events-calendar-lite'); ?></option>
|
800 |
Â
<option value="start_current_month" <?php if(isset($sk_options_masonry['start_date_type']) and $sk_options_masonry['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
823 |
Â
</div>
|
824 |
Â
<div class="mec-form-row">
|
825 |
Â
<label class="mec-col-4" for="mec_skin_masonry_filter_by"><?php _e('Filter By', 'modern-events-calendar-lite'); ?></label>
|
826 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][masonry][filter_by]" id="mec_skin_masonry_filter_by">
|
827 |
Â
<option value="" <?php if(isset($sk_options_masonry['filter_by']) and $sk_options_masonry['filter_by'] == '') echo 'selected="selected"'; ?>><?php _e('None', 'modern-events-calendar-lite'); ?></option>
|
828 |
Â
<option value="category" <?php if(isset($sk_options_masonry['filter_by']) and $sk_options_masonry['filter_by'] == 'category') echo 'selected="selected"'; ?>><?php _e('Category', 'modern-events-calendar-lite'); ?></option>
|
829 |
Â
<option value="label" <?php if(isset($sk_options_masonry['filter_by']) and $sk_options_masonry['filter_by'] == 'label') echo 'selected="selected"'; ?>><?php _e('Label', 'modern-events-calendar-lite'); ?></option>
|
871 |
Â
<?php $sk_options_cover = isset($sk_options['cover']) ? $sk_options['cover'] : array(); ?>
|
872 |
Â
<div class="mec-form-row">
|
873 |
Â
<label class="mec-col-4" for="mec_skin_cover_style"><?php _e('Style', 'modern-events-calendar-lite'); ?></label>
|
874 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][cover][style]" id="mec_skin_cover_style" onchange="mec_skin_style_changed('cover', this.value);">
|
875 |
Â
<option value="classic" <?php if(isset($sk_options_cover['style']) and $sk_options_cover['style'] == 'classic') echo 'selected="selected"'; ?>><?php _e('Classic', 'modern-events-calendar-lite'); ?></option>
|
876 |
Â
<option value="clean" <?php if(isset($sk_options_cover['style']) and $sk_options_cover['style'] == 'clean') echo 'selected="selected"'; ?>><?php _e('Clean', 'modern-events-calendar-lite'); ?></option>
|
877 |
Â
<option value="modern" <?php if(isset($sk_options_cover['style']) and $sk_options_cover['style'] == 'modern') echo 'selected="selected"'; ?>><?php _e('Modern', 'modern-events-calendar-lite'); ?></option>
|
915 |
Â
</div>
|
916 |
Â
<div class="mec-form-row">
|
917 |
Â
<label class="mec-col-4" for="mec_skin_cover_event_id"><?php _e('Event', 'modern-events-calendar-lite'); ?></label>
|
918 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][cover][event_id]" id="mec_skin_cover_event_id">
|
919 |
Â
<?php foreach($events as $event): ?>
|
920 |
Â
<option value="<?php echo $event->ID; ?>" <?php if(isset($sk_options_cover['event_id']) and $sk_options_cover['event_id'] == $event->ID) echo 'selected="selected"'; ?>><?php echo $event->post_title; ?></option>
|
921 |
Â
<?php endforeach; ?>
|
928 |
Â
<?php $sk_options_countdown = isset($sk_options['countdown']) ? $sk_options['countdown'] : array(); ?>
|
929 |
Â
<div class="mec-form-row">
|
930 |
Â
<label class="mec-col-4" for="mec_skin_countdown_style"><?php _e('Style', 'modern-events-calendar-lite'); ?></label>
|
931 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][countdown][style]" id="mec_skin_countdown_style" onchange="mec_skin_style_changed('countdown', this.value);">
|
932 |
Â
<option value="style1" <?php if(isset($sk_options_countdown['style']) and $sk_options_countdown['style'] == 'style1') echo 'selected="selected"'; ?>><?php _e('Style 1', 'modern-events-calendar-lite'); ?></option>
|
933 |
Â
<option value="style2" <?php if(isset($sk_options_countdown['style']) and $sk_options_countdown['style'] == 'style2') echo 'selected="selected"'; ?>><?php _e('Style 2', 'modern-events-calendar-lite'); ?></option>
|
934 |
Â
<option value="style3" <?php if(isset($sk_options_countdown['style']) and $sk_options_countdown['style'] == 'style3') echo 'selected="selected"'; ?>><?php _e('Style 3', 'modern-events-calendar-lite'); ?></option>
|
971 |
Â
</div>
|
972 |
Â
<div class="mec-form-row">
|
973 |
Â
<label class="mec-col-4" for="mec_skin_countdown_event_id"><?php _e('Event', 'modern-events-calendar-lite'); ?></label>
|
974 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][countdown][event_id]" id="mec_skin_countdown_event_id">
|
975 |
Â
<option value="-1" <?php if(isset($sk_options_countdown['event_id']) and $sk_options_countdown['event_id'] == '-1') echo 'selected="selected"'; ?>><?php echo __(' -- Next Upcoming Event -- ', 'modern-events-calendar-lite') ?></option>
|
976 |
Â
<?php foreach($events as $event): ?>
|
977 |
Â
<option value="<?php echo $event->ID; ?>" <?php if(isset($sk_options_countdown['event_id']) and $sk_options_countdown['event_id'] == $event->ID) echo 'selected="selected"'; ?>><?php echo $event->post_title; ?></option>
|
1006 |
Â
</div>
|
1007 |
Â
<div class="mec-form-row">
|
1008 |
Â
<label class="mec-col-4" for="mec_skin_available_spot_event_id"><?php _e('Event', 'modern-events-calendar-lite'); ?></label>
|
1009 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][available_spot][event_id]" id="mec_skin_available_spot_event_id">
|
1010 |
Â
<option value="-1" <?php if(isset($sk_options_available_spot['event_id']) and $sk_options_available_spot['event_id'] == '-1') echo 'selected="selected"'; ?>><?php echo __(' -- Next Upcoming Event -- ', 'modern-events-calendar-lite') ?></option>
|
1011 |
Â
<?php foreach($events as $event): ?>
|
1012 |
Â
<option value="<?php echo $event->ID; ?>" <?php if(isset($sk_options_available_spot['event_id']) and $sk_options_available_spot['event_id'] == $event->ID) echo 'selected="selected"'; ?>><?php echo $event->post_title; ?></option>
|
1020 |
Â
<?php $sk_options_carousel = isset($sk_options['carousel']) ? $sk_options['carousel'] : array(); ?>
|
1021 |
Â
<div class="mec-form-row">
|
1022 |
Â
<label class="mec-col-4" for="mec_skin_carousel_style"><?php _e('Style', 'modern-events-calendar-lite'); ?></label>
|
1023 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][carousel][style]" id="mec_skin_carousel_style" onchange="mec_skin_style_changed('carousel', this.value); if(this.value == 'type4'){ jQuery('.mec-carousel-archive-link').show();jQuery('.mec-carousel-head-text').show();} else { jQuery('.mec-carousel-archive-link').hide(); jQuery('.mec-carousel-head-text').hide(); }">
|
1024 |
Â
<option value="type1" <?php if(isset($sk_options_carousel['style']) and $sk_options_carousel['style'] == 'type1') echo 'selected="selected"'; ?>><?php _e('Type 1', 'modern-events-calendar-lite'); ?></option>
|
1025 |
Â
<option value="type2" <?php if(isset($sk_options_carousel['style']) and $sk_options_carousel['style'] == 'type2') echo 'selected="selected"'; ?>><?php _e('Type 2', 'modern-events-calendar-lite'); ?></option>
|
1026 |
Â
<option value="type3" <?php if(isset($sk_options_carousel['style']) and $sk_options_carousel['style'] == 'type3') echo 'selected="selected"'; ?>><?php _e('Type 3', 'modern-events-calendar-lite'); ?></option>
|
1029 |
Â
</div>
|
1030 |
Â
<div class="mec-form-row">
|
1031 |
Â
<label class="mec-col-4" for="mec_skin_carousel_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
1032 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][carousel][start_date_type]" id="mec_skin_carousel_start_date_type" onchange="if(this.value == 'date') jQuery('#mec_skin_carousel_start_date_container').show(); else jQuery('#mec_skin_carousel_start_date_container').hide();">
|
1033 |
Â
<option value="today" <?php if(isset($sk_options_carousel['start_date_type']) and $sk_options_carousel['start_date_type'] == 'today') echo 'selected="selected"'; ?>><?php _e('Today', 'modern-events-calendar-lite'); ?></option>
|
1034 |
Â
<option value="tomorrow" <?php if(isset($sk_options_carousel['start_date_type']) and $sk_options_carousel['start_date_type'] == 'tomorrow') echo 'selected="selected"'; ?>><?php _e('Tomorrow', 'modern-events-calendar-lite'); ?></option>
|
1035 |
Â
<option value="start_current_month" <?php if(isset($sk_options_carousel['start_date_type']) and $sk_options_carousel['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
1077 |
Â
</div>
|
1078 |
Â
<div class="mec-form-row">
|
1079 |
Â
<label class="mec-col-4" for="mec_skin_carousel_count"><?php _e('Count in row', 'modern-events-calendar-lite'); ?></label>
|
1080 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][carousel][count]" id="mec_skin_carousel_count">
|
1081 |
Â
<option value="2" <?php echo (isset($sk_options_carousel['count']) and $sk_options_carousel['count'] == 2) ? 'selected="selected"' : ''; ?>>2</option>
|
1082 |
Â
<option value="3" <?php echo (isset($sk_options_carousel['count']) and $sk_options_carousel['count'] == 3) ? 'selected="selected"' : ''; ?>>3</option>
|
1083 |
Â
<option value="4" <?php echo (isset($sk_options_carousel['count']) and $sk_options_carousel['count'] == 4) ? 'selected="selected"' : ''; ?>>4</option>
|
1106 |
Â
<?php $sk_options_slider = isset($sk_options['slider']) ? $sk_options['slider'] : array(); ?>
|
1107 |
Â
<div class="mec-form-row">
|
1108 |
Â
<label class="mec-col-4" for="mec_skin_slider_style"><?php _e('Style', 'modern-events-calendar-lite'); ?></label>
|
1109 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][slider][style]" id="mec_skin_slider_style" onchange="mec_skin_style_changed('slider', this.value);">
|
1110 |
Â
<option value="t1" <?php if(isset($sk_options_slider['style']) and $sk_options_slider['style'] == 't1') echo 'selected="selected"'; ?>><?php _e('Type 1', 'modern-events-calendar-lite'); ?></option>
|
1111 |
Â
<option value="t2" <?php if(isset($sk_options_slider['style']) and $sk_options_slider['style'] == 't2') echo 'selected="selected"'; ?>><?php _e('Type 2', 'modern-events-calendar-lite'); ?></option>
|
1112 |
Â
<option value="t3" <?php if(isset($sk_options_slider['style']) and $sk_options_slider['style'] == 't3') echo 'selected="selected"'; ?>><?php _e('Type 3', 'modern-events-calendar-lite'); ?></option>
|
1116 |
Â
</div>
|
1117 |
Â
<div class="mec-form-row">
|
1118 |
Â
<label class="mec-col-4" for="mec_skin_slider_start_date_type"><?php _e('Start Date', 'modern-events-calendar-lite'); ?></label>
|
1119 |
+
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][slider][start_date_type]" id="mec_skin_slider_start_date_type" onchange="if(this.value == 'date') jQuery('#mec_skin_slider_start_date_container').show(); else jQuery('#mec_skin_slider_start_date_container').hide();">
|
1120 |
Â
<option value="today" <?php if(isset($sk_options_slider['start_date_type']) and $sk_options_slider['start_date_type'] == 'today') echo 'selected="selected"'; ?>><?php _e('Today', 'modern-events-calendar-lite'); ?></option>
|
1121 |
Â
<option value="tomorrow" <?php if(isset($sk_options_slider['start_date_type']) and $sk_options_slider['start_date_type'] == 'tomorrow') echo 'selected="selected"'; ?>><?php _e('Tomorrow', 'modern-events-calendar-lite'); ?></option>
|
1122 |
Â
<option value="start_current_month" <?php if(isset($sk_options_slider['start_date_type']) and $sk_options_slider['start_date_type'] == 'start_current_month') echo 'selected="selected"'; ?>><?php _e('Start of Current Month', 'modern-events-calendar-lite'); ?></option>
|
1206 |
Â
<?php do_action('mec_skin_options', $sk_options); ?>
|
1207 |
Â
</div>
|
1208 |
Â
</div>
|
1209 |
+
</div>
|
1210 |
+
|
1211 |
+
<script>
|
1212 |
+
// Niceselect
|
1213 |
+
jQuery(document).ready(function() {
|
1214 |
+
jQuery('.mec-custom-nice-select').find('li').each( function(index, elemement) {
|
1215 |
+
var $this = jQuery(this),
|
1216 |
+
$name = $this.text();
|
1217 |
+
$this.text('');
|
1218 |
+
$this.append('<span class="wn-mec-text">'+$name+'</span>');
|
1219 |
+
});
|
1220 |
+
jQuery('.mec-custom-nice-select li[data-value="list"]').prepend('<div class="wn-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/list.svg" /></div>');
|
1221 |
+
jQuery('.mec-custom-nice-select li[data-value="grid"]').prepend('<div class="wn-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/grid.svg" /></div>');
|
1222 |
+
jQuery('.mec-custom-nice-select li[data-value="agenda"]').prepend('<div class="wn-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/agenda.svg" /></div>');
|
1223 |
+
jQuery('.mec-custom-nice-select li[data-value="full_calendar"]').prepend('<div class="wn-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/full_calendar.svg" /></div>');
|
1224 |
+
jQuery('.mec-custom-nice-select li[data-value="yearly_view"]').prepend('<div class="wn-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/yearly.svg" /></div>');
|
1225 |
+
jQuery('.mec-custom-nice-select li[data-value="monthly_view"]').prepend('<div class="wn-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/monthly.svg" /></div>');
|
1226 |
+
jQuery('.mec-custom-nice-select li[data-value="daily_view"]').prepend('<div class="wn-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/daily.svg" /></div>');
|
1227 |
+
jQuery('.mec-custom-nice-select li[data-value="weekly_view"]').prepend('<div class="wn-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/weekly.svg" /></div>');
|
1228 |
+
jQuery('.mec-custom-nice-select li[data-value="timetable"]').prepend('<div class="wn-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/timetable.svg" /></div>');
|
1229 |
+
jQuery('.mec-custom-nice-select li[data-value="masonry"]').prepend('<div class="wn-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/masonry.svg" /></div>');
|
1230 |
+
jQuery('.mec-custom-nice-select li[data-value="map"]').prepend('<div class="wn-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/map.svg" /></div>');
|
1231 |
+
jQuery('.mec-custom-nice-select li[data-value="cover"]').prepend('<div class="wn-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/cover.svg" /></div>');
|
1232 |
+
jQuery('.mec-custom-nice-select li[data-value="countdown"]').prepend('<div class="wn-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/countdown.svg" /></div>');
|
1233 |
+
jQuery('.mec-custom-nice-select li[data-value="available_spot"]').prepend('<div class="wn-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/available_spot.svg" /></div>');
|
1234 |
+
jQuery('.mec-custom-nice-select li[data-value="carousel"]').prepend('<div class="wn-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/carousel.svg" /></div>');
|
1235 |
+
jQuery('.mec-custom-nice-select li[data-value="slider"]').prepend('<div class="wn-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/slider.svg" /></div>');
|
1236 |
+
|
1237 |
+
/** List View Skins */
|
1238 |
+
jQuery('#mec_list_skin_options_container .mec-form-row .nice-select .list li[data-value="classic"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/list/list-classic.png" /></span>');
|
1239 |
+
jQuery('#mec_list_skin_options_container .mec-form-row .nice-select .list li[data-value="minimal"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/list/list-minimal.png" /></span>');
|
1240 |
+
jQuery('#mec_list_skin_options_container .mec-form-row .nice-select .list li[data-value="modern"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/list/list-modern.png" /></span>');
|
1241 |
+
jQuery('#mec_list_skin_options_container .mec-form-row .nice-select .list li[data-value="standard"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/list/list-standard.png" /></span>');
|
1242 |
+
jQuery('#mec_list_skin_options_container .mec-form-row .nice-select .list li[data-value="accordion"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/list/list-accordion.png" /></span>');
|
1243 |
+
|
1244 |
+
/** Grid View Skins */
|
1245 |
+
jQuery('#mec_grid_skin_options_container .mec-form-row .nice-select .list li[data-value="classic"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/grid/grid-classic.png" /></span>');
|
1246 |
+
jQuery('#mec_grid_skin_options_container .mec-form-row .nice-select .list li[data-value="clean"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/grid/grid-clean.png" /></span>');
|
1247 |
+
jQuery('#mec_grid_skin_options_container .mec-form-row .nice-select .list li[data-value="minimal"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/grid/grid-minimal.png" /></span>');
|
1248 |
+
jQuery('#mec_grid_skin_options_container .mec-form-row .nice-select .list li[data-value="modern"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/grid/grid-modern.png" /></span>');
|
1249 |
+
jQuery('#mec_grid_skin_options_container .mec-form-row .nice-select .list li[data-value="simple"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/grid/grid-simple.png" /></span>');
|
1250 |
+
jQuery('#mec_grid_skin_options_container .mec-form-row .nice-select .list li[data-value="colorful"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/grid/grid-colorful.png" /></span>');
|
1251 |
+
jQuery('#mec_grid_skin_options_container .mec-form-row .nice-select .list li[data-value="novel"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/grid/grid-novel.png" /></span>');
|
1252 |
+
|
1253 |
+
/** Agenda View Skins */
|
1254 |
+
jQuery('#mec_agenda_skin_options_container .mec-form-row .nice-select .list li[data-value="clean"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/agenda/agenda-clean.png" /></span>');
|
1255 |
+
|
1256 |
+
/** FullCalendar View Skins */
|
1257 |
+
jQuery('#mec_full_calendar_skin_options_container .mec-form-row .nice-select .list li[data-value="list"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/full-calendar/full-calendar-list.png" /></span>');
|
1258 |
+
jQuery('#mec_full_calendar_skin_options_container .mec-form-row .nice-select .list li[data-value="daily"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/full-calendar/full-calendar-daily.png" /></span>');
|
1259 |
+
jQuery('#mec_full_calendar_skin_options_container .mec-form-row .nice-select .list li[data-value="weekly"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/full-calendar/full-calendar-weekly.png" /></span>');
|
1260 |
+
jQuery('#mec_full_calendar_skin_options_container .mec-form-row .nice-select .list li[data-value="monthly"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/full-calendar/full-calendar-monthly.png" /></span>');
|
1261 |
+
jQuery('#mec_full_calendar_skin_options_container .mec-form-row .nice-select .list li[data-value="yearly"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/full-calendar/full-calendar-yearly.png" /></span>');
|
1262 |
+
|
1263 |
+
/** Yearly View Skins */
|
1264 |
+
jQuery('#mec_yearly_view_skin_options_container .mec-form-row .nice-select .list li[data-value="modern"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/yearly/yearly-modern.png" /></span>');
|
1265 |
+
|
1266 |
+
/** Monthly View Skins */
|
1267 |
+
jQuery('#mec_monthly_view_skin_options_container .mec-form-row .nice-select .list li[data-value="classic"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/monthly/monthly-classic.png" /></span>');
|
1268 |
+
jQuery('#mec_monthly_view_skin_options_container .mec-form-row .nice-select .list li[data-value="clean"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/monthly/monthly-clean.png" /></span>');
|
1269 |
+
jQuery('#mec_monthly_view_skin_options_container .mec-form-row .nice-select .list li[data-value="modern"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/monthly/monthly-modern.png" /></span>');
|
1270 |
+
jQuery('#mec_monthly_view_skin_options_container .mec-form-row .nice-select .list li[data-value="novel"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/monthly/monthly-novel.png" /></span>');
|
1271 |
+
jQuery('#mec_monthly_view_skin_options_container .mec-form-row .nice-select .list li[data-value="simple"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/monthly/monthly-simple.png" /></span>');
|
1272 |
+
|
1273 |
+
/** Time Table View Skins */
|
1274 |
+
jQuery('#mec_timetable_skin_options_container .mec-form-row .nice-select .list li[data-value="modern"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/time-table/time-table-modern.png" /></span>');
|
1275 |
+
jQuery('#mec_timetable_skin_options_container .mec-form-row .nice-select .list li[data-value="clean"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/time-table/time-table-clean.png" /></span>');
|
1276 |
+
|
1277 |
+
/** Cover View Skins */
|
1278 |
+
jQuery('#mec_cover_skin_options_container .mec-form-row .nice-select .list li[data-value="classic"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/cover/cover-classic.png" /></span>');
|
1279 |
+
jQuery('#mec_cover_skin_options_container .mec-form-row .nice-select .list li[data-value="clean"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/cover/cover-clean.png" /></span>');
|
1280 |
+
jQuery('#mec_cover_skin_options_container .mec-form-row .nice-select .list li[data-value="modern"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/cover/cover-modern.png" /></span>');
|
1281 |
+
|
1282 |
+
/** Countdown View Skins */
|
1283 |
+
jQuery('#mec_countdown_skin_options_container .mec-form-row .nice-select .list li[data-value="style1"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/countdown/countdown-type-1.png" /></span>');
|
1284 |
+
jQuery('#mec_countdown_skin_options_container .mec-form-row .nice-select .list li[data-value="style2"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/countdown/countdown-type-2.png" /></span>');
|
1285 |
+
jQuery('#mec_countdown_skin_options_container .mec-form-row .nice-select .list li[data-value="style3"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/countdown/countdown-type-3.png" /></span>');
|
1286 |
+
|
1287 |
+
/** Carousel View Skins */
|
1288 |
+
jQuery('#mec_carousel_skin_options_container .mec-form-row .nice-select .list li[data-value="type1"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/carousel/carousel-type-1.png" /></span>');
|
1289 |
+
jQuery('#mec_carousel_skin_options_container .mec-form-row .nice-select .list li[data-value="type2"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/carousel/carousel-type-2.png" /></span>');
|
1290 |
+
jQuery('#mec_carousel_skin_options_container .mec-form-row .nice-select .list li[data-value="type3"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/carousel/carousel-type-3.png" /></span>');
|
1291 |
+
jQuery('#mec_carousel_skin_options_container .mec-form-row .nice-select .list li[data-value="type4"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/carousel/carousel-type-4.png" /></span>');
|
1292 |
+
|
1293 |
+
/** slider View Skins */
|
1294 |
+
jQuery('#mec_slider_skin_options_container .mec-form-row .nice-select .list li[data-value="t1"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/slider/slider-type-1.png" /></span>');
|
1295 |
+
jQuery('#mec_slider_skin_options_container .mec-form-row .nice-select .list li[data-value="t2"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/slider/slider-type-2.png" /></span>');
|
1296 |
+
jQuery('#mec_slider_skin_options_container .mec-form-row .nice-select .list li[data-value="t3"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/slider/slider-type-3.png" /></span>');
|
1297 |
+
jQuery('#mec_slider_skin_options_container .mec-form-row .nice-select .list li[data-value="t4"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/slider/slider-type-4.png" /></span>');
|
1298 |
+
jQuery('#mec_slider_skin_options_container .mec-form-row .nice-select .list li[data-value="t5"]').append('<span class="wn-hover-img-sh"><img src="https://webnus.net/modern-events-calendar/wp-content/skins/slider/slider-type-5.png" /></span>');
|
1299 |
+
|
1300 |
+
});
|
1301 |
+
</script>
|
app/features/mec/notifications.php
CHANGED
@@ -11,203 +11,7 @@ $notifications = $this->main->get_notifications();
|
|
11 |
Â
</div>
|
12 |
Â
|
13 |
Â
<div class="wns-be-sidebar">
|
14 |
-
|
15 |
-
<ul class="wns-be-group-menu">
|
16 |
-
|
17 |
-
<li class="wns-be-group-menu-li has-sub">
|
18 |
-
<a href="<?php echo $this->main->remove_qs_var('tab'); ?>" id="" class="wns-be-group-tab-link-a">
|
19 |
-
<span class="extra-icon">
|
20 |
-
<i class="sl-arrow-down"></i>
|
21 |
-
</span>
|
22 |
-
<i class="mec-sl-settings"></i>
|
23 |
-
<span class="wns-be-group-menu-title"><?php _e('Settings', 'modern-events-calendar-lite'); ?></span>
|
24 |
-
</a>
|
25 |
-
<ul id="" class="submneu-hover">
|
26 |
-
<li class="submenu-item">
|
27 |
-
<a href="<?php echo $this->main->remove_qs_var('tab'); ?>#general_option"><?php _e('General Options', 'modern-events-calendar-lite'); ?></a>
|
28 |
-
<a href="<?php echo $this->main->remove_qs_var('tab'); ?>#archive_options"><?php _e('Archive Pages', 'modern-events-calendar-lite'); ?></a>
|
29 |
-
<a href="<?php echo $this->main->remove_qs_var('tab'); ?>#slug_option"><?php _e('Slugs/Permalinks', 'modern-events-calendar-lite'); ?></a>
|
30 |
-
<a href="<?php echo $this->main->remove_qs_var('tab'); ?>#currency_option"><?php _e('Currency Options', 'modern-events-calendar-lite'); ?></a>
|
31 |
-
<a href="<?php echo $this->main->remove_qs_var('tab'); ?>#recaptcha_option"><?php _e('Google Recaptcha Options', 'modern-events-calendar-lite'); ?></a>
|
32 |
-
<a href="<?php echo $this->main->remove_qs_var('tab'); ?>#fes_option"><?php _e('Frontend Event Submission', 'modern-events-calendar-lite'); ?></a>
|
33 |
-
<a href="<?php echo $this->main->remove_qs_var('tab'); ?>#user_profile_options"><?php _e('User Profile', 'modern-events-calendar-lite'); ?></a>
|
34 |
-
<a href="<?php echo $this->main->remove_qs_var('tab'); ?>#search_bar_options"><?php _e('Search Bar', 'modern-events-calendar-lite'); ?></a>
|
35 |
-
<?php if($this->main->getPRO()): ?>
|
36 |
-
<a href="<?php echo $this->main->remove_qs_var('tab'); ?>#mailchimp_option"><?php _e('Mailchimp Integration', 'modern-events-calendar-lite'); ?></a>
|
37 |
-
<?php endif; ?>
|
38 |
-
<a href="<?php echo $this->main->remove_qs_var('tab'); ?>#uploadfield_option"><?php _e('Upload Field', 'modern-events-calendar-lite'); ?></a>
|
39 |
-
</li>
|
40 |
-
</ul>
|
41 |
-
</li>
|
42 |
-
|
43 |
-
<li class="wns-be-group-menu-li">
|
44 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-single'); ?>" id="" class="wns-be-group-tab-link-a">
|
45 |
-
<i class="mec-sl-note"></i>
|
46 |
-
<span class="wns-be-group-menu-title"><?php echo __('Single Event', 'modern-events-calendar-lite'); ?></span>
|
47 |
-
</a>
|
48 |
-
<ul id="" class="submneu-hover">
|
49 |
-
<li class="submenu-item">
|
50 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-single'); ?>#event_options"><?php _e('Single Event Page', 'modern-events-calendar-lite'); ?></a>
|
51 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-single'); ?>#countdown_option"><?php _e('Countdown Options', 'modern-events-calendar-lite'); ?></a>
|
52 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-single'); ?>#exceptional_option"><?php _e('Exceptional Days', 'modern-events-calendar-lite'); ?></a>
|
53 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-single'); ?>#additional_organizers"><?php _e('Additional Organizers', 'modern-events-calendar-lite'); ?></a>
|
54 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-single'); ?>#additional_locations"><?php _e('Additional Locations', 'modern-events-calendar-lite'); ?></a>
|
55 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-single'); ?>#related_events"><?php _e('Related Events', 'modern-events-calendar-lite'); ?></a>
|
56 |
-
</li>
|
57 |
-
</ul>
|
58 |
-
</li>
|
59 |
-
|
60 |
-
<?php if($this->main->getPRO()): ?>
|
61 |
-
|
62 |
-
<li class="wns-be-group-menu-li">
|
63 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-booking'); ?>" id="" class="wns-be-group-tab-link-a">
|
64 |
-
<i class="mec-sl-credit-card"></i>
|
65 |
-
<span class="wns-be-group-menu-title"><?php echo __('Booking', 'modern-events-calendar-lite'); ?></span>
|
66 |
-
</a>
|
67 |
-
<ul id="" class="submneu-hover">
|
68 |
-
<li class="submenu-item">
|
69 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-booking'); ?>#booking_option"><?php _e('Booking', 'modern-events-calendar-lite'); ?></a>
|
70 |
-
<?php if(isset($this->settings['booking_status']) and $this->settings['booking_status']): ?>
|
71 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-booking'); ?>#coupon_option"><?php _e('Coupons', 'modern-events-calendar-lite'); ?></a>
|
72 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-booking'); ?>#taxes_option"><?php _e('Taxes / Fees', 'modern-events-calendar-lite'); ?></a>
|
73 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-booking'); ?>#ticket_variations_option"><?php _e('Ticket Variations & Options', 'modern-events-calendar-lite'); ?></a>
|
74 |
-
<?php endif; ?>
|
75 |
-
</li>
|
76 |
-
</ul>
|
77 |
-
</li>
|
78 |
-
|
79 |
-
<?php endif; ?>
|
80 |
-
|
81 |
-
<li class="wns-be-group-menu-li">
|
82 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-modules'); ?>" id="" class="wns-be-group-tab-link-a">
|
83 |
-
<i class="mec-sl-grid"></i>
|
84 |
-
<span class="wns-be-group-menu-title"><?php echo __('Modules', 'modern-events-calendar-lite'); ?></span>
|
85 |
-
</a>
|
86 |
-
<ul id="" class="submneu-hover">
|
87 |
-
<li class="submenu-item">
|
88 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-modules'); ?>#speakers_option"><?php _e('Speakers', 'modern-events-calendar-lite'); ?></a>
|
89 |
-
<?php if($this->main->getPRO()): ?>
|
90 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-modules'); ?>#googlemap_option"><?php _e('Google Maps Options', 'modern-events-calendar-lite'); ?></a>
|
91 |
-
<?php endif; ?>
|
92 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-modules'); ?>#export_module_option"><?php _e('Export Options', 'modern-events-calendar-lite'); ?></a>
|
93 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-modules'); ?>#time_module_option"><?php _e('Local Time', 'modern-events-calendar-lite'); ?></a>
|
94 |
-
<?php if($this->main->getPRO()): ?>
|
95 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-modules'); ?>#qrcode_module_option"><?php _e('QR Code', 'modern-events-calendar-lite'); ?></a>
|
96 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-modules'); ?>#weather_module_option"><?php _e('Weather', 'modern-events-calendar-lite'); ?></a>
|
97 |
-
<?php endif; ?>
|
98 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-modules'); ?>#social_options"><?php _e('Social Networks', 'modern-events-calendar-lite'); ?></a>
|
99 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-modules'); ?>#next_event_option"><?php _e('Next Event', 'modern-events-calendar-lite'); ?></a>
|
100 |
-
<?php if($this->main->getPRO()): ?>
|
101 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-modules'); ?>#buddy_option"><?php _e('BuddyPress Integration', 'modern-events-calendar-lite'); ?></a>
|
102 |
-
<?php endif; ?>
|
103 |
-
</li>
|
104 |
-
</ul>
|
105 |
-
</li>
|
106 |
-
|
107 |
-
<?php if($this->main->getPRO() and isset($this->settings['booking_status']) and $this->settings['booking_status']): ?>
|
108 |
-
|
109 |
-
<li class="wns-be-group-menu-li">
|
110 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-reg-form'); ?>" id="" class="wns-be-group-tab-link-a">
|
111 |
-
<i class="mec-sl-layers"></i>
|
112 |
-
<span class="wns-be-group-menu-title"><?php _e('Booking Form', 'modern-events-calendar-lite'); ?></span>
|
113 |
-
</a>
|
114 |
-
</li>
|
115 |
-
|
116 |
-
<li class="wns-be-group-menu-li">
|
117 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-gateways'); ?>" id="" class="wns-be-group-tab-link-a">
|
118 |
-
<i class="mec-sl-wallet"></i>
|
119 |
-
<span class="wns-be-group-menu-title"><?php _e('Payment Gateways', 'modern-events-calendar-lite'); ?></span>
|
120 |
-
</a>
|
121 |
-
</li>
|
122 |
-
|
123 |
-
<?php endif;?>
|
124 |
-
|
125 |
-
<li class="wns-be-group-menu-li active">
|
126 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-notifications'); ?>" id="" class="wns-be-group-tab-link-a">
|
127 |
-
<span class="extra-icon">
|
128 |
-
<i class="mec-sl-arrow-down"></i>
|
129 |
-
</span>
|
130 |
-
<i class="mec-sl-envelope"></i>
|
131 |
-
<span class="wns-be-group-menu-title"><?php _e('Notifications', 'modern-events-calendar-lite'); ?></span>
|
132 |
-
</a>
|
133 |
-
|
134 |
-
<ul id="" class="subsection" style="display: block;">
|
135 |
-
<?php if($this->main->getPRO() and isset($this->settings['booking_status']) and $this->settings['booking_status']): ?>
|
136 |
-
<li id="" class="pr-be-group-menu-li active">
|
137 |
-
<a data-id="booking_notification" class="wns-be-group-tab-link-a WnTabLinks">
|
138 |
-
<span class="pr-be-group-menu-title"><?php _e('Booking', 'modern-events-calendar-lite'); ?></span>
|
139 |
-
</a>
|
140 |
-
</li>
|
141 |
-
|
142 |
-
<li id="" class="pr-be-group-menu-li">
|
143 |
-
<a data-id="booking_verification" class="wns-be-group-tab-link-a WnTabLinks">
|
144 |
-
<span class="pr-be-group-menu-title"><?php _e('Booking Verification', 'modern-events-calendar-lite'); ?></span>
|
145 |
-
</a>
|
146 |
-
</li>
|
147 |
-
|
148 |
-
<li id="" class="pr-be-group-menu-li">
|
149 |
-
<a data-id="booking_confirmation" class="wns-be-group-tab-link-a WnTabLinks">
|
150 |
-
<span class="pr-be-group-menu-title"><?php _e('Booking Confirmation', 'modern-events-calendar-lite'); ?></span>
|
151 |
-
</a>
|
152 |
-
</li>
|
153 |
-
|
154 |
-
<li id="" class="pr-be-group-menu-li">
|
155 |
-
<a data-id="cancellation_notification" class="wns-be-group-tab-link-a WnTabLinks">
|
156 |
-
<span class="pr-be-group-menu-title"><?php _e('Booking Cancellation', 'modern-events-calendar-lite'); ?></span>
|
157 |
-
</a>
|
158 |
-
</li>
|
159 |
-
|
160 |
-
<li id="" class="pr-be-group-menu-li">
|
161 |
-
<a data-id="admin_notification" class="wns-be-group-tab-link-a WnTabLinks">
|
162 |
-
<span class="pr-be-group-menu-title"><?php _e('Admin', 'modern-events-calendar-lite'); ?></span>
|
163 |
-
</a>
|
164 |
-
</li>
|
165 |
-
|
166 |
-
<li id="" class="pr-be-group-menu-li">
|
167 |
-
<a data-id="booking_reminder" class="wns-be-group-tab-link-a WnTabLinks">
|
168 |
-
<span class="pr-be-group-menu-title"><?php _e('Booking Reminder', 'modern-events-calendar-lite'); ?></span>
|
169 |
-
</a>
|
170 |
-
</li>
|
171 |
-
<?php endif;?>
|
172 |
-
<li id="" class="pr-be-group-menu-li <?php if($this->settings['booking_status'] == 0) echo 'active'; ?>">
|
173 |
-
<a data-id="new_event" class="wns-be-group-tab-link-a WnTabLinks">
|
174 |
-
<span class="pr-be-group-menu-title"><?php _e('New Event', 'modern-events-calendar-lite'); ?></span>
|
175 |
-
</a>
|
176 |
-
</li>
|
177 |
-
|
178 |
-
</ul>
|
179 |
-
|
180 |
-
</li>
|
181 |
-
|
182 |
-
<li class="wns-be-group-menu-li">
|
183 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-styling'); ?>" id="" class="wns-be-group-tab-link-a">
|
184 |
-
<i class="mec-sl-equalizer"></i>
|
185 |
-
<span class="wns-be-group-menu-title"><?php _e('Styling Options', 'modern-events-calendar-lite'); ?></span>
|
186 |
-
</a>
|
187 |
-
</li>
|
188 |
-
|
189 |
-
<li class="wns-be-group-menu-li">
|
190 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-customcss'); ?>" id="" class="wns-be-group-tab-link-a">
|
191 |
-
<i class="mec-sl-wrench"></i>
|
192 |
-
<span class="wns-be-group-menu-title"><?php _e('Custom CSS', 'modern-events-calendar-lite'); ?></span>
|
193 |
-
</a>
|
194 |
-
</li>
|
195 |
-
|
196 |
-
<li class="wns-be-group-menu-li">
|
197 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-messages'); ?>" id="" class="wns-be-group-tab-link-a">
|
198 |
-
<i class="mec-sl-bubble"></i>
|
199 |
-
<span class="wns-be-group-menu-title"><?php _e('Messages', 'modern-events-calendar-lite'); ?></span>
|
200 |
-
</a>
|
201 |
-
</li>
|
202 |
-
|
203 |
-
<li class="wns-be-group-menu-li">
|
204 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-ie'); ?>" id="" class="wns-be-group-tab-link-a">
|
205 |
-
<i class="mec-sl-refresh"></i>
|
206 |
-
<span class="wns-be-group-menu-title"><?php _e('Import / Export', 'modern-events-calendar-lite'); ?></span>
|
207 |
-
</a>
|
208 |
-
</li>
|
209 |
-
|
210 |
-
</ul>
|
211 |
Â
</div>
|
212 |
Â
|
213 |
Â
|
11 |
Â
</div>
|
12 |
Â
|
13 |
Â
<div class="wns-be-sidebar">
|
14 |
+
<?php $this->main->get_sidebar_menu('notifications'); ?>
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
15 |
Â
</div>
|
16 |
Â
|
17 |
Â
|
app/features/mec/regform.php
CHANGED
@@ -1,236 +1,4 @@
|
|
1 |
Â
<?php
|
2 |
Â
/** no direct access **/
|
3 |
-
defined(
|
4 |
-
|
5 |
-
$mec_email = false;
|
6 |
-
$mec_name = false;
|
7 |
-
$reg_fields = $this->main->get_reg_fields();
|
8 |
-
if(!is_array($reg_fields)) $reg_fields = array();
|
9 |
-
|
10 |
-
foreach($reg_fields as $field)
|
11 |
-
{
|
12 |
-
if(isset($field['type']))
|
13 |
-
{
|
14 |
-
if($field['type'] == 'name') $mec_name = true;
|
15 |
-
if($field['type'] == 'mec_email') $mec_email = true;
|
16 |
-
}
|
17 |
-
else break;
|
18 |
-
}
|
19 |
-
|
20 |
-
if(!$mec_name)
|
21 |
-
{
|
22 |
-
array_unshift(
|
23 |
-
$reg_fields,
|
24 |
-
array(
|
25 |
-
'mandatory' => '0',
|
26 |
-
'type' => 'name',
|
27 |
-
'label' => esc_html__('Name', 'modern-events-calendar-lite'),
|
28 |
-
)
|
29 |
-
);
|
30 |
-
}
|
31 |
-
|
32 |
-
if(!$mec_email)
|
33 |
-
{
|
34 |
-
array_unshift(
|
35 |
-
$reg_fields,
|
36 |
-
array(
|
37 |
-
'mandatory' => '0',
|
38 |
-
'type' => 'mec_email',
|
39 |
-
'label' => esc_html__('Email', 'modern-events-calendar-lite'),
|
40 |
-
)
|
41 |
-
);
|
42 |
-
}
|
43 |
-
?>
|
44 |
-
<?php do_action( 'mec_reg_form_start' ); ?>
|
45 |
-
<div class="wns-be-container wns-be-container-sticky">
|
46 |
-
|
47 |
-
<div id="wns-be-infobar">
|
48 |
-
<a href="" id="" class="dpr-btn dpr-save-btn"><?php _e( 'Save Changes', 'modern-events-calendar-lite' ); ?></a>
|
49 |
-
</div>
|
50 |
-
|
51 |
-
<div class="wns-be-sidebar">
|
52 |
-
<?php $this->main->get_sidebar_menu('reg_form'); ?>
|
53 |
-
</div>
|
54 |
-
|
55 |
-
<div class="wns-be-main">
|
56 |
-
|
57 |
-
<div id="wns-be-notification"></div>
|
58 |
-
|
59 |
-
<div id="wns-be-content">
|
60 |
-
<div class="wns-be-group-tab">
|
61 |
-
<h2><?php _e( 'Booking Form', 'modern-events-calendar-lite' ); ?></h2>
|
62 |
-
<div class="mec-container">
|
63 |
-
<?php do_action( 'before_mec_reg_fields_form' ); ?>
|
64 |
-
<form id="mec_reg_fields_form">
|
65 |
-
<?php do_action( 'mec_reg_fields_form_start' ); ?>
|
66 |
-
<div class="mec-form-row" id="mec_reg_form_container">
|
67 |
-
<?php /** Don't remove this hidden field **/ ?>
|
68 |
-
<input type="hidden" name="mec[reg_fields]" value="" />
|
69 |
-
|
70 |
-
<ul id="mec_reg_form_fields">
|
71 |
-
<?php
|
72 |
-
$i = 0;
|
73 |
-
foreach ( $reg_fields as $key => $reg_field ) {
|
74 |
-
if ( ! is_numeric( $key ) ) {
|
75 |
-
continue;
|
76 |
-
}
|
77 |
-
$i = max( $i, $key );
|
78 |
-
|
79 |
-
if ( $reg_field['type'] == 'text' ) {
|
80 |
-
echo $this->main->field_text( $key, $reg_field );
|
81 |
-
} elseif ( $reg_field['type'] == 'name' ) {
|
82 |
-
echo $this->main->field_name( $key, $reg_field );
|
83 |
-
} elseif ( $reg_field['type'] == 'mec_email' ) {
|
84 |
-
echo $this->main->field_mec_email( $key, $reg_field );
|
85 |
-
} elseif ( $reg_field['type'] == 'email' ) {
|
86 |
-
echo $this->main->field_email( $key, $reg_field );
|
87 |
-
} elseif ( $reg_field['type'] == 'date' ) {
|
88 |
-
echo $this->main->field_date( $key, $reg_field );
|
89 |
-
} elseif ( $reg_field['type'] == 'file' ) {
|
90 |
-
echo $this->main->field_file( $key, $reg_field );
|
91 |
-
} elseif ( $reg_field['type'] == 'tel' ) {
|
92 |
-
echo $this->main->field_tel( $key, $reg_field );
|
93 |
-
} elseif ( $reg_field['type'] == 'textarea' ) {
|
94 |
-
echo $this->main->field_textarea( $key, $reg_field );
|
95 |
-
} elseif ( $reg_field['type'] == 'p' ) {
|
96 |
-
echo $this->main->field_p( $key, $reg_field );
|
97 |
-
} elseif ( $reg_field['type'] == 'checkbox' ) {
|
98 |
-
echo $this->main->field_checkbox( $key, $reg_field );
|
99 |
-
} elseif ( $reg_field['type'] == 'radio' ) {
|
100 |
-
echo $this->main->field_radio( $key, $reg_field );
|
101 |
-
} elseif ( $reg_field['type'] == 'select' ) {
|
102 |
-
echo $this->main->field_select( $key, $reg_field );
|
103 |
-
} elseif ( $reg_field['type'] == 'agreement' ) {
|
104 |
-
echo $this->main->field_agreement( $key, $reg_field );
|
105 |
-
}
|
106 |
-
}
|
107 |
-
?>
|
108 |
-
</ul>
|
109 |
-
<div id="mec_reg_form_field_types">
|
110 |
-
<button type="button" class="button red" data-type="name"><?php _e( 'MEC Name', 'modern-events-calendar-lite' ); ?></button>
|
111 |
-
<button type="button" class="button red" data-type="mec_email"><?php _e( 'MEC Email', 'modern-events-calendar-lite' ); ?></button>
|
112 |
-
<button type="button" class="button" data-type="text"><?php _e( 'Text', 'modern-events-calendar-lite' ); ?></button>
|
113 |
-
<button type="button" class="button" data-type="email"><?php _e( 'Email', 'modern-events-calendar-lite' ); ?></button>
|
114 |
-
<button type="button" class="button" data-type="date"><?php _e( 'Date', 'modern-events-calendar-lite' ); ?></button>
|
115 |
-
<button type="button" class="button" data-type="tel"><?php _e( 'Tel', 'modern-events-calendar-lite' ); ?></button>
|
116 |
-
<button type="button" class="button" data-type="file"><?php _e( 'File', 'modern-events-calendar-lite' ); ?></button>
|
117 |
-
<button type="button" class="button" data-type="textarea"><?php _e( 'Textarea', 'modern-events-calendar-lite' ); ?></button>
|
118 |
-
<button type="button" class="button" data-type="checkbox"><?php _e( 'Checkboxes', 'modern-events-calendar-lite' ); ?></button>
|
119 |
-
<button type="button" class="button" data-type="radio"><?php _e( 'Radio Buttons', 'modern-events-calendar-lite' ); ?></button>
|
120 |
-
<button type="button" class="button" data-type="select"><?php _e( 'Dropdown', 'modern-events-calendar-lite' ); ?></button>
|
121 |
-
<button type="button" class="button" data-type="agreement"><?php _e( 'Agreement', 'modern-events-calendar-lite' ); ?></button>
|
122 |
-
<button type="button" class="button" data-type="p"><?php _e( 'Paragraph', 'modern-events-calendar-lite' ); ?></button>
|
123 |
-
</div>
|
124 |
-
<?php do_action( 'mec_reg_fields_form_end' ); ?>
|
125 |
-
</div>
|
126 |
-
<div class="mec-form-row">
|
127 |
-
<?php wp_nonce_field( 'mec_options_form' ); ?>
|
128 |
-
<button style="display: none;" id="mec_reg_fields_form_button" class="button button-primary mec-button-primary" type="submit"><?php _e( 'Save Changes', 'modern-events-calendar-lite' ); ?></button>
|
129 |
-
</div>
|
130 |
-
</form>
|
131 |
-
<?php do_action( 'after_mec_reg_fields_form' ); ?>
|
132 |
-
</div>
|
133 |
-
<input type="hidden" id="mec_new_reg_field_key" value="<?php echo $i + 1; ?>" />
|
134 |
-
<div class="mec-util-hidden">
|
135 |
-
<div id="mec_reg_field_text">
|
136 |
-
<?php echo $this->main->field_text( ':i:' ); ?>
|
137 |
-
</div>
|
138 |
-
<div id="mec_reg_field_email">
|
139 |
-
<?php echo $this->main->field_email( ':i:' ); ?>
|
140 |
-
</div>
|
141 |
-
<div id="mec_reg_field_mec_email">
|
142 |
-
<?php echo $this->main->field_mec_email( ':i:' ); ?>
|
143 |
-
</div>
|
144 |
-
<div id="mec_reg_field_name">
|
145 |
-
<?php echo $this->main->field_name( ':i:' ); ?>
|
146 |
-
</div>
|
147 |
-
<div id="mec_reg_field_tel">
|
148 |
-
<?php echo $this->main->field_tel( ':i:' ); ?>
|
149 |
-
</div>
|
150 |
-
<div id="mec_reg_field_date">
|
151 |
-
<?php echo $this->main->field_date( ':i:' ); ?>
|
152 |
-
</div>
|
153 |
-
<div id="mec_reg_field_file">
|
154 |
-
<?php echo $this->main->field_file( ':i:' ); ?>
|
155 |
-
</div>
|
156 |
-
<div id="mec_reg_field_textarea">
|
157 |
-
<?php echo $this->main->field_textarea( ':i:' ); ?>
|
158 |
-
</div>
|
159 |
-
<div id="mec_reg_field_checkbox">
|
160 |
-
<?php echo $this->main->field_checkbox( ':i:' ); ?>
|
161 |
-
</div>
|
162 |
-
<div id="mec_reg_field_radio">
|
163 |
-
<?php echo $this->main->field_radio( ':i:' ); ?>
|
164 |
-
</div>
|
165 |
-
<div id="mec_reg_field_select">
|
166 |
-
<?php echo $this->main->field_select( ':i:' ); ?>
|
167 |
-
</div>
|
168 |
-
<div id="mec_reg_field_agreement">
|
169 |
-
<?php echo $this->main->field_agreement( ':i:' ); ?>
|
170 |
-
</div>
|
171 |
-
<div id="mec_reg_field_p">
|
172 |
-
<?php echo $this->main->field_p( ':i:' ); ?>
|
173 |
-
</div>
|
174 |
-
<div id="mec_reg_field_option">
|
175 |
-
<?php echo $this->main->field_option( ':fi:', ':i:' ); ?>
|
176 |
-
</div>
|
177 |
-
</div>
|
178 |
-
</div>
|
179 |
-
</div>
|
180 |
-
</div>
|
181 |
-
|
182 |
-
<div id="wns-be-footer">
|
183 |
-
<a href="" id="" class="dpr-btn dpr-save-btn"><?php _e( 'Save Changes', 'modern-events-calendar-lite' ); ?></a>
|
184 |
-
</div>
|
185 |
-
|
186 |
-
</div>
|
187 |
-
|
188 |
-
<script type="text/javascript">
|
189 |
-
jQuery(document).ready(function()
|
190 |
-
{
|
191 |
-
jQuery(".dpr-save-btn").on('click', function(event)
|
192 |
-
{
|
193 |
-
event.preventDefault();
|
194 |
-
jQuery("#mec_reg_fields_form_button").trigger('click');
|
195 |
-
});
|
196 |
-
});
|
197 |
-
|
198 |
-
jQuery("#mec_reg_fields_form").on('submit', function(event)
|
199 |
-
{
|
200 |
-
event.preventDefault();
|
201 |
-
|
202 |
-
// Add loading Class to the button
|
203 |
-
jQuery(".dpr-save-btn").addClass('loading').text("<?php echo esc_js( esc_attr__( 'Saved', 'modern-events-calendar-lite' ) ); ?>");
|
204 |
-
jQuery('<div class="wns-saved-settings"><?php echo esc_js( esc_attr__( 'Settings Saved!', 'modern-events-calendar-lite' ) ); ?></div>').insertBefore('#wns-be-content');
|
205 |
-
|
206 |
-
var fields = jQuery("#mec_reg_fields_form").serialize();
|
207 |
-
jQuery.ajax(
|
208 |
-
{
|
209 |
-
type: "POST",
|
210 |
-
url: ajaxurl,
|
211 |
-
data: "action=mec_save_reg_form&"+fields,
|
212 |
-
beforeSend: function () {
|
213 |
-
jQuery('.wns-be-main').append('<div class="mec-loarder-wrap mec-settings-loader"><div class="mec-loarder"><div></div><div></div><div></div></div></div>');
|
214 |
-
},
|
215 |
-
success: function(data)
|
216 |
-
{
|
217 |
-
// Remove the loading Class to the button
|
218 |
-
setTimeout(function(){
|
219 |
-
jQuery(".dpr-save-btn").removeClass('loading').text("<?php echo esc_js( esc_attr__( 'Save Changes', 'modern-events-calendar-lite' ) ); ?>");
|
220 |
-
jQuery('.wns-saved-settings').remove();
|
221 |
-
jQuery('.mec-loarder-wrap').remove();
|
222 |
-
}, 1000);
|
223 |
-
},
|
224 |
-
error: function(jqXHR, textStatus, errorThrown)
|
225 |
-
{
|
226 |
-
// Remove the loading Class to the button
|
227 |
-
setTimeout(function(){
|
228 |
-
jQuery(".dpr-save-btn").removeClass('loading').text("<?php echo esc_js( esc_attr__( 'Save Changes', 'modern-events-calendar-lite' ) ); ?>");
|
229 |
-
jQuery('.wns-saved-settings').remove();
|
230 |
-
jQuery('.mec-loarder-wrap').remove();
|
231 |
-
}, 1000);
|
232 |
-
}
|
233 |
-
});
|
234 |
-
});
|
235 |
-
</script>
|
236 |
-
<?php do_action( 'mec_reg_form_end' ); ?>
|
1 |
Â
<?php
|
2 |
Â
/** no direct access **/
|
3 |
+
defined('MECEXEC') or die();
|
4 |
+
?>
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
app/features/mec/single.php
CHANGED
@@ -156,7 +156,7 @@ $pages = get_pages();
|
|
156 |
Â
<span class="mec-tooltip">
|
157 |
Â
<div class="box">
|
158 |
Â
<h5 class="title"><?php _e('Exceptional days', 'modern-events-calendar-lite'); ?></h5>
|
159 |
-
<div class="content"><p><?php esc_attr_e("Using this option you can
|
160 |
Â
</div>
|
161 |
Â
<i title="" class="dashicons-before dashicons-editor-help"></i>
|
162 |
Â
</span>
|
156 |
Â
<span class="mec-tooltip">
|
157 |
Â
<div class="box">
|
158 |
Â
<h5 class="title"><?php _e('Exceptional days', 'modern-events-calendar-lite'); ?></h5>
|
159 |
+
<div class="content"><p><?php esc_attr_e("Using this option you can exclude certain days from event occurrence dates.", 'modern-events-calendar-lite'); ?><a href="https://webnus.net/dox/modern-events-calendar/exceptional-days/" target="_blank"><?php _e('Read More', 'modern-events-calendar-lite'); ?></a></p></div>
|
160 |
Â
</div>
|
161 |
Â
<i title="" class="dashicons-before dashicons-editor-help"></i>
|
162 |
Â
</span>
|
app/features/mec/support-page.php
CHANGED
@@ -30,8 +30,8 @@ wp_enqueue_script('mec-lity-script', $this->main->asset('packages/lity/lity.min.
|
|
30 |
Â
<div class="w-box-content">
|
31 |
Â
<p><?php esc_html_e('Advice and answers from the Webnus Team'); ?></p>
|
32 |
Â
<div class="search-form">
|
33 |
-
<form action="https://
|
34 |
-
<input type="text" placeholder="<?php esc_html_e('Search...'); ?>" name="
|
35 |
Â
<button><i class="mec-sl-magnifier"></i></button>
|
36 |
Â
</form>
|
37 |
Â
</div>
|
30 |
Â
<div class="w-box-content">
|
31 |
Â
<p><?php esc_html_e('Advice and answers from the Webnus Team'); ?></p>
|
32 |
Â
<div class="search-form">
|
33 |
+
<form action="https://webnus.crisp.help/en/" method="">
|
34 |
+
<input type="text" placeholder="<?php esc_html_e('Search...'); ?>" name="search_query">
|
35 |
Â
<button><i class="mec-sl-magnifier"></i></button>
|
36 |
Â
</form>
|
37 |
Â
</div>
|
app/features/mec/support.php
CHANGED
@@ -123,7 +123,7 @@ defined('MECEXEC') or die();
|
|
123 |
Â
<?php endif; ?>
|
124 |
Â
<div class="w-button">
|
125 |
Â
<?php if(!$this->getPRO()): ?>
|
126 |
-
<a href="https://webnus.net/
|
127 |
Â
<?php else: ?>
|
128 |
Â
<a href="https://webnus.ticksy.com/" target="_blank"><?php echo esc_html__('OPEN A TICKET', 'modern-events-calendar-lite'); ?></a>
|
129 |
Â
<?php endif; ?>
|
123 |
Â
<?php endif; ?>
|
124 |
Â
<div class="w-button">
|
125 |
Â
<?php if(!$this->getPRO()): ?>
|
126 |
+
<a href="https://webnus.net/mec-purchase/" target="_blank"><?php echo esc_html__('GO PREMIUM', 'modern-events-calendar-lite'); ?></a>
|
127 |
Â
<?php else: ?>
|
128 |
Â
<a href="https://webnus.ticksy.com/" target="_blank"><?php echo esc_html__('OPEN A TICKET', 'modern-events-calendar-lite'); ?></a>
|
129 |
Â
<?php endif; ?>
|
app/features/search.php
CHANGED
@@ -251,8 +251,13 @@ class MEC_feature_search extends MEC_base
|
|
251 |
Â
);
|
252 |
Â
}
|
253 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
254 |
Â
$query->set('tax_query', $mec_quesries);
|
255 |
-
$query->set('post_type',
|
256 |
Â
|
257 |
Â
return $query;
|
258 |
Â
}
|
251 |
Â
);
|
252 |
Â
}
|
253 |
Â
|
254 |
+
// wordpress event list search
|
255 |
+
$post_types = array('post', 'mec-events');
|
256 |
+
$current_screen = isset(get_current_screen()->id) ? get_current_screen()->id : false;
|
257 |
+
if($current_screen and trim($current_screen) == 'edit-mec-events') $post_types = 'mec-events';
|
258 |
+
|
259 |
Â
$query->set('tax_query', $mec_quesries);
|
260 |
+
$query->set('post_type', $post_types);
|
261 |
Â
|
262 |
Â
return $query;
|
263 |
Â
}
|
app/libraries/factory.php
CHANGED
@@ -236,6 +236,9 @@ class MEC_factory extends MEC_base
|
|
236 |
Â
|
237 |
Â
// Include MEC typekit script file
|
238 |
Â
wp_enqueue_script('mec-typekit-script', $this->main->asset('js/jquery.typewatch.js'));
|
Â
|
|
Â
|
|
Â
|
|
239 |
Â
|
240 |
Â
// Backend Dependencies
|
241 |
Â
$dependencies = array('wp-color-picker', 'jquery-ui-datepicker');
|
@@ -327,6 +330,10 @@ class MEC_factory extends MEC_base
|
|
327 |
Â
$elementor_edit_mode = 'no';
|
328 |
Â
}
|
329 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
330 |
Â
// Localize Some Strings
|
331 |
Â
wp_localize_script('mec-frontend-script', 'mecdata', array
|
332 |
Â
(
|
@@ -339,6 +346,7 @@ class MEC_factory extends MEC_base
|
|
339 |
Â
'second'=>__('second', 'modern-events-calendar-lite'),
|
340 |
Â
'seconds'=>__('seconds', 'modern-events-calendar-lite'),
|
341 |
Â
'elementor_edit_mode'=>$elementor_edit_mode,
|
Â
|
|
342 |
Â
));
|
343 |
Â
|
344 |
Â
// Include Google Recaptcha Javascript API
|
236 |
Â
|
237 |
Â
// Include MEC typekit script file
|
238 |
Â
wp_enqueue_script('mec-typekit-script', $this->main->asset('js/jquery.typewatch.js'));
|
239 |
+
|
240 |
+
//Include the nice-select
|
241 |
+
wp_enqueue_script('mec-niceselect-script', $this->main->asset('js/jquery.nice-select.min.js'));
|
242 |
Â
|
243 |
Â
// Backend Dependencies
|
244 |
Â
$dependencies = array('wp-color-picker', 'jquery-ui-datepicker');
|
330 |
Â
$elementor_edit_mode = 'no';
|
331 |
Â
}
|
332 |
Â
|
333 |
+
// Settings
|
334 |
+
$settings = $this->main->get_settings();
|
335 |
+
$grecaptcha_key = isset($settings['google_recaptcha_sitekey']) ? trim($settings['google_recaptcha_sitekey']) : '';
|
336 |
+
|
337 |
Â
// Localize Some Strings
|
338 |
Â
wp_localize_script('mec-frontend-script', 'mecdata', array
|
339 |
Â
(
|
346 |
Â
'second'=>__('second', 'modern-events-calendar-lite'),
|
347 |
Â
'seconds'=>__('seconds', 'modern-events-calendar-lite'),
|
348 |
Â
'elementor_edit_mode'=>$elementor_edit_mode,
|
349 |
+
'recapcha_key'=>$grecaptcha_key
|
350 |
Â
));
|
351 |
Â
|
352 |
Â
// Include Google Recaptcha Javascript API
|
app/libraries/main.php
CHANGED
@@ -551,6 +551,8 @@ class MEC_main extends MEC_base
|
|
551 |
Â
__('Coupons', 'modern-events-calendar-lite') => 'coupon_option',
|
552 |
Â
__('Taxes / Fees', 'modern-events-calendar-lite') => 'taxes_option',
|
553 |
Â
__('Ticket Variations & Options', 'modern-events-calendar-lite') => 'ticket_variations_option',
|
Â
|
|
Â
|
|
554 |
Â
);
|
555 |
Â
|
556 |
Â
$modules = array(
|
@@ -652,7 +654,7 @@ class MEC_main extends MEC_base
|
|
652 |
Â
<ul class="<?php echo $active_menu == 'booking' ? 'subsection' : 'mec-settings-submenu'; ?>">
|
653 |
Â
|
654 |
Â
<?php foreach ($booking as $booking_name => $booking_link) : ?>
|
655 |
-
<?php if ( $booking_link == 'coupon_option' || $booking_link == 'taxes_option' || $booking_link == 'ticket_variations_option' ): ?>
|
656 |
Â
<?php if ( isset($options['booking_status']) and $options['booking_status'] ) : ?>
|
657 |
Â
<li>
|
658 |
Â
<a
|
@@ -725,25 +727,6 @@ class MEC_main extends MEC_base
|
|
725 |
Â
<?php endforeach; ?>
|
726 |
Â
</ul>
|
727 |
Â
</li>
|
728 |
-
|
729 |
-
|
730 |
-
<?php if($this->getPRO() and isset($options['booking_status']) and $options['booking_status']): ?>
|
731 |
-
<!-- Booking form -->
|
732 |
-
<li class="wns-be-group-menu-li mec-settings-menu <?php echo $active_menu == 'reg_form' ? 'active' : ''; ?>">
|
733 |
-
<a href="<?php echo $this->add_qs_var('tab', 'MEC-reg-form'); ?>" id="" class="wns-be-group-tab-link-a">
|
734 |
-
<i class="mec-sl-layers"></i>
|
735 |
-
<span class="wns-be-group-menu-title"><?php _e('Booking Form', 'modern-events-calendar-lite'); ?></span>
|
736 |
-
</a>
|
737 |
-
</li>
|
738 |
-
<!-- Payment Gateways -->
|
739 |
-
<li class="wns-be-group-menu-li mec-settings-menu <?php echo $active_menu == 'gateways' ? 'active' : ''; ?>">
|
740 |
-
<a href="<?php echo $this->add_qs_var('tab', 'MEC-gateways'); ?>" id="" class="wns-be-group-tab-link-a">
|
741 |
-
<i class="mec-sl-wallet"></i>
|
742 |
-
<span class="wns-be-group-menu-title"><?php _e('Payment Gateways', 'modern-events-calendar-lite'); ?></span>
|
743 |
-
</a>
|
744 |
-
</li>
|
745 |
-
<?php endif;?>
|
746 |
-
|
747 |
Â
|
748 |
Â
<!-- Notifications -->
|
749 |
Â
<li class="wns-be-group-menu-li mec-settings-menu <?php echo $active_menu == 'notifications' ? 'active' : ''; ?>">
|
@@ -5036,7 +5019,7 @@ class MEC_main extends MEC_base
|
|
5036 |
Â
|
5037 |
Â
public function get_pro_link()
|
5038 |
Â
{
|
5039 |
-
return 'https://webnus.net/
|
5040 |
Â
}
|
5041 |
Â
|
5042 |
Â
/**
|
551 |
Â
__('Coupons', 'modern-events-calendar-lite') => 'coupon_option',
|
552 |
Â
__('Taxes / Fees', 'modern-events-calendar-lite') => 'taxes_option',
|
553 |
Â
__('Ticket Variations & Options', 'modern-events-calendar-lite') => 'ticket_variations_option',
|
554 |
+
__('Booking Form', 'modern-events-calendar-lite') => 'booking_form_option',
|
555 |
+
__('Payment Gateways', 'modern-events-calendar-lite') => 'payment_gateways_option',
|
556 |
Â
);
|
557 |
Â
|
558 |
Â
$modules = array(
|
654 |
Â
<ul class="<?php echo $active_menu == 'booking' ? 'subsection' : 'mec-settings-submenu'; ?>">
|
655 |
Â
|
656 |
Â
<?php foreach ($booking as $booking_name => $booking_link) : ?>
|
657 |
+
<?php if ( $booking_link == 'coupon_option' || $booking_link == 'taxes_option' || $booking_link == 'ticket_variations_option' || $booking_link == 'booking_form_option' || $booking_link == 'payment_gateways_option' ): ?>
|
658 |
Â
<?php if ( isset($options['booking_status']) and $options['booking_status'] ) : ?>
|
659 |
Â
<li>
|
660 |
Â
<a
|
727 |
Â
<?php endforeach; ?>
|
728 |
Â
</ul>
|
729 |
Â
</li>
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
730 |
Â
|
731 |
Â
<!-- Notifications -->
|
732 |
Â
<li class="wns-be-group-menu-li mec-settings-menu <?php echo $active_menu == 'notifications' ? 'active' : ''; ?>">
|
5019 |
Â
|
5020 |
Â
public function get_pro_link()
|
5021 |
Â
{
|
5022 |
+
return 'https://webnus.net/mec-purchase/';
|
5023 |
Â
}
|
5024 |
Â
|
5025 |
Â
/**
|
app/libraries/render.php
CHANGED
@@ -245,7 +245,7 @@ class MEC_render extends MEC_base
|
|
245 |
Â
*/
|
246 |
Â
public function vdefault($atts = array())
|
247 |
Â
{
|
248 |
-
$monthly_skin = (isset($this->settings['monthly_view_archive_skin']) and trim($this->settings['monthly_view_archive_skin']) != '') ? $this->settings['monthly_view_archive_skin'] : '
|
249 |
Â
$list_skin = (isset($this->settings['list_archive_skin']) and trim($this->settings['list_archive_skin']) != '') ? $this->settings['list_archive_skin'] : 'standard';
|
250 |
Â
$grid_skin = (isset($this->settings['grid_archive_skin']) and trim($this->settings['grid_archive_skin']) != '') ? $this->settings['grid_archive_skin'] : 'classic';
|
251 |
Â
$timetable_skin = (isset($this->settings['timetable_archive_skin']) and trim($this->settings['timetable_archive_skin']) != '') ? $this->settings['timetable_archive_skin'] : 'modern';
|
245 |
Â
*/
|
246 |
Â
public function vdefault($atts = array())
|
247 |
Â
{
|
248 |
+
$monthly_skin = (isset($this->settings['monthly_view_archive_skin']) and trim($this->settings['monthly_view_archive_skin']) != '') ? $this->settings['monthly_view_archive_skin'] : 'clean';
|
249 |
Â
$list_skin = (isset($this->settings['list_archive_skin']) and trim($this->settings['list_archive_skin']) != '') ? $this->settings['list_archive_skin'] : 'standard';
|
250 |
Â
$grid_skin = (isset($this->settings['grid_archive_skin']) and trim($this->settings['grid_archive_skin']) != '') ? $this->settings['grid_archive_skin'] : 'classic';
|
251 |
Â
$timetable_skin = (isset($this->settings['timetable_archive_skin']) and trim($this->settings['timetable_archive_skin']) != '') ? $this->settings['timetable_archive_skin'] : 'modern';
|
app/libraries/skins.php
CHANGED
@@ -95,6 +95,7 @@ class MEC_skins extends MEC_base
|
|
95 |
Â
public $month_divider;
|
96 |
Â
public $toggle_month_divider;
|
97 |
Â
public $image_popup;
|
Â
|
|
98 |
Â
|
99 |
Â
/**
|
100 |
Â
* Constructor method
|
95 |
Â
public $month_divider;
|
96 |
Â
public $toggle_month_divider;
|
97 |
Â
public $image_popup;
|
98 |
+
public $map_on_top;
|
99 |
Â
|
100 |
Â
/**
|
101 |
Â
* Constructor method
|
app/modules/booking/steps/tickets.php
CHANGED
@@ -46,7 +46,7 @@ $date_format = (isset($settings['booking_date_format1']) and trim($settings['boo
|
|
46 |
Â
<?php endforeach; ?>
|
47 |
Â
</div>
|
48 |
Â
|
49 |
-
<?php if($this->get_recaptcha_status('booking')): ?><div class="mec-google-recaptcha"><div class="g-recaptcha" data-sitekey="<?php echo $settings['google_recaptcha_sitekey']; ?>"></div></div><?php endif; ?>
|
50 |
Â
<input type="hidden" name="action" value="mec_book_form" />
|
51 |
Â
<input type="hidden" name="event_id" value="<?php echo $event_id; ?>" />
|
52 |
Â
<input type="hidden" name="uniqueid" value="<?php echo $uniqueid; ?>" />
|
46 |
Â
<?php endforeach; ?>
|
47 |
Â
</div>
|
48 |
Â
|
49 |
+
<?php if($this->get_recaptcha_status('booking')): ?><div class="mec-google-recaptcha"><div id="g-recaptcha" class="g-recaptcha" data-sitekey="<?php echo $settings['google_recaptcha_sitekey']; ?>"></div></div><?php endif; ?>
|
50 |
Â
<input type="hidden" name="action" value="mec_book_form" />
|
51 |
Â
<input type="hidden" name="event_id" value="<?php echo $event_id; ?>" />
|
52 |
Â
<input type="hidden" name="uniqueid" value="<?php echo $uniqueid; ?>" />
|
app/skins/grid.php
CHANGED
@@ -121,6 +121,9 @@ class MEC_skin_grid extends MEC_skins
|
|
121 |
Â
|
122 |
Â
// The count in row
|
123 |
Â
$this->count = isset($this->skin_options['count']) ? $this->skin_options['count'] : '3';
|
Â
|
|
Â
|
|
Â
|
|
124 |
Â
|
125 |
Â
// Init MEC
|
126 |
Â
$this->args['mec-init'] = true;
|
121 |
Â
|
122 |
Â
// The count in row
|
123 |
Â
$this->count = isset($this->skin_options['count']) ? $this->skin_options['count'] : '3';
|
124 |
+
|
125 |
+
// Map on top
|
126 |
+
$this->map_on_top = isset($this->skin_options['map_on_top']) ? $this->skin_options['map_on_top'] : false;
|
127 |
Â
|
128 |
Â
// Init MEC
|
129 |
Â
$this->args['mec-init'] = true;
|
app/skins/grid/render.php
CHANGED
@@ -27,7 +27,7 @@ if($this->style == 'colorful')
|
|
27 |
Â
$rcount = 1 ;
|
28 |
Â
foreach($this->events as $date):
|
29 |
Â
foreach($date as $event):
|
30 |
-
|
31 |
Â
echo ($rcount == 1) ? '<div class="row">' : '';
|
32 |
Â
echo '<div class="col-md-'.$col.' col-sm-'.$col.'">';
|
33 |
Â
|
@@ -181,7 +181,7 @@ if($this->style == 'colorful')
|
|
181 |
Â
<?php endif; ?>
|
182 |
Â
<div class="mec-event-detail"><?php echo (isset($location['name']) ? $location['name'] : ''); ?></div>
|
183 |
Â
</div>
|
184 |
-
<div class="mec-event-image"
|
185 |
Â
<div class="mec-event-content">
|
186 |
Â
<?php do_action('display_mec_tai' , $event ); ?>
|
187 |
Â
<h4 class="mec-event-title"><a class="mec-color-hover" data-event-id="<?php echo $event->data->ID; ?>" href="<?php echo $this->main->get_event_date_permalink($event->data->permalink, $event->date['start']['date']); ?>"><?php echo $event->data->title; ?></a><?php echo $event_color; ?><?php do_action('mec_clean_custom_head' , $event ); ?></h4>
|
@@ -266,4 +266,36 @@ if($this->style == 'colorful')
|
|
266 |
Â
<?php endforeach; ?>
|
267 |
Â
<?php endforeach; ?>
|
268 |
Â
</div>
|
269 |
-
</div>
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
27 |
Â
$rcount = 1 ;
|
28 |
Â
foreach($this->events as $date):
|
29 |
Â
foreach($date as $event):
|
30 |
+
$map_events[] = $event;
|
31 |
Â
echo ($rcount == 1) ? '<div class="row">' : '';
|
32 |
Â
echo '<div class="col-md-'.$col.' col-sm-'.$col.'">';
|
33 |
Â
|
181 |
Â
<?php endif; ?>
|
182 |
Â
<div class="mec-event-detail"><?php echo (isset($location['name']) ? $location['name'] : ''); ?></div>
|
183 |
Â
</div>
|
184 |
+
<div class="mec-event-image"><?php do_action('display_mec_clean_image' , $event ); ?><a data-event-id="<?php echo $event->data->ID; ?>" href="<?php echo $this->main->get_event_date_permalink($event->data->permalink, $event->date['start']['date']); ?>"><?php echo $event->data->thumbnails['medium']; ?></a></div>
|
185 |
Â
<div class="mec-event-content">
|
186 |
Â
<?php do_action('display_mec_tai' , $event ); ?>
|
187 |
Â
<h4 class="mec-event-title"><a class="mec-color-hover" data-event-id="<?php echo $event->data->ID; ?>" href="<?php echo $this->main->get_event_date_permalink($event->data->permalink, $event->date['start']['date']); ?>"><?php echo $event->data->title; ?></a><?php echo $event_color; ?><?php do_action('mec_clean_custom_head' , $event ); ?></h4>
|
266 |
Â
<?php endforeach; ?>
|
267 |
Â
<?php endforeach; ?>
|
268 |
Â
</div>
|
269 |
+
</div>
|
270 |
+
|
271 |
+
<?php
|
272 |
+
if ( isset($this->map_on_top) and $this->map_on_top ) :
|
273 |
+
if(isset($map_events) and !empty($map_events))
|
274 |
+
{
|
275 |
+
// Include Map Assets such as JS and CSS libraries
|
276 |
+
$this->main->load_map_assets();
|
277 |
+
|
278 |
+
$map_javascript = '<script type="text/javascript">
|
279 |
+
jQuery(document).ready(function()
|
280 |
+
{
|
281 |
+
var jsonPush = gmapSkin('.json_encode($this->render->markers($map_events)).');
|
282 |
+
jQuery("#mec_googlemap_canvas'.$this->id.'").mecGoogleMaps(
|
283 |
+
{
|
284 |
+
id: "'.$this->id.'",
|
285 |
+
atts: "'.http_build_query(array('atts'=>$this->atts), '', '&').'",
|
286 |
+
zoom: '.(isset($settings['google_maps_zoomlevel']) ? $settings['google_maps_zoomlevel'] : 14).',
|
287 |
+
icon: "'.apply_filters('mec_marker_icon', $this->main->asset('img/m-04.png')).'",
|
288 |
+
styles: '.((isset($settings['google_maps_style']) and trim($settings['google_maps_style']) != '') ? $this->main->get_googlemap_style($settings['google_maps_style']) : "''").',
|
289 |
+
markers: jsonPush,
|
290 |
+
clustering_images: "'.$this->main->asset('img/cluster1/m').'",
|
291 |
+
getDirection: 0,
|
292 |
+
ajax_url: "'.admin_url('admin-ajax.php', NULL).'",
|
293 |
+
});
|
294 |
+
});
|
295 |
+
</script>';
|
296 |
+
|
297 |
+
// Include javascript code into the page
|
298 |
+
if($this->main->is_ajax()) echo $map_javascript;
|
299 |
+
else $this->factory->params('footer', $map_javascript);
|
300 |
+
}
|
301 |
+
endif;
|
app/skins/grid/tpl.php
CHANGED
@@ -48,6 +48,12 @@ do_action('mec_grid_skin_head');
|
|
48 |
Â
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
49 |
Â
|
50 |
Â
<?php if($this->found): ?>
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
51 |
Â
<div class="mec-skin-grid-events-container" id="mec_skin_events_<?php echo $this->id; ?>">
|
52 |
Â
<?php echo $items_html; ?>
|
53 |
Â
</div>
|
48 |
Â
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
49 |
Â
|
50 |
Â
<?php if($this->found): ?>
|
51 |
+
<?php if ( $this->map_on_top == '1' ) : ?>
|
52 |
+
<div class="mec-wrap mec-skin-map-container <?php echo $this->html_class; ?>" id="mec_skin_<?php echo $this->id; ?>">
|
53 |
+
<div class="mec-googlemap-skin" id="mec_googlemap_canvas<?php echo $this->id; ?>" style="height: 500px;"></div>
|
54 |
+
<input type="hidden" id="gmap-data" value="">
|
55 |
+
</div>
|
56 |
+
<?php endif; ?>
|
57 |
Â
<div class="mec-skin-grid-events-container" id="mec_skin_events_<?php echo $this->id; ?>">
|
58 |
Â
<?php echo $items_html; ?>
|
59 |
Â
</div>
|
app/skins/list.php
CHANGED
@@ -96,6 +96,9 @@ class MEC_skin_list extends MEC_skins
|
|
96 |
Â
// Toggle Month Divider or not
|
97 |
Â
$this->toggle_month_divider = isset($this->skin_options['toggle_month_divider']) ? $this->skin_options['toggle_month_divider'] : 0;
|
98 |
Â
|
Â
|
|
Â
|
|
Â
|
|
99 |
Â
// The style
|
100 |
Â
$this->style = isset($this->skin_options['style']) ? $this->skin_options['style'] : 'modern';
|
101 |
Â
|
96 |
Â
// Toggle Month Divider or not
|
97 |
Â
$this->toggle_month_divider = isset($this->skin_options['toggle_month_divider']) ? $this->skin_options['toggle_month_divider'] : 0;
|
98 |
Â
|
99 |
+
// Map on top
|
100 |
+
$this->map_on_top = isset($this->skin_options['map_on_top']) ? $this->skin_options['map_on_top'] : false;
|
101 |
+
|
102 |
Â
// The style
|
103 |
Â
$this->style = isset($this->skin_options['style']) ? $this->skin_options['style'] : 'modern';
|
104 |
Â
|
app/skins/list/render.php
CHANGED
@@ -15,10 +15,12 @@ $event_colorskin = (isset($styling['mec_colorskin']) || isset($styling['color'])
|
|
15 |
Â
<?php $month_id = date('Ym', strtotime($date)); if($this->month_divider and $month_id != $current_month_divider): $current_month_divider = $month_id; ?>
|
16 |
Â
<div class="mec-month-divider" data-toggle-divider="mec-toggle-<?php echo date_i18n('Ym', strtotime($date)); ?>-<?php echo $this->id; ?>"><span><?php echo date_i18n('F Y', strtotime($date)); ?></span><i class="mec-sl-arrow-down"></i></div>
|
17 |
Â
<?php endif; ?>
|
Â
|
|
18 |
Â
|
19 |
Â
<?php
|
20 |
Â
foreach($events as $event)
|
21 |
Â
{
|
Â
|
|
22 |
Â
$location = isset($event->data->locations[$event->data->meta['mec_location_id']]) ? $event->data->locations[$event->data->meta['mec_location_id']] : array();
|
23 |
Â
$organizer = isset($event->data->organizers[$event->data->meta['mec_organizer_id']]) ? $event->data->organizers[$event->data->meta['mec_organizer_id']] : array();
|
24 |
Â
$start_time = (isset($event->data->time) ? $event->data->time['start'] : '');
|
@@ -234,4 +236,36 @@ $event_colorskin = (isset($styling['mec_colorskin']) || isset($styling['color'])
|
|
234 |
Â
<?php } ?>
|
235 |
Â
<?php endforeach; ?>
|
236 |
Â
</div>
|
237 |
-
</div>
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
15 |
Â
<?php $month_id = date('Ym', strtotime($date)); if($this->month_divider and $month_id != $current_month_divider): $current_month_divider = $month_id; ?>
|
16 |
Â
<div class="mec-month-divider" data-toggle-divider="mec-toggle-<?php echo date_i18n('Ym', strtotime($date)); ?>-<?php echo $this->id; ?>"><span><?php echo date_i18n('F Y', strtotime($date)); ?></span><i class="mec-sl-arrow-down"></i></div>
|
17 |
Â
<?php endif; ?>
|
18 |
+
|
19 |
Â
|
20 |
Â
<?php
|
21 |
Â
foreach($events as $event)
|
22 |
Â
{
|
23 |
+
$map_events[] = $event;
|
24 |
Â
$location = isset($event->data->locations[$event->data->meta['mec_location_id']]) ? $event->data->locations[$event->data->meta['mec_location_id']] : array();
|
25 |
Â
$organizer = isset($event->data->organizers[$event->data->meta['mec_organizer_id']]) ? $event->data->organizers[$event->data->meta['mec_organizer_id']] : array();
|
26 |
Â
$start_time = (isset($event->data->time) ? $event->data->time['start'] : '');
|
236 |
Â
<?php } ?>
|
237 |
Â
<?php endforeach; ?>
|
238 |
Â
</div>
|
239 |
+
</div>
|
240 |
+
|
241 |
+
<?php
|
242 |
+
if ( isset($this->map_on_top) and $this->map_on_top ) :
|
243 |
+
if(isset($map_events) and !empty($map_events))
|
244 |
+
{
|
245 |
+
// Include Map Assets such as JS and CSS libraries
|
246 |
+
$this->main->load_map_assets();
|
247 |
+
|
248 |
+
$map_javascript = '<script type="text/javascript">
|
249 |
+
jQuery(document).ready(function()
|
250 |
+
{
|
251 |
+
var jsonPush = gmapSkin('.json_encode($this->render->markers($map_events)).');
|
252 |
+
jQuery("#mec_googlemap_canvas'.$this->id.'").mecGoogleMaps(
|
253 |
+
{
|
254 |
+
id: "'.$this->id.'",
|
255 |
+
atts: "'.http_build_query(array('atts'=>$this->atts), '', '&').'",
|
256 |
+
zoom: '.(isset($settings['google_maps_zoomlevel']) ? $settings['google_maps_zoomlevel'] : 14).',
|
257 |
+
icon: "'.apply_filters('mec_marker_icon', $this->main->asset('img/m-04.png')).'",
|
258 |
+
styles: '.((isset($settings['google_maps_style']) and trim($settings['google_maps_style']) != '') ? $this->main->get_googlemap_style($settings['google_maps_style']) : "''").',
|
259 |
+
markers: jsonPush,
|
260 |
+
clustering_images: "'.$this->main->asset('img/cluster1/m').'",
|
261 |
+
getDirection: 0,
|
262 |
+
ajax_url: "'.admin_url('admin-ajax.php', NULL).'",
|
263 |
+
});
|
264 |
+
});
|
265 |
+
</script>';
|
266 |
+
|
267 |
+
// Include javascript code into the page
|
268 |
+
if($this->main->is_ajax()) echo $map_javascript;
|
269 |
+
else $this->factory->params('footer', $map_javascript);
|
270 |
+
}
|
271 |
+
endif;
|
app/skins/list/tpl.php
CHANGED
@@ -51,8 +51,14 @@ do_action('mec_list_skin_head');
|
|
51 |
Â
<div class="mec-wrap mec-skin-list-container <?php echo $this->html_class; ?>" id="mec_skin_<?php echo $this->id; ?>">
|
52 |
Â
|
53 |
Â
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
54 |
-
|
55 |
Â
<?php if($this->found): ?>
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
56 |
Â
<div class="mec-skin-list-events-container<?php if($this->style == 'accordion' and $this->toggle_month_divider and $this->month_divider) echo ' mec-toggle-month-divider'; ?>" id="mec_skin_events_<?php echo $this->id; ?>">
|
57 |
Â
<?php echo $items_html; ?>
|
58 |
Â
</div>
|
51 |
Â
<div class="mec-wrap mec-skin-list-container <?php echo $this->html_class; ?>" id="mec_skin_<?php echo $this->id; ?>">
|
52 |
Â
|
53 |
Â
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
54 |
+
|
55 |
Â
<?php if($this->found): ?>
|
56 |
+
<?php if ( $this->map_on_top == '1' ) : ?>
|
57 |
+
<div class="mec-wrap mec-skin-map-container <?php echo $this->html_class; ?>" id="mec_skin_<?php echo $this->id; ?>">
|
58 |
+
<div class="mec-googlemap-skin" id="mec_googlemap_canvas<?php echo $this->id; ?>" style="height: 500px;"></div>
|
59 |
+
<input type="hidden" id="gmap-data" value="">
|
60 |
+
</div>
|
61 |
+
<?php endif; ?>
|
62 |
Â
<div class="mec-skin-list-events-container<?php if($this->style == 'accordion' and $this->toggle_month_divider and $this->month_divider) echo ' mec-toggle-month-divider'; ?>" id="mec_skin_events_<?php echo $this->id; ?>">
|
63 |
Â
<?php echo $items_html; ?>
|
64 |
Â
</div>
|
app/skins/masonry/render.php
CHANGED
@@ -176,6 +176,7 @@ $settings = $this->main->get_settings();
|
|
176 |
Â
</div>
|
177 |
Â
<div class="mec-event-footer">
|
178 |
Â
<a class="mec-booking-button" data-event-id="<?php echo $event->data->ID; ?>" href="<?php echo $this->main->get_event_date_permalink($event->data->permalink, $event->date['start']['date']); ?>" target="_self"><?php echo (is_array($event->data->tickets) and count($event->data->tickets)) ? $this->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite')) : $this->main->m('view_detail', __('View Detail', 'modern-events-calendar-lite')) ; ?></a>
|
Â
|
|
179 |
Â
</div>
|
180 |
Â
</div>
|
181 |
Â
</article>
|
176 |
Â
</div>
|
177 |
Â
<div class="mec-event-footer">
|
178 |
Â
<a class="mec-booking-button" data-event-id="<?php echo $event->data->ID; ?>" href="<?php echo $this->main->get_event_date_permalink($event->data->permalink, $event->date['start']['date']); ?>" target="_self"><?php echo (is_array($event->data->tickets) and count($event->data->tickets)) ? $this->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite')) : $this->main->m('view_detail', __('View Detail', 'modern-events-calendar-lite')) ; ?></a>
|
179 |
+
<?php do_action( 'mec_masonry_button', $event ); ?>
|
180 |
Â
</div>
|
181 |
Â
</div>
|
182 |
Â
</article>
|
assets/css/backend.css
CHANGED
@@ -4911,4 +4911,410 @@ li.wns-be-group-menu-li.mec-settings-menu:hover > .mec-settings-submenu {
|
|
4911 |
Â
opacity: 1;
|
4912 |
Â
font-size: 12px;
|
4913 |
Â
padding: 6px 4px 6px 26px;
|
4914 |
-
}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
4911 |
Â
opacity: 1;
|
4912 |
Â
font-size: 12px;
|
4913 |
Â
padding: 6px 4px 6px 26px;
|
4914 |
+
}
|
4915 |
+
|
4916 |
+
/* Display Option / Shortcode / niceselect style */
|
4917 |
+
/* Niceselect */
|
4918 |
+
.wn-mec-select {
|
4919 |
+
width: 32.33333333%!important;
|
4920 |
+
clear: unset!important
|
4921 |
+
}
|
4922 |
+
|
4923 |
+
.wn-mec-select {
|
4924 |
+
-webkit-tap-highlight-color: transparent;
|
4925 |
+
background-color: #fff;
|
4926 |
+
border-radius: 3px;
|
4927 |
+
border: 1px solid #ddd;
|
4928 |
+
margin-bottom: 8px;
|
4929 |
+
position: relative;
|
4930 |
+
text-align: left!important;
|
4931 |
+
-webkit-transition: all .2s ease-in-out;
|
4932 |
+
transition: all .2s ease-in-out;
|
4933 |
+
box-shadow: 0 3px 13px -5px rgba(0,0,0,.1),inset 0 1px 2px rgba(0,0,0,.07)
|
4934 |
+
}
|
4935 |
+
|
4936 |
+
.wn-mec-select:hover {
|
4937 |
+
border-color: #dbdbdb
|
4938 |
+
}
|
4939 |
+
|
4940 |
+
.wn-mec-select.open .list {
|
4941 |
+
overflow: unset;
|
4942 |
+
width: 100%;
|
4943 |
+
margin: 0
|
4944 |
+
}
|
4945 |
+
|
4946 |
+
.wn-mec-select .list {
|
4947 |
+
background-color: #fff;
|
4948 |
+
border-radius: 2px;
|
4949 |
+
box-shadow: 0 2px 33px -2px rgba(0,0,0,.2),inset 0 1px 2px rgba(0,0,0,.07);
|
4950 |
+
box-sizing: border-box;
|
4951 |
+
margin-top: 4px;
|
4952 |
+
opacity: 0;
|
4953 |
+
overflow: hidden;
|
4954 |
+
padding: 0;
|
4955 |
+
pointer-events: none;
|
4956 |
+
position: absolute;
|
4957 |
+
top: 100%;
|
4958 |
+
left: 0;
|
4959 |
+
-webkit-transform-origin: 50% 0;
|
4960 |
+
-ms-transform-origin: 50% 0;
|
4961 |
+
transform-origin: 50% 0;
|
4962 |
+
-webkit-transform: scale(.75) translateY(-21px);
|
4963 |
+
-ms-transform: scale(.75) translateY(-21px);
|
4964 |
+
transform: scale(.75) translateY(-21px);
|
4965 |
+
-webkit-transition: all .2s cubic-bezier(.5,0,0,1.25),opacity .15s ease-out;
|
4966 |
+
transition: all .2s cubic-bezier(.5,0,0,1.25),opacity .15s ease-out;
|
4967 |
+
z-index: 9
|
4968 |
+
}
|
4969 |
+
|
4970 |
+
.wn-mec-select {
|
4971 |
+
-webkit-tap-highlight-color: transparent;
|
4972 |
+
background-color: #fff;
|
4973 |
+
border-radius: 5px;
|
4974 |
+
border: solid 1px #e8e8e8;
|
4975 |
+
box-sizing: border-box;
|
4976 |
+
clear: both;
|
4977 |
+
cursor: pointer;
|
4978 |
+
display: block;
|
4979 |
+
float: left;
|
4980 |
+
font-family: inherit;
|
4981 |
+
font-size: 14px;
|
4982 |
+
font-weight: 400;
|
4983 |
+
height: 42px;
|
4984 |
+
line-height: 40px;
|
4985 |
+
outline: 0;
|
4986 |
+
padding-left: 18px;
|
4987 |
+
padding-right: 30px;
|
4988 |
+
position: relative;
|
4989 |
+
text-align: left!important;
|
4990 |
+
-webkit-transition: all .2s ease-in-out;
|
4991 |
+
transition: all .2s ease-in-out;
|
4992 |
+
-webkit-user-select: none;
|
4993 |
+
-moz-user-select: none;
|
4994 |
+
-ms-user-select: none;
|
4995 |
+
user-select: none;
|
4996 |
+
white-space: nowrap;
|
4997 |
+
width: auto
|
4998 |
+
}
|
4999 |
+
|
5000 |
+
.wn-mec-select:hover {
|
5001 |
+
border-color: #dbdbdb
|
5002 |
+
}
|
5003 |
+
|
5004 |
+
.wn-mec-select:after {
|
5005 |
+
border-bottom: 2px solid #999;
|
5006 |
+
border-right: 2px solid #999;
|
5007 |
+
content: '';
|
5008 |
+
display: block;
|
5009 |
+
height: 5px;
|
5010 |
+
margin-top: -4px;
|
5011 |
+
pointer-events: none;
|
5012 |
+
position: absolute;
|
5013 |
+
right: 12px;
|
5014 |
+
top: 50%;
|
5015 |
+
-webkit-transform-origin: 66% 66%;
|
5016 |
+
-ms-transform-origin: 66% 66%;
|
5017 |
+
transform-origin: 66% 66%;
|
5018 |
+
-webkit-transform: rotate(45deg);
|
5019 |
+
-ms-transform: rotate(45deg);
|
5020 |
+
transform: rotate(45deg);
|
5021 |
+
-webkit-transition: all .15s ease-in-out;
|
5022 |
+
transition: all .15s ease-in-out;
|
5023 |
+
width: 5px
|
5024 |
+
}
|
5025 |
+
|
5026 |
+
.wn-mec-select.open:after {
|
5027 |
+
-webkit-transform: rotate(-135deg);
|
5028 |
+
-ms-transform: rotate(-135deg);
|
5029 |
+
transform: rotate(-135deg)
|
5030 |
+
}
|
5031 |
+
|
5032 |
+
.wn-mec-select.open .list {
|
5033 |
+
opacity: 1;
|
5034 |
+
pointer-events: auto;
|
5035 |
+
-webkit-transform: scale(1) translateY(0);
|
5036 |
+
-ms-transform: scale(1) translateY(0);
|
5037 |
+
transform: scale(1) translateY(0)
|
5038 |
+
}
|
5039 |
+
|
5040 |
+
.wn-mec-select.disabled {
|
5041 |
+
border-color: #ededed;
|
5042 |
+
color: #999;
|
5043 |
+
pointer-events: none
|
5044 |
+
}
|
5045 |
+
|
5046 |
+
.wn-mec-select.disabled:after {
|
5047 |
+
border-color: #ccc
|
5048 |
+
}
|
5049 |
+
|
5050 |
+
.wn-mec-select.wide {
|
5051 |
+
width: 100%
|
5052 |
+
}
|
5053 |
+
|
5054 |
+
.wn-mec-select.wide .list {
|
5055 |
+
left: 0!important;
|
5056 |
+
right: 0!important
|
5057 |
+
}
|
5058 |
+
|
5059 |
+
.wn-mec-select.right {
|
5060 |
+
float: right
|
5061 |
+
}
|
5062 |
+
|
5063 |
+
.wn-mec-select.right .list {
|
5064 |
+
left: auto;
|
5065 |
+
right: 0
|
5066 |
+
}
|
5067 |
+
|
5068 |
+
.wn-mec-select.small {
|
5069 |
+
font-size: 12px;
|
5070 |
+
height: 36px;
|
5071 |
+
line-height: 34px
|
5072 |
+
}
|
5073 |
+
|
5074 |
+
.wn-mec-select.small:after {
|
5075 |
+
height: 4px;
|
5076 |
+
width: 4px
|
5077 |
+
}
|
5078 |
+
|
5079 |
+
.wn-mec-select .list {
|
5080 |
+
background-color: #fff;
|
5081 |
+
border-radius: 5px;
|
5082 |
+
box-shadow: 0 0 0 1px rgba(68,68,68,.11);
|
5083 |
+
box-sizing: border-box;
|
5084 |
+
margin-top: 4px;
|
5085 |
+
opacity: 0;
|
5086 |
+
overflow: hidden;
|
5087 |
+
padding: 0;
|
5088 |
+
pointer-events: none;
|
5089 |
+
position: absolute;
|
5090 |
+
top: 100%;
|
5091 |
+
left: 0;
|
5092 |
+
-webkit-transform-origin: 50% 0;
|
5093 |
+
-ms-transform-origin: 50% 0;
|
5094 |
+
transform-origin: 50% 0;
|
5095 |
+
-webkit-transform: scale(.75) translateY(-21px);
|
5096 |
+
-ms-transform: scale(.75) translateY(-21px);
|
5097 |
+
transform: scale(.75) translateY(-21px);
|
5098 |
+
-webkit-transition: all .2s cubic-bezier(.5,0,0,1.25),opacity .15s ease-out;
|
5099 |
+
transition: all .2s cubic-bezier(.5,0,0,1.25),opacity .15s ease-out;
|
5100 |
+
z-index: 9
|
5101 |
+
}
|
5102 |
+
|
5103 |
+
.wn-mec-select .list:hover .option:not(:hover) {
|
5104 |
+
background-color: transparent!important
|
5105 |
+
}
|
5106 |
+
|
5107 |
+
.wn-mec-select .option {
|
5108 |
+
cursor: pointer;
|
5109 |
+
font-weight: 400;
|
5110 |
+
list-style: none;
|
5111 |
+
min-height: 40px;
|
5112 |
+
outline: 0;
|
5113 |
+
text-align: left;
|
5114 |
+
position: relative;
|
5115 |
+
font-size: 12px!important;
|
5116 |
+
padding: 1px 12px!important;
|
5117 |
+
margin: 0!important;
|
5118 |
+
line-height: 28px!important;
|
5119 |
+
min-height: 28px!important;
|
5120 |
+
-webkit-transition: all .2s ease-in-out;
|
5121 |
+
transition: all .2s ease-in-out;
|
5122 |
+
}
|
5123 |
+
|
5124 |
+
.wn-mec-select .option .wn-hover-img-sh img {
|
5125 |
+
position: absolute;
|
5126 |
+
padding: 3px;
|
5127 |
+
top: 0;
|
5128 |
+
left: 140px;
|
5129 |
+
box-shadow: 0 3px 42px -8px rgba(0,0,0,.3);
|
5130 |
+
visibility: hidden;
|
5131 |
+
opacity: 0;
|
5132 |
+
border: 1px solid #dbdbdb;
|
5133 |
+
z-index: 999999;
|
5134 |
+
background: #fff
|
5135 |
+
}
|
5136 |
+
|
5137 |
+
.wn-mec-select .option:hover .wn-hover-img-sh img {
|
5138 |
+
visibility: visible;
|
5139 |
+
opacity: 1
|
5140 |
+
}
|
5141 |
+
|
5142 |
+
.wn-mec-select .option.focus,
|
5143 |
+
.wn-mec-select .option.selected.focus,
|
5144 |
+
.wn-mec-select .option:hover {
|
5145 |
+
background-color: #f6f6f6
|
5146 |
+
}
|
5147 |
+
|
5148 |
+
.wn-mec-select .option.selected {
|
5149 |
+
font-weight: 700
|
5150 |
+
}
|
5151 |
+
|
5152 |
+
.wn-mec-select .option.disabled {
|
5153 |
+
background-color: transparent;
|
5154 |
+
color: #999;
|
5155 |
+
cursor: default
|
5156 |
+
}
|
5157 |
+
|
5158 |
+
.no-csspointerevents .wn-mec-select .list {
|
5159 |
+
display: none
|
5160 |
+
}
|
5161 |
+
|
5162 |
+
.no-csspointerevents .wn-mec-select.open .list {
|
5163 |
+
display: block
|
5164 |
+
}
|
5165 |
+
|
5166 |
+
.mec-custom-nice-select ul.list li.option {
|
5167 |
+
width: 30%!important;
|
5168 |
+
float: left!important;
|
5169 |
+
min-height: 135px!important;
|
5170 |
+
height: 135px;
|
5171 |
+
margin: 1.66%!important;
|
5172 |
+
box-sizing: border-box;
|
5173 |
+
text-align: center;
|
5174 |
+
padding: 10px!important;
|
5175 |
+
border-radius: 3px;
|
5176 |
+
border: 1px solid #eee;
|
5177 |
+
box-shadow: 0 1px 3px rgba(0,0,0,.025);
|
5178 |
+
background: #fff!important;
|
5179 |
+
}
|
5180 |
+
|
5181 |
+
.mec-custom-nice-select ul.list li.option:hover {
|
5182 |
+
box-shadow: 0 2px 7px rgba(0,0,0,.06);
|
5183 |
+
borde-color: #e0e0e0
|
5184 |
+
}
|
5185 |
+
|
5186 |
+
.mec-custom-nice-select .list:hover .option:not(:hover),
|
5187 |
+
.mec-custom-nice-select ul.list:hover li.option {
|
5188 |
+
background: #fff!important
|
5189 |
+
}
|
5190 |
+
|
5191 |
+
.mec-custom-nice-select ul.list {
|
5192 |
+
min-width: 600px!important;
|
5193 |
+
margin-left: -132px!important;
|
5194 |
+
padding: 20px 10px!important;
|
5195 |
+
background: #fcfbfd;
|
5196 |
+
border: 1px solid #e9e9e9;
|
5197 |
+
box-shadow: 0 1px 4px rgba(0,0,0,.05)
|
5198 |
+
}
|
5199 |
+
|
5200 |
+
.mec-custom-nice-select ul.list li.option.selected {
|
5201 |
+
border: 1px solid #008aff;
|
5202 |
+
box-shadow: 0 1px 8px -3px #008aff inset;
|
5203 |
+
color: #008aff;
|
5204 |
+
padding: 12px 0 0 0!important
|
5205 |
+
}
|
5206 |
+
|
5207 |
+
.mec-custom-nice-select .wn-img-sh img {
|
5208 |
+
margin: 6px 0 15px;
|
5209 |
+
line-height: 1;
|
5210 |
+
max-width: 68px;
|
5211 |
+
max-height: 56px;
|
5212 |
+
filter: grayscale(1);
|
5213 |
+
-webkit-filter: grayscale(1);
|
5214 |
+
transition: all .22s ease;
|
5215 |
+
-webkit-transition: all .22s ease;
|
5216 |
+
-moz-transition: all .22s ease;
|
5217 |
+
-ms-transition: all .22s ease;
|
5218 |
+
-o-transition: all .22s ease;
|
5219 |
+
}
|
5220 |
+
|
5221 |
+
.wn-mec-select .option.focus .wn-img-sh img,
|
5222 |
+
.wn-mec-select .option.selected.focus .wn-img-sh img,
|
5223 |
+
.wn-mec-select .option:hover .wn-img-sh img {
|
5224 |
+
background-color: #f6f6f6;
|
5225 |
+
filter: grayscale(0);
|
5226 |
+
-webkit-filter: grayscale(0)
|
5227 |
+
}
|
5228 |
+
|
5229 |
+
@media(max-width: 768px) {
|
5230 |
+
.wn-mec-select {
|
5231 |
+
width:45%!important
|
5232 |
+
}
|
5233 |
+
|
5234 |
+
.mec-custom-nice-select ul.list {
|
5235 |
+
margin-left: -24px!important;
|
5236 |
+
min-width: 404px!important
|
5237 |
+
}
|
5238 |
+
|
5239 |
+
.mec-custom-nice-select ul.list li.option {
|
5240 |
+
width: 46.6%!important
|
5241 |
+
}
|
5242 |
+
|
5243 |
+
.wn-hover-img-sh {
|
5244 |
+
display: none
|
5245 |
+
}
|
5246 |
+
}
|
5247 |
+
|
5248 |
+
@media(max-width: 480px) {
|
5249 |
+
.wn-mec-select {
|
5250 |
+
width:100%!important
|
5251 |
+
}
|
5252 |
+
|
5253 |
+
.mec-custom-nice-select ul.list {
|
5254 |
+
min-width: 337px!important
|
5255 |
+
}
|
5256 |
+
}
|
5257 |
+
|
5258 |
+
@media(max-width: 320px) {
|
5259 |
+
.mec-custom-nice-select ul.list li.option {
|
5260 |
+
width:100%!important
|
5261 |
+
}
|
5262 |
+
|
5263 |
+
.mec-custom-nice-select ul.list {
|
5264 |
+
min-width: 298px!important
|
5265 |
+
}
|
5266 |
+
}
|
5267 |
+
|
5268 |
+
.mec-sed-methods li {
|
5269 |
+
line-height: 28px;
|
5270 |
+
padding-left: 38px;
|
5271 |
+
position: relative
|
5272 |
+
}
|
5273 |
+
|
5274 |
+
.mec-sed-methods li:before {
|
5275 |
+
margin-right: 0
|
5276 |
+
}
|
5277 |
+
|
5278 |
+
.mec-sed-methods li:before {
|
5279 |
+
border-radius: 18px
|
5280 |
+
}
|
5281 |
+
|
5282 |
+
.mec-custom-nice-select ul.list li .wn-mec-text:after,
|
5283 |
+
.mec-sed-methods li:before {
|
5284 |
+
content: "";
|
5285 |
+
position: absolute;
|
5286 |
+
display: inline-block;
|
5287 |
+
background: #fff;
|
5288 |
+
border-radius: 2px;
|
5289 |
+
width: 12px;
|
5290 |
+
height: 12px;
|
5291 |
+
margin: -1px 0 0 -1px;
|
5292 |
+
cursor: pointer;
|
5293 |
+
border: 2px solid #e1e7ed;
|
5294 |
+
box-shadow: 0 2px 15px -3px rgba(69,77,89,.32);
|
5295 |
+
border-radius: 50%;
|
5296 |
+
}
|
5297 |
+
|
5298 |
+
.mec-custom-nice-select ul.list li .wn-mec-text {
|
5299 |
+
position: relative;
|
5300 |
+
padding-top: 14px;
|
5301 |
+
}
|
5302 |
+
|
5303 |
+
.mec-custom-nice-select ul.list li .wn-mec-text:after {
|
5304 |
+
left: calc(50% - 7px);
|
5305 |
+
top: -6px;
|
5306 |
+
}
|
5307 |
+
|
5308 |
+
.mec-sed-methods li:before {
|
5309 |
+
left: 9px;
|
5310 |
+
top: calc(50% - 7px)
|
5311 |
+
}
|
5312 |
+
|
5313 |
+
.mec-custom-nice-select ul.list li.option.selected .wn-mec-text:after,
|
5314 |
+
.mec-sed-methods li.active:before {
|
5315 |
+
width: 4px;
|
5316 |
+
height: 4px;
|
5317 |
+
border: 7px solid #008aff;
|
5318 |
+
background: #fff;
|
5319 |
+
box-shadow: 0 3px 16px -3px #008aff
|
5320 |
+
}
|
assets/css/backend.min.css
CHANGED
@@ -2,4 +2,4 @@
|
|
2 |
Â
* Bootstrap v3.3.7 (http://getbootstrap.com)
|
3 |
Â
* Copyright 2011-2016 Twitter, Inc.
|
4 |
Â
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
5 |
-
*/#webnus-dashboard button,#webnus-dashboard input,#webnus-dashboard select,#webnus-dashboard textarea{font-family:inherit;font-size:inherit;line-height:inherit}#webnus-dashboard a{color:#337ab7;text-decoration:none}#webnus-dashboard a:focus,#webnus-dashboard a:hover{color:#23527c}#webnus-dashboard a:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}#webnus-dashboard figure{margin:0}#webnus-dashboard img{vertical-align:middle}.w-img-responsive{display:block;max-width:100%;height:auto}.w-img-rounded{border-radius:6px}.w-img-thumbnail{padding:4px;line-height:1w-42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all 0w-2s ease-in-out;-o-transition:all 0w-2s ease-in-out;transition:all 0w-2s ease-in-out;display:inline-block;max-width:100%;height:auto}.w-img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.w-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.w-sr-only-focusable:active,.w-sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.w-container,.w-container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}[role=button]{cursor:pointer}@media (min-width:768px){.w-container{width:750px}}@media (min-width:992px){.w-container{width:970px}}@media (min-width:1200px){.w-container{width:1170px}}.w-row{margin-left:-15px;margin-right:-15px}.w-col-lg-1,.w-col-lg-10,.w-col-lg-11,.w-col-lg-12,.w-col-lg-2,.w-col-lg-3,.w-col-lg-4,.w-col-lg-5,.w-col-lg-6,.w-col-lg-7,.w-col-lg-8,.w-col-lg-9,.w-col-md-1,.w-col-md-10,.w-col-md-11,.w-col-md-12,.w-col-md-2,.w-col-md-3,.w-col-md-4,.w-col-md-5,.w-col-md-6,.w-col-md-7,.w-col-md-8,.w-col-md-9,.w-col-sm-1,.w-col-sm-10,.w-col-sm-11,.w-col-sm-12,.w-col-sm-2,.w-col-sm-3,.w-col-sm-4,.w-col-sm-5,.w-col-sm-6,.w-col-sm-7,.w-col-sm-8,.w-col-sm-9,.w-col-xs-1,.w-col-xs-10,.w-col-xs-11,.w-col-xs-12,.w-col-xs-2,.w-col-xs-3,.w-col-xs-4,.w-col-xs-5,.w-col-xs-6,.w-col-xs-7,.w-col-xs-8,.w-col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.w-col-xs-1,.w-col-xs-10,.w-col-xs-11,.w-col-xs-12,.w-col-xs-2,.w-col-xs-3,.w-col-xs-4,.w-col-xs-5,.w-col-xs-6,.w-col-xs-7,.w-col-xs-8,.w-col-xs-9{float:left}.w-col-xs-12{width:100%}.w-col-xs-11{width:91.66666667%}.w-col-xs-10{width:83.33333333%}.w-col-xs-9{width:75%}.w-col-xs-8{width:66.66666667%}.w-col-xs-7{width:58.33333333%}.w-col-xs-6{width:50%}.w-col-xs-5{width:41.66666667%}.w-col-xs-4{width:33.33333333%}.w-col-xs-3{width:25%}.w-col-xs-2{width:16.66666667%}.w-col-xs-1{width:8w-33333333%}.w-col-xs-pull-12{right:100%}.w-col-xs-pull-11{right:91.66666667%}.w-col-xs-pull-10{right:83.33333333%}.w-col-xs-pull-9{right:75%}.w-col-xs-pull-8{right:66.66666667%}.w-col-xs-pull-7{right:58.33333333%}.w-col-xs-pull-6{right:50%}.w-col-xs-pull-5{right:41.66666667%}.w-col-xs-pull-4{right:33.33333333%}.w-col-xs-pull-3{right:25%}.w-col-xs-pull-2{right:16.66666667%}.w-col-xs-pull-1{right:8w-33333333%}.w-col-xs-pull-0{right:auto}.w-col-xs-push-12{left:100%}.w-col-xs-push-11{left:91.66666667%}.w-col-xs-push-10{left:83.33333333%}.w-col-xs-push-9{left:75%}.w-col-xs-push-8{left:66.66666667%}.w-col-xs-push-7{left:58.33333333%}.w-col-xs-push-6{left:50%}.w-col-xs-push-5{left:41.66666667%}.w-col-xs-push-4{left:33.33333333%}.w-col-xs-push-3{left:25%}.w-col-xs-push-2{left:16.66666667%}.w-col-xs-push-1{left:8w-33333333%}.w-col-xs-push-0{left:auto}.w-col-xs-offset-12{margin-left:100%}.w-col-xs-offset-11{margin-left:91.66666667%}.w-col-xs-offset-10{margin-left:83.33333333%}.w-col-xs-offset-9{margin-left:75%}.w-col-xs-offset-8{margin-left:66.66666667%}.w-col-xs-offset-7{margin-left:58.33333333%}.w-col-xs-offset-6{margin-left:50%}.w-col-xs-offset-5{margin-left:41.66666667%}.w-col-xs-offset-4{margin-left:33.33333333%}.w-col-xs-offset-3{margin-left:25%}.w-col-xs-offset-2{margin-left:16.66666667%}.w-col-xs-offset-1{margin-left:8w-33333333%}.w-col-xs-offset-0{margin-left:0}@media (min-width:768px){.w-col-sm-1,.w-col-sm-10,.w-col-sm-11,.w-col-sm-12,.w-col-sm-2,.w-col-sm-3,.w-col-sm-4,.w-col-sm-5,.w-col-sm-6,.w-col-sm-7,.w-col-sm-8,.w-col-sm-9{float:left}.w-col-sm-12{width:100%}.w-col-sm-11{width:91.66666667%}.w-col-sm-10{width:83.33333333%}.w-col-sm-9{width:75%}.w-col-sm-8{width:66.66666667%}.w-col-sm-7{width:58.33333333%}.w-col-sm-6{width:50%}.w-col-sm-5{width:41.66666667%}.w-col-sm-4{width:33.33333333%}.w-col-sm-3{width:25%}.w-col-sm-2{width:16.66666667%}.w-col-sm-1{width:8w-33333333%}.w-col-sm-pull-12{right:100%}.w-col-sm-pull-11{right:91.66666667%}.w-col-sm-pull-10{right:83.33333333%}.w-col-sm-pull-9{right:75%}.w-col-sm-pull-8{right:66.66666667%}.w-col-sm-pull-7{right:58.33333333%}.w-col-sm-pull-6{right:50%}.w-col-sm-pull-5{right:41.66666667%}.w-col-sm-pull-4{right:33.33333333%}.w-col-sm-pull-3{right:25%}.w-col-sm-pull-2{right:16.66666667%}.w-col-sm-pull-1{right:8w-33333333%}.w-col-sm-pull-0{right:auto}.w-col-sm-push-12{left:100%}.w-col-sm-push-11{left:91.66666667%}.w-col-sm-push-10{left:83.33333333%}.w-col-sm-push-9{left:75%}.w-col-sm-push-8{left:66.66666667%}.w-col-sm-push-7{left:58.33333333%}.w-col-sm-push-6{left:50%}.w-col-sm-push-5{left:41.66666667%}.w-col-sm-push-4{left:33.33333333%}.w-col-sm-push-3{left:25%}.w-col-sm-push-2{left:16.66666667%}.w-col-sm-push-1{left:8w-33333333%}.w-col-sm-push-0{left:auto}.w-col-sm-offset-12{margin-left:100%}.w-col-sm-offset-11{margin-left:91.66666667%}.w-col-sm-offset-10{margin-left:83.33333333%}.w-col-sm-offset-9{margin-left:75%}.w-col-sm-offset-8{margin-left:66.66666667%}.w-col-sm-offset-7{margin-left:58.33333333%}.w-col-sm-offset-6{margin-left:50%}.w-col-sm-offset-5{margin-left:41.66666667%}.w-col-sm-offset-4{margin-left:33.33333333%}.w-col-sm-offset-3{margin-left:25%}.w-col-sm-offset-2{margin-left:16.66666667%}.w-col-sm-offset-1{margin-left:8w-33333333%}.w-col-sm-offset-0{margin-left:0}}@media (min-width:992px){.w-col-md-1,.w-col-md-10,.w-col-md-11,.w-col-md-12,.w-col-md-2,.w-col-md-3,.w-col-md-4,.w-col-md-5,.w-col-md-6,.w-col-md-7,.w-col-md-8,.w-col-md-9{float:left}.w-col-md-12{width:100%}.w-col-md-11{width:91.66666667%}.w-col-md-10{width:83.33333333%}.w-col-md-9{width:75%}.w-col-md-8{width:66.66666667%}.w-col-md-7{width:58.33333333%}.w-col-md-6{width:50%}.w-col-md-5{width:41.66666667%}.w-col-md-4{width:33.33333333%}.w-col-md-3{width:25%}.w-col-md-2{width:16.66666667%}.w-col-md-1{width:8w-33333333%}.w-col-md-pull-12{right:100%}.w-col-md-pull-11{right:91.66666667%}.w-col-md-pull-10{right:83.33333333%}.w-col-md-pull-9{right:75%}.w-col-md-pull-8{right:66.66666667%}.w-col-md-pull-7{right:58.33333333%}.w-col-md-pull-6{right:50%}.w-col-md-pull-5{right:41.66666667%}.w-col-md-pull-4{right:33.33333333%}.w-col-md-pull-3{right:25%}.w-col-md-pull-2{right:16.66666667%}.w-col-md-pull-1{right:8w-33333333%}.w-col-md-pull-0{right:auto}.w-col-md-push-12{left:100%}.w-col-md-push-11{left:91.66666667%}.w-col-md-push-10{left:83.33333333%}.w-col-md-push-9{left:75%}.w-col-md-push-8{left:66.66666667%}.w-col-md-push-7{left:58.33333333%}.w-col-md-push-6{left:50%}.w-col-md-push-5{left:41.66666667%}.w-col-md-push-4{left:33.33333333%}.w-col-md-push-3{left:25%}.w-col-md-push-2{left:16.66666667%}.w-col-md-push-1{left:8w-33333333%}.w-col-md-push-0{left:auto}.w-col-md-offset-12{margin-left:100%}.w-col-md-offset-11{margin-left:91.66666667%}.w-col-md-offset-10{margin-left:83.33333333%}.w-col-md-offset-9{margin-left:75%}.w-col-md-offset-8{margin-left:66.66666667%}.w-col-md-offset-7{margin-left:58.33333333%}.w-col-md-offset-6{margin-left:50%}.w-col-md-offset-5{margin-left:41.66666667%}.w-col-md-offset-4{margin-left:33.33333333%}.w-col-md-offset-3{margin-left:25%}.w-col-md-offset-2{margin-left:16.66666667%}.w-col-md-offset-1{margin-left:8w-33333333%}.w-col-md-offset-0{margin-left:0}}@media (min-width:1200px){.w-col-lg-1,.w-col-lg-10,.w-col-lg-11,.w-col-lg-12,.w-col-lg-2,.w-col-lg-3,.w-col-lg-4,.w-col-lg-5,.w-col-lg-6,.w-col-lg-7,.w-col-lg-8,.w-col-lg-9{float:left}.w-col-lg-12{width:100%}.w-col-lg-11{width:91.66666667%}.w-col-lg-10{width:83.33333333%}.w-col-lg-9{width:75%}.w-col-lg-8{width:66.66666667%}.w-col-lg-7{width:58.33333333%}.w-col-lg-6{width:50%}.w-col-lg-5{width:41.66666667%}.w-col-lg-4{width:33.33333333%}.w-col-lg-3{width:25%}.w-col-lg-2{width:16.66666667%}.w-col-lg-1{width:8w-33333333%}.w-col-lg-pull-12{right:100%}.w-col-lg-pull-11{right:91.66666667%}.w-col-lg-pull-10{right:83.33333333%}.w-col-lg-pull-9{right:75%}.w-col-lg-pull-8{right:66.66666667%}.w-col-lg-pull-7{right:58.33333333%}.w-col-lg-pull-6{right:50%}.w-col-lg-pull-5{right:41.66666667%}.w-col-lg-pull-4{right:33.33333333%}.w-col-lg-pull-3{right:25%}.w-col-lg-pull-2{right:16.66666667%}.w-col-lg-pull-1{right:8w-33333333%}.w-col-lg-pull-0{right:auto}.w-col-lg-push-12{left:100%}.w-col-lg-push-11{left:91.66666667%}.w-col-lg-push-10{left:83.33333333%}.w-col-lg-push-9{left:75%}.w-col-lg-push-8{left:66.66666667%}.w-col-lg-push-7{left:58.33333333%}.w-col-lg-push-6{left:50%}.w-col-lg-push-5{left:41.66666667%}.w-col-lg-push-4{left:33.33333333%}.w-col-lg-push-3{left:25%}.w-col-lg-push-2{left:16.66666667%}.w-col-lg-push-1{left:8w-33333333%}.w-col-lg-push-0{left:auto}.w-col-lg-offset-12{margin-left:100%}.w-col-lg-offset-11{margin-left:91.66666667%}.w-col-lg-offset-10{margin-left:83.33333333%}.w-col-lg-offset-9{margin-left:75%}.w-col-lg-offset-8{margin-left:66.66666667%}.w-col-lg-offset-7{margin-left:58.33333333%}.w-col-lg-offset-6{margin-left:50%}.w-col-lg-offset-5{margin-left:41.66666667%}.w-col-lg-offset-4{margin-left:33.33333333%}.w-col-lg-offset-3{margin-left:25%}.w-col-lg-offset-2{margin-left:16.66666667%}.w-col-lg-offset-1{margin-left:8w-33333333%}.w-col-lg-offset-0{margin-left:0}}.w-clearfix:after,.w-clearfix:before,.w-container-fluid:after,.w-container-fluid:before,.w-container:after,.w-container:before,.w-row:after,.w-row:before{content:" ";display:table}.w-clearfix:after,.w-container-fluid:after,.w-container:after,.w-row:after{clear:both}.w-center-block{display:block;margin-left:auto;margin-right:auto}.w-pull-right{float:right!important}.w-pull-left{float:left!important}.w-hide{display:none!important}.w-show{display:block!important}.w-invisible{visibility:hidden}.w-text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.w-hidden{display:none!important}.w-affix{position:fixed}.mec-image-popup-wrap{display:none}#wns-be-infobar.sticky{position:fixed;top:32px;background:#fff;z-index:9999;width:82%}.wns-be-main .wns-saved-settings.sticky{position:fixed;width:62.5%;top:111px;z-index:999999999999999999}#mec-search-settings{border-radius:2px;min-height:32px;box-shadow:0 3px 14px -5px rgba(0,0,0,.2),inset 0 1px 2px rgba(0,0,0,.07);padding:9px 10px 11px;margin-right:6px;color:#7c7772;font-size:12px;width:200px}#mec-search-settings::-webkit-input-placeholder{color:#7c7772}#mec-search-settings::-moz-placeholder{color:#7c7772}#mec-search-settings:-ms-input-placeholder{color:#7c7772}#mec-search-settings:-moz-placeholder{color:#7c7772}.mec-export-settings,.mec-import-settings{font-weight:700;border-radius:2px;box-shadow:0 3px 10px -4px #008aff;text-shadow:none;background:#008aff;background:linear-gradient(95deg,#36a2ff 0,#008aff 50%,#0072ff 100%);border:none;transition:.24s;padding:8px 32px;height:36px;letter-spacing:.2px;line-height:36px;font-size:13px;color:#fff;text-decoration:none;display:inline-block}.mec-export-settings:hover,.mec-import-settings:hover{background:#222;background:linear-gradient(95deg,#555 0,#222 50%,#000 100%);box-shadow:0 5px 23px -7px rgba(0,0,0,.5);color:#fff}textarea.mec-import-settings-content{display:block;width:100%;min-height:120px;margin-bottom:25px;padding:10px 15px}.mec-import-options-notification{display:inline-block}.mec-import-options-notification .mec-message-import-error,.mec-import-options-notification .mec-message-import-success{display:inline-block;padding:15px 12px;margin-left:12px;opacity:0;visibility:hidden;font-weight:700}.mec-import-options-notification .mec-message-import-success{opacity:1;visibility:visible;border:2px solid green}.mec-import-options-notification .mec-message-import-error{opacity:1;visibility:visible;border:2px solid #e62117}.mec-export-settings:focus,.mec-import-settings:focus{color:#fff}.mec-import-settings-wrap{position:relative}.mec-loarder-wrap{position:absolute;top:0;bottom:0;left:0;right:0;background:rgba(202,202,202,.7);z-index:9999}.mec-loarder-wrap.mec-settings-loader{top:34px}.mec-loarder{position:absolute;width:64px;height:64px;top:calc(50% - 32px);left:calc(50% - 36px)}.mec-loarder div{display:inline-block;position:absolute;left:6px;width:4px;background:#fff;animation:mec-loarder 1.2s cubic-bezier(0,.5,.5,1) infinite}.mec-loarder div:nth-child(1){left:27px;animation-delay:-.24s;background:#0075ff}.mec-loarder div:nth-child(2){left:36px;animation-delay:-.12s;background:#028bff}.mec-loarder div:nth-child(3){left:45px;animation-delay:0;background:#32a0ff}@keyframes mec-loarder{0%{top:6px;height:51px}100%,50%{top:19px;height:26px}}.w-box.support-page.searchbox{background:#008aff;background:linear-gradient(180deg,#36a2ff 0,#008aff 50%,#0072ff 100%);color:#fff;min-height:260px;text-align:center;border-radius:2px}#webnus-dashboard .search-form input{background:rgba(255,255,255,.2);border:none;width:50%;outline:0;color:rgba(255,255,255,.7);font-size:18px;border-radius:4px 0 0 4px;box-shadow:0 1px 2px 0 rgba(0,0,0,.03);-webkit-transition:background .4s,box-shadow .2s;transition:background .4s,box-shadow .2s;padding:20px 32px;margin:0}#webnus-dashboard .search-form button{background:rgba(255,255,255,.2);border:none;padding:20px 32px;margin-left:-2px;color:#fff;border-radius:0 4px 4px 0;font-size:18px;cursor:pointer;-webkit-transition:background .4s,box-shadow .2s;transition:background .4s,box-shadow .2s}#webnus-dashboard .search-form button:hover{background:#fff;color:#3a3c4c}.w-box.support-page.searchbox p{font-size:30px}.search-form input::-webkit-input-placeholder{color:rgba(255,255,255,.7)}.search-form input::-moz-placeholder{color:rgba(255,255,255,.7)}.search-form input:-ms-input-placeholder{color:rgba(255,255,255,.7)}.search-form input:-moz-placeholder{color:rgba(255,255,255,.7)}#webnus-dashboard .search-form input:active,#webnus-dashboard .search-form input:focus{box-shadow:0 10px 20px rgba(0,0,0,.14);background:#fff;color:#3a3c4c}#webnus-dashboard .search-form input:active::-webkit-input-placeholder,#webnus-dashboard .search-form input:focus::-webkit-input-placeholder{color:#3a3c4c}#webnus-dashboard .search-form input:active::-moz-placeholder,#webnus-dashboard .search-form input:focus::-moz-placeholder{color:#3a3c4c}#webnus-dashboard .search-form input:active:-ms-input-placeholder,#webnus-dashboard .search-form input:focus:-ms-input-placeholder{color:#3a3c4c}#webnus-dashboard .search-form input:active:-moz-placeholder,#webnus-dashboard .search-form input:focus:-moz-placeholder{color:#3a3c4c}#webnus-dashboard .w-box.support-page.mec-ticksy{text-align:center;min-height:260px}#webnus-dashboard .w-box.support-page.mec-ticksy p{font-size:20px;width:70%;margin:0 auto;margin-bottom:40px;margin-top:40px}#webnus-dashboard .w-box.support-page.mec-ticksy a{color:#fff;font-weight:500;border-radius:2px;box-shadow:0 3px 10px -4px #008aff;text-shadow:none;background:#008aff;background:linear-gradient(95deg,#36a2ff 0,#008aff 50%,#0072ff 100%);border:none;transition:.24s;padding:12px 20px;cursor:pointer;margin-bottom:40px;display:inline-block}#webnus-dashboard .w-box.support-page.mec-ticksy a:hover{background:#222;background:linear-gradient(95deg,#555 0,#222 50%,#000 100%);box-shadow:0 5px 23px -7px rgba(0,0,0,.5)}.mec-faq-accordion>.mec-faq-accordion-content{display:none}#webnus-dashboard .mec-faq-accordion-trigger a{font-size:16px;padding:12px;background:#f1f1f1;display:block;color:#222;line-height:17px;outline:0}.mec-faq-accordion-trigger{margin-bottom:5px;position:relative}#webnus-dashboard .mec-faq-accordion-trigger a:after{font-family:simple-line-icons;content:"\e095";position:absolute;right:12px;font-weight:700}.mec-faq-accordion-content{padding:5px 14px 25px}#webnus-dashboard .mec-faq-accordion-trigger a.active:after{content:"\e082"}#webnus-dashboard .support-page-links a{background-color:#fff;color:#fff;border-radius:2px;padding:13px 24px;font-size:12px;letter-spacing:1px;font-weight:600;text-transform:uppercase}#webnus-dashboard .support-page-links a:hover,#webnus-dashboard .w-box.support-page.videobox .w-button a:hover{background:#222;background:linear-gradient(95deg,#555 0,#222 50%,#000 100%);box-shadow:0 5px 21px -5px rgba(0,0,0,.5)}#webnus-dashboard .support-page-links{display:inline-block;margin:12px 4px 16px 0}.support-page-links.link-to-doc a{background:#4cbf67;background:linear-gradient(95deg,#6fe08a 0,#58cf74 50%,#36cb58 100%);box-shadow:0 5px 10px -5px #4cbf67}.support-page-links.link-to-videos a{background:#ff876c;background:linear-gradient(95deg,#ff876c 0,#ff7455 50%,#ff5a35 100%);box-shadow:0 5px 10px -5px #ff876c}.support-page-links.link-to-articles a{background:#b092e6;background:linear-gradient(95deg,#b092e6 0,#9b70e8 50%,#8e5cea 100%);box-shadow:0 5px 10px -5px #b092e6}.w-box.support-page.articles-box .w-box-content a{display:block;padding:6px 0}#webnus-dashboard .w-box.support-page.videobox .w-button a{color:#fff;font-size:10px;padding:5px 15px;min-height:10px;font-weight:500;border-radius:22px;box-shadow:0 3px 10px -4px #ff5a35;text-shadow:none;background:#ff5a35;background:linear-gradient(95deg,#ff876c 0,#ff7455 50%,#ff5a35 100%);border:none;transition:.24s}.w-box.support-page.articles-box,.w-box.support-page.faq-box{min-height:500px}.w-box.support-page.videobox{border-radius:2px;min-height:282px;box-shadow:0 1px 6px rgba(0,0,0,.039)!important}#webnus-dashboard .w-box.support-page.videobox .w-button a i{margin-right:6px}.support-page .w-box-content ul{margin-top:5px;padding-left:5px}.support-page .w-box-content ul li{font-size:13px}.support-page .w-box-content ul li i{font-size:17px;vertical-align:text-bottom;margin-right:7px;color:#999}.w-box.mec-activation{background:#fff url(../img/dp-dsb-support.jpg) no-repeat top right}.w-box.mec-activation .w-box-head{color:#40d8f0;width:75%}.w-box.mec-activation .w-box-content{padding:10px 30px}.w-box.mec-activation input[type=radio]{display:none}.w-box.mec-activation input[type=radio]+label{color:#000;font-size:13px;line-height:14px!important;color:#7b7b7b}.w-box.mec-activation input[type=radio].checked+label{color:#40d8f0}.w-box.mec-activation input[type=radio]+label span{display:inline-block;margin:-2px 6px 0 0;vertical-align:middle;cursor:pointer;height:14px;width:14px;text-align:center;background-color:#fff;border:1px solid #d4d4d4;border-radius:100%;box-shadow:0 2px 16px -2px rgba(0,0,0,.2);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative}.w-box.mec-activation input[type=radio].checked+label span{background-color:#40d8f0;border-color:#40d8f0;box-shadow:0 2px 14px -3px #40d8f0}.w-box.mec-activation input[type=radio].checked+label span:after{content:'';display:block;position:absolute;top:4px;left:4px;width:4px;height:4px;background:#fff;border-radius:100%}.w-box.mec-activation .LicenseType label{padding-right:20px;font-weight:500}.w-box.mec-activation .LicenseField{display:inline-block;position:relative;margin-top:20px}.w-box.mec-activation input[name=MECPurchaseCode]{box-shadow:inset 0 1px 2px rgba(0,0,0,.07);min-width:220px;background:#f4f4f4;border:none;border-radius:33px;width:500px;min-height:50px;margin:0;padding-left:20px;text-align:left}#webnus-dashboard .w-box.mec-activation input[type=submit]{height:40px;line-height:40px;font-weight:600;border:none;cursor:pointer;padding:0 30px;border-radius:33px;color:#fff;letter-spacing:1px;text-transform:uppercase;font-size:12px;background:#4cbf67;background:linear-gradient(95deg,#6fe08a 0,#58cf74 50%,#36cb58 100%);box-shadow:0 5px 10px -5px #4cbf67;transition:all .28s ease;position:absolute;right:5px;top:4px;font-size:12px}#webnus-dashboard .w-box.mec-activation input[type=submit]:hover{background:#222;background:linear-gradient(95deg,#555 0,#222 50%,#000 100%);box-shadow:0 5px 23px -7px rgba(0,0,0,.5)}#MECActivation .MECPurchaseStatus,.addon-activation-form .MECPurchaseStatus{display:inline-block;width:40px;height:40px;text-align:center;padding-top:9px;color:#fff;font-weight:700;font-size:18px;border-radius:50%;padding-top:8px;position:absolute;right:-51px;top:calc(50% - 20px)}.MECPurchaseStatus:after,.MECPurchaseStatus:before{position:absolute;border-radius:50px;background:#fff;content:'';transform:rotate(45deg)}.MECPurchaseStatus.PurchaseError:before{width:22px;height:4px;right:9px;top:18px;transform:rotate(45deg)}.MECPurchaseStatus.PurchaseError:after{width:22px;height:4px;right:9px;top:18px;transform:rotate(-45deg)}.MECPurchaseStatus.PurchaseSuccess:before{width:13px;height:4px;right:19px;top:21px;transform:rotate(45deg)}.MECPurchaseStatus.PurchaseSuccess:after{width:22px;height:4px;right:5px;top:18px;transform:rotate(-45deg)}#MECActivation .MECPurchaseStatus.PurchaseError,.addon-activation-form .MECPurchaseStatus.PurchaseError{background:#ff876c;background:linear-gradient(95deg,#ff876c 0,#ff7455 50%,#ff5a35 100%);box-shadow:0 5px 10px -5px #ff876c}#MECActivation .MECPurchaseStatus.PurchaseSuccess,.addon-activation-form .MECPurchaseStatus.PurchaseSuccess{background:#4cbf67;background:linear-gradient(95deg,#6fe08a 0,#58cf74 50%,#36cb58 100%);box-shadow:0 5px 10px -5px #4cbf67}.wna-spinner-wrap{position:absolute;background:#000;width:509px;height:64px;top:-8px;border-radius:50px;z-index:999;background-color:#fff;opacity:.9}.wna-spinner{width:40px;height:40px;position:relative;margin:6px auto}.wna-spinner .double-bounce1,.wna-spinner .double-bounce2{width:100%;height:100%;border-radius:50%;background-color:#40d8f0;opacity:.6;position:absolute;top:0;left:0;-webkit-animation:sk-bounce 2s infinite ease-in-out;animation:sk-bounce 2s infinite ease-in-out}.wna-spinner .double-bounce2{-webkit-animation-delay:-1s;animation-delay:-1s}#MECActivation .MECLicenseMessage,.addon-activation-form .MECLicenseMessage{margin-top:24px;color:#f64;max-width:570px}.box-addon-activation-toggle-content,.box-addon-activation-toggle-head{display:none}.addon-activation-form h3{font-size:15px;font-weight:400;margin:34px 0 -7px}.box-addon-activation-toggle-head{line-height:1.5;font-size:16px;margin-top:20px;cursor:pointer}.box-addon-activation-toggle-head i{margin-right:7px;cursor:pointer;font-weight:700}#mec-advanced-wraper div:first-child>ul{display:block;margin:5px 0;padding:5px 0;width:390px;border:1px solid #e1e2e3;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.05)}#mec-advanced-wraper div:first-child>ul span{display:none}#mec-advanced-wraper div:first-child>ul *{display:inline-block;background:#fff;font-size:12px;color:#717273;text-align:center}#mec-advanced-wraper div:first-child>ul>li{width:60px;font-weight:700;margin:0 10px 0 0;padding:4px 0;border-right:1px solid #e1e2e3}#mec-advanced-wraper div:first-child>ul>ul>li{margin:0;padding:2px 10px;cursor:pointer;border-radius:2px;transition:all .18s ease}#mec-advanced-wraper div:first-child>ul>ul>li:hover,.mec-active{background:#008aff!important;color:#fff!important}@-webkit-keyframes sk-bounce{0%,100%{-webkit-transform:scale(0)}50%{-webkit-transform:scale(1)}}@keyframes sk-bounce{0%,100%{transform:scale(0);-webkit-transform:scale(0)}50%{transform:scale(1);-webkit-transform:scale(1)}}.w-col-sm-3 .w-box.addon{min-height:auto;box-shadow:0 3px 16px -5px rgba(0,0,0,.1);border-radius:2px}.w-box-child.mec-addon-box{padding:20px 20px}.mec-addon-box-head{border-bottom:1px solid #e8e8e8;padding-bottom:5px;margin-bottom:14px;position:relative}.mec-addon-box-version{position:relative;background:#eaeaea;border-radius:1px;padding:0 8px;color:#5a5a5a;font-size:11px;letter-spacing:.2px;line-height:21px;display:inline-block;margin:3px 0}.mec-addon-box-title{font-weight:700;font-size:18px;line-height:25px}.mec-addon-box-title a span{color:#444;font-size:15px}.mec-addon-box-content p{color:#777;font-size:13px}.mec-addon-box-mec-version{background:#f3f3f3;padding:10px;font-size:13px}#webnus-dashboard .addons-page-links{display:inline-block;margin:12px 4px 16px 0}#webnus-dashboard .addons-page-links a{background-color:#fff;color:#fff;border-radius:2px;padding:13px 24px;font-size:12px;letter-spacing:1px;font-weight:600;text-transform:uppercase}.addons-page-links.link-to-purchase a{background:#4cbf67;background:linear-gradient(95deg,#6fe08a 0,#58cf74 50%,#36cb58 100%);box-shadow:0 5px 10px -5px #4cbf67}.addons-page-links.link-to-install-addons a{background:#b092e6;background:linear-gradient(95deg,#b092e6 0,#9b70e8 50%,#8e5cea 100%);box-shadow:0 5px 10px -5px #b092e6}#webnus-dashboard .addons-page-links a:hover,#webnus-dashboard .w-box.addons-page.videobox .w-button a:hover{background:#222;background:linear-gradient(95deg,#555 0,#222 50%,#000 100%);box-shadow:0 5px 21px -5px rgba(0,0,0,.5)}.mec-addon-box-footer{margin-top:25px}#webnus-dashboard .mec-addon-box-footer a{font-weight:500;border-radius:2px;box-shadow:0 3px 10px -4px #008aff;text-shadow:none;background:#008aff;background:linear-gradient(95deg,#36a2ff 0,#008aff 50%,#0072ff 100%);border:none;transition:.24s;padding:7px 19px;margin-top:10px;display:inline-block;letter-spacing:.2px;color:#fff;width:100%;text-align:center}#webnus-dashboard .mec-addon-box-footer a.mec-addon-box-intro{box-shadow:0 3px 10px -4px #ff5a35;background:linear-gradient(95deg,#ff876c 0,#ff7455 50%,#ff5a35 100%)}#webnus-dashboard .mec-addon-box-footer a:hover{background:#222!important;background:linear-gradient(95deg,#555 0,#222 50%,#000 100%)!important;box-shadow:0 5px 23px -7px rgba(0,0,0,.5)!important;cursor:pointer!important}#webnus-dashboard .mec-addon-box-footer a i{margin-right:6px;color:#fff}@media(max-width:1366px){.wns-be-container #wns-be-content{padding:5px 15px 0}.mec-form-row .mec-col-8 label{font-size:10px}#webnus-dashboard .mec-tooltip .box p,.mec-tooltip .box p{font-size:10px}}@media (max-width:780px){.wns-be-container #wns-be-content{padding:10px 0}.wns-be-container .mec-form-row .mec-col-8 label{width:50%;display:block}.wns-be-container .mec-form-row input[type=checkbox]{width:14px;height:14px}.wns-be-container .wns-be-sidebar li .subsection a{padding-left:30px}.wns-be-container .wns-be-sidebar{width:200px}.wns-be-container .wns-be-main{margin-left:200px}.wns-be-container .mec-tooltip .box{min-width:235px!important}.wns-be-container .mec-tooltip .box p{font-size:12px!important}#wns-be-infobar.sticky{position:unset}}@media (max-width:480px){.wns-be-container .wns-be-sidebar{width:100%;position:unset;float:none}.wns-be-container .wns-be-main{margin-left:0;width:100%;position:unset}.wns-be-container{margin-top:50px}.wns-be-container #wns-be-infobar:before{width:100%}.wns-be-container #wns-be-infobar{height:150px}#mec-search-settings{margin-top:80px;width:181px}}.addons-page-error,.addons-page-notice{display:block;margin-top:15px;margin-bottom:0;background:#fff;border-left:4px solid #00a0d2;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);padding:1px 12px}.addons-page-error p,.addons-page-notice p{margin:.5em 0;padding:2px;font-size:13px}.addons-page-error{border-left-color:#dc3232}.mec-addon-box-comingsoon{background:#eaeaea;padding:8px 11px;color:#5a5a5a;font-size:14px;font-weight:500;text-align:center}.mec-addons .w-row .w-col-sm-3:nth-child(4n+1){clear:left}@media (min-width:960px){#webnus-dashboard .mec-addon-box-footer .w-button{text-align:right}}@media (min-width:1401px){.mec-addon-box-title a span{font-size:17px}}.mec-pro-notice{margin-top:24px;line-height:30px}.mec-pro-notice .info-msg{padding:50px 30px;margin-bottom:0}#webnus-dashboard .mec-pro-notice .info-msg{background:#fff;box-shadow:0 1px 16px rgba(0,0,0,.034);text-align:center;color:#000}#webnus-dashboard a.info-msg-link{background:#e66f52;background:linear-gradient(95deg,#ff8162 0,#e66f52 50%,#ff4c20 100%);box-shadow:0 5px 10px -5px #e66f52;border-radius:2px;padding:12px 50px;font-size:16px;line-height:24px;border:none;margin:20px auto 0;color:#fff;transition:all .3s ease;display:inline-block}#webnus-dashboard a.info-msg-link:hover{background:#222;background:linear-gradient(95deg,#555 0,#222 50%,#000 100%);box-shadow:0 5px 21px -5px rgba(0,0,0,.5)}#webnus-dashboard .info-msg p{width:70%;margin:0 auto;line-height:1.8}#webnus-dashboard .info-msg-coupon{font-size:13px;color:#777;max-width:600px;line-height:1.68;margin:25px auto 0}#webnus-dashboard .info-msg-coupon strong{font-weight:700;color:#19ce18}.info-msg .socialfollow{padding-top:20px}.info-msg .socialfollow a{margin:0 2px;display:inline-block}.info-msg .socialfollow a i{background:#96a4b1;color:#fff;padding:6px;border-radius:3px;font-size:18px;box-shadow:0 2px 3px rgba(0,0,0,.1);transition:all .25s}.info-msg .socialfollow a:hover i{background:#008aff}.mec-intro-section .w-box-content{text-align:center}.mec-intro-section .w-box-content.mec-intro-section-welcome{max-width:600px;margin:0 auto}.mec-intro-section .w-box-content.mec-intro-section-welcome h3{font-size:27px}a.mec-intro-section-link-tag.button.button-hero{margin:0 10px 40px}a.mec-intro-section-link-tag.button.button-primary.button-hero{color:#fff!important}a.mec-intro-section-link-tag.button.button-secondary.button-hero{color:#000!important}.mec-intro-section-ifarme iframe{border:1px solid #e7e7e7;border-radius:3px;padding:10px;box-shadow:0 3px 10px -6px rgba(0,0,0,.2)}.w-box-content.mec-intro-section-welcome p{margin-bottom:0}.mec-tooltip a:focus{box-shadow:none}#mec_booking_form .mec-options-fields,#mec_modules_form .mec-options-fields,#mec_settings_form .mec-options-fields,#mec_single_form .mec-options-fields{padding-bottom:150px!important}#mec_taxes_fees_container_toggle{margin-bottom:60px}#mec_taxes_fees_container_toggle{margin-bottom:60px}.wns-be-sidebar li{position:relative}.wns-be-sidebar li .submneu-hover{position:absolute;top:-1px;right:-222px;width:220px;z-index:9;background:#fff;border:1px;border-style:solid;border-color:#dedede;margin:0;overflow:visible;opacity:0;visibility:hidden;transition:all .23s ease;padding-top:8px;padding-bottom:12px}.wns-be-sidebar li:hover{background:#fff}.wns-be-sidebar li:hover .submneu-hover{opacity:1;visibility:visible}.wns-be-sidebar li .submneu-hover a{background:#fff;color:#636363;opacity:1;font-size:12px;padding:6px 4px 6px 26px}.wns-be-sidebar li .submneu-hover a:hover{background:#f6f6f6;color:#222}.wns-be-sidebar li .submneu-hover:before{position:absolute;z-index:999;content:" ";height:0;width:0;border:7px solid transparent;border-right-color:#fff;left:-15px;top:14px;border-right-color:#c5c5c5;right:0}.wns-be-sidebar li .submneu-hover:after{position:absolute;z-index:999;content:" ";height:0;width:0;border:7px solid transparent;border-right-color:#fff;left:-14px;top:14px}.wns-be-sidebar li a:focus,.wns-be-sidebar li:focus{outline:-webkit-focus-ring-color auto 0;border:0;box-shadow:none}@media (max-width:480px){.wns-be-sidebar li .submneu-hover{width:175px;right:0}.wns-be-sidebar li .submneu-hover a{font-size:11px;padding:5px 5px 5px 20px}}.mec-tooltip:hover:after,.mec-tooltip:hover:before{display:none}.mec-tooltip{display:inline-flex;bottom:7px}.mec-tooltip .box{min-width:300px;max-width:600px;display:inline-block;left:26px;top:50%;transform:translateY(-50%);padding:0;margin-top:8px;background-color:#535a61;color:#fff;font-weight:300;font-size:14px;letter-spacing:.5px;line-height:1.3;position:absolute;z-index:9999999;box-sizing:border-box;border-radius:6px;box-shadow:0 4px 45px -8px #444b50;visibility:hidden;opacity:0;transition:opacity .23s}#webnus-dashboard .mec-tooltip .box p,.mec-tooltip .box p{color:#fff;font-size:14px;line-height:1.3;margin:0}.mec-tooltip:hover .box{visibility:visible;opacity:1}.mec-tooltip:hover .box{padding:20px;border-radius:8px}.mec-tooltip .box h5{color:#fff;font-size:17px;font-weight:600;margin:-30px -20px;padding:20px 0;text-align:center;margin-bottom:10px;background:#3a3f44;border-bottom:1px solid #32363a;border-radius:6px 6px 0 0;z-index:9999}#webnus-dashboard .mec-tooltip .box p a,.mec-tooltip .box p a{color:#40d9f1;margin-top:10px;margin-left:0;font-weight:400;position:relative;text-decoration:none;display:block;width:max-content}.mec-tooltip .box a:hover{color:#f90}.mec-tooltip .box:after{display:block;position:absolute!important;top:100%!important;right:50%!important;margin-top:-6px!important;margin-right:-6px!important;width:12px!important;height:24px!important;overflow:hidden!important;transform:rotate(-90deg)!important}.mec-tooltip .box:before{display:block;content:''!important;position:absolute!important;width:12px;height:12px;left:-10px!important;top:50%!important;transform:translate(50%,-50%) rotate(-45deg)!important;background-color:#535a61!important;box-shadow:0 8px 9px -4px #535a61!important;z-index:0!important}.mec-tooltip .box.top{left:50%;top:0;transform:translate(-50%,-100%);margin-top:0;margin-left:-10px}.mec-tooltip .box.top:after{top:50%!important;right:100%!important}.mec-tooltip .box.top:before{left:50%!important;top:100%!important}.mec-tooltip .box.bottom{left:50%;top:auto;bottom:0;transform:translate(-50%,100%);margin-bottom:-20px;margin-left:-10px}.mec-tooltip .box.bottom:after{top:0!important;right:50%!important;background-color:#3a3f44!important}.mec-tooltip .box.bottom:before{left:50%!important;top:-7px!important;transform:translateX(-50%);background-color:#3a3f44!important}.mec-tooltip .box.left{left:auto;right:26px;top:50%;transform:translateY(-50%)}.mec-tooltip .box.left:before{right:0!important;left:auto!important;top:50%!important}form#mec_reg_fields_form input[type=radio]:before{content:"";display:inline-block;background:#fff;border-radius:18px;width:14px;height:14px;margin:-1px 0 0 -2px;cursor:pointer;border:2px solid #e1e7ed;box-shadow:0 2px 15px -3px rgba(69,77,89,.32)}form#mec_reg_fields_form input[type=radio]:checked:before{border:7px solid #008aff;background:#fff;box-shadow:0 3px 16px -3px #008aff;width:4px;height:4px}form#mec_reg_fields_form input[type=radio]{min-height:0;margin-right:6px}form#mec_reg_fields_form label{margin-right:20px}@media(min-width:1200px) and (max-width:1366px){.mec-tooltip .box.left{left:50%;top:0;transform:translate(-50%,-100%);margin-top:0;margin-left:-10px}.mec-tooltip .box.left:after{top:50%!important;right:100%!important}.mec-tooltip .box.left:before{left:50%!important;top:100%!important}.mec-tooltip .box{min-width:225px}.mec-tooltip .box h5{font-size:15px}.mec-tooltip .box .content{font-size:12px}}@media(max-width:1366px){.wns-be-container .wns-be-group-tab p{margin-top:0}}.mec-addons-notification-box-wrap .w-col-sm-12{padding:0}.mec-addons-notification-box-wrap img{width:auto}.mec-addons-notification-box-image{width:555px;display:inline-block;vertical-align:top}.mec-addons-notification-box-content{width:calc(100% - 559px);display:inline-block}.mec-addons-notification-box-content p{margin-top:1%;line-height:1.5;font-size:16px}.mec-addons-notification-box-content .w-box-content{padding-top:0;padding-bottom:0}.mec-addons-notification-box-content ol{font-size:16px}.mec-addons-notification-box-content a{background:#38d5ed;color:#fff!important;padding:10px 26px;margin-top:5px;display:inline-block;border-radius:3px;text-transform:capitalize;font-size:16px;letter-spacing:.4px;transition:all .1s ease;font-weight:600;text-decoration:none}.mec-addons-notification-box-content a:hover{background:#000}.w-clearfix.w-box.mec-addons-notification-box-wrap span{right:0;left:unset;cursor:pointer;background:#fff;padding:0 16px}.w-clearfix.w-box.mec-addons-notification-box-wrap span i{font-size:28px;vertical-align:sub;color:#f2113e}.wns-be-container .mec-addons-notification-wrap{padding:0;margin:0}.wns-be-container .mec-addons-notification-wrap .w-col-sm-12{padding:0}.wns-be-container .w-box{margin-top:0}.wns-be-container.mec-addons-notification-set-box{margin-right:15px;margin-top:50px;margin-bottom:27px}@media(max-width:1200px){.mec-addons-notification-box-content,.mec-addons-notification-box-image{width:100%;display:block}.mec-addons-notification-box-image{text-align:center}}@media(max-width:768px){.mec-addons-notification-box-image img{width:100%;height:auto}}body.rtl .wns-be-sidebar{width:260px;float:right;position:relative}body.rtl .wns-be-main{margin-left:0;border-left:0;margin-right:260px;border-right:1px solid #dedede}body.rtl .w-box.mec-activation .LicenseField{direction:rtl}body.rtl .w-box.mec-activation input[name=MECPurchaseCode]{text-align:right;padding-right:20px}body.rtl #MECActivation .MECPurchaseStatus,body.rtl .addon-activation-form .MECPurchaseStatus{right:auto;left:-51px}body.rtl #webnus-dashboard .w-box.mec-activation input[type=submit]{right:auto;left:5px}body.rtl .wns-be-sidebar .wns-be-group-menu li a{padding:13px 20px 13px 4px}body.rtl .wns-be-sidebar .wns-be-group-tab-link-a span.wns-be-group-menu-title{padding-left:0;padding-right:24px}body.rtl .wns-be-sidebar .has-sub span.extra-icon{float:left}body.rtl .wns-be-sidebar .wns-be-group-tab-link-a span.extra-icon i{right:auto;left:10px}body.rtl .wns-be-sidebar .wns-be-group-menu li .subsection li.active a:after,body.rtl .wns-be-sidebar .wns-be-group-menu li .subsection li.active a:before{position:absolute;z-index:999;content:" ";height:0;width:0;border:7px solid transparent;border-right-color:transparent;border-left-color:#fff;right:auto;left:-1px;top:10px}body.rtl .wns-be-sidebar .wns-be-group-menu li .subsection li.active a:before{border-right-color:transparent;border-left-color:#c5c5c5;right:auto;left:0}body.rtl .mec-col-1,body.rtl .mec-col-10,body.rtl .mec-col-11,body.rtl .mec-col-12,body.rtl .mec-col-2,body.rtl .mec-col-3,body.rtl .mec-col-4,body.rtl .mec-col-5,body.rtl .mec-col-6,body.rtl .mec-col-7,body.rtl .mec-col-8,body.rtl .mec-col-9{float:right;margin:0 1% 0 0}body.rtl .wns-be-sidebar li .submneu-hover{right:auto;left:-222px}body.rtl .wns-be-sidebar li .submneu-hover:after{position:absolute;z-index:999;content:" ";height:0;width:0;border:7px solid transparent;border-right-color:#fff;left:auto;right:-1px;top:14px}body.rtl #mec_styles_form #mec_styles_CSS{direction:ltr}body.rtl .w-box.mec-activation{-moz-transform:scaleY(-1);-o-transform:scaleY(-1);-webkit-transform:scaleY(-1);transform:scaleX(-1)}body.rtl .w-box.mec-activation .w-box-content,body.rtl .w-box.mec-activation .w-box-head{-moz-transform:scaleY(-1);-o-transform:scaleY(-1);-webkit-transform:scaleY(-1);transform:scaleX(-1);display:block}body.rtl .w-box.mec-activation .w-box-head{width:100%}body.rtl .wns-be-container #wns-be-infobar:before{left:auto;right:0}body.rtl .wns-be-container .dpr-btn.dpr-save-btn{float:left}body.rtl .wns-be-container .wns-be-group-tab h2:before,body.rtl .wns-be-container .wns-be-group-tab h4:before{left:auto;right:0;margin-right:0;margin-left:5px}body.rtl #mec_gateways_form .mec-tooltip{float:left}div#plugin-information-content .section{margin-top:-600px}.mec-details-addons-container{margin-top:20px}.mec-details-addons-wrap img{float:left;width:19%;margin-right:17px}.mec-details-addons-wrap{clear:both;margin-bottom:80px;display:block;position:relative}.mec-details-addons-wrap a{text-decoration:none}.mec-details-addons-wrap p{float:left;width:340px;margin-top:0;margin-bottom:30px}.mec-details-addons-title{font-weight:700}.mec-details-addons-title a{color:#444}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx{border-radius:10px!important;box-shadow:0 4px 38px rgba(0,0,0,.14)!important}body .crisp-client .crisp-1rjpbb7 .crisp-13qutdl,body .crisp-client .crisp-1rjpbb7 .crisp-13qutdl *,body .crisp-client .crisp-1rjpbb7 .crisp-9dgo7z,body .crisp-client .crisp-1rjpbb7 .crisp-9dgo7z *{font-family:proxima-nova,-apple-system,BlinkMacSystemFont,"Segoe UI",Catamaran,sans-serif!important}body .crisp-client .crisp-1rjpbb7 .crisp-145mbcr,body .crisp-client .crisp-1rjpbb7 .crisp-1jrqqbm:hover{background-color:#fff!important}body .crisp-client .crisp-1rjpbb7 .crisp-14u434g{border-color:#e7e8e9!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-1784wh6 .crisp-1xmtdlg .crisp-1bkorcf .crisp-1vzg1qq{font-size:20px!important;width:14px!important;height:19px!important;opacity:.85}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-1784wh6 .crisp-1xmtdlg .crisp-1bkorcf .crisp-1vzg1qq:hover{opacity:.99}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-zyxrmn .crisp-1bu0ive .crisp-1sps3eb .crisp-1vd2grm .crisp-12w4w1a{font-size:13px!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-zyxrmn .crisp-1bu0ive .crisp-1sps3eb .crisp-1vd2grm .crisp-12w4w1a::-webkit-input-placeholder{color:#717273!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-zyxrmn .crisp-1bu0ive .crisp-z7oo2o .crisp-lgu84d .crisp-1ohjrf0 .crisp-dqw9ko .crisp-bhspdv[data-from=visitor] .crisp-z89v5n .crisp-162m9xf{background-color:#008aff!important;color:#fff!important;box-shadow:none!important;border-radius:5px!important;padding:15px 25px 15px!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-zyxrmn .crisp-1bu0ive .crisp-z7oo2o .crisp-lgu84d .crisp-1ohjrf0 .crisp-dqw9ko .crisp-bhspdv[data-from=visitor] .crisp-z89v5n .crisp-162m9xf .crisp-1o2g4mc{color:#fff!important;font-size:13px!important;letter-spacing:.3px!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-zyxrmn .crisp-1bu0ive .crisp-z7oo2o .crisp-lgu84d .crisp-1ohjrf0 .crisp-dqw9ko .crisp-bhspdv .crisp-z89v5n .crisp-162m9xf{background-color:#f1f2f3!important;border-radius:5px!important;padding:15px 25px 15px!important;box-shadow:none!important;color:#121314!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-zyxrmn .crisp-1bu0ive .crisp-z7oo2o .crisp-lgu84d .crisp-1ohjrf0 .crisp-dqw9ko .crisp-bhspdv[data-type=audio] .crisp-z89v5n .crisp-162m9xf{background-color:#d1d7dc!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-zyxrmn .crisp-1bu0ive .crisp-z7oo2o .crisp-lgu84d .crisp-1ohjrf0 .crisp-dqw9ko .crisp-bhspdv[data-from=operator] .crisp-z89v5n .crisp-1o2g4mc{color:#121314!important;-webkit-text-fill-color:#121314!important;font-size:13px!important;letter-spacing:.3px!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-zyxrmn .crisp-1bu0ive .crisp-z7oo2o .crisp-lgu84d .crisp-1ohjrf0 .crisp-dqw9ko .crisp-bhspdv .crisp-mkirz6 .crisp-12qaym5 .crisp-39hskb{opacity:.4;margin-right:5px!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-zyxrmn .crisp-1bu0ive .crisp-z7oo2o .crisp-lgu84d .crisp-1ohjrf0 .crisp-dqw9ko .crisp-bhspdv .crisp-mkirz6 .crisp-12qaym5 .crisp-ehr6mw{opacity:.68;font-size:12px!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-1784wh6 .crisp-1xmtdlg{background-image:linear-gradient(125deg,#008aff -10%,#0066b1 100%)!important;height:110px!important;padding-top:35px!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-1784wh6 .crisp-1xmtdlg .crisp-rhv8pz .crisp-1uw6f17,body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-1784wh6 .crisp-1xmtdlg .crisp-rhv8pz .crisp-85evuk,body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-1784wh6 .crisp-1xmtdlg .crisp-rhv8pz .crisp-nu40j6{font-size:17px!important;line-height:28px!important;padding-top:10px!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-kquevr .crisp-x94m06{background-color:#008aff!important;background-image:linear-gradient(125deg,#008aff -10%,#008af0 100%)!important;box-shadow:0 5px 34px -6px #008aff!important}body .crisp-client .crisp-1rjpbb7 .crisp-4oo1n4{background-color:transparent!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx[data-chat-status=ongoing] .crisp-1784wh6 .crisp-1xmtdlg .crisp-172kolj{margin-top:-10px!important}body .crisp-client .crisp-1rjpbb7[data-last-operator-face=false] .crisp-1rf4xdh .crisp-kquevr .crisp-x94m06 .crisp-16qgsyi .crisp-101bp3x[data-is-ongoing=false]{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1OCIgaGVpZ2h0PSI1NSIgdmlld0JveD0iMCAwIDU4IDU1Ij4NCiAgPGcgaWQ9ImNoYXQtc3ZncmVwby1jb21fMV8iIGRhdGEtbmFtZT0iY2hhdC1zdmdyZXBvLWNvbSAoMSkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTEuNSkiPg0KICAgIDxwYXRoIGlkPSJQYXRoXzEiIGRhdGEtbmFtZT0iUGF0aCAxIiBkPSJNMjksMS41YzE2LjAxNiwwLDI5LDExLjY0MSwyOSwyNmEyNC4wMSwyNC4wMSwwLDAsMS00LjgsMTQuMzE4Yy40LDQuNzQ1LDEuNTQyLDExLjQyOCw0LjgsMTQuNjgyLDAsMC05Ljk0My0xLjQtMTYuNjc3LTUuNDYybC0uMDIyLjAwOWMtMi43NjQtMS44LTUuNTMyLTMuNjU2LTYuMS00LjEyNmExLDEsMCwwLDAtMS4zMy0uMjc3LDEuMDE3LDEuMDE3LDAsMCwwLS40ODkuODQ4Yy0uMDEuNjIyLjAwNS43ODQsNS41ODUsNC40MjFBMzEuOTE0LDMxLjkxNCwwLDAsMSwyOSw1My41Yy0xNi4wMTYsMC0yOS0xMS42NDEtMjktMjZTMTIuOTg0LDEuNSwyOSwxLjVaIiBmaWxsPSIjZmZmIi8+DQogICAgPGNpcmNsZSBpZD0iRWxsaXBzZV8xIiBkYXRhLW5hbWU9IkVsbGlwc2UgMSIgY3g9IjMiIGN5PSIzIiByPSIzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMiAyNC41KSIgZmlsbD0iIzAwOGFmZiIvPg0KICAgIDxjaXJjbGUgaWQ9IkVsbGlwc2VfMiIgZGF0YS1uYW1lPSJFbGxpcHNlIDIiIGN4PSIzIiBjeT0iMyIgcj0iMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjYgMjQuNSkiIGZpbGw9IiMwMDhhZmYiLz4NCiAgICA8Y2lyY2xlIGlkPSJFbGxpcHNlXzMiIGRhdGEtbmFtZT0iRWxsaXBzZSAzIiBjeD0iMyIgY3k9IjMiIHI9IjMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQwIDI0LjUpIiBmaWxsPSIjMDA4YWZmIi8+DQogIDwvZz4NCjwvc3ZnPg0K)!important;height:31px!important;top:16px!important;left:14px!important}body .csh-category-item a h6{text-align:left}.mec-form-row.mec-syn-schedule{background:#f7f7f7;padding:20px;border:1px solid #eee;box-shadow:0 1px 11px rgba(0,0,0,.034);margin-bottom:20px}.mec-form-row.mec-syn-schedule p{padding-left:26px}.mec-form-row.mec-syn-schedule h2{margin-top:0}.mec-form-row.mec-syn-schedule h4{margin:10px 0}li.wns-be-group-menu-li.mec-settings-menu .mec-settings-submenu{position:absolute;top:-1px;right:-222px;width:220px;z-index:9;background:#fff;border:1px;border-style:solid;border-color:#dedede;margin:0;overflow:visible;opacity:0;visibility:hidden;transition:all .23s ease;padding-top:8px;padding-bottom:12px}li.wns-be-group-menu-li.mec-settings-menu:hover>.mec-settings-submenu{visibility:visible;opacity:1}.mec-settings-menu .mec-settings-submenu:before{position:absolute;z-index:999;content:" ";height:0;width:0;border:7px solid transparent;border-right-color:#fff;left:-15px;top:14px;border-right-color:#c5c5c5;right:0}.mec-settings-menu .mec-settings-submenu:after{position:absolute;z-index:999;content:" ";height:0;width:0;border:7px solid transparent;border-right-color:#fff;left:-14px;top:14px}.wns-be-sidebar .mec-settings-menu .mec-settings-submenu a{background:#fff;color:#636363;opacity:1;font-size:12px;padding:6px 4px 6px 26px}
|
2 |
Â
* Bootstrap v3.3.7 (http://getbootstrap.com)
|
3 |
Â
* Copyright 2011-2016 Twitter, Inc.
|
4 |
Â
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
5 |
+
*/#webnus-dashboard button,#webnus-dashboard input,#webnus-dashboard select,#webnus-dashboard textarea{font-family:inherit;font-size:inherit;line-height:inherit}#webnus-dashboard a{color:#337ab7;text-decoration:none}#webnus-dashboard a:focus,#webnus-dashboard a:hover{color:#23527c}#webnus-dashboard a:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}#webnus-dashboard figure{margin:0}#webnus-dashboard img{vertical-align:middle}.w-img-responsive{display:block;max-width:100%;height:auto}.w-img-rounded{border-radius:6px}.w-img-thumbnail{padding:4px;line-height:1w-42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all 0w-2s ease-in-out;-o-transition:all 0w-2s ease-in-out;transition:all 0w-2s ease-in-out;display:inline-block;max-width:100%;height:auto}.w-img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.w-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.w-sr-only-focusable:active,.w-sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.w-container,.w-container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}[role=button]{cursor:pointer}@media (min-width:768px){.w-container{width:750px}}@media (min-width:992px){.w-container{width:970px}}@media (min-width:1200px){.w-container{width:1170px}}.w-row{margin-left:-15px;margin-right:-15px}.w-col-lg-1,.w-col-lg-10,.w-col-lg-11,.w-col-lg-12,.w-col-lg-2,.w-col-lg-3,.w-col-lg-4,.w-col-lg-5,.w-col-lg-6,.w-col-lg-7,.w-col-lg-8,.w-col-lg-9,.w-col-md-1,.w-col-md-10,.w-col-md-11,.w-col-md-12,.w-col-md-2,.w-col-md-3,.w-col-md-4,.w-col-md-5,.w-col-md-6,.w-col-md-7,.w-col-md-8,.w-col-md-9,.w-col-sm-1,.w-col-sm-10,.w-col-sm-11,.w-col-sm-12,.w-col-sm-2,.w-col-sm-3,.w-col-sm-4,.w-col-sm-5,.w-col-sm-6,.w-col-sm-7,.w-col-sm-8,.w-col-sm-9,.w-col-xs-1,.w-col-xs-10,.w-col-xs-11,.w-col-xs-12,.w-col-xs-2,.w-col-xs-3,.w-col-xs-4,.w-col-xs-5,.w-col-xs-6,.w-col-xs-7,.w-col-xs-8,.w-col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.w-col-xs-1,.w-col-xs-10,.w-col-xs-11,.w-col-xs-12,.w-col-xs-2,.w-col-xs-3,.w-col-xs-4,.w-col-xs-5,.w-col-xs-6,.w-col-xs-7,.w-col-xs-8,.w-col-xs-9{float:left}.w-col-xs-12{width:100%}.w-col-xs-11{width:91.66666667%}.w-col-xs-10{width:83.33333333%}.w-col-xs-9{width:75%}.w-col-xs-8{width:66.66666667%}.w-col-xs-7{width:58.33333333%}.w-col-xs-6{width:50%}.w-col-xs-5{width:41.66666667%}.w-col-xs-4{width:33.33333333%}.w-col-xs-3{width:25%}.w-col-xs-2{width:16.66666667%}.w-col-xs-1{width:8w-33333333%}.w-col-xs-pull-12{right:100%}.w-col-xs-pull-11{right:91.66666667%}.w-col-xs-pull-10{right:83.33333333%}.w-col-xs-pull-9{right:75%}.w-col-xs-pull-8{right:66.66666667%}.w-col-xs-pull-7{right:58.33333333%}.w-col-xs-pull-6{right:50%}.w-col-xs-pull-5{right:41.66666667%}.w-col-xs-pull-4{right:33.33333333%}.w-col-xs-pull-3{right:25%}.w-col-xs-pull-2{right:16.66666667%}.w-col-xs-pull-1{right:8w-33333333%}.w-col-xs-pull-0{right:auto}.w-col-xs-push-12{left:100%}.w-col-xs-push-11{left:91.66666667%}.w-col-xs-push-10{left:83.33333333%}.w-col-xs-push-9{left:75%}.w-col-xs-push-8{left:66.66666667%}.w-col-xs-push-7{left:58.33333333%}.w-col-xs-push-6{left:50%}.w-col-xs-push-5{left:41.66666667%}.w-col-xs-push-4{left:33.33333333%}.w-col-xs-push-3{left:25%}.w-col-xs-push-2{left:16.66666667%}.w-col-xs-push-1{left:8w-33333333%}.w-col-xs-push-0{left:auto}.w-col-xs-offset-12{margin-left:100%}.w-col-xs-offset-11{margin-left:91.66666667%}.w-col-xs-offset-10{margin-left:83.33333333%}.w-col-xs-offset-9{margin-left:75%}.w-col-xs-offset-8{margin-left:66.66666667%}.w-col-xs-offset-7{margin-left:58.33333333%}.w-col-xs-offset-6{margin-left:50%}.w-col-xs-offset-5{margin-left:41.66666667%}.w-col-xs-offset-4{margin-left:33.33333333%}.w-col-xs-offset-3{margin-left:25%}.w-col-xs-offset-2{margin-left:16.66666667%}.w-col-xs-offset-1{margin-left:8w-33333333%}.w-col-xs-offset-0{margin-left:0}@media (min-width:768px){.w-col-sm-1,.w-col-sm-10,.w-col-sm-11,.w-col-sm-12,.w-col-sm-2,.w-col-sm-3,.w-col-sm-4,.w-col-sm-5,.w-col-sm-6,.w-col-sm-7,.w-col-sm-8,.w-col-sm-9{float:left}.w-col-sm-12{width:100%}.w-col-sm-11{width:91.66666667%}.w-col-sm-10{width:83.33333333%}.w-col-sm-9{width:75%}.w-col-sm-8{width:66.66666667%}.w-col-sm-7{width:58.33333333%}.w-col-sm-6{width:50%}.w-col-sm-5{width:41.66666667%}.w-col-sm-4{width:33.33333333%}.w-col-sm-3{width:25%}.w-col-sm-2{width:16.66666667%}.w-col-sm-1{width:8w-33333333%}.w-col-sm-pull-12{right:100%}.w-col-sm-pull-11{right:91.66666667%}.w-col-sm-pull-10{right:83.33333333%}.w-col-sm-pull-9{right:75%}.w-col-sm-pull-8{right:66.66666667%}.w-col-sm-pull-7{right:58.33333333%}.w-col-sm-pull-6{right:50%}.w-col-sm-pull-5{right:41.66666667%}.w-col-sm-pull-4{right:33.33333333%}.w-col-sm-pull-3{right:25%}.w-col-sm-pull-2{right:16.66666667%}.w-col-sm-pull-1{right:8w-33333333%}.w-col-sm-pull-0{right:auto}.w-col-sm-push-12{left:100%}.w-col-sm-push-11{left:91.66666667%}.w-col-sm-push-10{left:83.33333333%}.w-col-sm-push-9{left:75%}.w-col-sm-push-8{left:66.66666667%}.w-col-sm-push-7{left:58.33333333%}.w-col-sm-push-6{left:50%}.w-col-sm-push-5{left:41.66666667%}.w-col-sm-push-4{left:33.33333333%}.w-col-sm-push-3{left:25%}.w-col-sm-push-2{left:16.66666667%}.w-col-sm-push-1{left:8w-33333333%}.w-col-sm-push-0{left:auto}.w-col-sm-offset-12{margin-left:100%}.w-col-sm-offset-11{margin-left:91.66666667%}.w-col-sm-offset-10{margin-left:83.33333333%}.w-col-sm-offset-9{margin-left:75%}.w-col-sm-offset-8{margin-left:66.66666667%}.w-col-sm-offset-7{margin-left:58.33333333%}.w-col-sm-offset-6{margin-left:50%}.w-col-sm-offset-5{margin-left:41.66666667%}.w-col-sm-offset-4{margin-left:33.33333333%}.w-col-sm-offset-3{margin-left:25%}.w-col-sm-offset-2{margin-left:16.66666667%}.w-col-sm-offset-1{margin-left:8w-33333333%}.w-col-sm-offset-0{margin-left:0}}@media (min-width:992px){.w-col-md-1,.w-col-md-10,.w-col-md-11,.w-col-md-12,.w-col-md-2,.w-col-md-3,.w-col-md-4,.w-col-md-5,.w-col-md-6,.w-col-md-7,.w-col-md-8,.w-col-md-9{float:left}.w-col-md-12{width:100%}.w-col-md-11{width:91.66666667%}.w-col-md-10{width:83.33333333%}.w-col-md-9{width:75%}.w-col-md-8{width:66.66666667%}.w-col-md-7{width:58.33333333%}.w-col-md-6{width:50%}.w-col-md-5{width:41.66666667%}.w-col-md-4{width:33.33333333%}.w-col-md-3{width:25%}.w-col-md-2{width:16.66666667%}.w-col-md-1{width:8w-33333333%}.w-col-md-pull-12{right:100%}.w-col-md-pull-11{right:91.66666667%}.w-col-md-pull-10{right:83.33333333%}.w-col-md-pull-9{right:75%}.w-col-md-pull-8{right:66.66666667%}.w-col-md-pull-7{right:58.33333333%}.w-col-md-pull-6{right:50%}.w-col-md-pull-5{right:41.66666667%}.w-col-md-pull-4{right:33.33333333%}.w-col-md-pull-3{right:25%}.w-col-md-pull-2{right:16.66666667%}.w-col-md-pull-1{right:8w-33333333%}.w-col-md-pull-0{right:auto}.w-col-md-push-12{left:100%}.w-col-md-push-11{left:91.66666667%}.w-col-md-push-10{left:83.33333333%}.w-col-md-push-9{left:75%}.w-col-md-push-8{left:66.66666667%}.w-col-md-push-7{left:58.33333333%}.w-col-md-push-6{left:50%}.w-col-md-push-5{left:41.66666667%}.w-col-md-push-4{left:33.33333333%}.w-col-md-push-3{left:25%}.w-col-md-push-2{left:16.66666667%}.w-col-md-push-1{left:8w-33333333%}.w-col-md-push-0{left:auto}.w-col-md-offset-12{margin-left:100%}.w-col-md-offset-11{margin-left:91.66666667%}.w-col-md-offset-10{margin-left:83.33333333%}.w-col-md-offset-9{margin-left:75%}.w-col-md-offset-8{margin-left:66.66666667%}.w-col-md-offset-7{margin-left:58.33333333%}.w-col-md-offset-6{margin-left:50%}.w-col-md-offset-5{margin-left:41.66666667%}.w-col-md-offset-4{margin-left:33.33333333%}.w-col-md-offset-3{margin-left:25%}.w-col-md-offset-2{margin-left:16.66666667%}.w-col-md-offset-1{margin-left:8w-33333333%}.w-col-md-offset-0{margin-left:0}}@media (min-width:1200px){.w-col-lg-1,.w-col-lg-10,.w-col-lg-11,.w-col-lg-12,.w-col-lg-2,.w-col-lg-3,.w-col-lg-4,.w-col-lg-5,.w-col-lg-6,.w-col-lg-7,.w-col-lg-8,.w-col-lg-9{float:left}.w-col-lg-12{width:100%}.w-col-lg-11{width:91.66666667%}.w-col-lg-10{width:83.33333333%}.w-col-lg-9{width:75%}.w-col-lg-8{width:66.66666667%}.w-col-lg-7{width:58.33333333%}.w-col-lg-6{width:50%}.w-col-lg-5{width:41.66666667%}.w-col-lg-4{width:33.33333333%}.w-col-lg-3{width:25%}.w-col-lg-2{width:16.66666667%}.w-col-lg-1{width:8w-33333333%}.w-col-lg-pull-12{right:100%}.w-col-lg-pull-11{right:91.66666667%}.w-col-lg-pull-10{right:83.33333333%}.w-col-lg-pull-9{right:75%}.w-col-lg-pull-8{right:66.66666667%}.w-col-lg-pull-7{right:58.33333333%}.w-col-lg-pull-6{right:50%}.w-col-lg-pull-5{right:41.66666667%}.w-col-lg-pull-4{right:33.33333333%}.w-col-lg-pull-3{right:25%}.w-col-lg-pull-2{right:16.66666667%}.w-col-lg-pull-1{right:8w-33333333%}.w-col-lg-pull-0{right:auto}.w-col-lg-push-12{left:100%}.w-col-lg-push-11{left:91.66666667%}.w-col-lg-push-10{left:83.33333333%}.w-col-lg-push-9{left:75%}.w-col-lg-push-8{left:66.66666667%}.w-col-lg-push-7{left:58.33333333%}.w-col-lg-push-6{left:50%}.w-col-lg-push-5{left:41.66666667%}.w-col-lg-push-4{left:33.33333333%}.w-col-lg-push-3{left:25%}.w-col-lg-push-2{left:16.66666667%}.w-col-lg-push-1{left:8w-33333333%}.w-col-lg-push-0{left:auto}.w-col-lg-offset-12{margin-left:100%}.w-col-lg-offset-11{margin-left:91.66666667%}.w-col-lg-offset-10{margin-left:83.33333333%}.w-col-lg-offset-9{margin-left:75%}.w-col-lg-offset-8{margin-left:66.66666667%}.w-col-lg-offset-7{margin-left:58.33333333%}.w-col-lg-offset-6{margin-left:50%}.w-col-lg-offset-5{margin-left:41.66666667%}.w-col-lg-offset-4{margin-left:33.33333333%}.w-col-lg-offset-3{margin-left:25%}.w-col-lg-offset-2{margin-left:16.66666667%}.w-col-lg-offset-1{margin-left:8w-33333333%}.w-col-lg-offset-0{margin-left:0}}.w-clearfix:after,.w-clearfix:before,.w-container-fluid:after,.w-container-fluid:before,.w-container:after,.w-container:before,.w-row:after,.w-row:before{content:" ";display:table}.w-clearfix:after,.w-container-fluid:after,.w-container:after,.w-row:after{clear:both}.w-center-block{display:block;margin-left:auto;margin-right:auto}.w-pull-right{float:right!important}.w-pull-left{float:left!important}.w-hide{display:none!important}.w-show{display:block!important}.w-invisible{visibility:hidden}.w-text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.w-hidden{display:none!important}.w-affix{position:fixed}.mec-image-popup-wrap{display:none}#wns-be-infobar.sticky{position:fixed;top:32px;background:#fff;z-index:9999;width:82%}.wns-be-main .wns-saved-settings.sticky{position:fixed;width:62.5%;top:111px;z-index:999999999999999999}#mec-search-settings{border-radius:2px;min-height:32px;box-shadow:0 3px 14px -5px rgba(0,0,0,.2),inset 0 1px 2px rgba(0,0,0,.07);padding:9px 10px 11px;margin-right:6px;color:#7c7772;font-size:12px;width:200px}#mec-search-settings::-webkit-input-placeholder{color:#7c7772}#mec-search-settings::-moz-placeholder{color:#7c7772}#mec-search-settings:-ms-input-placeholder{color:#7c7772}#mec-search-settings:-moz-placeholder{color:#7c7772}.mec-export-settings,.mec-import-settings{font-weight:700;border-radius:2px;box-shadow:0 3px 10px -4px #008aff;text-shadow:none;background:#008aff;background:linear-gradient(95deg,#36a2ff 0,#008aff 50%,#0072ff 100%);border:none;transition:.24s;padding:8px 32px;height:36px;letter-spacing:.2px;line-height:36px;font-size:13px;color:#fff;text-decoration:none;display:inline-block}.mec-export-settings:hover,.mec-import-settings:hover{background:#222;background:linear-gradient(95deg,#555 0,#222 50%,#000 100%);box-shadow:0 5px 23px -7px rgba(0,0,0,.5);color:#fff}textarea.mec-import-settings-content{display:block;width:100%;min-height:120px;margin-bottom:25px;padding:10px 15px}.mec-import-options-notification{display:inline-block}.mec-import-options-notification .mec-message-import-error,.mec-import-options-notification .mec-message-import-success{display:inline-block;padding:15px 12px;margin-left:12px;opacity:0;visibility:hidden;font-weight:700}.mec-import-options-notification .mec-message-import-success{opacity:1;visibility:visible;border:2px solid green}.mec-import-options-notification .mec-message-import-error{opacity:1;visibility:visible;border:2px solid #e62117}.mec-export-settings:focus,.mec-import-settings:focus{color:#fff}.mec-import-settings-wrap{position:relative}.mec-loarder-wrap{position:absolute;top:0;bottom:0;left:0;right:0;background:rgba(202,202,202,.7);z-index:9999}.mec-loarder-wrap.mec-settings-loader{top:34px}.mec-loarder{position:absolute;width:64px;height:64px;top:calc(50% - 32px);left:calc(50% - 36px)}.mec-loarder div{display:inline-block;position:absolute;left:6px;width:4px;background:#fff;animation:mec-loarder 1.2s cubic-bezier(0,.5,.5,1) infinite}.mec-loarder div:nth-child(1){left:27px;animation-delay:-.24s;background:#0075ff}.mec-loarder div:nth-child(2){left:36px;animation-delay:-.12s;background:#028bff}.mec-loarder div:nth-child(3){left:45px;animation-delay:0;background:#32a0ff}@keyframes mec-loarder{0%{top:6px;height:51px}100%,50%{top:19px;height:26px}}.w-box.support-page.searchbox{background:#008aff;background:linear-gradient(180deg,#36a2ff 0,#008aff 50%,#0072ff 100%);color:#fff;min-height:260px;text-align:center;border-radius:2px}#webnus-dashboard .search-form input{background:rgba(255,255,255,.2);border:none;width:50%;outline:0;color:rgba(255,255,255,.7);font-size:18px;border-radius:4px 0 0 4px;box-shadow:0 1px 2px 0 rgba(0,0,0,.03);-webkit-transition:background .4s,box-shadow .2s;transition:background .4s,box-shadow .2s;padding:20px 32px;margin:0}#webnus-dashboard .search-form button{background:rgba(255,255,255,.2);border:none;padding:20px 32px;margin-left:-2px;color:#fff;border-radius:0 4px 4px 0;font-size:18px;cursor:pointer;-webkit-transition:background .4s,box-shadow .2s;transition:background .4s,box-shadow .2s}#webnus-dashboard .search-form button:hover{background:#fff;color:#3a3c4c}.w-box.support-page.searchbox p{font-size:30px}.search-form input::-webkit-input-placeholder{color:rgba(255,255,255,.7)}.search-form input::-moz-placeholder{color:rgba(255,255,255,.7)}.search-form input:-ms-input-placeholder{color:rgba(255,255,255,.7)}.search-form input:-moz-placeholder{color:rgba(255,255,255,.7)}#webnus-dashboard .search-form input:active,#webnus-dashboard .search-form input:focus{box-shadow:0 10px 20px rgba(0,0,0,.14);background:#fff;color:#3a3c4c}#webnus-dashboard .search-form input:active::-webkit-input-placeholder,#webnus-dashboard .search-form input:focus::-webkit-input-placeholder{color:#3a3c4c}#webnus-dashboard .search-form input:active::-moz-placeholder,#webnus-dashboard .search-form input:focus::-moz-placeholder{color:#3a3c4c}#webnus-dashboard .search-form input:active:-ms-input-placeholder,#webnus-dashboard .search-form input:focus:-ms-input-placeholder{color:#3a3c4c}#webnus-dashboard .search-form input:active:-moz-placeholder,#webnus-dashboard .search-form input:focus:-moz-placeholder{color:#3a3c4c}#webnus-dashboard .w-box.support-page.mec-ticksy{text-align:center;min-height:260px}#webnus-dashboard .w-box.support-page.mec-ticksy p{font-size:20px;width:70%;margin:0 auto;margin-bottom:40px;margin-top:40px}#webnus-dashboard .w-box.support-page.mec-ticksy a{color:#fff;font-weight:500;border-radius:2px;box-shadow:0 3px 10px -4px #008aff;text-shadow:none;background:#008aff;background:linear-gradient(95deg,#36a2ff 0,#008aff 50%,#0072ff 100%);border:none;transition:.24s;padding:12px 20px;cursor:pointer;margin-bottom:40px;display:inline-block}#webnus-dashboard .w-box.support-page.mec-ticksy a:hover{background:#222;background:linear-gradient(95deg,#555 0,#222 50%,#000 100%);box-shadow:0 5px 23px -7px rgba(0,0,0,.5)}.mec-faq-accordion>.mec-faq-accordion-content{display:none}#webnus-dashboard .mec-faq-accordion-trigger a{font-size:16px;padding:12px;background:#f1f1f1;display:block;color:#222;line-height:17px;outline:0}.mec-faq-accordion-trigger{margin-bottom:5px;position:relative}#webnus-dashboard .mec-faq-accordion-trigger a:after{font-family:simple-line-icons;content:"\e095";position:absolute;right:12px;font-weight:700}.mec-faq-accordion-content{padding:5px 14px 25px}#webnus-dashboard .mec-faq-accordion-trigger a.active:after{content:"\e082"}#webnus-dashboard .support-page-links a{background-color:#fff;color:#fff;border-radius:2px;padding:13px 24px;font-size:12px;letter-spacing:1px;font-weight:600;text-transform:uppercase}#webnus-dashboard .support-page-links a:hover,#webnus-dashboard .w-box.support-page.videobox .w-button a:hover{background:#222;background:linear-gradient(95deg,#555 0,#222 50%,#000 100%);box-shadow:0 5px 21px -5px rgba(0,0,0,.5)}#webnus-dashboard .support-page-links{display:inline-block;margin:12px 4px 16px 0}.support-page-links.link-to-doc a{background:#4cbf67;background:linear-gradient(95deg,#6fe08a 0,#58cf74 50%,#36cb58 100%);box-shadow:0 5px 10px -5px #4cbf67}.support-page-links.link-to-videos a{background:#ff876c;background:linear-gradient(95deg,#ff876c 0,#ff7455 50%,#ff5a35 100%);box-shadow:0 5px 10px -5px #ff876c}.support-page-links.link-to-articles a{background:#b092e6;background:linear-gradient(95deg,#b092e6 0,#9b70e8 50%,#8e5cea 100%);box-shadow:0 5px 10px -5px #b092e6}.w-box.support-page.articles-box .w-box-content a{display:block;padding:6px 0}#webnus-dashboard .w-box.support-page.videobox .w-button a{color:#fff;font-size:10px;padding:5px 15px;min-height:10px;font-weight:500;border-radius:22px;box-shadow:0 3px 10px -4px #ff5a35;text-shadow:none;background:#ff5a35;background:linear-gradient(95deg,#ff876c 0,#ff7455 50%,#ff5a35 100%);border:none;transition:.24s}.w-box.support-page.articles-box,.w-box.support-page.faq-box{min-height:500px}.w-box.support-page.videobox{border-radius:2px;min-height:282px;box-shadow:0 1px 6px rgba(0,0,0,.039)!important}#webnus-dashboard .w-box.support-page.videobox .w-button a i{margin-right:6px}.support-page .w-box-content ul{margin-top:5px;padding-left:5px}.support-page .w-box-content ul li{font-size:13px}.support-page .w-box-content ul li i{font-size:17px;vertical-align:text-bottom;margin-right:7px;color:#999}.w-box.mec-activation{background:#fff url(../img/dp-dsb-support.jpg) no-repeat top right}.w-box.mec-activation .w-box-head{color:#40d8f0;width:75%}.w-box.mec-activation .w-box-content{padding:10px 30px}.w-box.mec-activation input[type=radio]{display:none}.w-box.mec-activation input[type=radio]+label{color:#000;font-size:13px;line-height:14px!important;color:#7b7b7b}.w-box.mec-activation input[type=radio].checked+label{color:#40d8f0}.w-box.mec-activation input[type=radio]+label span{display:inline-block;margin:-2px 6px 0 0;vertical-align:middle;cursor:pointer;height:14px;width:14px;text-align:center;background-color:#fff;border:1px solid #d4d4d4;border-radius:100%;box-shadow:0 2px 16px -2px rgba(0,0,0,.2);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative}.w-box.mec-activation input[type=radio].checked+label span{background-color:#40d8f0;border-color:#40d8f0;box-shadow:0 2px 14px -3px #40d8f0}.w-box.mec-activation input[type=radio].checked+label span:after{content:'';display:block;position:absolute;top:4px;left:4px;width:4px;height:4px;background:#fff;border-radius:100%}.w-box.mec-activation .LicenseType label{padding-right:20px;font-weight:500}.w-box.mec-activation .LicenseField{display:inline-block;position:relative;margin-top:20px}.w-box.mec-activation input[name=MECPurchaseCode]{box-shadow:inset 0 1px 2px rgba(0,0,0,.07);min-width:220px;background:#f4f4f4;border:none;border-radius:33px;width:500px;min-height:50px;margin:0;padding-left:20px;text-align:left}#webnus-dashboard .w-box.mec-activation input[type=submit]{height:40px;line-height:40px;font-weight:600;border:none;cursor:pointer;padding:0 30px;border-radius:33px;color:#fff;letter-spacing:1px;text-transform:uppercase;font-size:12px;background:#4cbf67;background:linear-gradient(95deg,#6fe08a 0,#58cf74 50%,#36cb58 100%);box-shadow:0 5px 10px -5px #4cbf67;transition:all .28s ease;position:absolute;right:5px;top:4px;font-size:12px}#webnus-dashboard .w-box.mec-activation input[type=submit]:hover{background:#222;background:linear-gradient(95deg,#555 0,#222 50%,#000 100%);box-shadow:0 5px 23px -7px rgba(0,0,0,.5)}#MECActivation .MECPurchaseStatus,.addon-activation-form .MECPurchaseStatus{display:inline-block;width:40px;height:40px;text-align:center;padding-top:9px;color:#fff;font-weight:700;font-size:18px;border-radius:50%;padding-top:8px;position:absolute;right:-51px;top:calc(50% - 20px)}.MECPurchaseStatus:after,.MECPurchaseStatus:before{position:absolute;border-radius:50px;background:#fff;content:'';transform:rotate(45deg)}.MECPurchaseStatus.PurchaseError:before{width:22px;height:4px;right:9px;top:18px;transform:rotate(45deg)}.MECPurchaseStatus.PurchaseError:after{width:22px;height:4px;right:9px;top:18px;transform:rotate(-45deg)}.MECPurchaseStatus.PurchaseSuccess:before{width:13px;height:4px;right:19px;top:21px;transform:rotate(45deg)}.MECPurchaseStatus.PurchaseSuccess:after{width:22px;height:4px;right:5px;top:18px;transform:rotate(-45deg)}#MECActivation .MECPurchaseStatus.PurchaseError,.addon-activation-form .MECPurchaseStatus.PurchaseError{background:#ff876c;background:linear-gradient(95deg,#ff876c 0,#ff7455 50%,#ff5a35 100%);box-shadow:0 5px 10px -5px #ff876c}#MECActivation .MECPurchaseStatus.PurchaseSuccess,.addon-activation-form .MECPurchaseStatus.PurchaseSuccess{background:#4cbf67;background:linear-gradient(95deg,#6fe08a 0,#58cf74 50%,#36cb58 100%);box-shadow:0 5px 10px -5px #4cbf67}.wna-spinner-wrap{position:absolute;background:#000;width:509px;height:64px;top:-8px;border-radius:50px;z-index:999;background-color:#fff;opacity:.9}.wna-spinner{width:40px;height:40px;position:relative;margin:6px auto}.wna-spinner .double-bounce1,.wna-spinner .double-bounce2{width:100%;height:100%;border-radius:50%;background-color:#40d8f0;opacity:.6;position:absolute;top:0;left:0;-webkit-animation:sk-bounce 2s infinite ease-in-out;animation:sk-bounce 2s infinite ease-in-out}.wna-spinner .double-bounce2{-webkit-animation-delay:-1s;animation-delay:-1s}#MECActivation .MECLicenseMessage,.addon-activation-form .MECLicenseMessage{margin-top:24px;color:#f64;max-width:570px}.box-addon-activation-toggle-content,.box-addon-activation-toggle-head{display:none}.addon-activation-form h3{font-size:15px;font-weight:400;margin:34px 0 -7px}.box-addon-activation-toggle-head{line-height:1.5;font-size:16px;margin-top:20px;cursor:pointer}.box-addon-activation-toggle-head i{margin-right:7px;cursor:pointer;font-weight:700}#mec-advanced-wraper div:first-child>ul{display:block;margin:5px 0;padding:5px 0;width:390px;border:1px solid #e1e2e3;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.05)}#mec-advanced-wraper div:first-child>ul span{display:none}#mec-advanced-wraper div:first-child>ul *{display:inline-block;background:#fff;font-size:12px;color:#717273;text-align:center}#mec-advanced-wraper div:first-child>ul>li{width:60px;font-weight:700;margin:0 10px 0 0;padding:4px 0;border-right:1px solid #e1e2e3}#mec-advanced-wraper div:first-child>ul>ul>li{margin:0;padding:2px 10px;cursor:pointer;border-radius:2px;transition:all .18s ease}#mec-advanced-wraper div:first-child>ul>ul>li:hover,.mec-active{background:#008aff!important;color:#fff!important}@-webkit-keyframes sk-bounce{0%,100%{-webkit-transform:scale(0)}50%{-webkit-transform:scale(1)}}@keyframes sk-bounce{0%,100%{transform:scale(0);-webkit-transform:scale(0)}50%{transform:scale(1);-webkit-transform:scale(1)}}.w-col-sm-3 .w-box.addon{min-height:auto;box-shadow:0 3px 16px -5px rgba(0,0,0,.1);border-radius:2px}.w-box-child.mec-addon-box{padding:20px 20px}.mec-addon-box-head{border-bottom:1px solid #e8e8e8;padding-bottom:5px;margin-bottom:14px;position:relative}.mec-addon-box-version{position:relative;background:#eaeaea;border-radius:1px;padding:0 8px;color:#5a5a5a;font-size:11px;letter-spacing:.2px;line-height:21px;display:inline-block;margin:3px 0}.mec-addon-box-title{font-weight:700;font-size:18px;line-height:25px}.mec-addon-box-title a span{color:#444;font-size:15px}.mec-addon-box-content p{color:#777;font-size:13px}.mec-addon-box-mec-version{background:#f3f3f3;padding:10px;font-size:13px}#webnus-dashboard .addons-page-links{display:inline-block;margin:12px 4px 16px 0}#webnus-dashboard .addons-page-links a{background-color:#fff;color:#fff;border-radius:2px;padding:13px 24px;font-size:12px;letter-spacing:1px;font-weight:600;text-transform:uppercase}.addons-page-links.link-to-purchase a{background:#4cbf67;background:linear-gradient(95deg,#6fe08a 0,#58cf74 50%,#36cb58 100%);box-shadow:0 5px 10px -5px #4cbf67}.addons-page-links.link-to-install-addons a{background:#b092e6;background:linear-gradient(95deg,#b092e6 0,#9b70e8 50%,#8e5cea 100%);box-shadow:0 5px 10px -5px #b092e6}#webnus-dashboard .addons-page-links a:hover,#webnus-dashboard .w-box.addons-page.videobox .w-button a:hover{background:#222;background:linear-gradient(95deg,#555 0,#222 50%,#000 100%);box-shadow:0 5px 21px -5px rgba(0,0,0,.5)}.mec-addon-box-footer{margin-top:25px}#webnus-dashboard .mec-addon-box-footer a{font-weight:500;border-radius:2px;box-shadow:0 3px 10px -4px #008aff;text-shadow:none;background:#008aff;background:linear-gradient(95deg,#36a2ff 0,#008aff 50%,#0072ff 100%);border:none;transition:.24s;padding:7px 19px;margin-top:10px;display:inline-block;letter-spacing:.2px;color:#fff;width:100%;text-align:center}#webnus-dashboard .mec-addon-box-footer a.mec-addon-box-intro{box-shadow:0 3px 10px -4px #ff5a35;background:linear-gradient(95deg,#ff876c 0,#ff7455 50%,#ff5a35 100%)}#webnus-dashboard .mec-addon-box-footer a:hover{background:#222!important;background:linear-gradient(95deg,#555 0,#222 50%,#000 100%)!important;box-shadow:0 5px 23px -7px rgba(0,0,0,.5)!important;cursor:pointer!important}#webnus-dashboard .mec-addon-box-footer a i{margin-right:6px;color:#fff}@media(max-width:1366px){.wns-be-container #wns-be-content{padding:5px 15px 0}.mec-form-row .mec-col-8 label{font-size:10px}#webnus-dashboard .mec-tooltip .box p,.mec-tooltip .box p{font-size:10px}}@media (max-width:780px){.wns-be-container #wns-be-content{padding:10px 0}.wns-be-container .mec-form-row .mec-col-8 label{width:50%;display:block}.wns-be-container .mec-form-row input[type=checkbox]{width:14px;height:14px}.wns-be-container .wns-be-sidebar li .subsection a{padding-left:30px}.wns-be-container .wns-be-sidebar{width:200px}.wns-be-container .wns-be-main{margin-left:200px}.wns-be-container .mec-tooltip .box{min-width:235px!important}.wns-be-container .mec-tooltip .box p{font-size:12px!important}#wns-be-infobar.sticky{position:unset}}@media (max-width:480px){.wns-be-container .wns-be-sidebar{width:100%;position:unset;float:none}.wns-be-container .wns-be-main{margin-left:0;width:100%;position:unset}.wns-be-container{margin-top:50px}.wns-be-container #wns-be-infobar:before{width:100%}.wns-be-container #wns-be-infobar{height:150px}#mec-search-settings{margin-top:80px;width:181px}}.addons-page-error,.addons-page-notice{display:block;margin-top:15px;margin-bottom:0;background:#fff;border-left:4px solid #00a0d2;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);padding:1px 12px}.addons-page-error p,.addons-page-notice p{margin:.5em 0;padding:2px;font-size:13px}.addons-page-error{border-left-color:#dc3232}.mec-addon-box-comingsoon{background:#eaeaea;padding:8px 11px;color:#5a5a5a;font-size:14px;font-weight:500;text-align:center}.mec-addons .w-row .w-col-sm-3:nth-child(4n+1){clear:left}@media (min-width:960px){#webnus-dashboard .mec-addon-box-footer .w-button{text-align:right}}@media (min-width:1401px){.mec-addon-box-title a span{font-size:17px}}.mec-pro-notice{margin-top:24px;line-height:30px}.mec-pro-notice .info-msg{padding:50px 30px;margin-bottom:0}#webnus-dashboard .mec-pro-notice .info-msg{background:#fff;box-shadow:0 1px 16px rgba(0,0,0,.034);text-align:center;color:#000}#webnus-dashboard a.info-msg-link{background:#e66f52;background:linear-gradient(95deg,#ff8162 0,#e66f52 50%,#ff4c20 100%);box-shadow:0 5px 10px -5px #e66f52;border-radius:2px;padding:12px 50px;font-size:16px;line-height:24px;border:none;margin:20px auto 0;color:#fff;transition:all .3s ease;display:inline-block}#webnus-dashboard a.info-msg-link:hover{background:#222;background:linear-gradient(95deg,#555 0,#222 50%,#000 100%);box-shadow:0 5px 21px -5px rgba(0,0,0,.5)}#webnus-dashboard .info-msg p{width:70%;margin:0 auto;line-height:1.8}#webnus-dashboard .info-msg-coupon{font-size:13px;color:#777;max-width:600px;line-height:1.68;margin:25px auto 0}#webnus-dashboard .info-msg-coupon strong{font-weight:700;color:#19ce18}.info-msg .socialfollow{padding-top:20px}.info-msg .socialfollow a{margin:0 2px;display:inline-block}.info-msg .socialfollow a i{background:#96a4b1;color:#fff;padding:6px;border-radius:3px;font-size:18px;box-shadow:0 2px 3px rgba(0,0,0,.1);transition:all .25s}.info-msg .socialfollow a:hover i{background:#008aff}.mec-intro-section .w-box-content{text-align:center}.mec-intro-section .w-box-content.mec-intro-section-welcome{max-width:600px;margin:0 auto}.mec-intro-section .w-box-content.mec-intro-section-welcome h3{font-size:27px}a.mec-intro-section-link-tag.button.button-hero{margin:0 10px 40px}a.mec-intro-section-link-tag.button.button-primary.button-hero{color:#fff!important}a.mec-intro-section-link-tag.button.button-secondary.button-hero{color:#000!important}.mec-intro-section-ifarme iframe{border:1px solid #e7e7e7;border-radius:3px;padding:10px;box-shadow:0 3px 10px -6px rgba(0,0,0,.2)}.w-box-content.mec-intro-section-welcome p{margin-bottom:0}.mec-tooltip a:focus{box-shadow:none}#mec_booking_form .mec-options-fields,#mec_modules_form .mec-options-fields,#mec_settings_form .mec-options-fields,#mec_single_form .mec-options-fields{padding-bottom:150px!important}#mec_taxes_fees_container_toggle{margin-bottom:60px}#mec_taxes_fees_container_toggle{margin-bottom:60px}.wns-be-sidebar li{position:relative}.wns-be-sidebar li .submneu-hover{position:absolute;top:-1px;right:-222px;width:220px;z-index:9;background:#fff;border:1px;border-style:solid;border-color:#dedede;margin:0;overflow:visible;opacity:0;visibility:hidden;transition:all .23s ease;padding-top:8px;padding-bottom:12px}.wns-be-sidebar li:hover{background:#fff}.wns-be-sidebar li:hover .submneu-hover{opacity:1;visibility:visible}.wns-be-sidebar li .submneu-hover a{background:#fff;color:#636363;opacity:1;font-size:12px;padding:6px 4px 6px 26px}.wns-be-sidebar li .submneu-hover a:hover{background:#f6f6f6;color:#222}.wns-be-sidebar li .submneu-hover:before{position:absolute;z-index:999;content:" ";height:0;width:0;border:7px solid transparent;border-right-color:#fff;left:-15px;top:14px;border-right-color:#c5c5c5;right:0}.wns-be-sidebar li .submneu-hover:after{position:absolute;z-index:999;content:" ";height:0;width:0;border:7px solid transparent;border-right-color:#fff;left:-14px;top:14px}.wns-be-sidebar li a:focus,.wns-be-sidebar li:focus{outline:-webkit-focus-ring-color auto 0;border:0;box-shadow:none}@media (max-width:480px){.wns-be-sidebar li .submneu-hover{width:175px;right:0}.wns-be-sidebar li .submneu-hover a{font-size:11px;padding:5px 5px 5px 20px}}.mec-tooltip:hover:after,.mec-tooltip:hover:before{display:none}.mec-tooltip{display:inline-flex;bottom:7px}.mec-tooltip .box{min-width:300px;max-width:600px;display:inline-block;left:26px;top:50%;transform:translateY(-50%);padding:0;margin-top:8px;background-color:#535a61;color:#fff;font-weight:300;font-size:14px;letter-spacing:.5px;line-height:1.3;position:absolute;z-index:9999999;box-sizing:border-box;border-radius:6px;box-shadow:0 4px 45px -8px #444b50;visibility:hidden;opacity:0;transition:opacity .23s}#webnus-dashboard .mec-tooltip .box p,.mec-tooltip .box p{color:#fff;font-size:14px;line-height:1.3;margin:0}.mec-tooltip:hover .box{visibility:visible;opacity:1}.mec-tooltip:hover .box{padding:20px;border-radius:8px}.mec-tooltip .box h5{color:#fff;font-size:17px;font-weight:600;margin:-30px -20px;padding:20px 0;text-align:center;margin-bottom:10px;background:#3a3f44;border-bottom:1px solid #32363a;border-radius:6px 6px 0 0;z-index:9999}#webnus-dashboard .mec-tooltip .box p a,.mec-tooltip .box p a{color:#40d9f1;margin-top:10px;margin-left:0;font-weight:400;position:relative;text-decoration:none;display:block;width:max-content}.mec-tooltip .box a:hover{color:#f90}.mec-tooltip .box:after{display:block;position:absolute!important;top:100%!important;right:50%!important;margin-top:-6px!important;margin-right:-6px!important;width:12px!important;height:24px!important;overflow:hidden!important;transform:rotate(-90deg)!important}.mec-tooltip .box:before{display:block;content:''!important;position:absolute!important;width:12px;height:12px;left:-10px!important;top:50%!important;transform:translate(50%,-50%) rotate(-45deg)!important;background-color:#535a61!important;box-shadow:0 8px 9px -4px #535a61!important;z-index:0!important}.mec-tooltip .box.top{left:50%;top:0;transform:translate(-50%,-100%);margin-top:0;margin-left:-10px}.mec-tooltip .box.top:after{top:50%!important;right:100%!important}.mec-tooltip .box.top:before{left:50%!important;top:100%!important}.mec-tooltip .box.bottom{left:50%;top:auto;bottom:0;transform:translate(-50%,100%);margin-bottom:-20px;margin-left:-10px}.mec-tooltip .box.bottom:after{top:0!important;right:50%!important;background-color:#3a3f44!important}.mec-tooltip .box.bottom:before{left:50%!important;top:-7px!important;transform:translateX(-50%);background-color:#3a3f44!important}.mec-tooltip .box.left{left:auto;right:26px;top:50%;transform:translateY(-50%)}.mec-tooltip .box.left:before{right:0!important;left:auto!important;top:50%!important}form#mec_reg_fields_form input[type=radio]:before{content:"";display:inline-block;background:#fff;border-radius:18px;width:14px;height:14px;margin:-1px 0 0 -2px;cursor:pointer;border:2px solid #e1e7ed;box-shadow:0 2px 15px -3px rgba(69,77,89,.32)}form#mec_reg_fields_form input[type=radio]:checked:before{border:7px solid #008aff;background:#fff;box-shadow:0 3px 16px -3px #008aff;width:4px;height:4px}form#mec_reg_fields_form input[type=radio]{min-height:0;margin-right:6px}form#mec_reg_fields_form label{margin-right:20px}@media(min-width:1200px) and (max-width:1366px){.mec-tooltip .box.left{left:50%;top:0;transform:translate(-50%,-100%);margin-top:0;margin-left:-10px}.mec-tooltip .box.left:after{top:50%!important;right:100%!important}.mec-tooltip .box.left:before{left:50%!important;top:100%!important}.mec-tooltip .box{min-width:225px}.mec-tooltip .box h5{font-size:15px}.mec-tooltip .box .content{font-size:12px}}@media(max-width:1366px){.wns-be-container .wns-be-group-tab p{margin-top:0}}.mec-addons-notification-box-wrap .w-col-sm-12{padding:0}.mec-addons-notification-box-wrap img{width:auto}.mec-addons-notification-box-image{width:555px;display:inline-block;vertical-align:top}.mec-addons-notification-box-content{width:calc(100% - 559px);display:inline-block}.mec-addons-notification-box-content p{margin-top:1%;line-height:1.5;font-size:16px}.mec-addons-notification-box-content .w-box-content{padding-top:0;padding-bottom:0}.mec-addons-notification-box-content ol{font-size:16px}.mec-addons-notification-box-content a{background:#38d5ed;color:#fff!important;padding:10px 26px;margin-top:5px;display:inline-block;border-radius:3px;text-transform:capitalize;font-size:16px;letter-spacing:.4px;transition:all .1s ease;font-weight:600;text-decoration:none}.mec-addons-notification-box-content a:hover{background:#000}.w-clearfix.w-box.mec-addons-notification-box-wrap span{right:0;left:unset;cursor:pointer;background:#fff;padding:0 16px}.w-clearfix.w-box.mec-addons-notification-box-wrap span i{font-size:28px;vertical-align:sub;color:#f2113e}.wns-be-container .mec-addons-notification-wrap{padding:0;margin:0}.wns-be-container .mec-addons-notification-wrap .w-col-sm-12{padding:0}.wns-be-container .w-box{margin-top:0}.wns-be-container.mec-addons-notification-set-box{margin-right:15px;margin-top:50px;margin-bottom:27px}@media(max-width:1200px){.mec-addons-notification-box-content,.mec-addons-notification-box-image{width:100%;display:block}.mec-addons-notification-box-image{text-align:center}}@media(max-width:768px){.mec-addons-notification-box-image img{width:100%;height:auto}}body.rtl .wns-be-sidebar{width:260px;float:right;position:relative}body.rtl .wns-be-main{margin-left:0;border-left:0;margin-right:260px;border-right:1px solid #dedede}body.rtl .w-box.mec-activation .LicenseField{direction:rtl}body.rtl .w-box.mec-activation input[name=MECPurchaseCode]{text-align:right;padding-right:20px}body.rtl #MECActivation .MECPurchaseStatus,body.rtl .addon-activation-form .MECPurchaseStatus{right:auto;left:-51px}body.rtl #webnus-dashboard .w-box.mec-activation input[type=submit]{right:auto;left:5px}body.rtl .wns-be-sidebar .wns-be-group-menu li a{padding:13px 20px 13px 4px}body.rtl .wns-be-sidebar .wns-be-group-tab-link-a span.wns-be-group-menu-title{padding-left:0;padding-right:24px}body.rtl .wns-be-sidebar .has-sub span.extra-icon{float:left}body.rtl .wns-be-sidebar .wns-be-group-tab-link-a span.extra-icon i{right:auto;left:10px}body.rtl .wns-be-sidebar .wns-be-group-menu li .subsection li.active a:after,body.rtl .wns-be-sidebar .wns-be-group-menu li .subsection li.active a:before{position:absolute;z-index:999;content:" ";height:0;width:0;border:7px solid transparent;border-right-color:transparent;border-left-color:#fff;right:auto;left:-1px;top:10px}body.rtl .wns-be-sidebar .wns-be-group-menu li .subsection li.active a:before{border-right-color:transparent;border-left-color:#c5c5c5;right:auto;left:0}body.rtl .mec-col-1,body.rtl .mec-col-10,body.rtl .mec-col-11,body.rtl .mec-col-12,body.rtl .mec-col-2,body.rtl .mec-col-3,body.rtl .mec-col-4,body.rtl .mec-col-5,body.rtl .mec-col-6,body.rtl .mec-col-7,body.rtl .mec-col-8,body.rtl .mec-col-9{float:right;margin:0 1% 0 0}body.rtl .wns-be-sidebar li .submneu-hover{right:auto;left:-222px}body.rtl .wns-be-sidebar li .submneu-hover:after{position:absolute;z-index:999;content:" ";height:0;width:0;border:7px solid transparent;border-right-color:#fff;left:auto;right:-1px;top:14px}body.rtl #mec_styles_form #mec_styles_CSS{direction:ltr}body.rtl .w-box.mec-activation{-moz-transform:scaleY(-1);-o-transform:scaleY(-1);-webkit-transform:scaleY(-1);transform:scaleX(-1)}body.rtl .w-box.mec-activation .w-box-content,body.rtl .w-box.mec-activation .w-box-head{-moz-transform:scaleY(-1);-o-transform:scaleY(-1);-webkit-transform:scaleY(-1);transform:scaleX(-1);display:block}body.rtl .w-box.mec-activation .w-box-head{width:100%}body.rtl .wns-be-container #wns-be-infobar:before{left:auto;right:0}body.rtl .wns-be-container .dpr-btn.dpr-save-btn{float:left}body.rtl .wns-be-container .wns-be-group-tab h2:before,body.rtl .wns-be-container .wns-be-group-tab h4:before{left:auto;right:0;margin-right:0;margin-left:5px}body.rtl #mec_gateways_form .mec-tooltip{float:left}div#plugin-information-content .section{margin-top:-600px}.mec-details-addons-container{margin-top:20px}.mec-details-addons-wrap img{float:left;width:19%;margin-right:17px}.mec-details-addons-wrap{clear:both;margin-bottom:80px;display:block;position:relative}.mec-details-addons-wrap a{text-decoration:none}.mec-details-addons-wrap p{float:left;width:340px;margin-top:0;margin-bottom:30px}.mec-details-addons-title{font-weight:700}.mec-details-addons-title a{color:#444}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx{border-radius:10px!important;box-shadow:0 4px 38px rgba(0,0,0,.14)!important}body .crisp-client .crisp-1rjpbb7 .crisp-13qutdl,body .crisp-client .crisp-1rjpbb7 .crisp-13qutdl *,body .crisp-client .crisp-1rjpbb7 .crisp-9dgo7z,body .crisp-client .crisp-1rjpbb7 .crisp-9dgo7z *{font-family:proxima-nova,-apple-system,BlinkMacSystemFont,"Segoe UI",Catamaran,sans-serif!important}body .crisp-client .crisp-1rjpbb7 .crisp-145mbcr,body .crisp-client .crisp-1rjpbb7 .crisp-1jrqqbm:hover{background-color:#fff!important}body .crisp-client .crisp-1rjpbb7 .crisp-14u434g{border-color:#e7e8e9!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-1784wh6 .crisp-1xmtdlg .crisp-1bkorcf .crisp-1vzg1qq{font-size:20px!important;width:14px!important;height:19px!important;opacity:.85}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-1784wh6 .crisp-1xmtdlg .crisp-1bkorcf .crisp-1vzg1qq:hover{opacity:.99}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-zyxrmn .crisp-1bu0ive .crisp-1sps3eb .crisp-1vd2grm .crisp-12w4w1a{font-size:13px!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-zyxrmn .crisp-1bu0ive .crisp-1sps3eb .crisp-1vd2grm .crisp-12w4w1a::-webkit-input-placeholder{color:#717273!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-zyxrmn .crisp-1bu0ive .crisp-z7oo2o .crisp-lgu84d .crisp-1ohjrf0 .crisp-dqw9ko .crisp-bhspdv[data-from=visitor] .crisp-z89v5n .crisp-162m9xf{background-color:#008aff!important;color:#fff!important;box-shadow:none!important;border-radius:5px!important;padding:15px 25px 15px!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-zyxrmn .crisp-1bu0ive .crisp-z7oo2o .crisp-lgu84d .crisp-1ohjrf0 .crisp-dqw9ko .crisp-bhspdv[data-from=visitor] .crisp-z89v5n .crisp-162m9xf .crisp-1o2g4mc{color:#fff!important;font-size:13px!important;letter-spacing:.3px!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-zyxrmn .crisp-1bu0ive .crisp-z7oo2o .crisp-lgu84d .crisp-1ohjrf0 .crisp-dqw9ko .crisp-bhspdv .crisp-z89v5n .crisp-162m9xf{background-color:#f1f2f3!important;border-radius:5px!important;padding:15px 25px 15px!important;box-shadow:none!important;color:#121314!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-zyxrmn .crisp-1bu0ive .crisp-z7oo2o .crisp-lgu84d .crisp-1ohjrf0 .crisp-dqw9ko .crisp-bhspdv[data-type=audio] .crisp-z89v5n .crisp-162m9xf{background-color:#d1d7dc!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-zyxrmn .crisp-1bu0ive .crisp-z7oo2o .crisp-lgu84d .crisp-1ohjrf0 .crisp-dqw9ko .crisp-bhspdv[data-from=operator] .crisp-z89v5n .crisp-1o2g4mc{color:#121314!important;-webkit-text-fill-color:#121314!important;font-size:13px!important;letter-spacing:.3px!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-zyxrmn .crisp-1bu0ive .crisp-z7oo2o .crisp-lgu84d .crisp-1ohjrf0 .crisp-dqw9ko .crisp-bhspdv .crisp-mkirz6 .crisp-12qaym5 .crisp-39hskb{opacity:.4;margin-right:5px!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-zyxrmn .crisp-1bu0ive .crisp-z7oo2o .crisp-lgu84d .crisp-1ohjrf0 .crisp-dqw9ko .crisp-bhspdv .crisp-mkirz6 .crisp-12qaym5 .crisp-ehr6mw{opacity:.68;font-size:12px!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-1784wh6 .crisp-1xmtdlg{background-image:linear-gradient(125deg,#008aff -10%,#0066b1 100%)!important;height:110px!important;padding-top:35px!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-1784wh6 .crisp-1xmtdlg .crisp-rhv8pz .crisp-1uw6f17,body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-1784wh6 .crisp-1xmtdlg .crisp-rhv8pz .crisp-85evuk,body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx .crisp-1784wh6 .crisp-1xmtdlg .crisp-rhv8pz .crisp-nu40j6{font-size:17px!important;line-height:28px!important;padding-top:10px!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-kquevr .crisp-x94m06{background-color:#008aff!important;background-image:linear-gradient(125deg,#008aff -10%,#008af0 100%)!important;box-shadow:0 5px 34px -6px #008aff!important}body .crisp-client .crisp-1rjpbb7 .crisp-4oo1n4{background-color:transparent!important}body .crisp-client .crisp-1rjpbb7 .crisp-1rf4xdh .crisp-ewasyx[data-chat-status=ongoing] .crisp-1784wh6 .crisp-1xmtdlg .crisp-172kolj{margin-top:-10px!important}body .crisp-client .crisp-1rjpbb7[data-last-operator-face=false] .crisp-1rf4xdh .crisp-kquevr .crisp-x94m06 .crisp-16qgsyi .crisp-101bp3x[data-is-ongoing=false]{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1OCIgaGVpZ2h0PSI1NSIgdmlld0JveD0iMCAwIDU4IDU1Ij4NCiAgPGcgaWQ9ImNoYXQtc3ZncmVwby1jb21fMV8iIGRhdGEtbmFtZT0iY2hhdC1zdmdyZXBvLWNvbSAoMSkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTEuNSkiPg0KICAgIDxwYXRoIGlkPSJQYXRoXzEiIGRhdGEtbmFtZT0iUGF0aCAxIiBkPSJNMjksMS41YzE2LjAxNiwwLDI5LDExLjY0MSwyOSwyNmEyNC4wMSwyNC4wMSwwLDAsMS00LjgsMTQuMzE4Yy40LDQuNzQ1LDEuNTQyLDExLjQyOCw0LjgsMTQuNjgyLDAsMC05Ljk0My0xLjQtMTYuNjc3LTUuNDYybC0uMDIyLjAwOWMtMi43NjQtMS44LTUuNTMyLTMuNjU2LTYuMS00LjEyNmExLDEsMCwwLDAtMS4zMy0uMjc3LDEuMDE3LDEuMDE3LDAsMCwwLS40ODkuODQ4Yy0uMDEuNjIyLjAwNS43ODQsNS41ODUsNC40MjFBMzEuOTE0LDMxLjkxNCwwLDAsMSwyOSw1My41Yy0xNi4wMTYsMC0yOS0xMS42NDEtMjktMjZTMTIuOTg0LDEuNSwyOSwxLjVaIiBmaWxsPSIjZmZmIi8+DQogICAgPGNpcmNsZSBpZD0iRWxsaXBzZV8xIiBkYXRhLW5hbWU9IkVsbGlwc2UgMSIgY3g9IjMiIGN5PSIzIiByPSIzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMiAyNC41KSIgZmlsbD0iIzAwOGFmZiIvPg0KICAgIDxjaXJjbGUgaWQ9IkVsbGlwc2VfMiIgZGF0YS1uYW1lPSJFbGxpcHNlIDIiIGN4PSIzIiBjeT0iMyIgcj0iMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjYgMjQuNSkiIGZpbGw9IiMwMDhhZmYiLz4NCiAgICA8Y2lyY2xlIGlkPSJFbGxpcHNlXzMiIGRhdGEtbmFtZT0iRWxsaXBzZSAzIiBjeD0iMyIgY3k9IjMiIHI9IjMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQwIDI0LjUpIiBmaWxsPSIjMDA4YWZmIi8+DQogIDwvZz4NCjwvc3ZnPg0K)!important;height:31px!important;top:16px!important;left:14px!important}body .csh-category-item a h6{text-align:left}.mec-form-row.mec-syn-schedule{background:#f7f7f7;padding:20px;border:1px solid #eee;box-shadow:0 1px 11px rgba(0,0,0,.034);margin-bottom:20px}.mec-form-row.mec-syn-schedule p{padding-left:26px}.mec-form-row.mec-syn-schedule h2{margin-top:0}.mec-form-row.mec-syn-schedule h4{margin:10px 0}li.wns-be-group-menu-li.mec-settings-menu .mec-settings-submenu{position:absolute;top:-1px;right:-222px;width:220px;z-index:9;background:#fff;border:1px;border-style:solid;border-color:#dedede;margin:0;overflow:visible;opacity:0;visibility:hidden;transition:all .23s ease;padding-top:8px;padding-bottom:12px}li.wns-be-group-menu-li.mec-settings-menu:hover>.mec-settings-submenu{visibility:visible;opacity:1}.mec-settings-menu .mec-settings-submenu:before{position:absolute;z-index:999;content:" ";height:0;width:0;border:7px solid transparent;border-right-color:#fff;left:-15px;top:14px;border-right-color:#c5c5c5;right:0}.mec-settings-menu .mec-settings-submenu:after{position:absolute;z-index:999;content:" ";height:0;width:0;border:7px solid transparent;border-right-color:#fff;left:-14px;top:14px}.wns-be-sidebar .mec-settings-menu .mec-settings-submenu a{background:#fff;color:#636363;opacity:1;font-size:12px;padding:6px 4px 6px 26px}.wn-mec-select{width:32.33333333%!important;clear:unset!important}.wn-mec-select{-webkit-tap-highlight-color:transparent;background-color:#fff;border-radius:3px;border:1px solid #ddd;margin-bottom:8px;position:relative;text-align:left!important;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;box-shadow:0 3px 13px -5px rgba(0,0,0,.1),inset 0 1px 2px rgba(0,0,0,.07)}.wn-mec-select:hover{border-color:#dbdbdb}.wn-mec-select.open .list{overflow:unset;width:100%;margin:0}.wn-mec-select .list{background-color:#fff;border-radius:2px;box-shadow:0 2px 33px -2px rgba(0,0,0,.2),inset 0 1px 2px rgba(0,0,0,.07);box-sizing:border-box;margin-top:4px;opacity:0;overflow:hidden;padding:0;pointer-events:none;position:absolute;top:100%;left:0;-webkit-transform-origin:50% 0;-ms-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform:scale(.75) translateY(-21px);-ms-transform:scale(.75) translateY(-21px);transform:scale(.75) translateY(-21px);-webkit-transition:all .2s cubic-bezier(.5,0,0,1.25),opacity .15s ease-out;transition:all .2s cubic-bezier(.5,0,0,1.25),opacity .15s ease-out;z-index:9}.wn-mec-select{-webkit-tap-highlight-color:transparent;background-color:#fff;border-radius:5px;border:solid 1px #e8e8e8;box-sizing:border-box;clear:both;cursor:pointer;display:block;float:left;font-family:inherit;font-size:14px;font-weight:400;height:42px;line-height:40px;outline:0;padding-left:18px;padding-right:30px;position:relative;text-align:left!important;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;width:auto}.wn-mec-select:hover{border-color:#dbdbdb}.wn-mec-select:after{border-bottom:2px solid #999;border-right:2px solid #999;content:'';display:block;height:5px;margin-top:-4px;pointer-events:none;position:absolute;right:12px;top:50%;-webkit-transform-origin:66% 66%;-ms-transform-origin:66% 66%;transform-origin:66% 66%;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);-webkit-transition:all .15s ease-in-out;transition:all .15s ease-in-out;width:5px}.wn-mec-select.open:after{-webkit-transform:rotate(-135deg);-ms-transform:rotate(-135deg);transform:rotate(-135deg)}.wn-mec-select.open .list{opacity:1;pointer-events:auto;-webkit-transform:scale(1) translateY(0);-ms-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}.wn-mec-select.disabled{border-color:#ededed;color:#999;pointer-events:none}.wn-mec-select.disabled:after{border-color:#ccc}.wn-mec-select.wide{width:100%}.wn-mec-select.wide .list{left:0!important;right:0!important}.wn-mec-select.right{float:right}.wn-mec-select.right .list{left:auto;right:0}.wn-mec-select.small{font-size:12px;height:36px;line-height:34px}.wn-mec-select.small:after{height:4px;width:4px}.wn-mec-select .list{background-color:#fff;border-radius:5px;box-shadow:0 0 0 1px rgba(68,68,68,.11);box-sizing:border-box;margin-top:4px;opacity:0;overflow:hidden;padding:0;pointer-events:none;position:absolute;top:100%;left:0;-webkit-transform-origin:50% 0;-ms-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform:scale(.75) translateY(-21px);-ms-transform:scale(.75) translateY(-21px);transform:scale(.75) translateY(-21px);-webkit-transition:all .2s cubic-bezier(.5,0,0,1.25),opacity .15s ease-out;transition:all .2s cubic-bezier(.5,0,0,1.25),opacity .15s ease-out;z-index:9}.wn-mec-select .list:hover .option:not(:hover){background-color:transparent!important}.wn-mec-select .option{cursor:pointer;font-weight:400;list-style:none;min-height:40px;outline:0;text-align:left;position:relative;font-size:12px!important;padding:1px 12px!important;margin:0!important;line-height:28px!important;min-height:28px!important;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wn-mec-select .option .wn-hover-img-sh img{position:absolute;padding:3px;top:0;left:140px;box-shadow:0 3px 42px -8px rgba(0,0,0,.3);visibility:hidden;opacity:0;border:1px solid #dbdbdb;z-index:999999;background:#fff}.wn-mec-select .option:hover .wn-hover-img-sh img{visibility:visible;opacity:1}.wn-mec-select .option.focus,.wn-mec-select .option.selected.focus,.wn-mec-select .option:hover{background-color:#f6f6f6}.wn-mec-select .option.selected{font-weight:700}.wn-mec-select .option.disabled{background-color:transparent;color:#999;cursor:default}.no-csspointerevents .wn-mec-select .list{display:none}.no-csspointerevents .wn-mec-select.open .list{display:block}.mec-custom-nice-select ul.list li.option{width:30%!important;float:left!important;min-height:135px!important;height:135px;margin:1.66%!important;box-sizing:border-box;text-align:center;padding:10px!important;border-radius:3px;border:1px solid #eee;box-shadow:0 1px 3px rgba(0,0,0,.025);background:#fff!important}.mec-custom-nice-select ul.list li.option:hover{box-shadow:0 2px 7px rgba(0,0,0,.06);borde-color:#e0e0e0}.mec-custom-nice-select .list:hover .option:not(:hover),.mec-custom-nice-select ul.list:hover li.option{background:#fff!important}.mec-custom-nice-select ul.list{min-width:600px!important;margin-left:-132px!important;padding:20px 10px!important;background:#fcfbfd;border:1px solid #e9e9e9;box-shadow:0 1px 4px rgba(0,0,0,.05)}.mec-custom-nice-select ul.list li.option.selected{border:1px solid #008aff;box-shadow:0 1px 8px -3px #008aff inset;color:#008aff;padding:12px 0 0 0!important}.mec-custom-nice-select .wn-img-sh img{margin:6px 0 15px;line-height:1;max-width:68px;max-height:56px;filter:grayscale(1);-webkit-filter:grayscale(1);transition:all .22s ease;-webkit-transition:all .22s ease;-moz-transition:all .22s ease;-ms-transition:all .22s ease;-o-transition:all .22s ease}.wn-mec-select .option.focus .wn-img-sh img,.wn-mec-select .option.selected.focus .wn-img-sh img,.wn-mec-select .option:hover .wn-img-sh img{background-color:#f6f6f6;filter:grayscale(0);-webkit-filter:grayscale(0)}@media(max-width:768px){.wn-mec-select{width:45%!important}.mec-custom-nice-select ul.list{margin-left:-24px!important;min-width:404px!important}.mec-custom-nice-select ul.list li.option{width:46.6%!important}.wn-hover-img-sh{display:none}}@media(max-width:480px){.wn-mec-select{width:100%!important}.mec-custom-nice-select ul.list{min-width:337px!important}}@media(max-width:320px){.mec-custom-nice-select ul.list li.option{width:100%!important}.mec-custom-nice-select ul.list{min-width:298px!important}}.mec-sed-methods li{line-height:28px;padding-left:38px;position:relative}.mec-sed-methods li:before{margin-right:0}.mec-sed-methods li:before{border-radius:18px}.mec-custom-nice-select ul.list li .wn-mec-text:after,.mec-sed-methods li:before{content:"";position:absolute;display:inline-block;background:#fff;border-radius:2px;width:12px;height:12px;margin:-1px 0 0 -1px;cursor:pointer;border:2px solid #e1e7ed;box-shadow:0 2px 15px -3px rgba(69,77,89,.32);border-radius:50%}.mec-custom-nice-select ul.list li .wn-mec-text{position:relative;padding-top:14px}.mec-custom-nice-select ul.list li .wn-mec-text:after{left:calc(50% - 7px);top:-6px}.mec-sed-methods li:before{left:9px;top:calc(50% - 7px)}.mec-custom-nice-select ul.list li.option.selected .wn-mec-text:after,.mec-sed-methods li.active:before{width:4px;height:4px;border:7px solid #008aff;background:#fff;box-shadow:0 3px 16px -3px #008aff}
|
assets/css/frontend.css
CHANGED
@@ -502,7 +502,7 @@
|
|
502 |
Â
color: #fff;
|
503 |
Â
}
|
504 |
Â
|
505 |
-
.mec-event-sharing-wrap>li {
|
506 |
Â
border: 1px solid #d9d9d9;
|
507 |
Â
}
|
508 |
Â
|
@@ -5357,7 +5357,10 @@ li.mec-no-event-found .mec-event-title {
|
|
5357 |
Â
}
|
5358 |
Â
}
|
5359 |
Â
|
5360 |
-
|
Â
|
|
Â
|
|
Â
|
|
5361 |
Â
|
5362 |
Â
/* Mec Countdown
|
5363 |
Â
-------------------------------- */
|
@@ -11752,6 +11755,11 @@ ul.mec-weekly-view-dates-events article:before,
|
|
11752 |
Â
}
|
11753 |
Â
}
|
11754 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
11755 |
Â
|
11756 |
Â
/* Bootstrap v3.0.3 * * Copyright 2013 Twitter, Inc * Licensed under the Apache License v2.0 * http://www.apache.org/licenses/LICENSE-2.0 * * Designed and built with all the love in the world @twitter by @mdo and @fat. */
|
11757 |
Â
.mec-wrap * {
|
@@ -12482,5 +12490,208 @@ article.mec-search-bar-result { text-align: left; margin-bottom: 0; padding-bott
|
|
12482 |
Â
vertical-align: top;
|
12483 |
Â
padding: 0 30px;
|
12484 |
Â
}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
12485 |
Â
|
12486 |
Â
/* --------------------- */
|
502 |
Â
color: #fff;
|
503 |
Â
}
|
504 |
Â
|
505 |
+
.mec-event-sharing-wrap>li:first-of-type {
|
506 |
Â
border: 1px solid #d9d9d9;
|
507 |
Â
}
|
508 |
Â
|
5357 |
Â
}
|
5358 |
Â
}
|
5359 |
Â
|
5360 |
+
.mec-skin-grid-container .mec-skin-map-container,
|
5361 |
+
.mec-skin-list-container .mec-skin-map-container {
|
5362 |
+
margin-bottom:20px;
|
5363 |
+
}
|
5364 |
Â
|
5365 |
Â
/* Mec Countdown
|
5366 |
Â
-------------------------------- */
|
11755 |
Â
}
|
11756 |
Â
}
|
11757 |
Â
|
11758 |
+
/* Recaptcha Style on booking page */
|
11759 |
+
.mec-google-recaptcha {
|
11760 |
+
margin: 0 0 20px 16px;
|
11761 |
+
|
11762 |
+
}
|
11763 |
Â
|
11764 |
Â
/* Bootstrap v3.0.3 * * Copyright 2013 Twitter, Inc * Licensed under the Apache License v2.0 * http://www.apache.org/licenses/LICENSE-2.0 * * Designed and built with all the love in the world @twitter by @mdo and @fat. */
|
11765 |
Â
.mec-wrap * {
|
12490 |
Â
vertical-align: top;
|
12491 |
Â
padding: 0 30px;
|
12492 |
Â
}
|
12493 |
+
|
12494 |
+
/* Login Module */
|
12495 |
+
.mec-login-form {
|
12496 |
+
width: 100%;
|
12497 |
+
background: #fff;
|
12498 |
+
padding: 20px;
|
12499 |
+
margin: 0 auto;
|
12500 |
+
text-align: center
|
12501 |
+
}
|
12502 |
+
|
12503 |
+
.mec-login-form .mec-login-input {
|
12504 |
+
display: block;
|
12505 |
+
width: 286px;
|
12506 |
+
margin: 0 auto;
|
12507 |
+
margin-bottom: 12px
|
12508 |
+
}
|
12509 |
+
|
12510 |
+
.mec-login-forgotpassword {
|
12511 |
+
display: inline-block
|
12512 |
+
}
|
12513 |
+
|
12514 |
+
.mec-login-form .mec-login-submit {
|
12515 |
+
float: right;
|
12516 |
+
text-align: right;
|
12517 |
+
width: 49%;
|
12518 |
+
padding-right: 2px;
|
12519 |
+
}
|
12520 |
+
|
12521 |
+
.mec-login-form .mec-login-input input {
|
12522 |
+
border: none;
|
12523 |
+
box-shadow: none;
|
12524 |
+
background: #fff;
|
12525 |
+
color: #ccc;
|
12526 |
+
border-left: 1px solid #e6e6e6;
|
12527 |
+
padding: 0;
|
12528 |
+
height: 100%;
|
12529 |
+
background-image: none !important;
|
12530 |
+
padding-left: 10px;
|
12531 |
+
padding-right: 10px;
|
12532 |
+
width: 230px;
|
12533 |
+
margin-left: 0;
|
12534 |
+
}
|
12535 |
+
|
12536 |
+
.mec-login-form .mec-login-input label {
|
12537 |
+
border: 1px solid #e6e6e6;
|
12538 |
+
height: 52px;
|
12539 |
+
display: inline-block;
|
12540 |
+
border-radius: 3px;
|
12541 |
+
overflow: hidden;
|
12542 |
+
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);
|
12543 |
+
}
|
12544 |
+
|
12545 |
+
.mec-login-form .mec-login-input label i {
|
12546 |
+
padding: 15px 13px 17px 16px;
|
12547 |
+
vertical-align: middle;
|
12548 |
+
font-size: 20px;
|
12549 |
+
width: 50px;
|
12550 |
+
color: #c5cad0;
|
12551 |
+
background: #fafafa;
|
12552 |
+
margin-right: 0;
|
12553 |
+
float: left;
|
12554 |
+
}
|
12555 |
+
|
12556 |
+
.mec-login-form .mec-login-forgotpassword {
|
12557 |
+
float: left;
|
12558 |
+
width: 49%;
|
12559 |
+
text-align: left;
|
12560 |
+
padding-top: 10px;
|
12561 |
+
font-size: 13px;
|
12562 |
+
padding-left: 2px;
|
12563 |
+
}
|
12564 |
+
|
12565 |
+
.mec-login-form button {
|
12566 |
+
width: 120px;
|
12567 |
+
height: 44px;
|
12568 |
+
border: none;
|
12569 |
+
color: #fff;
|
12570 |
+
border-radius: 3px;
|
12571 |
+
font-size: 12px;
|
12572 |
+
font-weight: 700;
|
12573 |
+
letter-spacing: 1px;
|
12574 |
+
text-transform: uppercase;
|
12575 |
+
box-shadow: 0 4px 22px -7px #40d9f1;
|
12576 |
+
transition: all .22s ease;
|
12577 |
+
}
|
12578 |
+
|
12579 |
+
.mec-login-form button:hover {
|
12580 |
+
background: #222;
|
12581 |
+
box-shadow: 0 3px 14px -4px #333
|
12582 |
+
}
|
12583 |
+
|
12584 |
+
.mec-login-form-footer {
|
12585 |
+
width: 286px;
|
12586 |
+
margin: 0 auto;
|
12587 |
+
margin-top: 20px;
|
12588 |
+
clear: both;
|
12589 |
+
position: relative;
|
12590 |
+
display: block;
|
12591 |
+
min-height: 50px
|
12592 |
+
}
|
12593 |
+
|
12594 |
+
.mec-ajax-login-loading {
|
12595 |
+
position: absolute;
|
12596 |
+
background: #ffffffc2;
|
12597 |
+
left: 0;
|
12598 |
+
right: 0;
|
12599 |
+
top: 0;
|
12600 |
+
bottom: 0
|
12601 |
+
}
|
12602 |
+
|
12603 |
+
.lds-ripple {
|
12604 |
+
position: absolute;
|
12605 |
+
width: 64px;
|
12606 |
+
height: 64px;
|
12607 |
+
top: calc(50% - 23px);
|
12608 |
+
left: calc(50% - 23px)
|
12609 |
+
}
|
12610 |
+
|
12611 |
+
.lds-ripple div {
|
12612 |
+
position: absolute;
|
12613 |
+
border: 4px solid #40d9f1;
|
12614 |
+
opacity: 1;
|
12615 |
+
border-radius: 50%;
|
12616 |
+
animation: lds-ripple 1.2s cubic-bezier(0, .2, .1, .8) infinite
|
12617 |
+
}
|
12618 |
+
|
12619 |
+
.lds-ripple div:nth-child(2) {
|
12620 |
+
animation-delay: -.5s
|
12621 |
+
}
|
12622 |
+
|
12623 |
+
.mec-ajax-login-loading-text {
|
12624 |
+
position: absolute;
|
12625 |
+
min-width: 200px;
|
12626 |
+
top: calc(50% - 15px);
|
12627 |
+
left: calc(50% - 135px);
|
12628 |
+
color: #fff;
|
12629 |
+
padding: 10px 22px;
|
12630 |
+
border-radius: 3px
|
12631 |
+
}
|
12632 |
+
|
12633 |
+
.mec-ajax-login-loading-text.error {
|
12634 |
+
background: #ff876c;
|
12635 |
+
background: linear-gradient(95deg, #ff876c 0, #ff7455 50%, #ff5a35 100%);
|
12636 |
+
box-shadow: 0 5px 10px -5px #ff876c
|
12637 |
+
}
|
12638 |
+
|
12639 |
+
.mec-ajax-login-loading-text.success {
|
12640 |
+
background: #4cbf67;
|
12641 |
+
background: linear-gradient(95deg, #6fe08a 0, #58cf74 50%, #36cb58 100%);
|
12642 |
+
box-shadow: 0 5px 10px -5px #4cbf67
|
12643 |
+
}
|
12644 |
+
|
12645 |
+
@keyframes lds-ripple {
|
12646 |
+
0% {
|
12647 |
+
top: 28px;
|
12648 |
+
left: 28px;
|
12649 |
+
width: 0;
|
12650 |
+
height: 0;
|
12651 |
+
opacity: 1;
|
12652 |
+
}
|
12653 |
+
|
12654 |
+
100% {
|
12655 |
+
top: -1px;
|
12656 |
+
left: -1px;
|
12657 |
+
width: 58px;
|
12658 |
+
height: 58px;
|
12659 |
+
opacity: 0;
|
12660 |
+
}
|
12661 |
+
}
|
12662 |
+
|
12663 |
+
/* Stripe V3 */
|
12664 |
+
.mec-book-form-gateway-checkout [id*="mec_do_transaction_stripe_"] .mec-form-row:first-child {
|
12665 |
+
background: #f7f8f9;
|
12666 |
+
padding: 18px 22px;
|
12667 |
+
margin-bottom: 20px;
|
12668 |
+
}
|
12669 |
+
|
12670 |
+
.mec-events-meta-group-booking .StripeElement {
|
12671 |
+
box-sizing: border-box;
|
12672 |
+
height: 40px;
|
12673 |
+
padding: 10px 12px;
|
12674 |
+
border: 1px solid transparent;
|
12675 |
+
border-radius: 4px;
|
12676 |
+
background-color: white;
|
12677 |
+
box-shadow: 0 1px 3px 0 #e6ebf1;
|
12678 |
+
-webkit-transition: box-shadow 150ms ease;
|
12679 |
+
transition: box-shadow 150ms ease;
|
12680 |
+
margin-bottom: 20px;
|
12681 |
+
background: #fff;
|
12682 |
+
}
|
12683 |
+
|
12684 |
+
.mec-events-meta-group-booking .StripeElement--focus {
|
12685 |
+
box-shadow: 0 1px 3px 0 #cfd7df;
|
12686 |
+
}
|
12687 |
+
|
12688 |
+
.mec-events-meta-group-booking .StripeElement--invalid {
|
12689 |
+
border-color: #fa755a;
|
12690 |
+
}
|
12691 |
+
|
12692 |
+
.mec-events-meta-group-booking .StripeElement--webkit-autofill {
|
12693 |
+
background-color: #fefde5 !important;
|
12694 |
+
}
|
12695 |
+
|
12696 |
Â
|
12697 |
Â
/* --------------------- */
|
assets/css/frontend.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.lity-container,.mec-wrap,.mec-wrap div:not([class^=elementor-]){font-family:Montserrat,Helvetica,Arial,sans-serif}.entry-content .mec-wrap h1,.entry-content .mec-wrap h2,.entry-content .mec-wrap h3,.entry-content .mec-wrap h4,.entry-content .mec-wrap h5,.entry-content .mec-wrap h6,.mec-wrap h1,.mec-wrap h2,.mec-wrap h3,.mec-wrap h4,.mec-wrap h5,.mec-wrap h6{font-family:Montserrat,Helvetica,Arial,sans-serif;color:#171c24;font-weight:300;font-style:inherit;letter-spacing:normal;clear:none}.mec-wrap h1{font-size:50px;line-height:1.16;margin-bottom:12px;letter-spacing:-1px}.mec-wrap h2{font-size:36px;line-height:1.14;margin-bottom:10px}.mec-wrap h3{font-size:28px;line-height:1.2;margin-bottom:8px}.mec-wrap h4{font-size:24px;line-height:1.2;margin-bottom:10px}.mec-wrap h5{font-size:18px;line-height:1.3;margin-bottom:7px}.mec-wrap h6{font-size:16px;line-height:1.3;margin-bottom:4px}.mec-wrap .subheader{color:#849098}.mec-wrap h1 strong{font-weight:700}.mec-wrap p{margin:0 0 20px 0;color:#616161;font-size:14px;line-height:1.8}.mec-wrap .mec-event-article .mec-color-hover{box-shadow:none;border:none}.mec-wrap abbr,.mec-wrap acronym{cursor:auto;border:none}.entry-content .mec-wrap a{box-shadow:none}.mec-wrap .button,.mec-wrap a.button:not(.owl-dot),.mec-wrap button:not(.owl-dot),.mec-wrap input[type=button],.mec-wrap input[type=reset],.mec-wrap input[type=submit]{position:relative;border:none;border-radius:0;color:#fff;display:inline-block;font-size:12px;letter-spacing:1px;line-height:1.5;text-transform:uppercase;font-weight:600;text-decoration:none;cursor:pointer;margin-bottom:21px;margin-right:10px;line-height:1;padding:18px 20px 16px;background:#39c36e;-webkit-transition:all .21s ease;-moz-transition:all .21s ease;transition:all .21s ease}.mec-wrap .button:hover,.mec-wrap a.button:hover,.mec-wrap button:hover,.mec-wrap input[type=button]:hover,.mec-wrap input[type=reset]:hover,.mec-wrap input[type=submit]:hover{background:#222;color:#fff}.mec-booking-form-container button{display:block!important}.vertical-space,.vertical-space1,.vertical-space2,.vertical-space3,.vertical-space4,.vertical-space5{display:block;width:100%;margin:0;clear:both;border:0 none;height:20px}.vertical-space2{height:40px}.vertical-space3{height:60px}.vertical-space4{height:80px}.vertical-space5{height:100px}@media only screen and (max-width:479px){.vertical-space,.vertical-space1{height:8px}.vertical-space2{height:14px}.vertical-space3{height:28px}.vertical-space4{height:40px}.vertical-space5{height:60px}}@media only screen and (max-width:960px){.vertical-space,.vertical-space1{height:12px}.vertical-space2{height:18px}.vertical-space3{height:36px}.vertical-space4{height:50px}.vertical-space5{height:80px}}.mec-wrap abbr{cursor:auto;border-bottom:0}@-webkit-keyframes rotating{from{-ms-transform:rotate(0);-moz-transform:rotate(0);-webkit-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0)}to{-ms-transform:rotate(360deg);-moz-transform:rotate(360deg);-webkit-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotating{from{-ms-transform:rotate(0);-moz-transform:rotate(0);-webkit-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0)}to{-ms-transform:rotate(360deg);-moz-transform:rotate(360deg);-webkit-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}.mec-wrap{font:14px/25px sans-serif;font-family:Montserrat,Helvetica,Arial,sans-serif;font-weight:400;color:#626262}.mec-wrap .mec-events a{border-bottom:none}.mec-wrap .mec-container a{box-shadow:none}.mec-event-content p{font-family:Roboto,sans-serif;font-weight:300}.mec-wrap .mec-clear:after,.mec-wrap .mec-clear:before{content:" ";display:table}.mec-wrap .mec-clear:after{clear:both}.mec-events-button{background:#fff;padding:12px 34px;font-size:13px;font-weight:400;letter-spacing:0;border:1px solid #e3e3e3;margin-right:10px;transition:.3s}.mec-wrap .mec-events-button:hover{color:#fff}.mec-no-event{display:none}#mec-active-current{display:block!important}.current-hide #mec-active-current{display:none!important}.mec-event-grid-classic .mec-event-article{position:relative;border:2px solid #e3e3e3;box-shadow:0 2px 0 0 rgba(0,0,0,.016);margin-bottom:30px;max-width:none}.mec-event-grid-classic .mec-event-content{background:#fff;color:#767676;padding:0 20px 5px;text-align:center;min-height:125px}.mec-event-grid-classic .mec-event-title{color:#202020;margin:10px 0;font-weight:700;font-size:20px;letter-spacing:1px;text-transform:uppercase}.mec-event-grid-classic .mec-event-title a{color:#202020;transition:all .24s ease}.mec-event-grid-classic .mec-event-date{font-weight:400;font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#fff;padding:3px 20px;margin:0 -20px 20px -20px;text-align:center}.mec-event-grid-classic .mec-event-content p{font-size:15px;color:#8a8a8a}.mec-event-grid-classic .mec-event-detail{display:none}.mec-event-grid-classic img{margin-bottom:0;width:100%}.mec-event-footer{position:relative;border-top:1px solid #efefef;padding:20px;min-height:80px;margin:0;background:#fafafa}.mec-event-sharing-wrap{left:15px;position:absolute;list-style:none;margin:0}.mec-event-sharing-wrap .mec-event-sharing{position:absolute;padding:8px 0 2px;left:-6px;bottom:54px;margin:0;margin-top:6px;border-radius:5px;width:50px;visibility:hidden;opacity:0;border:1px solid #e2e2e2;background:#fff;box-shadow:0 0 9px 0 rgba(0,0,0,.06);z-index:99;-webkit-transition:all .18s ease;transition:all .18s ease}.mec-event-sharing-wrap .mec-event-sharing:after,.mec-event-sharing-wrap .mec-event-sharing:before{content:'';display:block;position:absolute;bottom:-10px;left:50%;margin-left:-10px;width:0;height:0;border-style:solid;border-width:10px}.mec-event-sharing-wrap .mec-event-sharing:before{bottom:-21px;border-color:#e2e2e2 transparent transparent transparent}.mec-event-sharing-wrap .mec-event-sharing:after{bottom:-19px;border-color:#fff transparent transparent transparent}.mec-event-sharing-wrap:hover .mec-event-sharing{opacity:1;visibility:visible}.mec-event-sharing-wrap li{text-align:center;border:0;display:block;margin-right:2px;overflow:hidden;margin:0 auto 6px;width:38px}.mec-event-sharing-wrap:hover>li{cursor:pointer;background-color:#40d9f1}.mec-event-sharing-wrap:hover li a{color:#fff}.mec-event-sharing-wrap>li{border:1px solid #d9d9d9}.mec-event-sharing-wrap li a,.mec-event-sharing-wrap:hover li ul li a{border:none;color:#767676}.mec-event-sharing-wrap li i{width:36px;height:36px;display:table-cell;vertical-align:middle}.mec-event-sharing-wrap .mec-event-sharing li a{display:block}.mec-event-sharing-wrap .mec-event-sharing li:hover a{color:#40d9f1}.mec-event-sharing .mec-event-share:hover .event-sharing-icon{background:#40d9f1;border-width:0 1px 0;cursor:pointer}.mec-event-sharing .mec-event-map{border-width:1px 0 1px}.mec-event-footer .mec-booking-button{box-shadow:none;transition:all .21s ease;font-size:11px;font-weight:500;letter-spacing:1px;text-transform:uppercase;background:#fff;color:#767676;border:1px solid #e8e8e8;position:absolute;top:20px;right:15px;padding:0 16px;line-height:37px;height:38px}.mec-event-footer .mec-booking-button:hover{background:#191919;color:#fff;border-color:#191919}@media only screen and (max-width:960px){.mec-event-grid-classic{margin-bottom:30px}}.mec-widget .mec-event-grid-classic.mec-owl-carousel{padding:36px 0 16px}.mec-widget .mec-event-grid-classic.mec-owl-carousel .owl-nav{margin:5px 0;width:100%;position:absolute;top:15px;padding:0}.mec-skin-grid-container.mec-widget{padding-top:18px}.mec-widget .mec-event-grid-classic.mec-owl-carousel{padding:20px 0 16px}.mec-widget .mec-event-grid-classic.mec-owl-carousel .owl-nav{margin:0;width:100%;position:absolute;top:0;padding:0}.mec-widget .mec-event-grid-classic.mec-owl-carousel .owl-nav div{position:absolute;background:#fff;line-height:0;width:34px;height:26px;padding:6px;text-align:center;margin-top:-17px;border-radius:3px;border:1px solid #e2e2e2;text-align:center;box-shadow:0 2px 0 0 rgba(0,0,0,.028);transition:all .33s ease}.mec-widget .mec-event-grid-classic.mec-owl-carousel .owl-nav i{font-size:12px;color:#40d9f1;cursor:pointer}.mec-widget .mec-event-grid-classic.mec-owl-carousel .owl-nav .owl-next{right:0}.mec-widget .mec-event-grid-classic.mec-owl-carousel .owl-nav .owl-prev{left:0}.mec-widget .mec-event-grid-classic.mec-owl-carousel .mec-event-sharing{display:none}.mec-widget .mec-event-grid-classic.mec-owl-carousel .mec-event-footer{text-align:center}.mec-widget .mec-event-grid-classic.mec-owl-carousel .mec-event-footer .mec-booking-button{position:static;padding:11px 16px}.widget .mec-event-footer ul.mec-event-sharing-wrap li a.mec-event-share-icon{padding:0}@media screen and (min-width:56.875em){.mec-widget .mec-month-container dl{margin-bottom:0}}.mec-widget .mec-event-grid-classic.owl-carousel .mec-event-footer{text-align:right}.mec-widget .mec-event-grid-classic.owl-carousel .mec-event-sharing-wrap{left:5px;padding-left:5px}.mec-widget .mec-event-grid-classic.owl-carousel .mec-event-sharing-wrap .mec-event-sharing{left:0}.mec-widget .mec-event-sharing-wrap .mec-event-sharing{position:absolute;top:auto;bottom:52px;margin:0;margin-top:0;border-radius:5px}.mec-widget .mec-event-sharing-wrap .mec-event-sharing:after{top:auto;bottom:-17px;border-color:#fff transparent transparent transparent}.mec-widget .mec-event-sharing-wrap .mec-event-sharing:before{top:auto;bottom:-18px;border-color:#e2e2e2 transparent transparent transparent}.mec-event-grid-clean{margin-bottom:10px;max-width:none}.mec-event-grid-clean .mec-event-article{margin-bottom:30px;position:relative;border:1px solid #e2e2e2;text-align:center;padding:15px 15px 0;background:#fff;box-shadow:0 2px 0 0 rgba(0,0,0,.016)}.mec-event-grid-clean .mec-event-content{background:#fff;color:#767676;padding:25px 16px 0;text-align:left}.mec-event-grid-clean .mec-event-title{color:#202020;margin:0 0 10px 0;font-weight:700;font-size:21px;text-transform:capitalize}.mec-event-grid-clean .mec-event-title a{color:#202020;transition:all .24s ease}.mec-event-grid-clean .mec-event-date{font-weight:400;font-size:11px;text-transform:uppercase;letter-spacing:1px;background-color:#40d9f1;color:#fff;padding:3px 0;margin:0;text-align:center}.mec-event-grid-clean .mec-event-content p{font-size:15px;color:#9a9a9a;line-height:1.54}.mec-event-grid-clean img{margin-bottom:0;width:100%}.mec-event-grid-clean .event-grid-t2-head{margin-bottom:10px;color:#fff;padding:9px 14px 6px;text-align:left}.mec-event-grid-clean .event-grid-t2-head .mec-event-date{font-size:50px;line-height:50px;float:left;margin-right:11px}.mec-event-grid-clean .event-grid-t2-head .mec-event-month{text-transform:uppercase;font-size:17px;line-height:20px;padding-top:4px}.mec-event-grid-clean .event-grid-t2-head .mec-event-detail{font-size:12px}.mec-event-grid-clean .mec-event-sharing-wrap{left:0}.mec-event-grid-clean .mec-event-footer{position:relative;border-top:2px solid;padding:20px 0;margin:0 14px;text-align:left;background:0 0}.mec-event-grid-clean .mec-event-footer .mec-booking-button{right:0}.mec-event-grid-clean .row{margin-bottom:30px}.mec-event-grid-modern{margin-bottom:10px;max-width:none}.mec-event-grid-modern .mec-event-article{position:relative;border:1px solid #e2e2e2;text-align:center;margin-bottom:30px;padding:45px 15px 10px;background:#fff;box-shadow:0 2px 0 0 rgba(0,0,0,.016)}.mec-event-grid-modern .mec-event-content{background:#fff;color:#767676;padding:35px 15px 10px;text-align:left}.mec-event-grid-modern .mec-event-title{color:#202020;margin:0 0 10px 0;font-weight:700;font-size:24px;text-transform:none;letter-spacing:-1px}.mec-event-grid-modern .mec-event-title a{color:#202020;transition:all .24s ease}.mec-event-grid-modern .mec-event-content p{font-size:15px;color:#9a9a9a;line-height:1.54}.mec-event-grid-modern img{margin-bottom:0;width:100%}.mec-event-grid-modern .event-grid-modern-head{margin-bottom:10px;padding:9px 14px 6px;text-align:left}.mec-event-grid-modern .event-grid-modern-head .mec-event-date{font-size:50px;line-height:50px;float:left;margin-right:11px}.mec-event-grid-modern .event-grid-modern-head .mec-event-month{text-transform:uppercase;font-size:17px;line-height:20px;padding-top:4px}.mec-event-grid-modern .event-grid-modern-head .mec-event-detail{font-size:12px}.mec-event-grid-modern .event-grid-modern-head .mec-event-day{margin-top:9px;color:silver;font-family:Roboto,sans-serif;font-size:35px;font-weight:100;text-transform:uppercase;letter-spacing:-1px}.mec-event-grid-modern .mec-event-footer{position:relative;height:90px;padding:20px 0;border:none;margin:0 14px;text-align:left;background:0 0}.mec-event-grid-modern .mec-event-footer .mec-booking-button{right:auto;left:0}.mec-event-grid-modern .mec-event-sharing-wrap{left:auto;right:0}.mec-event-grid-modern .mec-event-sharing{left:auto;right:-6px}.mec-event-grid-modern .mec-event-sharing-wrap li{border-radius:55px}.mec-event-grid-modern .row{margin-bottom:0}@media only screen and (max-width:479px){.mec-event-grid-modern .mec-event-article{padding-bottom:30px}.mec-event-grid-modern .mec-event-sharing{top:60px;left:0;right:auto}.mec-event-grid-modern .mec-event-footer .mec-booking-button{top:0}}.mec-event-title-soldout .soldout{background:#de3120;padding:4px 5px;color:#fff}.mec-event-title-soldout .soldout{background:#de3120;position:relative;top:-2px;border-radius:10px 0 0 20px;padding:2px 4px 2px 10px;color:#fff}.mec-event-title-soldout .soldout:before{content:' ';position:absolute;width:0;height:0;border-top:10px solid #de3120;border-bottom:10px solid #de3120;right:-10px;border-right:10px solid transparent;border-left:10px solid transparent;top:0}.mec-event-title-soldout .soldout:after{content:' ';position:absolute;width:6px;height:6px;background:#de3120;border-radius:50%;left:3px;top:4px;border:2px dashed #fff}.mec-event-grid-colorful .mec-event-article{min-height:400px;border:none;box-shadow:none;background:#40d9f1;padding-top:25px;margin:0;color:#fff}.mec-event-grid-colorful .mec-event-content{background:0 0}.mec-event-grid-colorful .event-grid-modern-head,.mec-event-grid-colorful .event-grid-modern-head .mec-event-date,.mec-event-grid-colorful .event-grid-modern-head .mec-event-day,.mec-event-grid-colorful .mec-event-content p,.mec-event-grid-colorful .mec-event-sharing-wrap>li>a,.mec-event-grid-colorful .mec-event-title a{color:#fff}.mec-event-grid-colorful .mec-event-footer .mec-booking-button{border:none}.mec-event-grid-colorful .mec-event-sharing-wrap>li{border-color:#fff}.mec-event-grid-colorful .mec-event-sharing-wrap:hover>li{background:#333;border-color:#333}.mec-event-grid-colorful .mec-event-title a.mec-color-hover:hover{color:#fff;text-decoration:underline}.mec-event-grid-colorful .mec-event-title .event-color{display:none}.mec-event-grid-colorful div[class^=col-md-]{padding:0 1px 1px 0;margin:0}@media only screen and (min-width:768px){.mec-wrap.mec-sm959.mec-event-grid-colorful .event-grid-modern-head .mec-event-day{font-size:26px}.mec-wrap.mec-sm959.mec-event-grid-colorful .event-grid-modern-head .mec-event-month{font-size:15px}.mec-wrap.mec-sm959.mec-event-grid-colorful .event-grid-modern-head .mec-event-date{font-size:50px}.mec-wrap.mec-sm959.mec-event-grid-colorful .mec-event-title{font-size:21px}.mec-wrap.mec-sm959.mec-event-grid-colorful .mec-event-content p{font-size:13px}}@media only screen and (min-width:768px) and (max-width:1200px){.mec-wrap.mec-sm959.mec-event-grid-colorful div[class^=col-md-]{width:50%}}.mec-event-list-minimal .mec-event-article{border-bottom:1px solid #efefef;padding:24px 0 16px}.mec-event-list-minimal .mec-wrap .col-md-9{padding:0}.mec-event-list-minimal .mec-event-date{position:relative;float:left;margin-right:30px;color:#fff;width:52px;padding:6px 4px 3px;text-align:center;text-transform:uppercase;border-radius:3px}.mec-event-list-minimal .mec-event-date span{display:block;font-size:24px;font-weight:700;text-align:center;margin-bottom:4px}.mec-event-list-minimal .mec-event-date:after{display:block;content:"";position:absolute;width:50px;left:1px;top:1px;height:30px;background:rgba(255,255,255,.1);box-shadow:0 4px 4px rgba(0,0,0,.02)}.mec-event-list-minimal .mec-event-title{margin-top:0;margin-bottom:10px;font-weight:700;font-size:18px;text-transform:uppercase;letter-spacing:0;padding-top:5px}.mec-event-list-minimal .mec-event-detail{font-size:15px;font-weight:300;line-height:1;letter-spacing:0;color:#9a9a9a;font-family:Roboto,sans-serif}.mec-event-list-minimal .btn-wrapper{text-align:right;padding-right:0;padding-top:6px}.mec-event-list-minimal .btn-wrapper .mec-detail-button{border-bottom:0;margin-bottom:14px;margin-right:0;box-shadow:none}.mec-event-list-minimal a.mec-detail-button{text-align:center;display:inline-block;background:#ededed;color:#191919;padding:12px;border-radius:2px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:2px;transition:all .24s ease}.mec-event-list-minimal a.mec-detail-button:hover{background:#292929;color:#fff}.vc_col-sm-4 .mec-event-list-minimal .mec-event-date,.vc_col-sm-6 .mec-event-list-minimal .mec-event-date{margin-right:12px}.vc_col-sm-4 .mec-event-list-minimal .mec-event-title,.vc_col-sm-6 .mec-event-list-minimal .mec-event-title{font-size:15px;letter-spacing:2px}@media only screen and (min-width:480px) and (max-width:767px){.mec-event-list-minimal .btn-wrapper{padding-left:0}.mec-event-list-minimal .mec-event-date{margin-right:10px}}@media only screen and (max-width:767px){.mec-event-list-minimal .btn-wrapper .mec-detail-button{display:block;text-align:center;margin:0;margin-top:16px;padding:8px}.mec-event-list-minimal .btn-wrapper{margin:12px 0}}@media only screen and (max-width:479px){.mec-event-list-minimal .mec-event-date{float:none;width:100%;margin-bottom:8px}.mec-event-list-minimal .mec-event-date span{display:inline;padding-right:25px;margin-right:7px;font-size:inherit}.mec-event-list-minimal .mec-event-date:after{width:45%;box-shadow:4px 0 4px rgba(0,0,0,.02)}.mec-event-list-minimal .btn-wrapper{text-align:center;padding-left:0}.mec-event-list-minimal{text-align:center}.mec-event-list-minimal .mec-event-detail{margin-bottom:10px}}.mec-wrap .mec-event-list-modern .mec-event-title{margin-top:0;margin-bottom:10px}.mec-event-list-modern .mec-event-article{border-bottom:1px solid #efefef;padding:30px 0 10px}.mec-event-list-modern .mec-event-article:last-child{border-bottom:none}.mec-event-list-modern .mec-event-title a{color:#191919;transition:all .24s ease;box-shadow:none}.mec-event-list-modern .mec-event-date{text-transform:uppercase;padding:10px 0}.mec-event-list-modern .mec-event-date .event-d{font-size:48px;display:table-cell;padding:10px 0 0}.mec-event-list-modern .mec-event-date .event-f{font-size:13px;display:table-cell;vertical-align:middle;padding-left:7px;font-weight:500;letter-spacing:3px;color:#777}.mec-event-list-modern .mec-event-detail{font-weight:300;color:#8a8a8a}.mec-event-list-modern .mec-event-date .event-da{margin-top:9px;color:silver;font-family:Roboto,sans-serif;font-size:28px;font-weight:100;text-transform:uppercase;letter-spacing:-1px}.mec-event-list-modern .mec-btn-wrapper .mec-booking-button{border-radius:1px;letter-spacing:2px;border:1px solid #e6e6e6;color:#333;background-color:#fff;padding:13px 20px;font-weight:700;font-size:11px;box-shadow:0 2px 0 0 rgba(0,0,0,.016);transition:all .28s ease}.mec-event-list-modern .mec-btn-wrapper .mec-booking-button:hover{border-color:#222;background:#222;color:#fff}.mec-event-list-modern .mec-event-title{font-weight:700;font-size:20px;text-transform:uppercase;letter-spacing:1px}.mec-event-list-modern .mec-event-detail{color:#9a9a9a;font-size:15px;font-weight:300;line-height:25px;font-family:Roboto,sans-serif}.mec-event-list-modern .mec-btn-wrapper{text-align:right;padding:10px 0;text-transform:uppercase}.mec-event-list-modern .mec-event-sharing{position:relative;margin:10px 0}.mec-event-list-modern .mec-event-sharing>li{display:inline-block;border:none;border-radius:50%;margin-right:3px}.mec-event-list-modern .mec-event-sharing>li:hover{display:inline-block}.mec-event-list-modern .mec-event-sharing>li:hover a i{color:#fff;background:#40d9f1;border-color:#40d9f1}.mec-event-list-modern .mec-event-sharing>li i{width:36px;display:inline-block;line-height:35px;color:#767676;text-align:center;border-radius:50%;border:1px solid #ddd;font-size:14px}.mec-event-list-modern .mec-event-sharing .mec-event-share:hover .mec-event-sharing-icon{background:#40d9f1;border-color:#40d9f1;cursor:pointer;border-radius:50%}.mec-event-list-modern .mec-event-sharing li:hover a i{background:#40d9f1}@media only screen and (min-width:768px){.mec-event-list-modern .mec-event-article{position:relative;min-height:160px;overflow:hidden}.mec-event-list-modern .col-md-2.col-sm-2{width:210px;position:absolute;left:0;top:20px}.mec-event-list-modern .col-md-4.col-sm-4.mec-btn-wrapper{width:180px;padding:0;position:absolute;right:0;top:30%}.mec-event-list-modern .col-md-6.col-sm-6{width:100%;padding-left:225px;padding-right:195px}}@media only screen and (max-width:767px){.mec-event-list-modern .mec-btn-wrapper .mec-booking-button{letter-spacing:1px;border:1px solid #e1e1e1;padding:8px 16px}.mec-event-list-modern .mec-btn-wrapper{padding:0 0 12px}.mec-event-list-modern .mec-event-sharing{margin-bottom:0}}.mec-event-grid-minimal .mec-event-article{margin:15px 0;min-height:80px;display:table}.mec-event-grid-minimal .event-detail-wrap{display:table-cell;vertical-align:middle}.mec-event-grid-minimal .mec-event-date{width:70px;float:left;margin-right:20px;padding:12px 16px 10px;text-align:center;text-transform:uppercase;border-radius:4px;border:1px solid #e6e6e6;transition:all .37s ease-in-out;box-shadow:0 2px 0 0 rgba(0,0,0,.016)}.mec-event-grid-minimal .mec-event-date span{display:block;font-size:24px;font-weight:700;text-align:center;margin-bottom:4px;color:#2a2a2a;transition:color .3s ease}.mec-event-grid-minimal .mec-event-title{margin-top:0;margin-bottom:10px;font-weight:700;line-height:21px;font-size:16px;text-transform:uppercase;transition:color .3s ease}.mec-event-grid-minimal .mec-event-title a{color:#191919;transition:color .3s ease}.mec-event-grid-minimal .mec-event-detail{font-size:15px;font-weight:300;line-height:1;letter-spacing:0;color:#9a9a9a;font-family:Roboto,sans-serif}.mec-event-grid-minimal .mec-event-date:hover{color:#fff}.mec-event-grid-minimal .mec-event-date:hover span{color:#fff}.mec-event-list-classic .mec-event-article{padding:12px 0;margin-bottom:20px}.mec-event-list-classic .mec-event-image{float:left;width:86px;margin-right:20px}.mec-event-list-classic .mec-event-date{font-weight:400;font-size:13px;letter-spacing:0;line-height:18px}.mec-event-list-classic .mec-event-date span{font-weight:500;margin-bottom:6px}.mec-event-list-classic .mec-event-title{font-size:15px;margin:10px 0 12px;font-weight:700;text-transform:uppercase}.mec-event-list-classic .mec-event-title a{color:#494949;transition:color .3s ease}.mec-event-list-classic .mec-event-detail{color:#777;font-weight:400;line-height:12px;font-size:12px;overflow:hidden}.mec-event-list-classic a.magicmore{padding:10px 16px;color:#fff;background:#222;letter-spacing:2px;font-size:11px}.mec-event-list-classic a.magicmore:after{content:"";display:none}.mec-event-list-classic a.magicmore:hover{color:#40d9f1}.mec-event-grid-simple .mec-event-article{position:relative;margin-bottom:30px}.mec-event-grid-simple .mec-event-article:after{border-right:1px solid #e6e6e6;height:60px;position:absolute;top:50%;margin-top:-30px;right:-1px}.mec-event-grid-simple .row div:last-child .mec-event-article:after{border:none}.mec-event-grid-simple .row{margin:15px 0 30px;text-align:center}.mec-event-grid-simple .mec-event-date{padding:0;margin:0;text-transform:capitalize;font-size:12px;font-weight:700}.mec-event-grid-simple .mec-event-title{margin-top:0;margin-bottom:10px;font-weight:700;line-height:21px;font-size:15px;padding-top:5px;text-transform:uppercase;transition:color .37s ease}.mec-event-grid-simple .mec-event-title a{color:#494949;transition:color .3s ease}.mec-event-grid-simple .mec-event-detail{font-family:Roboto,sans-serif;font-weight:400;line-height:1;letter-spacing:0;font-size:13px;color:#777}.mec-event-grid-simple:hover .mec-event-title{color:#40d9f1}.mec-event-grid-simple:hover .mec-event-date{background:0 0}.event-last:after{display:none}@media only screen and (max-width:767px){.mec-event-grid-simple .mec-event-article{padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid #eee}.mec-event-grid-simple .mec-event-article:after{border:none}}.mec-event-grid-novel .mec-event-article{position:relative;margin-bottom:30px;padding:60px 5% 60px 7%;border:1px solid rgba(255,255,255,.12);border-radius:10px;background-color:#0050fd;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease;z-index:1}.mec-event-grid-novel .mec-event-article .novel-grad-bg{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:10px;opacity:0;z-index:-1;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.mec-event-grid-novel .mec-event-article:hover{-webkit-box-shadow:0 13px 36px 0 rgba(0,0,0,.23);box-shadow:0 13px 36px 0 rgba(0,0,0,.23);border-color:transparent}.mec-event-grid-novel .mec-event-article:hover .novel-grad-bg{background-image:-webkit-gradient(linear,left top,right top,from(#262e32),to(#0e1015));background-image:-webkit-linear-gradient(left,#262e32 0,#0e1015 100%);background-image:-o-linear-gradient(left,#262e32 0,#0e1015 100%);background-image:linear-gradient(90deg,#262e32 0,#0e1015 100%);opacity:1}.mec-event-grid-novel .mec-event-image{float:left;width:150px;height:150px}.mec-event-grid-novel .mec-event-image img{width:150px;height:150px;border-radius:50%}.mec-event-grid-novel .mec-event-detail-wrap{margin-left:200px}.mec-event-grid-novel .mec-event-content h4{position:relative;margin-bottom:10px;display:inline-block}.mec-event-grid-novel .mec-event-content h4 a{font-size:24px;line-height:35px;color:#fafcff}.mec-event-grid-novel .mec-event-content h4::before{content:'';position:absolute;top:8px;left:-30px;width:17px;height:17px;background:#5cd0ed;opacity:.4;border-radius:50%}.mec-event-grid-novel .mec-event-content h4::after{content:'';position:absolute;top:12px;left:-26px;width:9px;height:9px;background:#5cd0ed;border-radius:50%}.mec-event-grid-novel .mec-event-address,.mec-event-grid-novel .mec-event-detail,.mec-event-grid-novel .mec-event-month{position:relative;padding-left:35px;font-size:15px;line-height:30px;color:rgba(255,255,255,.4)}.mec-event-grid-novel .mec-event-address::before,.mec-event-grid-novel .mec-event-detail::before,.mec-event-grid-novel .mec-event-month::before{position:absolute;top:6px;left:6px;font-size:17px;font-family:simple-line-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1}.mec-event-grid-novel .mec-event-month::before{content:"\e075"}.mec-event-grid-novel .mec-event-detail::before{content:"\e081"}.mec-event-grid-novel .mec-event-address::before{content:"\e096"}.mec-event-grid-novel .mec-event-footer{clear:both;padding:20px 0;border-top:none;background:0 0}.mec-event-grid-novel .mec-event-footer .mec-booking-button{right:auto;left:0;height:42px;width:148px;padding:0 20px;font-size:14px;font-weight:400;line-height:42px;text-align:center;color:#fff;background:0 0;border-color:rgba(255,255,255,.1);border-radius:50px}.mec-event-grid-novel .mec-event-footer .mec-booking-button:hover{background-color:rgba(255,255,255,.1)}.mec-event-grid-novel .mec-event-sharing-wrap{left:175px;cursor:pointer}.mec-event-grid-novel .mec-event-sharing-wrap>li{border-color:rgba(255,255,255,.1);border-radius:50%}.mec-event-grid-novel .mec-event-sharing-wrap .mec-event-sharing{top:-5px;left:0;padding:5px 10px 2px 50px;min-width:150px;width:inherit;height:37px;background-color:rgba(255,255,255,.1);-webkit-box-shadow:none;box-shadow:none;border:none;border-radius:50px}.mec-event-grid-novel .mec-event-sharing-wrap:hover>li{background-color:rgba(255,255,255,.1)}.mec-event-grid-novel .mec-event-sharing-wrap .mec-event-sharing::after,.mec-event-grid-novel .mec-event-sharing-wrap .mec-event-sharing::before{display:none}.mec-event-grid-novel .mec-event-sharing .mec-event-social-icon,.mec-event-grid-novel .mec-event-sharing .mec-event-social-icon a,.mec-event-grid-novel .mec-event-sharing-wrap .mec-event-sharing li i{display:inline}.mec-event-grid-novel .mec-event-sharing .mec-event-social-icon a{padding:0 10px}.mec-event-grid-novel .mec-event-sharing-wrap>li a{color:#fff}.mec-event-grid-novel .mec-event-sharing-wrap .mec-event-sharing li a{color:rgba(255,255,255,.4)}.mec-event-grid-novel .mec-event-sharing-wrap .mec-event-sharing li a:hover{color:rgba(255,255,255,1)}@media only screen and (max-width:1200px){.mec-event-grid-novel .row .col-md-6.col-sm-6{width:100%;float:none}.mec-event-grid-novel .mec-event-image{float:none;margin-top:-20px;margin-bottom:20px}.mec-event-grid-novel .mec-event-detail-wrap{margin-left:20px}.mec-event-grid-novel .mec-event-footer{margin-top:30px}}@media only screen and (max-width:767px){.mec-event-grid-novel .mec-event-footer{margin-top:0;padding-top:30px;margin-bottom:24px}.mec-event-grid-novel .mec-event-footer .mec-booking-button{display:block;position:relative}.mec-event-grid-novel .mec-event-sharing-wrap{left:0;bottom:-55px}.mec-event-grid-novel .mec-event-content h4 a{font-size:20px;line-height:1.3}}.mec-event-cover-modern{position:relative}.mec-event-cover-modern .mec-event-cover-a{background:0 0;position:absolute;color:#fff;bottom:0;left:0;text-decoration:none}.mec-event-cover-modern .mec-event-cover-a .mec-event-overlay{transition:all .5s;opacity:.8;width:100%;height:100%;position:absolute}.mec-event-cover-modern .mec-event-cover-a:hover .mec-event-overlay{opacity:1}.mec-event-cover-modern .mec-event-detail{padding:40px;position:relative}.mec-event-cover-modern .mec-event-cover-a:hover .mec-event-tag{color:#333;transition:all .5s}.mec-event-cover-modern .mec-event-cover-a .mec-event-title:hover{text-decoration:underline}.mec-event-cover-modern .mec-event-tag{background:#fff;display:inline-block;padding:5px 9px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;margin-bottom:24px}.mec-event-cover-modern .mec-event-date{text-transform:uppercase;font-size:17px;font-weight:300}.mec-event-cover-modern .mec-event-title{color:#fff;text-transform:uppercase;font-size:40px;font-weight:700;margin:6px 0}.mec-event-cover-modern .mec-event-place{font-weight:400;font-size:18px;font-family:Roboto,sans-serif}@media only screen and (max-width:767px){.mec-event-cover-modern .mec-event-cover-a{width:100%}}.mec-event-cover-classic{position:relative;overflow:hidden;background:#fff;padding:6px;border:1px solid #e8e8e8}.mec-event-cover-classic .mec-event-overlay{position:absolute;left:6px;right:6px;bottom:6px;top:6px;width:auto;height:auto;background-color:rgba(36,36,36,.4);transition:all .33s ease-in-out}.mec-event-cover-classic:hover .mec-event-overlay{background-color:rgba(36,36,36,.6)}.mec-event-cover-classic .mec-event-content{font-size:15px;color:#fff;position:absolute;bottom:0;padding:50px 35px;transition:all .33s ease-in-out}.mec-event-cover-classic .mec-event-date{font-size:14px;text-transform:uppercase;font-weight:400;line-height:1.6}.mec-event-cover-classic .mec-event-date span{display:block;font-weight:700;font-size:16px}.mec-event-cover-classic .mec-event-title{color:#fff;margin:20px 0 38px;font-size:24px;font-weight:700;text-transform:uppercase;font-style:normal}.mec-event-cover-classic .mec-btn-wrapper{text-align:left}.mec-event-cover-classic .mec-event-icon{font-size:18px;float:left;margin-right:14px;color:#fff;padding:13px}.mec-event-cover-classic .mec-event-button{color:#fff;background-color:#191919;border:2px #191919 solid;padding:12px 20px;letter-spacing:3px;font-size:12px;font-weight:700;font-style:normal;transition:all .22s ease;text-decoration:none}.mec-event-cover-classic .mec-event-button:hover{color:#191919;background-color:#fff;border-color:#fff;border-radius:1px}.mec-event-cover-classic .mec-event-image img{min-width:100%}@media only screen and (max-width:960px){.mec-event-cover-classic .mec-event-content{padding:20px}.mec-event-cover-classic .mec-event-button{font-size:11px;padding:7px 10px;letter-spacing:1px}.mec-event-cover-classic .mec-event-title{font-size:19px;margin:15px 0 25px}.mec-event-cover-classic .mec-event-date{font-size:12px}}@media only screen and (max-width:767px){.mec-event-cover-classic{margin-bottom:30px}}@media only screen and (max-width:479px){.mec-event-cover-classic .mec-event-content{padding:15px;font-size:15px}.mec-event-cover-classic .mec-event-title{font-size:15px;margin:10px 0}.mec-event-cover-classic .mec-event-button{font-size:10px;padding:6px;letter-spacing:1px}.mec-event-cover-classic .mec-event-icon{padding:10px}}.mec-load-more-wrap{text-align:center;display:block;width:100%;padding-top:20px;text-align:center;position:relative}.mec-load-more-button{box-shadow:none;transition:all .21s ease;font-size:12px;font-weight:500;letter-spacing:1px;text-transform:uppercase;background:#fff;color:#767676;border:2px solid #e8e8e8;border-radius:50px;padding:0 28px;margin-bottom:20px;cursor:pointer;line-height:40px;font-family:Montserrat,Helvetica,Arial,sans-serif;height:42px;display:inline-block}.mec-load-more-button:hover{background:#191919;color:#fff;border-color:#191919}.mec-load-more-loading{content:url(../img/ajax-loader.gif);cursor:wait;background:0 0;border-style:none}.mec-load-more-loading:hover{background:0 0}.mec-modal-preloader,.mec-month-navigator-loading{width:100%;height:100%;background:no-repeat rgba(255,255,255,.88) url(../img/ajax-loader.gif) center;border-style:none;position:fixed;left:0;right:0;bottom:0;top:0;z-index:9}.mec-event-calendar-classic .mec-calendar-side .mec-calendar-table{min-height:1024px}.mec-calendar-side .mec-calendar-table{min-height:450px}.mec-skin-weekly-view-events-container.mec-month-navigator-loading{margin-top:0}.mec-calendar.mec-event-calendar-classic .mec-calendar-side{display:block}.mec-skin-daily-view-events-container.mec-month-navigator-loading{margin-top:0}@media only screen and (min-width:961px){.mec-wrap.mec-sm959 .mec-calendar-side .mec-calendar-table{min-height:1px}}@media only screen and (max-width:479px){.mec-calendar-side .mec-calendar-table{min-height:1px}}.mec-event-cover-clean{position:relative;border:1px solid #e6e6e6;padding:8px}.mec-event-cover-clean .mec-event-overlay{height:100%;background-color:rgba(36,36,36,.4);position:absolute;width:100%;left:0;border:8px solid #fff;top:0;transition:all .5s ease-in-out}.mec-event-cover-clean .mec-event-content{color:#fff;position:absolute;bottom:20px;padding:40px 60px;transition:all .5s ease-in-out}.mec-event-cover-clean .mec-event-title{color:#fff;font-weight:700;margin:46px 0 19px;font-size:29px;text-transform:uppercase;text-shadow:0 0 1px rgba(0,0,0,.5)}.mec-event-cover-clean .mec-event-title a{color:#fff;transition:all .5s;text-decoration:none;outline:0;border:none;box-shadow:none}.mec-event-cover-clean .mec-event-title a:hover{text-decoration:underline}.mec-event-cover-clean .mec-event-date{position:absolute;top:-20px;right:60px;color:#fff;width:60px;padding:14px 10px;z-index:1}.mec-event-cover-clean .mec-event-date div{text-align:center;text-transform:uppercase;letter-spacing:1px;line-height:16px}.mec-event-cover-clean .mec-event-date .dday{padding-bottom:15px;border-bottom:1px solid rgba(255,255,255,.5);margin-bottom:13px;font-size:24px}.mec-event-cover-clean .mec-event-date .dmonth{letter-spacing:2px}.mec-event-cover-clean .mec-event-place{font-size:18px;font-family:Roboto,sans-serif}.mec-event-cover-clean .mec-event-image img{width:100%}@media only screen and (max-width:768px){.mec-event-cover-clean .mec-event-content{padding:20px;bottom:5px}.mec-event-cover-clean .mec-event-title{font-size:23px}.mec-event-cover-clean .mec-event-date{right:20px;padding:10px;width:50px}}@media only screen and (max-width:479px){.mec-event-cover-clean .mec-event-content{padding:10px}.mec-event-cover-clean .mec-event-title{font-size:19px;padding-right:25px}.mec-event-cover-clean .mec-event-date{right:-20px;top:-10px}.mec-event-cover-clean .mec-event-detail{font-size:12px}}.mec-month-divider{text-align:center;margin:60px 0 40px 0}.widget .mec-month-divider{margin:10px 0}.mec-month-divider span{text-transform:uppercase;font-size:22px;font-weight:700;padding-bottom:5px;color:#313131;border-bottom:4px solid #ebebeb;width:100%;display:block;padding-bottom:10px;position:relative}.mec-month-divider span:before{border-bottom:4px solid #40d9f1;font-size:6px;content:"";text-align:center;position:absolute;bottom:-4px;margin-left:-30px;left:50%;width:60px}.widget .mec-month-divider span{font-size:13px}.mec-event-list-standard .mec-events-pagination{margin-top:60px;border-top:4px solid #ebebeb;min-height:80px;padding-top:20px}.mec-event-list-standard .mec-events-pagination .mec-events-pag-previous{float:left;margin-left:0}.mec-event-list-standard .mec-events-pagination .mec-events-pag-next{float:right;margin-right:0}.mec-event-list-standard .mec-event-article{position:relative;display:block;margin-bottom:25px;border:1px solid #e9e9e9;box-shadow:0 2px 0 0 rgba(0,0,0,.016)}.mec-event-list-standard .mec-topsec{display:table;width:100%}.mec-event-list-standard .col-md-3.mec-event-image-wrap{padding-left:0}.mec-event-list-standard .mec-event-content{padding-top:15px;padding-right:30px}.mec-event-list-standard .mec-event-title{font-size:29px;font-weight:700;letter-spacing:-1px;margin:0 0 10px}.mec-event-list-standard .mec-event-title a{color:#292929;transition:color .3s ease}.mec-event-list-standard .mec-col-table-c{display:table-cell;height:100%;vertical-align:middle;float:none!important}.mec-event-list-standard .mec-col-table-c.mec-event-meta-wrap{padding-top:15px}.mec-event-list-standard .mec-col-table-c.mec-event-image-wrap{vertical-align:top}.mec-topsec .mec-event-image{line-height:1px}.mec-event-list-standard .mec-event-meta-wrap{border-left:1px solid #eee}.mec-event-list-standard .mec-time-details{text-transform:uppercase;font-size:11px;font-weight:300;padding-top:0;text-align:left;padding-left:30px}.mec-event-list-standard .mec-event-meta .mec-event-address{font-style:normal;letter-spacing:0;font-size:13px;color:#8a8a8a}.mec-event-list-standard .mec-event-meta span.mec-event-d,.mec-event-list-standard .mec-event-meta span.mec-event-m{font-size:17px;font-weight:700;padding-right:6px;color:#444;text-transform:uppercase}.mec-event-list-standard .mec-date-details,.mec-event-list-standard .mec-time-details,.mec-event-list-standard .mec-venue-details{position:relative;padding-left:28px;margin-bottom:10px}.mec-event-list-standard .mec-date-details:before,.mec-event-list-standard .mec-time-details:before,.mec-event-list-standard .mec-venue-details:before{content:"\f041";font-family:fontawesome;position:absolute;left:6px;font-size:15px}.mec-event-list-standard .mec-date-details:before{content:"\f073"}.mec-event-list-standard .mec-time-details:before{content:"\f017"}.mec-event-list-minimal .mec-event-title a{color:#292929;transition:color .3s ease}.mec-event-meta-wrap .mec-price-details{margin-bottom:10px}.mec-price-details i{margin-right:5px;vertical-align:text-top}.mec-event-meta-wrap .mec-event-meta .mec-price-details i:before{font-size:15px}@media only screen and (max-width:960px){.mec-event-list-standard .mec-topsec{display:block}.mec-event-list-standard .mec-col-table-c.mec-event-image-wrap{display:block;width:40%}.mec-event-list-standard .mec-col-table-c.mec-event-content-wrap{display:block;min-height:230px}.mec-event-list-standard .mec-event-meta-wrap{display:block;border-left:none;border-top:1px solid #eee;width:100%;float:none;padding-top:20px}}@media only screen and (min-width:480px) and (max-width:960px){.mec-event-list-standard .mec-col-table-c.mec-event-content-wrap,.mec-event-list-standard .mec-col-table-c.mec-event-image-wrap{display:table-cell}}@media only screen and (max-width:479px){.mec-event-list-standard .mec-col-table-c.mec-event-image-wrap,.mec-event-list-standard .mec-col-table-c.mec-event-image-wrap img{float:none;width:100%;padding:0}.mec-event-list-standard .mec-col-table-c.mec-event-content-wrap{padding:10px 10px 10px 30px}}.mec-wrap .mec-events-cal-links{margin-bottom:0}.mec-single-event #mec-wrap{padding:0;margin-top:35px}.mec-wrap .mec-single-title{margin-top:0;margin-bottom:30px;font-weight:700;font-size:33px}.mec-single-event .mec-event-content{padding:40px 0 30px;margin-bottom:10px}.mec-single-event .mec-events-meta-group-booking,.mec-single-event .mec-frontbox{margin-bottom:30px;padding:20px 30px;background:#fff;border:1px solid #e6e6e6;box-shadow:0 2px 0 0 rgba(0,0,0,.016)}.mec-wrap #main-content{overflow:hidden;padding-top:35px}.mec-single-event .mec-map-get-direction-address-cnt{position:relative}.mec-single-event .mec-map-get-direction-address-cnt input.mec-map-get-direction-address{width:100%;height:46px;padding:13px 10px;margin-bottom:0;background:#fcfcfc;border:1px solid #e0e0e0;border-radius:0;box-shadow:inset 0 2px 5px rgba(0,0,0,.081)}.mec-single-event .mec-map-get-direction-address-cnt input.mec-map-get-direction-address:focus{color:#444;background:#fff;border-color:#b0b0b0;box-shadow:0 0 3px rgba(0,0,0,.2)}.mec-single-event .mec-map-get-direction-btn-cnt input{width:100%}.mec-single-event .mec-map-get-direction-reset{position:absolute;z-index:2;top:5px;right:10px;font-size:11px;cursor:pointer}.mec-events-meta-group-tags{margin-top:20px}.mec-events-meta-group-tags a{display:inline-block;color:#444;font-size:11px;text-transform:uppercase;letter-spacing:1.5px;font-weight:500;padding:3px 7px;border:1px solid #ddd;border-radius:2px;background:#fff;margin:1px 3px}.mec-events-meta-group-tags a:hover{text-decoration:underline;background:#f9f9f9}.mec-local-time-details li{list-style:none}.mec-single-event:not(.mec-single-modern) .mec-local-time-details{background:#f7f7f7;padding:12px 14px 8px;margin-bottom:12px;vertical-align:baseline;position:relative;border:none}.mec-single-event:not(.mec-single-modern) .mec-local-time-details ul{margin:0;padding-left:35px}.mec-single-event:not(.mec-single-modern) .mec-local-time-details h3{border:none;padding-left:15px}.mec-single-event:not(.mec-single-modern) .mec-local-time-details h3:before{display:none}.mec-single-event.mec-single-modern i.mec-sl-speedometer{display:none}.mec-single-event .mec-events-meta-group-booking{padding-bottom:30px}.mec-single-event .mec-events-meta-group-booking ul{list-style:none;margin-left:0;padding-left:0}.mec-single-event .mec-events-meta-group-booking ul li{padding:0;list-style:none;margin-top:40px}.mec-single-event .mec-events-meta-group-booking h4{margin-bottom:20px;font-size:23px;font-weight:700}.mec-single-event .mec-events-meta-group-booking li h4{font-size:19px}.mec-single-event .mec-events-meta-group-booking button,.mec-single-event .mec-events-meta-group-booking input{border-radius:0;margin-bottom:6px}.mec-single-event .mec-events-meta-group-booking button{min-width:170px;margin-top:5px}.mec-single-event .mec-events-meta-group-booking button{margin-left:15px}.mec-single-event .mec-book-form-coupon button{margin-left:0}.mec-single-event .mec-book-form-gateway-checkout button{margin-left:0}.mec-single-event .mec-book-first,.mec-single-event .mec-event-tickets-list{padding-left:15px;padding-right:15px}.mec-single-event label.mec-fill-attendees{margin-left:15px!important}.mec-single-event .mec-events-meta-group-booking .mec-event-ticket-available{display:block;margin-bottom:20px;margin-top:-17px;font-size:11px;color:#8a8a8a}.mec-single-event .mec-events-meta-group-booking .mec-book-price-total{display:inline-block;margin-bottom:10px;font-size:26px;color:#39c36e;font-weight:700;padding:10px 0}.mec-single-event .mec-events-meta-group-booking form{margin:0}.mec-single-event .mec-events-meta-group-booking h5 span,.mec-single-event .mec-events-meta-group-booking label{color:#424242;font-size:12px;font-weight:300;letter-spacing:0;margin:3px 0;display:block;clear:none;padding:5px 1em 3px 0}.mec-single-event .mec-events-meta-group-booking h5 span{display:inline-block}.mec-single-event .mec-events-meta-group-booking h5 span.mec-ticket-variation-name{padding-right:5px;text-transform:capitalize}.mec-single-event .mec-events-meta-group-booking input::-webkit-input-placeholder{color:#aaa}.mec-single-event .mec-events-meta-group-booking input:-moz-placeholder{color:#aaa}.mec-single-event .mec-events-meta-group-booking input[type=date],.mec-single-event .mec-events-meta-group-booking input[type=email],.mec-single-event .mec-events-meta-group-booking input[type=number],.mec-single-event .mec-events-meta-group-booking input[type=password],.mec-single-event .mec-events-meta-group-booking input[type=tel],.mec-single-event .mec-events-meta-group-booking input[type=text],.mec-single-event .mec-events-meta-group-booking select,.mec-single-event .mec-events-meta-group-booking textarea{display:block;background:#fcfcfc;min-height:42px;min-width:180px;font-size:13px;border:1px solid #e0e0e0;padding:13px 10px;width:330px;margin-bottom:20px;box-shadow:inset 0 2px 4px rgba(0,0,0,.051);clear:both}.wbmec-mandatory{padding-left:5px;font-size:14px}.mec-single-event .mec-events-meta-group-booking .mec-red-notification input,.mec-single-event .mec-events-meta-group-booking .mec-red-notification select,.mec-single-event .mec-events-meta-group-booking .mec-red-notification textarea{border:1px solid #ff3c3c}.mec-single-event .mec-events-meta-group-booking .mec-red-notification input[type=checkbox],.mec-single-event .mec-events-meta-group-booking .mec-red-notification input[type=radio]{outline:1px solid #ff3c3c}@media only screen and (max-width:479px){.mec-single-event .mec-events-meta-group-booking input[type=date],.mec-single-event .mec-events-meta-group-booking input[type=email],.mec-single-event .mec-events-meta-group-booking input[type=number],.mec-single-event .mec-events-meta-group-booking input[type=password],.mec-single-event .mec-events-meta-group-booking input[type=tel],.mec-single-event .mec-events-meta-group-booking input[type=text],.mec-single-event .mec-events-meta-group-booking select,.mec-single-event .mec-events-meta-group-booking textarea{width:100%}}.mec-single-event .mec-events-meta-group-booking input[type=email]:focus,.mec-single-event .mec-events-meta-group-booking input[type=number]:focus,.mec-single-event .mec-events-meta-group-booking input[type=password]:focus,.mec-single-event .mec-events-meta-group-booking input[type=tel]:focus,.mec-single-event .mec-events-meta-group-booking input[type=text]:.mec-single-event .mec-events-meta-group-booking input[type=date],.mec-single-event .mec-events-meta-group-booking select:focus,.mec-single-event .mec-events-meta-group-booking textarea:focus,focus{border:1px solid #aaa;color:#444;background:#fff;-moz-box-shadow:0 0 3px rgba(0,0,0,.2);-webkit-box-shadow:0 0 3px rgba(0,0,0,.2);box-shadow:0 0 3px rgba(0,0,0,.2);outline:0}.mec-single-event .mec-events-meta-group-booking input[type=checkbox],.mec-single-event .mec-events-meta-group-booking input[type=radio]{margin-right:6px;margin-top:5px;min-height:20px;clear:none;margin:0 0 0 2px}.lity-container .mec-events-meta-group-booking input[type=radio]:before,.mec-single-event .mec-events-meta-group-booking input[type=radio]:before{content:"";display:inline-block;background:#fff;border-radius:18px;width:18px;height:18px;margin:-1px 0 0 -3px;cursor:pointer;border:2px solid #e1e7ed;box-shadow:0 2px 15px -3px rgba(69,77,89,.32)}.lity-container .mec-events-meta-group-booking input[type=radio]:checked:before,.mec-single-event .mec-events-meta-group-booking input[type=radio]:checked:before{border:7px solid #008aff;background:#fff;box-shadow:0 3px 16px -3px #008aff}.lity-container .mec-events-meta-group-booking input[type=radio],.mec-single-event .mec-events-meta-group-booking input[type=radio]{min-height:0;margin:0;margin-right:6px}.mec-single-event .mec-events-meta-group-booking input[type=checkbox]{float:left}.lity-container .mec-events-meta-group-booking .mec_book_first_for_all,.mec-single-event .mec-events-meta-group-booking .mec_book_first_for_all{display:none}.mec-events-meta-group-booking ul.mec-book-price-details{list-style:none;border:1px solid #eee;padding:0;overflow:hidden}.mec-events-meta-group-booking ul.mec-book-price-details li{font-size:15px;color:#a9a9a9;list-style:none;padding:13px 18px;margin:0;float:left;border-right:1px solid #eee}.mec-events-meta-group-booking ul.mec-book-price-details li:last-child{border-right:none}.mec-events-meta-group-booking ul.mec-book-price-details li span.mec-book-price-detail-amount{font-weight:700;font-size:21px;color:#222}.lity-container .mec-events-meta-group-booking label.wn-checkbox-label,.mec-single-event .mec-events-meta-group-booking label.wn-checkbox-label{height:14px;width:14px;background-color:transparent;border:1px solid #d4d4d4;position:relative;display:inline-block;-moz-transition:border-color ease .2s;-o-transition:border-color ease .2s;-webkit-transition:border-color ease .2s;transition:border-color ease .2s;cursor:pointer;box-shadow:0 2px 16px -2px rgba(0,0,0,.2);vertical-align:middle;margin-right:3px;margin-top:-2px}.lity-container .mec-events-meta-group-booking input[type=checkbox]:checked+.wn-checkbox-label,.mec-single-event .mec-events-meta-group-booking input[type=checkbox]:checked+.wn-checkbox-label{border-color:#008aff;box-shadow:0 2px 14px -3px #008aff}.lity-container .mec-events-meta-group-booking label.wn-checkbox-label:after,.lity-container .mec-events-meta-group-booking label.wn-checkbox-label:before,.mec-single-event .mec-events-meta-group-booking label.wn-checkbox-label:after,.mec-single-event .mec-events-meta-group-booking label.wn-checkbox-label:before{position:absolute;height:0;width:1px;background-color:#008aff;display:inline-block;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;-webkit-transform-origin:left top;transform-origin:left top;content:'';-webkit-transition:opacity ease .5;-moz-transition:opacity ease .5;transition:opacity ease .5}.lity-container .mec-events-meta-group-booking label.wn-checkbox-label:before,.mec-single-event .mec-events-meta-group-booking label.wn-checkbox-label:before{top:8px;left:7px;box-shadow:0 0 0 2px #fff;-moz-transform:rotate(-145deg);-ms-transform:rotate(-145deg);-o-transform:rotate(-145deg);-webkit-transform:rotate(-145deg);transform:rotate(-145deg)}.lity-container .mec-events-meta-group-booking input[type=checkbox]:checked+.wn-checkbox-label::before,.mec-single-event .mec-events-meta-group-booking input[type=checkbox]:checked+.wn-checkbox-label::before{height:12px;-moz-animation:dothatopcheck .16s ease 0s forwards;-o-animation:dothatopcheck .16s ease 0s forwards;-webkit-animation:dothatopcheck .16s ease 0s forwards;animation:dothatopcheck .16s ease 0s forwards}.lity-container .mec-events-meta-group-booking label.wn-checkbox-label:after,.mec-single-event .mec-events-meta-group-booking label.wn-checkbox-label:after{top:6px;left:3px;-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.lity-container .mec-events-meta-group-booking input[type=checkbox]:checked+.wn-checkbox-label::after,.mec-single-event .mec-events-meta-group-booking input[type=checkbox]:checked+.wn-checkbox-label::after{-moz-animation:dothabottomcheck 80ms ease 0s forwards;-o-animation:dothabottomcheck 80ms ease 0s forwards;-webkit-animation:dothabottomcheck 80ms ease 0s forwards;animation:dothabottomcheck 80ms ease 0s forwards;height:4px}.mec-single-event .mec-events-meta-group-booking button[type=submit]:after,.mec-single-event a.button:after{display:none;font-family:simple-line-icons;content:"\e098";margin-left:4px;-webkit-animation:rotating 1.2s linear infinite;-moz-animation:rotating 1.2s linear infinite;-ms-animation:rotating 1.2s linear infinite;-o-animation:rotating 1.2s linear infinite;animation:rotating 1.2s linear infinite}.mec-single-event .mec-events-meta-group-booking button[type=submit].loading:after,.mec-single-event a.button.loading:after{display:inline-block}.mec-single-event .mec-event-export-module{display:block}.mec-single-event .mec-event-export-module.mec-frontbox .mec-event-exporting .mec-export-details ul{display:table;width:100%}.mec-single-event .mec-event-export-module.mec-frontbox .mec-event-exporting .mec-export-details ul li{display:table-cell}.mec-single-event .mec-event-export-module.mec-frontbox .mec-event-exporting .mec-export-details ul li:last-child{text-align:right}.mec-single-event .mec-event-export-module.mec-frontbox .mec-event-exporting .mec-export-details ul li a:hover{color:#fff}.mec-single-event .mec-event-export-module.mec-frontbox .mec-event-exporting .mec-export-details ul{padding-left:0;margin:15px 5px}.mec-single-event .mec-event-export-module.mec-frontbox .mec-event-exporting{padding-left:0;margin:0}.mec-ticket-price{margin-left:10px;font-size:13px;font-weight:300}.mec-book-reg-field-checkbox label,.mec-book-reg-field-radio label{line-height:1.36}.mec-book-reg-field-checkbox input[type=checkbox],.mec-book-reg-field-radio input[type=radio]{float:left;margin-right:5px!important}.mec-ticket-available-spots .mec-event-ticket-description,.mec-ticket-available-spots .mec-event-ticket-price{font-size:11px}.mec-book-ticket-container .mec-reg-mandatory:nth-child(2) label:after,.mec-book-ticket-container .mec-reg-mandatory:nth-child(3) label:after,.mec-book-ticket-container .wbmec-mandatory{content:"";color:red;width:50px;height:50px;font-size:14px;padding-left:5px}@media only screen and (max-width:767px){.mec-single-event .mec-event-export-module.mec-frontbox .mec-event-exporting .mec-export-details ul li{width:100%;min-height:40px;margin-bottom:15px;text-align:center;float:none;display:block}.mec-single-event .mec-event-export-module.mec-frontbox .mec-event-exporting .mec-export-details ul li a{width:100%;padding-left:0;padding-right:0;text-align:center;display:block;font-size:12px}}.mec-single-event .mec-events-meta-group{margin-bottom:0}@media only screen and (max-width:767px){.mec-single-event .mec-events-meta-group-booking{margin-bottom:30px}}.mec-single-event .mec-event-meta dt,.mec-single-event .mec-event-meta h3{text-transform:uppercase;font-size:16px;font-weight:700;padding-bottom:5px;display:inline;color:#000;padding-left:10px}.mec-single-event .mec-event-meta h6{text-transform:uppercase;font-size:13px;padding-bottom:5px;display:inline;color:#222;padding-left:0}.mec-single-event .mec-event-meta .mec-events-event-categories a,.mec-single-event .mec-event-meta dd{font-size:14px;color:#8d8d8d}.mec-single-event .mec-event-meta .mec-location dd.author{color:#3c3b3b}.mec-single-event .mec-event-meta dd{margin:0;padding-left:35px}.mec-single-event .mec-event-meta dd.mec-events-event-categories{min-height:35px;line-height:35px}.mec-single-event .mec-event-meta dd.mec-events-event-categories:first-of-type{padding-top:5px}.mec-single-event .mec-event-meta dd.mec-events-event-categories:last-of-type{border-bottom:0}.mec-single-event .mec-event-meta dd a{color:#8d8d8d;transition:all .2s ease}.mec-single-event .mec-event-meta dd a i:before{font-size:16px!important}.mec-single-event .mec-event-meta dd a i{vertical-align:top;margin-right:8px}.mec-single-event .mec-event-meta dl{margin-bottom:0}.mec-single-event .mec-event-meta .mec-events-event-cost{font-size:18px}.mec-single-event .mec-event-meta .mec-events-address{color:#a9a9a9;margin-bottom:3px}.mec-single-event .mec-event-meta .mec-events-meta-group-venue .author{margin-bottom:0;color:#8d8d8d;font-size:13px}.mec-single-event .mec-events-event-image{margin-bottom:0}.mec-single-event h2.mec-single-event-title{margin-bottom:30px;font-weight:700;font-size:33px}.mec-single-event .mec-booking-button{border-bottom:none;letter-spacing:.5px;line-height:48px;height:76px;transition:all .5s ease;color:#fff;padding:16px;display:block;text-align:center;font-size:16px}.mec-single-event .mec-booking-button:hover{background-color:#101010!important}.mec-single-event .mec-event-tags a{display:inline-block;color:#444;font-size:11px;text-transform:uppercase;letter-spacing:1.5px;font-weight:500;padding:3px 7px;border:1px solid #ddd;border-radius:2px;background:#fff;margin:1px 3px}.mec-single-event .mec-event-tags:before{font-size:24px;color:#303030;margin-right:5px;content:"\f02c";font-family:fontawesome}.mec-single-event .mec-event-tags{padding-top:13px}.mec-single-event .mec-event-sharing{margin:30px 0 10px}.mec-region.mec-events-abbr,.mec-single-event .mec-street-address{font-style:normal;font-size:13px}.mec-events-meta-group.mec-events-meta-group-venue:before,.mec-single-event-date:before,.mec-single-event-time:before{color:#40d9f1}.mec-single-event .mec-event-social{text-align:center}.mec-single-event .mec-event-social h3{text-transform:uppercase;font-size:15px;font-weight:700;padding-bottom:5px;color:#313131;border-bottom:4px solid #ebebeb;width:100%;display:block;padding-bottom:10px;position:relative}.mec-single-event .mec-social-single:before{padding:13px 35px;border-bottom:4px solid #40d9f1;font-size:6px;content:"";text-align:center;position:absolute;bottom:-4px;margin-left:39px}.mec-single-event .mec-event-social .event-sharing{margin-top:30px}.mec-single-event .mec-event-social ul{list-style:none;margin-left:0}.mec-single-event .mec-event-social li.mec-event-social-icon{display:inline-block}.mec-single-event .mec-event-social li.mec-event-social-icon a{display:inline-block;color:#fff;width:40px;height:40px;padding:9px;font-size:16px;margin-right:5px}.mec-single-event .mec-event-social a.facebook{background:#3b5996}.mec-single-event .mec-event-social a.facebook:hover{background:#28385c}.mec-single-event .mec-event-social a.twitter{background:#00acee}.mec-single-event .mec-event-social a.twitter:hover{background:#0087bd}.mec-single-event .mec-event-social a.vimeo{background:#0dadd6}.mec-single-event .mec-event-social a.vimeo:hover{background:#0a85a3}.mec-single-event .mec-event-social a.dribble{background:#d53e68}.mec-single-event .mec-event-social a.dribble:hover{background:#bf4c78}.mec-single-event .mec-event-social a.youtube{background:#cb322c}.mec-single-event .mec-event-social a.youtube:hover{background:#992622}.mec-single-event .mec-event-social a.pinterest{background:#cb2027}.mec-single-event .mec-event-social a.pinterest:hover{background:#99181d}.mec-single-event .mec-event-social a.google{background:#c3391c}.mec-single-event .mec-event-social a.google:hover{background:#99181f}.mec-single-event .mec-event-social a.linkedin{background:#0073b2}.mec-single-event .mec-event-social a.linkedin:hover{background:#005380}.mec-single-event .mec-event-social a.email{background:#ff5d5e}.mec-single-event .mec-event-social a.email:hover{background:#cc4949}.mec-single-event .mec-event-social a.vk{background:#5b88bd}.mec-single-event .mec-event-social a.vk:hover{background:#3d608a}.mec-single-event .mec-event-social a.rss{background:#f29a1d}.mec-single-event .mec-event-social a.rss:hover{background:#cc7400}.mec-single-event .mec-event-social a.instagram{background:#457399}.mec-single-event .mec-event-social a.instagram:hover{background:#2e4d66}.mec-single-event .mec-event-social a.other-social{background:#ff5d5e}.mec-single-event .mec-event-social a.other-social:hover{background:#cc4949}.mec-single-event .mec-event-social{text-align:center}.mec-single-event .mec-events-meta-group-booking form>h4,.mec-single-event .mec-frontbox-title{text-transform:uppercase;font-size:15px;font-weight:700;color:#313131;border-bottom:4px solid #ebebeb;width:100%;display:block;padding-bottom:10px;position:relative;text-align:center}.mec-single-event .mec-events-meta-group-booking form>h4:before,.mec-single-event .mec-frontbox-title:before{padding:1px 35px;border-bottom:4px solid #40d9f1;font-size:6px;content:"";text-align:center;position:absolute;bottom:-4px;margin-left:-35px;left:50%}.mec-single-event .mec-events-meta-group-booking input[data-stripe=exp-month],.mec-single-event .mec-events-meta-group-booking input[data-stripe=exp-year]{width:47%!important;margin-right:12px;margin-top:5px;display:inline-block!important}@media(max-width:768px){.mec-single-event .mec-events-meta-group-booking input[data-stripe=exp-month],.mec-single-event .mec-events-meta-group-booking input[data-stripe=exp-year]{width:100%!important;margin-right:0;display:block!important}}.mec-event-meta i:before{font-size:20px;vertical-align:middle}.mec-event-meta .mec-single-event-additional-organizers i:before,.mec-event-meta .mec-single-event-organizer i:before{font-size:14px;vertical-align:baseline}#mec-wrap .mec-events-day-time-slot .mec-events-content{float:left;width:33%;padding:0 15px}#mec-wrap .mec-events-day-time-slot .mec-events-event-image{padding-left:0}#mec-events-content .mec-events-abbr{color:#8d8d8d;font-size:14px}.mec-single-event .mec-events-content{margin-bottom:30px}.mec-single-event .mec-organizer-url a{word-wrap:break-word}.mec-single-event #headline{margin:0 0 10px}.mec-single-event #headline h2{padding:0}.mec-single-event .mec-events-meta-group.mec-events-meta-group-gmap .mec-events-venue-map{margin-top:0;padding:8px;border:1px solid #e5e5e5;border-radius:7px}#mec-events-gmap-0{height:325px!important}.mec-events-list .mec-events-day-time-slot .mec-events-event-meta{width:33%;float:left;padding:40px;height:auto;margin:0}.mec-events-day-time-slot .mec-events-content.description.entry-summary{font-size:15px;font-weight:300;color:#8d8d8d}.mec-events-day-time-slot .type-mec_events h2{font-size:28px;padding-bottom:20px}.mec-events-day .mec-events-day-time-slot .type-mec_events{margin:0}.mec-events-day .mec-events-day-time-slot h5{background-color:#8d8d8d}.mec-single-event .mec-event-meta .mec-single-event-additional-organizers .mec-events-single-section-title,.mec-single-event .mec-event-meta .mec-single-event-organizer .mec-events-single-section-title,.mec-single-event .mec-events-meta-date h3{padding-left:0;margin:10px;display:inline-block}.mec-single-event .mec-events-meta-date h3{width:100%}.mec-single-event .mec-events-event-image{border:0}.mec-single-event .mec-events-venue-map{padding:0}.mec-event-cost,.mec-event-more-info,.mec-event-website,.mec-events-meta-date,.mec-single-event-additional-organizers,.mec-single-event-category,.mec-single-event-date,.mec-single-event-label,.mec-single-event-location,.mec-single-event-organizer,.mec-single-event-time{background:#f7f7f7;padding:12px 14px 8px;margin-bottom:12px;vertical-align:baseline;position:relative}.mec-single-event .mec-events-meta-date dd,.mec-single-event .mec-single-event-additional-organizers dd,.mec-single-event .mec-single-event-organizer dd{padding-left:0;margin-bottom:10px}.mec-single-event .mec-events-meta-date dd span,.mec-single-event .mec-single-event-additional-organizers dd span,.mec-single-event .mec-single-event-organizer dd span{display:block;padding-left:12px;color:#8d8d8d}.mec-single-event .mec-events-meta-date i,.mec-single-event .mec-single-event-additional-organizers i,.mec-single-event .mec-single-event-organizer i{margin-right:10px;margin-left:12px}.mec-events-meta-group.mec-events-meta-group-venue dl{margin-bottom:0}address.mec-events-address{line-height:19px;font-style:normal;font-size:12px}.mec-single-event .mec-event-content dt{margin-top:5px}.mec-single-event .mec-single-event-additional-organizers .mec-single-event-additional-organizer{margin-bottom:15px;padding-bottom:5px;border-bottom:1px solid #e4e4e4}.mec-single-event .mec-single-event-additional-organizers .mec-single-event-additional-organizer:last-child{margin-bottom:0;padding-bottom:0;border:none}.mec-event-schedule-content{border-left:4px solid #f0f0f0;padding-top:10px;margin-top:30px;margin-left:25px;margin-bottom:20px;color:#8a8a8a}.mec-event-schedule-content dl{padding-left:24px;font-size:12px;position:relative;margin-bottom:35px}.mec-event-schedule-content dl:before{content:'';display:block;position:absolute;left:0;top:4px;width:20px;height:0;border-top:4px solid #f0f0f0}.mec-event-schedule-content dl dt{margin:0 0 10px;line-height:1.16}.mec-event-schedule-content dl dt.mec-schedule-title{font-size:13px;color:#5a5a5a;font-weight:700}.mec-event-schedule-content dl dt.mec-schedule-description{font-weight:300}.mec-event-schedule-content .mec-schedule-speakers{background:#f7f7f7;padding:10px}.mec-wrap .mec-event-schedule-content h6{font-size:13px;color:#5a5a5a;font-weight:700;display:inline-block}.mec-wrap .mec-event-schedule-content a{font-weight:400;color:#5a5a5a;transition:all .1s ease}.mec-single-event .mec-speakers-details ul li{list-style:none;background:#f7f7f7;padding:5px 5px 18px 5px;margin-top:14px}.mec-single-event .mec-speakers-details ul li a{-webkit-transition:.2s all ease;transition:.2s all ease}.mec-single-event .mec-speakers-details ul li .mec-speaker-avatar a img{float:left;border-radius:50%;transition:.2s all ease;border:2px solid transparent;width:68px;height:68px}.mec-single-event .mec-speakers-details ul li .mec-speaker-avatar a:hover img{border-color:#40d9f1}.mec-single-event .mec-speakers-details ul li .mec-speaker-name{display:inline-block;margin-top:6px;font-size:14px;text-transform:capitalize;font-weight:700;padding-left:8px}.mec-single-event .mec-speakers-details ul li .mec-speaker-job-title{display:block;font-size:12px;margin-top:-1px;padding-left:75px}.mec-single-event-location img,.mec-single-event-organizer img{margin-bottom:10px;width:100%}.mec-qrcode-details{text-align:center}.mec-time-comment{font-size:11px}.mec-wrap .mec-attendees-list-details p{font-weight:300;margin:20px 0 0 0;color:#8d8d8d}.mec-wrap .mec-attendees-list-details li{list-style:none;display:block;margin-top:15px}.mec-wrap .mec-attendees-list-details li .mec-attendee-avatar{display:inline-block}.mec-wrap .mec-attendees-list-details li .mec-attendee-profile-link{display:inline-block;vertical-align:top;margin-left:10px}.mec-attendees-list-details ul{margin-bottom:0}.mec-attendees-list-details .mec-attendee-profile-link a{color:#8d8d8d}.mec-attendees-list-details .mec-attendee-profile-link span{display:block;color:#000}.mec-calendar{margin-bottom:20px;border:1px solid #e8e8e8;width:100%;box-shadow:0 2px 0 0 rgba(0,0,0,.016)}.mec-calendar .mec-calendar-topsec{display:table;background:#fff}.mec-calendar .mec-calendar-topsec .mec-calendar-events-sec{display:none}.mec-calendar .mec-calendar-side{width:590px;display:table-cell;padding:40px;position:relative;text-align:center;box-shadow:0 1px 5px 6px rgba(0,0,0,.005) inset}.mec-calendar .mec-calendar-events-side{display:table-cell;height:100%;border-left:1px solid #efefef;padding:40px;width:100%}.mec-calendar .mec-calendar-events-side .mec-table-side-day{width:46px;height:46px;margin:0 auto 20px;position:relative;text-align:center;line-height:46px;border:1px solid #40d9f1;border-radius:50%;font-size:12px;font-weight:600;padding:0}.mec-calendar .mec-calendar-events-side .mec-table-side-title{text-align:center;font-size:11px;text-transform:uppercase;letter-spacing:3px;margin-bottom:14px}.mec-calendar .mec-calendar-header{position:relative;width:560px;margin-top:8px;margin-bottom:16px}.mec-calendar .mec-calendar-header h2{text-transform:uppercase;font-size:22px;font-weight:700;color:#333}.mec-calendar .mec-event-footer{width:auto;min-height:60px}.mec-calendar dl{display:table;margin:0;border:none;padding:0;table-layout:fixed}.mec-calendar dt{display:table-cell;transition:all .66s ease;color:#4d4d4d;background:#fff;border-radius:44px;font-size:14px;width:80px;height:80px;line-height:80px;text-align:center}.mec-calendar .mec-calendar-table .mec-no-event{display:none}.mec-calendar .mec-calendar-table-head dt{font-weight:700;text-transform:uppercase;font-size:15px}.mec-calendar .mec-calendar-row dt:hover{background:#f4f4f4}.mec-calendar .mec-table-nullday{color:#cacaca}.mec-calendar.mec-box-calendar .mec-table-nullday:last-child{border-right:1px solid #eaeaea}.mec-calendar .mec-next-month:hover,.mec-calendar .mec-prev-month:hover{background:#f4f4f4}.mec-calendar .mec-selected-day,.mec-calendar .mec-selected-day:hover{background:#40d9f1;color:#fff}.mec-calendar .mec-selected-day a{color:#fff}.mec-calendar .mec-has-event{position:relative}.mec-calendar .mec-calendar-row dt.mec-has-event:hover{background:#40d9f1}.mec-calendar .mec-has-event a{cursor:pointer;display:block;width:100%;height:100%;border-radius:50%;color:#4d4d4d;transition:all .25s ease;text-decoration:none;box-shadow:none}.mec-calendar .mec-calendar-row dt.mec-has-event.mec-selected-day a,.mec-calendar .mec-calendar-row dt.mec-has-event:hover a{color:#fff}.mec-calendar .mec-has-event:after{background-color:#40d9f1;border-radius:50%;display:block;content:'';width:8px;height:8px;bottom:14px;left:50%;margin:-4px 0 0 -4px;position:absolute;transition:all .25s ease}.mec-calendar .mec-calendar-row dt.mec-has-event:hover:after{background-color:#fff}.mec-calendar .mec-has-event.mec-selected-day:after{display:none}.mec-calendar .mec-event-article{text-align:left;margin-bottom:0;padding-bottom:25px;padding-top:26px;border-top:1px solid #efefef;transition:all .33s ease}.mec-calendar .mec-event-article:hover{background-color:#fafafa}.mec-calendar .mec-event-article .mec-event-time{font-size:11px;line-height:1.1;margin:0}.mec-calendar .mec-event-article .mec-event-title{font-size:13px;padding:0;margin:10px 0 8px;font-weight:700;text-transform:uppercase}.mec-calendar .mec-event-article .mec-event-title a{text-decoration:none;color:#494949;transition:color .3s ease}.mec-calendar .mec-event-article .mec-event-title a:hover{color:#40d9f1}.mec-calendar .mec-event-article .mec-event-image,.mec-calendar .mec-event-list-classic .mec-event-image img{width:65px;height:auto}.mec-calendar .mec-event-article .mec-event-image{float:left;margin-right:20px;width:65px;height:auto}.mec-calendar .mec-event-article .mec-event-detail{font-size:13px;line-height:1.3;font-family:Roboto,sans-serif;color:#9a9a9a;margin-bottom:0}.mec-calendar .mec-calendar-side .mec-next-month,.mec-calendar .mec-calendar-side .mec-previous-month{cursor:pointer;position:absolute;top:0;min-width:50px;height:50px;line-height:50px;text-align:center;background:#fff;color:#a9a9a9;font-size:12px;letter-spacing:1px;text-transform:uppercase;padding-left:10px;padding-right:10px;border:1px solid #efefef;border-top:none;box-shadow:0 2px 0 0 rgba(0,0,0,.015);transition:all .33s ease}.mec-calendar .mec-calendar-side .mec-next-month i,.mec-calendar .mec-calendar-side .mec-previous-month i{font-size:12px;color:#40d9f1;cursor:pointer}.mec-calendar .mec-calendar-side .mec-next-month:hover,.mec-calendar .mec-calendar-side .mec-previous-month:hover{background-color:#f9f9f9;color:#40d9f1}.mec-calendar .mec-calendar-side .mec-previous-month{left:0;border-bottom-right-radius:6px;border-left:none}.mec-calendar .mec-calendar-side .mec-next-month{right:0;border-bottom-left-radius:6px;border-right:none}@media only screen and (min-width:961px){.mec-wrap.mec-sm959 .mec-calendar:not(.mec-event-calendar-classic):not(.mec-calendar-weekly) .mec-has-event:after{width:6px;height:6px;bottom:6px}.mec-wrap.mec-sm959 .mec-calendar:not(.mec-event-calendar-classic):not(.mec-calendar-weekly) .mec-calendar-side{width:370px}.mec-wrap.mec-sm959 .mec-calendar:not(.mec-event-calendar-classic):not(.mec-calendar-weekly) .mec-calendar-header{position:relative;width:350px;margin-top:30px;margin-bottom:20px;padding-top:20px}.mec-wrap.mec-sm959 .mec-calendar:not(.mec-event-calendar-classic):not(.mec-calendar-weekly) dt{width:50px;height:50px;line-height:50px}.mec-wrap.mec-sm959 .mec-calendar.mec-event-calendar-classic dl dt{height:110px}}@media only screen and (max-width:1200px){.mec-calendar .mec-has-event:after{width:6px;height:6px;bottom:6px}.mec-calendar .mec-calendar-side{width:370px}.mec-calendar .mec-calendar-header{position:relative;width:350px;margin-top:30px}.mec-calendar dt{width:50px;height:50px;line-height:50px}}@media only screen and (max-width:767px){.mec-calendar .mec-calendar-header h2{font-size:18px}.mec-calendar .mec-calendar-topsec{width:100%}.mec-calendar .mec-calendar-side{width:100%;display:block;padding:30px}.mec-calendar .mec-calendar-header{width:auto}.mec-calendar .mec-calendar-events-side{width:100%;display:block;height:100%;border-left:none;border-top:1px solid #efefef;padding:20px}.mec-calendar dl{width:100%}.mec-calendar dt{width:14%;height:60px;line-height:60px;border-radius:50px}}@media only screen and (max-width:479px){.mec-calendar .mec-has-event:after{width:4px;height:4px}.mec-calendar .mec-calendar-header h2{font-size:16px;margin-top:33px}.mec-calendar dt{height:38px;line-height:38px}.mec-calendar .mec-event-list-classic .mec-event-detail,.mec-calendar .mec-event-list-classic .mec-event-title{font-size:12px}.mec-calendar .mec-event-list-classic .mec-event-time{font-size:10px}}.mec-box-calendar.mec-calendar .mec-has-event a,.mec-box-calendar.mec-calendar dt{border-radius:0}.mec-box-calendar.mec-calendar .mec-calendar-header{margin-top:2px;margin-bottom:30px}.mec-box-calendar.mec-calendar dt{border-bottom:1px solid #eaeaea;border-left:1px solid #eaeaea}.mec-box-calendar.mec-calendar dl dt:last-child{border-right:1px solid #eaeaea}.mec-box-calendar.mec-calendar .mec-calendar-table-head dt{border-top:1px solid #eaeaea;background-color:#f8f8f8}.mec-box-calendar.mec-calendar.mec-event-calendar-classic .mec-calendar-table-head dt{background-color:#f4f4f4}.mec-box-calendar.mec-calendar .mec-calendar-side .mec-next-month,.mec-box-calendar.mec-calendar .mec-calendar-side .mec-previous-month{border-radius:2px;top:40px;border:1px solid #eee;height:30px;line-height:30px;z-index:1}.mec-box-calendar.mec-calendar .mec-calendar-side .mec-previous-month{left:60px}.mec-box-calendar.mec-calendar .mec-calendar-side .mec-next-month{right:60px}.mec-box-calendar.mec-calendar .mec-calendar-side{box-shadow:none}.mec-box-calendar.mec-calendar .mec-calendar-events-side{border:none}.mec-box-calendar.mec-calendar .mec-calendar-events-side .mec-table-side-day{border-radius:2px}.mec-box-calendar.mec-calendar h4.mec-month-label{position:relative;width:560px;margin-top:2px;margin-bottom:30px;text-transform:uppercase;font-size:22px;font-weight:700;color:#333}.mec-widget .mec-box-calendar.mec-calendar h4.mec-month-label{width:100%;margin-top:8px;font-size:13px}@media only screen and (max-width:1200px){.mec-box-calendar.mec-calendar .mec-calendar-side .mec-previous-month{left:42px}.mec-box-calendar.mec-calendar .mec-calendar-side .mec-next-month{right:42px}.mec-calendar .mec-calendar-header h2{font-size:17px;margin-top:7px}}@media only screen and (max-width:767px){.mec-box-calendar.mec-calendar .mec-calendar-side .mec-next-month,.mec-box-calendar.mec-calendar .mec-calendar-side .mec-previous-month{top:28px;font-size:10px}.mec-box-calendar.mec-calendar .mec-calendar-side .mec-previous-month{left:30px}.mec-box-calendar.mec-calendar .mec-calendar-side .mec-next-month{right:30px}.mec-calendar .mec-calendar-header h2{font-size:15px}}@media only screen and (max-width:479px){.mec-box-calendar.mec-calendar .mec-calendar-side .mec-next-month,.mec-box-calendar.mec-calendar .mec-calendar-side .mec-previous-month{top:16px;font-size:0;padding:4px 0;text-align:center;min-width:33px}.mec-box-calendar.mec-calendar .mec-calendar-side .mec-previous-month{left:10px}.mec-box-calendar.mec-calendar .mec-calendar-side .mec-next-month{right:10px}.mec-box-calendar.mec-calendar .mec-calendar-header h2{font-size:12px;margin-top:15px}.mec-box-calendar.mec-calendar .mec-event-image{margin-right:12px}}.mec-calendar.mec-event-calendar-classic,.mec-calendar.mec-event-calendar-classic .mec-calendar-side{border:none;padding:0;width:100%;height:100%;box-shadow:none}.mec-calendar.mec-event-calendar-classic .mec-calendar-side{display:block}.mec-calendar.mec-event-calendar-classic .mec-calendar-header,.mec-calendar.mec-event-calendar-classic dl{width:100%}.mec-calendar.mec-event-calendar-classic dl dt{width:15%;height:136px;line-height:1.2;text-align:left;padding:5px 7px;position:relative}.mec-calendar.mec-event-calendar-classic .mec-calendar-table-head dt{height:30px!important}.mec-box-calendar.mec-calendar.mec-event-calendar-classic .mec-calendar-side .mec-next-month,.mec-box-calendar.mec-calendar.mec-event-calendar-classic .mec-calendar-side .mec-previous-month{top:0}.mec-calendar.mec-event-calendar-classic .mec-has-event:after{bottom:auto;top:24px;left:7px;margin:0}.mec-box-calendar.mec-calendar.mec-event-calendar-classic .mec-calendar-side .mec-previous-month{left:0}.mec-box-calendar.mec-calendar.mec-event-calendar-classic .mec-calendar-side .mec-next-month{right:0}.mec-calendar.mec-event-calendar-classic .mec-calendar-events-sec{text-align:left;background:#fafafa;border:1px solid #eaeaea;border-top:none;padding:10px 20px}.mec-calendar.mec-event-calendar-classic .mec-calendar-events-sec{display:none}.mec-calendar.mec-event-calendar-classic .mec-calendar-events-sec .mec-event-article:hover{background-color:#fcfcfc}.mec-calendar.mec-event-calendar-classic .mec-selected-day,.mec-calendar.mec-event-calendar-classic dt.mec-selected-day:hover{color:#40d9f1;font-weight:700;background:#fafafa;border-bottom:none}.mec-calendar.mec-event-calendar-classic .mec-calendar-events-sec .mec-table-side-day,.mec-calendar.mec-event-calendar-classic .mec-calendar-events-sec .mec-table-side-title{display:inline-block;margin:0;margin-bottom:15px;font-weight:700}.mec-calendar.mec-event-calendar-classic .mec-calendar-events-sec .mec-table-side-day{margin-left:4px}.mec-calendar.mec-event-calendar-classic .mec-calendar-row dt.mec-has-event a{color:#4d4d4d}.mec-calendar.mec-event-calendar-classic .mec-calendar-row dt.mec-has-event:not(.mec-selected-day):hover a{color:#fff}@media only screen and (max-width:1200px){.mec-calendar.mec-event-calendar-classic dl dt{height:100px}}@media only screen and (max-width:767px){.mec-calendar.mec-event-calendar-classic dl dt{height:40px}}@media only screen and (max-width:479px){.mec-calendar.mec-event-calendar-classic .mec-calendar-events-sec{padding:10px}.mec-box-calendar.mec-calendar.mec-event-calendar-classic .mec-calendar-header h2{font-size:13px;margin-top:8px}}.mec-calendar .mec-event-article.mec-single-event-novel{padding:4px 8px;min-height:25px;margin:0 -4px;border-radius:0}.mec-calendar .mec-event-article.mec-single-event-novel h4{margin:0;font-size:10px;line-height:18px}.mec-calendar.mec-event-container-novel dl dt{padding:3px}.mec-calendar.mec-event-calendar-classic .mec-calendar-novel-selected-day{display:inline-block;padding:4px;margin-left:1px}.mec-calendar.mec-event-calendar-classic .mec-selected-day .mec-calendar-novel-selected-day{color:#fff}.mec-calendar.mec-event-calendar-classic.mec-event-container-novel .mec-selected-day,.mec-calendar.mec-event-calendar-classic.mec-event-container-novel dt.mec-selected-day:hover{border-bottom:1px solid #eaeaea}.mec-calendar.mec-event-calendar-classic.mec-event-container-novel .mec-calendar-side .mec-calendar-table{min-height:auto}.mec-single-event-novel.light h4{color:#000!important}.mec-single-event-novel.dark h4{color:#fff!important}@media only screen and (max-width:768px){.mec-calendar .mec-event-article.mec-single-event-novel{padding:0;min-height:5px}.mec-calendar .mec-event-article.mec-single-event-novel h4{display:block;font-size:9px}}.mec-event-container-simple .event-single-content-simple{display:none}.mec-event-calendar-classic.mec-event-container-simple .mec-calendar-side .mec-calendar-table{min-height:unset}.mec-event-container-simple .mec-monthly-tooltip h4{font-size:13px;font-weight:500;margin:0;color:#444}.mec-event-container-simple .mec-monthly-tooltip h4:hover{text-decoration:underline;color:#111}.mec-event-container-simple .mec-monthly-tooltip.event-single-link-simple{border-bottom:1px dashed #e3e3e3;padding:10px 2px;display:block}.mec-calendar.mec-event-container-simple dl dt.mec-calendar-day{font-size:30px;color:#000}.mec-calendar.mec-event-container-simple .mec-calendar-row dt:hover{background:unset}.mec-calendar.mec-event-container-simple .mec-calendar-row dt,.mec-calendar.mec-event-container-simple .mec-calendar-row dt:last-child,.mec-calendar.mec-event-container-simple .mec-calendar-table-head dt,.mec-calendar.mec-event-container-simple .mec-calendar-table-head dt:last-child{border-width:2px}.mec-calendar.mec-event-container-simple dl dt.mec-selected-day,.mec-calendar.mec-event-container-simple dl dt.mec-selected-day:hover{border-bottom:2px solid #40d9f1;background:unset}.mec-calendar.mec-event-container-simple .mec-calendar-table-head dt{line-height:36px}@media (max-width:768px){.mec-calendar.mec-event-container-simple{overflow-x:scroll}.mec-calendar.mec-event-container-simple .mec-calendar-side{min-width:700px}.mec-event-container-simple .mec-monthly-tooltip h4{font-size:12px}}.mec-wrap.colorskin-custom .mec-calendar.mec-event-container-simple .mec-selected-day:hover{background:#f4f4f4}.mec-event-container-simple .mec-calendar-day .mec-monthly-tooltip.event-single-link-simple:last-of-type{border:none}.mec-tooltip-event-title{font-size:16px;font-weight:700;color:#000;margin-bottom:2px}.mec-tooltip-event-time{font-size:12px;color:#888;margin-bottom:8px;margin-top:5px}.tooltipster-sidetip.tooltipster-shadow .tooltipster-content{padding:17px}.mec-tooltip-event-content{clear:both}.mec-tooltip-event-featured{float:left;margin-right:13px;margin-bottom:1px}.mec-tooltip-event-featured img{max-width:120px}.mec-tooltip-event-desc{font-size:14px;color:#444;line-height:18px}.mec-tooltip-event-desc p{font-size:13px;line-height:1.4;margin-bottom:10px}.tooltipster-sidetip.tooltipster-shadow .tooltipster-box{border-radius:3px!important;border:1px solid #e2e3e4!important;background:#fff!important;box-shadow:0 -1px 30px -2px rgba(0,0,0,.15)!important}.tooltipster-sidetip .tooltipster-arrow{overflow:visible!important}.tooltipster-sidetip.tooltipster-shadow .tooltipster-arrow-border{border-width:12px!important}.tooltipster-sidetip.tooltipster-shadow.tooltipster-right .tooltipster-arrow-border{border-right-color:#e2e3e4!important}.tooltipster-sidetip .tooltipster-arrow-border{left:-12px!important;z-index:9999999999!important}.tooltipster-sidetip.tooltipster-shadow .tooltipster-arrow-background{display:block!important}.tooltipster-sidetip .tooltipster-arrow-background{border-width:11px!important;z-index:99999999999!important}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background{left:-9px!important;top:1px!important;border-right-color:#fff!important}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background{border-top-color:#fff!important;left:0!important;top:-1px!important}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-border{left:-1px!important}.tooltipster-sidetip.tooltipster-shadow.tooltipster-top .tooltipster-arrow-border{border-top-color:#e2e3e4!important}.tooltipster-sidetip.tooltipster-shadow.tooltipster-bottom .tooltipster-arrow-border{left:-1px!important;top:-11px!important}.tooltipster-sidetip.tooltipster-shadow.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#e2e3e4!important}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background{top:-9px!important;border-bottom-color:#fff!important}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background{border-left-color:#fff!important;left:-2px!important;top:0!important}.tooltipster-sidetip.tooltipster-shadow.tooltipster-left .tooltipster-arrow-border{border-left-color:#e2e3e4!important;left:-1px!important;top:-1px!important}@media (max-width:780px){.mec-event-container-simple .mec-monthly-tooltip.event-single-link-simple h4{word-break:break-all;font-size:13px}}@media (max-width:320px){.mec-event-container-simple .mec-monthly-tooltip.event-single-link-simple h4{font-size:10px}}.mec-calendar.mec-calendar-daily .mec-calendar-day-events .mec-event-article{padding-left:15px;padding-right:15px}.mec-calendar.mec-calendar-daily .mec-calendar-a-month{text-align:center;background-color:#fff;border-bottom:2px solid #f4f4f4;position:relative}.mec-calendar.mec-calendar-daily .mec-calendar-a-month h4{color:#444;font-size:18px;line-height:1.2;padding:15px 0 11px;margin:0;font-weight:700;letter-spacing:1px;text-transform:uppercase;border-bottom:1px solid #e6e6e6}.mec-calendar.mec-calendar-daily .mec-calendar-d-top{text-align:center;padding:10px 0;position:relative;background-color:#fafafa}.mec-calendar.mec-calendar-daily .mec-next-month,.mec-calendar.mec-calendar-daily .mec-previous-month{position:absolute;top:50%;left:50%;margin-top:-25px;min-width:50px;height:50px;line-height:50px;text-align:center;background:#fff;border:1px solid #e2e2e2;border-radius:50px;box-shadow:0 2px 0 0 rgba(0,0,0,.015);transition:all .33s ease;cursor:pointer}.mec-calendar.mec-calendar-daily .mec-next-month i,.mec-calendar.mec-calendar-daily .mec-previous-month i{font-size:14px;cursor:pointer}.mec-calendar.mec-calendar-daily .mec-next-month:hover,.mec-calendar.mec-calendar-daily .mec-previous-month:hover{border-color:#d0d0d0;color:#444;box-shadow:0 2px 5px 0 rgba(0,0,0,.075)}.mec-calendar.mec-calendar-daily .mec-previous-month{margin-left:-150px}.mec-calendar.mec-calendar-daily .mec-next-month{margin-left:100px}.mec-calendar.mec-calendar-daily .mec-calendar-a-month .mec-next-month,.mec-calendar.mec-calendar-daily .mec-calendar-a-month .mec-previous-month{min-height:28px;height:28px;line-height:28px;width:28px;margin-top:-14px;border-radius:3px}.mec-calendar.mec-calendar-daily .mec-calendar-d-top h2,.mec-calendar.mec-calendar-daily .mec-calendar-d-top h3{margin-top:9px;color:#b9b9b9;font-family:Roboto,sans-serif;font-size:30px;font-weight:100;text-transform:uppercase;margin-bottom:12px;line-height:1}.mec-calendar.mec-calendar-daily .mec-calendar-d-top h2{font-size:81px;color:#444;margin-bottom:10px;line-height:1.1}.mec-calendar.mec-calendar-daily .mec-calendar-d-table{overflow:hidden;background:#fff;min-height:60px;border-top:1px solid #e6e6e6;border-bottom:2px solid #f3f3f3;padding:0 50px;position:relative}@media only screen and (min-width:479px){.mec-calendar.mec-calendar-daily .mec-calendar-d-table{padding:0 55px}}.mec-calendar.mec-calendar-daily .mec-calendar-d-table dl{width:1310px;display:block}.mec-calendar.mec-calendar-weekly .mec-calendar-d-table dl{display:none}.mec-calendar.mec-calendar-weekly .mec-calendar-d-table dl.mec-weekly-view-week-active{display:block}.mec-calendar.mec-calendar-daily .mec-calendar-d-table a,.mec-calendar.mec-calendar-daily .mec-calendar-d-table dl dt{display:block;background:#fff;width:42px;height:60px;line-height:60px;text-align:center;float:left;border-right:1px solid #e6e6e6;border-bottom:1px solid #e6e6e6;border-radius:0}.mec-calendar.mec-calendar-daily .mec-calendar-d-table .mec-daily-view-day:hover,.mec-calendar.mec-calendar-daily .mec-calendar-d-table dl dt:hover{background:#fafafa;box-shadow:0 2px 5px 0 rgba(0,0,0,.065) inset;cursor:pointer}.mec-calendar.mec-calendar-daily .mec-calendar-d-table .mec-daily-view-day{cursor:default;background:#fff;color:#c1c1c1;line-height:59px;text-align:center;border-right:1px solid #e6e6e6;border-bottom:1px solid #e6e6e6}.mec-calendar.mec-calendar-daily .mec-calendar-d-table .mec-daily-view-day.mec-has-event{cursor:pointer;font-weight:700;color:#4a4a4a}.mec-calendar.mec-calendar-daily .mec-calendar-d-table .mec-daily-view-day.mec-daily-view-day-active,.mec-calendar.mec-calendar-daily .mec-calendar-d-table dl dt.mec-table-d-current{font-size:18px;font-weight:700;background:#fafafa;color:#40d9f1}.mec-calendar.mec-calendar-daily .mec-calendar-d-table a.mec-table-d-next,.mec-calendar.mec-calendar-daily .mec-calendar-d-table a.mec-table-d-prev{float:none;font-size:14px;width:55px;position:absolute;top:0;left:0;cursor:pointer}.mec-calendar.mec-calendar-daily .mec-calendar-d-table a.mec-table-d-next{left:auto;right:0;border-left:1px solid #e6e6e6;border-right:none}.mec-calendar.mec-calendar-daily .mec-today-container .mec-today-count{font-size:12px;color:#888;text-align:center}@media only screen and (max-width:479px){.mec-calendar.mec-calendar-daily .mec-previous-month{margin-left:-130px}.mec-calendar.mec-calendar-daily .mec-next-month{margin-left:80px}.mec-calendar.mec-calendar-daily .mec-calendar-a-month h4{font-size:14px;letter-spacing:0}}.widget .mec-calendar.mec-calendar-daily .mec-calendar-a-month h4{font-size:14px;letter-spacing:0}.widget .mec-calendar.mec-calendar-daily .mec-previous-month{margin-left:-130px}.widget .mec-calendar.mec-calendar-daily .mec-next-month{margin-left:80px}.mec-util-hidden{display:none}.mec-daily-view-date-events,.mec-weekly-view-date-events{list-style:none;margin:0}.mec-calendar.mec-calendar-weekly .mec-calendar-d-table{padding:0}.mec-calendar.mec-calendar-weekly .mec-calendar-d-table dl{width:calc(100% - 1px)}.mec-calendar.mec-calendar-weekly .mec-calendar-d-table dl dt{width:14.286%;height:70px;line-height:normal;cursor:default}.mec-calendar.mec-calendar-weekly .mec-calendar-d-table dl dt:hover{background:#fff;cursor:default}.mec-calendar.mec-calendar-weekly .mec-calendar-d-table dl dt:last-child{border-right:none}.mec-calendar.mec-calendar-weekly .mec-calendar-d-table dl dt span{font-size:12px;font-weight:700;text-transform:uppercase;display:block;margin:15px 0 6px}.mec-calendar.mec-calendar-weekly .mec-calendar-d-table a.mec-table-d-next,.mec-calendar.mec-calendar-weekly .mec-calendar-d-table a.mec-table-d-prev{display:none}ul.mec-weekly-view-dates-events,ul.mec-weekly-view-dates-events li{padding:0;margin:0;line-height:initial}.mec-calendar.mec-calendar-weekly .mec-event-list-weekly-date{width:64px;height:64px;margin-right:10px;font-size:11px;text-transform:uppercase;float:left;text-align:center;padding-top:2px}.mec-calendar.mec-calendar-weekly .mec-event-list-weekly-date span{font-size:40px;line-height:30px;font-weight:700;display:block;margin-bottom:6px;letter-spacing:1px}.mec-calendar.mec-calendar-weekly .mec-calendar-a-month .mec-previous-month{margin-left:0;left:12px}.mec-calendar.mec-calendar-weekly .mec-calendar-a-month .mec-next-month{margin-left:0;left:auto;right:12px}@media only screen and (max-width:479px){.mec-calendar.mec-calendar-weekly .mec-calendar-d-table dl dt span{font-size:9px;letter-spacing:0}.mec-calendar.mec-calendar-weekly .mec-event-list-weekly-date{width:100%;height:36px;margin-bottom:12px;line-height:1;font-size:10px;margin-right:5px;text-align:left}.mec-calendar.mec-calendar-weekly .mec-event-list-weekly-date span{font-size:18px;margin-bottom:5px}}.widget .mec-calendar.mec-calendar-weekly .mec-calendar-d-table dl dt span{font-size:9px;letter-spacing:0}.widget .mec-calendar.mec-calendar-weekly .mec-event-list-weekly-date{width:100%;height:36px;margin-bottom:12px;line-height:1;font-size:10px;margin-right:5px;text-align:left}.widget .mec-calendar.mec-calendar-weekly .mec-event-list-weekly-date span{font-size:18px;margin-bottom:5px}.mec-week-events-container .mec-weekly-view-dates-events li.mec-no-event-found{list-style:none!important}li.mec-no-event-found .mec-event-title{text-align:center}.mec-widget .mec-calendar{max-width:100%}.mec-widget .mec-calendar dl dt,.mec-wrap.mec-sm959.mec-widget .mec-calendar.mec-event-calendar-classic dl dt{height:40px}.mec-widget .mec-calendar .mec-calendar-events-sec{padding:10px}.mec-widget .mec-calendar .mec-calendar-header h2{font-size:13px;margin-top:8px}.mec-widget .mec-calendar .mec-event-list-classic .mec-event-image{margin-right:12px}.mec-widget .mec-calendar .mec-has-event:after{width:4px;height:4px}.mec-widget .mec-calendar.mec-event-calendar-classic .mec-calendar-events-sec .mec-table-side-title{font-size:14px}.mec-widget .mec-calendar .mec-event-article .mec-event-image{margin-right:11px}.mec-widget .mec-box-calendar.mec-calendar .mec-calendar-header{margin-bottom:20px}.mec-widget .mec-box-calendar.mec-calendar .mec-calendar-side .mec-next-month,.mec-widget .mec-box-calendar.mec-calendar .mec-calendar-side .mec-previous-month{font-size:0;padding:4px 0;text-align:center;min-width:33px}.mec-widget .mec-event-calendar-classic .mec-calendar-side .mec-calendar-table{min-height:200px}.mec-widget .mec-event-list-classic{margin-bottom:8px;padding:8px 0}.mec-widget .mec-event-list-classic .mec-event-article{margin-bottom:0;padding:10px 0;position:relative;min-height:86px;padding-left:80px}.mec-widget .mec-event-list-classic .mec-event-date{font-size:10px;line-height:14px;text-transform:uppercase}.mec-widget .mec-event-list-classic .mec-event-title{font-size:13px}.mec-widget .mec-event-list-classic .mec-event-detail{font-size:11px}.mec-widget .mec-event-list-classic .mec-event-image{width:68px;position:absolute;left:0}.mec-event-list-classic .mec-event-image img{width:100%}.mec-widget .mec-event-list-classic .mec-event-detail{overflow:visible}.event-color{width:14px;display:inline-block;height:14px;margin-left:5px;border-radius:50%}.mec-map-lightbox-wp{width:580px;padding:15px 15px 0;background-color:#fff}.mec-map-view-event-detail.mec-event-detail{width:580px;background-color:#e9e9e9;padding:8px 15px}.mec-map-lightbox-wp.mec-event-list-classic .mec-event-article{padding:0 0 15px;margin:0}.mec-map-lightbox-wp.mec-event-list-classic .mec-event-image{width:70px;margin-right:15px}.mec-marker-infowindow-wp{padding:10px}.mec-marker-infowindow-wp .mec-marker-infowindow-count{width:60px;height:60px;display:block;text-align:center;line-height:60px;border:1px solid #40d9f1;border-radius:50%;font-size:32px;color:#40d9f1;float:left;margin-right:11px}.mec-marker-infowindow-wp .mec-marker-infowindow-content{overflow:hidden;padding-top:6px}.mec-marker-infowindow-wp .mec-marker-infowindow-content span{display:block;color:#222}.mec-marker-infowindow-wp .mec-marker-infowindow-content span:first-child{font-size:15px;font-weight:700}.mec-marker-wrap{display:inline-block;width:35px;height:35px;margin:15px 0 0 4px;border-radius:50% 50% 50% 0;background:#00cae9;animation-name:mec-map-bounce;animation-fill-mode:both;animation-duration:1s;border:3px solid #fff;cursor:pointer}.mec-marker-wrap .mec-marker{margin-top:5px;display:block;-webkit-transform:rotate(45deg);transform:rotate(45deg);text-align:center;color:#fff;font-size:17px}.mec-marker-wrap .mec-marker-pulse-wrap{-webkit-transform:rotate(45deg);transform:rotate(45deg);display:inline-block;margin-left:-11px;margin-top:0}.mec-marker-wrap .mec-marker-pulse{display:inline-block;background:#c5c5c5;border-radius:50%;height:14px;width:14px;-webkit-transform:rotateX(55deg);transform:rotateX(55deg);z-index:-2}.mec-marker-wrap .mec-marker-pulse:after{content:"";border-radius:50%;height:40px;width:40px;position:absolute;margin:-13px 0 0 -13px;animation:pulsate 1s ease-out;animation-iteration-count:infinite;opacity:0;box-shadow:0 0 1px 2px #00cae9;animation-delay:1.1s}@keyframes pulsate{0%{transform:scale(.1,.1);opacity:0}50%{opacity:1}100%{transform:scale(1.2,1.2);opacity:0}}@keyframes mec-map-bounce{0%{opacity:0;transform:translateY(-2000px) rotate(-45deg)}60%{opacity:1;transform:translateY(30px) rotate(-45deg)}80%{transform:translateY(-10px) rotate(-45deg)}100%{transform:translateY(0) rotate(-45deg)}}.mec-single-event{margin-top:10px}.mec-single-event .mec-events-meta-group-countdown{color:#c9c9c9;text-align:center;margin-bottom:30px;padding:20px 30px;background:#fff;border:1px solid #e6e6e6;box-shadow:0 2px 0 0 rgba(0,0,0,.016)}.mec-events-meta-group-countdown .countdown-w{text-align:center;font-size:36px;margin:0 auto;padding:40px 0 0;position:relative;display:table;table-layout:fixed}.mec-events-meta-group-countdown .countdown-w .icon-w{font-size:24px}.mec-events-meta-group-countdown .countdown-w .label-w{font-size:15px;font-weight:300;letter-spacing:1px;text-transform:uppercase;position:relative}.mec-events-meta-group-countdown .countdown-w .block-w{display:table-cell;margin:0 20px 10px;position:relative;height:70px;width:190px;font-size:72px;transition:all .3s ease-in-out;line-height:1.2}.mec-events-meta-group-countdown .countdown-w .block-w.done-w{border:0 none}.mec-events-meta-group-countdown .countdown-w span{padding:24px 0 20px}.mec-events-meta-group-countdown .countdown-w .div-d{display:none}.mec-events-meta-group-countdown .countdown-w .countdown-message{display:none}.mec-events-meta-group-countdown .countdown-w .block-w i{display:none}#countdown{list-style:none;margin-bottom:0;margin-top:0;margin-left:0;padding-left:0}.mec-events-meta-group-countdown .mec-end-counts h3{display:inherit;text-align:center;font-size:16px;right:50%}.mec-countdown-details .countdown-w .clockdiv li p{margin-top:23px}@media (min-width:481px) and (max-width:768px){.mec-events-meta-group-countdown .countdown-w{padding:0}.mec-events-meta-group-countdown .countdown-w .label-w{font-size:12px;letter-spacing:0}.mec-events-meta-group-countdown .countdown-w span{font-size:34px}}@media (min-width:320px) and (max-width:480px){.mec-events-meta-group-countdown .countdown-w .label-w{font-size:10px}.mec-events-meta-group-countdown .countdown-w span{font-size:28px}.mec-countdown-details .countdown-w .clockdiv li p{margin-top:16px}}@media (max-width:320px){.mec-events-meta-group-countdown .countdown-w .label-w{font-size:9px;letter-spacing:0}.mec-events-meta-group-countdown .countdown-w span{font-size:22px}}.info-msg,.mec-error,.mec-success,.warning-msg{margin:10px 0;padding:10px;border-radius:3px 3px 3px 3px;font-size:13px}.info-msg{color:#059;background-color:#bef}.mec-success{color:#270;background-color:#dff2bf}.warning-msg{color:#9f6000;background-color:#feefb3}.mec-error{color:#d8000c;background-color:#ffbaba}.mec-fes-list ul{list-style:none}.mec-fes-form-cntt .dashicons-editor-help{display:none}.mec-fes-list ul li *{text-decoration:none!important}.mec-fes-list ul li{border-bottom:1px solid #eee;padding:14px 0;line-height:normal}.mec-fes-list ul li a{box-shadow:none;color:#181818}.mec-fes-list ul li a:hover{color:#40d9f1}.mec-fes-list ul li .mec-event-title{font-weight:600;font-size:15px}.mec-fes-list .mec-event-status{color:#fff!important;border-color:transparent!important}.mec-fes-form .mec-book-confirmed,.mec-fes-list .mec-book-confirmed{background:#50d477!important}.mec-fes-form .mec-book-pending,.mec-fes-list .mec-book-pending{background:#fcbe69!important}.mec-fes-form .mec-book-rejected,.mec-fes-list .mec-book-rejected{background:#fe686a!important}.mec-fes-form .mec-book-other,.mec-fes-list .mec-book-other{background:#40d9f1!important}.mec-fes-list ul li .mec-fes-event-remove,.mec-fes-list ul li .mec-fes-event-view{font-size:11px;padding:4px 8px;border:1px solid #e7e7e7;background:#f7f7f7;float:right;margin-left:5px}.mec-fes-list ul li .mec-fes-event-remove:hover{cursor:pointer;background:#f0b7b8;border-color:#cc4d4f}.mec-fes-list-top-actions a{font-size:11px;letter-spacing:2px;text-transform:uppercase;padding:8px 14px;border:1px solid #e3e3e3;background:#f5f5f5}.mec-fes-form-top-actions a,.mec-fes-list-top-actions a{position:relative;border:none;border-radius:0;color:#fff!important;display:inline-block;font-size:12px;letter-spacing:2px;line-height:1;text-transform:uppercase;font-weight:600;text-decoration:none;cursor:pointer;margin-bottom:21px;margin-right:10px;line-height:1;padding:17px 21px;background:#39c36e;-webkit-transition:all .21s ease;-moz-transition:all .21s ease;transition:all .21s ease}.mec-fes-form-top-actions a:hover,.mec-fes-list-top-actions a:hover{background:#222;color:#fff}.mec-fes-form .mec-form-row,.mec-fes-list .mec-form-row{margin-bottom:20px;clear:both}.mec-fes-form label{padding-right:10px;font-size:13px;display:block}.mec-fes-form .post-status{float:right!important;margin:0 5px;color:#fff;padding:0 10px;border-radius:12px;font-style:italic;font-size:18px}.mec-fes-form input[type=email],.mec-fes-form input[type=number],.mec-fes-form input[type=password],.mec-fes-form input[type=tel],.mec-fes-form input[type=text],.mec-fes-form select,.mec-fes-form textarea{border-radius:0;min-width:inherit;width:auto;display:inline;background:#fcfcfc;min-height:30px;font-size:13px;border:1px solid #e0e0e0;padding:10px;margin-bottom:20px;box-shadow:inset 0 2px 4px rgba(0,0,0,.051);clear:both}#mec_more_info_target{width:100%}@media only screen and (min-width:961px){.mec-fes-form input[type=email],.mec-fes-form input[type=password],.mec-fes-form input[type=text],.mec-fes-form textarea{width:100%;display:inline-block}}@media only screen and (max-width:768px){.mec-fes-form input[type=email],.mec-fes-form input[type=password],.mec-fes-form input[type=text],.mec-fes-form textarea{width:100%}}.mec-fes-form input[type=text]#mec_fes_title{width:100%;height:auto;color:#000;font-size:36px;font-family:Montserrat,Helvetica,Arial,sans-serif;background:0 0!important;font-weight:400}.mec-fes-form input[type=checkbox],.mec-fes-form input[type=radio]{display:inline!important;float:left;margin:5px 5px 0 0}.mec-fes-form input[type=email]:focus,.mec-fes-form input[type=number]:focus,.mec-fes-form input[type=password]:focus,.mec-fes-form input[type=tel]:focus,.mec-fes-form input[type=text]:focus,.mec-fes-form select:focus,.mec-fes-form textarea:focus{border:1px solid #aaa;color:#444;background:#fff;-moz-box-shadow:0 0 3px rgba(0,0,0,.2);-webkit-box-shadow:0 0 3px rgba(0,0,0,.2);box-shadow:0 0 3px rgba(0,0,0,.2);outline:0}.mec-form-row .mec-color{cursor:pointer}.mec-form-row.mec-available-color-row span{margin:10px;width:14px;height:14px;display:inline-block;margin-right:6px;border-radius:20px 20px 20px 20px;vertical-align:middle}.mec-form-row.mec-available-color-row span:first-of-type{margin-left:0}.mec-fes-form.mec-fes-form .mec-tooltip{display:inline}.mec-fes-form-cntt .dashicons-editor-help{display:block}.mec-fes-form .mec-tooltip:hover:after,.mec-fes-form .mec-tooltip:hover:before{display:none}.mec-fes-form.mec-fes-form .mec-tooltip{display:inline-flex;bottom:7px}.mec-fes-form .mec-tooltip .box{min-width:300px;max-width:600px;display:inline-block;left:26px;top:50%;transform:translateY(-50%);padding:0;margin-top:8px;background-color:#535a61;color:#fff;font-weight:300;font-size:14px;letter-spacing:.5px;line-height:1.3;position:absolute;z-index:9999999;box-sizing:border-box;border-radius:6px;box-shadow:0 4px 45px -8px #444b50;visibility:hidden;opacity:0;transition:opacity .23s}#webnus-dashboard .mec-fes-form .mec-tooltip .box p,.mec-fes-form .mec-tooltip .box p{color:#fff;font-size:14px;line-height:1.3;margin:0}.mec-fes-form .mec-tooltip:hover .box{visibility:visible;opacity:1}.mec-fes-form .mec-tooltip:hover .box{padding:20px;border-radius:8px}.mec-fes-form .mec-tooltip .box h5{color:#fff;font-size:17px;font-weight:600;margin:-30px -20px;padding:20px 0;text-align:center;margin-bottom:10px;background:#3a3f44;border-bottom:1px solid #32363a;border-radius:6px 6px 0 0;z-index:9999}#webnus-dashboard .mec-fes-form .mec-tooltip .box p a,.mec-fes-form .mec-tooltip .box p a{color:#40d9f1;margin-top:10px;margin-left:0;font-weight:400;position:relative;text-decoration:none;display:block;width:max-content}.mec-fes-form .mec-tooltip .box a:hover{color:#f90}.mec-fes-form .mec-tooltip .box:after{display:block;position:absolute!important;top:100%!important;right:50%!important;margin-top:-6px!important;margin-right:-6px!important;width:12px!important;height:24px!important;overflow:hidden!important;transform:rotate(-90deg)!important}.mec-fes-form .mec-tooltip .box:before{display:block;content:''!important;position:absolute!important;width:12px;height:12px;left:-10px!important;top:50%!important;transform:translate(50%,-50%) rotate(-45deg)!important;background-color:#535a61!important;box-shadow:0 8px 9px -4px #535a61!important;z-index:0!important}.mec-fes-form .mec-tooltip .box.top{left:50%;top:0;transform:translate(-50%,-100%);margin-top:0;margin-left:-10px}.mec-fes-form .mec-tooltip .box.top:after{top:50%!important;right:100%!important}.mec-fes-form .mec-tooltip .box.top:before{left:50%!important;top:100%!important}.mec-fes-form .mec-tooltip .box.bottom{left:50%;top:auto;bottom:0;transform:translate(-50%,100%);margin-bottom:-20px;margin-left:-10px}.mec-fes-form .mec-tooltip .box.bottom:after{top:0!important;right:50%!important;background-color:#3a3f44!important}.mec-fes-form .mec-tooltip .box.bottom:before{left:50%!important;top:-7px!important;transform:translateX(-50%);background-color:#3a3f44!important}.mec-fes-form .mec-tooltip .box.left{left:auto;right:26px;top:50%;transform:translateY(-50%)}.mec-fes-form .mec-tooltip .box.left:before{right:0!important;left:auto!important;top:50%!important}.mec-fes-form .mec-tooltip{display:inline-block;position:relative;margin-right:10px;cursor:help;bottom:5px;left:3px}.mec-fes-form .mec-tooltip:last-child{margin-right:0}.mec-fes-form .mec-tooltip:hover:after{background:#313130;border-radius:5px;bottom:24px;color:#fff;content:attr(title);left:-75px;padding:10px;position:absolute;z-index:98;width:240px}.mec-fes-form .mec-tooltip:hover:before{border:solid;border-color:#313130 transparent;border-width:6px 6px 0;bottom:18px;content:"";left:30%;position:absolute;z-index:99}.mec-fes-form .mec-tooltip .dashicons-before:before{font-size:24px;color:#008aff;line-height:37px}.mec-fes-form .mec-tooltip a:focus{box-shadow:none}.mec-form-row .bootstrap_unvalid{display:block;border:2px solid red;position:relative;display:inline-block;border-bottom:1px dotted #000}.mec-fes-form .mec-tooltiptext{visibility:hidden;width:120px;background-color:red;color:#fff;text-align:center;border-radius:6px;padding:5px 0;position:absolute;z-index:1}.mec-fes-form .mec-tooltip .content p a{display:none}@media only screen and (min-width:961px){.mec-fes-form .mec-fes-form-cntt,.mec-fes-form .mec-fes-form-sdbr{width:68%;float:left;padding-right:20px}.mec-fes-form .mec-fes-form-sdbr{width:32%;padding-right:0;padding-left:20px}.mec-fes-submit-mobile{display:none}}.mec-fes-form .mec-meta-box-fields{padding:20px;border:1px solid #e6e6e6;margin-bottom:20px;box-shadow:0 2px 0 0 rgba(0,0,0,.016)}.mec-fes-form .mec-meta-box-fields h4{margin:-20px;font-size:15px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:10px 20px;background:#f5f5f5;margin-bottom:20px}.mec-fes-sub-button{width:100%}.mec-available-color-row span.color-selected{background-color:#fdd700;border:3px solid #fff;box-sizing:content-box;box-shadow:0 0 0 2px #437df9}.mec-fes-loading:before{content:url(../img/ajax-loader.gif);background:0 0;border-style:none;display:block;margin-left:47%}.mec-fes-form #mec_meta_box_hourly_schedule_days .mec-form-row input[type=text]{width:23%;margin-right:1.4%}.mec-fes-form #mec_meta_box_hourly_schedule_days .mec-form-row{border-bottom:1px solid #e8e8e8;padding-bottom:15px}.mec-fes-form #mec_meta_box_hourly_schedule_days .mec-form-row:last-of-type{border:none}.mec-fes-form #mec_meta_box_hourly_schedule_days .mec-form-row input[type=text].mec-col-1{width:10%}.mec-fes-form #mec_meta_box_hourly_schedule_days .mec-form-row input[type=text].mec-col-6{width:39%}.mec-fes-form #mec_meta_box_hourly_schedule_days .mec-form-row button{margin-right:0;padding:9px 26px}@media only screen and (max-width:768px){.mec-fes-form #mec_meta_box_hourly_schedule_days .mec-form-row input[type=text]{width:100%!important}}.mec-wrap .mec-totalcal-box{position:relative;border:1px solid #efefef;padding:20px 5px;margin:0 0 20px;background:#fafafa;overflow:hidden;box-shadow:0 3px 2px 0 rgba(0,0,0,.012);min-height:78px}.mec-wrap .mec-totalcal-box i{float:left;margin:0;width:36px;height:36px;background:#fff;border:1px solid #efefef;text-align:center;padding:10px 0;font-size:15px;color:#888}.mec-wrap .mec-totalcal-box .mec-totalcal-view span,.mec-wrap .mec-totalcal-box input,.mec-wrap .mec-totalcal-box select{width:auto;min-height:36px;height:36px;line-height:36px;background:#fff;font-size:13px;color:#777;border:1px solid #efefef;margin:0 0 0 -1px;float:left;padding:0 5px;font-family:Roboto,Helvetica,Arial,sans-serif}.mec-wrap .mec-totalcal-box input[type=submit]{cursor:pointer;padding:0 16px;text-transform:uppercase;font-size:11px;font-family:Montserrat,Helvetica,Arial,sans-serif;transition:all .21s ease}.mec-wrap .mec-totalcal-box input[type=submit]:hover{background:#222;color:#fff}.mec-wrap .mec-totalcal-box .mec-totalcal-view span{display:inline-block;text-transform:uppercase;font-family:Montserrat,Helvetica,Arial,sans-serif;font-size:11px;padding:0 12px;cursor:pointer}.mec-wrap .mec-totalcal-box .mec-totalcal-view span:hover{color:#40d9f1}.mec-wrap .mec-totalcal-box .mec-totalcal-view span.mec-totalcalview-selected{color:#fff;background:#40d9f1;border-color:#40d9f1}.mec-wrap .mec-totalcal-box .mec-totalcal-view{text-align:right;float:right}.mec-wrap .mec-totalcal-box input[type=search]{width:calc(100% - 36px)}@media only screen and (min-width:961px) and (max-width:1200px){.mec-wrap .mec-totalcal-box{padding:37px 5px}}@media only screen and (max-width:960px){.mec-wrap .mec-totalcal-box .col-md-3,.mec-wrap .mec-totalcal-box .col-md-4,.mec-wrap .mec-totalcal-box .col-md-5{width:100%;float:none;padding-bottom:20px;clear:both;overflow:hidden}}@media only screen and (min-width:768px) and (max-width:960px){.mec-wrap .mec-totalcal-box .col-md-4{position:relative;right:10px;top:20px;width:initial}.mec-wrap .mec-totalcal-box .col-md-5{padding-bottom:0}.mec-wrap .mec-totalcal-box{padding:37px 5px}}@media only screen and (max-width:767px){.mec-wrap .mec-totalcal-box .mec-totalcal-view{float:none}.mec-wrap .mec-totalcal-box .col-md-4{padding-bottom:0}}@media only screen and (max-width:479px){.mec-wrap .mec-totalcal-box .mec-totalcal-view span{padding:0 8px;font-size:10px}.mec-wrap .mec-totalcal-box input[type=submit]{padding:0 10px;font-size:10px}}@media only screen and (min-width:961px){.mec-wrap .mec-wrap.mec-sm959 .mec-totalcal-box .col-md-5,.mec-wrap.mec-sm959 .mec-totalcal-box .col-md-3{width:100%;float:none;padding-bottom:20px;clear:both;overflow:hidden}.mec-wrap.mec-sm959 .mec-totalcal-box .col-md-4{position:absolute;right:10px;top:20px;width:initial}.mec-wrap.mec-sm959 .mec-totalcal-box .col-md-5{padding-bottom:0;width:100%}}@media (min-width:961px) and (max-width:1200px){.mec-full-calendar-wrap .mec-totalcal-box{padding:20px 20px}.mec-full-calendar-wrap .mec-totalcal-box .col-md-2{width:50%}.mec-full-calendar-wrap .mec-totalcal-box .col-md-2,.mec-full-calendar-wrap .mec-totalcal-box .col-md-3,.mec-full-calendar-wrap .mec-totalcal-box .col-md-4{padding-bottom:20px!important}.mec-full-calendar-wrap .mec-totalcal-box .col-md-2 select{min-width:calc(100% - 36px)}.mec-full-calendar-wrap .mec-totalcal-box .col-md-3 select{min-width:calc(30% - 10px)}.mec-full-calendar-wrap .mec-totalcal-box .col-md-3:last-child select{min-width:calc(50% - 19px)}.mec-full-calendar-wrap .mec-totalcal-box .mec-totalcal-view{margin-right:10px}.mec-full-calendar-wrap .mec-totalcal-box .mec-totalcal-view span{font-size:10px;text-align:center}}@media (max-width:960px){.mec-full-calendar-wrap .mec-totalcal-box{padding:20px 20px}.mec-full-calendar-wrap .mec-totalcal-box .col-md-2{width:50%}.mec-full-calendar-wrap .mec-totalcal-box .col-md-2,.mec-full-calendar-wrap .mec-totalcal-box .col-md-3,.mec-full-calendar-wrap .mec-totalcal-box .col-md-4{padding-bottom:10px!important}.mec-full-calendar-wrap .mec-totalcal-box .col-md-2 select{min-width:calc(100% - 36px);margin-bottom:10px}.mec-full-calendar-wrap .mec-totalcal-box .mec-totalcal-view{margin-right:10px}.mec-full-calendar-wrap .mec-totalcal-box .mec-totalcal-view span{font-size:10px;text-align:center}.mec-full-calendar-wrap .mec-totalcal-box .col-md-2{width:100%}.mec-full-calendar-wrap .mec-totalcal-box .col-md-4{position:absolute;top:20px}}@media (min-width:780px) and (max-width:960px){.mec-full-calendar-wrap .mec-totalcal-box .col-md-4{position:absolute;top:20px}}@media(max-width:780px){.mec-full-calendar-wrap .mec-totalcal-box .col-md-3 select{width:calc(50% - 18px)!important}.mec-full-calendar-wrap .mec-totalcal-box .col-md-4{position:unset;padding-right:0}.mec-full-calendar-wrap .mec-totalcal-box .mec-totalcal-view span{min-width:20%;text-align:center;font-size:10px}.mec-wrap .mec-totalcal-box .mec-totalcal-view span{padding:0 7px;margin-top:20px}}@media(max-width:480px){.mec-full-calendar-wrap .mec-totalcal-box .mec-totalcal-view span{min-width:20%;text-align:center;font-size:10px}}.mec-search-form{padding:20px 10px}.mec-search-form .mec-dropdown-wrap{display:table;min-height:55px;width:100%}.mec-search-form .mec-date-search,.mec-search-form .mec-dropdown-search,.mec-search-form .mec-text-input-search{padding:0 10px;float:left;min-height:55px}.mec-search-form .mec-date-search,.mec-search-form .mec-text-input-search{width:50%;min-height:36px;display:block}.mec-full-calendar-wrap .mec-search-form .mec-date-search,.mec-full-calendar-wrap .mec-search-form .mec-text-input-search{width:100%}.mec-full-calendar-wrap .mec-search-form .col-md-3,.mec-full-calendar-wrap .mec-search-form .col-md-5,.mec-full-calendar-wrap .mec-search-form .col-md-6,.mec-full-calendar-wrap .mec-search-form .col-md-8{padding:0}.mec-widget .mec-search-form .mec-date-search,.mec-widget .mec-search-form .mec-text-input-search{width:100%}.mec-widget .mec-search-form .mec-text-input-search{margin-top:10px}.mec-search-form .mec-date-search{clear:left}.mec-search-form .mec-dropdown-wrap .mec-dropdown-search{display:table-cell;float:none}.mec-widget .mec-search-form .mec-dropdown-wrap .mec-dropdown-search{display:block}.mec-wrap .mec-search-form .mec-dropdown-wrap .mec-dropdown-search select{width:calc(100% - 36px)}.mec-wrap .mec-search-form .mec-date-search select{width:calc(100% - 106px)}.mec-wrap .mec-search-form .mec-date-search select:last-child{width:70px}@media only screen and (max-width:767px){.mec-search-form .mec-date-search,.mec-search-form .mec-dropdown-search,.mec-search-form .mec-text-input-search{width:100%;float:none}.mec-search-form .mec-date-search{min-height:55px}.mec-search-form .mec-dropdown-wrap .mec-dropdown-search{display:block;width:50%;float:left}}@media only screen and (max-width:960px){.mec-wrap .mec-search-form .mec-date-search select{width:calc(100% - 124px)}.mec-wrap .mec-search-form .mec-date-search select:last-child{width:70px}}@media only screen and (max-width:479px){.mec-search-form .mec-dropdown-wrap .mec-dropdown-search{display:block;width:100%;float:none}}.ui-datepicker{background-color:#fff;border:1px solid #66afe9;border-radius:4px;box-shadow:0 0 8px rgba(102,175,233,.6);display:none;margin-top:4px;padding:10px;width:240px}.ui-datepicker a,.ui-datepicker a:hover{text-decoration:none;cursor:pointer}.ui-datepicker a:hover,.ui-datepicker td:hover a{color:#2c6396;-webkit-transition:color .1s ease-in-out;-moz-transition:color .1s ease-in-out;-o-transition:color .1s ease-in-out;transition:color .1s ease-in-out}.ui-datepicker .ui-datepicker-header{margin-bottom:4px;text-align:center}.ui-datepicker .ui-datepicker-title{font-weight:700}.ui-datepicker .ui-datepicker-next,.ui-datepicker .ui-datepicker-prev{cursor:default;font-family:dashicons;-webkit-font-smoothing:antialiased;font-style:normal;font-weight:400;height:20px;line-height:1.4;margin-top:2px;width:20px}.ui-datepicker .ui-datepicker-prev{float:left;text-align:left}.ui-datepicker .ui-datepicker-next{float:right;text-align:center}.ui-datepicker .ui-datepicker-prev:before{content:"\f341"}.ui-datepicker .ui-datepicker-next:before{content:"\f345"}.ui-datepicker .ui-icon{display:none}.ui-datepicker .ui-datepicker-calendar{table-layout:fixed;width:100%}.ui-datepicker .ui-datepicker-calendar td,.ui-datepicker .ui-datepicker-calendar th{text-align:center;padding:4px 0}.ui-datepicker .ui-datepicker-calendar td{border-radius:4px;-webkit-transition:background-color .1s ease-in-out,color .1s ease-in-out;-moz-transition:background-color .1s ease-in-out,color .1s ease-in-out;-o-transition:background-color .1s ease-in-out,color .1s ease-in-out;transition:background-color .1s ease-in-out,color .1s ease-in-out}.ui-datepicker .ui-datepicker-calendar td:hover{background-color:#eee;cursor:pointer}.ui-datepicker .ui-datepicker-calendar td a{text-decoration:none}.ui-datepicker .ui-datepicker-current-day{background-color:#4289cc}.ui-datepicker .ui-datepicker-current-day a{color:#fff}.ui-datepicker .ui-datepicker-calendar .ui-datepicker-unselectable:hover{background-color:#fff;cursor:default}.event-carousel-type1-head .mec-event-image{position:relative;min-height:150px}.event-carousel-type1-head .mec-event-image img{width:100%}.mec-event-carousel-content .mec-event-carousel-title a{transition:all .2s ease}.event-carousel-type1-head .mec-event-date-carousel{position:absolute;top:25px;left:1px;font-size:41px;width:160px;color:#fff;font-weight:500;background-color:#40d9f1;padding-left:21px;height:97px;line-height:2.3;padding-right:85px}.event-carousel-type1-head .mec-event-date-carousel:after{content:"";position:absolute;display:inline-block;z-index:-1;bottom:-13px;left:5px;width:0;border-width:13px;border-style:solid;border-color:transparent transparent #40d9f1 transparent;transform:rotate(45deg)}.event-carousel-type1-head .mec-event-date-info{font-size:12px;font-weight:300;position:absolute;top:27px;left:75px}.event-carousel-type1-head .mec-event-date-info-year{font-size:12px;font-weight:300;position:absolute;top:45px;left:75px}.mec-event-carousel-content{border:1px solid #e8e8e8;border-top:none;margin-top:-5px;padding:34px 9px 11px 37px}.mec-event-carousel-content .mec-event-carousel-title a{font-size:23px;font-weight:500;color:#000;letter-spacing:-1px}.mec-event-carousel-content p{font-size:14px;color:#7a7272;font-weight:300}.mec-owl-crousel-skin-type1 .owl-item .mec-event-article{padding:0 19px}.mec-event-carousel-type1 .owl-page.active span{background-color:#00aeef;height:14px;width:14px}.mec-event-carousel-type1 .mec-event-carousel-content{margin-bottom:15px;box-shadow:0 1px 2px rgba(0,0,0,.04);transition:all .27s ease}.mec-event-carousel-type1 .mec-event-carousel-content:hover{box-shadow:0 0 35px rgba(0,0,0,.07)}@media only screen and (min-width:768px) and (max-width:1000px),(min-width:270px) and (max-width:448px){.event-carousel-type1-head .mec-event-date-carousel{font-size:25px;line-height:2.5;padding-right:70px;height:64px;width:120px}.event-carousel-type1-head .mec-event-date-carousel:after{left:7px}.event-carousel-type1-head .mec-event-date-info{font-size:10px;top:13px;left:55px}.event-carousel-type1-head .mec-event-date-info-year{font-size:10px;top:25px;left:55px}.event-carousel-type1-head .mec-event-date-carousel:after{top:48px}}.event-carousel-type2-head{background:#fff;border:1px solid #e6e6e6}.event-carousel-type2-head .mec-event-carousel-content-type2{margin-top:15px;min-height:182px}.event-carousel-type2-head .mec-event-carousel-content-type2 .mec-event-date-info{font-size:15px;color:#9a9a9a;font-weight:300}.event-carousel-type2-head .mec-event-carousel-content-type2 .mec-event-carousel-title{font-size:26px;font-weight:700;color:#1c1d21;margin-top:15px;letter-spacing:-1px}.mec-event-carousel-content-type2 .mec-event-carousel-title a{color:inherit}.mec-event-carousel-type2 .event-carousel-type2-head .mec-event-carousel-content-type2 p{font-size:16px;font-weight:300;color:#444}.event-carousel-type2-head .mec-event-footer-carousel-type2{margin-top:33px;position:relative}.mec-event-carousel-type2 .mec-event-footer-carousel-type2 .mec-event-sharing-wrap{left:0}.event-carousel-type2-head .mec-event-footer-carousel-type2 .mec-event-sharing-wrap>li{border:none;-webkit-transition:all .25s ease;transition:all .25s ease}.event-carousel-type2-head .mec-event-footer-carousel-type2 .mec-booking-button{border:1px solid #e4e4e4;float:right;padding:7px 23px 7px;font-size:12px;text-transform:uppercase;color:#707070;font-weight:500;-webkit-transition:all .25s ease;transition:all .25s ease}.event-carousel-type2-head .mec-event-footer-carousel-type2 .mec-booking-button:hover{color:#fff}.mec-event-article .event-carousel-type2-head{padding:10%;margin-right:-1px}.mec-event-carousel-type2 .mec-owl-carousel .owl-wrapper-outer{border-right:1px solid #e6e6e6}.mec-wrap .mec-event-carousel-type2 .owl-next,.mec-wrap .mec-event-carousel-type2 .owl-prev,.mec-wrap .mec-event-carousel-type3 .owl-next,.mec-wrap .mec-event-carousel-type3 .owl-prev,.mec-wrap .mec-event-carousel-type4 .owl-next,.mec-wrap .mec-event-carousel-type4 .owl-prev{transition:all .25s ease;-webkit-transition:all .25s ease;position:absolute;top:47%;background-color:transparent!important}.mec-event-carousel-type2 .owl-next{right:-60px}.mec-event-carousel-type2 .owl-prev{left:-60px}.mec-event-carousel-type2 .owl-next i,.mec-event-carousel-type2 .owl-prev i,.mec-event-carousel-type3 .owl-next i,.mec-event-carousel-type3 .owl-prev i,.mec-event-carousel-type4 .owl-next i,.mec-event-carousel-type4 .owl-prev i{font-size:40px;color:#282828}.mec-event-carousel-type2 .owl-next i:hover,.mec-event-carousel-type2 .owl-prev i:hover,.mec-event-carousel-type3 .owl-next i:hover,.mec-event-carousel-type3 .owl-prev i:hover{color:#000;cursor:pointer}.mec-event-footer-carousel-type2 .mec-event-sharing-wrap .mec-event-sharing{top:auto;bottom:60px}.mec-event-footer-carousel-type2 .mec-event-sharing-wrap .mec-event-sharing:after,.mec-event-footer-carousel-type2 .mec-event-sharing-wrap .mec-event-sharing:before{top:auto;bottom:-19px;border-color:#e2e2e2 transparent transparent transparent}.mec-event-footer-carousel-type2 .mec-event-sharing-wrap .mec-event-sharing:after{bottom:-18px;border-color:#fff transparent transparent transparent}@media only screen and (min-width:320px) and (max-width:768px){.mec-event-carousel-type2 .owl-next,.mec-event-carousel-type2 .owl-prev,.mec-event-carousel-type3 .owl-next,.mec-event-carousel-type3 .owl-prev,.mec-event-carousel-type4 .owl-next,.mec-event-carousel-type4 .owl-prev{position:initial;top:100%}}.mec-event-carousel-type3 .mec-event-article{margin:0 10px}.event-carousel-type3-head .mec-event-image,.event-carousel-type3-head .mec-event-image img{width:100%;height:auto}.event-carousel-type3-head .mec-event-footer-carousel-type3{background:#fff;display:inline-block;width:calc(100% - 40px);margin-top:-74px;position:relative;margin-left:20px;margin-right:20px;margin-bottom:6px;padding:8% 11%;box-shadow:0 2px 10px -2px rgba(0,0,0,.2)}.event-carousel-type3-head .mec-event-footer-carousel-type3 .mec-booking-button{border:1px solid #e4e4e4;text-transform:uppercase;float:right;padding:7px 23px 7px;font-size:12px;color:#707070;font-weight:500}.event-carousel-type3-head .mec-event-footer-carousel-type3 .mec-booking-button:hover{color:#fff}.mec-event-footer-carousel-type3 span{font-size:15px;color:#9a9a9a;font-weight:300;display:block;margin-top:30px}.mec-event-footer-carousel-type3 .mec-event-carousel-title{font-size:29px;font-weight:700}.event-carousel-type3-head .mec-event-footer-carousel-type3 .mec-event-carousel-title{font-size:26px;font-weight:700;color:#1c1d21;margin-top:15px;letter-spacing:-1px}.mec-event-footer-carousel-type3 .mec-event-carousel-title a{color:inherit}.event-carousel-type3-head .mec-event-footer-carousel-type3 p{font-size:16px;font-weight:300;color:#444!important;margin-bottom:36px}.mec-event-carousel-type3 .owl-next{right:-70px}.mec-event-carousel-type3 .owl-prev{left:-70px}.mec-event-footer-carousel-type3 .mec-event-sharing-wrap{left:11%}.mec-event-footer-carousel-type3 .mec-event-sharing-wrap .mec-event-sharing{top:auto;bottom:60px}.mec-event-footer-carousel-type3 .mec-event-sharing-wrap .mec-event-sharing:after,.mec-event-footer-carousel-type3 .mec-event-sharing-wrap .mec-event-sharing:before{top:auto;bottom:-19px;border-color:#e2e2e2 transparent transparent transparent}.mec-event-footer-carousel-type3 .mec-event-sharing-wrap .mec-event-sharing:after{bottom:-18px;border-color:#fff transparent transparent transparent}.event-carousel-type3-head .mec-end-date-label{display:inline;margin-left:2px}.event-carousel-type4-head.clearfix{position:relative;overflow:hidden;background:#fff}.event-carousel-type4-head .mec-event-overlay{position:absolute;left:0;right:0;bottom:0;top:0;width:auto;height:auto;background-color:rgba(36,36,36,.4);transition:all .33s ease-in-out}.mec-event-hover-carousel-type4{font-size:15px;color:#fff;position:absolute;bottom:0;padding:50px 35px;transition:all .33s ease-in-out;opacity:0;visibility:hidden}.mec-event-carousel-type4 .mec-event-article{margin:0 10px}.mec-event-carousel-type4 .mec-event-article:hover .mec-event-hover-carousel-type4{opacity:1;visibility:visible}.mec-event-hover-carousel-type4 .mec-event-icon{font-size:18px;float:left;margin-right:14px;color:#fff;padding:13px}.mec-event-hover-carousel-type4 .mec-event-date{font-size:11px;text-transform:uppercase;font-weight:400;line-height:1.6}.mec-event-hover-carousel-type4 .mec-event-date span{display:block;font-weight:700;font-size:14px}.mec-event-hover-carousel-type4 .mec-event-title{color:#fff;margin:20px 0 38px;font-size:16px;font-weight:700;text-transform:uppercase;font-style:normal}.mec-event-hover-carousel-type4 .mec-btn-wrapper{text-align:left}.mec-event-hover-carousel-type4 .mec-event-button{color:#fff;background-color:#191919;border:2px #191919 solid;padding:10px 14px;letter-spacing:1.5px;font-size:11px;font-weight:700;font-style:normal;transition:all .22s ease;text-decoration:none}.mec-event-hover-carousel-type4 .mec-event-button:hover{color:#191919;background-color:#fff;border-color:#fff;border-radius:1px}.mec-event-carousel-type4 .owl-next{right:-70px}.mec-event-carousel-type4 .owl-prev{left:-70px}.mec-carousel-type4-head{margin-bottom:25px}.mec-carousel-type4-head-title{padding:0 11px;text-align:left;font-weight:700;font-size:20px;color:#000}.mec-carousel-type4-head-link{text-align:right;padding:0 11px}.mec-carousel-type4-head-link a{background:#222;color:#fff;padding:10px 38px;transition:all .3s ease}.mec-carousel-type4-head-link a:hover,.mec-carousel-type4-head-link a:visited{color:#fff}@media (max-width:960px){.mec-event-carousel-type4 .owl-stage{left:-50px}}.mec-wrap .mec-event-countdown-style1{color:#fff;padding:0!important;display:table;background:#437df9}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part1{z-index:5;padding:50px 1% 50px 4%;display:table-cell;float:none;vertical-align:middle}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part2{background-color:rgba(0,0,0,.05);height:100%;padding-top:0;display:table-cell;float:none;position:relative;vertical-align:middle}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part3{background-color:#f8f8f8;display:table-cell;float:none;text-align:center;vertical-align:middle}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part1 .mec-event-title{color:#fff;font-size:15px;margin-top:30px}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part1 .mec-event-upcoming{font-size:36px;font-weight:700;line-height:1;margin-top:0}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part2 .mec-event-countdown>div{display:inline-block}.mec-event-countdown-style1 .mec-events-meta-group-countdown{color:#c9c9c9;margin-bottom:30px;padding:20px 30px;background:#fff;border:1px solid #e6e6e6;box-shadow:0 2px 0 0 rgba(0,0,0,.016)}.mec-event-countdown-style1 .mec-event-countdown-part1 .mec-event-upcoming span{display:block}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part2:after{content:"";position:absolute;display:inline-block;z-index:1;top:50%;margin-top:-11px;right:-24px;width:0;border-width:12px;border-style:solid;border-color:transparent transparent transparent #4077ed}.mec-event-countdown-style1 .mec-event-countdown-part2 .mec-event-date-place{text-align:center;padding-bottom:8px}.mec-event-countdown-part2 .mec-event-place,.mec-event-countdown-style1 .mec-event-countdown-part2 .mec-event-date{display:inline;font-size:14px;padding:0 5px;text-align:center}.mec-event-countdown-style1 .mec-event-countdown-part3 .mec-event-button{display:inline-block;padding:14px 30px;vertical-align:middle;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#fff;background:#4077ed;transition:all .24s ease}.mec-event-countdown-style1 .mec-event-countdown-part3 .mec-event-button:hover{background:#222}.mec-event-countdown-style1 .mec-event-countdown{text-align:center;display:table;table-layout:fixed;margin:0 auto}.mec-event-countdown-style1 .mec-event-countdown .label-w{letter-spacing:1px;text-transform:uppercase;position:relative}.mec-event-countdown-style1 .mec-event-countdown .block-w{display:table-cell;margin:0 20px 10px;position:relative;height:70px}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown li{background-color:rgba(0,0,0,.1);margin:5px;padding:20px 0;min-width:94px}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown li span{font-size:30px}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown li .label-w{font-size:12px;color:#fff;margin:8px 0 0;line-height:1}@media only screen and (min-width:1200px){.mec-wrap.mec-sm959 .mec-event-countdown-style1 .mec-event-countdown-part1,.mec-wrap.mec-sm959 .mec-event-countdown-style1 .mec-event-countdown-part2,.mec-wrap.mec-sm959 .mec-event-countdown-style1 .mec-event-countdown-part3{width:100%;display:block;padding-top:50px;padding-bottom:50px}.mec-wrap.mec-sm959 .mec-event-countdown-style1 .mec-event-countdown-part2:after{border-color:#4077ed transparent transparent transparent;top:auto;margin-top:0;bottom:-24px;margin-left:-11px;left:50%}}@media (max-width:960px){.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part1,.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part2,.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part3{width:100%;display:block;padding-top:50px;padding-bottom:50px}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part2:after{border-color:#4077ed transparent transparent transparent;top:auto;margin-top:0;bottom:-24px;margin-left:-11px;left:50%;transform:rotate(90deg)}}@media (max-width:480px){.mec-event-countdown-style1 .mec-event-countdown .block-w{margin:3px;height:auto}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown li{padding:10px 5px;min-width:50px;margin:3px 1px}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown li span{font-size:15px}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown li .label-w{font-size:8px}.mec-event-countdown-style1 .mec-event-countdown-part2 .mec-event-date-place{display:inline}}.mec-wrap .mec-event-countdown-style2{color:#fff;padding:30px 0;background:#437df9;max-width:600px}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown-part1,.mec-wrap .mec-event-countdown-style2 .mec-event-countdown-part2,.mec-wrap .mec-event-countdown-style2 .mec-event-countdown-part3{width:100%;float:none;vertical-align:middle;padding:50px 10% 50px 10%}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown-part2{padding-top:12%;padding-bottom:0}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown-part1 .mec-event-title{color:#fff;font-size:15px;margin-top:30px}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown-part1 .mec-event-upcoming{font-size:36px;font-weight:700;line-height:1;margin-top:0}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown-part2 .mec-event-countdown>div{display:inline-block}.mec-event-countdown-style2 .mec-events-meta-group-countdown{color:#c9c9c9;margin-bottom:30px;padding:20px 30px;background:#fff;box-shadow:0 2px 0 0 rgba(0,0,0,.016)}.mec-event-countdown-style2 .mec-event-countdown-part1 .mec-event-upcoming span{display:block}.mec-event-countdown-style2 .mec-event-countdown-part2 .mec-event-date-place{text-align:left;padding-bottom:8px}.mec-event-countdown-part2 .mec-event-place,.mec-event-countdown-style2 .mec-event-countdown-part2 .mec-event-date{display:inline;font-size:14px;padding:0 8px}.mec-event-countdown-style2 .mec-event-countdown-part3 .mec-event-button{display:inline-block;padding:14px 30px;vertical-align:middle;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#222;background:#fff;transition:all .24s ease}.mec-event-countdown-style2 .mec-event-countdown-part3 .mec-event-button:hover{background:#222;color:#fff}.mec-event-countdown-style2 .mec-event-countdown{text-align:center;display:table;table-layout:fixed;margin:0}.mec-event-countdown-style2 .mec-event-countdown .label-w{letter-spacing:1px;text-transform:uppercase;position:relative}.mec-event-countdown-style2 .mec-event-countdown .block-w{display:table-cell;margin:0 20px 10px;position:relative;height:70px}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li{background-color:rgba(0,0,0,.1);margin:5px;padding:20px 0;min-width:94px}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li span{font-size:30px}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li .label-w{font-size:12px;color:#fff;margin:8px 0 0;line-height:1}@media only screen and (max-width:767px){.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li{min-width:80px;padding:15px}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li span{font-size:26px}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li .label-w{font-size:11px}}@media only screen and (max-width:479px){.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li{min-width:40px;padding:15px 10px;margin:2px}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li span{font-size:20px}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li .label-w{font-size:9px}}@media (max-width:380px){.mec-event-countdown-style2 .mec-event-countdown .block-w{margin:3px;height:auto}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li{padding:10px 4px;margin:4px 1px}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li span{font-size:15px}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li .label-w{font-size:7px}}.mec-wrap .mec-event-countdown-style3{color:#fff;padding:0;background:#282828;display:table;width:100%}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown-part1{width:68%;padding:50px 1% 50px 4%;vertical-align:middle;display:table-cell;position:relative}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown-part2{width:32%;display:table-cell;position:relative;padding-bottom:0;padding-top:0}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown-part2 img{width:100%;display:block}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown-part1 .mec-event-countdown-part-title span{font-weight:300;display:block}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown-part1 .mec-event-upcoming{color:#fff;font-size:36px;letter-spacing:-2px;font-weight:700;line-height:1;margin-top:-10px}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown-part2 .mec-event-countdown>div{display:inline-block}.mec-event-countdown-style3 .mec-events-meta-group-countdown{color:#c9c9c9;margin-bottom:30px;padding:20px 30px;background:#fff;border:1px solid #e6e6e6;box-shadow:0 2px 0 0 rgba(0,0,0,.016)}.mec-event-countdown-style3 .mec-event-countdown-part2 .mec-event-date-place{text-align:center;padding-bottom:8px}.mec-event-countdown-part2 .mec-event-place,.mec-event-countdown-style3 .mec-event-countdown-part2 .mec-event-date{display:inline;font-size:14px;padding:0 5px;text-align:center}.mec-event-countdown-style3 .mec-event-countdown-part3 .mec-event-button{display:inline-block;padding:14px 30px;vertical-align:middle;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#fff;background:#4077ed;transition:all .24s ease}.mec-event-countdown-style3 .mec-event-countdown-part3 .mec-event-button:hover{background:#222}.mec-event-countdown-style3 .mec-event-countdown{text-align:center;display:table;table-layout:fixed;margin:0 auto;position:absolute;top:40px;right:20px}.mec-event-countdown-style3 .mec-event-countdown .label-w{letter-spacing:1px;text-transform:uppercase;position:relative}.mec-event-countdown-style3 .mec-event-countdown .block-w{display:table-cell;margin:0 20px 10px;position:relative;height:70px}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown li{padding:15px}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown li span{font-size:30px}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown li .label-w{font-size:11px;color:#888;margin:8px 0 0;line-height:1}.mec-event-countdown-style3 .mec-event-date{width:176px;height:96px;background:#40d9f1;color:#fff;font-size:13px;position:absolute;left:-27px;top:146px}.mec-event-countdown-style3 .mec-event-date:after{content:"";position:absolute;display:inline-block;z-index:1;bottom:-18px;left:8px;width:0;border-width:19px;border-style:solid;border-color:transparent transparent #40d9f1 transparent;transform:rotate(45deg)}.mec-event-countdown-style3 .mec-event-date .mec-date1{font-size:50px;position:absolute;top:36px;left:12px;letter-spacing:-3px}.mec-event-countdown-style3 .mec-event-date .mec-date2{position:absolute;left:80px;top:26px}.mec-event-countdown-style3 .mec-event-date .mec-date3{position:absolute;left:80px;top:45px}.mec-event-countdown-style3 .mec-event-countdown-part-details{padding-top:35px;margin-bottom:50px;min-height:100px}.mec-event-countdown-style3 .mec-event-countdown-part-details .mec-event-title{font-size:17px;color:#fff;line-height:1.4;padding-right:20px}.mec-event-countdown-style3 .mec-event-countdown-part-details .mec-event-link{color:#fff;font-size:12px;position:relative;padding-left:22px}.mec-event-countdown-style3 .mec-event-countdown-part-details .mec-event-link:before{content:"";display:inline-block;width:18px;border-top:1px solid #fff;position:absolute;left:0;top:8px}.mec-event-countdown-style3 .mec-event-title-link{position:absolute;left:190px;top:152px}.event-carousel-type1-head .mec-event-date-carousel:before,.mec-event-countdown-style3 .mec-event-date:before{content:'';position:absolute;left:0;bottom:0;z-index:2;width:100%;height:96px;background:0 0;display:inline-block;box-shadow:0 5px 5px rgba(0,0,0,.12)}@media only screen and (min-width:960px){.mec-wrap.mec-sm959 .mec-event-countdown-style3 .mec-event-countdown li{padding:10px}.mec-wrap.mec-sm959 .mec-event-countdown-style3 .mec-event-countdown-part1 .mec-event-upcoming{font-size:31px}}@media (max-width:959px){.mec-wrap .mec-event-countdown-style3 .mec-event-countdown-part1,.mec-wrap .mec-event-countdown-style3 .mec-event-countdown-part2{width:100%;display:block}.mec-event-countdown-style3 .mec-event-title-link{top:190px}.mec-event-countdown-style3 .mec-event-countdown{top:96px}.mec-event-countdown-style3 .mec-event-date{left:0;top:190px}.mec-event-countdown-style3 .mec-event-date:after{display:none}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown-part1 .mec-event-countdown-part-title span{display:inline}.mec-event-countdown-style3 .mec-event-countdown-part-details{min-height:150px}}@media (max-width:767px){.mec-wrap .mec-event-countdown-style3 .mec-event-countdown-part1 .mec-event-upcoming{font-size:26px;letter-spacing:-1px}.mec-event-countdown-style3 .mec-event-title-link{left:130px}.mec-event-countdown-style3 .mec-event-date{width:120px;font-size:10px;height:63px}.mec-event-countdown-style3 .mec-event-date .mec-date1{font-size:36px;top:20px;left:4px;letter-spacing:-2px}.mec-event-countdown-style3 .mec-event-date .mec-date2{position:absolute;left:52px;top:12px}.mec-event-countdown-style3 .mec-event-date .mec-date3{position:absolute;left:52px;top:28px}}@media (max-width:380px){.mec-event-countdown-style3 .mec-event-title-link{left:10px;top:260px}.mec-event-countdown-style3 .mec-event-countdown-part-details{min-height:300px}.mec-event-countdown-style3 .mec-event-countdown .block-w{margin:3px;height:auto}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown li{padding:10px 5px}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown li span{font-size:15px}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown li .label-w{font-size:8px}}.mec-slider-t1-wrap{width:100%;padding:60px 90px;background:#f7f7f7;min-height:560px;position:relative}.mec-slider-t1{height:500px;box-shadow:0 5px 35px 0 rgba(0,0,0,.13)}.mec-slider-t1 .mec-event-article{position:relative;height:500px}.mec-slider-t1 .mec-slider-t1-img{position:relative;background-size:cover!important;background-position:center!important;width:50%;height:100%;float:right;margin:0;overflow:hidden}.mec-slider-t1 .mec-slider-t1-content{width:50%;float:left;height:100%;background:#fff;padding:6%}.mec-slider-t1-content.mec-event-grid-modern .mec-event-article{border:none;padding:0;margin:0;box-shadow:none}.mec-slider-t1-content.mec-event-grid-modern .mec-event-title{font-size:29px}.mec-slider-t1-content.mec-event-grid-modern .mec-event-title a:hover{text-decoration:underline}.mec-slider-t1-content.mec-event-grid-modern .mec-event-footer .mec-booking-button{font-size:12px;padding:0 31px;line-height:49px;height:50px}.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-next,.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-prev{opacity:1;width:54px;height:54px;line-height:48px;border-radius:0;text-align:center;background:#fff;box-shadow:0 2px 11px 0 rgba(0,0,0,.045);transition:all .25s ease;-webkit-transition:all .25s ease;position:absolute;top:50%;margin-top:-27px;cursor:pointer}.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-next:hover,.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-prev:hover{box-shadow:0 4px 29px 0 rgba(0,0,0,.095)}.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-next{left:auto;right:-100px}.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-prev{right:auto;left:-100px}.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-next i,.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-prev i{font-size:12px;color:#282828;transition:all .21s ease}.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-next:hover i,.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-prev:hover i{font-size:13px;color:#000;cursor:pointer}@media only screen and (min-width:961px){.mec-slider-t1{margin:0 auto;max-width:900px}}@media only screen and (max-width:960px){.mec-slider-t1 .mec-slider-t1-content,.mec-slider-t1 .mec-slider-t1-img{width:100%;float:none}.mec-slider-t1 .mec-slider-t1-img{height:300px}.mec-slider-t1,.mec-slider-t1 .mec-event-article{height:auto}}@media only screen and (max-width:768px){.mec-slider-t1-wrap{padding:0}.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-next,.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-prev{top:40px;margin-top:0}.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-next{left:auto;right:10px}.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-prev{right:auto;left:10px}}@media only screen and (max-width:479px){.mec-slider-t1-content.mec-event-grid-modern .mec-event-title{font-size:22px}.mec-slider-t1-content.mec-event-grid-modern .event-grid-modern-head .mec-event-day{font-size:25px}}.mec-slider-t2-wrap{width:100%;padding:0;background:#fff;min-height:600px;position:relative}.mec-slider-t2 .mec-event-article{height:600px;position:relative;border:none;padding:0;margin:0;box-shadow:none;background:0 0}.mec-slider-t2 .mec-slider-t2-img{position:absolute;left:0;top:0;background-size:cover!important;background-position:center!important;width:70%;height:100%;margin:0;overflow:hidden}.mec-slider-t2 .mec-slider-t2-content{width:50%;position:absolute;right:0;top:60px;bottom:60px;padding:5%}.mec-slider-t2 .mec-slider-t2-content.mec-event-grid-modern *{color:#fff}.mec-slider-t2 .mec-slider-t2-content.mec-event-grid-modern .mec-event-title{font-size:29px}.mec-slider-t2-content.mec-event-grid-modern .mec-event-content,.mec-slider-t2-content.mec-event-grid-modern .mec-event-footer .mec-booking-button{background:0 0}.mec-slider-t2-content.mec-event-grid-modern .mec-event-footer .mec-booking-button{font-size:12px;padding:0 31px;line-height:49px;height:50px}.mec-slider-t2-content.mec-event-grid-modern .mec-event-footer .mec-booking-button:hover{background:#fff;color:#000;border-color:#fff}.mec-slider-t2-content.mec-event-grid-modern .mec-event-footer .mec-booking-button:hover,.mec-slider-t2-content.mec-event-grid-modern .mec-event-title a:hover{color:#111}.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-next,.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-prev{opacity:1;width:44px;height:44px;line-height:38px;border-radius:0;text-align:center;background:0 0;border:1px solid #fff;transition:all .25s ease;-webkit-transition:all .25s ease;position:absolute;top:84px;cursor:pointer}.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-next:hover,.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-prev:hover{box-shadow:0 4px 16px 0 rgba(0,0,0,.075);background:#fff}.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-next{right:30px}.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-prev{right:82px}.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-next i,.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-prev i{font-size:14px;color:#fff;opacity:1;transition:all .25s ease}.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-next:hover i,.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-prev:hover i{color:#000;cursor:pointer}.mec-wrap.colorskin-custom .mec-slider-t2 .mec-event-article .mec-event-date.mec-color{color:#fff}@media only screen and (min-width:961px){.mec-slider-t2{margin:0 auto;max-width:1200px}}@media only screen and (max-width:960px){.mec-slider-t2 .mec-slider-t2-content,.mec-slider-t2 .mec-slider-t2-img{width:100%;float:none;position:static}.mec-slider-t2 .mec-slider-t2-img{height:300px}.mec-slider-t2 .mec-event-article{height:auto}.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-next,.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-prev{top:40px}}@media only screen and (max-width:479px){.mec-slider-t2-content.mec-event-grid-modern .mec-event-title{font-size:22px}}.mec-slider-t3-wrap{width:100%;padding:0;background:#161616;min-height:700px;position:relative}.mec-slider-t3 .mec-event-article{height:700px;position:relative;border:none;padding:0;margin:0;box-shadow:none;background:0 0}.mec-slider-t3 .mec-slider-t3-img{position:absolute;left:0;top:0;background-size:cover!important;background-position:center!important;width:100%;height:100%;margin:0;overflow:hidden;opacity:.68;z-index:1}.mec-slider-t3 .mec-slider-t3-content{width:50%;height:auto;vertical-align:middle;display:table;position:absolute;left:0;top:0;bottom:0;padding:0 2% 0 7%;margin:auto 0;background:0 0;z-index:2}.mec-slider-t3 .mec-slider-t3-content.mec-event-grid-modern :not(.mec-color){color:#fff}.mec-slider-t3-content.mec-event-grid-modern .mec-event-title{font-size:29px}.mec-slider-t3-content.mec-event-grid-modern .mec-event-content,.mec-slider-t3-content.mec-event-grid-modern .mec-event-footer .mec-booking-button{background:0 0}.mec-slider-t3-content.mec-event-grid-modern .mec-booking-button{display:inline-block;border:1px solid;font-weight:500;letter-spacing:1px;text-transform:uppercase;font-size:13px;padding:0 42px;line-height:49px;height:50px;transition:all .21s ease}.mec-slider-t3-content.mec-event-grid-modern .mec-booking-button:hover{background:#fff;color:#000;border-color:#fff}.mec-slider-t3-content.mec-event-grid-modern .mec-slider-t3-footer{text-align:left;padding:15px 15px 10px}.mec-slider-t3-content.mec-event-grid-modern .mec-event-footer .mec-booking-button:hover,.mec-slider-t3-content.mec-event-grid-modern .mec-event-title a:hover{color:#40d9f1}.mec-slider-t3-content.mec-event-grid-modern .mec-event-footer .mec-booking-button:hover{border-color:#40d9f1}.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-next,.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-prev{opacity:1;width:44px;height:44px;line-height:38px;border-radius:0;text-align:center;background:0 0;border:1px solid #fff;transition:all .25s ease;-webkit-transition:all .25s ease;position:absolute;top:50%;margin-top:-22px;cursor:pointer}.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-next:hover,.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-prev:hover{box-shadow:0 4px 16px 0 rgba(0,0,0,.075);background:#fff}.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-next{right:10px}.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-prev{right:auto;left:10px}.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-next i,.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-prev i{font-size:14px;color:#fff;opacity:1;transition:all .25s ease}.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-next:hover i,.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-prev:hover i{color:#000;cursor:pointer}@media only screen and (min-width:961px){.mec-slider-t3-content.mec-event-grid-modern .mec-event-title{font-size:50px;font-weight:300}.mec-slider-t3-content.mec-event-grid-modern .mec-event-description{font-size:19px}}@media only screen and (max-width:767px){.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-next,.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-prev{top:40px;margin-top:0}}@media only screen and (max-width:479px){.mec-slider-t3 .mec-slider-t3-content{width:100%}.mec-slider-t3-content.mec-event-grid-modern .mec-event-title{font-size:22px}.mec-slider-t1-content.mec-event-grid-modern .event-grid-modern-head .mec-event-day{font-size:25px}}.mec-slider-t4-wrap{width:100%;padding:0;background:#161616;min-height:700px;position:relative}.mec-slider-t4 .mec-event-article{height:700px;border:none;padding:0;margin:0;box-shadow:none;background:0 0}.mec-slider-t4 .mec-slider-t4-img{position:absolute;left:0;top:0;background-size:cover!important;background-position:center!important;width:100%;height:100%;margin:0;overflow:hidden;z-index:1}.mec-slider-t4 .mec-slider-t4-content{width:auto;max-width:700px;background:rgba(37,37,37,.94)!important;height:auto;vertical-align:middle;display:table;position:absolute;left:8%;top:19%;padding:3%;margin:auto 0;background:0 0;z-index:2}.mec-slider-t4 .mec-slider-t4-content.mec-event-grid-modern :not(.mec-color){color:#fff}.mec-slider-t4-content.mec-event-grid-modern .mec-event-title{font-size:29px}.mec-slider-t4-content.mec-event-grid-modern .mec-event-content,.mec-slider-t4-content.mec-event-grid-modern .mec-event-footer .mec-booking-button{background:0 0}.mec-slider-t4-content.mec-event-grid-modern .mec-event-footer .mec-booking-button{font-size:13px;padding:0 42px;line-height:49px;height:50px}.mec-slider-t4-content.mec-event-grid-modern .mec-event-title a:hover{color:#40d9f1}.mec-slider-t4-content.mec-event-grid-modern .mec-slider-t4-footer{text-align:left;padding:15px 15px 10px}.mec-slider-t4-content.mec-event-grid-modern .mec-booking-button{display:inline-block;border:1px solid;font-weight:500;letter-spacing:1px;text-transform:uppercase;font-size:13px;padding:0 42px;line-height:49px;height:50px;transition:all .21s ease}.mec-slider-t4-content.mec-event-grid-modern .mec-booking-button:hover{background:#fff;color:#000;border-color:#fff}.mec-slider-t4-content.mec-event-grid-modern .mec-event-footer .mec-booking-button:hover,.mec-slider-t4-content.mec-event-grid-modern .mec-event-title a:hover{color:#111}.mec-slider-t4-wrap .mec-owl-theme .owl-nav .owl-next,.mec-slider-t4-wrap .mec-owl-theme .owl-nav .owl-prev{opacity:1;width:44px;height:44px;line-height:40px;border-radius:0;text-align:center;background:0 0;border:1px solid #fff;transition:all .25s ease;-webkit-transition:all .25s ease;position:absolute;top:34px;cursor:pointer}.mec-slider-t4-wrap .mec-owl-theme .owl-nav .owl-next:hover,.mec-slider-t4-wrap .mec-owl-theme .owl-nav .owl-prev:hover{box-shadow:0 4px 16px 0 rgba(0,0,0,.075);background:#fff}.mec-slider-t4-wrap .mec-owl-theme .owl-nav .owl-next{right:60px}.mec-slider-t4-wrap .mec-owl-theme .owl-nav .owl-prev{right:112px}.mec-slider-t4-wrap .mec-owl-theme .owl-nav .owl-next i,.mec-slider-t4-wrap .mec-owl-theme .owl-nav .owl-prev i{font-size:14px;color:#fff;opacity:1;transition:all .25s ease}.mec-slider-t4-wrap .mec-owl-theme .owl-nav .owl-next:hover i,.mec-slider-t4-wrap .mec-owl-theme .owl-nav .owl-prev:hover i{color:#000;cursor:pointer}@media only screen and (max-width:767px){.mec-slider-t4 .mec-slider-t4-content{width:100%;left:0;top:auto;bottom:0}.mec-slider-t4-content.mec-event-grid-modern .mec-event-title{font-size:22px}.mec-slider-t1-content.mec-event-grid-modern .event-grid-modern-head .mec-event-day{font-size:25px}}.mec-slider-t5-wrap{width:auto;max-width:570px;padding:0;margin:0 auto 25px;background:#f7f7f7;min-height:480px;position:relative}.mec-slider-t5{height:auto;box-shadow:0 5px 35px 0 rgba(0,0,0,.13)}.mec-slider-t5 .mec-event-article{position:relative;height:auto}.mec-slider-t5 .mec-slider-t5-img{position:relative;background-size:cover!important;background-position:center!important;width:100%;height:300px;float:none;margin:0;overflow:hidden}.mec-slider-t5 .mec-slider-t5-content{width:100%;float:none;height:100%;background:#fff;padding:0 20px 20px;margin-bottom:0}.mec-slider-t5 .mec-events-content p{margin-bottom:20px}.mec-slider-t5-content.mec-event-grid-modern .mec-event-article{border:none;padding:0;margin:0;box-shadow:none}.mec-slider-t5-wrap .mec-event-grid-modern .event-grid-modern-head{margin-bottom:10px;padding:14px 34px;margin-left:-20px;margin-right:-20px;text-align:left;background:#f9f9f9;border-bottom:1px solid #eee}.mec-slider-t5-content.mec-event-grid-modern .mec-event-title{font-size:29px}.mec-slider-t5 .mec-slider-t5-col6{width:50%;float:left;height:100%}.mec-slider-t5 .mec-slider-t5-col6 i{font-size:42px;float:left;margin-right:7px;height:58px}.mec-slider-t5 .mec-slider-t5-col6 h6{text-transform:uppercase;font-size:17px;padding:4px 0;display:inline;color:#444}.mec-slider-t5 .mec-slider-t5-col6 address{font-size:12px;margin-bottom:0}.mec-slider-t5-content.mec-event-grid-modern .mec-event-title a:hover{text-decoration:underline}.mec-slider-t5-content.mec-event-grid-modern .mec-event-footer .mec-booking-button{font-size:12px;padding:0 31px;line-height:49px;height:50px;top:0}.mec-slider-t5-wrap .mec-owl-theme .owl-nav .owl-next,.mec-slider-t5-wrap .mec-owl-theme .owl-nav .owl-prev{opacity:1;width:44px;height:44px;line-height:40px;border-radius:0;text-align:center;background:0 0;border:1px solid #fff;transition:all .25s ease;-webkit-transition:all .25s ease;position:absolute;top:34px;cursor:pointer}.mec-slider-t5-wrap .mec-owl-theme .owl-nav .owl-next:hover,.mec-slider-t5-wrap .mec-owl-theme .owl-nav .owl-prev:hover{box-shadow:0 4px 16px 0 rgba(0,0,0,.075);background:#fff}.mec-slider-t5-wrap .mec-owl-theme .owl-nav .owl-next{right:30px}.mec-slider-t5-wrap .mec-owl-theme .owl-nav .owl-prev{right:82px}.mec-slider-t5-wrap .mec-owl-theme .owl-nav .owl-next i,.mec-slider-t5-wrap .mec-owl-theme .owl-nav .owl-prev i{font-size:14px;color:#fff;opacity:1;transition:all .25s ease}.mec-slider-t5-wrap .mec-owl-theme .owl-nav .owl-next:hover i,.mec-slider-t5-wrap .mec-owl-theme .owl-nav .owl-prev:hover i{color:#000;cursor:pointer}@media only screen and (max-width:768px){.mec-slider-t5 .mec-slider-t5-col6{width:100%;margin:10px 0}}@media only screen and (max-width:479px){.mec-slider-t5-content.mec-event-grid-modern .mec-event-title{font-size:24px}}.mec-single-modern .mec-events-event-image{text-align:center}.mec-single-modern .mec-events-event-image img{width:100%}.mec-single-modern .mec-single-event-bar{background-color:#f7f7f7;margin:20px 0 0;padding:15px;display:table;width:100%}.mec-single-modern .mec-single-event-bar>div{display:table-cell}.mec-single-modern .mec-single-event-bar>div i{font-size:20px;vertical-align:middle}.mec-single-modern .mec-single-event-bar>div .mec-time-comment{font-size:12px;color:#999}.mec-single-modern .mec-single-event-bar>div h3{text-transform:uppercase;font-size:16px;font-weight:700;padding-bottom:5px;display:inline;color:#000;padding-left:10px}.mec-single-modern .mec-single-event-bar>div dd{font-size:14px;color:#8d8d8d;padding-left:34px;margin-bottom:0}.mec-single-modern .col-md-4 .mec-frontbox{margin-top:-50px;margin-bottom:70px;padding:20px;border:none;background:#f7f7f7;box-shadow:none}.mec-next-occurrence li{list-style:none}@media only screen and (min-width:960px){.mec-single-modern .col-md-4 .mec-frontbox{margin-left:20px}}@media only screen and (max-width:960px){.mec-single-modern .mec-single-event-bar>div{display:block}}.lity-content>div{overflow:auto}.mec-next-event-details li{list-style:none;margin-top:20px}.mec-next-event-details h6{text-transform:uppercase;font-size:13px;padding-bottom:5px;display:inline;color:#222;padding-left:0}.mec-next-event-details abbr{display:block;padding-left:12px;color:#8d8d8d}.mec-next-event-details i{margin-right:10px;margin-left:12px}.mec-next-event-details i:before{color:#40d9f1}.mec-next-event-details a{text-align:center;display:block;background:#fff;padding:6px 0;font-size:11px;font-weight:400;letter-spacing:0;border:1px solid #e3e3e3;transition:.3s}.mec-single-modal.mec-single-modern .mec-single-title{text-align:center;padding:15px 10px 0}.admin-bar .mec-single-modal.mec-single-modern .mec-single-title{padding-top:40px}.mec-single-modal.mec-single-modern .mec-single-event-bar{padding:5px}.mec-single-modal.mec-single-modern .mec-single-event-bar>div dd{font-size:13px}.mec-single-modal.mec-single-modern .mec-single-event-bar>div h3{font-size:15px}@media only screen and (min-width:960px){.mec-single-modal.mec-single-modern .col-md-4 .mec-frontbox{margin-left:0}}.mec-single-modal.mec-single-modern .col-md-4 .mec-frontbox{margin-top:10px;margin-bottom:10px}.mec-single-modal.mec-single-modern .col-md-4 .mec-frontbox.mec-event-meta{padding:0}.mec-single-modal .mec-event-meta dd.mec-organizer-email a,.mec-single-modal .mec-event-meta dd.mec-organizer-url a{font-size:12px;display:block}.mec-modal-wrap{max-width:60vw;max-height:90vh!important;background:#fff;box-shadow:0 1px 55px rgba(0,0,0,.5);overflow-x:hidden!important}@media(max-width:1023px){.mec-modal-wrap{max-width:80vw}}.mec-single-modal .mec-event-export-module.mec-frontbox .mec-event-exporting .mec-export-details ul li,.mec-single-modal .mec-event-export-module.mec-frontbox .mec-event-exporting .mec-export-details ul li a.mec-events-button{display:block;text-align:center}.mec-single-modal .flip-clock-divider .flip-clock-label{position:absolute;top:60px}.mec-single-modal .flip-clock-divider:not(:first-child){width:48px!important}.mec-single-modal .flip-clock-divider.minutes .flip-clock-label{top:150px;left:-539px}.mec-single-modal .flip-clock-divider.seconds .flip-clock-label{top:87px}.mec-single-modal .flip-clock-wrapper{left:14%}.mec-single-modal .twodaydigits>ul:nth-child(11),.mec-single-modal .twodaydigits>ul:nth-child(12),.mec-single-modal .twodaydigits>ul:nth-child(8),.mec-single-modal .twodaydigits>ul:nth-child(9){margin-top:30px!important}.mec-events-toggle{max-width:960px;margin-left:auto;margin-right:auto}.mec-events-toggle .mec-toggle-item{border:1px solid #e4e4e4;margin-bottom:15px;box-shadow:0 10px 15px #f3f3f3}.mec-events-toggle .mec-toggle-item-inner{cursor:pointer;position:relative;padding:30px 60px 30px 15px;background:#fff;transition:all .3s ease}.mec-events-toggle .mec-toggle-item-inner:hover{background:#fbfbfb}.mec-toggle-item-col{float:left;width:180px;margin-top:-6px;border-right:1px solid #e3e3e3;margin-right:15px}.mec-toggle-item-col .mec-event-date{font-size:38px;line-height:40px;float:left;margin-right:8px}.mec-toggle-item-col .mec-event-month{text-transform:uppercase;font-size:12px;line-height:14px;padding-top:4px;font-weight:700}.mec-toggle-item-col .mec-event-detail{font-size:10px}.mec-toggle-item-col .mec-event-day{margin-top:9px;color:silver;font-family:Roboto,sans-serif;font-size:35px;font-weight:100;text-transform:uppercase;letter-spacing:-1px}.mec-events-toggle .mec-toggle-title{color:#000;font-size:23px;font-weight:600;margin-bottom:0;transition:all .3s ease;display:inline-block}.mec-events-toggle .mec-toggle-item-inner span.event-color{width:5px;height:100%;position:absolute;left:-1px;top:0;bottom:0;border-radius:0;margin:0}.mec-events-toggle .mec-toggle-item-inner i{position:absolute;font-size:30px;right:25px;top:50%;transform:translate(0,-50%);cursor:pointer}.mec-events-toggle .mec-toggle-item.is-open i.mec-sl-plus:before{content:"\e615"}.mec-events-toggle .mec-toggle-item.is-open .mec-toggle-title{background:#f8f8f8;cursor:pointer}.mec-events-toggle .mec-toggle-content{border-top:1px solid #e4e4e4}.mec-events-toggle .mec-toggle-content .mec-modal-wrap{margin:0;max-width:100%;box-shadow:none}.mec-events-toggle .mec-toggle-content .mec-modal-wrap .mec-single-event{margin:0}.mec-events-toggle .mec-toggle-content .mec-single-event-bar,.mec-events-toggle .mec-toggle-content h1.mec-single-title{display:none}.mec-events-toggle .media-links a{margin-bottom:0}.mec-events-toggle .mec-toggle-content .mec-toggle-meta{margin-bottom:14px}.mec-events-toggle #mec_speakers_details.mec-frontbox{padding:0;margin:0}.mec-events-toggle .mec-toggle-item h3.mec-speakers{border:none;text-align:left}.mec-events-toggle .mec-toggle-item h3.mec-speakers:before{content:"\e063";font-family:simple-line-icons;border:none;position:relative;display:inline-block;left:unset;bottom:unset;font-size:22px;font-weight:400;padding:0 11px 0 28px;vertical-align:middle}@media only screen and (max-width:767px){.mec-toggle-item-col{float:none;width:100%;border-right:none;margin-bottom:5px}}.mec-events-agenda-wrap{margin:10px 0;border:1px solid #e9e9e9;padding-left:20px;box-shadow:0 2px 2px rgba(0,0,0,.03)}.mec-events-agenda{padding:0;border-bottom:1px solid #e9e9e9;overflow:hidden}.mec-agenda-date-wrap{width:210px;padding-top:15px;float:left;font-size:13px}.mec-agenda-date-wrap i,.mec-agenda-event i{font-size:11px;color:#aaa;margin-right:4px;margin-left:1px}.mec-agenda-event i{vertical-align:middle;margin-right:1px}.mec-agenda-events-wrap{float:left;width:calc(100% - 210px);background:#f9f9f9;padding:15px}.mec-agenda-time{font-size:11px;color:#707070;padding-right:10px;width:138px;display:inline-block}.mec-agenda-event-title{position:relative;padding-left:14px}.mec-agenda-event-title a{font-family:Roboto,Montserrat,Helvetica,Arial,sans-serif;font-size:14px;font-weight:600;color:#333}.mec-agenda-event-title span.event-color{width:9px;height:9px;position:absolute;left:0;top:4px;margin:0}.mec-agenda-date-wrap span.mec-agenda-day{color:#aaa;font-size:12px}@media only screen and (max-width:767px){.mec-agenda-date-wrap,.mec-agenda-events-wrap{float:none;width:100%}.mec-events-agenda span.mec-agenda-event-title{display:block;width:100%}.mec-agenda-event-title span.event-color{top:7px}.mec-agenda-event-title a{font-size:13px}}.mec-yearly-view-wrap{margin:0 0 15px;border:1px solid #e6e6e6;box-shadow:0 2px 4px rgba(0,0,0,.04);border-bottom-width:4px}.mec-yearly-view-wrap .mec-calendar.mec-yearly-calendar{max-width:100%;width:232px;padding:10px;background:#fff;margin:10px;display:inline-block}.mec-yearly-view-wrap .mec-calendar.mec-yearly-calendar dl dt{transition:none;height:30px;width:30px;line-height:30px;border-radius:0;font-size:12px}.mec-yearly-view-wrap .mec-calendar.mec-yearly-calendar .mec-calendar-events-sec{padding:10px}.mec-yearly-view-wrap .mec-calendar.mec-yearly-calendar .mec-has-event:after{width:4px;height:4px;bottom:3px;margin-left:-2px}.mec-yearly-view-wrap .mec-calendar-side .mec-calendar-table{min-height:200px}.mec-calendar.mec-yearly-calendar .mec-calendar-table-head dl dt{background:#f9f9f9;font-size:13px}.mec-calendar.mec-yearly-calendar .mec-calendar-table-title{text-align:center;font-size:15px;font-weight:700;color:#222;margin-top:-5px;padding-bottom:5px}.mec-yearly-view-wrap .mec-yearly-calendar-sec{min-height:200px;width:538px;overflow:hidden;float:left;background:#f8f8f8;padding:15px}.mec-yearly-view-wrap .mec-yearly-agenda-sec{min-height:200px;width:calc(100% - 538px);float:left;padding:0 0 0 20px;overflow:hidden}.mec-yearly-view-wrap .mec-yearly-title-sec{position:relative;padding:15px;text-align:center;border-bottom:1px solid #e6e6e6;box-shadow:0 1px 3px rgba(0,0,0,.02)}.mec-yearly-view-wrap .mec-yearly-title-sec h2{font-size:30px;line-height:40px;color:#333;margin:0;font-weight:700}.mec-yearly-view-wrap .mec-yearly-title-sec .mec-next-year,.mec-yearly-view-wrap .mec-yearly-title-sec .mec-previous-year{position:absolute;top:50%;margin-top:-15px;min-width:30px;height:30px;line-height:30px;padding:0 8px;text-align:center;background:#fff;color:#666;font-size:14px;border:1px solid #eee;border-radius:2px;box-shadow:0 2px 0 0 rgba(0,0,0,.015);transition:all .33s ease;cursor:pointer}.mec-yearly-view-wrap .mec-yearly-title-sec .mec-previous-year{right:auto;left:20px;padding-right:14px}.mec-yearly-view-wrap .mec-yearly-title-sec .mec-next-year{left:auto;right:20px;padding-left:14px}.mec-yearly-view-wrap .mec-yearly-title-sec .mec-next-year i,.mec-yearly-view-wrap .mec-yearly-title-sec .mec-previous-year i{font-size:12px;color:#40d9f1;cursor:pointer}@media only screen and (max-width:959px){.mec-yearly-view-wrap .mec-yearly-calendar-sec{width:268px;padding:10px 5px}.mec-yearly-view-wrap .mec-yearly-agenda-sec{width:calc(100% - 268px);padding:0 0 0 10px}}@media only screen and (max-width:767px){.mec-yearly-view-wrap .mec-yearly-agenda-sec,.mec-yearly-view-wrap .mec-yearly-calendar-sec{width:100%;float:none}.mec-yearly-view-wrap .mec-calendar.mec-yearly-calendar{width:auto}.mec-yearly-view-wrap .mec-calendar.mec-yearly-calendar dl dt{width:14.2%}.mec-yearly-view-wrap .mec-yearly-title-sec h2{font-size:25px}}.mec-yearly-view-wrap .mec-agenda-event i,.mec-yearly-view-wrap .mec-agenda-time{display:none}@media only screen and (min-width:768px){.mec-yearly-view-wrap .mec-events-agenda-wrap{margin-top:0;border:none;padding-left:0;box-shadow:none}.mec-yearly-view-wrap .mec-agenda-date-wrap{width:174px;font-size:11px;padding-top:10px}.mec-yearly-view-wrap .mec-agenda-events-wrap{width:calc(100% - 174px);padding:10px}.mec-yearly-view-wrap .mec-agenda-event-title a{font-size:13px}.mec-yearly-view-wrap .mec-agenda-event-title span.event-color{width:8px;height:8px}.mec-yearly-view-wrap .mec-agenda-date-wrap span.mec-agenda-day{font-size:11px}.mec-yearly-view-wrap .mec-yearly-calendar-sec{box-shadow:-2px 0 5px rgba(0,0,0,.03) inset}}@media only screen and (max-width:1200px){.mec-yearly-view-wrap .mec-agenda-event-title a{font-size:12px;padding-right:6px}}.mec-calendar.mec-calendar-timetable .mec-calendar-d-table{padding-bottom:10px;border-bottom:none}.mec-calendar.mec-calendar-timetable .mec-calendar-d-table dl dt:hover{cursor:pointer}.mec-calendar.mec-calendar-timetable .mec-calendar-d-table dl dt.mec-timetable-has-no-event,.mec-calendar.mec-calendar-timetable .mec-calendar-d-table dl dt.mec-timetable-has-no-event:hover{color:#bbb;cursor:default}.mec-calendar.mec-calendar-timetable .mec-calendar-d-table dl dt.mec-timetable-day-active{background:#40d9f1;color:#fff;position:relative}.mec-calendar.mec-calendar-timetable .mec-calendar-d-table dl dt.mec-timetable-day-active:after{content:'';position:absolute;display:block;bottom:-20px;left:50%;margin-left:-10px;width:0;border-width:10px;border-style:solid;border-color:#40d9f1 transparent transparent transparent}.mec-timetable-events-list{padding:10px 20px;border:none;margin:0}.mec-timetable-events-list .mec-timetable-event{padding:10px 0;border-bottom:1px dashed #ddd}.mec-timetable-events-list .mec-timetable-event:last-child{border:none}.mec-timetable-event .mec-timetable-event-span{font-size:12px;color:#444;padding-right:30px;line-height:22px}.mec-timetable-events-list .mec-timetable-event i{font-size:13px;color:#aaa;margin-right:3px;vertical-align:baseline}.mec-timetable-event .mec-timetable-event-span a{color:#333}.mec-timetable-event .mec-timetable-event-time{font-size:11px}.mec-timetable-event .mec-timetable-event-time i{vertical-align:text-bottom}.mec-timetable-event .mec-timetable-event-title{font-size:13px}.mec-timetable-event .mec-timetable-event-title .event-color{width:10px;height:10px}.mec-timetable-events-list .mec-timetable-event.mec-util-hidden{display:none}.mec-timetable-events-list.mec-util-hidden{display:none}@media only screen and (min-width:768px){.mec-timetable-events-list{display:table;width:100%;margin:10px 0 20px}.mec-timetable-events-list .mec-timetable-event{display:table-row;padding:0;border:none;background:#fff}.mec-timetable-events-list .mec-timetable-event:hover{background:#fafafa}.mec-timetable-event .mec-timetable-event-span{display:table-cell;padding:10px 15px;border-bottom:1px solid #ebebeb}.mec-timetable-events-list .mec-timetable-event:last-child .mec-timetable-event-span{border-bottom:none}}@media only screen and (max-width:767px){.mec-timetable-event .mec-timetable-event-title{display:block;width:100%;padding:5px 0 10px;font-weight:700}}.mec-timetable-t2-wrap{border:1px solid #e6e6e6;background:#fafafa;padding:0 15px 15px;overflow:hidden;box-shadow:0 3px 2px 0 rgba(0,0,0,.012)}.mec-timetable-t2-col{width:20%;float:left;min-height:20px;padding-right:1px;background:0 0}.mec-ttt2-title{background:#fafafa;color:#333;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:1px;text-align:center;padding:25px 10px 10px;margin-bottom:1px}.mec-timetable-t2-col .mec-event-article{position:relative}.mec-timetable-t2-col .mec-event-article .event-color{position:absolute;width:auto;height:auto;left:0;right:0;top:0;bottom:0;margin:0;z-index:1;border-radius:2px}.mec-timetable-t2-content{position:relative;z-index:2;color:#fff;padding:15px 15px 20px;text-align:left;height:130px;margin-bottom:1px;overflow:hidden}.mec-timetable-t2-content .mec-event-title{line-height:22px;margin-bottom:13px;white-space:nowrap;padding-right:1px;overflow:hidden}.mec-timetable-t2-content .mec-event-title a{color:#fff;font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden}.mec-timetable-t2-content div{color:#fff;font-size:11px;font-weight:400;line-height:19px;white-space:nowrap}.mec-timetable-t2-content div i{font-size:12px;margin-right:4px}@media only screen and (max-width:960px){.mec-timetable-t2-col{width:100%;float:none}}@media(min-width:961px){.mec-timetable-col-7{width:14.28%}.mec-timetable-col-6{width:16.6666%}}.mec-weather-box{padding:15px 0}.mec-weather-head{min-height:90px;padding:5px 0;clear:both;overflow:hidden;margin-bottom:25px;border-radius:10px;background:#238af5;position:relative}.mec-weather-icon-box{float:left;width:80px;height:80px;border-radius:10px;overflow:hidden;background:#238af5}.mec-weather-icon{width:80px;height:80px;display:inline-block;border-radius:10px}.mec-weather-summary{float:left;width:calc(100% - 80px);padding-left:10px;margin:10px 0;height:60px}.mec-weather-summary-report{font-size:15px;color:rgba(255,255,255,.68);margin-bottom:6px}.mec-weather-summary-temp{font-family:Roboto,Sans-serif;font-weight:300;color:#fff;font-size:29px;line-height:1}.degrees-mode{background:rgba(0,0,0,.2);cursor:pointer;font-weight:300;font-size:18px;padding:4px 5px;line-height:1;color:#fff;position:absolute;border-radius:8px;bottom:16px;left:16px}.mec-weather-extras{width:auto;padding:10px 15px 0 15px;float:right;min-height:80px;color:#fff;font-size:13px;line-height:1}.mec-weather-extras{width:auto;padding:10px 15px 0 15px;float:right;min-height:80px;color:#fff;font-size:13px;line-height:1}.mec-weather-extras div{line-height:20px;height:20px}.mec-weather-extras span{color:rgba(255,255,255,.68);font-size:12px;text-transform:uppercase}.mec-weather-extras var{font-size:11px;letter-spacing:.4px}.mec-weather-icon.clear-day,.mec-weather-icon.clear-night{background-image:url(../img/mec-weather-icon-01.png)}.mec-weather-icon.partly-sunny-day,.mec-weather-icon.partly-sunny-night{background-image:url(../img/mec-weather-icon-02.png)}.mec-weather-icon.partly-cloudy-day,.mec-weather-icon.partly-cloudy-night{background-image:url(../img/mec-weather-icon-03.png)}.mec-weather-icon.cloudy,.mec-weather-icon.fog,.mec-weather-icon.wind{background-image:url(../img/mec-weather-icon-04.png)}.mec-weather-icon.thunderstorm{background-image:url(../img/mec-weather-icon-05.png)}.mec-weather-icon.rain{background-image:url(../img/mec-weather-icon-06.png)}.mec-weather-icon.hail,.mec-weather-icon.sleet,.mec-weather-icon.snow{background-image:url(../img/mec-weather-icon-07.png)}.mec-av-spot-wrap{width:auto;max-width:1200px;padding:0;margin:0 auto 25px;background:#f7f7f7;min-height:480px;position:relative}.mec-av-spot{height:auto;border:1px solid #eee;box-shadow:0 6px 12px -4px rgba(0,0,0,.05)}.mec-av-spot .mec-event-article{position:relative;height:auto}.mec-av-spot .mec-av-spot-img{position:relative;background-size:cover!important;background-position:center!important;width:100%;height:330px;float:none;margin:0;overflow:hidden}.mec-av-spot .mec-av-spot-content,.mec-av-spot .mec-av-spot-head{width:100%;float:none;height:100%;background:#fff;padding:0 20px 20px;margin-bottom:0}.mec-av-spot .mec-av-spot-head{background:#222;color:#fff;min-height:80px}.mec-av-spot .mec-av-spot-head .mec-av-spot-box{padding-top:25px;font-size:13px;color:#ddd}.mec-av-spot .mec-av-spot-head .mec-av-spot-box span{color:#40d9f1;font-size:40px;font-weight:700;font-style:italic}.mec-av-spot .mec-av-spot-head .mec-event-countdown{text-align:center;padding-top:10px;display:table;table-layout:fixed;margin:0 auto;float:right}.mec-av-spot .mec-av-spot-head .mec-event-countdown li{display:table-cell;padding:10px 20px;position:relative;height:60px}.mec-av-spot .mec-av-spot-head .mec-event-countdown p{margin-bottom:0}.mec-av-spot .mec-events-content p{margin-bottom:20px}.mec-av-spot-content.mec-event-grid-modern .mec-event-article{border:none;padding:0;margin:0;box-shadow:none}.mec-av-spot-wrap .mec-event-grid-modern .event-grid-modern-head{margin-bottom:10px;padding:14px 34px;margin-left:-20px;margin-right:-20px;text-align:left;background:#f9f9f9;border-bottom:1px solid #eee}.mec-av-spot-content.mec-event-grid-modern .mec-event-title{font-size:29px}.mec-av-spot .mec-av-spot-col6{width:50%;float:left;height:100%}.mec-av-spot .mec-av-spot-col6 i{font-size:42px;float:left;margin-right:7px;height:58px}.mec-av-spot .mec-av-spot-col6 h6{text-transform:uppercase;font-size:17px;padding:4px 0;display:inline;color:#444}.mec-av-spot .mec-av-spot-col6 address{font-size:12px;margin-bottom:0}.mec-av-spot-content.mec-event-grid-modern .mec-event-title a:hover{text-decoration:underline}.mec-av-spot-content.mec-event-grid-modern .mec-event-footer .mec-booking-button{font-size:12px;padding:0 31px;line-height:49px;height:50px;top:0;box-shadow:0 5px 11px -3px rgba(0,0,0,.05)}@media only screen and (max-width:768px){.mec-av-spot .mec-av-spot-col6{width:100%;margin:10px 0}}@media only screen and (max-width:479px){.mec-av-spot-content.mec-event-grid-modern .mec-event-title{font-size:24px}}.mec-events-masonry-wrap{display:block;width:auto}.mec-masonry-item-wrap{width:calc(33.33% - 30px);padding:0;margin:0 15px 30px;min-height:10px;position:relative}.isotope-item{z-index:2}.isotope-hidden.isotope-item{pointer-events:none;z-index:1}.isotope,.isotope .isotope-item{-webkit-transition-duration:.8s;-moz-transition-duration:.8s;transition-duration:.8s}.isotope{-webkit-transition-property:height,width;-moz-transition-property:height,width;transition-property:height,width}.isotope .isotope-item{-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform,opacity;transition-property:transform,opacity}.mec-events-masonry-cats{padding:10px;margin-bottom:25px;text-align:center;clear:both;list-style:none outside none}.mec-events-masonry-cats a{border-radius:2px;padding:6px 12px;font-size:13px;line-height:1.2;color:#333;font-weight:400;margin-top:0!important;text-align:center;display:inline-block;width:auto;border:2px solid transparent;transition:all .2s ease}.mec-events-masonry-cats a:hover{border-color:#40d9f1;color:#333}.mec-events-masonry-cats a.mec-masonry-cat-selected{border:2px solid #40d9f1;color:#40d9f1}.mec-masonry{background:#f7f7f7;height:auto;border:1px solid #eee;box-shadow:0 6px 12px -4px rgba(0,0,0,.05)}.mec-masonry .mec-event-article{position:relative;height:auto}.mec-masonry .mec-masonry-img{position:relative;width:100%;height:auto;float:none;margin:0;overflow:hidden}.mec-masonry .mec-masonry-img img{width:100%}.mec-masonry .mec-masonry-content,.mec-masonry .mec-masonry-head{width:100%;float:none;height:100%;background:#fff;padding:0 20px 20px;margin-bottom:0}.mec-masonry .mec-events-content p{margin-bottom:20px}.mec-masonry-content.mec-event-grid-modern .mec-event-article{border:none;padding:0;margin:0;box-shadow:none}.mec-masonry-item-wrap .mec-event-grid-modern .event-grid-modern-head{min-height:79px;margin-bottom:10px;padding:14px 5%;margin-left:-20px;margin-right:-20px;text-align:left;background:#f9f9f9;border-bottom:1px solid #eee}.mec-masonry-content.mec-event-grid-modern .mec-event-title{font-size:22px}.mec-masonry-content.mec-event-grid-modern .mec-event-content{padding-top:20px}.mec-masonry-content.mec-event-grid-modern .mec-event-footer{height:auto}.mec-masonry .mec-masonry-col6 .mec-event-date{font-size:34px;letter-spacing:-2px}.mec-masonry .mec-masonry-col6{width:50%;float:left;height:100%}.mec-masonry .mec-masonry-col6 i{font-size:24px;float:left;margin-right:7px;height:50px}.mec-masonry .mec-masonry-col6 .mec-event-month,.mec-masonry .mec-masonry-col6 h6{text-transform:capitalize;font-size:15px;padding:4px 0;display:inline;color:#444}.mec-masonry .mec-masonry-col6 .mec-event-detail,.mec-masonry .mec-masonry-col6 address{font-size:11px;margin-bottom:0}.mec-masonry-content.mec-event-grid-modern .mec-event-title a:hover{text-decoration:underline}.mec-masonry-content.mec-event-grid-modern .mec-event-footer .mec-booking-button{font-size:12px;padding:0 31px;line-height:49px;height:50px;top:0;box-shadow:0 5px 11px -3px rgba(0,0,0,.05)}@media only screen and (max-width:960px){.mec-masonry-item-wrap{width:calc(50% - 30px)}}@media only screen and (max-width:768px){.mec-masonry .mec-masonry-col6{width:100%;margin:10px 0}.mec-masonry-item-wrap{width:calc(100% - 30px)}}@media only screen and (max-width:479px){.mec-masonry-content.mec-event-grid-modern .mec-event-title{font-size:24px}}.btn-wrapper{text-align:center}.countdown-wrapper .btn-wrapper{padding-top:10px;padding-right:0}.countdown-wrapper h5.countdown-message{letter-spacing:5px;font-weight:500;font-size:18px}.blox.dar .countdown-wrapper p,.countdown-wrapper p{color:#888}.countdown-wrapper a.button.black{float:right;margin-right:0}.mec-wrap .threedaydigits .days .flip-clock-label{right:-100px}@media only screen and (min-width:320px) and (max-width:767px){.mec-wrap .flip-clock-wrapper ul{width:29px!important}.mec-wrap .flip-clock-wrapper ul li a div div.inn{font-size:25px!important}.mec-wrap .flip-clock-divider .flip-clock-label{left:0;font-weight:300}.mec-wrap span.flip-clock-divider{width:12px}}@media only screen and (min-width:320px) and (max-width:480px){.mec-wrap .flip-clock-wrapper ul{width:29px!important}.mec-wrap .flip-clock-wrapper ul li a div div.inn{font-size:25px!important}.mec-wrap .flip-clock-divider .flip-clock-label{display:none}.mec-wrap span.flip-clock-divider:first-child{width:0}.mec-wrap span.flip-clock-divider{width:20px}.mec-single-event .mec-events-meta-group-countdown{margin-left:10%}}@media screen and (min-width:960px) and (max-width:1200px){.mec-wrap .threedaydigits ul{height:50px;width:47px}}@media screen and (min-width:480px) and (max-width:768px){.mec-wrap .threedaydigits ul{height:48px;width:26px!important}.mec-wrap .threedaydigits .flip-clock-label{font-size:8px;left:-8px}}@media screen and (min-width:320px) and (max-width:480px){.mec-wrap .threedaydigits ul{height:48px;width:22px!important}}.mec-wrap .flip-clock-wrapper *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;backface-visibility:hidden}.mec-wrap .flip-clock-wrapper a{cursor:pointer;text-decoration:none;color:#ccc}.mec-wrap .flip-clock-wrapper a:hover{color:#fff}.mec-wrap .flip-clock-wrapper ul{list-style:none}.flip-clock-wrapper.clearfix:after,.mec-wrap .flip-clock-wrapper.clearfix:before{content:" ";display:table}.mec-wrap .flip-clock-wrapper.clearfix:after{clear:both}.mec-wrap .flip-clock-wrapper{font:normal 11px "helvetica neue",helvetica,sans-serif;-webkit-user-select:none}.mec-wrap .flip-clock-meridium{background:0 0!important;box-shadow:0 0 0!important;font-size:36px!important}.mec-wrap .flip-clock-meridium a{color:#313333}.mec-wrap .flip-clock-wrapper{text-align:center;position:relative;display:inline-block;padding-bottom:10px}.flip-clock-wrapper:after,.mec-wrap .flip-clock-wrapper:before{content:" ";display:table}.mec-wrap .flip-clock-wrapper:after{clear:both}.mec-wrap .flip-clock-wrapper ul{position:relative;float:left;margin:2px;width:50px;height:50px;font-size:80px;font-weight:700;line-height:87px;border-radius:3px;background:rgba(0,0,0,.21)}.mec-wrap .flip-clock-wrapper ul li{z-index:1;position:absolute;left:0;top:0;width:100%;height:100%;line-height:54px;text-decoration:none!important}.mec-wrap .flip-clock-wrapper ul li:first-child{z-index:2}.mec-wrap .flip-clock-wrapper ul li a{display:block;height:100%;-webkit-perspective:200px;-moz-perspective:200px;perspective:200px;margin:0!important;overflow:visible!important;cursor:default!important}.mec-wrap .flip-clock-wrapper ul li a div{z-index:1;position:absolute;left:0;width:100%;height:50%;font-size:80px;overflow:hidden;outline:1px solid transparent}.mec-wrap .flip-clock-wrapper ul li a div .shadow{position:absolute;width:100%;height:100%;z-index:2}.mec-wrap .flip-clock-wrapper ul li a div.up{-webkit-transform-origin:50% 100%;-moz-transform-origin:50% 100%;-ms-transform-origin:50% 100%;-o-transform-origin:50% 100%;transform-origin:50% 100%;top:0}.mec-wrap .flip-clock-wrapper ul li a div.up:after{content:"";position:absolute;top:24px;left:0;z-index:5;width:100%;height:3px;background-color:rgba(0,0,0,.12)}.mec-wrap .flip-clock-wrapper ul li a div.down{-webkit-transform-origin:50% 0;-moz-transform-origin:50% 0;-ms-transform-origin:50% 0;-o-transform-origin:50% 0;transform-origin:50% 0;bottom:0;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.mec-wrap .flip-clock-wrapper ul li a div div.inn{position:absolute;left:0;z-index:1;width:100%;height:200%;color:#fff;text-shadow:0 0 2px rgba(0,0,0,.25);text-align:center;background-color:#40d9f1;border-radius:3px;font-size:48px}.mec-wrap .flip-clock-wrapper ul li a div.up div.inn{top:0}.mec-wrap .flip-clock-wrapper ul li a div.down div.inn{bottom:0}.mec-wrap .flip-clock-wrapper ul.play li.flip-clock-before{z-index:3}.mec-wrap .flip-clock-wrapper .flip{box-shadow:0 2px 5px rgba(0,0,0,.17)}.mec-wrap .flip-clock-wrapper ul.play li.flip-clock-active{-webkit-animation:asd .5s .5s linear both;-moz-animation:asd .5s .5s linear both;animation:asd .5s .5s linear both;z-index:5}.mec-wrap .flip-clock-divider{float:left;display:inline-block;position:relative;width:18px;height:62px}.mec-wrap .flip-clock-divider:first-child{width:0}.mec-wrap .flip-clock-dot{display:none;background:#323434;width:10px;height:10px;position:absolute;border-radius:50%;box-shadow:0 0 5px rgba(0,0,0,.5);left:5px}.mec-wrap .flip-clock-divider .flip-clock-label{position:absolute;bottom:-1.5em;right:-71px;color:#101010;font-weight:700;text-shadow:none;text-transform:uppercase}.mec-wrap .blox.dark .flip-clock-divider .flip-clock-label{color:#8a8a8a}.mec-wrap .flip-clock-divider.seconds .flip-clock-label{right:-82px}.mec-wrap .flip-clock-dot.top{top:30px}.mec-wrap .flip-clock-dot.bottom{bottom:30px}@-webkit-keyframes asd{0%{z-index:2}20%{z-index:4}100%{z-index:4}}@-moz-keyframes asd{0%{z-index:2}20%{z-index:4}100%{z-index:4}}@-o-keyframes asd{0%{z-index:2}20%{z-index:4}100%{z-index:4}}@keyframes asd{0%{z-index:2}20%{z-index:4}100%{z-index:4}}.flip-clock-wrapper ul.play li.flip-clock-active .down{z-index:2;-webkit-animation:turn .5s .5s linear both;-moz-animation:turn .5s .5s linear both;animation:turn .5s .5s linear both}@-webkit-keyframes turn{0%{-webkit-transform:rotatex(90deg)}100%{-webkit-transform:rotatex(0)}}@-moz-keyframes turn{0%{-moz-transform:rotatex(90deg)}100%{-moz-transform:rotatex(0)}}@-o-keyframes turn{0%{-o-transform:rotatex(90deg)}100%{-o-transform:rotatex(0)}}@keyframes turn{0%{transform:rotatex(90deg)}100%{transform:rotatex(0)}}.flip-clock-wrapper ul.play li.flip-clock-before .up{z-index:2;-webkit-animation:turn2 .5s linear both;-moz-animation:turn2 .5s linear both;animation:turn2 .5s linear both}@-webkit-keyframes turn2{0%{-webkit-transform:rotatex(0)}100%{-webkit-transform:rotatex(-90deg)}}@-moz-keyframes turn2{0%{-moz-transform:rotatex(0)}100%{-moz-transform:rotatex(-90deg)}}@-o-keyframes turn2{0%{-o-transform:rotatex(0)}100%{-o-transform:rotatex(-90deg)}}@keyframes turn2{0%{transform:rotatex(0)}100%{transform:rotatex(-90deg)}}.flip-clock-wrapper ul li.flip-clock-active{z-index:3}.flip-clock-wrapper ul.play li.flip-clock-before .up .shadow{background:-moz-linear-gradient(top,rgba(0,0,0,.1) 0,rgba(64,64,64,.68) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(0,0,0,.1)),color-stop(100%,rgba(64,64,64,.68)));background:linear,top,rgba(0,0,0,.1) 0,rgba(64,64,64,.68) 100%;background:-o-linear-gradient(top,rgba(0,0,0,.1) 0,rgba(64,64,64,.68) 100%);background:-ms-linear-gradient(top,rgba(0,0,0,.1) 0,rgba(64,64,64,.68) 100%);background:linear,to bottom,rgba(0,0,0,.1) 0,rgba(64,64,64,.68) 100%;-webkit-animation:show .5s linear both;-moz-animation:show .5s linear both;animation:show .5s linear both}.flip-clock-wrapper ul.play li.flip-clock-active .up .shadow{background:-moz-linear-gradient(top,rgba(0,0,0,.1) 0,rgba(64,64,64,.68) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(0,0,0,.1)),color-stop(100%,rgba(64,64,64,.68)));background:linear,top,rgba(0,0,0,.1) 0,rgba(64,64,64,.68) 100%;background:-o-linear-gradient(top,rgba(0,0,0,.1) 0,rgba(64,64,64,.68) 100%);background:-ms-linear-gradient(top,rgba(0,0,0,.1) 0,rgba(64,64,64,.68) 100%);background:linear,to bottom,rgba(0,0,0,.1) 0,rgba(64,64,64,.68) 100%;-webkit-animation:hide .5s .3s linear both;-moz-animation:hide .5s .3s linear both;animation:hide .5s .3s linear both}.flip-clock-wrapper ul.play li.flip-clock-before .down .shadow{background:-moz-linear-gradient(top,rgba(64,64,64,.68) 0,rgba(0,0,0,.1) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(64,64,64,.68)),color-stop(100%,rgba(0,0,0,.1)));background:linear,top,rgba(64,64,64,.68) 0,rgba(0,0,0,.1) 100%;background:-o-linear-gradient(top,rgba(64,64,64,.68) 0,rgba(0,0,0,.1) 100%);background:-ms-linear-gradient(top,rgba(64,64,64,.68) 0,rgba(0,0,0,.1) 100%);background:linear,to bottom,rgba(64,64,64,.68) 0,rgba(0,0,0,.1) 100%;-webkit-animation:show .5s linear both;-moz-animation:show .5s linear both;animation:show .5s linear both}.flip-clock-wrapper ul.play li.flip-clock-active .down .shadow{background:-moz-linear-gradient(top,rgba(64,64,64,.68) 0,rgba(0,0,0,.1) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(64,64,64,.68)),color-stop(100%,rgba(0,0,0,.1)));background:linear,top,rgba(64,64,64,.68) 0,rgba(0,0,0,.1) 100%;background:-o-linear-gradient(top,rgba(64,64,64,.68) 0,rgba(0,0,0,.1) 100%);background:-ms-linear-gradient(top,rgba(64,64,64,.68) 0,rgba(0,0,0,.1) 100%);background:linear,to bottom,rgba(64,64,64,.68) 0,rgba(0,0,0,.1) 100%;-webkit-animation:hide .5s .3s linear both;-moz-animation:hide .5s .3s linear both;animation:hide .5s .2s linear both}@-webkit-keyframes show{0%{opacity:0}100%{opacity:1}}@-moz-keyframes show{0%{opacity:0}100%{opacity:1}}@-o-keyframes show{0%{opacity:0}100%{opacity:1}}@keyframes show{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes hide{0%{opacity:1}100%{opacity:0}}@-moz-keyframes hide{0%{opacity:1}100%{opacity:0}}@-o-keyframes hide{0%{opacity:1}100%{opacity:0}}@keyframes hide{0%{opacity:1}100%{opacity:0}}@font-face{font-family:simple-line-icons;src:url(../fonts/Simple-Line-Icons.eot?v=2.3.1);src:url(../fonts/Simple-Line-Icons.eot?v=2.3.1#iefix) format('embedded-opentype'),url(../fonts/Simple-Line-Icons.woff2?v=2.3.1) format('woff2'),url(../fonts/Simple-Line-Icons.woff?v=2.3.1) format('woff'),url(../fonts/Simple-Line-Icons.ttf?v=2.3.1) format('truetype'),url(../fonts/Simple-Line-Icons.svg?v=2.3.1#simple-line-icons) format('svg');font-weight:400;font-style:normal}[class*=mec-sl-]{font-family:simple-line-icons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.mec-sl-facebook:before{content:"\e00b"}.mec-sl-twitter:before{content:"\e009"}.mec-sl-google-plus:before{content:"\e60d"}.mec-sl-angle-left:before{content:"\e605"}.mec-sl-angle-right:before{content:"\e606"}.mec-sl-calendar:before{content:"\e075"}.mec-sl-clock-o:before{content:"\e081"}.mec-sl-home:before{content:"\e069"}.mec-sl-phone:before{content:"\e600"}.mec-sl-envelope:before{content:"\e086"}.mec-sl-sitemap:before{content:"\e037"}.mec-sl-map-marker:before{content:"\e096"}.mec-sl-floder:before{content:"\e089"}.mec-sl-wallet:before{content:"\e02a"}.mec-color,.mec-color-before :before,.mec-color-hover:hover,.mec-wrap .mec-color,.mec-wrap .mec-color-before :before,.mec-wrap .mec-color-hover:hover{color:#40d9f1}.mec-bg-color,.mec-bg-color-hover:hover,.mec-wrap .mec-bg-color,.mec-wrap .mec-bg-color-hover:hover{background-color:#40d9f1}.mec-border-color,.mec-border-color-hover:hover,.mec-wrap .mec-border-color,.mec-wrap .mec-border-color-hover:hover{border-color:#40d9f1}.mec-toggle-month-divider.mec-skin-list-events-container{border:1px solid #e8e8e8;margin-bottom:30px;background:#f8f8f8;box-shadow:0 2px 18px -1px rgba(0,0,0,.1);border-radius:2px}.mec-toggle-month-divider .mec-month-divider{margin:0;text-align:left;background:#fff;position:relative;cursor:pointer;border-top:1px solid #e8e8e8}.mec-toggle-month-divider .mec-month-divider span{padding:20px;border-bottom:1px solid #e8e8e8}.mec-toggle-month-divider .mec-month-divider i{position:absolute;right:20px;top:24px;font-size:20px;cursor:pointer}.mec-toggle-month-divider .mec-month-divider span:before{display:none}.mec-toggle-month-divider .mec-month-divider+article{margin-top:20px}.mec-toggle-month-divider .mec-wrap .mec-month-divider:first-of-type{border-top:none}.mec-toggle-month-divider .mec-event-list-accordion .mec-month-divider:not(:first-of-type)~article{display:none}.mec-skin-list-events-container:not(.mec-toggle-month-divider) .mec-month-divider i{display:none}.mec-toogle-inner-month-divider .mec-toggle-item-col .mec-event-month{display:inline-block;padding-top:0}.mec-toogle-inner-month-divider .mec-toggle-item-col .mec-event-date{font-size:14px;line-height:14px;float:none;display:inline-block;margin-right:0;font-weight:700}.mec-events-toggle .mec-toogle-inner-month-divider.mec-toggle-item-inner{padding:20px 60px 30px 15px}.mec-toogle-inner-month-divider .mec-toggle-month-inner-image{float:left;clear:right;width:100px;margin-right:20px;margin-left:10px}.mec-toogle-inner-month-divider .mec-toggle-item-col .mec-event-detail{margin-top:-6px}.mec-toogle-inner-month-divider .mec-toggle-item-col{float:none;width:100%;margin-top:10px;display:block;border:none}.mec-events-toggle .mec-toogle-inner-month-divider .mec-toggle-title{font-size:19px;display:block;padding-top:10px}@media only screen and (max-width:768px){.mec-events-toggle .mec-toogle-inner-month-divider .mec-toggle-title{font-size:14px;padding-top:0}.mec-toogle-inner-month-divider .mec-toggle-item-col{margin-top:0}.mec-toogle-inner-month-divider .mec-toggle-month-inner-image{width:70px}}.mec-wrap article:not([class^=mec-event-countdown]):not([class^=mec-event-cover-]).mec-label-canceled:before,.mec-wrap article:not([class^=mec-event-countdown]):not([class^=mec-event-cover-]).mec-label-featured:before{z-index:1;position:absolute;top:25px;right:-37px;font-size:11px;letter-spacing:1px;text-transform:uppercase;background:#04de78;padding:2px 40px;color:#fff;-ms-transform:rotate(45deg);-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-transition:.5s cubic-bezier(.25,.5,.06,.85);transition:.5s cubic-bezier(.25,.5,.06,.85);content:attr(data-style)}.mec-wrap article:not([class^=mec-event-countdown]):not([class^=mec-event-cover-]).mec-label-canceled,.mec-wrap article:not([class^=mec-event-countdown]):not([class^=mec-event-cover-]).mec-label-featured{overflow:hidden;position:relative}.mec-wrap article:not([class^=mec-event-countdown]):not([class^=mec-event-cover-]).mec-label-canceled:before{background:#de0404}.mec-daily-view-date-events article:before,ul.mec-weekly-view-dates-events article:before{padding:7px 40px!important;top:27px!important}.mec-event-grid-classic article .mec-fc-style,.mec-event-grid-minimal article .mec-fc-style,.mec-event-grid-simple article .mec-fc-style,.mec-timetable-wrap article .mec-fc-style,.mec-wrap .mec-event-list-accordion article .mec-fc-style,.mec-wrap .mec-event-list-modern article .mec-fc-style,.mec-wrap .mec-events-agenda .mec-agenda-event .mec-fc-style,.mec-wrap article.mec-event-cover-classic .mec-fc-style,.mec-wrap article.mec-event-cover-clean .mec-fc-style,.mec-wrap article.mec-event-cover-modern .mec-fc-style,.mec-wrap article[class^=mec-event-countdown-] .mec-fc-style{font-size:9px;letter-spacing:.5px;text-transform:uppercase;background:#04de78;padding:2px 7px;color:#fff;position:relative;margin-left:5px;border-radius:2px}.mec-wrap .mec-events-agenda .mec-agenda-event.mec-label-canceled .mec-fc-style,.mec-wrap article.mec-event-cover-modern.mec-label-canceled .mec-fc-style{background:#de0404}.mec-event-grid-minimal article .mec-fc-style:before,.mec-event-grid-simple article .mec-fc-style:before,.mec-timetable-wrap article .mec-fc-style:before,.mec-wrap .mec-event-list-accordion article .mec-fc-style:before,.mec-wrap .mec-event-list-modern article .mec-fc-style:before,.mec-wrap .mec-events-agenda .mec-agenda-event .mec-fc-style:before,.mec-wrap article.mec-event-cover-classic .mec-fc-style:before,.mec-wrap article.mec-event-cover-clean .mec-fc-style:before,.mec-wrap article[class^=mec-event-countdown-] .mec-fc-style:before{width:0;height:0;border-top:4px solid transparent!important;border-right:5px solid;border-bottom:4px solid transparent;margin:0;top:50%;left:-4px;transform:translateY(-4.5px);position:absolute;content:'';color:#04de78}.mec-wrap .mec-events-agenda .mec-agenda-event.mec-label-canceled .mec-fc-style:before{color:#de0404}.mec-event-grid-classic article.mec-label-canceled:before,.mec-event-grid-classic article.mec-label-featured:before,.mec-event-grid-minimal article.mec-label-canceled:before,.mec-event-grid-minimal article.mec-label-featured:before,.mec-event-grid-simple article.mec-label-canceled:before,.mec-event-grid-simple article.mec-label-featured:before,.mec-timetable-wrap article.mec-label-canceled:before,.mec-timetable-wrap article.mec-label-featured:before,.mec-wrap .mec-event-list-accordion article.mec-label-canceled:before,.mec-wrap .mec-event-list-accordion article.mec-label-featured:before,.mec-wrap .mec-event-list-modern article.mec-label-canceled:before,.mec-wrap .mec-event-list-modern article.mec-label-featured:before{display:none}.mec-wrap .mec-event-list-accordion article .mec-fc-style,.mec-wrap .mec-event-list-modern article .mec-fc-style,.mec-wrap article.mec-event-cover-classic .mec-fc-style,.mec-wrap article.mec-event-cover-clean .mec-fc-style,.mec-wrap article[class^=mec-event-countdown-] .mec-fc-style{top:-3px;font-size:11px;margin-left:10px}.mec-event-grid-classic article.mec-label-canceled .mec-fc-style,.mec-event-grid-minimal article.mec-label-canceled .mec-fc-style,.mec-event-grid-simple article.mec-label-canceled .mec-fc-style,.mec-timetable-wrap article.mec-label-canceled .mec-fc-style,.mec-wrap .mec-event-list-accordion article.mec-label-canceled .mec-fc-style,.mec-wrap .mec-event-list-modern article.mec-label-canceled .mec-fc-style,.mec-wrap article.mec-event-cover-classic.mec-label-canceled .mec-fc-style,.mec-wrap article.mec-event-cover-clean.mec-label-canceled .mec-fc-style,.mec-wrap article[class^=mec-event-countdown-].mec-label-canceled .mec-fc-style{background:#de0404}.mec-event-grid-classic article.mec-label-canceled .mec-fc-style:before,.mec-event-grid-minimal article.mec-label-canceled .mec-fc-style:before,.mec-event-grid-simple article.mec-label-canceled .mec-fc-style:before,.mec-timetable-wrap article.mec-label-canceled .mec-fc-style:before,.mec-wrap .mec-event-list-accordion article.mec-label-canceled .mec-fc-style:before,.mec-wrap .mec-event-list-modern article.mec-label-canceled .mec-fc-style:before,.mec-wrap article.mec-event-cover-classic.mec-label-canceled .mec-fc-style:before,.mec-wrap article.mec-event-cover-clean.mec-label-canceled .mec-fc-style:before,.mec-wrap article[class^=mec-event-countdown-].mec-label-canceled .mec-fc-style:before{color:#de0404}.mec-wrap .mec-slider-t5 article:not([class^=mec-event-countdown]).mec-label-canceled:before,.mec-wrap .mec-slider-t5 article:not([class^=mec-event-countdown]).mec-label-featured:before{-ms-transform:none;-webkit-transform:none;transform:none;-webkit-transition:none;transition:none;top:271px;right:0}.mec-timetable-wrap article .mec-fc-style{top:-2px;font-size:10px}.mec-wrap article.mec-event-cover-modern .mec-fc-style{padding:5px 9px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;margin-bottom:24px;display:inline-block;border-radius:2px}.mec-skin-grid-events-container .mec-wrap .mec-event-grid-clean .mec-event-article:before{-ms-transform:none;-webkit-transform:none;transform:none!important;-webkit-transition:none;transition:none;top:22px!important;right:22px!important;padding:0 10px!important}.mec-event-grid-minimal article .mec-fc-style,.mec-event-grid-simple article .mec-fc-style{top:-4px;font-size:10px;margin-left:10px}.mec-event-grid-classic article .mec-fc-style{padding:5px 20px;font-size:12px;margin-top:8px;display:inline-block}.mec-hourly-schedule-speaker-info{background:#fff;padding:30px;border:1px solid #e6e6e6;max-width:740px;width:740px;margin-left:-110px}.mec-hourly-schedule-speaker-thumbnail{float:left;max-width:30%;width:30%}.mec-hourly-schedule-speaker-name{font-weight:700;font-size:26px;line-height:1.2;color:#333;text-transform:uppercase}.mec-hourly-schedule-speaker-details{float:left;width:69%;padding-left:25px}.mec-hourly-schedule-speaker-job-title{font-size:16px;line-height:1.3;margin-bottom:4px}.mec-hourly-schedule-speaker-description{font-size:14px;font-weight:400;color:#6d7683;line-height:1.7;text-align:left}.mec-hourly-schedule-speaker-contact-information a i{color:#6b6b6b;background:#ebebeb;line-height:29px;margin:9px 7px 9px 0;width:30px;height:30px;display:inline-block;text-align:center;transition:all .2s ease;font-size:15px;cursor:pointer}.mec-hourly-schedule-speaker-contact-information a i:hover{background:#222;color:#fff}@media only screen and (max-width:479px){.mec-hourly-schedule-speaker-thumbnail{float:none;max-width:none;margin-right:0;margin-bottom:15px;width:100%}.mec-hourly-schedule-speaker-thumbnail img{width:100%}.mec-hourly-schedule-speaker-details{padding-left:0}.mec-hourly-schedule-speaker-info{width:90%;margin:0 auto}}.mec-profile .mec-profile-bookings{border:2px solid #e6e6e6;text-align:center}.mec-profile .mec-profile-bookings tbody tr:first-child{background:#f7f7f7;font-weight:700;text-transform:capitalize}.mec-profile .mec-profile-bookings tbody tr{border-bottom:1px solid #e6e6e6;font-size:14px}.mec-profile .mec-profile-bookings tbody tr td{border:1px solid #e6e6e6;padding:10px}.mec-profile .mec-profile-bookings tbody tr td:nth-child(1){width:4%}.mec-profile .mec-profile-bookings tbody tr td:nth-child(2){width:37%}.mec-profile .mec-profile-bookings tbody tr td:nth-child(3){width:24%}.mec-profile .mec-profile-bookings tbody tr td:nth-child(4){width:15%}.mec-profile .mec-profile-bookings tbody tr td:nth-child(5){width:10%}.mec-profile .mec-profile-bookings tbody tr td:nth-child(6){width:10%}.mec-profile .mec-event-status{padding:5px 10px;color:#fff;border-radius:2px;font-size:12px;line-height:12px;letter-spacing:.4px}.mec-profile .mec-event-status.mec-book-confirmed{background:#50d477}.mec-profile .mec-event-status.mec-book-pending{background:#fcbe69}.mec-profile .mec-event-status.mec-book-rejected{background:#fe686a}.mec-profile .mec-event-date{font-size:12px;color:#888}.mec-profile .mec-booking-number-of-attendees{font-size:13px;color:#888}.mec-profile .mec-booking-number-of-attendees i,.mec-profile .mec-profile-bookings-view-invoice i{font-size:15px;color:#008aff;vertical-align:text-bottom;margin-right:4px}.mec-booking-attendees{background:#fff;padding:10px}.mec-booking-attendees{width:750px;text-align:center}.mec-booking-attendees-wrapper{border:2px solid #e6e6e6;font-size:14px}.mec-booking-attendees-head{display:table;width:100%;background:#f7f7f7;border-bottom:1px solid #e6e6e6;font-weight:700}.mec-booking-attendees-head span,.mec-booking-attendees-head-content>span{vertical-align:middle;display:table-cell;padding:7px;border-right:1px solid #e6e6e6}.mec-booking-attendees-head-content{display:table;width:100%;border-bottom:1px solid #e6e6e6}.mec-booking-attendees-wrapper .mec-booking-attendees-head-content:last-child{border:none}.mec-booking-attendees-head span:nth-child(1),.mec-booking-attendees-head-content>span:nth-child(1){width:4%}.mec-booking-attendees-head span:nth-child(2),.mec-booking-attendees-head-content>span:nth-child(2){width:20%}.mec-booking-attendees-head span:nth-child(3),.mec-booking-attendees-head-content>span:nth-child(3){width:24%}.mec-booking-attendees-head span:nth-child(4),.mec-booking-attendees-head-content>span:nth-child(4){width:26%}.mec-booking-attendees-head span:nth-child(5),.mec-booking-attendees-head-content>span:nth-child(5){width:26%}@media only screen and (max-width:759px){.mec-booking-attendees{width:470px}.mec-booking-attendees-head span,.mec-booking-attendees-head-content>span{word-break:break-all}}.mec-woo-booking-checkout{position:relative;border:none;border-radius:0;color:#fff;display:inline-block;font-size:12px;letter-spacing:1px;line-height:1.5;text-transform:uppercase;font-weight:600;text-decoration:none;cursor:pointer;margin-bottom:21px;margin-right:10px;line-height:1;padding:18px 20px 16px;background:#39c36e;-webkit-transition:all .21s ease;-moz-transition:all .21s ease;transition:all .21s ease;border-radius:0;margin-bottom:6px;min-width:170px;margin-top:5px;text-align:center}.mec-woo-booking-checkout:hover{background:#222;color:#fff}.mec-woo-booking-checkout:focus,.mec-woo-booking-checkout:visited{color:#fff}.single-mec-events .lity-container{max-width:480px;width:480px}.lity-content .mec-events-meta-group-booking{width:100%;padding:20px 50px;background:#fff}.lity-content .mec-events-meta-group-booking .mec-booking form>h4{text-transform:uppercase;font-size:15px;font-weight:700;color:#313131;border-bottom:4px solid #ebebeb;width:100%;display:block;padding-bottom:10px;position:relative;text-align:center;line-height:1.2;margin-bottom:10px}.lity-content .mec-events-meta-group-booking .mec-booking form>h4:before{padding:1px 35px;border-bottom:4px solid #40d9f1;font-size:6px;content:"";text-align:center;position:absolute;bottom:-4px;margin-left:-35px;left:50%}.lity-content .mec-events-meta-group-booking .mec-event-ticket-available,.lity-content .mec-events-meta-group-booking .mec-event-ticket-name,.lity-content .mec-events-meta-group-booking .mec-event-ticket-price,.lity-content .mec-events-meta-group-booking .mec-ticket-variation-name,.lity-content .mec-events-meta-group-booking .mec-ticket-variation-price,.lity-content .mec-events-meta-group-booking label{color:#424242;font-size:12px;font-weight:300;letter-spacing:0;margin:3px 0;clear:none;padding:5px 1em 3px 0;display:inline-block}.lity-content .mec-events-meta-group-booking .mec-event-ticket-available{margin-bottom:12px}.lity-content .mec-events-meta-group-booking select{display:block;background:#fcfcfc;min-height:42px;min-width:180px;font-size:13px;border:1px solid #e0e0e0;padding:13px 10px;width:100%;margin-bottom:20px;box-shadow:inset 0 2px 4px rgba(0,0,0,.051);clear:both;font-family:Montserrat,Helvetica,Arial,sans-serif}.lity-content .mec-events-meta-group-booking input[type=email]{color:#888;border:1px solid #e1e1e1;font-size:14px;display:block;width:100%;outline:0}.lity-content .mec-events-meta-group-booking input{margin-bottom:10px!important}.lity-content .mec-book-ticket-variation h5{color:#424242;font-size:12px;font-weight:300;letter-spacing:0;margin:0;clear:none;padding:5px 1em 3px 0;display:inline-block;text-transform:capitalize;font-family:Montserrat,Helvetica,Arial,sans-serif}.lity-content ul.mec-book-tickets-container{padding:0}.lity-content .mec-events-meta-group-booking input[type=email],.lity-content .mec-events-meta-group-booking input[type=number],.lity-content .mec-events-meta-group-booking input[type=text]{outline:0;font-family:Montserrat,Helvetica,Arial,sans-serif;display:block;background:#fcfcfc;min-height:42px;min-width:180px;font-size:13px;border:1px solid #e0e0e0;padding:13px 10px;width:100%;margin-bottom:20px;box-shadow:inset 0 2px 4px rgba(0,0,0,.051);clear:both;margin-bottom:2px!important}.lity-content button[type=submit]{position:relative;border:none;color:#fff;display:inline-block;font-size:12px;letter-spacing:1px;text-transform:uppercase;font-weight:600;text-decoration:none;cursor:pointer;margin-right:10px;line-height:1;padding:18px 20px 16px;background:#39c36e;-webkit-transition:all .21s ease;-moz-transition:all .21s ease;transition:all .21s ease;min-width:170px;margin-top:5px;border-radius:0;margin-bottom:6px}.lity-content button[type=submit]:hover{background:#222}.lity-content .mec-book-tickets-container li{list-style:none}.lity-content .mec-events-meta-group-booking #mec_book_payment_form h4,.lity-content .mec-events-meta-group-booking li h4{font-size:19px;font-weight:700}.lity-content .mec-events-meta-group-booking .mec-book-price-total{display:inline-block;margin-bottom:10px;font-size:26px;color:#39c36e;font-weight:700;padding:10px 0}.lity-content .mec-events-meta-group-booking ul.mec-book-price-details li{width:50%}.lity-content .mec-events-meta-group-booking ul.mec-book-price-details li:nth-child(even){border:none}.lity-content .mec-events-meta-group-booking ul.mec-book-price-details li span{display:block}.lity-content .mec-events-meta-group-booking button[type=submit]:after{display:none;font-family:simple-line-icons;content:"\e098";margin-left:4px;-webkit-animation:rotating 1.2s linear infinite;-moz-animation:rotating 1.2s linear infinite;-ms-animation:rotating 1.2s linear infinite;-o-animation:rotating 1.2s linear infinite;animation:rotating 1.2s linear infinite}.lity-content .mec-events-meta-group-booking button[type=submit].loading:after{display:inline-block}@media only screen and (max-width:480px){.lity-content .mec-events-meta-group-booking{padding:20px;width:340px;margin:0 auto}}.mec-events-meta-group-booking{position:relative}.mec-cover-loader:after{content:'';position:absolute;top:0;right:0;left:0;bottom:0;background:rgba(255,255,255,.5);z-index:99999}.mec-loader{background:rgba(0,0,0,0);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:9}.mec-loader,.mec-loader:after{border-radius:50%;width:5em;height:5em;z-index:999999999999}.mec-loader{font-size:10px;text-indent:-9999em;border-top:.5em solid rgba(0,0,0,.2);border-right:.5em solid rgba(0,0,0,.2);border-bottom:.5em solid rgba(0,0,0,.2);border-left:.5em solid #fff;-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:mecloader 1.1s infinite linear;animation:mecloader 1.1s infinite linear}@-webkit-keyframes mecloader{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes mecloader{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.mec-wrap *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mec-wrap :after,.mec-wrap :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mec-wrap .clearfix:after,.mec-wrap .clearfix:before{content:'\0020';display:block;overflow:hidden;visibility:hidden;width:0;height:0}.mec-wrap .clearfix:after{clear:both}.mec-wrap .clearfix{zoom:1}.mec-wrap .clear,.mec-wrap .clr{clear:both;display:block;overflow:hidden;visibility:hidden}.mec-wrap .clr{visibility:visible;overflow:visible}.mec-container [class*=col-] img{max-width:100%}.mec-container{margin-right:auto;margin-left:auto;padding-left:10px;padding-right:10px}.mec-container:after,.mec-container:before{content:" ";display:table}.mec-container:after{clear:both}@media only screen and (max-width:479px){.mec-container{width:300px}}@media only screen and (min-width:480px) and (max-width:767px){.mec-container{width:420px}}@media only screen and (min-width:768px) and (max-width:960px){.mec-container{width:768px}}@media only screen and (min-width:961px){.mec-container{width:960px}}@media only screen and (min-width:1200px){.mec-container{width:1196px;padding-left:15px;padding-right:15px}}@media only screen and (min-width:1921px){.mec-container{max-width:1690px}}.mec-wrap .row{margin-left:-10px;margin-right:-10px}.mec-wrap .row:after,.mec-wrap .row:before{content:" ";display:table}.mec-wrap .row:after{clear:both}.mec-wrap .col-lg-1,.mec-wrap .col-lg-10,.mec-wrap .col-lg-11,.mec-wrap .col-lg-12,.mec-wrap .col-lg-2,.mec-wrap .col-lg-3,.mec-wrap .col-lg-4,.mec-wrap .col-lg-5,.mec-wrap .col-lg-6,.mec-wrap .col-lg-7,.mec-wrap .col-lg-8,.mec-wrap .col-lg-9,.mec-wrap .col-md-1,.mec-wrap .col-md-10,.mec-wrap .col-md-11,.mec-wrap .col-md-12,.mec-wrap .col-md-2,.mec-wrap .col-md-3,.mec-wrap .col-md-4,.mec-wrap .col-md-5,.mec-wrap .col-md-6,.mec-wrap .col-md-7,.mec-wrap .col-md-8,.mec-wrap .col-md-9,.mec-wrap .col-sm-1,.mec-wrap .col-sm-10,.mec-wrap .col-sm-11,.mec-wrap .col-sm-12,.mec-wrap .col-sm-2,.mec-wrap .col-sm-3,.mec-wrap .col-sm-4,.mec-wrap .col-sm-5,.mec-wrap .col-sm-6,.mec-wrap .col-sm-7,.mec-wrap .col-sm-8,.mec-wrap .col-sm-9,.mec-wrap .col-xs-1,.mec-wrap .col-xs-10,.mec-wrap .col-xs-11,.mec-wrap .col-xs-12,.mec-wrap .col-xs-2,.mec-wrap .col-xs-3,.mec-wrap .col-xs-4,.mec-wrap .col-xs-5,.mec-wrap .col-xs-6,.mec-wrap .col-xs-7,.mec-wrap .col-xs-8,.mec-wrap .col-xs-9{position:relative;min-height:1px;padding-left:10px;padding-right:10px}@media only screen and (min-width:1200px){.mec-wrap .col-lg-1,.mec-wrap .col-lg-10,.mec-wrap .col-lg-11,.mec-wrap .col-lg-12,.mec-wrap .col-lg-2,.mec-wrap .col-lg-3,.mec-wrap .col-lg-4,.mec-wrap .col-lg-5,.mec-wrap .col-lg-6,.mec-wrap .col-lg-7,.mec-wrap .col-lg-8,.mec-wrap .col-lg-9,.mec-wrap .col-md-1,.mec-wrap .col-md-10,.mec-wrap .col-md-11,.mec-wrap .col-md-12,.mec-wrap .col-md-2,.mec-wrap .col-md-3,.mec-wrap .col-md-4,.mec-wrap .col-md-5,.mec-wrap .col-md-6,.mec-wrap .col-md-7,.mec-wrap .col-md-8,.mec-wrap .col-md-9,.mec-wrap .col-sm-1,.mec-wrap .col-sm-10,.mec-wrap .col-sm-11,.mec-wrap .col-sm-12,.mec-wrap .col-sm-2,.mec-wrap .col-sm-3,.mec-wrap .col-sm-4,.mec-wrap .col-sm-5,.mec-wrap .col-sm-6,.mec-wrap .col-sm-7,.mec-wrap .col-sm-8,.mec-wrap .col-sm-9,.mec-wrap .col-xs-1,.mec-wrap .col-xs-10,.mec-wrap .col-xs-11,.mec-wrap .col-xs-12,.mec-wrap .col-xs-2,.mec-wrap .col-xs-3,.mec-wrap .col-xs-4,.mec-wrap .col-xs-5,.mec-wrap .col-xs-6,.mec-wrap .col-xs-7,.mec-wrap .col-xs-8,.mec-wrap .col-xs-9{padding-left:15px;padding-right:15px}.mec-wrap .row{margin-left:-15px;margin-right:-15px}}.mec-container [class*=col-].alpha{padding-left:0}.mec-container [class*=col-].omega{padding-right:0}.mec-wrap .col-xs-1,.mec-wrap .col-xs-10,.mec-wrap .col-xs-11,.mec-wrap .col-xs-12,.mec-wrap .col-xs-2,.mec-wrap .col-xs-3,.mec-wrap .col-xs-4,.mec-wrap .col-xs-5,.mec-wrap .col-xs-6,.mec-wrap .col-xs-7,.mec-wrap .col-xs-8,.mec-wrap .col-xs-9{float:left}.mec-wrap .col-xs-12{width:100%}.mec-wrap .col-xs-11{width:91.66666666666666%}.mec-wrap .col-xs-10{width:83.33333333333334%}.mec-wrap .col-xs-9{width:75%}.mec-wrap .col-xs-8{width:66.66666666666666%}.mec-wrap .col-xs-7{width:58.333333333333336%}.mec-wrap .col-xs-6{width:50%}.mec-wrap .col-xs-5{width:41.66666666666667%}.mec-wrap .col-xs-4{width:33.33333333333333%}.mec-wrap .col-xs-3{width:25%}.mec-wrap .col-xs-2{width:16.666666666666664%}.mec-wrap .col-xs-1{width:8.333333333333332%}@media (min-width:768px){.mec-wrap .col-sm-1,.mec-wrap .col-sm-10,.mec-wrap .col-sm-11,.mec-wrap .col-sm-12,.mec-wrap .col-sm-2,.mec-wrap .col-sm-3,.mec-wrap .col-sm-4,.mec-wrap .col-sm-5,.mec-wrap .col-sm-6,.mec-wrap .col-sm-7,.mec-wrap .col-sm-8,.mec-wrap .col-sm-9{float:left}.mec-wrap .col-sm-12{width:100%}.mec-wrap .col-sm-11{width:91.66666666666666%}.mec-wrap .col-sm-10{width:83.33333333333334%}.mec-wrap .col-sm-9{width:75%}.mec-wrap .col-sm-8{width:66.66666666666666%}.mec-wrap .col-sm-7{width:58.333333333333336%}.mec-wrap .col-sm-6{width:50%}.mec-wrap .col-sm-5{width:41.66666666666667%}.mec-wrap .col-sm-4{width:33.33333333333333%}.mec-wrap .col-sm-3{width:25%}.mec-wrap .col-sm-2{width:16.666666666666664%}.mec-wrap .col-sm-1{width:8.333333333333332%}}@media (min-width:961px){.mec-wrap .col-md-1,.mec-wrap .col-md-10,.mec-wrap .col-md-11,.mec-wrap .col-md-12,.mec-wrap .col-md-2,.mec-wrap .col-md-3,.mec-wrap .col-md-4,.mec-wrap .col-md-5,.mec-wrap .col-md-6,.mec-wrap .col-md-7,.mec-wrap .col-md-8,.mec-wrap .col-md-9{float:left}.mec-wrap .col-md-12{width:100%}.mec-wrap .col-md-11{width:91.66666666666666%}.mec-wrap .col-md-10{width:83.33333333333334%}.mec-wrap .col-md-9{width:75%}.mec-wrap .col-md-8{width:66.66666666666666%}.mec-wrap .col-md-7{width:58.333333333333336%}.mec-wrap .col-md-6{width:50%}.mec-wrap .col-md-5{width:41.66666666666667%}.mec-wrap .col-md-4{width:33.33333333333333%}.mec-wrap .col-md-3{width:25%}.mec-wrap .col-md-2{width:16.666666666666664%}.mec-wrap .col-md-1{width:8.333333333333332%}}@media (min-width:1200px){.mec-wrap .col-lg-1,.mec-wrap .col-lg-10,.mec-wrap .col-lg-11,.mec-wrap .col-lg-12,.mec-wrap .col-lg-2,.mec-wrap .col-lg-3,.mec-wrap .col-lg-4,.mec-wrap .col-lg-5,.mec-wrap .col-lg-6,.mec-wrap .col-lg-7,.mec-wrap .col-lg-8,.mec-wrap .col-lg-9{float:left}.mec-wrap .col-lg-12{width:100%}.mec-wrap .col-lg-11{width:91.66666666666666%}.mec-wrap .col-lg-10{width:83.33333333333334%}.mec-wrap .col-lg-9{width:75%}.mec-wrap .col-lg-8{width:66.66666666666666%}.mec-wrap .col-lg-7{width:58.333333333333336%}.mec-wrap .col-lg-6{width:50%}.mec-wrap .col-lg-5{width:41.66666666666667%}.mec-wrap .col-lg-4{width:33.33333333333333%}.mec-wrap .col-lg-3{width:25%}.mec-wrap .col-lg-2{width:16.666666666666664%}.mec-wrap .col-lg-1{width:8.333333333333332%}}#mec_woo_add_to_cart_btn{min-width:170px;margin-top:5px;text-align:center}.mec-breadcrumbs{border-radius:2px;padding:9px 15px 6px;font-size:11px;color:#8d8d8d;letter-spacing:0;text-transform:none;font-weight:500;margin:auto 15px 33px 15px;border:1px solid #e6e6e6;box-shadow:0 2px 0 0 rgba(0,0,0,.025)}.mec-breadcrumbs-modern{margin:auto 0 33px 0}.mec-breadcrumbs a{color:#000;padding-left:4px}.mec-breadcrumbs a:hover{text-decoration:underline}.mec-breadcrumbs i{font-size:8px;margin:0 0 0 4px}.mec-breadcrumbs .container{padding-left:20px}.mec-content-notification a{margin-left:5px}.mec-content-notification{background:#f7f7f7;padding:10px 10px 10px;border:1px solid #e8e8e8}.mec-content-notification p{margin-bottom:0}#mec-advanced-wraper div:first-child>ul{display:block;margin:5px 0;padding:5px 0;width:430px;border:1px solid #e1e2e3;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.05)}#mec-advanced-wraper div:first-child>ul span{display:none}#mec-advanced-wraper div:first-child>ul *{display:inline-block;background:#fff;font-size:12px;color:#717273;text-align:center}#mec-advanced-wraper div:first-child>ul>li{width:60px;font-weight:700;margin:0 10px 0 0;padding:4px 0;border-right:1px solid #e1e2e3}#mec-advanced-wraper div:first-child>ul>ul>li{margin:0;padding:2px 10px;cursor:pointer;border-radius:2px;transition:all .18s ease}#mec-advanced-wraper div:first-child>ul>ul>li:hover,.mec-active{background:#008aff!important;color:#fff!important}.mec-search-bar-wrap .mec-search-form .mec-text-input-search{width:83%}.mec-search-bar-wrap .mec-search-form .mec-ajax-search-result .mec-text-input-search{width:100%;float:none}.mec-search-bar-wrap input#mec-search-bar-input{width:calc(100% - 84%);margin-left:11px;background:#40d9f1;Color:#fff;font-weight:400}.mec-text-input-search+input#mec-search-bar-input{margin-left:-3px}.mec-search-bar-wrap input#mec-search-bar-input:hover{background:#000}.mec-wrap.mec-search-bar-wrap .mec-totalcal-box input{float:none}@media(max-width:768px){.mec-search-bar-wrap .mec-search-form .mec-text-input-search{display:inline-block}}@media(max-width:480px){.mec-search-bar-wrap .mec-search-form .mec-text-input-search{width:64%}.mec-search-bar-wrap input#mec-search-bar-input{width:calc(100% - 67%)}}.mec-wrap.mec-search-bar-wrap .mec-totalcal-box{overflow:visible}.mec-ajax-search-result{position:relative}.mec-search-bar-wrap.mec-wrap .mec-totalcal-box input[type=text]{width:calc(100% - 36px)}.mec-search-bar-wrap.mec-wrap .mec-totalcal-box input[type=text]:focus{border-color:#efefef}div#mec-ajax-search-result-wrap{position:absolute;top:100%;opacity:0;visibility:hidden;width:calc(100% - 2px);min-height:50px;left:0;right:0;padding:0 10px;z-index:9999;transition:all .3s ease}.mec-ajax-search-result-events{background:#fff;padding:10px 20px;border:1px solid #efefef;border-top:none}.mec-ajax-search-result-events article:first-of-type{border:none}article.mec-search-bar-result{text-align:left;margin-bottom:0;padding-bottom:25px;padding-top:26px;border-top:1px solid #efefef;transition:all .33s ease;clear:both}.mec-search-bar-result .mec-event-list-search-bar-date{width:64px;height:64px;margin-right:10px;font-size:11px;text-transform:uppercase;float:left;text-align:center;padding-top:2px}.mec-search-bar-result .mec-event-list-search-bar-date span{font-size:40px;line-height:30px;font-weight:700;display:block;margin-bottom:6px;letter-spacing:1px}.mec-search-bar-result .mec-event-image{float:left;margin-right:20px;width:65px;height:auto}.mec-search-bar-result .mec-event-time{font-size:11px;line-height:1.1;margin:0}.mec-search-bar-result .mec-event-time i{color:#40d9f1;float:none;width:unset;height:unset;font-size:inherit;margin-right:3px;border:none;padding:0}.mec-search-bar-result .mec-event-title{font-size:13px;padding:0;margin:10px 0 8px;font-weight:700;text-transform:uppercase}.mec-search-bar-result .mec-event-title a{text-decoration:none;color:#494949;transition:color .3s ease}.mec-search-bar-result .mec-event-detail{font-size:13px;line-height:1.3;font-family:Roboto,sans-serif;color:#9a9a9a;margin-bottom:0}.mec-wrap.mec-modern-search-bar .mec-totalcal-box{background:rgba(255,255,255,.87);border:none;padding:35px;border-radius:3px;box-shadow:0 3px 13px rgba(0,0,0,.4);position:relative}.mec-wrap.mec-modern-search-bar .mec-totalcal-box input[type=search],.mec-wrap.mec-modern-search-bar .mec-totalcal-box input[type=text]{height:58px;background:rgba(255,255,255,.99);border-radius:2px;box-shadow:0 4px 8px rgba(0,0,0,.1) inset;border:1px solid #ccc;width:100%;padding-left:45px;padding-right:13px;font-size:16px}.mec-wrap.mec-modern-search-bar .mec-totalcal-box .mec-text-input-search i{position:absolute;background:0 0;border:none;font-size:21px;left:15px;top:calc(50% - 19px);color:#40d9f1}.mec-wrap.mec-modern-search-bar .mec-text-input-search{position:relative;height:58px}.mec-wrap.mec-modern-search-bar .mec-totalcal-box input[type=submit]{height:58px;border:none;border-radius:2px;background:#fc4a1a;font-size:17px;font-weight:700!important}.mec-wrap.mec-modern-search-bar .mec-text-input-search+input#mec-search-bar-input{margin-left:0}.mec-wrap.mec-modern-search-bar .mec-search-form .mec-dropdown-wrap .mec-dropdown-search select{height:45px;background:rgba(255,255,255,.99);border-radius:2px;box-shadow:0 4px 8px rgba(0,0,0,.1) inset;border:1px solid #ccc;padding-right:13px;font-size:16px;border-left:0}.mec-wrap.mec-modern-search-bar .mec-search-form .mec-dropdown-wrap i{height:45px;background:rgba(255,255,255,.99);border-radius:2px;box-shadow:0 4px 8px rgba(0,0,0,.1) inset;border:1px solid #ccc;font-size:15px;padding-top:14px;border-right:0;color:#40d9f1}.mec-wrap.mec-modern-search-bar .mec-search-form .mec-dropdown-wrap{min-height:64px}@media(max-width:768px){.mec-wrap.mec-modern-search-bar .mec-search-form .mec-text-input-search{width:70%}.mec-wrap.mec-modern-search-bar input#mec-search-bar-input{width:calc(100% - 72%)}}@media(max-width:480px){.mec-wrap.mec-modern-search-bar input#mec-search-bar-input{width:92%;padding:0 10px;position:relative;display:block;margin-left:11px}.mec-wrap.mec-modern-search-bar .mec-search-form .mec-text-input-search{width:100%;margin-bottom:20px}.mec-wrap.mec-modern-search-bar .mec-text-input-search+input#mec-search-bar-input{margin-left:10px}}.mec-related-events-wrap{margin-top:50px}.mec-related-events-wrap h3.mec-rec-events-title:before{content:"";background:#2c2f34;width:46px;height:4px;position:absolute;top:59px;left:0}.mec-related-events-wrap h3.mec-rec-events-title{font-size:21px;font-weight:600;padding:17px 0;margin-bottom:28px;text-transform:uppercase;border-bottom:1px solid #e8e8e8;position:relative}.mec-related-event-post figure{margin:0}.mec-related-event-post figure img{width:100%}.mec-related-event-content{background-color:#fff;margin:-27px 30px 15px;position:relative;max-width:90%;padding:13px 21px 16px 19px}.mec-related-event-content h5 a{font-size:16px;color:#121212;font-weight:600;transition:all .3s ease}.mec-fes-form-cntt #mec-organizer-payments ul{list-style:none;background:0 0}.mec-fes-form-cntt #mec-organizer-payments ul li h4{background:0 0;letter-spacing:0;border-bottom:1px solid #e8e8e8;display:inline-block;padding-left:0!important;padding-bottom:10px!important;margin:0;margin-bottom:20px;letter-spacing:1px;text-transform:capitalize}.mec-fes-form-cntt #mec-organizer-payments ul>li{width:33%;display:inline-block;vertical-align:top;padding:0 30px}
|
1 |
+
.lity-container,.mec-wrap,.mec-wrap div:not([class^=elementor-]){font-family:Montserrat,Helvetica,Arial,sans-serif}.entry-content .mec-wrap h1,.entry-content .mec-wrap h2,.entry-content .mec-wrap h3,.entry-content .mec-wrap h4,.entry-content .mec-wrap h5,.entry-content .mec-wrap h6,.mec-wrap h1,.mec-wrap h2,.mec-wrap h3,.mec-wrap h4,.mec-wrap h5,.mec-wrap h6{font-family:Montserrat,Helvetica,Arial,sans-serif;color:#171c24;font-weight:300;font-style:inherit;letter-spacing:normal;clear:none}.mec-wrap h1{font-size:50px;line-height:1.16;margin-bottom:12px;letter-spacing:-1px}.mec-wrap h2{font-size:36px;line-height:1.14;margin-bottom:10px}.mec-wrap h3{font-size:28px;line-height:1.2;margin-bottom:8px}.mec-wrap h4{font-size:24px;line-height:1.2;margin-bottom:10px}.mec-wrap h5{font-size:18px;line-height:1.3;margin-bottom:7px}.mec-wrap h6{font-size:16px;line-height:1.3;margin-bottom:4px}.mec-wrap .subheader{color:#849098}.mec-wrap h1 strong{font-weight:700}.mec-wrap p{margin:0 0 20px 0;color:#616161;font-size:14px;line-height:1.8}.mec-wrap .mec-event-article .mec-color-hover{box-shadow:none;border:none}.mec-wrap abbr,.mec-wrap acronym{cursor:auto;border:none}.entry-content .mec-wrap a{box-shadow:none}.mec-wrap .button,.mec-wrap a.button:not(.owl-dot),.mec-wrap button:not(.owl-dot),.mec-wrap input[type=button],.mec-wrap input[type=reset],.mec-wrap input[type=submit]{position:relative;border:none;border-radius:0;color:#fff;display:inline-block;font-size:12px;letter-spacing:1px;line-height:1.5;text-transform:uppercase;font-weight:600;text-decoration:none;cursor:pointer;margin-bottom:21px;margin-right:10px;line-height:1;padding:18px 20px 16px;background:#39c36e;-webkit-transition:all .21s ease;-moz-transition:all .21s ease;transition:all .21s ease}.mec-wrap .button:hover,.mec-wrap a.button:hover,.mec-wrap button:hover,.mec-wrap input[type=button]:hover,.mec-wrap input[type=reset]:hover,.mec-wrap input[type=submit]:hover{background:#222;color:#fff}.mec-booking-form-container button{display:block!important}.vertical-space,.vertical-space1,.vertical-space2,.vertical-space3,.vertical-space4,.vertical-space5{display:block;width:100%;margin:0;clear:both;border:0 none;height:20px}.vertical-space2{height:40px}.vertical-space3{height:60px}.vertical-space4{height:80px}.vertical-space5{height:100px}@media only screen and (max-width:479px){.vertical-space,.vertical-space1{height:8px}.vertical-space2{height:14px}.vertical-space3{height:28px}.vertical-space4{height:40px}.vertical-space5{height:60px}}@media only screen and (max-width:960px){.vertical-space,.vertical-space1{height:12px}.vertical-space2{height:18px}.vertical-space3{height:36px}.vertical-space4{height:50px}.vertical-space5{height:80px}}.mec-wrap abbr{cursor:auto;border-bottom:0}@-webkit-keyframes rotating{from{-ms-transform:rotate(0);-moz-transform:rotate(0);-webkit-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0)}to{-ms-transform:rotate(360deg);-moz-transform:rotate(360deg);-webkit-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotating{from{-ms-transform:rotate(0);-moz-transform:rotate(0);-webkit-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0)}to{-ms-transform:rotate(360deg);-moz-transform:rotate(360deg);-webkit-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}.mec-wrap{font:14px/25px sans-serif;font-family:Montserrat,Helvetica,Arial,sans-serif;font-weight:400;color:#626262}.mec-wrap .mec-events a{border-bottom:none}.mec-wrap .mec-container a{box-shadow:none}.mec-event-content p{font-family:Roboto,sans-serif;font-weight:300}.mec-wrap .mec-clear:after,.mec-wrap .mec-clear:before{content:" ";display:table}.mec-wrap .mec-clear:after{clear:both}.mec-events-button{background:#fff;padding:12px 34px;font-size:13px;font-weight:400;letter-spacing:0;border:1px solid #e3e3e3;margin-right:10px;transition:.3s}.mec-wrap .mec-events-button:hover{color:#fff}.mec-no-event{display:none}#mec-active-current{display:block!important}.current-hide #mec-active-current{display:none!important}.mec-event-grid-classic .mec-event-article{position:relative;border:2px solid #e3e3e3;box-shadow:0 2px 0 0 rgba(0,0,0,.016);margin-bottom:30px;max-width:none}.mec-event-grid-classic .mec-event-content{background:#fff;color:#767676;padding:0 20px 5px;text-align:center;min-height:125px}.mec-event-grid-classic .mec-event-title{color:#202020;margin:10px 0;font-weight:700;font-size:20px;letter-spacing:1px;text-transform:uppercase}.mec-event-grid-classic .mec-event-title a{color:#202020;transition:all .24s ease}.mec-event-grid-classic .mec-event-date{font-weight:400;font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#fff;padding:3px 20px;margin:0 -20px 20px -20px;text-align:center}.mec-event-grid-classic .mec-event-content p{font-size:15px;color:#8a8a8a}.mec-event-grid-classic .mec-event-detail{display:none}.mec-event-grid-classic img{margin-bottom:0;width:100%}.mec-event-footer{position:relative;border-top:1px solid #efefef;padding:20px;min-height:80px;margin:0;background:#fafafa}.mec-event-sharing-wrap{left:15px;position:absolute;list-style:none;margin:0}.mec-event-sharing-wrap .mec-event-sharing{position:absolute;padding:8px 0 2px;left:-6px;bottom:54px;margin:0;margin-top:6px;border-radius:5px;width:50px;visibility:hidden;opacity:0;border:1px solid #e2e2e2;background:#fff;box-shadow:0 0 9px 0 rgba(0,0,0,.06);z-index:99;-webkit-transition:all .18s ease;transition:all .18s ease}.mec-event-sharing-wrap .mec-event-sharing:after,.mec-event-sharing-wrap .mec-event-sharing:before{content:'';display:block;position:absolute;bottom:-10px;left:50%;margin-left:-10px;width:0;height:0;border-style:solid;border-width:10px}.mec-event-sharing-wrap .mec-event-sharing:before{bottom:-21px;border-color:#e2e2e2 transparent transparent transparent}.mec-event-sharing-wrap .mec-event-sharing:after{bottom:-19px;border-color:#fff transparent transparent transparent}.mec-event-sharing-wrap:hover .mec-event-sharing{opacity:1;visibility:visible}.mec-event-sharing-wrap li{text-align:center;border:0;display:block;margin-right:2px;overflow:hidden;margin:0 auto 6px;width:38px}.mec-event-sharing-wrap:hover>li{cursor:pointer;background-color:#40d9f1}.mec-event-sharing-wrap:hover li a{color:#fff}.mec-event-sharing-wrap>li:first-of-type{border:1px solid #d9d9d9}.mec-event-sharing-wrap li a,.mec-event-sharing-wrap:hover li ul li a{border:none;color:#767676}.mec-event-sharing-wrap li i{width:36px;height:36px;display:table-cell;vertical-align:middle}.mec-event-sharing-wrap .mec-event-sharing li a{display:block}.mec-event-sharing-wrap .mec-event-sharing li:hover a{color:#40d9f1}.mec-event-sharing .mec-event-share:hover .event-sharing-icon{background:#40d9f1;border-width:0 1px 0;cursor:pointer}.mec-event-sharing .mec-event-map{border-width:1px 0 1px}.mec-event-footer .mec-booking-button{box-shadow:none;transition:all .21s ease;font-size:11px;font-weight:500;letter-spacing:1px;text-transform:uppercase;background:#fff;color:#767676;border:1px solid #e8e8e8;position:absolute;top:20px;right:15px;padding:0 16px;line-height:37px;height:38px}.mec-event-footer .mec-booking-button:hover{background:#191919;color:#fff;border-color:#191919}@media only screen and (max-width:960px){.mec-event-grid-classic{margin-bottom:30px}}.mec-widget .mec-event-grid-classic.mec-owl-carousel{padding:36px 0 16px}.mec-widget .mec-event-grid-classic.mec-owl-carousel .owl-nav{margin:5px 0;width:100%;position:absolute;top:15px;padding:0}.mec-skin-grid-container.mec-widget{padding-top:18px}.mec-widget .mec-event-grid-classic.mec-owl-carousel{padding:20px 0 16px}.mec-widget .mec-event-grid-classic.mec-owl-carousel .owl-nav{margin:0;width:100%;position:absolute;top:0;padding:0}.mec-widget .mec-event-grid-classic.mec-owl-carousel .owl-nav div{position:absolute;background:#fff;line-height:0;width:34px;height:26px;padding:6px;text-align:center;margin-top:-17px;border-radius:3px;border:1px solid #e2e2e2;text-align:center;box-shadow:0 2px 0 0 rgba(0,0,0,.028);transition:all .33s ease}.mec-widget .mec-event-grid-classic.mec-owl-carousel .owl-nav i{font-size:12px;color:#40d9f1;cursor:pointer}.mec-widget .mec-event-grid-classic.mec-owl-carousel .owl-nav .owl-next{right:0}.mec-widget .mec-event-grid-classic.mec-owl-carousel .owl-nav .owl-prev{left:0}.mec-widget .mec-event-grid-classic.mec-owl-carousel .mec-event-sharing{display:none}.mec-widget .mec-event-grid-classic.mec-owl-carousel .mec-event-footer{text-align:center}.mec-widget .mec-event-grid-classic.mec-owl-carousel .mec-event-footer .mec-booking-button{position:static;padding:11px 16px}.widget .mec-event-footer ul.mec-event-sharing-wrap li a.mec-event-share-icon{padding:0}@media screen and (min-width:56.875em){.mec-widget .mec-month-container dl{margin-bottom:0}}.mec-widget .mec-event-grid-classic.owl-carousel .mec-event-footer{text-align:right}.mec-widget .mec-event-grid-classic.owl-carousel .mec-event-sharing-wrap{left:5px;padding-left:5px}.mec-widget .mec-event-grid-classic.owl-carousel .mec-event-sharing-wrap .mec-event-sharing{left:0}.mec-widget .mec-event-sharing-wrap .mec-event-sharing{position:absolute;top:auto;bottom:52px;margin:0;margin-top:0;border-radius:5px}.mec-widget .mec-event-sharing-wrap .mec-event-sharing:after{top:auto;bottom:-17px;border-color:#fff transparent transparent transparent}.mec-widget .mec-event-sharing-wrap .mec-event-sharing:before{top:auto;bottom:-18px;border-color:#e2e2e2 transparent transparent transparent}.mec-event-grid-clean{margin-bottom:10px;max-width:none}.mec-event-grid-clean .mec-event-article{margin-bottom:30px;position:relative;border:1px solid #e2e2e2;text-align:center;padding:15px 15px 0;background:#fff;box-shadow:0 2px 0 0 rgba(0,0,0,.016)}.mec-event-grid-clean .mec-event-content{background:#fff;color:#767676;padding:25px 16px 0;text-align:left}.mec-event-grid-clean .mec-event-title{color:#202020;margin:0 0 10px 0;font-weight:700;font-size:21px;text-transform:capitalize}.mec-event-grid-clean .mec-event-title a{color:#202020;transition:all .24s ease}.mec-event-grid-clean .mec-event-date{font-weight:400;font-size:11px;text-transform:uppercase;letter-spacing:1px;background-color:#40d9f1;color:#fff;padding:3px 0;margin:0;text-align:center}.mec-event-grid-clean .mec-event-content p{font-size:15px;color:#9a9a9a;line-height:1.54}.mec-event-grid-clean img{margin-bottom:0;width:100%}.mec-event-grid-clean .event-grid-t2-head{margin-bottom:10px;color:#fff;padding:9px 14px 6px;text-align:left}.mec-event-grid-clean .event-grid-t2-head .mec-event-date{font-size:50px;line-height:50px;float:left;margin-right:11px}.mec-event-grid-clean .event-grid-t2-head .mec-event-month{text-transform:uppercase;font-size:17px;line-height:20px;padding-top:4px}.mec-event-grid-clean .event-grid-t2-head .mec-event-detail{font-size:12px}.mec-event-grid-clean .mec-event-sharing-wrap{left:0}.mec-event-grid-clean .mec-event-footer{position:relative;border-top:2px solid;padding:20px 0;margin:0 14px;text-align:left;background:0 0}.mec-event-grid-clean .mec-event-footer .mec-booking-button{right:0}.mec-event-grid-clean .row{margin-bottom:30px}.mec-event-grid-modern{margin-bottom:10px;max-width:none}.mec-event-grid-modern .mec-event-article{position:relative;border:1px solid #e2e2e2;text-align:center;margin-bottom:30px;padding:45px 15px 10px;background:#fff;box-shadow:0 2px 0 0 rgba(0,0,0,.016)}.mec-event-grid-modern .mec-event-content{background:#fff;color:#767676;padding:35px 15px 10px;text-align:left}.mec-event-grid-modern .mec-event-title{color:#202020;margin:0 0 10px 0;font-weight:700;font-size:24px;text-transform:none;letter-spacing:-1px}.mec-event-grid-modern .mec-event-title a{color:#202020;transition:all .24s ease}.mec-event-grid-modern .mec-event-content p{font-size:15px;color:#9a9a9a;line-height:1.54}.mec-event-grid-modern img{margin-bottom:0;width:100%}.mec-event-grid-modern .event-grid-modern-head{margin-bottom:10px;padding:9px 14px 6px;text-align:left}.mec-event-grid-modern .event-grid-modern-head .mec-event-date{font-size:50px;line-height:50px;float:left;margin-right:11px}.mec-event-grid-modern .event-grid-modern-head .mec-event-month{text-transform:uppercase;font-size:17px;line-height:20px;padding-top:4px}.mec-event-grid-modern .event-grid-modern-head .mec-event-detail{font-size:12px}.mec-event-grid-modern .event-grid-modern-head .mec-event-day{margin-top:9px;color:silver;font-family:Roboto,sans-serif;font-size:35px;font-weight:100;text-transform:uppercase;letter-spacing:-1px}.mec-event-grid-modern .mec-event-footer{position:relative;height:90px;padding:20px 0;border:none;margin:0 14px;text-align:left;background:0 0}.mec-event-grid-modern .mec-event-footer .mec-booking-button{right:auto;left:0}.mec-event-grid-modern .mec-event-sharing-wrap{left:auto;right:0}.mec-event-grid-modern .mec-event-sharing{left:auto;right:-6px}.mec-event-grid-modern .mec-event-sharing-wrap li{border-radius:55px}.mec-event-grid-modern .row{margin-bottom:0}@media only screen and (max-width:479px){.mec-event-grid-modern .mec-event-article{padding-bottom:30px}.mec-event-grid-modern .mec-event-sharing{top:60px;left:0;right:auto}.mec-event-grid-modern .mec-event-footer .mec-booking-button{top:0}}.mec-event-title-soldout .soldout{background:#de3120;padding:4px 5px;color:#fff}.mec-event-title-soldout .soldout{background:#de3120;position:relative;top:-2px;border-radius:10px 0 0 20px;padding:2px 4px 2px 10px;color:#fff}.mec-event-title-soldout .soldout:before{content:' ';position:absolute;width:0;height:0;border-top:10px solid #de3120;border-bottom:10px solid #de3120;right:-10px;border-right:10px solid transparent;border-left:10px solid transparent;top:0}.mec-event-title-soldout .soldout:after{content:' ';position:absolute;width:6px;height:6px;background:#de3120;border-radius:50%;left:3px;top:4px;border:2px dashed #fff}.mec-event-grid-colorful .mec-event-article{min-height:400px;border:none;box-shadow:none;background:#40d9f1;padding-top:25px;margin:0;color:#fff}.mec-event-grid-colorful .mec-event-content{background:0 0}.mec-event-grid-colorful .event-grid-modern-head,.mec-event-grid-colorful .event-grid-modern-head .mec-event-date,.mec-event-grid-colorful .event-grid-modern-head .mec-event-day,.mec-event-grid-colorful .mec-event-content p,.mec-event-grid-colorful .mec-event-sharing-wrap>li>a,.mec-event-grid-colorful .mec-event-title a{color:#fff}.mec-event-grid-colorful .mec-event-footer .mec-booking-button{border:none}.mec-event-grid-colorful .mec-event-sharing-wrap>li{border-color:#fff}.mec-event-grid-colorful .mec-event-sharing-wrap:hover>li{background:#333;border-color:#333}.mec-event-grid-colorful .mec-event-title a.mec-color-hover:hover{color:#fff;text-decoration:underline}.mec-event-grid-colorful .mec-event-title .event-color{display:none}.mec-event-grid-colorful div[class^=col-md-]{padding:0 1px 1px 0;margin:0}@media only screen and (min-width:768px){.mec-wrap.mec-sm959.mec-event-grid-colorful .event-grid-modern-head .mec-event-day{font-size:26px}.mec-wrap.mec-sm959.mec-event-grid-colorful .event-grid-modern-head .mec-event-month{font-size:15px}.mec-wrap.mec-sm959.mec-event-grid-colorful .event-grid-modern-head .mec-event-date{font-size:50px}.mec-wrap.mec-sm959.mec-event-grid-colorful .mec-event-title{font-size:21px}.mec-wrap.mec-sm959.mec-event-grid-colorful .mec-event-content p{font-size:13px}}@media only screen and (min-width:768px) and (max-width:1200px){.mec-wrap.mec-sm959.mec-event-grid-colorful div[class^=col-md-]{width:50%}}.mec-event-list-minimal .mec-event-article{border-bottom:1px solid #efefef;padding:24px 0 16px}.mec-event-list-minimal .mec-wrap .col-md-9{padding:0}.mec-event-list-minimal .mec-event-date{position:relative;float:left;margin-right:30px;color:#fff;width:52px;padding:6px 4px 3px;text-align:center;text-transform:uppercase;border-radius:3px}.mec-event-list-minimal .mec-event-date span{display:block;font-size:24px;font-weight:700;text-align:center;margin-bottom:4px}.mec-event-list-minimal .mec-event-date:after{display:block;content:"";position:absolute;width:50px;left:1px;top:1px;height:30px;background:rgba(255,255,255,.1);box-shadow:0 4px 4px rgba(0,0,0,.02)}.mec-event-list-minimal .mec-event-title{margin-top:0;margin-bottom:10px;font-weight:700;font-size:18px;text-transform:uppercase;letter-spacing:0;padding-top:5px}.mec-event-list-minimal .mec-event-detail{font-size:15px;font-weight:300;line-height:1;letter-spacing:0;color:#9a9a9a;font-family:Roboto,sans-serif}.mec-event-list-minimal .btn-wrapper{text-align:right;padding-right:0;padding-top:6px}.mec-event-list-minimal .btn-wrapper .mec-detail-button{border-bottom:0;margin-bottom:14px;margin-right:0;box-shadow:none}.mec-event-list-minimal a.mec-detail-button{text-align:center;display:inline-block;background:#ededed;color:#191919;padding:12px;border-radius:2px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:2px;transition:all .24s ease}.mec-event-list-minimal a.mec-detail-button:hover{background:#292929;color:#fff}.vc_col-sm-4 .mec-event-list-minimal .mec-event-date,.vc_col-sm-6 .mec-event-list-minimal .mec-event-date{margin-right:12px}.vc_col-sm-4 .mec-event-list-minimal .mec-event-title,.vc_col-sm-6 .mec-event-list-minimal .mec-event-title{font-size:15px;letter-spacing:2px}@media only screen and (min-width:480px) and (max-width:767px){.mec-event-list-minimal .btn-wrapper{padding-left:0}.mec-event-list-minimal .mec-event-date{margin-right:10px}}@media only screen and (max-width:767px){.mec-event-list-minimal .btn-wrapper .mec-detail-button{display:block;text-align:center;margin:0;margin-top:16px;padding:8px}.mec-event-list-minimal .btn-wrapper{margin:12px 0}}@media only screen and (max-width:479px){.mec-event-list-minimal .mec-event-date{float:none;width:100%;margin-bottom:8px}.mec-event-list-minimal .mec-event-date span{display:inline;padding-right:25px;margin-right:7px;font-size:inherit}.mec-event-list-minimal .mec-event-date:after{width:45%;box-shadow:4px 0 4px rgba(0,0,0,.02)}.mec-event-list-minimal .btn-wrapper{text-align:center;padding-left:0}.mec-event-list-minimal{text-align:center}.mec-event-list-minimal .mec-event-detail{margin-bottom:10px}}.mec-wrap .mec-event-list-modern .mec-event-title{margin-top:0;margin-bottom:10px}.mec-event-list-modern .mec-event-article{border-bottom:1px solid #efefef;padding:30px 0 10px}.mec-event-list-modern .mec-event-article:last-child{border-bottom:none}.mec-event-list-modern .mec-event-title a{color:#191919;transition:all .24s ease;box-shadow:none}.mec-event-list-modern .mec-event-date{text-transform:uppercase;padding:10px 0}.mec-event-list-modern .mec-event-date .event-d{font-size:48px;display:table-cell;padding:10px 0 0}.mec-event-list-modern .mec-event-date .event-f{font-size:13px;display:table-cell;vertical-align:middle;padding-left:7px;font-weight:500;letter-spacing:3px;color:#777}.mec-event-list-modern .mec-event-detail{font-weight:300;color:#8a8a8a}.mec-event-list-modern .mec-event-date .event-da{margin-top:9px;color:silver;font-family:Roboto,sans-serif;font-size:28px;font-weight:100;text-transform:uppercase;letter-spacing:-1px}.mec-event-list-modern .mec-btn-wrapper .mec-booking-button{border-radius:1px;letter-spacing:2px;border:1px solid #e6e6e6;color:#333;background-color:#fff;padding:13px 20px;font-weight:700;font-size:11px;box-shadow:0 2px 0 0 rgba(0,0,0,.016);transition:all .28s ease}.mec-event-list-modern .mec-btn-wrapper .mec-booking-button:hover{border-color:#222;background:#222;color:#fff}.mec-event-list-modern .mec-event-title{font-weight:700;font-size:20px;text-transform:uppercase;letter-spacing:1px}.mec-event-list-modern .mec-event-detail{color:#9a9a9a;font-size:15px;font-weight:300;line-height:25px;font-family:Roboto,sans-serif}.mec-event-list-modern .mec-btn-wrapper{text-align:right;padding:10px 0;text-transform:uppercase}.mec-event-list-modern .mec-event-sharing{position:relative;margin:10px 0}.mec-event-list-modern .mec-event-sharing>li{display:inline-block;border:none;border-radius:50%;margin-right:3px}.mec-event-list-modern .mec-event-sharing>li:hover{display:inline-block}.mec-event-list-modern .mec-event-sharing>li:hover a i{color:#fff;background:#40d9f1;border-color:#40d9f1}.mec-event-list-modern .mec-event-sharing>li i{width:36px;display:inline-block;line-height:35px;color:#767676;text-align:center;border-radius:50%;border:1px solid #ddd;font-size:14px}.mec-event-list-modern .mec-event-sharing .mec-event-share:hover .mec-event-sharing-icon{background:#40d9f1;border-color:#40d9f1;cursor:pointer;border-radius:50%}.mec-event-list-modern .mec-event-sharing li:hover a i{background:#40d9f1}@media only screen and (min-width:768px){.mec-event-list-modern .mec-event-article{position:relative;min-height:160px;overflow:hidden}.mec-event-list-modern .col-md-2.col-sm-2{width:210px;position:absolute;left:0;top:20px}.mec-event-list-modern .col-md-4.col-sm-4.mec-btn-wrapper{width:180px;padding:0;position:absolute;right:0;top:30%}.mec-event-list-modern .col-md-6.col-sm-6{width:100%;padding-left:225px;padding-right:195px}}@media only screen and (max-width:767px){.mec-event-list-modern .mec-btn-wrapper .mec-booking-button{letter-spacing:1px;border:1px solid #e1e1e1;padding:8px 16px}.mec-event-list-modern .mec-btn-wrapper{padding:0 0 12px}.mec-event-list-modern .mec-event-sharing{margin-bottom:0}}.mec-event-grid-minimal .mec-event-article{margin:15px 0;min-height:80px;display:table}.mec-event-grid-minimal .event-detail-wrap{display:table-cell;vertical-align:middle}.mec-event-grid-minimal .mec-event-date{width:70px;float:left;margin-right:20px;padding:12px 16px 10px;text-align:center;text-transform:uppercase;border-radius:4px;border:1px solid #e6e6e6;transition:all .37s ease-in-out;box-shadow:0 2px 0 0 rgba(0,0,0,.016)}.mec-event-grid-minimal .mec-event-date span{display:block;font-size:24px;font-weight:700;text-align:center;margin-bottom:4px;color:#2a2a2a;transition:color .3s ease}.mec-event-grid-minimal .mec-event-title{margin-top:0;margin-bottom:10px;font-weight:700;line-height:21px;font-size:16px;text-transform:uppercase;transition:color .3s ease}.mec-event-grid-minimal .mec-event-title a{color:#191919;transition:color .3s ease}.mec-event-grid-minimal .mec-event-detail{font-size:15px;font-weight:300;line-height:1;letter-spacing:0;color:#9a9a9a;font-family:Roboto,sans-serif}.mec-event-grid-minimal .mec-event-date:hover{color:#fff}.mec-event-grid-minimal .mec-event-date:hover span{color:#fff}.mec-event-list-classic .mec-event-article{padding:12px 0;margin-bottom:20px}.mec-event-list-classic .mec-event-image{float:left;width:86px;margin-right:20px}.mec-event-list-classic .mec-event-date{font-weight:400;font-size:13px;letter-spacing:0;line-height:18px}.mec-event-list-classic .mec-event-date span{font-weight:500;margin-bottom:6px}.mec-event-list-classic .mec-event-title{font-size:15px;margin:10px 0 12px;font-weight:700;text-transform:uppercase}.mec-event-list-classic .mec-event-title a{color:#494949;transition:color .3s ease}.mec-event-list-classic .mec-event-detail{color:#777;font-weight:400;line-height:12px;font-size:12px;overflow:hidden}.mec-event-list-classic a.magicmore{padding:10px 16px;color:#fff;background:#222;letter-spacing:2px;font-size:11px}.mec-event-list-classic a.magicmore:after{content:"";display:none}.mec-event-list-classic a.magicmore:hover{color:#40d9f1}.mec-event-grid-simple .mec-event-article{position:relative;margin-bottom:30px}.mec-event-grid-simple .mec-event-article:after{border-right:1px solid #e6e6e6;height:60px;position:absolute;top:50%;margin-top:-30px;right:-1px}.mec-event-grid-simple .row div:last-child .mec-event-article:after{border:none}.mec-event-grid-simple .row{margin:15px 0 30px;text-align:center}.mec-event-grid-simple .mec-event-date{padding:0;margin:0;text-transform:capitalize;font-size:12px;font-weight:700}.mec-event-grid-simple .mec-event-title{margin-top:0;margin-bottom:10px;font-weight:700;line-height:21px;font-size:15px;padding-top:5px;text-transform:uppercase;transition:color .37s ease}.mec-event-grid-simple .mec-event-title a{color:#494949;transition:color .3s ease}.mec-event-grid-simple .mec-event-detail{font-family:Roboto,sans-serif;font-weight:400;line-height:1;letter-spacing:0;font-size:13px;color:#777}.mec-event-grid-simple:hover .mec-event-title{color:#40d9f1}.mec-event-grid-simple:hover .mec-event-date{background:0 0}.event-last:after{display:none}@media only screen and (max-width:767px){.mec-event-grid-simple .mec-event-article{padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid #eee}.mec-event-grid-simple .mec-event-article:after{border:none}}.mec-event-grid-novel .mec-event-article{position:relative;margin-bottom:30px;padding:60px 5% 60px 7%;border:1px solid rgba(255,255,255,.12);border-radius:10px;background-color:#0050fd;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease;z-index:1}.mec-event-grid-novel .mec-event-article .novel-grad-bg{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:10px;opacity:0;z-index:-1;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.mec-event-grid-novel .mec-event-article:hover{-webkit-box-shadow:0 13px 36px 0 rgba(0,0,0,.23);box-shadow:0 13px 36px 0 rgba(0,0,0,.23);border-color:transparent}.mec-event-grid-novel .mec-event-article:hover .novel-grad-bg{background-image:-webkit-gradient(linear,left top,right top,from(#262e32),to(#0e1015));background-image:-webkit-linear-gradient(left,#262e32 0,#0e1015 100%);background-image:-o-linear-gradient(left,#262e32 0,#0e1015 100%);background-image:linear-gradient(90deg,#262e32 0,#0e1015 100%);opacity:1}.mec-event-grid-novel .mec-event-image{float:left;width:150px;height:150px}.mec-event-grid-novel .mec-event-image img{width:150px;height:150px;border-radius:50%}.mec-event-grid-novel .mec-event-detail-wrap{margin-left:200px}.mec-event-grid-novel .mec-event-content h4{position:relative;margin-bottom:10px;display:inline-block}.mec-event-grid-novel .mec-event-content h4 a{font-size:24px;line-height:35px;color:#fafcff}.mec-event-grid-novel .mec-event-content h4::before{content:'';position:absolute;top:8px;left:-30px;width:17px;height:17px;background:#5cd0ed;opacity:.4;border-radius:50%}.mec-event-grid-novel .mec-event-content h4::after{content:'';position:absolute;top:12px;left:-26px;width:9px;height:9px;background:#5cd0ed;border-radius:50%}.mec-event-grid-novel .mec-event-address,.mec-event-grid-novel .mec-event-detail,.mec-event-grid-novel .mec-event-month{position:relative;padding-left:35px;font-size:15px;line-height:30px;color:rgba(255,255,255,.4)}.mec-event-grid-novel .mec-event-address::before,.mec-event-grid-novel .mec-event-detail::before,.mec-event-grid-novel .mec-event-month::before{position:absolute;top:6px;left:6px;font-size:17px;font-family:simple-line-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1}.mec-event-grid-novel .mec-event-month::before{content:"\e075"}.mec-event-grid-novel .mec-event-detail::before{content:"\e081"}.mec-event-grid-novel .mec-event-address::before{content:"\e096"}.mec-event-grid-novel .mec-event-footer{clear:both;padding:20px 0;border-top:none;background:0 0}.mec-event-grid-novel .mec-event-footer .mec-booking-button{right:auto;left:0;height:42px;width:148px;padding:0 20px;font-size:14px;font-weight:400;line-height:42px;text-align:center;color:#fff;background:0 0;border-color:rgba(255,255,255,.1);border-radius:50px}.mec-event-grid-novel .mec-event-footer .mec-booking-button:hover{background-color:rgba(255,255,255,.1)}.mec-event-grid-novel .mec-event-sharing-wrap{left:175px;cursor:pointer}.mec-event-grid-novel .mec-event-sharing-wrap>li{border-color:rgba(255,255,255,.1);border-radius:50%}.mec-event-grid-novel .mec-event-sharing-wrap .mec-event-sharing{top:-5px;left:0;padding:5px 10px 2px 50px;min-width:150px;width:inherit;height:37px;background-color:rgba(255,255,255,.1);-webkit-box-shadow:none;box-shadow:none;border:none;border-radius:50px}.mec-event-grid-novel .mec-event-sharing-wrap:hover>li{background-color:rgba(255,255,255,.1)}.mec-event-grid-novel .mec-event-sharing-wrap .mec-event-sharing::after,.mec-event-grid-novel .mec-event-sharing-wrap .mec-event-sharing::before{display:none}.mec-event-grid-novel .mec-event-sharing .mec-event-social-icon,.mec-event-grid-novel .mec-event-sharing .mec-event-social-icon a,.mec-event-grid-novel .mec-event-sharing-wrap .mec-event-sharing li i{display:inline}.mec-event-grid-novel .mec-event-sharing .mec-event-social-icon a{padding:0 10px}.mec-event-grid-novel .mec-event-sharing-wrap>li a{color:#fff}.mec-event-grid-novel .mec-event-sharing-wrap .mec-event-sharing li a{color:rgba(255,255,255,.4)}.mec-event-grid-novel .mec-event-sharing-wrap .mec-event-sharing li a:hover{color:rgba(255,255,255,1)}@media only screen and (max-width:1200px){.mec-event-grid-novel .row .col-md-6.col-sm-6{width:100%;float:none}.mec-event-grid-novel .mec-event-image{float:none;margin-top:-20px;margin-bottom:20px}.mec-event-grid-novel .mec-event-detail-wrap{margin-left:20px}.mec-event-grid-novel .mec-event-footer{margin-top:30px}}@media only screen and (max-width:767px){.mec-event-grid-novel .mec-event-footer{margin-top:0;padding-top:30px;margin-bottom:24px}.mec-event-grid-novel .mec-event-footer .mec-booking-button{display:block;position:relative}.mec-event-grid-novel .mec-event-sharing-wrap{left:0;bottom:-55px}.mec-event-grid-novel .mec-event-content h4 a{font-size:20px;line-height:1.3}}.mec-event-cover-modern{position:relative}.mec-event-cover-modern .mec-event-cover-a{background:0 0;position:absolute;color:#fff;bottom:0;left:0;text-decoration:none}.mec-event-cover-modern .mec-event-cover-a .mec-event-overlay{transition:all .5s;opacity:.8;width:100%;height:100%;position:absolute}.mec-event-cover-modern .mec-event-cover-a:hover .mec-event-overlay{opacity:1}.mec-event-cover-modern .mec-event-detail{padding:40px;position:relative}.mec-event-cover-modern .mec-event-cover-a:hover .mec-event-tag{color:#333;transition:all .5s}.mec-event-cover-modern .mec-event-cover-a .mec-event-title:hover{text-decoration:underline}.mec-event-cover-modern .mec-event-tag{background:#fff;display:inline-block;padding:5px 9px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;margin-bottom:24px}.mec-event-cover-modern .mec-event-date{text-transform:uppercase;font-size:17px;font-weight:300}.mec-event-cover-modern .mec-event-title{color:#fff;text-transform:uppercase;font-size:40px;font-weight:700;margin:6px 0}.mec-event-cover-modern .mec-event-place{font-weight:400;font-size:18px;font-family:Roboto,sans-serif}@media only screen and (max-width:767px){.mec-event-cover-modern .mec-event-cover-a{width:100%}}.mec-event-cover-classic{position:relative;overflow:hidden;background:#fff;padding:6px;border:1px solid #e8e8e8}.mec-event-cover-classic .mec-event-overlay{position:absolute;left:6px;right:6px;bottom:6px;top:6px;width:auto;height:auto;background-color:rgba(36,36,36,.4);transition:all .33s ease-in-out}.mec-event-cover-classic:hover .mec-event-overlay{background-color:rgba(36,36,36,.6)}.mec-event-cover-classic .mec-event-content{font-size:15px;color:#fff;position:absolute;bottom:0;padding:50px 35px;transition:all .33s ease-in-out}.mec-event-cover-classic .mec-event-date{font-size:14px;text-transform:uppercase;font-weight:400;line-height:1.6}.mec-event-cover-classic .mec-event-date span{display:block;font-weight:700;font-size:16px}.mec-event-cover-classic .mec-event-title{color:#fff;margin:20px 0 38px;font-size:24px;font-weight:700;text-transform:uppercase;font-style:normal}.mec-event-cover-classic .mec-btn-wrapper{text-align:left}.mec-event-cover-classic .mec-event-icon{font-size:18px;float:left;margin-right:14px;color:#fff;padding:13px}.mec-event-cover-classic .mec-event-button{color:#fff;background-color:#191919;border:2px #191919 solid;padding:12px 20px;letter-spacing:3px;font-size:12px;font-weight:700;font-style:normal;transition:all .22s ease;text-decoration:none}.mec-event-cover-classic .mec-event-button:hover{color:#191919;background-color:#fff;border-color:#fff;border-radius:1px}.mec-event-cover-classic .mec-event-image img{min-width:100%}@media only screen and (max-width:960px){.mec-event-cover-classic .mec-event-content{padding:20px}.mec-event-cover-classic .mec-event-button{font-size:11px;padding:7px 10px;letter-spacing:1px}.mec-event-cover-classic .mec-event-title{font-size:19px;margin:15px 0 25px}.mec-event-cover-classic .mec-event-date{font-size:12px}}@media only screen and (max-width:767px){.mec-event-cover-classic{margin-bottom:30px}}@media only screen and (max-width:479px){.mec-event-cover-classic .mec-event-content{padding:15px;font-size:15px}.mec-event-cover-classic .mec-event-title{font-size:15px;margin:10px 0}.mec-event-cover-classic .mec-event-button{font-size:10px;padding:6px;letter-spacing:1px}.mec-event-cover-classic .mec-event-icon{padding:10px}}.mec-load-more-wrap{text-align:center;display:block;width:100%;padding-top:20px;text-align:center;position:relative}.mec-load-more-button{box-shadow:none;transition:all .21s ease;font-size:12px;font-weight:500;letter-spacing:1px;text-transform:uppercase;background:#fff;color:#767676;border:2px solid #e8e8e8;border-radius:50px;padding:0 28px;margin-bottom:20px;cursor:pointer;line-height:40px;font-family:Montserrat,Helvetica,Arial,sans-serif;height:42px;display:inline-block}.mec-load-more-button:hover{background:#191919;color:#fff;border-color:#191919}.mec-load-more-loading{content:url(../img/ajax-loader.gif);cursor:wait;background:0 0;border-style:none}.mec-load-more-loading:hover{background:0 0}.mec-modal-preloader,.mec-month-navigator-loading{width:100%;height:100%;background:no-repeat rgba(255,255,255,.88) url(../img/ajax-loader.gif) center;border-style:none;position:fixed;left:0;right:0;bottom:0;top:0;z-index:9}.mec-event-calendar-classic .mec-calendar-side .mec-calendar-table{min-height:1024px}.mec-calendar-side .mec-calendar-table{min-height:450px}.mec-skin-weekly-view-events-container.mec-month-navigator-loading{margin-top:0}.mec-calendar.mec-event-calendar-classic .mec-calendar-side{display:block}.mec-skin-daily-view-events-container.mec-month-navigator-loading{margin-top:0}@media only screen and (min-width:961px){.mec-wrap.mec-sm959 .mec-calendar-side .mec-calendar-table{min-height:1px}}@media only screen and (max-width:479px){.mec-calendar-side .mec-calendar-table{min-height:1px}}.mec-event-cover-clean{position:relative;border:1px solid #e6e6e6;padding:8px}.mec-event-cover-clean .mec-event-overlay{height:100%;background-color:rgba(36,36,36,.4);position:absolute;width:100%;left:0;border:8px solid #fff;top:0;transition:all .5s ease-in-out}.mec-event-cover-clean .mec-event-content{color:#fff;position:absolute;bottom:20px;padding:40px 60px;transition:all .5s ease-in-out}.mec-event-cover-clean .mec-event-title{color:#fff;font-weight:700;margin:46px 0 19px;font-size:29px;text-transform:uppercase;text-shadow:0 0 1px rgba(0,0,0,.5)}.mec-event-cover-clean .mec-event-title a{color:#fff;transition:all .5s;text-decoration:none;outline:0;border:none;box-shadow:none}.mec-event-cover-clean .mec-event-title a:hover{text-decoration:underline}.mec-event-cover-clean .mec-event-date{position:absolute;top:-20px;right:60px;color:#fff;width:60px;padding:14px 10px;z-index:1}.mec-event-cover-clean .mec-event-date div{text-align:center;text-transform:uppercase;letter-spacing:1px;line-height:16px}.mec-event-cover-clean .mec-event-date .dday{padding-bottom:15px;border-bottom:1px solid rgba(255,255,255,.5);margin-bottom:13px;font-size:24px}.mec-event-cover-clean .mec-event-date .dmonth{letter-spacing:2px}.mec-event-cover-clean .mec-event-place{font-size:18px;font-family:Roboto,sans-serif}.mec-event-cover-clean .mec-event-image img{width:100%}@media only screen and (max-width:768px){.mec-event-cover-clean .mec-event-content{padding:20px;bottom:5px}.mec-event-cover-clean .mec-event-title{font-size:23px}.mec-event-cover-clean .mec-event-date{right:20px;padding:10px;width:50px}}@media only screen and (max-width:479px){.mec-event-cover-clean .mec-event-content{padding:10px}.mec-event-cover-clean .mec-event-title{font-size:19px;padding-right:25px}.mec-event-cover-clean .mec-event-date{right:-20px;top:-10px}.mec-event-cover-clean .mec-event-detail{font-size:12px}}.mec-month-divider{text-align:center;margin:60px 0 40px 0}.widget .mec-month-divider{margin:10px 0}.mec-month-divider span{text-transform:uppercase;font-size:22px;font-weight:700;padding-bottom:5px;color:#313131;border-bottom:4px solid #ebebeb;width:100%;display:block;padding-bottom:10px;position:relative}.mec-month-divider span:before{border-bottom:4px solid #40d9f1;font-size:6px;content:"";text-align:center;position:absolute;bottom:-4px;margin-left:-30px;left:50%;width:60px}.widget .mec-month-divider span{font-size:13px}.mec-event-list-standard .mec-events-pagination{margin-top:60px;border-top:4px solid #ebebeb;min-height:80px;padding-top:20px}.mec-event-list-standard .mec-events-pagination .mec-events-pag-previous{float:left;margin-left:0}.mec-event-list-standard .mec-events-pagination .mec-events-pag-next{float:right;margin-right:0}.mec-event-list-standard .mec-event-article{position:relative;display:block;margin-bottom:25px;border:1px solid #e9e9e9;box-shadow:0 2px 0 0 rgba(0,0,0,.016)}.mec-event-list-standard .mec-topsec{display:table;width:100%}.mec-event-list-standard .col-md-3.mec-event-image-wrap{padding-left:0}.mec-event-list-standard .mec-event-content{padding-top:15px;padding-right:30px}.mec-event-list-standard .mec-event-title{font-size:29px;font-weight:700;letter-spacing:-1px;margin:0 0 10px}.mec-event-list-standard .mec-event-title a{color:#292929;transition:color .3s ease}.mec-event-list-standard .mec-col-table-c{display:table-cell;height:100%;vertical-align:middle;float:none!important}.mec-event-list-standard .mec-col-table-c.mec-event-meta-wrap{padding-top:15px}.mec-event-list-standard .mec-col-table-c.mec-event-image-wrap{vertical-align:top}.mec-topsec .mec-event-image{line-height:1px}.mec-event-list-standard .mec-event-meta-wrap{border-left:1px solid #eee}.mec-event-list-standard .mec-time-details{text-transform:uppercase;font-size:11px;font-weight:300;padding-top:0;text-align:left;padding-left:30px}.mec-event-list-standard .mec-event-meta .mec-event-address{font-style:normal;letter-spacing:0;font-size:13px;color:#8a8a8a}.mec-event-list-standard .mec-event-meta span.mec-event-d,.mec-event-list-standard .mec-event-meta span.mec-event-m{font-size:17px;font-weight:700;padding-right:6px;color:#444;text-transform:uppercase}.mec-event-list-standard .mec-date-details,.mec-event-list-standard .mec-time-details,.mec-event-list-standard .mec-venue-details{position:relative;padding-left:28px;margin-bottom:10px}.mec-event-list-standard .mec-date-details:before,.mec-event-list-standard .mec-time-details:before,.mec-event-list-standard .mec-venue-details:before{content:"\f041";font-family:fontawesome;position:absolute;left:6px;font-size:15px}.mec-event-list-standard .mec-date-details:before{content:"\f073"}.mec-event-list-standard .mec-time-details:before{content:"\f017"}.mec-event-list-minimal .mec-event-title a{color:#292929;transition:color .3s ease}.mec-event-meta-wrap .mec-price-details{margin-bottom:10px}.mec-price-details i{margin-right:5px;vertical-align:text-top}.mec-event-meta-wrap .mec-event-meta .mec-price-details i:before{font-size:15px}@media only screen and (max-width:960px){.mec-event-list-standard .mec-topsec{display:block}.mec-event-list-standard .mec-col-table-c.mec-event-image-wrap{display:block;width:40%}.mec-event-list-standard .mec-col-table-c.mec-event-content-wrap{display:block;min-height:230px}.mec-event-list-standard .mec-event-meta-wrap{display:block;border-left:none;border-top:1px solid #eee;width:100%;float:none;padding-top:20px}}@media only screen and (min-width:480px) and (max-width:960px){.mec-event-list-standard .mec-col-table-c.mec-event-content-wrap,.mec-event-list-standard .mec-col-table-c.mec-event-image-wrap{display:table-cell}}@media only screen and (max-width:479px){.mec-event-list-standard .mec-col-table-c.mec-event-image-wrap,.mec-event-list-standard .mec-col-table-c.mec-event-image-wrap img{float:none;width:100%;padding:0}.mec-event-list-standard .mec-col-table-c.mec-event-content-wrap{padding:10px 10px 10px 30px}}.mec-wrap .mec-events-cal-links{margin-bottom:0}.mec-single-event #mec-wrap{padding:0;margin-top:35px}.mec-wrap .mec-single-title{margin-top:0;margin-bottom:30px;font-weight:700;font-size:33px}.mec-single-event .mec-event-content{padding:40px 0 30px;margin-bottom:10px}.mec-single-event .mec-events-meta-group-booking,.mec-single-event .mec-frontbox{margin-bottom:30px;padding:20px 30px;background:#fff;border:1px solid #e6e6e6;box-shadow:0 2px 0 0 rgba(0,0,0,.016)}.mec-wrap #main-content{overflow:hidden;padding-top:35px}.mec-single-event .mec-map-get-direction-address-cnt{position:relative}.mec-single-event .mec-map-get-direction-address-cnt input.mec-map-get-direction-address{width:100%;height:46px;padding:13px 10px;margin-bottom:0;background:#fcfcfc;border:1px solid #e0e0e0;border-radius:0;box-shadow:inset 0 2px 5px rgba(0,0,0,.081)}.mec-single-event .mec-map-get-direction-address-cnt input.mec-map-get-direction-address:focus{color:#444;background:#fff;border-color:#b0b0b0;box-shadow:0 0 3px rgba(0,0,0,.2)}.mec-single-event .mec-map-get-direction-btn-cnt input{width:100%}.mec-single-event .mec-map-get-direction-reset{position:absolute;z-index:2;top:5px;right:10px;font-size:11px;cursor:pointer}.mec-events-meta-group-tags{margin-top:20px}.mec-events-meta-group-tags a{display:inline-block;color:#444;font-size:11px;text-transform:uppercase;letter-spacing:1.5px;font-weight:500;padding:3px 7px;border:1px solid #ddd;border-radius:2px;background:#fff;margin:1px 3px}.mec-events-meta-group-tags a:hover{text-decoration:underline;background:#f9f9f9}.mec-local-time-details li{list-style:none}.mec-single-event:not(.mec-single-modern) .mec-local-time-details{background:#f7f7f7;padding:12px 14px 8px;margin-bottom:12px;vertical-align:baseline;position:relative;border:none}.mec-single-event:not(.mec-single-modern) .mec-local-time-details ul{margin:0;padding-left:35px}.mec-single-event:not(.mec-single-modern) .mec-local-time-details h3{border:none;padding-left:15px}.mec-single-event:not(.mec-single-modern) .mec-local-time-details h3:before{display:none}.mec-single-event.mec-single-modern i.mec-sl-speedometer{display:none}.mec-single-event .mec-events-meta-group-booking{padding-bottom:30px}.mec-single-event .mec-events-meta-group-booking ul{list-style:none;margin-left:0;padding-left:0}.mec-single-event .mec-events-meta-group-booking ul li{padding:0;list-style:none;margin-top:40px}.mec-single-event .mec-events-meta-group-booking h4{margin-bottom:20px;font-size:23px;font-weight:700}.mec-single-event .mec-events-meta-group-booking li h4{font-size:19px}.mec-single-event .mec-events-meta-group-booking button,.mec-single-event .mec-events-meta-group-booking input{border-radius:0;margin-bottom:6px}.mec-single-event .mec-events-meta-group-booking button{min-width:170px;margin-top:5px}.mec-single-event .mec-events-meta-group-booking button{margin-left:15px}.mec-single-event .mec-book-form-coupon button{margin-left:0}.mec-single-event .mec-book-form-gateway-checkout button{margin-left:0}.mec-single-event .mec-book-first,.mec-single-event .mec-event-tickets-list{padding-left:15px;padding-right:15px}.mec-single-event label.mec-fill-attendees{margin-left:15px!important}.mec-single-event .mec-events-meta-group-booking .mec-event-ticket-available{display:block;margin-bottom:20px;margin-top:-17px;font-size:11px;color:#8a8a8a}.mec-single-event .mec-events-meta-group-booking .mec-book-price-total{display:inline-block;margin-bottom:10px;font-size:26px;color:#39c36e;font-weight:700;padding:10px 0}.mec-single-event .mec-events-meta-group-booking form{margin:0}.mec-single-event .mec-events-meta-group-booking h5 span,.mec-single-event .mec-events-meta-group-booking label{color:#424242;font-size:12px;font-weight:300;letter-spacing:0;margin:3px 0;display:block;clear:none;padding:5px 1em 3px 0}.mec-single-event .mec-events-meta-group-booking h5 span{display:inline-block}.mec-single-event .mec-events-meta-group-booking h5 span.mec-ticket-variation-name{padding-right:5px;text-transform:capitalize}.mec-single-event .mec-events-meta-group-booking input::-webkit-input-placeholder{color:#aaa}.mec-single-event .mec-events-meta-group-booking input:-moz-placeholder{color:#aaa}.mec-single-event .mec-events-meta-group-booking input[type=date],.mec-single-event .mec-events-meta-group-booking input[type=email],.mec-single-event .mec-events-meta-group-booking input[type=number],.mec-single-event .mec-events-meta-group-booking input[type=password],.mec-single-event .mec-events-meta-group-booking input[type=tel],.mec-single-event .mec-events-meta-group-booking input[type=text],.mec-single-event .mec-events-meta-group-booking select,.mec-single-event .mec-events-meta-group-booking textarea{display:block;background:#fcfcfc;min-height:42px;min-width:180px;font-size:13px;border:1px solid #e0e0e0;padding:13px 10px;width:330px;margin-bottom:20px;box-shadow:inset 0 2px 4px rgba(0,0,0,.051);clear:both}.wbmec-mandatory{padding-left:5px;font-size:14px}.mec-single-event .mec-events-meta-group-booking .mec-red-notification input,.mec-single-event .mec-events-meta-group-booking .mec-red-notification select,.mec-single-event .mec-events-meta-group-booking .mec-red-notification textarea{border:1px solid #ff3c3c}.mec-single-event .mec-events-meta-group-booking .mec-red-notification input[type=checkbox],.mec-single-event .mec-events-meta-group-booking .mec-red-notification input[type=radio]{outline:1px solid #ff3c3c}@media only screen and (max-width:479px){.mec-single-event .mec-events-meta-group-booking input[type=date],.mec-single-event .mec-events-meta-group-booking input[type=email],.mec-single-event .mec-events-meta-group-booking input[type=number],.mec-single-event .mec-events-meta-group-booking input[type=password],.mec-single-event .mec-events-meta-group-booking input[type=tel],.mec-single-event .mec-events-meta-group-booking input[type=text],.mec-single-event .mec-events-meta-group-booking select,.mec-single-event .mec-events-meta-group-booking textarea{width:100%}}.mec-single-event .mec-events-meta-group-booking input[type=email]:focus,.mec-single-event .mec-events-meta-group-booking input[type=number]:focus,.mec-single-event .mec-events-meta-group-booking input[type=password]:focus,.mec-single-event .mec-events-meta-group-booking input[type=tel]:focus,.mec-single-event .mec-events-meta-group-booking input[type=text]:.mec-single-event .mec-events-meta-group-booking input[type=date],.mec-single-event .mec-events-meta-group-booking select:focus,.mec-single-event .mec-events-meta-group-booking textarea:focus,focus{border:1px solid #aaa;color:#444;background:#fff;-moz-box-shadow:0 0 3px rgba(0,0,0,.2);-webkit-box-shadow:0 0 3px rgba(0,0,0,.2);box-shadow:0 0 3px rgba(0,0,0,.2);outline:0}.mec-single-event .mec-events-meta-group-booking input[type=checkbox],.mec-single-event .mec-events-meta-group-booking input[type=radio]{margin-right:6px;margin-top:5px;min-height:20px;clear:none;margin:0 0 0 2px}.lity-container .mec-events-meta-group-booking input[type=radio]:before,.mec-single-event .mec-events-meta-group-booking input[type=radio]:before{content:"";display:inline-block;background:#fff;border-radius:18px;width:18px;height:18px;margin:-1px 0 0 -3px;cursor:pointer;border:2px solid #e1e7ed;box-shadow:0 2px 15px -3px rgba(69,77,89,.32)}.lity-container .mec-events-meta-group-booking input[type=radio]:checked:before,.mec-single-event .mec-events-meta-group-booking input[type=radio]:checked:before{border:7px solid #008aff;background:#fff;box-shadow:0 3px 16px -3px #008aff}.lity-container .mec-events-meta-group-booking input[type=radio],.mec-single-event .mec-events-meta-group-booking input[type=radio]{min-height:0;margin:0;margin-right:6px}.mec-single-event .mec-events-meta-group-booking input[type=checkbox]{float:left}.lity-container .mec-events-meta-group-booking .mec_book_first_for_all,.mec-single-event .mec-events-meta-group-booking .mec_book_first_for_all{display:none}.mec-events-meta-group-booking ul.mec-book-price-details{list-style:none;border:1px solid #eee;padding:0;overflow:hidden}.mec-events-meta-group-booking ul.mec-book-price-details li{font-size:15px;color:#a9a9a9;list-style:none;padding:13px 18px;margin:0;float:left;border-right:1px solid #eee}.mec-events-meta-group-booking ul.mec-book-price-details li:last-child{border-right:none}.mec-events-meta-group-booking ul.mec-book-price-details li span.mec-book-price-detail-amount{font-weight:700;font-size:21px;color:#222}.lity-container .mec-events-meta-group-booking label.wn-checkbox-label,.mec-single-event .mec-events-meta-group-booking label.wn-checkbox-label{height:14px;width:14px;background-color:transparent;border:1px solid #d4d4d4;position:relative;display:inline-block;-moz-transition:border-color ease .2s;-o-transition:border-color ease .2s;-webkit-transition:border-color ease .2s;transition:border-color ease .2s;cursor:pointer;box-shadow:0 2px 16px -2px rgba(0,0,0,.2);vertical-align:middle;margin-right:3px;margin-top:-2px}.lity-container .mec-events-meta-group-booking input[type=checkbox]:checked+.wn-checkbox-label,.mec-single-event .mec-events-meta-group-booking input[type=checkbox]:checked+.wn-checkbox-label{border-color:#008aff;box-shadow:0 2px 14px -3px #008aff}.lity-container .mec-events-meta-group-booking label.wn-checkbox-label:after,.lity-container .mec-events-meta-group-booking label.wn-checkbox-label:before,.mec-single-event .mec-events-meta-group-booking label.wn-checkbox-label:after,.mec-single-event .mec-events-meta-group-booking label.wn-checkbox-label:before{position:absolute;height:0;width:1px;background-color:#008aff;display:inline-block;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;-webkit-transform-origin:left top;transform-origin:left top;content:'';-webkit-transition:opacity ease .5;-moz-transition:opacity ease .5;transition:opacity ease .5}.lity-container .mec-events-meta-group-booking label.wn-checkbox-label:before,.mec-single-event .mec-events-meta-group-booking label.wn-checkbox-label:before{top:8px;left:7px;box-shadow:0 0 0 2px #fff;-moz-transform:rotate(-145deg);-ms-transform:rotate(-145deg);-o-transform:rotate(-145deg);-webkit-transform:rotate(-145deg);transform:rotate(-145deg)}.lity-container .mec-events-meta-group-booking input[type=checkbox]:checked+.wn-checkbox-label::before,.mec-single-event .mec-events-meta-group-booking input[type=checkbox]:checked+.wn-checkbox-label::before{height:12px;-moz-animation:dothatopcheck .16s ease 0s forwards;-o-animation:dothatopcheck .16s ease 0s forwards;-webkit-animation:dothatopcheck .16s ease 0s forwards;animation:dothatopcheck .16s ease 0s forwards}.lity-container .mec-events-meta-group-booking label.wn-checkbox-label:after,.mec-single-event .mec-events-meta-group-booking label.wn-checkbox-label:after{top:6px;left:3px;-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.lity-container .mec-events-meta-group-booking input[type=checkbox]:checked+.wn-checkbox-label::after,.mec-single-event .mec-events-meta-group-booking input[type=checkbox]:checked+.wn-checkbox-label::after{-moz-animation:dothabottomcheck 80ms ease 0s forwards;-o-animation:dothabottomcheck 80ms ease 0s forwards;-webkit-animation:dothabottomcheck 80ms ease 0s forwards;animation:dothabottomcheck 80ms ease 0s forwards;height:4px}.mec-single-event .mec-events-meta-group-booking button[type=submit]:after,.mec-single-event a.button:after{display:none;font-family:simple-line-icons;content:"\e098";margin-left:4px;-webkit-animation:rotating 1.2s linear infinite;-moz-animation:rotating 1.2s linear infinite;-ms-animation:rotating 1.2s linear infinite;-o-animation:rotating 1.2s linear infinite;animation:rotating 1.2s linear infinite}.mec-single-event .mec-events-meta-group-booking button[type=submit].loading:after,.mec-single-event a.button.loading:after{display:inline-block}.mec-single-event .mec-event-export-module{display:block}.mec-single-event .mec-event-export-module.mec-frontbox .mec-event-exporting .mec-export-details ul{display:table;width:100%}.mec-single-event .mec-event-export-module.mec-frontbox .mec-event-exporting .mec-export-details ul li{display:table-cell}.mec-single-event .mec-event-export-module.mec-frontbox .mec-event-exporting .mec-export-details ul li:last-child{text-align:right}.mec-single-event .mec-event-export-module.mec-frontbox .mec-event-exporting .mec-export-details ul li a:hover{color:#fff}.mec-single-event .mec-event-export-module.mec-frontbox .mec-event-exporting .mec-export-details ul{padding-left:0;margin:15px 5px}.mec-single-event .mec-event-export-module.mec-frontbox .mec-event-exporting{padding-left:0;margin:0}.mec-ticket-price{margin-left:10px;font-size:13px;font-weight:300}.mec-book-reg-field-checkbox label,.mec-book-reg-field-radio label{line-height:1.36}.mec-book-reg-field-checkbox input[type=checkbox],.mec-book-reg-field-radio input[type=radio]{float:left;margin-right:5px!important}.mec-ticket-available-spots .mec-event-ticket-description,.mec-ticket-available-spots .mec-event-ticket-price{font-size:11px}.mec-book-ticket-container .mec-reg-mandatory:nth-child(2) label:after,.mec-book-ticket-container .mec-reg-mandatory:nth-child(3) label:after,.mec-book-ticket-container .wbmec-mandatory{content:"";color:red;width:50px;height:50px;font-size:14px;padding-left:5px}@media only screen and (max-width:767px){.mec-single-event .mec-event-export-module.mec-frontbox .mec-event-exporting .mec-export-details ul li{width:100%;min-height:40px;margin-bottom:15px;text-align:center;float:none;display:block}.mec-single-event .mec-event-export-module.mec-frontbox .mec-event-exporting .mec-export-details ul li a{width:100%;padding-left:0;padding-right:0;text-align:center;display:block;font-size:12px}}.mec-single-event .mec-events-meta-group{margin-bottom:0}@media only screen and (max-width:767px){.mec-single-event .mec-events-meta-group-booking{margin-bottom:30px}}.mec-single-event .mec-event-meta dt,.mec-single-event .mec-event-meta h3{text-transform:uppercase;font-size:16px;font-weight:700;padding-bottom:5px;display:inline;color:#000;padding-left:10px}.mec-single-event .mec-event-meta h6{text-transform:uppercase;font-size:13px;padding-bottom:5px;display:inline;color:#222;padding-left:0}.mec-single-event .mec-event-meta .mec-events-event-categories a,.mec-single-event .mec-event-meta dd{font-size:14px;color:#8d8d8d}.mec-single-event .mec-event-meta .mec-location dd.author{color:#3c3b3b}.mec-single-event .mec-event-meta dd{margin:0;padding-left:35px}.mec-single-event .mec-event-meta dd.mec-events-event-categories{min-height:35px;line-height:35px}.mec-single-event .mec-event-meta dd.mec-events-event-categories:first-of-type{padding-top:5px}.mec-single-event .mec-event-meta dd.mec-events-event-categories:last-of-type{border-bottom:0}.mec-single-event .mec-event-meta dd a{color:#8d8d8d;transition:all .2s ease}.mec-single-event .mec-event-meta dd a i:before{font-size:16px!important}.mec-single-event .mec-event-meta dd a i{vertical-align:top;margin-right:8px}.mec-single-event .mec-event-meta dl{margin-bottom:0}.mec-single-event .mec-event-meta .mec-events-event-cost{font-size:18px}.mec-single-event .mec-event-meta .mec-events-address{color:#a9a9a9;margin-bottom:3px}.mec-single-event .mec-event-meta .mec-events-meta-group-venue .author{margin-bottom:0;color:#8d8d8d;font-size:13px}.mec-single-event .mec-events-event-image{margin-bottom:0}.mec-single-event h2.mec-single-event-title{margin-bottom:30px;font-weight:700;font-size:33px}.mec-single-event .mec-booking-button{border-bottom:none;letter-spacing:.5px;line-height:48px;height:76px;transition:all .5s ease;color:#fff;padding:16px;display:block;text-align:center;font-size:16px}.mec-single-event .mec-booking-button:hover{background-color:#101010!important}.mec-single-event .mec-event-tags a{display:inline-block;color:#444;font-size:11px;text-transform:uppercase;letter-spacing:1.5px;font-weight:500;padding:3px 7px;border:1px solid #ddd;border-radius:2px;background:#fff;margin:1px 3px}.mec-single-event .mec-event-tags:before{font-size:24px;color:#303030;margin-right:5px;content:"\f02c";font-family:fontawesome}.mec-single-event .mec-event-tags{padding-top:13px}.mec-single-event .mec-event-sharing{margin:30px 0 10px}.mec-region.mec-events-abbr,.mec-single-event .mec-street-address{font-style:normal;font-size:13px}.mec-events-meta-group.mec-events-meta-group-venue:before,.mec-single-event-date:before,.mec-single-event-time:before{color:#40d9f1}.mec-single-event .mec-event-social{text-align:center}.mec-single-event .mec-event-social h3{text-transform:uppercase;font-size:15px;font-weight:700;padding-bottom:5px;color:#313131;border-bottom:4px solid #ebebeb;width:100%;display:block;padding-bottom:10px;position:relative}.mec-single-event .mec-social-single:before{padding:13px 35px;border-bottom:4px solid #40d9f1;font-size:6px;content:"";text-align:center;position:absolute;bottom:-4px;margin-left:39px}.mec-single-event .mec-event-social .event-sharing{margin-top:30px}.mec-single-event .mec-event-social ul{list-style:none;margin-left:0}.mec-single-event .mec-event-social li.mec-event-social-icon{display:inline-block}.mec-single-event .mec-event-social li.mec-event-social-icon a{display:inline-block;color:#fff;width:40px;height:40px;padding:9px;font-size:16px;margin-right:5px}.mec-single-event .mec-event-social a.facebook{background:#3b5996}.mec-single-event .mec-event-social a.facebook:hover{background:#28385c}.mec-single-event .mec-event-social a.twitter{background:#00acee}.mec-single-event .mec-event-social a.twitter:hover{background:#0087bd}.mec-single-event .mec-event-social a.vimeo{background:#0dadd6}.mec-single-event .mec-event-social a.vimeo:hover{background:#0a85a3}.mec-single-event .mec-event-social a.dribble{background:#d53e68}.mec-single-event .mec-event-social a.dribble:hover{background:#bf4c78}.mec-single-event .mec-event-social a.youtube{background:#cb322c}.mec-single-event .mec-event-social a.youtube:hover{background:#992622}.mec-single-event .mec-event-social a.pinterest{background:#cb2027}.mec-single-event .mec-event-social a.pinterest:hover{background:#99181d}.mec-single-event .mec-event-social a.google{background:#c3391c}.mec-single-event .mec-event-social a.google:hover{background:#99181f}.mec-single-event .mec-event-social a.linkedin{background:#0073b2}.mec-single-event .mec-event-social a.linkedin:hover{background:#005380}.mec-single-event .mec-event-social a.email{background:#ff5d5e}.mec-single-event .mec-event-social a.email:hover{background:#cc4949}.mec-single-event .mec-event-social a.vk{background:#5b88bd}.mec-single-event .mec-event-social a.vk:hover{background:#3d608a}.mec-single-event .mec-event-social a.rss{background:#f29a1d}.mec-single-event .mec-event-social a.rss:hover{background:#cc7400}.mec-single-event .mec-event-social a.instagram{background:#457399}.mec-single-event .mec-event-social a.instagram:hover{background:#2e4d66}.mec-single-event .mec-event-social a.other-social{background:#ff5d5e}.mec-single-event .mec-event-social a.other-social:hover{background:#cc4949}.mec-single-event .mec-event-social{text-align:center}.mec-single-event .mec-events-meta-group-booking form>h4,.mec-single-event .mec-frontbox-title{text-transform:uppercase;font-size:15px;font-weight:700;color:#313131;border-bottom:4px solid #ebebeb;width:100%;display:block;padding-bottom:10px;position:relative;text-align:center}.mec-single-event .mec-events-meta-group-booking form>h4:before,.mec-single-event .mec-frontbox-title:before{padding:1px 35px;border-bottom:4px solid #40d9f1;font-size:6px;content:"";text-align:center;position:absolute;bottom:-4px;margin-left:-35px;left:50%}.mec-single-event .mec-events-meta-group-booking input[data-stripe=exp-month],.mec-single-event .mec-events-meta-group-booking input[data-stripe=exp-year]{width:47%!important;margin-right:12px;margin-top:5px;display:inline-block!important}@media(max-width:768px){.mec-single-event .mec-events-meta-group-booking input[data-stripe=exp-month],.mec-single-event .mec-events-meta-group-booking input[data-stripe=exp-year]{width:100%!important;margin-right:0;display:block!important}}.mec-event-meta i:before{font-size:20px;vertical-align:middle}.mec-event-meta .mec-single-event-additional-organizers i:before,.mec-event-meta .mec-single-event-organizer i:before{font-size:14px;vertical-align:baseline}#mec-wrap .mec-events-day-time-slot .mec-events-content{float:left;width:33%;padding:0 15px}#mec-wrap .mec-events-day-time-slot .mec-events-event-image{padding-left:0}#mec-events-content .mec-events-abbr{color:#8d8d8d;font-size:14px}.mec-single-event .mec-events-content{margin-bottom:30px}.mec-single-event .mec-organizer-url a{word-wrap:break-word}.mec-single-event #headline{margin:0 0 10px}.mec-single-event #headline h2{padding:0}.mec-single-event .mec-events-meta-group.mec-events-meta-group-gmap .mec-events-venue-map{margin-top:0;padding:8px;border:1px solid #e5e5e5;border-radius:7px}#mec-events-gmap-0{height:325px!important}.mec-events-list .mec-events-day-time-slot .mec-events-event-meta{width:33%;float:left;padding:40px;height:auto;margin:0}.mec-events-day-time-slot .mec-events-content.description.entry-summary{font-size:15px;font-weight:300;color:#8d8d8d}.mec-events-day-time-slot .type-mec_events h2{font-size:28px;padding-bottom:20px}.mec-events-day .mec-events-day-time-slot .type-mec_events{margin:0}.mec-events-day .mec-events-day-time-slot h5{background-color:#8d8d8d}.mec-single-event .mec-event-meta .mec-single-event-additional-organizers .mec-events-single-section-title,.mec-single-event .mec-event-meta .mec-single-event-organizer .mec-events-single-section-title,.mec-single-event .mec-events-meta-date h3{padding-left:0;margin:10px;display:inline-block}.mec-single-event .mec-events-meta-date h3{width:100%}.mec-single-event .mec-events-event-image{border:0}.mec-single-event .mec-events-venue-map{padding:0}.mec-event-cost,.mec-event-more-info,.mec-event-website,.mec-events-meta-date,.mec-single-event-additional-organizers,.mec-single-event-category,.mec-single-event-date,.mec-single-event-label,.mec-single-event-location,.mec-single-event-organizer,.mec-single-event-time{background:#f7f7f7;padding:12px 14px 8px;margin-bottom:12px;vertical-align:baseline;position:relative}.mec-single-event .mec-events-meta-date dd,.mec-single-event .mec-single-event-additional-organizers dd,.mec-single-event .mec-single-event-organizer dd{padding-left:0;margin-bottom:10px}.mec-single-event .mec-events-meta-date dd span,.mec-single-event .mec-single-event-additional-organizers dd span,.mec-single-event .mec-single-event-organizer dd span{display:block;padding-left:12px;color:#8d8d8d}.mec-single-event .mec-events-meta-date i,.mec-single-event .mec-single-event-additional-organizers i,.mec-single-event .mec-single-event-organizer i{margin-right:10px;margin-left:12px}.mec-events-meta-group.mec-events-meta-group-venue dl{margin-bottom:0}address.mec-events-address{line-height:19px;font-style:normal;font-size:12px}.mec-single-event .mec-event-content dt{margin-top:5px}.mec-single-event .mec-single-event-additional-organizers .mec-single-event-additional-organizer{margin-bottom:15px;padding-bottom:5px;border-bottom:1px solid #e4e4e4}.mec-single-event .mec-single-event-additional-organizers .mec-single-event-additional-organizer:last-child{margin-bottom:0;padding-bottom:0;border:none}.mec-event-schedule-content{border-left:4px solid #f0f0f0;padding-top:10px;margin-top:30px;margin-left:25px;margin-bottom:20px;color:#8a8a8a}.mec-event-schedule-content dl{padding-left:24px;font-size:12px;position:relative;margin-bottom:35px}.mec-event-schedule-content dl:before{content:'';display:block;position:absolute;left:0;top:4px;width:20px;height:0;border-top:4px solid #f0f0f0}.mec-event-schedule-content dl dt{margin:0 0 10px;line-height:1.16}.mec-event-schedule-content dl dt.mec-schedule-title{font-size:13px;color:#5a5a5a;font-weight:700}.mec-event-schedule-content dl dt.mec-schedule-description{font-weight:300}.mec-event-schedule-content .mec-schedule-speakers{background:#f7f7f7;padding:10px}.mec-wrap .mec-event-schedule-content h6{font-size:13px;color:#5a5a5a;font-weight:700;display:inline-block}.mec-wrap .mec-event-schedule-content a{font-weight:400;color:#5a5a5a;transition:all .1s ease}.mec-single-event .mec-speakers-details ul li{list-style:none;background:#f7f7f7;padding:5px 5px 18px 5px;margin-top:14px}.mec-single-event .mec-speakers-details ul li a{-webkit-transition:.2s all ease;transition:.2s all ease}.mec-single-event .mec-speakers-details ul li .mec-speaker-avatar a img{float:left;border-radius:50%;transition:.2s all ease;border:2px solid transparent;width:68px;height:68px}.mec-single-event .mec-speakers-details ul li .mec-speaker-avatar a:hover img{border-color:#40d9f1}.mec-single-event .mec-speakers-details ul li .mec-speaker-name{display:inline-block;margin-top:6px;font-size:14px;text-transform:capitalize;font-weight:700;padding-left:8px}.mec-single-event .mec-speakers-details ul li .mec-speaker-job-title{display:block;font-size:12px;margin-top:-1px;padding-left:75px}.mec-single-event-location img,.mec-single-event-organizer img{margin-bottom:10px;width:100%}.mec-qrcode-details{text-align:center}.mec-time-comment{font-size:11px}.mec-wrap .mec-attendees-list-details p{font-weight:300;margin:20px 0 0 0;color:#8d8d8d}.mec-wrap .mec-attendees-list-details li{list-style:none;display:block;margin-top:15px}.mec-wrap .mec-attendees-list-details li .mec-attendee-avatar{display:inline-block}.mec-wrap .mec-attendees-list-details li .mec-attendee-profile-link{display:inline-block;vertical-align:top;margin-left:10px}.mec-attendees-list-details ul{margin-bottom:0}.mec-attendees-list-details .mec-attendee-profile-link a{color:#8d8d8d}.mec-attendees-list-details .mec-attendee-profile-link span{display:block;color:#000}.mec-calendar{margin-bottom:20px;border:1px solid #e8e8e8;width:100%;box-shadow:0 2px 0 0 rgba(0,0,0,.016)}.mec-calendar .mec-calendar-topsec{display:table;background:#fff}.mec-calendar .mec-calendar-topsec .mec-calendar-events-sec{display:none}.mec-calendar .mec-calendar-side{width:590px;display:table-cell;padding:40px;position:relative;text-align:center;box-shadow:0 1px 5px 6px rgba(0,0,0,.005) inset}.mec-calendar .mec-calendar-events-side{display:table-cell;height:100%;border-left:1px solid #efefef;padding:40px;width:100%}.mec-calendar .mec-calendar-events-side .mec-table-side-day{width:46px;height:46px;margin:0 auto 20px;position:relative;text-align:center;line-height:46px;border:1px solid #40d9f1;border-radius:50%;font-size:12px;font-weight:600;padding:0}.mec-calendar .mec-calendar-events-side .mec-table-side-title{text-align:center;font-size:11px;text-transform:uppercase;letter-spacing:3px;margin-bottom:14px}.mec-calendar .mec-calendar-header{position:relative;width:560px;margin-top:8px;margin-bottom:16px}.mec-calendar .mec-calendar-header h2{text-transform:uppercase;font-size:22px;font-weight:700;color:#333}.mec-calendar .mec-event-footer{width:auto;min-height:60px}.mec-calendar dl{display:table;margin:0;border:none;padding:0;table-layout:fixed}.mec-calendar dt{display:table-cell;transition:all .66s ease;color:#4d4d4d;background:#fff;border-radius:44px;font-size:14px;width:80px;height:80px;line-height:80px;text-align:center}.mec-calendar .mec-calendar-table .mec-no-event{display:none}.mec-calendar .mec-calendar-table-head dt{font-weight:700;text-transform:uppercase;font-size:15px}.mec-calendar .mec-calendar-row dt:hover{background:#f4f4f4}.mec-calendar .mec-table-nullday{color:#cacaca}.mec-calendar.mec-box-calendar .mec-table-nullday:last-child{border-right:1px solid #eaeaea}.mec-calendar .mec-next-month:hover,.mec-calendar .mec-prev-month:hover{background:#f4f4f4}.mec-calendar .mec-selected-day,.mec-calendar .mec-selected-day:hover{background:#40d9f1;color:#fff}.mec-calendar .mec-selected-day a{color:#fff}.mec-calendar .mec-has-event{position:relative}.mec-calendar .mec-calendar-row dt.mec-has-event:hover{background:#40d9f1}.mec-calendar .mec-has-event a{cursor:pointer;display:block;width:100%;height:100%;border-radius:50%;color:#4d4d4d;transition:all .25s ease;text-decoration:none;box-shadow:none}.mec-calendar .mec-calendar-row dt.mec-has-event.mec-selected-day a,.mec-calendar .mec-calendar-row dt.mec-has-event:hover a{color:#fff}.mec-calendar .mec-has-event:after{background-color:#40d9f1;border-radius:50%;display:block;content:'';width:8px;height:8px;bottom:14px;left:50%;margin:-4px 0 0 -4px;position:absolute;transition:all .25s ease}.mec-calendar .mec-calendar-row dt.mec-has-event:hover:after{background-color:#fff}.mec-calendar .mec-has-event.mec-selected-day:after{display:none}.mec-calendar .mec-event-article{text-align:left;margin-bottom:0;padding-bottom:25px;padding-top:26px;border-top:1px solid #efefef;transition:all .33s ease}.mec-calendar .mec-event-article:hover{background-color:#fafafa}.mec-calendar .mec-event-article .mec-event-time{font-size:11px;line-height:1.1;margin:0}.mec-calendar .mec-event-article .mec-event-title{font-size:13px;padding:0;margin:10px 0 8px;font-weight:700;text-transform:uppercase}.mec-calendar .mec-event-article .mec-event-title a{text-decoration:none;color:#494949;transition:color .3s ease}.mec-calendar .mec-event-article .mec-event-title a:hover{color:#40d9f1}.mec-calendar .mec-event-article .mec-event-image,.mec-calendar .mec-event-list-classic .mec-event-image img{width:65px;height:auto}.mec-calendar .mec-event-article .mec-event-image{float:left;margin-right:20px;width:65px;height:auto}.mec-calendar .mec-event-article .mec-event-detail{font-size:13px;line-height:1.3;font-family:Roboto,sans-serif;color:#9a9a9a;margin-bottom:0}.mec-calendar .mec-calendar-side .mec-next-month,.mec-calendar .mec-calendar-side .mec-previous-month{cursor:pointer;position:absolute;top:0;min-width:50px;height:50px;line-height:50px;text-align:center;background:#fff;color:#a9a9a9;font-size:12px;letter-spacing:1px;text-transform:uppercase;padding-left:10px;padding-right:10px;border:1px solid #efefef;border-top:none;box-shadow:0 2px 0 0 rgba(0,0,0,.015);transition:all .33s ease}.mec-calendar .mec-calendar-side .mec-next-month i,.mec-calendar .mec-calendar-side .mec-previous-month i{font-size:12px;color:#40d9f1;cursor:pointer}.mec-calendar .mec-calendar-side .mec-next-month:hover,.mec-calendar .mec-calendar-side .mec-previous-month:hover{background-color:#f9f9f9;color:#40d9f1}.mec-calendar .mec-calendar-side .mec-previous-month{left:0;border-bottom-right-radius:6px;border-left:none}.mec-calendar .mec-calendar-side .mec-next-month{right:0;border-bottom-left-radius:6px;border-right:none}@media only screen and (min-width:961px){.mec-wrap.mec-sm959 .mec-calendar:not(.mec-event-calendar-classic):not(.mec-calendar-weekly) .mec-has-event:after{width:6px;height:6px;bottom:6px}.mec-wrap.mec-sm959 .mec-calendar:not(.mec-event-calendar-classic):not(.mec-calendar-weekly) .mec-calendar-side{width:370px}.mec-wrap.mec-sm959 .mec-calendar:not(.mec-event-calendar-classic):not(.mec-calendar-weekly) .mec-calendar-header{position:relative;width:350px;margin-top:30px;margin-bottom:20px;padding-top:20px}.mec-wrap.mec-sm959 .mec-calendar:not(.mec-event-calendar-classic):not(.mec-calendar-weekly) dt{width:50px;height:50px;line-height:50px}.mec-wrap.mec-sm959 .mec-calendar.mec-event-calendar-classic dl dt{height:110px}}@media only screen and (max-width:1200px){.mec-calendar .mec-has-event:after{width:6px;height:6px;bottom:6px}.mec-calendar .mec-calendar-side{width:370px}.mec-calendar .mec-calendar-header{position:relative;width:350px;margin-top:30px}.mec-calendar dt{width:50px;height:50px;line-height:50px}}@media only screen and (max-width:767px){.mec-calendar .mec-calendar-header h2{font-size:18px}.mec-calendar .mec-calendar-topsec{width:100%}.mec-calendar .mec-calendar-side{width:100%;display:block;padding:30px}.mec-calendar .mec-calendar-header{width:auto}.mec-calendar .mec-calendar-events-side{width:100%;display:block;height:100%;border-left:none;border-top:1px solid #efefef;padding:20px}.mec-calendar dl{width:100%}.mec-calendar dt{width:14%;height:60px;line-height:60px;border-radius:50px}}@media only screen and (max-width:479px){.mec-calendar .mec-has-event:after{width:4px;height:4px}.mec-calendar .mec-calendar-header h2{font-size:16px;margin-top:33px}.mec-calendar dt{height:38px;line-height:38px}.mec-calendar .mec-event-list-classic .mec-event-detail,.mec-calendar .mec-event-list-classic .mec-event-title{font-size:12px}.mec-calendar .mec-event-list-classic .mec-event-time{font-size:10px}}.mec-box-calendar.mec-calendar .mec-has-event a,.mec-box-calendar.mec-calendar dt{border-radius:0}.mec-box-calendar.mec-calendar .mec-calendar-header{margin-top:2px;margin-bottom:30px}.mec-box-calendar.mec-calendar dt{border-bottom:1px solid #eaeaea;border-left:1px solid #eaeaea}.mec-box-calendar.mec-calendar dl dt:last-child{border-right:1px solid #eaeaea}.mec-box-calendar.mec-calendar .mec-calendar-table-head dt{border-top:1px solid #eaeaea;background-color:#f8f8f8}.mec-box-calendar.mec-calendar.mec-event-calendar-classic .mec-calendar-table-head dt{background-color:#f4f4f4}.mec-box-calendar.mec-calendar .mec-calendar-side .mec-next-month,.mec-box-calendar.mec-calendar .mec-calendar-side .mec-previous-month{border-radius:2px;top:40px;border:1px solid #eee;height:30px;line-height:30px;z-index:1}.mec-box-calendar.mec-calendar .mec-calendar-side .mec-previous-month{left:60px}.mec-box-calendar.mec-calendar .mec-calendar-side .mec-next-month{right:60px}.mec-box-calendar.mec-calendar .mec-calendar-side{box-shadow:none}.mec-box-calendar.mec-calendar .mec-calendar-events-side{border:none}.mec-box-calendar.mec-calendar .mec-calendar-events-side .mec-table-side-day{border-radius:2px}.mec-box-calendar.mec-calendar h4.mec-month-label{position:relative;width:560px;margin-top:2px;margin-bottom:30px;text-transform:uppercase;font-size:22px;font-weight:700;color:#333}.mec-widget .mec-box-calendar.mec-calendar h4.mec-month-label{width:100%;margin-top:8px;font-size:13px}@media only screen and (max-width:1200px){.mec-box-calendar.mec-calendar .mec-calendar-side .mec-previous-month{left:42px}.mec-box-calendar.mec-calendar .mec-calendar-side .mec-next-month{right:42px}.mec-calendar .mec-calendar-header h2{font-size:17px;margin-top:7px}}@media only screen and (max-width:767px){.mec-box-calendar.mec-calendar .mec-calendar-side .mec-next-month,.mec-box-calendar.mec-calendar .mec-calendar-side .mec-previous-month{top:28px;font-size:10px}.mec-box-calendar.mec-calendar .mec-calendar-side .mec-previous-month{left:30px}.mec-box-calendar.mec-calendar .mec-calendar-side .mec-next-month{right:30px}.mec-calendar .mec-calendar-header h2{font-size:15px}}@media only screen and (max-width:479px){.mec-box-calendar.mec-calendar .mec-calendar-side .mec-next-month,.mec-box-calendar.mec-calendar .mec-calendar-side .mec-previous-month{top:16px;font-size:0;padding:4px 0;text-align:center;min-width:33px}.mec-box-calendar.mec-calendar .mec-calendar-side .mec-previous-month{left:10px}.mec-box-calendar.mec-calendar .mec-calendar-side .mec-next-month{right:10px}.mec-box-calendar.mec-calendar .mec-calendar-header h2{font-size:12px;margin-top:15px}.mec-box-calendar.mec-calendar .mec-event-image{margin-right:12px}}.mec-calendar.mec-event-calendar-classic,.mec-calendar.mec-event-calendar-classic .mec-calendar-side{border:none;padding:0;width:100%;height:100%;box-shadow:none}.mec-calendar.mec-event-calendar-classic .mec-calendar-side{display:block}.mec-calendar.mec-event-calendar-classic .mec-calendar-header,.mec-calendar.mec-event-calendar-classic dl{width:100%}.mec-calendar.mec-event-calendar-classic dl dt{width:15%;height:136px;line-height:1.2;text-align:left;padding:5px 7px;position:relative}.mec-calendar.mec-event-calendar-classic .mec-calendar-table-head dt{height:30px!important}.mec-box-calendar.mec-calendar.mec-event-calendar-classic .mec-calendar-side .mec-next-month,.mec-box-calendar.mec-calendar.mec-event-calendar-classic .mec-calendar-side .mec-previous-month{top:0}.mec-calendar.mec-event-calendar-classic .mec-has-event:after{bottom:auto;top:24px;left:7px;margin:0}.mec-box-calendar.mec-calendar.mec-event-calendar-classic .mec-calendar-side .mec-previous-month{left:0}.mec-box-calendar.mec-calendar.mec-event-calendar-classic .mec-calendar-side .mec-next-month{right:0}.mec-calendar.mec-event-calendar-classic .mec-calendar-events-sec{text-align:left;background:#fafafa;border:1px solid #eaeaea;border-top:none;padding:10px 20px}.mec-calendar.mec-event-calendar-classic .mec-calendar-events-sec{display:none}.mec-calendar.mec-event-calendar-classic .mec-calendar-events-sec .mec-event-article:hover{background-color:#fcfcfc}.mec-calendar.mec-event-calendar-classic .mec-selected-day,.mec-calendar.mec-event-calendar-classic dt.mec-selected-day:hover{color:#40d9f1;font-weight:700;background:#fafafa;border-bottom:none}.mec-calendar.mec-event-calendar-classic .mec-calendar-events-sec .mec-table-side-day,.mec-calendar.mec-event-calendar-classic .mec-calendar-events-sec .mec-table-side-title{display:inline-block;margin:0;margin-bottom:15px;font-weight:700}.mec-calendar.mec-event-calendar-classic .mec-calendar-events-sec .mec-table-side-day{margin-left:4px}.mec-calendar.mec-event-calendar-classic .mec-calendar-row dt.mec-has-event a{color:#4d4d4d}.mec-calendar.mec-event-calendar-classic .mec-calendar-row dt.mec-has-event:not(.mec-selected-day):hover a{color:#fff}@media only screen and (max-width:1200px){.mec-calendar.mec-event-calendar-classic dl dt{height:100px}}@media only screen and (max-width:767px){.mec-calendar.mec-event-calendar-classic dl dt{height:40px}}@media only screen and (max-width:479px){.mec-calendar.mec-event-calendar-classic .mec-calendar-events-sec{padding:10px}.mec-box-calendar.mec-calendar.mec-event-calendar-classic .mec-calendar-header h2{font-size:13px;margin-top:8px}}.mec-calendar .mec-event-article.mec-single-event-novel{padding:4px 8px;min-height:25px;margin:0 -4px;border-radius:0}.mec-calendar .mec-event-article.mec-single-event-novel h4{margin:0;font-size:10px;line-height:18px}.mec-calendar.mec-event-container-novel dl dt{padding:3px}.mec-calendar.mec-event-calendar-classic .mec-calendar-novel-selected-day{display:inline-block;padding:4px;margin-left:1px}.mec-calendar.mec-event-calendar-classic .mec-selected-day .mec-calendar-novel-selected-day{color:#fff}.mec-calendar.mec-event-calendar-classic.mec-event-container-novel .mec-selected-day,.mec-calendar.mec-event-calendar-classic.mec-event-container-novel dt.mec-selected-day:hover{border-bottom:1px solid #eaeaea}.mec-calendar.mec-event-calendar-classic.mec-event-container-novel .mec-calendar-side .mec-calendar-table{min-height:auto}.mec-single-event-novel.light h4{color:#000!important}.mec-single-event-novel.dark h4{color:#fff!important}@media only screen and (max-width:768px){.mec-calendar .mec-event-article.mec-single-event-novel{padding:0;min-height:5px}.mec-calendar .mec-event-article.mec-single-event-novel h4{display:block;font-size:9px}}.mec-event-container-simple .event-single-content-simple{display:none}.mec-event-calendar-classic.mec-event-container-simple .mec-calendar-side .mec-calendar-table{min-height:unset}.mec-event-container-simple .mec-monthly-tooltip h4{font-size:13px;font-weight:500;margin:0;color:#444}.mec-event-container-simple .mec-monthly-tooltip h4:hover{text-decoration:underline;color:#111}.mec-event-container-simple .mec-monthly-tooltip.event-single-link-simple{border-bottom:1px dashed #e3e3e3;padding:10px 2px;display:block}.mec-calendar.mec-event-container-simple dl dt.mec-calendar-day{font-size:30px;color:#000}.mec-calendar.mec-event-container-simple .mec-calendar-row dt:hover{background:unset}.mec-calendar.mec-event-container-simple .mec-calendar-row dt,.mec-calendar.mec-event-container-simple .mec-calendar-row dt:last-child,.mec-calendar.mec-event-container-simple .mec-calendar-table-head dt,.mec-calendar.mec-event-container-simple .mec-calendar-table-head dt:last-child{border-width:2px}.mec-calendar.mec-event-container-simple dl dt.mec-selected-day,.mec-calendar.mec-event-container-simple dl dt.mec-selected-day:hover{border-bottom:2px solid #40d9f1;background:unset}.mec-calendar.mec-event-container-simple .mec-calendar-table-head dt{line-height:36px}@media (max-width:768px){.mec-calendar.mec-event-container-simple{overflow-x:scroll}.mec-calendar.mec-event-container-simple .mec-calendar-side{min-width:700px}.mec-event-container-simple .mec-monthly-tooltip h4{font-size:12px}}.mec-wrap.colorskin-custom .mec-calendar.mec-event-container-simple .mec-selected-day:hover{background:#f4f4f4}.mec-event-container-simple .mec-calendar-day .mec-monthly-tooltip.event-single-link-simple:last-of-type{border:none}.mec-tooltip-event-title{font-size:16px;font-weight:700;color:#000;margin-bottom:2px}.mec-tooltip-event-time{font-size:12px;color:#888;margin-bottom:8px;margin-top:5px}.tooltipster-sidetip.tooltipster-shadow .tooltipster-content{padding:17px}.mec-tooltip-event-content{clear:both}.mec-tooltip-event-featured{float:left;margin-right:13px;margin-bottom:1px}.mec-tooltip-event-featured img{max-width:120px}.mec-tooltip-event-desc{font-size:14px;color:#444;line-height:18px}.mec-tooltip-event-desc p{font-size:13px;line-height:1.4;margin-bottom:10px}.tooltipster-sidetip.tooltipster-shadow .tooltipster-box{border-radius:3px!important;border:1px solid #e2e3e4!important;background:#fff!important;box-shadow:0 -1px 30px -2px rgba(0,0,0,.15)!important}.tooltipster-sidetip .tooltipster-arrow{overflow:visible!important}.tooltipster-sidetip.tooltipster-shadow .tooltipster-arrow-border{border-width:12px!important}.tooltipster-sidetip.tooltipster-shadow.tooltipster-right .tooltipster-arrow-border{border-right-color:#e2e3e4!important}.tooltipster-sidetip .tooltipster-arrow-border{left:-12px!important;z-index:9999999999!important}.tooltipster-sidetip.tooltipster-shadow .tooltipster-arrow-background{display:block!important}.tooltipster-sidetip .tooltipster-arrow-background{border-width:11px!important;z-index:99999999999!important}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background{left:-9px!important;top:1px!important;border-right-color:#fff!important}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background{border-top-color:#fff!important;left:0!important;top:-1px!important}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-border{left:-1px!important}.tooltipster-sidetip.tooltipster-shadow.tooltipster-top .tooltipster-arrow-border{border-top-color:#e2e3e4!important}.tooltipster-sidetip.tooltipster-shadow.tooltipster-bottom .tooltipster-arrow-border{left:-1px!important;top:-11px!important}.tooltipster-sidetip.tooltipster-shadow.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#e2e3e4!important}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background{top:-9px!important;border-bottom-color:#fff!important}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background{border-left-color:#fff!important;left:-2px!important;top:0!important}.tooltipster-sidetip.tooltipster-shadow.tooltipster-left .tooltipster-arrow-border{border-left-color:#e2e3e4!important;left:-1px!important;top:-1px!important}@media (max-width:780px){.mec-event-container-simple .mec-monthly-tooltip.event-single-link-simple h4{word-break:break-all;font-size:13px}}@media (max-width:320px){.mec-event-container-simple .mec-monthly-tooltip.event-single-link-simple h4{font-size:10px}}.mec-calendar.mec-calendar-daily .mec-calendar-day-events .mec-event-article{padding-left:15px;padding-right:15px}.mec-calendar.mec-calendar-daily .mec-calendar-a-month{text-align:center;background-color:#fff;border-bottom:2px solid #f4f4f4;position:relative}.mec-calendar.mec-calendar-daily .mec-calendar-a-month h4{color:#444;font-size:18px;line-height:1.2;padding:15px 0 11px;margin:0;font-weight:700;letter-spacing:1px;text-transform:uppercase;border-bottom:1px solid #e6e6e6}.mec-calendar.mec-calendar-daily .mec-calendar-d-top{text-align:center;padding:10px 0;position:relative;background-color:#fafafa}.mec-calendar.mec-calendar-daily .mec-next-month,.mec-calendar.mec-calendar-daily .mec-previous-month{position:absolute;top:50%;left:50%;margin-top:-25px;min-width:50px;height:50px;line-height:50px;text-align:center;background:#fff;border:1px solid #e2e2e2;border-radius:50px;box-shadow:0 2px 0 0 rgba(0,0,0,.015);transition:all .33s ease;cursor:pointer}.mec-calendar.mec-calendar-daily .mec-next-month i,.mec-calendar.mec-calendar-daily .mec-previous-month i{font-size:14px;cursor:pointer}.mec-calendar.mec-calendar-daily .mec-next-month:hover,.mec-calendar.mec-calendar-daily .mec-previous-month:hover{border-color:#d0d0d0;color:#444;box-shadow:0 2px 5px 0 rgba(0,0,0,.075)}.mec-calendar.mec-calendar-daily .mec-previous-month{margin-left:-150px}.mec-calendar.mec-calendar-daily .mec-next-month{margin-left:100px}.mec-calendar.mec-calendar-daily .mec-calendar-a-month .mec-next-month,.mec-calendar.mec-calendar-daily .mec-calendar-a-month .mec-previous-month{min-height:28px;height:28px;line-height:28px;width:28px;margin-top:-14px;border-radius:3px}.mec-calendar.mec-calendar-daily .mec-calendar-d-top h2,.mec-calendar.mec-calendar-daily .mec-calendar-d-top h3{margin-top:9px;color:#b9b9b9;font-family:Roboto,sans-serif;font-size:30px;font-weight:100;text-transform:uppercase;margin-bottom:12px;line-height:1}.mec-calendar.mec-calendar-daily .mec-calendar-d-top h2{font-size:81px;color:#444;margin-bottom:10px;line-height:1.1}.mec-calendar.mec-calendar-daily .mec-calendar-d-table{overflow:hidden;background:#fff;min-height:60px;border-top:1px solid #e6e6e6;border-bottom:2px solid #f3f3f3;padding:0 50px;position:relative}@media only screen and (min-width:479px){.mec-calendar.mec-calendar-daily .mec-calendar-d-table{padding:0 55px}}.mec-calendar.mec-calendar-daily .mec-calendar-d-table dl{width:1310px;display:block}.mec-calendar.mec-calendar-weekly .mec-calendar-d-table dl{display:none}.mec-calendar.mec-calendar-weekly .mec-calendar-d-table dl.mec-weekly-view-week-active{display:block}.mec-calendar.mec-calendar-daily .mec-calendar-d-table a,.mec-calendar.mec-calendar-daily .mec-calendar-d-table dl dt{display:block;background:#fff;width:42px;height:60px;line-height:60px;text-align:center;float:left;border-right:1px solid #e6e6e6;border-bottom:1px solid #e6e6e6;border-radius:0}.mec-calendar.mec-calendar-daily .mec-calendar-d-table .mec-daily-view-day:hover,.mec-calendar.mec-calendar-daily .mec-calendar-d-table dl dt:hover{background:#fafafa;box-shadow:0 2px 5px 0 rgba(0,0,0,.065) inset;cursor:pointer}.mec-calendar.mec-calendar-daily .mec-calendar-d-table .mec-daily-view-day{cursor:default;background:#fff;color:#c1c1c1;line-height:59px;text-align:center;border-right:1px solid #e6e6e6;border-bottom:1px solid #e6e6e6}.mec-calendar.mec-calendar-daily .mec-calendar-d-table .mec-daily-view-day.mec-has-event{cursor:pointer;font-weight:700;color:#4a4a4a}.mec-calendar.mec-calendar-daily .mec-calendar-d-table .mec-daily-view-day.mec-daily-view-day-active,.mec-calendar.mec-calendar-daily .mec-calendar-d-table dl dt.mec-table-d-current{font-size:18px;font-weight:700;background:#fafafa;color:#40d9f1}.mec-calendar.mec-calendar-daily .mec-calendar-d-table a.mec-table-d-next,.mec-calendar.mec-calendar-daily .mec-calendar-d-table a.mec-table-d-prev{float:none;font-size:14px;width:55px;position:absolute;top:0;left:0;cursor:pointer}.mec-calendar.mec-calendar-daily .mec-calendar-d-table a.mec-table-d-next{left:auto;right:0;border-left:1px solid #e6e6e6;border-right:none}.mec-calendar.mec-calendar-daily .mec-today-container .mec-today-count{font-size:12px;color:#888;text-align:center}@media only screen and (max-width:479px){.mec-calendar.mec-calendar-daily .mec-previous-month{margin-left:-130px}.mec-calendar.mec-calendar-daily .mec-next-month{margin-left:80px}.mec-calendar.mec-calendar-daily .mec-calendar-a-month h4{font-size:14px;letter-spacing:0}}.widget .mec-calendar.mec-calendar-daily .mec-calendar-a-month h4{font-size:14px;letter-spacing:0}.widget .mec-calendar.mec-calendar-daily .mec-previous-month{margin-left:-130px}.widget .mec-calendar.mec-calendar-daily .mec-next-month{margin-left:80px}.mec-util-hidden{display:none}.mec-daily-view-date-events,.mec-weekly-view-date-events{list-style:none;margin:0}.mec-calendar.mec-calendar-weekly .mec-calendar-d-table{padding:0}.mec-calendar.mec-calendar-weekly .mec-calendar-d-table dl{width:calc(100% - 1px)}.mec-calendar.mec-calendar-weekly .mec-calendar-d-table dl dt{width:14.286%;height:70px;line-height:normal;cursor:default}.mec-calendar.mec-calendar-weekly .mec-calendar-d-table dl dt:hover{background:#fff;cursor:default}.mec-calendar.mec-calendar-weekly .mec-calendar-d-table dl dt:last-child{border-right:none}.mec-calendar.mec-calendar-weekly .mec-calendar-d-table dl dt span{font-size:12px;font-weight:700;text-transform:uppercase;display:block;margin:15px 0 6px}.mec-calendar.mec-calendar-weekly .mec-calendar-d-table a.mec-table-d-next,.mec-calendar.mec-calendar-weekly .mec-calendar-d-table a.mec-table-d-prev{display:none}ul.mec-weekly-view-dates-events,ul.mec-weekly-view-dates-events li{padding:0;margin:0;line-height:initial}.mec-calendar.mec-calendar-weekly .mec-event-list-weekly-date{width:64px;height:64px;margin-right:10px;font-size:11px;text-transform:uppercase;float:left;text-align:center;padding-top:2px}.mec-calendar.mec-calendar-weekly .mec-event-list-weekly-date span{font-size:40px;line-height:30px;font-weight:700;display:block;margin-bottom:6px;letter-spacing:1px}.mec-calendar.mec-calendar-weekly .mec-calendar-a-month .mec-previous-month{margin-left:0;left:12px}.mec-calendar.mec-calendar-weekly .mec-calendar-a-month .mec-next-month{margin-left:0;left:auto;right:12px}@media only screen and (max-width:479px){.mec-calendar.mec-calendar-weekly .mec-calendar-d-table dl dt span{font-size:9px;letter-spacing:0}.mec-calendar.mec-calendar-weekly .mec-event-list-weekly-date{width:100%;height:36px;margin-bottom:12px;line-height:1;font-size:10px;margin-right:5px;text-align:left}.mec-calendar.mec-calendar-weekly .mec-event-list-weekly-date span{font-size:18px;margin-bottom:5px}}.widget .mec-calendar.mec-calendar-weekly .mec-calendar-d-table dl dt span{font-size:9px;letter-spacing:0}.widget .mec-calendar.mec-calendar-weekly .mec-event-list-weekly-date{width:100%;height:36px;margin-bottom:12px;line-height:1;font-size:10px;margin-right:5px;text-align:left}.widget .mec-calendar.mec-calendar-weekly .mec-event-list-weekly-date span{font-size:18px;margin-bottom:5px}.mec-week-events-container .mec-weekly-view-dates-events li.mec-no-event-found{list-style:none!important}li.mec-no-event-found .mec-event-title{text-align:center}.mec-widget .mec-calendar{max-width:100%}.mec-widget .mec-calendar dl dt,.mec-wrap.mec-sm959.mec-widget .mec-calendar.mec-event-calendar-classic dl dt{height:40px}.mec-widget .mec-calendar .mec-calendar-events-sec{padding:10px}.mec-widget .mec-calendar .mec-calendar-header h2{font-size:13px;margin-top:8px}.mec-widget .mec-calendar .mec-event-list-classic .mec-event-image{margin-right:12px}.mec-widget .mec-calendar .mec-has-event:after{width:4px;height:4px}.mec-widget .mec-calendar.mec-event-calendar-classic .mec-calendar-events-sec .mec-table-side-title{font-size:14px}.mec-widget .mec-calendar .mec-event-article .mec-event-image{margin-right:11px}.mec-widget .mec-box-calendar.mec-calendar .mec-calendar-header{margin-bottom:20px}.mec-widget .mec-box-calendar.mec-calendar .mec-calendar-side .mec-next-month,.mec-widget .mec-box-calendar.mec-calendar .mec-calendar-side .mec-previous-month{font-size:0;padding:4px 0;text-align:center;min-width:33px}.mec-widget .mec-event-calendar-classic .mec-calendar-side .mec-calendar-table{min-height:200px}.mec-widget .mec-event-list-classic{margin-bottom:8px;padding:8px 0}.mec-widget .mec-event-list-classic .mec-event-article{margin-bottom:0;padding:10px 0;position:relative;min-height:86px;padding-left:80px}.mec-widget .mec-event-list-classic .mec-event-date{font-size:10px;line-height:14px;text-transform:uppercase}.mec-widget .mec-event-list-classic .mec-event-title{font-size:13px}.mec-widget .mec-event-list-classic .mec-event-detail{font-size:11px}.mec-widget .mec-event-list-classic .mec-event-image{width:68px;position:absolute;left:0}.mec-event-list-classic .mec-event-image img{width:100%}.mec-widget .mec-event-list-classic .mec-event-detail{overflow:visible}.event-color{width:14px;display:inline-block;height:14px;margin-left:5px;border-radius:50%}.mec-map-lightbox-wp{width:580px;padding:15px 15px 0;background-color:#fff}.mec-map-view-event-detail.mec-event-detail{width:580px;background-color:#e9e9e9;padding:8px 15px}.mec-map-lightbox-wp.mec-event-list-classic .mec-event-article{padding:0 0 15px;margin:0}.mec-map-lightbox-wp.mec-event-list-classic .mec-event-image{width:70px;margin-right:15px}.mec-marker-infowindow-wp{padding:10px}.mec-marker-infowindow-wp .mec-marker-infowindow-count{width:60px;height:60px;display:block;text-align:center;line-height:60px;border:1px solid #40d9f1;border-radius:50%;font-size:32px;color:#40d9f1;float:left;margin-right:11px}.mec-marker-infowindow-wp .mec-marker-infowindow-content{overflow:hidden;padding-top:6px}.mec-marker-infowindow-wp .mec-marker-infowindow-content span{display:block;color:#222}.mec-marker-infowindow-wp .mec-marker-infowindow-content span:first-child{font-size:15px;font-weight:700}.mec-marker-wrap{display:inline-block;width:35px;height:35px;margin:15px 0 0 4px;border-radius:50% 50% 50% 0;background:#00cae9;animation-name:mec-map-bounce;animation-fill-mode:both;animation-duration:1s;border:3px solid #fff;cursor:pointer}.mec-marker-wrap .mec-marker{margin-top:5px;display:block;-webkit-transform:rotate(45deg);transform:rotate(45deg);text-align:center;color:#fff;font-size:17px}.mec-marker-wrap .mec-marker-pulse-wrap{-webkit-transform:rotate(45deg);transform:rotate(45deg);display:inline-block;margin-left:-11px;margin-top:0}.mec-marker-wrap .mec-marker-pulse{display:inline-block;background:#c5c5c5;border-radius:50%;height:14px;width:14px;-webkit-transform:rotateX(55deg);transform:rotateX(55deg);z-index:-2}.mec-marker-wrap .mec-marker-pulse:after{content:"";border-radius:50%;height:40px;width:40px;position:absolute;margin:-13px 0 0 -13px;animation:pulsate 1s ease-out;animation-iteration-count:infinite;opacity:0;box-shadow:0 0 1px 2px #00cae9;animation-delay:1.1s}@keyframes pulsate{0%{transform:scale(.1,.1);opacity:0}50%{opacity:1}100%{transform:scale(1.2,1.2);opacity:0}}@keyframes mec-map-bounce{0%{opacity:0;transform:translateY(-2000px) rotate(-45deg)}60%{opacity:1;transform:translateY(30px) rotate(-45deg)}80%{transform:translateY(-10px) rotate(-45deg)}100%{transform:translateY(0) rotate(-45deg)}}.mec-skin-grid-container .mec-skin-map-container,.mec-skin-list-container .mec-skin-map-container{margin-bottom:20px}.mec-single-event{margin-top:10px}.mec-single-event .mec-events-meta-group-countdown{color:#c9c9c9;text-align:center;margin-bottom:30px;padding:20px 30px;background:#fff;border:1px solid #e6e6e6;box-shadow:0 2px 0 0 rgba(0,0,0,.016)}.mec-events-meta-group-countdown .countdown-w{text-align:center;font-size:36px;margin:0 auto;padding:40px 0 0;position:relative;display:table;table-layout:fixed}.mec-events-meta-group-countdown .countdown-w .icon-w{font-size:24px}.mec-events-meta-group-countdown .countdown-w .label-w{font-size:15px;font-weight:300;letter-spacing:1px;text-transform:uppercase;position:relative}.mec-events-meta-group-countdown .countdown-w .block-w{display:table-cell;margin:0 20px 10px;position:relative;height:70px;width:190px;font-size:72px;transition:all .3s ease-in-out;line-height:1.2}.mec-events-meta-group-countdown .countdown-w .block-w.done-w{border:0 none}.mec-events-meta-group-countdown .countdown-w span{padding:24px 0 20px}.mec-events-meta-group-countdown .countdown-w .div-d{display:none}.mec-events-meta-group-countdown .countdown-w .countdown-message{display:none}.mec-events-meta-group-countdown .countdown-w .block-w i{display:none}#countdown{list-style:none;margin-bottom:0;margin-top:0;margin-left:0;padding-left:0}.mec-events-meta-group-countdown .mec-end-counts h3{display:inherit;text-align:center;font-size:16px;right:50%}.mec-countdown-details .countdown-w .clockdiv li p{margin-top:23px}@media (min-width:481px) and (max-width:768px){.mec-events-meta-group-countdown .countdown-w{padding:0}.mec-events-meta-group-countdown .countdown-w .label-w{font-size:12px;letter-spacing:0}.mec-events-meta-group-countdown .countdown-w span{font-size:34px}}@media (min-width:320px) and (max-width:480px){.mec-events-meta-group-countdown .countdown-w .label-w{font-size:10px}.mec-events-meta-group-countdown .countdown-w span{font-size:28px}.mec-countdown-details .countdown-w .clockdiv li p{margin-top:16px}}@media (max-width:320px){.mec-events-meta-group-countdown .countdown-w .label-w{font-size:9px;letter-spacing:0}.mec-events-meta-group-countdown .countdown-w span{font-size:22px}}.info-msg,.mec-error,.mec-success,.warning-msg{margin:10px 0;padding:10px;border-radius:3px 3px 3px 3px;font-size:13px}.info-msg{color:#059;background-color:#bef}.mec-success{color:#270;background-color:#dff2bf}.warning-msg{color:#9f6000;background-color:#feefb3}.mec-error{color:#d8000c;background-color:#ffbaba}.mec-fes-list ul{list-style:none}.mec-fes-form-cntt .dashicons-editor-help{display:none}.mec-fes-list ul li *{text-decoration:none!important}.mec-fes-list ul li{border-bottom:1px solid #eee;padding:14px 0;line-height:normal}.mec-fes-list ul li a{box-shadow:none;color:#181818}.mec-fes-list ul li a:hover{color:#40d9f1}.mec-fes-list ul li .mec-event-title{font-weight:600;font-size:15px}.mec-fes-list .mec-event-status{color:#fff!important;border-color:transparent!important}.mec-fes-form .mec-book-confirmed,.mec-fes-list .mec-book-confirmed{background:#50d477!important}.mec-fes-form .mec-book-pending,.mec-fes-list .mec-book-pending{background:#fcbe69!important}.mec-fes-form .mec-book-rejected,.mec-fes-list .mec-book-rejected{background:#fe686a!important}.mec-fes-form .mec-book-other,.mec-fes-list .mec-book-other{background:#40d9f1!important}.mec-fes-list ul li .mec-fes-event-remove,.mec-fes-list ul li .mec-fes-event-view{font-size:11px;padding:4px 8px;border:1px solid #e7e7e7;background:#f7f7f7;float:right;margin-left:5px}.mec-fes-list ul li .mec-fes-event-remove:hover{cursor:pointer;background:#f0b7b8;border-color:#cc4d4f}.mec-fes-list-top-actions a{font-size:11px;letter-spacing:2px;text-transform:uppercase;padding:8px 14px;border:1px solid #e3e3e3;background:#f5f5f5}.mec-fes-form-top-actions a,.mec-fes-list-top-actions a{position:relative;border:none;border-radius:0;color:#fff!important;display:inline-block;font-size:12px;letter-spacing:2px;line-height:1;text-transform:uppercase;font-weight:600;text-decoration:none;cursor:pointer;margin-bottom:21px;margin-right:10px;line-height:1;padding:17px 21px;background:#39c36e;-webkit-transition:all .21s ease;-moz-transition:all .21s ease;transition:all .21s ease}.mec-fes-form-top-actions a:hover,.mec-fes-list-top-actions a:hover{background:#222;color:#fff}.mec-fes-form .mec-form-row,.mec-fes-list .mec-form-row{margin-bottom:20px;clear:both}.mec-fes-form label{padding-right:10px;font-size:13px;display:block}.mec-fes-form .post-status{float:right!important;margin:0 5px;color:#fff;padding:0 10px;border-radius:12px;font-style:italic;font-size:18px}.mec-fes-form input[type=email],.mec-fes-form input[type=number],.mec-fes-form input[type=password],.mec-fes-form input[type=tel],.mec-fes-form input[type=text],.mec-fes-form select,.mec-fes-form textarea{border-radius:0;min-width:inherit;width:auto;display:inline;background:#fcfcfc;min-height:30px;font-size:13px;border:1px solid #e0e0e0;padding:10px;margin-bottom:20px;box-shadow:inset 0 2px 4px rgba(0,0,0,.051);clear:both}#mec_more_info_target{width:100%}@media only screen and (min-width:961px){.mec-fes-form input[type=email],.mec-fes-form input[type=password],.mec-fes-form input[type=text],.mec-fes-form textarea{width:100%;display:inline-block}}@media only screen and (max-width:768px){.mec-fes-form input[type=email],.mec-fes-form input[type=password],.mec-fes-form input[type=text],.mec-fes-form textarea{width:100%}}.mec-fes-form input[type=text]#mec_fes_title{width:100%;height:auto;color:#000;font-size:36px;font-family:Montserrat,Helvetica,Arial,sans-serif;background:0 0!important;font-weight:400}.mec-fes-form input[type=checkbox],.mec-fes-form input[type=radio]{display:inline!important;float:left;margin:5px 5px 0 0}.mec-fes-form input[type=email]:focus,.mec-fes-form input[type=number]:focus,.mec-fes-form input[type=password]:focus,.mec-fes-form input[type=tel]:focus,.mec-fes-form input[type=text]:focus,.mec-fes-form select:focus,.mec-fes-form textarea:focus{border:1px solid #aaa;color:#444;background:#fff;-moz-box-shadow:0 0 3px rgba(0,0,0,.2);-webkit-box-shadow:0 0 3px rgba(0,0,0,.2);box-shadow:0 0 3px rgba(0,0,0,.2);outline:0}.mec-form-row .mec-color{cursor:pointer}.mec-form-row.mec-available-color-row span{margin:10px;width:14px;height:14px;display:inline-block;margin-right:6px;border-radius:20px 20px 20px 20px;vertical-align:middle}.mec-form-row.mec-available-color-row span:first-of-type{margin-left:0}.mec-fes-form.mec-fes-form .mec-tooltip{display:inline}.mec-fes-form-cntt .dashicons-editor-help{display:block}.mec-fes-form .mec-tooltip:hover:after,.mec-fes-form .mec-tooltip:hover:before{display:none}.mec-fes-form.mec-fes-form .mec-tooltip{display:inline-flex;bottom:7px}.mec-fes-form .mec-tooltip .box{min-width:300px;max-width:600px;display:inline-block;left:26px;top:50%;transform:translateY(-50%);padding:0;margin-top:8px;background-color:#535a61;color:#fff;font-weight:300;font-size:14px;letter-spacing:.5px;line-height:1.3;position:absolute;z-index:9999999;box-sizing:border-box;border-radius:6px;box-shadow:0 4px 45px -8px #444b50;visibility:hidden;opacity:0;transition:opacity .23s}#webnus-dashboard .mec-fes-form .mec-tooltip .box p,.mec-fes-form .mec-tooltip .box p{color:#fff;font-size:14px;line-height:1.3;margin:0}.mec-fes-form .mec-tooltip:hover .box{visibility:visible;opacity:1}.mec-fes-form .mec-tooltip:hover .box{padding:20px;border-radius:8px}.mec-fes-form .mec-tooltip .box h5{color:#fff;font-size:17px;font-weight:600;margin:-30px -20px;padding:20px 0;text-align:center;margin-bottom:10px;background:#3a3f44;border-bottom:1px solid #32363a;border-radius:6px 6px 0 0;z-index:9999}#webnus-dashboard .mec-fes-form .mec-tooltip .box p a,.mec-fes-form .mec-tooltip .box p a{color:#40d9f1;margin-top:10px;margin-left:0;font-weight:400;position:relative;text-decoration:none;display:block;width:max-content}.mec-fes-form .mec-tooltip .box a:hover{color:#f90}.mec-fes-form .mec-tooltip .box:after{display:block;position:absolute!important;top:100%!important;right:50%!important;margin-top:-6px!important;margin-right:-6px!important;width:12px!important;height:24px!important;overflow:hidden!important;transform:rotate(-90deg)!important}.mec-fes-form .mec-tooltip .box:before{display:block;content:''!important;position:absolute!important;width:12px;height:12px;left:-10px!important;top:50%!important;transform:translate(50%,-50%) rotate(-45deg)!important;background-color:#535a61!important;box-shadow:0 8px 9px -4px #535a61!important;z-index:0!important}.mec-fes-form .mec-tooltip .box.top{left:50%;top:0;transform:translate(-50%,-100%);margin-top:0;margin-left:-10px}.mec-fes-form .mec-tooltip .box.top:after{top:50%!important;right:100%!important}.mec-fes-form .mec-tooltip .box.top:before{left:50%!important;top:100%!important}.mec-fes-form .mec-tooltip .box.bottom{left:50%;top:auto;bottom:0;transform:translate(-50%,100%);margin-bottom:-20px;margin-left:-10px}.mec-fes-form .mec-tooltip .box.bottom:after{top:0!important;right:50%!important;background-color:#3a3f44!important}.mec-fes-form .mec-tooltip .box.bottom:before{left:50%!important;top:-7px!important;transform:translateX(-50%);background-color:#3a3f44!important}.mec-fes-form .mec-tooltip .box.left{left:auto;right:26px;top:50%;transform:translateY(-50%)}.mec-fes-form .mec-tooltip .box.left:before{right:0!important;left:auto!important;top:50%!important}.mec-fes-form .mec-tooltip{display:inline-block;position:relative;margin-right:10px;cursor:help;bottom:5px;left:3px}.mec-fes-form .mec-tooltip:last-child{margin-right:0}.mec-fes-form .mec-tooltip:hover:after{background:#313130;border-radius:5px;bottom:24px;color:#fff;content:attr(title);left:-75px;padding:10px;position:absolute;z-index:98;width:240px}.mec-fes-form .mec-tooltip:hover:before{border:solid;border-color:#313130 transparent;border-width:6px 6px 0;bottom:18px;content:"";left:30%;position:absolute;z-index:99}.mec-fes-form .mec-tooltip .dashicons-before:before{font-size:24px;color:#008aff;line-height:37px}.mec-fes-form .mec-tooltip a:focus{box-shadow:none}.mec-form-row .bootstrap_unvalid{display:block;border:2px solid red;position:relative;display:inline-block;border-bottom:1px dotted #000}.mec-fes-form .mec-tooltiptext{visibility:hidden;width:120px;background-color:red;color:#fff;text-align:center;border-radius:6px;padding:5px 0;position:absolute;z-index:1}.mec-fes-form .mec-tooltip .content p a{display:none}@media only screen and (min-width:961px){.mec-fes-form .mec-fes-form-cntt,.mec-fes-form .mec-fes-form-sdbr{width:68%;float:left;padding-right:20px}.mec-fes-form .mec-fes-form-sdbr{width:32%;padding-right:0;padding-left:20px}.mec-fes-submit-mobile{display:none}}.mec-fes-form .mec-meta-box-fields{padding:20px;border:1px solid #e6e6e6;margin-bottom:20px;box-shadow:0 2px 0 0 rgba(0,0,0,.016)}.mec-fes-form .mec-meta-box-fields h4{margin:-20px;font-size:15px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:10px 20px;background:#f5f5f5;margin-bottom:20px}.mec-fes-sub-button{width:100%}.mec-available-color-row span.color-selected{background-color:#fdd700;border:3px solid #fff;box-sizing:content-box;box-shadow:0 0 0 2px #437df9}.mec-fes-loading:before{content:url(../img/ajax-loader.gif);background:0 0;border-style:none;display:block;margin-left:47%}.mec-fes-form #mec_meta_box_hourly_schedule_days .mec-form-row input[type=text]{width:23%;margin-right:1.4%}.mec-fes-form #mec_meta_box_hourly_schedule_days .mec-form-row{border-bottom:1px solid #e8e8e8;padding-bottom:15px}.mec-fes-form #mec_meta_box_hourly_schedule_days .mec-form-row:last-of-type{border:none}.mec-fes-form #mec_meta_box_hourly_schedule_days .mec-form-row input[type=text].mec-col-1{width:10%}.mec-fes-form #mec_meta_box_hourly_schedule_days .mec-form-row input[type=text].mec-col-6{width:39%}.mec-fes-form #mec_meta_box_hourly_schedule_days .mec-form-row button{margin-right:0;padding:9px 26px}@media only screen and (max-width:768px){.mec-fes-form #mec_meta_box_hourly_schedule_days .mec-form-row input[type=text]{width:100%!important}}.mec-wrap .mec-totalcal-box{position:relative;border:1px solid #efefef;padding:20px 5px;margin:0 0 20px;background:#fafafa;overflow:hidden;box-shadow:0 3px 2px 0 rgba(0,0,0,.012);min-height:78px}.mec-wrap .mec-totalcal-box i{float:left;margin:0;width:36px;height:36px;background:#fff;border:1px solid #efefef;text-align:center;padding:10px 0;font-size:15px;color:#888}.mec-wrap .mec-totalcal-box .mec-totalcal-view span,.mec-wrap .mec-totalcal-box input,.mec-wrap .mec-totalcal-box select{width:auto;min-height:36px;height:36px;line-height:36px;background:#fff;font-size:13px;color:#777;border:1px solid #efefef;margin:0 0 0 -1px;float:left;padding:0 5px;font-family:Roboto,Helvetica,Arial,sans-serif}.mec-wrap .mec-totalcal-box input[type=submit]{cursor:pointer;padding:0 16px;text-transform:uppercase;font-size:11px;font-family:Montserrat,Helvetica,Arial,sans-serif;transition:all .21s ease}.mec-wrap .mec-totalcal-box input[type=submit]:hover{background:#222;color:#fff}.mec-wrap .mec-totalcal-box .mec-totalcal-view span{display:inline-block;text-transform:uppercase;font-family:Montserrat,Helvetica,Arial,sans-serif;font-size:11px;padding:0 12px;cursor:pointer}.mec-wrap .mec-totalcal-box .mec-totalcal-view span:hover{color:#40d9f1}.mec-wrap .mec-totalcal-box .mec-totalcal-view span.mec-totalcalview-selected{color:#fff;background:#40d9f1;border-color:#40d9f1}.mec-wrap .mec-totalcal-box .mec-totalcal-view{text-align:right;float:right}.mec-wrap .mec-totalcal-box input[type=search]{width:calc(100% - 36px)}@media only screen and (min-width:961px) and (max-width:1200px){.mec-wrap .mec-totalcal-box{padding:37px 5px}}@media only screen and (max-width:960px){.mec-wrap .mec-totalcal-box .col-md-3,.mec-wrap .mec-totalcal-box .col-md-4,.mec-wrap .mec-totalcal-box .col-md-5{width:100%;float:none;padding-bottom:20px;clear:both;overflow:hidden}}@media only screen and (min-width:768px) and (max-width:960px){.mec-wrap .mec-totalcal-box .col-md-4{position:relative;right:10px;top:20px;width:initial}.mec-wrap .mec-totalcal-box .col-md-5{padding-bottom:0}.mec-wrap .mec-totalcal-box{padding:37px 5px}}@media only screen and (max-width:767px){.mec-wrap .mec-totalcal-box .mec-totalcal-view{float:none}.mec-wrap .mec-totalcal-box .col-md-4{padding-bottom:0}}@media only screen and (max-width:479px){.mec-wrap .mec-totalcal-box .mec-totalcal-view span{padding:0 8px;font-size:10px}.mec-wrap .mec-totalcal-box input[type=submit]{padding:0 10px;font-size:10px}}@media only screen and (min-width:961px){.mec-wrap .mec-wrap.mec-sm959 .mec-totalcal-box .col-md-5,.mec-wrap.mec-sm959 .mec-totalcal-box .col-md-3{width:100%;float:none;padding-bottom:20px;clear:both;overflow:hidden}.mec-wrap.mec-sm959 .mec-totalcal-box .col-md-4{position:absolute;right:10px;top:20px;width:initial}.mec-wrap.mec-sm959 .mec-totalcal-box .col-md-5{padding-bottom:0;width:100%}}@media (min-width:961px) and (max-width:1200px){.mec-full-calendar-wrap .mec-totalcal-box{padding:20px 20px}.mec-full-calendar-wrap .mec-totalcal-box .col-md-2{width:50%}.mec-full-calendar-wrap .mec-totalcal-box .col-md-2,.mec-full-calendar-wrap .mec-totalcal-box .col-md-3,.mec-full-calendar-wrap .mec-totalcal-box .col-md-4{padding-bottom:20px!important}.mec-full-calendar-wrap .mec-totalcal-box .col-md-2 select{min-width:calc(100% - 36px)}.mec-full-calendar-wrap .mec-totalcal-box .col-md-3 select{min-width:calc(30% - 10px)}.mec-full-calendar-wrap .mec-totalcal-box .col-md-3:last-child select{min-width:calc(50% - 19px)}.mec-full-calendar-wrap .mec-totalcal-box .mec-totalcal-view{margin-right:10px}.mec-full-calendar-wrap .mec-totalcal-box .mec-totalcal-view span{font-size:10px;text-align:center}}@media (max-width:960px){.mec-full-calendar-wrap .mec-totalcal-box{padding:20px 20px}.mec-full-calendar-wrap .mec-totalcal-box .col-md-2{width:50%}.mec-full-calendar-wrap .mec-totalcal-box .col-md-2,.mec-full-calendar-wrap .mec-totalcal-box .col-md-3,.mec-full-calendar-wrap .mec-totalcal-box .col-md-4{padding-bottom:10px!important}.mec-full-calendar-wrap .mec-totalcal-box .col-md-2 select{min-width:calc(100% - 36px);margin-bottom:10px}.mec-full-calendar-wrap .mec-totalcal-box .mec-totalcal-view{margin-right:10px}.mec-full-calendar-wrap .mec-totalcal-box .mec-totalcal-view span{font-size:10px;text-align:center}.mec-full-calendar-wrap .mec-totalcal-box .col-md-2{width:100%}.mec-full-calendar-wrap .mec-totalcal-box .col-md-4{position:absolute;top:20px}}@media (min-width:780px) and (max-width:960px){.mec-full-calendar-wrap .mec-totalcal-box .col-md-4{position:absolute;top:20px}}@media(max-width:780px){.mec-full-calendar-wrap .mec-totalcal-box .col-md-3 select{width:calc(50% - 18px)!important}.mec-full-calendar-wrap .mec-totalcal-box .col-md-4{position:unset;padding-right:0}.mec-full-calendar-wrap .mec-totalcal-box .mec-totalcal-view span{min-width:20%;text-align:center;font-size:10px}.mec-wrap .mec-totalcal-box .mec-totalcal-view span{padding:0 7px;margin-top:20px}}@media(max-width:480px){.mec-full-calendar-wrap .mec-totalcal-box .mec-totalcal-view span{min-width:20%;text-align:center;font-size:10px}}.mec-search-form{padding:20px 10px}.mec-search-form .mec-dropdown-wrap{display:table;min-height:55px;width:100%}.mec-search-form .mec-date-search,.mec-search-form .mec-dropdown-search,.mec-search-form .mec-text-input-search{padding:0 10px;float:left;min-height:55px}.mec-search-form .mec-date-search,.mec-search-form .mec-text-input-search{width:50%;min-height:36px;display:block}.mec-full-calendar-wrap .mec-search-form .mec-date-search,.mec-full-calendar-wrap .mec-search-form .mec-text-input-search{width:100%}.mec-full-calendar-wrap .mec-search-form .col-md-3,.mec-full-calendar-wrap .mec-search-form .col-md-5,.mec-full-calendar-wrap .mec-search-form .col-md-6,.mec-full-calendar-wrap .mec-search-form .col-md-8{padding:0}.mec-widget .mec-search-form .mec-date-search,.mec-widget .mec-search-form .mec-text-input-search{width:100%}.mec-widget .mec-search-form .mec-text-input-search{margin-top:10px}.mec-search-form .mec-date-search{clear:left}.mec-search-form .mec-dropdown-wrap .mec-dropdown-search{display:table-cell;float:none}.mec-widget .mec-search-form .mec-dropdown-wrap .mec-dropdown-search{display:block}.mec-wrap .mec-search-form .mec-dropdown-wrap .mec-dropdown-search select{width:calc(100% - 36px)}.mec-wrap .mec-search-form .mec-date-search select{width:calc(100% - 106px)}.mec-wrap .mec-search-form .mec-date-search select:last-child{width:70px}@media only screen and (max-width:767px){.mec-search-form .mec-date-search,.mec-search-form .mec-dropdown-search,.mec-search-form .mec-text-input-search{width:100%;float:none}.mec-search-form .mec-date-search{min-height:55px}.mec-search-form .mec-dropdown-wrap .mec-dropdown-search{display:block;width:50%;float:left}}@media only screen and (max-width:960px){.mec-wrap .mec-search-form .mec-date-search select{width:calc(100% - 124px)}.mec-wrap .mec-search-form .mec-date-search select:last-child{width:70px}}@media only screen and (max-width:479px){.mec-search-form .mec-dropdown-wrap .mec-dropdown-search{display:block;width:100%;float:none}}.ui-datepicker{background-color:#fff;border:1px solid #66afe9;border-radius:4px;box-shadow:0 0 8px rgba(102,175,233,.6);display:none;margin-top:4px;padding:10px;width:240px}.ui-datepicker a,.ui-datepicker a:hover{text-decoration:none;cursor:pointer}.ui-datepicker a:hover,.ui-datepicker td:hover a{color:#2c6396;-webkit-transition:color .1s ease-in-out;-moz-transition:color .1s ease-in-out;-o-transition:color .1s ease-in-out;transition:color .1s ease-in-out}.ui-datepicker .ui-datepicker-header{margin-bottom:4px;text-align:center}.ui-datepicker .ui-datepicker-title{font-weight:700}.ui-datepicker .ui-datepicker-next,.ui-datepicker .ui-datepicker-prev{cursor:default;font-family:dashicons;-webkit-font-smoothing:antialiased;font-style:normal;font-weight:400;height:20px;line-height:1.4;margin-top:2px;width:20px}.ui-datepicker .ui-datepicker-prev{float:left;text-align:left}.ui-datepicker .ui-datepicker-next{float:right;text-align:center}.ui-datepicker .ui-datepicker-prev:before{content:"\f341"}.ui-datepicker .ui-datepicker-next:before{content:"\f345"}.ui-datepicker .ui-icon{display:none}.ui-datepicker .ui-datepicker-calendar{table-layout:fixed;width:100%}.ui-datepicker .ui-datepicker-calendar td,.ui-datepicker .ui-datepicker-calendar th{text-align:center;padding:4px 0}.ui-datepicker .ui-datepicker-calendar td{border-radius:4px;-webkit-transition:background-color .1s ease-in-out,color .1s ease-in-out;-moz-transition:background-color .1s ease-in-out,color .1s ease-in-out;-o-transition:background-color .1s ease-in-out,color .1s ease-in-out;transition:background-color .1s ease-in-out,color .1s ease-in-out}.ui-datepicker .ui-datepicker-calendar td:hover{background-color:#eee;cursor:pointer}.ui-datepicker .ui-datepicker-calendar td a{text-decoration:none}.ui-datepicker .ui-datepicker-current-day{background-color:#4289cc}.ui-datepicker .ui-datepicker-current-day a{color:#fff}.ui-datepicker .ui-datepicker-calendar .ui-datepicker-unselectable:hover{background-color:#fff;cursor:default}.event-carousel-type1-head .mec-event-image{position:relative;min-height:150px}.event-carousel-type1-head .mec-event-image img{width:100%}.mec-event-carousel-content .mec-event-carousel-title a{transition:all .2s ease}.event-carousel-type1-head .mec-event-date-carousel{position:absolute;top:25px;left:1px;font-size:41px;width:160px;color:#fff;font-weight:500;background-color:#40d9f1;padding-left:21px;height:97px;line-height:2.3;padding-right:85px}.event-carousel-type1-head .mec-event-date-carousel:after{content:"";position:absolute;display:inline-block;z-index:-1;bottom:-13px;left:5px;width:0;border-width:13px;border-style:solid;border-color:transparent transparent #40d9f1 transparent;transform:rotate(45deg)}.event-carousel-type1-head .mec-event-date-info{font-size:12px;font-weight:300;position:absolute;top:27px;left:75px}.event-carousel-type1-head .mec-event-date-info-year{font-size:12px;font-weight:300;position:absolute;top:45px;left:75px}.mec-event-carousel-content{border:1px solid #e8e8e8;border-top:none;margin-top:-5px;padding:34px 9px 11px 37px}.mec-event-carousel-content .mec-event-carousel-title a{font-size:23px;font-weight:500;color:#000;letter-spacing:-1px}.mec-event-carousel-content p{font-size:14px;color:#7a7272;font-weight:300}.mec-owl-crousel-skin-type1 .owl-item .mec-event-article{padding:0 19px}.mec-event-carousel-type1 .owl-page.active span{background-color:#00aeef;height:14px;width:14px}.mec-event-carousel-type1 .mec-event-carousel-content{margin-bottom:15px;box-shadow:0 1px 2px rgba(0,0,0,.04);transition:all .27s ease}.mec-event-carousel-type1 .mec-event-carousel-content:hover{box-shadow:0 0 35px rgba(0,0,0,.07)}@media only screen and (min-width:768px) and (max-width:1000px),(min-width:270px) and (max-width:448px){.event-carousel-type1-head .mec-event-date-carousel{font-size:25px;line-height:2.5;padding-right:70px;height:64px;width:120px}.event-carousel-type1-head .mec-event-date-carousel:after{left:7px}.event-carousel-type1-head .mec-event-date-info{font-size:10px;top:13px;left:55px}.event-carousel-type1-head .mec-event-date-info-year{font-size:10px;top:25px;left:55px}.event-carousel-type1-head .mec-event-date-carousel:after{top:48px}}.event-carousel-type2-head{background:#fff;border:1px solid #e6e6e6}.event-carousel-type2-head .mec-event-carousel-content-type2{margin-top:15px;min-height:182px}.event-carousel-type2-head .mec-event-carousel-content-type2 .mec-event-date-info{font-size:15px;color:#9a9a9a;font-weight:300}.event-carousel-type2-head .mec-event-carousel-content-type2 .mec-event-carousel-title{font-size:26px;font-weight:700;color:#1c1d21;margin-top:15px;letter-spacing:-1px}.mec-event-carousel-content-type2 .mec-event-carousel-title a{color:inherit}.mec-event-carousel-type2 .event-carousel-type2-head .mec-event-carousel-content-type2 p{font-size:16px;font-weight:300;color:#444}.event-carousel-type2-head .mec-event-footer-carousel-type2{margin-top:33px;position:relative}.mec-event-carousel-type2 .mec-event-footer-carousel-type2 .mec-event-sharing-wrap{left:0}.event-carousel-type2-head .mec-event-footer-carousel-type2 .mec-event-sharing-wrap>li{border:none;-webkit-transition:all .25s ease;transition:all .25s ease}.event-carousel-type2-head .mec-event-footer-carousel-type2 .mec-booking-button{border:1px solid #e4e4e4;float:right;padding:7px 23px 7px;font-size:12px;text-transform:uppercase;color:#707070;font-weight:500;-webkit-transition:all .25s ease;transition:all .25s ease}.event-carousel-type2-head .mec-event-footer-carousel-type2 .mec-booking-button:hover{color:#fff}.mec-event-article .event-carousel-type2-head{padding:10%;margin-right:-1px}.mec-event-carousel-type2 .mec-owl-carousel .owl-wrapper-outer{border-right:1px solid #e6e6e6}.mec-wrap .mec-event-carousel-type2 .owl-next,.mec-wrap .mec-event-carousel-type2 .owl-prev,.mec-wrap .mec-event-carousel-type3 .owl-next,.mec-wrap .mec-event-carousel-type3 .owl-prev,.mec-wrap .mec-event-carousel-type4 .owl-next,.mec-wrap .mec-event-carousel-type4 .owl-prev{transition:all .25s ease;-webkit-transition:all .25s ease;position:absolute;top:47%;background-color:transparent!important}.mec-event-carousel-type2 .owl-next{right:-60px}.mec-event-carousel-type2 .owl-prev{left:-60px}.mec-event-carousel-type2 .owl-next i,.mec-event-carousel-type2 .owl-prev i,.mec-event-carousel-type3 .owl-next i,.mec-event-carousel-type3 .owl-prev i,.mec-event-carousel-type4 .owl-next i,.mec-event-carousel-type4 .owl-prev i{font-size:40px;color:#282828}.mec-event-carousel-type2 .owl-next i:hover,.mec-event-carousel-type2 .owl-prev i:hover,.mec-event-carousel-type3 .owl-next i:hover,.mec-event-carousel-type3 .owl-prev i:hover{color:#000;cursor:pointer}.mec-event-footer-carousel-type2 .mec-event-sharing-wrap .mec-event-sharing{top:auto;bottom:60px}.mec-event-footer-carousel-type2 .mec-event-sharing-wrap .mec-event-sharing:after,.mec-event-footer-carousel-type2 .mec-event-sharing-wrap .mec-event-sharing:before{top:auto;bottom:-19px;border-color:#e2e2e2 transparent transparent transparent}.mec-event-footer-carousel-type2 .mec-event-sharing-wrap .mec-event-sharing:after{bottom:-18px;border-color:#fff transparent transparent transparent}@media only screen and (min-width:320px) and (max-width:768px){.mec-event-carousel-type2 .owl-next,.mec-event-carousel-type2 .owl-prev,.mec-event-carousel-type3 .owl-next,.mec-event-carousel-type3 .owl-prev,.mec-event-carousel-type4 .owl-next,.mec-event-carousel-type4 .owl-prev{position:initial;top:100%}}.mec-event-carousel-type3 .mec-event-article{margin:0 10px}.event-carousel-type3-head .mec-event-image,.event-carousel-type3-head .mec-event-image img{width:100%;height:auto}.event-carousel-type3-head .mec-event-footer-carousel-type3{background:#fff;display:inline-block;width:calc(100% - 40px);margin-top:-74px;position:relative;margin-left:20px;margin-right:20px;margin-bottom:6px;padding:8% 11%;box-shadow:0 2px 10px -2px rgba(0,0,0,.2)}.event-carousel-type3-head .mec-event-footer-carousel-type3 .mec-booking-button{border:1px solid #e4e4e4;text-transform:uppercase;float:right;padding:7px 23px 7px;font-size:12px;color:#707070;font-weight:500}.event-carousel-type3-head .mec-event-footer-carousel-type3 .mec-booking-button:hover{color:#fff}.mec-event-footer-carousel-type3 span{font-size:15px;color:#9a9a9a;font-weight:300;display:block;margin-top:30px}.mec-event-footer-carousel-type3 .mec-event-carousel-title{font-size:29px;font-weight:700}.event-carousel-type3-head .mec-event-footer-carousel-type3 .mec-event-carousel-title{font-size:26px;font-weight:700;color:#1c1d21;margin-top:15px;letter-spacing:-1px}.mec-event-footer-carousel-type3 .mec-event-carousel-title a{color:inherit}.event-carousel-type3-head .mec-event-footer-carousel-type3 p{font-size:16px;font-weight:300;color:#444!important;margin-bottom:36px}.mec-event-carousel-type3 .owl-next{right:-70px}.mec-event-carousel-type3 .owl-prev{left:-70px}.mec-event-footer-carousel-type3 .mec-event-sharing-wrap{left:11%}.mec-event-footer-carousel-type3 .mec-event-sharing-wrap .mec-event-sharing{top:auto;bottom:60px}.mec-event-footer-carousel-type3 .mec-event-sharing-wrap .mec-event-sharing:after,.mec-event-footer-carousel-type3 .mec-event-sharing-wrap .mec-event-sharing:before{top:auto;bottom:-19px;border-color:#e2e2e2 transparent transparent transparent}.mec-event-footer-carousel-type3 .mec-event-sharing-wrap .mec-event-sharing:after{bottom:-18px;border-color:#fff transparent transparent transparent}.event-carousel-type3-head .mec-end-date-label{display:inline;margin-left:2px}.event-carousel-type4-head.clearfix{position:relative;overflow:hidden;background:#fff}.event-carousel-type4-head .mec-event-overlay{position:absolute;left:0;right:0;bottom:0;top:0;width:auto;height:auto;background-color:rgba(36,36,36,.4);transition:all .33s ease-in-out}.mec-event-hover-carousel-type4{font-size:15px;color:#fff;position:absolute;bottom:0;padding:50px 35px;transition:all .33s ease-in-out;opacity:0;visibility:hidden}.mec-event-carousel-type4 .mec-event-article{margin:0 10px}.mec-event-carousel-type4 .mec-event-article:hover .mec-event-hover-carousel-type4{opacity:1;visibility:visible}.mec-event-hover-carousel-type4 .mec-event-icon{font-size:18px;float:left;margin-right:14px;color:#fff;padding:13px}.mec-event-hover-carousel-type4 .mec-event-date{font-size:11px;text-transform:uppercase;font-weight:400;line-height:1.6}.mec-event-hover-carousel-type4 .mec-event-date span{display:block;font-weight:700;font-size:14px}.mec-event-hover-carousel-type4 .mec-event-title{color:#fff;margin:20px 0 38px;font-size:16px;font-weight:700;text-transform:uppercase;font-style:normal}.mec-event-hover-carousel-type4 .mec-btn-wrapper{text-align:left}.mec-event-hover-carousel-type4 .mec-event-button{color:#fff;background-color:#191919;border:2px #191919 solid;padding:10px 14px;letter-spacing:1.5px;font-size:11px;font-weight:700;font-style:normal;transition:all .22s ease;text-decoration:none}.mec-event-hover-carousel-type4 .mec-event-button:hover{color:#191919;background-color:#fff;border-color:#fff;border-radius:1px}.mec-event-carousel-type4 .owl-next{right:-70px}.mec-event-carousel-type4 .owl-prev{left:-70px}.mec-carousel-type4-head{margin-bottom:25px}.mec-carousel-type4-head-title{padding:0 11px;text-align:left;font-weight:700;font-size:20px;color:#000}.mec-carousel-type4-head-link{text-align:right;padding:0 11px}.mec-carousel-type4-head-link a{background:#222;color:#fff;padding:10px 38px;transition:all .3s ease}.mec-carousel-type4-head-link a:hover,.mec-carousel-type4-head-link a:visited{color:#fff}@media (max-width:960px){.mec-event-carousel-type4 .owl-stage{left:-50px}}.mec-wrap .mec-event-countdown-style1{color:#fff;padding:0!important;display:table;background:#437df9}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part1{z-index:5;padding:50px 1% 50px 4%;display:table-cell;float:none;vertical-align:middle}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part2{background-color:rgba(0,0,0,.05);height:100%;padding-top:0;display:table-cell;float:none;position:relative;vertical-align:middle}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part3{background-color:#f8f8f8;display:table-cell;float:none;text-align:center;vertical-align:middle}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part1 .mec-event-title{color:#fff;font-size:15px;margin-top:30px}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part1 .mec-event-upcoming{font-size:36px;font-weight:700;line-height:1;margin-top:0}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part2 .mec-event-countdown>div{display:inline-block}.mec-event-countdown-style1 .mec-events-meta-group-countdown{color:#c9c9c9;margin-bottom:30px;padding:20px 30px;background:#fff;border:1px solid #e6e6e6;box-shadow:0 2px 0 0 rgba(0,0,0,.016)}.mec-event-countdown-style1 .mec-event-countdown-part1 .mec-event-upcoming span{display:block}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part2:after{content:"";position:absolute;display:inline-block;z-index:1;top:50%;margin-top:-11px;right:-24px;width:0;border-width:12px;border-style:solid;border-color:transparent transparent transparent #4077ed}.mec-event-countdown-style1 .mec-event-countdown-part2 .mec-event-date-place{text-align:center;padding-bottom:8px}.mec-event-countdown-part2 .mec-event-place,.mec-event-countdown-style1 .mec-event-countdown-part2 .mec-event-date{display:inline;font-size:14px;padding:0 5px;text-align:center}.mec-event-countdown-style1 .mec-event-countdown-part3 .mec-event-button{display:inline-block;padding:14px 30px;vertical-align:middle;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#fff;background:#4077ed;transition:all .24s ease}.mec-event-countdown-style1 .mec-event-countdown-part3 .mec-event-button:hover{background:#222}.mec-event-countdown-style1 .mec-event-countdown{text-align:center;display:table;table-layout:fixed;margin:0 auto}.mec-event-countdown-style1 .mec-event-countdown .label-w{letter-spacing:1px;text-transform:uppercase;position:relative}.mec-event-countdown-style1 .mec-event-countdown .block-w{display:table-cell;margin:0 20px 10px;position:relative;height:70px}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown li{background-color:rgba(0,0,0,.1);margin:5px;padding:20px 0;min-width:94px}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown li span{font-size:30px}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown li .label-w{font-size:12px;color:#fff;margin:8px 0 0;line-height:1}@media only screen and (min-width:1200px){.mec-wrap.mec-sm959 .mec-event-countdown-style1 .mec-event-countdown-part1,.mec-wrap.mec-sm959 .mec-event-countdown-style1 .mec-event-countdown-part2,.mec-wrap.mec-sm959 .mec-event-countdown-style1 .mec-event-countdown-part3{width:100%;display:block;padding-top:50px;padding-bottom:50px}.mec-wrap.mec-sm959 .mec-event-countdown-style1 .mec-event-countdown-part2:after{border-color:#4077ed transparent transparent transparent;top:auto;margin-top:0;bottom:-24px;margin-left:-11px;left:50%}}@media (max-width:960px){.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part1,.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part2,.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part3{width:100%;display:block;padding-top:50px;padding-bottom:50px}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part2:after{border-color:#4077ed transparent transparent transparent;top:auto;margin-top:0;bottom:-24px;margin-left:-11px;left:50%;transform:rotate(90deg)}}@media (max-width:480px){.mec-event-countdown-style1 .mec-event-countdown .block-w{margin:3px;height:auto}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown li{padding:10px 5px;min-width:50px;margin:3px 1px}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown li span{font-size:15px}.mec-wrap .mec-event-countdown-style1 .mec-event-countdown li .label-w{font-size:8px}.mec-event-countdown-style1 .mec-event-countdown-part2 .mec-event-date-place{display:inline}}.mec-wrap .mec-event-countdown-style2{color:#fff;padding:30px 0;background:#437df9;max-width:600px}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown-part1,.mec-wrap .mec-event-countdown-style2 .mec-event-countdown-part2,.mec-wrap .mec-event-countdown-style2 .mec-event-countdown-part3{width:100%;float:none;vertical-align:middle;padding:50px 10% 50px 10%}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown-part2{padding-top:12%;padding-bottom:0}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown-part1 .mec-event-title{color:#fff;font-size:15px;margin-top:30px}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown-part1 .mec-event-upcoming{font-size:36px;font-weight:700;line-height:1;margin-top:0}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown-part2 .mec-event-countdown>div{display:inline-block}.mec-event-countdown-style2 .mec-events-meta-group-countdown{color:#c9c9c9;margin-bottom:30px;padding:20px 30px;background:#fff;box-shadow:0 2px 0 0 rgba(0,0,0,.016)}.mec-event-countdown-style2 .mec-event-countdown-part1 .mec-event-upcoming span{display:block}.mec-event-countdown-style2 .mec-event-countdown-part2 .mec-event-date-place{text-align:left;padding-bottom:8px}.mec-event-countdown-part2 .mec-event-place,.mec-event-countdown-style2 .mec-event-countdown-part2 .mec-event-date{display:inline;font-size:14px;padding:0 8px}.mec-event-countdown-style2 .mec-event-countdown-part3 .mec-event-button{display:inline-block;padding:14px 30px;vertical-align:middle;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#222;background:#fff;transition:all .24s ease}.mec-event-countdown-style2 .mec-event-countdown-part3 .mec-event-button:hover{background:#222;color:#fff}.mec-event-countdown-style2 .mec-event-countdown{text-align:center;display:table;table-layout:fixed;margin:0}.mec-event-countdown-style2 .mec-event-countdown .label-w{letter-spacing:1px;text-transform:uppercase;position:relative}.mec-event-countdown-style2 .mec-event-countdown .block-w{display:table-cell;margin:0 20px 10px;position:relative;height:70px}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li{background-color:rgba(0,0,0,.1);margin:5px;padding:20px 0;min-width:94px}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li span{font-size:30px}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li .label-w{font-size:12px;color:#fff;margin:8px 0 0;line-height:1}@media only screen and (max-width:767px){.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li{min-width:80px;padding:15px}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li span{font-size:26px}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li .label-w{font-size:11px}}@media only screen and (max-width:479px){.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li{min-width:40px;padding:15px 10px;margin:2px}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li span{font-size:20px}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li .label-w{font-size:9px}}@media (max-width:380px){.mec-event-countdown-style2 .mec-event-countdown .block-w{margin:3px;height:auto}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li{padding:10px 4px;margin:4px 1px}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li span{font-size:15px}.mec-wrap .mec-event-countdown-style2 .mec-event-countdown li .label-w{font-size:7px}}.mec-wrap .mec-event-countdown-style3{color:#fff;padding:0;background:#282828;display:table;width:100%}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown-part1{width:68%;padding:50px 1% 50px 4%;vertical-align:middle;display:table-cell;position:relative}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown-part2{width:32%;display:table-cell;position:relative;padding-bottom:0;padding-top:0}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown-part2 img{width:100%;display:block}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown-part1 .mec-event-countdown-part-title span{font-weight:300;display:block}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown-part1 .mec-event-upcoming{color:#fff;font-size:36px;letter-spacing:-2px;font-weight:700;line-height:1;margin-top:-10px}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown-part2 .mec-event-countdown>div{display:inline-block}.mec-event-countdown-style3 .mec-events-meta-group-countdown{color:#c9c9c9;margin-bottom:30px;padding:20px 30px;background:#fff;border:1px solid #e6e6e6;box-shadow:0 2px 0 0 rgba(0,0,0,.016)}.mec-event-countdown-style3 .mec-event-countdown-part2 .mec-event-date-place{text-align:center;padding-bottom:8px}.mec-event-countdown-part2 .mec-event-place,.mec-event-countdown-style3 .mec-event-countdown-part2 .mec-event-date{display:inline;font-size:14px;padding:0 5px;text-align:center}.mec-event-countdown-style3 .mec-event-countdown-part3 .mec-event-button{display:inline-block;padding:14px 30px;vertical-align:middle;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#fff;background:#4077ed;transition:all .24s ease}.mec-event-countdown-style3 .mec-event-countdown-part3 .mec-event-button:hover{background:#222}.mec-event-countdown-style3 .mec-event-countdown{text-align:center;display:table;table-layout:fixed;margin:0 auto;position:absolute;top:40px;right:20px}.mec-event-countdown-style3 .mec-event-countdown .label-w{letter-spacing:1px;text-transform:uppercase;position:relative}.mec-event-countdown-style3 .mec-event-countdown .block-w{display:table-cell;margin:0 20px 10px;position:relative;height:70px}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown li{padding:15px}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown li span{font-size:30px}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown li .label-w{font-size:11px;color:#888;margin:8px 0 0;line-height:1}.mec-event-countdown-style3 .mec-event-date{width:176px;height:96px;background:#40d9f1;color:#fff;font-size:13px;position:absolute;left:-27px;top:146px}.mec-event-countdown-style3 .mec-event-date:after{content:"";position:absolute;display:inline-block;z-index:1;bottom:-18px;left:8px;width:0;border-width:19px;border-style:solid;border-color:transparent transparent #40d9f1 transparent;transform:rotate(45deg)}.mec-event-countdown-style3 .mec-event-date .mec-date1{font-size:50px;position:absolute;top:36px;left:12px;letter-spacing:-3px}.mec-event-countdown-style3 .mec-event-date .mec-date2{position:absolute;left:80px;top:26px}.mec-event-countdown-style3 .mec-event-date .mec-date3{position:absolute;left:80px;top:45px}.mec-event-countdown-style3 .mec-event-countdown-part-details{padding-top:35px;margin-bottom:50px;min-height:100px}.mec-event-countdown-style3 .mec-event-countdown-part-details .mec-event-title{font-size:17px;color:#fff;line-height:1.4;padding-right:20px}.mec-event-countdown-style3 .mec-event-countdown-part-details .mec-event-link{color:#fff;font-size:12px;position:relative;padding-left:22px}.mec-event-countdown-style3 .mec-event-countdown-part-details .mec-event-link:before{content:"";display:inline-block;width:18px;border-top:1px solid #fff;position:absolute;left:0;top:8px}.mec-event-countdown-style3 .mec-event-title-link{position:absolute;left:190px;top:152px}.event-carousel-type1-head .mec-event-date-carousel:before,.mec-event-countdown-style3 .mec-event-date:before{content:'';position:absolute;left:0;bottom:0;z-index:2;width:100%;height:96px;background:0 0;display:inline-block;box-shadow:0 5px 5px rgba(0,0,0,.12)}@media only screen and (min-width:960px){.mec-wrap.mec-sm959 .mec-event-countdown-style3 .mec-event-countdown li{padding:10px}.mec-wrap.mec-sm959 .mec-event-countdown-style3 .mec-event-countdown-part1 .mec-event-upcoming{font-size:31px}}@media (max-width:959px){.mec-wrap .mec-event-countdown-style3 .mec-event-countdown-part1,.mec-wrap .mec-event-countdown-style3 .mec-event-countdown-part2{width:100%;display:block}.mec-event-countdown-style3 .mec-event-title-link{top:190px}.mec-event-countdown-style3 .mec-event-countdown{top:96px}.mec-event-countdown-style3 .mec-event-date{left:0;top:190px}.mec-event-countdown-style3 .mec-event-date:after{display:none}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown-part1 .mec-event-countdown-part-title span{display:inline}.mec-event-countdown-style3 .mec-event-countdown-part-details{min-height:150px}}@media (max-width:767px){.mec-wrap .mec-event-countdown-style3 .mec-event-countdown-part1 .mec-event-upcoming{font-size:26px;letter-spacing:-1px}.mec-event-countdown-style3 .mec-event-title-link{left:130px}.mec-event-countdown-style3 .mec-event-date{width:120px;font-size:10px;height:63px}.mec-event-countdown-style3 .mec-event-date .mec-date1{font-size:36px;top:20px;left:4px;letter-spacing:-2px}.mec-event-countdown-style3 .mec-event-date .mec-date2{position:absolute;left:52px;top:12px}.mec-event-countdown-style3 .mec-event-date .mec-date3{position:absolute;left:52px;top:28px}}@media (max-width:380px){.mec-event-countdown-style3 .mec-event-title-link{left:10px;top:260px}.mec-event-countdown-style3 .mec-event-countdown-part-details{min-height:300px}.mec-event-countdown-style3 .mec-event-countdown .block-w{margin:3px;height:auto}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown li{padding:10px 5px}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown li span{font-size:15px}.mec-wrap .mec-event-countdown-style3 .mec-event-countdown li .label-w{font-size:8px}}.mec-slider-t1-wrap{width:100%;padding:60px 90px;background:#f7f7f7;min-height:560px;position:relative}.mec-slider-t1{height:500px;box-shadow:0 5px 35px 0 rgba(0,0,0,.13)}.mec-slider-t1 .mec-event-article{position:relative;height:500px}.mec-slider-t1 .mec-slider-t1-img{position:relative;background-size:cover!important;background-position:center!important;width:50%;height:100%;float:right;margin:0;overflow:hidden}.mec-slider-t1 .mec-slider-t1-content{width:50%;float:left;height:100%;background:#fff;padding:6%}.mec-slider-t1-content.mec-event-grid-modern .mec-event-article{border:none;padding:0;margin:0;box-shadow:none}.mec-slider-t1-content.mec-event-grid-modern .mec-event-title{font-size:29px}.mec-slider-t1-content.mec-event-grid-modern .mec-event-title a:hover{text-decoration:underline}.mec-slider-t1-content.mec-event-grid-modern .mec-event-footer .mec-booking-button{font-size:12px;padding:0 31px;line-height:49px;height:50px}.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-next,.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-prev{opacity:1;width:54px;height:54px;line-height:48px;border-radius:0;text-align:center;background:#fff;box-shadow:0 2px 11px 0 rgba(0,0,0,.045);transition:all .25s ease;-webkit-transition:all .25s ease;position:absolute;top:50%;margin-top:-27px;cursor:pointer}.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-next:hover,.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-prev:hover{box-shadow:0 4px 29px 0 rgba(0,0,0,.095)}.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-next{left:auto;right:-100px}.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-prev{right:auto;left:-100px}.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-next i,.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-prev i{font-size:12px;color:#282828;transition:all .21s ease}.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-next:hover i,.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-prev:hover i{font-size:13px;color:#000;cursor:pointer}@media only screen and (min-width:961px){.mec-slider-t1{margin:0 auto;max-width:900px}}@media only screen and (max-width:960px){.mec-slider-t1 .mec-slider-t1-content,.mec-slider-t1 .mec-slider-t1-img{width:100%;float:none}.mec-slider-t1 .mec-slider-t1-img{height:300px}.mec-slider-t1,.mec-slider-t1 .mec-event-article{height:auto}}@media only screen and (max-width:768px){.mec-slider-t1-wrap{padding:0}.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-next,.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-prev{top:40px;margin-top:0}.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-next{left:auto;right:10px}.mec-slider-t1-wrap .mec-owl-theme .owl-nav .owl-prev{right:auto;left:10px}}@media only screen and (max-width:479px){.mec-slider-t1-content.mec-event-grid-modern .mec-event-title{font-size:22px}.mec-slider-t1-content.mec-event-grid-modern .event-grid-modern-head .mec-event-day{font-size:25px}}.mec-slider-t2-wrap{width:100%;padding:0;background:#fff;min-height:600px;position:relative}.mec-slider-t2 .mec-event-article{height:600px;position:relative;border:none;padding:0;margin:0;box-shadow:none;background:0 0}.mec-slider-t2 .mec-slider-t2-img{position:absolute;left:0;top:0;background-size:cover!important;background-position:center!important;width:70%;height:100%;margin:0;overflow:hidden}.mec-slider-t2 .mec-slider-t2-content{width:50%;position:absolute;right:0;top:60px;bottom:60px;padding:5%}.mec-slider-t2 .mec-slider-t2-content.mec-event-grid-modern *{color:#fff}.mec-slider-t2 .mec-slider-t2-content.mec-event-grid-modern .mec-event-title{font-size:29px}.mec-slider-t2-content.mec-event-grid-modern .mec-event-content,.mec-slider-t2-content.mec-event-grid-modern .mec-event-footer .mec-booking-button{background:0 0}.mec-slider-t2-content.mec-event-grid-modern .mec-event-footer .mec-booking-button{font-size:12px;padding:0 31px;line-height:49px;height:50px}.mec-slider-t2-content.mec-event-grid-modern .mec-event-footer .mec-booking-button:hover{background:#fff;color:#000;border-color:#fff}.mec-slider-t2-content.mec-event-grid-modern .mec-event-footer .mec-booking-button:hover,.mec-slider-t2-content.mec-event-grid-modern .mec-event-title a:hover{color:#111}.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-next,.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-prev{opacity:1;width:44px;height:44px;line-height:38px;border-radius:0;text-align:center;background:0 0;border:1px solid #fff;transition:all .25s ease;-webkit-transition:all .25s ease;position:absolute;top:84px;cursor:pointer}.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-next:hover,.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-prev:hover{box-shadow:0 4px 16px 0 rgba(0,0,0,.075);background:#fff}.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-next{right:30px}.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-prev{right:82px}.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-next i,.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-prev i{font-size:14px;color:#fff;opacity:1;transition:all .25s ease}.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-next:hover i,.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-prev:hover i{color:#000;cursor:pointer}.mec-wrap.colorskin-custom .mec-slider-t2 .mec-event-article .mec-event-date.mec-color{color:#fff}@media only screen and (min-width:961px){.mec-slider-t2{margin:0 auto;max-width:1200px}}@media only screen and (max-width:960px){.mec-slider-t2 .mec-slider-t2-content,.mec-slider-t2 .mec-slider-t2-img{width:100%;float:none;position:static}.mec-slider-t2 .mec-slider-t2-img{height:300px}.mec-slider-t2 .mec-event-article{height:auto}.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-next,.mec-slider-t2-wrap .mec-owl-theme .owl-nav .owl-prev{top:40px}}@media only screen and (max-width:479px){.mec-slider-t2-content.mec-event-grid-modern .mec-event-title{font-size:22px}}.mec-slider-t3-wrap{width:100%;padding:0;background:#161616;min-height:700px;position:relative}.mec-slider-t3 .mec-event-article{height:700px;position:relative;border:none;padding:0;margin:0;box-shadow:none;background:0 0}.mec-slider-t3 .mec-slider-t3-img{position:absolute;left:0;top:0;background-size:cover!important;background-position:center!important;width:100%;height:100%;margin:0;overflow:hidden;opacity:.68;z-index:1}.mec-slider-t3 .mec-slider-t3-content{width:50%;height:auto;vertical-align:middle;display:table;position:absolute;left:0;top:0;bottom:0;padding:0 2% 0 7%;margin:auto 0;background:0 0;z-index:2}.mec-slider-t3 .mec-slider-t3-content.mec-event-grid-modern :not(.mec-color){color:#fff}.mec-slider-t3-content.mec-event-grid-modern .mec-event-title{font-size:29px}.mec-slider-t3-content.mec-event-grid-modern .mec-event-content,.mec-slider-t3-content.mec-event-grid-modern .mec-event-footer .mec-booking-button{background:0 0}.mec-slider-t3-content.mec-event-grid-modern .mec-booking-button{display:inline-block;border:1px solid;font-weight:500;letter-spacing:1px;text-transform:uppercase;font-size:13px;padding:0 42px;line-height:49px;height:50px;transition:all .21s ease}.mec-slider-t3-content.mec-event-grid-modern .mec-booking-button:hover{background:#fff;color:#000;border-color:#fff}.mec-slider-t3-content.mec-event-grid-modern .mec-slider-t3-footer{text-align:left;padding:15px 15px 10px}.mec-slider-t3-content.mec-event-grid-modern .mec-event-footer .mec-booking-button:hover,.mec-slider-t3-content.mec-event-grid-modern .mec-event-title a:hover{color:#40d9f1}.mec-slider-t3-content.mec-event-grid-modern .mec-event-footer .mec-booking-button:hover{border-color:#40d9f1}.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-next,.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-prev{opacity:1;width:44px;height:44px;line-height:38px;border-radius:0;text-align:center;background:0 0;border:1px solid #fff;transition:all .25s ease;-webkit-transition:all .25s ease;position:absolute;top:50%;margin-top:-22px;cursor:pointer}.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-next:hover,.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-prev:hover{box-shadow:0 4px 16px 0 rgba(0,0,0,.075);background:#fff}.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-next{right:10px}.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-prev{right:auto;left:10px}.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-next i,.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-prev i{font-size:14px;color:#fff;opacity:1;transition:all .25s ease}.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-next:hover i,.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-prev:hover i{color:#000;cursor:pointer}@media only screen and (min-width:961px){.mec-slider-t3-content.mec-event-grid-modern .mec-event-title{font-size:50px;font-weight:300}.mec-slider-t3-content.mec-event-grid-modern .mec-event-description{font-size:19px}}@media only screen and (max-width:767px){.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-next,.mec-slider-t3-wrap .mec-owl-theme .owl-nav .owl-prev{top:40px;margin-top:0}}@media only screen and (max-width:479px){.mec-slider-t3 .mec-slider-t3-content{width:100%}.mec-slider-t3-content.mec-event-grid-modern .mec-event-title{font-size:22px}.mec-slider-t1-content.mec-event-grid-modern .event-grid-modern-head .mec-event-day{font-size:25px}}.mec-slider-t4-wrap{width:100%;padding:0;background:#161616;min-height:700px;position:relative}.mec-slider-t4 .mec-event-article{height:700px;border:none;padding:0;margin:0;box-shadow:none;background:0 0}.mec-slider-t4 .mec-slider-t4-img{position:absolute;left:0;top:0;background-size:cover!important;background-position:center!important;width:100%;height:100%;margin:0;overflow:hidden;z-index:1}.mec-slider-t4 .mec-slider-t4-content{width:auto;max-width:700px;background:rgba(37,37,37,.94)!important;height:auto;vertical-align:middle;display:table;position:absolute;left:8%;top:19%;padding:3%;margin:auto 0;background:0 0;z-index:2}.mec-slider-t4 .mec-slider-t4-content.mec-event-grid-modern :not(.mec-color){color:#fff}.mec-slider-t4-content.mec-event-grid-modern .mec-event-title{font-size:29px}.mec-slider-t4-content.mec-event-grid-modern .mec-event-content,.mec-slider-t4-content.mec-event-grid-modern .mec-event-footer .mec-booking-button{background:0 0}.mec-slider-t4-content.mec-event-grid-modern .mec-event-footer .mec-booking-button{font-size:13px;padding:0 42px;line-height:49px;height:50px}.mec-slider-t4-content.mec-event-grid-modern .mec-event-title a:hover{color:#40d9f1}.mec-slider-t4-content.mec-event-grid-modern .mec-slider-t4-footer{text-align:left;padding:15px 15px 10px}.mec-slider-t4-content.mec-event-grid-modern .mec-booking-button{display:inline-block;border:1px solid;font-weight:500;letter-spacing:1px;text-transform:uppercase;font-size:13px;padding:0 42px;line-height:49px;height:50px;transition:all .21s ease}.mec-slider-t4-content.mec-event-grid-modern .mec-booking-button:hover{background:#fff;color:#000;border-color:#fff}.mec-slider-t4-content.mec-event-grid-modern .mec-event-footer .mec-booking-button:hover,.mec-slider-t4-content.mec-event-grid-modern .mec-event-title a:hover{color:#111}.mec-slider-t4-wrap .mec-owl-theme .owl-nav .owl-next,.mec-slider-t4-wrap .mec-owl-theme .owl-nav .owl-prev{opacity:1;width:44px;height:44px;line-height:40px;border-radius:0;text-align:center;background:0 0;border:1px solid #fff;transition:all .25s ease;-webkit-transition:all .25s ease;position:absolute;top:34px;cursor:pointer}.mec-slider-t4-wrap .mec-owl-theme .owl-nav .owl-next:hover,.mec-slider-t4-wrap .mec-owl-theme .owl-nav .owl-prev:hover{box-shadow:0 4px 16px 0 rgba(0,0,0,.075);background:#fff}.mec-slider-t4-wrap .mec-owl-theme .owl-nav .owl-next{right:60px}.mec-slider-t4-wrap .mec-owl-theme .owl-nav .owl-prev{right:112px}.mec-slider-t4-wrap .mec-owl-theme .owl-nav .owl-next i,.mec-slider-t4-wrap .mec-owl-theme .owl-nav .owl-prev i{font-size:14px;color:#fff;opacity:1;transition:all .25s ease}.mec-slider-t4-wrap .mec-owl-theme .owl-nav .owl-next:hover i,.mec-slider-t4-wrap .mec-owl-theme .owl-nav .owl-prev:hover i{color:#000;cursor:pointer}@media only screen and (max-width:767px){.mec-slider-t4 .mec-slider-t4-content{width:100%;left:0;top:auto;bottom:0}.mec-slider-t4-content.mec-event-grid-modern .mec-event-title{font-size:22px}.mec-slider-t1-content.mec-event-grid-modern .event-grid-modern-head .mec-event-day{font-size:25px}}.mec-slider-t5-wrap{width:auto;max-width:570px;padding:0;margin:0 auto 25px;background:#f7f7f7;min-height:480px;position:relative}.mec-slider-t5{height:auto;box-shadow:0 5px 35px 0 rgba(0,0,0,.13)}.mec-slider-t5 .mec-event-article{position:relative;height:auto}.mec-slider-t5 .mec-slider-t5-img{position:relative;background-size:cover!important;background-position:center!important;width:100%;height:300px;float:none;margin:0;overflow:hidden}.mec-slider-t5 .mec-slider-t5-content{width:100%;float:none;height:100%;background:#fff;padding:0 20px 20px;margin-bottom:0}.mec-slider-t5 .mec-events-content p{margin-bottom:20px}.mec-slider-t5-content.mec-event-grid-modern .mec-event-article{border:none;padding:0;margin:0;box-shadow:none}.mec-slider-t5-wrap .mec-event-grid-modern .event-grid-modern-head{margin-bottom:10px;padding:14px 34px;margin-left:-20px;margin-right:-20px;text-align:left;background:#f9f9f9;border-bottom:1px solid #eee}.mec-slider-t5-content.mec-event-grid-modern .mec-event-title{font-size:29px}.mec-slider-t5 .mec-slider-t5-col6{width:50%;float:left;height:100%}.mec-slider-t5 .mec-slider-t5-col6 i{font-size:42px;float:left;margin-right:7px;height:58px}.mec-slider-t5 .mec-slider-t5-col6 h6{text-transform:uppercase;font-size:17px;padding:4px 0;display:inline;color:#444}.mec-slider-t5 .mec-slider-t5-col6 address{font-size:12px;margin-bottom:0}.mec-slider-t5-content.mec-event-grid-modern .mec-event-title a:hover{text-decoration:underline}.mec-slider-t5-content.mec-event-grid-modern .mec-event-footer .mec-booking-button{font-size:12px;padding:0 31px;line-height:49px;height:50px;top:0}.mec-slider-t5-wrap .mec-owl-theme .owl-nav .owl-next,.mec-slider-t5-wrap .mec-owl-theme .owl-nav .owl-prev{opacity:1;width:44px;height:44px;line-height:40px;border-radius:0;text-align:center;background:0 0;border:1px solid #fff;transition:all .25s ease;-webkit-transition:all .25s ease;position:absolute;top:34px;cursor:pointer}.mec-slider-t5-wrap .mec-owl-theme .owl-nav .owl-next:hover,.mec-slider-t5-wrap .mec-owl-theme .owl-nav .owl-prev:hover{box-shadow:0 4px 16px 0 rgba(0,0,0,.075);background:#fff}.mec-slider-t5-wrap .mec-owl-theme .owl-nav .owl-next{right:30px}.mec-slider-t5-wrap .mec-owl-theme .owl-nav .owl-prev{right:82px}.mec-slider-t5-wrap .mec-owl-theme .owl-nav .owl-next i,.mec-slider-t5-wrap .mec-owl-theme .owl-nav .owl-prev i{font-size:14px;color:#fff;opacity:1;transition:all .25s ease}.mec-slider-t5-wrap .mec-owl-theme .owl-nav .owl-next:hover i,.mec-slider-t5-wrap .mec-owl-theme .owl-nav .owl-prev:hover i{color:#000;cursor:pointer}@media only screen and (max-width:768px){.mec-slider-t5 .mec-slider-t5-col6{width:100%;margin:10px 0}}@media only screen and (max-width:479px){.mec-slider-t5-content.mec-event-grid-modern .mec-event-title{font-size:24px}}.mec-single-modern .mec-events-event-image{text-align:center}.mec-single-modern .mec-events-event-image img{width:100%}.mec-single-modern .mec-single-event-bar{background-color:#f7f7f7;margin:20px 0 0;padding:15px;display:table;width:100%}.mec-single-modern .mec-single-event-bar>div{display:table-cell}.mec-single-modern .mec-single-event-bar>div i{font-size:20px;vertical-align:middle}.mec-single-modern .mec-single-event-bar>div .mec-time-comment{font-size:12px;color:#999}.mec-single-modern .mec-single-event-bar>div h3{text-transform:uppercase;font-size:16px;font-weight:700;padding-bottom:5px;display:inline;color:#000;padding-left:10px}.mec-single-modern .mec-single-event-bar>div dd{font-size:14px;color:#8d8d8d;padding-left:34px;margin-bottom:0}.mec-single-modern .col-md-4 .mec-frontbox{margin-top:-50px;margin-bottom:70px;padding:20px;border:none;background:#f7f7f7;box-shadow:none}.mec-next-occurrence li{list-style:none}@media only screen and (min-width:960px){.mec-single-modern .col-md-4 .mec-frontbox{margin-left:20px}}@media only screen and (max-width:960px){.mec-single-modern .mec-single-event-bar>div{display:block}}.lity-content>div{overflow:auto}.mec-next-event-details li{list-style:none;margin-top:20px}.mec-next-event-details h6{text-transform:uppercase;font-size:13px;padding-bottom:5px;display:inline;color:#222;padding-left:0}.mec-next-event-details abbr{display:block;padding-left:12px;color:#8d8d8d}.mec-next-event-details i{margin-right:10px;margin-left:12px}.mec-next-event-details i:before{color:#40d9f1}.mec-next-event-details a{text-align:center;display:block;background:#fff;padding:6px 0;font-size:11px;font-weight:400;letter-spacing:0;border:1px solid #e3e3e3;transition:.3s}.mec-single-modal.mec-single-modern .mec-single-title{text-align:center;padding:15px 10px 0}.admin-bar .mec-single-modal.mec-single-modern .mec-single-title{padding-top:40px}.mec-single-modal.mec-single-modern .mec-single-event-bar{padding:5px}.mec-single-modal.mec-single-modern .mec-single-event-bar>div dd{font-size:13px}.mec-single-modal.mec-single-modern .mec-single-event-bar>div h3{font-size:15px}@media only screen and (min-width:960px){.mec-single-modal.mec-single-modern .col-md-4 .mec-frontbox{margin-left:0}}.mec-single-modal.mec-single-modern .col-md-4 .mec-frontbox{margin-top:10px;margin-bottom:10px}.mec-single-modal.mec-single-modern .col-md-4 .mec-frontbox.mec-event-meta{padding:0}.mec-single-modal .mec-event-meta dd.mec-organizer-email a,.mec-single-modal .mec-event-meta dd.mec-organizer-url a{font-size:12px;display:block}.mec-modal-wrap{max-width:60vw;max-height:90vh!important;background:#fff;box-shadow:0 1px 55px rgba(0,0,0,.5);overflow-x:hidden!important}@media(max-width:1023px){.mec-modal-wrap{max-width:80vw}}.mec-single-modal .mec-event-export-module.mec-frontbox .mec-event-exporting .mec-export-details ul li,.mec-single-modal .mec-event-export-module.mec-frontbox .mec-event-exporting .mec-export-details ul li a.mec-events-button{display:block;text-align:center}.mec-single-modal .flip-clock-divider .flip-clock-label{position:absolute;top:60px}.mec-single-modal .flip-clock-divider:not(:first-child){width:48px!important}.mec-single-modal .flip-clock-divider.minutes .flip-clock-label{top:150px;left:-539px}.mec-single-modal .flip-clock-divider.seconds .flip-clock-label{top:87px}.mec-single-modal .flip-clock-wrapper{left:14%}.mec-single-modal .twodaydigits>ul:nth-child(11),.mec-single-modal .twodaydigits>ul:nth-child(12),.mec-single-modal .twodaydigits>ul:nth-child(8),.mec-single-modal .twodaydigits>ul:nth-child(9){margin-top:30px!important}.mec-events-toggle{max-width:960px;margin-left:auto;margin-right:auto}.mec-events-toggle .mec-toggle-item{border:1px solid #e4e4e4;margin-bottom:15px;box-shadow:0 10px 15px #f3f3f3}.mec-events-toggle .mec-toggle-item-inner{cursor:pointer;position:relative;padding:30px 60px 30px 15px;background:#fff;transition:all .3s ease}.mec-events-toggle .mec-toggle-item-inner:hover{background:#fbfbfb}.mec-toggle-item-col{float:left;width:180px;margin-top:-6px;border-right:1px solid #e3e3e3;margin-right:15px}.mec-toggle-item-col .mec-event-date{font-size:38px;line-height:40px;float:left;margin-right:8px}.mec-toggle-item-col .mec-event-month{text-transform:uppercase;font-size:12px;line-height:14px;padding-top:4px;font-weight:700}.mec-toggle-item-col .mec-event-detail{font-size:10px}.mec-toggle-item-col .mec-event-day{margin-top:9px;color:silver;font-family:Roboto,sans-serif;font-size:35px;font-weight:100;text-transform:uppercase;letter-spacing:-1px}.mec-events-toggle .mec-toggle-title{color:#000;font-size:23px;font-weight:600;margin-bottom:0;transition:all .3s ease;display:inline-block}.mec-events-toggle .mec-toggle-item-inner span.event-color{width:5px;height:100%;position:absolute;left:-1px;top:0;bottom:0;border-radius:0;margin:0}.mec-events-toggle .mec-toggle-item-inner i{position:absolute;font-size:30px;right:25px;top:50%;transform:translate(0,-50%);cursor:pointer}.mec-events-toggle .mec-toggle-item.is-open i.mec-sl-plus:before{content:"\e615"}.mec-events-toggle .mec-toggle-item.is-open .mec-toggle-title{background:#f8f8f8;cursor:pointer}.mec-events-toggle .mec-toggle-content{border-top:1px solid #e4e4e4}.mec-events-toggle .mec-toggle-content .mec-modal-wrap{margin:0;max-width:100%;box-shadow:none}.mec-events-toggle .mec-toggle-content .mec-modal-wrap .mec-single-event{margin:0}.mec-events-toggle .mec-toggle-content .mec-single-event-bar,.mec-events-toggle .mec-toggle-content h1.mec-single-title{display:none}.mec-events-toggle .media-links a{margin-bottom:0}.mec-events-toggle .mec-toggle-content .mec-toggle-meta{margin-bottom:14px}.mec-events-toggle #mec_speakers_details.mec-frontbox{padding:0;margin:0}.mec-events-toggle .mec-toggle-item h3.mec-speakers{border:none;text-align:left}.mec-events-toggle .mec-toggle-item h3.mec-speakers:before{content:"\e063";font-family:simple-line-icons;border:none;position:relative;display:inline-block;left:unset;bottom:unset;font-size:22px;font-weight:400;padding:0 11px 0 28px;vertical-align:middle}@media only screen and (max-width:767px){.mec-toggle-item-col{float:none;width:100%;border-right:none;margin-bottom:5px}}.mec-events-agenda-wrap{margin:10px 0;border:1px solid #e9e9e9;padding-left:20px;box-shadow:0 2px 2px rgba(0,0,0,.03)}.mec-events-agenda{padding:0;border-bottom:1px solid #e9e9e9;overflow:hidden}.mec-agenda-date-wrap{width:210px;padding-top:15px;float:left;font-size:13px}.mec-agenda-date-wrap i,.mec-agenda-event i{font-size:11px;color:#aaa;margin-right:4px;margin-left:1px}.mec-agenda-event i{vertical-align:middle;margin-right:1px}.mec-agenda-events-wrap{float:left;width:calc(100% - 210px);background:#f9f9f9;padding:15px}.mec-agenda-time{font-size:11px;color:#707070;padding-right:10px;width:138px;display:inline-block}.mec-agenda-event-title{position:relative;padding-left:14px}.mec-agenda-event-title a{font-family:Roboto,Montserrat,Helvetica,Arial,sans-serif;font-size:14px;font-weight:600;color:#333}.mec-agenda-event-title span.event-color{width:9px;height:9px;position:absolute;left:0;top:4px;margin:0}.mec-agenda-date-wrap span.mec-agenda-day{color:#aaa;font-size:12px}@media only screen and (max-width:767px){.mec-agenda-date-wrap,.mec-agenda-events-wrap{float:none;width:100%}.mec-events-agenda span.mec-agenda-event-title{display:block;width:100%}.mec-agenda-event-title span.event-color{top:7px}.mec-agenda-event-title a{font-size:13px}}.mec-yearly-view-wrap{margin:0 0 15px;border:1px solid #e6e6e6;box-shadow:0 2px 4px rgba(0,0,0,.04);border-bottom-width:4px}.mec-yearly-view-wrap .mec-calendar.mec-yearly-calendar{max-width:100%;width:232px;padding:10px;background:#fff;margin:10px;display:inline-block}.mec-yearly-view-wrap .mec-calendar.mec-yearly-calendar dl dt{transition:none;height:30px;width:30px;line-height:30px;border-radius:0;font-size:12px}.mec-yearly-view-wrap .mec-calendar.mec-yearly-calendar .mec-calendar-events-sec{padding:10px}.mec-yearly-view-wrap .mec-calendar.mec-yearly-calendar .mec-has-event:after{width:4px;height:4px;bottom:3px;margin-left:-2px}.mec-yearly-view-wrap .mec-calendar-side .mec-calendar-table{min-height:200px}.mec-calendar.mec-yearly-calendar .mec-calendar-table-head dl dt{background:#f9f9f9;font-size:13px}.mec-calendar.mec-yearly-calendar .mec-calendar-table-title{text-align:center;font-size:15px;font-weight:700;color:#222;margin-top:-5px;padding-bottom:5px}.mec-yearly-view-wrap .mec-yearly-calendar-sec{min-height:200px;width:538px;overflow:hidden;float:left;background:#f8f8f8;padding:15px}.mec-yearly-view-wrap .mec-yearly-agenda-sec{min-height:200px;width:calc(100% - 538px);float:left;padding:0 0 0 20px;overflow:hidden}.mec-yearly-view-wrap .mec-yearly-title-sec{position:relative;padding:15px;text-align:center;border-bottom:1px solid #e6e6e6;box-shadow:0 1px 3px rgba(0,0,0,.02)}.mec-yearly-view-wrap .mec-yearly-title-sec h2{font-size:30px;line-height:40px;color:#333;margin:0;font-weight:700}.mec-yearly-view-wrap .mec-yearly-title-sec .mec-next-year,.mec-yearly-view-wrap .mec-yearly-title-sec .mec-previous-year{position:absolute;top:50%;margin-top:-15px;min-width:30px;height:30px;line-height:30px;padding:0 8px;text-align:center;background:#fff;color:#666;font-size:14px;border:1px solid #eee;border-radius:2px;box-shadow:0 2px 0 0 rgba(0,0,0,.015);transition:all .33s ease;cursor:pointer}.mec-yearly-view-wrap .mec-yearly-title-sec .mec-previous-year{right:auto;left:20px;padding-right:14px}.mec-yearly-view-wrap .mec-yearly-title-sec .mec-next-year{left:auto;right:20px;padding-left:14px}.mec-yearly-view-wrap .mec-yearly-title-sec .mec-next-year i,.mec-yearly-view-wrap .mec-yearly-title-sec .mec-previous-year i{font-size:12px;color:#40d9f1;cursor:pointer}@media only screen and (max-width:959px){.mec-yearly-view-wrap .mec-yearly-calendar-sec{width:268px;padding:10px 5px}.mec-yearly-view-wrap .mec-yearly-agenda-sec{width:calc(100% - 268px);padding:0 0 0 10px}}@media only screen and (max-width:767px){.mec-yearly-view-wrap .mec-yearly-agenda-sec,.mec-yearly-view-wrap .mec-yearly-calendar-sec{width:100%;float:none}.mec-yearly-view-wrap .mec-calendar.mec-yearly-calendar{width:auto}.mec-yearly-view-wrap .mec-calendar.mec-yearly-calendar dl dt{width:14.2%}.mec-yearly-view-wrap .mec-yearly-title-sec h2{font-size:25px}}.mec-yearly-view-wrap .mec-agenda-event i,.mec-yearly-view-wrap .mec-agenda-time{display:none}@media only screen and (min-width:768px){.mec-yearly-view-wrap .mec-events-agenda-wrap{margin-top:0;border:none;padding-left:0;box-shadow:none}.mec-yearly-view-wrap .mec-agenda-date-wrap{width:174px;font-size:11px;padding-top:10px}.mec-yearly-view-wrap .mec-agenda-events-wrap{width:calc(100% - 174px);padding:10px}.mec-yearly-view-wrap .mec-agenda-event-title a{font-size:13px}.mec-yearly-view-wrap .mec-agenda-event-title span.event-color{width:8px;height:8px}.mec-yearly-view-wrap .mec-agenda-date-wrap span.mec-agenda-day{font-size:11px}.mec-yearly-view-wrap .mec-yearly-calendar-sec{box-shadow:-2px 0 5px rgba(0,0,0,.03) inset}}@media only screen and (max-width:1200px){.mec-yearly-view-wrap .mec-agenda-event-title a{font-size:12px;padding-right:6px}}.mec-calendar.mec-calendar-timetable .mec-calendar-d-table{padding-bottom:10px;border-bottom:none}.mec-calendar.mec-calendar-timetable .mec-calendar-d-table dl dt:hover{cursor:pointer}.mec-calendar.mec-calendar-timetable .mec-calendar-d-table dl dt.mec-timetable-has-no-event,.mec-calendar.mec-calendar-timetable .mec-calendar-d-table dl dt.mec-timetable-has-no-event:hover{color:#bbb;cursor:default}.mec-calendar.mec-calendar-timetable .mec-calendar-d-table dl dt.mec-timetable-day-active{background:#40d9f1;color:#fff;position:relative}.mec-calendar.mec-calendar-timetable .mec-calendar-d-table dl dt.mec-timetable-day-active:after{content:'';position:absolute;display:block;bottom:-20px;left:50%;margin-left:-10px;width:0;border-width:10px;border-style:solid;border-color:#40d9f1 transparent transparent transparent}.mec-timetable-events-list{padding:10px 20px;border:none;margin:0}.mec-timetable-events-list .mec-timetable-event{padding:10px 0;border-bottom:1px dashed #ddd}.mec-timetable-events-list .mec-timetable-event:last-child{border:none}.mec-timetable-event .mec-timetable-event-span{font-size:12px;color:#444;padding-right:30px;line-height:22px}.mec-timetable-events-list .mec-timetable-event i{font-size:13px;color:#aaa;margin-right:3px;vertical-align:baseline}.mec-timetable-event .mec-timetable-event-span a{color:#333}.mec-timetable-event .mec-timetable-event-time{font-size:11px}.mec-timetable-event .mec-timetable-event-time i{vertical-align:text-bottom}.mec-timetable-event .mec-timetable-event-title{font-size:13px}.mec-timetable-event .mec-timetable-event-title .event-color{width:10px;height:10px}.mec-timetable-events-list .mec-timetable-event.mec-util-hidden{display:none}.mec-timetable-events-list.mec-util-hidden{display:none}@media only screen and (min-width:768px){.mec-timetable-events-list{display:table;width:100%;margin:10px 0 20px}.mec-timetable-events-list .mec-timetable-event{display:table-row;padding:0;border:none;background:#fff}.mec-timetable-events-list .mec-timetable-event:hover{background:#fafafa}.mec-timetable-event .mec-timetable-event-span{display:table-cell;padding:10px 15px;border-bottom:1px solid #ebebeb}.mec-timetable-events-list .mec-timetable-event:last-child .mec-timetable-event-span{border-bottom:none}}@media only screen and (max-width:767px){.mec-timetable-event .mec-timetable-event-title{display:block;width:100%;padding:5px 0 10px;font-weight:700}}.mec-timetable-t2-wrap{border:1px solid #e6e6e6;background:#fafafa;padding:0 15px 15px;overflow:hidden;box-shadow:0 3px 2px 0 rgba(0,0,0,.012)}.mec-timetable-t2-col{width:20%;float:left;min-height:20px;padding-right:1px;background:0 0}.mec-ttt2-title{background:#fafafa;color:#333;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:1px;text-align:center;padding:25px 10px 10px;margin-bottom:1px}.mec-timetable-t2-col .mec-event-article{position:relative}.mec-timetable-t2-col .mec-event-article .event-color{position:absolute;width:auto;height:auto;left:0;right:0;top:0;bottom:0;margin:0;z-index:1;border-radius:2px}.mec-timetable-t2-content{position:relative;z-index:2;color:#fff;padding:15px 15px 20px;text-align:left;height:130px;margin-bottom:1px;overflow:hidden}.mec-timetable-t2-content .mec-event-title{line-height:22px;margin-bottom:13px;white-space:nowrap;padding-right:1px;overflow:hidden}.mec-timetable-t2-content .mec-event-title a{color:#fff;font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden}.mec-timetable-t2-content div{color:#fff;font-size:11px;font-weight:400;line-height:19px;white-space:nowrap}.mec-timetable-t2-content div i{font-size:12px;margin-right:4px}@media only screen and (max-width:960px){.mec-timetable-t2-col{width:100%;float:none}}@media(min-width:961px){.mec-timetable-col-7{width:14.28%}.mec-timetable-col-6{width:16.6666%}}.mec-weather-box{padding:15px 0}.mec-weather-head{min-height:90px;padding:5px 0;clear:both;overflow:hidden;margin-bottom:25px;border-radius:10px;background:#238af5;position:relative}.mec-weather-icon-box{float:left;width:80px;height:80px;border-radius:10px;overflow:hidden;background:#238af5}.mec-weather-icon{width:80px;height:80px;display:inline-block;border-radius:10px}.mec-weather-summary{float:left;width:calc(100% - 80px);padding-left:10px;margin:10px 0;height:60px}.mec-weather-summary-report{font-size:15px;color:rgba(255,255,255,.68);margin-bottom:6px}.mec-weather-summary-temp{font-family:Roboto,Sans-serif;font-weight:300;color:#fff;font-size:29px;line-height:1}.degrees-mode{background:rgba(0,0,0,.2);cursor:pointer;font-weight:300;font-size:18px;padding:4px 5px;line-height:1;color:#fff;position:absolute;border-radius:8px;bottom:16px;left:16px}.mec-weather-extras{width:auto;padding:10px 15px 0 15px;float:right;min-height:80px;color:#fff;font-size:13px;line-height:1}.mec-weather-extras{width:auto;padding:10px 15px 0 15px;float:right;min-height:80px;color:#fff;font-size:13px;line-height:1}.mec-weather-extras div{line-height:20px;height:20px}.mec-weather-extras span{color:rgba(255,255,255,.68);font-size:12px;text-transform:uppercase}.mec-weather-extras var{font-size:11px;letter-spacing:.4px}.mec-weather-icon.clear-day,.mec-weather-icon.clear-night{background-image:url(../img/mec-weather-icon-01.png)}.mec-weather-icon.partly-sunny-day,.mec-weather-icon.partly-sunny-night{background-image:url(../img/mec-weather-icon-02.png)}.mec-weather-icon.partly-cloudy-day,.mec-weather-icon.partly-cloudy-night{background-image:url(../img/mec-weather-icon-03.png)}.mec-weather-icon.cloudy,.mec-weather-icon.fog,.mec-weather-icon.wind{background-image:url(../img/mec-weather-icon-04.png)}.mec-weather-icon.thunderstorm{background-image:url(../img/mec-weather-icon-05.png)}.mec-weather-icon.rain{background-image:url(../img/mec-weather-icon-06.png)}.mec-weather-icon.hail,.mec-weather-icon.sleet,.mec-weather-icon.snow{background-image:url(../img/mec-weather-icon-07.png)}.mec-av-spot-wrap{width:auto;max-width:1200px;padding:0;margin:0 auto 25px;background:#f7f7f7;min-height:480px;position:relative}.mec-av-spot{height:auto;border:1px solid #eee;box-shadow:0 6px 12px -4px rgba(0,0,0,.05)}.mec-av-spot .mec-event-article{position:relative;height:auto}.mec-av-spot .mec-av-spot-img{position:relative;background-size:cover!important;background-position:center!important;width:100%;height:330px;float:none;margin:0;overflow:hidden}.mec-av-spot .mec-av-spot-content,.mec-av-spot .mec-av-spot-head{width:100%;float:none;height:100%;background:#fff;padding:0 20px 20px;margin-bottom:0}.mec-av-spot .mec-av-spot-head{background:#222;color:#fff;min-height:80px}.mec-av-spot .mec-av-spot-head .mec-av-spot-box{padding-top:25px;font-size:13px;color:#ddd}.mec-av-spot .mec-av-spot-head .mec-av-spot-box span{color:#40d9f1;font-size:40px;font-weight:700;font-style:italic}.mec-av-spot .mec-av-spot-head .mec-event-countdown{text-align:center;padding-top:10px;display:table;table-layout:fixed;margin:0 auto;float:right}.mec-av-spot .mec-av-spot-head .mec-event-countdown li{display:table-cell;padding:10px 20px;position:relative;height:60px}.mec-av-spot .mec-av-spot-head .mec-event-countdown p{margin-bottom:0}.mec-av-spot .mec-events-content p{margin-bottom:20px}.mec-av-spot-content.mec-event-grid-modern .mec-event-article{border:none;padding:0;margin:0;box-shadow:none}.mec-av-spot-wrap .mec-event-grid-modern .event-grid-modern-head{margin-bottom:10px;padding:14px 34px;margin-left:-20px;margin-right:-20px;text-align:left;background:#f9f9f9;border-bottom:1px solid #eee}.mec-av-spot-content.mec-event-grid-modern .mec-event-title{font-size:29px}.mec-av-spot .mec-av-spot-col6{width:50%;float:left;height:100%}.mec-av-spot .mec-av-spot-col6 i{font-size:42px;float:left;margin-right:7px;height:58px}.mec-av-spot .mec-av-spot-col6 h6{text-transform:uppercase;font-size:17px;padding:4px 0;display:inline;color:#444}.mec-av-spot .mec-av-spot-col6 address{font-size:12px;margin-bottom:0}.mec-av-spot-content.mec-event-grid-modern .mec-event-title a:hover{text-decoration:underline}.mec-av-spot-content.mec-event-grid-modern .mec-event-footer .mec-booking-button{font-size:12px;padding:0 31px;line-height:49px;height:50px;top:0;box-shadow:0 5px 11px -3px rgba(0,0,0,.05)}@media only screen and (max-width:768px){.mec-av-spot .mec-av-spot-col6{width:100%;margin:10px 0}}@media only screen and (max-width:479px){.mec-av-spot-content.mec-event-grid-modern .mec-event-title{font-size:24px}}.mec-events-masonry-wrap{display:block;width:auto}.mec-masonry-item-wrap{width:calc(33.33% - 30px);padding:0;margin:0 15px 30px;min-height:10px;position:relative}.isotope-item{z-index:2}.isotope-hidden.isotope-item{pointer-events:none;z-index:1}.isotope,.isotope .isotope-item{-webkit-transition-duration:.8s;-moz-transition-duration:.8s;transition-duration:.8s}.isotope{-webkit-transition-property:height,width;-moz-transition-property:height,width;transition-property:height,width}.isotope .isotope-item{-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform,opacity;transition-property:transform,opacity}.mec-events-masonry-cats{padding:10px;margin-bottom:25px;text-align:center;clear:both;list-style:none outside none}.mec-events-masonry-cats a{border-radius:2px;padding:6px 12px;font-size:13px;line-height:1.2;color:#333;font-weight:400;margin-top:0!important;text-align:center;display:inline-block;width:auto;border:2px solid transparent;transition:all .2s ease}.mec-events-masonry-cats a:hover{border-color:#40d9f1;color:#333}.mec-events-masonry-cats a.mec-masonry-cat-selected{border:2px solid #40d9f1;color:#40d9f1}.mec-masonry{background:#f7f7f7;height:auto;border:1px solid #eee;box-shadow:0 6px 12px -4px rgba(0,0,0,.05)}.mec-masonry .mec-event-article{position:relative;height:auto}.mec-masonry .mec-masonry-img{position:relative;width:100%;height:auto;float:none;margin:0;overflow:hidden}.mec-masonry .mec-masonry-img img{width:100%}.mec-masonry .mec-masonry-content,.mec-masonry .mec-masonry-head{width:100%;float:none;height:100%;background:#fff;padding:0 20px 20px;margin-bottom:0}.mec-masonry .mec-events-content p{margin-bottom:20px}.mec-masonry-content.mec-event-grid-modern .mec-event-article{border:none;padding:0;margin:0;box-shadow:none}.mec-masonry-item-wrap .mec-event-grid-modern .event-grid-modern-head{min-height:79px;margin-bottom:10px;padding:14px 5%;margin-left:-20px;margin-right:-20px;text-align:left;background:#f9f9f9;border-bottom:1px solid #eee}.mec-masonry-content.mec-event-grid-modern .mec-event-title{font-size:22px}.mec-masonry-content.mec-event-grid-modern .mec-event-content{padding-top:20px}.mec-masonry-content.mec-event-grid-modern .mec-event-footer{height:auto}.mec-masonry .mec-masonry-col6 .mec-event-date{font-size:34px;letter-spacing:-2px}.mec-masonry .mec-masonry-col6{width:50%;float:left;height:100%}.mec-masonry .mec-masonry-col6 i{font-size:24px;float:left;margin-right:7px;height:50px}.mec-masonry .mec-masonry-col6 .mec-event-month,.mec-masonry .mec-masonry-col6 h6{text-transform:capitalize;font-size:15px;padding:4px 0;display:inline;color:#444}.mec-masonry .mec-masonry-col6 .mec-event-detail,.mec-masonry .mec-masonry-col6 address{font-size:11px;margin-bottom:0}.mec-masonry-content.mec-event-grid-modern .mec-event-title a:hover{text-decoration:underline}.mec-masonry-content.mec-event-grid-modern .mec-event-footer .mec-booking-button{font-size:12px;padding:0 31px;line-height:49px;height:50px;top:0;box-shadow:0 5px 11px -3px rgba(0,0,0,.05)}@media only screen and (max-width:960px){.mec-masonry-item-wrap{width:calc(50% - 30px)}}@media only screen and (max-width:768px){.mec-masonry .mec-masonry-col6{width:100%;margin:10px 0}.mec-masonry-item-wrap{width:calc(100% - 30px)}}@media only screen and (max-width:479px){.mec-masonry-content.mec-event-grid-modern .mec-event-title{font-size:24px}}.btn-wrapper{text-align:center}.countdown-wrapper .btn-wrapper{padding-top:10px;padding-right:0}.countdown-wrapper h5.countdown-message{letter-spacing:5px;font-weight:500;font-size:18px}.blox.dar .countdown-wrapper p,.countdown-wrapper p{color:#888}.countdown-wrapper a.button.black{float:right;margin-right:0}.mec-wrap .threedaydigits .days .flip-clock-label{right:-100px}@media only screen and (min-width:320px) and (max-width:767px){.mec-wrap .flip-clock-wrapper ul{width:29px!important}.mec-wrap .flip-clock-wrapper ul li a div div.inn{font-size:25px!important}.mec-wrap .flip-clock-divider .flip-clock-label{left:0;font-weight:300}.mec-wrap span.flip-clock-divider{width:12px}}@media only screen and (min-width:320px) and (max-width:480px){.mec-wrap .flip-clock-wrapper ul{width:29px!important}.mec-wrap .flip-clock-wrapper ul li a div div.inn{font-size:25px!important}.mec-wrap .flip-clock-divider .flip-clock-label{display:none}.mec-wrap span.flip-clock-divider:first-child{width:0}.mec-wrap span.flip-clock-divider{width:20px}.mec-single-event .mec-events-meta-group-countdown{margin-left:10%}}@media screen and (min-width:960px) and (max-width:1200px){.mec-wrap .threedaydigits ul{height:50px;width:47px}}@media screen and (min-width:480px) and (max-width:768px){.mec-wrap .threedaydigits ul{height:48px;width:26px!important}.mec-wrap .threedaydigits .flip-clock-label{font-size:8px;left:-8px}}@media screen and (min-width:320px) and (max-width:480px){.mec-wrap .threedaydigits ul{height:48px;width:22px!important}}.mec-wrap .flip-clock-wrapper *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;backface-visibility:hidden}.mec-wrap .flip-clock-wrapper a{cursor:pointer;text-decoration:none;color:#ccc}.mec-wrap .flip-clock-wrapper a:hover{color:#fff}.mec-wrap .flip-clock-wrapper ul{list-style:none}.flip-clock-wrapper.clearfix:after,.mec-wrap .flip-clock-wrapper.clearfix:before{content:" ";display:table}.mec-wrap .flip-clock-wrapper.clearfix:after{clear:both}.mec-wrap .flip-clock-wrapper{font:normal 11px "helvetica neue",helvetica,sans-serif;-webkit-user-select:none}.mec-wrap .flip-clock-meridium{background:0 0!important;box-shadow:0 0 0!important;font-size:36px!important}.mec-wrap .flip-clock-meridium a{color:#313333}.mec-wrap .flip-clock-wrapper{text-align:center;position:relative;display:inline-block;padding-bottom:10px}.flip-clock-wrapper:after,.mec-wrap .flip-clock-wrapper:before{content:" ";display:table}.mec-wrap .flip-clock-wrapper:after{clear:both}.mec-wrap .flip-clock-wrapper ul{position:relative;float:left;margin:2px;width:50px;height:50px;font-size:80px;font-weight:700;line-height:87px;border-radius:3px;background:rgba(0,0,0,.21)}.mec-wrap .flip-clock-wrapper ul li{z-index:1;position:absolute;left:0;top:0;width:100%;height:100%;line-height:54px;text-decoration:none!important}.mec-wrap .flip-clock-wrapper ul li:first-child{z-index:2}.mec-wrap .flip-clock-wrapper ul li a{display:block;height:100%;-webkit-perspective:200px;-moz-perspective:200px;perspective:200px;margin:0!important;overflow:visible!important;cursor:default!important}.mec-wrap .flip-clock-wrapper ul li a div{z-index:1;position:absolute;left:0;width:100%;height:50%;font-size:80px;overflow:hidden;outline:1px solid transparent}.mec-wrap .flip-clock-wrapper ul li a div .shadow{position:absolute;width:100%;height:100%;z-index:2}.mec-wrap .flip-clock-wrapper ul li a div.up{-webkit-transform-origin:50% 100%;-moz-transform-origin:50% 100%;-ms-transform-origin:50% 100%;-o-transform-origin:50% 100%;transform-origin:50% 100%;top:0}.mec-wrap .flip-clock-wrapper ul li a div.up:after{content:"";position:absolute;top:24px;left:0;z-index:5;width:100%;height:3px;background-color:rgba(0,0,0,.12)}.mec-wrap .flip-clock-wrapper ul li a div.down{-webkit-transform-origin:50% 0;-moz-transform-origin:50% 0;-ms-transform-origin:50% 0;-o-transform-origin:50% 0;transform-origin:50% 0;bottom:0;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.mec-wrap .flip-clock-wrapper ul li a div div.inn{position:absolute;left:0;z-index:1;width:100%;height:200%;color:#fff;text-shadow:0 0 2px rgba(0,0,0,.25);text-align:center;background-color:#40d9f1;border-radius:3px;font-size:48px}.mec-wrap .flip-clock-wrapper ul li a div.up div.inn{top:0}.mec-wrap .flip-clock-wrapper ul li a div.down div.inn{bottom:0}.mec-wrap .flip-clock-wrapper ul.play li.flip-clock-before{z-index:3}.mec-wrap .flip-clock-wrapper .flip{box-shadow:0 2px 5px rgba(0,0,0,.17)}.mec-wrap .flip-clock-wrapper ul.play li.flip-clock-active{-webkit-animation:asd .5s .5s linear both;-moz-animation:asd .5s .5s linear both;animation:asd .5s .5s linear both;z-index:5}.mec-wrap .flip-clock-divider{float:left;display:inline-block;position:relative;width:18px;height:62px}.mec-wrap .flip-clock-divider:first-child{width:0}.mec-wrap .flip-clock-dot{display:none;background:#323434;width:10px;height:10px;position:absolute;border-radius:50%;box-shadow:0 0 5px rgba(0,0,0,.5);left:5px}.mec-wrap .flip-clock-divider .flip-clock-label{position:absolute;bottom:-1.5em;right:-71px;color:#101010;font-weight:700;text-shadow:none;text-transform:uppercase}.mec-wrap .blox.dark .flip-clock-divider .flip-clock-label{color:#8a8a8a}.mec-wrap .flip-clock-divider.seconds .flip-clock-label{right:-82px}.mec-wrap .flip-clock-dot.top{top:30px}.mec-wrap .flip-clock-dot.bottom{bottom:30px}@-webkit-keyframes asd{0%{z-index:2}20%{z-index:4}100%{z-index:4}}@-moz-keyframes asd{0%{z-index:2}20%{z-index:4}100%{z-index:4}}@-o-keyframes asd{0%{z-index:2}20%{z-index:4}100%{z-index:4}}@keyframes asd{0%{z-index:2}20%{z-index:4}100%{z-index:4}}.flip-clock-wrapper ul.play li.flip-clock-active .down{z-index:2;-webkit-animation:turn .5s .5s linear both;-moz-animation:turn .5s .5s linear both;animation:turn .5s .5s linear both}@-webkit-keyframes turn{0%{-webkit-transform:rotatex(90deg)}100%{-webkit-transform:rotatex(0)}}@-moz-keyframes turn{0%{-moz-transform:rotatex(90deg)}100%{-moz-transform:rotatex(0)}}@-o-keyframes turn{0%{-o-transform:rotatex(90deg)}100%{-o-transform:rotatex(0)}}@keyframes turn{0%{transform:rotatex(90deg)}100%{transform:rotatex(0)}}.flip-clock-wrapper ul.play li.flip-clock-before .up{z-index:2;-webkit-animation:turn2 .5s linear both;-moz-animation:turn2 .5s linear both;animation:turn2 .5s linear both}@-webkit-keyframes turn2{0%{-webkit-transform:rotatex(0)}100%{-webkit-transform:rotatex(-90deg)}}@-moz-keyframes turn2{0%{-moz-transform:rotatex(0)}100%{-moz-transform:rotatex(-90deg)}}@-o-keyframes turn2{0%{-o-transform:rotatex(0)}100%{-o-transform:rotatex(-90deg)}}@keyframes turn2{0%{transform:rotatex(0)}100%{transform:rotatex(-90deg)}}.flip-clock-wrapper ul li.flip-clock-active{z-index:3}.flip-clock-wrapper ul.play li.flip-clock-before .up .shadow{background:-moz-linear-gradient(top,rgba(0,0,0,.1) 0,rgba(64,64,64,.68) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(0,0,0,.1)),color-stop(100%,rgba(64,64,64,.68)));background:linear,top,rgba(0,0,0,.1) 0,rgba(64,64,64,.68) 100%;background:-o-linear-gradient(top,rgba(0,0,0,.1) 0,rgba(64,64,64,.68) 100%);background:-ms-linear-gradient(top,rgba(0,0,0,.1) 0,rgba(64,64,64,.68) 100%);background:linear,to bottom,rgba(0,0,0,.1) 0,rgba(64,64,64,.68) 100%;-webkit-animation:show .5s linear both;-moz-animation:show .5s linear both;animation:show .5s linear both}.flip-clock-wrapper ul.play li.flip-clock-active .up .shadow{background:-moz-linear-gradient(top,rgba(0,0,0,.1) 0,rgba(64,64,64,.68) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(0,0,0,.1)),color-stop(100%,rgba(64,64,64,.68)));background:linear,top,rgba(0,0,0,.1) 0,rgba(64,64,64,.68) 100%;background:-o-linear-gradient(top,rgba(0,0,0,.1) 0,rgba(64,64,64,.68) 100%);background:-ms-linear-gradient(top,rgba(0,0,0,.1) 0,rgba(64,64,64,.68) 100%);background:linear,to bottom,rgba(0,0,0,.1) 0,rgba(64,64,64,.68) 100%;-webkit-animation:hide .5s .3s linear both;-moz-animation:hide .5s .3s linear both;animation:hide .5s .3s linear both}.flip-clock-wrapper ul.play li.flip-clock-before .down .shadow{background:-moz-linear-gradient(top,rgba(64,64,64,.68) 0,rgba(0,0,0,.1) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(64,64,64,.68)),color-stop(100%,rgba(0,0,0,.1)));background:linear,top,rgba(64,64,64,.68) 0,rgba(0,0,0,.1) 100%;background:-o-linear-gradient(top,rgba(64,64,64,.68) 0,rgba(0,0,0,.1) 100%);background:-ms-linear-gradient(top,rgba(64,64,64,.68) 0,rgba(0,0,0,.1) 100%);background:linear,to bottom,rgba(64,64,64,.68) 0,rgba(0,0,0,.1) 100%;-webkit-animation:show .5s linear both;-moz-animation:show .5s linear both;animation:show .5s linear both}.flip-clock-wrapper ul.play li.flip-clock-active .down .shadow{background:-moz-linear-gradient(top,rgba(64,64,64,.68) 0,rgba(0,0,0,.1) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(64,64,64,.68)),color-stop(100%,rgba(0,0,0,.1)));background:linear,top,rgba(64,64,64,.68) 0,rgba(0,0,0,.1) 100%;background:-o-linear-gradient(top,rgba(64,64,64,.68) 0,rgba(0,0,0,.1) 100%);background:-ms-linear-gradient(top,rgba(64,64,64,.68) 0,rgba(0,0,0,.1) 100%);background:linear,to bottom,rgba(64,64,64,.68) 0,rgba(0,0,0,.1) 100%;-webkit-animation:hide .5s .3s linear both;-moz-animation:hide .5s .3s linear both;animation:hide .5s .2s linear both}@-webkit-keyframes show{0%{opacity:0}100%{opacity:1}}@-moz-keyframes show{0%{opacity:0}100%{opacity:1}}@-o-keyframes show{0%{opacity:0}100%{opacity:1}}@keyframes show{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes hide{0%{opacity:1}100%{opacity:0}}@-moz-keyframes hide{0%{opacity:1}100%{opacity:0}}@-o-keyframes hide{0%{opacity:1}100%{opacity:0}}@keyframes hide{0%{opacity:1}100%{opacity:0}}@font-face{font-family:simple-line-icons;src:url(../fonts/Simple-Line-Icons.eot?v=2.3.1);src:url(../fonts/Simple-Line-Icons.eot?v=2.3.1#iefix) format('embedded-opentype'),url(../fonts/Simple-Line-Icons.woff2?v=2.3.1) format('woff2'),url(../fonts/Simple-Line-Icons.woff?v=2.3.1) format('woff'),url(../fonts/Simple-Line-Icons.ttf?v=2.3.1) format('truetype'),url(../fonts/Simple-Line-Icons.svg?v=2.3.1#simple-line-icons) format('svg');font-weight:400;font-style:normal}[class*=mec-sl-]{font-family:simple-line-icons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.mec-sl-facebook:before{content:"\e00b"}.mec-sl-twitter:before{content:"\e009"}.mec-sl-google-plus:before{content:"\e60d"}.mec-sl-angle-left:before{content:"\e605"}.mec-sl-angle-right:before{content:"\e606"}.mec-sl-calendar:before{content:"\e075"}.mec-sl-clock-o:before{content:"\e081"}.mec-sl-home:before{content:"\e069"}.mec-sl-phone:before{content:"\e600"}.mec-sl-envelope:before{content:"\e086"}.mec-sl-sitemap:before{content:"\e037"}.mec-sl-map-marker:before{content:"\e096"}.mec-sl-floder:before{content:"\e089"}.mec-sl-wallet:before{content:"\e02a"}.mec-color,.mec-color-before :before,.mec-color-hover:hover,.mec-wrap .mec-color,.mec-wrap .mec-color-before :before,.mec-wrap .mec-color-hover:hover{color:#40d9f1}.mec-bg-color,.mec-bg-color-hover:hover,.mec-wrap .mec-bg-color,.mec-wrap .mec-bg-color-hover:hover{background-color:#40d9f1}.mec-border-color,.mec-border-color-hover:hover,.mec-wrap .mec-border-color,.mec-wrap .mec-border-color-hover:hover{border-color:#40d9f1}.mec-toggle-month-divider.mec-skin-list-events-container{border:1px solid #e8e8e8;margin-bottom:30px;background:#f8f8f8;box-shadow:0 2px 18px -1px rgba(0,0,0,.1);border-radius:2px}.mec-toggle-month-divider .mec-month-divider{margin:0;text-align:left;background:#fff;position:relative;cursor:pointer;border-top:1px solid #e8e8e8}.mec-toggle-month-divider .mec-month-divider span{padding:20px;border-bottom:1px solid #e8e8e8}.mec-toggle-month-divider .mec-month-divider i{position:absolute;right:20px;top:24px;font-size:20px;cursor:pointer}.mec-toggle-month-divider .mec-month-divider span:before{display:none}.mec-toggle-month-divider .mec-month-divider+article{margin-top:20px}.mec-toggle-month-divider .mec-wrap .mec-month-divider:first-of-type{border-top:none}.mec-toggle-month-divider .mec-event-list-accordion .mec-month-divider:not(:first-of-type)~article{display:none}.mec-skin-list-events-container:not(.mec-toggle-month-divider) .mec-month-divider i{display:none}.mec-toogle-inner-month-divider .mec-toggle-item-col .mec-event-month{display:inline-block;padding-top:0}.mec-toogle-inner-month-divider .mec-toggle-item-col .mec-event-date{font-size:14px;line-height:14px;float:none;display:inline-block;margin-right:0;font-weight:700}.mec-events-toggle .mec-toogle-inner-month-divider.mec-toggle-item-inner{padding:20px 60px 30px 15px}.mec-toogle-inner-month-divider .mec-toggle-month-inner-image{float:left;clear:right;width:100px;margin-right:20px;margin-left:10px}.mec-toogle-inner-month-divider .mec-toggle-item-col .mec-event-detail{margin-top:-6px}.mec-toogle-inner-month-divider .mec-toggle-item-col{float:none;width:100%;margin-top:10px;display:block;border:none}.mec-events-toggle .mec-toogle-inner-month-divider .mec-toggle-title{font-size:19px;display:block;padding-top:10px}@media only screen and (max-width:768px){.mec-events-toggle .mec-toogle-inner-month-divider .mec-toggle-title{font-size:14px;padding-top:0}.mec-toogle-inner-month-divider .mec-toggle-item-col{margin-top:0}.mec-toogle-inner-month-divider .mec-toggle-month-inner-image{width:70px}}.mec-wrap article:not([class^=mec-event-countdown]):not([class^=mec-event-cover-]).mec-label-canceled:before,.mec-wrap article:not([class^=mec-event-countdown]):not([class^=mec-event-cover-]).mec-label-featured:before{z-index:1;position:absolute;top:25px;right:-37px;font-size:11px;letter-spacing:1px;text-transform:uppercase;background:#04de78;padding:2px 40px;color:#fff;-ms-transform:rotate(45deg);-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-transition:.5s cubic-bezier(.25,.5,.06,.85);transition:.5s cubic-bezier(.25,.5,.06,.85);content:attr(data-style)}.mec-wrap article:not([class^=mec-event-countdown]):not([class^=mec-event-cover-]).mec-label-canceled,.mec-wrap article:not([class^=mec-event-countdown]):not([class^=mec-event-cover-]).mec-label-featured{overflow:hidden;position:relative}.mec-wrap article:not([class^=mec-event-countdown]):not([class^=mec-event-cover-]).mec-label-canceled:before{background:#de0404}.mec-daily-view-date-events article:before,ul.mec-weekly-view-dates-events article:before{padding:7px 40px!important;top:27px!important}.mec-event-grid-classic article .mec-fc-style,.mec-event-grid-minimal article .mec-fc-style,.mec-event-grid-simple article .mec-fc-style,.mec-timetable-wrap article .mec-fc-style,.mec-wrap .mec-event-list-accordion article .mec-fc-style,.mec-wrap .mec-event-list-modern article .mec-fc-style,.mec-wrap .mec-events-agenda .mec-agenda-event .mec-fc-style,.mec-wrap article.mec-event-cover-classic .mec-fc-style,.mec-wrap article.mec-event-cover-clean .mec-fc-style,.mec-wrap article.mec-event-cover-modern .mec-fc-style,.mec-wrap article[class^=mec-event-countdown-] .mec-fc-style{font-size:9px;letter-spacing:.5px;text-transform:uppercase;background:#04de78;padding:2px 7px;color:#fff;position:relative;margin-left:5px;border-radius:2px}.mec-wrap .mec-events-agenda .mec-agenda-event.mec-label-canceled .mec-fc-style,.mec-wrap article.mec-event-cover-modern.mec-label-canceled .mec-fc-style{background:#de0404}.mec-event-grid-minimal article .mec-fc-style:before,.mec-event-grid-simple article .mec-fc-style:before,.mec-timetable-wrap article .mec-fc-style:before,.mec-wrap .mec-event-list-accordion article .mec-fc-style:before,.mec-wrap .mec-event-list-modern article .mec-fc-style:before,.mec-wrap .mec-events-agenda .mec-agenda-event .mec-fc-style:before,.mec-wrap article.mec-event-cover-classic .mec-fc-style:before,.mec-wrap article.mec-event-cover-clean .mec-fc-style:before,.mec-wrap article[class^=mec-event-countdown-] .mec-fc-style:before{width:0;height:0;border-top:4px solid transparent!important;border-right:5px solid;border-bottom:4px solid transparent;margin:0;top:50%;left:-4px;transform:translateY(-4.5px);position:absolute;content:'';color:#04de78}.mec-wrap .mec-events-agenda .mec-agenda-event.mec-label-canceled .mec-fc-style:before{color:#de0404}.mec-event-grid-classic article.mec-label-canceled:before,.mec-event-grid-classic article.mec-label-featured:before,.mec-event-grid-minimal article.mec-label-canceled:before,.mec-event-grid-minimal article.mec-label-featured:before,.mec-event-grid-simple article.mec-label-canceled:before,.mec-event-grid-simple article.mec-label-featured:before,.mec-timetable-wrap article.mec-label-canceled:before,.mec-timetable-wrap article.mec-label-featured:before,.mec-wrap .mec-event-list-accordion article.mec-label-canceled:before,.mec-wrap .mec-event-list-accordion article.mec-label-featured:before,.mec-wrap .mec-event-list-modern article.mec-label-canceled:before,.mec-wrap .mec-event-list-modern article.mec-label-featured:before{display:none}.mec-wrap .mec-event-list-accordion article .mec-fc-style,.mec-wrap .mec-event-list-modern article .mec-fc-style,.mec-wrap article.mec-event-cover-classic .mec-fc-style,.mec-wrap article.mec-event-cover-clean .mec-fc-style,.mec-wrap article[class^=mec-event-countdown-] .mec-fc-style{top:-3px;font-size:11px;margin-left:10px}.mec-event-grid-classic article.mec-label-canceled .mec-fc-style,.mec-event-grid-minimal article.mec-label-canceled .mec-fc-style,.mec-event-grid-simple article.mec-label-canceled .mec-fc-style,.mec-timetable-wrap article.mec-label-canceled .mec-fc-style,.mec-wrap .mec-event-list-accordion article.mec-label-canceled .mec-fc-style,.mec-wrap .mec-event-list-modern article.mec-label-canceled .mec-fc-style,.mec-wrap article.mec-event-cover-classic.mec-label-canceled .mec-fc-style,.mec-wrap article.mec-event-cover-clean.mec-label-canceled .mec-fc-style,.mec-wrap article[class^=mec-event-countdown-].mec-label-canceled .mec-fc-style{background:#de0404}.mec-event-grid-classic article.mec-label-canceled .mec-fc-style:before,.mec-event-grid-minimal article.mec-label-canceled .mec-fc-style:before,.mec-event-grid-simple article.mec-label-canceled .mec-fc-style:before,.mec-timetable-wrap article.mec-label-canceled .mec-fc-style:before,.mec-wrap .mec-event-list-accordion article.mec-label-canceled .mec-fc-style:before,.mec-wrap .mec-event-list-modern article.mec-label-canceled .mec-fc-style:before,.mec-wrap article.mec-event-cover-classic.mec-label-canceled .mec-fc-style:before,.mec-wrap article.mec-event-cover-clean.mec-label-canceled .mec-fc-style:before,.mec-wrap article[class^=mec-event-countdown-].mec-label-canceled .mec-fc-style:before{color:#de0404}.mec-wrap .mec-slider-t5 article:not([class^=mec-event-countdown]).mec-label-canceled:before,.mec-wrap .mec-slider-t5 article:not([class^=mec-event-countdown]).mec-label-featured:before{-ms-transform:none;-webkit-transform:none;transform:none;-webkit-transition:none;transition:none;top:271px;right:0}.mec-timetable-wrap article .mec-fc-style{top:-2px;font-size:10px}.mec-wrap article.mec-event-cover-modern .mec-fc-style{padding:5px 9px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;margin-bottom:24px;display:inline-block;border-radius:2px}.mec-skin-grid-events-container .mec-wrap .mec-event-grid-clean .mec-event-article:before{-ms-transform:none;-webkit-transform:none;transform:none!important;-webkit-transition:none;transition:none;top:22px!important;right:22px!important;padding:0 10px!important}.mec-event-grid-minimal article .mec-fc-style,.mec-event-grid-simple article .mec-fc-style{top:-4px;font-size:10px;margin-left:10px}.mec-event-grid-classic article .mec-fc-style{padding:5px 20px;font-size:12px;margin-top:8px;display:inline-block}.mec-hourly-schedule-speaker-info{background:#fff;padding:30px;border:1px solid #e6e6e6;max-width:740px;width:740px;margin-left:-110px}.mec-hourly-schedule-speaker-thumbnail{float:left;max-width:30%;width:30%}.mec-hourly-schedule-speaker-name{font-weight:700;font-size:26px;line-height:1.2;color:#333;text-transform:uppercase}.mec-hourly-schedule-speaker-details{float:left;width:69%;padding-left:25px}.mec-hourly-schedule-speaker-job-title{font-size:16px;line-height:1.3;margin-bottom:4px}.mec-hourly-schedule-speaker-description{font-size:14px;font-weight:400;color:#6d7683;line-height:1.7;text-align:left}.mec-hourly-schedule-speaker-contact-information a i{color:#6b6b6b;background:#ebebeb;line-height:29px;margin:9px 7px 9px 0;width:30px;height:30px;display:inline-block;text-align:center;transition:all .2s ease;font-size:15px;cursor:pointer}.mec-hourly-schedule-speaker-contact-information a i:hover{background:#222;color:#fff}@media only screen and (max-width:479px){.mec-hourly-schedule-speaker-thumbnail{float:none;max-width:none;margin-right:0;margin-bottom:15px;width:100%}.mec-hourly-schedule-speaker-thumbnail img{width:100%}.mec-hourly-schedule-speaker-details{padding-left:0}.mec-hourly-schedule-speaker-info{width:90%;margin:0 auto}}.mec-profile .mec-profile-bookings{border:2px solid #e6e6e6;text-align:center}.mec-profile .mec-profile-bookings tbody tr:first-child{background:#f7f7f7;font-weight:700;text-transform:capitalize}.mec-profile .mec-profile-bookings tbody tr{border-bottom:1px solid #e6e6e6;font-size:14px}.mec-profile .mec-profile-bookings tbody tr td{border:1px solid #e6e6e6;padding:10px}.mec-profile .mec-profile-bookings tbody tr td:nth-child(1){width:4%}.mec-profile .mec-profile-bookings tbody tr td:nth-child(2){width:37%}.mec-profile .mec-profile-bookings tbody tr td:nth-child(3){width:24%}.mec-profile .mec-profile-bookings tbody tr td:nth-child(4){width:15%}.mec-profile .mec-profile-bookings tbody tr td:nth-child(5){width:10%}.mec-profile .mec-profile-bookings tbody tr td:nth-child(6){width:10%}.mec-profile .mec-event-status{padding:5px 10px;color:#fff;border-radius:2px;font-size:12px;line-height:12px;letter-spacing:.4px}.mec-profile .mec-event-status.mec-book-confirmed{background:#50d477}.mec-profile .mec-event-status.mec-book-pending{background:#fcbe69}.mec-profile .mec-event-status.mec-book-rejected{background:#fe686a}.mec-profile .mec-event-date{font-size:12px;color:#888}.mec-profile .mec-booking-number-of-attendees{font-size:13px;color:#888}.mec-profile .mec-booking-number-of-attendees i,.mec-profile .mec-profile-bookings-view-invoice i{font-size:15px;color:#008aff;vertical-align:text-bottom;margin-right:4px}.mec-booking-attendees{background:#fff;padding:10px}.mec-booking-attendees{width:750px;text-align:center}.mec-booking-attendees-wrapper{border:2px solid #e6e6e6;font-size:14px}.mec-booking-attendees-head{display:table;width:100%;background:#f7f7f7;border-bottom:1px solid #e6e6e6;font-weight:700}.mec-booking-attendees-head span,.mec-booking-attendees-head-content>span{vertical-align:middle;display:table-cell;padding:7px;border-right:1px solid #e6e6e6}.mec-booking-attendees-head-content{display:table;width:100%;border-bottom:1px solid #e6e6e6}.mec-booking-attendees-wrapper .mec-booking-attendees-head-content:last-child{border:none}.mec-booking-attendees-head span:nth-child(1),.mec-booking-attendees-head-content>span:nth-child(1){width:4%}.mec-booking-attendees-head span:nth-child(2),.mec-booking-attendees-head-content>span:nth-child(2){width:20%}.mec-booking-attendees-head span:nth-child(3),.mec-booking-attendees-head-content>span:nth-child(3){width:24%}.mec-booking-attendees-head span:nth-child(4),.mec-booking-attendees-head-content>span:nth-child(4){width:26%}.mec-booking-attendees-head span:nth-child(5),.mec-booking-attendees-head-content>span:nth-child(5){width:26%}@media only screen and (max-width:759px){.mec-booking-attendees{width:470px}.mec-booking-attendees-head span,.mec-booking-attendees-head-content>span{word-break:break-all}}.mec-woo-booking-checkout{position:relative;border:none;border-radius:0;color:#fff;display:inline-block;font-size:12px;letter-spacing:1px;line-height:1.5;text-transform:uppercase;font-weight:600;text-decoration:none;cursor:pointer;margin-bottom:21px;margin-right:10px;line-height:1;padding:18px 20px 16px;background:#39c36e;-webkit-transition:all .21s ease;-moz-transition:all .21s ease;transition:all .21s ease;border-radius:0;margin-bottom:6px;min-width:170px;margin-top:5px;text-align:center}.mec-woo-booking-checkout:hover{background:#222;color:#fff}.mec-woo-booking-checkout:focus,.mec-woo-booking-checkout:visited{color:#fff}.single-mec-events .lity-container{max-width:480px;width:480px}.lity-content .mec-events-meta-group-booking{width:100%;padding:20px 50px;background:#fff}.lity-content .mec-events-meta-group-booking .mec-booking form>h4{text-transform:uppercase;font-size:15px;font-weight:700;color:#313131;border-bottom:4px solid #ebebeb;width:100%;display:block;padding-bottom:10px;position:relative;text-align:center;line-height:1.2;margin-bottom:10px}.lity-content .mec-events-meta-group-booking .mec-booking form>h4:before{padding:1px 35px;border-bottom:4px solid #40d9f1;font-size:6px;content:"";text-align:center;position:absolute;bottom:-4px;margin-left:-35px;left:50%}.lity-content .mec-events-meta-group-booking .mec-event-ticket-available,.lity-content .mec-events-meta-group-booking .mec-event-ticket-name,.lity-content .mec-events-meta-group-booking .mec-event-ticket-price,.lity-content .mec-events-meta-group-booking .mec-ticket-variation-name,.lity-content .mec-events-meta-group-booking .mec-ticket-variation-price,.lity-content .mec-events-meta-group-booking label{color:#424242;font-size:12px;font-weight:300;letter-spacing:0;margin:3px 0;clear:none;padding:5px 1em 3px 0;display:inline-block}.lity-content .mec-events-meta-group-booking .mec-event-ticket-available{margin-bottom:12px}.lity-content .mec-events-meta-group-booking select{display:block;background:#fcfcfc;min-height:42px;min-width:180px;font-size:13px;border:1px solid #e0e0e0;padding:13px 10px;width:100%;margin-bottom:20px;box-shadow:inset 0 2px 4px rgba(0,0,0,.051);clear:both;font-family:Montserrat,Helvetica,Arial,sans-serif}.lity-content .mec-events-meta-group-booking input[type=email]{color:#888;border:1px solid #e1e1e1;font-size:14px;display:block;width:100%;outline:0}.lity-content .mec-events-meta-group-booking input{margin-bottom:10px!important}.lity-content .mec-book-ticket-variation h5{color:#424242;font-size:12px;font-weight:300;letter-spacing:0;margin:0;clear:none;padding:5px 1em 3px 0;display:inline-block;text-transform:capitalize;font-family:Montserrat,Helvetica,Arial,sans-serif}.lity-content ul.mec-book-tickets-container{padding:0}.lity-content .mec-events-meta-group-booking input[type=email],.lity-content .mec-events-meta-group-booking input[type=number],.lity-conten
|