diff --git a/.circleci/config.yml b/.circleci/config.yml
deleted file mode 100644
index bc7acda4..00000000
--- a/.circleci/config.yml
+++ /dev/null
@@ -1,142 +0,0 @@
-version: 2.1
-
-parameters:
- machine_image:
- type: string
- default: ubuntu-2004:202010-01
- working_dir:
- type: string
- default: '~/woocommerce'
-
-jobs:
- build:
- working_directory: /app
- docker:
- - image: php:7.2-apache
- environment:
- APP_ENV: test
- steps:
- - checkout
- - run:
- name: Install system packages
- command: apt-get update && apt-get -y install zip git zlib1g-dev wget
- - run:
- name: Install PHP extensions
- command: |
- docker-php-ext-install pdo
- docker-php-ext-install zip
- - run:
- name: Install Composer
- command: |
- php -r "copy('http://getcomposer.org/installer', 'composer-setup.php');"
- php composer-setup.php --version=1.10.13
- - run:
- name: Display PHP information
- command: |
- php -v
- php composer.phar --version
- - run:
- name: Check PHP sintax
- command: find . -name \*.php -exec php -l "{}" \;
- - run:
- name: Install project dependencies
- command: |
- cd /app
- php composer.phar install
- - store_artifacts:
- path: /app
- destination: app-artifact
- - persist_to_workspace:
- root: /
- paths:
- - app
-
- publish:
- working_directory: /
- docker:
- - image: docker:17.05.0-ce-git
- steps:
- - setup_remote_docker
- - attach_workspace:
- at: /
- - run:
- name: Copy CI files to root
- command: |
- cd /app
- cp .circleci/data/.htaccess .
- cp .circleci/data/Dockerfile .
- cp .circleci/data/update-wp-config.php .
- cp .circleci/data/wait-for-mysql.sh .
- - run:
- name: Build image base for modifications
- command: |
- cd /app && ls
- docker build -t ${DOCKER_ACCOUNT}/${PROJECT_NAME}:latest .
- docker run --name newimage -d -p3306:3306 -p80:80 ${DOCKER_ACCOUNT}/${PROJECT_NAME}:latest
- - run:
- name: Wait for MySQL Service
- command: |
- docker exec -it newimage sh /app/wp-content/plugins/${PLUGIN_NAME}/wait-for-mysql.sh
- docker exec -it newimage rm /app/wp-content/plugins/${PLUGIN_NAME}/wait-for-mysql.sh
- - run:
- name: Activate and setup Plugin
- command: |
- docker exec -it newimage wp plugin activate ${PLUGIN_NAME} --allow-root
- docker exec -it newimage chmod -R 777 /app/wp-content/plugins/${PLUGIN_NAME}
- docker exec -it newimage mysql -u root -D wordpress -e "REPLACE INTO wp_options (option_name,option_value) VALUES ('${PLUGIN_META_NAME}','${PLUGIN_CONFIG}');"
- docker exec -i newimage curl -X GET "http://localhost/wp-content/plugins/${PLUGIN_NAME}/update-wp-config.php?url=${STAGING_URL}"
- docker exec -it newimage rm /app/wp-content/plugins/${PLUGIN_NAME}/update-wp-config.php
- docker exec -it newimage touch test5.txt
- - run:
- name: Clear useless files
- command: |
- docker exec -it newimage sh -c "cd /app/wp-content/plugins/${PLUGIN_NAME}" && \
- rm -rf .github .circleci .plugin-data .git .gitignore .editorconfig && \
- rm -rf Dockerfile update-wp-config.php wait-for-mysql.sh LICENSE *.MD
- - deploy:
- name: Commit and push Docker image
- command: |
- sleep 5 && docker stop newimage
- docker login ${DOCKER_ACCOUNT} -u ${DOCKER_USERNAME} -p ${DOCKER_PASSWORD}
- docker commit newimage ${DOCKER_ACCOUNT}/${PROJECT_NAME}:latest
- docker tag ${DOCKER_ACCOUNT}/${PROJECT_NAME} "${DOCKER_ACCOUNT}/${PROJECT_NAME}:latest"
- docker tag ${DOCKER_ACCOUNT}/${PROJECT_NAME} "${DOCKER_ACCOUNT}/${PROJECT_NAME}:${CIRCLE_BRANCH}"
- docker tag ${DOCKER_ACCOUNT}/${PROJECT_NAME} "${DOCKER_ACCOUNT}/${PROJECT_NAME}:${CIRCLE_SHA1:0:8}"
- docker push "${DOCKER_ACCOUNT}/${PROJECT_NAME}"
-
- deploy_staging:
- machine: true
- steps:
- - run:
- name: Send deployment webhook to Rancher
- command: |
- BODY='{"push_data":{"tag":"'"${CIRCLE_BRANCH}"'"},"repository":{"repo_name":"'"${DOCKER_ACCOUNT}/${PROJECT_NAME}"'"}}'
- curl -X POST ${RANCHER_STG_DEPLOY_URL} -H 'Content-Type: application/json' -d "${BODY}"
-
-workflows:
- version: 2
- build_publish_deploy:
- jobs:
- - build
- - publish:
- context: acceptance
- requires:
- - build
- filters:
- branches:
- only:
- - test
- - stg
- - develop
- - master
- - deploy_staging:
- context: acceptance
- requires:
- - publish
- filters:
- branches:
- only:
- - test
- - stg
- - develop
- - master
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index 2ebf0f88..a0625d53 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -42,7 +42,7 @@ jobs:
run: find . -name \*.php -exec php -l "{}" \;
-
name: Install project dependences
- run:
+ run:
php composer.phar install
sonar:
@@ -59,3 +59,4 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
+
diff --git a/.plugin-data/README.md b/.plugin-data/README.md
index 5d4c6cd1..022bdc3a 100644
--- a/.plugin-data/README.md
+++ b/.plugin-data/README.md
@@ -4,8 +4,8 @@ Plugin URI: https://github.com/pagarme/woocommerce
Contributors: pagarme
Tags: ecommerce, e-commerce, store, sales, sell, shop, cart, checkout, woocommerce, pagarme, payments, creditcard
Requires at least: 5.0
-Tested up to: 6.0
-Stable tag: 2.1.2
+Tested up to: 7.6.1
+Stable tag: 3.0.0
Requires PHP: 7.2
License: MIT
License URI: https://github.com/pagarme/woocommerce/blob/master/LICENSE
diff --git a/assets/images/logo.png b/assets/images/logo.png
deleted file mode 100644
index 0bca9fd7..00000000
Binary files a/assets/images/logo.png and /dev/null differ
diff --git a/assets/images/pagarme-white-avatar.svg b/assets/images/pagarme-white-avatar.svg
new file mode 100644
index 00000000..376d2b4b
--- /dev/null
+++ b/assets/images/pagarme-white-avatar.svg
@@ -0,0 +1,7 @@
+
+
\ No newline at end of file
diff --git a/assets/javascripts/admin/app/application.js b/assets/javascripts/admin/app/application.js
deleted file mode 100644
index 8f5019c6..00000000
--- a/assets/javascripts/admin/app/application.js
+++ /dev/null
@@ -1,45 +0,0 @@
-MONSTER( 'Pagarme.Application', function(Model, $, utils) {
-
- var createNames = [
- // Name for instance method create() if not component
- ];
-
- Model.init = function(container) {
- Model.setArrayIncludesPolyfill();
- Pagarme.BuildComponents.create( container );
- Pagarme.BuildCreate.init( container, createNames );
- };
-
- Model.setArrayIncludesPolyfill = function() {
- if ( ! Array.prototype.includes ) {
- Object.defineProperty( Array.prototype, 'includes', {
- value: function(searchElement, fromIndex) {
-
- if ( this == null ) {
- throw new TypeError('"this" is null or not defined');
- }
-
- var o = Object(this);
- var len = o.length >>> 0;
-
- if ( len === 0 ) {
- return false;
- }
-
- var n = fromIndex | 0;
- var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
-
- while ( k < len ) {
- if (o[k] === searchElement) {
- return true;
- }
- k++;
- }
-
- return false;
- }
- });
- }
- };
-
-});
diff --git a/assets/javascripts/admin/app/component-capture.js b/assets/javascripts/admin/app/component-capture.js
deleted file mode 100644
index 7fc44fb5..00000000
--- a/assets/javascripts/admin/app/component-capture.js
+++ /dev/null
@@ -1,137 +0,0 @@
-MONSTER( 'Pagarme.Components.Capture', function(Model, $, Utils) {
-
- Model.fn.start = function() {
- this.init();
- this.lock = false;
- };
-
- Model.fn.init = function() {
- this.addEventListener();
- this.startModal();
- };
-
- Model.fn.addEventListener = function() {
- this.$el.find( '[data-ref]:enabled' ).on( 'click', function(e){
- e.preventDefault();
- var target = e.currentTarget;
- var selector = '[data-charge-action=' + target.dataset.ref + '-' + target.dataset.type + ']';
- $( selector ).iziModal( 'open' );
- });
- };
-
- Model.fn.onClickCancel = function(e) {
- e.preventDefault();
- this.handleEvents( e, 'cancel' );
- };
-
- Model.fn.onClickCapture = function(e) {
- e.preventDefault();
- this.handleEvents( e, 'capture' );
- };
-
- Model.fn.handleEvents = function(DOMEvent, type) {
- var target = $( DOMEvent.currentTarget );
- var wrapper = target.closest( '[data-charge]' );
- var chargeId = wrapper.data( 'charge' );
- var amount = wrapper.find( '[data-element=amount]' ).val();
-
- this.request( type, chargeId, amount);
- };
-
- Model.fn.request = function(mode, chargeId, amount) {
- if ( this.lock ) {
- return;
- }
- this.lock = true;
- this.requestInProgress();
- var ajax = $.ajax({
- 'url': MONSTER.utils.getAjaxUrl(),
- 'method': 'POST',
- 'data': {
- 'action': 'STW3dqRT6E',
- 'mode': mode,
- 'charge_id': chargeId,
- 'amount': amount
- }
- });
-
- ajax.done( this._onDone.bind(this) );
- ajax.fail( this._onFail.bind(this) );
- };
-
- Model.fn.startModal = function() {
- var self = this;
- $( '.modal' ).iziModal({
- padding: 20,
- onOpening: function (modal) {
- var amount = modal.$element.find( '[data-element=amount]' );
- const options = {
- reverse:true,
- onKeyPress: function(amountValue, event, field){
- if (!event.originalEvent){
- return;
- }
-
- amountValue = amountValue.replace(/^0+/, '')
- if (amountValue[0] === ','){
- amountValue = '0' + amountValue;
- }
-
- if (amountValue && amountValue.length <= 2){
- amountValue = ('000'+amountValue).slice(-3);
- field.val(amountValue);
- field.trigger('input');
- return;
- }
-
- field.val(amountValue);
- }
- };
- amount.mask( "#.##0,00", options );
- modal.$element.on( 'click', '[data-action=capture]', self.onClickCapture.bind(self) );
- modal.$element.on( 'click', '[data-action=cancel]', self.onClickCancel.bind(self) );
- }
- });
- };
-
- Model.fn.requestInProgress = function () {
- swal({
- title: ' ',
- text: 'Processando...',
- allowOutsideClick: false
- });
- swal.showLoading();
- };
-
- Model.fn._onDone = function(response) {
- this.lock = false;
- $( '.modal' ).iziModal('close');
- swal.close();
- swal({
- type: 'success',
- title: ' ',
- html: response.data.message,
- showConfirmButton: false,
- timer: 2000
- }).then(
- function () { },
- function (dismiss) {
- window.location.reload();
- }
- );
- };
-
- Model.fn._onFail = function(xhr) {
- this.lock = false;
- swal.close();
- var data = JSON.parse(xhr.responseText);
- swal({
- type: 'error',
- title: ' ',
- html: data.message,
- showConfirmButton: false,
- timer: 2000
- });
- };
-
-});
diff --git a/assets/javascripts/admin/app/component-settings.js b/assets/javascripts/admin/app/component-settings.js
deleted file mode 100644
index 84a9888b..00000000
--- a/assets/javascripts/admin/app/component-settings.js
+++ /dev/null
@@ -1,487 +0,0 @@
-MONSTER("Pagarme.Components.Settings", function (Model, $, Utils) {
- var errorClass = Utils.addPrefix("field-error");
-
- Model.fn.start = function () {
- this.init();
- };
-
- Model.fn.init = function () {
- this.installments = $('[data-field="installments"]');
- this.billet = $('[data-field="billet"]');
- this.installmentsMax = $('[data-field="installments-maximum"]');
- this.installmentsMinAmount = $('[data-field="installments-min-amount"]');
- this.installmentsInterest = $('[data-field="installments-interest"]');
- this.installmentsByFlag = $('[data-field="installments-by-flag"]');
- this.installmentsWithoutInterest = $(
- '[data-field="installments-without-interest"]'
- );
- this.installmentsInterestIncrease = $(
- '[data-field="installments-interest-increase"]'
- );
- this.antifraudSection = $(
- 'h3[id*="woo-pagarme-payments_section_antifraud"]'
- );
- this.antifraudEnabled = $('[data-field="antifraud-enabled"]');
- this.antifraudMinValue = $('[data-field="antifraud-min-value"]');
- this.ccBrands = $('[data-field="flags-select"]');
- this.ccAllowSave = $('[data-field="cc-allow-save"]');
- this.billetBank = $('[data-field="billet-bank"]');
- this.softDescriptor = $('[data-field="soft-descriptor"]');
- this.voucherSection = $(
- 'h3[id*="woo-pagarme-payments_section_voucher"]'
- );
-
- this.voucherEnabled = $('#woocommerce_woo-pagarme-payments_enable_voucher');
- this.voucherSoftDescriptor = $(
- '[data-field="voucher-soft-descriptor"]'
- );
- this.VoucherccBrands = $('[data-field="voucher-flags-select"]');
- this.cardWallet = $('[data-field="card-wallet"]');
- this.voucherCardWallet = $('[data-field="voucher-card-wallet"]');
-
- this.isGatewayIntegrationType = $(
- 'input[id*="woo-pagarme-payments_is_gateway_integration_type"]'
- ).prop("checked");
- this.installmentsMaxByFlag = this.installmentsByFlag.find(
- 'input[name*="cc_installments_by_flag[max_installment]"]'
- );
- this.installmentsWithoutInterestByFlag = this.installmentsByFlag.find(
- 'input[name*="cc_installments_by_flag[no_interest]"]'
- );
-
- this.handleInstallmentFieldsVisibility(
- this.elements.installmentsTypeSelect.val()
- );
- this.handleGatewayIntegrationFieldsVisibility(
- this.isGatewayIntegrationType
- );
- this.handleBilletBankRequirement();
-
- this.setMaxInstallmentsWithoutInterestBasedOnMaxInstallments();
- this.setMaxInstallmentsWithoutInterestBasedOnMaxInstallmentsByFlag();
-
- this.setInstallmentsByFlags(null, true);
-
- this.addEventListener();
- };
-
- Model.fn.addEventListener = function () {
- this.on("keyup", "soft-descriptor");
- this.on("change", "environment");
- this.on("change", "installments-type");
- this.on("change", "is-gateway-integration-type");
- this.on("change", "enable-billet");
- this.on("change", "enable-multimethods-billet-card");
-
- this.elements.flagsSelect.on(
- "select2:unselecting",
- this._onChangeFlags.bind(this)
- );
- this.elements.flagsSelect.on(
- "select2:selecting",
- this._onChangeFlags.bind(this)
- );
-
- $("#mainform").on("submit", this._onSubmitForm.bind(this));
- };
-
- Model.fn._onKeyupSoftDescriptor = function (event) {
- var isGatewayIntegrationType = $(
- 'input[id*="woo-pagarme-payments_is_gateway_integration_type"]'
- ).prop("checked");
-
- if (!isGatewayIntegrationType &&
- event.currentTarget.value.length > 13
- ) {
- $(event.currentTarget).addClass(errorClass);
- return;
- }
-
- if (isGatewayIntegrationType && event.currentTarget.value.length > 22) {
- $(event.currentTarget).addClass(errorClass);
- return;
- }
-
- $(event.currentTarget).removeClass(errorClass);
- };
-
- Model.fn._onSubmitForm = function (event) {
- this.toTop = false;
- this.items = [];
-
- this.elements.validate.each(this._eachValidate.bind(this));
-
- return !~this.items.indexOf(true);
- };
-
- Model.fn._onChangeInstallmentsType = function (event) {
- this.handleInstallmentFieldsVisibility(event.currentTarget.value);
- };
-
- Model.fn._onChangeIsGatewayIntegrationType = function (event) {
- this.handleGatewayIntegrationFieldsVisibility(
- event.currentTarget.checked
- );
- };
-
- Model.fn._onChangeEnableBillet = function () {
- this.handleBilletBankRequirement();
- };
-
- Model.fn._onChangeEnableMultimethodsBilletCard = function () {
- this.handleBilletBankRequirement();
- };
-
- Model.fn._onChangeFlags = function (event) {
- this.setInstallmentsByFlags(event, false);
- };
-
- Model.fn._eachValidate = function (index, field) {
- var rect;
- var element = $(field),
- empty = element.isEmptyValue(),
- invalidMaxLength = element.val().length > element.prop("maxLength"),
- isFieldInvalid = empty || invalidMaxLength,
- func = isFieldInvalid ? "addClass" : "removeClass";
-
- if (!element.is(":visible")) {
- return;
- }
-
- element[func](errorClass);
-
- this.items[index] = isFieldInvalid;
-
- if (!isFieldInvalid) {
- return;
- }
-
- field.placeholder = field.dataset.errorMsg;
-
- if (!this.toTop) {
- this.toTop = true;
- rect = field.getBoundingClientRect();
- window.scrollTo(0, rect.top + window.scrollY - 32);
- }
- };
-
- Model.fn.handleInstallmentFieldsVisibility = function (value) {
- var installmentsMaxContainer = this.installmentsMax.closest("tr"),
- installmentsInterestContainer =
- this.installmentsInterest.closest("tr"),
- installmentsMinAmountContainer =
- this.installmentsMinAmount.closest("tr"),
- installmentsByFlagContainer = this.installmentsByFlag.closest("tr"),
- installmentsWithoutInterestContainer =
- this.installmentsWithoutInterest.closest("tr"),
- installmentsInterestIncreaseContainer =
- this.installmentsInterestIncrease.closest("tr");
-
- if (value == 1) {
- installmentsMaxContainer.show();
- installmentsInterestContainer.show();
- installmentsInterestIncreaseContainer.show();
- installmentsWithoutInterestContainer.show();
- installmentsMinAmountContainer.show();
- installmentsByFlagContainer.hide();
- } else {
- if (this.elements.flagsSelect.val()) {
- installmentsByFlagContainer.show();
- this.setInstallmentsByFlags(null, true);
- }
- installmentsMaxContainer.hide();
- installmentsMinAmountContainer.hide();
- installmentsInterestContainer.hide();
- installmentsInterestIncreaseContainer.hide();
- installmentsWithoutInterestContainer.hide();
- }
- };
-
- Model.fn.getOnlyGatewayBrands = function () {
- return (
- 'option[value="credz"], ' +
- 'option[value="sodexoalimentacao"], ' +
- 'option[value="sodexocultura"], ' +
- 'option[value="sodexogift"], ' +
- 'option[value="sodexopremium"], ' +
- 'option[value="sodexorefeicao"], ' +
- 'option[value="sodexocombustivel"], ' +
- 'option[value="vr"], ' +
- 'option[value="alelo"], ' +
- 'option[value="banese"], ' +
- 'option[value="cabal"]'
- );
- };
-
- Model.fn.getOnlyGatewayInstallments = function () {
- var installments = "";
- var maxInstallmentsLength =
- this.installmentsMax.children("option").length;
-
- for (let i = 13; i <= maxInstallmentsLength + 1; i++) {
- installments += `option[value="${i}"], `;
- }
-
- return installments.slice(0, -2);
- };
-
- Model.fn.setOriginalSelect = function (select) {
- if (select.data("originalHTML") === undefined) {
- select.data("originalHTML", select.html());
- }
- };
-
- Model.fn.removeOptions = function (select, options) {
- this.setOriginalSelect(select);
- options.remove();
- };
-
- Model.fn.restoreOptions = function (select) {
- var originalHTML = select.data("originalHTML");
- if (originalHTML !== undefined) {
- select.html(originalHTML);
- }
- };
-
- Model.fn.setMaxInstallmentsWithoutInterestBasedOnMaxInstallments =
- function () {
- var installmentsMaxElement = this.installmentsMax;
-
- installmentsMaxElement.on("change", function () {
- setMaxInstallmentsWithoutInterest($(this).val());
- });
-
- function setMaxInstallmentsWithoutInterest(installmentsMax) {
- var installmentsWithoutInterest = $(
- '[data-field="installments-without-interest"]'
- );
- installmentsWithoutInterest.children("option").hide();
- installmentsWithoutInterest
- .children("option")
- .filter(function () {
- return parseInt($(this).val()) <= installmentsMax;
- })
- .show();
- installmentsWithoutInterest.val(installmentsMax).change();
- }
- };
-
- Model.fn.setMaxInstallmentsWithoutInterestBasedOnMaxInstallmentsByFlag =
- function () {
- var installmentsMaxElement = this.installmentsMaxByFlag;
-
- installmentsMaxElement.on("change", function () {
- setMaxInstallmentsWithoutInterest(
- $(this).val(),
- $(this).closest("tr").attr("data-flag")
- );
- });
-
- function setMaxInstallmentsWithoutInterest(
- installmentsMax,
- brandName
- ) {
- var setMaxInstallmentsWithoutInterestOnFlag = $(
- '[data-field="installments-by-flag"]'
- ).find(
- `input[name*="cc_installments_by_flag[no_interest][${brandName}]"]`
- );
- setMaxInstallmentsWithoutInterestOnFlag.prop(
- "max",
- installmentsMax
- );
- }
- };
-
- Model.fn.setupPSPOptions = function (
- antifraudEnabled,
- antifraudMinValue,
- ccAllowSave,
- billetBank,
- voucherSoftDescriptor,
- VoucherccBrands,
- cardWallet,
- voucherEnabled,
- voucherCardWallet
- ) {
- antifraudEnabled.hide();
- antifraudMinValue.hide();
- ccAllowSave.hide();
- billetBank.hide();
- this.antifraudSection.hide();
- this.voucherSection.hide();
- voucherSoftDescriptor.hide();
- VoucherccBrands.hide();
- cardWallet.hide();
- voucherEnabled.hide();
- voucherCardWallet.hide();
-
- this.ccAllowSave.prop("checked", false);
- var $optionsToRemove = this.ccBrands.find(this.getOnlyGatewayBrands());
- this.removeOptions(this.ccBrands, $optionsToRemove);
-
- $("#woo-pagarme-payments_max_length_span").html("13");
- this.softDescriptor.prop("maxlength", 13);
-
- var $optionsToRemoveInstallments = this.installmentsMax.find(
- this.getOnlyGatewayInstallments()
- );
- var $optionsToRemoveInstallmentsWithoutInterest =
- this.installmentsWithoutInterest.find(
- this.getOnlyGatewayInstallments()
- );
- this.removeOptions(this.installmentsMax, $optionsToRemoveInstallments);
- this.removeOptions(
- this.installmentsWithoutInterest,
- $optionsToRemoveInstallmentsWithoutInterest
- );
-
- this.installmentsMaxByFlag.prop("max", 12);
- };
-
- Model.fn.setupGatewayOptions = function (
- antifraudEnabled,
- antifraudMinValue,
- ccAllowSave,
- billetBank,
- voucherSoftDescriptor,
- VoucherccBrands,
- cardWallet,
- voucherEnabled,
- voucherCardWallet
- ) {
- antifraudEnabled.show();
- antifraudMinValue.show();
- ccAllowSave.show();
- billetBank.show();
- this.antifraudSection.show();
- this.voucherSection.show();
- voucherSoftDescriptor.show();
- VoucherccBrands.show();
- cardWallet.show();
- voucherEnabled.show();
- voucherCardWallet.show();
-
- this.restoreOptions(this.ccBrands);
-
- $("#woo-pagarme-payments_max_length_span").html("22");
- this.softDescriptor.prop("maxlength", 22);
-
- this.restoreOptions(this.installmentsMax);
- this.restoreOptions(this.installmentsWithoutInterest);
-
- this.installmentsMaxByFlag.prop("max", 24);
- };
-
- Model.fn.handleGatewayIntegrationFieldsVisibility = function (isGateway) {
- var antifraudEnabled = this.antifraudEnabled.closest("tr"),
- antifraudMinValue = this.antifraudMinValue.closest("tr"),
- ccAllowSave = this.ccAllowSave.closest("tr"),
- billetBank = this.billetBank.closest("tr"),
- voucherSoftDescriptor = this.voucherSoftDescriptor.closest("tr"),
- VoucherccBrands = this.VoucherccBrands.closest("tr"),
- voucherEnabled = this.voucherEnabled.closest('tr'),
- voucherCardWallet = this.voucherCardWallet.closest('tr'),
- cardWallet = this.cardWallet.closest("tr");
-
- if (isGateway) {
- return this.setupGatewayOptions(
- antifraudEnabled,
- antifraudMinValue,
- ccAllowSave,
- billetBank,
- voucherSoftDescriptor,
- VoucherccBrands,
- cardWallet,
- voucherEnabled,
- voucherCardWallet
- );
- }
-
- return this.setupPSPOptions(
- antifraudEnabled,
- antifraudMinValue,
- ccAllowSave,
- billetBank,
- voucherSoftDescriptor,
- VoucherccBrands,
- cardWallet,
- voucherEnabled,
- voucherCardWallet
- );
- };
-
- Model.fn.handleBilletBankRequirement = function () {
- const billetBankElementId =
- "#woocommerce_woo-pagarme-payments_billet_bank";
- let bankRequirementFields = $('[data-requires-field="billet-bank"]');
- let billetBankIsRequired = false;
-
- bankRequirementFields.each(function () {
- if ($(this).prop("checked")) {
- billetBankIsRequired = true;
- return false;
- }
- });
-
- if (billetBankIsRequired) {
- $(billetBankElementId).attr("required", true);
- return;
- }
-
- $(billetBankElementId).attr("required", false);
- };
-
- Model.fn.setInstallmentsByFlags = function (event, firstLoad) {
- var flags = this.elements.flagsSelect.val() || [];
- var flagsWrapper = this.installmentsByFlag.closest("tr");
- var allFlags = $("[data-flag]");
-
- if (parseInt(this.elements.installmentsTypeSelect.val()) !== 2) {
- allFlags.hide();
- flagsWrapper.hide();
- return;
- }
-
- if (!firstLoad) {
- var selectedItem = event.params.args.data.id;
- var filtered = flags;
-
- flagsWrapper.show();
-
- if (event.params.name == "unselect") {
- filtered = flags.filter(function (i) {
- return i != selectedItem;
- });
-
- if (filtered.length == 0) {
- this.installmentsByFlag.closest("tr").hide();
- }
- } else {
- filtered.push(selectedItem);
- }
-
- allFlags.hide();
-
- filtered.map(function (item) {
- var element = $("[data-flag=" + item + "]");
- element.show();
- });
- } else {
- if (flags.length === 0) {
- allFlags.hide();
- flagsWrapper.hide();
- return;
- }
-
- allFlags.each(function (index, item) {
- item = $(item);
- if (!flags.includes(item.data("flag"))) {
- item.hide();
- } else {
- item.show();
- }
- });
- }
- };
-});
diff --git a/assets/javascripts/admin/built.js b/assets/javascripts/admin/built.js
deleted file mode 100644
index 74df4424..00000000
--- a/assets/javascripts/admin/built.js
+++ /dev/null
@@ -1,4565 +0,0 @@
-;
-(function(context, $) {
-
- 'use strict';
-
- var MONSTER = function(namespace, callback) {
- var parts = namespace.split('\.'),
- parent = context,
- count = parts.length,
- i = 0;
-
- for (i; i < count; i++) {
- parent[parts[i]] = (count - 1 === i) ? MONSTER.Builder() : parent[parts[i]] || {};
- parent = parent[parts[i]];
- }
-
- if ('function' === typeof callback) {
-
- if (!~namespace.indexOf('Components')) {
- parent.click = MONSTER.click.bind(parent);
- parent.ajax = MONSTER.ajax.bind(parent);
- }
-
- callback.call(null, parent, $, MONSTER.utils);
- }
-
- return parent;
- };
-
- MONSTER.getElements = function(context) {
- var elements = {},
- byElement = this.byElement.bind(context);
-
- context.find('[data-element]').each(function(index, element) {
- var name = this.utils.toDataSetName(element.dataset.element);
-
- if (!elements[name]) {
- elements[name] = byElement(element.dataset.element);
- }
- }.bind(this));
-
- return elements;
- };
-
- MONSTER.byAction = function(name, el) {
- var container = (el || this);
- return container.find('[data-action="' + name + '"]');
- };
-
- MONSTER.byElement = function(name) {
- return this.find('[data-element="' + name + '"]');
- };
-
- MONSTER.event = function(instance, event, action) {
- var handle = MONSTER.utils.getEventCallbackName(action, event);
- this.byAction(action).on(event, $.proxy(instance, handle));
- };
-
- MONSTER.getInstance = function(instance, context) {
- context.byAction = this.byAction.bind(context);
- instance.$el = context;
- instance.data = context.data();
- instance.on = this.event.bind(context, instance);
- instance.elements = this.getElements(context);
- instance.addPrefix = this.utils.addPrefix;
- instance.prefix = this.utils.prefix();
- instance.ajax = this.ajax.bind(instance);
- instance.click = this.click.bind(instance);
-
- return instance;
- };
-
- MONSTER.Builder = function() {
- var Kernel, Builder;
- var self = this;
-
- Kernel = function() {};
- Builder = function(context) {
- var instance = new Kernel();
- instance = self.getInstance(instance, context);
-
- instance.start.apply(instance, arguments);
-
- return instance;
- };
-
- Builder.fn = Builder.prototype;
- Kernel.prototype = Builder.fn;
- Builder.fn.start = function() {};
-
- return Builder;
- };
-
- MONSTER.ajax = function(options, done, fail) {
- var ajax, defaults = {
- method: 'POST',
- url: MONSTER.utils.getAjaxUrl(),
- data: {}
- };
-
- ajax = $.ajax($.extend(defaults, (options || {})));
-
- ajax.done($.proxy(this, (done || '_done')));
- ajax.fail($.proxy(this, (fail || '_fail')));
- };
-
- MONSTER.click = function(action, context) {
- var instance = (context || this);
- MONSTER.byAction(action, instance.$el).on('click', $.proxy(instance, MONSTER.utils.getEventCallbackName(action)));
- };
-
- MONSTER.utils = {
-
- getGlobalVars: function(name) {
- return (window.PagarmeGlobalVars || {})[name];
- },
-
- prefix: function() {
- return (this.getGlobalVars('prefix') || 'monster')
- },
-
- getAjaxUrl: function() {
- return this.getGlobalVars('ajaxUrl');
- },
-
- getLocale: function() {
- return this.getGlobalVars('WPLANG');
- },
-
- getSpinnerUrl: function() {
- return this.getGlobalVars('spinnerUrl');
- },
-
- getPathUrl: function(url) {
- return decodeURIComponent(url).split(/[?#]/)[0];
- },
-
- getTime: function() {
- return (new Date()).getTime();
- },
-
- encodeUrl: function(url) {
- return encodeURIComponent(url);
- },
-
- decodeUrl: function(url) {
- return decodeURIComponent(url);
- },
-
- ucfirst: function(text) {
- return this.parseName(text, /(\b[a-z])/g);
- },
-
- toDataSetName: function(text) {
- return this.parseName(text, /(-)\w/g);
- },
-
- hasParam: function() {
- return ~window.location.href.indexOf('?');
- },
-
- getPathName: function() {
- return window.location.pathname;
- },
-
- getEventCallbackName: function(action, event) {
- return this.ucfirst(['_on', (event || 'click'), action].join('-'));
- },
-
- addPrefix: function(tag, separator) {
- var sep = (separator || '-');
- return this.prefix() + sep + tag;
- },
-
- getSpinner: function() {
- var img = document.createElement('img');
- img.src = this.getSpinnerUrl();
- img.className = this.prefix() + '-spinner';
-
- return img;
- },
-
- isMobile: function() {
- return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|Tablet OS|IEMobile|Opera Mini/i.test(
- navigator.userAgent
- ));
- },
-
- parseName: function(text, regex) {
- return text.replace(regex, function(match) {
- return match.toUpperCase();
- }).replace(/-/g, '');
- },
-
- remove: function(element) {
- element.fadeOut('fast', function() {
- element.remove();
- });
- },
-
- getId: function(id) {
- if (!id) {
- return false;
- }
-
- return document.getElementById(id);
- },
-
- findComponent: function(selector, callback) {
- var components = $(this).find(selector);
-
- if (components.length && typeof callback === 'function') {
- callback.call(null, components, $(this));
- }
-
- return components.length;
- },
-
- get: function(key, defaultVal) {
- var query, vars, varsLength, pair, i;
-
- if (!this.hasParam()) {
- return (defaultVal || '');
- }
-
- query = window.location.search.substring(1);
- vars = query.split('&');
- varsLength = vars.length;
-
- for (i = 0; i < varsLength; i++) {
- pair = vars[i].split('=');
-
- if (pair[0] === key) {
- return pair[1];
- }
- }
-
- return (defaultVal || '');
- },
-
- strToCode: function(str) {
- var hash = 0,
- strLen = str.length,
- i, chr;
-
- if (!strLen) {
- return hash;
- }
-
- for (i = 0; i < strLen; i++) {
- chr = str.charCodeAt(i);
- hash = ((hash << 5) - hash) + chr;
- hash |= 0;
- }
-
- return Math.abs(hash);
- }
- };
-
- context.MONSTER = MONSTER;
-
-})(window, jQuery);;
-MONSTER('Pagarme.BuildComponents', function(Model, $, utils) {
-
- Model.create = function(container) {
- var components = '[data-' + utils.addPrefix('component') + ']',
- findComponent = utils.findComponent.bind(container);
-
- findComponent(components, $.proxy(this, '_start'));
- };
-
- Model._start = function(components) {
- if (typeof Pagarme.Components === 'undefined') {
- return;
- }
-
- this._iterator(components);
- };
-
- Model._iterator = function(components) {
- var name;
-
- components.each(function(index, component) {
- component = $(component);
- name = utils.ucfirst(this.getComponent(component));
- this._callback(name, component);
- }.bind(this));
- };
-
- Model.getComponent = function(component) {
- var component = component.data(utils.addPrefix('component'));
-
- if (!component) {
- return '';
- }
-
- return component;
- };
-
- Model._callback = function(name, component) {
- var callback = Pagarme.Components[name];
-
- if (typeof callback == 'function') {
- callback.call(null, component);
- return;
- }
-
- console.log('Component "' + name + '" is not a function.');
- };
-
-}, {});;
-MONSTER('Pagarme.BuildCreate', function(Model, $, utils) {
-
- Model.init = function(container, names) {
- if (!names.length) {
- return;
- }
-
- this.$el = container;
- names.forEach(this.findNames.bind(this));
- };
-
- Model.findNames = function(name, index) {
- this.callback(Pagarme[utils.ucfirst(name)]);
- };
-
- Model.callback = function(callback) {
- if (typeof callback !== 'function') {
- return;
- }
-
- callback.create(this.$el);
- };
-
-}, {});;
-/**
- * jquery.mask.js
- * @version: v1.14.10
- * @author: Igor Escobar
- *
- * Created by Igor Escobar on 2012-03-10. Please report any bug at http://blog.igorescobar.com
- *
- * Copyright (c) 2012 Igor Escobar http://blog.igorescobar.com
- *
- * The MIT License (http://www.opensource.org/licenses/mit-license.php)
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following
- * conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/* jshint laxbreak: true */
-/* jshint maxcomplexity:17 */
-/* global define */
-
-'use strict';
-
-// UMD (Universal Module Definition) patterns for JavaScript modules that work everywhere.
-// https://github.com/umdjs/umd/blob/master/jqueryPluginCommonjs.js
-(function(factory, jQuery, Zepto) {
-
- if (typeof define === 'function' && define.amd) {
- define(['jquery'], factory);
- } else if (typeof exports === 'object') {
- module.exports = factory(require('jquery'));
- } else {
- factory(jQuery || Zepto);
- }
-
-}(function($) {
-
- var Mask = function(el, mask, options) {
-
- var p = {
- invalid: [],
- getCaret: function() {
- try {
- var sel,
- pos = 0,
- ctrl = el.get(0),
- dSel = document.selection,
- cSelStart = ctrl.selectionStart;
-
- // IE Support
- if (dSel && navigator.appVersion.indexOf('MSIE 10') === -1) {
- sel = dSel.createRange();
- sel.moveStart('character', -p.val().length);
- pos = sel.text.length;
- }
- // Firefox support
- else if (cSelStart || cSelStart === '0') {
- pos = cSelStart;
- }
-
- return pos;
- } catch (e) {}
- },
- setCaret: function(pos) {
- try {
- if (el.is(':focus')) {
- var range, ctrl = el.get(0);
-
- // Firefox, WebKit, etc..
- if (ctrl.setSelectionRange) {
- ctrl.setSelectionRange(pos, pos);
- } else { // IE
- range = ctrl.createTextRange();
- range.collapse(true);
- range.moveEnd('character', pos);
- range.moveStart('character', pos);
- range.select();
- }
- }
- } catch (e) {}
- },
- events: function() {
- el
- .on('keydown.mask', function(e) {
- el.data('mask-keycode', e.keyCode || e.which);
- el.data('mask-previus-value', el.val());
- })
- .on($.jMaskGlobals.useInput ? 'input.mask' : 'keyup.mask', p.behaviour)
- .on('paste.mask drop.mask', function() {
- setTimeout(function() {
- el.keydown().keyup();
- }, 100);
- })
- .on('change.mask', function() {
- el.data('changed', true);
- })
- .on('blur.mask', function() {
- if (oldValue !== p.val() && !el.data('changed')) {
- el.trigger('change');
- }
- el.data('changed', false);
- })
- // it's very important that this callback remains in this position
- // otherwhise oldValue it's going to work buggy
- .on('blur.mask', function() {
- oldValue = p.val();
- })
- // select all text on focus
- .on('focus.mask', function(e) {
- if (options.selectOnFocus === true) {
- $(e.target).select();
- }
- })
- // clear the value if it not complete the mask
- .on('focusout.mask', function() {
- if (options.clearIfNotMatch && !regexMask.test(p.val())) {
- p.val('');
- }
- });
- },
- getRegexMask: function() {
- var maskChunks = [],
- translation, pattern, optional, recursive, oRecursive, r;
-
- for (var i = 0; i < mask.length; i++) {
- translation = jMask.translation[mask.charAt(i)];
-
- if (translation) {
-
- pattern = translation.pattern.toString().replace(/.{1}$|^.{1}/g, '');
- optional = translation.optional;
- recursive = translation.recursive;
-
- if (recursive) {
- maskChunks.push(mask.charAt(i));
- oRecursive = { digit: mask.charAt(i), pattern: pattern };
- } else {
- maskChunks.push(!optional && !recursive ? pattern : (pattern + '?'));
- }
-
- } else {
- maskChunks.push(mask.charAt(i).replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'));
- }
- }
-
- r = maskChunks.join('');
-
- if (oRecursive) {
- r = r.replace(new RegExp('(' + oRecursive.digit + '(.*' + oRecursive.digit + ')?)'), '($1)?')
- .replace(new RegExp(oRecursive.digit, 'g'), oRecursive.pattern);
- }
-
- return new RegExp(r);
- },
- destroyEvents: function() {
- el.off(['input', 'keydown', 'keyup', 'paste', 'drop', 'blur', 'focusout', ''].join('.mask '));
- },
- val: function(v) {
- var isInput = el.is('input'),
- method = isInput ? 'val' : 'text',
- r;
-
- if (arguments.length > 0) {
- if (el[method]() !== v) {
- el[method](v);
- }
- r = el;
- } else {
- r = el[method]();
- }
-
- return r;
- },
- calculateCaretPosition: function(caretPos, newVal) {
- var newValL = newVal.length,
- oValue = el.data('mask-previus-value') || '',
- oValueL = oValue.length;
-
- // edge cases when erasing digits
- if (el.data('mask-keycode') === 8 && oValue !== newVal) {
- caretPos = caretPos - (newVal.slice(0, caretPos).length - oValue.slice(0, caretPos).length);
-
- // edge cases when typing new digits
- } else if (oValue !== newVal) {
- // if the cursor is at the end keep it there
- if (caretPos >= oValueL) {
- caretPos = newValL;
- } else {
- caretPos = caretPos + (newVal.slice(0, caretPos).length - oValue.slice(0, caretPos).length);
- }
- }
-
- return caretPos;
- },
- behaviour: function(e) {
- e = e || window.event;
- p.invalid = [];
-
- var keyCode = el.data('mask-keycode');
-
- if ($.inArray(keyCode, jMask.byPassKeys) === -1) {
- var newVal = p.getMasked(),
- caretPos = p.getCaret();
-
- setTimeout(function(caretPos, newVal) {
- p.setCaret(p.calculateCaretPosition(caretPos, newVal));
- }, 10, caretPos, newVal);
-
- p.val(newVal);
- p.setCaret(caretPos);
- return p.callbacks(e);
- }
- },
- getMasked: function(skipMaskChars, val) {
- var buf = [],
- value = val === undefined ? p.val() : val + '',
- m = 0,
- maskLen = mask.length,
- v = 0,
- valLen = value.length,
- offset = 1,
- addMethod = 'push',
- resetPos = -1,
- lastMaskChar,
- check;
-
- if (options.reverse) {
- addMethod = 'unshift';
- offset = -1;
- lastMaskChar = 0;
- m = maskLen - 1;
- v = valLen - 1;
- check = function() {
- return m > -1 && v > -1;
- };
- } else {
- lastMaskChar = maskLen - 1;
- check = function() {
- return m < maskLen && v < valLen;
- };
- }
-
- var lastUntranslatedMaskChar;
- while (check()) {
- var maskDigit = mask.charAt(m),
- valDigit = value.charAt(v),
- translation = jMask.translation[maskDigit];
-
- if (translation) {
- if (valDigit.match(translation.pattern)) {
- buf[addMethod](valDigit);
- if (translation.recursive) {
- if (resetPos === -1) {
- resetPos = m;
- } else if (m === lastMaskChar) {
- m = resetPos - offset;
- }
-
- if (lastMaskChar === resetPos) {
- m -= offset;
- }
- }
- m += offset;
- } else if (valDigit === lastUntranslatedMaskChar) {
- // matched the last untranslated (raw) mask character that we encountered
- // likely an insert offset the mask character from the last entry; fall
- // through and only increment v
- lastUntranslatedMaskChar = undefined;
- } else if (translation.optional) {
- m += offset;
- v -= offset;
- } else if (translation.fallback) {
- buf[addMethod](translation.fallback);
- m += offset;
- v -= offset;
- } else {
- p.invalid.push({ p: v, v: valDigit, e: translation.pattern });
- }
- v += offset;
- } else {
- if (!skipMaskChars) {
- buf[addMethod](maskDigit);
- }
-
- if (valDigit === maskDigit) {
- v += offset;
- } else {
- lastUntranslatedMaskChar = maskDigit;
- }
-
- m += offset;
- }
- }
-
- var lastMaskCharDigit = mask.charAt(lastMaskChar);
- if (maskLen === valLen + 1 && !jMask.translation[lastMaskCharDigit]) {
- buf.push(lastMaskCharDigit);
- }
-
- return buf.join('');
- },
- callbacks: function(e) {
- var val = p.val(),
- changed = val !== oldValue,
- defaultArgs = [val, e, el, options],
- callback = function(name, criteria, args) {
- if (typeof options[name] === 'function' && criteria) {
- options[name].apply(this, args);
- }
- };
-
- callback('onChange', changed === true, defaultArgs);
- callback('onKeyPress', changed === true, defaultArgs);
- callback('onComplete', val.length === mask.length, defaultArgs);
- callback('onInvalid', p.invalid.length > 0, [val, e, el, p.invalid, options]);
- }
- };
-
- el = $(el);
- var jMask = this,
- oldValue = p.val(),
- regexMask;
-
- mask = typeof mask === 'function' ? mask(p.val(), undefined, el, options) : mask;
-
- // public methods
- jMask.mask = mask;
- jMask.options = options;
- jMask.remove = function() {
- var caret = p.getCaret();
- p.destroyEvents();
- p.val(jMask.getCleanVal());
- p.setCaret(caret);
- return el;
- };
-
- // get value without mask
- jMask.getCleanVal = function() {
- return p.getMasked(true);
- };
-
- // get masked value without the value being in the input or element
- jMask.getMaskedVal = function(val) {
- return p.getMasked(false, val);
- };
-
- jMask.init = function(onlyMask) {
- onlyMask = onlyMask || false;
- options = options || {};
-
- jMask.clearIfNotMatch = $.jMaskGlobals.clearIfNotMatch;
- jMask.byPassKeys = $.jMaskGlobals.byPassKeys;
- jMask.translation = $.extend({}, $.jMaskGlobals.translation, options.translation);
-
- jMask = $.extend(true, {}, jMask, options);
-
- regexMask = p.getRegexMask();
-
- if (onlyMask) {
- p.events();
- p.val(p.getMasked());
- } else {
- if (options.placeholder) {
- el.attr('placeholder', options.placeholder);
- }
-
- // this is necessary, otherwise if the user submit the form
- // and then press the "back" button, the autocomplete will erase
- // the data. Works fine on IE9+, FF, Opera, Safari.
- if (el.data('mask')) {
- el.attr('autocomplete', 'off');
- }
-
- // detect if is necessary let the user type freely.
- // for is a lot faster than forEach.
- for (var i = 0, maxlength = true; i < mask.length; i++) {
- var translation = jMask.translation[mask.charAt(i)];
- if (translation && translation.recursive) {
- maxlength = false;
- break;
- }
- }
-
- if (maxlength) {
- el.attr('maxlength', mask.length);
- }
-
- p.destroyEvents();
- p.events();
-
- var caret = p.getCaret();
- p.val(p.getMasked());
- p.setCaret(caret);
- }
- };
-
- jMask.init(!el.is('input'));
- };
-
- $.maskWatchers = {};
- var HTMLAttributes = function() {
- var input = $(this),
- options = {},
- prefix = 'data-mask-',
- mask = input.attr('data-mask');
-
- if (input.attr(prefix + 'reverse')) {
- options.reverse = true;
- }
-
- if (input.attr(prefix + 'clearifnotmatch')) {
- options.clearIfNotMatch = true;
- }
-
- if (input.attr(prefix + 'selectonfocus') === 'true') {
- options.selectOnFocus = true;
- }
-
- if (notSameMaskObject(input, mask, options)) {
- return input.data('mask', new Mask(this, mask, options));
- }
- },
- notSameMaskObject = function(field, mask, options) {
- options = options || {};
- var maskObject = $(field).data('mask'),
- stringify = JSON.stringify,
- value = $(field).val() || $(field).text();
- try {
- if (typeof mask === 'function') {
- mask = mask(value);
- }
- return typeof maskObject !== 'object' || stringify(maskObject.options) !== stringify(options) || maskObject.mask !== mask;
- } catch (e) {}
- },
- eventSupported = function(eventName) {
- var el = document.createElement('div'),
- isSupported;
-
- eventName = 'on' + eventName;
- isSupported = (eventName in el);
-
- if (!isSupported) {
- el.setAttribute(eventName, 'return;');
- isSupported = typeof el[eventName] === 'function';
- }
- el = null;
-
- return isSupported;
- };
-
- $.fn.mask = function(mask, options) {
- options = options || {};
- var selector = this.selector,
- globals = $.jMaskGlobals,
- interval = globals.watchInterval,
- watchInputs = options.watchInputs || globals.watchInputs,
- maskFunction = function() {
- if (notSameMaskObject(this, mask, options)) {
- return $(this).data('mask', new Mask(this, mask, options));
- }
- };
-
- $(this).each(maskFunction);
-
- if (selector && selector !== '' && watchInputs) {
- clearInterval($.maskWatchers[selector]);
- $.maskWatchers[selector] = setInterval(function() {
- $(document).find(selector).each(maskFunction);
- }, interval);
- }
- return this;
- };
-
- $.fn.masked = function(val) {
- return this.data('mask').getMaskedVal(val);
- };
-
- $.fn.unmask = function() {
- clearInterval($.maskWatchers[this.selector]);
- delete $.maskWatchers[this.selector];
- return this.each(function() {
- var dataMask = $(this).data('mask');
- if (dataMask) {
- dataMask.remove().removeData('mask');
- }
- });
- };
-
- $.fn.cleanVal = function() {
- return this.data('mask').getCleanVal();
- };
-
- $.applyDataMask = function(selector) {
- selector = selector || $.jMaskGlobals.maskElements;
- var $selector = (selector instanceof $) ? selector : $(selector);
- $selector.filter($.jMaskGlobals.dataMaskAttr).each(HTMLAttributes);
- };
-
- var globals = {
- maskElements: 'input,td,span,div',
- dataMaskAttr: '*[data-mask]',
- dataMask: true,
- watchInterval: 300,
- watchInputs: true,
- // old versions of chrome dont work great with input event
- useInput: !/Chrome\/[2-4][0-9]|SamsungBrowser/.test(window.navigator.userAgent) && eventSupported('input'),
- watchDataMask: false,
- byPassKeys: [9, 16, 17, 18, 36, 37, 38, 39, 40, 91],
- translation: {
- '0': { pattern: /\d/ },
- '9': { pattern: /\d/, optional: true },
- '#': { pattern: /\d/, recursive: true },
- 'A': { pattern: /[a-zA-Z0-9]/ },
- 'S': { pattern: /[a-zA-Z]/ }
- }
- };
-
- $.jMaskGlobals = $.jMaskGlobals || {};
- globals = $.jMaskGlobals = $.extend(true, {}, globals, $.jMaskGlobals);
-
- // looking for inputs with data-mask attribute
- if (globals.dataMask) {
- $.applyDataMask();
- }
-
- setInterval(function() {
- if ($.jMaskGlobals.watchDataMask) {
- $.applyDataMask();
- }
- }, globals.watchInterval);
-}, window.jQuery, window.Zepto));;;
-(function($) {
-
- $.fn.isEmptyValue = function() {
- return !($.trim(this.val()));
- };
-
-})(jQuery);;
-/*!
- * sweetalert2 v6.6.2
- * Released under the MIT License.
- */
-(function(global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global.Sweetalert2 = factory());
-}(this, (function() {
- 'use strict';
-
- var defaultParams = {
- title: '',
- titleText: '',
- text: '',
- html: '',
- type: null,
- customClass: '',
- target: 'body',
- animation: true,
- allowOutsideClick: true,
- allowEscapeKey: true,
- allowEnterKey: true,
- showConfirmButton: true,
- showCancelButton: false,
- preConfirm: null,
- confirmButtonText: 'OK',
- confirmButtonColor: '#3085d6',
- confirmButtonClass: null,
- cancelButtonText: 'Cancel',
- cancelButtonColor: '#aaa',
- cancelButtonClass: null,
- buttonsStyling: true,
- reverseButtons: false,
- focusCancel: false,
- showCloseButton: false,
- showLoaderOnConfirm: false,
- imageUrl: null,
- imageWidth: null,
- imageHeight: null,
- imageClass: null,
- timer: null,
- width: 500,
- padding: 20,
- background: '#fff',
- input: null,
- inputPlaceholder: '',
- inputValue: '',
- inputOptions: {},
- inputAutoTrim: true,
- inputClass: null,
- inputAttributes: {},
- inputValidator: null,
- progressSteps: [],
- currentProgressStep: null,
- progressStepsDistance: '40px',
- onOpen: null,
- onClose: null
- };
-
- var swalPrefix = 'swal2-';
-
- var prefix = function prefix(items) {
- var result = {};
- for (var i in items) {
- result[items[i]] = swalPrefix + items[i];
- }
- return result;
- };
-
- var swalClasses = prefix(['container', 'shown', 'iosfix', 'modal', 'overlay', 'fade', 'show', 'hide', 'noanimation', 'close', 'title', 'content', 'buttonswrapper', 'confirm', 'cancel', 'icon', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea', 'inputerror', 'validationerror', 'progresssteps', 'activeprogressstep', 'progresscircle', 'progressline', 'loading', 'styled']);
-
- var iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);
-
- /*
- * Set hover, active and focus-states for buttons (source: http://www.sitepoint.com/javascript-generate-lighter-darker-color)
- */
- var colorLuminance = function colorLuminance(hex, lum) {
- // Validate hex string
- hex = String(hex).replace(/[^0-9a-f]/gi, '');
- if (hex.length < 6) {
- hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
- }
- lum = lum || 0;
-
- // Convert to decimal and change luminosity
- var rgb = '#';
- for (var i = 0; i < 3; i++) {
- var c = parseInt(hex.substr(i * 2, 2), 16);
- c = Math.round(Math.min(Math.max(0, c + c * lum), 255)).toString(16);
- rgb += ('00' + c).substr(c.length);
- }
-
- return rgb;
- };
-
- var uniqueArray = function uniqueArray(arr) {
- var result = [];
- for (var i in arr) {
- if (result.indexOf(arr[i]) === -1) {
- result.push(arr[i]);
- }
- }
- return result;
- };
-
- /* global MouseEvent */
-
- // Remember state in cases where opening and handling a modal will fiddle with it.
- var states = {
- previousWindowKeyDown: null,
- previousActiveElement: null,
- previousBodyPadding: null
- };
-
- /*
- * Add modal + overlay to DOM
- */
- var init = function init(params) {
- if (typeof document === 'undefined') {
- console.error('SweetAlert2 requires document to initialize');
- return;
- }
-
- var container = document.createElement('div');
- container.className = swalClasses.container;
- container.innerHTML = sweetHTML;
-
- var targetElement = document.querySelector(params.target);
- if (!targetElement) {
- console.warn('SweetAlert2: Can\'t find the target "' + params.target + '"');
- targetElement = document.body;
- }
- targetElement.appendChild(container);
-
- var modal = getModal();
- var input = getChildByClass(modal, swalClasses.input);
- var file = getChildByClass(modal, swalClasses.file);
- var range = modal.querySelector('.' + swalClasses.range + ' input');
- var rangeOutput = modal.querySelector('.' + swalClasses.range + ' output');
- var select = getChildByClass(modal, swalClasses.select);
- var checkbox = modal.querySelector('.' + swalClasses.checkbox + ' input');
- var textarea = getChildByClass(modal, swalClasses.textarea);
-
- input.oninput = function() {
- sweetAlert.resetValidationError();
- };
-
- input.onkeydown = function(event) {
- setTimeout(function() {
- if (event.keyCode === 13 && params.allowEnterKey) {
- event.stopPropagation();
- sweetAlert.clickConfirm();
- }
- }, 0);
- };
-
- file.onchange = function() {
- sweetAlert.resetValidationError();
- };
-
- range.oninput = function() {
- sweetAlert.resetValidationError();
- rangeOutput.value = range.value;
- };
-
- range.onchange = function() {
- sweetAlert.resetValidationError();
- range.previousSibling.value = range.value;
- };
-
- select.onchange = function() {
- sweetAlert.resetValidationError();
- };
-
- checkbox.onchange = function() {
- sweetAlert.resetValidationError();
- };
-
- textarea.oninput = function() {
- sweetAlert.resetValidationError();
- };
-
- return modal;
- };
-
- /*
- * Manipulate DOM
- */
-
- var sweetHTML = ('\n
\n
\n
\n \n
\n
?
\n
!
\n
i
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n').replace(/(^|\n)\s*/g, '');
-
- var getContainer = function getContainer() {
- return document.body.querySelector('.' + swalClasses.container);
- };
-
- var getModal = function getModal() {
- return getContainer() ? getContainer().querySelector('.' + swalClasses.modal) : null;
- };
-
- var getIcons = function getIcons() {
- var modal = getModal();
- return modal.querySelectorAll('.' + swalClasses.icon);
- };
-
- var elementByClass = function elementByClass(className) {
- return getContainer() ? getContainer().querySelector('.' + className) : null;
- };
-
- var getTitle = function getTitle() {
- return elementByClass(swalClasses.title);
- };
-
- var getContent = function getContent() {
- return elementByClass(swalClasses.content);
- };
-
- var getImage = function getImage() {
- return elementByClass(swalClasses.image);
- };
-
- var getButtonsWrapper = function getButtonsWrapper() {
- return elementByClass(swalClasses.buttonswrapper);
- };
-
- var getProgressSteps = function getProgressSteps() {
- return elementByClass(swalClasses.progresssteps);
- };
-
- var getValidationError = function getValidationError() {
- return elementByClass(swalClasses.validationerror);
- };
-
- var getConfirmButton = function getConfirmButton() {
- return elementByClass(swalClasses.confirm);
- };
-
- var getCancelButton = function getCancelButton() {
- return elementByClass(swalClasses.cancel);
- };
-
- var getCloseButton = function getCloseButton() {
- return elementByClass(swalClasses.close);
- };
-
- var getFocusableElements = function getFocusableElements(focusCancel) {
- var buttons = [getConfirmButton(), getCancelButton()];
- if (focusCancel) {
- buttons.reverse();
- }
- var focusableElements = buttons.concat(Array.prototype.slice.call(getModal().querySelectorAll('button, input:not([type=hidden]), textarea, select, a, *[tabindex]:not([tabindex="-1"])')));
- return uniqueArray(focusableElements);
- };
-
- var hasClass = function hasClass(elem, className) {
- if (elem.classList) {
- return elem.classList.contains(className);
- }
- return false;
- };
-
- var focusInput = function focusInput(input) {
- input.focus();
-
- // place cursor at end of text in text input
- if (input.type !== 'file') {
- // http://stackoverflow.com/a/2345915/1331425
- var val = input.value;
- input.value = '';
- input.value = val;
- }
- };
-
- var addClass = function addClass(elem, className) {
- if (!elem || !className) {
- return;
- }
- var classes = className.split(/\s+/).filter(Boolean);
- classes.forEach(function(className) {
- elem.classList.add(className);
- });
- };
-
- var removeClass = function removeClass(elem, className) {
- if (!elem || !className) {
- return;
- }
- var classes = className.split(/\s+/).filter(Boolean);
- classes.forEach(function(className) {
- elem.classList.remove(className);
- });
- };
-
- var getChildByClass = function getChildByClass(elem, className) {
- for (var i = 0; i < elem.childNodes.length; i++) {
- if (hasClass(elem.childNodes[i], className)) {
- return elem.childNodes[i];
- }
- }
- };
-
- var show = function show(elem, display) {
- if (!display) {
- display = 'block';
- }
- elem.style.opacity = '';
- elem.style.display = display;
- };
-
- var hide = function hide(elem) {
- elem.style.opacity = '';
- elem.style.display = 'none';
- };
-
- var empty = function empty(elem) {
- while (elem.firstChild) {
- elem.removeChild(elem.firstChild);
- }
- };
-
- // borrowed from jqeury $(elem).is(':visible') implementation
- var isVisible = function isVisible(elem) {
- return elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length;
- };
-
- var removeStyleProperty = function removeStyleProperty(elem, property) {
- if (elem.style.removeProperty) {
- elem.style.removeProperty(property);
- } else {
- elem.style.removeAttribute(property);
- }
- };
-
- var fireClick = function fireClick(node) {
- if (!isVisible(node)) {
- return false;
- }
-
- // Taken from http://www.nonobtrusive.com/2011/11/29/programatically-fire-crossbrowser-click-event-with-javascript/
- // Then fixed for today's Chrome browser.
- if (typeof MouseEvent === 'function') {
- // Up-to-date approach
- var mevt = new MouseEvent('click', {
- view: window,
- bubbles: false,
- cancelable: true
- });
- node.dispatchEvent(mevt);
- } else if (document.createEvent) {
- // Fallback
- var evt = document.createEvent('MouseEvents');
- evt.initEvent('click', false, false);
- node.dispatchEvent(evt);
- } else if (document.createEventObject) {
- node.fireEvent('onclick');
- } else if (typeof node.onclick === 'function') {
- node.onclick();
- }
- };
-
- var animationEndEvent = function() {
- var testEl = document.createElement('div');
- var transEndEventNames = {
- 'WebkitAnimation': 'webkitAnimationEnd',
- 'OAnimation': 'oAnimationEnd oanimationend',
- 'msAnimation': 'MSAnimationEnd',
- 'animation': 'animationend'
- };
- for (var i in transEndEventNames) {
- if (transEndEventNames.hasOwnProperty(i) && testEl.style[i] !== undefined) {
- return transEndEventNames[i];
- }
- }
-
- return false;
- }();
-
- // Reset previous window keydown handler and focued element
- var resetPrevState = function resetPrevState() {
- window.onkeydown = states.previousWindowKeyDown;
- if (states.previousActiveElement && states.previousActiveElement.focus) {
- var x = window.scrollX;
- var y = window.scrollY;
- states.previousActiveElement.focus();
- if (x && y) {
- // IE has no scrollX/scrollY support
- window.scrollTo(x, y);
- }
- }
- };
-
- // Measure width of scrollbar
- // https://github.com/twbs/bootstrap/blob/master/js/modal.js#L279-L286
- var measureScrollbar = function measureScrollbar() {
- var supportsTouch = 'ontouchstart' in window || navigator.msMaxTouchPoints;
- if (supportsTouch) {
- return 0;
- }
- var scrollDiv = document.createElement('div');
- scrollDiv.style.width = '50px';
- scrollDiv.style.height = '50px';
- scrollDiv.style.overflow = 'scroll';
- document.body.appendChild(scrollDiv);
- var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
- document.body.removeChild(scrollDiv);
- return scrollbarWidth;
- };
-
- // JavaScript Debounce Function
- // Simplivied version of https://davidwalsh.name/javascript-debounce-function
- var debounce = function debounce(func, wait) {
- var timeout = void 0;
- return function() {
- var later = function later() {
- timeout = null;
- func();
- };
- clearTimeout(timeout);
- timeout = setTimeout(later, wait);
- };
- };
-
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function(obj) {
- return typeof obj;
- } : function(obj) {
- return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
- };
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var _extends = Object.assign || function(target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
-
- for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }
-
- return target;
- };
-
- var modalParams = _extends({}, defaultParams);
- var queue = [];
- var swal2Observer = void 0;
-
- /*
- * Set type, text and actions on modal
- */
- var setParameters = function setParameters(params) {
- var modal = getModal() || init(params);
-
- for (var param in params) {
- if (!defaultParams.hasOwnProperty(param) && param !== 'extraParams') {
- console.warn('SweetAlert2: Unknown parameter "' + param + '"');
- }
- }
-
- // Set modal width
- modal.style.width = typeof params.width === 'number' ? params.width + 'px' : params.width;
-
- modal.style.padding = params.padding + 'px';
- modal.style.background = params.background;
- var successIconParts = modal.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');
- for (var i = 0; i < successIconParts.length; i++) {
- successIconParts[i].style.background = params.background;
- }
-
- var title = getTitle();
- var content = getContent();
- var buttonsWrapper = getButtonsWrapper();
- var confirmButton = getConfirmButton();
- var cancelButton = getCancelButton();
- var closeButton = getCloseButton();
-
- // Title
- if (params.titleText) {
- title.innerText = params.titleText;
- } else {
- title.innerHTML = params.title.split('\n').join('
');
- }
-
- // Content
- if (params.text || params.html) {
- if (_typeof(params.html) === 'object') {
- content.innerHTML = '';
- if (0 in params.html) {
- for (var _i = 0; _i in params.html; _i++) {
- content.appendChild(params.html[_i].cloneNode(true));
- }
- } else {
- content.appendChild(params.html.cloneNode(true));
- }
- } else if (params.html) {
- content.innerHTML = params.html;
- } else if (params.text) {
- content.textContent = params.text;
- }
- show(content);
- } else {
- hide(content);
- }
-
- // Close button
- if (params.showCloseButton) {
- show(closeButton);
- } else {
- hide(closeButton);
- }
-
- // Custom Class
- modal.className = swalClasses.modal;
- if (params.customClass) {
- addClass(modal, params.customClass);
- }
-
- // Progress steps
- var progressStepsContainer = getProgressSteps();
- var currentProgressStep = parseInt(params.currentProgressStep === null ? sweetAlert.getQueueStep() : params.currentProgressStep, 10);
- if (params.progressSteps.length) {
- show(progressStepsContainer);
- empty(progressStepsContainer);
- if (currentProgressStep >= params.progressSteps.length) {
- console.warn('SweetAlert2: Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');
- }
- params.progressSteps.forEach(function(step, index) {
- var circle = document.createElement('li');
- addClass(circle, swalClasses.progresscircle);
- circle.innerHTML = step;
- if (index === currentProgressStep) {
- addClass(circle, swalClasses.activeprogressstep);
- }
- progressStepsContainer.appendChild(circle);
- if (index !== params.progressSteps.length - 1) {
- var line = document.createElement('li');
- addClass(line, swalClasses.progressline);
- line.style.width = params.progressStepsDistance;
- progressStepsContainer.appendChild(line);
- }
- });
- } else {
- hide(progressStepsContainer);
- }
-
- // Icon
- var icons = getIcons();
- for (var _i2 = 0; _i2 < icons.length; _i2++) {
- hide(icons[_i2]);
- }
- if (params.type) {
- var validType = false;
- for (var iconType in iconTypes) {
- if (params.type === iconType) {
- validType = true;
- break;
- }
- }
- if (!validType) {
- console.error('SweetAlert2: Unknown alert type: ' + params.type);
- return false;
- }
- var icon = modal.querySelector('.' + swalClasses.icon + '.' + iconTypes[params.type]);
- show(icon);
-
- // Animate icon
- if (params.animation) {
- switch (params.type) {
- case 'success':
- addClass(icon, 'swal2-animate-success-icon');
- addClass(icon.querySelector('.swal2-success-line-tip'), 'swal2-animate-success-line-tip');
- addClass(icon.querySelector('.swal2-success-line-long'), 'swal2-animate-success-line-long');
- break;
- case 'error':
- addClass(icon, 'swal2-animate-error-icon');
- addClass(icon.querySelector('.swal2-x-mark'), 'swal2-animate-x-mark');
- break;
- default:
- break;
- }
- }
- }
-
- // Custom image
- var image = getImage();
- if (params.imageUrl) {
- image.setAttribute('src', params.imageUrl);
- show(image);
-
- if (params.imageWidth) {
- image.setAttribute('width', params.imageWidth);
- } else {
- image.removeAttribute('width');
- }
-
- if (params.imageHeight) {
- image.setAttribute('height', params.imageHeight);
- } else {
- image.removeAttribute('height');
- }
-
- image.className = swalClasses.image;
- if (params.imageClass) {
- addClass(image, params.imageClass);
- }
- } else {
- hide(image);
- }
-
- // Cancel button
- if (params.showCancelButton) {
- cancelButton.style.display = 'inline-block';
- } else {
- hide(cancelButton);
- }
-
- // Confirm button
- if (params.showConfirmButton) {
- removeStyleProperty(confirmButton, 'display');
- } else {
- hide(confirmButton);
- }
-
- // Buttons wrapper
- if (!params.showConfirmButton && !params.showCancelButton) {
- hide(buttonsWrapper);
- } else {
- show(buttonsWrapper);
- }
-
- // Edit text on cancel and confirm buttons
- confirmButton.innerHTML = params.confirmButtonText;
- cancelButton.innerHTML = params.cancelButtonText;
-
- // Set buttons to selected background colors
- if (params.buttonsStyling) {
- confirmButton.style.backgroundColor = params.confirmButtonColor;
- cancelButton.style.backgroundColor = params.cancelButtonColor;
- }
-
- // Add buttons custom classes
- confirmButton.className = swalClasses.confirm;
- addClass(confirmButton, params.confirmButtonClass);
- cancelButton.className = swalClasses.cancel;
- addClass(cancelButton, params.cancelButtonClass);
-
- // Buttons styling
- if (params.buttonsStyling) {
- addClass(confirmButton, swalClasses.styled);
- addClass(cancelButton, swalClasses.styled);
- } else {
- removeClass(confirmButton, swalClasses.styled);
- removeClass(cancelButton, swalClasses.styled);
-
- confirmButton.style.backgroundColor = confirmButton.style.borderLeftColor = confirmButton.style.borderRightColor = '';
- cancelButton.style.backgroundColor = cancelButton.style.borderLeftColor = cancelButton.style.borderRightColor = '';
- }
-
- // CSS animation
- if (params.animation === true) {
- removeClass(modal, swalClasses.noanimation);
- } else {
- addClass(modal, swalClasses.noanimation);
- }
- };
-
- /*
- * Animations
- */
- var openModal = function openModal(animation, onComplete) {
- var container = getContainer();
- var modal = getModal();
-
- if (animation) {
- addClass(modal, swalClasses.show);
- addClass(container, swalClasses.fade);
- removeClass(modal, swalClasses.hide);
- } else {
- removeClass(modal, swalClasses.fade);
- }
- show(modal);
-
- // scrolling is 'hidden' until animation is done, after that 'auto'
- container.style.overflowY = 'hidden';
- if (animationEndEvent && !hasClass(modal, swalClasses.noanimation)) {
- modal.addEventListener(animationEndEvent, function swalCloseEventFinished() {
- modal.removeEventListener(animationEndEvent, swalCloseEventFinished);
- container.style.overflowY = 'auto';
- });
- } else {
- container.style.overflowY = 'auto';
- }
-
- addClass(document.documentElement, swalClasses.shown);
- addClass(document.body, swalClasses.shown);
- addClass(container, swalClasses.shown);
- fixScrollbar();
- iOSfix();
- states.previousActiveElement = document.activeElement;
- if (onComplete !== null && typeof onComplete === 'function') {
- setTimeout(function() {
- onComplete(modal);
- });
- }
- };
-
- var fixScrollbar = function fixScrollbar() {
- // for queues, do not do this more than once
- if (states.previousBodyPadding !== null) {
- return;
- }
- // if the body has overflow
- if (document.body.scrollHeight > window.innerHeight) {
- // add padding so the content doesn't shift after removal of scrollbar
- states.previousBodyPadding = document.body.style.paddingRight;
- document.body.style.paddingRight = measureScrollbar() + 'px';
- }
- };
-
- var undoScrollbar = function undoScrollbar() {
- if (states.previousBodyPadding !== null) {
- document.body.style.paddingRight = states.previousBodyPadding;
- states.previousBodyPadding = null;
- }
- };
-
- // Fix iOS scrolling http://stackoverflow.com/q/39626302/1331425
- var iOSfix = function iOSfix() {
- var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
- if (iOS && !hasClass(document.body, swalClasses.iosfix)) {
- var offset = document.body.scrollTop;
- document.body.style.top = offset * -1 + 'px';
- addClass(document.body, swalClasses.iosfix);
- }
- };
-
- var undoIOSfix = function undoIOSfix() {
- if (hasClass(document.body, swalClasses.iosfix)) {
- var offset = parseInt(document.body.style.top, 10);
- removeClass(document.body, swalClasses.iosfix);
- document.body.style.top = '';
- document.body.scrollTop = offset * -1;
- }
- };
-
- // SweetAlert entry point
- var sweetAlert = function sweetAlert() {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- if (args[0] === undefined) {
- console.error('SweetAlert2 expects at least 1 attribute!');
- return false;
- }
-
- var params = _extends({}, modalParams);
-
- switch (_typeof(args[0])) {
- case 'string':
- params.title = args[0];
- params.html = args[1];
- params.type = args[2];
-
- break;
-
- case 'object':
- _extends(params, args[0]);
- params.extraParams = args[0].extraParams;
-
- if (params.input === 'email' && params.inputValidator === null) {
- params.inputValidator = function(email) {
- return new Promise(function(resolve, reject) {
- var emailRegex = /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/;
- if (emailRegex.test(email)) {
- resolve();
- } else {
- reject('Invalid email address');
- }
- });
- };
- }
-
- if (params.input === 'url' && params.inputValidator === null) {
- params.inputValidator = function(url) {
- return new Promise(function(resolve, reject) {
- var urlRegex = /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*\/?$/;
- if (urlRegex.test(url)) {
- resolve();
- } else {
- reject('Invalid URL');
- }
- });
- };
- }
- break;
-
- default:
- console.error('SweetAlert2: Unexpected type of argument! Expected "string" or "object", got ' + _typeof(args[0]));
- return false;
- }
-
- setParameters(params);
-
- var container = getContainer();
- var modal = getModal();
-
- return new Promise(function(resolve, reject) {
- // Close on timer
- if (params.timer) {
- modal.timeout = setTimeout(function() {
- sweetAlert.closeModal(params.onClose);
- reject('timer');
- }, params.timer);
- }
-
- // Get input element by specified type or, if type isn't specified, by params.input
- var getInput = function getInput(inputType) {
- inputType = inputType || params.input;
- if (!inputType) {
- return null;
- }
- switch (inputType) {
- case 'select':
- case 'textarea':
- case 'file':
- return getChildByClass(modal, swalClasses[inputType]);
- case 'checkbox':
- return modal.querySelector('.' + swalClasses.checkbox + ' input');
- case 'radio':
- return modal.querySelector('.' + swalClasses.radio + ' input:checked') || modal.querySelector('.' + swalClasses.radio + ' input:first-child');
- case 'range':
- return modal.querySelector('.' + swalClasses.range + ' input');
- default:
- return getChildByClass(modal, swalClasses.input);
- }
- };
-
- // Get the value of the modal input
- var getInputValue = function getInputValue() {
- var input = getInput();
- if (!input) {
- return null;
- }
- switch (params.input) {
- case 'checkbox':
- return input.checked ? 1 : 0;
- case 'radio':
- return input.checked ? input.value : null;
- case 'file':
- return input.files.length ? input.files[0] : null;
- default:
- return params.inputAutoTrim ? input.value.trim() : input.value;
- }
- };
-
- // input autofocus
- if (params.input) {
- setTimeout(function() {
- var input = getInput();
- if (input) {
- focusInput(input);
- }
- }, 0);
- }
-
- var confirm = function confirm(value) {
- if (params.showLoaderOnConfirm) {
- sweetAlert.showLoading();
- }
-
- if (params.preConfirm) {
- params.preConfirm(value, params.extraParams).then(function(preConfirmValue) {
- sweetAlert.closeModal(params.onClose);
- resolve(preConfirmValue || value);
- }, function(error) {
- sweetAlert.hideLoading();
- if (error) {
- sweetAlert.showValidationError(error);
- }
- });
- } else {
- sweetAlert.closeModal(params.onClose);
- resolve(value);
- }
- };
-
- // Mouse interactions
- var onButtonEvent = function onButtonEvent(event) {
- var e = event || window.event;
- var target = e.target || e.srcElement;
- var confirmButton = getConfirmButton();
- var cancelButton = getCancelButton();
- var targetedConfirm = confirmButton && (confirmButton === target || confirmButton.contains(target));
- var targetedCancel = cancelButton && (cancelButton === target || cancelButton.contains(target));
-
- switch (e.type) {
- case 'mouseover':
- case 'mouseup':
- if (params.buttonsStyling) {
- if (targetedConfirm) {
- confirmButton.style.backgroundColor = colorLuminance(params.confirmButtonColor, -0.1);
- } else if (targetedCancel) {
- cancelButton.style.backgroundColor = colorLuminance(params.cancelButtonColor, -0.1);
- }
- }
- break;
- case 'mouseout':
- if (params.buttonsStyling) {
- if (targetedConfirm) {
- confirmButton.style.backgroundColor = params.confirmButtonColor;
- } else if (targetedCancel) {
- cancelButton.style.backgroundColor = params.cancelButtonColor;
- }
- }
- break;
- case 'mousedown':
- if (params.buttonsStyling) {
- if (targetedConfirm) {
- confirmButton.style.backgroundColor = colorLuminance(params.confirmButtonColor, -0.2);
- } else if (targetedCancel) {
- cancelButton.style.backgroundColor = colorLuminance(params.cancelButtonColor, -0.2);
- }
- }
- break;
- case 'click':
- // Clicked 'confirm'
- if (targetedConfirm && sweetAlert.isVisible()) {
- sweetAlert.disableButtons();
- if (params.input) {
- var inputValue = getInputValue();
-
- if (params.inputValidator) {
- sweetAlert.disableInput();
- params.inputValidator(inputValue, params.extraParams).then(function() {
- sweetAlert.enableButtons();
- sweetAlert.enableInput();
- confirm(inputValue);
- }, function(error) {
- sweetAlert.enableButtons();
- sweetAlert.enableInput();
- if (error) {
- sweetAlert.showValidationError(error);
- }
- });
- } else {
- confirm(inputValue);
- }
- } else {
- confirm(true);
- }
-
- // Clicked 'cancel'
- } else if (targetedCancel && sweetAlert.isVisible()) {
- sweetAlert.disableButtons();
- sweetAlert.closeModal(params.onClose);
- reject('cancel');
- }
- break;
- default:
- }
- };
-
- var buttons = modal.querySelectorAll('button');
- for (var i = 0; i < buttons.length; i++) {
- buttons[i].onclick = onButtonEvent;
- buttons[i].onmouseover = onButtonEvent;
- buttons[i].onmouseout = onButtonEvent;
- buttons[i].onmousedown = onButtonEvent;
- }
-
- // Closing modal by close button
- getCloseButton().onclick = function() {
- sweetAlert.closeModal(params.onClose);
- reject('close');
- };
-
- // Closing modal by overlay click
- container.onclick = function(e) {
- if (e.target !== container) {
- return;
- }
- if (params.allowOutsideClick) {
- sweetAlert.closeModal(params.onClose);
- reject('overlay');
- }
- };
-
- var buttonsWrapper = getButtonsWrapper();
- var confirmButton = getConfirmButton();
- var cancelButton = getCancelButton();
-
- // Reverse buttons (Confirm on the right side)
- if (params.reverseButtons) {
- confirmButton.parentNode.insertBefore(cancelButton, confirmButton);
- } else {
- confirmButton.parentNode.insertBefore(confirmButton, cancelButton);
- }
-
- // Focus handling
- var setFocus = function setFocus(index, increment) {
- var focusableElements = getFocusableElements(params.focusCancel);
- // search for visible elements and select the next possible match
- for (var _i3 = 0; _i3 < focusableElements.length; _i3++) {
- index = index + increment;
-
- // rollover to first item
- if (index === focusableElements.length) {
- index = 0;
-
- // go to last item
- } else if (index === -1) {
- index = focusableElements.length - 1;
- }
-
- // determine if element is visible
- var el = focusableElements[index];
- if (isVisible(el)) {
- return el.focus();
- }
- }
- };
-
- var handleKeyDown = function handleKeyDown(event) {
- var e = event || window.event;
- var keyCode = e.keyCode || e.which;
-
- if ([9, 13, 32, 27, 37, 38, 39, 40].indexOf(keyCode) === -1) {
- // Don't do work on keys we don't care about.
- return;
- }
-
- var targetElement = e.target || e.srcElement;
-
- var focusableElements = getFocusableElements(params.focusCancel);
- var btnIndex = -1; // Find the button - note, this is a nodelist, not an array.
- for (var _i4 = 0; _i4 < focusableElements.length; _i4++) {
- if (targetElement === focusableElements[_i4]) {
- btnIndex = _i4;
- break;
- }
- }
-
- // TAB
- if (keyCode === 9) {
- if (!e.shiftKey) {
- // Cycle to the next button
- setFocus(btnIndex, 1);
- } else {
- // Cycle to the prev button
- setFocus(btnIndex, -1);
- }
- e.stopPropagation();
- e.preventDefault();
-
- // ARROWS - switch focus between buttons
- } else if (keyCode === 37 || keyCode === 38 || keyCode === 39 || keyCode === 40) {
- // focus Cancel button if Confirm button is currently focused
- if (document.activeElement === confirmButton && isVisible(cancelButton)) {
- cancelButton.focus();
- // and vice versa
- } else if (document.activeElement === cancelButton && isVisible(confirmButton)) {
- confirmButton.focus();
- }
-
- // ENTER/SPACE
- } else if (keyCode === 13 || keyCode === 32) {
- if (btnIndex === -1 && params.allowEnterKey) {
- // ENTER/SPACE clicked outside of a button.
- if (params.focusCancel) {
- fireClick(cancelButton, e);
- } else {
- fireClick(confirmButton, e);
- }
- e.stopPropagation();
- e.preventDefault();
- }
-
- // ESC
- } else if (keyCode === 27 && params.allowEscapeKey === true) {
- sweetAlert.closeModal(params.onClose);
- reject('esc');
- }
- };
-
- states.previousWindowKeyDown = window.onkeydown;
- window.onkeydown = handleKeyDown;
-
- // Loading state
- if (params.buttonsStyling) {
- confirmButton.style.borderLeftColor = params.confirmButtonColor;
- confirmButton.style.borderRightColor = params.confirmButtonColor;
- }
-
- /**
- * Show spinner instead of Confirm button and disable Cancel button
- */
- sweetAlert.showLoading = sweetAlert.enableLoading = function() {
- show(buttonsWrapper);
- show(confirmButton, 'inline-block');
- addClass(buttonsWrapper, swalClasses.loading);
- addClass(modal, swalClasses.loading);
- confirmButton.disabled = true;
- cancelButton.disabled = true;
- };
-
- /**
- * Show spinner instead of Confirm button and disable Cancel button
- */
- sweetAlert.hideLoading = sweetAlert.disableLoading = function() {
- if (!params.showConfirmButton) {
- hide(confirmButton);
- if (!params.showCancelButton) {
- hide(getButtonsWrapper());
- }
- }
- removeClass(buttonsWrapper, swalClasses.loading);
- removeClass(modal, swalClasses.loading);
- confirmButton.disabled = false;
- cancelButton.disabled = false;
- };
-
- sweetAlert.getTitle = function() {
- return getTitle();
- };
- sweetAlert.getContent = function() {
- return getContent();
- };
- sweetAlert.getInput = function() {
- return getInput();
- };
- sweetAlert.getImage = function() {
- return getImage();
- };
- sweetAlert.getButtonsWrapper = function() {
- return getButtonsWrapper();
- };
- sweetAlert.getConfirmButton = function() {
- return getConfirmButton();
- };
- sweetAlert.getCancelButton = function() {
- return getCancelButton();
- };
-
- sweetAlert.enableButtons = function() {
- confirmButton.disabled = false;
- cancelButton.disabled = false;
- };
-
- sweetAlert.disableButtons = function() {
- confirmButton.disabled = true;
- cancelButton.disabled = true;
- };
-
- sweetAlert.enableConfirmButton = function() {
- confirmButton.disabled = false;
- };
-
- sweetAlert.disableConfirmButton = function() {
- confirmButton.disabled = true;
- };
-
- sweetAlert.enableInput = function() {
- var input = getInput();
- if (!input) {
- return false;
- }
- if (input.type === 'radio') {
- var radiosContainer = input.parentNode.parentNode;
- var radios = radiosContainer.querySelectorAll('input');
- for (var _i5 = 0; _i5 < radios.length; _i5++) {
- radios[_i5].disabled = false;
- }
- } else {
- input.disabled = false;
- }
- };
-
- sweetAlert.disableInput = function() {
- var input = getInput();
- if (!input) {
- return false;
- }
- if (input && input.type === 'radio') {
- var radiosContainer = input.parentNode.parentNode;
- var radios = radiosContainer.querySelectorAll('input');
- for (var _i6 = 0; _i6 < radios.length; _i6++) {
- radios[_i6].disabled = true;
- }
- } else {
- input.disabled = true;
- }
- };
-
- // Set modal min-height to disable scrolling inside the modal
- sweetAlert.recalculateHeight = debounce(function() {
- var modal = getModal();
- if (!modal) {
- return;
- }
- var prevState = modal.style.display;
- modal.style.minHeight = '';
- show(modal);
- modal.style.minHeight = modal.scrollHeight + 1 + 'px';
- modal.style.display = prevState;
- }, 50);
-
- // Show block with validation error
- sweetAlert.showValidationError = function(error) {
- var validationError = getValidationError();
- validationError.innerHTML = error;
- show(validationError);
-
- var input = getInput();
- if (input) {
- focusInput(input);
- addClass(input, swalClasses.inputerror);
- }
- };
-
- // Hide block with validation error
- sweetAlert.resetValidationError = function() {
- var validationError = getValidationError();
- hide(validationError);
- sweetAlert.recalculateHeight();
-
- var input = getInput();
- if (input) {
- removeClass(input, swalClasses.inputerror);
- }
- };
-
- sweetAlert.getProgressSteps = function() {
- return params.progressSteps;
- };
-
- sweetAlert.setProgressSteps = function(progressSteps) {
- params.progressSteps = progressSteps;
- setParameters(params);
- };
-
- sweetAlert.showProgressSteps = function() {
- show(getProgressSteps());
- };
-
- sweetAlert.hideProgressSteps = function() {
- hide(getProgressSteps());
- };
-
- sweetAlert.enableButtons();
- sweetAlert.hideLoading();
- sweetAlert.resetValidationError();
-
- // inputs
- var inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];
- var input = void 0;
- for (var _i7 = 0; _i7 < inputTypes.length; _i7++) {
- var inputClass = swalClasses[inputTypes[_i7]];
- var inputContainer = getChildByClass(modal, inputClass);
- input = getInput(inputTypes[_i7]);
-
- // set attributes
- if (input) {
- for (var j in input.attributes) {
- if (input.attributes.hasOwnProperty(j)) {
- var attrName = input.attributes[j].name;
- if (attrName !== 'type' && attrName !== 'value') {
- input.removeAttribute(attrName);
- }
- }
- }
- for (var attr in params.inputAttributes) {
- input.setAttribute(attr, params.inputAttributes[attr]);
- }
- }
-
- // set class
- inputContainer.className = inputClass;
- if (params.inputClass) {
- addClass(inputContainer, params.inputClass);
- }
-
- hide(inputContainer);
- }
-
- var populateInputOptions = void 0;
- switch (params.input) {
- case 'text':
- case 'email':
- case 'password':
- case 'number':
- case 'tel':
- case 'url':
- input = getChildByClass(modal, swalClasses.input);
- input.value = params.inputValue;
- input.placeholder = params.inputPlaceholder;
- input.type = params.input;
- show(input);
- break;
- case 'file':
- input = getChildByClass(modal, swalClasses.file);
- input.placeholder = params.inputPlaceholder;
- input.type = params.input;
- show(input);
- break;
- case 'range':
- var range = getChildByClass(modal, swalClasses.range);
- var rangeInput = range.querySelector('input');
- var rangeOutput = range.querySelector('output');
- rangeInput.value = params.inputValue;
- rangeInput.type = params.input;
- rangeOutput.value = params.inputValue;
- show(range);
- break;
- case 'select':
- var select = getChildByClass(modal, swalClasses.select);
- select.innerHTML = '';
- if (params.inputPlaceholder) {
- var placeholder = document.createElement('option');
- placeholder.innerHTML = params.inputPlaceholder;
- placeholder.value = '';
- placeholder.disabled = true;
- placeholder.selected = true;
- select.appendChild(placeholder);
- }
- populateInputOptions = function populateInputOptions(inputOptions) {
- for (var optionValue in inputOptions) {
- var option = document.createElement('option');
- option.value = optionValue;
- option.innerHTML = inputOptions[optionValue];
- if (params.inputValue === optionValue) {
- option.selected = true;
- }
- select.appendChild(option);
- }
- show(select);
- select.focus();
- };
- break;
- case 'radio':
- var radio = getChildByClass(modal, swalClasses.radio);
- radio.innerHTML = '';
- populateInputOptions = function populateInputOptions(inputOptions) {
- for (var radioValue in inputOptions) {
- var radioInput = document.createElement('input');
- var radioLabel = document.createElement('label');
- var radioLabelSpan = document.createElement('span');
- radioInput.type = 'radio';
- radioInput.name = swalClasses.radio;
- radioInput.value = radioValue;
- if (params.inputValue === radioValue) {
- radioInput.checked = true;
- }
- radioLabelSpan.innerHTML = inputOptions[radioValue];
- radioLabel.appendChild(radioInput);
- radioLabel.appendChild(radioLabelSpan);
- radioLabel.for = radioInput.id;
- radio.appendChild(radioLabel);
- }
- show(radio);
- var radios = radio.querySelectorAll('input');
- if (radios.length) {
- radios[0].focus();
- }
- };
- break;
- case 'checkbox':
- var checkbox = getChildByClass(modal, swalClasses.checkbox);
- var checkboxInput = getInput('checkbox');
- checkboxInput.type = 'checkbox';
- checkboxInput.value = 1;
- checkboxInput.id = swalClasses.checkbox;
- checkboxInput.checked = Boolean(params.inputValue);
- var label = checkbox.getElementsByTagName('span');
- if (label.length) {
- checkbox.removeChild(label[0]);
- }
- label = document.createElement('span');
- label.innerHTML = params.inputPlaceholder;
- checkbox.appendChild(label);
- show(checkbox);
- break;
- case 'textarea':
- var textarea = getChildByClass(modal, swalClasses.textarea);
- textarea.value = params.inputValue;
- textarea.placeholder = params.inputPlaceholder;
- show(textarea);
- break;
- case null:
- break;
- default:
- console.error('SweetAlert2: Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "' + params.input + '"');
- break;
- }
-
- if (params.input === 'select' || params.input === 'radio') {
- if (params.inputOptions instanceof Promise) {
- sweetAlert.showLoading();
- params.inputOptions.then(function(inputOptions) {
- sweetAlert.hideLoading();
- populateInputOptions(inputOptions);
- });
- } else if (_typeof(params.inputOptions) === 'object') {
- populateInputOptions(params.inputOptions);
- } else {
- console.error('SweetAlert2: Unexpected type of inputOptions! Expected object or Promise, got ' + _typeof(params.inputOptions));
- }
- }
-
- openModal(params.animation, params.onOpen);
-
- // Focus the first element (input or button)
- if (params.allowEnterKey) {
- setFocus(-1, 1);
- } else {
- if (document.activeElement) {
- document.activeElement.blur();
- }
- }
-
- // fix scroll
- getContainer().scrollTop = 0;
-
- // Observe changes inside the modal and adjust height
- if (typeof MutationObserver !== 'undefined' && !swal2Observer) {
- swal2Observer = new MutationObserver(sweetAlert.recalculateHeight);
- swal2Observer.observe(modal, { childList: true, characterData: true, subtree: true });
- }
- });
- };
-
- /*
- * Global function to determine if swal2 modal is shown
- */
- sweetAlert.isVisible = function() {
- return !!getModal();
- };
-
- /*
- * Global function for chaining sweetAlert modals
- */
- sweetAlert.queue = function(steps) {
- queue = steps;
- var resetQueue = function resetQueue() {
- queue = [];
- document.body.removeAttribute('data-swal2-queue-step');
- };
- var queueResult = [];
- return new Promise(function(resolve, reject) {
- (function step(i, callback) {
- if (i < queue.length) {
- document.body.setAttribute('data-swal2-queue-step', i);
-
- sweetAlert(queue[i]).then(function(result) {
- queueResult.push(result);
- step(i + 1, callback);
- }, function(dismiss) {
- resetQueue();
- reject(dismiss);
- });
- } else {
- resetQueue();
- resolve(queueResult);
- }
- })(0);
- });
- };
-
- /*
- * Global function for getting the index of current modal in queue
- */
- sweetAlert.getQueueStep = function() {
- return document.body.getAttribute('data-swal2-queue-step');
- };
-
- /*
- * Global function for inserting a modal to the queue
- */
- sweetAlert.insertQueueStep = function(step, index) {
- if (index && index < queue.length) {
- return queue.splice(index, 0, step);
- }
- return queue.push(step);
- };
-
- /*
- * Global function for deleting a modal from the queue
- */
- sweetAlert.deleteQueueStep = function(index) {
- if (typeof queue[index] !== 'undefined') {
- queue.splice(index, 1);
- }
- };
-
- /*
- * Global function to close sweetAlert
- */
- sweetAlert.close = sweetAlert.closeModal = function(onComplete) {
- var container = getContainer();
- var modal = getModal();
- if (!modal) {
- return;
- }
- removeClass(modal, swalClasses.show);
- addClass(modal, swalClasses.hide);
- clearTimeout(modal.timeout);
-
- resetPrevState();
-
- var removeModalAndResetState = function removeModalAndResetState() {
- if (container.parentNode) {
- container.parentNode.removeChild(container);
- }
- removeClass(document.documentElement, swalClasses.shown);
- removeClass(document.body, swalClasses.shown);
- undoScrollbar();
- undoIOSfix();
- };
-
- // If animation is supported, animate
- if (animationEndEvent && !hasClass(modal, swalClasses.noanimation)) {
- modal.addEventListener(animationEndEvent, function swalCloseEventFinished() {
- modal.removeEventListener(animationEndEvent, swalCloseEventFinished);
- if (hasClass(modal, swalClasses.hide)) {
- removeModalAndResetState();
- }
- });
- } else {
- // Otherwise, remove immediately
- removeModalAndResetState();
- }
- if (onComplete !== null && typeof onComplete === 'function') {
- setTimeout(function() {
- onComplete(modal);
- });
- }
- };
-
- /*
- * Global function to click 'Confirm' button
- */
- sweetAlert.clickConfirm = function() {
- return getConfirmButton().click();
- };
-
- /*
- * Global function to click 'Cancel' button
- */
- sweetAlert.clickCancel = function() {
- return getCancelButton().click();
- };
-
- /**
- * Set default params for each popup
- * @param {Object} userParams
- */
- sweetAlert.setDefaults = function(userParams) {
- if (!userParams || (typeof userParams === 'undefined' ? 'undefined' : _typeof(userParams)) !== 'object') {
- return console.error('SweetAlert2: the argument for setDefaults() is required and has to be a object');
- }
-
- for (var param in userParams) {
- if (!defaultParams.hasOwnProperty(param) && param !== 'extraParams') {
- console.warn('SweetAlert2: Unknown parameter "' + param + '"');
- delete userParams[param];
- }
- }
-
- _extends(modalParams, userParams);
- };
-
- /**
- * Reset default params for each popup
- */
- sweetAlert.resetDefaults = function() {
- modalParams = _extends({}, defaultParams);
- };
-
- sweetAlert.noop = function() {};
-
- sweetAlert.version = '6.6.2';
-
- sweetAlert.default = sweetAlert;
-
- return sweetAlert;
-
-})));
-if (window.Sweetalert2) window.sweetAlert = window.swal = window.Sweetalert2;;
-/*
- * iziModal | v1.5.1
- * http://izimodal.marcelodolce.com
- * by Marcelo Dolce.
- */
-(function(factory) {
- if (typeof define === 'function' && define.amd) {
- define(['jquery'], factory);
- } else if (typeof module === 'object' && module.exports) {
- module.exports = function(root, jQuery) {
- if (jQuery === undefined) {
- if (typeof window !== 'undefined') {
- jQuery = require('jquery');
- } else {
- jQuery = require('jquery')(root);
- }
- }
- factory(jQuery);
- return jQuery;
- };
- } else {
- factory(jQuery);
- }
-}(function($) {
-
- var $window = $(window),
- $document = $(document),
- PLUGIN_NAME = 'iziModal',
- STATES = {
- CLOSING: 'closing',
- CLOSED: 'closed',
- OPENING: 'opening',
- OPENED: 'opened',
- DESTROYED: 'destroyed'
- };
-
- function whichAnimationEvent() {
- var t,
- el = document.createElement("fakeelement"),
- animations = {
- "animation": "animationend",
- "OAnimation": "oAnimationEnd",
- "MozAnimation": "animationend",
- "WebkitAnimation": "webkitAnimationEnd"
- };
- for (t in animations) {
- if (el.style[t] !== undefined) {
- return animations[t];
- }
- }
- }
-
- function isIE(version) {
- if (version === 9) {
- return navigator.appVersion.indexOf("MSIE 9.") !== -1;
- } else {
- userAgent = navigator.userAgent;
- return userAgent.indexOf("MSIE ") > -1 || userAgent.indexOf("Trident/") > -1;
- }
- }
-
- function clearValue(value) {
- var separators = /%|px|em|cm|vh|vw/;
- return parseInt(String(value).split(separators)[0]);
- }
-
- var animationEvent = whichAnimationEvent(),
- isMobile = (/Mobi/.test(navigator.userAgent)) ? true : false;
-
- window.$iziModal = {};
- window.$iziModal.autoOpen = 0;
- window.$iziModal.history = false;
-
- var iziModal = function(element, options) {
- this.init(element, options);
- };
-
- iziModal.prototype = {
-
- constructor: iziModal,
-
- init: function(element, options) {
-
- var that = this;
- this.$element = $(element);
-
- if (this.$element[0].id !== undefined && this.$element[0].id !== '') {
- this.id = this.$element[0].id;
- } else {
- let array = new Uint8Array(3);
- window.crypto.getRandomValues(array);
- this.id = PLUGIN_NAME + Math.floor((array[0] * array[1] * array[2]) + 1);
- this.$element.attr('id', this.id);
- }
- this.classes = (this.$element.attr('class') !== undefined) ? this.$element.attr('class') : '';
- this.content = this.$element.html();
- this.state = STATES.CLOSED;
- this.options = options;
- this.width = 0;
- this.timer = null;
- this.timerTimeout = null;
- this.progressBar = null;
- this.isPaused = false;
- this.isFullscreen = false;
- this.headerHeight = 0;
- this.modalHeight = 0;
- this.$overlay = $('');
- this.$navigate = $('');
- this.group = {
- name: this.$element.attr('data-' + PLUGIN_NAME + '-group'),
- index: null,
- ids: []
- };
- this.$element.attr('aria-hidden', 'true');
- this.$element.attr('aria-labelledby', this.id);
- this.$element.attr('role', 'dialog');
-
- if (!this.$element.hasClass('iziModal')) {
- this.$element.addClass('iziModal');
- }
-
- if (this.group.name === undefined && options.group !== "") {
- this.group.name = options.group;
- this.$element.attr('data-' + PLUGIN_NAME + '-group', options.group);
- }
- if (this.options.loop === true) {
- this.$element.attr('data-' + PLUGIN_NAME + '-loop', true);
- }
-
- $.each(this.options, function(index, val) {
- var attr = that.$element.attr('data-' + PLUGIN_NAME + '-' + index);
- try {
- if (typeof attr !== typeof undefined) {
-
- if (attr === "" || attr == "true") {
- options[index] = true;
- } else if (attr == "false") {
- options[index] = false;
- } else if (typeof val == 'function') {
- options[index] = new Function(attr);
- } else {
- options[index] = attr;
- }
- }
- } catch (exc) {}
- });
-
- if (options.appendTo !== false) {
- this.$element.appendTo(options.appendTo);
- }
-
- if (options.iframe === true) {
- this.$element.html('");
-
- if (options.iframeHeight !== null) {
- this.$element.find('.' + PLUGIN_NAME + '-iframe').css('height', options.iframeHeight);
- }
- } else {
- this.$element.html('');
- }
-
- if (this.options.background !== null) {
- this.$element.css('background', this.options.background);
- }
-
- this.$wrap = this.$element.find('.' + PLUGIN_NAME + '-wrap');
-
- if (options.zindex !== null && !isNaN(parseInt(options.zindex))) {
- this.$element.css('z-index', options.zindex);
- this.$navigate.css('z-index', options.zindex - 1);
- this.$overlay.css('z-index', options.zindex - 2);
- }
-
- if (options.radius !== "") {
- this.$element.css('border-radius', options.radius);
- }
-
- if (options.padding !== "") {
- this.$element.find('.' + PLUGIN_NAME + '-content').css('padding', options.padding);
- }
-
- if (options.theme !== "") {
- if (options.theme === "light") {
- this.$element.addClass(PLUGIN_NAME + '-light');
- } else {
- this.$element.addClass(options.theme);
- }
- }
-
- if (options.rtl === true) {
- this.$element.addClass(PLUGIN_NAME + '-rtl');
- }
-
- if (options.openFullscreen === true) {
- this.isFullscreen = true;
- this.$element.addClass('isFullscreen');
- }
-
- this.createHeader();
- this.recalcWidth();
- this.recalcVerticalPos();
-
- if (that.options.afterRender && (typeof(that.options.afterRender) === "function" || typeof(that.options.afterRender) === "object")) {
- that.options.afterRender(that);
- }
-
- },
-
- createHeader: function() {
-
- this.$header = $('');
-
- if (this.options.closeButton === true) {
- this.$header.find('.' + PLUGIN_NAME + '-header-buttons').append('');
- }
-
- if (this.options.fullscreen === true) {
- this.$header.find('.' + PLUGIN_NAME + '-header-buttons').append('');
- }
-
- if (this.options.timeoutProgressbar === true && !isNaN(parseInt(this.options.timeout)) && this.options.timeout !== false && this.options.timeout !== 0) {
- this.$header.prepend('');
- }
-
- if (this.options.subtitle === '') {
- this.$header.addClass(PLUGIN_NAME + '-noSubtitle');
- }
-
- if (this.options.title !== "") {
-
- if (this.options.headerColor !== null) {
- if (this.options.borderBottom === true) {
- this.$element.css('border-bottom', '3px solid ' + this.options.headerColor + '');
- }
- this.$header.css('background', this.options.headerColor);
- }
- if (this.options.icon !== null || this.options.iconText !== null) {
-
- this.$header.prepend('');
-
- if (this.options.icon !== null) {
- this.$header.find('.' + PLUGIN_NAME + '-header-icon').addClass(this.options.icon).css('color', this.options.iconColor);
- }
- if (this.options.iconText !== null) {
- this.$header.find('.' + PLUGIN_NAME + '-header-icon').html(this.options.iconText);
- }
- }
- this.$element.css('overflow', 'hidden').prepend(this.$header);
- }
- },
-
- setGroup: function(groupName) {
-
- var that = this,
- group = this.group.name || groupName;
- this.group.ids = [];
-
- if (groupName !== undefined && groupName !== this.group.name) {
- group = groupName;
- this.group.name = group;
- this.$element.attr('data-' + PLUGIN_NAME + '-group', group);
- }
- if (group !== undefined && group !== "") {
-
- var count = 0;
- $.each($('.' + PLUGIN_NAME + '[data-' + PLUGIN_NAME + '-group=' + group + ']'), function(index, val) {
-
- that.group.ids.push($(this)[0].id);
-
- if (that.id == $(this)[0].id) {
- that.group.index = count;
- }
- count++;
- });
- }
- },
-
- toggle: function() {
-
- if (this.state == STATES.OPENED) {
- this.close();
- }
- if (this.state == STATES.CLOSED) {
- this.open();
- }
- },
-
- open: function(param) {
-
- var that = this;
-
- $.each($('.' + PLUGIN_NAME), function(index, modal) {
- if ($(modal).data().iziModal !== undefined) {
- var state = $(modal).iziModal('getState');
- if (state == 'opened' || state == 'opening') {
- $(modal).iziModal('close');
- }
- }
- });
-
- (function urlHash() {
- if (that.options.history) {
- var oldTitle = document.title;
- document.title = oldTitle + " - " + that.options.title;
- document.location.hash = that.id;
- document.title = oldTitle;
- //history.pushState({}, that.options.title, "#"+that.id);
- window.$iziModal.history = true;
- } else {
- window.$iziModal.history = false;
- }
- })();
-
- function opened() {
-
- // console.info('[ '+PLUGIN_NAME+' | '+that.id+' ] Opened.');
-
- that.state = STATES.OPENED;
- that.$element.trigger(STATES.OPENED);
-
- if (that.options.onOpened && (typeof(that.options.onOpened) === "function" || typeof(that.options.onOpened) === "object")) {
- that.options.onOpened(that);
- }
- }
-
- function bindEvents() {
-
- // Close when button pressed
- that.$element.off('click', '[data-' + PLUGIN_NAME + '-close]').on('click', '[data-' + PLUGIN_NAME + '-close]', function(e) {
- e.preventDefault();
-
- var transition = $(e.currentTarget).attr('data-' + PLUGIN_NAME + '-transitionOut');
-
- if (transition !== undefined) {
- that.close({ transition: transition });
- } else {
- that.close();
- }
- });
-
- // Expand when button pressed
- that.$element.off('click', '[data-' + PLUGIN_NAME + '-fullscreen]').on('click', '[data-' + PLUGIN_NAME + '-fullscreen]', function(e) {
- e.preventDefault();
- if (that.isFullscreen === true) {
- that.isFullscreen = false;
- that.$element.removeClass('isFullscreen');
- } else {
- that.isFullscreen = true;
- that.$element.addClass('isFullscreen');
- }
- if (that.options.onFullscreen && typeof(that.options.onFullscreen) === "function") {
- that.options.onFullscreen(that);
- }
- that.$element.trigger('fullscreen', that);
- });
-
- // Next modal
- that.$navigate.off('click', '.' + PLUGIN_NAME + '-navigate-next').on('click', '.' + PLUGIN_NAME + '-navigate-next', function(e) {
- that.next(e);
- });
- that.$element.off('click', '[data-' + PLUGIN_NAME + '-next]').on('click', '[data-' + PLUGIN_NAME + '-next]', function(e) {
- that.next(e);
- });
-
- // Previous modal
- that.$navigate.off('click', '.' + PLUGIN_NAME + '-navigate-prev').on('click', '.' + PLUGIN_NAME + '-navigate-prev', function(e) {
- that.prev(e);
- });
- that.$element.off('click', '[data-' + PLUGIN_NAME + '-prev]').on('click', '[data-' + PLUGIN_NAME + '-prev]', function(e) {
- that.prev(e);
- });
- }
-
- if (this.state == STATES.CLOSED) {
-
- bindEvents();
-
- this.setGroup();
- this.state = STATES.OPENING;
- this.$element.trigger(STATES.OPENING);
- this.$element.attr('aria-hidden', 'false');
-
- // console.info('[ '+PLUGIN_NAME+' | '+this.id+' ] Opening...');
-
- if (this.options.iframe === true) {
-
- this.$element.find('.' + PLUGIN_NAME + '-content').addClass(PLUGIN_NAME + '-content-loader');
-
- this.$element.find('.' + PLUGIN_NAME + '-iframe').on('load', function() {
- $(this).parent().removeClass(PLUGIN_NAME + '-content-loader');
- });
-
- var href = null;
- try {
- href = $(param.currentTarget).attr('href') !== "" ? $(param.currentTarget).attr('href') : null;
- } catch (e) {
- // console.warn(e);
- }
- if ((this.options.iframeURL !== null) && (href === null || href === undefined)) {
- href = this.options.iframeURL;
- }
- if (href === null || href === undefined) {
- throw new Error("Failed to find iframe URL");
- }
- this.$element.find('.' + PLUGIN_NAME + '-iframe').attr('src', href);
- }
-
-
- if (this.options.bodyOverflow || isMobile) {
- $('html').addClass(PLUGIN_NAME + '-isOverflow');
- if (isMobile) {
- $('body').css('overflow', 'hidden');
- }
- }
-
- if (this.options.onOpening && typeof(this.options.onOpening) === "function") {
- this.options.onOpening(this);
- }
- (function open() {
-
- if (that.group.ids.length > 1) {
-
- that.$navigate.appendTo('body');
- that.$navigate.addClass('fadeIn');
-
- if (that.options.navigateCaption === true) {
- that.$navigate.find('.' + PLUGIN_NAME + '-navigate-caption').show();
- }
-
- var modalWidth = that.$element.outerWidth();
- if (that.options.navigateArrows !== false) {
- if (that.options.navigateArrows === 'closeScreenEdge') {
- that.$navigate.find('.' + PLUGIN_NAME + '-navigate-prev').css('left', 0).show();
- that.$navigate.find('.' + PLUGIN_NAME + '-navigate-next').css('right', 0).show();
- } else {
- that.$navigate.find('.' + PLUGIN_NAME + '-navigate-prev').css('margin-left', -((modalWidth / 2) + 84)).show();
- that.$navigate.find('.' + PLUGIN_NAME + '-navigate-next').css('margin-right', -((modalWidth / 2) + 84)).show();
- }
- } else {
- that.$navigate.find('.' + PLUGIN_NAME + '-navigate-prev').hide();
- that.$navigate.find('.' + PLUGIN_NAME + '-navigate-next').hide();
- }
-
- var loop;
- if (that.group.index === 0) {
-
- loop = $('.' + PLUGIN_NAME + '[data-' + PLUGIN_NAME + '-group="' + that.group.name + '"][data-' + PLUGIN_NAME + '-loop]').length;
-
- if (loop === 0 && that.options.loop === false)
- that.$navigate.find('.' + PLUGIN_NAME + '-navigate-prev').hide();
- }
- if (that.group.index + 1 === that.group.ids.length) {
-
- loop = $('.' + PLUGIN_NAME + '[data-' + PLUGIN_NAME + '-group="' + that.group.name + '"][data-' + PLUGIN_NAME + '-loop]').length;
-
- if (loop === 0 && that.options.loop === false)
- that.$navigate.find('.' + PLUGIN_NAME + '-navigate-next').hide();
- }
- }
-
- if (that.options.overlay === true) {
-
- if (that.options.appendToOverlay === false) {
- that.$overlay.appendTo('body');
- } else {
- that.$overlay.appendTo(that.options.appendToOverlay);
- }
- }
-
- if (that.options.transitionInOverlay) {
- that.$overlay.addClass(that.options.transitionInOverlay);
- }
-
- var transitionIn = that.options.transitionIn;
-
- if (typeof param == 'object') {
- if (param.transition !== undefined || param.transitionIn !== undefined) {
- transitionIn = param.transition || param.transitionIn;
- }
- }
-
- if (transitionIn !== '' && animationEvent !== undefined) {
-
- that.$element.addClass("transitionIn " + transitionIn).show();
- that.$wrap.one(animationEvent, function() {
-
- that.$element.removeClass(transitionIn + " transitionIn");
- that.$overlay.removeClass(that.options.transitionInOverlay);
- that.$navigate.removeClass('fadeIn');
-
- opened();
- });
-
- } else {
-
- that.$element.show();
- opened();
- }
-
- if (that.options.pauseOnHover === true && that.options.pauseOnHover === true && that.options.timeout !== false && !isNaN(parseInt(that.options.timeout)) && that.options.timeout !== false && that.options.timeout !== 0) {
-
- that.$element.off('mouseenter').on('mouseenter', function(event) {
- event.preventDefault();
- that.isPaused = true;
- });
- that.$element.off('mouseleave').on('mouseleave', function(event) {
- event.preventDefault();
- that.isPaused = false;
- });
- }
-
- })();
-
- if (this.options.timeout !== false && !isNaN(parseInt(this.options.timeout)) && this.options.timeout !== false && this.options.timeout !== 0) {
-
- if (this.options.timeoutProgressbar === true) {
-
- this.progressBar = {
- hideEta: null,
- maxHideTime: null,
- currentTime: new Date().getTime(),
- el: this.$element.find('.' + PLUGIN_NAME + '-progressbar > div'),
- updateProgress: function() {
- if (!that.isPaused) {
-
- that.progressBar.currentTime = that.progressBar.currentTime + 10;
-
- var percentage = ((that.progressBar.hideEta - (that.progressBar.currentTime)) / that.progressBar.maxHideTime) * 100;
- that.progressBar.el.width(percentage + '%');
- if (percentage < 0) {
- that.close();
- }
- }
- }
- };
- if (this.options.timeout > 0) {
-
- this.progressBar.maxHideTime = parseFloat(this.options.timeout);
- this.progressBar.hideEta = new Date().getTime() + this.progressBar.maxHideTime;
- this.timerTimeout = setInterval(this.progressBar.updateProgress, 10);
- }
-
- } else {
-
- this.timerTimeout = setTimeout(function() {
- that.close();
- }, that.options.timeout);
- }
- }
-
- // Close on overlay click
- if (this.options.overlayClose && !this.$element.hasClass(this.options.transitionOut)) {
- this.$overlay.click(function() {
- that.close();
- });
- }
-
- if (this.options.focusInput) {
- this.$element.find(':input:not(button):enabled:visible:first').focus(); // Focus on the first field
- }
-
- (function updateTimer() {
- that.recalcLayout();
- that.timer = setTimeout(updateTimer, 300);
- })();
-
- // Close when the Escape key is pressed
- $document.on('keydown.' + PLUGIN_NAME, function(e) {
- if (that.options.closeOnEscape && e.keyCode === 27) {
- that.close();
- }
- });
-
- }
-
- },
-
- close: function(param) {
-
- var that = this;
-
- function closed() {
-
- // console.info('[ '+PLUGIN_NAME+' | '+that.id+' ] Closed.');
-
- that.state = STATES.CLOSED;
- that.$element.trigger(STATES.CLOSED);
-
- if (that.options.iframe === true) {
- that.$element.find('.' + PLUGIN_NAME + '-iframe').attr('src', "");
- }
-
- if (that.options.bodyOverflow || isMobile) {
- $('html').removeClass(PLUGIN_NAME + '-isOverflow');
- if (isMobile) {
- $('body').css('overflow', 'auto');
- }
- }
-
- if (that.options.onClosed && typeof(that.options.onClosed) === "function") {
- that.options.onClosed(that);
- }
-
- if (that.options.restoreDefaultContent === true) {
- that.$element.find('.' + PLUGIN_NAME + '-content').html(that.content);
- }
-
- if ($('.' + PLUGIN_NAME + ':visible').length === 0) {
- $('html').removeClass(PLUGIN_NAME + '-isAttached');
- }
- }
-
- if (this.state == STATES.OPENED || this.state == STATES.OPENING) {
-
- $document.off('keydown.' + PLUGIN_NAME);
-
- this.state = STATES.CLOSING;
- this.$element.trigger(STATES.CLOSING);
- this.$element.attr('aria-hidden', 'true');
-
- // console.info('[ '+PLUGIN_NAME+' | '+this.id+' ] Closing...');
-
- clearTimeout(this.timer);
- clearTimeout(this.timerTimeout);
-
- if (that.options.onClosing && typeof(that.options.onClosing) === "function") {
- that.options.onClosing(this);
- }
-
- var transitionOut = this.options.transitionOut;
-
- if (typeof param == 'object') {
- if (param.transition !== undefined || param.transitionOut !== undefined) {
- transitionOut = param.transition || param.transitionOut;
- }
- }
-
- if ((transitionOut === false || transitionOut === '') || animationEvent === undefined) {
-
- this.$element.hide();
- this.$overlay.remove();
- this.$navigate.remove();
- closed();
-
- } else {
-
- this.$element.attr('class', [
- this.classes,
- PLUGIN_NAME,
- transitionOut,
- this.options.theme == 'light' ? PLUGIN_NAME + '-light' : this.options.theme,
- this.isFullscreen === true ? 'isFullscreen' : '',
- this.options.rtl ? PLUGIN_NAME + '-rtl' : ''
- ].join(' '));
-
- this.$overlay.attr('class', PLUGIN_NAME + "-overlay " + this.options.transitionOutOverlay);
-
- if (that.options.navigateArrows !== false) {
- this.$navigate.attr('class', PLUGIN_NAME + "-navigate fadeOut");
- }
-
- this.$element.one(animationEvent, function() {
-
- if (that.$element.hasClass(transitionOut)) {
- that.$element.removeClass(transitionOut + " transitionOut").hide();
- }
- that.$overlay.removeClass(that.options.transitionOutOverlay).remove();
- that.$navigate.removeClass('fadeOut').remove();
- closed();
- });
-
- }
-
- }
- },
-
- next: function(e) {
-
- var that = this;
- var transitionIn = 'fadeInRight';
- var transitionOut = 'fadeOutLeft';
- var modal = $('.' + PLUGIN_NAME + ':visible');
- var modals = {};
- modals.out = this;
-
- if (e !== undefined && typeof e !== 'object') {
- e.preventDefault();
- modal = $(e.currentTarget);
- transitionIn = modal.attr('data-' + PLUGIN_NAME + '-transitionIn');
- transitionOut = modal.attr('data-' + PLUGIN_NAME + '-transitionOut');
- } else if (e !== undefined) {
- if (e.transitionIn !== undefined) {
- transitionIn = e.transitionIn;
- }
- if (e.transitionOut !== undefined) {
- transitionOut = e.transitionOut;
- }
- }
-
- this.close({ transition: transitionOut });
-
- setTimeout(function() {
-
- var loop = $('.' + PLUGIN_NAME + '[data-' + PLUGIN_NAME + '-group="' + that.group.name + '"][data-' + PLUGIN_NAME + '-loop]').length;
- for (var i = that.group.index + 1; i <= that.group.ids.length; i++) {
-
- try {
- modals.in = $("#" + that.group.ids[i]).data().iziModal;
- } catch (log) {
- // console.info('[ '+PLUGIN_NAME+' ] No next modal.');
- }
- if (typeof modals.in !== 'undefined') {
-
- $("#" + that.group.ids[i]).iziModal('open', { transition: transitionIn });
- break;
-
- } else {
-
- if (i == that.group.ids.length && loop > 0 || that.options.loop === true) {
-
- for (var index = 0; index <= that.group.ids.length; index++) {
-
- modals.in = $("#" + that.group.ids[index]).data().iziModal;
- if (typeof modals.in !== 'undefined') {
- $("#" + that.group.ids[index]).iziModal('open', { transition: transitionIn });
- break;
- }
- }
- }
- }
- }
-
- }, 200);
-
- $(document).trigger(PLUGIN_NAME + "-group-change", modals);
- },
-
- prev: function(e) {
- var that = this;
- var transitionIn = 'fadeInLeft';
- var transitionOut = 'fadeOutRight';
- var modal = $('.' + PLUGIN_NAME + ':visible');
- var modals = {};
- modals.out = this;
-
- if (e !== undefined && typeof e !== 'object') {
- e.preventDefault();
- modal = $(e.currentTarget);
- transitionIn = modal.attr('data-' + PLUGIN_NAME + '-transitionIn');
- transitionOut = modal.attr('data-' + PLUGIN_NAME + '-transitionOut');
-
- } else if (e !== undefined) {
-
- if (e.transitionIn !== undefined) {
- transitionIn = e.transitionIn;
- }
- if (e.transitionOut !== undefined) {
- transitionOut = e.transitionOut;
- }
- }
-
- this.close({ transition: transitionOut });
-
- setTimeout(function() {
-
- var loop = $('.' + PLUGIN_NAME + '[data-' + PLUGIN_NAME + '-group="' + that.group.name + '"][data-' + PLUGIN_NAME + '-loop]').length;
-
- for (var i = that.group.index; i >= 0; i--) {
-
- try {
- modals.in = $("#" + that.group.ids[i - 1]).data().iziModal;
- } catch (log) {
- // console.info('[ '+PLUGIN_NAME+' ] No previous modal.');
- }
- if (typeof modals.in !== 'undefined') {
-
- $("#" + that.group.ids[i - 1]).iziModal('open', { transition: transitionIn });
- break;
-
- } else {
-
- if (i === 0 && loop > 0 || that.options.loop === true) {
-
- for (var index = that.group.ids.length - 1; index >= 0; index--) {
-
- modals.in = $("#" + that.group.ids[index]).data().iziModal;
- if (typeof modals.in !== 'undefined') {
- $("#" + that.group.ids[index]).iziModal('open', { transition: transitionIn });
- break;
- }
- }
- }
- }
- }
-
- }, 200);
-
- $(document).trigger(PLUGIN_NAME + "-group-change", modals);
- },
-
- destroy: function() {
- var e = $.Event('destroy');
-
- this.$element.trigger(e);
-
- $document.off('keydown.' + PLUGIN_NAME);
-
- clearTimeout(this.timer);
- clearTimeout(this.timerTimeout);
-
- if (this.options.iframe === true) {
- this.$element.find('.' + PLUGIN_NAME + '-iframe').remove();
- }
- this.$element.html(this.$element.find('.' + PLUGIN_NAME + '-content').html());
-
- this.$element.off('click', '[data-' + PLUGIN_NAME + '-close]');
- this.$element.off('click', '[data-' + PLUGIN_NAME + '-fullscreen]');
-
- this.$element
- .off('.' + PLUGIN_NAME)
- .removeData(PLUGIN_NAME)
- .attr('style', '');
-
- this.$overlay.remove();
- this.$navigate.remove();
- this.$element.trigger(STATES.DESTROYED);
- this.$element = null;
- },
-
- getState: function() {
-
- return this.state;
- },
-
- getGroup: function() {
-
- return this.group;
- },
-
- setWidth: function(width) {
-
- this.options.width = width;
-
- this.recalcWidth();
-
- var modalWidth = this.$element.outerWidth();
- if (this.options.navigateArrows === true || this.options.navigateArrows == 'closeToModal') {
- this.$navigate.find('.' + PLUGIN_NAME + '-navigate-prev').css('margin-left', -((modalWidth / 2) + 84)).show();
- this.$navigate.find('.' + PLUGIN_NAME + '-navigate-next').css('margin-right', -((modalWidth / 2) + 84)).show();
- }
-
- },
-
- setTop: function(top) {
-
- this.options.top = top;
-
- this.recalcVerticalPos(false);
- },
-
- setBottom: function(bottom) {
-
- this.options.bottom = bottom;
-
- this.recalcVerticalPos(false);
-
- },
-
- setHeader: function(status) {
-
- if (status) {
- this.$element.find('.' + PLUGIN_NAME + '-header').show();
- } else {
- this.headerHeight = 0;
- this.$element.find('.' + PLUGIN_NAME + '-header').hide();
- }
- },
-
- setTitle: function(title) {
-
- this.options.title = title;
-
- if (this.headerHeight === 0) {
- this.createHeader();
- }
-
- if (this.$header.find('.' + PLUGIN_NAME + '-header-title').length === 0) {
- this.$header.append('');
- }
-
- this.$header.find('.' + PLUGIN_NAME + '-header-title').html(title);
- },
-
- setSubtitle: function(subtitle) {
-
- if (subtitle === '') {
-
- this.$header.find('.' + PLUGIN_NAME + '-header-subtitle').remove();
- this.$header.addClass(PLUGIN_NAME + '-noSubtitle');
-
- } else {
-
- if (this.$header.find('.' + PLUGIN_NAME + '-header-subtitle').length === 0) {
- this.$header.append('');
- }
- this.$header.removeClass(PLUGIN_NAME + '-noSubtitle');
-
- }
-
- this.$header.find('.' + PLUGIN_NAME + '-header-subtitle').html(subtitle);
- this.options.subtitle = subtitle;
- },
-
- setIcon: function(icon) {
-
- if (this.$header.find('.' + PLUGIN_NAME + '-header-icon').length === 0) {
- this.$header.prepend('');
- }
- this.$header.find('.' + PLUGIN_NAME + '-header-icon').attr('class', PLUGIN_NAME + '-header-icon ' + icon);
- this.options.icon = icon;
- },
-
- setIconText: function(iconText) {
-
- this.$header.find('.' + PLUGIN_NAME + '-header-icon').html(iconText);
- this.options.iconText = iconText;
- },
-
- setHeaderColor: function(headerColor) {
- if (this.options.borderBottom === true) {
- this.$element.css('border-bottom', '3px solid ' + headerColor + '');
- }
- this.$header.css('background', headerColor);
- this.options.headerColor = headerColor;
- },
-
- setBackground: function(background) {
- if (background === false) {
- this.options.background = null;
- this.$element.css('background', '');
- } else {
- this.$element.css('background', background);
- this.options.background = background;
- }
- },
-
- setZindex: function(zIndex) {
-
- if (!isNaN(parseInt(this.options.zindex))) {
- this.options.zindex = zIndex;
- this.$element.css('z-index', zIndex);
- this.$navigate.css('z-index', zIndex - 1);
- this.$overlay.css('z-index', zIndex - 2);
- }
- },
-
- setFullscreen: function(value) {
-
- if (value) {
- this.isFullscreen = true;
- this.$element.addClass('isFullscreen');
- } else {
- this.isFullscreen = false;
- this.$element.removeClass('isFullscreen');
- }
-
- },
-
- setContent: function(content) {
-
- if (typeof content == "object") {
- var replace = content.default || false;
- if (replace === true) {
- this.content = content.content;
- }
- content = content.content;
- }
- if (this.options.iframe === false) {
- this.$element.find('.' + PLUGIN_NAME + '-content').html(content);
- }
-
- },
-
- setTransitionIn: function(transition) {
-
- this.options.transitionIn = transition;
- },
-
- setTransitionOut: function(transition) {
-
- this.options.transitionOut = transition;
- },
-
- resetContent: function() {
-
- this.$element.find('.' + PLUGIN_NAME + '-content').html(this.content);
-
- },
-
- startLoading: function() {
-
- if (!this.$element.find('.' + PLUGIN_NAME + '-loader').length) {
- this.$element.append('');
- }
- this.$element.find('.' + PLUGIN_NAME + '-loader').css({
- top: this.headerHeight,
- borderRadius: this.options.radius
- });
- },
-
- stopLoading: function() {
-
- var $loader = this.$element.find('.' + PLUGIN_NAME + '-loader');
-
- if (!$loader.length) {
- this.$element.prepend('');
- $loader = this.$element.find('.' + PLUGIN_NAME + '-loader').css('border-radius', this.options.radius);
- }
- $loader.removeClass('fadeIn').addClass('fadeOut');
- setTimeout(function() {
- $loader.remove();
- }, 600);
- },
-
- recalcWidth: function() {
-
- var that = this;
-
- this.$element.css('max-width', this.options.width);
-
- if (isIE()) {
- var modalWidth = that.options.width;
-
- if (modalWidth.toString().split("%").length > 1) {
- modalWidth = that.$element.outerWidth();
- }
- that.$element.css({
- left: '50%',
- marginLeft: -(modalWidth / 2)
- });
- }
- },
-
- recalcVerticalPos: function(first) {
-
- if (this.options.top !== null && this.options.top !== false) {
- this.$element.css('margin-top', this.options.top);
- if (this.options.top === 0) {
- this.$element.css({
- borderTopRightRadius: 0,
- borderTopLeftRadius: 0
- });
- }
- } else {
- if (first === false) {
- this.$element.css({
- marginTop: '',
- borderRadius: this.options.radius
- });
- }
- }
- if (this.options.bottom !== null && this.options.bottom !== false) {
- this.$element.css('margin-bottom', this.options.bottom);
- if (this.options.bottom === 0) {
- this.$element.css({
- borderBottomRightRadius: 0,
- borderBottomLeftRadius: 0
- });
- }
- } else {
- if (first === false) {
- this.$element.css({
- marginBottom: '',
- borderRadius: this.options.radius
- });
- }
- }
-
- },
-
- recalcLayout: function() {
-
- var that = this,
- windowHeight = $window.height(),
- modalHeight = this.$element.outerHeight(),
- modalWidth = this.$element.outerWidth(),
- contentHeight = this.$element.find('.' + PLUGIN_NAME + '-content')[0].scrollHeight,
- outerHeight = contentHeight + this.headerHeight,
- wrapperHeight = this.$element.innerHeight() - this.headerHeight,
- modalMargin = parseInt(-((this.$element.innerHeight() + 1) / 2)) + 'px',
- scrollTop = this.$wrap.scrollTop(),
- borderSize = 0;
-
- if (isIE()) {
- if (modalWidth >= $window.width() || this.isFullscreen === true) {
- this.$element.css({
- left: '0',
- marginLeft: ''
- });
- } else {
- this.$element.css({
- left: '50%',
- marginLeft: -(modalWidth / 2)
- });
- }
- }
-
- if (this.options.borderBottom === true && this.options.title !== "") {
- borderSize = 3;
- }
-
- if (this.$element.find('.' + PLUGIN_NAME + '-header').length && this.$element.find('.' + PLUGIN_NAME + '-header').is(':visible')) {
- this.headerHeight = parseInt(this.$element.find('.' + PLUGIN_NAME + '-header').innerHeight());
- this.$element.css('overflow', 'hidden');
- } else {
- this.headerHeight = 0;
- this.$element.css('overflow', '');
- }
-
- if (this.$element.find('.' + PLUGIN_NAME + '-loader').length) {
- this.$element.find('.' + PLUGIN_NAME + '-loader').css('top', this.headerHeight);
- }
-
- if (modalHeight !== this.modalHeight) {
- this.modalHeight = modalHeight;
-
- if (this.options.onResize && typeof(this.options.onResize) === "function") {
- this.options.onResize(this);
- }
- }
-
- if (this.state == STATES.OPENED || this.state == STATES.OPENING) {
-
- if (this.options.iframe === true) {
-
- // If the height of the window is smaller than the modal with iframe
- if (windowHeight < (this.options.iframeHeight + this.headerHeight + borderSize) || this.isFullscreen === true) {
- this.$element.find('.' + PLUGIN_NAME + '-iframe').css('height', windowHeight - (this.headerHeight + borderSize));
- } else {
- this.$element.find('.' + PLUGIN_NAME + '-iframe').css('height', this.options.iframeHeight);
- }
- }
-
- if (modalHeight == windowHeight) {
- this.$element.addClass('isAttached');
- } else {
- this.$element.removeClass('isAttached');
- }
-
- if (this.isFullscreen === false && this.$element.width() >= $window.width()) {
- this.$element.find('.' + PLUGIN_NAME + '-button-fullscreen').hide();
- } else {
- this.$element.find('.' + PLUGIN_NAME + '-button-fullscreen').show();
- }
- this.recalcButtons();
-
- if (this.isFullscreen === false) {
- windowHeight = windowHeight - (clearValue(this.options.top) || 0) - (clearValue(this.options.bottom) || 0);
- }
- // If the modal is larger than the height of the window..
- if (outerHeight > windowHeight) {
- if (this.options.top > 0 && this.options.bottom === null && contentHeight < $window.height()) {
- this.$element.addClass('isAttachedBottom');
- }
- if (this.options.bottom > 0 && this.options.top === null && contentHeight < $window.height()) {
- this.$element.addClass('isAttachedTop');
- }
- $('html').addClass(PLUGIN_NAME + '-isAttached');
- this.$element.css('height', windowHeight);
-
- } else {
- this.$element.css('height', contentHeight + (this.headerHeight + borderSize));
- this.$element.removeClass('isAttachedTop isAttachedBottom');
- $('html').removeClass(PLUGIN_NAME + '-isAttached');
- }
-
- (function applyScroll() {
- if (contentHeight > wrapperHeight && outerHeight > windowHeight) {
- that.$element.addClass('hasScroll');
- that.$wrap.css('height', modalHeight - (that.headerHeight + borderSize));
- } else {
- that.$element.removeClass('hasScroll');
- that.$wrap.css('height', 'auto');
- }
- })();
-
- (function applyShadow() {
- if (wrapperHeight + scrollTop < (contentHeight - 30)) {
- that.$element.addClass('hasShadow');
- } else {
- that.$element.removeClass('hasShadow');
- }
- })();
-
- }
- },
-
- recalcButtons: function() {
- var widthButtons = this.$header.find('.' + PLUGIN_NAME + '-header-buttons').innerWidth() + 10;
- if (this.options.rtl === true) {
- this.$header.css('padding-left', widthButtons);
- } else {
- this.$header.css('padding-right', widthButtons);
- }
- }
-
- };
-
- function escapeHash(hash) {
- return '#' + encodeURIComponent(hash.substr(1));
- }
-
- $window.off('load.' + PLUGIN_NAME).on('load.' + PLUGIN_NAME, function(e) {
-
- var modalHash = escapeHash(document.location.hash);
-
- if (window.$iziModal.autoOpen === 0 && !$('.' + PLUGIN_NAME).is(":visible")) {
-
- try {
- var data = $(modalHash).data();
- if (typeof data !== 'undefined') {
- if (data.iziModal.options.autoOpen !== false) {
- $(modalHash).iziModal("open");
- }
- }
- } catch (exc) { /* console.warn(exc); */ }
- }
-
- });
-
- $window.off('hashchange.' + PLUGIN_NAME).on('hashchange.' + PLUGIN_NAME, function(e) {
-
- var modalHash = escapeHash(document.location.hash);
- var data = $(modalHash).data();
-
- if (modalHash !== "") {
- try {
- if (typeof data !== 'undefined' && $(modalHash).iziModal('getState') !== 'opening') {
-
- setTimeout(function() {
- $(modalHash).iziModal("open");
- }, 200);
- }
- } catch (exc) { /* console.warn(exc); */ }
-
- } else {
-
- if (window.$iziModal.history) {
- $.each($('.' + PLUGIN_NAME), function(index, modal) {
- if ($(modal).data().iziModal !== undefined) {
- var state = $(modal).iziModal('getState');
- if (state == 'opened' || state == 'opening') {
- $(modal).iziModal('close');
- }
- }
- });
- }
- }
-
-
- });
-
- $document.off('click', '[data-' + PLUGIN_NAME + '-open]').on('click', '[data-' + PLUGIN_NAME + '-open]', function(e) {
- e.preventDefault();
-
- var modal = $('.' + PLUGIN_NAME + ':visible');
- var openModal = $(e.currentTarget).attr('data-' + PLUGIN_NAME + '-open');
- var transitionIn = $(e.currentTarget).attr('data-' + PLUGIN_NAME + '-transitionIn');
- var transitionOut = $(e.currentTarget).attr('data-' + PLUGIN_NAME + '-transitionOut');
-
- if (transitionOut !== undefined) {
- modal.iziModal('close', {
- transition: transitionOut
- });
- } else {
- modal.iziModal('close');
- }
-
- setTimeout(function() {
- if (transitionIn !== undefined) {
- $(openModal).iziModal('open', {
- transition: transitionIn
- });
- } else {
- $(openModal).iziModal('open');
- }
- }, 200);
- });
-
- $document.off('keyup.' + PLUGIN_NAME).on('keyup.' + PLUGIN_NAME, function(event) {
-
- if ($('.' + PLUGIN_NAME + ':visible').length) {
- var modal = $('.' + PLUGIN_NAME + ':visible')[0].id,
- group = $("#" + modal).iziModal('getGroup'),
- e = event || window.event,
- target = e.target || e.srcElement,
- modals = {};
-
- if (modal !== undefined && group.name !== undefined && !e.ctrlKey && !e.metaKey && !e.altKey && target.tagName.toUpperCase() !== 'INPUT' && target.tagName.toUpperCase() != 'TEXTAREA') { //&& $(e.target).is('body')
-
- if (e.keyCode === 37) { // left
-
- $("#" + modal).iziModal('prev', e);
- } else if (e.keyCode === 39) { // right
-
- $("#" + modal).iziModal('next', e);
-
- }
- }
- }
- });
-
- $.fn[PLUGIN_NAME] = function(option, args) {
-
-
- if (!$(this).length && typeof option == "object") {
-
- var newEL = {
- $el: document.createElement("div"),
- id: this.selector.split('#'),
- class: this.selector.split('.')
- };
-
- if (newEL.id.length > 1) {
- try {
- newEL.$el = document.createElement(id[0]);
- } catch (exc) {}
-
- newEL.$el.id = this.selector.split('#')[1].trim();
-
- } else if (newEL.class.length > 1) {
- try {
- newEL.$el = document.createElement(newEL.class[0]);
- } catch (exc) {}
-
- for (var x = 1; x < newEL.class.length; x++) {
- newEL.$el.classList.add(newEL.class[x].trim());
- }
- }
- document.body.appendChild(newEL.$el);
-
- this.push($(this.selector));
- }
- var objs = this;
-
- for (var i = 0; i < objs.length; i++) {
-
- var $this = $(objs[i]);
- var data = $this.data(PLUGIN_NAME);
- var options = $.extend({}, $.fn[PLUGIN_NAME].defaults, $this.data(), typeof option == 'object' && option);
-
- if (!data && (!option || typeof option == 'object')) {
-
- $this.data(PLUGIN_NAME, (data = new iziModal($this, options)));
- } else if (typeof option == 'string' && typeof data != 'undefined') {
-
- return data[option].apply(data, [].concat(args));
- }
- if (options.autoOpen) { // Automatically open the modal if autoOpen setted true or ms
-
- if (!isNaN(parseInt(options.autoOpen))) {
-
- setTimeout(function() {
- data.open();
- }, options.autoOpen);
-
- } else if (options.autoOpen === true) {
-
- data.open();
- }
- window.$iziModal.autoOpen++;
- }
- }
-
- return this;
- };
-
- $.fn[PLUGIN_NAME].defaults = {
- title: '',
- subtitle: '',
- headerColor: '#88A0B9',
- background: null,
- theme: '', // light
- icon: null,
- iconText: null,
- iconColor: '',
- rtl: false,
- width: 600,
- top: null,
- bottom: null,
- borderBottom: true,
- padding: 0,
- radius: 3,
- zindex: 999,
- iframe: false,
- iframeHeight: 400,
- iframeURL: null,
- focusInput: true,
- group: '',
- loop: false,
- navigateCaption: true,
- navigateArrows: true, // Boolean, 'closeToModal', 'closeScreenEdge'
- history: false,
- restoreDefaultContent: false,
- autoOpen: 0, // Boolean, Number
- bodyOverflow: false,
- fullscreen: false,
- openFullscreen: false,
- closeOnEscape: true,
- closeButton: true,
- appendTo: 'body', // or false
- appendToOverlay: 'body', // or false
- overlay: true,
- overlayClose: true,
- overlayColor: 'rgba(0, 0, 0, 0.4)',
- timeout: false,
- timeoutProgressbar: false,
- pauseOnHover: false,
- timeoutProgressbarColor: 'rgba(255,255,255,0.5)',
- transitionIn: 'comingIn', // comingIn, bounceInDown, bounceInUp, fadeInDown, fadeInUp, fadeInLeft, fadeInRight, flipInX
- transitionOut: 'comingOut', // comingOut, bounceOutDown, bounceOutUp, fadeOutDown, fadeOutUp, , fadeOutLeft, fadeOutRight, flipOutX
- transitionInOverlay: 'fadeIn',
- transitionOutOverlay: 'fadeOut',
- onFullscreen: function() {},
- onResize: function() {},
- onOpening: function() {},
- onOpened: function() {},
- onClosing: function() {},
- onClosed: function() {},
- afterRender: function() {}
- };
-
- $.fn[PLUGIN_NAME].Constructor = iziModal;
-
- return $.fn.iziModal;
-
-}));;
-MONSTER('Pagarme.Application', function(Model, $, utils) {
-
- var createNames = [
- // Name for instance method create() if not component
- ];
-
- Model.init = function(container) {
- Model.setArrayIncludesPolyfill();
- Pagarme.BuildComponents.create(container);
- Pagarme.BuildCreate.init(container, createNames);
- };
-
- Model.setArrayIncludesPolyfill = function() {
- if (!Array.prototype.includes) {
- Object.defineProperty(Array.prototype, 'includes', {
- value: function(searchElement, fromIndex) {
-
- if (this == null) {
- throw new TypeError('"this" is null or not defined');
- }
-
- var o = Object(this);
- var len = o.length >>> 0;
-
- if (len === 0) {
- return false;
- }
-
- var n = fromIndex | 0;
- var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
-
- while (k < len) {
- if (o[k] === searchElement) {
- return true;
- }
- k++;
- }
-
- return false;
- }
- });
- }
- };
-
-});;
-MONSTER('Pagarme.Components.Capture', function(Model, $, Utils) {
-
- Model.fn.start = function() {
- this.init();
- this.lock = false;
- };
-
- Model.fn.init = function() {
- this.addEventListener();
- this.startModal();
- };
-
- Model.fn.addEventListener = function() {
- this.$el.find('[data-ref]:enabled').on('click', function(e) {
- e.preventDefault();
- var target = e.currentTarget;
- var selector = '[data-charge-action=' + target.dataset.ref + '-' + target.dataset.type + ']';
- $(selector).iziModal('open');
- });
- };
-
- Model.fn.onClickCancel = function(e) {
- e.preventDefault();
- this.handleEvents(e, 'cancel');
- };
-
- Model.fn.onClickCapture = function(e) {
- e.preventDefault();
- this.handleEvents(e, 'capture');
- };
-
- Model.fn.handleEvents = function(DOMEvent, type) {
- var target = $(DOMEvent.currentTarget);
- var wrapper = target.closest('[data-charge]');
- var chargeId = wrapper.data('charge');
- var amount = wrapper.find('[data-element=amount]').val();
-
- this.request(type, chargeId, amount);
- };
-
- Model.fn.request = function(mode, chargeId, amount) {
- if (this.lock) {
- return;
- }
- this.lock = true;
- this.requestInProgress();
- var ajax = $.ajax({
- 'url': MONSTER.utils.getAjaxUrl(),
- 'method': 'POST',
- 'data': {
- 'action': 'STW3dqRT6E',
- 'mode': mode,
- 'charge_id': chargeId,
- 'amount': amount
- }
- });
-
- ajax.done(this._onDone.bind(this));
- ajax.fail(this._onFail.bind(this));
- };
-
- Model.fn.startModal = function() {
- var self = this;
- $('.modal').iziModal({
- padding: 20,
- onOpening: function(modal) {
- var amount = modal.$element.find('[data-element=amount]');
- const options = {
- reverse: true,
- onKeyPress: function(amountValue, event, field) {
- if (!event.originalEvent) {
- return;
- }
-
- amountValue = amountValue.replace(/^0+/, '')
- if (amountValue[0] === ',') {
- amountValue = '0' + amountValue;
- }
-
- if (amountValue && amountValue.length <= 2) {
- amountValue = ('000' + amountValue).slice(-3);
- field.val(amountValue);
- field.trigger('input');
- return;
- }
-
- field.val(amountValue);
- }
- };
- amount.mask("#.##0,00", options);
- modal.$element.on('click', '[data-action=capture]', self.onClickCapture.bind(self));
- modal.$element.on('click', '[data-action=cancel]', self.onClickCancel.bind(self));
- }
- });
- };
-
- Model.fn.requestInProgress = function() {
- swal({
- title: ' ',
- text: 'Processando...',
- allowOutsideClick: false
- });
- swal.showLoading();
- };
-
- Model.fn._onDone = function(response) {
- this.lock = false;
- $('.modal').iziModal('close');
- swal.close();
- swal({
- type: 'success',
- title: ' ',
- html: response.data.message,
- showConfirmButton: false,
- timer: 2000
- }).then(
- function() {},
- function(dismiss) {
- window.location.reload();
- }
- );
- };
-
- Model.fn._onFail = function(xhr) {
- this.lock = false;
- swal.close();
- var data = JSON.parse(xhr.responseText);
- swal({
- type: 'error',
- title: ' ',
- html: data.message,
- showConfirmButton: false,
- timer: 2000
- });
- };
-
-});;
-MONSTER('Pagarme.Components.Settings', function(Model, $, Utils) {
-
- var errorClass = Utils.addPrefix('field-error');
-
- Model.fn.start = function() {
- this.init();
- };
-
- Model.fn.init = function() {
- this.installments = $('[data-field="installments"]');
- this.billet = $('[data-field="billet"]');
- this.installmentsMax = $('[data-field="installments-maximum"]');
- this.installmentsInterest = $('[data-field="installments-interest"]');
- this.installmentsMinAmount = $('[data-field="installments-min-amount"]');
- this.installmentsByFlag = $('[data-field="installments-by-flag"]');
- this.installmentsWithoutInterest = $('[data-field="installments-without-interest"]');
- this.installmentsInterestIncrease = $('[data-field="installments-interest-increase"]');
- this.antifraudSection = $('h3[id*="woo-pagarme-payments_section_antifraud"]');
- this.antifraudEnabled = $('[data-field="antifraud-enabled"]');
- this.voucherEnabled = $('#woocommerce_woo-pagarme-payments_enable_voucher');
- this.antifraudMinValue = $('[data-field="antifraud-min-value"]');
- this.ccBrands = $('[data-field="flags-select"]');
- this.ccAllowSave = $('[data-field="cc-allow-save"]');
- this.billetBank = $('[data-field="billet-bank"]');
- this.softDescriptor = $('[data-field="soft-descriptor"]');
- this.voucherSection = $('h3[id*="woo-pagarme-payments_section_voucher"]');
- this.voucherSoftDescriptor = $('[data-field="voucher-soft-descriptor"]');
- this.VoucherccBrands = $('[data-field="voucher-flags-select"]');
- this.cardWallet = $('[data-field="card-wallet"]');
- this.voucherCardWallet = $('[data-field="voucher-card-wallet"]');
- this.disintegrate = $('#btn-uninstall-hub');
-
- this.isGatewayIntegrationType = $('input[id*="woo-pagarme-payments_is_gateway_integration_type"]').prop("checked");
- this.installmentsMaxByFlag = this.installmentsByFlag.find('input[name*="cc_installments_by_flag[max_installment]"]');
- this.installmentsWithoutInterestByFlag = this.installmentsByFlag.find('input[name*="cc_installments_by_flag[no_interest]"]');
-
- this.handleInstallmentFieldsVisibility(this.elements.installmentsTypeSelect.val());
- this.handleGatewayIntegrationFieldsVisibility(this.isGatewayIntegrationType);
- this.handleBilletBankRequirement();
-
- this.setMaxInstallmentsWithoutInterestBasedOnMaxInstallments();
- this.setMaxInstallmentsWithoutInterestBasedOnMaxInstallmentsByFlag();
-
- this.setInstallmentsByFlags(null, true);
-
- this.addEventListener();
- };
-
- Model.fn.addEventListener = function() {
- this.on('keyup', 'soft-descriptor');
- this.on('change', 'environment');
- this.on('change', 'installments-type');
- this.on('change', 'is-gateway-integration-type');
- this.on('change', 'enable-billet');
- this.on('change', 'enable-multimethods-billet-card');
-
- this.elements.flagsSelect.on('select2:unselecting', this._onChangeFlags.bind(this));
- this.elements.flagsSelect.on('select2:selecting', this._onChangeFlags.bind(this));
-
- $('#mainform').on('submit', this._onSubmitForm.bind(this));
- };
-
- Model.fn._onKeyupSoftDescriptor = function(event) {
- var isGatewayIntegrationType = $('input[id*="woo-pagarme-payments_is_gateway_integration_type"]').prop("checked");
-
- if (!isGatewayIntegrationType && event.currentTarget.value.length > 13) {
- $(event.currentTarget).addClass(errorClass);
- return;
- }
-
- if (isGatewayIntegrationType && event.currentTarget.value.length > 22) {
- $(event.currentTarget).addClass(errorClass);
- return;
- }
-
- $(event.currentTarget).removeClass(errorClass);
- };
-
- Model.fn._onSubmitForm = function(event) {
- this.toTop = false;
- this.items = [];
-
- this.elements.validate.each(this._eachValidate.bind(this));
-
- return !~this.items.indexOf(true);
- };
-
- Model.fn._onChangeInstallmentsType = function(event) {
- this.handleInstallmentFieldsVisibility(event.currentTarget.value);
- };
-
- Model.fn._onChangeIsGatewayIntegrationType = function(event) {
- this.handleGatewayIntegrationFieldsVisibility(event.currentTarget.checked);
- };
-
- Model.fn._onChangeEnableBillet = function() {
- this.handleBilletBankRequirement();
- };
-
- Model.fn._onChangeEnableMultimethodsBilletCard = function() {
- this.handleBilletBankRequirement();
- };
-
- Model.fn._onChangeFlags = function(event) {
- this.setInstallmentsByFlags(event, false);
- };
-
- Model.fn._eachValidate = function(index, field) {
- var rect;
- var element = $(field),
- empty = element.isEmptyValue(),
- invalidMaxLength = element.val().length > element.prop("maxLength"),
- isFieldInvalid = empty || invalidMaxLength,
- func = isFieldInvalid ? 'addClass' : 'removeClass';
-
- if (!element.is(':visible')) {
- return;
- }
-
- element[func](errorClass);
-
- this.items[index] = isFieldInvalid;
-
- if (!isFieldInvalid) {
- return;
- }
-
- field.placeholder = field.dataset.errorMsg;
-
- if (!this.toTop) {
- this.toTop = true;
- rect = field.getBoundingClientRect();
- window.scrollTo(0, (rect.top + window.scrollY) - 32);
- }
- };
-
- Model.fn.handleInstallmentFieldsVisibility = function(value) {
- var installmentsMaxContainer = this.installmentsMax.closest('tr'),
- installmentsInterestContainer = this.installmentsInterest.closest('tr'),
- installmentsMinAmountContainer = this.installmentsMinAmount.closest("tr"),
- installmentsByFlagContainer = this.installmentsByFlag.closest('tr'),
- installmentsWithoutInterestContainer = this.installmentsWithoutInterest.closest('tr'),
- installmentsInterestIncreaseContainer = this.installmentsInterestIncrease.closest('tr');
-
- if (value == 1) {
- installmentsMaxContainer.show();
- installmentsMinAmountContainer.show();
- installmentsInterestContainer.show();
- installmentsInterestIncreaseContainer.show();
- installmentsWithoutInterestContainer.show();
- installmentsByFlagContainer.hide();
- } else {
- if (this.elements.flagsSelect.val()) {
- installmentsByFlagContainer.show();
- this.setInstallmentsByFlags(null, true);
- }
- installmentsMaxContainer.hide();
- installmentsMinAmountContainer.hide();
- installmentsInterestContainer.hide();
- installmentsInterestIncreaseContainer.hide();
- installmentsWithoutInterestContainer.hide();
- }
- };
-
- Model.fn.getOnlyGatewayBrands = function() {
- return 'option[value="credz"], ' +
- 'option[value="sodexoalimentacao"], ' +
- 'option[value="sodexocultura"], ' +
- 'option[value="sodexogift"], ' +
- 'option[value="sodexopremium"], ' +
- 'option[value="sodexorefeicao"], ' +
- 'option[value="sodexocombustivel"], ' +
- 'option[value="vr"], ' +
- 'option[value="alelo"], ' +
- 'option[value="banese"], ' +
- 'option[value="cabal"]';
- };
-
- Model.fn.getOnlyGatewayInstallments = function() {
- var installments = '';
- var maxInstallmentsLength = this.installmentsMax.children('option').length;
-
- for (let i = 13; i <= maxInstallmentsLength + 1; i++) {
- installments += `option[value="${i}"], `;
- }
-
- return installments.slice(0, -2);
- };
-
- Model.fn.setOriginalSelect = function(select) {
- if (select.data("originalHTML") === undefined) {
- select.data("originalHTML", select.html());
- }
- };
-
- Model.fn.removeOptions = function(select, options) {
- this.setOriginalSelect(select);
- options.remove();
- };
-
- Model.fn.restoreOptions = function(select) {
- var originalHTML = select.data("originalHTML");
- if (originalHTML !== undefined) {
- select.html(originalHTML);
- }
- };
-
- Model.fn.setMaxInstallmentsWithoutInterestBasedOnMaxInstallments = function() {
- var installmentsMaxElement = this.installmentsMax;
-
- installmentsMaxElement.on('change', function() {
- setMaxInstallmentsWithoutInterest($(this).val());
- });
-
- function setMaxInstallmentsWithoutInterest(installmentsMax) {
- var installmentsWithoutInterest = $('[data-field="installments-without-interest"]');
- installmentsWithoutInterest.children('option').hide();
- installmentsWithoutInterest.children('option').filter(function() {
- return parseInt($(this).val()) <= installmentsMax;
- }).show();
- installmentsWithoutInterest.val(installmentsMax).change();
- }
- };
-
- Model.fn.setMaxInstallmentsWithoutInterestBasedOnMaxInstallmentsByFlag = function() {
- var installmentsMaxElement = this.installmentsMaxByFlag;
-
- installmentsMaxElement.on('change', function() {
- setMaxInstallmentsWithoutInterest(
- $(this).val(),
- $(this).closest('tr').attr("data-flag")
- );
- });
-
- function setMaxInstallmentsWithoutInterest(installmentsMax, brandName) {
- var setMaxInstallmentsWithoutInterestOnFlag = $('[data-field="installments-by-flag"]')
- .find(`input[name*="cc_installments_by_flag[no_interest][${brandName}]"]`);
- setMaxInstallmentsWithoutInterestOnFlag.prop("max", installmentsMax);
- }
- };
-
- Model.fn.setupPSPOptions = function(
- antifraudEnabled,
- antifraudMinValue,
- ccAllowSave,
- billetBank,
- voucherSoftDescriptor,
- VoucherccBrands,
- cardWallet,
- voucherEnabled,
- voucherCardWallet,
- disintegrate
- ) {
- antifraudEnabled.hide();
- antifraudMinValue.hide();
- ccAllowSave.hide();
- billetBank.hide();
- this.antifraudSection.hide();
- this.voucherSection.hide();
- voucherSoftDescriptor.hide();
- VoucherccBrands.hide();
- cardWallet.hide();
- voucherEnabled.hide();
- voucherCardWallet.hide();
- disintegrate.hide();
-
- this.ccAllowSave.prop("checked", false);
- var $optionsToRemove = this.ccBrands.find(this.getOnlyGatewayBrands());
- this.removeOptions(this.ccBrands, $optionsToRemove);
-
- $("#woo-pagarme-payments_max_length_span").html("13");
- this.softDescriptor.prop('maxlength', 13);
-
- var $optionsToRemoveInstallments = this.installmentsMax.find(
- this.getOnlyGatewayInstallments()
- );
- var $optionsToRemoveInstallmentsWithoutInterest = this.installmentsWithoutInterest.find(
- this.getOnlyGatewayInstallments()
- );
- this.removeOptions(this.installmentsMax, $optionsToRemoveInstallments);
- this.removeOptions(this.installmentsWithoutInterest, $optionsToRemoveInstallmentsWithoutInterest);
-
- this.installmentsMaxByFlag.prop("max", 12);
- };
-
- Model.fn.setupGatewayOptions = function(
- antifraudEnabled,
- antifraudMinValue,
- ccAllowSave,
- billetBank,
- voucherSoftDescriptor,
- VoucherccBrands,
- cardWallet,
- voucherEnabled,
- voucherCardWallet,
- disintegrate
- ) {
- antifraudEnabled.show();
- antifraudMinValue.show();
- ccAllowSave.show();
- billetBank.show();
- this.antifraudSection.show();
- this.voucherSection.show();
- voucherSoftDescriptor.show();
- VoucherccBrands.show();
- cardWallet.show();
- voucherCardWallet.show();
- voucherEnabled.show();
- disintegrate.show();
-
- this.restoreOptions(this.ccBrands);
-
- $("#woo-pagarme-payments_max_length_span").html("22");
- this.softDescriptor.prop('maxlength', 22);
-
- this.restoreOptions(this.installmentsMax);
- this.restoreOptions(this.installmentsWithoutInterest);
-
- this.installmentsMaxByFlag.prop("max", 24);
- };
-
- Model.fn.handleGatewayIntegrationFieldsVisibility = function(isGateway) {
-
- var antifraudEnabled = this.antifraudEnabled.closest('tr'),
- antifraudMinValue = this.antifraudMinValue.closest('tr'),
- ccAllowSave = this.ccAllowSave.closest('tr'),
- billetBank = this.billetBank.closest('tr'),
- voucherSoftDescriptor = this.voucherSoftDescriptor.closest('tr'),
- VoucherccBrands = this.VoucherccBrands.closest('tr'),
- voucherEnabled = this.voucherEnabled.closest('tr'),
- voucherCardWallet = this.voucherCardWallet.closest('tr'),
- disintegrate = this.disintegrate.closest('p'),
- cardWallet = this.cardWallet.closest('tr');
-
- if (isGateway) {
- return this.setupGatewayOptions(
- antifraudEnabled,
- antifraudMinValue,
- ccAllowSave,
- billetBank,
- voucherSoftDescriptor,
- VoucherccBrands,
- cardWallet,
- voucherEnabled,
- voucherCardWallet,
- disintegrate
- );
-
- }
-
- return this.setupPSPOptions(
- antifraudEnabled,
- antifraudMinValue,
- ccAllowSave,
- billetBank,
- voucherSoftDescriptor,
- VoucherccBrands,
- cardWallet,
- voucherEnabled,
- voucherCardWallet,
- disintegrate
- );
- };
-
- Model.fn.handleBilletBankRequirement = function() {
- const billetBankElementId = '#woocommerce_woo-pagarme-payments_billet_bank';
- let bankRequirementFields = $('[data-requires-field="billet-bank"]');
- let billetBankIsRequired = false;
-
- bankRequirementFields.each(function() {
- if ($(this).prop("checked")) {
- billetBankIsRequired = true;
- return false;
- }
- });
-
- if (billetBankIsRequired) {
- $(billetBankElementId).attr('required', true);
- return;
- }
-
- $(billetBankElementId).attr('required', false);
- };
-
- Model.fn.setInstallmentsByFlags = function(event, firstLoad) {
- var flags = this.elements.flagsSelect.val() || [];
- var flagsWrapper = this.installmentsByFlag.closest('tr');
- var allFlags = $('[data-flag]');
-
- if (parseInt(this.elements.installmentsTypeSelect.val()) !== 2) {
- allFlags.hide();
- flagsWrapper.hide();
- return;
- }
-
- if (!firstLoad) {
- var selectedItem = event.params.args.data.id;
- var filtered = flags;
-
- flagsWrapper.show();
-
- if (event.params.name == 'unselect') {
- filtered = flags.filter(function(i) {
- return i != selectedItem;
- });
-
- if (filtered.length == 0) {
- this.installmentsByFlag.closest('tr').hide();
- }
- } else {
- filtered.push(selectedItem);
- }
-
- allFlags.hide();
-
- filtered.map(function(item) {
- var element = $('[data-flag=' + item + ']');
- element.show();
- });
- } else {
- if (flags.length === 0) {
- allFlags.hide();
- flagsWrapper.hide();
- return;
- }
-
- allFlags.each(function(index, item) {
- item = $(item);
- if (!flags.includes(item.data('flag'))) {
- item.hide();
- } else {
- item.show();
- }
- });
- }
- };
-
-});
-
-
-;
-jQuery(function($) {
- var context = $('body');
-
- Pagarme.vars = {
- body: context
- };
-
- Pagarme.Application.init.apply(null, [context]);
-});
diff --git a/assets/javascripts/admin/libs/index.php b/assets/javascripts/admin/libs/index.php
deleted file mode 100644
index 7e914158..00000000
--- a/assets/javascripts/admin/libs/index.php
+++ /dev/null
@@ -1,2 +0,0 @@
-"+t+"",null,!1));return t.find("*").each(function(){var i;i=this,d.each(i.attributes,function(){var t=this.name,e=this.value;0!=t.indexOf("on")&&0!=e.indexOf("javascript:")||d(i).removeAttr(t)})}),t.html()}var v=function(){var t,e=document.createElement("fakeelement"),i={animation:"animationend",OAnimation:"oAnimationEnd",MozAnimation:"animationend",WebkitAnimation:"webkitAnimationEnd"};for(t in i)if(void 0!==e.style[t])return i[t]}(),$=!!/Mobi/.test(navigator.userAgent);window.$iziModal={},window.$iziModal.autoOpen=0,window.$iziModal.history=!1;function b(t,e){this.init(t,e)}return b.prototype={constructor:b,init:function(t,n){var o=this;this.$element=d(t),void 0!==this.$element[0].id&&""!==this.$element[0].id?this.id=this.$element[0].id:(this.id=c+Math.floor(1e7*Math.random()+1),this.$element.attr("id",this.id)),this.classes=void 0!==this.$element.attr("class")?this.$element.attr("class"):"",this.content=this.$element.html(),this.state=u,this.options=n,this.width=0,this.timer=null,this.timerTimeout=null,this.progressBar=null,this.isPaused=!1,this.isFullscreen=!1,this.headerHeight=0,this.modalHeight=0,this.$overlay=d('').css("background-color",n.overlayColor),this.$navigate=d(''),this.group={name:this.$element.attr("data-"+c+"-group"),index:null,ids:[]},this.$element.attr("aria-hidden","true"),this.$element.attr("aria-labelledby",this.id),this.$element.attr("role","dialog"),this.$element.hasClass("iziModal")||this.$element.addClass("iziModal"),void 0===this.group.name&&""!==n.group&&(this.group.name=n.group,this.$element.attr("data-"+c+"-group",n.group)),!0===this.options.loop&&this.$element.attr("data-"+c+"-loop",!0),d.each(this.options,function(t,e){var i=o.$element.attr("data-"+c+"-"+t);try{void 0!==i&&(n[t]=""===i||"true"==i||"false"!=i&&("function"==typeof e?new Function(i):i))}catch(t){}}),!1!==n.appendTo&&this.$element.appendTo(n.appendTo),!0===n.iframe?(this.$element.html('"),null!==n.iframeHeight&&this.$element.find("."+c+"-iframe").css("height",n.iframeHeight)):this.$element.html('"),null!==this.options.background&&this.$element.css("background",this.options.background),this.$wrap=this.$element.find("."+c+"-wrap"),null===n.zindex||isNaN(parseInt(n.zindex))||(this.$element.css("z-index",n.zindex),this.$navigate.css("z-index",n.zindex-1),this.$overlay.css("z-index",n.zindex-2)),""!==n.radius&&this.$element.css("border-radius",n.radius),""!==n.padding&&this.$element.find("."+c+"-content").css("padding",n.padding),""!==n.theme&&("light"===n.theme?this.$element.addClass(c+"-light"):this.$element.addClass(n.theme)),!0===n.rtl&&this.$element.addClass(c+"-rtl"),!0===n.openFullscreen&&(this.isFullscreen=!0,this.$element.addClass("isFullscreen")),this.createHeader(),this.recalcWidth(),this.recalcVerticalPos(),!o.options.afterRender||"function"!=typeof o.options.afterRender&&"object"!=typeof o.options.afterRender||o.options.afterRender(o)},createHeader:function(){this.$header=d(''),!0===this.options.closeButton&&this.$header.find("."+c+"-header-buttons").append('"),!0===this.options.fullscreen&&this.$header.find("."+c+"-header-buttons").append('"),!0===this.options.timeoutProgressbar&&this.$header.prepend(d('').append(d("
").css("background-color",this.options.timeoutProgressbarColor))),""===this.options.subtitle?this.$header.addClass(c+"-noSubtitle"):this.$header.find("."+c+"-header-subtitle").html(i(this.options.subtitle)),""!==this.options.title&&(this.$header.find("."+c+"-header-title").html(i(this.options.title)),null!==this.options.headerColor&&(!0===this.options.borderBottom&&this.$element.css("border-bottom","3px solid "+this.options.headerColor),this.$header.css("background",this.options.headerColor)),null===this.options.icon&&null===this.options.iconText||(this.$header.prepend(''),null!==this.options.icon&&this.$header.find("."+c+"-header-icon").addClass(this.options.icon).css("color",this.options.iconColor),null!==this.options.iconText&&this.$header.find("."+c+"-header-icon").html(i(this.options.iconText))),this.$element.css("overflow","hidden").prepend(this.$header))},setGroup:function(t){var i,n=this,e=this.group.name||t;this.group.ids=[],void 0!==t&&t!==this.group.name&&(e=t,this.group.name=e,this.$element.attr("data-"+c+"-group",e)),void 0!==e&&""!==e&&(i=0,d.each(d("."+c+"[data-"+c+"-group="+e+"]"),function(t,e){n.group.ids.push(d(this)[0].id),n.id==d(this)[0].id&&(n.group.index=i),i++}))},toggle:function(){this.state==m&&this.close(),this.state==u&&this.open()},startProgress:function(t){var e=this;this.isPaused=!1,clearTimeout(this.timerTimeout),!0===this.options.timeoutProgressbar?(this.progressBar={hideEta:null,maxHideTime:null,currentTime:(new Date).getTime(),el:this.$element.find("."+c+"-progressbar > div"),updateProgress:function(){var t;e.isPaused||(e.progressBar.currentTime=e.progressBar.currentTime+10,t=(e.progressBar.hideEta-e.progressBar.currentTime)/e.progressBar.maxHideTime*100,e.progressBar.el.width(t+"%"),t<0&&e.close())}},0 div").width("100%")},open:function(i){var t,e,n,o,s=this;try{void 0!==i&&!1===i.preventClose&&d.each(d("."+c),function(t,e){var i;void 0!==d(e).data().iziModal&&("opened"!=(i=d(e).iziModal("getState"))&&"opening"!=i||d(e).iziModal("close"))})}catch(t){}function a(){s.state=m,s.$element.trigger(m),!s.options.onOpened||"function"!=typeof s.options.onOpened&&"object"!=typeof s.options.onOpened||s.options.onOpened(s)}if(s.options.history?(t=document.title,document.title=t+" - "+s.options.title,e="#"+s.id,n=e.replace(/^.*#/,""),(o=d(e)).attr("id",n+"-tmp"),window.location.hash=e,o.attr("id",n),document.title=t,window.$iziModal.history=!0):window.$iziModal.history=!1,this.state==u){if(s.$element.off("click","[data-"+c+"-close]").on("click","[data-"+c+"-close]",function(t){t.preventDefault();t=d(t.currentTarget).attr("data-"+c+"-transitionOut");void 0!==t?s.close({transition:t}):s.close()}),s.$element.off("click","[data-"+c+"-fullscreen]").on("click","[data-"+c+"-fullscreen]",function(t){t.preventDefault(),!0===s.isFullscreen?(s.isFullscreen=!1,s.$element.removeClass("isFullscreen")):(s.isFullscreen=!0,s.$element.addClass("isFullscreen")),s.options.onFullscreen&&"function"==typeof s.options.onFullscreen&&s.options.onFullscreen(s),s.$element.trigger("fullscreen",s)}),s.$navigate.off("click","."+c+"-navigate-next").on("click","."+c+"-navigate-next",function(t){s.next(t)}),s.$element.off("click","[data-"+c+"-next]").on("click","[data-"+c+"-next]",function(t){s.next(t)}),s.$navigate.off("click","."+c+"-navigate-prev").on("click","."+c+"-navigate-prev",function(t){s.prev(t)}),s.$element.off("click","[data-"+c+"-prev]").on("click","[data-"+c+"-prev]",function(t){s.prev(t)}),this.setGroup(),this.state=p,this.$element.trigger(p),this.$element.attr("aria-hidden","false"),!0===this.options.timeoutProgressbar&&this.$element.find("."+c+"-progressbar > div").width("100%"),!0===this.options.iframe){this.$element.find("."+c+"-content").addClass(c+"-content-loader"),this.$element.find("."+c+"-iframe").on("load",function(){d(this).parent().removeClass(c+"-content-loader")});var r=null;try{r=""!==d(i.currentTarget).attr("href")?d(i.currentTarget).attr("href"):null}catch(t){}if(null!==this.options.iframeURL&&null==r&&(r=this.options.iframeURL),null==r)throw new Error("Failed to find iframe URL");this.$element.find("."+c+"-iframe").attr("src",r)}(this.options.bodyOverflow||$)&&(d("html").addClass(c+"-isOverflow"),$&&d("body").css("overflow","hidden")),this.options.onOpening&&"function"==typeof this.options.onOpening&&this.options.onOpening(this),function(){var t;1
\n').replace(/(^|\n)\s*/g,""),x=function(){return document.body.querySelector("."+t.container)},h=function(){return x()?x().querySelector("."+t.modal):null},y=function(){return h().querySelectorAll("."+t.icon)},k=function(n){return x()?x().querySelector("."+n):null},v=function(){return k(t.title)},C=function(){return k(t.content)},S=function(){return k(t.image)},A=function(){return k(t.progresssteps)},B=function(){return k(t.validationerror)},E=function(){return k(t.confirm)},P=function(){return k(t.cancel)},L=function(){return k(t.buttonswrapper)},T=function(){return k(t.close)},q=function(){var n=Array.from(h().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort(function(n,e){return n=parseInt(n.getAttribute("tabindex")),e=parseInt(e.getAttribute("tabindex")),n>e?1:n
0&&void 0!==arguments[0]?arguments[0]:"",e=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css",e.appendChild(t),t.styleSheet?t.styleSheet.cssText=n:t.appendChild(document.createTextNode(n))}("body.swal2-shown {\n overflow-y: hidden; }\n\nbody.swal2-iosfix {\n position: fixed;\n left: 0;\n right: 0; }\n\n.swal2-container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n position: fixed;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n padding: 10px;\n background-color: transparent;\n z-index: 1060; }\n .swal2-container.swal2-top {\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start; }\n .swal2-container.swal2-top-left {\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n .swal2-container.swal2-top-right {\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end; }\n .swal2-container.swal2-center {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n .swal2-container.swal2-center-left {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n .swal2-container.swal2-center-right {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end; }\n .swal2-container.swal2-bottom {\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end; }\n .swal2-container.swal2-bottom-left {\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n .swal2-container.swal2-bottom-right {\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end; }\n .swal2-container.swal2-grow-fullscreen > .swal2-modal {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n -ms-flex-item-align: stretch;\n align-self: stretch;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center; }\n .swal2-container.swal2-grow-row > .swal2-modal {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n -ms-flex-line-pack: center;\n align-content: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center; }\n .swal2-container.swal2-grow-column {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column; }\n .swal2-container.swal2-grow-column.swal2-top, .swal2-container.swal2-grow-column.swal2-center, .swal2-container.swal2-grow-column.swal2-bottom {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n .swal2-container.swal2-grow-column.swal2-top-left, .swal2-container.swal2-grow-column.swal2-center-left, .swal2-container.swal2-grow-column.swal2-bottom-left {\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start; }\n .swal2-container.swal2-grow-column.swal2-top-right, .swal2-container.swal2-grow-column.swal2-center-right, .swal2-container.swal2-grow-column.swal2-bottom-right {\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end; }\n .swal2-container.swal2-grow-column > .swal2-modal {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n -ms-flex-line-pack: center;\n align-content: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center; }\n .swal2-container:not(.swal2-top):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-left):not(.swal2-bottom-right) > .swal2-modal {\n margin: auto; }\n @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n .swal2-container .swal2-modal {\n margin: 0 !important; } }\n .swal2-container.swal2-fade {\n -webkit-transition: background-color .1s;\n transition: background-color .1s; }\n .swal2-container.swal2-shown {\n background-color: rgba(0, 0, 0, 0.4); }\n\n.swal2-modal {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n background-color: #fff;\n font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n border-radius: 5px;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n text-align: center;\n overflow-x: hidden;\n overflow-y: auto;\n display: none;\n position: relative;\n max-width: 100%; }\n .swal2-modal:focus {\n outline: none; }\n .swal2-modal.swal2-loading {\n overflow-y: hidden; }\n .swal2-modal .swal2-title {\n color: #595959;\n font-size: 30px;\n text-align: center;\n font-weight: 600;\n text-transform: none;\n position: relative;\n margin: 0 0 .4em;\n padding: 0;\n display: block;\n word-wrap: break-word; }\n .swal2-modal .swal2-buttonswrapper {\n margin-top: 15px; }\n .swal2-modal .swal2-buttonswrapper:not(.swal2-loading) .swal2-styled[disabled] {\n opacity: .4;\n cursor: no-drop; }\n .swal2-modal .swal2-buttonswrapper.swal2-loading .swal2-styled.swal2-confirm {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n border: 4px solid transparent;\n border-color: transparent;\n width: 40px;\n height: 40px;\n padding: 0;\n margin: 7.5px;\n vertical-align: top;\n background-color: transparent !important;\n color: transparent;\n cursor: default;\n border-radius: 100%;\n -webkit-animation: rotate-loading 1.5s linear 0s infinite normal;\n animation: rotate-loading 1.5s linear 0s infinite normal;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .swal2-modal .swal2-buttonswrapper.swal2-loading .swal2-styled.swal2-cancel {\n margin-left: 30px;\n margin-right: 30px; }\n .swal2-modal .swal2-buttonswrapper.swal2-loading :not(.swal2-styled).swal2-confirm::after {\n display: inline-block;\n content: '';\n margin-left: 5px;\n vertical-align: -1px;\n height: 15px;\n width: 15px;\n border: 3px solid #999999;\n -webkit-box-shadow: 1px 1px 1px #fff;\n box-shadow: 1px 1px 1px #fff;\n border-right-color: transparent;\n border-radius: 50%;\n -webkit-animation: rotate-loading 1.5s linear 0s infinite normal;\n animation: rotate-loading 1.5s linear 0s infinite normal; }\n .swal2-modal .swal2-styled {\n border: 0;\n border-radius: 3px;\n -webkit-box-shadow: none;\n box-shadow: none;\n color: #fff;\n cursor: pointer;\n font-size: 17px;\n font-weight: 500;\n margin: 15px 5px 0;\n padding: 10px 32px; }\n .swal2-modal .swal2-styled:focus {\n outline: none;\n -webkit-box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(50, 100, 150, 0.4);\n box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(50, 100, 150, 0.4); }\n .swal2-modal .swal2-image {\n margin: 20px auto;\n max-width: 100%; }\n .swal2-modal .swal2-close {\n background: transparent;\n border: 0;\n margin: 0;\n padding: 0;\n width: 38px;\n height: 40px;\n font-size: 36px;\n line-height: 40px;\n font-family: serif;\n position: absolute;\n top: 5px;\n right: 8px;\n cursor: pointer;\n color: #cccccc;\n -webkit-transition: color .1s ease;\n transition: color .1s ease; }\n .swal2-modal .swal2-close:hover {\n color: #d55; }\n .swal2-modal > .swal2-input,\n .swal2-modal > .swal2-file,\n .swal2-modal > .swal2-textarea,\n .swal2-modal > .swal2-select,\n .swal2-modal > .swal2-radio,\n .swal2-modal > .swal2-checkbox {\n display: none; }\n .swal2-modal .swal2-content {\n font-size: 18px;\n text-align: center;\n font-weight: 300;\n position: relative;\n float: none;\n margin: 0;\n padding: 0;\n line-height: normal;\n color: #545454;\n word-wrap: break-word; }\n .swal2-modal .swal2-input,\n .swal2-modal .swal2-file,\n .swal2-modal .swal2-textarea,\n .swal2-modal .swal2-select,\n .swal2-modal .swal2-radio,\n .swal2-modal .swal2-checkbox {\n margin: 20px auto; }\n .swal2-modal .swal2-input,\n .swal2-modal .swal2-file,\n .swal2-modal .swal2-textarea {\n width: 100%;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n font-size: 18px;\n border-radius: 3px;\n border: 1px solid #d9d9d9;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06);\n -webkit-transition: border-color .3s, -webkit-box-shadow .3s;\n transition: border-color .3s, -webkit-box-shadow .3s;\n transition: border-color .3s, box-shadow .3s;\n transition: border-color .3s, box-shadow .3s, -webkit-box-shadow .3s; }\n .swal2-modal .swal2-input.swal2-inputerror,\n .swal2-modal .swal2-file.swal2-inputerror,\n .swal2-modal .swal2-textarea.swal2-inputerror {\n border-color: #f27474 !important;\n -webkit-box-shadow: 0 0 2px #f27474 !important;\n box-shadow: 0 0 2px #f27474 !important; }\n .swal2-modal .swal2-input:focus,\n .swal2-modal .swal2-file:focus,\n .swal2-modal .swal2-textarea:focus {\n outline: none;\n border: 1px solid #b4dbed;\n -webkit-box-shadow: 0 0 3px #c4e6f5;\n box-shadow: 0 0 3px #c4e6f5; }\n .swal2-modal .swal2-input::-webkit-input-placeholder,\n .swal2-modal .swal2-file::-webkit-input-placeholder,\n .swal2-modal .swal2-textarea::-webkit-input-placeholder {\n color: #cccccc; }\n .swal2-modal .swal2-input:-ms-input-placeholder,\n .swal2-modal .swal2-file:-ms-input-placeholder,\n .swal2-modal .swal2-textarea:-ms-input-placeholder {\n color: #cccccc; }\n .swal2-modal .swal2-input::-ms-input-placeholder,\n .swal2-modal .swal2-file::-ms-input-placeholder,\n .swal2-modal .swal2-textarea::-ms-input-placeholder {\n color: #cccccc; }\n .swal2-modal .swal2-input::placeholder,\n .swal2-modal .swal2-file::placeholder,\n .swal2-modal .swal2-textarea::placeholder {\n color: #cccccc; }\n .swal2-modal .swal2-range input {\n float: left;\n width: 80%; }\n .swal2-modal .swal2-range output {\n float: right;\n width: 20%;\n font-size: 20px;\n font-weight: 600;\n text-align: center; }\n .swal2-modal .swal2-range input,\n .swal2-modal .swal2-range output {\n height: 43px;\n line-height: 43px;\n vertical-align: middle;\n margin: 20px auto;\n padding: 0; }\n .swal2-modal .swal2-input {\n height: 43px;\n padding: 0 12px; }\n .swal2-modal .swal2-input[type='number'] {\n max-width: 150px; }\n .swal2-modal .swal2-file {\n font-size: 20px; }\n .swal2-modal .swal2-textarea {\n height: 108px;\n padding: 12px; }\n .swal2-modal .swal2-select {\n color: #545454;\n font-size: inherit;\n padding: 5px 10px;\n min-width: 40%;\n max-width: 100%; }\n .swal2-modal .swal2-radio {\n border: 0; }\n .swal2-modal .swal2-radio label:not(:first-child) {\n margin-left: 20px; }\n .swal2-modal .swal2-radio input,\n .swal2-modal .swal2-radio span {\n vertical-align: middle; }\n .swal2-modal .swal2-radio input {\n margin: 0 3px 0 0; }\n .swal2-modal .swal2-checkbox {\n color: #545454; }\n .swal2-modal .swal2-checkbox input,\n .swal2-modal .swal2-checkbox span {\n vertical-align: middle; }\n .swal2-modal .swal2-validationerror {\n background-color: #f0f0f0;\n margin: 0 -20px;\n overflow: hidden;\n padding: 10px;\n color: gray;\n font-size: 16px;\n font-weight: 300;\n display: none; }\n .swal2-modal .swal2-validationerror::before {\n content: '!';\n display: inline-block;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background-color: #ea7d7d;\n color: #fff;\n line-height: 24px;\n text-align: center;\n margin-right: 10px; }\n\n@supports (-ms-accelerator: true) {\n .swal2-range input {\n width: 100% !important; }\n .swal2-range output {\n display: none; } }\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n .swal2-range input {\n width: 100% !important; }\n .swal2-range output {\n display: none; } }\n\n.swal2-icon {\n width: 80px;\n height: 80px;\n border: 4px solid transparent;\n border-radius: 50%;\n margin: 20px auto 30px;\n padding: 0;\n position: relative;\n -webkit-box-sizing: content-box;\n box-sizing: content-box;\n cursor: default;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .swal2-icon.swal2-error {\n border-color: #f27474; }\n .swal2-icon.swal2-error .swal2-x-mark {\n position: relative;\n display: block; }\n .swal2-icon.swal2-error [class^='swal2-x-mark-line'] {\n position: absolute;\n height: 5px;\n width: 47px;\n background-color: #f27474;\n display: block;\n top: 37px;\n border-radius: 2px; }\n .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n left: 17px; }\n .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] {\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n right: 16px; }\n .swal2-icon.swal2-warning {\n font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n color: #f8bb86;\n border-color: #facea8;\n font-size: 60px;\n line-height: 80px;\n text-align: center; }\n .swal2-icon.swal2-info {\n font-family: 'Open Sans', sans-serif;\n color: #3fc3ee;\n border-color: #9de0f6;\n font-size: 60px;\n line-height: 80px;\n text-align: center; }\n .swal2-icon.swal2-question {\n font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n color: #87adbd;\n border-color: #c9dae1;\n font-size: 60px;\n line-height: 80px;\n text-align: center; }\n .swal2-icon.swal2-success {\n border-color: #a5dc86; }\n .swal2-icon.swal2-success [class^='swal2-success-circular-line'] {\n border-radius: 50%;\n position: absolute;\n width: 60px;\n height: 120px;\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg); }\n .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='left'] {\n border-radius: 120px 0 0 120px;\n top: -7px;\n left: -33px;\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n -webkit-transform-origin: 60px 60px;\n transform-origin: 60px 60px; }\n .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='right'] {\n border-radius: 0 120px 120px 0;\n top: -11px;\n left: 30px;\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n -webkit-transform-origin: 0 60px;\n transform-origin: 0 60px; }\n .swal2-icon.swal2-success .swal2-success-ring {\n width: 80px;\n height: 80px;\n border: 4px solid rgba(165, 220, 134, 0.2);\n border-radius: 50%;\n -webkit-box-sizing: content-box;\n box-sizing: content-box;\n position: absolute;\n left: -4px;\n top: -4px;\n z-index: 2; }\n .swal2-icon.swal2-success .swal2-success-fix {\n width: 7px;\n height: 90px;\n position: absolute;\n left: 28px;\n top: 8px;\n z-index: 1;\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg); }\n .swal2-icon.swal2-success [class^='swal2-success-line'] {\n height: 5px;\n background-color: #a5dc86;\n display: block;\n border-radius: 2px;\n position: absolute;\n z-index: 2; }\n .swal2-icon.swal2-success [class^='swal2-success-line'][class$='tip'] {\n width: 25px;\n left: 14px;\n top: 46px;\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg); }\n .swal2-icon.swal2-success [class^='swal2-success-line'][class$='long'] {\n width: 47px;\n right: 8px;\n top: 38px;\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg); }\n\n.swal2-progresssteps {\n font-weight: 600;\n margin: 0 0 20px;\n padding: 0; }\n .swal2-progresssteps li {\n display: inline-block;\n position: relative; }\n .swal2-progresssteps .swal2-progresscircle {\n background: #3085d6;\n border-radius: 2em;\n color: #fff;\n height: 2em;\n line-height: 2em;\n text-align: center;\n width: 2em;\n z-index: 20; }\n .swal2-progresssteps .swal2-progresscircle:first-child {\n margin-left: 0; }\n .swal2-progresssteps .swal2-progresscircle:last-child {\n margin-right: 0; }\n .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep {\n background: #3085d6; }\n .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep ~ .swal2-progresscircle {\n background: #add8e6; }\n .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep ~ .swal2-progressline {\n background: #add8e6; }\n .swal2-progresssteps .swal2-progressline {\n background: #3085d6;\n height: .4em;\n margin: 0 -1px;\n z-index: 10; }\n\n[class^='swal2'] {\n -webkit-tap-highlight-color: transparent; }\n\n@-webkit-keyframes showSweetAlert {\n 0% {\n -webkit-transform: scale(0.7);\n transform: scale(0.7); }\n 45% {\n -webkit-transform: scale(1.05);\n transform: scale(1.05); }\n 80% {\n -webkit-transform: scale(0.95);\n transform: scale(0.95); }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1); } }\n\n@keyframes showSweetAlert {\n 0% {\n -webkit-transform: scale(0.7);\n transform: scale(0.7); }\n 45% {\n -webkit-transform: scale(1.05);\n transform: scale(1.05); }\n 80% {\n -webkit-transform: scale(0.95);\n transform: scale(0.95); }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1); } }\n\n@-webkit-keyframes hideSweetAlert {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1; }\n 100% {\n -webkit-transform: scale(0.5);\n transform: scale(0.5);\n opacity: 0; } }\n\n@keyframes hideSweetAlert {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1; }\n 100% {\n -webkit-transform: scale(0.5);\n transform: scale(0.5);\n opacity: 0; } }\n\n.swal2-show {\n -webkit-animation: showSweetAlert .3s;\n animation: showSweetAlert .3s; }\n .swal2-show.swal2-noanimation {\n -webkit-animation: none;\n animation: none; }\n\n.swal2-hide {\n -webkit-animation: hideSweetAlert .15s forwards;\n animation: hideSweetAlert .15s forwards; }\n .swal2-hide.swal2-noanimation {\n -webkit-animation: none;\n animation: none; }\n\n@-webkit-keyframes animate-success-tip {\n 0% {\n width: 0;\n left: 1px;\n top: 19px; }\n 54% {\n width: 0;\n left: 1px;\n top: 19px; }\n 70% {\n width: 50px;\n left: -8px;\n top: 37px; }\n 84% {\n width: 17px;\n left: 21px;\n top: 48px; }\n 100% {\n width: 25px;\n left: 14px;\n top: 45px; } }\n\n@keyframes animate-success-tip {\n 0% {\n width: 0;\n left: 1px;\n top: 19px; }\n 54% {\n width: 0;\n left: 1px;\n top: 19px; }\n 70% {\n width: 50px;\n left: -8px;\n top: 37px; }\n 84% {\n width: 17px;\n left: 21px;\n top: 48px; }\n 100% {\n width: 25px;\n left: 14px;\n top: 45px; } }\n\n@-webkit-keyframes animate-success-long {\n 0% {\n width: 0;\n right: 46px;\n top: 54px; }\n 65% {\n width: 0;\n right: 46px;\n top: 54px; }\n 84% {\n width: 55px;\n right: 0;\n top: 35px; }\n 100% {\n width: 47px;\n right: 8px;\n top: 38px; } }\n\n@keyframes animate-success-long {\n 0% {\n width: 0;\n right: 46px;\n top: 54px; }\n 65% {\n width: 0;\n right: 46px;\n top: 54px; }\n 84% {\n width: 55px;\n right: 0;\n top: 35px; }\n 100% {\n width: 47px;\n right: 8px;\n top: 38px; } }\n\n@-webkit-keyframes rotatePlaceholder {\n 0% {\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg); }\n 5% {\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg); }\n 12% {\n -webkit-transform: rotate(-405deg);\n transform: rotate(-405deg); }\n 100% {\n -webkit-transform: rotate(-405deg);\n transform: rotate(-405deg); } }\n\n@keyframes rotatePlaceholder {\n 0% {\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg); }\n 5% {\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg); }\n 12% {\n -webkit-transform: rotate(-405deg);\n transform: rotate(-405deg); }\n 100% {\n -webkit-transform: rotate(-405deg);\n transform: rotate(-405deg); } }\n\n.swal2-animate-success-line-tip {\n -webkit-animation: animate-success-tip .75s;\n animation: animate-success-tip .75s; }\n\n.swal2-animate-success-line-long {\n -webkit-animation: animate-success-long .75s;\n animation: animate-success-long .75s; }\n\n.swal2-success.swal2-animate-success-icon .swal2-success-circular-line-right {\n -webkit-animation: rotatePlaceholder 4.25s ease-in;\n animation: rotatePlaceholder 4.25s ease-in; }\n\n@-webkit-keyframes animate-error-icon {\n 0% {\n -webkit-transform: rotateX(100deg);\n transform: rotateX(100deg);\n opacity: 0; }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n opacity: 1; } }\n\n@keyframes animate-error-icon {\n 0% {\n -webkit-transform: rotateX(100deg);\n transform: rotateX(100deg);\n opacity: 0; }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n opacity: 1; } }\n\n.swal2-animate-error-icon {\n -webkit-animation: animate-error-icon .5s;\n animation: animate-error-icon .5s; }\n\n@-webkit-keyframes animate-x-mark {\n 0% {\n -webkit-transform: scale(0.4);\n transform: scale(0.4);\n margin-top: 26px;\n opacity: 0; }\n 50% {\n -webkit-transform: scale(0.4);\n transform: scale(0.4);\n margin-top: 26px;\n opacity: 0; }\n 80% {\n -webkit-transform: scale(1.15);\n transform: scale(1.15);\n margin-top: -6px; }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n margin-top: 0;\n opacity: 1; } }\n\n@keyframes animate-x-mark {\n 0% {\n -webkit-transform: scale(0.4);\n transform: scale(0.4);\n margin-top: 26px;\n opacity: 0; }\n 50% {\n -webkit-transform: scale(0.4);\n transform: scale(0.4);\n margin-top: 26px;\n opacity: 0; }\n 80% {\n -webkit-transform: scale(1.15);\n transform: scale(1.15);\n margin-top: -6px; }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n margin-top: 0;\n opacity: 1; } }\n\n.swal2-animate-x-mark {\n -webkit-animation: animate-x-mark .5s;\n animation: animate-x-mark .5s; }\n\n@-webkit-keyframes rotate-loading {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes rotate-loading {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n"),m}),window.Sweetalert2&&(window.sweetAlert=window.swal=window.Sweetalert2);
\ No newline at end of file
diff --git a/assets/javascripts/vendor/sweetalert2.js b/assets/javascripts/vendor/sweetalert2.js
deleted file mode 100644
index 7b418aaa..00000000
--- a/assets/javascripts/vendor/sweetalert2.js
+++ /dev/null
@@ -1,1606 +0,0 @@
-/*!
- * sweetalert2 v6.6.2
- * Released under the MIT License.
- */
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global.Sweetalert2 = factory());
-}(this, (function () { 'use strict';
-
-var defaultParams = {
- title: '',
- titleText: '',
- text: '',
- html: '',
- type: null,
- customClass: '',
- target: 'body',
- animation: true,
- allowOutsideClick: true,
- allowEscapeKey: true,
- allowEnterKey: true,
- showConfirmButton: true,
- showCancelButton: false,
- preConfirm: null,
- confirmButtonText: 'OK',
- confirmButtonColor: '#3085d6',
- confirmButtonClass: null,
- cancelButtonText: 'Cancel',
- cancelButtonColor: '#aaa',
- cancelButtonClass: null,
- buttonsStyling: true,
- reverseButtons: false,
- focusCancel: false,
- showCloseButton: false,
- showLoaderOnConfirm: false,
- imageUrl: null,
- imageWidth: null,
- imageHeight: null,
- imageClass: null,
- timer: null,
- width: 500,
- padding: 20,
- background: '#fff',
- input: null,
- inputPlaceholder: '',
- inputValue: '',
- inputOptions: {},
- inputAutoTrim: true,
- inputClass: null,
- inputAttributes: {},
- inputValidator: null,
- progressSteps: [],
- currentProgressStep: null,
- progressStepsDistance: '40px',
- onOpen: null,
- onClose: null
-};
-
-var swalPrefix = 'swal2-';
-
-var prefix = function prefix(items) {
- var result = {};
- for (var i in items) {
- result[items[i]] = swalPrefix + items[i];
- }
- return result;
-};
-
-var swalClasses = prefix(['container', 'shown', 'iosfix', 'modal', 'overlay', 'fade', 'show', 'hide', 'noanimation', 'close', 'title', 'content', 'buttonswrapper', 'confirm', 'cancel', 'icon', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea', 'inputerror', 'validationerror', 'progresssteps', 'activeprogressstep', 'progresscircle', 'progressline', 'loading', 'styled']);
-
-var iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);
-
-/*
- * Set hover, active and focus-states for buttons (source: http://www.sitepoint.com/javascript-generate-lighter-darker-color)
- */
-var colorLuminance = function colorLuminance(hex, lum) {
- // Validate hex string
- hex = String(hex).replace(/[^0-9a-f]/gi, '');
- if (hex.length < 6) {
- hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
- }
- lum = lum || 0;
-
- // Convert to decimal and change luminosity
- var rgb = '#';
- for (var i = 0; i < 3; i++) {
- var c = parseInt(hex.substr(i * 2, 2), 16);
- c = Math.round(Math.min(Math.max(0, c + c * lum), 255)).toString(16);
- rgb += ('00' + c).substr(c.length);
- }
-
- return rgb;
-};
-
-var uniqueArray = function uniqueArray(arr) {
- var result = [];
- for (var i in arr) {
- if (result.indexOf(arr[i]) === -1) {
- result.push(arr[i]);
- }
- }
- return result;
-};
-
-/* global MouseEvent */
-
-// Remember state in cases where opening and handling a modal will fiddle with it.
-var states = {
- previousWindowKeyDown: null,
- previousActiveElement: null,
- previousBodyPadding: null
-};
-
-/*
- * Add modal + overlay to DOM
- */
-var init = function init(params) {
- if (typeof document === 'undefined') {
- console.error('SweetAlert2 requires document to initialize');
- return;
- }
-
- var container = document.createElement('div');
- container.className = swalClasses.container;
- container.innerHTML = sweetHTML;
-
- var targetElement = document.querySelector(params.target);
- if (!targetElement) {
- console.warn('SweetAlert2: Can\'t find the target "' + params.target + '"');
- targetElement = document.body;
- }
- targetElement.appendChild(container);
-
- var modal = getModal();
- var input = getChildByClass(modal, swalClasses.input);
- var file = getChildByClass(modal, swalClasses.file);
- var range = modal.querySelector('.' + swalClasses.range + ' input');
- var rangeOutput = modal.querySelector('.' + swalClasses.range + ' output');
- var select = getChildByClass(modal, swalClasses.select);
- var checkbox = modal.querySelector('.' + swalClasses.checkbox + ' input');
- var textarea = getChildByClass(modal, swalClasses.textarea);
-
- input.oninput = function () {
- sweetAlert.resetValidationError();
- };
-
- input.onkeydown = function (event) {
- setTimeout(function () {
- if (event.keyCode === 13 && params.allowEnterKey) {
- event.stopPropagation();
- sweetAlert.clickConfirm();
- }
- }, 0);
- };
-
- file.onchange = function () {
- sweetAlert.resetValidationError();
- };
-
- range.oninput = function () {
- sweetAlert.resetValidationError();
- rangeOutput.value = range.value;
- };
-
- range.onchange = function () {
- sweetAlert.resetValidationError();
- range.previousSibling.value = range.value;
- };
-
- select.onchange = function () {
- sweetAlert.resetValidationError();
- };
-
- checkbox.onchange = function () {
- sweetAlert.resetValidationError();
- };
-
- textarea.oninput = function () {
- sweetAlert.resetValidationError();
- };
-
- return modal;
-};
-
-/*
- * Manipulate DOM
- */
-
-var sweetHTML = ('\n \n
\n
\n \n
\n
?
\n
!
\n
i
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n').replace(/(^|\n)\s*/g, '');
-
-var getContainer = function getContainer() {
- return document.body.querySelector('.' + swalClasses.container);
-};
-
-var getModal = function getModal() {
- return getContainer() ? getContainer().querySelector('.' + swalClasses.modal) : null;
-};
-
-var getIcons = function getIcons() {
- var modal = getModal();
- return modal.querySelectorAll('.' + swalClasses.icon);
-};
-
-var elementByClass = function elementByClass(className) {
- return getContainer() ? getContainer().querySelector('.' + className) : null;
-};
-
-var getTitle = function getTitle() {
- return elementByClass(swalClasses.title);
-};
-
-var getContent = function getContent() {
- return elementByClass(swalClasses.content);
-};
-
-var getImage = function getImage() {
- return elementByClass(swalClasses.image);
-};
-
-var getButtonsWrapper = function getButtonsWrapper() {
- return elementByClass(swalClasses.buttonswrapper);
-};
-
-var getProgressSteps = function getProgressSteps() {
- return elementByClass(swalClasses.progresssteps);
-};
-
-var getValidationError = function getValidationError() {
- return elementByClass(swalClasses.validationerror);
-};
-
-var getConfirmButton = function getConfirmButton() {
- return elementByClass(swalClasses.confirm);
-};
-
-var getCancelButton = function getCancelButton() {
- return elementByClass(swalClasses.cancel);
-};
-
-var getCloseButton = function getCloseButton() {
- return elementByClass(swalClasses.close);
-};
-
-var getFocusableElements = function getFocusableElements(focusCancel) {
- var buttons = [getConfirmButton(), getCancelButton()];
- if (focusCancel) {
- buttons.reverse();
- }
- var focusableElements = buttons.concat(Array.prototype.slice.call(getModal().querySelectorAll('button, input:not([type=hidden]), textarea, select, a, *[tabindex]:not([tabindex="-1"])')));
- return uniqueArray(focusableElements);
-};
-
-var hasClass = function hasClass(elem, className) {
- if (elem.classList) {
- return elem.classList.contains(className);
- }
- return false;
-};
-
-var focusInput = function focusInput(input) {
- input.focus();
-
- // place cursor at end of text in text input
- if (input.type !== 'file') {
- // http://stackoverflow.com/a/2345915/1331425
- var val = input.value;
- input.value = '';
- input.value = val;
- }
-};
-
-var addClass = function addClass(elem, className) {
- if (!elem || !className) {
- return;
- }
- var classes = className.split(/\s+/).filter(Boolean);
- classes.forEach(function (className) {
- elem.classList.add(className);
- });
-};
-
-var removeClass = function removeClass(elem, className) {
- if (!elem || !className) {
- return;
- }
- var classes = className.split(/\s+/).filter(Boolean);
- classes.forEach(function (className) {
- elem.classList.remove(className);
- });
-};
-
-var getChildByClass = function getChildByClass(elem, className) {
- for (var i = 0; i < elem.childNodes.length; i++) {
- if (hasClass(elem.childNodes[i], className)) {
- return elem.childNodes[i];
- }
- }
-};
-
-var show = function show(elem, display) {
- if (!display) {
- display = 'block';
- }
- elem.style.opacity = '';
- elem.style.display = display;
-};
-
-var hide = function hide(elem) {
- elem.style.opacity = '';
- elem.style.display = 'none';
-};
-
-var empty = function empty(elem) {
- while (elem.firstChild) {
- elem.removeChild(elem.firstChild);
- }
-};
-
-// borrowed from jqeury $(elem).is(':visible') implementation
-var isVisible = function isVisible(elem) {
- return elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length;
-};
-
-var removeStyleProperty = function removeStyleProperty(elem, property) {
- if (elem.style.removeProperty) {
- elem.style.removeProperty(property);
- } else {
- elem.style.removeAttribute(property);
- }
-};
-
-var fireClick = function fireClick(node) {
- if (!isVisible(node)) {
- return false;
- }
-
- // Taken from http://www.nonobtrusive.com/2011/11/29/programatically-fire-crossbrowser-click-event-with-javascript/
- // Then fixed for today's Chrome browser.
- if (typeof MouseEvent === 'function') {
- // Up-to-date approach
- var mevt = new MouseEvent('click', {
- view: window,
- bubbles: false,
- cancelable: true
- });
- node.dispatchEvent(mevt);
- } else if (document.createEvent) {
- // Fallback
- var evt = document.createEvent('MouseEvents');
- evt.initEvent('click', false, false);
- node.dispatchEvent(evt);
- } else if (document.createEventObject) {
- node.fireEvent('onclick');
- } else if (typeof node.onclick === 'function') {
- node.onclick();
- }
-};
-
-var animationEndEvent = function () {
- var testEl = document.createElement('div');
- var transEndEventNames = {
- 'WebkitAnimation': 'webkitAnimationEnd',
- 'OAnimation': 'oAnimationEnd oanimationend',
- 'msAnimation': 'MSAnimationEnd',
- 'animation': 'animationend'
- };
- for (var i in transEndEventNames) {
- if (transEndEventNames.hasOwnProperty(i) && testEl.style[i] !== undefined) {
- return transEndEventNames[i];
- }
- }
-
- return false;
-}();
-
-// Reset previous window keydown handler and focued element
-var resetPrevState = function resetPrevState() {
- window.onkeydown = states.previousWindowKeyDown;
- if (states.previousActiveElement && states.previousActiveElement.focus) {
- var x = window.scrollX;
- var y = window.scrollY;
- states.previousActiveElement.focus();
- if (x && y) {
- // IE has no scrollX/scrollY support
- window.scrollTo(x, y);
- }
- }
-};
-
-// Measure width of scrollbar
-// https://github.com/twbs/bootstrap/blob/master/js/modal.js#L279-L286
-var measureScrollbar = function measureScrollbar() {
- var supportsTouch = 'ontouchstart' in window || navigator.msMaxTouchPoints;
- if (supportsTouch) {
- return 0;
- }
- var scrollDiv = document.createElement('div');
- scrollDiv.style.width = '50px';
- scrollDiv.style.height = '50px';
- scrollDiv.style.overflow = 'scroll';
- document.body.appendChild(scrollDiv);
- var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
- document.body.removeChild(scrollDiv);
- return scrollbarWidth;
-};
-
-// JavaScript Debounce Function
-// Simplivied version of https://davidwalsh.name/javascript-debounce-function
-var debounce = function debounce(func, wait) {
- var timeout = void 0;
- return function () {
- var later = function later() {
- timeout = null;
- func();
- };
- clearTimeout(timeout);
- timeout = setTimeout(later, wait);
- };
-};
-
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
- return typeof obj;
-} : function (obj) {
- return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
-};
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-var _extends = Object.assign || function (target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
-
- for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }
-
- return target;
-};
-
-var modalParams = _extends({}, defaultParams);
-var queue = [];
-var swal2Observer = void 0;
-
-/*
- * Set type, text and actions on modal
- */
-var setParameters = function setParameters(params) {
- var modal = getModal() || init(params);
-
- for (var param in params) {
- if (!defaultParams.hasOwnProperty(param) && param !== 'extraParams') {
- console.warn('SweetAlert2: Unknown parameter "' + param + '"');
- }
- }
-
- // Set modal width
- modal.style.width = typeof params.width === 'number' ? params.width + 'px' : params.width;
-
- modal.style.padding = params.padding + 'px';
- modal.style.background = params.background;
- var successIconParts = modal.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');
- for (var i = 0; i < successIconParts.length; i++) {
- successIconParts[i].style.background = params.background;
- }
-
- var title = getTitle();
- var content = getContent();
- var buttonsWrapper = getButtonsWrapper();
- var confirmButton = getConfirmButton();
- var cancelButton = getCancelButton();
- var closeButton = getCloseButton();
-
- // Title
- if (params.titleText) {
- title.innerText = params.titleText;
- } else {
- title.innerHTML = params.title.split('\n').join('
');
- }
-
- // Content
- if (params.text || params.html) {
- if (_typeof(params.html) === 'object') {
- content.innerHTML = '';
- if (0 in params.html) {
- for (var _i = 0; _i in params.html; _i++) {
- content.appendChild(params.html[_i].cloneNode(true));
- }
- } else {
- content.appendChild(params.html.cloneNode(true));
- }
- } else if (params.html) {
- content.innerHTML = params.html;
- } else if (params.text) {
- content.textContent = params.text;
- }
- show(content);
- } else {
- hide(content);
- }
-
- // Close button
- if (params.showCloseButton) {
- show(closeButton);
- } else {
- hide(closeButton);
- }
-
- // Custom Class
- modal.className = swalClasses.modal;
- if (params.customClass) {
- addClass(modal, params.customClass);
- }
-
- // Progress steps
- var progressStepsContainer = getProgressSteps();
- var currentProgressStep = parseInt(params.currentProgressStep === null ? sweetAlert.getQueueStep() : params.currentProgressStep, 10);
- if (params.progressSteps.length) {
- show(progressStepsContainer);
- empty(progressStepsContainer);
- if (currentProgressStep >= params.progressSteps.length) {
- console.warn('SweetAlert2: Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');
- }
- params.progressSteps.forEach(function (step, index) {
- var circle = document.createElement('li');
- addClass(circle, swalClasses.progresscircle);
- circle.innerHTML = step;
- if (index === currentProgressStep) {
- addClass(circle, swalClasses.activeprogressstep);
- }
- progressStepsContainer.appendChild(circle);
- if (index !== params.progressSteps.length - 1) {
- var line = document.createElement('li');
- addClass(line, swalClasses.progressline);
- line.style.width = params.progressStepsDistance;
- progressStepsContainer.appendChild(line);
- }
- });
- } else {
- hide(progressStepsContainer);
- }
-
- // Icon
- var icons = getIcons();
- for (var _i2 = 0; _i2 < icons.length; _i2++) {
- hide(icons[_i2]);
- }
- if (params.type) {
- var validType = false;
- for (var iconType in iconTypes) {
- if (params.type === iconType) {
- validType = true;
- break;
- }
- }
- if (!validType) {
- console.error('SweetAlert2: Unknown alert type: ' + params.type);
- return false;
- }
- var icon = modal.querySelector('.' + swalClasses.icon + '.' + iconTypes[params.type]);
- show(icon);
-
- // Animate icon
- if (params.animation) {
- switch (params.type) {
- case 'success':
- addClass(icon, 'swal2-animate-success-icon');
- addClass(icon.querySelector('.swal2-success-line-tip'), 'swal2-animate-success-line-tip');
- addClass(icon.querySelector('.swal2-success-line-long'), 'swal2-animate-success-line-long');
- break;
- case 'error':
- addClass(icon, 'swal2-animate-error-icon');
- addClass(icon.querySelector('.swal2-x-mark'), 'swal2-animate-x-mark');
- break;
- default:
- break;
- }
- }
- }
-
- // Custom image
- var image = getImage();
- if (params.imageUrl) {
- image.setAttribute('src', params.imageUrl);
- show(image);
-
- if (params.imageWidth) {
- image.setAttribute('width', params.imageWidth);
- } else {
- image.removeAttribute('width');
- }
-
- if (params.imageHeight) {
- image.setAttribute('height', params.imageHeight);
- } else {
- image.removeAttribute('height');
- }
-
- image.className = swalClasses.image;
- if (params.imageClass) {
- addClass(image, params.imageClass);
- }
- } else {
- hide(image);
- }
-
- // Cancel button
- if (params.showCancelButton) {
- cancelButton.style.display = 'inline-block';
- } else {
- hide(cancelButton);
- }
-
- // Confirm button
- if (params.showConfirmButton) {
- removeStyleProperty(confirmButton, 'display');
- } else {
- hide(confirmButton);
- }
-
- // Buttons wrapper
- if (!params.showConfirmButton && !params.showCancelButton) {
- hide(buttonsWrapper);
- } else {
- show(buttonsWrapper);
- }
-
- // Edit text on cancel and confirm buttons
- confirmButton.innerHTML = params.confirmButtonText;
- cancelButton.innerHTML = params.cancelButtonText;
-
- // Set buttons to selected background colors
- if (params.buttonsStyling) {
- confirmButton.style.backgroundColor = params.confirmButtonColor;
- cancelButton.style.backgroundColor = params.cancelButtonColor;
- }
-
- // Add buttons custom classes
- confirmButton.className = swalClasses.confirm;
- addClass(confirmButton, params.confirmButtonClass);
- cancelButton.className = swalClasses.cancel;
- addClass(cancelButton, params.cancelButtonClass);
-
- // Buttons styling
- if (params.buttonsStyling) {
- addClass(confirmButton, swalClasses.styled);
- addClass(cancelButton, swalClasses.styled);
- } else {
- removeClass(confirmButton, swalClasses.styled);
- removeClass(cancelButton, swalClasses.styled);
-
- confirmButton.style.backgroundColor = confirmButton.style.borderLeftColor = confirmButton.style.borderRightColor = '';
- cancelButton.style.backgroundColor = cancelButton.style.borderLeftColor = cancelButton.style.borderRightColor = '';
- }
-
- // CSS animation
- if (params.animation === true) {
- removeClass(modal, swalClasses.noanimation);
- } else {
- addClass(modal, swalClasses.noanimation);
- }
-};
-
-/*
- * Animations
- */
-var openModal = function openModal(animation, onComplete) {
- var container = getContainer();
- var modal = getModal();
-
- if (animation) {
- addClass(modal, swalClasses.show);
- addClass(container, swalClasses.fade);
- removeClass(modal, swalClasses.hide);
- } else {
- removeClass(modal, swalClasses.fade);
- }
- show(modal);
-
- // scrolling is 'hidden' until animation is done, after that 'auto'
- container.style.overflowY = 'hidden';
- if (animationEndEvent && !hasClass(modal, swalClasses.noanimation)) {
- modal.addEventListener(animationEndEvent, function swalCloseEventFinished() {
- modal.removeEventListener(animationEndEvent, swalCloseEventFinished);
- container.style.overflowY = 'auto';
- });
- } else {
- container.style.overflowY = 'auto';
- }
-
- addClass(document.documentElement, swalClasses.shown);
- addClass(document.body, swalClasses.shown);
- addClass(container, swalClasses.shown);
- fixScrollbar();
- iOSfix();
- states.previousActiveElement = document.activeElement;
- if (onComplete !== null && typeof onComplete === 'function') {
- setTimeout(function () {
- onComplete(modal);
- });
- }
-};
-
-var fixScrollbar = function fixScrollbar() {
- // for queues, do not do this more than once
- if (states.previousBodyPadding !== null) {
- return;
- }
- // if the body has overflow
- if (document.body.scrollHeight > window.innerHeight) {
- // add padding so the content doesn't shift after removal of scrollbar
- states.previousBodyPadding = document.body.style.paddingRight;
- document.body.style.paddingRight = measureScrollbar() + 'px';
- }
-};
-
-var undoScrollbar = function undoScrollbar() {
- if (states.previousBodyPadding !== null) {
- document.body.style.paddingRight = states.previousBodyPadding;
- states.previousBodyPadding = null;
- }
-};
-
-// Fix iOS scrolling http://stackoverflow.com/q/39626302/1331425
-var iOSfix = function iOSfix() {
- var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
- if (iOS && !hasClass(document.body, swalClasses.iosfix)) {
- var offset = document.body.scrollTop;
- document.body.style.top = offset * -1 + 'px';
- addClass(document.body, swalClasses.iosfix);
- }
-};
-
-var undoIOSfix = function undoIOSfix() {
- if (hasClass(document.body, swalClasses.iosfix)) {
- var offset = parseInt(document.body.style.top, 10);
- removeClass(document.body, swalClasses.iosfix);
- document.body.style.top = '';
- document.body.scrollTop = offset * -1;
- }
-};
-
-// SweetAlert entry point
-var sweetAlert = function sweetAlert() {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- if (args[0] === undefined) {
- console.error('SweetAlert2 expects at least 1 attribute!');
- return false;
- }
-
- var params = _extends({}, modalParams);
-
- switch (_typeof(args[0])) {
- case 'string':
- params.title = args[0];
- params.html = args[1];
- params.type = args[2];
-
- break;
-
- case 'object':
- _extends(params, args[0]);
- params.extraParams = args[0].extraParams;
-
- if (params.input === 'email' && params.inputValidator === null) {
- params.inputValidator = function (email) {
- return new Promise(function (resolve, reject) {
- var emailRegex = /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/;
- if (emailRegex.test(email)) {
- resolve();
- } else {
- reject('Invalid email address');
- }
- });
- };
- }
-
- if (params.input === 'url' && params.inputValidator === null) {
- params.inputValidator = function (url) {
- return new Promise(function (resolve, reject) {
- var urlRegex = /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*\/?$/;
- if (urlRegex.test(url)) {
- resolve();
- } else {
- reject('Invalid URL');
- }
- });
- };
- }
- break;
-
- default:
- console.error('SweetAlert2: Unexpected type of argument! Expected "string" or "object", got ' + _typeof(args[0]));
- return false;
- }
-
- setParameters(params);
-
- var container = getContainer();
- var modal = getModal();
-
- return new Promise(function (resolve, reject) {
- // Close on timer
- if (params.timer) {
- modal.timeout = setTimeout(function () {
- sweetAlert.closeModal(params.onClose);
- reject('timer');
- }, params.timer);
- }
-
- // Get input element by specified type or, if type isn't specified, by params.input
- var getInput = function getInput(inputType) {
- inputType = inputType || params.input;
- if (!inputType) {
- return null;
- }
- switch (inputType) {
- case 'select':
- case 'textarea':
- case 'file':
- return getChildByClass(modal, swalClasses[inputType]);
- case 'checkbox':
- return modal.querySelector('.' + swalClasses.checkbox + ' input');
- case 'radio':
- return modal.querySelector('.' + swalClasses.radio + ' input:checked') || modal.querySelector('.' + swalClasses.radio + ' input:first-child');
- case 'range':
- return modal.querySelector('.' + swalClasses.range + ' input');
- default:
- return getChildByClass(modal, swalClasses.input);
- }
- };
-
- // Get the value of the modal input
- var getInputValue = function getInputValue() {
- var input = getInput();
- if (!input) {
- return null;
- }
- switch (params.input) {
- case 'checkbox':
- return input.checked ? 1 : 0;
- case 'radio':
- return input.checked ? input.value : null;
- case 'file':
- return input.files.length ? input.files[0] : null;
- default:
- return params.inputAutoTrim ? input.value.trim() : input.value;
- }
- };
-
- // input autofocus
- if (params.input) {
- setTimeout(function () {
- var input = getInput();
- if (input) {
- focusInput(input);
- }
- }, 0);
- }
-
- var confirm = function confirm(value) {
- if (params.showLoaderOnConfirm) {
- sweetAlert.showLoading();
- }
-
- if (params.preConfirm) {
- params.preConfirm(value, params.extraParams).then(function (preConfirmValue) {
- sweetAlert.closeModal(params.onClose);
- resolve(preConfirmValue || value);
- }, function (error) {
- sweetAlert.hideLoading();
- if (error) {
- sweetAlert.showValidationError(error);
- }
- });
- } else {
- sweetAlert.closeModal(params.onClose);
- resolve(value);
- }
- };
-
- // Mouse interactions
- var onButtonEvent = function onButtonEvent(event) {
- var e = event || window.event;
- var target = e.target || e.srcElement;
- var confirmButton = getConfirmButton();
- var cancelButton = getCancelButton();
- var targetedConfirm = confirmButton && (confirmButton === target || confirmButton.contains(target));
- var targetedCancel = cancelButton && (cancelButton === target || cancelButton.contains(target));
-
- switch (e.type) {
- case 'mouseover':
- case 'mouseup':
- if (params.buttonsStyling) {
- if (targetedConfirm) {
- confirmButton.style.backgroundColor = colorLuminance(params.confirmButtonColor, -0.1);
- } else if (targetedCancel) {
- cancelButton.style.backgroundColor = colorLuminance(params.cancelButtonColor, -0.1);
- }
- }
- break;
- case 'mouseout':
- if (params.buttonsStyling) {
- if (targetedConfirm) {
- confirmButton.style.backgroundColor = params.confirmButtonColor;
- } else if (targetedCancel) {
- cancelButton.style.backgroundColor = params.cancelButtonColor;
- }
- }
- break;
- case 'mousedown':
- if (params.buttonsStyling) {
- if (targetedConfirm) {
- confirmButton.style.backgroundColor = colorLuminance(params.confirmButtonColor, -0.2);
- } else if (targetedCancel) {
- cancelButton.style.backgroundColor = colorLuminance(params.cancelButtonColor, -0.2);
- }
- }
- break;
- case 'click':
- // Clicked 'confirm'
- if (targetedConfirm && sweetAlert.isVisible()) {
- sweetAlert.disableButtons();
- if (params.input) {
- var inputValue = getInputValue();
-
- if (params.inputValidator) {
- sweetAlert.disableInput();
- params.inputValidator(inputValue, params.extraParams).then(function () {
- sweetAlert.enableButtons();
- sweetAlert.enableInput();
- confirm(inputValue);
- }, function (error) {
- sweetAlert.enableButtons();
- sweetAlert.enableInput();
- if (error) {
- sweetAlert.showValidationError(error);
- }
- });
- } else {
- confirm(inputValue);
- }
- } else {
- confirm(true);
- }
-
- // Clicked 'cancel'
- } else if (targetedCancel && sweetAlert.isVisible()) {
- sweetAlert.disableButtons();
- sweetAlert.closeModal(params.onClose);
- reject('cancel');
- }
- break;
- default:
- }
- };
-
- var buttons = modal.querySelectorAll('button');
- for (var i = 0; i < buttons.length; i++) {
- buttons[i].onclick = onButtonEvent;
- buttons[i].onmouseover = onButtonEvent;
- buttons[i].onmouseout = onButtonEvent;
- buttons[i].onmousedown = onButtonEvent;
- }
-
- // Closing modal by close button
- getCloseButton().onclick = function () {
- sweetAlert.closeModal(params.onClose);
- reject('close');
- };
-
- // Closing modal by overlay click
- container.onclick = function (e) {
- if (e.target !== container) {
- return;
- }
- if (params.allowOutsideClick) {
- sweetAlert.closeModal(params.onClose);
- reject('overlay');
- }
- };
-
- var buttonsWrapper = getButtonsWrapper();
- var confirmButton = getConfirmButton();
- var cancelButton = getCancelButton();
-
- // Reverse buttons (Confirm on the right side)
- if (params.reverseButtons) {
- confirmButton.parentNode.insertBefore(cancelButton, confirmButton);
- } else {
- confirmButton.parentNode.insertBefore(confirmButton, cancelButton);
- }
-
- // Focus handling
- var setFocus = function setFocus(index, increment) {
- var focusableElements = getFocusableElements(params.focusCancel);
- // search for visible elements and select the next possible match
- for (var _i3 = 0; _i3 < focusableElements.length; _i3++) {
- index = index + increment;
-
- // rollover to first item
- if (index === focusableElements.length) {
- index = 0;
-
- // go to last item
- } else if (index === -1) {
- index = focusableElements.length - 1;
- }
-
- // determine if element is visible
- var el = focusableElements[index];
- if (isVisible(el)) {
- return el.focus();
- }
- }
- };
-
- var handleKeyDown = function handleKeyDown(event) {
- var e = event || window.event;
- var keyCode = e.keyCode || e.which;
-
- if ([9, 13, 32, 27, 37, 38, 39, 40].indexOf(keyCode) === -1) {
- // Don't do work on keys we don't care about.
- return;
- }
-
- var targetElement = e.target || e.srcElement;
-
- var focusableElements = getFocusableElements(params.focusCancel);
- var btnIndex = -1; // Find the button - note, this is a nodelist, not an array.
- for (var _i4 = 0; _i4 < focusableElements.length; _i4++) {
- if (targetElement === focusableElements[_i4]) {
- btnIndex = _i4;
- break;
- }
- }
-
- // TAB
- if (keyCode === 9) {
- if (!e.shiftKey) {
- // Cycle to the next button
- setFocus(btnIndex, 1);
- } else {
- // Cycle to the prev button
- setFocus(btnIndex, -1);
- }
- e.stopPropagation();
- e.preventDefault();
-
- // ARROWS - switch focus between buttons
- } else if (keyCode === 37 || keyCode === 38 || keyCode === 39 || keyCode === 40) {
- // focus Cancel button if Confirm button is currently focused
- if (document.activeElement === confirmButton && isVisible(cancelButton)) {
- cancelButton.focus();
- // and vice versa
- } else if (document.activeElement === cancelButton && isVisible(confirmButton)) {
- confirmButton.focus();
- }
-
- // ENTER/SPACE
- } else if (keyCode === 13 || keyCode === 32) {
- if (btnIndex === -1 && params.allowEnterKey) {
- // ENTER/SPACE clicked outside of a button.
- if (params.focusCancel) {
- fireClick(cancelButton, e);
- } else {
- fireClick(confirmButton, e);
- }
- e.stopPropagation();
- e.preventDefault();
- }
-
- // ESC
- } else if (keyCode === 27 && params.allowEscapeKey === true) {
- sweetAlert.closeModal(params.onClose);
- reject('esc');
- }
- };
-
- states.previousWindowKeyDown = window.onkeydown;
- window.onkeydown = handleKeyDown;
-
- // Loading state
- if (params.buttonsStyling) {
- confirmButton.style.borderLeftColor = params.confirmButtonColor;
- confirmButton.style.borderRightColor = params.confirmButtonColor;
- }
-
- /**
- * Show spinner instead of Confirm button and disable Cancel button
- */
- sweetAlert.showLoading = sweetAlert.enableLoading = function () {
- show(buttonsWrapper);
- show(confirmButton, 'inline-block');
- addClass(buttonsWrapper, swalClasses.loading);
- addClass(modal, swalClasses.loading);
- confirmButton.disabled = true;
- cancelButton.disabled = true;
- };
-
- /**
- * Show spinner instead of Confirm button and disable Cancel button
- */
- sweetAlert.hideLoading = sweetAlert.disableLoading = function () {
- if (!params.showConfirmButton) {
- hide(confirmButton);
- if (!params.showCancelButton) {
- hide(getButtonsWrapper());
- }
- }
- removeClass(buttonsWrapper, swalClasses.loading);
- removeClass(modal, swalClasses.loading);
- confirmButton.disabled = false;
- cancelButton.disabled = false;
- };
-
- sweetAlert.getTitle = function () {
- return getTitle();
- };
- sweetAlert.getContent = function () {
- return getContent();
- };
- sweetAlert.getInput = function () {
- return getInput();
- };
- sweetAlert.getImage = function () {
- return getImage();
- };
- sweetAlert.getButtonsWrapper = function () {
- return getButtonsWrapper();
- };
- sweetAlert.getConfirmButton = function () {
- return getConfirmButton();
- };
- sweetAlert.getCancelButton = function () {
- return getCancelButton();
- };
-
- sweetAlert.enableButtons = function () {
- confirmButton.disabled = false;
- cancelButton.disabled = false;
- };
-
- sweetAlert.disableButtons = function () {
- confirmButton.disabled = true;
- cancelButton.disabled = true;
- };
-
- sweetAlert.enableConfirmButton = function () {
- confirmButton.disabled = false;
- };
-
- sweetAlert.disableConfirmButton = function () {
- confirmButton.disabled = true;
- };
-
- sweetAlert.enableInput = function () {
- var input = getInput();
- if (!input) {
- return false;
- }
- if (input.type === 'radio') {
- var radiosContainer = input.parentNode.parentNode;
- var radios = radiosContainer.querySelectorAll('input');
- for (var _i5 = 0; _i5 < radios.length; _i5++) {
- radios[_i5].disabled = false;
- }
- } else {
- input.disabled = false;
- }
- };
-
- sweetAlert.disableInput = function () {
- var input = getInput();
- if (!input) {
- return false;
- }
- if (input && input.type === 'radio') {
- var radiosContainer = input.parentNode.parentNode;
- var radios = radiosContainer.querySelectorAll('input');
- for (var _i6 = 0; _i6 < radios.length; _i6++) {
- radios[_i6].disabled = true;
- }
- } else {
- input.disabled = true;
- }
- };
-
- // Set modal min-height to disable scrolling inside the modal
- sweetAlert.recalculateHeight = debounce(function () {
- var modal = getModal();
- if (!modal) {
- return;
- }
- var prevState = modal.style.display;
- modal.style.minHeight = '';
- show(modal);
- modal.style.minHeight = modal.scrollHeight + 1 + 'px';
- modal.style.display = prevState;
- }, 50);
-
- // Show block with validation error
- sweetAlert.showValidationError = function (error) {
- var validationError = getValidationError();
- validationError.innerHTML = error;
- show(validationError);
-
- var input = getInput();
- if (input) {
- focusInput(input);
- addClass(input, swalClasses.inputerror);
- }
- };
-
- // Hide block with validation error
- sweetAlert.resetValidationError = function () {
- var validationError = getValidationError();
- hide(validationError);
- sweetAlert.recalculateHeight();
-
- var input = getInput();
- if (input) {
- removeClass(input, swalClasses.inputerror);
- }
- };
-
- sweetAlert.getProgressSteps = function () {
- return params.progressSteps;
- };
-
- sweetAlert.setProgressSteps = function (progressSteps) {
- params.progressSteps = progressSteps;
- setParameters(params);
- };
-
- sweetAlert.showProgressSteps = function () {
- show(getProgressSteps());
- };
-
- sweetAlert.hideProgressSteps = function () {
- hide(getProgressSteps());
- };
-
- sweetAlert.enableButtons();
- sweetAlert.hideLoading();
- sweetAlert.resetValidationError();
-
- // inputs
- var inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];
- var input = void 0;
- for (var _i7 = 0; _i7 < inputTypes.length; _i7++) {
- var inputClass = swalClasses[inputTypes[_i7]];
- var inputContainer = getChildByClass(modal, inputClass);
- input = getInput(inputTypes[_i7]);
-
- // set attributes
- if (input) {
- for (var j in input.attributes) {
- if (input.attributes.hasOwnProperty(j)) {
- var attrName = input.attributes[j].name;
- if (attrName !== 'type' && attrName !== 'value') {
- input.removeAttribute(attrName);
- }
- }
- }
- for (var attr in params.inputAttributes) {
- input.setAttribute(attr, params.inputAttributes[attr]);
- }
- }
-
- // set class
- inputContainer.className = inputClass;
- if (params.inputClass) {
- addClass(inputContainer, params.inputClass);
- }
-
- hide(inputContainer);
- }
-
- var populateInputOptions = void 0;
- switch (params.input) {
- case 'text':
- case 'email':
- case 'password':
- case 'number':
- case 'tel':
- case 'url':
- input = getChildByClass(modal, swalClasses.input);
- input.value = params.inputValue;
- input.placeholder = params.inputPlaceholder;
- input.type = params.input;
- show(input);
- break;
- case 'file':
- input = getChildByClass(modal, swalClasses.file);
- input.placeholder = params.inputPlaceholder;
- input.type = params.input;
- show(input);
- break;
- case 'range':
- var range = getChildByClass(modal, swalClasses.range);
- var rangeInput = range.querySelector('input');
- var rangeOutput = range.querySelector('output');
- rangeInput.value = params.inputValue;
- rangeInput.type = params.input;
- rangeOutput.value = params.inputValue;
- show(range);
- break;
- case 'select':
- var select = getChildByClass(modal, swalClasses.select);
- select.innerHTML = '';
- if (params.inputPlaceholder) {
- var placeholder = document.createElement('option');
- placeholder.innerHTML = params.inputPlaceholder;
- placeholder.value = '';
- placeholder.disabled = true;
- placeholder.selected = true;
- select.appendChild(placeholder);
- }
- populateInputOptions = function populateInputOptions(inputOptions) {
- for (var optionValue in inputOptions) {
- var option = document.createElement('option');
- option.value = optionValue;
- option.innerHTML = inputOptions[optionValue];
- if (params.inputValue === optionValue) {
- option.selected = true;
- }
- select.appendChild(option);
- }
- show(select);
- select.focus();
- };
- break;
- case 'radio':
- var radio = getChildByClass(modal, swalClasses.radio);
- radio.innerHTML = '';
- populateInputOptions = function populateInputOptions(inputOptions) {
- for (var radioValue in inputOptions) {
- var radioInput = document.createElement('input');
- var radioLabel = document.createElement('label');
- var radioLabelSpan = document.createElement('span');
- radioInput.type = 'radio';
- radioInput.name = swalClasses.radio;
- radioInput.value = radioValue;
- if (params.inputValue === radioValue) {
- radioInput.checked = true;
- }
- radioLabelSpan.innerHTML = inputOptions[radioValue];
- radioLabel.appendChild(radioInput);
- radioLabel.appendChild(radioLabelSpan);
- radioLabel.for = radioInput.id;
- radio.appendChild(radioLabel);
- }
- show(radio);
- var radios = radio.querySelectorAll('input');
- if (radios.length) {
- radios[0].focus();
- }
- };
- break;
- case 'checkbox':
- var checkbox = getChildByClass(modal, swalClasses.checkbox);
- var checkboxInput = getInput('checkbox');
- checkboxInput.type = 'checkbox';
- checkboxInput.value = 1;
- checkboxInput.id = swalClasses.checkbox;
- checkboxInput.checked = Boolean(params.inputValue);
- var label = checkbox.getElementsByTagName('span');
- if (label.length) {
- checkbox.removeChild(label[0]);
- }
- label = document.createElement('span');
- label.innerHTML = params.inputPlaceholder;
- checkbox.appendChild(label);
- show(checkbox);
- break;
- case 'textarea':
- var textarea = getChildByClass(modal, swalClasses.textarea);
- textarea.value = params.inputValue;
- textarea.placeholder = params.inputPlaceholder;
- show(textarea);
- break;
- case null:
- break;
- default:
- console.error('SweetAlert2: Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "' + params.input + '"');
- break;
- }
-
- if (params.input === 'select' || params.input === 'radio') {
- if (params.inputOptions instanceof Promise) {
- sweetAlert.showLoading();
- params.inputOptions.then(function (inputOptions) {
- sweetAlert.hideLoading();
- populateInputOptions(inputOptions);
- });
- } else if (_typeof(params.inputOptions) === 'object') {
- populateInputOptions(params.inputOptions);
- } else {
- console.error('SweetAlert2: Unexpected type of inputOptions! Expected object or Promise, got ' + _typeof(params.inputOptions));
- }
- }
-
- openModal(params.animation, params.onOpen);
-
- // Focus the first element (input or button)
- if (params.allowEnterKey) {
- setFocus(-1, 1);
- } else {
- if (document.activeElement) {
- document.activeElement.blur();
- }
- }
-
- // fix scroll
- getContainer().scrollTop = 0;
-
- // Observe changes inside the modal and adjust height
- if (typeof MutationObserver !== 'undefined' && !swal2Observer) {
- swal2Observer = new MutationObserver(sweetAlert.recalculateHeight);
- swal2Observer.observe(modal, { childList: true, characterData: true, subtree: true });
- }
- });
-};
-
-/*
- * Global function to determine if swal2 modal is shown
- */
-sweetAlert.isVisible = function () {
- return !!getModal();
-};
-
-/*
- * Global function for chaining sweetAlert modals
- */
-sweetAlert.queue = function (steps) {
- queue = steps;
- var resetQueue = function resetQueue() {
- queue = [];
- document.body.removeAttribute('data-swal2-queue-step');
- };
- var queueResult = [];
- return new Promise(function (resolve, reject) {
- (function step(i, callback) {
- if (i < queue.length) {
- document.body.setAttribute('data-swal2-queue-step', i);
-
- sweetAlert(queue[i]).then(function (result) {
- queueResult.push(result);
- step(i + 1, callback);
- }, function (dismiss) {
- resetQueue();
- reject(dismiss);
- });
- } else {
- resetQueue();
- resolve(queueResult);
- }
- })(0);
- });
-};
-
-/*
- * Global function for getting the index of current modal in queue
- */
-sweetAlert.getQueueStep = function () {
- return document.body.getAttribute('data-swal2-queue-step');
-};
-
-/*
- * Global function for inserting a modal to the queue
- */
-sweetAlert.insertQueueStep = function (step, index) {
- if (index && index < queue.length) {
- return queue.splice(index, 0, step);
- }
- return queue.push(step);
-};
-
-/*
- * Global function for deleting a modal from the queue
- */
-sweetAlert.deleteQueueStep = function (index) {
- if (typeof queue[index] !== 'undefined') {
- queue.splice(index, 1);
- }
-};
-
-/*
- * Global function to close sweetAlert
- */
-sweetAlert.close = sweetAlert.closeModal = function (onComplete) {
- var container = getContainer();
- var modal = getModal();
- if (!modal) {
- return;
- }
- removeClass(modal, swalClasses.show);
- addClass(modal, swalClasses.hide);
- clearTimeout(modal.timeout);
-
- resetPrevState();
-
- var removeModalAndResetState = function removeModalAndResetState() {
- if (container.parentNode) {
- container.parentNode.removeChild(container);
- }
- removeClass(document.documentElement, swalClasses.shown);
- removeClass(document.body, swalClasses.shown);
- undoScrollbar();
- undoIOSfix();
- };
-
- // If animation is supported, animate
- if (animationEndEvent && !hasClass(modal, swalClasses.noanimation)) {
- modal.addEventListener(animationEndEvent, function swalCloseEventFinished() {
- modal.removeEventListener(animationEndEvent, swalCloseEventFinished);
- if (hasClass(modal, swalClasses.hide)) {
- removeModalAndResetState();
- }
- });
- } else {
- // Otherwise, remove immediately
- removeModalAndResetState();
- }
- if (onComplete !== null && typeof onComplete === 'function') {
- setTimeout(function () {
- onComplete(modal);
- });
- }
-};
-
-/*
- * Global function to click 'Confirm' button
- */
-sweetAlert.clickConfirm = function () {
- return getConfirmButton().click();
-};
-
-/*
- * Global function to click 'Cancel' button
- */
-sweetAlert.clickCancel = function () {
- return getCancelButton().click();
-};
-
-/**
- * Set default params for each popup
- * @param {Object} userParams
- */
-sweetAlert.setDefaults = function (userParams) {
- if (!userParams || (typeof userParams === 'undefined' ? 'undefined' : _typeof(userParams)) !== 'object') {
- return console.error('SweetAlert2: the argument for setDefaults() is required and has to be a object');
- }
-
- for (var param in userParams) {
- if (!defaultParams.hasOwnProperty(param) && param !== 'extraParams') {
- console.warn('SweetAlert2: Unknown parameter "' + param + '"');
- delete userParams[param];
- }
- }
-
- _extends(modalParams, userParams);
-};
-
-/**
- * Reset default params for each popup
- */
-sweetAlert.resetDefaults = function () {
- modalParams = _extends({}, defaultParams);
-};
-
-sweetAlert.noop = function () {};
-
-sweetAlert.version = '6.6.2';
-
-sweetAlert.default = sweetAlert;
-
-return sweetAlert;
-
-})));
-if (window.Sweetalert2) window.sweetAlert = window.swal = window.Sweetalert2;
diff --git a/assets/stylesheets/admin/components/index.php b/assets/stylesheets/admin/components/index.php
deleted file mode 100644
index 02d344bc..00000000
--- a/assets/stylesheets/admin/components/index.php
+++ /dev/null
@@ -1,2 +0,0 @@
- span.selection > span.select2-selection:focus {
- background-color: #f2dede;
- border-color: #ebccd1;
- box-shadow: 1px 1px #ebccd1;
-}
-
-#woo-pagarme-capture .inside {
- display: block !important;
-}
-#woo-pagarme-capture .wrapper {
- margin: 0;
- overflow-x: auto;
-}
-#woo-pagarme-capture .wrapper table {
- width: 100%;
- background: #fff;
-}
-#woo-pagarme-capture .wrapper table thead th {
- text-align: left;
- padding: 1em;
- font-weight: normal;
- color: #999;
- background: #f8f8f8;
- -webkit-touch-callout: none;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-#woo-pagarme-capture .wrapper table thead th.sortable {
- cursor: pointer;
-}
-#woo-pagarme-capture .wrapper table thead th:last-child {
- padding-right: 2em;
-}
-#woo-pagarme-capture .wrapper table thead th:first-child {
- padding-left: 2em;
-}
-#woo-pagarme-capture .wrapper table thead th .wc-arrow {
- float: right;
- position: relative;
- margin-right: -1em;
-}
-#woo-pagarme-capture .wrapper table tbody th, #woo-pagarme-capture .wrapper table td {
- padding: 1.5em 1em 1em;
- text-align: left;
- line-height: 1.5em;
- vertical-align: top;
- border-bottom: 1px solid #f8f8f8;
-}
-#woo-pagarme-capture .wrapper table tbody th textarea, #woo-pagarme-capture .wrapper table td textarea {
- width: 100%;
-}
-#woo-pagarme-capture .wrapper table tbody th input, #woo-pagarme-capture .wrapper table tbody th textarea, #woo-pagarme-capture .wrapper table td input, #woo-pagarme-capture .wrapper table td textarea {
- font-size: 14px;
- padding: 4px;
- color: #555;
-}
-#woo-pagarme-capture .wrapper table tbody th:last-child, #woo-pagarme-capture .wrapper table td:last-child {
- padding-right: 2em;
-}
-#woo-pagarme-capture .wrapper table tbody th:first-child, #woo-pagarme-capture .wrapper table td:first-child {
- padding-left: 2em;
-}
-#woo-pagarme-capture .wrapper table tbody tr.selected {
- background: #f5ebf3;
-}
-#woo-pagarme-capture .wrapper table tbody tr.selected td {
- border-color: #e6cce1;
- opacity: 0.8;
-}
-#woo-pagarme-capture .wrapper table tbody tr:last-child td {
- border-bottom: 1px solid #dfdfdf;
-}
-#woo-pagarme-capture .wrapper table tbody tr:first-child td {
- border-top: 8px solid #f8f8f8;
-}
-#woo-pagarme-capture .wrapper table tbody.items tr:first-child td {
- border-top: none;
-}
-#woo-pagarme-capture .wrapper table .action {
- text-align: center;
-}
-
-/*
-* iziModal | v1.5.1
-* http://izimodal.marcelodolce.com
-* by Marcelo Dolce.
-*/
-.iziModal {
- display: none;
- position: fixed;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- margin: auto;
- background: #FFF;
- box-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
- transition: margin-top 0.3s ease, height 0.3s ease;
- transform: translateZ(0);
-}
-
-.iziModal * {
- -webkit-font-smoothing: antialiased;
-}
-
-.iziModal::after {
- content: "";
- width: 100%;
- height: 0px;
- opacity: 0;
- position: absolute;
- left: 0;
- bottom: 0;
- z-index: 1;
- background: -moz-linear-gradient(top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.35) 100%);
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(0, 0, 0, 0)), color-stop(100%, rgba(0, 0, 0, 0.35)));
- background: -webkit-linear-gradient(top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.35) 100%);
- background: -o-linear-gradient(top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.35) 100%);
- background: -ms-linear-gradient(top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.35) 100%);
- background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.35) 100%);
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#00000000", endColorstr="#59000000",GradientType=0 );
- transition: height 0.3s ease-in-out, opacity 0.3s ease-in-out;
- pointer-events: none;
-}
-
-.iziModal.hasShadow::after {
- height: 30px;
- opacity: 1;
-}
-
-.iziModal .iziModal-progressbar {
- position: absolute;
- left: 0;
- top: 0px;
- width: 100%;
- z-index: 1;
-}
-
-.iziModal .iziModal-progressbar > div {
- height: 2px;
- width: 100%;
-}
-
-.iziModal .iziModal-header {
- background: #88A0B9;
- padding: 14px 18px 15px 18px;
- box-shadow: inset 0 -10px 15px -12px rgba(0, 0, 0, 0.3), 0 0 0px #555;
- overflow: hidden;
- position: relative;
- z-index: 10;
-}
-
-.iziModal .iziModal-header-icon {
- font-size: 40px;
- color: rgba(255, 255, 255, 0.5);
- padding: 0 15px 0 0;
- margin: 0;
- float: left;
-}
-
-.iziModal .iziModal-header-title {
- color: #FFF;
- font-size: 18px;
- font-weight: 600;
- line-height: 1.3;
-}
-
-.iziModal .iziModal-header-subtitle {
- color: rgba(255, 255, 255, 0.6);
- font-size: 12px;
- line-height: 1.45;
-}
-
-.iziModal .iziModal-header-title, .iziModal .iziModal-header-subtitle {
- display: block;
- margin: 0;
- padding: 0;
- font-family: "Lato", Arial;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- text-align: left;
-}
-
-.iziModal .iziModal-header-buttons {
- position: absolute;
- top: 50%;
- right: 10px;
- margin: -17px 0 0 0;
-}
-
-.iziModal .iziModal-button {
- display: block;
- float: right;
- z-index: 2;
- outline: none;
- height: 34px;
- width: 34px;
- border: 0;
- padding: 0;
- margin: 0;
- opacity: 0.3;
- border-radius: 50%;
- transition: transform 0.5s cubic-bezier(0.16, 0.81, 0.32, 1), opacity 0.5s ease;
- background-size: 67% !important;
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
- -webkit-tap-highlight-color: transparent;
- /* For some Androids */
-}
-
-.iziModal .iziModal-button-close {
- background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODZCQkIzQ0I0RTg0MTFFNjlBODI4QTFBRTRBMkFCMDQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODZCQkIzQ0M0RTg0MTFFNjlBODI4QTFBRTRBMkFCMDQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4NkJCQjNDOTRFODQxMUU2OUE4MjhBMUFFNEEyQUIwNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4NkJCQjNDQTRFODQxMUU2OUE4MjhBMUFFNEEyQUIwNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsgTJLcAAALJSURBVHja3JnLS1VBHMfvQ7g9dBXRRrwEFRciAhMi1JRW1aIHVEIYEkW0iVpUhOD/ICK6cFMgSbUpC6VFkQa9NtpjkauriRY9Noa3pHT8/mIODMM5Or85o87pC5/NPf5mvmc8M7+Z36SFEKkY2gj2gUawF2wHW8A6+fwv+A6KYAQMg+dg2rbDtKXhGnAaHJIms4zYz9J4HxgAf1g9k2EGteAhWBBuNApaQNrUg6nRTaAbzIuV0RCocWW4DoyJlVcJXI5ruFk2tJqi/2TWxvA5sXbqA2Ucw01i7dVjargazAo/dE33p6/DlAheg50pP0SJpwG8CH7IaH/Q5pFZUhnoArkwwwVwJeWfdoMLYYZvqG+yTGo9CerAoIWBT+A4qAdPDWOugwo1NVcxJtpFZRLkwH3GJCqCghJfxVjnz1JMMMKnwAbGRAg0B5rAA4O4CblZ+qj8tkBjZthvSzDCtFIMM0ZpQhslk5Eej4jpZ/T7G+ygwG1ghrk+jjNMFy1eMPJzpOAzlou6iWmXZkm91EBHjEwUZXoQTDk2SxqhRh7HTJ9hpstB3rFZ0ldq6J2DnB9m2rXZfxOPlrX1DrJRXiaBXSHPaMHvB0cd9JPLpBImMvzLQTuUFA6A9yHPfoIjhsllOc1l5N4grtmDWgYrl5+JTUZcSjNkeMyxWdpA3ZN72IJj01OJTByJS82J2/wQVxmB5y1HK8x0JWMf/kzdD98FJcY5S51gdwyTQl6eUAraspo27PeWXgy8afim0+CELAwOWHyH9EkdkyWwJ4Yxk6BCP+bTm48anutWW5dAp34IpbW03UOzb0FPVEHbx0LKfvAyqpAyKw97JU8Mt6pml6rAJ6oY6Eu5NfvfF7QTeWWQyEsZr6694lwsNoPD8mKRo29gCNwGj7gXi7aGA1EBcY+8vq0GW8FmJb3Pgx9gEnwAr8Ab8MW2w0UBBgAVyyyaohV7ewAAAABJRU5ErkJggg==") no-repeat 50% 50%;
-}
-
-.iziModal .iziModal-button-fullscreen {
- background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTBBOUI4RUM0RTg0MTFFNjk0NTY4NUNFRkZFNEFEQzIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTBBOUI4RUQ0RTg0MTFFNjk0NTY4NUNFRkZFNEFEQzIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFMEE5QjhFQTRFODQxMUU2OTQ1Njg1Q0VGRkU0QURDMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFMEE5QjhFQjRFODQxMUU2OTQ1Njg1Q0VGRkU0QURDMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrQO6gAAAANmSURBVHjazJlbSBRRGMd3x92i0ForRRMiKiUoX4ouiFlJkRVBDxW9GJERwUasvdRT9FD00osRQtAFqegGBUHRBY0uaCVKEkSRpVR0tSwrQtp1+p/4Bk7D7M45M/Ot/uGHu+Psmf+c+eY753wnbJpmyIfGgvmgiv6WgkKQBwzwE3wBr0AnuAta6ZgnhT0aFuY2ghoyGdH4bS+4Dc6CZjCkdWVhWIPF4JoZnB6CDToeVE8sBidNPt0E5UEZrgG9Jr8GwHa/huMgaWZXDSDsxfBuc/jUBAwdw3Fz+NWoang5SJkjQwm7P3seLqQEX2LLfgfBdZcMORMcBqNDwekPqASP0uXhpjR3Ok0x/fUw9HIHGGVdw5DuRtzJpgxDsJui2qOWmuaAOuuLbHivz4YLwLgQj/aAXNmwuItlHhtbA7pAG5jEZHgKWCcbrhUTIY+NPQVjqFFObbYMi/hc6aOhl2AJ9TKnFoIyYXgemKEzJQXVVkyR3oFVzKZFuqw2qHdyFPKhrHPgMoWC3fRjRtNVVg+7SR5IiqmXxUt60cG0CK/vTIZniZVCmcKJF0C3ZNjKBqvJ9Hrwm46tsN1EkCoRQ/M3fBjvs6GrYAvdwHEfGcd1qBaGkwoxrKI+xjz83yJ0iLFHApd46X4xX+M+WECh4lepCNUIcpnMijrEWtAvTRHrbOd8FZNG8uA2Nf0hpmwtjBPwpQ5T0GPS/+tBAZhIq+b3Lu09EyHRwRgO+0C+7dhWcII+PwCf6Sk/Aa9d2vtn+A7nyASugJiD6YSDQcOlvVbxiCaAN8xrs3sgprBiac/QhlhnzjUo6JuZM0UlDS5FPtoQIdNlPYJTWUihFaDex+9Pg6T1KHJAJ2NI7ASllA28hEQ/KJIXoSlwgKlnh+jFe+GjLtwIPtjfyktUt+UaUZWqvw7H3oJD1peI7eQdoF1xWa+zQikHH13OmwqmOxxP0EiZtgK/DRwNuIcHwSeXc2K01WAPhbhKBb5hBNTVbskVH7fqpZGhbJUNtYF83fqwQSXPbOsGjb6etwx2gcEsmT3iFAZeNmUqaMeHSz2qu0k6W15Rqsx3B2i0D+xXGAHTFrRVlEeFuVoqH+ku6VNUbDkPzlAtg30nVK66i8rRIjAbTKaSQVQyN0DD6nOqcLZQld9TLfmvAAMAeMcvp3eCFqQAAAAASUVORK5CYII=") no-repeat 50% 50%;
-}
-
-.iziModal.isFullscreen .iziModal-button-fullscreen {
- background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkFFRTU5NDA0RTg1MTFFNjk0NEZFQzBGMkVBMDYyRDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkFFRTU5NDE0RTg1MTFFNjk0NEZFQzBGMkVBMDYyRDkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyQUVFNTkzRTRFODUxMUU2OTQ0RkVDMEYyRUEwNjJEOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyQUVFNTkzRjRFODUxMUU2OTQ0RkVDMEYyRUEwNjJEOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuDFfX8AAANASURBVHjazJlZSBVRGMfHcWlB0xZM68GKukQLYaGkmEUR2EsvRfQS+BSJPUQE+lTR8hqIZY8hFS0ERVCRoW3gpUApghYpszLTVnCB3O70/+K7MAwzc78Z58z4hx8XzpzvzJ+Zc+d85ztphmFoU9BsUAoq+XcFyAc5QAfD4BfoBp3gCWjnNl9K82mYzO0FVWwyw0NsD3gIroBWkPB0ZzLsgc3grhGcnoE9XjxIOxaCC4Y6tYC1QRmuAj2Geg2CA1M1XAsmjHDVANL8GK4zolMz0L0YrjWiV5PU8HYw6TBIf8imD6UynA96HYKPg3mgMUTDY6DUzXCzQ+AxSz+r6QEQZz4HbLoDZNkZrnAIoOlRZjN1Gk3XS0zty/gTFaRq7Ay3uAR8BcU2ps/z9QJTWw74HrDhTyDbbHg9SKQI+sb9rKa3mV8ZmAt+KJjP1TS+zinFPkqEUqQdBeAOKLa0UwIzpqlXtcYpIKWIO4RBZPoRKNfC10YQI8MlYLkwaAB8ABsiMDwDbKU8dgtIFwRMgJ3guRadKpNPWBMa7tOi1WoyHJPuTsC4oN+IQsOLM3gPJlEWqOE/neMGBqwDeYoMz6G8c0I4h6eFyHBC8A2eVoaH8JutaPwuUA/+uvSht1sHKgTjTWZwjUCVYdrK3xT0iwkND+lc5FClUQ9fINHCRYY7FBrWPSz5Er2lAR9H9P+hpfYGl64OCmPadQ7ojcDwOJetysBMQX/6mrWS4d+cIoYtMnAEnBT2fwVeJufYxZBMFoKFlrajQtOX/uczvEtIB50Kdgn1lt3JGdANltjsXE64jPMnuQ1LPuFJcFrBE11gzQXAUnAPFNk86esO4zSBfmu5lVa9toCf8DC4Ba6C22DEdO01KDLdP5fLr1Z94X2ibV1ilWVQ1XrDpvPAU4c+u1KVqvaHXI7q43ltp3PSYmDDNCgGPrCUD1wN6y5lqzAUN89baX1Y55Jn2LrPRUffRwaHwWhIZs/aTQM/hzLlDp+coPRReprk5cgrkyvz7wM0+hOcAvOlPvwcLNIp526ux1H5aJbHeFpVX4Br4LLXWoffk9CkVnLlaBNYAxaBXJBpMjfIy+o7EAdtfIyb8HPDfwIMAM1WPs8F9tcxAAAAAElFTkSuQmCC") no-repeat 50% 50%;
-}
-
-.iziModal .iziModal-button-close:hover {
- transform: rotate(180deg);
-}
-
-.iziModal .iziModal-button:hover {
- opacity: 0.8;
-}
-
-.iziModal .iziModal-header.iziModal-noSubtitle {
- height: auto;
- padding: 10px 15px 12px 15px;
-}
-
-.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-header-icon {
- font-size: 23px;
- padding-right: 13px;
-}
-
-.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-header-title {
- font-size: 15px;
- margin: 3px 0 0 0;
- font-weight: 400;
-}
-
-.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-header-buttons {
- right: 6px;
- margin: -16px 0 0 0;
-}
-
-.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-button {
- height: 30px;
- width: 30px;
-}
-
-/* RTL */
-.iziModal-rtl {
- direction: rtl;
-}
-
-.iziModal-rtl .iziModal-header {
- padding: 14px 18px 15px 40px;
-}
-
-.iziModal-rtl .iziModal-header-icon {
- float: right;
- padding: 0 0 0 15px;
-}
-
-.iziModal-rtl .iziModal-header-buttons {
- right: initial;
- left: 10px;
-}
-
-.iziModal-rtl .iziModal-button {
- float: left;
-}
-
-.iziModal-rtl .iziModal-header-title, .iziModal-rtl .iziModal-header-subtitle {
- text-align: right;
- font-family: Tahoma, "Lato", Arial;
- font-weight: 500;
-}
-
-.iziModal-rtl .iziModal-header.iziModal-noSubtitle {
- padding: 10px 15px 12px 40px;
-}
-
-.iziModal-rtl .iziModal-header.iziModal-noSubtitle .iziModal-header-icon {
- padding: 0 0 0 13px;
-}
-
-/* LIGHT THEME */
-.iziModal.iziModal-light .iziModal-header-icon {
- color: rgba(0, 0, 0, 0.5);
-}
-
-.iziModal.iziModal-light .iziModal-header-title {
- color: #000;
-}
-
-.iziModal.iziModal-light .iziModal-header-subtitle {
- color: rgba(0, 0, 0, 0.6);
-}
-
-.iziModal.iziModal-light .iziModal-button-close {
- background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4JpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyQTU1RUZDNzRFODQxMUU2ODAxOEUwQzg0QjBDQjI3OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NEM4MTU1MEI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTNFNENDMkI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZjYzMwMmE1LWFlMjEtNDI3ZS1hMmE4LTJlYjhlMmZlY2E3NSIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjdmYmU3NGE3LTAxMDUtMTE3YS1hYmM3LWEzNWNkOWU1Yzc4NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Po24QssAAANtSURBVHja3JlJaBRBFIa7ZxyTSXADHUkikuAawZNLEOOGGrwJQYko8R4RBQ+OICoqghJQUVwPYjzFY0QUBQU1kogoKO6CG0pcIwbiNibj/8JraNvu6Xo9NTOtP3xzSKe6/65+Ve9VlWlkp2IwGUwFE0E5GA4G8/U+0APegWfgHrgPuq0bpNNp0QPNgEYngHlgGpuMCNp2s+kr4BYM/8ql4WqwHEzP4mXteg7awOW0YlerPnQIaARLNBl1ikLlBDw/1WF4ClgHKozc6idogekz2RheANbaBlE+dB4chfF+qeHF3LOF0FWwF6b7nBe8RvecApolzQVr3C64GR4H1huFV51pmvV+hikRbABFRji0GqarMxluAGON8CgKmmA65mZ4DFhqhE9VPP//ZXgZiCmm1t1gI6XWAAY+gF0gCe4qtqlHL8fthkeBWsXGreA6eMgPviEw+x5sBZ3gAdjPCcNPI8Fsu+FawUCzz40psEfRNJndBl7b/pZmVLTQMkzJo0bQSys43iWm3cxS+DUJOmoSwqKCRmEZWKkYv6RSMBPc5lqXRGm0A1Q6XiaT2aSwo8jrK/qZwZlFIlXTusxa6iXDddTdARpnMj2ek9AWjWYH7h/lubcs4A28THdyAdOl0ezAmKNBNyLLiT0Btjti9zuHg06zpJKIprohwXNypcu1OIdGjYbnxCLGPyYy/EPDfejzbwYvXK59AzuFGdFLKTL8WYNZ59RVzGESJCNm0teI40E6zNIA2wSaA2REP32iaW0omKXRbJKTUVyYEVV0J8oxvEiQmiUZrFSz6XNkuJe3nBKCelaSbjOZrhLsd1BInYxweSeJq9YA6dYtuZCBI4JZ6jGW/W+sebhd0DAaMIO5mTYFW1+X6GeQ7TO3W0WyQj3cw0ulBg4nSUbcAY7zPVYp7ip95FXOH29Hb35AOPjypWMIh7PORSjFZVsIzdKW7AWvfYnTVNWHyCytHw+jd1Nehqks3KepvtChUzD7yGvE2/cduqxldQF1EWZb/PbWLF3jAVgo0WrlkN+c6hSd+rzlaSuaR7O0oX0wyIa2pVAdGaj0HCUVOqIq4dVwrg5lmmG2w+8f/9tjL6foYHE+Gy8Xtv3CPUpf7WauDxadKuIwoeNbOmoYDYbZ0ns/1wxUC7ykigs8sS/LpEe3vwUYALiKDDDSgEiSAAAAAElFTkSuQmCC") no-repeat 50% 50%;
-}
-
-.iziModal.iziModal-light .iziModal-button-fullscreen {
- background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4JpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpEQTg1NTA2NTRFODQxMUU2OTQ0N0VERjY2Q0M5ODYwRCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RTNFNENCQkI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTNFNENCQUI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFlNTQwYzczLTVhZmEtNDJlYi04YzJlLWMwMzFlYmFiYmIyNiIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmVkYmRiMzM1LTAxMDUtMTE3YS1hYmM3LWEzNWNkOWU1Yzc4NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvIicdUAAAOvSURBVHjaxJlZbA1hFMe/qaItUUsspakg1laJ7UUisQuRvvTFA15sQSRCLBFrQryhHqxNHxEPtaQ8CCUkIrVVRbVBJdZYSrXVonr9/3pGxnTunZk78/X+k1+aO+1899/vnnvO+c4YKpi6ghEgW34OBD1BKjBAM6gH78Fz8BhUyrW/ikQivt7QiNMozU0DE8RkJx/3fgCPwA1QHvHp2K/hHJAPJqpwVA2K4flW2IZ7gyVgptKjh6AQxl+GYZi7uRr0U3rVBIpg+nIQwwvACpCkOk4XwYlosR3LMGN1qUqMroGDTqaNGDu7SiVWl+D3iP2i00c9HqxUidd8wzDy3HY4HRwCfWzXz4L7Lm+QKfHeOUTTLWAzdro6muH1YIbDjculWrmpUEM2YYXcCNMt9pAYE8WsWYLdlAxaNYTGMDDHKYYXBVy4B0jTFM/5iOcUc1fM/2JcnItNAYtBNzGtQ33BVHDV3OHpARqhV6CLLKpTs8yQYHxOCrDQO7AV1Gg2PBJhMYiGh4MMnx1eLkixXKsFuzSbZrrMpeGxHnqFFtvrTWCbhILd9AuNpnPMHXaTtZD0kl1mRdwSxXSjJsNZfONjcmqIJR5p3lp6Y+sXrAzsBz/lNXvmtZYMFKbqafi0pKQgKpOSPhmsC5BxXEs1Fz4fUr/7TWMe/q9bC2s3tJs1Df/Q/B5PwAZwJYS1WpPlo0zRZJZziL2gQU7I1GyHL7QSD26taVOytI26DpinxKypApvpk+C6dHlMnXskbUbT1yTpN3WJHWB327UCS3hUoc+tA/VyxP/ost5rGq7QWZnAdoe0eZgnYweDbgmgkoafgk8aTfNgsMNmmqfhC+Czj3V4T3mSBH255kxB0ztd4tNNDJkas2CUdkAKHQ3yAtxfijj/bdb7Cumyhmoyexzcs6Qwv2qUbPKvJDOtnNFklrF3R5qneA2XYHe/2A+ht1Xb3FZXRY1XTAjFTgtxJ45qKtWDpZK1g6dhIQuvBzjcy8FgQ6y8Nw+sCdnwL1Dn8jdMe6m2a+3ma9ESNUdOC1VixSH3bnPiYyraswnO0fqDIQkyW8WmCWab7b+I9TCF3+x0j2e+MPUA7LPGrVfD1F3VNsrPVR0zhS8BB5x21muzYa1Sy1Tb4y4d4qOwIi9Pk/wcj1gV50p5zQjJKAsJH8KcY4vpdYrjV0w9HMxxHjfKNpfwdMyRNuAmyy2M1vq5OegBNFMmR9lSHDizSLPMJGjuO2BZfSOtLKvpMylUvh/d/hFgAOH4+ibxGTZuAAAAAElFTkSuQmCC") no-repeat 50% 50%;
-}
-
-.iziModal.iziModal-light.isFullscreen .iziModal-button-fullscreen {
- background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3BpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyRUUxMkYxODRFODUxMUU2Qjc3RDk0MUUzMzJDRjBEOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RTNFNENCRkI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTNFNENCRUI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjgzM2MwOWZiLWJjOTEtNGVlZS05MDM1LTRkMmU2ZmE1ZjBmMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRUUxMkYxODRFODUxMUU2Qjc3RDk0MUUzMzJDRjBEOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv1Q9Z8AAAOXSURBVHjaxJlLbA1RGMfPjIs+EvoIRYt4FVUl2EkkRTxKUqQbG0SEho2FjUQ8YtEICbEgTdFYeK1KaGvVeoUltyStt0UlNE17aWhV2+v/9X5XJpMzc8/0zpn5kl+aO3Nm7r/fnPu9xhDp2URQDJbw3xkgB2QCAwyAPvANfARvQDsfG7V4PO7pC40xCiVxa8AKFjnOw7VdoA08BtG4R8VeBZeCKrBS+GPvQAM0P/NbcB7YBdYJPfYKXIXwL34IJm8eBFOFXusH9RDdnI7gLWA/MEVwdh/UOe1tN8G0V3eLcKwFXJCJNl08G5ZYsrWgWnZCJng5OOBwo1iAoisMw6hMJXgyOOywVW7xj+9BgKL3QHSxm+C9IF9y4U2GMlStRPQP8Jbp9lFwhJwE0RHrgaSV8N6xG238l7Zjtfx3K58/Bd7zsWngIqdnP2we2ACa7B7e6RL6joK5EtHNfL7b5u1Bn7dGFbycYRVM/8WyFJnuJK+z2iVwzFrMcF1h+Cx4ClhtFVyu8CW54ITE01EwFMAPcH1SMJWIqxQvItE1YHEIsXkhtkUhCV4ApiteFOPadn4IgseDMooSSxVrhWFwmkvCsKw06WGhKLhHhGuzSHChh9pZ5cc1oFFwfoTTsWrWqQCvXdZQEpkDsjUJziSv3Qu43k3LTA1BXqvRY/4DMjTd/yu4niJVm9wslCjcb4QE/9Qo+Al44baAmgpKCIqC+01OBLrsr8/de8zkiYwuUxWSq7iuM8JhantIqfYItkOepKBysnbycIfPXYKqURL6DhaBCQrrKcZHTa5loyEIJgHXwG3F9TQV+pxMGK0BiaTHn2OLEjcURbdi7XBSMO3jTxoEjtg+7wDnhG3spSD6F3hk7Tjoxnc0CJ5k+5wFCrhplYl2mmI24nyvvWumAE9z2zIfBW8WifnxIHc2yb6xiHtEoms0/hlGtpAPHCkgNDjFyZngPN88COvkPpEe+XGHbFcD7z53C+ybwKEAo0UPZ8QCybkmiL3sNvkheygSI08RYOSQiaUhd52sUpIZLWwJsYqkkdcZeHfIS66nc9XcZQRpNBY7C7F9Yy1OtonErDgSgNhGcEXmWa/VFA1O9onE6y4dRqGtXuVtkpf2iDy8EVR6GLykMnrsNFC867QF0hH8v3MVicFcuYdKy56uqQx4SukWQj3NOtJtQIt4ckSvbmdziMqy7HcS9xv0cn/Xwdn0A1drnl/d/hNgAGQa6Lgarp6BAAAAAElFTkSuQmCC") no-repeat 50% 50%;
-}
-
-.iziModal .iziModal-loader {
- background: #FFF url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDQiIGhlaWdodD0iNDQiIHZpZXdCb3g9IjAgMCA0NCA0NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBzdHJva2U9IiM5OTkiPiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS13aWR0aD0iMiI+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iLTAuOXMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49Ii0wLjlzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgIDwvZz48L3N2Zz4=) no-repeat 50% 50%;
- position: absolute;
- left: 0;
- right: 0;
- top: 0;
- bottom: 0;
- z-index: 9;
-}
-
-.iziModal .iziModal-content-loader {
- background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDQiIGhlaWdodD0iNDQiIHZpZXdCb3g9IjAgMCA0NCA0NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBzdHJva2U9IiM5OTkiPiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS13aWR0aD0iMiI+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iLTAuOXMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49Ii0wLjlzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgIDwvZz48L3N2Zz4=) no-repeat 50% 50%;
-}
-
-.iziModal .iziModal-content:before,
-.iziModal .iziModal-content:after {
- content: "";
- display: table;
-}
-
-.iziModal .iziModal-content:after {
- clear: both;
-}
-
-.iziModal .iziModal-content {
- zoom: 1;
- width: 100%;
- -webkit-overflow-scrolling: touch;
- /*overflow-y: scroll;*/
-}
-
-.iziModal .iziModal-wrap {
- width: 100%;
- position: relative;
- -webkit-overflow-scrolling: touch;
- overflow-scrolling: touch;
-}
-
-.iziModal .iziModal-iframe {
- border: 0;
- margin: 0 0 -6px 0;
- width: 100%;
- transition: height 0.3s ease;
-}
-
-.iziModal-overlay {
- display: block;
- position: fixed;
- top: 0;
- left: 0;
- height: 100%;
- width: 100%;
-}
-
-.iziModal-navigate {
- position: fixed;
- left: 0;
- right: 0;
- top: 0;
- bottom: 0;
- pointer-events: none;
-}
-
-.iziModal-navigate-caption {
- position: absolute;
- left: 10px;
- top: 10px;
- color: white;
- line-height: 16px;
- font-size: 9px;
- font-family: "Lato", Arial;
- letter-spacing: 0.1em;
- text-indent: 0;
- text-align: center;
- width: 70px;
- padding: 5px 0;
- text-transform: uppercase;
- display: none;
-}
-
-.iziModal-navigate-caption::before, .iziModal-navigate-caption::after {
- position: absolute;
- top: 2px;
- width: 20px;
- height: 20px;
- text-align: center;
- line-height: 14px;
- font-size: 12px;
- content: "";
- background-size: 100% !important;
-}
-
-.iziModal-navigate-caption:before {
- left: 0;
- background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAoCAYAAACFFRgXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyNmFjNjAyMy04OWU0LWE0NDAtYmMxMy1kOTA5MTQ3MmYzYjAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDREQ0YwRjA1MzQzMTFFNkE5NUNDRDkyQzEwMzM5RTMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDREQ0YwRUY1MzQzMTFFNkE5NUNDRDkyQzEwMzM5RTMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpmNmM0Nzk3Ni1mNzE3LTk5NDAtYTgyYS1mNTdjNmNiYmU0NWMiIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDowZGVmYTEyZC01MzM0LTExZTYtYWRkYi04Y2NmYjI5ZTAxNjYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7oo0ptAAACWklEQVR42uyZTWsTYRSFZybxo4kWk5g2NC5qTAU3Kq30A9udi1oXolV/hWuhv6R/Q6utioi4LbbVFHemamlRU0OCEk0wZjwXzwtDoBDopHMHcuFJMplZnLm5ue+589qu61qeOApyYAjEgG0FEyLqN/gKiqBuTtgewWlwCZw056xgwwirgU3wxSv4NJgCUV5YBRXQDEhsBJwCSSauBVZFdJRlIJk9Av7wbj577jDIOENtRmPVwcsw6KfAAvikRKzEDlhnhuU/lRPBWaa9wsxqC6ndPX7OiOA4D8qW3vjO9z7H0w3+KhZstNmOFbLoCQ6DYGmL+bAInmGfLFC4asFXwRJIgB+goVmw+I7HXO+/gevGnGgUPEGxktkSmAMbWmt4HDwBKS6XN1jDKrvEFYoVK7oLroE3h93Woh1eNwqWafJ/gQV65vM+ail34mc6EZwBK2CAx8fAIjjeBYMzDT4cVHCEXtRbRvEu/Nr9HCIOnGGp15vgEec9KYn74B0nAT/CZnv86FcNvwK3wENwAjwAs2Bbs5d4CW5zir0AXvv8p+tKH34B5lkW4h2egRHtbu05uMMHHWfB0zC4NRF5l09kzvE4rd2tyUJyjy4tz7akZqXbL8QETbJ/FsMgWOJtb6brCQ5YsBsC8Uab63DVkkgqFpzie93h8OhScFah2LTHi5ccWroaLd5l6//+hpYQoWP05LKqFs2WQYbTsNxAi+5fxpWmdfh7HS7XhwSzG+H3a2JnvZsyktmLbdOFhpDMvrf4sN1u2/aK0cwMcmYLcturweceW+CnOfFPgAEA8uWFFylBJYoAAAAASUVORK5CYII=") no-repeat 50% 50%;
-}
-
-.iziModal-navigate-caption:after {
- right: 0;
- background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAoCAYAAACFFRgXAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADhmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjI2YWM2MDIzLTg5ZTQtYTQ0MC1iYzEzLWQ5MDkxNDcyZjNiMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0NERDRjBGMDUzNDMxMUU2QTk1Q0NEOTJDMTAzMzlFMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0NERDRjBFRjUzNDMxMUU2QTk1Q0NEOTJDMTAzMzlFMyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmY2YzQ3OTc2LWY3MTctOTk0MC1hODJhLWY1N2M2Y2JiZTQ1YyIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjBkZWZhMTJkLTUzMzQtMTFlNi1hZGRiLThjY2ZiMjllMDE2NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuijSm0AAAKbSURBVFhH7ZnJj0xRGEerzFoIMTaCZmOIedhaiJj55yz8DaYdNhIJEUMQbCTG3rQ02hDSiEY553XdTpHS3nv96taV9ElO6lVt6peb7933fffVG41GrYW5uBaX4EysYzcw1Fd8hc/wM2a0Bl6Nm3BW9i0dDPsQX/olBF6FO72AH/gG3+N3jL3KBpqGC3ERTsGfeAsHDTyHi71oCXzBe/gaU2A5bscZOIxXTb8OLQNX9i6mElYsg/voqruwfQb2BhODWgqpMYDv0NLsNXC4yd42P1PEwNJj4HBTWdipErLVDfxfMRm408QMvBu3jV6WJ1Zg9/rbeBOP+UNZYgX+iE/Rp+lpPIKliBXYB9IhtPNy3z/T/F6YmDXsChvyBc7Gs3gACxEzsDzBg9iPPXgO92NuYgeWx2h3+AhtaM7jPsyF7aV37XR8gNZYO/pwKY51+xPkG27Fk2joT3gCr2A7NuJ6HMkTeAPadlp3VeMChF7G0P6X3dmfjAXOUxIj6LZkv1ylNuStDZejkL+PS96ScFzRqnDAtI5PoTefvbg7iNNOOwqVRCfYghdxBbpHH8Y7+DcKlUTV7MLLaNghPIrjhf2N2IF34AVcjE44hrXHyE3MwE6/loEzpEcIlqKjeyFiBe7FS+he/gENewMLEyuwXdo8dGWP43UsRazA9g7uDNbwNX8oS8watlsz+ISIGbgSJgN3GgOHlnFq8zNFQraGgT1iFc9iUyU0XsMGHhy9zh6XbvCp4ZuBBWglDBj4OdqLeu0+uRJTwMZ+Dbp/e21P3m97yWe2snsw1LTHmz5C/9lQdwhfGbiq89GwvrrwUT4UAouhN6MzloTRpVuEYI5O9urZYXtrYPGQw2OlZegM163QhrJMfWVgyTq0Qq32C/N7uPz9OknWAAAAAElFTkSuQmCC") no-repeat 50% 50%;
-}
-
-.iziModal-navigate > button {
- position: fixed;
- bottom: 0;
- top: 0;
- border: 0;
- height: 100%;
- width: 84px;
- background-size: 100% !important;
- cursor: pointer;
- padding: 0;
- opacity: 0.2;
- transition: opacity 0.3s ease;
- pointer-events: all;
- margin: 0;
- outline: none;
-}
-
-.iziModal-navigate > button:hover {
- opacity: 1;
-}
-
-.iziModal-navigate-prev {
- left: 50%;
- background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALwAAAC8CAYAAADCScSrAAAACXBIWXMAAAsTAAALEwEAmpwYAAA5sGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDo2NDkyYzcxMy05ZDM0LTZlNGQtYmUwNi1hMDMyY2Q4NDVjNGU8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDo1QjIzMUMxODU3RjcxMUU2ODUzRkRBRjE5RDhDQjZBRDwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDpjZmMwNzVmNC1kODA3LWI0NDMtYWIwYS02YWVhZjRjMDgxZWE8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0YW5jZUlEPnhtcC5paWQ6NjQ5MmM3MTMtOWQzNC02ZTRkLWJlMDYtYTAzMmNkODQ1YzRlPC9zdFJlZjppbnN0YW5jZUlEPgogICAgICAgICAgICA8c3RSZWY6ZG9jdW1lbnRJRD54bXAuZGlkOjY0OTJjNzEzLTlkMzQtNmU0ZC1iZTA2LWEwMzJjZDg0NWM0ZTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgPC94bXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmNmYzA3NWY0LWQ4MDctYjQ0My1hYjBhLTZhZWFmNGMwODFlYTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQxMTo1ODowNC0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0wOC0wMVQwOTo0MDo1Ni0wMzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTA4LTAxVDExOjU4OjA0LTAzOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0wOC0wMVQxMTo1ODowNC0wMzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjE4ODwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4xODg8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PvAvv7QAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAmdJREFUeNrs1LsJQkEQhtH/mtmBgQ8QA7tQK1e7MBBBMbADwzUZEyuQveeDCXbD4TBDay3SWJpYgYCXgJeAl4CXgJeAl4CXgJeAl4CXgJeAF/AS8BLwEvAS8BLwEvAS8BLwEvAS8BLwAl4CXgJeAl4CXv/WJskpyQJ4jQH7Mcmu0C+BV+/Y5/VeF/oV8Ood+7dpDfDqHvsrySHJBXjBDrxgB16wAy/YgRfswAt24AU78IIdeMEOPOywAw+7gIcdeMEOvGAHXrADL9iBF+zAC3bgBTvwsMMOPOwCHnYBD7uAhx14wQ68YAdesAMv2IEX7MDDDjvwsAt42AU87AIedgEPu4CHXcDDDrxgB16wAw877MDDDjvwsAt42AU87AIedgEPu4CHXcDDLuBhB16wAw877MDDLuBhF/CwC3jYBTzsAh52AQ+7gIddwEtjB3+tS/78+Z/V5d9iATz0Ah56AQ+9gIdewEMv4KEX8NALeOgFPPQCHnoBDz3wgh54QQ889NADDz30wEMv4KEX8NALeOgFPPQCHnoBD72Ahx54QQ+8oAde0AMv6IEX9MBDDz3w0EMPPPQCHnoBD72Ah17AQw+8FUAPvKAHXtADL+iBF/TAC3rgBT3wgh546KEHHnrogYdewEMv4KEHXtADL+iBF/TAC3rgBT3wgh54QQ+8oAde0AMv6IGHHnrgoU/yrgFe3aO/JdknuQOv3tGfC/tjjEsYWmsoyIWXgJeAl4CXgJeAl4CXgJeAl4CXgJeAF/AS8BLwEvAS8BLwEvAS8BLwEvAS8BLwAl4CXgJeAl4CXvqnPgAAAP//AwCEcoCBRabYzAAAAABJRU5ErkJggg==") no-repeat 50% 50%;
-}
-
-.iziModal-navigate-next {
- right: 50%;
- background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALwAAAC8CAYAAADCScSrAAAACXBIWXMAAB3SAAAd0gEUasEwAAA7pGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0wOC0wMVQwOTo0MDoxNC0wMzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTA4LTAxVDExOjU4OjEyLTAzOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0wOC0wMVQxMTo1ODoxMi0wMzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDphZjljN2Q2MC00MTg2LWE3NGQtYTBiMS1mMGU5ODUwYzg2ZGY8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6NjQ5MmM3MTMtOWQzNC02ZTRkLWJlMDYtYTAzMmNkODQ1YzRlPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6NjQ5MmM3MTMtOWQzNC02ZTRkLWJlMDYtYTAzMmNkODQ1YzRlPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY0OTJjNzEzLTlkMzQtNmU0ZC1iZTA2LWEwMzJjZDg0NWM0ZTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQwOTo0MDoxNC0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjAxNjJjMmE3LWZmMjYtYzE0ZC05Yjg4LTc2MGM2NzAxYjYzNzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQxMTo1MTowNy0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmFmOWM3ZDYwLTQxODYtYTc0ZC1hMGIxLWYwZTk4NTBjODZkZjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQxMTo1ODoxMi0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MTkzOTAzNi8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTkzOTAzNi8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTg4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjE4ODwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+nbt1mgAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACQklEQVR42uzSsQ3CQAAEQTdiOyGg/wrciJ0QUMYSECEKAP3PSdvAaZZqkWbJCQJeAl4CXgJeAl4CXgJeAl4CXgJeAl4CXsBLwEvAS8BLwEvAS8BLwEvAS8BLwEvAC3gJeAl4CXgJ+D9vrY7qBgLwo7dVZ+89oAd+5Pbq6nPQAz9s9+rZ96AHHnoBD72Ah17AQy/goRfw0At46AU89AIeegEPvYCHHnhBD7ygBx566IGHHnrgoRfw0At46AU89AIeegEPvYCHXsBDL+ChB17QAy/ogRf0wAt64KGHHnjooQceegEPvYCHXsBDL+ChF/DQAy/ogRf0wAt64AU98IIeeEEPvKAHXtADDz30wEPvI+ChF/DQAy/ogRf0wAt64AU98IIeeEEPvKAHXtADL+iBF/TAC3rgoZ8ePRDAAy/YgRfswAt24AU78IIdeMEOvGAHXrADL9iBhx124GEX8LADL9iBF+zAC3bgBTvwgh14wQ68YAcedtiBh13Awy7gYRfwsAMv2IEX7MALduAFO/CCHXjYYQcedgEPu4CHXcDDLuBhF/CwA+8E2IEX7MALduAFO/Cwww487AIedgEPu4CHXcDDLuBhF/CwC3jYgRfswMMOO/CwC3jYBTzsAh52AQ+7gIddwMMu4GEX8LBravB7dcEO/Ext1Qk78DO1VgfswEvAS8BLwEvAS8BLwEvAS8BLwEvAS8ALeAl4CXgJeAl4CXgJeAl4CXgJeAl4CXgBLwEvAS8BLwEvAS/9shcAAAD//wMAtAygvJrkwJUAAAAASUVORK5CYII=") no-repeat 50% 50%;
-}
-
-.iziModal.isAttachedTop .iziModal-header {
- border-top-left-radius: 0;
- border-top-right-radius: 0;
-}
-
-.iziModal.isAttachedTop {
- margin-top: 0 !important;
- margin-bottom: auto !important;
- border-top-left-radius: 0 !important;
- border-top-right-radius: 0 !important;
-}
-
-.iziModal.isAttachedBottom {
- margin-top: auto !important;
- margin-bottom: 0 !important;
- border-bottom-left-radius: 0 !important;
- border-bottom-right-radius: 0 !important;
-}
-
-.iziModal.isFullscreen {
- max-width: 100% !important;
- margin: 0 !important;
- height: 100% !important;
- border-radius: 0 !important;
-}
-
-.iziModal.isAttached {
- border-radius: 0 !important;
-}
-
-.iziModal.hasScroll .iziModal-wrap {
- overflow-y: auto;
- overflow-x: hidden;
-}
-
-html.iziModal-isOverflow {
- overflow: hidden;
-}
-
-html.iziModal-isOverflow body, html.iziModal-isAttached body {
- overflow-y: scroll;
- position: relative;
-}
-
-html.iziModal-isAttached {
- overflow: hidden;
-}
-
-/* SCROLL */
-.iziModal ::-webkit-scrollbar {
- overflow: visible;
- height: 7px;
- width: 7px;
-}
-
-.iziModal ::-webkit-scrollbar-thumb {
- background-color: rgba(0, 0, 0, 0.2);
- background-clip: padding-box;
- border: solid transparent;
- border-width: 0px;
- min-height: 28px;
- padding: 100px 0 0;
- box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.07);
-}
-
-.iziModal ::-webkit-scrollbar-thumb:active {
- background-color: rgba(0, 0, 0, 0.4);
-}
-
-.iziModal ::-webkit-scrollbar-button {
- height: 0;
- width: 0;
-}
-
-.iziModal ::-webkit-scrollbar-track {
- background-clip: padding-box;
- border: solid transparent;
- border-width: 0 0 0 2px;
-}
-
-/* MODAL ANIMATIONS */
-.iziModal.transitionIn .iziModal-header {
- -webkit-animation: iziM-slideDown 0.7s cubic-bezier(0.7, 0, 0.3, 1);
- -moz-animation: iziM-slideDown 0.7s cubic-bezier(0.7, 0, 0.3, 1);
- animation: iziM-slideDown 0.7s cubic-bezier(0.7, 0, 0.3, 1);
-}
-
-.iziModal.transitionIn .iziModal-header .iziModal-header-icon {
- -webkit-animation: iziM-revealIn 1s cubic-bezier(0.16, 0.81, 0.32, 1) both;
- -moz-animation: iziM-revealIn 1s cubic-bezier(0.16, 0.81, 0.32, 1) both;
- animation: iziM-revealIn 1s cubic-bezier(0.16, 0.81, 0.32, 1) both;
-}
-
-.iziModal.transitionIn .iziModal-header .iziModal-header-title, .iziModal.transitionIn .iziModal-header .iziModal-header-subtitle {
- -webkit-animation: iziM-slideIn 1s cubic-bezier(0.16, 0.81, 0.32, 1) both;
- -moz-animation: iziM-slideIn 1s cubic-bezier(0.16, 0.81, 0.32, 1) both;
- animation: iziM-slideIn 1s cubic-bezier(0.16, 0.81, 0.32, 1) both;
-}
-
-.iziModal.transitionIn .iziModal-header .iziModal-button {
- -webkit-animation: iziM-revealIn 1.2s cubic-bezier(0.7, 0, 0.3, 1);
- -moz-animation: iziM-revealIn 1.2s cubic-bezier(0.7, 0, 0.3, 1);
- animation: iziM-revealIn 1.2s cubic-bezier(0.7, 0, 0.3, 1);
-}
-
-.iziModal.transitionIn .iziModal-iframe, .iziModal.transitionIn .iziModal-wrap {
- -webkit-animation: iziM-fadeIn 1.3s;
- -moz-animation: iziM-fadeIn 1.3s;
- animation: iziM-fadeIn 1.3s;
-}
-
-.iziModal.transitionIn .iziModal-header {
- -webkit-animation-delay: 0s;
- -moz-animation: 0s;
- animation-delay: 0s;
-}
-
-.iziModal.transitionIn .iziModal-header .iziModal-header-icon,
-.iziModal.transitionIn .iziModal-header .iziModal-header-title {
- -webkit-animation-delay: 0.4s;
- -moz-animation: 0.4s;
- animation-delay: 0.4s;
-}
-
-.iziModal.transitionIn .iziModal-header .iziModal-header-subtitle {
- -webkit-animation-delay: 0.5s;
- -moz-animation: 0.5s;
- animation-delay: 0.5s;
-}
-
-.iziModal.transitionOut .iziModal-header, .iziModal.transitionOut .iziModal-header * {
- transition: none !important;
-}
-
-/* ANIMATIONS */
-.iziModal.fadeOut, .iziModal-overlay.fadeOut, .iziModal-navigate.fadeOut, .iziModal .fadeOut {
- -webkit-animation: iziM-fadeOut 0.5s;
- -moz-animation: iziM-fadeOut 0.5s;
- animation: iziM-fadeOut 0.5s;
- animation-fill-mode: forwards;
-}
-
-.iziModal.fadeIn, .iziModal-overlay.fadeIn, .iziModal-navigate.fadeIn, .iziModal .fadeIn {
- -webkit-animation: iziM-fadeIn 0.5s;
- -moz-animation: iziM-fadeIn 0.5s;
- animation: iziM-fadeIn 0.5s;
-}
-
-.iziModal.comingIn, .iziModal-overlay.comingIn {
- -webkit-animation: iziM-comingIn 0.5s ease;
- -moz-animation: iziM-comingIn 0.5s ease;
- animation: iziM-comingIn 0.5s ease;
-}
-
-.iziModal.comingOut, .iziModal-overlay.comingOut {
- -webkit-animation: iziM-comingOut 0.5s cubic-bezier(0.16, 0.81, 0.32, 1);
- -moz-animation: iziM-comingOut 0.5s cubic-bezier(0.16, 0.81, 0.32, 1);
- animation: iziM-comingOut 0.5s cubic-bezier(0.16, 0.81, 0.32, 1);
- animation-fill-mode: forwards;
-}
-
-.iziModal.bounceInDown, .iziModal-overlay.bounceInDown {
- -webkit-animation: iziM-bounceInDown 0.7s ease;
- animation: iziM-bounceInDown 0.7s ease;
+.form-table td p.pagarme-hub-desintegration {
+ margin: 1em 0 0;
+ font-style: italic;
}
-.iziModal.bounceOutDown, .iziModal-overlay.bounceOutDown {
- -webkit-animation: iziM-bounceOutDown 0.7s ease;
- animation: iziM-bounceOutDown 0.7s ease;
+.form-table td p.pagarme-hub-desintegration > a {
+ font-weight: 700;
+ cursor: pointer;
}
-.iziModal.bounceInUp, .iziModal-overlay.bounceInUp {
- -webkit-animation: iziM-bounceInUp 0.7s ease;
- animation: iziM-bounceInUp 0.7s ease;
+.pagarme-hub-integration-btn > a > img {
+ vertical-align: text-top;
+ max-height: 1.4em;
+ margin-left: .6em;
}
-.iziModal.bounceOutUp, .iziModal-overlay.bounceOutUp {
- -webkit-animation: iziM-bounceOutUp 0.7s ease;
- animation: iziM-bounceOutUp 0.7s ease;
+.pagarme-message-warning {
+ margin: 1em 0 0;
+ padding: 1em;
+ background: #fae5e5;
+ color: #e02b27;
}
-.iziModal.fadeInDown, .iziModal-overlay.fadeInDown {
- -webkit-animation: iziM-fadeInDown 0.7s cubic-bezier(0.16, 0.81, 0.32, 1);
- animation: iziM-fadeInDown 0.7s cubic-bezier(0.16, 0.81, 0.32, 1);
+.woocommerce_page_woo-pagarme-payments .swal2-modal {
+ line-height: normal;
}
-.iziModal.fadeOutDown, .iziModal-overlay.fadeOutDown {
- -webkit-animation: iziM-fadeOutDown 0.5s ease;
- animation: iziM-fadeOutDown 0.5s ease;
+.woocommerce_page_woo-pagarme-payments .swal2-modal .swal2-title {
+ margin-bottom: 0.6em;
}
-.iziModal.fadeInUp, .iziModal-overlay.fadeInUp {
- -webkit-animation: iziM-fadeInUp 0.7s cubic-bezier(0.16, 0.81, 0.32, 1);
- animation: iziM-fadeInUp 0.7s cubic-bezier(0.16, 0.81, 0.32, 1);
+.woocommerce_page_woo-pagarme-payments .swal2-modal .swal2-content {
+ line-height: 1.3em;
}
-.iziModal.fadeOutUp, .iziModal-overlay.fadeOutUp {
- -webkit-animation: iziM-fadeOutUp 0.5s ease;
- animation: iziM-fadeOutUp 0.5s ease;
+#woo-pagarme-additional-information table.woocommerce-table {
+ max-width: 100%;
}
-.iziModal.fadeInLeft, .iziModal-overlay.fadeInLeft {
- -webkit-animation: iziM-fadeInLeft 0.7s cubic-bezier(0.16, 0.81, 0.32, 1);
- animation: iziM-fadeInLeft 0.7s cubic-bezier(0.16, 0.81, 0.32, 1);
+#woo-pagarme-additional-information table.woocommerce-table thead th {
+ padding: 1.41575em;
+ text-align: center;
}
-.iziModal.fadeOutLeft, .iziModal-overlay.fadeOutLeft {
- -webkit-animation: iziM-fadeOutLeft 0.5s ease;
- animation: iziM-fadeOutLeft 0.5s ease;
+#woo-pagarme-additional-information table.woocommerce-table td {
+ padding: 1em 1.41575em;
+ background-color: #fdfdfd;
}
-.iziModal.fadeInRight, .iziModal-overlay.fadeInRight {
- -webkit-animation: iziM-fadeInRight 0.7s cubic-bezier(0.16, 0.81, 0.32, 1);
- animation: iziM-fadeInRight 0.7s cubic-bezier(0.16, 0.81, 0.32, 1);
+#woo-pagarme-additional-information table.woocommerce-table th {
+ padding: 1em 1.41575em;
+ text-align: left;
+ font-weight: 600;
+ background-color: #f8f8f8;
}
-.iziModal.fadeOutRight, .iziModal-overlay.fadeOutRight {
- -webkit-animation: iziM-fadeOutRight 0.5s ease;
- animation: iziM-fadeOutRight 0.5s ease;
+#woo-pagarme-capture .wrapper table {
+ width: 100%;
}
-.iziModal.flipInX, .iziModal-overlay.flipInX {
- -webkit-animation: iziM-flipInX 0.7s ease;
- animation: iziM-flipInX 0.7s ease;
+#woo-pagarme-capture .wrapper table thead th {
+ text-align: left;
+ padding: 1em;
+ font-weight: 600;
+ background: #f8f8f8;
}
-.iziModal.flipOutX, .iziModal-overlay.flipOutX {
- -webkit-animation: iziM-flipOutX 0.7s ease;
- animation: iziM-flipOutX 0.7s ease;
+#woo-pagarme-capture .wrapper table thead th.sortable {
+ cursor: pointer;
}
-@-webkit-keyframes iziM-comingIn {
- 0% {
- opacity: 0;
- transform: scale(0.9) translateY(-20px) perspective(600px) rotateX(10deg);
- }
- 100% {
- opacity: 1;
- transform: scale(1) translateY(0) perspective(600px) rotateX(0);
- }
-}
-@-moz-keyframes iziM-comingIn {
- 0% {
- opacity: 0;
- transform: scale(0.9) translateY(-20px) perspective(600px) rotateX(10deg);
- }
- 100% {
- opacity: 1;
- transform: scale(1) translateY(0) perspective(600px) rotateX(0);
- }
-}
-@keyframes iziM-comingIn {
- 0% {
- opacity: 0;
- /*transform: translateY(-20px) perspective( 600px ) rotateX( 10deg );*/
- transform: scale(0.9) translateY(-20px) perspective(600px) rotateX(10deg);
- }
- 100% {
- opacity: 1;
- /*transform: scale(1) translateY(0) perspective( 600px ) rotateX( 0 ); */
- transform: scale(1) translateY(0) perspective(600px) rotateX(0);
- }
-}
-@-webkit-keyframes iziM-comingOut {
- 0% {
- opacity: 1;
- transform: scale(1);
- }
- 100% {
- opacity: 0;
- transform: scale(0.9);
- }
-}
-@-moz-keyframes iziM-comingOut {
- 0% {
- opacity: 1;
- transform: scale(1);
- }
- 100% {
- opacity: 0;
- transform: scale(0.9);
- }
-}
-@keyframes iziM-comingOut {
- 0% {
- opacity: 1;
- transform: scale(1);
- }
- 100% {
- opacity: 0;
- transform: scale(0.9);
- }
-}
-@-webkit-keyframes iziM-fadeOut {
- 0% {
- opacity: 1;
- }
- 100% {
- opacity: 0;
- }
-}
-@-moz-keyframes iziM-fadeOut {
- 0% {
- opacity: 1;
- }
- 100% {
- opacity: 0;
- }
-}
-@keyframes iziM-fadeOut {
- 0% {
- opacity: 1;
- }
- 100% {
- opacity: 0;
- }
-}
-@-webkit-keyframes iziM-fadeIn {
- 0% {
- opacity: 0;
- }
- 100% {
- opacity: 1;
- }
-}
-@-moz-keyframes iziM-fadeIn {
- 0% {
- opacity: 0;
- }
- 100% {
- opacity: 1;
- }
-}
-@keyframes iziM-fadeIn {
- 0% {
- opacity: 0;
- }
- 100% {
- opacity: 1;
- }
-}
-@-webkit-keyframes iziM-slideIn {
- 0% {
- opacity: 0;
- -webkit-transform: translateX(50px);
- }
- 100% {
- opacity: 1;
- -webkit-transform: translateX(0);
- }
-}
-@-moz-keyframes iziM-slideIn {
- 0% {
- opacity: 0;
- -moz-transform: translateX(50px);
- }
- 100% {
- opacity: 1;
- -moz-transform: translateX(0);
- }
-}
-@keyframes iziM-slideIn {
- 0% {
- opacity: 0;
- transform: translateX(50px);
- }
- 100% {
- opacity: 1;
- transform: translateX(0);
- }
-}
-@-webkit-keyframes iziM-slideDown {
- 0% {
- opacity: 0;
- -webkit-transform: scale(1, 0) translateY(-40px);
- -webkit-transform-origin: center top;
- }
-}
-@-moz-keyframes iziM-slideDown {
- 0% {
- opacity: 0;
- -moz-transform: scale(1, 0) translateY(-40px);
- -moz-transform-origin: center top;
- }
-}
-@keyframes iziM-slideDown {
- 0% {
- opacity: 0;
- transform: scale(1, 0) translateY(-40px);
- transform-origin: center top;
- }
-}
-@-webkit-keyframes iziM-revealIn {
- 0% {
- opacity: 0;
- -webkit-transform: scale3d(0.3, 0.3, 1);
- }
-}
-@-moz-keyframes iziM-revealIn {
- 0% {
- opacity: 0;
- -moz-transform: scale3d(0.3, 0.3, 1);
- }
-}
-@keyframes iziM-revealIn {
- 0% {
- opacity: 0;
- transform: scale3d(0.3, 0.3, 1);
- }
-}
-@-webkit-keyframes iziM-bounceInDown {
- from, 60%, 75%, 90%, to {
- -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
- animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
- }
- 0% {
- opacity: 0;
- -webkit-transform: translate3d(0, -1000px, 0);
- transform: translate3d(0, -1000px, 0);
- }
- 60% {
- opacity: 1;
- -webkit-transform: translate3d(0, 25px, 0);
- transform: translate3d(0, 25px, 0);
- }
- 75% {
- -webkit-transform: translate3d(0, -10px, 0);
- transform: translate3d(0, -10px, 0);
- }
- 90% {
- -webkit-transform: translate3d(0, 5px, 0);
- transform: translate3d(0, 5px, 0);
- }
- to {
- -webkit-transform: none;
- transform: none;
- }
-}
-@keyframes iziM-bounceInDown {
- from, 60%, 75%, 90%, to {
- -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
- animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
- }
- 0% {
- opacity: 0;
- -webkit-transform: translate3d(0, -1000px, 0);
- transform: translate3d(0, -1000px, 0);
- }
- 60% {
- opacity: 1;
- -webkit-transform: translate3d(0, 25px, 0);
- transform: translate3d(0, 25px, 0);
- }
- 75% {
- -webkit-transform: translate3d(0, -10px, 0);
- transform: translate3d(0, -10px, 0);
- }
- 90% {
- -webkit-transform: translate3d(0, 5px, 0);
- transform: translate3d(0, 5px, 0);
- }
- to {
- -webkit-transform: none;
- transform: none;
- }
-}
-@-webkit-keyframes iziM-bounceOutDown {
- 20% {
- -webkit-transform: translate3d(0, 10px, 0);
- transform: translate3d(0, 10px, 0);
- }
- 40%, 45% {
- opacity: 1;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, 1000px, 0);
- transform: translate3d(0, 1000px, 0);
- }
-}
-@keyframes iziM-bounceOutDown {
- 20% {
- -webkit-transform: translate3d(0, 10px, 0);
- transform: translate3d(0, 10px, 0);
- }
- 40%, 45% {
- opacity: 1;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, 1000px, 0);
- transform: translate3d(0, 1000px, 0);
- }
-}
-@-webkit-keyframes iziM-bounceInUp {
- from, 60%, 75%, 90%, to {
- -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
- animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
- }
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, 1000px, 0);
- transform: translate3d(0, 1000px, 0);
- }
- 60% {
- opacity: 1;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- 75% {
- -webkit-transform: translate3d(0, 10px, 0);
- transform: translate3d(0, 10px, 0);
- }
- 90% {
- -webkit-transform: translate3d(0, -5px, 0);
- transform: translate3d(0, -5px, 0);
- }
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-@keyframes iziM-bounceInUp {
- from, 60%, 75%, 90%, to {
- -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
- animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
- }
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, 1000px, 0);
- transform: translate3d(0, 1000px, 0);
- }
- 60% {
- opacity: 1;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- 75% {
- -webkit-transform: translate3d(0, 10px, 0);
- transform: translate3d(0, 10px, 0);
- }
- 90% {
- -webkit-transform: translate3d(0, -5px, 0);
- transform: translate3d(0, -5px, 0);
- }
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-@-webkit-keyframes iziM-bounceOutUp {
- 20% {
- -webkit-transform: translate3d(0, -10px, 0);
- transform: translate3d(0, -10px, 0);
- }
- 40%, 45% {
- opacity: 1;
- -webkit-transform: translate3d(0, 20px, 0);
- transform: translate3d(0, 20px, 0);
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, -2000px, 0);
- transform: translate3d(0, -2000px, 0);
- }
-}
-@keyframes iziM-bounceOutUp {
- 20% {
- -webkit-transform: translate3d(0, -10px, 0);
- transform: translate3d(0, -10px, 0);
- }
- 40%, 45% {
- opacity: 1;
- -webkit-transform: translate3d(0, 20px, 0);
- transform: translate3d(0, 20px, 0);
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, -1000px, 0);
- transform: translate3d(0, -1000px, 0);
- }
-}
-@-webkit-keyframes iziM-fadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -100px, 0);
- transform: translate3d(0, -100px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: none;
- transform: none;
- }
-}
-@keyframes iziM-fadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -100px, 0);
- transform: translate3d(0, -100px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: none;
- transform: none;
- }
-}
-@-webkit-keyframes iziM-fadeOutDown {
- from {
- opacity: 1;
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, 100px, 0);
- transform: translate3d(0, 100px, 0);
- }
-}
-@keyframes iziM-fadeOutDown {
- from {
- opacity: 1;
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, 100px, 0);
- transform: translate3d(0, 100px, 0);
- }
-}
-@-webkit-keyframes iziM-fadeInUp {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, 100px, 0);
- transform: translate3d(0, 100px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: none;
- transform: none;
- }
-}
-@keyframes iziM-fadeInUp {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, 100px, 0);
- transform: translate3d(0, 100px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: none;
- transform: none;
- }
-}
-@-webkit-keyframes iziM-fadeOutUp {
- from {
- opacity: 1;
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, -100px, 0);
- transform: translate3d(0, -100px, 0);
- }
-}
-@keyframes iziM-fadeOutUp {
- from {
- opacity: 1;
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, -100px, 0);
- transform: translate3d(0, -100px, 0);
- }
-}
-@-webkit-keyframes iziM-fadeInLeft {
- from {
- opacity: 0;
- -webkit-transform: translate3d(-200px, 0, 0);
- transform: translate3d(-200px, 0, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: none;
- transform: none;
- }
-}
-@keyframes iziM-fadeInLeft {
- from {
- opacity: 0;
- -webkit-transform: translate3d(-200px, 0, 0);
- transform: translate3d(-200px, 0, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: none;
- transform: none;
- }
-}
-@-webkit-keyframes iziM-fadeOutLeft {
- from {
- opacity: 1;
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(-200px, 0, 0);
- transform: translate3d(-200px, 0, 0);
- }
-}
-@keyframes iziM-fadeOutLeft {
- from {
- opacity: 1;
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(-200px, 0, 0);
- transform: translate3d(-200px, 0, 0);
- }
-}
-@-webkit-keyframes iziM-fadeInRight {
- from {
- opacity: 0;
- -webkit-transform: translate3d(200px, 0, 0);
- transform: translate3d(200px, 0, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: none;
- transform: none;
- }
-}
-@keyframes iziM-fadeInRight {
- from {
- opacity: 0;
- -webkit-transform: translate3d(200px, 0, 0);
- transform: translate3d(200px, 0, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: none;
- transform: none;
- }
-}
-@-webkit-keyframes iziM-fadeOutRight {
- from {
- opacity: 1;
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(200px, 0, 0);
- transform: translate3d(200px, 0, 0);
- }
-}
-@keyframes iziM-fadeOutRight {
- from {
- opacity: 1;
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(200px, 0, 0);
- transform: translate3d(200px, 0, 0);
- }
-}
-@-webkit-keyframes iziM-flipInX {
- 0% {
- -webkit-transform: perspective(400px) rotateX(60deg);
- opacity: 0;
- }
- 40% {
- -webkit-transform: perspective(400px) rotateX(-10deg);
- }
- 70% {
- -webkit-transform: perspective(400px) rotateX(10deg);
- }
- 100% {
- -webkit-transform: perspective(400px) rotateX(0deg);
- opacity: 1;
- }
-}
-@keyframes iziM-flipInX {
- 0% {
- transform: perspective(400px) rotateX(60deg);
- opacity: 0;
- }
- 40% {
- transform: perspective(400px) rotateX(-10deg);
- }
- 70% {
- transform: perspective(400px) rotateX(10deg);
- }
- 100% {
- transform: perspective(400px) rotateX(0deg);
- opacity: 1;
- }
-}
-@-webkit-keyframes iziM-flipOutX {
- from {
- -webkit-transform: perspective(400px);
- transform: perspective(400px);
- }
- 30% {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
- transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
- opacity: 1;
- }
- to {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 40deg);
- transform: perspective(400px) rotate3d(1, 0, 0, 40deg);
- opacity: 0;
- }
-}
-@keyframes iziM-flipOutX {
- from {
- -webkit-transform: perspective(400px);
- transform: perspective(400px);
- }
- 30% {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
- transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
- opacity: 1;
- }
- to {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 40deg);
- transform: perspective(400px) rotate3d(1, 0, 0, 40deg);
- opacity: 0;
- }
-}
-body swal2-shown {
- overflow-y: hidden;
-}
-body .swal2-iosfix {
- position: fixed;
- left: 0;
- right: 0;
-}
-body .swal2-container {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- position: fixed;
- top: 0;
- left: 0;
- bottom: 0;
- right: 0;
- padding: 10px;
- background-color: transparent;
- z-index: 1060;
-}
-body .swal2-container.swal2-fade {
- -webkit-transition: background-color 0.1s;
- transition: background-color 0.1s;
-}
-body .swal2-container.swal2-shown {
- background-color: rgba(0, 0, 0, 0.4);
-}
-body .swal2-modal {
- background-color: #fff;
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
- border-radius: 5px;
- box-sizing: border-box;
- text-align: center;
- margin: auto;
- overflow-x: hidden;
- overflow-y: auto;
- display: none;
- position: relative;
- max-width: 100%;
-}
-body .swal2-modal:focus {
- outline: none;
-}
-body .swal2-modal.swal2-loading {
- overflow-y: hidden;
-}
-body .swal2-modal .swal2-title {
- color: #595959;
- font-size: 30px;
- text-align: center;
- font-weight: 600;
- text-transform: none;
- position: relative;
- margin: 0 0 0.4em;
- padding: 0;
- display: block;
- word-wrap: break-word;
-}
-body .swal2-modal .swal2-buttonswrapper {
- margin-top: 15px;
-}
-body .swal2-modal .swal2-buttonswrapper:not(.swal2-loading) .swal2-styled[disabled] {
- opacity: 0.4;
- cursor: no-drop;
-}
-body .swal2-modal .swal2-buttonswrapper.swal2-loading .swal2-styled.swal2-confirm {
- box-sizing: border-box;
- border: 4px solid transparent;
- border-color: transparent;
- width: 40px;
- height: 40px;
- padding: 0;
- margin: 7.5px;
- vertical-align: top;
- background-color: transparent !important;
- color: transparent;
- cursor: default;
- border-radius: 100%;
- -webkit-animation: rotate-loading 1.5s linear 0s infinite normal;
- animation: rotate-loading 1.5s linear 0s infinite normal;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-body .swal2-modal .swal2-buttonswrapper.swal2-loading .swal2-styled.swal2-cancel {
- margin-left: 30px;
- margin-right: 30px;
-}
-body .swal2-modal .swal2-buttonswrapper.swal2-loading :not(.swal2-styled).swal2-confirm::after {
- display: inline-block;
- content: "";
- margin-left: 5px 0 15px;
- vertical-align: -1px;
- height: 15px;
- width: 15px;
- border: 3px solid #999999;
- box-shadow: 1px 1px 1px #fff;
- border-right-color: transparent;
- border-radius: 50%;
- -webkit-animation: rotate-loading 1.5s linear 0s infinite normal;
- animation: rotate-loading 1.5s linear 0s infinite normal;
-}
-body .swal2-modal .swal2-styled {
- border: 0;
- border-radius: 3px;
- box-shadow: none;
- color: #fff;
- cursor: pointer;
- font-size: 17px;
- font-weight: 500;
- margin: 15px 5px 0;
- padding: 10px 32px;
-}
-body .swal2-modal .swal2-image {
- margin: 20px auto;
- max-width: 100%;
-}
-body .swal2-modal .swal2-close {
- background: transparent;
- border: 0;
- margin: 0;
- padding: 0;
- width: 38px;
- height: 40px;
- font-size: 36px;
- line-height: 40px;
- font-family: serif;
- position: absolute;
- top: 5px;
- right: 8px;
- cursor: pointer;
- color: #cccccc;
- -webkit-transition: color 0.1s ease;
- transition: color 0.1s ease;
-}
-body .swal2-modal .swal2-close:hover {
- color: #d55;
-}
-body .swal2-modal > .swal2-input,
-body .swal2-modal > .swal2-file,
-body .swal2-modal > .swal2-textarea,
-body .swal2-modal > .swal2-select,
-body .swal2-modal > .swal2-radio,
-body .swal2-modal > .swal2-checkbox {
- display: none;
-}
-body .swal2-modal .swal2-content {
- font-size: 18px;
- text-align: center;
- font-weight: 300;
- position: relative;
- float: none;
- margin: 0;
- padding: 0;
- line-height: normal;
- color: #545454;
- word-wrap: break-word;
-}
-body .swal2-modal .swal2-input,
-body .swal2-modal .swal2-file,
-body .swal2-modal .swal2-textarea,
-body .swal2-modal .swal2-select,
-body .swal2-modal .swal2-radio,
-body .swal2-modal .swal2-checkbox {
- margin: 20px auto;
-}
-body .swal2-modal .swal2-input,
-body .swal2-modal .swal2-file,
-body .swal2-modal .swal2-textarea {
- width: 100%;
- box-sizing: border-box;
- font-size: 18px;
- border-radius: 3px;
- border: 1px solid #d9d9d9;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06);
- -webkit-transition: border-color box-shadow 0.3s;
- transition: border-color box-shadow 0.3s;
-}
-body .swal2-modal .swal2-input.swal2-inputerror,
-body .swal2-modal .swal2-file.swal2-inputerror,
-body .swal2-modal .swal2-textarea.swal2-inputerror {
- border-color: #f27474 !important;
- box-shadow: 0 0 2px #f27474 !important;
-}
-body .swal2-modal .swal2-input:focus,
-body .swal2-modal .swal2-file:focus,
-body .swal2-modal .swal2-textarea:focus {
- outline: none;
- border: 1px solid #b4dbed;
- box-shadow: 0 0 3px #c4e6f5;
-}
-body .swal2-modal .swal2-input:focus::-webkit-input-placeholder,
-body .swal2-modal .swal2-file:focus::-webkit-input-placeholder,
-body .swal2-modal .swal2-textarea:focus::-webkit-input-placeholder {
- -webkit-transition: opacity 0.3s 0.03s ease;
- transition: opacity 0.3s 0.03s ease;
- opacity: 0.8;
-}
-body .swal2-modal .swal2-input:focus:-ms-input-placeholder,
-body .swal2-modal .swal2-file:focus:-ms-input-placeholder,
-body .swal2-modal .swal2-textarea:focus:-ms-input-placeholder {
- -webkit-transition: opacity 0.3s 0.03s ease;
- transition: opacity 0.3s 0.03s ease;
- opacity: 0.8;
-}
-body .swal2-modal .swal2-input:focus::placeholder,
-body .swal2-modal .swal2-file:focus::placeholder,
-body .swal2-modal .swal2-textarea:focus::placeholder {
- -webkit-transition: opacity 0.3s 0.03s ease;
- transition: opacity 0.3s 0.03s ease;
- opacity: 0.8;
-}
-body .swal2-modal .swal2-input::-webkit-input-placeholder,
-body .swal2-modal .swal2-file::-webkit-input-placeholder,
-body .swal2-modal .swal2-textarea::-webkit-input-placeholder {
- color: #e6e6e6;
-}
-body .swal2-modal .swal2-input:-ms-input-placeholder,
-body .swal2-modal .swal2-file:-ms-input-placeholder,
-body .swal2-modal .swal2-textarea:-ms-input-placeholder {
- color: #e6e6e6;
-}
-body .swal2-modal .swal2-input::placeholder,
-body .swal2-modal .swal2-file::placeholder,
-body .swal2-modal .swal2-textarea::placeholder {
- color: #e6e6e6;
-}
-body .swal2-modal .swal2-range input {
- float: left;
- width: 80%;
-}
-body .swal2-modal .swal2-range output {
- float: right;
- width: 20%;
- font-size: 20px;
- font-weight: 600;
- text-align: center;
-}
-body .swal2-modal .swal2-range input,
-body .swal2-modal .swal2-range output {
- height: 43px;
- line-height: 43px;
- vertical-align: middle;
- margin: 20px auto;
- padding: 0;
-}
-body .swal2-modal .swal2-input {
- height: 43px;
- padding: 0 12px;
-}
-body .swal2-modal .swal2-input[type=number] {
- max-width: 150px;
-}
-body .swal2-modal .swal2-file {
- font-size: 20px;
-}
-body .swal2-modal .swal2-textarea {
- height: 108px;
- padding: 12px;
-}
-body .swal2-modal .swal2-select {
- color: #545454;
- font-size: inherit;
- padding: 5px 10px;
- min-width: 40%;
- max-width: 100%;
-}
-body .swal2-modal .swal2-radio {
- border: 0;
-}
-body .swal2-modal .swal2-radio label:not(:first-child) {
- margin-left: 20px;
-}
-body .swal2-modal .swal2-radio input,
-body .swal2-modal .swal2-radio span {
- vertical-align: middle;
-}
-body .swal2-modal .swal2-radio input {
- margin: 0 3px 0 0;
-}
-body .swal2-modal .swal2-checkbox {
- color: #545454;
-}
-body .swal2-modal .swal2-checkbox input,
-body .swal2-modal .swal2-checkbox span {
- vertical-align: middle;
-}
-body .swal2-modal .swal2-validationerror {
- background-color: #f0f0f0;
- margin: 0 -20px;
- overflow: hidden;
- padding: 10px;
- color: gray;
- font-size: 16px;
- font-weight: 300;
- display: none;
-}
-body .swal2-modal .swal2-validationerror::before {
- content: "!";
- display: inline-block;
- width: 24px;
- height: 24px;
- border-radius: 50%;
- background-color: #ea7d7d;
- color: #fff;
- line-height: 24px;
- text-align: center;
- margin-right: 10px;
-}
-@supports (-ms-accelerator: true) {
- body .swal2-range input {
- width: 100% !important;
- }
- body .swal2-range output {
- display: none;
- }
-}
-@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
- body .swal2-range input {
- width: 100% !important;
- }
- body .swal2-range output {
- display: none;
- }
-}
-body .swal2-icon {
- width: 80px;
- height: 80px;
- border: 4px solid transparent;
- border-radius: 50%;
- margin: 20px auto 30px;
- padding: 0;
- position: relative;
- box-sizing: content-box;
- cursor: default;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-body .swal2-icon.swal2-error {
- border-color: #f27474;
-}
-body .swal2-icon.swal2-error .swal2-x-mark {
- position: relative;
- display: block;
-}
-body .swal2-icon.swal2-error [class^=swal2-x-mark-line] {
- position: absolute;
- height: 5px;
- width: 47px;
- background-color: #f27474;
- display: block;
- top: 37px;
- border-radius: 2px;
-}
-body .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left] {
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg);
- left: 17px;
-}
-body .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right] {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
- right: 16px;
-}
-body .swal2-icon.swal2-warning {
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
- color: #f8bb86;
- border-color: #facea8;
- font-size: 60px;
- line-height: 80px;
- text-align: center;
-}
-body .swal2-icon.swal2-info {
- font-family: "Open Sans", sans-serif;
- color: #3fc3ee;
- border-color: #9de0f6;
- font-size: 60px;
- line-height: 80px;
- text-align: center;
-}
-body .swal2-icon.swal2-question {
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
- color: #87adbd;
- border-color: #c9dae1;
- font-size: 60px;
- line-height: 80px;
- text-align: center;
-}
-body .swal2-icon.swal2-success {
- border-color: #a5dc86;
-}
-body .swal2-icon.swal2-success [class^=swal2-success-circular-line] {
- border-radius: 50%;
- position: absolute;
- width: 60px;
- height: 120px;
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg);
-}
-body .swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left] {
- border-radius: 120px 0 0 120px;
- top: -7px;
- left: -33px;
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
- -webkit-transform-origin: 60px 60px;
- transform-origin: 60px 60px;
-}
-body .swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right] {
- border-radius: 0 120px 120px 0;
- top: -11px;
- left: 30px;
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
- -webkit-transform-origin: 0 60px;
- transform-origin: 0 60px;
-}
-body .swal2-icon.swal2-success .swal2-success-ring {
- width: 80px;
- height: 80px;
- border: 4px solid rgba(165, 220, 134, 0.2);
- border-radius: 50%;
- box-sizing: content-box;
- position: absolute;
- left: -4px;
- top: -4px;
- z-index: 2;
-}
-body .swal2-icon.swal2-success .swal2-success-fix {
- width: 7px;
- height: 90px;
- position: absolute;
- left: 28px;
- top: 8px;
- z-index: 1;
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
-}
-body .swal2-icon.swal2-success [class^=swal2-success-line] {
- height: 5px;
- background-color: #a5dc86;
- display: block;
- border-radius: 2px;
- position: absolute;
- z-index: 2;
-}
-body .swal2-icon.swal2-success [class^=swal2-success-line][class$=tip] {
- width: 25px;
- left: 14px;
- top: 46px;
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg);
-}
-body .swal2-icon.swal2-success [class^=swal2-success-line][class$=long] {
- width: 47px;
- right: 8px;
- top: 38px;
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
-}
-body .swal2-progresssteps {
- font-weight: 600;
- margin: 0 0 20px;
- padding: 0;
-}
-body .swal2-progresssteps li {
- display: inline-block;
- position: relative;
-}
-body .swal2-progresssteps .swal2-progresscircle {
- background: #3085d6;
- border-radius: 2em;
- color: #fff;
- height: 2em;
- line-height: 2em;
- text-align: center;
- width: 2em;
- z-index: 20;
-}
-body .swal2-progresssteps .swal2-progresscircle:first-child {
- margin-left: 0;
-}
-body .swal2-progresssteps .swal2-progresscircle:last-child {
- margin-right: 0;
-}
-body .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep {
- background: #3085d6;
-}
-body .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep ~ .swal2-progresscircle {
- background: #add8e6;
-}
-body .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep ~ .swal2-progressline {
- background: #add8e6;
-}
-body .swal2-progresssteps .swal2-progressline {
- background: #3085d6;
- height: 0.4em;
- margin: 0 -1px;
- z-index: 10;
-}
-body [class^=swal2] {
- -webkit-tap-highlight-color: transparent;
-}
-@-webkit-keyframes showSweetAlert {
- 0% {
- -webkit-transform: scale(0.7);
- transform: scale(0.7);
- }
- 45% {
- -webkit-transform: scale(1.05);
- transform: scale(1.05);
- }
- 80% {
- -webkit-transform: scale(0.95);
- transform: scale(0.95);
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-}
-@keyframes showSweetAlert {
- 0% {
- -webkit-transform: scale(0.7);
- transform: scale(0.7);
- }
- 45% {
- -webkit-transform: scale(1.05);
- transform: scale(1.05);
- }
- 80% {
- -webkit-transform: scale(0.95);
- transform: scale(0.95);
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-}
-@-webkit-keyframes hideSweetAlert {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 1;
- }
- 100% {
- -webkit-transform: scale(0.5);
- transform: scale(0.5);
- opacity: 0;
- }
-}
-@keyframes hideSweetAlert {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 1;
- }
- 100% {
- -webkit-transform: scale(0.5);
- transform: scale(0.5);
- opacity: 0;
- }
-}
-body .swal2-show {
- -webkit-animation: showSweetAlert 0.3s;
- animation: showSweetAlert 0.3s;
-}
-body .swal2-show.swal2-noanimation {
- -webkit-animation: none;
- animation: none;
-}
-body .swal2-hide {
- -webkit-animation: hideSweetAlert 0.15s forwards;
- animation: hideSweetAlert 0.15s forwards;
-}
-body .swal2-hide.swal2-noanimation {
- -webkit-animation: none;
- animation: none;
-}
-@-webkit-keyframes animate-success-tip {
- 0% {
- width: 0;
- left: 1px;
- top: 19px;
- }
- 54% {
- width: 0;
- left: 1px;
- top: 19px;
- }
- 70% {
- width: 50px;
- left: -8px;
- top: 37px;
- }
- 84% {
- width: 17px;
- left: 21px;
- top: 48px;
- }
- 100% {
- width: 25px;
- left: 14px;
- top: 45px;
- }
-}
-@keyframes animate-success-tip {
- 0% {
- width: 0;
- left: 1px;
- top: 19px;
- }
- 54% {
- width: 0;
- left: 1px;
- top: 19px;
- }
- 70% {
- width: 50px;
- left: -8px;
- top: 37px;
- }
- 84% {
- width: 17px;
- left: 21px;
- top: 48px;
- }
- 100% {
- width: 25px;
- left: 14px;
- top: 45px;
- }
-}
-@-webkit-keyframes animate-success-long {
- 0% {
- width: 0;
- right: 46px;
- top: 54px;
- }
- 65% {
- width: 0;
- right: 46px;
- top: 54px;
- }
- 84% {
- width: 55px;
- right: 0;
- top: 35px;
- }
- 100% {
- width: 47px;
- right: 8px;
- top: 38px;
- }
-}
-@keyframes animate-success-long {
- 0% {
- width: 0;
- right: 46px;
- top: 54px;
- }
- 65% {
- width: 0;
- right: 46px;
- top: 54px;
- }
- 84% {
- width: 55px;
- right: 0;
- top: 35px;
- }
- 100% {
- width: 47px;
- right: 8px;
- top: 38px;
- }
-}
-@-webkit-keyframes rotatePlaceholder {
- 0% {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
- }
- 5% {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
- }
- 12% {
- -webkit-transform: rotate(-405deg);
- transform: rotate(-405deg);
- }
- 100% {
- -webkit-transform: rotate(-405deg);
- transform: rotate(-405deg);
- }
-}
-@keyframes rotatePlaceholder {
- 0% {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
- }
- 5% {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
- }
- 12% {
- -webkit-transform: rotate(-405deg);
- transform: rotate(-405deg);
- }
- 100% {
- -webkit-transform: rotate(-405deg);
- transform: rotate(-405deg);
- }
-}
-body .swal2-animate-success-line-tip {
- -webkit-animation: animate-success-tip 0.75s;
- animation: animate-success-tip 0.75s;
-}
-body .swal2-animate-success-line-long {
- -webkit-animation: animate-success-long 0.75s;
- animation: animate-success-long 0.75s;
-}
-body .swal2-success.swal2-animate-success-icon .swal2-success-circular-line-right {
- -webkit-animation: rotatePlaceholder 4.25s ease-in;
- animation: rotatePlaceholder 4.25s ease-in;
-}
-@-webkit-keyframes animate-error-icon {
- 0% {
- -webkit-transform: rotateX(100deg);
- transform: rotateX(100deg);
- opacity: 0;
- }
- 100% {
- -webkit-transform: rotateX(0deg);
- transform: rotateX(0deg);
- opacity: 1;
- }
-}
-@keyframes animate-error-icon {
- 0% {
- -webkit-transform: rotateX(100deg);
- transform: rotateX(100deg);
- opacity: 0;
- }
- 100% {
- -webkit-transform: rotateX(0deg);
- transform: rotateX(0deg);
- opacity: 1;
- }
-}
-body .swal2-animate-error-icon {
- -webkit-animation: animate-error-icon 0.5s;
- animation: animate-error-icon 0.5s;
-}
-@-webkit-keyframes animate-x-mark {
- 0% {
- -webkit-transform: scale(0.4);
- transform: scale(0.4);
- margin-top: 26px;
- opacity: 0;
- }
- 50% {
- -webkit-transform: scale(0.4);
- transform: scale(0.4);
- margin-top: 26px;
- opacity: 0;
- }
- 80% {
- -webkit-transform: scale(1.15);
- transform: scale(1.15);
- margin-top: -6px;
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- margin-top: 0;
- opacity: 1;
- }
-}
-@keyframes animate-x-mark {
- 0% {
- -webkit-transform: scale(0.4);
- transform: scale(0.4);
- margin-top: 26px;
- opacity: 0;
- }
- 50% {
- -webkit-transform: scale(0.4);
- transform: scale(0.4);
- margin-top: 26px;
- opacity: 0;
- }
- 80% {
- -webkit-transform: scale(1.15);
- transform: scale(1.15);
- margin-top: -6px;
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- margin-top: 0;
- opacity: 1;
- }
-}
-body .swal2-animate-x-mark {
- -webkit-animation: animate-x-mark 0.5s;
- animation: animate-x-mark 0.5s;
-}
-@-webkit-keyframes rotate-loading {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
-}
-@keyframes rotate-loading {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
+#woo-pagarme-capture .wrapper table thead th:last-child {
+ padding-right: 2em;
}
-#botao-hub button {
- background-color: #65a300;
- border-color: rgb(101, 163, 0);
- border-radius: 4px;
- border-style: solid;
- border-width: 2px;
- cursor: pointer;
- letter-spacing: .04em;
- display: inline-block;
- font-size: 14px;
- font-weight: 600;
- font-family: Open Sans, sans-serif;
- outline: none;
- padding: 8px 12px;
- text-transform: uppercase;
- text-align: center;
- color: #fff;
- user-select: none;
- white-space: normal;
- transition: all .3s ease-in-out;
+#woo-pagarme-capture .wrapper table thead th:first-child {
+ padding-left: 2em;
}
-#botao-hub button:hover, #botao-hub button:active, #botao-hub button:focus {
- background-color: rgb(125, 163, 0);
- border-color: rgb(125, 163, 0);
+#woo-pagarme-capture .wrapper table thead th .wc-arrow {
+ float: right;
+ position: relative;
+ margin-right: -1em;
}
-.btn-hub button img {
- width: 16px;
- margin-bottom: -3px;
- margin-top: -3px;
+#woo-pagarme-capture .wrapper table tbody tr td {
+ padding-top: .6em;
}
-.forminp.flex {
- display: flex;
+#woo-pagarme-capture .wrapper table tbody th textarea,
+#woo-pagarme-capture .wrapper table td textarea {
+ width: 100%;
}
-.btn-hub.pagarme-warning button {
- background-color: #e02b27;
- border-color: rgb(222, 43, 40);
- border-radius: 4px;
- border-style: solid;
- border-width: 2px;
- cursor: pointer;
- letter-spacing: .04em;
- display: inline-block;
+#woo-pagarme-capture .wrapper table tbody th input,
+#woo-pagarme-capture .wrapper table tbody th textarea,
+#woo-pagarme-capture .wrapper table td input,
+#woo-pagarme-capture .wrapper table td textarea {
font-size: 14px;
- font-weight: 600;
- font-family: Open Sans, sans-serif;
- outline: none;
- padding: 8px 12px;
- text-transform: uppercase;
- text-align: center;
- color: #fff;
- user-select: none;
- white-space: normal;
- transition: all .3s ease-in-out;
- margin-left: 10px;
+ padding: 4px;
+ color: #555;
}
-.btn-hub.pagarme-warning button:hover, .btn-hub.pagarme-warning button:active, .btn-hub.pagarme-warning button:focus{
- background-color: rgba(222, 43, 40, 0.76);
- border-color: rgba(222, 43, 40, 0.76);
+#woo-pagarme-capture .wrapper table tbody th:last-child,
+#woo-pagarme-capture .wrapper table td:last-child {
+ padding-right: 2em;
}
-#botao-hub button img {
- width: 16px;
- margin-bottom: -3px;
- margin-top: -3px;
-}
-
-.pagarme-message-warning {
- margin: 0 0 10px;
- padding: 12px 20px 12px 25px;
- display: block;
- background: #fae5e5;
- color: #e02b27;
- position: relative;
+#woo-pagarme-capture .wrapper table tbody th:first-child,
+#woo-pagarme-capture .wrapper table td:first-child {
+ padding-left: 2em;
}
-/*# sourceMappingURL=assets/stylesheets/admin/style.css.map */
diff --git a/assets/stylesheets/admin/style.css.map b/assets/stylesheets/admin/style.css.map
deleted file mode 100644
index c724a7f7..00000000
--- a/assets/stylesheets/admin/style.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sourceRoot":"","sources":["../base/_helpers.scss","elements/_spinner.scss","elements/_form.scss","vendor/_izimodal.scss","vendor/_sweetalert2.scss"],"names":[],"mappings":"AAyEA;EACI;IAAO;;EACP;IAAK;;;AAET;EACI;IAAO;;EACP;IAAK;;;AAET;EACI;IAAO;;EACP;IAAK;;;AAET;EACI;IACI;;EAEJ;IACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;;AC1GH;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;;;ACjBH;EACC;EACA;EACA;;;AAIA;EACC;;AAGD;EACC;EACA;;AAEA;EACC;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;;AAED;EACC;;AAED;EACC;;AAED;EACC;EACA;EACA;;AAIF;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;;AAED;EACC;;AAED;EACC;;AAKD;EACC;;AACA;EACC;EACA;;AAKH;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;;AC9FJ;AAAA;AAAA;AAAA;AAAA;AAKA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAIJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAA0C;;;AAE9C;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAIA;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAIJ;AAEA;EACI;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;;;AAGJ;AAEA;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;;;AAGJ;AAAA;EACoC;EAAY;;;AAChD;EAAoC;;;AACpC;EACI;EACA;EACA;AACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAGR;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAGJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;;;AAGJ;AAEA;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;;;AAGJ;AAEA;EACI;EACA;EACA;;;AAEA;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;;AAGR;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;AAAA;EAEI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAGA;EACI;;;AAGR;AAEA;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAGJ;EACI;IACI;IACA;;EAEJ;IACI;IACA;;;AAGR;EACI;IACI;IACA;;EAEJ;IACI;IACA;;;AAGR;EACI;IACI;AACA;IACA;;EAEJ;IACI;AACA;IACA;;;AAIR;EACI;IACI;IACA;;EAEJ;IACI;IACA;;;AAGR;EACI;IACI;IACA;;EAEJ;IACI;IACA;;;AAGR;EACI;IACI;IACA;;EAEJ;IACI;IACA;;;AAGR;EACI;IAAI;;EACJ;IAAM;;;AAEV;EACI;IAAI;;EACJ;IAAM;;;AAEV;EACI;IAAI;;EACJ;IAAM;;;AAGV;EACI;IAAI;;EACJ;IAAM;;;AAEV;EACI;IAAI;;EACJ;IAAM;;;AAEV;EACI;IAAI;;EACJ;IAAM;;;AAGV;EACI;IACI;IACA;;EAEJ;IACI;IACA;;;AAGR;EACI;IACI;IACA;;EAEJ;IACI;IACA;;;AAGR;EACI;IACI;IACA;;EAEJ;IACI;IACA;;;AAIR;EACI;IAAK;IAAY;IAAiD;;;AAEtE;EACI;IAAK;IAAY;IAA8C;;;AAEnE;EACI;IAAK;IAAY;IAAyC;;;AAG9D;EACI;IAAK;IAAY;;;AAErB;EACI;IAAK;IAAY;;;AAErB;EACI;IAAK;IAAY;;;AAGrB;EACI;IACI;IACA;;EAEJ;IACI;IACA;IACA;;EAEJ;IACI;IACA;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;;AAGR;EACI;IACI;IACA;;EAEJ;IACI;IACA;IACA;;EAEJ;IACI;IACA;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;;AAGR;EACI;IACI;IACA;;EAEJ;IACI;IACA;IACA;;EAEJ;IACI;IACA;IACA;;;AAGR;EACI;IACI;IACA;;EAEJ;IACI;IACA;IACA;;EAEJ;IACI;IACA;IACA;;;AAIR;EACI;IACI;IACA;;EAEJ;IACI;IACA;IACA;;EAEJ;IACI;IACA;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;;AAGR;EACI;IACI;IACA;;EAEJ;IACI;IACA;IACA;;EAEJ;IACI;IACA;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;;AAIR;EACI;IACI;IACA;;EAEJ;IACI;IACA;IACA;;EAEJ;IACI;IACA;IACA;;;AAGR;EACI;IACI;IACA;;EAEJ;IACI;IACA;IACA;;EAEJ;IACI;IACA;IACA;;;AAIR;EACI;IACI;IACA;IACA;;EAEJ;IACI;IACA;IACA;;;AAGR;EACI;IACI;IACA;IACA;;EAEJ;IACI;IACA;IACA;;;AAIR;EACI;IACI;;EAEJ;IACI;IACA;IACA;;;AAGR;EACI;IACI;;EAEJ;IACI;IACA;IACA;;;AAIR;EACI;IACI;IACA;IACA;;EAEJ;IACI;IACA;IACA;;;AAGR;EACI;IACI;IACA;IACA;;EAEJ;IACI;IACA;IACA;;;AAIR;EACI;IACI;;EAGJ;IACI;IACA;IACA;;;AAGR;EACI;IACI;;EAEJ;IACI;IACA;IACA;;;AAIR;EACI;IACI;IACA;IACA;;EAEJ;IACI;IACA;IACA;;;AAGR;EACI;IACI;IACA;IACA;;EAEJ;IACI;IACA;IACA;;;AAIR;EACI;IACI;;EAEJ;IACI;IACA;IACA;;;AAGR;EACI;IACI;;EAEJ;IACI;IACA;IACA;;;AAIR;EACI;IACI;IACA;IACA;;EAEJ;IACI;IACA;IACA;;;AAGR;EACI;IACI;IACA;IACA;;EAEJ;IACI;IACA;IACA;;;AAIR;EACI;IACI;;EAEJ;IACI;IACA;IACA;;;AAGR;EACI;IACI;;EAEJ;IACI;IACA;IACA;;;AAIR;EACI;IACI;IACA;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;IACA;;;AAGR;EACI;IACI;IACA;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;IACA;;;AAIR;EACI;IACI;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;;;AAGR;EACI;IACI;IACA;;EAEJ;IACI;IACA;IACA;;EAEJ;IACI;IACA;IACA;;;ACrkCP;EACE;;AAEF;EACC;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACI;EACI;EACR;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;;AACF;EACE;;AAEJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;AACF;EACE;;AACF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACF;EACE;;AACA;EACE;EACA;;AACF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACQ;EACR;EACG;EACC;EACI;;AACV;EACE;EACA;;AACF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACQ;;AACZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACF;EACE;EACA;;AACF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;AACJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;;AACF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACF;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;;AACF;AAAA;AAAA;EAGE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;AAAA;AAAA;EAGE;EACA;;AACF;AAAA;AAAA;EAGE;EACA;EACA;;AACA;AAAA;AAAA;EAGE;EACA;EACA;;AACF;AAAA;AAAA;EAGE;EACA;EACA;;AACF;AAAA;AAAA;EAGE;EACA;EACA;;AACJ;AAAA;AAAA;EAGE;;AACF;AAAA;AAAA;EAGE;;AACF;AAAA;AAAA;EAGE;;AACJ;EACE;EACA;;AACF;EACE;EACA;EACA;EACA;EACA;;AACF;AAAA;EAEE;EACA;EACA;EACA;EACA;;AACF;EACE;EACA;;AACA;EACE;;AACJ;EACE;;AACF;EACE;EACA;;AACF;EACE;EACA;EACA;EACA;EACA;;AACF;EACE;;AACA;EACE;;AACF;AAAA;EAEE;;AACF;EACE;;AACJ;EACE;;AACA;AAAA;EAEE;;AACJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEN;EACE;IACE;;EACF;IACE;;;AAEJ;EACE;IACE;;EACF;IACE;;;AAEJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACG;EACC;EACI;;AACR;EACE;;AACA;EACE;EACA;;AACF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACQ;EACR;;AACF;EACE;EACQ;EACR;;AACN;EACE;EACA;EACA;EACA;EACA;EACA;;AACF;EACE;EACA;EACA;EACA;EACA;EACA;;AACF;EACE;EACA;EACA;EACA;EACA;EACA;;AACF;EACE;;AACA;EACE;EACA;EACA;EACA;EACA;EACQ;;AACR;EACE;EACA;EACA;EACA;EACQ;EACR;EACQ;;AACV;EACE;EACA;EACA;EACA;EACQ;EACR;EACQ;;AACZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACQ;;AACV;EACE;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACQ;;AACV;EACE;EACA;EACA;EACA;EACQ;;AAEhB;EACE;EACA;EACA;;AACA;EACE;EACA;;AACF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;AACF;EACE;;AACF;EACE;;AACA;EACE;;AACF;EACE;;AACN;EACE;EACA;EACA;EACA;;AAEJ;EACE;;AAEF;EACE;IACE;IACQ;;EACV;IACE;IACQ;;EACV;IACE;IACQ;;EACV;IACE;IACQ;;;AAEZ;EACE;IACE;IACQ;;EACV;IACE;IACQ;;EACV;IACE;IACQ;;EACV;IACE;IACQ;;;AAEZ;EACE;IACE;IACQ;IACR;;EACF;IACE;IACQ;IACR;;;AAEJ;EACE;IACE;IACQ;IACR;;EACF;IACE;IACQ;IACR;;;AAEJ;EACE;EACQ;;AACR;EACE;EACQ;;AAEZ;EACE;EACQ;;AACR;EACE;EACQ;;AAEZ;EACE;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;;AAEJ;EACE;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;;AAEJ;EACE;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;;AAEJ;EACE;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;;AAEJ;EACE;IACE;IACQ;;EACV;IACE;IACQ;;EACV;IACE;IACQ;;EACV;IACE;IACQ;;;AAEZ;EACE;IACE;IACQ;;EACV;IACE;IACQ;;EACV;IACE;IACQ;;EACV;IACE;IACQ;;;AAEZ;EACE;EACQ;;AAEV;EACE;EACQ;;AAEV;EACE;EACQ;;AAEV;EACE;IACE;IACQ;IACR;;EACF;IACE;IACQ;IACR;;;AAEJ;EACE;IACE;IACQ;IACR;;EACF;IACE;IACQ;IACR;;;AAEJ;EACE;EACQ;;AAEV;EACE;IACE;IACQ;IACR;IACA;;EACF;IACE;IACQ;IACR;IACA;;EACF;IACE;IACQ;IACR;;EACF;IACE;IACQ;IACR;IACA;;;AAEJ;EACE;IACE;IACQ;IACR;IACA;;EACF;IACE;IACQ;IACR;IACA;;EACF;IACE;IACQ;IACR;;EACF;IACE;IACQ;IACR;IACA;;;AAEJ;EACE;EACQ;;AAEV;EACE;IACE;IACQ;;EACV;IACE;IACQ;;;AAEZ;EACE;IACE;IACQ;;EACV;IACE;IACQ","file":"style.css"}
\ No newline at end of file
diff --git a/assets/stylesheets/admin/style.scss b/assets/stylesheets/admin/style.scss
deleted file mode 100644
index 9b11a363..00000000
--- a/assets/stylesheets/admin/style.scss
+++ /dev/null
@@ -1,21 +0,0 @@
-//= BEGIN BASE
-
-@import "../base/variables";
-@import "../base/functions";
-@import "../base/helpers";
-@import "../base/mixins";
-
-//= END BASE
-
-//= BEGIN COMPONENTS
-
-//= END COMPONENTS
-
-//= BEGIN ELEMENTS
-
-@import "elements/spinner";
-@import "elements/form";
-@import "vendor/izimodal";
-@import "vendor/sweetalert2";
-
-//= END ELEMENTS
diff --git a/assets/stylesheets/admin/vendor/_izimodal.scss b/assets/stylesheets/admin/vendor/_izimodal.scss
deleted file mode 100644
index 0aa30113..00000000
--- a/assets/stylesheets/admin/vendor/_izimodal.scss
+++ /dev/null
@@ -1,1097 +0,0 @@
-/*
-* iziModal | v1.5.1
-* http://izimodal.marcelodolce.com
-* by Marcelo Dolce.
-*/
-.iziModal {
- display: none;
- position: fixed;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- margin: auto;
- background: #FFF;
- box-shadow: 0 0 8px rgba(0,0,0,.3);
- transition: margin-top 0.3s ease, height 0.3s ease;
- transform: translateZ(0);
-}
-.iziModal *{
- -webkit-font-smoothing: antialiased;
-}
-.iziModal::after{
- content: '';
- width: 100%;
- height: 0px;
- opacity: 0;
- position: absolute;
- left: 0;
- bottom: 0;
- z-index: 1;
- background: -moz-linear-gradient(top, rgba(0,0,0,0) 0%, rgba(0,0,0,0.35) 100%);
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,0)), color-stop(100%,rgba(0,0,0,0.35)));
- background: -webkit-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.35) 100%);
- background: -o-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.35) 100%);
- background: -ms-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.35) 100%);
- background: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.35) 100%);
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00000000', endColorstr='#59000000',GradientType=0 );
- transition: height 0.3s ease-in-out, opacity 0.3s ease-in-out;
- pointer-events: none;
-}
-.iziModal.hasShadow::after{
- height: 30px;
- opacity: 1;
-}
-.iziModal .iziModal-progressbar{
- position: absolute;
- left: 0;
- top: 0px;
- width: 100%;
- z-index: 1;
-}
-.iziModal .iziModal-progressbar > div{
- height: 2px;
- width: 100%;
-}
-
-
-.iziModal .iziModal-header {
- background: #88A0B9;
- padding: 14px 18px 15px 18px;
- box-shadow: inset 0 -10px 15px -12px rgba(0, 0, 0, 0.3), 0 0 0px #555;
- overflow: hidden;
- position: relative;
- z-index: 10;
-}
-.iziModal .iziModal-header-icon{
- font-size: 40px;
- color: rgba(255, 255, 255, 0.5);
- padding: 0 15px 0 0;
- margin: 0;
- float: left;
-}
-.iziModal .iziModal-header-title {
- color: #FFF;
- font-size: 18px;
- font-weight: 600;
- line-height: 1.3;
-}
-.iziModal .iziModal-header-subtitle {
- color: rgba(255, 255, 255, 0.6);
- font-size: 12px;
- line-height: 1.45;
-}
-.iziModal .iziModal-header-title, .iziModal .iziModal-header-subtitle{
- display: block;
- margin: 0;
- padding: 0;
- font-family: 'Lato', Arial;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- text-align: left;
-}
-.iziModal .iziModal-header-buttons {
- position: absolute;
- top: 50%;
- right: 10px;
- margin: -17px 0 0 0;
-}
-
-.iziModal .iziModal-button{
- display: block;
- float: right;
- z-index: 2;
- outline: none;
- height: 34px;
- width: 34px;
- border: 0;
- padding: 0;
- margin: 0;
- opacity: 0.3;
- border-radius: 50%;
- transition: transform 0.5s cubic-bezier(.16,.81,.32,1), opacity 0.5s ease;
- background-size: 67% !important;
- -webkit-tap-highlight-color: rgba(0,0,0,0);
- -webkit-tap-highlight-color: transparent; /* For some Androids */
-}
-.iziModal .iziModal-button-close{
- background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODZCQkIzQ0I0RTg0MTFFNjlBODI4QTFBRTRBMkFCMDQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODZCQkIzQ0M0RTg0MTFFNjlBODI4QTFBRTRBMkFCMDQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4NkJCQjNDOTRFODQxMUU2OUE4MjhBMUFFNEEyQUIwNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4NkJCQjNDQTRFODQxMUU2OUE4MjhBMUFFNEEyQUIwNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsgTJLcAAALJSURBVHja3JnLS1VBHMfvQ7g9dBXRRrwEFRciAhMi1JRW1aIHVEIYEkW0iVpUhOD/ICK6cFMgSbUpC6VFkQa9NtpjkauriRY9Noa3pHT8/mIODMM5Or85o87pC5/NPf5mvmc8M7+Z36SFEKkY2gj2gUawF2wHW8A6+fwv+A6KYAQMg+dg2rbDtKXhGnAaHJIms4zYz9J4HxgAf1g9k2EGteAhWBBuNApaQNrUg6nRTaAbzIuV0RCocWW4DoyJlVcJXI5ruFk2tJqi/2TWxvA5sXbqA2Ucw01i7dVjargazAo/dE33p6/DlAheg50pP0SJpwG8CH7IaH/Q5pFZUhnoArkwwwVwJeWfdoMLYYZvqG+yTGo9CerAoIWBT+A4qAdPDWOugwo1NVcxJtpFZRLkwH3GJCqCghJfxVjnz1JMMMKnwAbGRAg0B5rAA4O4CblZ+qj8tkBjZthvSzDCtFIMM0ZpQhslk5Eej4jpZ/T7G+ygwG1ghrk+jjNMFy1eMPJzpOAzlou6iWmXZkm91EBHjEwUZXoQTDk2SxqhRh7HTJ9hpstB3rFZ0ldq6J2DnB9m2rXZfxOPlrX1DrJRXiaBXSHPaMHvB0cd9JPLpBImMvzLQTuUFA6A9yHPfoIjhsllOc1l5N4grtmDWgYrl5+JTUZcSjNkeMyxWdpA3ZN72IJj01OJTByJS82J2/wQVxmB5y1HK8x0JWMf/kzdD98FJcY5S51gdwyTQl6eUAraspo27PeWXgy8afim0+CELAwOWHyH9EkdkyWwJ4Yxk6BCP+bTm48anutWW5dAp34IpbW03UOzb0FPVEHbx0LKfvAyqpAyKw97JU8Mt6pml6rAJ6oY6Eu5NfvfF7QTeWWQyEsZr6694lwsNoPD8mKRo29gCNwGj7gXi7aGA1EBcY+8vq0GW8FmJb3Pgx9gEnwAr8Ab8MW2w0UBBgAVyyyaohV7ewAAAABJRU5ErkJggg==') no-repeat 50% 50%;
-}
-.iziModal .iziModal-button-fullscreen{
- background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTBBOUI4RUM0RTg0MTFFNjk0NTY4NUNFRkZFNEFEQzIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTBBOUI4RUQ0RTg0MTFFNjk0NTY4NUNFRkZFNEFEQzIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFMEE5QjhFQTRFODQxMUU2OTQ1Njg1Q0VGRkU0QURDMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFMEE5QjhFQjRFODQxMUU2OTQ1Njg1Q0VGRkU0QURDMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrQO6gAAAANmSURBVHjazJlbSBRRGMd3x92i0ForRRMiKiUoX4ouiFlJkRVBDxW9GJERwUasvdRT9FD00osRQtAFqegGBUHRBY0uaCVKEkSRpVR0tSwrQtp1+p/4Bk7D7M45M/Ot/uGHu+Psmf+c+eY753wnbJpmyIfGgvmgiv6WgkKQBwzwE3wBr0AnuAta6ZgnhT0aFuY2ghoyGdH4bS+4Dc6CZjCkdWVhWIPF4JoZnB6CDToeVE8sBidNPt0E5UEZrgG9Jr8GwHa/huMgaWZXDSDsxfBuc/jUBAwdw3Fz+NWoang5SJkjQwm7P3seLqQEX2LLfgfBdZcMORMcBqNDwekPqASP0uXhpjR3Ok0x/fUw9HIHGGVdw5DuRtzJpgxDsJui2qOWmuaAOuuLbHivz4YLwLgQj/aAXNmwuItlHhtbA7pAG5jEZHgKWCcbrhUTIY+NPQVjqFFObbYMi/hc6aOhl2AJ9TKnFoIyYXgemKEzJQXVVkyR3oFVzKZFuqw2qHdyFPKhrHPgMoWC3fRjRtNVVg+7SR5IiqmXxUt60cG0CK/vTIZniZVCmcKJF0C3ZNjKBqvJ9Hrwm46tsN1EkCoRQ/M3fBjvs6GrYAvdwHEfGcd1qBaGkwoxrKI+xjz83yJ0iLFHApd46X4xX+M+WECh4lepCNUIcpnMijrEWtAvTRHrbOd8FZNG8uA2Nf0hpmwtjBPwpQ5T0GPS/+tBAZhIq+b3Lu09EyHRwRgO+0C+7dhWcII+PwCf6Sk/Aa9d2vtn+A7nyASugJiD6YSDQcOlvVbxiCaAN8xrs3sgprBiac/QhlhnzjUo6JuZM0UlDS5FPtoQIdNlPYJTWUihFaDex+9Pg6T1KHJAJ2NI7ASllA28hEQ/KJIXoSlwgKlnh+jFe+GjLtwIPtjfyktUt+UaUZWqvw7H3oJD1peI7eQdoF1xWa+zQikHH13OmwqmOxxP0EiZtgK/DRwNuIcHwSeXc2K01WAPhbhKBb5hBNTVbskVH7fqpZGhbJUNtYF83fqwQSXPbOsGjb6etwx2gcEsmT3iFAZeNmUqaMeHSz2qu0k6W15Rqsx3B2i0D+xXGAHTFrRVlEeFuVoqH+ku6VNUbDkPzlAtg30nVK66i8rRIjAbTKaSQVQyN0DD6nOqcLZQld9TLfmvAAMAeMcvp3eCFqQAAAAASUVORK5CYII=') no-repeat 50% 50%;
-}
-.iziModal.isFullscreen .iziModal-button-fullscreen{
- background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkFFRTU5NDA0RTg1MTFFNjk0NEZFQzBGMkVBMDYyRDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkFFRTU5NDE0RTg1MTFFNjk0NEZFQzBGMkVBMDYyRDkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyQUVFNTkzRTRFODUxMUU2OTQ0RkVDMEYyRUEwNjJEOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyQUVFNTkzRjRFODUxMUU2OTQ0RkVDMEYyRUEwNjJEOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuDFfX8AAANASURBVHjazJlZSBVRGMfHcWlB0xZM68GKukQLYaGkmEUR2EsvRfQS+BSJPUQE+lTR8hqIZY8hFS0ERVCRoW3gpUApghYpszLTVnCB3O70/+K7MAwzc78Z58z4hx8XzpzvzJ+Zc+d85ztphmFoU9BsUAoq+XcFyAc5QAfD4BfoBp3gCWjnNl9K82mYzO0FVWwyw0NsD3gIroBWkPB0ZzLsgc3grhGcnoE9XjxIOxaCC4Y6tYC1QRmuAj2Geg2CA1M1XAsmjHDVANL8GK4zolMz0L0YrjWiV5PU8HYw6TBIf8imD6UynA96HYKPg3mgMUTDY6DUzXCzQ+AxSz+r6QEQZz4HbLoDZNkZrnAIoOlRZjN1Gk3XS0zty/gTFaRq7Ay3uAR8BcU2ps/z9QJTWw74HrDhTyDbbHg9SKQI+sb9rKa3mV8ZmAt+KJjP1TS+zinFPkqEUqQdBeAOKLa0UwIzpqlXtcYpIKWIO4RBZPoRKNfC10YQI8MlYLkwaAB8ABsiMDwDbKU8dgtIFwRMgJ3guRadKpNPWBMa7tOi1WoyHJPuTsC4oN+IQsOLM3gPJlEWqOE/neMGBqwDeYoMz6G8c0I4h6eFyHBC8A2eVoaH8JutaPwuUA/+uvSht1sHKgTjTWZwjUCVYdrK3xT0iwkND+lc5FClUQ9fINHCRYY7FBrWPSz5Er2lAR9H9P+hpfYGl64OCmPadQ7ojcDwOJetysBMQX/6mrWS4d+cIoYtMnAEnBT2fwVeJufYxZBMFoKFlrajQtOX/uczvEtIB50Kdgn1lt3JGdANltjsXE64jPMnuQ1LPuFJcFrBE11gzQXAUnAPFNk86esO4zSBfmu5lVa9toCf8DC4Ba6C22DEdO01KDLdP5fLr1Z94X2ibV1ilWVQ1XrDpvPAU4c+u1KVqvaHXI7q43ltp3PSYmDDNCgGPrCUD1wN6y5lqzAUN89baX1Y55Jn2LrPRUffRwaHwWhIZs/aTQM/hzLlDp+coPRReprk5cgrkyvz7wM0+hOcAvOlPvwcLNIp526ux1H5aJbHeFpVX4Br4LLXWoffk9CkVnLlaBNYAxaBXJBpMjfIy+o7EAdtfIyb8HPDfwIMAM1WPs8F9tcxAAAAAElFTkSuQmCC') no-repeat 50% 50%;
-}
-.iziModal .iziModal-button-close:hover{
- transform: rotate(180deg);
-}
-.iziModal .iziModal-button:hover{
- opacity: 0.8;
-}
-
-
- .iziModal .iziModal-header.iziModal-noSubtitle{
- height: auto;
- padding: 10px 15px 12px 15px;
- }
- .iziModal .iziModal-header.iziModal-noSubtitle .iziModal-header-icon{
- font-size: 23px;
- padding-right: 13px;
- }
- .iziModal .iziModal-header.iziModal-noSubtitle .iziModal-header-title{
- font-size: 15px;
- margin: 3px 0 0 0;
- font-weight: 400;
- }
- .iziModal .iziModal-header.iziModal-noSubtitle .iziModal-header-buttons{
- right: 6px;
- margin: -16px 0 0 0;
- }
- .iziModal .iziModal-header.iziModal-noSubtitle .iziModal-button{
- height: 30px;
- width: 30px;
- }
-
-
- /* RTL */
-
- .iziModal-rtl {
- direction: rtl;
- }
- .iziModal-rtl .iziModal-header {
- padding: 14px 18px 15px 40px;
- }
- .iziModal-rtl .iziModal-header-icon {
- float: right;
- padding: 0 0 0 15px;
- }
- .iziModal-rtl .iziModal-header-buttons{
- right: initial;
- left: 10px;
- }
- .iziModal-rtl .iziModal-button{
- float: left;
- }
- .iziModal-rtl .iziModal-header-title, .iziModal-rtl .iziModal-header-subtitle{
- text-align: right;
- font-family: Tahoma, 'Lato', Arial;
- font-weight: 500;
- }
- .iziModal-rtl .iziModal-header.iziModal-noSubtitle {
- padding: 10px 15px 12px 40px;
- }
- .iziModal-rtl .iziModal-header.iziModal-noSubtitle .iziModal-header-icon {
- padding: 0 0 0 13px;
- }
-
- /* LIGHT THEME */
-
- .iziModal.iziModal-light .iziModal-header-icon{
- color: rgba(0, 0, 0, 0.5);
- }
- .iziModal.iziModal-light .iziModal-header-title{
- color: #000;
- }
- .iziModal.iziModal-light .iziModal-header-subtitle{
- color: rgba(0, 0, 0, 0.6);
- }
- .iziModal.iziModal-light .iziModal-button-close{
- background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4JpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyQTU1RUZDNzRFODQxMUU2ODAxOEUwQzg0QjBDQjI3OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NEM4MTU1MEI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTNFNENDMkI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZjYzMwMmE1LWFlMjEtNDI3ZS1hMmE4LTJlYjhlMmZlY2E3NSIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjdmYmU3NGE3LTAxMDUtMTE3YS1hYmM3LWEzNWNkOWU1Yzc4NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Po24QssAAANtSURBVHja3JlJaBRBFIa7ZxyTSXADHUkikuAawZNLEOOGGrwJQYko8R4RBQ+OICoqghJQUVwPYjzFY0QUBQU1kogoKO6CG0pcIwbiNibj/8JraNvu6Xo9NTOtP3xzSKe6/65+Ve9VlWlkp2IwGUwFE0E5GA4G8/U+0APegWfgHrgPuq0bpNNp0QPNgEYngHlgGpuMCNp2s+kr4BYM/8ql4WqwHEzP4mXteg7awOW0YlerPnQIaARLNBl1ikLlBDw/1WF4ClgHKozc6idogekz2RheANbaBlE+dB4chfF+qeHF3LOF0FWwF6b7nBe8RvecApolzQVr3C64GR4H1huFV51pmvV+hikRbABFRji0GqarMxluAGON8CgKmmA65mZ4DFhqhE9VPP//ZXgZiCmm1t1gI6XWAAY+gF0gCe4qtqlHL8fthkeBWsXGreA6eMgPviEw+x5sBZ3gAdjPCcNPI8Fsu+FawUCzz40psEfRNJndBl7b/pZmVLTQMkzJo0bQSys43iWm3cxS+DUJOmoSwqKCRmEZWKkYv6RSMBPc5lqXRGm0A1Q6XiaT2aSwo8jrK/qZwZlFIlXTusxa6iXDddTdARpnMj2ek9AWjWYH7h/lubcs4A28THdyAdOl0ezAmKNBNyLLiT0Btjti9zuHg06zpJKIprohwXNypcu1OIdGjYbnxCLGPyYy/EPDfejzbwYvXK59AzuFGdFLKTL8WYNZ59RVzGESJCNm0teI40E6zNIA2wSaA2REP32iaW0omKXRbJKTUVyYEVV0J8oxvEiQmiUZrFSz6XNkuJe3nBKCelaSbjOZrhLsd1BInYxweSeJq9YA6dYtuZCBI4JZ6jGW/W+sebhd0DAaMIO5mTYFW1+X6GeQ7TO3W0WyQj3cw0ulBg4nSUbcAY7zPVYp7ip95FXOH29Hb35AOPjypWMIh7PORSjFZVsIzdKW7AWvfYnTVNWHyCytHw+jd1Nehqks3KepvtChUzD7yGvE2/cduqxldQF1EWZb/PbWLF3jAVgo0WrlkN+c6hSd+rzlaSuaR7O0oX0wyIa2pVAdGaj0HCUVOqIq4dVwrg5lmmG2w+8f/9tjL6foYHE+Gy8Xtv3CPUpf7WauDxadKuIwoeNbOmoYDYbZ0ns/1wxUC7ykigs8sS/LpEe3vwUYALiKDDDSgEiSAAAAAElFTkSuQmCC') no-repeat 50% 50%;
- }
- .iziModal.iziModal-light .iziModal-button-fullscreen{
- background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4JpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpEQTg1NTA2NTRFODQxMUU2OTQ0N0VERjY2Q0M5ODYwRCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RTNFNENCQkI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTNFNENCQUI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFlNTQwYzczLTVhZmEtNDJlYi04YzJlLWMwMzFlYmFiYmIyNiIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmVkYmRiMzM1LTAxMDUtMTE3YS1hYmM3LWEzNWNkOWU1Yzc4NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvIicdUAAAOvSURBVHjaxJlZbA1hFMe/qaItUUsspakg1laJ7UUisQuRvvTFA15sQSRCLBFrQryhHqxNHxEPtaQ8CCUkIrVVRbVBJdZYSrXVonr9/3pGxnTunZk78/X+k1+aO+1899/vnnvO+c4YKpi6ghEgW34OBD1BKjBAM6gH78Fz8BhUyrW/ikQivt7QiNMozU0DE8RkJx/3fgCPwA1QHvHp2K/hHJAPJqpwVA2K4flW2IZ7gyVgptKjh6AQxl+GYZi7uRr0U3rVBIpg+nIQwwvACpCkOk4XwYlosR3LMGN1qUqMroGDTqaNGDu7SiVWl+D3iP2i00c9HqxUidd8wzDy3HY4HRwCfWzXz4L7Lm+QKfHeOUTTLWAzdro6muH1YIbDjculWrmpUEM2YYXcCNMt9pAYE8WsWYLdlAxaNYTGMDDHKYYXBVy4B0jTFM/5iOcUc1fM/2JcnItNAYtBNzGtQ33BVHDV3OHpARqhV6CLLKpTs8yQYHxOCrDQO7AV1Gg2PBJhMYiGh4MMnx1eLkixXKsFuzSbZrrMpeGxHnqFFtvrTWCbhILd9AuNpnPMHXaTtZD0kl1mRdwSxXSjJsNZfONjcmqIJR5p3lp6Y+sXrAzsBz/lNXvmtZYMFKbqafi0pKQgKpOSPhmsC5BxXEs1Fz4fUr/7TWMe/q9bC2s3tJs1Df/Q/B5PwAZwJYS1WpPlo0zRZJZziL2gQU7I1GyHL7QSD26taVOytI26DpinxKypApvpk+C6dHlMnXskbUbT1yTpN3WJHWB327UCS3hUoc+tA/VyxP/ost5rGq7QWZnAdoe0eZgnYweDbgmgkoafgk8aTfNgsMNmmqfhC+Czj3V4T3mSBH255kxB0ztd4tNNDJkas2CUdkAKHQ3yAtxfijj/bdb7Cumyhmoyexzcs6Qwv2qUbPKvJDOtnNFklrF3R5qneA2XYHe/2A+ht1Xb3FZXRY1XTAjFTgtxJ45qKtWDpZK1g6dhIQuvBzjcy8FgQ6y8Nw+sCdnwL1Dn8jdMe6m2a+3ma9ESNUdOC1VixSH3bnPiYyraswnO0fqDIQkyW8WmCWab7b+I9TCF3+x0j2e+MPUA7LPGrVfD1F3VNsrPVR0zhS8BB5x21muzYa1Sy1Tb4y4d4qOwIi9Pk/wcj1gV50p5zQjJKAsJH8KcY4vpdYrjV0w9HMxxHjfKNpfwdMyRNuAmyy2M1vq5OegBNFMmR9lSHDizSLPMJGjuO2BZfSOtLKvpMylUvh/d/hFgAOH4+ibxGTZuAAAAAElFTkSuQmCC') no-repeat 50% 50%;
- }
- .iziModal.iziModal-light.isFullscreen .iziModal-button-fullscreen{
- background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3BpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyRUUxMkYxODRFODUxMUU2Qjc3RDk0MUUzMzJDRjBEOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RTNFNENCRkI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTNFNENCRUI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjgzM2MwOWZiLWJjOTEtNGVlZS05MDM1LTRkMmU2ZmE1ZjBmMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRUUxMkYxODRFODUxMUU2Qjc3RDk0MUUzMzJDRjBEOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv1Q9Z8AAAOXSURBVHjaxJlLbA1RGMfPjIs+EvoIRYt4FVUl2EkkRTxKUqQbG0SEho2FjUQ8YtEICbEgTdFYeK1KaGvVeoUltyStt0UlNE17aWhV2+v/9X5XJpMzc8/0zpn5kl+aO3Nm7r/fnPu9xhDp2URQDJbw3xkgB2QCAwyAPvANfARvQDsfG7V4PO7pC40xCiVxa8AKFjnOw7VdoA08BtG4R8VeBZeCKrBS+GPvQAM0P/NbcB7YBdYJPfYKXIXwL34IJm8eBFOFXusH9RDdnI7gLWA/MEVwdh/UOe1tN8G0V3eLcKwFXJCJNl08G5ZYsrWgWnZCJng5OOBwo1iAoisMw6hMJXgyOOywVW7xj+9BgKL3QHSxm+C9IF9y4U2GMlStRPQP8Jbp9lFwhJwE0RHrgaSV8N6xG238l7Zjtfx3K58/Bd7zsWngIqdnP2we2ACa7B7e6RL6joK5EtHNfL7b5u1Bn7dGFbycYRVM/8WyFJnuJK+z2iVwzFrMcF1h+Cx4ClhtFVyu8CW54ITE01EwFMAPcH1SMJWIqxQvItE1YHEIsXkhtkUhCV4ApiteFOPadn4IgseDMooSSxVrhWFwmkvCsKw06WGhKLhHhGuzSHChh9pZ5cc1oFFwfoTTsWrWqQCvXdZQEpkDsjUJziSv3Qu43k3LTA1BXqvRY/4DMjTd/yu4niJVm9wslCjcb4QE/9Qo+Al44baAmgpKCIqC+01OBLrsr8/de8zkiYwuUxWSq7iuM8JhantIqfYItkOepKBysnbycIfPXYKqURL6DhaBCQrrKcZHTa5loyEIJgHXwG3F9TQV+pxMGK0BiaTHn2OLEjcURbdi7XBSMO3jTxoEjtg+7wDnhG3spSD6F3hk7Tjoxnc0CJ5k+5wFCrhplYl2mmI24nyvvWumAE9z2zIfBW8WifnxIHc2yb6xiHtEoms0/hlGtpAPHCkgNDjFyZngPN88COvkPpEe+XGHbFcD7z53C+ybwKEAo0UPZ8QCybkmiL3sNvkheygSI08RYOSQiaUhd52sUpIZLWwJsYqkkdcZeHfIS66nc9XcZQRpNBY7C7F9Yy1OtonErDgSgNhGcEXmWa/VFA1O9onE6y4dRqGtXuVtkpf2iDy8EVR6GLykMnrsNFC867QF0hH8v3MVicFcuYdKy56uqQx4SukWQj3NOtJtQIt4ckSvbmdziMqy7HcS9xv0cn/Xwdn0A1drnl/d/hNgAGQa6Lgarp6BAAAAAElFTkSuQmCC') no-repeat 50% 50%;
- }
-
-
-.iziModal .iziModal-loader{
- background: #FFF url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDQiIGhlaWdodD0iNDQiIHZpZXdCb3g9IjAgMCA0NCA0NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBzdHJva2U9IiM5OTkiPiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS13aWR0aD0iMiI+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iLTAuOXMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49Ii0wLjlzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgIDwvZz48L3N2Zz4=) no-repeat 50% 50%;
- position: absolute;
- left: 0;
- right: 0;
- top: 0;
- bottom: 0;
- z-index: 9;
-}
-
-.iziModal .iziModal-content-loader{
- background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDQiIGhlaWdodD0iNDQiIHZpZXdCb3g9IjAgMCA0NCA0NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBzdHJva2U9IiM5OTkiPiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS13aWR0aD0iMiI+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iLTAuOXMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49Ii0wLjlzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgIDwvZz48L3N2Zz4=) no-repeat 50% 50%;
-}
-
-.iziModal .iziModal-content:before,
-.iziModal .iziModal-content:after { content:''; display:table }
-.iziModal .iziModal-content:after { clear:both }
-.iziModal .iziModal-content{
- zoom:1;
- width: 100%;
- -webkit-overflow-scrolling: touch;
- /*overflow-y: scroll;*/
-}
-.iziModal .iziModal-wrap{
- width: 100%;
- position: relative;
- -webkit-overflow-scrolling: touch;
- overflow-scrolling: touch;
-}
-.iziModal .iziModal-iframe{
- border: 0;
- margin: 0 0 -6px 0;
- width: 100%;
- transition: height 0.3s ease;
-}
-.iziModal-overlay{
- display: block;
- position: fixed;
- top: 0;
- left: 0;
- height: 100%;
- width: 100%;
-}
-
-.iziModal-navigate{
- position: fixed;
- left: 0;
- right: 0;
- top: 0;
- bottom: 0;
- pointer-events: none;
-}
-.iziModal-navigate-caption{
- position: absolute;
- left: 10px;
- top: 10px;
- color: white;
- line-height: 16px;
- font-size: 9px;
- font-family: 'Lato', Arial;
- letter-spacing: 0.1em;
- text-indent: 0;
- text-align: center;
- width: 70px;
- padding: 5px 0;
- text-transform: uppercase;
- display: none;
-}
-.iziModal-navigate-caption::before, .iziModal-navigate-caption::after {
- position: absolute;
- top: 2px;
- width: 20px;
- height: 20px;
- text-align: center;
- line-height: 14px;
- font-size: 12px;
- content: '';
- background-size: 100% !important;
-}
-.iziModal-navigate-caption:before{
- left: 0;
- background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAoCAYAAACFFRgXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyNmFjNjAyMy04OWU0LWE0NDAtYmMxMy1kOTA5MTQ3MmYzYjAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDREQ0YwRjA1MzQzMTFFNkE5NUNDRDkyQzEwMzM5RTMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDREQ0YwRUY1MzQzMTFFNkE5NUNDRDkyQzEwMzM5RTMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpmNmM0Nzk3Ni1mNzE3LTk5NDAtYTgyYS1mNTdjNmNiYmU0NWMiIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDowZGVmYTEyZC01MzM0LTExZTYtYWRkYi04Y2NmYjI5ZTAxNjYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7oo0ptAAACWklEQVR42uyZTWsTYRSFZybxo4kWk5g2NC5qTAU3Kq30A9udi1oXolV/hWuhv6R/Q6utioi4LbbVFHemamlRU0OCEk0wZjwXzwtDoBDopHMHcuFJMplZnLm5ue+589qu61qeOApyYAjEgG0FEyLqN/gKiqBuTtgewWlwCZw056xgwwirgU3wxSv4NJgCUV5YBRXQDEhsBJwCSSauBVZFdJRlIJk9Av7wbj577jDIOENtRmPVwcsw6KfAAvikRKzEDlhnhuU/lRPBWaa9wsxqC6ndPX7OiOA4D8qW3vjO9z7H0w3+KhZstNmOFbLoCQ6DYGmL+bAInmGfLFC4asFXwRJIgB+goVmw+I7HXO+/gevGnGgUPEGxktkSmAMbWmt4HDwBKS6XN1jDKrvEFYoVK7oLroE3h93Woh1eNwqWafJ/gQV65vM+ail34mc6EZwBK2CAx8fAIjjeBYMzDT4cVHCEXtRbRvEu/Nr9HCIOnGGp15vgEec9KYn74B0nAT/CZnv86FcNvwK3wENwAjwAs2Bbs5d4CW5zir0AXvv8p+tKH34B5lkW4h2egRHtbu05uMMHHWfB0zC4NRF5l09kzvE4rd2tyUJyjy4tz7akZqXbL8QETbJ/FsMgWOJtb6brCQ5YsBsC8Uab63DVkkgqFpzie93h8OhScFah2LTHi5ccWroaLd5l6//+hpYQoWP05LKqFs2WQYbTsNxAi+5fxpWmdfh7HS7XhwSzG+H3a2JnvZsyktmLbdOFhpDMvrf4sN1u2/aK0cwMcmYLcturweceW+CnOfFPgAEA8uWFFylBJYoAAAAASUVORK5CYII=') no-repeat 50% 50%;
-}
-.iziModal-navigate-caption:after{
- right: 0;
- background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAoCAYAAACFFRgXAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADhmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjI2YWM2MDIzLTg5ZTQtYTQ0MC1iYzEzLWQ5MDkxNDcyZjNiMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0NERDRjBGMDUzNDMxMUU2QTk1Q0NEOTJDMTAzMzlFMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0NERDRjBFRjUzNDMxMUU2QTk1Q0NEOTJDMTAzMzlFMyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmY2YzQ3OTc2LWY3MTctOTk0MC1hODJhLWY1N2M2Y2JiZTQ1YyIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjBkZWZhMTJkLTUzMzQtMTFlNi1hZGRiLThjY2ZiMjllMDE2NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuijSm0AAAKbSURBVFhH7ZnJj0xRGEerzFoIMTaCZmOIedhaiJj55yz8DaYdNhIJEUMQbCTG3rQ02hDSiEY553XdTpHS3nv96taV9ElO6lVt6peb7933fffVG41GrYW5uBaX4EysYzcw1Fd8hc/wM2a0Bl6Nm3BW9i0dDPsQX/olBF6FO72AH/gG3+N3jL3KBpqGC3ERTsGfeAsHDTyHi71oCXzBe/gaU2A5bscZOIxXTb8OLQNX9i6mElYsg/voqruwfQb2BhODWgqpMYDv0NLsNXC4yd42P1PEwNJj4HBTWdipErLVDfxfMRm408QMvBu3jV6WJ1Zg9/rbeBOP+UNZYgX+iE/Rp+lpPIKliBXYB9IhtPNy3z/T/F6YmDXsChvyBc7Gs3gACxEzsDzBg9iPPXgO92NuYgeWx2h3+AhtaM7jPsyF7aV37XR8gNZYO/pwKY51+xPkG27Fk2joT3gCr2A7NuJ6HMkTeAPadlp3VeMChF7G0P6X3dmfjAXOUxIj6LZkv1ylNuStDZejkL+PS96ScFzRqnDAtI5PoTefvbg7iNNOOwqVRCfYghdxBbpHH8Y7+DcKlUTV7MLLaNghPIrjhf2N2IF34AVcjE44hrXHyE3MwE6/loEzpEcIlqKjeyFiBe7FS+he/gENewMLEyuwXdo8dGWP43UsRazA9g7uDNbwNX8oS8watlsz+ISIGbgSJgN3GgOHlnFq8zNFQraGgT1iFc9iUyU0XsMGHhy9zh6XbvCp4ZuBBWglDBj4OdqLeu0+uRJTwMZ+Dbp/e21P3m97yWe2snsw1LTHmz5C/9lQdwhfGbiq89GwvrrwUT4UAouhN6MzloTRpVuEYI5O9urZYXtrYPGQw2OlZegM163QhrJMfWVgyTq0Qq32C/N7uPz9OknWAAAAAElFTkSuQmCC') no-repeat 50% 50%;
-}
- .iziModal-navigate > button{
- position: fixed;
- bottom: 0;
- top: 0;
- border:0;
- height: 100%;
- width: 84px;
- background-size: 100% !important;
- cursor: pointer;
- padding: 0;
- opacity: 0.2;
- transition: opacity 0.3s ease;
- pointer-events: all;
- margin: 0;
- outline: none;
- }
- .iziModal-navigate > button:hover{
- opacity: 1;
- }
- .iziModal-navigate-prev{
- left: 50%;
- background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALwAAAC8CAYAAADCScSrAAAACXBIWXMAAAsTAAALEwEAmpwYAAA5sGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDo2NDkyYzcxMy05ZDM0LTZlNGQtYmUwNi1hMDMyY2Q4NDVjNGU8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDo1QjIzMUMxODU3RjcxMUU2ODUzRkRBRjE5RDhDQjZBRDwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDpjZmMwNzVmNC1kODA3LWI0NDMtYWIwYS02YWVhZjRjMDgxZWE8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0YW5jZUlEPnhtcC5paWQ6NjQ5MmM3MTMtOWQzNC02ZTRkLWJlMDYtYTAzMmNkODQ1YzRlPC9zdFJlZjppbnN0YW5jZUlEPgogICAgICAgICAgICA8c3RSZWY6ZG9jdW1lbnRJRD54bXAuZGlkOjY0OTJjNzEzLTlkMzQtNmU0ZC1iZTA2LWEwMzJjZDg0NWM0ZTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgPC94bXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmNmYzA3NWY0LWQ4MDctYjQ0My1hYjBhLTZhZWFmNGMwODFlYTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQxMTo1ODowNC0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0wOC0wMVQwOTo0MDo1Ni0wMzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTA4LTAxVDExOjU4OjA0LTAzOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0wOC0wMVQxMTo1ODowNC0wMzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjE4ODwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4xODg8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PvAvv7QAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAmdJREFUeNrs1LsJQkEQhtH/mtmBgQ8QA7tQK1e7MBBBMbADwzUZEyuQveeDCXbD4TBDay3SWJpYgYCXgJeAl4CXgJeAl4CXgJeAl4CXgJeAF/AS8BLwEvAS8BLwEvAS8BLwEvAS8BLwAl4CXgJeAl4CXv/WJskpyQJ4jQH7Mcmu0C+BV+/Y5/VeF/oV8Ood+7dpDfDqHvsrySHJBXjBDrxgB16wAy/YgRfswAt24AU78IIdeMEOPOywAw+7gIcdeMEOvGAHXrADL9iBF+zAC3bgBTvwsMMOPOwCHnYBD7uAhx14wQ68YAdesAMv2IEX7MDDDjvwsAt42AU87AIedgEPu4CHXcDDDrxgB16wAw877MDDDjvwsAt42AU87AIedgEPu4CHXcDDLuBhB16wAw877MDDLuBhF/CwC3jYBTzsAh52AQ+7gIddwEtjB3+tS/78+Z/V5d9iATz0Ah56AQ+9gIdewEMv4KEX8NALeOgFPPQCHnoBDz3wgh54QQ889NADDz30wEMv4KEX8NALeOgFPPQCHnoBD72Ahx54QQ+8oAde0AMv6IEX9MBDDz3w0EMPPPQCHnoBD72Ah17AQw+8FUAPvKAHXtADL+iBF/TAC3rgBT3wgh546KEHHnrogYdewEMv4KEHXtADL+iBF/TAC3rgBT3wgh54QQ+8oAde0AMv6IGHHnrgoU/yrgFe3aO/JdknuQOv3tGfC/tjjEsYWmsoyIWXgJeAl4CXgJeAl4CXgJeAl4CXgJeAF/AS8BLwEvAS8BLwEvAS8BLwEvAS8BLwAl4CXgJeAl4CXvqnPgAAAP//AwCEcoCBRabYzAAAAABJRU5ErkJggg==') no-repeat 50% 50%;
- }
- .iziModal-navigate-next{
- right: 50%;
- background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALwAAAC8CAYAAADCScSrAAAACXBIWXMAAB3SAAAd0gEUasEwAAA7pGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0wOC0wMVQwOTo0MDoxNC0wMzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTA4LTAxVDExOjU4OjEyLTAzOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0wOC0wMVQxMTo1ODoxMi0wMzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDphZjljN2Q2MC00MTg2LWE3NGQtYTBiMS1mMGU5ODUwYzg2ZGY8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6NjQ5MmM3MTMtOWQzNC02ZTRkLWJlMDYtYTAzMmNkODQ1YzRlPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6NjQ5MmM3MTMtOWQzNC02ZTRkLWJlMDYtYTAzMmNkODQ1YzRlPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY0OTJjNzEzLTlkMzQtNmU0ZC1iZTA2LWEwMzJjZDg0NWM0ZTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQwOTo0MDoxNC0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjAxNjJjMmE3LWZmMjYtYzE0ZC05Yjg4LTc2MGM2NzAxYjYzNzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQxMTo1MTowNy0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmFmOWM3ZDYwLTQxODYtYTc0ZC1hMGIxLWYwZTk4NTBjODZkZjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQxMTo1ODoxMi0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MTkzOTAzNi8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTkzOTAzNi8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTg4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjE4ODwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+nbt1mgAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACQklEQVR42uzSsQ3CQAAEQTdiOyGg/wrciJ0QUMYSECEKAP3PSdvAaZZqkWbJCQJeAl4CXgJeAl4CXgJeAl4CXgJeAl4CXsBLwEvAS8BLwEvAS8BLwEvAS8BLwEvAC3gJeAl4CXgJ+D9vrY7qBgLwo7dVZ+89oAd+5Pbq6nPQAz9s9+rZ96AHHnoBD72Ah17AQy/goRfw0At46AU89AIeegEPvYCHHnhBD7ygBx566IGHHnrgoRfw0At46AU89AIeegEPvYCHXsBDL+ChB17QAy/ogRf0wAt64KGHHnjooQceegEPvYCHXsBDL+ChF/DQAy/ogRf0wAt64AU98IIeeEEPvKAHXtADDz30wEPvI+ChF/DQAy/ogRf0wAt64AU98IIeeEEPvKAHXtADL+iBF/TAC3rgoZ8ePRDAAy/YgRfswAt24AU78IIdeMEOvGAHXrADL9iBhx124GEX8LADL9iBF+zAC3bgBTvwgh14wQ68YAcedtiBh13Awy7gYRfwsAMv2IEX7MALduAFO/CCHXjYYQcedgEPu4CHXcDDLuBhF/CwA+8E2IEX7MALduAFO/Cwww487AIedgEPu4CHXcDDLuBhF/CwC3jYgRfswMMOO/CwC3jYBTzsAh52AQ+7gIddwMMu4GEX8LBravB7dcEO/Ext1Qk78DO1VgfswEvAS8BLwEvAS8BLwEvAS8BLwEvAS8ALeAl4CXgJeAl4CXgJeAl4CXgJeAl4CXgBLwEvAS8BLwEvAS/9shcAAAD//wMAtAygvJrkwJUAAAAASUVORK5CYII=') no-repeat 50% 50%;
- }
-
-.iziModal.isAttachedTop .iziModal-header{
- border-top-left-radius: 0;
- border-top-right-radius: 0;
-}
-.iziModal.isAttachedTop{
- margin-top: 0 !important;
- margin-bottom: auto !important;
- border-top-left-radius: 0 !important;
- border-top-right-radius: 0 !important;
-}
-.iziModal.isAttachedBottom{
- margin-top: auto !important;
- margin-bottom: 0 !important;
- border-bottom-left-radius: 0 !important;
- border-bottom-right-radius: 0 !important;
-}
-.iziModal.isFullscreen{
- max-width: 100% !important;
- margin: 0 !important;
- height: 100% !important;
- border-radius: 0 !important;
-}
-.iziModal.isAttached{
- border-radius: 0 !important;
-}
-.iziModal.hasScroll .iziModal-wrap{
- overflow-y: auto;
- overflow-x: hidden;
-}
-
-html.iziModal-isOverflow{
- overflow: hidden;
-}
-html.iziModal-isOverflow body, html.iziModal-isAttached body{
- overflow-y: scroll;
- position: relative;
-}
-html.iziModal-isAttached{
- overflow: hidden;
-}
-
-/* SCROLL */
-
-.iziModal ::-webkit-scrollbar {
- overflow: visible;
- height: 7px;
- width: 7px;
-}
-.iziModal ::-webkit-scrollbar-thumb {
- background-color: rgba(0,0,0,.2);
- background-clip: padding-box;
- border: solid transparent;
- border-width: 0px;
- min-height: 28px;
- padding: 100px 0 0;
- box-shadow: inset 1px 1px 0 rgba(0,0,0,.1),inset 0 -1px 0 rgba(0,0,0,.07);
-}
-.iziModal ::-webkit-scrollbar-thumb:active {
- background-color: rgba(0,0,0,.4);
-}
-.iziModal ::-webkit-scrollbar-button {
- height: 0;
- width: 0;
-}
-.iziModal ::-webkit-scrollbar-track {
- background-clip: padding-box;
- border: solid transparent;
- border-width: 0 0 0 2px;
-}
-
-/* MODAL ANIMATIONS */
-
-.iziModal.transitionIn .iziModal-header{
- -webkit-animation: iziM-slideDown 0.7s cubic-bezier(0.7,0,0.3,1);
- -moz-animation: iziM-slideDown 0.7s cubic-bezier(0.7,0,0.3,1);
- animation: iziM-slideDown 0.7s cubic-bezier(0.7,0,0.3,1);
-}
- .iziModal.transitionIn .iziModal-header .iziModal-header-icon {
- -webkit-animation: iziM-revealIn 1s cubic-bezier(.16,.81,.32,1) both;
- -moz-animation: iziM-revealIn 1s cubic-bezier(.16,.81,.32,1) both;
- animation: iziM-revealIn 1s cubic-bezier(.16,.81,.32,1) both;
- }
- .iziModal.transitionIn .iziModal-header .iziModal-header-title, .iziModal.transitionIn .iziModal-header .iziModal-header-subtitle {
- -webkit-animation: iziM-slideIn 1s cubic-bezier(.16,.81,.32,1) both;
- -moz-animation: iziM-slideIn 1s cubic-bezier(.16,.81,.32,1) both;
- animation: iziM-slideIn 1s cubic-bezier(.16,.81,.32,1) both;
- }
-
- .iziModal.transitionIn .iziModal-header .iziModal-button{
- -webkit-animation: iziM-revealIn 1.2s cubic-bezier(0.7,0,0.3,1);
- -moz-animation: iziM-revealIn 1.2s cubic-bezier(0.7,0,0.3,1);
- animation: iziM-revealIn 1.2s cubic-bezier(0.7,0,0.3,1);
- }
-
-.iziModal.transitionIn .iziModal-iframe, .iziModal.transitionIn .iziModal-wrap{
- -webkit-animation: iziM-fadeIn 1.3s;
- -moz-animation: iziM-fadeIn 1.3s;
- animation: iziM-fadeIn 1.3s;
-}
-.iziModal.transitionIn .iziModal-header {
- -webkit-animation-delay: 0.0s;
- -moz-animation: 0.0s;
- animation-delay: 0.0s;
-}
-.iziModal.transitionIn .iziModal-header .iziModal-header-icon,
-.iziModal.transitionIn .iziModal-header .iziModal-header-title {
- -webkit-animation-delay: 0.4s;
- -moz-animation: 0.4s;
- animation-delay: 0.4s;
-}
-.iziModal.transitionIn .iziModal-header .iziModal-header-subtitle {
- -webkit-animation-delay: 0.5s;
- -moz-animation: 0.5s;
- animation-delay: 0.5s;
-}
-
- .iziModal.transitionOut .iziModal-header, .iziModal.transitionOut .iziModal-header *{
- transition: none !important;
- }
-
-/* ANIMATIONS */
-
-.iziModal.fadeOut, .iziModal-overlay.fadeOut, .iziModal-navigate.fadeOut, .iziModal .fadeOut{
- -webkit-animation: iziM-fadeOut 0.5s;
- -moz-animation: iziM-fadeOut 0.5s;
- animation: iziM-fadeOut 0.5s;
- animation-fill-mode: forwards;
-}
-.iziModal.fadeIn, .iziModal-overlay.fadeIn, .iziModal-navigate.fadeIn, .iziModal .fadeIn {
- -webkit-animation: iziM-fadeIn 0.5s;
- -moz-animation: iziM-fadeIn 0.5s;
- animation: iziM-fadeIn 0.5s;
-}
-.iziModal.comingIn, .iziModal-overlay.comingIn {
- -webkit-animation: iziM-comingIn 0.5s ease;
- -moz-animation: iziM-comingIn 0.5s ease;
- animation: iziM-comingIn 0.5s ease;
-}
-.iziModal.comingOut, .iziModal-overlay.comingOut {
- -webkit-animation: iziM-comingOut 0.5s cubic-bezier(.16,.81,.32,1);
- -moz-animation: iziM-comingOut 0.5s cubic-bezier(.16,.81,.32,1);
- animation: iziM-comingOut 0.5s cubic-bezier(.16,.81,.32,1);
- animation-fill-mode: forwards;
-}
-.iziModal.bounceInDown, .iziModal-overlay.bounceInDown {
- -webkit-animation: iziM-bounceInDown 0.7s ease;
- animation: iziM-bounceInDown 0.7s ease;
-}
-.iziModal.bounceOutDown, .iziModal-overlay.bounceOutDown {
- -webkit-animation: iziM-bounceOutDown 0.7s ease;
- animation: iziM-bounceOutDown 0.7s ease;
-}
-.iziModal.bounceInUp, .iziModal-overlay.bounceInUp {
- -webkit-animation: iziM-bounceInUp 0.7s ease;
- animation: iziM-bounceInUp 0.7s ease;
-}
-.iziModal.bounceOutUp, .iziModal-overlay.bounceOutUp {
- -webkit-animation: iziM-bounceOutUp 0.7s ease;
- animation: iziM-bounceOutUp 0.7s ease;
-}
-.iziModal.fadeInDown, .iziModal-overlay.fadeInDown {
- -webkit-animation: iziM-fadeInDown 0.7s cubic-bezier(.16,.81,.32,1);
- animation: iziM-fadeInDown 0.7s cubic-bezier(.16,.81,.32,1);
-}
-.iziModal.fadeOutDown, .iziModal-overlay.fadeOutDown {
- -webkit-animation: iziM-fadeOutDown 0.5s ease;
- animation: iziM-fadeOutDown 0.5s ease;
-}
-.iziModal.fadeInUp, .iziModal-overlay.fadeInUp {
- -webkit-animation: iziM-fadeInUp 0.7s cubic-bezier(.16,.81,.32,1);
- animation: iziM-fadeInUp 0.7s cubic-bezier(.16,.81,.32,1);
-}
-.iziModal.fadeOutUp, .iziModal-overlay.fadeOutUp {
- -webkit-animation: iziM-fadeOutUp 0.5s ease;
- animation: iziM-fadeOutUp 0.5s ease;
-}
-.iziModal.fadeInLeft, .iziModal-overlay.fadeInLeft {
- -webkit-animation: iziM-fadeInLeft 0.7s cubic-bezier(.16,.81,.32,1);
- animation: iziM-fadeInLeft 0.7s cubic-bezier(.16,.81,.32,1);
-}
-.iziModal.fadeOutLeft, .iziModal-overlay.fadeOutLeft {
- -webkit-animation: iziM-fadeOutLeft 0.5s ease;
- animation: iziM-fadeOutLeft 0.5s ease;
-}
-.iziModal.fadeInRight, .iziModal-overlay.fadeInRight {
- -webkit-animation: iziM-fadeInRight 0.7s cubic-bezier(.16,.81,.32,1);
- animation: iziM-fadeInRight 0.7s cubic-bezier(.16,.81,.32,1);
-}
-.iziModal.fadeOutRight, .iziModal-overlay.fadeOutRight {
- -webkit-animation: iziM-fadeOutRight 0.5s ease;
- animation: iziM-fadeOutRight 0.5s ease;
-}
-.iziModal.flipInX, .iziModal-overlay.flipInX {
- -webkit-animation: iziM-flipInX 0.7s ease;
- animation: iziM-flipInX 0.7s ease;
-}
-.iziModal.flipOutX, .iziModal-overlay.flipOutX {
- -webkit-animation: iziM-flipOutX 0.7s ease;
- animation: iziM-flipOutX 0.7s ease;
-}
-
-@-webkit-keyframes iziM-comingIn {
- 0% {
- opacity: 0;
- transform: scale(0.9) translateY(-20px) perspective( 600px ) rotateX( 10deg );
- }
- 100% {
- opacity: 1;
- transform: scale(1) translateY(0) perspective( 600px ) rotateX( 0 );
- }
-}
-@-moz-keyframes iziM-comingIn {
- 0% {
- opacity: 0;
- transform: scale(0.9) translateY(-20px) perspective( 600px ) rotateX( 10deg );
- }
- 100% {
- opacity: 1;
- transform: scale(1) translateY(0) perspective( 600px ) rotateX( 0 );
- }
-}
-@keyframes iziM-comingIn {
- 0% {
- opacity: 0;
- /*transform: translateY(-20px) perspective( 600px ) rotateX( 10deg );*/
- transform: scale(0.9) translateY(-20px) perspective( 600px ) rotateX( 10deg );
- }
- 100% {
- opacity: 1;
- /*transform: scale(1) translateY(0) perspective( 600px ) rotateX( 0 ); */
- transform: scale(1) translateY(0) perspective( 600px ) rotateX( 0 );
- }
-}
-
-@-webkit-keyframes iziM-comingOut {
- 0% {
- opacity: 1;
- transform: scale(1);
- }
- 100% {
- opacity: 0;
- transform: scale(0.9);
- }
-}
-@-moz-keyframes iziM-comingOut {
- 0% {
- opacity: 1;
- transform: scale(1);
- }
- 100% {
- opacity: 0;
- transform: scale(0.9);
- }
-}
-@keyframes iziM-comingOut {
- 0% {
- opacity: 1;
- transform: scale(1);
- }
- 100% {
- opacity: 0;
- transform: scale(0.9);
- }
-}
-@-webkit-keyframes iziM-fadeOut {
- 0% {opacity: 1;}
- 100% {opacity: 0;}
-}
-@-moz-keyframes iziM-fadeOut {
- 0% {opacity: 1;}
- 100% {opacity: 0;}
-}
-@keyframes iziM-fadeOut {
- 0% {opacity: 1;}
- 100% {opacity: 0;}
-}
-
-@-webkit-keyframes iziM-fadeIn {
- 0% {opacity: 0;}
- 100% {opacity: 1;}
-}
-@-moz-keyframes iziM-fadeIn {
- 0% {opacity: 0;}
- 100% {opacity: 1;}
-}
-@keyframes iziM-fadeIn {
- 0% {opacity: 0;}
- 100% {opacity: 1;}
-}
-
-@-webkit-keyframes iziM-slideIn {
- 0% {
- opacity: 0;
- -webkit-transform: translateX(50px);
- }
- 100% {
- opacity: 1;
- -webkit-transform: translateX(0);
- }
-}
-@-moz-keyframes iziM-slideIn {
- 0% {
- opacity: 0;
- -moz-transform: translateX(50px);
- }
- 100% {
- opacity: 1;
- -moz-transform: translateX(0);
- }
-}
-@keyframes iziM-slideIn {
- 0% {
- opacity: 0;
- transform: translateX(50px);
- }
- 100% {
- opacity: 1;
- transform: translateX(0);
- }
-}
-
-@-webkit-keyframes iziM-slideDown {
- 0% { opacity: 0; -webkit-transform: scale(1,0) translateY(-40px); -webkit-transform-origin: center top; }
-}
-@-moz-keyframes iziM-slideDown {
- 0% { opacity: 0; -moz-transform: scale(1,0) translateY(-40px); -moz-transform-origin: center top; }
-}
-@keyframes iziM-slideDown {
- 0% { opacity: 0; transform: scale(1,0) translateY(-40px); transform-origin: center top; }
-}
-
-@-webkit-keyframes iziM-revealIn {
- 0% { opacity: 0; -webkit-transform: scale3d(0.3,0.3,1); }
-}
-@-moz-keyframes iziM-revealIn {
- 0% { opacity: 0; -moz-transform: scale3d(0.3,0.3,1); }
-}
-@keyframes iziM-revealIn {
- 0% { opacity: 0; transform: scale3d(0.3,0.3,1); }
-}
-
-@-webkit-keyframes iziM-bounceInDown {
- from, 60%, 75%, 90%, to {
- -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
- animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
- }
- 0% {
- opacity: 0;
- -webkit-transform: translate3d(0, -1000px, 0);
- transform: translate3d(0, -1000px, 0);
- }
- 60% {
- opacity: 1;
- -webkit-transform: translate3d(0, 25px, 0);
- transform: translate3d(0, 25px, 0);
- }
- 75% {
- -webkit-transform: translate3d(0, -10px, 0);
- transform: translate3d(0, -10px, 0);
- }
- 90% {
- -webkit-transform: translate3d(0, 5px, 0);
- transform: translate3d(0, 5px, 0);
- }
- to {
- -webkit-transform: none;
- transform: none;
- }
-}
-@keyframes iziM-bounceInDown {
- from, 60%, 75%, 90%, to {
- -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
- animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
- }
- 0% {
- opacity: 0;
- -webkit-transform: translate3d(0, -1000px, 0);
- transform: translate3d(0, -1000px, 0);
- }
- 60% {
- opacity: 1;
- -webkit-transform: translate3d(0, 25px, 0);
- transform: translate3d(0, 25px, 0);
- }
- 75% {
- -webkit-transform: translate3d(0, -10px, 0);
- transform: translate3d(0, -10px, 0);
- }
- 90% {
- -webkit-transform: translate3d(0, 5px, 0);
- transform: translate3d(0, 5px, 0);
- }
- to {
- -webkit-transform: none;
- transform: none;
- }
-}
-@-webkit-keyframes iziM-bounceOutDown {
- 20% {
- -webkit-transform: translate3d(0, 10px, 0);
- transform: translate3d(0, 10px, 0);
- }
- 40%, 45% {
- opacity: 1;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, 1000px, 0);
- transform: translate3d(0, 1000px, 0);
- }
-}
-@keyframes iziM-bounceOutDown {
- 20% {
- -webkit-transform: translate3d(0, 10px, 0);
- transform: translate3d(0, 10px, 0);
- }
- 40%, 45% {
- opacity: 1;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, 1000px, 0);
- transform: translate3d(0, 1000px, 0);
- }
-}
-
-@-webkit-keyframes iziM-bounceInUp {
- from, 60%, 75%, 90%, to {
- -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
- animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
- }
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, 1000px, 0);
- transform: translate3d(0, 1000px, 0);
- }
- 60% {
- opacity: 1;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- 75% {
- -webkit-transform: translate3d(0, 10px, 0);
- transform: translate3d(0, 10px, 0);
- }
- 90% {
- -webkit-transform: translate3d(0, -5px, 0);
- transform: translate3d(0, -5px, 0);
- }
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-@keyframes iziM-bounceInUp {
- from, 60%, 75%, 90%, to {
- -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
- animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
- }
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, 1000px, 0);
- transform: translate3d(0, 1000px, 0);
- }
- 60% {
- opacity: 1;
- -webkit-transform: translate3d(0, -20px, 0);
- transform: translate3d(0, -20px, 0);
- }
- 75% {
- -webkit-transform: translate3d(0, 10px, 0);
- transform: translate3d(0, 10px, 0);
- }
- 90% {
- -webkit-transform: translate3d(0, -5px, 0);
- transform: translate3d(0, -5px, 0);
- }
- to {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@-webkit-keyframes iziM-bounceOutUp {
- 20% {
- -webkit-transform: translate3d(0, -10px, 0);
- transform: translate3d(0, -10px, 0);
- }
- 40%, 45% {
- opacity: 1;
- -webkit-transform: translate3d(0, 20px, 0);
- transform: translate3d(0, 20px, 0);
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, -2000px, 0);
- transform: translate3d(0, -2000px, 0);
- }
-}
-@keyframes iziM-bounceOutUp {
- 20% {
- -webkit-transform: translate3d(0, -10px, 0);
- transform: translate3d(0, -10px, 0);
- }
- 40%, 45% {
- opacity: 1;
- -webkit-transform: translate3d(0, 20px, 0);
- transform: translate3d(0, 20px, 0);
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, -1000px, 0);
- transform: translate3d(0, -1000px, 0);
- }
-}
-
-@-webkit-keyframes iziM-fadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -100px, 0);
- transform: translate3d(0, -100px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: none;
- transform: none;
- }
-}
-@keyframes iziM-fadeInDown {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, -100px, 0);
- transform: translate3d(0, -100px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: none;
- transform: none;
- }
-}
-
-@-webkit-keyframes iziM-fadeOutDown {
- from {
- opacity: 1;
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, 100px, 0);
- transform: translate3d(0, 100px, 0);
- }
-}
-@keyframes iziM-fadeOutDown {
- from {
- opacity: 1;
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, 100px, 0);
- transform: translate3d(0, 100px, 0);
- }
-}
-
-@-webkit-keyframes iziM-fadeInUp {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, 100px, 0);
- transform: translate3d(0, 100px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: none;
- transform: none;
- }
-}
-@keyframes iziM-fadeInUp {
- from {
- opacity: 0;
- -webkit-transform: translate3d(0, 100px, 0);
- transform: translate3d(0, 100px, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: none;
- transform: none;
- }
-}
-
-@-webkit-keyframes iziM-fadeOutUp {
- from {
- opacity: 1;
- }
-
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, -100px, 0);
- transform: translate3d(0, -100px, 0);
- }
-}
-@keyframes iziM-fadeOutUp {
- from {
- opacity: 1;
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(0, -100px, 0);
- transform: translate3d(0, -100px, 0);
- }
-}
-
-@-webkit-keyframes iziM-fadeInLeft {
- from {
- opacity: 0;
- -webkit-transform: translate3d(-200px, 0, 0);
- transform: translate3d(-200px, 0, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: none;
- transform: none;
- }
-}
-@keyframes iziM-fadeInLeft {
- from {
- opacity: 0;
- -webkit-transform: translate3d(-200px, 0, 0);
- transform: translate3d(-200px, 0, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: none;
- transform: none;
- }
-}
-
-@-webkit-keyframes iziM-fadeOutLeft {
- from {
- opacity: 1;
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(-200px, 0, 0);
- transform: translate3d(-200px, 0, 0);
- }
-}
-@keyframes iziM-fadeOutLeft {
- from {
- opacity: 1;
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(-200px, 0, 0);
- transform: translate3d(-200px, 0, 0);
- }
-}
-
-@-webkit-keyframes iziM-fadeInRight {
- from {
- opacity: 0;
- -webkit-transform: translate3d(200px, 0, 0);
- transform: translate3d(200px, 0, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: none;
- transform: none;
- }
-}
-@keyframes iziM-fadeInRight {
- from {
- opacity: 0;
- -webkit-transform: translate3d(200px, 0, 0);
- transform: translate3d(200px, 0, 0);
- }
- to {
- opacity: 1;
- -webkit-transform: none;
- transform: none;
- }
-}
-
-@-webkit-keyframes iziM-fadeOutRight {
- from {
- opacity: 1;
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(200px, 0, 0);
- transform: translate3d(200px, 0, 0);
- }
-}
-@keyframes iziM-fadeOutRight {
- from {
- opacity: 1;
- }
- to {
- opacity: 0;
- -webkit-transform: translate3d(200px, 0, 0);
- transform: translate3d(200px, 0, 0);
- }
-}
-
-@-webkit-keyframes iziM-flipInX {
- 0% {
- -webkit-transform: perspective(400px) rotateX(60deg);
- opacity: 0;
- }
- 40% {
- -webkit-transform: perspective(400px) rotateX(-10deg);
- }
- 70% {
- -webkit-transform: perspective(400px) rotateX(10deg);
- }
- 100% {
- -webkit-transform: perspective(400px) rotateX(0deg);
- opacity: 1;
- }
-}
-@keyframes iziM-flipInX {
- 0% {
- transform: perspective(400px) rotateX(60deg);
- opacity: 0;
- }
- 40% {
- transform: perspective(400px) rotateX(-10deg);
- }
- 70% {
- transform: perspective(400px) rotateX(10deg);
- }
- 100% {
- transform: perspective(400px) rotateX(0deg);
- opacity: 1;
- }
-}
-
-@-webkit-keyframes iziM-flipOutX {
- from {
- -webkit-transform: perspective(400px);
- transform: perspective(400px);
- }
-
- 30% {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
- transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
- opacity: 1;
- }
-
- to {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 40deg);
- transform: perspective(400px) rotate3d(1, 0, 0, 40deg);
- opacity: 0;
- }
-}
-@keyframes iziM-flipOutX {
- from {
- -webkit-transform: perspective(400px);
- transform: perspective(400px);
- }
- 30% {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
- transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
- opacity: 1;
- }
- to {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 40deg);
- transform: perspective(400px) rotate3d(1, 0, 0, 40deg);
- opacity: 0;
- }
-}
\ No newline at end of file
diff --git a/assets/stylesheets/admin/vendor/_sweetalert2.scss b/assets/stylesheets/admin/vendor/_sweetalert2.scss
deleted file mode 100644
index e3e88aa3..00000000
--- a/assets/stylesheets/admin/vendor/_sweetalert2.scss
+++ /dev/null
@@ -1,708 +0,0 @@
-body {
- swal2-shown {
- overflow-y: hidden; }
-
- .swal2-iosfix {
- position: fixed;
- left: 0;
- right: 0; }
-
-.swal2-container {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- position: fixed;
- top: 0;
- left: 0;
- bottom: 0;
- right: 0;
- padding: 10px;
- background-color: transparent;
- z-index: 1060; }
- .swal2-container.swal2-fade {
- -webkit-transition: background-color .1s;
- transition: background-color .1s; }
- .swal2-container.swal2-shown {
- background-color: rgba(0, 0, 0, 0.4); }
-
-.swal2-modal {
- background-color: #fff;
- font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
- border-radius: 5px;
- box-sizing: border-box;
- text-align: center;
- margin: auto;
- overflow-x: hidden;
- overflow-y: auto;
- display: none;
- position: relative;
- max-width: 100%; }
- .swal2-modal:focus {
- outline: none; }
- .swal2-modal.swal2-loading {
- overflow-y: hidden; }
- .swal2-modal .swal2-title {
- color: #595959;
- font-size: 30px;
- text-align: center;
- font-weight: 600;
- text-transform: none;
- position: relative;
- margin: 0 0 .4em;
- padding: 0;
- display: block;
- word-wrap: break-word; }
- .swal2-modal .swal2-buttonswrapper {
- margin-top: 15px; }
- .swal2-modal .swal2-buttonswrapper:not(.swal2-loading) .swal2-styled[disabled] {
- opacity: .4;
- cursor: no-drop; }
- .swal2-modal .swal2-buttonswrapper.swal2-loading .swal2-styled.swal2-confirm {
- box-sizing: border-box;
- border: 4px solid transparent;
- border-color: transparent;
- width: 40px;
- height: 40px;
- padding: 0;
- margin: 7.5px;
- vertical-align: top;
- background-color: transparent !important;
- color: transparent;
- cursor: default;
- border-radius: 100%;
- -webkit-animation: rotate-loading 1.5s linear 0s infinite normal;
- animation: rotate-loading 1.5s linear 0s infinite normal;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none; }
- .swal2-modal .swal2-buttonswrapper.swal2-loading .swal2-styled.swal2-cancel {
- margin-left: 30px;
- margin-right: 30px; }
- .swal2-modal .swal2-buttonswrapper.swal2-loading :not(.swal2-styled).swal2-confirm::after {
- display: inline-block;
- content: '';
- margin-left: 5px 0 15px;
- vertical-align: -1px;
- height: 15px;
- width: 15px;
- border: 3px solid #999999;
- box-shadow: 1px 1px 1px #fff;
- border-right-color: transparent;
- border-radius: 50%;
- -webkit-animation: rotate-loading 1.5s linear 0s infinite normal;
- animation: rotate-loading 1.5s linear 0s infinite normal; }
- .swal2-modal .swal2-styled {
- border: 0;
- border-radius: 3px;
- box-shadow: none;
- color: #fff;
- cursor: pointer;
- font-size: 17px;
- font-weight: 500;
- margin: 15px 5px 0;
- padding: 10px 32px; }
- .swal2-modal .swal2-image {
- margin: 20px auto;
- max-width: 100%; }
- .swal2-modal .swal2-close {
- background: transparent;
- border: 0;
- margin: 0;
- padding: 0;
- width: 38px;
- height: 40px;
- font-size: 36px;
- line-height: 40px;
- font-family: serif;
- position: absolute;
- top: 5px;
- right: 8px;
- cursor: pointer;
- color: #cccccc;
- -webkit-transition: color .1s ease;
- transition: color .1s ease; }
- .swal2-modal .swal2-close:hover {
- color: #d55; }
- .swal2-modal > .swal2-input,
- .swal2-modal > .swal2-file,
- .swal2-modal > .swal2-textarea,
- .swal2-modal > .swal2-select,
- .swal2-modal > .swal2-radio,
- .swal2-modal > .swal2-checkbox {
- display: none; }
- .swal2-modal .swal2-content {
- font-size: 18px;
- text-align: center;
- font-weight: 300;
- position: relative;
- float: none;
- margin: 0;
- padding: 0;
- line-height: normal;
- color: #545454;
- word-wrap: break-word; }
- .swal2-modal .swal2-input,
- .swal2-modal .swal2-file,
- .swal2-modal .swal2-textarea,
- .swal2-modal .swal2-select,
- .swal2-modal .swal2-radio,
- .swal2-modal .swal2-checkbox {
- margin: 20px auto; }
- .swal2-modal .swal2-input,
- .swal2-modal .swal2-file,
- .swal2-modal .swal2-textarea {
- width: 100%;
- box-sizing: border-box;
- font-size: 18px;
- border-radius: 3px;
- border: 1px solid #d9d9d9;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06);
- -webkit-transition: border-color box-shadow .3s;
- transition: border-color box-shadow .3s; }
- .swal2-modal .swal2-input.swal2-inputerror,
- .swal2-modal .swal2-file.swal2-inputerror,
- .swal2-modal .swal2-textarea.swal2-inputerror {
- border-color: #f27474 !important;
- box-shadow: 0 0 2px #f27474 !important; }
- .swal2-modal .swal2-input:focus,
- .swal2-modal .swal2-file:focus,
- .swal2-modal .swal2-textarea:focus {
- outline: none;
- border: 1px solid #b4dbed;
- box-shadow: 0 0 3px #c4e6f5; }
- .swal2-modal .swal2-input:focus::-webkit-input-placeholder,
- .swal2-modal .swal2-file:focus::-webkit-input-placeholder,
- .swal2-modal .swal2-textarea:focus::-webkit-input-placeholder {
- -webkit-transition: opacity .3s .03s ease;
- transition: opacity .3s .03s ease;
- opacity: .8; }
- .swal2-modal .swal2-input:focus:-ms-input-placeholder,
- .swal2-modal .swal2-file:focus:-ms-input-placeholder,
- .swal2-modal .swal2-textarea:focus:-ms-input-placeholder {
- -webkit-transition: opacity .3s .03s ease;
- transition: opacity .3s .03s ease;
- opacity: .8; }
- .swal2-modal .swal2-input:focus::placeholder,
- .swal2-modal .swal2-file:focus::placeholder,
- .swal2-modal .swal2-textarea:focus::placeholder {
- -webkit-transition: opacity .3s .03s ease;
- transition: opacity .3s .03s ease;
- opacity: .8; }
- .swal2-modal .swal2-input::-webkit-input-placeholder,
- .swal2-modal .swal2-file::-webkit-input-placeholder,
- .swal2-modal .swal2-textarea::-webkit-input-placeholder {
- color: #e6e6e6; }
- .swal2-modal .swal2-input:-ms-input-placeholder,
- .swal2-modal .swal2-file:-ms-input-placeholder,
- .swal2-modal .swal2-textarea:-ms-input-placeholder {
- color: #e6e6e6; }
- .swal2-modal .swal2-input::placeholder,
- .swal2-modal .swal2-file::placeholder,
- .swal2-modal .swal2-textarea::placeholder {
- color: #e6e6e6; }
- .swal2-modal .swal2-range input {
- float: left;
- width: 80%; }
- .swal2-modal .swal2-range output {
- float: right;
- width: 20%;
- font-size: 20px;
- font-weight: 600;
- text-align: center; }
- .swal2-modal .swal2-range input,
- .swal2-modal .swal2-range output {
- height: 43px;
- line-height: 43px;
- vertical-align: middle;
- margin: 20px auto;
- padding: 0; }
- .swal2-modal .swal2-input {
- height: 43px;
- padding: 0 12px; }
- .swal2-modal .swal2-input[type='number'] {
- max-width: 150px; }
- .swal2-modal .swal2-file {
- font-size: 20px; }
- .swal2-modal .swal2-textarea {
- height: 108px;
- padding: 12px; }
- .swal2-modal .swal2-select {
- color: #545454;
- font-size: inherit;
- padding: 5px 10px;
- min-width: 40%;
- max-width: 100%; }
- .swal2-modal .swal2-radio {
- border: 0; }
- .swal2-modal .swal2-radio label:not(:first-child) {
- margin-left: 20px; }
- .swal2-modal .swal2-radio input,
- .swal2-modal .swal2-radio span {
- vertical-align: middle; }
- .swal2-modal .swal2-radio input {
- margin: 0 3px 0 0; }
- .swal2-modal .swal2-checkbox {
- color: #545454; }
- .swal2-modal .swal2-checkbox input,
- .swal2-modal .swal2-checkbox span {
- vertical-align: middle; }
- .swal2-modal .swal2-validationerror {
- background-color: #f0f0f0;
- margin: 0 -20px;
- overflow: hidden;
- padding: 10px;
- color: gray;
- font-size: 16px;
- font-weight: 300;
- display: none; }
- .swal2-modal .swal2-validationerror::before {
- content: '!';
- display: inline-block;
- width: 24px;
- height: 24px;
- border-radius: 50%;
- background-color: #ea7d7d;
- color: #fff;
- line-height: 24px;
- text-align: center;
- margin-right: 10px; }
-
-@supports (-ms-accelerator: true) {
- .swal2-range input {
- width: 100% !important; }
- .swal2-range output {
- display: none; } }
-
-@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
- .swal2-range input {
- width: 100% !important; }
- .swal2-range output {
- display: none; } }
-
-.swal2-icon {
- width: 80px;
- height: 80px;
- border: 4px solid transparent;
- border-radius: 50%;
- margin: 20px auto 30px;
- padding: 0;
- position: relative;
- box-sizing: content-box;
- cursor: default;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none; }
- .swal2-icon.swal2-error {
- border-color: #f27474; }
- .swal2-icon.swal2-error .swal2-x-mark {
- position: relative;
- display: block; }
- .swal2-icon.swal2-error [class^='swal2-x-mark-line'] {
- position: absolute;
- height: 5px;
- width: 47px;
- background-color: #f27474;
- display: block;
- top: 37px;
- border-radius: 2px; }
- .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] {
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg);
- left: 17px; }
- .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
- right: 16px; }
- .swal2-icon.swal2-warning {
- font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
- color: #f8bb86;
- border-color: #facea8;
- font-size: 60px;
- line-height: 80px;
- text-align: center; }
- .swal2-icon.swal2-info {
- font-family: 'Open Sans', sans-serif;
- color: #3fc3ee;
- border-color: #9de0f6;
- font-size: 60px;
- line-height: 80px;
- text-align: center; }
- .swal2-icon.swal2-question {
- font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
- color: #87adbd;
- border-color: #c9dae1;
- font-size: 60px;
- line-height: 80px;
- text-align: center; }
- .swal2-icon.swal2-success {
- border-color: #a5dc86; }
- .swal2-icon.swal2-success [class^='swal2-success-circular-line'] {
- border-radius: 50%;
- position: absolute;
- width: 60px;
- height: 120px;
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg); }
- .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='left'] {
- border-radius: 120px 0 0 120px;
- top: -7px;
- left: -33px;
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
- -webkit-transform-origin: 60px 60px;
- transform-origin: 60px 60px; }
- .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='right'] {
- border-radius: 0 120px 120px 0;
- top: -11px;
- left: 30px;
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
- -webkit-transform-origin: 0 60px;
- transform-origin: 0 60px; }
- .swal2-icon.swal2-success .swal2-success-ring {
- width: 80px;
- height: 80px;
- border: 4px solid rgba(165, 220, 134, 0.2);
- border-radius: 50%;
- box-sizing: content-box;
- position: absolute;
- left: -4px;
- top: -4px;
- z-index: 2; }
- .swal2-icon.swal2-success .swal2-success-fix {
- width: 7px;
- height: 90px;
- position: absolute;
- left: 28px;
- top: 8px;
- z-index: 1;
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg); }
- .swal2-icon.swal2-success [class^='swal2-success-line'] {
- height: 5px;
- background-color: #a5dc86;
- display: block;
- border-radius: 2px;
- position: absolute;
- z-index: 2; }
- .swal2-icon.swal2-success [class^='swal2-success-line'][class$='tip'] {
- width: 25px;
- left: 14px;
- top: 46px;
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg); }
- .swal2-icon.swal2-success [class^='swal2-success-line'][class$='long'] {
- width: 47px;
- right: 8px;
- top: 38px;
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg); }
-
-.swal2-progresssteps {
- font-weight: 600;
- margin: 0 0 20px;
- padding: 0; }
- .swal2-progresssteps li {
- display: inline-block;
- position: relative; }
- .swal2-progresssteps .swal2-progresscircle {
- background: #3085d6;
- border-radius: 2em;
- color: #fff;
- height: 2em;
- line-height: 2em;
- text-align: center;
- width: 2em;
- z-index: 20; }
- .swal2-progresssteps .swal2-progresscircle:first-child {
- margin-left: 0; }
- .swal2-progresssteps .swal2-progresscircle:last-child {
- margin-right: 0; }
- .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep {
- background: #3085d6; }
- .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep ~ .swal2-progresscircle {
- background: #add8e6; }
- .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep ~ .swal2-progressline {
- background: #add8e6; }
- .swal2-progresssteps .swal2-progressline {
- background: #3085d6;
- height: .4em;
- margin: 0 -1px;
- z-index: 10; }
-
-[class^='swal2'] {
- -webkit-tap-highlight-color: transparent; }
-
-@-webkit-keyframes showSweetAlert {
- 0% {
- -webkit-transform: scale(0.7);
- transform: scale(0.7); }
- 45% {
- -webkit-transform: scale(1.05);
- transform: scale(1.05); }
- 80% {
- -webkit-transform: scale(0.95);
- transform: scale(0.95); }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1); } }
-
-@keyframes showSweetAlert {
- 0% {
- -webkit-transform: scale(0.7);
- transform: scale(0.7); }
- 45% {
- -webkit-transform: scale(1.05);
- transform: scale(1.05); }
- 80% {
- -webkit-transform: scale(0.95);
- transform: scale(0.95); }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1); } }
-
-@-webkit-keyframes hideSweetAlert {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 1; }
- 100% {
- -webkit-transform: scale(0.5);
- transform: scale(0.5);
- opacity: 0; } }
-
-@keyframes hideSweetAlert {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 1; }
- 100% {
- -webkit-transform: scale(0.5);
- transform: scale(0.5);
- opacity: 0; } }
-
-.swal2-show {
- -webkit-animation: showSweetAlert 0.3s;
- animation: showSweetAlert 0.3s; }
- .swal2-show.swal2-noanimation {
- -webkit-animation: none;
- animation: none; }
-
-.swal2-hide {
- -webkit-animation: hideSweetAlert 0.15s forwards;
- animation: hideSweetAlert 0.15s forwards; }
- .swal2-hide.swal2-noanimation {
- -webkit-animation: none;
- animation: none; }
-
-@-webkit-keyframes animate-success-tip {
- 0% {
- width: 0;
- left: 1px;
- top: 19px; }
- 54% {
- width: 0;
- left: 1px;
- top: 19px; }
- 70% {
- width: 50px;
- left: -8px;
- top: 37px; }
- 84% {
- width: 17px;
- left: 21px;
- top: 48px; }
- 100% {
- width: 25px;
- left: 14px;
- top: 45px; } }
-
-@keyframes animate-success-tip {
- 0% {
- width: 0;
- left: 1px;
- top: 19px; }
- 54% {
- width: 0;
- left: 1px;
- top: 19px; }
- 70% {
- width: 50px;
- left: -8px;
- top: 37px; }
- 84% {
- width: 17px;
- left: 21px;
- top: 48px; }
- 100% {
- width: 25px;
- left: 14px;
- top: 45px; } }
-
-@-webkit-keyframes animate-success-long {
- 0% {
- width: 0;
- right: 46px;
- top: 54px; }
- 65% {
- width: 0;
- right: 46px;
- top: 54px; }
- 84% {
- width: 55px;
- right: 0;
- top: 35px; }
- 100% {
- width: 47px;
- right: 8px;
- top: 38px; } }
-
-@keyframes animate-success-long {
- 0% {
- width: 0;
- right: 46px;
- top: 54px; }
- 65% {
- width: 0;
- right: 46px;
- top: 54px; }
- 84% {
- width: 55px;
- right: 0;
- top: 35px; }
- 100% {
- width: 47px;
- right: 8px;
- top: 38px; } }
-
-@-webkit-keyframes rotatePlaceholder {
- 0% {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg); }
- 5% {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg); }
- 12% {
- -webkit-transform: rotate(-405deg);
- transform: rotate(-405deg); }
- 100% {
- -webkit-transform: rotate(-405deg);
- transform: rotate(-405deg); } }
-
-@keyframes rotatePlaceholder {
- 0% {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg); }
- 5% {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg); }
- 12% {
- -webkit-transform: rotate(-405deg);
- transform: rotate(-405deg); }
- 100% {
- -webkit-transform: rotate(-405deg);
- transform: rotate(-405deg); } }
-
-.swal2-animate-success-line-tip {
- -webkit-animation: animate-success-tip 0.75s;
- animation: animate-success-tip 0.75s; }
-
-.swal2-animate-success-line-long {
- -webkit-animation: animate-success-long 0.75s;
- animation: animate-success-long 0.75s; }
-
-.swal2-success.swal2-animate-success-icon .swal2-success-circular-line-right {
- -webkit-animation: rotatePlaceholder 4.25s ease-in;
- animation: rotatePlaceholder 4.25s ease-in; }
-
-@-webkit-keyframes animate-error-icon {
- 0% {
- -webkit-transform: rotateX(100deg);
- transform: rotateX(100deg);
- opacity: 0; }
- 100% {
- -webkit-transform: rotateX(0deg);
- transform: rotateX(0deg);
- opacity: 1; } }
-
-@keyframes animate-error-icon {
- 0% {
- -webkit-transform: rotateX(100deg);
- transform: rotateX(100deg);
- opacity: 0; }
- 100% {
- -webkit-transform: rotateX(0deg);
- transform: rotateX(0deg);
- opacity: 1; } }
-
-.swal2-animate-error-icon {
- -webkit-animation: animate-error-icon 0.5s;
- animation: animate-error-icon 0.5s; }
-
-@-webkit-keyframes animate-x-mark {
- 0% {
- -webkit-transform: scale(0.4);
- transform: scale(0.4);
- margin-top: 26px;
- opacity: 0; }
- 50% {
- -webkit-transform: scale(0.4);
- transform: scale(0.4);
- margin-top: 26px;
- opacity: 0; }
- 80% {
- -webkit-transform: scale(1.15);
- transform: scale(1.15);
- margin-top: -6px; }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- margin-top: 0;
- opacity: 1; } }
-
-@keyframes animate-x-mark {
- 0% {
- -webkit-transform: scale(0.4);
- transform: scale(0.4);
- margin-top: 26px;
- opacity: 0; }
- 50% {
- -webkit-transform: scale(0.4);
- transform: scale(0.4);
- margin-top: 26px;
- opacity: 0; }
- 80% {
- -webkit-transform: scale(1.15);
- transform: scale(1.15);
- margin-top: -6px; }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- margin-top: 0;
- opacity: 1; } }
-
-.swal2-animate-x-mark {
- -webkit-animation: animate-x-mark 0.5s;
- animation: animate-x-mark 0.5s; }
-
-@-webkit-keyframes rotate-loading {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg); }
- 100% {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg); } }
-
-@keyframes rotate-loading {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg); }
- 100% {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg); } }
-}
diff --git a/assets/stylesheets/base/_functions.scss b/assets/stylesheets/base/_functions.scss
deleted file mode 100644
index 582dc7c6..00000000
--- a/assets/stylesheets/base/_functions.scss
+++ /dev/null
@@ -1,20 +0,0 @@
-@function remove-unit($number) {
- $unit: unit($number);
- $one: 1;
-
- @if $unit == "px" { $one: 1px; }
- @if $unit == "em" { $one: 1px; }
- @if $unit == "%" { $one: 1px; }
-
- @return $number / $one;
-}
-
-@function flex($target, $context, $unit: "em") {
- $size: remove-unit($target) / remove-unit($context);
-
- @if $unit == "em" { @return #{$size}em; }
- @if $unit == "%" { @return percentage($size); }
-}
-
-@function perc($target, $context) { @return flex($target, $context, "%"); }
-@function em($target, $context:$fontSizeDefault) { @return flex($target, $context, "em"); }
\ No newline at end of file
diff --git a/assets/stylesheets/base/_helpers.scss b/assets/stylesheets/base/_helpers.scss
deleted file mode 100644
index 8104ff5c..00000000
--- a/assets/stylesheets/base/_helpers.scss
+++ /dev/null
@@ -1,114 +0,0 @@
-%clearFix {
- clear: both;
-
- &:after {
- clear: both;
- content: '';
- display: block;
- font-size: 0;
- height: 0;
- visibility: hidden;
- }
-}
-
-%ellipsis {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-
-%imageReplacement {
- overflow: hidden;
- text-indent: 101%;
- white-space: nowrap;
-}
-
-%img {
- display: block;
- height: auto;
- max-width: 100%;
-}
-
-%alignCenterV {
- top: 50%;
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
-}
-
-%alignCenterH {
- left: 50%;
- -webkit-transform: translateX(-50%);
- transform: translateX(-50%);
-}
-
-%alignCenter {
- left: 50%;
- top: 50%;
- -webkit-transform: translate3d(-50%, -50%, 0);
- -ms-transform: translate(-50%,-50%);
- transform: translate3d(-50%, -50%, 0);
-}
-
-%translate {
- -ms-transform: translate(-50%,-50%);
- -webkit-transform: translate(-50%,-50%);
- transform: translate(-50%,-50%);
-}
-
-%noSelect {
- -webkit-touch-callout: none;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-%transitionAll {
- -webkit-transition: all 0.5s ease-in-out;
- -moz-transition: all 0.5s ease-in-out;
- -ms-transition: all 0.5s ease-in-out;
- transition: all 0.5s ease-in-out;
-}
-
-@-ms-keyframes spinner {
- from { -ms-transform: rotate(0deg); }
- to { -ms-transform: rotate(360deg); }
-}
-@-moz-keyframes spinner {
- from { -moz-transform: rotate(0deg); }
- to { -moz-transform: rotate(360deg); }
-}
-@-webkit-keyframes spinner {
- from { -webkit-transform: rotate(0deg); }
- to { -webkit-transform: rotate(360deg); }
-}
-@keyframes spinner {
- from {
- transform:rotate(0deg);
- }
- to {
- transform:rotate(360deg);
- }
-}
-
-%spinner {
- position: absolute;
- -webkit-animation-name: spinner;
- -webkit-animation-duration: 700ms;
- -webkit-animation-iteration-count: infinite;
- -webkit-animation-timing-function: linear;
- -moz-animation-name: spinner;
- -moz-animation-duration: 700ms;
- -moz-animation-iteration-count: infinite;
- -moz-animation-timing-function: linear;
- -ms-animation-name: spinner;
- -ms-animation-duration: 700ms;
- -ms-animation-iteration-count: infinite;
- -ms-animation-timing-function: linear;
-
- animation-name: spinner;
- animation-duration: 700ms;
- animation-iteration-count: infinite;
- animation-timing-function: linear;
-}
\ No newline at end of file
diff --git a/assets/stylesheets/base/_mixins.scss b/assets/stylesheets/base/_mixins.scss
deleted file mode 100644
index e69de29b..00000000
diff --git a/assets/stylesheets/base/_variables.scss b/assets/stylesheets/base/_variables.scss
deleted file mode 100644
index af640324..00000000
--- a/assets/stylesheets/base/_variables.scss
+++ /dev/null
@@ -1,23 +0,0 @@
-$prefix : pagarme;
-
-// - Variables > Grid
-$mobile : 533px;
-$tablet : 769px;
-
-// - Variables > Colors
-$colorWhite : #ffffff;
-$colorCheckboxOn : #2fb175;
-$colorCheckboxOff : #ea6262;
-$colorPrimary : #45c0be;
-$colorButton : #008EC2;
-$colorButtonHover : #00a0d2;
-
-// - Variables > Fonts
-
-$fontPrimary : "Times New Roman", sans-serif;
-$fontPrimaryBold : Tahoma, sans-serif;
-$fontSecondary : Arial, sans-serif;
-$fontIcon : $prefix;
-
-// - Variables > Font Size
-$fontSizeDefault : 16px;
diff --git a/assets/stylesheets/base/index.php b/assets/stylesheets/base/index.php
deleted file mode 100644
index 02d344bc..00000000
--- a/assets/stylesheets/base/index.php
+++ /dev/null
@@ -1,2 +0,0 @@
- .swal2-input,
-body .swal2-modal > .swal2-file,
-body .swal2-modal > .swal2-textarea,
-body .swal2-modal > .swal2-select,
-body .swal2-modal > .swal2-radio,
-body .swal2-modal > .swal2-checkbox {
- display: none;
-}
-body .swal2-modal .swal2-content {
- font-size: 18px;
- text-align: center;
- font-weight: 300;
- position: relative;
- float: none;
- margin: 0;
- padding: 0;
- line-height: normal;
- color: #545454;
- word-wrap: break-word;
-}
-body .swal2-modal .swal2-input,
-body .swal2-modal .swal2-file,
-body .swal2-modal .swal2-textarea,
-body .swal2-modal .swal2-select,
-body .swal2-modal .swal2-radio,
-body .swal2-modal .swal2-checkbox {
- margin: 20px auto;
-}
-body .swal2-modal .swal2-input,
-body .swal2-modal .swal2-file,
-body .swal2-modal .swal2-textarea {
- width: 100%;
- box-sizing: border-box;
- font-size: 18px;
- border-radius: 3px;
- border: 1px solid #d9d9d9;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06);
- -webkit-transition: border-color box-shadow 0.3s;
- transition: border-color box-shadow 0.3s;
-}
-body .swal2-modal .swal2-input.swal2-inputerror,
-body .swal2-modal .swal2-file.swal2-inputerror,
-body .swal2-modal .swal2-textarea.swal2-inputerror {
- border-color: #f27474 !important;
- box-shadow: 0 0 2px #f27474 !important;
-}
-body .swal2-modal .swal2-input:focus,
-body .swal2-modal .swal2-file:focus,
-body .swal2-modal .swal2-textarea:focus {
- outline: none;
- border: 1px solid #b4dbed;
- box-shadow: 0 0 3px #c4e6f5;
-}
-body .swal2-modal .swal2-input:focus::-webkit-input-placeholder,
-body .swal2-modal .swal2-file:focus::-webkit-input-placeholder,
-body .swal2-modal .swal2-textarea:focus::-webkit-input-placeholder {
- -webkit-transition: opacity 0.3s 0.03s ease;
- transition: opacity 0.3s 0.03s ease;
- opacity: 0.8;
-}
-body .swal2-modal .swal2-input:focus:-ms-input-placeholder,
-body .swal2-modal .swal2-file:focus:-ms-input-placeholder,
-body .swal2-modal .swal2-textarea:focus:-ms-input-placeholder {
- -webkit-transition: opacity 0.3s 0.03s ease;
- transition: opacity 0.3s 0.03s ease;
- opacity: 0.8;
-}
-body .swal2-modal .swal2-input:focus::placeholder,
-body .swal2-modal .swal2-file:focus::placeholder,
-body .swal2-modal .swal2-textarea:focus::placeholder {
- -webkit-transition: opacity 0.3s 0.03s ease;
- transition: opacity 0.3s 0.03s ease;
- opacity: 0.8;
-}
-body .swal2-modal .swal2-input::-webkit-input-placeholder,
-body .swal2-modal .swal2-file::-webkit-input-placeholder,
-body .swal2-modal .swal2-textarea::-webkit-input-placeholder {
- color: #e6e6e6;
-}
-body .swal2-modal .swal2-input:-ms-input-placeholder,
-body .swal2-modal .swal2-file:-ms-input-placeholder,
-body .swal2-modal .swal2-textarea:-ms-input-placeholder {
- color: #e6e6e6;
+#payment .payment_methods li[class*="pagarme"] .payment_box fieldset {
+ font-size: 1em;
}
-body .swal2-modal .swal2-input::placeholder,
-body .swal2-modal .swal2-file::placeholder,
-body .swal2-modal .swal2-textarea::placeholder {
- color: #e6e6e6;
-}
-body .swal2-modal .swal2-range input {
- float: left;
- width: 80%;
-}
-body .swal2-modal .swal2-range output {
- float: right;
- width: 20%;
- font-size: 20px;
- font-weight: 600;
- text-align: center;
-}
-body .swal2-modal .swal2-range input,
-body .swal2-modal .swal2-range output {
- height: 43px;
- line-height: 43px;
- vertical-align: middle;
- margin: 20px auto;
- padding: 0;
-}
-body .swal2-modal .swal2-input {
- height: 43px;
- padding: 0 12px;
-}
-body .swal2-modal .swal2-input[type=number] {
- max-width: 150px;
-}
-body .swal2-modal .swal2-file {
- font-size: 20px;
-}
-body .swal2-modal .swal2-textarea {
- height: 108px;
- padding: 12px;
-}
-body .swal2-modal .swal2-select {
- color: #545454;
- font-size: inherit;
- padding: 5px 10px;
- min-width: 40%;
- max-width: 100%;
-}
-body .swal2-modal .swal2-radio {
- border: 0;
-}
-body .swal2-modal .swal2-radio label:not(:first-child) {
- margin-left: 20px;
-}
-body .swal2-modal .swal2-radio input,
-body .swal2-modal .swal2-radio span {
- vertical-align: middle;
-}
-body .swal2-modal .swal2-radio input {
- margin: 0 3px 0 0;
-}
-body .swal2-modal .swal2-checkbox {
- color: #545454;
-}
-body .swal2-modal .swal2-checkbox input,
-body .swal2-modal .swal2-checkbox span {
- vertical-align: middle;
-}
-body .swal2-modal .swal2-validationerror {
- background-color: #f0f0f0;
- margin: 0 -20px;
- overflow: hidden;
- padding: 10px;
- color: gray;
- font-size: 16px;
- font-weight: 300;
- display: none;
-}
-body .swal2-modal .swal2-validationerror::before {
- content: "!";
- display: inline-block;
- width: 24px;
- height: 24px;
- border-radius: 50%;
- background-color: #ea7d7d;
- color: #fff;
- line-height: 24px;
- text-align: center;
- margin-right: 10px;
-}
-@supports (-ms-accelerator: true) {
- body .swal2-range input {
- width: 100% !important;
- }
- body .swal2-range output {
- display: none;
- }
-}
-@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
- body .swal2-range input {
- width: 100% !important;
- }
- body .swal2-range output {
+
+#payment .payment_methods li[class*="pagarme"] .payment_box fieldset legend {
display: none;
- }
-}
-body .swal2-icon {
- width: 80px;
- height: 80px;
- border: 4px solid transparent;
- border-radius: 50%;
- margin: 20px auto 30px;
- padding: 0;
- position: relative;
- box-sizing: content-box;
- cursor: default;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-body .swal2-icon.swal2-error {
- border-color: #f27474;
-}
-body .swal2-icon.swal2-error .swal2-x-mark {
- position: relative;
- display: block;
-}
-body .swal2-icon.swal2-error [class^=swal2-x-mark-line] {
- position: absolute;
- height: 5px;
- width: 47px;
- background-color: #f27474;
- display: block;
- top: 37px;
- border-radius: 2px;
-}
-body .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left] {
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg);
- left: 17px;
-}
-body .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right] {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
- right: 16px;
-}
-body .swal2-icon.swal2-warning {
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
- color: #f8bb86;
- border-color: #facea8;
- font-size: 60px;
- line-height: 80px;
- text-align: center;
-}
-body .swal2-icon.swal2-info {
- font-family: "Open Sans", sans-serif;
- color: #3fc3ee;
- border-color: #9de0f6;
- font-size: 60px;
- line-height: 80px;
- text-align: center;
-}
-body .swal2-icon.swal2-question {
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
- color: #87adbd;
- border-color: #c9dae1;
- font-size: 60px;
- line-height: 80px;
- text-align: center;
-}
-body .swal2-icon.swal2-success {
- border-color: #a5dc86;
-}
-body .swal2-icon.swal2-success [class^=swal2-success-circular-line] {
- border-radius: 50%;
- position: absolute;
- width: 60px;
- height: 120px;
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg);
-}
-body .swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left] {
- border-radius: 120px 0 0 120px;
- top: -7px;
- left: -33px;
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
- -webkit-transform-origin: 60px 60px;
- transform-origin: 60px 60px;
-}
-body .swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right] {
- border-radius: 0 120px 120px 0;
- top: -11px;
- left: 30px;
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
- -webkit-transform-origin: 0 60px;
- transform-origin: 0 60px;
-}
-body .swal2-icon.swal2-success .swal2-success-ring {
- width: 80px;
- height: 80px;
- border: 4px solid rgba(165, 220, 134, 0.2);
- border-radius: 50%;
- box-sizing: content-box;
- position: absolute;
- left: -4px;
- top: -4px;
- z-index: 2;
-}
-body .swal2-icon.swal2-success .swal2-success-fix {
- width: 7px;
- height: 90px;
- position: absolute;
- left: 28px;
- top: 8px;
- z-index: 1;
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
-}
-body .swal2-icon.swal2-success [class^=swal2-success-line] {
- height: 5px;
- background-color: #a5dc86;
- display: block;
- border-radius: 2px;
- position: absolute;
- z-index: 2;
-}
-body .swal2-icon.swal2-success [class^=swal2-success-line][class$=tip] {
- width: 25px;
- left: 14px;
- top: 46px;
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg);
-}
-body .swal2-icon.swal2-success [class^=swal2-success-line][class$=long] {
- width: 47px;
- right: 8px;
- top: 38px;
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
-}
-body .swal2-progresssteps {
- font-weight: 600;
- margin: 0 0 20px;
- padding: 0;
-}
-body .swal2-progresssteps li {
- display: inline-block;
- position: relative;
-}
-body .swal2-progresssteps .swal2-progresscircle {
- background: #3085d6;
- border-radius: 2em;
- color: #fff;
- height: 2em;
- line-height: 2em;
- text-align: center;
- width: 2em;
- z-index: 20;
-}
-body .swal2-progresssteps .swal2-progresscircle:first-child {
- margin-left: 0;
-}
-body .swal2-progresssteps .swal2-progresscircle:last-child {
- margin-right: 0;
-}
-body .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep {
- background: #3085d6;
-}
-body .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep ~ .swal2-progresscircle {
- background: #add8e6;
-}
-body .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep ~ .swal2-progressline {
- background: #add8e6;
-}
-body .swal2-progresssteps .swal2-progressline {
- background: #3085d6;
- height: 0.4em;
- margin: 0 -1px;
- z-index: 10;
-}
-body [class^=swal2] {
- -webkit-tap-highlight-color: transparent;
-}
-@-webkit-keyframes showSweetAlert {
- 0% {
- -webkit-transform: scale(0.7);
- transform: scale(0.7);
- }
- 45% {
- -webkit-transform: scale(1.05);
- transform: scale(1.05);
- }
- 80% {
- -webkit-transform: scale(0.95);
- transform: scale(0.95);
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-}
-@keyframes showSweetAlert {
- 0% {
- -webkit-transform: scale(0.7);
- transform: scale(0.7);
- }
- 45% {
- -webkit-transform: scale(1.05);
- transform: scale(1.05);
- }
- 80% {
- -webkit-transform: scale(0.95);
- transform: scale(0.95);
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-}
-@-webkit-keyframes hideSweetAlert {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 1;
- }
- 100% {
- -webkit-transform: scale(0.5);
- transform: scale(0.5);
- opacity: 0;
- }
-}
-@keyframes hideSweetAlert {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 1;
- }
- 100% {
- -webkit-transform: scale(0.5);
- transform: scale(0.5);
- opacity: 0;
- }
-}
-body .swal2-show {
- -webkit-animation: showSweetAlert 0.3s;
- animation: showSweetAlert 0.3s;
-}
-body .swal2-show.swal2-noanimation {
- -webkit-animation: none;
- animation: none;
-}
-body .swal2-hide {
- -webkit-animation: hideSweetAlert 0.15s forwards;
- animation: hideSweetAlert 0.15s forwards;
-}
-body .swal2-hide.swal2-noanimation {
- -webkit-animation: none;
- animation: none;
-}
-@-webkit-keyframes animate-success-tip {
- 0% {
- width: 0;
- left: 1px;
- top: 19px;
- }
- 54% {
- width: 0;
- left: 1px;
- top: 19px;
- }
- 70% {
- width: 50px;
- left: -8px;
- top: 37px;
- }
- 84% {
- width: 17px;
- left: 21px;
- top: 48px;
- }
- 100% {
- width: 25px;
- left: 14px;
- top: 45px;
- }
-}
-@keyframes animate-success-tip {
- 0% {
- width: 0;
- left: 1px;
- top: 19px;
- }
- 54% {
- width: 0;
- left: 1px;
- top: 19px;
- }
- 70% {
- width: 50px;
- left: -8px;
- top: 37px;
- }
- 84% {
- width: 17px;
- left: 21px;
- top: 48px;
- }
- 100% {
- width: 25px;
- left: 14px;
- top: 45px;
- }
-}
-@-webkit-keyframes animate-success-long {
- 0% {
- width: 0;
- right: 46px;
- top: 54px;
- }
- 65% {
- width: 0;
- right: 46px;
- top: 54px;
- }
- 84% {
- width: 55px;
- right: 0;
- top: 35px;
- }
- 100% {
- width: 47px;
- right: 8px;
- top: 38px;
- }
-}
-@keyframes animate-success-long {
- 0% {
- width: 0;
- right: 46px;
- top: 54px;
- }
- 65% {
- width: 0;
- right: 46px;
- top: 54px;
- }
- 84% {
- width: 55px;
- right: 0;
- top: 35px;
- }
- 100% {
- width: 47px;
- right: 8px;
- top: 38px;
- }
-}
-@-webkit-keyframes rotatePlaceholder {
- 0% {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
- }
- 5% {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
- }
- 12% {
- -webkit-transform: rotate(-405deg);
- transform: rotate(-405deg);
- }
- 100% {
- -webkit-transform: rotate(-405deg);
- transform: rotate(-405deg);
- }
-}
-@keyframes rotatePlaceholder {
- 0% {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
- }
- 5% {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
- }
- 12% {
- -webkit-transform: rotate(-405deg);
- transform: rotate(-405deg);
- }
- 100% {
- -webkit-transform: rotate(-405deg);
- transform: rotate(-405deg);
- }
-}
-body .swal2-animate-success-line-tip {
- -webkit-animation: animate-success-tip 0.75s;
- animation: animate-success-tip 0.75s;
-}
-body .swal2-animate-success-line-long {
- -webkit-animation: animate-success-long 0.75s;
- animation: animate-success-long 0.75s;
-}
-body .swal2-success.swal2-animate-success-icon .swal2-success-circular-line-right {
- -webkit-animation: rotatePlaceholder 4.25s ease-in;
- animation: rotatePlaceholder 4.25s ease-in;
-}
-@-webkit-keyframes animate-error-icon {
- 0% {
- -webkit-transform: rotateX(100deg);
- transform: rotateX(100deg);
- opacity: 0;
- }
- 100% {
- -webkit-transform: rotateX(0deg);
- transform: rotateX(0deg);
- opacity: 1;
- }
-}
-@keyframes animate-error-icon {
- 0% {
- -webkit-transform: rotateX(100deg);
- transform: rotateX(100deg);
- opacity: 0;
- }
- 100% {
- -webkit-transform: rotateX(0deg);
- transform: rotateX(0deg);
- opacity: 1;
- }
-}
-body .swal2-animate-error-icon {
- -webkit-animation: animate-error-icon 0.5s;
- animation: animate-error-icon 0.5s;
-}
-@-webkit-keyframes animate-x-mark {
- 0% {
- -webkit-transform: scale(0.4);
- transform: scale(0.4);
- margin-top: 26px;
- opacity: 0;
- }
- 50% {
- -webkit-transform: scale(0.4);
- transform: scale(0.4);
- margin-top: 26px;
- opacity: 0;
- }
- 80% {
- -webkit-transform: scale(1.15);
- transform: scale(1.15);
- margin-top: -6px;
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- margin-top: 0;
- opacity: 1;
- }
-}
-@keyframes animate-x-mark {
- 0% {
- -webkit-transform: scale(0.4);
- transform: scale(0.4);
- margin-top: 26px;
- opacity: 0;
- }
- 50% {
- -webkit-transform: scale(0.4);
- transform: scale(0.4);
- margin-top: 26px;
- opacity: 0;
- }
- 80% {
- -webkit-transform: scale(1.15);
- transform: scale(1.15);
- margin-top: -6px;
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- margin-top: 0;
- opacity: 1;
- }
-}
-body .swal2-animate-x-mark {
- -webkit-animation: animate-x-mark 0.5s;
- animation: animate-x-mark 0.5s;
-}
-@-webkit-keyframes rotate-loading {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
-}
-@keyframes rotate-loading {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
}
-#wcmp-checkout-form .panel .invalid {
- border: 1px solid #da3c39;
- box-shadow: 1px 1px 3px #da3c39;
-}
-#wcmp-checkout-form .panel input[type=text] {
- width: 200px;
-}
-#wcmp-checkout-form .panel input, #wcmp-checkout-form .panel select {
- margin: 0;
-}
-#wcmp-checkout-form .panel ul {
- list-style: none;
- margin: 0 0 10px;
- padding: 0;
-}
-#wcmp-checkout-form .panel li {
- margin: 0 20px 0 0;
- float: left;
- text-align: center;
-}
-#wcmp-checkout-form .panel label img {
- display: block;
-}
-#wcmp-checkout-form .panel .form-group-wrap {
- margin-bottom: 10px;
-}
-#wcmp-checkout-form .panel .form-group {
- float: left;
- margin-right: 10px;
-}
-#wcmp-checkout-form .panel .form-group label {
- display: block;
-}
-#wcmp-checkout-form .panel .form-group input, #wcmp-checkout-form .panel .form-group select {
- float: left;
-}
-#wcmp-checkout-form .panel .form-group .description {
- color: #666;
- display: block;
- font-size: 80%;
-}
-#wcmp-checkout-form #tab-credit-card .form-group-wrap {
- display: none;
-}
-#wcmp-checkout-form #payment .payment_methods li .logo {
- max-height: 100%;
- float: left;
- width: 60px;
-}
-#wcmp-checkout-form label[for=save-credit-card] {
- cursor: pointer;
+#payment .payment_methods li[class*="pagarme"] .payment_box fieldset label {
+ display: flex;
+ align-items: center;
+ width: 100%;
+ font-size: 1em;
}
-#wcmp-checkout-form #payment-type a {
- text-indent: 15px;
+#payment .payment_methods li[class*="pagarme"] input[type=text],
+#payment .payment_methods li[class*="pagarme"] input[type=number],
+#payment .payment_methods li[class*="pagarme"] input[type=email],
+#payment .payment_methods li[class*="pagarme"] input[type=tel],
+#payment .payment_methods li[class*="pagarme"] input[type=url],
+#payment .payment_methods li[class*="pagarme"] input[type=password],
+#payment .payment_methods li[class*="pagarme"] input[type=search],
+#payment .payment_methods li[class*="pagarme"] select,
+#payment .payment_methods li[class*="pagarme"] textarea,
+#payment .payment_methods li[class*="pagarme"] .input-text {
+ width: 100%;
+ height: 2.8em;
+ padding: 0.6em;
+ font-size: 1em;
}
-.wcmp-hide-field {
- display: none;
+#payment .payment_methods li[class*="pagarme"] .payment_box fieldset .form-row input[type=checkbox] {
+ width: 1.2em;
+ height: 1.2em;
+ margin-right: 0.5em;
}
-.woocommerce-message .pagarme-response, .woocommerce-error .pagarme-response {
- text-align: center;
-}
-.woocommerce-message .pagarme-response .title, .woocommerce-error .pagarme-response .title {
- font-weight: bold;
-}
-.woocommerce-message .pagarme-response .payment-link, .woocommerce-error .pagarme-response .payment-link {
- background: #333;
- border-radius: 4px;
- cursor: pointer;
- display: block;
- font-weight: bold;
- margin: 20px auto 20px auto;
- padding: 6px;
- text-align: center;
- width: 200px;
+#payment .payment_methods li[class*="pagarme"] .payment_box .wc-credit-card-form-card-number {
+ padding-right: 3.714em;
}
-#wcmp-checkout-errors {
- display: none;
+#payment .payment_methods li[class*="pagarme"] img {
+ max-height: 2em;
}
-.payment_method_woo-pagarme-payments img {
- max-height: 1.618em !important;
+#payment .payment_methods li[class*="pagarme"] .payment_box .pagarme-brand-image {
+ display: block;
+ position: relative;
}
-.select2-container--open .select2-dropdown--below{
- margin-top: 40px;
+#payment .payment_methods li[class*="pagarme"] .payment_box .pagarme-brand-image img {
+ position: absolute;
+ right: 0.6em;
+ top: 50%;
+ margin-top: -0.8em;
+ max-height: 1.6em;
+ background-color: #fff;
+ pointer-events: none;
}
-.pagarme-response .pix-qr-code-instruction{
- max-width: 70%;
- margin: auto;
- padding: 5px;
- text-align: left;
+.woocommerce-order .woocommerce-message .pagarme-response p:last-child {
+ margin-bottom: 0;
}
-.pagarme-response .pix-qr-code-instruction input {
- width: 100%;
+.woocommerce-order .woocommerce-message .pagarme-response .pagarme-qr-code-img {
+ display: block;
+ margin: 0 auto;
}
-#pix-image-attention{
- margin: auto;
+.woocommerce-order .woocommerce-message .pagarme-response .pagarme-payment-button {
display: block;
- width: 20px;
- height: 20px;
+ margin: 1em auto;
}
-#pix-image-attention-container{
- width: 20px;
- height: 30px;
- display: inline-block;
- margin: 0;
+.woocommerce-order .woocommerce-message .pagarme-response .pagarme-flex-container {
+ --gutter-x: 1.5rem;
+ --gutter-y: 1em;
+ display: flex;
+ flex-wrap: wrap;
+ margin-top: calc(-1 * var(--gutter-y));
+ margin-right: calc(-.5 * var(--gutter-x));
+ margin-bottom: calc(2 * var(--gutter-y));
+ margin-left: calc(-.5 * var(--gutter-x));
}
-.pagarme-response .pix-attention-instruction{
- display: inline-block;
+.woocommerce-order .woocommerce-message .pagarme-response .pagarme-flex-container > * {
+ flex-shrink: 0;
+ width: 100%;
+ max-width: 100%;
+ padding-right: calc(var(--gutter-x) * .5);
+ padding-left: calc(var(--gutter-x) * .5);
+ margin-top: var(--gutter-y);
+ margin-bottom: calc(var(--gutter-x) * .25);
}
-@media only screen and (max-width: 1023px) {
- .select2-container--open .select2-dropdown--below{
- margin-top: 50px;
- }
- }
-
-.payment_method_woo-pagarme-payments {
- padding: 0 !important;
+.woocommerce-order .woocommerce-message .pagarme-response .pagarme-qr-code-attention {
+ width: 100% !important;
}
-.pagarme-method {
- border-bottom: 1px black solid !important;
+.woocommerce-order .woocommerce-message .pagarme-response .pagarme-qr-code-instruction > p {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+ border: 1px solid rgba(255,255,255,.15);
+ border-radius: 4px;
+ padding: calc(var(--gutter-x) * .5);
+ background-color: rgba(0,0,0,.15);
+ box-shadow: 0 0 3rem inset rgba(0,0,0,.15);
}
-#woo-pagarme-payment-methods ul li:first-child {
- border-top: 1px black solid !important;
+.woocommerce-order .woocommerce-message .pagarme-response .pagarme-qr-code-instruction > p > span {
+ height: 1em;
+ white-space: nowrap;
+ font-size: 2em;
+ font-weight: 600;
+ line-height: 1em;
+ margin-bottom: calc(var(--gutter-x) * .25);
}
-.pagarme-method label {
- padding-top: 0.8em !important;
- padding-bottom: 0.8em !important;
+.woocommerce-order .woocommerce-message .pagarme-response .pagarme-qr-code-instruction > p > span > img {
+ min-width: 2rem;
}
-.pagarme-card-form-card-cvc {
-}
+/* sm */
+/* @media (min-width: 576px) {
+
+} */
-.pagarme-card-form-card-expiry {
+/* md */
+@media (min-width: 768px) {
+ .woocommerce-order .woocommerce-message .pagarme-response .pagarme-flex-container > * {
+ width: 50%;
+ }
}
-.pagarme-card-form-card-number {
+/* lg */
+@media (min-width: 992px) {
+ .woocommerce-order .woocommerce-message .pagarme-response .pagarme-flex-container > * {
+ width: 25%;
+ }
}
-.pagarme-message-warning {
- margin: 0 0 10px;
- padding: 12px 20px 12px 25px;
- display: block;
- background: #fdf0d5;
- color: #6f4400;
- position: relative;
-}
-/*# sourceMappingURL=assets/stylesheets/front/style.css.map */
+/* xl */
+/* @media (min-width: 1200px) {
+
+} */
+
+/* xxl */
+/* @media (min-width: 1400px) {
+
+} */
diff --git a/assets/stylesheets/front/style.css.map b/assets/stylesheets/front/style.css.map
deleted file mode 100644
index f38f01d7..00000000
--- a/assets/stylesheets/front/style.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sourceRoot":"","sources":["../base/_helpers.scss","vendor/_sweetalert2.scss","_checkout.scss"],"names":[],"mappings":"AAyEA;EACI;IAAO;;EACP;IAAK;;;AAET;EACI;IAAO;;EACP;IAAK;;;AAET;EACI;IAAO;;EACP;IAAK;;;AAET;EACI;IACI;;EAEJ;IACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;;AC/GH;EACE;;AAEF;EACC;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACI;EACI;EACR;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;;AACF;EACE;;AAEJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;AACF;EACE;;AACF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACF;EACE;;AACA;EACE;EACA;;AACF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACQ;EACR;EACG;EACC;EACI;;AACV;EACE;EACA;;AACF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACQ;;AACZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACF;EACE;EACA;;AACF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;AACJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;;AACF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACF;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;;AACF;AAAA;AAAA;EAGE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;AAAA;AAAA;EAGE;EACA;;AACF;AAAA;AAAA;EAGE;EACA;EACA;;AACA;AAAA;AAAA;EAGE;EACA;EACA;;AACF;AAAA;AAAA;EAGE;EACA;EACA;;AACF;AAAA;AAAA;EAGE;EACA;EACA;;AACJ;AAAA;AAAA;EAGE;;AACF;AAAA;AAAA;EAGE;;AACF;AAAA;AAAA;EAGE;;AACJ;EACE;EACA;;AACF;EACE;EACA;EACA;EACA;EACA;;AACF;AAAA;EAEE;EACA;EACA;EACA;EACA;;AACF;EACE;EACA;;AACA;EACE;;AACJ;EACE;;AACF;EACE;EACA;;AACF;EACE;EACA;EACA;EACA;EACA;;AACF;EACE;;AACA;EACE;;AACF;AAAA;EAEE;;AACF;EACE;;AACJ;EACE;;AACA;AAAA;EAEE;;AACJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEN;EACE;IACE;;EACF;IACE;;;AAEJ;EACE;IACE;;EACF;IACE;;;AAEJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACG;EACC;EACI;;AACR;EACE;;AACA;EACE;EACA;;AACF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACQ;EACR;;AACF;EACE;EACQ;EACR;;AACN;EACE;EACA;EACA;EACA;EACA;EACA;;AACF;EACE;EACA;EACA;EACA;EACA;EACA;;AACF;EACE;EACA;EACA;EACA;EACA;EACA;;AACF;EACE;;AACA;EACE;EACA;EACA;EACA;EACA;EACQ;;AACR;EACE;EACA;EACA;EACA;EACQ;EACR;EACQ;;AACV;EACE;EACA;EACA;EACA;EACQ;EACR;EACQ;;AACZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACQ;;AACV;EACE;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACQ;;AACV;EACE;EACA;EACA;EACA;EACQ;;AAEhB;EACE;EACA;EACA;;AACA;EACE;EACA;;AACF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;AACF;EACE;;AACF;EACE;;AACA;EACE;;AACF;EACE;;AACN;EACE;EACA;EACA;EACA;;AAEJ;EACE;;AAEF;EACE;IACE;IACQ;;EACV;IACE;IACQ;;EACV;IACE;IACQ;;EACV;IACE;IACQ;;;AAEZ;EACE;IACE;IACQ;;EACV;IACE;IACQ;;EACV;IACE;IACQ;;EACV;IACE;IACQ;;;AAEZ;EACE;IACE;IACQ;IACR;;EACF;IACE;IACQ;IACR;;;AAEJ;EACE;IACE;IACQ;IACR;;EACF;IACE;IACQ;IACR;;;AAEJ;EACE;EACQ;;AACR;EACE;EACQ;;AAEZ;EACE;EACQ;;AACR;EACE;EACQ;;AAEZ;EACE;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;;AAEJ;EACE;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;;AAEJ;EACE;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;;AAEJ;EACE;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;EACF;IACE;IACA;IACA;;;AAEJ;EACE;IACE;IACQ;;EACV;IACE;IACQ;;EACV;IACE;IACQ;;EACV;IACE;IACQ;;;AAEZ;EACE;IACE;IACQ;;EACV;IACE;IACQ;;EACV;IACE;IACQ;;EACV;IACE;IACQ;;;AAEZ;EACE;EACQ;;AAEV;EACE;EACQ;;AAEV;EACE;EACQ;;AAEV;EACE;IACE;IACQ;IACR;;EACF;IACE;IACQ;IACR;;;AAEJ;EACE;IACE;IACQ;IACR;;EACF;IACE;IACQ;IACR;;;AAEJ;EACE;EACQ;;AAEV;EACE;IACE;IACQ;IACR;IACA;;EACF;IACE;IACQ;IACR;IACA;;EACF;IACE;IACQ;IACR;;EACF;IACE;IACQ;IACR;IACA;;;AAEJ;EACE;IACE;IACQ;IACR;IACA;;EACF;IACE;IACQ;IACR;IACA;;EACF;IACE;IACQ;IACR;;EACF;IACE;IACQ;IACR;IACA;;;AAEJ;EACE;EACQ;;AAEV;EACE;IACE;IACQ;;EACV;IACE;IACQ;;;AAEZ;EACE;IACE;IACQ;;EACV;IACE;IACQ;;;;AC/rBV;EACC;EACA;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;EACA;EACA;;AAKH;EACC;;AAGD;EACC;EACA;EACG;;AAGJ;EACC;;AAGD;EACI;;;AAIL;EACC;;;AAGD;EACC;;;AAKA;EAEC;;AAEA;EAAS;;AAET;EACI;EACA;EACH;EACG;EACA;EACA;EACA;EACA;EACA;;;AAMN;EACC;;;AAID;EACC","file":"style.css"}
\ No newline at end of file
diff --git a/assets/stylesheets/front/style.scss b/assets/stylesheets/front/style.scss
deleted file mode 100644
index 1c8e847a..00000000
--- a/assets/stylesheets/front/style.scss
+++ /dev/null
@@ -1,20 +0,0 @@
-//= BEGIN BASE
-
-@import "../base/variables";
-@import "../base/functions";
-@import "../base/helpers";
-@import "../base/mixins";
-
-//= END BASE
-
-//= BEGIN COMPONENTS
-
-//= END COMPONENTS
-
-//= BEGIN ELEMENTS
-
-@import "elements/spinner";
-@import "vendor/sweetalert2";
-@import "checkout";
-
-//= END ELEMENTS
diff --git a/assets/stylesheets/front/vendor/_sweetalert2.scss b/assets/stylesheets/front/vendor/_sweetalert2.scss
deleted file mode 100644
index e3e88aa3..00000000
--- a/assets/stylesheets/front/vendor/_sweetalert2.scss
+++ /dev/null
@@ -1,708 +0,0 @@
-body {
- swal2-shown {
- overflow-y: hidden; }
-
- .swal2-iosfix {
- position: fixed;
- left: 0;
- right: 0; }
-
-.swal2-container {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- position: fixed;
- top: 0;
- left: 0;
- bottom: 0;
- right: 0;
- padding: 10px;
- background-color: transparent;
- z-index: 1060; }
- .swal2-container.swal2-fade {
- -webkit-transition: background-color .1s;
- transition: background-color .1s; }
- .swal2-container.swal2-shown {
- background-color: rgba(0, 0, 0, 0.4); }
-
-.swal2-modal {
- background-color: #fff;
- font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
- border-radius: 5px;
- box-sizing: border-box;
- text-align: center;
- margin: auto;
- overflow-x: hidden;
- overflow-y: auto;
- display: none;
- position: relative;
- max-width: 100%; }
- .swal2-modal:focus {
- outline: none; }
- .swal2-modal.swal2-loading {
- overflow-y: hidden; }
- .swal2-modal .swal2-title {
- color: #595959;
- font-size: 30px;
- text-align: center;
- font-weight: 600;
- text-transform: none;
- position: relative;
- margin: 0 0 .4em;
- padding: 0;
- display: block;
- word-wrap: break-word; }
- .swal2-modal .swal2-buttonswrapper {
- margin-top: 15px; }
- .swal2-modal .swal2-buttonswrapper:not(.swal2-loading) .swal2-styled[disabled] {
- opacity: .4;
- cursor: no-drop; }
- .swal2-modal .swal2-buttonswrapper.swal2-loading .swal2-styled.swal2-confirm {
- box-sizing: border-box;
- border: 4px solid transparent;
- border-color: transparent;
- width: 40px;
- height: 40px;
- padding: 0;
- margin: 7.5px;
- vertical-align: top;
- background-color: transparent !important;
- color: transparent;
- cursor: default;
- border-radius: 100%;
- -webkit-animation: rotate-loading 1.5s linear 0s infinite normal;
- animation: rotate-loading 1.5s linear 0s infinite normal;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none; }
- .swal2-modal .swal2-buttonswrapper.swal2-loading .swal2-styled.swal2-cancel {
- margin-left: 30px;
- margin-right: 30px; }
- .swal2-modal .swal2-buttonswrapper.swal2-loading :not(.swal2-styled).swal2-confirm::after {
- display: inline-block;
- content: '';
- margin-left: 5px 0 15px;
- vertical-align: -1px;
- height: 15px;
- width: 15px;
- border: 3px solid #999999;
- box-shadow: 1px 1px 1px #fff;
- border-right-color: transparent;
- border-radius: 50%;
- -webkit-animation: rotate-loading 1.5s linear 0s infinite normal;
- animation: rotate-loading 1.5s linear 0s infinite normal; }
- .swal2-modal .swal2-styled {
- border: 0;
- border-radius: 3px;
- box-shadow: none;
- color: #fff;
- cursor: pointer;
- font-size: 17px;
- font-weight: 500;
- margin: 15px 5px 0;
- padding: 10px 32px; }
- .swal2-modal .swal2-image {
- margin: 20px auto;
- max-width: 100%; }
- .swal2-modal .swal2-close {
- background: transparent;
- border: 0;
- margin: 0;
- padding: 0;
- width: 38px;
- height: 40px;
- font-size: 36px;
- line-height: 40px;
- font-family: serif;
- position: absolute;
- top: 5px;
- right: 8px;
- cursor: pointer;
- color: #cccccc;
- -webkit-transition: color .1s ease;
- transition: color .1s ease; }
- .swal2-modal .swal2-close:hover {
- color: #d55; }
- .swal2-modal > .swal2-input,
- .swal2-modal > .swal2-file,
- .swal2-modal > .swal2-textarea,
- .swal2-modal > .swal2-select,
- .swal2-modal > .swal2-radio,
- .swal2-modal > .swal2-checkbox {
- display: none; }
- .swal2-modal .swal2-content {
- font-size: 18px;
- text-align: center;
- font-weight: 300;
- position: relative;
- float: none;
- margin: 0;
- padding: 0;
- line-height: normal;
- color: #545454;
- word-wrap: break-word; }
- .swal2-modal .swal2-input,
- .swal2-modal .swal2-file,
- .swal2-modal .swal2-textarea,
- .swal2-modal .swal2-select,
- .swal2-modal .swal2-radio,
- .swal2-modal .swal2-checkbox {
- margin: 20px auto; }
- .swal2-modal .swal2-input,
- .swal2-modal .swal2-file,
- .swal2-modal .swal2-textarea {
- width: 100%;
- box-sizing: border-box;
- font-size: 18px;
- border-radius: 3px;
- border: 1px solid #d9d9d9;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06);
- -webkit-transition: border-color box-shadow .3s;
- transition: border-color box-shadow .3s; }
- .swal2-modal .swal2-input.swal2-inputerror,
- .swal2-modal .swal2-file.swal2-inputerror,
- .swal2-modal .swal2-textarea.swal2-inputerror {
- border-color: #f27474 !important;
- box-shadow: 0 0 2px #f27474 !important; }
- .swal2-modal .swal2-input:focus,
- .swal2-modal .swal2-file:focus,
- .swal2-modal .swal2-textarea:focus {
- outline: none;
- border: 1px solid #b4dbed;
- box-shadow: 0 0 3px #c4e6f5; }
- .swal2-modal .swal2-input:focus::-webkit-input-placeholder,
- .swal2-modal .swal2-file:focus::-webkit-input-placeholder,
- .swal2-modal .swal2-textarea:focus::-webkit-input-placeholder {
- -webkit-transition: opacity .3s .03s ease;
- transition: opacity .3s .03s ease;
- opacity: .8; }
- .swal2-modal .swal2-input:focus:-ms-input-placeholder,
- .swal2-modal .swal2-file:focus:-ms-input-placeholder,
- .swal2-modal .swal2-textarea:focus:-ms-input-placeholder {
- -webkit-transition: opacity .3s .03s ease;
- transition: opacity .3s .03s ease;
- opacity: .8; }
- .swal2-modal .swal2-input:focus::placeholder,
- .swal2-modal .swal2-file:focus::placeholder,
- .swal2-modal .swal2-textarea:focus::placeholder {
- -webkit-transition: opacity .3s .03s ease;
- transition: opacity .3s .03s ease;
- opacity: .8; }
- .swal2-modal .swal2-input::-webkit-input-placeholder,
- .swal2-modal .swal2-file::-webkit-input-placeholder,
- .swal2-modal .swal2-textarea::-webkit-input-placeholder {
- color: #e6e6e6; }
- .swal2-modal .swal2-input:-ms-input-placeholder,
- .swal2-modal .swal2-file:-ms-input-placeholder,
- .swal2-modal .swal2-textarea:-ms-input-placeholder {
- color: #e6e6e6; }
- .swal2-modal .swal2-input::placeholder,
- .swal2-modal .swal2-file::placeholder,
- .swal2-modal .swal2-textarea::placeholder {
- color: #e6e6e6; }
- .swal2-modal .swal2-range input {
- float: left;
- width: 80%; }
- .swal2-modal .swal2-range output {
- float: right;
- width: 20%;
- font-size: 20px;
- font-weight: 600;
- text-align: center; }
- .swal2-modal .swal2-range input,
- .swal2-modal .swal2-range output {
- height: 43px;
- line-height: 43px;
- vertical-align: middle;
- margin: 20px auto;
- padding: 0; }
- .swal2-modal .swal2-input {
- height: 43px;
- padding: 0 12px; }
- .swal2-modal .swal2-input[type='number'] {
- max-width: 150px; }
- .swal2-modal .swal2-file {
- font-size: 20px; }
- .swal2-modal .swal2-textarea {
- height: 108px;
- padding: 12px; }
- .swal2-modal .swal2-select {
- color: #545454;
- font-size: inherit;
- padding: 5px 10px;
- min-width: 40%;
- max-width: 100%; }
- .swal2-modal .swal2-radio {
- border: 0; }
- .swal2-modal .swal2-radio label:not(:first-child) {
- margin-left: 20px; }
- .swal2-modal .swal2-radio input,
- .swal2-modal .swal2-radio span {
- vertical-align: middle; }
- .swal2-modal .swal2-radio input {
- margin: 0 3px 0 0; }
- .swal2-modal .swal2-checkbox {
- color: #545454; }
- .swal2-modal .swal2-checkbox input,
- .swal2-modal .swal2-checkbox span {
- vertical-align: middle; }
- .swal2-modal .swal2-validationerror {
- background-color: #f0f0f0;
- margin: 0 -20px;
- overflow: hidden;
- padding: 10px;
- color: gray;
- font-size: 16px;
- font-weight: 300;
- display: none; }
- .swal2-modal .swal2-validationerror::before {
- content: '!';
- display: inline-block;
- width: 24px;
- height: 24px;
- border-radius: 50%;
- background-color: #ea7d7d;
- color: #fff;
- line-height: 24px;
- text-align: center;
- margin-right: 10px; }
-
-@supports (-ms-accelerator: true) {
- .swal2-range input {
- width: 100% !important; }
- .swal2-range output {
- display: none; } }
-
-@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
- .swal2-range input {
- width: 100% !important; }
- .swal2-range output {
- display: none; } }
-
-.swal2-icon {
- width: 80px;
- height: 80px;
- border: 4px solid transparent;
- border-radius: 50%;
- margin: 20px auto 30px;
- padding: 0;
- position: relative;
- box-sizing: content-box;
- cursor: default;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none; }
- .swal2-icon.swal2-error {
- border-color: #f27474; }
- .swal2-icon.swal2-error .swal2-x-mark {
- position: relative;
- display: block; }
- .swal2-icon.swal2-error [class^='swal2-x-mark-line'] {
- position: absolute;
- height: 5px;
- width: 47px;
- background-color: #f27474;
- display: block;
- top: 37px;
- border-radius: 2px; }
- .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] {
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg);
- left: 17px; }
- .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
- right: 16px; }
- .swal2-icon.swal2-warning {
- font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
- color: #f8bb86;
- border-color: #facea8;
- font-size: 60px;
- line-height: 80px;
- text-align: center; }
- .swal2-icon.swal2-info {
- font-family: 'Open Sans', sans-serif;
- color: #3fc3ee;
- border-color: #9de0f6;
- font-size: 60px;
- line-height: 80px;
- text-align: center; }
- .swal2-icon.swal2-question {
- font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
- color: #87adbd;
- border-color: #c9dae1;
- font-size: 60px;
- line-height: 80px;
- text-align: center; }
- .swal2-icon.swal2-success {
- border-color: #a5dc86; }
- .swal2-icon.swal2-success [class^='swal2-success-circular-line'] {
- border-radius: 50%;
- position: absolute;
- width: 60px;
- height: 120px;
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg); }
- .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='left'] {
- border-radius: 120px 0 0 120px;
- top: -7px;
- left: -33px;
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
- -webkit-transform-origin: 60px 60px;
- transform-origin: 60px 60px; }
- .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='right'] {
- border-radius: 0 120px 120px 0;
- top: -11px;
- left: 30px;
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
- -webkit-transform-origin: 0 60px;
- transform-origin: 0 60px; }
- .swal2-icon.swal2-success .swal2-success-ring {
- width: 80px;
- height: 80px;
- border: 4px solid rgba(165, 220, 134, 0.2);
- border-radius: 50%;
- box-sizing: content-box;
- position: absolute;
- left: -4px;
- top: -4px;
- z-index: 2; }
- .swal2-icon.swal2-success .swal2-success-fix {
- width: 7px;
- height: 90px;
- position: absolute;
- left: 28px;
- top: 8px;
- z-index: 1;
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg); }
- .swal2-icon.swal2-success [class^='swal2-success-line'] {
- height: 5px;
- background-color: #a5dc86;
- display: block;
- border-radius: 2px;
- position: absolute;
- z-index: 2; }
- .swal2-icon.swal2-success [class^='swal2-success-line'][class$='tip'] {
- width: 25px;
- left: 14px;
- top: 46px;
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg); }
- .swal2-icon.swal2-success [class^='swal2-success-line'][class$='long'] {
- width: 47px;
- right: 8px;
- top: 38px;
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg); }
-
-.swal2-progresssteps {
- font-weight: 600;
- margin: 0 0 20px;
- padding: 0; }
- .swal2-progresssteps li {
- display: inline-block;
- position: relative; }
- .swal2-progresssteps .swal2-progresscircle {
- background: #3085d6;
- border-radius: 2em;
- color: #fff;
- height: 2em;
- line-height: 2em;
- text-align: center;
- width: 2em;
- z-index: 20; }
- .swal2-progresssteps .swal2-progresscircle:first-child {
- margin-left: 0; }
- .swal2-progresssteps .swal2-progresscircle:last-child {
- margin-right: 0; }
- .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep {
- background: #3085d6; }
- .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep ~ .swal2-progresscircle {
- background: #add8e6; }
- .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep ~ .swal2-progressline {
- background: #add8e6; }
- .swal2-progresssteps .swal2-progressline {
- background: #3085d6;
- height: .4em;
- margin: 0 -1px;
- z-index: 10; }
-
-[class^='swal2'] {
- -webkit-tap-highlight-color: transparent; }
-
-@-webkit-keyframes showSweetAlert {
- 0% {
- -webkit-transform: scale(0.7);
- transform: scale(0.7); }
- 45% {
- -webkit-transform: scale(1.05);
- transform: scale(1.05); }
- 80% {
- -webkit-transform: scale(0.95);
- transform: scale(0.95); }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1); } }
-
-@keyframes showSweetAlert {
- 0% {
- -webkit-transform: scale(0.7);
- transform: scale(0.7); }
- 45% {
- -webkit-transform: scale(1.05);
- transform: scale(1.05); }
- 80% {
- -webkit-transform: scale(0.95);
- transform: scale(0.95); }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1); } }
-
-@-webkit-keyframes hideSweetAlert {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 1; }
- 100% {
- -webkit-transform: scale(0.5);
- transform: scale(0.5);
- opacity: 0; } }
-
-@keyframes hideSweetAlert {
- 0% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 1; }
- 100% {
- -webkit-transform: scale(0.5);
- transform: scale(0.5);
- opacity: 0; } }
-
-.swal2-show {
- -webkit-animation: showSweetAlert 0.3s;
- animation: showSweetAlert 0.3s; }
- .swal2-show.swal2-noanimation {
- -webkit-animation: none;
- animation: none; }
-
-.swal2-hide {
- -webkit-animation: hideSweetAlert 0.15s forwards;
- animation: hideSweetAlert 0.15s forwards; }
- .swal2-hide.swal2-noanimation {
- -webkit-animation: none;
- animation: none; }
-
-@-webkit-keyframes animate-success-tip {
- 0% {
- width: 0;
- left: 1px;
- top: 19px; }
- 54% {
- width: 0;
- left: 1px;
- top: 19px; }
- 70% {
- width: 50px;
- left: -8px;
- top: 37px; }
- 84% {
- width: 17px;
- left: 21px;
- top: 48px; }
- 100% {
- width: 25px;
- left: 14px;
- top: 45px; } }
-
-@keyframes animate-success-tip {
- 0% {
- width: 0;
- left: 1px;
- top: 19px; }
- 54% {
- width: 0;
- left: 1px;
- top: 19px; }
- 70% {
- width: 50px;
- left: -8px;
- top: 37px; }
- 84% {
- width: 17px;
- left: 21px;
- top: 48px; }
- 100% {
- width: 25px;
- left: 14px;
- top: 45px; } }
-
-@-webkit-keyframes animate-success-long {
- 0% {
- width: 0;
- right: 46px;
- top: 54px; }
- 65% {
- width: 0;
- right: 46px;
- top: 54px; }
- 84% {
- width: 55px;
- right: 0;
- top: 35px; }
- 100% {
- width: 47px;
- right: 8px;
- top: 38px; } }
-
-@keyframes animate-success-long {
- 0% {
- width: 0;
- right: 46px;
- top: 54px; }
- 65% {
- width: 0;
- right: 46px;
- top: 54px; }
- 84% {
- width: 55px;
- right: 0;
- top: 35px; }
- 100% {
- width: 47px;
- right: 8px;
- top: 38px; } }
-
-@-webkit-keyframes rotatePlaceholder {
- 0% {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg); }
- 5% {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg); }
- 12% {
- -webkit-transform: rotate(-405deg);
- transform: rotate(-405deg); }
- 100% {
- -webkit-transform: rotate(-405deg);
- transform: rotate(-405deg); } }
-
-@keyframes rotatePlaceholder {
- 0% {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg); }
- 5% {
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg); }
- 12% {
- -webkit-transform: rotate(-405deg);
- transform: rotate(-405deg); }
- 100% {
- -webkit-transform: rotate(-405deg);
- transform: rotate(-405deg); } }
-
-.swal2-animate-success-line-tip {
- -webkit-animation: animate-success-tip 0.75s;
- animation: animate-success-tip 0.75s; }
-
-.swal2-animate-success-line-long {
- -webkit-animation: animate-success-long 0.75s;
- animation: animate-success-long 0.75s; }
-
-.swal2-success.swal2-animate-success-icon .swal2-success-circular-line-right {
- -webkit-animation: rotatePlaceholder 4.25s ease-in;
- animation: rotatePlaceholder 4.25s ease-in; }
-
-@-webkit-keyframes animate-error-icon {
- 0% {
- -webkit-transform: rotateX(100deg);
- transform: rotateX(100deg);
- opacity: 0; }
- 100% {
- -webkit-transform: rotateX(0deg);
- transform: rotateX(0deg);
- opacity: 1; } }
-
-@keyframes animate-error-icon {
- 0% {
- -webkit-transform: rotateX(100deg);
- transform: rotateX(100deg);
- opacity: 0; }
- 100% {
- -webkit-transform: rotateX(0deg);
- transform: rotateX(0deg);
- opacity: 1; } }
-
-.swal2-animate-error-icon {
- -webkit-animation: animate-error-icon 0.5s;
- animation: animate-error-icon 0.5s; }
-
-@-webkit-keyframes animate-x-mark {
- 0% {
- -webkit-transform: scale(0.4);
- transform: scale(0.4);
- margin-top: 26px;
- opacity: 0; }
- 50% {
- -webkit-transform: scale(0.4);
- transform: scale(0.4);
- margin-top: 26px;
- opacity: 0; }
- 80% {
- -webkit-transform: scale(1.15);
- transform: scale(1.15);
- margin-top: -6px; }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- margin-top: 0;
- opacity: 1; } }
-
-@keyframes animate-x-mark {
- 0% {
- -webkit-transform: scale(0.4);
- transform: scale(0.4);
- margin-top: 26px;
- opacity: 0; }
- 50% {
- -webkit-transform: scale(0.4);
- transform: scale(0.4);
- margin-top: 26px;
- opacity: 0; }
- 80% {
- -webkit-transform: scale(1.15);
- transform: scale(1.15);
- margin-top: -6px; }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- margin-top: 0;
- opacity: 1; } }
-
-.swal2-animate-x-mark {
- -webkit-animation: animate-x-mark 0.5s;
- animation: animate-x-mark 0.5s; }
-
-@-webkit-keyframes rotate-loading {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg); }
- 100% {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg); } }
-
-@keyframes rotate-loading {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg); }
- 100% {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg); } }
-}
diff --git a/assets/stylesheets/vendor/iziModal.min.css b/assets/stylesheets/vendor/iziModal.min.css
new file mode 100644
index 00000000..4517966a
--- /dev/null
+++ b/assets/stylesheets/vendor/iziModal.min.css
@@ -0,0 +1,6 @@
+/*
+* iziModal | v1.6.1
+* https://izimodal.marcelodolza.com
+* by Marcelo Dolza.
+*/
+.iziModal{display:none;position:fixed;top:0;bottom:0;left:0;right:0;margin:auto;background:#fff;box-shadow:0 0 8px rgba(0,0,0,.3);transition:margin-top .3s ease,height .3s ease;transform:translateZ(0);box-sizing:border-box}.iziModal *{box-sizing:border-box;-webkit-font-smoothing:antialiased}.iziModal::after{content:'';width:100%;height:0;opacity:0;position:absolute;left:0;bottom:0;z-index:1;background:-moz-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,.35) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(0,0,0,0)),color-stop(100%,rgba(0,0,0,.35)));background:-webkit-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,.35) 100%);background:-o-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,.35) 100%);background:-ms-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,.35) 100%);background:linear-gradient(to bottom,rgba(0,0,0,0) 0,rgba(0,0,0,.35) 100%);transition:height .3s ease-in-out,opacity .3s ease-in-out;pointer-events:none}.iziModal.hasShadow::after{height:30px;opacity:1}.iziModal .iziModal-progressbar{position:absolute;left:0;top:0;width:100%;z-index:1}.iziModal .iziModal-progressbar>div{height:2px;width:100%}.iziModal .iziModal-header{background:#88a0b9;padding:14px 18px 15px 18px;box-shadow:inset 0 -10px 15px -12px rgba(0,0,0,.3),0 0 0 #555;overflow:hidden;position:relative;z-index:10}.iziModal .iziModal-header-icon{font-size:40px;color:rgba(255,255,255,.5);padding:0 15px 0 0;margin:0;float:left}.iziModal .iziModal-header-title{color:#fff;font-size:18px;font-weight:600;line-height:1.3}.iziModal .iziModal-header-subtitle{color:rgba(255,255,255,.6);font-size:12px;line-height:1.45}.iziModal .iziModal-header-subtitle,.iziModal .iziModal-header-title{display:block;margin:0;padding:0;font-family:Lato,Arial;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.iziModal .iziModal-header-buttons{position:absolute;top:50%;right:10px;margin:-17px 0 0 0}.iziModal .iziModal-button{display:block;float:right;z-index:2;outline:0;height:34px;width:34px;border:0;padding:0;margin:0;opacity:.3;border-radius:50%;transition:transform .3s cubic-bezier(.16,.81,.32,1),opacity .3s ease;background-size:67%!important;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent}.iziModal .iziModal-button-close{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODZCQkIzQ0I0RTg0MTFFNjlBODI4QTFBRTRBMkFCMDQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODZCQkIzQ0M0RTg0MTFFNjlBODI4QTFBRTRBMkFCMDQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4NkJCQjNDOTRFODQxMUU2OUE4MjhBMUFFNEEyQUIwNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4NkJCQjNDQTRFODQxMUU2OUE4MjhBMUFFNEEyQUIwNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsgTJLcAAALJSURBVHja3JnLS1VBHMfvQ7g9dBXRRrwEFRciAhMi1JRW1aIHVEIYEkW0iVpUhOD/ICK6cFMgSbUpC6VFkQa9NtpjkauriRY9Noa3pHT8/mIODMM5Or85o87pC5/NPf5mvmc8M7+Z36SFEKkY2gj2gUawF2wHW8A6+fwv+A6KYAQMg+dg2rbDtKXhGnAaHJIms4zYz9J4HxgAf1g9k2EGteAhWBBuNApaQNrUg6nRTaAbzIuV0RCocWW4DoyJlVcJXI5ruFk2tJqi/2TWxvA5sXbqA2Ucw01i7dVjargazAo/dE33p6/DlAheg50pP0SJpwG8CH7IaH/Q5pFZUhnoArkwwwVwJeWfdoMLYYZvqG+yTGo9CerAoIWBT+A4qAdPDWOugwo1NVcxJtpFZRLkwH3GJCqCghJfxVjnz1JMMMKnwAbGRAg0B5rAA4O4CblZ+qj8tkBjZthvSzDCtFIMM0ZpQhslk5Eej4jpZ/T7G+ygwG1ghrk+jjNMFy1eMPJzpOAzlou6iWmXZkm91EBHjEwUZXoQTDk2SxqhRh7HTJ9hpstB3rFZ0ldq6J2DnB9m2rXZfxOPlrX1DrJRXiaBXSHPaMHvB0cd9JPLpBImMvzLQTuUFA6A9yHPfoIjhsllOc1l5N4grtmDWgYrl5+JTUZcSjNkeMyxWdpA3ZN72IJj01OJTByJS82J2/wQVxmB5y1HK8x0JWMf/kzdD98FJcY5S51gdwyTQl6eUAraspo27PeWXgy8afim0+CELAwOWHyH9EkdkyWwJ4Yxk6BCP+bTm48anutWW5dAp34IpbW03UOzb0FPVEHbx0LKfvAyqpAyKw97JU8Mt6pml6rAJ6oY6Eu5NfvfF7QTeWWQyEsZr6694lwsNoPD8mKRo29gCNwGj7gXi7aGA1EBcY+8vq0GW8FmJb3Pgx9gEnwAr8Ab8MW2w0UBBgAVyyyaohV7ewAAAABJRU5ErkJggg==) no-repeat 50% 50%}.iziModal .iziModal-button-fullscreen{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTBBOUI4RUM0RTg0MTFFNjk0NTY4NUNFRkZFNEFEQzIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTBBOUI4RUQ0RTg0MTFFNjk0NTY4NUNFRkZFNEFEQzIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFMEE5QjhFQTRFODQxMUU2OTQ1Njg1Q0VGRkU0QURDMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFMEE5QjhFQjRFODQxMUU2OTQ1Njg1Q0VGRkU0QURDMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrQO6gAAAANmSURBVHjazJlbSBRRGMd3x92i0ForRRMiKiUoX4ouiFlJkRVBDxW9GJERwUasvdRT9FD00osRQtAFqegGBUHRBY0uaCVKEkSRpVR0tSwrQtp1+p/4Bk7D7M45M/Ot/uGHu+Psmf+c+eY753wnbJpmyIfGgvmgiv6WgkKQBwzwE3wBr0AnuAta6ZgnhT0aFuY2ghoyGdH4bS+4Dc6CZjCkdWVhWIPF4JoZnB6CDToeVE8sBidNPt0E5UEZrgG9Jr8GwHa/huMgaWZXDSDsxfBuc/jUBAwdw3Fz+NWoang5SJkjQwm7P3seLqQEX2LLfgfBdZcMORMcBqNDwekPqASP0uXhpjR3Ok0x/fUw9HIHGGVdw5DuRtzJpgxDsJui2qOWmuaAOuuLbHivz4YLwLgQj/aAXNmwuItlHhtbA7pAG5jEZHgKWCcbrhUTIY+NPQVjqFFObbYMi/hc6aOhl2AJ9TKnFoIyYXgemKEzJQXVVkyR3oFVzKZFuqw2qHdyFPKhrHPgMoWC3fRjRtNVVg+7SR5IiqmXxUt60cG0CK/vTIZniZVCmcKJF0C3ZNjKBqvJ9Hrwm46tsN1EkCoRQ/M3fBjvs6GrYAvdwHEfGcd1qBaGkwoxrKI+xjz83yJ0iLFHApd46X4xX+M+WECh4lepCNUIcpnMijrEWtAvTRHrbOd8FZNG8uA2Nf0hpmwtjBPwpQ5T0GPS/+tBAZhIq+b3Lu09EyHRwRgO+0C+7dhWcII+PwCf6Sk/Aa9d2vtn+A7nyASugJiD6YSDQcOlvVbxiCaAN8xrs3sgprBiac/QhlhnzjUo6JuZM0UlDS5FPtoQIdNlPYJTWUihFaDex+9Pg6T1KHJAJ2NI7ASllA28hEQ/KJIXoSlwgKlnh+jFe+GjLtwIPtjfyktUt+UaUZWqvw7H3oJD1peI7eQdoF1xWa+zQikHH13OmwqmOxxP0EiZtgK/DRwNuIcHwSeXc2K01WAPhbhKBb5hBNTVbskVH7fqpZGhbJUNtYF83fqwQSXPbOsGjb6etwx2gcEsmT3iFAZeNmUqaMeHSz2qu0k6W15Rqsx3B2i0D+xXGAHTFrRVlEeFuVoqH+ku6VNUbDkPzlAtg30nVK66i8rRIjAbTKaSQVQyN0DD6nOqcLZQld9TLfmvAAMAeMcvp3eCFqQAAAAASUVORK5CYII=) no-repeat 50% 50%}.iziModal.isFullscreen .iziModal-button-fullscreen{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkFFRTU5NDA0RTg1MTFFNjk0NEZFQzBGMkVBMDYyRDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkFFRTU5NDE0RTg1MTFFNjk0NEZFQzBGMkVBMDYyRDkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyQUVFNTkzRTRFODUxMUU2OTQ0RkVDMEYyRUEwNjJEOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyQUVFNTkzRjRFODUxMUU2OTQ0RkVDMEYyRUEwNjJEOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuDFfX8AAANASURBVHjazJlZSBVRGMfHcWlB0xZM68GKukQLYaGkmEUR2EsvRfQS+BSJPUQE+lTR8hqIZY8hFS0ERVCRoW3gpUApghYpszLTVnCB3O70/+K7MAwzc78Z58z4hx8XzpzvzJ+Zc+d85ztphmFoU9BsUAoq+XcFyAc5QAfD4BfoBp3gCWjnNl9K82mYzO0FVWwyw0NsD3gIroBWkPB0ZzLsgc3grhGcnoE9XjxIOxaCC4Y6tYC1QRmuAj2Geg2CA1M1XAsmjHDVANL8GK4zolMz0L0YrjWiV5PU8HYw6TBIf8imD6UynA96HYKPg3mgMUTDY6DUzXCzQ+AxSz+r6QEQZz4HbLoDZNkZrnAIoOlRZjN1Gk3XS0zty/gTFaRq7Ay3uAR8BcU2ps/z9QJTWw74HrDhTyDbbHg9SKQI+sb9rKa3mV8ZmAt+KJjP1TS+zinFPkqEUqQdBeAOKLa0UwIzpqlXtcYpIKWIO4RBZPoRKNfC10YQI8MlYLkwaAB8ABsiMDwDbKU8dgtIFwRMgJ3guRadKpNPWBMa7tOi1WoyHJPuTsC4oN+IQsOLM3gPJlEWqOE/neMGBqwDeYoMz6G8c0I4h6eFyHBC8A2eVoaH8JutaPwuUA/+uvSht1sHKgTjTWZwjUCVYdrK3xT0iwkND+lc5FClUQ9fINHCRYY7FBrWPSz5Er2lAR9H9P+hpfYGl64OCmPadQ7ojcDwOJetysBMQX/6mrWS4d+cIoYtMnAEnBT2fwVeJufYxZBMFoKFlrajQtOX/uczvEtIB50Kdgn1lt3JGdANltjsXE64jPMnuQ1LPuFJcFrBE11gzQXAUnAPFNk86esO4zSBfmu5lVa9toCf8DC4Ba6C22DEdO01KDLdP5fLr1Z94X2ibV1ilWVQ1XrDpvPAU4c+u1KVqvaHXI7q43ltp3PSYmDDNCgGPrCUD1wN6y5lqzAUN89baX1Y55Jn2LrPRUffRwaHwWhIZs/aTQM/hzLlDp+coPRReprk5cgrkyvz7wM0+hOcAvOlPvwcLNIp526ux1H5aJbHeFpVX4Br4LLXWoffk9CkVnLlaBNYAxaBXJBpMjfIy+o7EAdtfIyb8HPDfwIMAM1WPs8F9tcxAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal .iziModal-button-close:hover{transform:rotate(180deg)}.iziModal .iziModal-button:hover{opacity:.8}.iziModal .iziModal-header.iziModal-noSubtitle{height:auto;padding:10px 15px 12px 15px}.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-header-icon{font-size:23px;padding-right:13px}.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-header-title{font-size:15px;margin:3px 0 0 0;font-weight:400}.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-header-buttons{right:6px;margin:-16px 0 0 0}.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-button{height:30px;width:30px}.iziModal-rtl{direction:rtl}.iziModal-rtl .iziModal-header{padding:14px 18px 15px 40px}.iziModal-rtl .iziModal-header-icon{float:right;padding:0 0 0 15px}.iziModal-rtl .iziModal-header-buttons{right:initial!important;left:10px}.iziModal-rtl .iziModal-button{float:left}.iziModal-rtl .iziModal-header-subtitle,.iziModal-rtl .iziModal-header-title{text-align:right;font-family:Tahoma,Lato,Arial;font-weight:500}.iziModal-rtl .iziModal-header.iziModal-noSubtitle{padding:10px 15px 12px 40px}.iziModal-rtl .iziModal-header.iziModal-noSubtitle .iziModal-header-icon{padding:0 0 0 13px}.iziModal.iziModal-light .iziModal-header-icon{color:rgba(0,0,0,.5)}.iziModal.iziModal-light .iziModal-header-title{color:#000}.iziModal.iziModal-light .iziModal-header-subtitle{color:rgba(0,0,0,.6)}.iziModal.iziModal-light .iziModal-button-close{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4JpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyQTU1RUZDNzRFODQxMUU2ODAxOEUwQzg0QjBDQjI3OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NEM4MTU1MEI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTNFNENDMkI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZjYzMwMmE1LWFlMjEtNDI3ZS1hMmE4LTJlYjhlMmZlY2E3NSIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjdmYmU3NGE3LTAxMDUtMTE3YS1hYmM3LWEzNWNkOWU1Yzc4NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Po24QssAAANtSURBVHja3JlJaBRBFIa7ZxyTSXADHUkikuAawZNLEOOGGrwJQYko8R4RBQ+OICoqghJQUVwPYjzFY0QUBQU1kogoKO6CG0pcIwbiNibj/8JraNvu6Xo9NTOtP3xzSKe6/65+Ve9VlWlkp2IwGUwFE0E5GA4G8/U+0APegWfgHrgPuq0bpNNp0QPNgEYngHlgGpuMCNp2s+kr4BYM/8ql4WqwHEzP4mXteg7awOW0YlerPnQIaARLNBl1ikLlBDw/1WF4ClgHKozc6idogekz2RheANbaBlE+dB4chfF+qeHF3LOF0FWwF6b7nBe8RvecApolzQVr3C64GR4H1huFV51pmvV+hikRbABFRji0GqarMxluAGON8CgKmmA65mZ4DFhqhE9VPP//ZXgZiCmm1t1gI6XWAAY+gF0gCe4qtqlHL8fthkeBWsXGreA6eMgPviEw+x5sBZ3gAdjPCcNPI8Fsu+FawUCzz40psEfRNJndBl7b/pZmVLTQMkzJo0bQSys43iWm3cxS+DUJOmoSwqKCRmEZWKkYv6RSMBPc5lqXRGm0A1Q6XiaT2aSwo8jrK/qZwZlFIlXTusxa6iXDddTdARpnMj2ek9AWjWYH7h/lubcs4A28THdyAdOl0ezAmKNBNyLLiT0Btjti9zuHg06zpJKIprohwXNypcu1OIdGjYbnxCLGPyYy/EPDfejzbwYvXK59AzuFGdFLKTL8WYNZ59RVzGESJCNm0teI40E6zNIA2wSaA2REP32iaW0omKXRbJKTUVyYEVV0J8oxvEiQmiUZrFSz6XNkuJe3nBKCelaSbjOZrhLsd1BInYxweSeJq9YA6dYtuZCBI4JZ6jGW/W+sebhd0DAaMIO5mTYFW1+X6GeQ7TO3W0WyQj3cw0ulBg4nSUbcAY7zPVYp7ip95FXOH29Hb35AOPjypWMIh7PORSjFZVsIzdKW7AWvfYnTVNWHyCytHw+jd1Nehqks3KepvtChUzD7yGvE2/cduqxldQF1EWZb/PbWLF3jAVgo0WrlkN+c6hSd+rzlaSuaR7O0oX0wyIa2pVAdGaj0HCUVOqIq4dVwrg5lmmG2w+8f/9tjL6foYHE+Gy8Xtv3CPUpf7WauDxadKuIwoeNbOmoYDYbZ0ns/1wxUC7ykigs8sS/LpEe3vwUYALiKDDDSgEiSAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal.iziModal-light .iziModal-button-fullscreen{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4JpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpEQTg1NTA2NTRFODQxMUU2OTQ0N0VERjY2Q0M5ODYwRCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RTNFNENCQkI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTNFNENCQUI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFlNTQwYzczLTVhZmEtNDJlYi04YzJlLWMwMzFlYmFiYmIyNiIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmVkYmRiMzM1LTAxMDUtMTE3YS1hYmM3LWEzNWNkOWU1Yzc4NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvIicdUAAAOvSURBVHjaxJlZbA1hFMe/qaItUUsspakg1laJ7UUisQuRvvTFA15sQSRCLBFrQryhHqxNHxEPtaQ8CCUkIrVVRbVBJdZYSrXVonr9/3pGxnTunZk78/X+k1+aO+1899/vnnvO+c4YKpi6ghEgW34OBD1BKjBAM6gH78Fz8BhUyrW/ikQivt7QiNMozU0DE8RkJx/3fgCPwA1QHvHp2K/hHJAPJqpwVA2K4flW2IZ7gyVgptKjh6AQxl+GYZi7uRr0U3rVBIpg+nIQwwvACpCkOk4XwYlosR3LMGN1qUqMroGDTqaNGDu7SiVWl+D3iP2i00c9HqxUidd8wzDy3HY4HRwCfWzXz4L7Lm+QKfHeOUTTLWAzdro6muH1YIbDjculWrmpUEM2YYXcCNMt9pAYE8WsWYLdlAxaNYTGMDDHKYYXBVy4B0jTFM/5iOcUc1fM/2JcnItNAYtBNzGtQ33BVHDV3OHpARqhV6CLLKpTs8yQYHxOCrDQO7AV1Gg2PBJhMYiGh4MMnx1eLkixXKsFuzSbZrrMpeGxHnqFFtvrTWCbhILd9AuNpnPMHXaTtZD0kl1mRdwSxXSjJsNZfONjcmqIJR5p3lp6Y+sXrAzsBz/lNXvmtZYMFKbqafi0pKQgKpOSPhmsC5BxXEs1Fz4fUr/7TWMe/q9bC2s3tJs1Df/Q/B5PwAZwJYS1WpPlo0zRZJZziL2gQU7I1GyHL7QSD26taVOytI26DpinxKypApvpk+C6dHlMnXskbUbT1yTpN3WJHWB327UCS3hUoc+tA/VyxP/ost5rGq7QWZnAdoe0eZgnYweDbgmgkoafgk8aTfNgsMNmmqfhC+Czj3V4T3mSBH255kxB0ztd4tNNDJkas2CUdkAKHQ3yAtxfijj/bdb7Cumyhmoyexzcs6Qwv2qUbPKvJDOtnNFklrF3R5qneA2XYHe/2A+ht1Xb3FZXRY1XTAjFTgtxJ45qKtWDpZK1g6dhIQuvBzjcy8FgQ6y8Nw+sCdnwL1Dn8jdMe6m2a+3ma9ESNUdOC1VixSH3bnPiYyraswnO0fqDIQkyW8WmCWab7b+I9TCF3+x0j2e+MPUA7LPGrVfD1F3VNsrPVR0zhS8BB5x21muzYa1Sy1Tb4y4d4qOwIi9Pk/wcj1gV50p5zQjJKAsJH8KcY4vpdYrjV0w9HMxxHjfKNpfwdMyRNuAmyy2M1vq5OegBNFMmR9lSHDizSLPMJGjuO2BZfSOtLKvpMylUvh/d/hFgAOH4+ibxGTZuAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal.iziModal-light.isFullscreen .iziModal-button-fullscreen{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3BpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyRUUxMkYxODRFODUxMUU2Qjc3RDk0MUUzMzJDRjBEOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RTNFNENCRkI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTNFNENCRUI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjgzM2MwOWZiLWJjOTEtNGVlZS05MDM1LTRkMmU2ZmE1ZjBmMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRUUxMkYxODRFODUxMUU2Qjc3RDk0MUUzMzJDRjBEOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv1Q9Z8AAAOXSURBVHjaxJlLbA1RGMfPjIs+EvoIRYt4FVUl2EkkRTxKUqQbG0SEho2FjUQ8YtEICbEgTdFYeK1KaGvVeoUltyStt0UlNE17aWhV2+v/9X5XJpMzc8/0zpn5kl+aO3Nm7r/fnPu9xhDp2URQDJbw3xkgB2QCAwyAPvANfARvQDsfG7V4PO7pC40xCiVxa8AKFjnOw7VdoA08BtG4R8VeBZeCKrBS+GPvQAM0P/NbcB7YBdYJPfYKXIXwL34IJm8eBFOFXusH9RDdnI7gLWA/MEVwdh/UOe1tN8G0V3eLcKwFXJCJNl08G5ZYsrWgWnZCJng5OOBwo1iAoisMw6hMJXgyOOywVW7xj+9BgKL3QHSxm+C9IF9y4U2GMlStRPQP8Jbp9lFwhJwE0RHrgaSV8N6xG238l7Zjtfx3K58/Bd7zsWngIqdnP2we2ACa7B7e6RL6joK5EtHNfL7b5u1Bn7dGFbycYRVM/8WyFJnuJK+z2iVwzFrMcF1h+Cx4ClhtFVyu8CW54ITE01EwFMAPcH1SMJWIqxQvItE1YHEIsXkhtkUhCV4ApiteFOPadn4IgseDMooSSxVrhWFwmkvCsKw06WGhKLhHhGuzSHChh9pZ5cc1oFFwfoTTsWrWqQCvXdZQEpkDsjUJziSv3Qu43k3LTA1BXqvRY/4DMjTd/yu4niJVm9wslCjcb4QE/9Qo+Al44baAmgpKCIqC+01OBLrsr8/de8zkiYwuUxWSq7iuM8JhantIqfYItkOepKBysnbycIfPXYKqURL6DhaBCQrrKcZHTa5loyEIJgHXwG3F9TQV+pxMGK0BiaTHn2OLEjcURbdi7XBSMO3jTxoEjtg+7wDnhG3spSD6F3hk7Tjoxnc0CJ5k+5wFCrhplYl2mmI24nyvvWumAE9z2zIfBW8WifnxIHc2yb6xiHtEoms0/hlGtpAPHCkgNDjFyZngPN88COvkPpEe+XGHbFcD7z53C+ybwKEAo0UPZ8QCybkmiL3sNvkheygSI08RYOSQiaUhd52sUpIZLWwJsYqkkdcZeHfIS66nc9XcZQRpNBY7C7F9Yy1OtonErDgSgNhGcEXmWa/VFA1O9onE6y4dRqGtXuVtkpf2iDy8EVR6GLykMnrsNFC867QF0hH8v3MVicFcuYdKy56uqQx4SukWQj3NOtJtQIt4ckSvbmdziMqy7HcS9xv0cn/Xwdn0A1drnl/d/hNgAGQa6Lgarp6BAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal .iziModal-loader{background:#fff url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDQiIGhlaWdodD0iNDQiIHZpZXdCb3g9IjAgMCA0NCA0NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBzdHJva2U9IiM5OTkiPiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS13aWR0aD0iMiI+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iLTAuOXMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49Ii0wLjlzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgIDwvZz48L3N2Zz4=) no-repeat 50% 50%;position:absolute;left:0;right:0;top:0;bottom:0;z-index:9}.iziModal .iziModal-content-loader{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDQiIGhlaWdodD0iNDQiIHZpZXdCb3g9IjAgMCA0NCA0NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBzdHJva2U9IiM5OTkiPiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS13aWR0aD0iMiI+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iLTAuOXMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49Ii0wLjlzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgIDwvZz48L3N2Zz4=) no-repeat 50% 50%}.iziModal .iziModal-content:after,.iziModal .iziModal-content:before{content:'';display:table}.iziModal .iziModal-content:after{clear:both}.iziModal .iziModal-content{zoom:1;width:100%}.iziModal .iziModal-wrap{width:100%;position:relative}.iziModal .iziModal-iframe{border:0;margin:0 0 -6px 0;width:100%;transition:height .3s ease}.iziModal-overlay{display:block;position:fixed;top:0;left:0;height:100%;width:100%}.iziModal-navigate{position:fixed;left:0;right:0;top:0;bottom:0;pointer-events:none}.iziModal-navigate-caption{position:absolute;left:10px;top:10px;color:#fff;line-height:16px;font-size:9px;font-family:Lato,Arial;letter-spacing:.1em;text-indent:0;text-align:center;width:70px;padding:5px 0;text-transform:uppercase;display:none}.iziModal-navigate-caption::after,.iziModal-navigate-caption::before{position:absolute;top:2px;width:20px;height:20px;text-align:center;line-height:14px;font-size:12px;content:'';background-size:100%!important}.iziModal-navigate-caption:before{left:0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAoCAYAAACFFRgXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyNmFjNjAyMy04OWU0LWE0NDAtYmMxMy1kOTA5MTQ3MmYzYjAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDREQ0YwRjA1MzQzMTFFNkE5NUNDRDkyQzEwMzM5RTMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDREQ0YwRUY1MzQzMTFFNkE5NUNDRDkyQzEwMzM5RTMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpmNmM0Nzk3Ni1mNzE3LTk5NDAtYTgyYS1mNTdjNmNiYmU0NWMiIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDowZGVmYTEyZC01MzM0LTExZTYtYWRkYi04Y2NmYjI5ZTAxNjYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7oo0ptAAACWklEQVR42uyZTWsTYRSFZybxo4kWk5g2NC5qTAU3Kq30A9udi1oXolV/hWuhv6R/Q6utioi4LbbVFHemamlRU0OCEk0wZjwXzwtDoBDopHMHcuFJMplZnLm5ue+589qu61qeOApyYAjEgG0FEyLqN/gKiqBuTtgewWlwCZw056xgwwirgU3wxSv4NJgCUV5YBRXQDEhsBJwCSSauBVZFdJRlIJk9Av7wbj577jDIOENtRmPVwcsw6KfAAvikRKzEDlhnhuU/lRPBWaa9wsxqC6ndPX7OiOA4D8qW3vjO9z7H0w3+KhZstNmOFbLoCQ6DYGmL+bAInmGfLFC4asFXwRJIgB+goVmw+I7HXO+/gevGnGgUPEGxktkSmAMbWmt4HDwBKS6XN1jDKrvEFYoVK7oLroE3h93Woh1eNwqWafJ/gQV65vM+ail34mc6EZwBK2CAx8fAIjjeBYMzDT4cVHCEXtRbRvEu/Nr9HCIOnGGp15vgEec9KYn74B0nAT/CZnv86FcNvwK3wENwAjwAs2Bbs5d4CW5zir0AXvv8p+tKH34B5lkW4h2egRHtbu05uMMHHWfB0zC4NRF5l09kzvE4rd2tyUJyjy4tz7akZqXbL8QETbJ/FsMgWOJtb6brCQ5YsBsC8Uab63DVkkgqFpzie93h8OhScFah2LTHi5ccWroaLd5l6//+hpYQoWP05LKqFs2WQYbTsNxAi+5fxpWmdfh7HS7XhwSzG+H3a2JnvZsyktmLbdOFhpDMvrf4sN1u2/aK0cwMcmYLcturweceW+CnOfFPgAEA8uWFFylBJYoAAAAASUVORK5CYII=) no-repeat 50% 50%}.iziModal-navigate-caption:after{right:0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAoCAYAAACFFRgXAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADhmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjI2YWM2MDIzLTg5ZTQtYTQ0MC1iYzEzLWQ5MDkxNDcyZjNiMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0NERDRjBGMDUzNDMxMUU2QTk1Q0NEOTJDMTAzMzlFMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0NERDRjBFRjUzNDMxMUU2QTk1Q0NEOTJDMTAzMzlFMyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmY2YzQ3OTc2LWY3MTctOTk0MC1hODJhLWY1N2M2Y2JiZTQ1YyIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjBkZWZhMTJkLTUzMzQtMTFlNi1hZGRiLThjY2ZiMjllMDE2NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuijSm0AAAKbSURBVFhH7ZnJj0xRGEerzFoIMTaCZmOIedhaiJj55yz8DaYdNhIJEUMQbCTG3rQ02hDSiEY553XdTpHS3nv96taV9ElO6lVt6peb7933fffVG41GrYW5uBaX4EysYzcw1Fd8hc/wM2a0Bl6Nm3BW9i0dDPsQX/olBF6FO72AH/gG3+N3jL3KBpqGC3ERTsGfeAsHDTyHi71oCXzBe/gaU2A5bscZOIxXTb8OLQNX9i6mElYsg/voqruwfQb2BhODWgqpMYDv0NLsNXC4yd42P1PEwNJj4HBTWdipErLVDfxfMRm408QMvBu3jV6WJ1Zg9/rbeBOP+UNZYgX+iE/Rp+lpPIKliBXYB9IhtPNy3z/T/F6YmDXsChvyBc7Gs3gACxEzsDzBg9iPPXgO92NuYgeWx2h3+AhtaM7jPsyF7aV37XR8gNZYO/pwKY51+xPkG27Fk2joT3gCr2A7NuJ6HMkTeAPadlp3VeMChF7G0P6X3dmfjAXOUxIj6LZkv1ylNuStDZejkL+PS96ScFzRqnDAtI5PoTefvbg7iNNOOwqVRCfYghdxBbpHH8Y7+DcKlUTV7MLLaNghPIrjhf2N2IF34AVcjE44hrXHyE3MwE6/loEzpEcIlqKjeyFiBe7FS+he/gENewMLEyuwXdo8dGWP43UsRazA9g7uDNbwNX8oS8watlsz+ISIGbgSJgN3GgOHlnFq8zNFQraGgT1iFc9iUyU0XsMGHhy9zh6XbvCp4ZuBBWglDBj4OdqLeu0+uRJTwMZ+Dbp/e21P3m97yWe2snsw1LTHmz5C/9lQdwhfGbiq89GwvrrwUT4UAouhN6MzloTRpVuEYI5O9urZYXtrYPGQw2OlZegM163QhrJMfWVgyTq0Qq32C/N7uPz9OknWAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal-navigate>button{position:fixed;bottom:0;top:0;border:0;height:100%;width:84px;background-size:100%!important;cursor:pointer;padding:0;opacity:.2;transition:opacity .3s ease;pointer-events:all;margin:0;outline:0}.iziModal-navigate>button:hover{opacity:1}.iziModal-navigate-prev{left:50%;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALwAAAC8CAYAAADCScSrAAAACXBIWXMAAAsTAAALEwEAmpwYAAA5sGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDo2NDkyYzcxMy05ZDM0LTZlNGQtYmUwNi1hMDMyY2Q4NDVjNGU8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDo1QjIzMUMxODU3RjcxMUU2ODUzRkRBRjE5RDhDQjZBRDwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDpjZmMwNzVmNC1kODA3LWI0NDMtYWIwYS02YWVhZjRjMDgxZWE8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0YW5jZUlEPnhtcC5paWQ6NjQ5MmM3MTMtOWQzNC02ZTRkLWJlMDYtYTAzMmNkODQ1YzRlPC9zdFJlZjppbnN0YW5jZUlEPgogICAgICAgICAgICA8c3RSZWY6ZG9jdW1lbnRJRD54bXAuZGlkOjY0OTJjNzEzLTlkMzQtNmU0ZC1iZTA2LWEwMzJjZDg0NWM0ZTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgPC94bXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmNmYzA3NWY0LWQ4MDctYjQ0My1hYjBhLTZhZWFmNGMwODFlYTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQxMTo1ODowNC0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0wOC0wMVQwOTo0MDo1Ni0wMzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTA4LTAxVDExOjU4OjA0LTAzOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0wOC0wMVQxMTo1ODowNC0wMzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjE4ODwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4xODg8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PvAvv7QAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAmdJREFUeNrs1LsJQkEQhtH/mtmBgQ8QA7tQK1e7MBBBMbADwzUZEyuQveeDCXbD4TBDay3SWJpYgYCXgJeAl4CXgJeAl4CXgJeAl4CXgJeAF/AS8BLwEvAS8BLwEvAS8BLwEvAS8BLwAl4CXgJeAl4CXv/WJskpyQJ4jQH7Mcmu0C+BV+/Y5/VeF/oV8Ood+7dpDfDqHvsrySHJBXjBDrxgB16wAy/YgRfswAt24AU78IIdeMEOPOywAw+7gIcdeMEOvGAHXrADL9iBF+zAC3bgBTvwsMMOPOwCHnYBD7uAhx14wQ68YAdesAMv2IEX7MDDDjvwsAt42AU87AIedgEPu4CHXcDDDrxgB16wAw877MDDDjvwsAt42AU87AIedgEPu4CHXcDDLuBhB16wAw877MDDLuBhF/CwC3jYBTzsAh52AQ+7gIddwEtjB3+tS/78+Z/V5d9iATz0Ah56AQ+9gIdewEMv4KEX8NALeOgFPPQCHnoBDz3wgh54QQ889NADDz30wEMv4KEX8NALeOgFPPQCHnoBD72Ahx54QQ+8oAde0AMv6IEX9MBDDz3w0EMPPPQCHnoBD72Ah17AQw+8FUAPvKAHXtADL+iBF/TAC3rgBT3wgh546KEHHnrogYdewEMv4KEHXtADL+iBF/TAC3rgBT3wgh54QQ+8oAde0AMv6IGHHnrgoU/yrgFe3aO/JdknuQOv3tGfC/tjjEsYWmsoyIWXgJeAl4CXgJeAl4CXgJeAl4CXgJeAF/AS8BLwEvAS8BLwEvAS8BLwEvAS8BLwAl4CXgJeAl4CXvqnPgAAAP//AwCEcoCBRabYzAAAAABJRU5ErkJggg==) no-repeat 50% 50%}.iziModal-navigate-next{right:50%;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALwAAAC8CAYAAADCScSrAAAACXBIWXMAAB3SAAAd0gEUasEwAAA7pGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0wOC0wMVQwOTo0MDoxNC0wMzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTA4LTAxVDExOjU4OjEyLTAzOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0wOC0wMVQxMTo1ODoxMi0wMzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDphZjljN2Q2MC00MTg2LWE3NGQtYTBiMS1mMGU5ODUwYzg2ZGY8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6NjQ5MmM3MTMtOWQzNC02ZTRkLWJlMDYtYTAzMmNkODQ1YzRlPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6NjQ5MmM3MTMtOWQzNC02ZTRkLWJlMDYtYTAzMmNkODQ1YzRlPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY0OTJjNzEzLTlkMzQtNmU0ZC1iZTA2LWEwMzJjZDg0NWM0ZTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQwOTo0MDoxNC0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjAxNjJjMmE3LWZmMjYtYzE0ZC05Yjg4LTc2MGM2NzAxYjYzNzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQxMTo1MTowNy0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmFmOWM3ZDYwLTQxODYtYTc0ZC1hMGIxLWYwZTk4NTBjODZkZjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQxMTo1ODoxMi0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MTkzOTAzNi8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTkzOTAzNi8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTg4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjE4ODwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+nbt1mgAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACQklEQVR42uzSsQ3CQAAEQTdiOyGg/wrciJ0QUMYSECEKAP3PSdvAaZZqkWbJCQJeAl4CXgJeAl4CXgJeAl4CXgJeAl4CXsBLwEvAS8BLwEvAS8BLwEvAS8BLwEvAC3gJeAl4CXgJ+D9vrY7qBgLwo7dVZ+89oAd+5Pbq6nPQAz9s9+rZ96AHHnoBD72Ah17AQy/goRfw0At46AU89AIeegEPvYCHHnhBD7ygBx566IGHHnrgoRfw0At46AU89AIeegEPvYCHXsBDL+ChB17QAy/ogRf0wAt64KGHHnjooQceegEPvYCHXsBDL+ChF/DQAy/ogRf0wAt64AU98IIeeEEPvKAHXtADDz30wEPvI+ChF/DQAy/ogRf0wAt64AU98IIeeEEPvKAHXtADL+iBF/TAC3rgoZ8ePRDAAy/YgRfswAt24AU78IIdeMEOvGAHXrADL9iBhx124GEX8LADL9iBF+zAC3bgBTvwgh14wQ68YAcedtiBh13Awy7gYRfwsAMv2IEX7MALduAFO/CCHXjYYQcedgEPu4CHXcDDLuBhF/CwA+8E2IEX7MALduAFO/Cwww487AIedgEPu4CHXcDDLuBhF/CwC3jYgRfswMMOO/CwC3jYBTzsAh52AQ+7gIddwMMu4GEX8LBravB7dcEO/Ext1Qk78DO1VgfswEvAS8BLwEvAS8BLwEvAS8BLwEvAS8ALeAl4CXgJeAl4CXgJeAl4CXgJeAl4CXgBLwEvAS8BLwEvAS/9shcAAAD//wMAtAygvJrkwJUAAAAASUVORK5CYII=) no-repeat 50% 50%}.iziModal.isAttachedTop .iziModal-header{border-top-left-radius:0;border-top-right-radius:0}.iziModal.isAttachedTop{margin-top:0!important;margin-bottom:auto!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.iziModal.isAttachedBottom{margin-top:auto!important;margin-bottom:0!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.iziModal.isFullscreen{max-width:100%!important;margin:0!important;height:100%!important;border-radius:0!important}.iziModal.isAttached{border-radius:0!important}.iziModal.hasScroll .iziModal-wrap{overflow-y:auto;overflow-x:hidden}html.iziModal-isOverflow{overflow:hidden}html.iziModal-isAttached body,html.iziModal-isOverflow body{overflow-y:scroll;position:relative}html.iziModal-isAttached{overflow:hidden}.iziModal ::-webkit-scrollbar{overflow:visible;height:7px;width:7px}.iziModal ::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.2);background-clip:padding-box;border:solid transparent;border-width:0;min-height:28px;padding:100px 0 0;box-shadow:inset 1px 1px 0 rgba(0,0,0,.1),inset 0 -1px 0 rgba(0,0,0,.07)}.iziModal ::-webkit-scrollbar-thumb:active{background-color:rgba(0,0,0,.4)}.iziModal ::-webkit-scrollbar-button{height:0;width:0}.iziModal ::-webkit-scrollbar-track{background-clip:padding-box;border:solid transparent;border-width:0 0 0 2px}.iziModal.transitionIn .iziModal-header{-webkit-animation:iziM-slideDown .7s cubic-bezier(.7,0,.3,1);-moz-animation:iziM-slideDown .7s cubic-bezier(.7,0,.3,1);animation:iziM-slideDown .7s cubic-bezier(.7,0,.3,1)}.iziModal.transitionIn .iziModal-header .iziModal-header-icon{-webkit-animation:iziM-revealIn 1s cubic-bezier(.16,.81,.32,1) both;-moz-animation:iziM-revealIn 1s cubic-bezier(.16,.81,.32,1) both;animation:iziM-revealIn 1s cubic-bezier(.16,.81,.32,1) both}.iziModal.transitionIn .iziModal-header .iziModal-header-subtitle,.iziModal.transitionIn .iziModal-header .iziModal-header-title{-webkit-animation:iziM-slideIn 1s cubic-bezier(.16,.81,.32,1) both;-moz-animation:iziM-slideIn 1s cubic-bezier(.16,.81,.32,1) both;animation:iziM-slideIn 1s cubic-bezier(.16,.81,.32,1) both}.iziModal.transitionIn .iziModal-header .iziModal-button{-webkit-animation:iziM-revealIn 1.2s cubic-bezier(.7,0,.3,1);-moz-animation:iziM-revealIn 1.2s cubic-bezier(.7,0,.3,1);animation:iziM-revealIn 1.2s cubic-bezier(.7,0,.3,1)}.iziModal.transitionIn .iziModal-iframe,.iziModal.transitionIn .iziModal-wrap{-webkit-animation:iziM-fadeIn 1.3s;-moz-animation:iziM-fadeIn 1.3s;animation:iziM-fadeIn 1.3s}.iziModal.transitionIn .iziModal-header{-webkit-animation-delay:0ms;-moz-animation:0ms;animation-delay:0ms}.iziModal.transitionIn .iziModal-header .iziModal-header-icon,.iziModal.transitionIn .iziModal-header .iziModal-header-title{-webkit-animation-delay:.4s;-moz-animation:.4s;animation-delay:.4s}.iziModal.transitionIn .iziModal-header .iziModal-header-subtitle{-webkit-animation-delay:.5s;-moz-animation:.5s;animation-delay:.5s}.iziModal.transitionOut .iziModal-header,.iziModal.transitionOut .iziModal-header *{transition:none!important}.iziModal .fadeOut,.iziModal-navigate.fadeOut,.iziModal-overlay.fadeOut,.iziModal.fadeOut{-webkit-animation:iziM-fadeOut .5s;-moz-animation:iziM-fadeOut .5s;animation:iziM-fadeOut .5s;animation-fill-mode:forwards}.iziModal .fadeIn,.iziModal-navigate.fadeIn,.iziModal-overlay.fadeIn,.iziModal.fadeIn{-webkit-animation:iziM-fadeIn .5s;-moz-animation:iziM-fadeIn .5s;animation:iziM-fadeIn .5s}.iziModal-overlay.comingIn,.iziModal.comingIn{-webkit-animation:iziM-comingIn .5s ease;-moz-animation:iziM-comingIn .5s ease;animation:iziM-comingIn .5s ease}.iziModal-overlay.comingOut,.iziModal.comingOut{-webkit-animation:iziM-comingOut .5s cubic-bezier(.16,.81,.32,1);-moz-animation:iziM-comingOut .5s cubic-bezier(.16,.81,.32,1);animation:iziM-comingOut .5s cubic-bezier(.16,.81,.32,1);animation-fill-mode:forwards}.iziModal-overlay.bounceInDown,.iziModal.bounceInDown{-webkit-animation:iziM-bounceInDown .7s ease;animation:iziM-bounceInDown .7s ease}.iziModal-overlay.bounceOutDown,.iziModal.bounceOutDown{-webkit-animation:iziM-bounceOutDown .7s ease;animation:iziM-bounceOutDown .7s ease}.iziModal-overlay.bounceInUp,.iziModal.bounceInUp{-webkit-animation:iziM-bounceInUp .7s ease;animation:iziM-bounceInUp .7s ease}.iziModal-overlay.bounceOutUp,.iziModal.bounceOutUp{-webkit-animation:iziM-bounceOutUp .7s ease;animation:iziM-bounceOutUp .7s ease}.iziModal-overlay.bounceInLeft,.iziModal.bounceInLeft{-webkit-animation:iziM-bounceInLeft .7s ease;animation:iziM-bounceInLeft .7s ease}.iziModal-overlay.bounceOutLeft,.iziModal.bounceOutLeft{-webkit-animation:iziM-bounceOutLeft .7s ease;animation:iziM-bounceOutLeft .7s ease}.iziModal-overlay.bounceInRight,.iziModal.bounceInRight{-webkit-animation:iziM-bounceInRight .7s ease;animation:iziM-bounceInRight .7s ease}.iziModal-overlay.bounceOutRight,.iziModal.bounceOutRight{-webkit-animation:iziM-bounceOutRight .7s ease;animation:iziM-bounceOutRight .7s ease}.iziModal-overlay.fadeInDown,.iziModal.fadeInDown{-webkit-animation:iziM-fadeInDown .7s cubic-bezier(.16,.81,.32,1);animation:iziM-fadeInDown .7s cubic-bezier(.16,.81,.32,1)}.iziModal-overlay.fadeOutDown,.iziModal.fadeOutDown{-webkit-animation:iziM-fadeOutDown .5s ease;animation:iziM-fadeOutDown .5s ease}.iziModal-overlay.fadeInUp,.iziModal.fadeInUp{-webkit-animation:iziM-fadeInUp .7s cubic-bezier(.16,.81,.32,1);animation:iziM-fadeInUp .7s cubic-bezier(.16,.81,.32,1)}.iziModal-overlay.fadeOutUp,.iziModal.fadeOutUp{-webkit-animation:iziM-fadeOutUp .5s ease;animation:iziM-fadeOutUp .5s ease}.iziModal-overlay.fadeInLeft,.iziModal.fadeInLeft{-webkit-animation:iziM-fadeInLeft .7s cubic-bezier(.16,.81,.32,1);animation:iziM-fadeInLeft .7s cubic-bezier(.16,.81,.32,1)}.iziModal-overlay.fadeOutLeft,.iziModal.fadeOutLeft{-webkit-animation:iziM-fadeOutLeft .5s ease;animation:iziM-fadeOutLeft .5s ease}.iziModal-overlay.fadeInRight,.iziModal.fadeInRight{-webkit-animation:iziM-fadeInRight .7s cubic-bezier(.16,.81,.32,1);animation:iziM-fadeInRight .7s cubic-bezier(.16,.81,.32,1)}.iziModal-overlay.fadeOutRight,.iziModal.fadeOutRight{-webkit-animation:iziM-fadeOutRight .5s ease;animation:iziM-fadeOutRight .5s ease}.iziModal-overlay.flipInX,.iziModal.flipInX{-webkit-animation:iziM-flipInX .7s ease;animation:iziM-flipInX .7s ease}.iziModal-overlay.flipOutX,.iziModal.flipOutX{-webkit-animation:iziM-flipOutX .7s ease;animation:iziM-flipOutX .7s ease}@-webkit-keyframes iziM-comingIn{0%{opacity:0;transform:scale(.9) translateY(-20px) perspective(600px) rotateX(10deg)}100%{opacity:1;transform:scale(1) translateY(0) perspective(600px) rotateX(0)}}@-moz-keyframes iziM-comingIn{0%{opacity:0;transform:scale(.9) translateY(-20px) perspective(600px) rotateX(10deg)}100%{opacity:1;transform:scale(1) translateY(0) perspective(600px) rotateX(0)}}@keyframes iziM-comingIn{0%{opacity:0;transform:scale(.9) translateY(-20px) perspective(600px) rotateX(10deg)}100%{opacity:1;transform:scale(1) translateY(0) perspective(600px) rotateX(0)}}@-webkit-keyframes iziM-comingOut{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.9)}}@-moz-keyframes iziM-comingOut{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.9)}}@keyframes iziM-comingOut{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.9)}}@-webkit-keyframes iziM-fadeOut{0%{opacity:1}100%{opacity:0}}@-moz-keyframes iziM-fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes iziM-fadeOut{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes iziM-fadeIn{0%{opacity:0}100%{opacity:1}}@-moz-keyframes iziM-fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes iziM-fadeIn{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes iziM-slideIn{0%{opacity:0;-webkit-transform:translateX(50px)}100%{opacity:1;-webkit-transform:translateX(0)}}@-moz-keyframes iziM-slideIn{0%{opacity:0;-moz-transform:translateX(50px)}100%{opacity:1;-moz-transform:translateX(0)}}@keyframes iziM-slideIn{0%{opacity:0;transform:translateX(50px)}100%{opacity:1;transform:translateX(0)}}@-webkit-keyframes iziM-slideDown{0%{opacity:0;-webkit-transform:scale(1,0) translateY(-40px);-webkit-transform-origin:center top}}@-moz-keyframes iziM-slideDown{0%{opacity:0;-moz-transform:scale(1,0) translateY(-40px);-moz-transform-origin:center top}}@keyframes iziM-slideDown{0%{opacity:0;transform:scale(1,0) translateY(-40px);transform-origin:center top}}@-webkit-keyframes iziM-revealIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,1)}}@-moz-keyframes iziM-revealIn{0%{opacity:0;-moz-transform:scale3d(.3,.3,1)}}@keyframes iziM-revealIn{0%{opacity:0;transform:scale3d(.3,.3,1)}}@-webkit-keyframes iziM-bounceInDown{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-1000px,0);transform:translate3d(0,-1000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes iziM-bounceInDown{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-1000px,0);transform:translate3d(0,-1000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,1000px,0);transform:translate3d(0,1000px,0)}}@keyframes iziM-bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,1000px,0);transform:translate3d(0,1000px,0)}}@-webkit-keyframes iziM-bounceInUp{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}from{opacity:0;-webkit-transform:translate3d(0,1000px,0);transform:translate3d(0,1000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes iziM-bounceInUp{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}from{opacity:0;-webkit-transform:translate3d(0,1000px,0);transform:translate3d(0,1000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes iziM-bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes iziM-bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-1000px,0);transform:translate3d(0,-1000px,0)}}@-webkit-keyframes iziM-bounceInLeft{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-1000px,0,0);transform:translate3d(-1000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes iziM-bounceInLeft{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-1000px,0,0);transform:translate3d(-1000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-bounceOutLeft{20%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}40%,45%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes iziM-bounceOutLeft{20%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}40%,45%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-1000px,0,0);transform:translate3d(-1000px,0,0)}}@-webkit-keyframes iziM-bounceInRight{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}from{opacity:0;-webkit-transform:translate3d(1000px,0,0);transform:translate3d(1000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes iziM-bounceInRight{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}from{opacity:0;-webkit-transform:translate3d(1000px,0,0);transform:translate3d(1000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes iziM-bounceOutRight{20%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}40%,45%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(1000px,0,0);transform:translate3d(1000px,0,0)}}@keyframes iziM-bounceOutRight{20%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}40%,45%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(1000px,0,0);transform:translate3d(1000px,0,0)}}@-webkit-keyframes iziM-fadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-100px,0);transform:translate3d(0,-100px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziM-fadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-100px,0);transform:translate3d(0,-100px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-fadeOutDown{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100px,0);transform:translate3d(0,100px,0)}}@keyframes iziM-fadeOutDown{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100px,0);transform:translate3d(0,100px,0)}}@-webkit-keyframes iziM-fadeInUp{from{opacity:0;-webkit-transform:translate3d(0,100px,0);transform:translate3d(0,100px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziM-fadeInUp{from{opacity:0;-webkit-transform:translate3d(0,100px,0);transform:translate3d(0,100px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-fadeOutUp{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100px,0);transform:translate3d(0,-100px,0)}}@keyframes iziM-fadeOutUp{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100px,0);transform:translate3d(0,-100px,0)}}@-webkit-keyframes iziM-fadeInLeft{from{opacity:0;-webkit-transform:translate3d(-200px,0,0);transform:translate3d(-200px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziM-fadeInLeft{from{opacity:0;-webkit-transform:translate3d(-200px,0,0);transform:translate3d(-200px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-fadeOutLeft{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(-200px,0,0);transform:translate3d(-200px,0,0)}}@keyframes iziM-fadeOutLeft{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(-200px,0,0);transform:translate3d(-200px,0,0)}}@-webkit-keyframes iziM-fadeInRight{from{opacity:0;-webkit-transform:translate3d(200px,0,0);transform:translate3d(200px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziM-fadeInRight{from{opacity:0;-webkit-transform:translate3d(200px,0,0);transform:translate3d(200px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-fadeOutRight{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(200px,0,0);transform:translate3d(200px,0,0)}}@keyframes iziM-fadeOutRight{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(200px,0,0);transform:translate3d(200px,0,0)}}@-webkit-keyframes iziM-flipInX{0%{-webkit-transform:perspective(400px) rotateX(60deg);opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg)}100%{-webkit-transform:perspective(400px) rotateX(0);opacity:1}}@keyframes iziM-flipInX{0%{transform:perspective(400px) rotateX(60deg);opacity:0}40%{transform:perspective(400px) rotateX(-10deg)}70%{transform:perspective(400px) rotateX(10deg)}100%{transform:perspective(400px) rotateX(0);opacity:1}}@-webkit-keyframes iziM-flipOutX{from{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(1,0,0,40deg);transform:perspective(400px) rotate3d(1,0,0,40deg);opacity:0}}@keyframes iziM-flipOutX{from{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(1,0,0,40deg);transform:perspective(400px) rotate3d(1,0,0,40deg);opacity:0}}
\ No newline at end of file
diff --git a/assets/stylesheets/vendor/sweetalert2.min.css b/assets/stylesheets/vendor/sweetalert2.min.css
new file mode 100644
index 00000000..9c582b48
--- /dev/null
+++ b/assets/stylesheets/vendor/sweetalert2.min.css
@@ -0,0 +1 @@
+body.swal2-shown{overflow-y:hidden}body.swal2-iosfix{position:fixed;left:0;right:0}.swal2-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:fixed;top:0;left:0;bottom:0;right:0;padding:10px;background-color:transparent;z-index:1060}.swal2-container.swal2-top{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.swal2-container.swal2-top-left{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.swal2-container.swal2-top-right{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.swal2-container.swal2-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.swal2-container.swal2-center-left{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.swal2-container.swal2-center-right{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.swal2-container.swal2-bottom{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.swal2-container.swal2-bottom-left{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.swal2-container.swal2-bottom-right{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-line-pack:center;align-content:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.swal2-container.swal2-grow-column{-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.swal2-container.swal2-grow-column.swal2-bottom,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-top{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.swal2-container.swal2-grow-column.swal2-bottom-left,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-top-left{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.swal2-container.swal2-grow-column.swal2-bottom-right,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-top-right{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-line-pack:center;align-content:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.swal2-container:not(.swal2-top):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-left):not(.swal2-bottom-right)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-container .swal2-modal{margin:0!important}}.swal2-container.swal2-fade{-webkit-transition:background-color .1s;transition:background-color .1s}.swal2-container.swal2-shown{background-color:rgba(0,0,0,.4)}.swal2-modal{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;background-color:#fff;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;border-radius:5px;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow-x:hidden;overflow-y:auto;display:none;position:relative;max-width:100%}.swal2-modal:focus{outline:0}.swal2-modal.swal2-loading{overflow-y:hidden}.swal2-modal .swal2-title{color:#595959;font-size:30px;text-align:center;font-weight:600;text-transform:none;position:relative;margin:0 0 .4em;padding:0;display:block;word-wrap:break-word}.swal2-modal .swal2-buttonswrapper{margin-top:15px}.swal2-modal .swal2-buttonswrapper:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4;cursor:no-drop}.swal2-modal .swal2-buttonswrapper.swal2-loading .swal2-styled.swal2-confirm{-webkit-box-sizing:border-box;box-sizing:border-box;border:4px solid transparent;border-color:transparent;width:40px;height:40px;padding:0;margin:7.5px;vertical-align:top;background-color:transparent!important;color:transparent;cursor:default;border-radius:100%;-webkit-animation:rotate-loading 1.5s linear 0s infinite normal;animation:rotate-loading 1.5s linear 0s infinite normal;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-modal .swal2-buttonswrapper.swal2-loading .swal2-styled.swal2-cancel{margin-left:30px;margin-right:30px}.swal2-modal .swal2-buttonswrapper.swal2-loading :not(.swal2-styled).swal2-confirm::after{display:inline-block;content:'';margin-left:5px;vertical-align:-1px;height:15px;width:15px;border:3px solid #999;-webkit-box-shadow:1px 1px 1px #fff;box-shadow:1px 1px 1px #fff;border-right-color:transparent;border-radius:50%;-webkit-animation:rotate-loading 1.5s linear 0s infinite normal;animation:rotate-loading 1.5s linear 0s infinite normal}.swal2-modal .swal2-styled{border:0;border-radius:3px;-webkit-box-shadow:none;box-shadow:none;color:#fff;cursor:pointer;font-size:17px;font-weight:500;margin:15px 5px 0;padding:10px 32px}.swal2-modal .swal2-styled:focus{outline:0;-webkit-box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(50,100,150,.4);box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(50,100,150,.4)}.swal2-modal .swal2-image{margin:20px auto;max-width:100%}.swal2-modal .swal2-close{background:0 0;border:0;margin:0;padding:0;width:38px;height:40px;font-size:36px;line-height:40px;font-family:serif;position:absolute;top:5px;right:8px;cursor:pointer;color:#ccc;-webkit-transition:color .1s ease;transition:color .1s ease}.swal2-modal .swal2-close:hover{color:#d55}.swal2-modal>.swal2-checkbox,.swal2-modal>.swal2-file,.swal2-modal>.swal2-input,.swal2-modal>.swal2-radio,.swal2-modal>.swal2-select,.swal2-modal>.swal2-textarea{display:none}.swal2-modal .swal2-content{font-size:18px;text-align:center;font-weight:300;position:relative;float:none;margin:0;padding:0;line-height:normal;color:#545454;word-wrap:break-word}.swal2-modal .swal2-checkbox,.swal2-modal .swal2-file,.swal2-modal .swal2-input,.swal2-modal .swal2-radio,.swal2-modal .swal2-select,.swal2-modal .swal2-textarea{margin:20px auto}.swal2-modal .swal2-file,.swal2-modal .swal2-input,.swal2-modal .swal2-textarea{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:18px;border-radius:3px;border:1px solid #d9d9d9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.06);box-shadow:inset 0 1px 1px rgba(0,0,0,.06);-webkit-transition:border-color .3s,-webkit-box-shadow .3s;transition:border-color .3s,-webkit-box-shadow .3s;transition:border-color .3s,box-shadow .3s;transition:border-color .3s,box-shadow .3s,-webkit-box-shadow .3s}.swal2-modal .swal2-file.swal2-inputerror,.swal2-modal .swal2-input.swal2-inputerror,.swal2-modal .swal2-textarea.swal2-inputerror{border-color:#f27474!important;-webkit-box-shadow:0 0 2px #f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-modal .swal2-file:focus,.swal2-modal .swal2-input:focus,.swal2-modal .swal2-textarea:focus{outline:0;border:1px solid #b4dbed;-webkit-box-shadow:0 0 3px #c4e6f5;box-shadow:0 0 3px #c4e6f5}.swal2-modal .swal2-file::-webkit-input-placeholder,.swal2-modal .swal2-input::-webkit-input-placeholder,.swal2-modal .swal2-textarea::-webkit-input-placeholder{color:#ccc}.swal2-modal .swal2-file:-ms-input-placeholder,.swal2-modal .swal2-input:-ms-input-placeholder,.swal2-modal .swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-modal .swal2-file::-ms-input-placeholder,.swal2-modal .swal2-input::-ms-input-placeholder,.swal2-modal .swal2-textarea::-ms-input-placeholder{color:#ccc}.swal2-modal .swal2-file::placeholder,.swal2-modal .swal2-input::placeholder,.swal2-modal .swal2-textarea::placeholder{color:#ccc}.swal2-modal .swal2-range input{float:left;width:80%}.swal2-modal .swal2-range output{float:right;width:20%;font-size:20px;font-weight:600;text-align:center}.swal2-modal .swal2-range input,.swal2-modal .swal2-range output{height:43px;line-height:43px;vertical-align:middle;margin:20px auto;padding:0}.swal2-modal .swal2-input{height:43px;padding:0 12px}.swal2-modal .swal2-input[type=number]{max-width:150px}.swal2-modal .swal2-file{font-size:20px}.swal2-modal .swal2-textarea{height:108px;padding:12px}.swal2-modal .swal2-select{color:#545454;font-size:inherit;padding:5px 10px;min-width:40%;max-width:100%}.swal2-modal .swal2-radio{border:0}.swal2-modal .swal2-radio label:not(:first-child){margin-left:20px}.swal2-modal .swal2-radio input,.swal2-modal .swal2-radio span{vertical-align:middle}.swal2-modal .swal2-radio input{margin:0 3px 0 0}.swal2-modal .swal2-checkbox{color:#545454}.swal2-modal .swal2-checkbox input,.swal2-modal .swal2-checkbox span{vertical-align:middle}.swal2-modal .swal2-validationerror{background-color:#f0f0f0;margin:0 -20px;overflow:hidden;padding:10px;color:gray;font-size:16px;font-weight:300;display:none}.swal2-modal .swal2-validationerror::before{content:'!';display:inline-block;width:24px;height:24px;border-radius:50%;background-color:#ea7d7d;color:#fff;line-height:24px;text-align:center;margin-right:10px}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-range input{width:100%!important}.swal2-range output{display:none}}.swal2-icon{width:80px;height:80px;border:4px solid transparent;border-radius:50%;margin:20px auto 30px;padding:0;position:relative;-webkit-box-sizing:content-box;box-sizing:content-box;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon.swal2-error{border-color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;display:block}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{position:absolute;height:5px;width:47px;background-color:#f27474;display:block;top:37px;border-radius:2px}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{-webkit-transform:rotate(45deg);transform:rotate(45deg);left:17px}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);right:16px}.swal2-icon.swal2-warning{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:#f8bb86;border-color:#facea8;font-size:60px;line-height:80px;text-align:center}.swal2-icon.swal2-info{font-family:'Open Sans',sans-serif;color:#3fc3ee;border-color:#9de0f6;font-size:60px;line-height:80px;text-align:center}.swal2-icon.swal2-question{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:#87adbd;border-color:#c9dae1;font-size:60px;line-height:80px;text-align:center}.swal2-icon.swal2-success{border-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{border-radius:50%;position:absolute;width:60px;height:120px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{border-radius:120px 0 0 120px;top:-7px;left:-33px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:60px 60px;transform-origin:60px 60px}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{border-radius:0 120px 120px 0;top:-11px;left:30px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:0 60px;transform-origin:0 60px}.swal2-icon.swal2-success .swal2-success-ring{width:80px;height:80px;border:4px solid rgba(165,220,134,.2);border-radius:50%;-webkit-box-sizing:content-box;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2}.swal2-icon.swal2-success .swal2-success-fix{width:7px;height:90px;position:absolute;left:28px;top:8px;z-index:1;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{height:5px;background-color:#a5dc86;display:block;border-radius:2px;position:absolute;z-index:2}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{width:25px;left:14px;top:46px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{width:47px;right:8px;top:38px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.swal2-progresssteps{font-weight:600;margin:0 0 20px;padding:0}.swal2-progresssteps li{display:inline-block;position:relative}.swal2-progresssteps .swal2-progresscircle{background:#3085d6;border-radius:2em;color:#fff;height:2em;line-height:2em;text-align:center;width:2em;z-index:20}.swal2-progresssteps .swal2-progresscircle:first-child{margin-left:0}.swal2-progresssteps .swal2-progresscircle:last-child{margin-right:0}.swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep{background:#3085d6}.swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep~.swal2-progresscircle{background:#add8e6}.swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep~.swal2-progressline{background:#add8e6}.swal2-progresssteps .swal2-progressline{background:#3085d6;height:.4em;margin:0 -1px;z-index:10}[class^=swal2]{-webkit-tap-highlight-color:transparent}@-webkit-keyframes showSweetAlert{0%{-webkit-transform:scale(.7);transform:scale(.7)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes showSweetAlert{0%{-webkit-transform:scale(.7);transform:scale(.7)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes hideSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}100%{-webkit-transform:scale(.5);transform:scale(.5);opacity:0}}@keyframes hideSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}100%{-webkit-transform:scale(.5);transform:scale(.5);opacity:0}}.swal2-show{-webkit-animation:showSweetAlert .3s;animation:showSweetAlert .3s}.swal2-show.swal2-noanimation{-webkit-animation:none;animation:none}.swal2-hide{-webkit-animation:hideSweetAlert .15s forwards;animation:hideSweetAlert .15s forwards}.swal2-hide.swal2-noanimation{-webkit-animation:none;animation:none}@-webkit-keyframes animate-success-tip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@keyframes animate-success-tip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@-webkit-keyframes animate-success-long{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}@keyframes animate-success-long{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}@-webkit-keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}100%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}100%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}.swal2-animate-success-line-tip{-webkit-animation:animate-success-tip .75s;animation:animate-success-tip .75s}.swal2-animate-success-line-long{-webkit-animation:animate-success-long .75s;animation:animate-success-long .75s}.swal2-success.swal2-animate-success-icon .swal2-success-circular-line-right{-webkit-animation:rotatePlaceholder 4.25s ease-in;animation:rotatePlaceholder 4.25s ease-in}@-webkit-keyframes animate-error-icon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}100%{-webkit-transform:rotateX(0);transform:rotateX(0);opacity:1}}@keyframes animate-error-icon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}100%{-webkit-transform:rotateX(0);transform:rotateX(0);opacity:1}}.swal2-animate-error-icon{-webkit-animation:animate-error-icon .5s;animation:animate-error-icon .5s}@-webkit-keyframes animate-x-mark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}100%{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}@keyframes animate-x-mark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}100%{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}.swal2-animate-x-mark{-webkit-animation:animate-x-mark .5s;animation:animate-x-mark .5s}@-webkit-keyframes rotate-loading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate-loading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}
\ No newline at end of file
diff --git a/composer.json b/composer.json
index a3ae6f35..3b404c60 100644
--- a/composer.json
+++ b/composer.json
@@ -2,7 +2,7 @@
"name": "pagarme/woocommerce-pagarme-payments",
"description": "Pagar.me module for Woocommerce",
"type": "wordpress-plugin",
- "version": "2.1.2",
+ "version": "3.0.0",
"license": "GPL",
"autoload": {
"psr-4": {
diff --git a/constants.php b/constants.php
index 75695f52..366a9970 100644
--- a/constants.php
+++ b/constants.php
@@ -12,8 +12,10 @@ function wc_pagarme_define($name, $value)
wc_pagarme_define('WCMP_SLUG', 'woo-pagarme-payments');
wc_pagarme_define('WCMP_PREFIX', 'pagarme');
-wc_pagarme_define('WCMP_VERSION', '2.1.2');
+wc_pagarme_define('WCMP_VERSION', '3.0.0');
wc_pagarme_define('WCMP_ROOT_PATH', dirname(__FILE__) . '/');
wc_pagarme_define('WCMP_ROOT_SRC', WCMP_ROOT_PATH . 'src/');
wc_pagarme_define('WCMP_ROOT_FILE', WCMP_ROOT_PATH . WCMP_SLUG . '.php');
wc_pagarme_define('WCMP_OPTION_ACTIVATE', 'wcmp_official_activate');
+wc_pagarme_define('WCMP__FILE__', __FILE__ );
+wc_pagarme_define('WCMP_PLUGIN_BASE', plugin_basename( WCMP_ROOT_FILE ) );
diff --git a/languages/woo-pagarme-payments-pt_BR.mo b/languages/woo-pagarme-payments-pt_BR.mo
index 24c2a0c8..e47a83c1 100644
Binary files a/languages/woo-pagarme-payments-pt_BR.mo and b/languages/woo-pagarme-payments-pt_BR.mo differ
diff --git a/languages/woo-pagarme-payments-pt_BR.po b/languages/woo-pagarme-payments-pt_BR.po
index 6358ccd6..59c96e9c 100644
--- a/languages/woo-pagarme-payments-pt_BR.po
+++ b/languages/woo-pagarme-payments-pt_BR.po
@@ -5,7 +5,7 @@ msgstr ""
"Project-Id-Version: WooCommerce Pagar.me Payments 1.0\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/woo-pagarme-payments\n"
"POT-Creation-Date: 2018-06-22 13:58-0300\n"
-"PO-Revision-Date: 2022-10-19 23:16-0300\n"
+"PO-Revision-Date: 2023-05-26 11:06-0300\n"
"Last-Translator: Pagar.me\n"
"Language-Team: \n"
"Language: pt_BR\n"
@@ -13,7 +13,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Poedit 3.1.1\n"
+"X-Generator: Poedit 3.3.1\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c;_nc:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
"X-Poedit-Basepath: ..\n"
@@ -145,6 +145,12 @@ msgstr "Chave pública Produção"
msgid "Boleto Bancário"
msgstr "Boleto Bancário"
+msgid "Billet Bank"
+msgstr "Boleto Bancário"
+
+msgid "Billet"
+msgstr "Boleto"
+
#: src/Controller/Gateways.php:253
msgid "Enables Boleto Bancário"
msgstr "Ativar Boleto Bancário"
@@ -528,17 +534,17 @@ msgstr "Quantidade de parcelas"
msgid "Value (Boleto)"
msgstr "Valor (Boleto)"
-#: templates/checkout/choose-credit-card.php:32
-msgid "Credit cards save"
-msgstr "Cartões de crédito salvos"
+#: templates/checkout/form/card/wallet.phtml:22
+msgid "Saved cards"
+msgstr "Cartões salvos"
-#: templates/checkout/choose-credit-card.php:39
-msgid "Saved credit card"
-msgstr "Escolha um cartão"
+#: templates/checkout/form/card/wallet.phtml:25
+msgid "Choose your saved card"
+msgstr "Escolha seu cartão salvo"
#: templates/checkout/common-card-item.php:53
-msgid "Expiration Date (MM/YY)"
-msgstr "Validade (MM/AA)"
+msgid "Expiration Date"
+msgstr "Validade"
#: templates/checkout/common-card-item.php:61
msgid "MM / YY"
@@ -551,6 +557,18 @@ msgstr "Código do cartão"
msgid "Card Holder Document Number"
msgstr "Documento do titular do cartão"
+msgid "Bank "
+msgstr "Banco "
+
+msgid "Integration pending"
+msgstr "Integração pendente"
+
+msgid "Invalid data for payment method: "
+msgstr "Dados inválidos para a forma de pagamento: "
+
+msgid "Invalid payment method: "
+msgstr "Forma de pagamento inválido: "
+
#: templates/checkout/field-enable-multicustomers.php:31
msgid "Fill other buyer data"
msgstr "Preencher com dados de outro comprador"
@@ -711,22 +729,22 @@ msgstr "Habilita o gateway de pagamento Pagar.me para o WooCommerce"
#. Author URI of the plugin/theme
msgid "https://pagarme.me"
-msgstr ""
+msgstr "https://pagarme.me"
msgid "Copy Code"
msgstr "Copiar Código"
-msgid "1. Point your phone at this screen to capture the code."
-msgstr "1. Aponte seu celular para essa tela para capturar o código."
+msgid "1. Point your phone at this screen to capture the code."
+msgstr "1. Aponte seu celular para essa tela para capturar o código."
-msgid "2. Open your payments app."
-msgstr "2. Abra seu aplicativo de pagamentos."
+msgid "2. Open your payments app."
+msgstr "2. Abra seu aplicativo de pagamentos."
-msgid "3. Confirm the information and complete the payment on the app."
-msgstr "3. Confirme os dados e finalize o pagamento pelo aplicativo."
+msgid "3. Confirm the information and complete the payment on the app."
+msgstr "3. Confirme os dados e finalize o pagamento pelo aplicativo."
-msgid "4. We will send you a purchase confirmation."
-msgstr "4. Enviaremos uma confirmação de compra pra você."
+msgid "4. We will send you a purchase confirmation."
+msgstr "4. Enviaremos uma confirmação de compra pra você."
msgid "You can also complete the payment by copying and pasting the code into the app."
msgstr "Você também pode finalizar o pagamento copiando e colando o código em seu aplicativo."
@@ -744,7 +762,7 @@ msgid "Additional information"
msgstr "Informações adicionais"
msgid "Set of key and value used to add information to the generated pix. This will be visible to the buyer during the payment process."
-msgstr "Conjunto de chave e valor para adicionar informações ao pix gerado. Isso ficará visível para o comprador durante o pagamento"
+msgstr "Conjunto de chave e valor para adicionar informações ao pix gerado. Isso ficará visível para o comprador durante o pagamento."
msgid "Additional Information Name"
msgstr "Nome da informação adicional"
@@ -857,14 +875,17 @@ msgstr "Integrar com Pagar.me"
msgid "View Integration"
msgstr "Visualizar integração"
-msgid "Disintegrate"
-msgstr "Desintegrar"
+#: templates/adminhtml/system/config/form/field/hub/integration.phtml:23
+msgid "Have you removed your integration on Pagar.me Hub, but it shows active? Click here to remove your keys."
+msgstr "Removeu sua integração no Hub Pagar.me, mas ainda aparece ativa? Clique aqui para finalizar removendo suas chaves."
+#: templates/adminhtml/system/config/form/field/hub/integration.phtml:28
msgid "Disintegrate?"
msgstr "Desintegrar?"
-msgid "This removes the integration keys on your platform enabling the opportunity to effect a new integration. However, its integration still remains in our dash and it is necessary to remove the integration manually."
-msgstr "Isso remove as chaves de integração em sua plataforma, permitindo a oportunidade de efetuar uma nova integração. No entanto, sua integração ainda permanece em nosso painel sendo necessário remove-la manualmente."
+#: templates/adminhtml/system/config/form/field/hub/integration.phtml:29
+msgid "Are you shure you wish to delete the keys? This action removes the integration from your store, but first you must access Pagar.me Hub and click on Delete."
+msgstr "Tem certeza que deseja excluir as chaves? Essa ação remove a integração da sua loja, mas primeiro você deve acessar o Hub Pagar.me e clicar em Excluir."
msgid "Yes, remove keys!"
msgstr "Sim, remova as chaves!"
@@ -873,7 +894,7 @@ msgid "Disintegration Complete"
msgstr "Desintegração Concluída"
msgid "Integration keys successfully removed. Reload the page."
-msgstr "Chaves de integração removidas com sucesso. Recarregue a pagina"
+msgstr "Chaves de integração removidas com sucesso. Recarregue a página."
msgid "Disintegration Error"
msgstr "Erro na Desintegração"
@@ -899,6 +920,78 @@ msgstr "Importante! Esta loja está em fase de testes. Os pedidos realizados nes
msgid "Important! This store is linked to the Pagar.me test environment. This environment is intended for integration validation and does not generate real financial transactions."
msgstr "Importante! Esta loja está vinculada ao ambiente de testes da Pagar.me. Este ambiente é destinado a validação de integração e não gera operações financeiras reais."
+msgid "Yes"
+msgstr "Sim"
+
+msgid "No"
+msgstr "Não"
+
+msgid "Hub integration"
+msgstr "Integração de HUB"
+
+msgid "Card Wallet"
+msgstr "Carteira"
+
+msgid "Card wallet"
+msgstr "Carteira"
+
+msgid "Cancel"
+msgstr "Cancelar"
+
+msgid "Card"
+msgstr "Cartão"
+
+msgid "CREDIT CARD"
+msgstr "CARTÃO DE CRÉDITO"
+
+msgid "CreditCard"
+msgstr "Cartão de crédito"
+
+msgid "Credit Card"
+msgstr "Cartão de Crédito"
+
+msgid "2 Cards"
+msgstr "2 Cartões"
+
+msgid "Amount"
+msgstr "Total"
+
+msgid "Billet And Card"
+msgstr "Boleto e Cartão"
+
+msgid "Pagar.me - Capture/Cancellation"
+msgstr "Pagar.me - Captura/Cancelamento"
+
+msgid "Last Four Digits"
+msgstr "Últimos quatro dígitos"
+
+msgid "Holder Name"
+msgstr "Titular"
+
+msgid "No records found."
+msgstr "Nenhum registro foi encontrado."
+
+msgid "Partially Reversed"
+msgstr "Parcialmente Revertido"
+
+msgid "Partially Canceled"
+msgstr "Parcialmente Cancelado"
+
+msgid "Partially Captured"
+msgstr "Capturado Parcialmente"
+
+msgid "Total Amount"
+msgstr "Total"
+
+msgid "Pagar.me - Additional Information"
+msgstr "Pagar.me - Informações Adicionais"
+
+msgid "This new release contains crucial architecture and functionality updates. We highly recommend you %1$sbackup your site before upgrading%2$s. It is highly recommended to perform and validate the update first in the staging environment before performing the update in production."
+msgstr "Esta nova versão contém atualizações cruciais de arquitetura e funcionalidade. Recomendamos que %1$sfaça backup de seu site antes de atualizar%2$s. É altamente recomendável executar e validar a atualização primeiro no ambiente de teste antes de executar a atualização em produção."
+
+msgid "We recommend backup before upgrading!"
+msgstr "Recomendamos fazer backup antes de atualizar!"
+
#~ msgid "If you have not yet received the billet, please click the button below to print."
#~ msgstr "Se você ainda não efetuou o pagamento, por favor clique no botão abaixo para pagar."
diff --git a/languages/woo-pagarme-payments.pot b/languages/woo-pagarme-payments.pot
index cf3e6f5e..cc4bf848 100644
--- a/languages/woo-pagarme-payments.pot
+++ b/languages/woo-pagarme-payments.pot
@@ -531,8 +531,8 @@ msgid "Saved credit card"
msgstr "Escolha um cartão"
#: templates/checkout/common-card-item.php:53
-msgid "Expiration Date (MM/YY)"
-msgstr "Validade (MM/AA)"
+msgid "Expiration Date"
+msgstr "Validade"
#: templates/checkout/common-card-item.php:61
msgid "MM / YY"
diff --git a/package.json b/package.json
index 5a165b28..19a320d9 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "woo-pagarme-payments",
- "version": "2.1.2",
+ "version": "3.0.0",
"description": "Pagar.me module for Woocommerce",
"main": "woo-pagarme-payments.php",
"dependencies": {},
diff --git a/src/Block/AbstractBlock.php b/src/Block/AbstractBlock.php
new file mode 100644
index 00000000..7f565980
--- /dev/null
+++ b/src/Block/AbstractBlock.php
@@ -0,0 +1,116 @@
+jsonSerialize = $jsonSerialize ?? new Json;
+ parent::__construct($jsonSerialize, $data);
+ $this->enqueue_scripts();
+ }
+
+ /**
+ * @return string
+ */
+ protected function getTemplate()
+ {
+ return $this->_template;
+ }
+
+ /**
+ * @param string $template
+ * @return $this
+ */
+ protected function setTemplate(string $template)
+ {
+ $this->_template = $template;
+ return $this;
+ }
+
+ /**
+ * Produce and return block's html output
+ * @return string
+ */
+ public function toHtml()
+ {
+ return $this->_toHtml();
+ }
+
+ /**
+ * Override this method in descendants to produce html
+ * @return string
+ */
+ protected function _toHtml()
+ {
+ return '';
+ }
+
+ public function enqueue_scripts($scripts = null)
+ {
+ if (!$scripts) {
+ $scripts = $this->scripts;
+ }
+ if (is_null($scripts)) {
+ return;
+ }
+ if (!is_array($scripts)) {
+ $scripts = [$scripts];
+ }
+ foreach ($scripts as $script) {
+ $fileName = explode('/', $script);
+ $id = "pagarme_scripts_" . end($fileName);
+ wp_enqueue_script(
+ $id,
+ $this->getScriptUrl($script),
+ array('jquery', 'jquery.mask'),
+ $this->getScriptVer($script), true
+ );
+ }
+ }
+
+ public function getScriptUrl($jsFileName)
+ {
+ return Core::plugins_url('assets/javascripts/' . $this->areaCode . '/' . $jsFileName . '.js');
+ }
+
+ public function getScriptVer($jsFileName)
+ {
+ return Core::filemtime('assets/javascripts/' . $this->areaCode . '/' . $jsFileName . '.js');
+ }
+}
diff --git a/src/Block/Account/Wallet.php b/src/Block/Account/Wallet.php
new file mode 100644
index 00000000..fb3e9899
--- /dev/null
+++ b/src/Block/Account/Wallet.php
@@ -0,0 +1,87 @@
+walletCards = $this->getCards();
+ parent::__construct();
+ $this->addDataToJs();
+ }
+
+ public function getCards()
+ {
+ $customer = new Customer(get_current_user_id());
+ return $customer->cards;
+ }
+
+ private function addDataToJs()
+ {
+ wp_localize_script(
+ 'pagarme_scripts_wallet',
+ 'apiRoute',
+ $this->getApiRoute()
+ );
+ wp_localize_script(
+ 'pagarme_scripts_wallet',
+ 'dataSwal',
+ $this->getSwalData()
+ );
+ }
+
+ private function getApiRoute()
+ {
+ return get_home_url(null, '/wc-api/' . Account::WALLET_ENDPOINT);
+ }
+
+ private function getSwalData()
+ {
+ $swalData = [
+ 'title' => __('Waiting...', 'woo-pagarme-payments'),
+ 'text' => __('We are processing your request.', 'woo-pagarme-payments'),
+ 'confirm_title' => __('Are you sure?', 'woo-pagarme-payments'),
+ 'confirm_text' => __('You won\'t be able to revert this!', 'woo-pagarme-payments'),
+ 'confirm_button' => __('Yes, delete it!', 'woo-pagarme-payments'),
+ 'cancel_button' => __('No, cancel!', 'woo-pagarme-payments'),
+ 'confirm_color' => '#3085d6',
+ 'cancel_color' => '#d33',
+ ];
+ return $swalData;
+ }
+}
diff --git a/src/Block/Adminhtml/Sales/Order.php b/src/Block/Adminhtml/Sales/Order.php
new file mode 100644
index 00000000..7a11504a
--- /dev/null
+++ b/src/Block/Adminhtml/Sales/Order.php
@@ -0,0 +1,59 @@
+metaBoxes = $metaBoxes ?? new MetaBoxes;
+ }
+
+ /**
+ * @return array
+ */
+ public function getMetaBoxes(): array
+ {
+ return $this->metaBoxes->getMetaBoxes();
+ }
+
+
+}
diff --git a/src/Block/Adminhtml/Sales/Order/AbstractMetaBox.php b/src/Block/Adminhtml/Sales/Order/AbstractMetaBox.php
new file mode 100644
index 00000000..6d2eda1c
--- /dev/null
+++ b/src/Block/Adminhtml/Sales/Order/AbstractMetaBox.php
@@ -0,0 +1,88 @@
+title, 'woo-pagarme-payments');
+ }
+
+ /**
+ * @return string
+ */
+ public function getCode()
+ {
+ return 'woo-pagarme-' . $this->code;
+ }
+
+ /** return int */
+ public function getSortOrder()
+ {
+ return $this->sortOrder;
+ }
+
+ /**
+ * @param bool $include
+ * @return $this
+ */
+ public function setIncludeContainer(bool $include = true)
+ {
+ $this->container = $include;
+ return $this;
+ }
+
+ /**
+ * @return bool
+ */
+ public function getContainer()
+ {
+ return $this->container;
+ }
+
+ /**
+ * @param string $content
+ * @param array $element
+ * @return string
+ */
+ public function formatElement(string $content, array $element)
+ {
+ if (!$this->container) {
+ $content = '';
+ }
+ return wp_kses($content, $element);
+ }
+}
diff --git a/src/Block/Adminhtml/Sales/Order/MetaBox/AdditionalInformation.php b/src/Block/Adminhtml/Sales/Order/MetaBox/AdditionalInformation.php
new file mode 100644
index 00000000..03a27ae0
--- /dev/null
+++ b/src/Block/Adminhtml/Sales/Order/MetaBox/AdditionalInformation.php
@@ -0,0 +1,100 @@
+order = $order ?? new Order($this->getOrderId());
+ } catch (\Exception $e) {}
+ $this->charge = $charge ?? new \Woocommerce\Pagarme\Model\Charge;
+ }
+
+ /**
+ * @return Order
+ */
+ public function getOrder()
+ {
+ return $this->order;
+ }
+
+ /**
+ * @return mixed|null
+ */
+ private function getOrderId()
+ {
+ if (!$this->getData('order_id')) {
+ if (isset($this->getRequest()['post'])) {
+ $this->setData('order_id', (int)$this->getRequest()['post']);
+ }
+ }
+ return $this->getData('order_id');
+ }
+
+ /**
+ * @return array
+ */
+ private function getRequest()
+ {
+ return $_REQUEST;
+ }
+}
diff --git a/src/Block/Adminhtml/Sales/Order/MetaBox/ChargeActions.php b/src/Block/Adminhtml/Sales/Order/MetaBox/ChargeActions.php
new file mode 100644
index 00000000..d358ce12
--- /dev/null
+++ b/src/Block/Adminhtml/Sales/Order/MetaBox/ChargeActions.php
@@ -0,0 +1,165 @@
+order = $order ?? new Order($this->getOrderId());
+ } catch (\Exception $e) {}
+ $this->charge = $charge ?? new \Woocommerce\Pagarme\Model\Charge;
+ }
+
+ /**
+ * @return Order
+ */
+ public function getOrder()
+ {
+ return $this->order;
+ }
+
+ /**
+ * @return mixed|null
+ */
+ private function getOrderId()
+ {
+ if (isset($this->getRequest()['post'])) {
+ return $this->getRequest()['post'];
+ }
+ return null;
+ }
+
+ /**
+ * @return false|Charge
+ */
+ public function getCharges()
+ {
+ if ($this->getOrder()) {
+ return $this->getOrder()->get_charges();
+ }
+ return null;
+ }
+
+ /**
+ * @return array
+ */
+ private function getRequest()
+ {
+ return $_REQUEST;
+ }
+
+ /**
+ * @return string[]
+ */
+ public function getHeaderGrid()
+ {
+ return [
+ 'Charge ID',
+ 'Type',
+ "Total Amount",
+ 'Partially Captured',
+ 'Partially Canceled',
+ 'Partially Reversed',
+ 'Status',
+ 'Action'
+ ];
+ }
+
+ /**
+ * @param $charge
+ * @return false|mixed
+ */
+ public function getTransaction($charge)
+ {
+ return current($charge->getTransactions());
+ }
+
+ /**
+ * @param $charge
+ * @param string $type
+ * @return String
+ */
+ public function getAmount($charge, string $type = '')
+ {
+ $method = 'get' . ucfirst($type) . 'Amount';
+ return $charge->{$method}() ? Utils::format_order_price_to_view($charge->{$method}()) : '-';
+ }
+
+ /**
+ * @return string[]
+ */
+ public function getTotals()
+ {
+ return [
+ '',
+ 'paid',
+ 'canceled',
+ 'refunded'
+ ];
+ }
+
+ /**
+ * @return \Woocommerce\Pagarme\Model\Charge
+ */
+ public function getChargeInstance()
+ {
+ return $this->charge;
+ }
+}
diff --git a/src/Block/Adminhtml/Sales/Order/MetaBox/Modal.php b/src/Block/Adminhtml/Sales/Order/MetaBox/Modal.php
new file mode 100644
index 00000000..1400d717
--- /dev/null
+++ b/src/Block/Adminhtml/Sales/Order/MetaBox/Modal.php
@@ -0,0 +1,111 @@
+getTransactions());
+ }
+
+ /**
+ * @return string|void
+ */
+ public function getPartiallyType()
+ {
+ if ($this->getModalType() === self::MODAL_TYPE_CAPTURE) {
+ return 'partially captured';
+ }
+ if ($this->getModalType() === self::MODAL_TYPE_CANCEL) {
+ return 'partially canceled';
+ }
+ return '';
+ }
+
+ public function getLabelByType()
+ {
+ if ($this->getModalType() === self::MODAL_TYPE_CAPTURE) {
+ return 'Value to be captured: ';
+ }
+ if ($this->getModalType() === self::MODAL_TYPE_CANCEL) {
+ return 'Value to be canceled: ';
+ }
+ return '';
+ }
+
+ /**
+ * @return int|String|void
+ */
+ public function getActionAmount()
+ {
+ if ($this->getModalType() === self::MODAL_TYPE_CANCEL) {
+ $canceled = $this->getCharge()->getCanceledAmount() ? $this->getCharge()->getCanceledAmount() : 0;
+ $refunded = $this->getCharge()->getRefundedAmount() ? $this->getRefundedAmount()->getCanceledAmount() : 0;
+ $paid = $this->getCharge()->getPaidAmount() ? $this->getCharge()->getPaidAmount() : 0;
+ $toCancel = $this->getCharge()->getAmount();
+ if ($paid) {
+ $toCancel = $paid;
+ }
+ if ($paid && $canceled) {
+ $toCancel = $paid - $canceled;
+ }
+ if ($paid && $refunded) {
+ $toCancel = max(0, $paid - $refunded);
+ }
+ return $toCancel;
+ }
+ return 0;
+ }
+
+ /**
+ * @return String
+ */
+ public function getAmount()
+ {
+ return Utils::format_order_price_to_view($this->getCharge()->getAmount());
+ }
+
+ public function getPartiallyAmount()
+ {
+ if ($this->getModalType() === self::MODAL_TYPE_CAPTURE) {
+ return $this->getCharge()->getPaidAmount() ? Utils::format_order_price_to_view($this->getCharge()->getPaidAmount()) : ' - ';
+ }
+ if ($this->getModalType() === self::MODAL_TYPE_CANCEL) {
+ return $this->getCharge()->getCanceledAmount() ? Utils::format_order_price_to_view($this->getCharge()->getCanceledAmount()) : ' - ';
+ }
+ }
+}
diff --git a/src/Block/Adminhtml/Sales/Order/MetaBoxInterface.php b/src/Block/Adminhtml/Sales/Order/MetaBoxInterface.php
new file mode 100644
index 00000000..edc7d8e6
--- /dev/null
+++ b/src/Block/Adminhtml/Sales/Order/MetaBoxInterface.php
@@ -0,0 +1,32 @@
+getMetaBoxesDeclared() as $class) {
+ /** @var MetaBoxInterface $metaBox */
+ $metaBox = new $class;
+ if ($metaBox->getCode() === $code) {
+ return $metaBox;
+ }
+ }
+ throw new \Exception(__('Invalid MetaBox: ', 'woo-pagarme-payments') . $code);
+ }
+
+ /**
+ * @return array
+ */
+ public function getMetaBoxesDeclared()
+ {
+ $this->autoLoad();
+ $object = [];
+ foreach (get_declared_classes() as $class) {
+ try {
+ $reflect = new ReflectionClass($class);
+ if($reflect->implementsInterface(MetaBoxInterface::class)) {
+ $explodedFileName = explode(DIRECTORY_SEPARATOR, $reflect->getFileName());
+ $object[end($explodedFileName)] = $class;
+ }
+ } catch (\ReflectionException $e) {}
+ }
+ return $object;
+ }
+
+ /**
+ * @param bool $sort
+ * @return array
+ */
+ public function getMetaBoxes(bool $sort = true)
+ {
+ $object = [];
+ foreach ($this->getMetaBoxesDeclared() as $class) {
+ /** @var MetaBoxInterface $metaBox */
+ $metaBox = new $class;
+ if ($sort) {
+ $sortOrder = $metaBox->getSortOrder();
+ do {
+ $sortOrder++;
+ } while(isset($object[$sortOrder]));
+ $object[$sortOrder] = $metaBox;
+ } else {
+ $object[] = $metaBox;
+ }
+ }
+ return $object;
+ }
+
+ /**
+ * @return void
+ */
+ private function autoLoad()
+ {
+ foreach(glob( __DIR__ . '/MetaBox/*.php') as $file) {
+ include_once($file);
+ }
+ }
+}
diff --git a/src/Block/Adminhtml/System/Config/Form/AbstractField.php b/src/Block/Adminhtml/System/Config/Form/AbstractField.php
new file mode 100644
index 00000000..d5569dc8
--- /dev/null
+++ b/src/Block/Adminhtml/System/Config/Form/AbstractField.php
@@ -0,0 +1,342 @@
+config = $config;
+ if (!$this->config) {
+ $this->config = new Config();
+ }
+ if ($template) {
+ $this->template = $template;
+ }
+ $this->init($data);
+ }
+
+ /**
+ * @return void
+ */
+ protected function init(array $data = [])
+ {
+ $this->setData($data);
+ }
+
+ /**
+ * @param array $data
+ * @return $this
+ */
+ public function setData(array $data = [])
+ {
+ foreach ($data as $key => $value) {
+ $method = 'set' . str_replace(' ', '', ucwords(str_replace('_', ' ', $key)));
+ if (method_exists($this, $method)) {
+ $this->{$method}($value);
+ }
+ }
+ return $this;
+ }
+
+ /**
+ * @return void
+ */
+ public function toHtml()
+ {
+ add_settings_field(
+ $this->getId(),
+ __($this->getTitle(), 'woo-pagarme-payments'),
+ [$this, 'getElementCallBack'],
+ $this->getPage(),
+ $this->getSection(),
+ json_encode($this)
+ );
+ }
+
+ /**
+ * @return void
+ */
+ public function getElementCallBack($values)
+ {
+ if (!method_exists($this, 'elementCallBack')) {
+ $this->includeTemplate();
+ return;
+ }
+ $this->elementCallBack($values);
+ }
+
+ /**
+ * @return void
+ */
+ public function includeTemplate(string $file = 'main.phtml')
+ {
+ include plugin_dir_path(WCMP_ROOT_SRC ) . DIRECTORY_SEPARATOR . $this->templatePath . $file;
+ }
+
+ /**
+ * @param string $section
+ * @return $this
+ */
+ public function setSection(string $section)
+ {
+ $this->section = $section;
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSection()
+ {
+ return $this->section;
+ }
+
+ /**
+ * @return bool
+ */
+ public function getVisible()
+ {
+ return $this->isVisible;
+ }
+
+ /**
+ * @param bool $value
+ * @return $this
+ */
+ public function setVisible(bool $value)
+ {
+ $this->isVisible = $value;
+ return $this;
+ }
+
+ /**
+ * @return bool
+ */
+ public function getReadonly()
+ {
+ return $this->readonly;
+ }
+
+ /**
+ * @param bool $value
+ * @return $this
+ */
+ public function setReadonly(bool $value)
+ {
+ $this->isVisible = $value;
+ return $this;
+ }
+
+ /**
+ * @param string $id
+ * @return $this
+ */
+ public function setId(string $id)
+ {
+ $this->id = $id;
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getId()
+ {
+ return $this->id;
+ }
+
+ /**
+ * @param string $page
+ * @return $this
+ */
+ public function setPage(string $page)
+ {
+ $this->page = $page;
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getPage()
+ {
+ return $this->page;
+ }
+
+ /**
+ * @param string $title
+ * @return $this
+ */
+ public function setTitle(string $title)
+ {
+ $this->title = $title;
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getTitle()
+ {
+ return $this->title;
+ }
+
+ /**
+ * @param $name
+ * @return $this
+ */
+ public function setName($name)
+ {
+ $this->name = $name;
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * @param $current
+ * @return $this
+ */
+ public function setCurrent($current)
+ {
+ $this->current = $current;
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getCurrent()
+ {
+ if (!$this->current) {
+ return $this->getDefault();
+ }
+ return $this->current;
+ }
+
+ /**
+ * @param $default
+ * @return $this
+ */
+ public function setDefault($default)
+ {
+ $this->default = $default;
+ return $this;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getDefault()
+ {
+ return $this->default;
+ }
+
+ /**
+ * @param $description
+ * @return $this
+ */
+ public function setDescription($description)
+ {
+ $this->description = __($description, 'woo-pagarme-payments');
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * @return $this
+ */
+ public function clearData($key = null)
+ {
+ if (!$key) {
+ foreach (get_class_methods(get_class($this)) as $method) {
+ if (strpos($method, 'set') !== false) {
+ $this->{$method} = '';
+ }
+ }
+ }
+ if ($key) {
+ $this->{$key} = '';
+ }
+ return $this;
+ }
+}
diff --git a/src/Block/Adminhtml/System/Config/Form/Field/Checkbox.php b/src/Block/Adminhtml/System/Config/Form/Field/Checkbox.php
new file mode 100644
index 00000000..b643a4d2
--- /dev/null
+++ b/src/Block/Adminhtml/System/Config/Form/Field/Checkbox.php
@@ -0,0 +1,59 @@
+label = $label;
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getLabel()
+ {
+ return $this->label;
+ }
+
+ /**
+ * @return void
+ */
+ public function elementCallBack()
+ {
+ if ($value = $this->config->getData($this->getId())) {
+ $this->setCurrent($value);
+ }
+ parent::includeTemplate();
+ }
+}
diff --git a/src/Block/Adminhtml/System/Config/Form/Field/Hub/Environment.php b/src/Block/Adminhtml/System/Config/Form/Field/Hub/Environment.php
new file mode 100644
index 00000000..c9dddc5e
--- /dev/null
+++ b/src/Block/Adminhtml/System/Config/Form/Field/Hub/Environment.php
@@ -0,0 +1,38 @@
+setCurrent($this->getDefault());
+ if ($value = $this->config->getData($this->getId())) {
+ $this->setCurrent($value);
+ }
+ parent::includeTemplate();
+ }
+}
diff --git a/src/Block/Adminhtml/System/Config/Form/Field/Hub/Integration.php b/src/Block/Adminhtml/System/Config/Form/Field/Hub/Integration.php
new file mode 100644
index 00000000..4bcc34d4
--- /dev/null
+++ b/src/Block/Adminhtml/System/Config/Form/Field/Hub/Integration.php
@@ -0,0 +1,46 @@
+setCurrent($this->getDefault());
+ if ($value = $this->config->getData($this->getId())) {
+ $this->setCurrent($value);
+ }
+ parent::includeTemplate();
+ }
+
+ /**
+ * @return string|null
+ */
+ public function getButtonLabel()
+ {
+ return ($this->config->getHubInstallId()) ? __('View Integration', 'woo-pagarme-payments') : __('Integrate With Pagar.me', 'woo-pagarme-payments');
+ }
+}
diff --git a/src/Block/Adminhtml/System/Config/Form/Field/Select.php b/src/Block/Adminhtml/System/Config/Form/Field/Select.php
new file mode 100644
index 00000000..3356e4ad
--- /dev/null
+++ b/src/Block/Adminhtml/System/Config/Form/Field/Select.php
@@ -0,0 +1,59 @@
+options = $options;
+ return $this;
+ }
+
+ /**
+ * @return array
+ */
+ public function getOptions()
+ {
+ return $this->options;
+ }
+
+ /**
+ * @return void
+ */
+ public function elementCallBack()
+ {
+ if ($value = $this->config->getData($this->getId())) {
+ $this->setCurrent($value);
+ }
+ parent::includeTemplate();
+ }
+}
diff --git a/src/Block/Adminhtml/System/Config/Form/Field/Text.php b/src/Block/Adminhtml/System/Config/Form/Field/Text.php
new file mode 100644
index 00000000..5df38536
--- /dev/null
+++ b/src/Block/Adminhtml/System/Config/Form/Field/Text.php
@@ -0,0 +1,59 @@
+label = $label;
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getLabel()
+ {
+ return $this->label;
+ }
+
+ /**
+ * @return void
+ */
+ public function elementCallBack()
+ {
+ if ($value = $this->config->getData($this->getId())) {
+ $this->setCurrent($value);
+ }
+ parent::includeTemplate();
+ }
+}
diff --git a/src/Block/Adminhtml/System/Config/Form/Section.php b/src/Block/Adminhtml/System/Config/Form/Section.php
new file mode 100644
index 00000000..2543028c
--- /dev/null
+++ b/src/Block/Adminhtml/System/Config/Form/Section.php
@@ -0,0 +1,138 @@
+init($data);
+ }
+
+ /**
+ * @return void
+ */
+ protected function init(array $data = [])
+ {
+ foreach ($data as $key => $value) {
+ $method = 'set' . str_replace(' ', '', ucwords(str_replace('_', ' ', $key)));
+ if (method_exists($this, $method)) {
+ $this->{$method}($value);
+ }
+ }
+ }
+
+ /**
+ * @return void
+ */
+ public function toHtml()
+ {
+ add_settings_section(
+ $this->getId(),
+ __($this->getTitle(), 'woo-pagarme-payments'),
+ [$this, 'getSectionCallBack'],
+ $this->getPage()
+ );
+ }
+
+ /**
+ * @return void
+ */
+ public function getSectionCallBack($values)
+ {
+ if (!method_exists($this, 'sectionCallBack')) {
+ $this->emptyCallBack();
+ return;
+ }
+ $this->sectionCallBack($values);
+ }
+
+ /**
+ * Null fallback.
+ */
+ public function emptyCallBack()
+ {
+ }
+
+ /**
+ * @param string $title
+ * @return $this
+ */
+ public function setTitle(string $title)
+ {
+ $this->title = $title;
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getTitle()
+ {
+ return $this->title;
+ }
+
+ /**
+ * @param string $id
+ * @return $this
+ */
+ public function setId(string $id)
+ {
+ $this->id = $id;
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getId()
+ {
+ return $this->id;
+ }
+
+ /**
+ * @param string $page
+ * @return $this
+ */
+ public function setPage(string $page)
+ {
+ $this->page = $page;
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getPage()
+ {
+ return $this->page;
+ }
+}
diff --git a/src/Block/Adminhtml/System/Config/Page/PageSettings.php b/src/Block/Adminhtml/System/Config/Page/PageSettings.php
new file mode 100644
index 00000000..8be9519b
--- /dev/null
+++ b/src/Block/Adminhtml/System/Config/Page/PageSettings.php
@@ -0,0 +1,74 @@
+options = $options;
+ $this->paymentMethods = $paymentMethods;
+ $this->paymentGateways = $this->getPaymentGateways();
+ }
+
+ public function includeTemplate()
+ {
+ include plugin_dir_path(WCMP_ROOT_SRC) . $this->templatePath . $this->template;
+ }
+
+ /**
+ * @return array
+ */
+ public function getPaymentMethods(): array
+ {
+ return $this->paymentMethods;
+ }
+
+ public function getPaymentGateways()
+ {
+ $paymentMethods = $this->getPaymentMethods();
+ $gateways = array();
+
+ foreach ($paymentMethods as $paymentMethod) {
+ /** @var AbstractGateway $gateway */
+ $gateway = new $paymentMethod();
+ $gateways[$gateway->id] = $gateway;
+ }
+ return $gateways;
+ }
+}
diff --git a/src/Block/Checkout/Environment.php b/src/Block/Checkout/Environment.php
new file mode 100644
index 00000000..b3610b73
--- /dev/null
+++ b/src/Block/Checkout/Environment.php
@@ -0,0 +1,54 @@
+getData('config')) {
+ $this->setData('config', $config ?? new Config);
+ }
+ }
+
+ /**
+ * @return Config
+ */
+ public function getConfig()
+ {
+ return $this->getData('config');
+ }
+}
diff --git a/src/Block/Checkout/Field/EnableMulticustomers.php b/src/Block/Checkout/Field/EnableMulticustomers.php
new file mode 100644
index 00000000..f7d2be81
--- /dev/null
+++ b/src/Block/Checkout/Field/EnableMulticustomers.php
@@ -0,0 +1,45 @@
+getParentElementId()) {
+ return $this->getParentElementId() . '[' . $id . ']';
+ }
+ $id = '[multicustomers][' . $this->getSequence() . '][' . $id . ']';
+ return parent::getElementId($id);
+ }
+
+ public function isEnable() {
+ return $this->getConfig()->getMulticustomers();
+ }
+}
diff --git a/src/Block/Checkout/Field/Wallet.php b/src/Block/Checkout/Field/Wallet.php
new file mode 100644
index 00000000..cf050aa9
--- /dev/null
+++ b/src/Block/Checkout/Field/Wallet.php
@@ -0,0 +1,87 @@
+setData('sequence', $sequence);
+ }
+
+ /**
+ * @return int
+ */
+ public function getSequence()
+ {
+ if (!$this->getData('sequence')) {
+ return $this->sequence;
+ }
+ return $this->getData('sequence');
+ }
+
+ /**
+ * @param string $id
+ * @return string
+ */
+ public function getElementId(string $id)
+ {
+ if ($this->getParentElementId()) {
+ return $this->getParentElementId() . '[' . $id . ']';
+ }
+ $id = '[wallet][' . $this->getSequence() . '][' . $id . ']';
+ return parent::getElementId($id);
+ }
+
+ /**
+ * @return bool
+ */
+ public function getIsEnableWallet()
+ {
+ $configField = [
+ CreditCard::PAYMENT_CODE => 'cc-allow-save',
+ TwoCards::PAYMENT_CODE => 'cc-allow-save',
+ BilletCard::PAYMENT_CODE => 'cc-allow-save',
+ Voucher::PAYMENT_CODE => 'voucher-card-wallet'
+ ];
+ $method = 'get' . str_replace(' ', '', ucwords(str_replace('-', ' ' ,
+ $configField[$this->getPaymentInstance()->getMethodCode()]
+ )));
+ return (bool)$this->getConfig()->{$method}();
+ }
+}
diff --git a/src/Block/Checkout/Form/Billet.php b/src/Block/Checkout/Form/Billet.php
new file mode 100644
index 00000000..664e533e
--- /dev/null
+++ b/src/Block/Checkout/Form/Billet.php
@@ -0,0 +1,38 @@
+setData('sequence', $sequence);
+ }
+
+ /**
+ * @return int
+ */
+ public function getSequence()
+ {
+ if (!$this->getData('sequence')) {
+ return $this->sequence;
+ }
+ return $this->getData('sequence');
+ }
+
+ /**
+ * @param int $qtyCards
+ * @return $this
+ */
+ public function setQuantityCards(int $qtyCards = 1)
+ {
+ if ($qtyCards > 1) {
+ $this->setShowOrderValue(true);
+ }
+ return $this->setData('qty_cards', $qtyCards);
+ }
+
+ /**
+ * @return int
+ */
+ public function getQuantityCards()
+ {
+ if ($this->getQtyCards() > 1) {
+ $this->setShowOrderValue(true);
+ }
+ return $this->getData('qty_cards');
+ }
+
+ /**
+ * @return bool
+ */
+ public function showInstallments()
+ {
+ $methods = [
+ Voucher::PAYMENT_CODE
+ ];
+ if (in_array($this->getPaymentInstance()->getMethodCode(), $methods)) {
+ return false;
+ }
+ return true;
+ }
+
+ public function showHolderName()
+ {
+ $methods = [
+ Voucher::PAYMENT_CODE
+ ];
+ if (in_array($this->getPaymentInstance()->getMethodCode(), $methods)) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @param string|null $id
+ * @return string
+ */
+ public function getElementId(string $id = null)
+ {
+ $elementId = '[cards][' . $this->getSequence() . ']';
+ if ($id) {
+ $elementId .= '[' . $id . ']';
+ }
+ return parent::getElementId($elementId);
+ }
+
+ /**
+ * @return String
+ */
+ public function getCompoenent()
+ {
+ return Utils::get_component('pagarme-checkout');
+ }
+
+}
diff --git a/src/Block/Checkout/Form/Installments.php b/src/Block/Checkout/Form/Installments.php
new file mode 100644
index 00000000..f19390e3
--- /dev/null
+++ b/src/Block/Checkout/Form/Installments.php
@@ -0,0 +1,103 @@
+setData('sequence', $sequence);
+ }
+
+ /**
+ * @return int
+ */
+ public function getSequence()
+ {
+ if (!$this->getData('sequence')) {
+ return $this->sequence;
+ }
+ return $this->getData('sequence');
+ }
+
+ /**
+ * @param string $id
+ * @return string
+ */
+ public function getElementId(string $id)
+ {
+ $id = '[cards][' . $this->getSequence() . '][' . $id . ']';
+ return parent::getElementId($id);
+ }
+
+ /**
+ * @return int
+ */
+ public function getInstallmentsType()
+ {
+ return intval($this->getConfig()->getCcInstallmentType());
+ }
+
+ /**
+ * @return boolean
+ */
+ public function isInterestForAllFlags()
+ {
+ return ($this->getInstallmentsType() == CardInstallments::INSTALLMENTS_FOR_ALL_FLAGS);
+ }
+ /**
+ * @return String
+ */
+ public function getInstallmentsComponent()
+ {
+ return Utils::get_component('installments');
+ }
+
+ public function render_installments($total)
+ {
+ $cardInstallments = new CardInstallments();
+ return $cardInstallments->getInstallmentsByType($total);
+ }
+
+ /**
+ * @return array
+ */
+ public function render()
+ {
+ return $this->render_installments($this->getCartTotals());
+ }
+}
diff --git a/src/Block/Checkout/Form/Multicustomers.php b/src/Block/Checkout/Form/Multicustomers.php
new file mode 100644
index 00000000..fb0287eb
--- /dev/null
+++ b/src/Block/Checkout/Form/Multicustomers.php
@@ -0,0 +1,119 @@
+setData('countries', $countries);
+ }
+
+ /**
+ * @return string
+ */
+ public function getTitle()
+ {
+ return $this->getData('title') ?? '';
+ }
+
+ /**
+ * @param string $title
+ * @return $this
+ */
+ public function setTitle(string $title)
+ {
+ return $this->setData('title', $title);
+ }
+
+ /**
+ * @param int $sequence
+ * @return Multicustomers
+ */
+ public function setSequence(int $sequence)
+ {
+ return $this->setData('sequence', $sequence);
+ }
+
+ /**
+ * @return int
+ */
+ public function getSequence()
+ {
+ if (!$this->getData('sequence')) {
+ return $this->sequence;
+ }
+ return $this->getData('sequence');
+ }
+
+ /**
+ * @param string $id
+ * @return string
+ */
+ public function getElementId(string $id)
+ {
+ if ($this->getParentElementId()) {
+ return $this->getParentElementId() . '[' . $id . ']';
+ }
+ $id = '[multicustomers][' . $this->getSequence() . '][' . $id . ']';
+ return parent::getElementId($id);
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getStates()
+ {
+ return $this->getData('countries')->get_states('BR');
+ }
+}
diff --git a/src/Block/Checkout/Form/Pix.php b/src/Block/Checkout/Form/Pix.php
new file mode 100644
index 00000000..1b7a434c
--- /dev/null
+++ b/src/Block/Checkout/Form/Pix.php
@@ -0,0 +1,38 @@
+setData('qty_cards', $qtyCards);
+ }
+
+ /**
+ * @return int
+ */
+ public function getQuantityCards()
+ {
+ return $this->getData('qty_cards');
+ }
+
+ /**
+ * @param int $sequence
+ * @return $this
+ */
+ public function setSequence(int $sequence)
+ {
+ return $this->setData('sequence', $sequence);
+ }
+
+ /**
+ * @return int
+ */
+ public function getSequence()
+ {
+ if (!$this->getData('sequence')) {
+ return $this->sequence;
+ }
+ return $this->getData('sequence');
+ }
+
+ /**
+ * @return bool
+ */
+ public function isWalletEnable()
+ {
+ $result = false;
+ switch ($this->getPaymentInstance()->getMethodCode()) {
+ case Voucher::PAYMENT_CODE:
+ $result = (bool) $this->getConfig()->getVoucherCardWallet();
+ break;
+ default:
+ $result = (bool) $this->getConfig()->getCcAllowSave();
+ break;
+ }
+ return $result;
+ }
+
+ /**
+ * @param string $id
+ * @return string
+ */
+ public function getElementId(string $id)
+ {
+ $id = '[cards][' . $this->getSequence() . '][' . $id . ']';
+ return parent::getElementId($id);
+ }
+}
diff --git a/src/Block/Checkout/Gateway.php b/src/Block/Checkout/Gateway.php
new file mode 100644
index 00000000..b4dbd327
--- /dev/null
+++ b/src/Block/Checkout/Gateway.php
@@ -0,0 +1,241 @@
+getData('config')) {
+ $this->setData('config', $config ?? new Config);
+ }
+ if (!$this->getData('gateway')) {
+ $this->setData('gateway', $gateway ?? new GatewayModel);
+ }
+ }
+
+ /**
+ * @param PaymentInterface $payment
+ * @return $this
+ */
+ public function setPaymentInstance(PaymentInterface $payment)
+ {
+ return $this->setData('payment_instance', $payment);
+ }
+
+ /**
+ * @return PaymentInterface
+ */
+ public function getPaymentInstance()
+ {
+ return $this->getData('payment_instance');
+ }
+
+ /**
+ * @return array
+ */
+ public function getConfigDataProvider()
+ {
+ return $this->getData('gateway')->getConfigDataProvider();
+ }
+
+ /**
+ * @param string $id
+ * @return string
+ */
+ public function getElementId(string $id)
+ {
+ return WCMP_PREFIX . '[' . $this->getPaymentInstance()->getMethodCode() . ']' . $id;
+ }
+
+ public function getPaymentClass()
+ {
+ return '\Woocommerce\Pagarme\Block\Checkout\Payment\\' . str_replace(' ', '', ucwords($this->numeralReplace(str_replace(['_', '-'], ' ', $this->getPaymentInstance()->getMethodCode()))));
+ }
+
+ /**
+ * @param string $class
+ * @return array|string|string[]
+ */
+ public function numeralReplace(string $class)
+ {
+ return str_replace(
+ ['1', '2', '3'],
+ ['one', 'two', 'tree'],
+ $class
+ );
+ }
+
+ /**
+ * @return string
+ */
+ public function getHomeUrl()
+ {
+ return get_home_url(null, '/wc-api/' . Checkout::API_REQUEST);
+ }
+
+ /**
+ * @param string $file
+ * @return string
+ */
+ public function getFileUrl(string $file)
+ {
+ return Core::plugins_url($file);
+ }
+
+ /**
+ * @return Config
+ */
+ public function getConfig()
+ {
+ return $this->getData('config');
+ }
+
+ /**
+ * @param bool $include
+ * @return $this
+ */
+ public function setIncludeContainer(bool $include = true)
+ {
+ $this->container = $include;
+ return $this;
+ }
+
+ /**
+ * @return bool
+ */
+ public function getContainer()
+ {
+ return $this->container;
+ }
+
+ /**
+ * @param string $content
+ * @param array $element
+ * @return string
+ */
+ public function formatElement(string $content, array $element)
+ {
+ if (!$this->container) {
+ $content = '';
+ }
+ return wp_kses($content, $element);
+ }
+
+ /**
+ * @return bool|int|mixed|string|\WC_Tax
+ */
+ public function getCartTotals()
+ {
+ return WC()->cart->total;
+ }
+
+ /**
+ * @return bool
+ */
+ public function showMessage()
+ {
+ return $this->getData('show_message') ?? false;
+ }
+
+ /**
+ * @return string|null
+ */
+ public function getMessage($htmlFormat = false)
+ {
+ if (!$this->showMessage()) {
+ return;
+ }
+ $content = $this->getPaymentInstance()->getMessage();
+ if ($htmlFormat) {
+ $content = "{$content}
";
+ }
+ return $content;
+ }
+
+ /**
+ * @return bool
+ */
+ public function showImage()
+ {
+ return $this->getData('show_image') ?? false;
+ }
+
+
+ /**
+ * @param $htmlFormat
+ * @return string|null
+ */
+ public function getImage($htmlFormat = false)
+ {
+ if (!$this->showImage()) {
+ return;
+ }
+ $content = $this->getPaymentInstance()->getImage();
+ if ($htmlFormat) {
+ $name = esc_html__($this->getPaymentInstance()->getName(), 'woo-pagarme-payments');
+ $content = "";
+ }
+
+ return $content;
+ }
+
+ /**
+ * @return bool
+ */
+ public function showOrderValue()
+ {
+ return $this->getData('show_order_value') ?? false;
+ }
+
+ /**
+ * @return array|mixed|true
+ */
+ public function showMulticustomersForm()
+ {
+ return $this->getData('show_multicustomers_form') ?? true;
+ }
+}
diff --git a/src/Block/Checkout/Payment/Billet.php b/src/Block/Checkout/Payment/Billet.php
new file mode 100644
index 00000000..cf01d7fc
--- /dev/null
+++ b/src/Block/Checkout/Payment/Billet.php
@@ -0,0 +1,28 @@
+numeralReplace(str_replace(['_', '-'], ' ', $this->getPaymentMethod()))));
+ }
+
+ /**
+ * @param string $class
+ * @return array|string|string[]
+ */
+ public function numeralReplace(string $class)
+ {
+ return str_replace(
+ ['1', '2', '3'],
+ ['one', 'two', 'tree'],
+ $class
+ );
+ }
+
+ /**
+ * @param string $content
+ * @param array $element
+ * @return string
+ */
+ public function formatElement(string $content, array $element)
+ {
+ if (!$this->container) {
+ $content = '';
+ }
+ return wp_kses($content, $element);
+ }
+
+ /**
+ * @param bool $include
+ * @return $this
+ */
+ public function setIncludeContainer(bool $include = true)
+ {
+ $this->container = $include;
+ return $this;
+ }
+
+ /**
+ * @return bool
+ */
+ public function getContainer()
+ {
+ return $this->container;
+ }
+
+ /**
+ * @return mixed|null
+ */
+ public function getResponseData()
+ {
+ if ($order = $this->getPagarmeOrder()) {
+ if (property_exists($order, 'response_data')) {
+ $response = $order->response_data;
+ if (is_string($response)) {
+ $response = json_decode($response);
+ }
+ return $response;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @return bool
+ */
+ public function isSuccessOrder()
+ {
+ if (!in_array($this->getPagarmeOrder()->pagarme_status, ['failed', 'canceled'])) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @param string $path
+ * @return string
+ */
+ public function getFilePath(string $path)
+ {
+ return esc_url(plugins_url($path, WCMP_ROOT_FILE));
+ }
+}
diff --git a/src/Block/Checkout/ThankYou/Billet.php b/src/Block/Checkout/ThankYou/Billet.php
new file mode 100644
index 00000000..6d84d6a2
--- /dev/null
+++ b/src/Block/Checkout/ThankYou/Billet.php
@@ -0,0 +1,61 @@
+getData('charge')) {
+ return $charge;
+ }
+ if ($response = $this->getResponseData()) {
+ if (property_exists($response, 'charges')) {
+ return current($response->charges);
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @return string|null
+ */
+ public function getBilletUrl()
+ {
+ try {
+ $charge = $this->getCharge();
+ if ($charge) {
+ $transaction = current($charge->transactions);
+ return $transaction->boletoUrl;
+ }
+ } catch (\Exception $e) {}
+ return null;
+ }
+}
diff --git a/src/Block/Checkout/ThankYou/BilletAndCard.php b/src/Block/Checkout/ThankYou/BilletAndCard.php
new file mode 100644
index 00000000..7c6ec50a
--- /dev/null
+++ b/src/Block/Checkout/ThankYou/BilletAndCard.php
@@ -0,0 +1,57 @@
+getResponseData()) {
+ return $response->charges;
+ }
+ } catch (\Exception $e) {}
+ return null;
+ }
+
+ public function getTransactionType($charge)
+ {
+ try {
+ return $this->getTransacion($charge)->type;
+ } catch (\Exception $e) {}
+ return null;
+ }
+
+ public function getTransacion($charge)
+ {
+ try {
+ return current($charge->transactions);
+ } catch (\Exception $e) {}
+ return null;
+ }
+}
diff --git a/src/Block/Checkout/ThankYou/CreditCard.php b/src/Block/Checkout/ThankYou/CreditCard.php
new file mode 100644
index 00000000..51901135
--- /dev/null
+++ b/src/Block/Checkout/ThankYou/CreditCard.php
@@ -0,0 +1,41 @@
+getData('charge')) {
+ return $charge;
+ }
+ if ($response = $this->getResponseData()) {
+ if (property_exists($response, 'charges')) {
+ return array_shift($response->charges);
+ }
+ }
+ return null;
+ }
+}
diff --git a/src/Block/Checkout/ThankYou/Pix.php b/src/Block/Checkout/ThankYou/Pix.php
new file mode 100644
index 00000000..f8f06601
--- /dev/null
+++ b/src/Block/Checkout/ThankYou/Pix.php
@@ -0,0 +1,78 @@
+getResponseData()) {
+ $charges = $response->charges;
+ $charge = array_shift($charges);
+ $transaction = array_shift($charge->transactions);
+ return $transaction->postData->qr_code_url;
+ }
+ } catch (\Exception $e) {}
+ return null;
+ }
+
+ /**
+ * @return string|null
+ */
+ public function getRawQrCode()
+ {
+ try {
+ if ($response = $this->getResponseData()) {
+ $charges = $response->charges;
+ $charge = array_shift($charges);
+ $transaction = array_shift($charge->transactions);
+ return $transaction->postData->qr_code;
+ }
+ } catch (\Exception $e) {}
+ return null;
+ }
+
+ /**
+ * @return array
+ */
+ public function getInstructions()
+ {
+ return [
+ '1. Point your phone at this screen to capture the code.',
+ '2. Open your payments app.',
+ '3. Confirm the information and complete the payment on the app.',
+ '4. We will send you a purchase confirmation.'
+ ];
+ }
+}
diff --git a/src/Block/Checkout/ThankYou/StatusTransaction.php b/src/Block/Checkout/ThankYou/StatusTransaction.php
new file mode 100644
index 00000000..80065623
--- /dev/null
+++ b/src/Block/Checkout/ThankYou/StatusTransaction.php
@@ -0,0 +1,36 @@
+getData('message') ? __($this->getData('message'), 'woo-pagarme-payments') : __('Failed', 'woo-pagarme-payments');
+ }
+}
diff --git a/src/Block/Checkout/ThankYou/TwoCards.php b/src/Block/Checkout/ThankYou/TwoCards.php
new file mode 100644
index 00000000..97424df5
--- /dev/null
+++ b/src/Block/Checkout/ThankYou/TwoCards.php
@@ -0,0 +1,44 @@
+getData('charges')) {
+ return $charges;
+ }
+ if ($response = $this->getResponseData()) {
+ if (property_exists($response, 'charges')) {
+ return $response->charges;
+ }
+ }
+ return [null, null];
+ }
+}
diff --git a/src/Block/Checkout/ThankYou/Voucher.php b/src/Block/Checkout/ThankYou/Voucher.php
new file mode 100644
index 00000000..5075d846
--- /dev/null
+++ b/src/Block/Checkout/ThankYou/Voucher.php
@@ -0,0 +1,43 @@
+getResponseData()) {
+ $charges = $response->charges;
+ $charge = array_shift($charges);
+ return $charge->status;
+ }
+ } catch (\Exception $e) {}
+ return null;
+ }
+}
diff --git a/src/Block/Order/Charge.php b/src/Block/Order/Charge.php
new file mode 100644
index 00000000..c8258aeb
--- /dev/null
+++ b/src/Block/Order/Charge.php
@@ -0,0 +1,76 @@
+modelCharge = $modelCharge ?? new \Woocommerce\Pagarme\Model\Charge;
+ }
+
+ public function getTransactionClass($transaction)
+ {
+ $class = $this->getPaymentMethod($transaction->getTransactionType()->getType());
+ if (!class_exists($this->basePath . $class)) {
+ $class = 'DefaultTransaction';
+ }
+ return $this->basePath . $class;
+ }
+
+ public function getChargeStatus()
+ {
+ return $this->modelCharge->get_i18n_status($this->getCharge()->getStatus()->getStatus());
+ }
+
+ /**
+ * @param string $method
+ * @return array|string|string[]
+ */
+ protected function getPaymentMethod(string $method)
+ {
+ return str_replace(' ', '', ucwords(str_replace('_', ' ', $method)));
+ }
+
+ /**
+ * @return array|string|string[]|void
+ */
+ public function getTransactionType($transaction)
+ {
+ if ($transaction && $transaction->getTransactionType()->getType()) {
+ return str_replace(' ', '', ucwords(str_replace('_', ' ', $transaction->getTransactionType()->getType())));
+ }
+ }
+}
diff --git a/src/Block/Order/PaymentDetails.php b/src/Block/Order/PaymentDetails.php
new file mode 100644
index 00000000..9453396b
--- /dev/null
+++ b/src/Block/Order/PaymentDetails.php
@@ -0,0 +1,57 @@
+setOrderId($orderId)
+ ->setOrder(new Order($orderId))->toHtml();
+ }
+
+ public function getCharges()
+ {
+ if ($this->getOrder() && $this->getOrder() instanceof Order) {
+ return $this->getOrder()->get_charges();
+ }
+ return null;
+ }
+
+ public function isPagarmePaymentMethod(Order $order)
+ {
+ if (property_exists($order, 'wc_order')) {
+ $paymentMethod = $order->wc_order->get_payment_method();
+ return $paymentMethod === AbstractGateway::PAGARME ||
+ str_starts_with($paymentMethod, AbstractGateway::WC_PAYMENT_PAGARME); }
+ return false;
+ }
+}
diff --git a/src/Block/Order/Transaction/AbstractCard.php b/src/Block/Order/Transaction/AbstractCard.php
new file mode 100644
index 00000000..7f81e375
--- /dev/null
+++ b/src/Block/Order/Transaction/AbstractCard.php
@@ -0,0 +1,88 @@
+getTransaction() && $this->getTransaction()->getPostData()) {
+ $postData = $this->getTransaction()->getPostData();
+ if (property_exists($postData, 'tran_data')) {
+ $data = $this->jsonSerialize->unserialize($postData->tran_data);
+ foreach ($data as $key => $datum) {
+ if ($key === 'card' && is_array($datum)) {
+ foreach ($datum as $key2 => $datum2) {
+ if (in_array($key2, $this->cardData)) {
+ $value[$this->getLabel($key2)] = $this->convertData($key2, $datum2);
+ }
+ }
+ continue;
+ }
+ if (in_array($key, $this->cardData)) {
+ $value[$this->getLabel($key)] = $this->convertData($key, $datum);
+ }
+ }
+ }
+ }
+ } catch (\Exception $e) {}
+ return $value;
+ }
+
+ /**
+ * @param string $key
+ * @return string|null
+ */
+ private function getLabel(string $key)
+ {
+ return __(ucwords(str_replace('_', ' ', $key)), 'woo-pagarme-payments');
+ }
+
+ /**
+ * @param $key
+ * @param $value
+ * @return String
+ */
+ public function convertData($key, $value)
+ {
+ if ($key === 'amount') {
+ return Utils::format_order_price_to_view($value);
+ }
+ return $value;
+ }
+}
diff --git a/src/Block/Order/Transaction/AbstractTransaction.php b/src/Block/Order/Transaction/AbstractTransaction.php
new file mode 100644
index 00000000..e25115f7
--- /dev/null
+++ b/src/Block/Order/Transaction/AbstractTransaction.php
@@ -0,0 +1,32 @@
+getTransaction()->getBoletoUrl();
+ } catch (\Exception $e) {}
+ return null;
+ }
+}
diff --git a/src/Block/Order/Transaction/CreditCard.php b/src/Block/Order/Transaction/CreditCard.php
new file mode 100644
index 00000000..0035ff6b
--- /dev/null
+++ b/src/Block/Order/Transaction/CreditCard.php
@@ -0,0 +1,23 @@
+getTransaction() && $this->getTransaction()->getPostData()) {
+ $postData = $this->getTransaction()->getPostData();
+ if (property_exists($postData, 'tran_data')) {
+ $data = $this->jsonSerialize->unserialize($postData->tran_data);
+ return $data['qr_code_url'];
+ }
+ }
+ } catch (\Exception $e) {}
+ return null;
+ }
+
+ /**
+ * @return string|null
+ */
+ public function getRawQrCode()
+ {
+ try {
+ if ($this->getTransaction() && $this->getTransaction()->getPostData()) {
+ $postData = $this->getTransaction()->getPostData();
+ if (property_exists($postData, 'tran_data')) {
+ $data = $this->jsonSerialize->unserialize($postData->tran_data);
+ return $data['qr_code'];
+ }
+ }
+ } catch (\Exception $e) {}
+ return null;
+ }
+
+ /**
+ * @return array
+ */
+ public function getInstructions()
+ {
+ return [
+ '1. Point your phone at this screen to capture the code.',
+ '2. Open your payments app.',
+ '3. Confirm the information and complete the payment on the app.',
+ '4. We will send you a purchase confirmation.'
+ ];
+ }
+}
diff --git a/src/Block/Order/Transaction/Voucher.php b/src/Block/Order/Transaction/Voucher.php
new file mode 100644
index 00000000..cd3b4bc6
--- /dev/null
+++ b/src/Block/Order/Transaction/Voucher.php
@@ -0,0 +1,23 @@
+getBlockInstance($block, $arguments);
+ $block->setType(get_class($block));
+ $block->setNameInLayout($name);
+ $block->addData($arguments['data'] ?? []);
+ if (!empty($arguments['template'])) {
+ $block->setTemplate($arguments['template']);
+ }
+ return $block;
+ }
+
+ /**
+ * Create block object instance based on block type
+ * @param string|AbstractBlock $block
+ * @param array $arguments
+ * @return AbstractBlock
+ *@throws \Exception
+ */
+ private function getBlockInstance($block, array $arguments = [])
+ {
+ if ($block && is_string($block)) {
+ $block = new $block($this->jsonSerialize, $arguments);
+ }
+ if (!$block instanceof AbstractBlock) {
+ throw new \Exception('Invalid block type: ' . is_object($block) ? get_class($block) : (string) $block);
+ }
+ return $block;
+ }
+
+ /**
+ * @return string
+ */
+ protected function _toHtml()
+ {
+ $locale = Core::plugin_dir_path() . $this->getTemplate() . '.php';
+ if (!file_exists($locale)) {
+ $locale = Core::plugin_dir_path() . $this->getTemplate() . '.phtml';
+ if (!file_exists($locale)) {
+ return;
+ }
+ }
+ include $locale;
+ }
+}
diff --git a/src/Concrete/WoocommerceCoreSetup.php b/src/Concrete/WoocommerceCoreSetup.php
index dd22d3ab..5f42cda5 100644
--- a/src/Concrete/WoocommerceCoreSetup.php
+++ b/src/Concrete/WoocommerceCoreSetup.php
@@ -8,15 +8,8 @@
use Pagarme\Core\Kernel\Services\MoneyService;
use Pagarme\Core\Kernel\ValueObjects\CardBrand;
use Pagarme\Core\Kernel\ValueObjects\Configuration\CardConfig;
-use Woocommerce\Pagarme\Concrete\WoocommerceDatabaseDecorator;
-use Woocommerce\Pagarme\Concrete\WoocommerceDataService;
-use Woocommerce\Pagarme\Concrete\WoocommercePlatformCreditmemoDecorator;
-use Woocommerce\Pagarme\Concrete\WoocommercePlatformInvoiceDecorator;
-use Woocommerce\Pagarme\Concrete\WoocommercePlatformOrderDecorator;
-use Woocommerce\Pagarme\Concrete\WoocommercePlatformPaymentMethodDecorator;
-use Woocommerce\Pagarme\Concrete\WoocommercePlatformProductDecorator;
use Woocommerce\Pagarme\Helper\Utils;
-use Woocommerce\Pagarme\Model\Setting;
+use Woocommerce\Pagarme\Model\Config;
final class WoocommerceCoreSetup extends AbstractModuleCoreSetup
{
@@ -92,9 +85,8 @@ public function _getStoreLanguage()
public function loadModuleConfigurationFromPlatform()
{
- $storeConfig = Setting::get_instance();
+ $storeConfig = new Config;
$configData = new \stdClass();
-
$configData = self::fillWithGeneralConfig($configData, $storeConfig);
$configData = self::fillWithPagarmeKeys($configData, $storeConfig);
$configData = self::fillWithCardConfig($configData, $storeConfig);
@@ -127,13 +119,13 @@ private static function checkWebSiteExists()
static private function fillWithVoucherConfig($dataObj, $storeConfig)
{
$voucherConfig = new \stdClass();
- $voucherConfig->enabled = $storeConfig->is_active_voucher();
+ $voucherConfig->enabled = $storeConfig->getEnableVoucher();
$voucherConfig->title = null;
$voucherConfig->cardOperation = null;
- $dataObj->voucherCardStatementDescriptor = $storeConfig->isVoucherStatementDescriptor();
+ $dataObj->voucherCardStatementDescriptor = $storeConfig->getVoucherSoftDescriptor();
$dataObj->cardConfigs = self::getBrandConfig($storeConfig);
$dataObj->voucherConfig = $voucherConfig;
- $dataObj->saveVoucherCards = $storeConfig->is_allowed_save_voucher_card();
+ $dataObj->saveVoucherCards = $storeConfig->getVoucherCardWallet();
return $dataObj;
}
@@ -146,15 +138,15 @@ static private function fillWithCardConfig($dataObj, $storeConfig)
{
$moneyService = new MoneyService();
- $dataObj->creditCardEnabled = $storeConfig->is_active_credit_card();
+ $dataObj->creditCardEnabled = $storeConfig->getEnableCreditCard();
$dataObj->installmentsEnabled = true;
$dataObj->cardOperation = $storeConfig->getCardOperationForCore();
- $dataObj->cardStatementDescriptor = $storeConfig->isCardStatementDescriptor();
- $dataObj->antifraudEnabled = $storeConfig->isAntifraudEnabled();
- $dataObj->antifraudMinAmount = intval($storeConfig->antifraud_min_value);
- $dataObj->saveCards = $storeConfig->is_allowed_save_credit_card();
- $dataObj->saveVoucherCards = $storeConfig->is_allowed_save_voucher_card();
- $dataObj->installmentsDefaultConfig = $storeConfig->isInstallmentsDefaultConfig();
+ $dataObj->cardStatementDescriptor = $storeConfig->getIsCardStatementDescriptor();
+ $dataObj->antifraudEnabled = (bool) $storeConfig->getAntifraudEnabled();
+ $dataObj->antifraudMinAmount = intval($storeConfig->getAntifraudMinValue());
+ $dataObj->saveCards = $storeConfig->getCcAllowSave();
+ $dataObj->saveVoucherCards = $storeConfig->getVoucherCardWallet();
+ $dataObj->installmentsDefaultConfig = $storeConfig->getIsInstallmentsDefaultConfig();
$dataObj->antifraudMinAmount =
$moneyService->floatToCents(
@@ -169,13 +161,14 @@ static private function fillWithCardConfig($dataObj, $storeConfig)
private static function fillWithPixConfig($dataObj, $storeConfig)
{
$pixConfig = new \stdClass();
- $pixConfig->enabled = $storeConfig->is_active_pix();
- $pixConfig->expirationQrCode = $storeConfig->pix_qrcode_expiration_time;
+ $pixConfig->enabled = $storeConfig->getEnablePix();
+ $pixConfig->expirationQrCode = $storeConfig->getPixQrcodeExpirationTime();
$pixConfig->bankType = 'Pagar.me';
- $pixAdditionalData = $storeConfig->pix_additional_data;
+ $pixAdditionalData = $storeConfig->getPixAdditionalData();
if (
!empty($pixAdditionalData)
+ && is_array($pixAdditionalData)
&& count(array_filter($pixAdditionalData))
== count($pixAdditionalData)
@@ -190,31 +183,31 @@ private static function fillWithPixConfig($dataObj, $storeConfig)
static private function fillWithBoletoConfig($dataObj, $storeConfig)
{
- $dataObj->boletoEnabled = $storeConfig->is_active_billet();
- $dataObj->boletoInstructions = $storeConfig->billet_instructions;
- $dataObj->boletoDueDays = $storeConfig->billet_deadline_days;
- $dataObj->boletoBankCode = $storeConfig->billet_bank;
+ $dataObj->boletoEnabled = $storeConfig->getEnableBillet();
+ $dataObj->boletoInstructions = $storeConfig->getBilletInstructions();
+ $dataObj->boletoDueDays = $storeConfig->getBilletDeadlineDays();
+ $dataObj->boletoBankCode = $storeConfig->getBilletBank();
return $dataObj;
}
static private function fillWithBoletoCreditCardConfig($dataObj, $storeConfig)
{
- $dataObj->boletoCreditCardEnabled = $storeConfig->is_active_billet_and_card();
+ $dataObj->boletoCreditCardEnabled = $storeConfig->getMultimethodsBilletCard();
return $dataObj;
}
static private function fillWithTwoCreditCardsConfig($dataObj, $storeConfig)
{
- $dataObj->twoCreditCardsEnabled = $storeConfig->is_active_2_cards();
+ $dataObj->twoCreditCardsEnabled = $storeConfig->getMultimethods2Card();
return $dataObj;
}
static private function fillWithMultiBuyerConfig($dataObj, $storeConfig)
{
- $dataObj->multibuyer = $storeConfig->is_active_multicustomers();
+ $dataObj->multibuyer = $storeConfig->getMulticustomers();
return $dataObj;
}
@@ -222,15 +215,10 @@ static private function fillWithMultiBuyerConfig($dataObj, $storeConfig)
static private function fillWithPagarmeKeys($dataObj, $storeConfig)
{
$options = [
- Configuration::KEY_SECRET => $storeConfig->production_secret_key,
- Configuration::KEY_PUBLIC => $storeConfig->production_public_key
+ Configuration::KEY_SECRET => $storeConfig->getSecretKey(),
+ Configuration::KEY_PUBLIC => $storeConfig->getPublicKey()
];
- if ($dataObj->testMode) {
- $options[Configuration::KEY_SECRET] .= $storeConfig->sandbox_secret_key;
- $options[Configuration::KEY_PUBLIC] .= $storeConfig->sandbox_public_key;
- }
-
$options = (object) $options;
$dataObj->keys = $options;
@@ -239,8 +227,8 @@ static private function fillWithPagarmeKeys($dataObj, $storeConfig)
static private function fillWithGeneralConfig($dataObj, $storeConfig)
{
- $dataObj->enabled = $storeConfig->is_enabled();
- $dataObj->testMode = $storeConfig->is_sandbox();
+ $dataObj->enabled = (bool)$storeConfig->getEnabled();
+ $dataObj->testMode = $storeConfig->getIsSandboxMode();
$dataObj->sendMail = false;
$dataObj->createOrder = false;
@@ -256,7 +244,7 @@ static private function getBrandConfig($storeConfig)
{
$brands = array_merge(
[''],
- $storeConfig->get_flags_list()
+ $storeConfig->getCcFlags()
);
$cardConfigs = [];
@@ -269,7 +257,7 @@ static private function getBrandConfig($storeConfig)
$brandMethod = 'nobrand';
}
- $settingsByBrand = $storeConfig->cc_installments_by_flag;
+ $settingsByBrand = $storeConfig->getCcInstallmentsByFlag();
$max = !empty($settingsByBrand) && array_key_exists($brand, $settingsByBrand['max_installment']) ?
$settingsByBrand['max_installment'][$brand] : 0;
@@ -280,10 +268,10 @@ static private function getBrandConfig($storeConfig)
}
if (empty($max)) {
- $max = $storeConfig->cc_installments_maximum;
- $initial = $storeConfig->cc_installments_interest;
- $incremental = $storeConfig->cc_installments_interest_increase;
- $maxWithout = $storeConfig->cc_installments_without_interest;
+ $max = $storeConfig->getCcInstallmentsMaximum();
+ $initial = $storeConfig->getCcInstallmentsInterest();
+ $incremental = $storeConfig->getCcInstallmentsInterestIncrease();
+ $maxWithout = $storeConfig->getCcInstallmentsWithoutInterest();
}
$minValue = null;
@@ -328,12 +316,8 @@ static private function fillWithRecurrenceConfig(&$dataObj, $storeConfig)
static private function fillWithHubConfig($dataObj, $storeConfig)
{
- $dataObj->hubInstallId = null;
- $dataObj->hubEnvironment = null;
- if ($storeConfig->isHubEnabled()) {
- $dataObj->hubInstallId = $storeConfig->hub_install_id;
- $dataObj->hubEnvironment = $storeConfig->hub_environment;
- }
+ $dataObj->hubInstallId = $storeConfig->getHubInstallId();
+ $dataObj->hubEnvironment = $storeConfig->getHubEnvironment();
return $dataObj;
}
}
diff --git a/src/Concrete/WoocommercePlatformOrderDecorator.php b/src/Concrete/WoocommercePlatformOrderDecorator.php
index f70c6cf0..07e03944 100644
--- a/src/Concrete/WoocommercePlatformOrderDecorator.php
+++ b/src/Concrete/WoocommercePlatformOrderDecorator.php
@@ -241,7 +241,7 @@ public function canInvoice()
public function getIncrementId()
{
- return $this->getPlatformOrder()->get_order_number();
+ return $this->getPlatformOrder()->get_id();
}
public function getGrandTotal()
@@ -364,7 +364,7 @@ public function getInvoiceCollection()
*/
public function getPagarmeId()
{
- $orderId = $this->platformOrder->get_order_number();
+ $orderId = $this->platformOrder->get_id();
if (empty($orderId)) {
return null;
}
@@ -420,7 +420,7 @@ public function getCustomer()
*/
private function getRegisteredCustomer($woocommerceCustomerId)
{
- $order = new Order($this->getPlatformOrder()->get_order_number());
+ $order = new Order($this->getPlatformOrder()->get_id());
$address = Utils::build_customer_address_from_order($order);
$document = Utils::build_document_from_order($order);
@@ -475,7 +475,7 @@ private function getRegisteredCustomer($woocommerceCustomerId)
*/
private function getGuestCustomer()
{
- $order = new Order($this->getPlatformOrder()->get_order_number());
+ $order = new Order($this->getPlatformOrder()->get_id());
$address = Utils::build_customer_address_from_order($order);
$document = Utils::build_document_from_order($order);
@@ -768,7 +768,7 @@ private function extractBasePaymentData()
$newPaymentData->amount = $amount;
- if ($this->formData["enable_multicustomers_card"]) {
+ if (isset($this->formData["enable_multicustomers_card"]) && $this->formData["enable_multicustomers_card"]) {
$newPaymentData->customer = $this->extractMultibuyerData(
'card'
);
@@ -823,9 +823,8 @@ private function extractPaymentDataFromTwoCreditCards(&$paymentData)
$multiCustomerFlag = empty($index) ? "enable_multicustomers_card1"
: "enable_multicustomers_card2";
if ($this->formData[$multiCustomerFlag]) {
- $card = array_pop(
- explode("_", $multiCustomerFlag)
- );
+ $flag = explode("_", $multiCustomerFlag);
+ $card = array_pop($flag);
$newPaymentData->customer = $this->extractMultibuyerData(
$card
@@ -844,7 +843,7 @@ private function extractMultibuyerData(
return null;
}
- $order = new Order($this->getPlatformOrder()->get_order_number());
+ $order = new Order($this->getPlatformOrder()->get_id());
$fields = [
"multicustomer_{$paymentMethod}[name]" => "name",
@@ -952,7 +951,7 @@ private function extractPaymentDataFromBilletCreditcard(&$paymentData)
$paymentData[$boletoDataIndex] = [];
}
- if ($this->formData["enable_multicustomers_billet"]) {
+ if (isset($this->formData["enable_multicustomers_billet"]) && $this->formData["enable_multicustomers_billet"]) {
$newPaymentData->customer = $this->extractMultibuyerData(
'billet'
);
@@ -977,7 +976,7 @@ private function extractPaymentDataFromBillet(&$paymentData)
$paymentData[$boletoDataIndex] = [];
}
- if ($this->formData["enable_multicustomers_billet"]) {
+ if (isset($this->formData["enable_multicustomers_billet"]) && $this->formData["enable_multicustomers_billet"]) {
$newPaymentData->customer = $this->extractMultibuyerData(
'billet'
);
@@ -1001,7 +1000,7 @@ private function extractPaymentDataFromPix(&$paymentData)
$paymentData[$pixDataIndex] = [];
}
- if ($this->formData["enable_multicustomers_pix"]) {
+ if (isset($this->formData["enable_multicustomers_pix"]) && $this->formData["enable_multicustomers_pix"]) {
$newPaymentData->customer = $this->extractMultibuyerData(
'pix'
);
@@ -1012,7 +1011,7 @@ private function extractPaymentDataFromPix(&$paymentData)
private function extractPaymentDataFromVoucher(&$paymentData)
{
- $identifier = $this->formData["pagarmetoken6"];
+ $identifier = $this->formData["pagarmetoken1"];
if (!$identifier) {
$identifier = $this->formData["card_id"];
}
@@ -1029,13 +1028,13 @@ private function extractPaymentDataFromVoucher(&$paymentData)
$amount = str_replace('.', '', $amount);
$amount = str_replace(',', '', $amount);
$newPaymentData->amount = $amount;
-
+
if ($this->formData["enable_multicustomers_voucher"]) {
$newPaymentData->customer = $this->extractMultibuyerData(
'voucher'
);
}
-
+
$voucherDataIndex = NewVoucherPayment::getBaseCode();
$newPaymentData->saveOnSuccess =
isset($this->formData["save_credit_card"]);
diff --git a/src/Concrete/WoocommercePlatformPaymentMethodDecorator.php b/src/Concrete/WoocommercePlatformPaymentMethodDecorator.php
index dd36e76d..c2f07b3b 100644
--- a/src/Concrete/WoocommercePlatformPaymentMethodDecorator.php
+++ b/src/Concrete/WoocommercePlatformPaymentMethodDecorator.php
@@ -12,6 +12,8 @@ class WoocommercePlatformPaymentMethodDecorator implements PlatformPaymentMethod
const TWO_CREDIT_CARDS = '2Cards';
const VOUCHER = 'voucher';
const DEBIT = "debit";
+
+ /** @var string */
const PIX = "pix";
private $paymentMethod;
@@ -19,13 +21,11 @@ class WoocommercePlatformPaymentMethodDecorator implements PlatformPaymentMethod
public function setPaymentMethod($platformOrder)
{
$paymentMethod = $platformOrder->getPaymentMethodPlatform();
- if (
- $paymentMethod === self::BOLETO_CREDIT_CARD ||
- $paymentMethod === self::TWO_CREDIT_CARDS
- ) {
+ if (in_array($paymentMethod, [self::BOLETO_CREDIT_CARD, self::TWO_CREDIT_CARDS])) {
$paymentMethod = self::CREDIT_CARD;
}
- $this->paymentMethod = $this->{$paymentMethod}();
+ $method = 'get' . str_replace(' ', '', ucwords(str_replace('-', ' ', $paymentMethod)));
+ $this->paymentMethod = $this->{$method}();
}
public function getPaymentMethod()
@@ -33,7 +33,7 @@ public function getPaymentMethod()
return $this->paymentMethod;
}
- private function creditcard()
+ private function getCreditCard()
{
return self::CREDIT_CARD;
}
@@ -42,22 +42,22 @@ private function creditcard()
* @return string
* @uses WoocommercePlatformPaymentMethodDecorator::setPaymentMethod()
*/
- private function billet()
+ private function getBillet()
{
return self::BOLETO;
}
- private function voucher()
+ private function getVoucher()
{
return self::VOUCHER;
}
- private function debit()
+ private function getDebit()
{
return self::DEBIT;
}
- private function pix()
+ private function getPix()
{
return self::PIX;
}
diff --git a/src/Controller/Accounts.php b/src/Controller/Accounts.php
index 4ccb214f..ce7fb40c 100644
--- a/src/Controller/Accounts.php
+++ b/src/Controller/Accounts.php
@@ -6,25 +6,31 @@
exit(0);
}
+use Woocommerce\Pagarme\Block\Account\Wallet;
use Woocommerce\Pagarme\Helper\Utils;
use Woocommerce\Pagarme\Model\Account;
use Woocommerce\Pagarme\Model\Customer;
use Pagarme\Core\Payment\Repositories\SavedCardRepository as CoreSavedCardRepository;
+use Woocommerce\Pagarme\Block\Template;
class Accounts
{
protected $wallet_endpoint;
protected $card_repository;
+ protected $template;
const WALLET_ENDPOINT = 'wallet-pagarme';
const OPT_WALLET_ENDPOINT = 'woocommerce_pagarme_wallet_endpoint';
- public function __construct()
+ public function __construct(
+ Template $template = null
+ )
{
+ $this->template = $template ?? new Template();
+
$this->wallet_endpoint = get_option(self::OPT_WALLET_ENDPOINT, self::WALLET_ENDPOINT);
$this->card_repository = new CoreSavedCardRepository();
-
add_action('init', array($this, 'add_endpoints'));
add_filter('woocommerce_account_settings', array($this, 'settings_account'));
add_filter('woocommerce_account_menu_items', array($this, 'menu_items'));
@@ -78,7 +84,10 @@ public function settings_account($settings)
public function wallet_content()
{
- Utils::get_template('templates/myaccount/wallet');
+ $this->template->createBlock(
+ \Woocommerce\Pagarme\Block\Account\Wallet::class,
+ 'pagarme-wallet'
+ )->toHtml();
}
public function remove_credit_card()
diff --git a/src/Controller/Checkout.php b/src/Controller/Checkout.php
index 0ee89ced..073d3e02 100644
--- a/src/Controller/Checkout.php
+++ b/src/Controller/Checkout.php
@@ -6,13 +6,13 @@
exit(0);
}
+use Woocommerce\Pagarme\Controller\Gateways\AbstractGateway;
+use Woocommerce\Pagarme\Model\CardInstallments;
+use Woocommerce\Pagarme\Model\Config;
use Woocommerce\Pagarme\Model\Order;
use Woocommerce\Pagarme\Model\Customer;
-use Woocommerce\Pagarme\Model\Gateway;
-use Woocommerce\Pagarme\Model\Setting;
use Woocommerce\Pagarme\Helper\Utils;
use Woocommerce\Pagarme\Model;
-use Woocommerce\Pagarme\Controller\Orders;
use WC_Order;
@@ -22,16 +22,19 @@ class Checkout
protected $payment_methods = [];
- public function __construct()
- {
- $this->ordersController = new Orders();
+ /** @var CardInstallments */
+ protected $cardInstallments;
+ public function __construct(
+ CardInstallments $cardInstallments = null
+ ) {
+ $this->ordersController = new Orders();
add_action('woocommerce_api_' . Model\Checkout::API_REQUEST, array($this, 'process_checkout_transparent'));
- add_action('woocommerce_view_order', array('Woocommerce\Pagarme\View\Checkouts', 'render_payment_details'));
+ $oaymentDetails = new \Woocommerce\Pagarme\Block\Order\PaymentDetails();
+ add_action('woocommerce_view_order', [$oaymentDetails, 'render']);
add_action('wp_ajax_xqRhBHJ5sW', array($this, 'build_installments'));
add_action('wp_ajax_nopriv_xqRhBHJ5sW', array($this, 'build_installments'));
add_filter('wcbcf_billing_fields', array($this, 'set_required_fields'));
-
$this->payment_methods = [
'credit_card' => __('Credit card', 'woo-pagarme-payments'),
'billet' => __('Boleto', 'woo-pagarme-payments'),
@@ -40,6 +43,10 @@ public function __construct()
'billet_and_card' => __('Credit card and Boleto', 'woo-pagarme-payments'),
'voucher' => __('Voucher', 'woo-pagarme-payments'),
];
+ $this->cardInstallments = $cardInstallments;
+ if (!$this->cardInstallments) {
+ $this->cardInstallments = new CardInstallments;
+ }
}
public function process_checkout_transparent(WC_Order $wc_order = null): bool
@@ -68,10 +75,10 @@ public function process_checkout_transparent(WC_Order $wc_order = null): bool
$fields
);
- $order = new Order($wc_order->get_order_number());
+ $order = new Order($wc_order->get_id());
$order->payment_method = $fields['payment_method'];
$order->update_meta('_payment_method_title', $this->payment_methods[$fields['payment_method']]);
- $order->update_meta('_payment_method', Gateways::PAYMENT_METHOD);
+ $order->update_meta('_payment_method', AbstractGateway::PAGARME . ' ' . $this->payment_methods[$fields['payment_method']]);
WC()->cart->empty_cart();
if ($response) {
$order->transaction_id = $response->getPagarmeId()->getValue();
@@ -87,21 +94,22 @@ public function process_checkout_transparent(WC_Order $wc_order = null): bool
return false;
}
+ /**
+ * @return void
+ */
public function build_installments()
{
if (!Utils::is_request_ajax() || Utils::server('REQUEST_METHOD') !== 'GET') {
exit(0);
}
- $flag = Utils::get('flag', false, 'esc_html');
- $total = Utils::get('total', false);
-
- $gateway = new Gateway();
- // TODO: get installments from core's installment service;
- $html = $gateway->get_installments_by_type($total, $flag);
+ $html = $this->cardInstallments->renderOptions(
+ $this->cardInstallments->getInstallmentsByType(
+ Utils::get('total', false),
+ Utils::get('flag', false, 'esc_html')
+ ));
echo wp_kses_no_null($html);
-
exit();
}
@@ -256,11 +264,11 @@ private function validate_amount_2_cards($fields, WC_Order $wc_order)
private function validate_brands($fields)
{
- $setting = Setting::get_instance();
+ $config = new Config();
$brand1 = Utils::get_value_by($fields, 'brand');
$brand2 = Utils::get_value_by($fields, 'brand2');
- $flags = $setting->cc_flags;
+ $flags = $config->getCcFlags;
if (empty($flags)) {
return;
diff --git a/src/Controller/Checkout/Card.php b/src/Controller/Checkout/Card.php
new file mode 100644
index 00000000..d2f6ddb1
--- /dev/null
+++ b/src/Controller/Checkout/Card.php
@@ -0,0 +1,71 @@
+gateway = $gateway;
+ if (!$this->gateway) {
+ $this->gateway = new Gateway;
+ }
+ $this->json = $json;
+ if (!$this->json) {
+ $this->json = new Json;
+ }
+ $this->_init();
+ }
+
+ /**
+ * @return void
+ */
+ private function _init()
+ {
+ add_action('wp_ajax_pagarme_checkout_card_config_provider', [$this, 'getJsConfigDataProvider']);
+ add_action('wp_ajax_nopriv_pagarme_checkout_card_config_provider', [$this, 'getJsConfigDataProvider']);
+ }
+
+ /**
+ * @return string
+ */
+ public function getJsConfigDataProvider()
+ {
+ $config = $this->gateway->getConfigDataProvider();
+ return $this->json->serialize($config);
+ }
+}
diff --git a/src/Controller/Gateways.php b/src/Controller/Gateways.php
deleted file mode 100644
index 19fcf604..00000000
--- a/src/Controller/Gateways.php
+++ /dev/null
@@ -1,1266 +0,0 @@
-model = new Gateway();
-
- $this->id = 'woo-pagarme-payments';
- $this->method_title = __('Pagar.me Payments', 'woo-pagarme-payments');
- $this->method_description = __('Payment Gateway Pagar.me', 'woo-pagarme-payments');
- $this->has_fields = false;
- $this->icon = Core::plugins_url('assets/images/logo.png');
-
- $this->init_form_fields();
- $this->init_settings();
-
- $this->enabled = $this->get_option('enabled', 'no');
- $this->title = $this->get_option('title');
- $this->has_fields = true;
-
- if (is_admin()) {
- add_action('woocommerce_update_options_payment_gateways_' . $this->id, array($this, 'process_admin_options'));
- }
-
- add_action('woocommerce_receipt_' . $this->id, array($this, 'receipt_page'));
- add_action('woocommerce_thankyou_' . self::PAYMENT_METHOD, array($this, 'thank_you_page'));
- }
-
- public function payment_fields()
- {
- echo (Utils::get_template_as_string(
- 'templates/checkout/main',
- array(
- 'model' => $this->model,
- )
- ));
- }
-
- /**
- * Output the admin options table.
- *
- * @since 1.0
- * @param null
- * @return Void
- */
- public function admin_options()
- {
- printf(
- '%s
- ',
- __('General', 'woo-pagarme-payments'),
- Utils::get_component('settings'),
- $this->generate_settings_html($this->get_form_fields(), false)
- );
- }
-
- /**
- * Return the name of the option in the WP DB.
- * @since 1.0
- * @return string
- */
- public function get_option_key()
- {
- return $this->model->settings->get_option_key();
- }
-
- public function is_available()
- {
- return ($this->model->settings->is_enabled() && !$this->get_errors() && $this->model->supported_currency());
- }
-
- public function init_form_fields()
- {
- $this->form_fields = array(
- 'enabled' => $this->field_enabled(),
- 'hub_button_integration' => $this->field_hub_button_integration(),
- 'hub_environment' => $this->field_hub_environment(),
- 'title' => $this->field_title(),
- 'is_gateway_integration_type' => $this->field_is_gateway_integration_type(),
- 'section_payment_settings' => $this->section_payment_settings(),
- 'enable_credit_card' => $this->field_enable_credit_card(),
- 'enable_pix' => $this->field_enable_pix(),
- 'enable_billet' => $this->field_enable_billet(),
- 'enable_voucher' => $this->field_enable_voucher(),
- 'multimethods_2_cards' => $this->field_multimethods_2_cards(),
- 'multimethods_billet_card' => $this->field_multimethods_billet_card(),
- 'multicustomers' => $this->field_multicustomers(),
- 'section_credit_card' => $this->section_credit_card(),
- 'cc_operation_type' => $this->field_cc_operation_type(),
- 'cc_soft_descriptor' => $this->field_cc_soft_descriptor(),
- 'cc_flags' => $this->field_cc_flags(),
- 'cc_allow_save' => $this->field_cc_allow_save(),
- 'cc_installment_type' => $this->field_cc_installment_type(),
- 'cc_installments_maximum' => $this->field_cc_installment_fields('maximum'),
- 'cc_installments_min_amount' => $this->field_cc_installment_fields('installment_min_amount'),
- 'cc_installments_interest' => $this->field_cc_installment_fields('interest'),
- 'cc_installments_interest_increase' => $this->field_cc_installment_fields('interest_increase'),
- 'cc_installments_without_interest' => $this->field_cc_installment_fields('without_interest'),
- 'cc_installments_by_flag' => $this->field_cc_installment_fields('flags'),
- 'section_pix' => $this->section_pix(),
- 'pix_qrcode_expiration_time' => $this->field_pix_qrcode_expiration_time(),
- 'pix_additional_data' => $this->field_pix_additional_data(),
- 'section_billet' => $this->section_billet(),
- 'billet_bank' => $this->field_billet_bank(),
- 'billet_deadline_days' => $this->field_billet_deadline_days(),
- 'billet_instructions' => $this->field_billet_instructions(),
- 'section_voucher' => $this->section_voucher(),
- 'voucher_soft_descriptor' => $this->field_voucher_soft_descriptor(),
- 'field_voucher_flags' => $this->field_voucher_flags(),
- 'voucher_card_wallet' => $this->field_voucher_card_wallet(),
- 'section_antifraud' => $this->section_antifraud(),
- 'antifraud_enabled' => $this->antifraud_enabled(),
- 'antifraud_min_value' => $this->antifraud_min_value(),
- 'section_tools' => $this->section_tools(),
- 'enable_logs' => $this->field_enabled_logs(),
- );
- }
-
- public function process_payment($order_id): array
- {
- $wc_order = new WC_Order($order_id);
- $formattedPost['order'] = $order_id;
- $formattedPost['fields'] = array();
- $paymentMethod = sanitize_text_field($_POST['pagarme_payment_method']);
-
- $formattedPost = $this->formatPOST($formattedPost, $paymentMethod);
- $_POST = $formattedPost;
-
- $checkout = new Checkout();
- $checkout->process_checkout_transparent($wc_order);
-
- return array(
- 'result' => 'success',
- 'redirect' => $this->get_return_url($wc_order)
- );
- }
-
- private function formatPOST($formattedPost, $paymentMethod)
- {
- $filteredPost = array_intersect_key($_POST, array_flip(
- $this->dataToFilterFromPost($paymentMethod)
- ));
-
- $formattedPost = $this->addsFilteredDataInFormattedPostArray($filteredPost, $formattedPost);
-
- $formattedPost = $this->renameFieldsFromFormattedPost($formattedPost, $paymentMethod);
-
- $formattedPost = $this->formatMulticustomerCardArray($formattedPost);
-
- return $formattedPost;
- }
-
- private function addsFilteredDataInFormattedPostArray($filteredPost, $formattedPost)
- {
- foreach ($filteredPost as $key => $value) {
- array_push($formattedPost['fields'], [
- "name" => sanitize_text_field($key),
- "value" => $this->sanitize_field($value)
- ]);
- }
-
- return $formattedPost;
- }
-
- private function sanitize_field($field)
- {
- if (is_array($field)) {
- $sanitizedData = [];
- foreach ($field as $key => $value) {
- $sanitizedData[$key] = sanitize_text_field($value);
- }
- return $sanitizedData;
- }
-
- return sanitize_text_field($field);
- }
-
- private function formatMulticustomerCardArray($formattedPost)
- {
- foreach ($formattedPost['fields'] as $fieldsValue) {
- if (strstr($fieldsValue['name'], 'multicustomer_')) {
- $formattedPost = $this->addsDataInFormattedPost(
- $fieldsValue['value'],
- $fieldsValue['name'],
- $formattedPost
- );
- }
- }
-
- return $formattedPost;
- }
-
- private function dataToFilterFromPost($paymentMethod)
- {
- switch ($paymentMethod) {
- case 'credit_card':
- return [
- 'brand1',
- 'pagarmetoken1',
- 'installments_card',
- 'multicustomer_card',
- 'pagarme_payment_method',
- 'enable_multicustomers_card',
- 'save_credit_card1',
- 'card_id'
- ];
- case '2_cards':
- return [
- 'card_order_value',
- 'brand2',
- 'pagarmetoken2',
- 'installments',
- 'multicustomer_card1',
- 'card_order_value2',
- 'brand3',
- 'pagarmetoken3',
- 'installments2',
- 'multicustomer_card2',
- 'pagarme_payment_method',
- 'enable_multicustomers_card1',
- 'enable_multicustomers_card2',
- 'save_credit_card2',
- 'save_credit_card3',
- 'card_id2',
- 'card_id3'
- ];
- case 'billet-and-card':
- return [
- 'card_billet_order_value',
- 'installments3',
- 'multicustomer_card_billet',
- 'billet_value',
- 'brand4',
- 'pagarmetoken4',
- 'multicustomer_billet_card',
- 'pagarme_payment_method',
- 'enable_multicustomers_billet',
- 'enable_multicustomers_card',
- 'save_credit_card4',
- 'card_id4'
- ];
- case 'billet':
- return [
- 'multicustomer_billet',
- 'pagarme_payment_method',
- 'enable_multicustomers_billet',
- ];
- case 'pix':
- return [
- 'multicustomer_pix',
- 'pagarme_payment_method',
- 'enable_multicustomers_pix',
- ];
- case 'voucher':
- return [
- 'multicustomer_voucher',
- 'brand6',
- 'pagarme_payment_method',
- 'pagarmetoken6',
- 'enable_multicustomers_voucher',
- 'save_credit_card6',
- 'card_id6'
- ];
- default:
- return $_POST;
- }
- }
-
-
- private function addsDataInFormattedPost(
- $fieldValue,
- $fieldValueName,
- $formattedPost
- ) {
- foreach ($fieldValue as $key => $value) {
- array_push($formattedPost['fields'], [
- "name" => $fieldValueName . '[' . $key . ']',
- "value" => $value
- ]);
- }
-
- return $formattedPost;
- }
-
- private function renameFieldsFromFormattedPost($formattedPost, $paymentMethod)
- {
- foreach ($formattedPost['fields'] as $arrayFieldKey => $field) {
-
- $formattedPost = $this->applyForAllFields(
- $field,
- $formattedPost,
- $arrayFieldKey
- );
-
- if ($paymentMethod == 'credit_card') {
- $formattedPost = $this->applyForCardCreditField(
- $field,
- $formattedPost,
- $arrayFieldKey
- );
- }
-
- if ($paymentMethod == 'billet-and-card') {
- $formattedPost = $this->applyForBilletAndCardField(
- $field,
- $formattedPost,
- $arrayFieldKey
- );
- }
-
- if ($paymentMethod == '2_cards') {
- $formattedPost = $this->applyFor2CardField(
- $field,
- $formattedPost,
- $arrayFieldKey
- );
- }
-
- if ($paymentMethod == 'voucher') {
- $formattedPost = $this->applyForCardCVoucherField(
- $field,
- $formattedPost,
- $arrayFieldKey
- );
- }
- }
-
- return $formattedPost;
- }
-
- private function applyForAllFields(
- $field,
- $formattedPost,
- $arrayFieldKey
- ) {
- if (in_array('pagarme_payment_method', $field)) {
- $field['name'] = 'payment_method';
- $formattedPost['fields'][$arrayFieldKey] = $field;
- }
-
- return $formattedPost;
- }
-
- private function applyForCardCreditField(
- $field,
- $formattedPost,
- $arrayFieldKey
- ) {
-
- $dictionary = [
- 'installments_card' => 'installments',
- 'brand1' => 'brand',
- 'save_credit_card1' => 'save_credit_card'
- ];
-
- foreach ($dictionary as $fieldKey => $formatedPostKey) {
- if (in_array($fieldKey, $field)) {
- $field['name'] = $formatedPostKey;
- $formattedPost['fields'][$arrayFieldKey] = $field;
- }
- }
-
- return $formattedPost;
- }
-
- private function applyForCardCVoucherField(
- $field,
- $formattedPost,
- $arrayFieldKey
- ) {
- $dictionary = [
- 'card_id6' => 'card_id',
- 'brand6' => 'brand',
- 'save_credit_card6' => 'save_credit_card'
- ];
- foreach ($dictionary as $fieldKey => $formatedPostKey) {
- if (in_array($fieldKey, $field)) {
- $field['name'] = $formatedPostKey;
- $formattedPost['fields'][$arrayFieldKey] = $field;
- }
- }
- return $formattedPost;
- }
-
- private function applyForBilletAndCardField(
- $field,
- $formattedPost,
- $arrayFieldKey
- ) {
-
- $dictionary = [
- 'card_billet_order_value' => 'card_order_value',
- 'multicustomer_card_billet' => 'multicustomer_card',
- 'multicustomer_billet_card' => 'multicustomer_billet',
- 'brand4' => 'brand',
- 'installments3' => 'installments',
- 'pagarmetoken4' => 'pagarmetoken1',
- 'card_id4' => 'card_id',
- 'save_credit_card4' => 'save_credit_card'
- ];
-
- foreach ($dictionary as $fieldKey => $formatedPostKey) {
- if (in_array($fieldKey, $field)) {
- $field['name'] = $formatedPostKey;
- $formattedPost['fields'][$arrayFieldKey] = $field;
- }
- }
-
- if (in_array('pagarme_payment_method', $field)) {
- $field['name'] = 'payment_method';
- $field['value'] = 'billet_and_card';
- $formattedPost['fields'][$arrayFieldKey] = $field;
- }
-
- return $formattedPost;
- }
-
- private function applyFor2CardField(
- $field,
- $formattedPost,
- $arrayFieldKey
- ) {
-
- $dictionary = [
- 'brand2' => 'brand',
- 'brand3' => 'brand2',
- 'pagarmetoken2' => 'pagarmetoken1',
- 'pagarmetoken3' => 'pagarmetoken2',
- 'card_id2' => 'card_id',
- 'card_id3' => 'card_id2',
- 'save_credit_card2' => 'save_credit_card',
- 'save_credit_card3' => 'save_credit_card2'
-
- ];
-
- foreach ($dictionary as $fieldKey => $formatedPostKey) {
- if (in_array($fieldKey, $field)) {
- $field['name'] = $formatedPostKey;
- $formattedPost['fields'][$arrayFieldKey] = $field;
- }
- }
-
- return $formattedPost;
- }
-
- public function receipt_page($order_id)
- {
- $this->checkout_transparent($order_id);
- }
-
- public function thank_you_page($order_id)
- {
- $order = new WC_Order($order_id);
-
- require_once Core::get_file_path('thank-you-page.php', 'templates/');
- }
-
- public function checkout_transparent($order_id)
- {
- $wc_order = new WC_Order($order_id);
-
- require_once Core::get_file_path('main.php', 'templates/checkout/');
- }
-
- public function section_payment_settings()
- {
- return array(
- 'title' => __('Payment methods', 'woo-pagarme-payments'),
- 'type' => 'title',
- );
- }
-
- public function field_enabled()
- {
- return array(
- 'title' => __('Enable', 'woo-pagarme-payments'),
- 'type' => 'checkbox',
- 'label' => __('Enable Pagar.me', 'woo-pagarme-payments'),
- 'default' => 'no',
- );
- }
-
- public function field_title()
- {
- return array(
- 'title' => __('Checkout title', 'woo-pagarme-payments'),
- 'description' => __('Name shown to the customer in the checkout page.', 'woo-pagarme-payments'),
- 'desc_tip' => true,
- 'default' => __('Pagar.me', 'woo-pagarme-payments'),
- );
- }
-
- public function field_is_gateway_integration_type()
- {
- return array(
- 'title' => __('Advanced settings', 'woo-pagarme-payments'),
- 'type' => 'checkbox',
- 'label' => __('Enable advanced settings', 'woo-pagarme-payments'),
- 'default' => 'no',
- 'description' => __('Configurations that only works for Gateway customers, who have a direct contract with an acquirer.', 'woo-pagarme-payments'),
- 'desc_tip' => true,
- 'custom_attributes' => array(
- 'data-action' => 'is-gateway-integration-type',
- ),
- );
- }
-
- public function field_enable_credit_card()
- {
- return array(
- 'title' => __('Credit card', 'woo-pagarme-payments'),
- 'type' => 'checkbox',
- 'label' => __('Enable credit card', 'woo-pagarme-payments'),
- 'default' => 'yes',
- );
- }
-
- public function field_enable_pix()
- {
- return array(
- 'title' => __('Pix', 'woo-pagarme-payments'),
- 'type' => 'checkbox',
- 'label' => __('Enable pix', 'woo-pagarme-payments'),
- 'default' => 'no'
- );
- }
-
- public function field_enable_voucher()
- {
- return array(
- 'title' => __('Voucher', 'woo-pagarme-payments'),
- 'type' => 'checkbox',
- 'label' => __('Enable voucher', 'woo-pagarme-payments'),
- 'default' => 'no'
- );
- }
-
- public function field_voucher_card_wallet()
- {
- return array(
- 'title' => __('Card Wallet', 'woo-pagarme-payments'),
- 'desc_tip' => __('Enable Card Wallet', 'woo-pagarme-payments'),
- 'type' => 'checkbox',
- 'label' => __('Card Wallet', 'woo-pagarme-payments'),
- 'default' => 'no',
- 'custom_attributes' => array(
- 'data-field' => 'voucher-card-wallet',
- ),
- );
- }
-
- public function field_enable_billet()
- {
- return array(
- 'title' => __('Boleto', 'woo-pagarme-payments'),
- 'type' => 'checkbox',
- 'label' => __('Enable boleto', 'woo-pagarme-payments'),
- 'default' => 'yes',
- 'custom_attributes' => array(
- 'data-action' => 'enable-billet',
- 'data-requires-field' => 'billet-bank',
- ),
- );
- }
-
- public function field_multimethods_2_cards()
- {
- return array(
- 'title' => __('Multi-means (2 Credit cards)', 'woo-pagarme-payments'),
- 'type' => 'checkbox',
- 'label' => __('Enable multi-means (2 Credit cards)', 'woo-pagarme-payments'),
- 'default' => 'no',
- );
- }
-
- public function field_multimethods_billet_card()
- {
- return array(
- 'title' => __('Multi-means (Boleto + Credit card)', 'woo-pagarme-payments'),
- 'type' => 'checkbox',
- 'label' => __('Enable multi-means (Boleto + Credit card)', 'woo-pagarme-payments'),
- 'default' => 'no',
- 'custom_attributes' => array(
- 'data-action' => 'enable-multimethods-billet-card',
- 'data-requires-field' => 'billet-bank',
- ),
- );
- }
-
- public function field_multicustomers()
- {
- return array(
- 'title' => __('Multi-buyers', 'woo-pagarme-payments'),
- 'type' => 'checkbox',
- 'label' => __('Enable multi-buyers', 'woo-pagarme-payments'),
- 'default' => 'no',
- );
- }
-
- public function section_voucher()
- {
- return array(
- 'title' => __('Voucher settings', 'woo-pagarme-payments'),
- 'type' => 'title',
- 'custom_attributes' => array(
- 'data-field' => 'voucher-section',
- )
- );
- }
-
- public function field_voucher_soft_descriptor()
- {
- return array(
- 'title' => __('Soft descriptor', 'woo-pagarme-payments'),
- 'desc_tip' => __('Description that appears on the voucher bill.', 'woo-pagarme-payments'),
- 'description' => sprintf(__("Max length of %s characters.", 'woo-pagarme-payments'), 13),
- 'custom_attributes' => array(
- 'data-field' => 'voucher-soft-descriptor',
- 'data-action' => 'voucher-soft-descriptor',
- 'data-element' => 'validate',
- 'maxlength' => 22,
- 'data-error-msg' => __('This field is required.', 'woo-pagarme-payments'),
- ),
- );
- }
-
- public function field_voucher_flags()
- {
- return array(
- 'type' => 'multiselect',
- 'title' => __('Voucher Card Brands', 'woo-pagarme-payments'),
- 'select_buttons' => false,
- 'class' => 'wc-enhanced-select',
- 'options' => array(
- 'alelo' => 'Alelo',
- 'sodexo' => 'Sodexo',
- 'vr' => 'VR',
- ),
- 'custom_attributes' => array(
- 'data-field' => 'voucher-flags-select',
- 'data-element' => 'voucher-flags-select',
- 'data-action' => 'flags',
- ),
- );
- }
-
- public function section_credit_card()
- {
- return array(
- 'title' => __('Credit card settings', 'woo-pagarme-payments'),
- 'type' => 'title',
- );
- }
-
- public function field_cc_operation_type()
- {
- return array(
- 'type' => 'select',
- 'title' => __('Operation Type', 'woo-pagarme-payments'),
- 'class' => 'wc-enhanced-select',
- 'default' => 1,
- 'options' => array(
- 1 => __('Authorize', 'woo-pagarme-payments'),
- 2 => __('Authorize and Capture', 'woo-pagarme-payments'),
- ),
- );
- }
-
- public function field_cc_soft_descriptor()
- {
- return array(
- 'title' => __('Soft descriptor', 'woo-pagarme-payments'),
- 'desc_tip' => __('Description that appears on the credit card bill.', 'woo-pagarme-payments'),
- 'description' => sprintf(__("Max length of %s characters.", 'woo-pagarme-payments'), 13),
- 'custom_attributes' => array(
- 'data-field' => 'soft-descriptor',
- 'data-action' => 'soft-descriptor',
- 'data-element' => 'validate',
- 'maxlength' => 13,
- 'data-error-msg' => __('This field is required.', 'woo-pagarme-payments'),
- ),
- );
- }
-
- public function field_cc_allow_save()
- {
- return array(
- 'title' => __('Card wallet', 'woo-pagarme-payments'),
- 'type' => 'checkbox',
- 'label' => __('Enable card wallet', 'woo-pagarme-payments'),
- 'default' => 'no',
- 'description' => __('Allows for cards to be saved for future purchases.', 'woo-pagarme-payments'),
- 'desc_tip' => true,
- 'custom_attributes' => array(
- 'data-field' => 'cc-allow-save',
- ),
- );
- }
-
- public function field_cc_flags()
- {
- return array(
- 'type' => 'multiselect',
- 'title' => __('Card Brands', 'woo-pagarme-payments'),
- 'select_buttons' => false,
- 'class' => 'wc-enhanced-select',
- 'options' => $this->model->settings->get_flags_list(),
- 'custom_attributes' => array(
- 'data-field' => 'flags-select',
- 'data-element' => 'flags-select',
- 'data-action' => 'flags',
- ),
- );
- }
-
- public function field_cc_manual_capture()
- {
- return array(
- 'title' => __('Manual Capture', 'woo-pagarme-payments'),
- 'type' => 'checkbox',
- 'label' => __('Enable Manual Capture', 'woo-pagarme-payments'),
- 'default' => 'yes',
- );
- }
-
- public function field_cc_installment_type()
- {
- return array(
- 'title' => __('Installment configuration', 'woo-pagarme-payments'),
- 'type' => 'select',
- 'class' => 'wc-enhanced-select',
- 'label' => __('Choose the installment configuration', 'woo-pagarme-payments'),
- 'default' => 1,
- 'options' => array(
- Gateway::CC_TYPE_SINGLE => __('For all card brands', 'woo-pagarme-payments'),
- Gateway::CC_TYPE_BY_FLAG => __('By card brand', 'woo-pagarme-payments'),
- ),
- 'custom_attributes' => array(
- 'data-element' => 'installments-type-select',
- 'data-action' => 'installments-type',
- ),
- );
- }
-
- public function field_cc_installment_fields($field)
- {
- $installments = array();
-
- $installments['maximum'] = array(
- 'title' => __('Max number of installments', 'woo-pagarme-payments'),
- 'type' => 'select',
- 'default' => 12,
- 'options' => $this->model->get_installment_options(),
- 'custom_attributes' => array(
- 'data-field' => 'installments-maximum',
- ),
- );
-
- $installments['installment_min_amount'] = array(
- 'title' => __('Minimum installment amount', 'woo-pagarme-payments'),
- 'type' => 'text',
- 'description' => __('Defines the minimum value that an installment can assume', 'woo-pagarme-payments'),
- 'desc_tip' => true,
- 'placeholder' => '0.00',
- 'custom_attributes' => array(
- 'data-field' => 'installments-min-amount',
- 'data-mask' => '##0.00',
- 'data-mask-reverse' => 'true',
- ),
- );
-
- $installments['interest'] = array(
- 'title' => __('Initial interest rate (%)', 'woo-pagarme-payments'),
- 'type' => 'text',
- 'description' => __('Interest rate applied starting with the first installment with interest.', 'woo-pagarme-payments'),
- 'desc_tip' => true,
- 'placeholder' => '0.00',
- 'custom_attributes' => array(
- 'data-field' => 'installments-interest',
- 'data-mask' => '##0.00',
- 'data-mask-reverse' => 'true',
- ),
- );
-
- $installments['interest_increase'] = array(
- 'title' => __('Incremental interest rate (%)', 'woo-pagarme-payments'),
- 'type' => 'text',
- 'description' => __('Interest rate added for each installment with interest.', 'woo-pagarme-payments'),
- 'desc_tip' => true,
- 'placeholder' => '0.00',
- 'custom_attributes' => array(
- 'data-field' => 'installments-interest-increase',
- 'data-mask' => '##0.00',
- 'data-mask-reverse' => 'true',
- ),
- );
-
- $installments['without_interest'] = array(
- 'title' => __('Number of installments without interest', 'woo-pagarme-payments'),
- 'type' => 'select',
- 'default' => 3,
- 'options' => $this->model->get_installment_options(),
- 'custom_attributes' => array(
- 'data-field' => 'installments-without-interest',
- ),
- );
-
- $installments['flags'] = array(
- 'title' => __('Settings by card brand', 'woo-pagarme-payments'),
- 'type' => 'installments_by_flag',
- );
-
- return $installments[$field];
- }
-
- public function section_pix()
- {
- return array(
- 'title' => __('Pix settings', 'woo-pagarme-payments'),
- 'type' => 'title',
- );
- }
-
- public function field_pix_qrcode_expiration_time()
- {
- return array(
- 'title' => __('QR code expiration time', 'woo-pagarme-payments'),
- 'description' => __('Expiration time in seconds of the generated pix QR code.', 'woo-pagarme-payments'),
- 'desc_tip' => true,
- 'placeholder' => 3500,
- 'default' => 3500,
- 'custom_attributes' => array(
- 'data-mask' => '##0',
- 'data-mask-reverse' => 'true',
- ),
- );
- }
-
- public function field_pix_additional_data()
- {
- return array(
- 'title' => __('Additional information', 'woo-pagarme-payments'),
- 'description' => __('Set of key and value used to add information to the generated pix. This will be visible to the buyer during the payment process.', 'woo-pagarme-payments'),
- 'desc_tip' => true,
- 'type' => 'pix_additional_data',
- );
- }
-
- public function field_hub_button_integration()
- {
- return array(
- 'title' => __('Hub integration', 'woo-pagarme-payments'),
- 'type' => 'hub_button_integration',
- );
- }
-
- public function field_hub_environment()
- {
- return array(
- 'title' => __('Integration environment', 'woo-pagarme-payments'),
- 'type' => 'hub_environment',
- );
- }
-
- public function section_billet()
- {
- return array(
- 'title' => __('Boleto settings', 'woo-pagarme-payments'),
- 'type' => 'title',
- );
- }
-
- public function field_billet_bank()
- {
- return array(
- 'type' => 'select',
- 'title' => __('Bank', 'woo-pagarme-payments'),
- 'class' => 'wc-enhanced-select',
- 'default' => 0,
- 'options' => array(
- '237' => 'Banco Bradesco S.A.',
- '341' => 'Banco Itaú S.A.',
- '033' => 'Banco Santander S.A.',
- '745' => 'Banco Citibank S.A.',
- '001' => 'Banco do Brasil S.A.',
- '104' => 'Caixa Econômica Federal',
- ),
- 'custom_attributes' => array(
- 'data-field' => 'billet-bank',
- )
- );
- }
-
- public function field_billet_deadline_days()
- {
- return array(
- 'title' => __('Default expiration days', 'woo-pagarme-payments'),
- 'description' => __('Number of days until the expiration date of the generated boleto.', 'woo-pagarme-payments'),
- 'desc_tip' => true,
- 'placeholder' => 5,
- 'default' => 5,
- 'custom_attributes' => array(
- 'data-mask' => '##0',
- 'data-mask-reverse' => 'true',
- ),
- );
- }
-
- public function field_billet_instructions()
- {
- return array(
- 'title' => __('Payment instructions', 'woo-pagarme-payments'),
- 'type' => 'text',
- 'description' => __('Instructions printed on the boleto.', 'woo-pagarme-payments'),
- 'desc_tip' => true,
- );
- }
-
- public function section_antifraud()
- {
- return array(
- 'title' => __('Anti fraud settings', 'woo-pagarme-payments'),
- 'type' => 'title',
- 'custom_attributes' => array(
- 'data-field' => 'antifraud-section',
- )
- );
- }
-
- public function antifraud_enabled()
- {
- return array(
- 'title' => __('Enable', 'woo-pagarme-payments'),
- 'type' => 'checkbox',
- 'label' => __('Enable anti fraud', 'woo-pagarme-payments'),
- 'default' => 'no',
- 'custom_attributes' => array(
- 'data-field' => 'antifraud-enabled',
- )
- );
- }
-
- public function antifraud_min_value()
- {
- return array(
- 'title' => __('Minimum amount', 'woo-pagarme-payments'),
- 'type' => 'text',
- 'description' => __('Minimum order amount to send it to the anti fraud', 'woo-pagarme-payments'),
- 'desc_tip' => true,
- 'placeholder' => '100,00',
- 'custom_attributes' => array(
- 'data-mask' => '#.##0,00',
- 'data-mask-reverse' => 'true',
- 'data-field' => 'antifraud-min-value',
- ),
- );
- }
-
- public function section_tools()
- {
- return array(
- 'title' => __('Tools', 'woo-pagarme-payments'),
- 'type' => 'title',
- );
- }
-
- public function field_enabled_logs()
- {
- return array(
- 'title' => __('Logs', 'woo-pagarme-payments'),
- 'type' => 'checkbox',
- 'label' => __('Enable', 'woo-pagarme-payments'),
- 'default' => 'no',
- 'description' => __('Log Pagar.me events, you can check this log in WooCommerce>Status>Logs.', 'woo-pagarme-payments'),
- );
- }
-
- /**
- * Get HTML for descriptions.
- *
- * @param array $data
- * @return string
- */
- public function get_description_html($data)
- {
- if ($data['desc_tip'] === true) {
- return;
- } elseif (!empty($data['desc_tip'])) {
- $description = $data['description'];
- } elseif (!empty($data['description'])) {
- $description = $data['description'];
- } else {
- return;
- }
-
- return sprintf(
- '%s
',
- sanitize_html_class(Utils::get_value_by($data, 'class_p')),
- strip_tags($description, '')
- );
- }
-
- public function generate_pix_additional_data_html($key, $data)
- {
- $field_key = $this->get_field_key($key);
-
- $value = (array) $this->get_option($key, array());
- ob_start();
-
-?>
-
-
-
-
-
- |
-
-
- |
-
- model->settings->hub_install_id;
- $button_label = $this->model->get_hub_button_text($hub_install_id);
- $url_hub = $this->model->get_hub_url($hub_install_id);
-
- ob_start();
- ?>
-
-
- |
-
-
-
-
-
-
-
-
-
-
- |
-
-
-
-
-
- |
-
- model->settings->hub_environment); ?>
- |
-
- model->is_sandbox_mode()) : ?>
-
-
- |
-
-
- = __('Important! This store is linked to the Pagar.me test environment. This environment is intended for integration validation and does not generate real financial transactions.', 'woo-pagarme-payments'); ?>
-
-
- |
-
-
-
- get_field_key($key);
- $defaults = array(
- 'title' => '',
- 'disabled' => false,
- 'class' => '',
- 'css' => '',
- 'placeholder' => '',
- 'type' => 'text',
- 'desc_tip' => false,
- 'description' => '',
- 'custom_attributes' => array(),
- );
-
- $data = wp_parse_args($data, $defaults);
- $value = (array) $this->get_option($key, array());
- $flags = $this->model->settings->get_flags_list();
-
- ob_start();
-
- ?>
-
-
-
- get_tooltip_html($data)); ?>
-
- |
-
-
- |
-
-gatewayBlock = $gatewayBlock ?? new GatewayBlock;
+ $this->config = $config ?? new Config;
+ $this->postFormatter = $postFormatter ?? new PostFormatter;
+ $this->model = $gateway ?? new Gateway;
+ $this->checkout = $checkout ?? new Checkout;
+ $this->wooOrderRepository = $wooOrderRepository ?? new WooOrderRepository;
+ $this->template = $template ?? new Template;
+ $this->id = 'woo-pagarme-payments-' . $this->method;
+ $this->yesnoOptions = $yesnoOptions ?? new Yesno;
+ $this->method_title = $this->getPaymentMethodTitle();
+ $this->method_description = __('Payment Gateway Pagar.me', 'woo-pagarme-payments') . ' ' . $this->method_title;
+ $this->has_fields = false;
+// $this->icon = Core::plugins_url('assets/images/logo.svg');
+ $this->init_form_fields();
+ $this->init_settings();
+ $this->enabled = $this->get_option('enabled', 'no');
+ $this->title = $this->getTitle();
+ $this->has_fields = true;
+ if (is_admin()) {
+ add_action(self::PAYMENT_OPTION_UPDATE_SLUG . $this->id, [$this, 'beforeProcessAdminOptions']);
+ add_action(self::PAYMENT_OPTION_UPDATE_SLUG . $this->id, [$this, 'process_admin_options']);
+ }
+ add_action('woocommerce_receipt_' . $this->id, array($this, 'receipt_page'));
+ add_action('woocommerce_thankyou_' . $this->id, [$this, 'thank_you_page']);
+ add_action('admin_enqueue_scripts', array($this, 'payments_scripts'));
+ }
+
+ public function payments_scripts()
+ {
+ wp_register_script('pagarme_payments', $this->jsUrl('pagarme_payments'), [], false, true);
+ wp_enqueue_script('pagarme_payments');
+ }
+
+ public function jsUrl($jsFileName)
+ {
+ return Core::plugins_url('assets/javascripts/admin/' . $jsFileName . '.js');
+ }
+
+ /**
+ * @param $orderId
+ * @return array
+ * @throws \Exception
+ */
+ public function process_payment($orderId): array
+ {
+ $wooOrder = $this->wooOrderRepository->getById($orderId);
+ $this->postFormatter->assemblePaymentRequest();
+ $this->checkout->process($wooOrder);
+ return [
+ 'result' => 'success',
+ 'redirect' => $this->get_return_url($wooOrder)
+ ];
+ }
+
+ /**
+ * @return void
+ * @throws \Exception
+ */
+ public function payment_fields()
+ {
+ $this->model->payment = $this->method;
+ echo $this->gatewayBlock->setPaymentInstance($this->model->getPaymentInstace($this->method))->toHtml();
+ }
+
+ /**
+ * @param $order_id
+ * @return void
+ */
+ public function receipt_page($order_id)
+ {
+ $this->checkout_transparent($order_id);
+ }
+
+ /**
+ * @param $order_id
+ * @return void
+ */
+ public function checkout_transparent($order_id)
+ {
+ $wc_order = $this->wooOrderRepository->getById($order_id);
+ require_once Core::get_file_path($this->method . '-item.php', 'templates/checkout/');
+ }
+
+ /**
+ * @param $order_id
+ * @return void
+ * @throws \Exception
+ */
+ public function thank_you_page($order_id)
+ {
+ $order = $this->wooOrderRepository->getById($order_id);
+ $pagarmeOrder = new Order($order_id);
+ if ($this->method === $pagarmeOrder->payment_method) {
+ $this->template->createBlock(
+ '\Woocommerce\Pagarme\Block\Checkout\ThankYou',
+ 'pagarme.checkout.thank-you',
+ [
+ 'woo_order' => $order,
+ 'pagarme_order' => $pagarmeOrder,
+ 'payment_method' => $this->method,
+ 'container' => true
+ ]
+ )->toHtml();
+ }
+ }
+
+ /**
+ * @return string
+ */
+ public function getTitle()
+ {
+ if ($title = $this->get_option('title')) {
+ return $title;
+ }
+ return $this->getPaymentMethodTitle();
+ }
+
+ /**
+ * @return string
+ */
+ public function getPaymentMethodTitle()
+ {
+ return __(ucwords(str_replace('-', ' ', str_replace('_', ' ', $this->method))), 'woo-pagarme-payments');
+ }
+
+ /**
+ * @return void
+ */
+ public function init_form_fields()
+ {
+ $this->form_fields['enabled'] = $this->field_enabled();
+ $this->form_fields['title'] = $this->field_title();
+ $this->form_fields = array_merge( $this->form_fields, $this->append_form_fields(), $this->append_gateway_form_fields());
+ }
+
+ /**
+ * @return array
+ */
+ public function append_form_fields()
+ {
+ return [];
+ }
+
+ /**
+ * @return array
+ */
+ private function append_gateway_form_fields()
+ {
+ if ($this->isGatewayType()) {
+ return $this->gateway_form_fields();
+ }
+ return [];
+ }
+
+ /**
+ * @return array
+ */
+ protected function gateway_form_fields()
+ {
+ return [];
+ }
+
+ /**
+ * @return bool
+ */
+ public function isGatewayType(){
+ return $this->model->config->getIsGatewayIntegrationType();
+ }
+
+ /**
+ * @return array
+ */
+ public function field_enabled()
+ {
+ return [
+ 'title' => __('Enable/Disable', 'woocommerce'),
+ 'type' => 'select',
+ 'options' => $this->yesnoOptions->toLabelsArray(true),
+ 'label' => __('Enable', 'woo-pagarme-payments') . ' ' .
+ __($this->getPaymentMethodTitle(), 'woo-pagarme-payments'),
+ 'default' => __($this->config->getData('enable_' . $this->method), 'woo-pagarme-payments') ?? strtolower(Yesno::NO),
+ ];
+ }
+
+ /**
+ * @return array
+ */
+ public function field_title()
+ {
+ return [
+ 'title' => __('Checkout title', 'woo-pagarme-payments'),
+ 'description' => __('Name shown to the customer in the checkout page.', 'woo-pagarme-payments'),
+ 'desc_tip' => true,
+ 'default' => __($this->getPaymentMethodTitle(), 'woo-pagarme-payments'),
+ ];
+ }
+
+ /**
+ * @return void
+ */
+ public function beforeProcessAdminOptions()
+ {
+ foreach ($_POST as $key => $value) {
+ $paymentOptionsSlug = 'woocommerce_' . $this->id;
+ if (strpos($key, $paymentOptionsSlug) !== false) {
+ if (array_key_exists(1, explode($paymentOptionsSlug . '_', $key))) {
+ $field = explode($paymentOptionsSlug . '_', $key)[1];
+ if ($field === 'title') {
+ $field = $this->method . '_' . $field;
+ }
+ if ($field === 'enabled') {
+ $field = $this->form_fields['enabled']['old_name'] ?? 'enable_' . $this->method;
+ }
+ $this->config->setData($field, $value);
+ }
+ }
+ }
+ $this->config->save();
+ }
+}
diff --git a/src/Controller/Gateways/Billet.php b/src/Controller/Gateways/Billet.php
new file mode 100644
index 00000000..b67aa40f
--- /dev/null
+++ b/src/Controller/Gateways/Billet.php
@@ -0,0 +1,108 @@
+ $this->field_billet_deadline_days(),
+ 'billet_instructions' => $this->field_billet_instructions(),
+ ];
+ }
+
+ /**
+ * @return array
+ */
+ protected function gateway_form_fields()
+ {
+ return [
+ 'billet_bank' => $this->field_billet_bank()
+ ];
+ }
+
+ /**
+ * @return array
+ */
+ public function field_billet_bank()
+ {
+ $options = [];
+ $banks = new Banks;
+ foreach ($banks->getBanks() as $class) {
+ /** @var BankInterface $bank */
+ $bank = new $class;
+ $options[$bank->getBankId()] = $bank->getName();
+ }
+ return [
+ 'type' => 'select',
+ 'title' => __('Bank', 'woo-pagarme-payments'),
+ 'class' => 'wc-enhanced-select',
+ 'default' => $this->config->getData('billet-bank') ?? 0,
+ 'options' => $options,
+ 'custom_attributes' => [
+ 'data-field' => 'billet-bank',
+ ]
+ ];
+ }
+
+ /**
+ * @return array
+ */
+ public function field_billet_deadline_days()
+ {
+ return [
+ 'title' => __('Default expiration days', 'woo-pagarme-payments'),
+ 'description' => __('Number of days until the expiration date of the generated boleto.', 'woo-pagarme-payments'),
+ 'desc_tip' => true,
+ 'placeholder' => 5,
+ 'default' => $this->config->getData('billet_deadline_days') ?? 5,
+ 'custom_attributes' => [
+ 'data-mask' => '##0',
+ 'data-mask-reverse' => 'true',
+ ],
+ ];
+ }
+
+ /**
+ * @return array
+ */
+ public function field_billet_instructions()
+ {
+ return [
+ 'title' => __('Payment instructions', 'woo-pagarme-payments'),
+ 'type' => 'text',
+ 'default' => $this->config->getData('billet_instructions') ?? '',
+ 'description' => __('Instructions printed on the boleto.', 'woo-pagarme-payments'),
+ 'desc_tip' => true,
+ ];
+ }
+}
diff --git a/src/Controller/Gateways/BilletCreditCard.php b/src/Controller/Gateways/BilletCreditCard.php
new file mode 100644
index 00000000..90411f49
--- /dev/null
+++ b/src/Controller/Gateways/BilletCreditCard.php
@@ -0,0 +1,50 @@
+ __('Enable/Disable', 'woocommerce'),
+ 'type' => 'select',
+ 'options' => $this->yesnoOptions->toLabelsArray(true),
+ 'label' => __('Enable multi-means (Boleto + Credit card)', 'woo-pagarme-payments'),
+ 'old_name' => 'multimethods_billet_card',
+ 'default' => $this->config->getData('multimethods_billet_card') ?? strtolower(Yesno::NO),
+ 'custom_attributes' => array(
+ 'data-action' => 'enable-multimethods-billet-card',
+ 'data-requires-field' => 'billet-bank',
+ ),
+ );
+ }
+}
diff --git a/src/Controller/Gateways/CreditCard.php b/src/Controller/Gateways/CreditCard.php
new file mode 100644
index 00000000..0c5ac1cc
--- /dev/null
+++ b/src/Controller/Gateways/CreditCard.php
@@ -0,0 +1,423 @@
+ $this->field_cc_operation_type(),
+ 'cc_soft_descriptor' => $this->field_cc_soft_descriptor(),
+ 'cc_flags' => $this->field_cc_flags(),
+ 'cc_installment_type' => $this->field_cc_installment_type(),
+ 'cc_installments_maximum' => $this->field_cc_installment_fields('maximum'),
+ 'cc_installments_min_amount' => $this->field_cc_installment_fields('installment_min_amount'),
+ 'cc_installments_interest' => $this->field_cc_installment_fields('interest'),
+ 'cc_installments_interest_increase' => $this->field_cc_installment_fields('interest_increase'),
+ 'cc_installments_without_interest' => $this->field_cc_installment_fields('without_interest'),
+ 'cc_installments_by_flag' => $this->field_cc_installment_fields('flags'),
+ 'cc_allow_save' => $this->field_cc_allow_save(),
+ ];
+ }
+
+ /**
+ * @return array
+ */
+ protected function gateway_form_fields()
+ {
+ return [
+ 'section_antifraud' => $this->section_antifraud(),
+ 'antifraud_enabled' => $this->antifraud_enabled(),
+ 'antifraud_min_value' => $this->antifraud_min_value(),
+ ];
+ }
+
+ /**
+ * @return array
+ */
+ public function field_enabled()
+ {
+ return [
+ 'title' => __('Enable/Disable', 'woocommerce'),
+ 'type' => 'select',
+ 'options' => $this->yesnoOptions->toLabelsArray(true),
+ 'label' => __('Enable credit card', 'woo-pagarme-payments'),
+ 'old_name' => 'enable_credit_card',
+ 'default' => $this->config->getData('enable_credit_card') ?? strtolower(Yesno::NO),
+ ];
+ }
+
+ /**
+ * @return array
+ */
+ public function field_cc_operation_type()
+ {
+ return array(
+ 'type' => 'select',
+ 'title' => __('Operation Type', 'woo-pagarme-payments'),
+ 'class' => 'wc-enhanced-select',
+ 'default' => $this->config->getCcOperationType() ?? 1,
+ 'options' => array(
+ 1 => __('Authorize', 'woo-pagarme-payments'),
+ 2 => __('Authorize and Capture', 'woo-pagarme-payments'),
+ ),
+ );
+ }
+
+ /**
+ * @return array
+ */
+ public function field_cc_soft_descriptor()
+ {
+ $maxLength = $this->isGatewayType() ? 22 : 13;
+
+ return array(
+ 'title' => __('Soft descriptor', 'woo-pagarme-payments'),
+ 'desc_tip' => __('Description that appears on the credit card bill.', 'woo-pagarme-payments'),
+ 'description' => sprintf(__("Max length of %s characters.",
+ 'woo-pagarme-payments'), $maxLength),
+ 'default' => $this->config->getData('cc_soft_descriptor') ?? '',
+ 'custom_attributes' => array(
+ 'data-field' => 'soft-descriptor',
+ 'data-action' => 'soft-descriptor',
+ 'data-element' => 'validate',
+ 'maxlength' => $maxLength,
+ 'data-error-msg' => __('This field is required.', 'woo-pagarme-payments'),
+ ),
+ );
+ }
+
+ /**
+ * @return array
+ */
+ public function field_cc_allow_save()
+ {
+ return array(
+ 'title' => __('Card wallet', 'woo-pagarme-payments'),
+ 'type' => 'select',
+ 'options' => $this->yesnoOptions->toLabelsArray(true),
+ 'label' => __('Enable card wallet', 'woo-pagarme-payments'),
+ 'default' => $this->config->getData('cc_allow_save') ?? strtolower(Yesno::NO),
+ 'description' => __('Allows for cards to be saved for future purchases.', 'woo-pagarme-payments'),
+ 'desc_tip' => true,
+ 'custom_attributes' => array(
+ 'data-field' => 'cc-allow-save',
+ ),
+ );
+ }
+
+ /**
+ * @return array
+ */
+ public function field_cc_flags()
+ {
+ return array(
+ 'type' => 'multiselect',
+ 'title' => __('Card Brands', 'woo-pagarme-payments'),
+ 'select_buttons' => false,
+ 'class' => 'wc-enhanced-select',
+ 'options' => $this->getBrandsList(),
+ 'default' => $this->config->getData('cc_flags') ?? '',
+ 'custom_attributes' => array(
+ 'data-field' => 'flags-select',
+ 'data-element' => 'flags-select',
+ 'data-action' => 'flags',
+ ),
+ );
+ }
+
+ /**
+ * @return array
+ */
+ public function field_cc_installment_type()
+ {
+ return array(
+ 'title' => __('Installment configuration', 'woo-pagarme-payments'),
+ 'type' => 'select',
+ 'class' => 'wc-enhanced-select',
+ 'label' => __('Choose the installment configuration', 'woo-pagarme-payments'),
+ 'default' => $this->config->getData('cc_installment_type') ?? 1,
+ 'options' => array(
+ Gateway::CC_TYPE_SINGLE => __('For all card brands', 'woo-pagarme-payments'),
+ Gateway::CC_TYPE_BY_FLAG => __('By card brand', 'woo-pagarme-payments'),
+ ),
+ 'custom_attributes' => array(
+ 'data-element' => 'installments-type-select',
+ 'data-action' => 'installments-type',
+ ),
+ );
+ }
+
+ /**
+ * @return array
+ */
+ public function field_cc_installment_fields($field)
+ {
+ $installments = array();
+
+ $installments['maximum'] = array(
+ 'title' => __('Max number of installments', 'woo-pagarme-payments'),
+ 'type' => 'select',
+ 'default' => $this->config->getData('cc_installments_maximum') ?? 12,
+ 'options' => $this->model->get_installment_options(),
+ 'custom_attributes' => array(
+ 'data-field' => 'installments-maximum',
+ ),
+ );
+
+ $installments['installment_min_amount'] = array(
+ 'title' => __('Minimum installment amount', 'woo-pagarme-payments'),
+ 'type' => 'text',
+ 'default' => $this->config->getData('cc_installments_min_amount') ?? '',
+ 'description' => __('Defines the minimum value that an installment can assume', 'woo-pagarme-payments'),
+ 'desc_tip' => true,
+ 'placeholder' => '0.00',
+ 'custom_attributes' => array(
+ 'data-field' => 'installments-min-amount',
+ 'data-mask' => '##0.00',
+ 'data-mask-reverse' => 'true',
+ ),
+ );
+
+ $installments['interest'] = array(
+ 'title' => __('Initial interest rate (%)', 'woo-pagarme-payments'),
+ 'type' => 'text',
+ 'default' => $this->config->getData('cc_installments_interest') ?? '',
+ 'description' => __('Interest rate applied starting with the first installment with interest.', 'woo-pagarme-payments'),
+ 'desc_tip' => true,
+ 'placeholder' => '0.00',
+ 'custom_attributes' => array(
+ 'data-field' => 'installments-interest',
+ 'data-mask' => '##0.00',
+ 'data-mask-reverse' => 'true',
+ ),
+ );
+
+ $installments['interest_increase'] = array(
+ 'title' => __('Incremental interest rate (%)', 'woo-pagarme-payments'),
+ 'type' => 'text',
+ 'default' => $this->config->getData('cc_installments_interest_increase') ?? '',
+ 'description' => __('Interest rate added for each installment with interest.', 'woo-pagarme-payments'),
+ 'desc_tip' => true,
+ 'placeholder' => '0.00',
+ 'custom_attributes' => array(
+ 'data-field' => 'installments-interest-increase',
+ 'data-mask' => '##0.00',
+ 'data-mask-reverse' => 'true',
+ ),
+ );
+
+ $installments['without_interest'] = array(
+ 'title' => __('Number of installments without interest', 'woo-pagarme-payments'),
+ 'type' => 'select',
+ 'default' => $this->config->getData('cc_installments_without_interest') ?? 3,
+ 'options' => $this->model->get_installment_options(),
+ 'custom_attributes' => array(
+ 'data-field' => 'installments-without-interest',
+ ),
+ );
+
+ $installments['flags'] = array(
+ 'title' => __('Settings by card brand', 'woo-pagarme-payments'),
+ 'type' => 'installments_by_flag',
+ 'default' => $this->config->getData('cc_installments_by_flag') ?? '',
+ );
+
+ return $installments[$field];
+ }
+
+ /**
+ * @return array
+ */
+ public function section_antifraud()
+ {
+ return array(
+ 'title' => __('Anti fraud settings', 'woo-pagarme-payments'),
+ 'type' => 'title',
+ 'custom_attributes' => array(
+ 'data-field' => 'antifraud-section',
+ )
+ );
+ }
+
+ /**
+ * @return array
+ */
+ public function antifraud_enabled()
+ {
+ return array(
+ 'title' => __('Enable', 'woo-pagarme-payments'),
+ 'type' => 'select',
+ 'default' => $this->config->getData('antifraud_enabled') ?? strtolower(Yesno::NO),
+ 'options' => $this->yesnoOptions->toLabelsArray(true),
+ 'label' => __('Enable anti fraud', 'woo-pagarme-payments'),
+ 'custom_attributes' => array(
+ 'data-field' => 'antifraud-enabled',
+ )
+ );
+ }
+
+ /**
+ * @return array
+ */
+ public function antifraud_min_value()
+ {
+ return array(
+ 'title' => __('Minimum amount', 'woo-pagarme-payments'),
+ 'type' => 'text',
+ 'default' => $this->config->getData('antifraud_min_value') ?? '',
+ 'description' => __('Minimum order amount to send it to the anti fraud', 'woo-pagarme-payments'),
+ 'desc_tip' => true,
+ 'placeholder' => '100,00',
+ 'custom_attributes' => array(
+ 'data-mask' => '#.##0,00',
+ 'data-mask-reverse' => 'true',
+ 'data-field' => 'antifraud-min-value',
+ ),
+ );
+ }
+
+ public function generate_installments_by_flag_html($key, $data)
+ {
+ $field_key = $this->get_field_key($key);
+ $defaults = array(
+ 'title' => '',
+ 'disabled' => false,
+ 'class' => '',
+ 'css' => '',
+ 'placeholder' => '',
+ 'type' => 'text',
+ 'desc_tip' => false,
+ 'description' => '',
+ 'custom_attributes' => array(),
+ );
+
+ $data = wp_parse_args($data, $defaults);
+ $value = (array) $this->get_option($key, array());
+ $flags = $this->getBrandsList();
+
+ ob_start();
+
+ ?>
+
+
+
+ get_tooltip_html($data)); ?>
+
+ |
+
+
+ |
+
+ $maxInstallment) {
+ if($maxInstallment < $value['no_interest'][$brand]) {
+ $value['no_interest'][$brand] = $maxInstallment;
+ }
+ }
+ return $value;
+ }
+
+ public function getBrandsList()
+ {
+ //Some brands are hidden for PSP
+ return array(
+ 'visa' => 'Visa',
+ 'mastercard' => 'MasterCard',
+ 'amex' => 'Amex',
+ 'hipercard' => 'HiperCard',
+ 'diners' => 'Diners',
+ 'elo' => 'Elo',
+ 'discover' => 'Discover',
+ 'aura' => 'Aura',
+ 'jcb' => 'JCB',
+ 'credz' => 'Credz',
+ 'banese' => 'Banese',
+ 'cabal' => 'Cabal',
+ );
+ }
+}
diff --git a/src/Controller/Gateways/Pix.php b/src/Controller/Gateways/Pix.php
new file mode 100644
index 00000000..c7c0443a
--- /dev/null
+++ b/src/Controller/Gateways/Pix.php
@@ -0,0 +1,103 @@
+ $this->field_pix_qrcode_expiration_time(),
+ 'pix_additional_data' => $this->field_pix_additional_data()
+ ];
+ }
+
+ public function field_pix_qrcode_expiration_time()
+ {
+ return [
+ 'title' => __('QR code expiration time', 'woo-pagarme-payments'),
+ 'description' => __('Expiration time in seconds of the generated pix QR code.', 'woo-pagarme-payments'),
+ 'desc_tip' => true,
+ 'placeholder' => 3600,
+ 'default' => $this->config->getData('pix_qrcode_expiration_time') ?? 3600,
+ 'custom_attributes' => [
+ 'data-mask' => '##0',
+ 'data-mask-reverse' => 'true',
+ ]
+ ];
+ }
+
+ public function field_pix_additional_data()
+ {
+ return [
+ 'title' => __('Additional information', 'woo-pagarme-payments'),
+ 'description' => __('Set of key and value used to add information to the generated pix. This will be visible to the buyer during the payment process.', 'woo-pagarme-payments'),
+ 'desc_tip' => true,
+ 'default' => $this->config->getData('pix_additional_data') ?? '',
+ 'type' => 'pix_additional_data',
+ ];
+ }
+
+ public function generate_pix_additional_data_html($key, $data)
+ {
+ $field_key = $this->get_field_key($key);
+
+ $value = (array) $this->get_option($key, array());
+ ob_start();
+
+ ?>
+
+
+
+
+
+ |
+
+
+ |
+
+ __('Enable/Disable', 'woocommerce'),
+ 'type' => 'select',
+ 'options' => $this->yesnoOptions->toLabelsArray(true),
+ 'label' => __('Enable multi-means (2 Credit cards)', 'woo-pagarme-payments'),
+ 'old_name' => 'multimethods_2_cards',
+ 'default' => $this->config->getData('multimethods_2_cards') ?? strtolower(Yesno::NO),
+ ];
+ }
+}
diff --git a/src/Controller/Gateways/Voucher.php b/src/Controller/Gateways/Voucher.php
new file mode 100644
index 00000000..a202e31b
--- /dev/null
+++ b/src/Controller/Gateways/Voucher.php
@@ -0,0 +1,120 @@
+ $this->field_voucher_soft_descriptor(),
+ 'field_voucher_flags' => $this->field_voucher_flags()
+ ];
+ }
+
+ /**
+ * @return array
+ */
+ protected function gateway_form_fields()
+ {
+ return [
+ 'voucher_card_wallet' => $this->field_voucher_card_wallet()
+ ];
+ }
+
+ /**
+ * @return array
+ */
+ public function field_voucher_soft_descriptor()
+ {
+ $maxLength = $this->isGatewayType() ? 22 : 13;
+ return [
+ 'title' => __('Soft descriptor', 'woo-pagarme-payments'),
+ 'desc_tip' => __('Description that appears on the voucher bill.', 'woo-pagarme-payments'),
+ 'description' => sprintf(__("Max length of %s characters.",
+ 'woo-pagarme-payments'), $maxLength),
+ 'default' => $this->config->getData('voucher_soft_descriptor') ?? '',
+ 'custom_attributes' => [
+ 'data-field' => 'voucher-soft-descriptor',
+ 'data-action' => 'voucher-soft-descriptor',
+ 'data-element' => 'validate',
+ 'maxlength' => $maxLength,
+ 'data-error-msg' => __('This field is required.', 'woo-pagarme-payments')
+ ]
+ ];
+ }
+
+ /**
+ * @return array
+ */
+ public function field_voucher_flags()
+ {
+ $options = [];
+ $brands = new Brands;
+ foreach ($brands->getBrands() as $class) {
+ /** @var BrandsInterface $bank */
+ $brand = new $class;
+ $options[$brand->getBrandCode()] = $brand->getName();
+ }
+ return [
+ 'type' => 'multiselect',
+ 'title' => __('Voucher Card Brands', 'woo-pagarme-payments'),
+ 'default' => $this->config->getData('field_voucher_flags') ?? '',
+ 'select_buttons' => false,
+ 'class' => 'wc-enhanced-select',
+ 'options' => $options,
+ 'custom_attributes' => [
+ 'data-field' => 'voucher-flags-select',
+ 'data-element' => 'voucher-flags-select',
+ 'data-action' => 'flags'
+ ]
+ ];
+ }
+
+ /**
+ * @return array
+ */
+ public function field_voucher_card_wallet()
+ {
+ return [
+ 'title' => __('Card Wallet', 'woo-pagarme-payments'),
+ 'desc_tip' => __('Enable Card Wallet', 'woo-pagarme-payments'),
+ 'type' => 'select',
+ 'label' => __('Card Wallet', 'woo-pagarme-payments'),
+ 'options' => $this->yesnoOptions->toLabelsArray(true),
+ 'default' => $this->config->getData('voucher_card_wallet') ?? Yesno::NO,
+ 'custom_attributes' => [
+ 'data-field' => 'voucher-card-wallet',
+ ]
+ ];
+ }
+}
diff --git a/src/Controller/Hub.php b/src/Controller/Hub.php
index 2261e5d8..19535e7f 100644
--- a/src/Controller/Hub.php
+++ b/src/Controller/Hub.php
@@ -9,7 +9,7 @@
use Pagarme\Core\Hub\Services\HubIntegrationService;
use Woocommerce\Pagarme\Concrete\WoocommerceCoreSetup as CoreSetup;
use Woocommerce\Pagarme\Core;
-use Woocommerce\Pagarme\Model\Setting;
+use Woocommerce\Pagarme\Model\Config;
use Exception;
class Hub
@@ -18,7 +18,7 @@ class Hub
public function __construct()
{
- $this->settings = Setting::get_instance();
+ $this->settings = new Config();
add_action('woocommerce_api_' . Core::get_hub_name(), array($this, 'handle_requests'));
}
@@ -46,28 +46,29 @@ public function updateConfig()
{
$moduleConfig = CoreSetup::getModuleConfiguration();
- $this->settings->set(
+ $this->settings->setData(
'hub_install_id',
$moduleConfig->getHubInstallId()->getValue()
);
- $this->settings->set(
+ $this->settings->setData(
'hub_environment',
$moduleConfig->getHubEnvironment()->getValue()
);
- $this->settings->set(
+ $this->settings->setData(
'production_secret_key',
$moduleConfig->getSecretKey()->getValue()
);
- $this->settings->set(
+ $this->settings->setData(
'production_public_key',
$moduleConfig->getPublicKey()->getValue()
);
- $this->settings->set('sandbox_secret_key', null);
- $this->settings->set('sandbox_public_key', null);
- $this->settings->set('environment', null);
+ $this->settings->setData('sandbox_secret_key', null);
+ $this->settings->setData('sandbox_public_key', null);
+ $this->settings->setData('environment', null);
+ $this->settings->save();
}
}
diff --git a/src/Controller/HubCommand.php b/src/Controller/HubCommand.php
index c3748650..67565e0c 100644
--- a/src/Controller/HubCommand.php
+++ b/src/Controller/HubCommand.php
@@ -9,7 +9,7 @@
use Pagarme\Core\Hub\Services\HubIntegrationService;
use Woocommerce\Pagarme\Concrete\WoocommerceCoreSetup as CoreSetup;
use Woocommerce\Pagarme\Core;
-use Woocommerce\Pagarme\Model\Setting;
+use Woocommerce\Pagarme\Model\Config;
use Woocommerce\Pagarme\Helper\Utils;
class HubCommand
@@ -21,7 +21,7 @@ class HubCommand
public function __construct()
{
- $this->settings = Setting::get_instance();
+ $this->settings = new Config;
add_action('woocommerce_api_' . Core::get_hub_command_name(), array($this, 'handle_requests'));
}
@@ -77,22 +77,15 @@ private function sendResponse($message, $code)
private function uninstallCommand()
{
$keysToClear = [
- 'hub_install_id',
- 'hub_environment',
- 'production_secret_key',
- 'production_public_key',
- 'sandbox_secret_key',
- 'sandbox_public_key',
- 'environment'
+ 'hub_install_id' => null,
+ 'hub_environment' => null,
+ 'production_secret_key' => null,
+ 'production_public_key' => null,
+ 'sandbox_secret_key' => null,
+ 'sandbox_public_key' => null,
+ 'environment' => null
];
-
- foreach ($keysToClear as $key) {
- $this->settings->set(
- $key,
- null
- );
- }
-
+ $this->settings->addData($keysToClear)->save();
return 'Hub uninstalled successfully';
}
}
diff --git a/src/Controller/Orders.php b/src/Controller/Orders.php
index 7b93f5d1..80b5c002 100644
--- a/src/Controller/Orders.php
+++ b/src/Controller/Orders.php
@@ -6,8 +6,10 @@
exit(0);
}
+use Woocommerce\Pagarme\Block\Adminhtml\Sales\Order as BlockOrder;
+use Woocommerce\Pagarme\Core;
use Woocommerce\Pagarme\Model\Order;
-use Woocommerce\Pagarme\Model\Setting;
+use Woocommerce\Pagarme\Model\Config;
use Woocommerce\Pagarme\Concrete\WoocommerceCoreSetup;
use Woocommerce\Pagarme\Concrete\WoocommercePlatformOrderDecorator;
use Pagarme\Core\Kernel\Abstractions\AbstractModuleCoreSetup;
@@ -18,15 +20,19 @@ class Orders
{
private $settings;
- public function __construct()
- {
- $this->settings = Setting::get_instance();
- $this->debug = $this->settings->is_enabled_logs();
+ /** @var BlockOrder */
+ private $blockOrder;
+ public function __construct(
+ BlockOrder $blockOrder = null
+ ) {
+ $this->settings = new Config();
+ $this->debug = $this->settings->getEnableLogs();
+ $this->blockOrder = $blockOrder ?? new BlockOrder;
add_action('on_pagarme_order_paid', array($this, 'set_order_paid'), 20, 2);
add_action('on_pagarme_order_created', array($this, 'set_order_created'), 20, 2);
add_action('on_pagarme_order_canceled', array($this, 'set_order_canceled'), 20, 2);
- add_action('add_meta_boxes', array($this, 'add_capture_metabox'));
+ add_action('add_meta_boxes', array($this, 'add_meta_boxes'));
}
public function create_order(WC_Order $wc_order, $payment_method, $form_fields)
@@ -79,15 +85,24 @@ public function set_order_canceled(Order $order, $body)
$order->payment_canceled();
}
- public function add_capture_metabox()
+ public function add_meta_boxes()
+ {
+ wp_register_script('pagarme-adminhmlt-order-view-cancel-capture', $this->jsUrl('sales/order/view/cancel-capture'), ['jquery'], false);
+ wp_enqueue_script('pagarme-adminhmlt-order-view-cancel-capture');
+ foreach ($this->blockOrder->getMetaBoxes() as $metaBox) {
+ add_meta_box(
+ $metaBox->getCode(),
+ $metaBox->getTitle(),
+ [$metaBox, 'toHtml'],
+ 'shop_order',
+ 'advanced',
+ 'high'
+ );
+ }
+ }
+
+ public function jsUrl($jsFileName)
{
- add_meta_box(
- 'woo-pagarme-capture',
- 'Pagar.me - Captura/Cancelamento',
- array('Woocommerce\Pagarme\View\Orders', 'render_capture_metabox'),
- 'shop_order',
- 'advanced',
- 'high'
- );
+ return Core::plugins_url('assets/javascripts/admin/' . $jsFileName . '.js');
}
}
diff --git a/src/Controller/Settings.php b/src/Controller/Settings.php
index 177013f5..14b7c09f 100644
--- a/src/Controller/Settings.php
+++ b/src/Controller/Settings.php
@@ -1,4 +1,13 @@
select = $select;
+ if (!$select) {
+ $this->select = new Select();
+ }
+ $this->config = $config;
+ if (!$config) {
+ $this->config = new Config();
+ }
+ $this->model = new Gateway();
+ $this->yesNoOptions = new Yesno();
+ add_action('admin_enqueue_scripts', array($this, 'admin_scripts'));
add_filter(Core::plugin_basename('plugin_action_links_'), array($this, 'plugin_link'));
+ add_action('admin_menu', array($this, 'settings_menu'), 58);
+ add_action('admin_init', array($this, 'plugin_settings'));
$this->gateway_load();
+ $this->select = $select;
+ if (!$select) {
+ $this->select = new Select();
+ }
+ $this->setSectionsFields();
+ }
+
+ public function jsUrl($jsFileName)
+ {
+ return Core::plugins_url('assets/javascripts/admin/' . $jsFileName . '.js');
+ }
+
+ public function admin_scripts()
+ {
+ wp_register_script('pagarme_settings', $this->jsUrl('pagarme_settings'), array('jquery'), false, true);
+ wp_enqueue_script('pagarme_settings');
+ wp_register_style('woocommerce_admin_styles', WC()->plugin_url() . '/assets/css/admin.css', array());
+ wp_enqueue_style('woocommerce_admin_styles');
+
+ $params = array(
+ 'ajax_url' => admin_url('admin-ajax.php'),
+ 'nonces' => array(
+ 'gateway_toggle' => wp_create_nonce('woocommerce-toggle-payment-gateway-enabled'),
+ )
+ );
+ wp_localize_script('pagarme_settings', 'pagarme_settings', $params);
+ }
+
+ private function setSectionsFields(array $value = null)
+ {
+ if ($value) {
+ $this->sectionsFields = $value;
+ return;
+ }
+ $this->sectionsFields = [
+ 'section' => [
+ [
+ 'id' => 'options_section',
+ 'title' => 'General',
+ 'fields' => [
+ [
+ 'fieldObject' => Integration::class,
+ 'id' => 'hub_button_integration',
+ 'title' => 'Hub integration',
+ ],
+ [
+ 'fieldObject' => Environment::class,
+ 'id' => 'hub_environment',
+ 'title' => 'Integration environment',
+ 'default' => '',
+ ],
+ [
+ 'fieldObject' => Select::class,
+ 'id' => 'multicustomers',
+ 'title' => 'Multi-buyers',
+ 'options' => $this->yesNoOptions->toLabelsArray(),
+ 'default' => strtolower(Yesno::NO),
+ ],
+ [
+ 'fieldObject' => Select::class,
+ 'id' => 'is_gateway_integration_type',
+ 'title' => 'Advanced settings',
+ 'options' => $this->yesNoOptions->toLabelsArray(),
+ 'default' => strtolower(Yesno::NO),
+ 'description' => 'Configurations that only works for Gateway customers, who have a direct contract with an acquirer.'
+ ],
+ [
+ 'fieldObject' => Select::class,
+ 'id' => 'enable_logs',
+ 'title' => 'Logs',
+ 'options' => $this->yesNoOptions->toLabelsArray(),
+ 'default' => strtolower(Yesno::NO),
+ 'description' => 'Log Pagar.me events, you can check this log in WooCommerce>Status>Logs.'
+ ]
+ ],
+ ]
+ ]
+ ];
}
/**
* Add link settings page
*
* @since 1.0
- * @param Array $links
- * @return Array
+ * @param array $links
+ * @return array
*/
public function plugin_link($links)
{
@@ -35,23 +170,143 @@ public function plugin_link($links)
__('Settings', 'woo-pagarme-payments')
),
);
-
return array_merge($plugin_links, $links);
}
public function gateway_load()
{
- if (!class_exists('WC_Payment_Gateway')) {
+ if (!class_exists(self::WC_PAYMENT_GATEWAY)) {
return;
}
-
add_filter('woocommerce_payment_gateways', array($this, 'add_payment_gateway'));
}
+ /**
+ * @param $methods
+ * @return mixed
+ */
public function add_payment_gateway($methods)
{
- $methods[] = __NAMESPACE__ . '\Gateways';
-
+ foreach ($this->getGateways() as $gateway) {
+ $methods[] = $gateway;
+ }
return $methods;
}
+
+ /**
+ * @return array
+ */
+ private function getGateways()
+ {
+ $this->autoLoad();
+ $gateways = [];
+ foreach(get_declared_classes() as $class){
+ if(is_subclass_of( $class, Gateways\AbstractGateway::class)) {
+ $gateways[] = $class;
+ }
+ }
+ return $gateways;
+ }
+
+ public function autoLoad()
+ {
+ foreach (glob(__DIR__ . '/Gateways/*.php') as $file) {
+ include_once($file);
+ }
+ }
+
+ /**
+ * Add the settings page.
+ */
+ public function settings_menu() {
+ add_submenu_page(
+ 'woocommerce',
+ "Pagar.me",
+ "Pagar.me",
+ 'manage_options',
+ 'woo-pagarme-payments',
+ array( $this, 'settings_page' )
+ );
+ }
+
+ /**
+ * Render the settings page for this plugin.
+ */
+ public function settings_page() {
+ $options = $this->get_option_key();
+ $pageSettings = new PageSettings($options, $this->getGateways());
+ $pageSettings->includeTemplate();
+ }
+
+
+ /**
+ * @return string
+ */
+ public function get_option_key()
+ {
+ return $this->model->config->getOptionKey();
+ }
+
+ /**
+ * @param $values
+ * @return void
+ * @throws \Exception
+ */
+ public function getField($values)
+ {
+ if (class_exists($values['fieldObject'])) {
+ $field = new $values['fieldObject']();
+ $field->setData($values)->toHtml();
+ return;
+ }
+ throw new \Exception(sprintf('Field object class %s not exists. ', $values['fieldObject']));
+ }
+
+ /**
+ * Plugin settings form fields.
+ */
+ public function plugin_settings() {
+ $option = $this->get_option_key();
+ foreach ($this->sectionsFields['section'] as $key => $value) {
+ $section = new Section(
+ [
+ 'id' => $value['id'],
+ 'title' => $value['title'],
+ 'page' => $option,
+ ]
+ );
+ $section->toHtml();
+ foreach ($value['fields'] as $key => $field) {
+ $field['page'] = $option;
+ $field['section'] = $section->getId();
+ $field['name'] = $option;
+ $this->getField($field);
+ }
+ }
+ // Register settings.
+ register_setting( $option, $option, array( $this, 'validate_options' ) );
+ }
+
+ /**
+ * @param $input
+ * @return array
+ */
+ public function validate_options($fields ) {
+ $sanitizedData = [];
+ foreach ($fields as $key => $field) {
+ if (isset($fields[$key])) {
+ $sanitizedData[$key] = $this->sanitize_field($field);
+ }
+ }
+ return $sanitizedData;
+ }
+
+ private function sanitize_field($field)
+ {
+ if (is_array($field)) {
+ return $this->validate_options($field);
+ }
+ return sanitize_text_field($field);
+ }
+
}
diff --git a/src/Controller/Webhooks.php b/src/Controller/Webhooks.php
index 547acef4..560003ec 100644
--- a/src/Controller/Webhooks.php
+++ b/src/Controller/Webhooks.php
@@ -8,17 +8,17 @@
use Woocommerce\Pagarme\Helper\Utils;
use Woocommerce\Pagarme\Core;
+use Woocommerce\Pagarme\Model\Config;
use Woocommerce\Pagarme\Model\Order;
-use Woocommerce\Pagarme\Model\Setting;
use Exception;
class Webhooks
{
- private $settings;
+ private $config;
public function __construct()
{
- $this->settings = Setting::get_instance();
+ $this->config = new Config();
add_action('woocommerce_api_' . Core::get_webhook_name(), array($this, 'handle_requests'));
}
@@ -27,10 +27,10 @@ public function handle_requests()
$body = Utils::get_json_post_data();
if (empty($body)) {
- $this->settings->log()->add('woo-pagarme', 'Webhook Received: empty body!');
+ $this->config->log()->add('woo-pagarme', 'Webhook Received: empty body!');
return;
}
- $this->settings->log()->add('woo-pagarme', 'Webhook Received: ' . json_encode($body, JSON_PRETTY_PRINT));
+ $this->config->log()->add('woo-pagarme', 'Webhook Received: ' . json_encode($body, JSON_PRETTY_PRINT));
$event = $this->sanitize_event_name($body->type);
diff --git a/src/Core.php b/src/Core.php
index fc9893e6..4368c2ca 100644
--- a/src/Core.php
+++ b/src/Core.php
@@ -7,7 +7,6 @@
}
use Woocommerce\Pagarme\Helper\Utils;
-use Woocommerce\Pagarme\Model\Setting;
class Core
{
@@ -23,7 +22,6 @@ private function __construct()
{
add_action('init', array(__CLASS__, 'load_textdomain'));
add_action('admin_init', array(__CLASS__, 'redirect_on_activate'));
-
self::initialize();
self::admin_enqueue_scripts();
self::front_enqueue_scripts();
@@ -118,35 +116,62 @@ public static function scripts_front()
public static function enqueue_scripts($type, $deps = array(), $localize_args = array())
{
- $id = "{$type}-script-" . self::SLUG;
-
wp_enqueue_script(
- $id,
- self::plugins_url("assets/javascripts/{$type}/built.js"),
- array_merge(array('jquery'), $deps),
- self::filemtime("assets/javascripts/{$type}/built.js"),
+ 'jquery.mask',
+ self::plugins_url("assets/javascripts/vendor/jquery.mask.js"),
+ array('jquery'),
+ '1.14.16',
+ false
+ );
+ wp_enqueue_script(
+ 'sweetalert2',
+ self::plugins_url("assets/javascripts/vendor/sweetalert2.all.min.js"),
+ array(),
+ '6.11.5',
true
);
-
+ if ($type == 'admin') {
+ wp_enqueue_script(
+ 'izimodal',
+ self::plugins_url("assets/javascripts/admin/vendor/iziModal.min.js"),
+ array_merge(['jquery'], $deps),
+ '1.6.1',
+ false
+ );
+ }
if ($type == 'front') {
wp_enqueue_script(
- 'sweetalert2',
- self::plugins_url("assets/javascripts/vendor/sweetalert2.js"),
+ 'pagarme-checkout-card',
+ self::plugins_url("assets/javascripts/front/checkout/model/payment.js"),
array_merge(array('jquery'), $deps),
- self::filemtime("assets/javascripts/vendor/sweetalert2.js"),
+ self::filemtime("assets/javascripts/front/checkout/model/payment.js"),
true
);
+ wp_localize_script(
+ 'pagarme-checkout-card',
+ 'PagarmeGlobalVars',
+ self::get_localize_script_args()
+ );
}
- wp_localize_script(
- $id,
- self::LOCALIZE_SCRIPT_ID,
- self::get_localize_script_args($localize_args)
- );
}
public static function enqueue_styles($type)
{
+ if ($type == 'admin') {
+ wp_enqueue_style(
+ 'izimodal',
+ self::plugins_url("assets/stylesheets/vendor/iziModal.min.css"),
+ array(),
+ '1.6.1'
+ );
+ }
+ wp_enqueue_style(
+ 'sweetalert2',
+ self::plugins_url("assets/stylesheets/vendor/sweetalert2.min.css"),
+ array(),
+ '6.11.5'
+ );
wp_enqueue_style(
"{$type}-style-" . self::SLUG,
self::plugins_url("assets/stylesheets/{$type}/style.css"),
@@ -196,7 +221,7 @@ public static function filemtime($path)
public static function get_page_link()
{
- return Utils::get_admin_url('admin.php') . '?page=wc-settings&tab=checkout§ion=' . self::SLUG;
+ return Utils::get_admin_url('admin.php') . '?page=' . self::SLUG;
}
public static function tag_name($name = '')
@@ -268,20 +293,20 @@ public static function get_hub_name()
public static function credit_card_errors_pt_br()
{
return array(
- 'A value is required.' => 'Validade: O mês é obrigatório.',
- 'The field exp_month must be between 1 and 12.' => 'Validade: O mês deve estar entre 1 e 12.',
- "The value 'undefined' is not valid for exp_year." => 'Validade: Ano inválido.',
- 'The card expiration date is invalid.' => 'Validade: Data de expiração inválida.',
- 'Card expired.' => 'Validade: Cartão expirado.',
- 'The holder_name field is required.' => 'O nome impresso no cartão é obrigatório.',
- 'The number field is required.' => 'O número do cartão é obrigatório.',
- 'The number field is not a valid number.' => 'O número do cartão é inválido.',
- 'The number field is not a valid credit card number.' => 'O número do cartão é inválido.',
- 'The field number must be a string with a minimum length of 13 and a maximum length of 19.'
- => 'O tamanho do número do cartão deve ter entre 13 e 19 caracteres.',
- 'The field cvv must be a string with a minimum length of 3 and a maximum length of 4.'
- => 'O campo cvv deve ter entre 3 e 4 caracteres.',
- 'The cvv field is not a valid number.' => 'O CVV é inválido',
+ 'exp_month: A value is required.' => 'Validade: O mês é obrigatório.',
+ 'exp_month: The field exp_month must be between 1 and 12.' => 'Validade: O mês deve estar entre 1 e 12.',
+ "exp_year: The value 'undefined' is not valid for exp_year." => 'Validade: Ano inválido.',
+ 'request: The card expiration date is invalid.' => 'Validade: Data de expiração inválida.',
+ 'request: Card expired.' => 'Validade: Cartão expirado.',
+ 'holder_name: The holder_name field is required.' => 'O nome impresso no cartão é obrigatório.',
+ 'number: The number field is required.' => 'O número do cartão é obrigatório.',
+ 'number: The number field is not a valid credit card number.' => 'Este número de cartão é inválido.',
+ 'card: The number field is not a valid card number' => 'Este número de cartão é inválido.',
+ 'card.number: The field number must be a string with a minimum length of 13 and a maximum length of 19.'
+ => 'O numéro do cartão deve ter entre 13 e 19 caracteres.',
+ 'card: Card expired.' => 'A validade do cartão está expirada',
+ 'card.cvv: The field cvv must be a string with a minimum length of 3 and a maximum length of 4.'
+ => 'O número cvv deve ter 3 ou 4 caracteres.',
);
}
}
diff --git a/src/DB/Migration/AbstractMigration.php b/src/DB/Migration/AbstractMigration.php
index db07696b..04cb36e0 100644
--- a/src/DB/Migration/AbstractMigration.php
+++ b/src/DB/Migration/AbstractMigration.php
@@ -11,7 +11,7 @@
namespace Woocommerce\Pagarme\DB\Migration;
-use Woocommerce\Pagarme\Model\Setting;
+use Woocommerce\Pagarme\Model\Config;
use wpdb;
defined( 'ABSPATH' ) || exit;
@@ -30,19 +30,19 @@ abstract class AbstractMigration
protected $wpdb;
/**
- * @var Setting
+ * @var Config
*/
protected $settings;
/**
- * @param Setting|null $settings
+ * @param Config|null $settings
*/
public function __construct(
- ?Setting $settings = null
+ ?Config $settings = null
) {
global $wpdb;
$this->wpdb = $wpdb;
- $this->settings = $settings ?? Setting::get_instance();
+ $this->settings = $settings ?? new Config;
}
/**
@@ -51,9 +51,9 @@ public function __construct(
*/
public function canApply(MigrationInterface $migration): bool
{
- if ( $this->settings->__get(self::MIGRATION_SETTINGS) &&
- is_array($this->settings->__get(self::MIGRATION_SETTINGS)) &&
- in_array(get_class($migration), $this->settings->__get(self::MIGRATION_SETTINGS)) ) {
+ if ( $this->settings->getData(self::MIGRATION_SETTINGS) &&
+ is_array($this->settings->getData(self::MIGRATION_SETTINGS)) &&
+ in_array(get_class($migration), $this->settings->getData(self::MIGRATION_SETTINGS)) ) {
return false;
}
return true;
@@ -65,12 +65,33 @@ public function canApply(MigrationInterface $migration): bool
*/
public function registerMigration(MigrationInterface $migration)
{
- $migrationSetting = $this->settings->__get(self::MIGRATION_SETTINGS);
- if (empty($migrationSetting)) {
+ $migrationSetting = $this->settings->getData(self::MIGRATION_SETTINGS);
+ if (!is_array($migrationSetting)) {
$migrationSetting = [];
}
$migrationSetting[] = get_class($migration);
- $this->settings->set(self::MIGRATION_SETTINGS, $migrationSetting);
+ $this->settings->setData(self::MIGRATION_SETTINGS, $migrationSetting);
+ $this->settings->save();
+ }
+
+ /**
+ * @param MigrationInterface $migration
+ * @return void
+ */
+ public function unregisterMigration(MigrationInterface $migration): void
+ {
+ $migrationSetting = $this->settings->getData(self::MIGRATION_SETTINGS);
+ if (!is_array($migrationSetting)) {
+ return;
+ }
+ $class = get_class($migration);
+ $key = array_search($class, $migrationSetting);
+ if (is_int($key) && array_key_exists($key,$migrationSetting)) {
+ unset($migrationSetting[$key]);
+ $migrationSetting = array_values($migrationSetting);
+ $this->settings->setData(self::MIGRATION_SETTINGS, $migrationSetting);
+ }
+ $this->settings->save();
}
/**
diff --git a/src/DB/Migration/MigrationInterface.php b/src/DB/Migration/MigrationInterface.php
index 7f0bdff5..f3a179b2 100644
--- a/src/DB/Migration/MigrationInterface.php
+++ b/src/DB/Migration/MigrationInterface.php
@@ -44,4 +44,16 @@ public function registerMigration(MigrationInterface $migration);
* @return array
*/
public function getDependencies(): array;
+
+ /**
+ * @param MigrationInterface $migration
+ * @return void
+ */
+ public function unregisterMigration(MigrationInterface $migration): void;
+
+ /**
+ * Checks if the migration has already been run. Returns true if not.
+ * @return bool
+ */
+ public function validate(): bool;
}
diff --git a/src/DB/Migration/Migrations/TypeInSavedCardTable.php b/src/DB/Migration/Migrations/2021-10-28-0000-TypeInSavedCardTable.php
similarity index 55%
rename from src/DB/Migration/Migrations/TypeInSavedCardTable.php
rename to src/DB/Migration/Migrations/2021-10-28-0000-TypeInSavedCardTable.php
index 80abd84d..ac64b8a4 100644
--- a/src/DB/Migration/Migrations/TypeInSavedCardTable.php
+++ b/src/DB/Migration/Migrations/2021-10-28-0000-TypeInSavedCardTable.php
@@ -31,19 +31,34 @@ class TypeInSavedCardTable extends AbstractMigration implements MigrationInterfa
/**
* Apply the migrations.
- *
* @return void
*/
public function apply(): void
{
$table_name = $this->wpdb->prefix . self::TABLE;
$column_name = self::COLUMN_TYPE;
- $row = $this->wpdb->get_results( "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '$table_name' AND column_name = '$column_name'");
+ if ($this->validate()) {
+ try {
+ $query = "ALTER TABLE {$table_name} ADD {$column_name} varchar(30) not null comment 'card type' AFTER brand";
+ $this->wpdb->query($query);
+ $query = "UPDATE {$table_name} SET type = 'credit_card'";
+ $this->wpdb->query($query);
+ } catch (\Exception $e) {}
+ }
+ }
+
+ /**
+ * Checks if the migration has already been run. Returns true if not.
+ * @return bool
+ */
+ public function validate(): bool
+ {
+ $table_name = $this->wpdb->prefix . self::TABLE;
+ $column_name = self::COLUMN_TYPE;
+ $row = $this->wpdb->get_results( "SHOW COLUMNS FROM $table_name LIKE '$column_name'");
if (empty($row)) {
- $query = "ALTER TABLE {$table_name} ADD {$column_name} varchar(30) not null comment 'card type' AFTER brand";
- $this->wpdb->query($query);
+ return true;
}
- $query = "UPDATE {$table_name} SET type = 'credit_card'";
- $this->wpdb->query($query);
+ return false;
}
}
diff --git a/src/DB/Migration/Migrator.php b/src/DB/Migration/Migrator.php
index 803bf297..e4187799 100644
--- a/src/DB/Migration/Migrator.php
+++ b/src/DB/Migration/Migrator.php
@@ -29,10 +29,14 @@ public function execute()
{
$this->autoLoad();
$migrationsClasses = $this->getMigrations();
+ $this->sort($migrationsClasses);
if (count($migrationsClasses)) {
foreach ($migrationsClasses as $class) {
/** @var MigrationInterface $migration */
$migration = new $class;
+ if ($migration->validate()) {
+ $migration->unregisterMigration($migration);
+ }
if ($migration->canApply($migration)) {
$migration->apply();
$migration->registerMigration($migration);
@@ -58,9 +62,22 @@ private function getMigrations()
$implements = [];
foreach($classes as $klass) {
$reflect = new ReflectionClass($klass);
- if($reflect->implementsInterface(MigrationInterface::class))
- $implements[] = $klass;
+ if($reflect->implementsInterface(MigrationInterface::class)) {
+ $explodedFileName = explode(DIRECTORY_SEPARATOR, $reflect->getFileName());
+ $implements[end($explodedFileName)] = $klass;
+ }
}
return $implements;
}
+
+ /**
+ * @param $migrationsClasses
+ * @return void
+ */
+ private function sort(&$migrationsClasses)
+ {
+ if (is_array($migrationsClasses)) {
+ ksort($migrationsClasses);
+ }
+ }
}
diff --git a/src/Helper/Utils.php b/src/Helper/Utils.php
index 65f1679f..d6650316 100644
--- a/src/Helper/Utils.php
+++ b/src/Helper/Utils.php
@@ -7,7 +7,7 @@
}
use Woocommerce\Pagarme\Core;
-use Woocommerce\Pagarme\Model\Setting;
+use Woocommerce\Pagarme\Model\Config;
use Woocommerce\Pagarme\Model\Order;
use WC_Order;
@@ -479,7 +479,7 @@ public static function is_cnpj($cnpj = null)
*/
public static function get_option_key()
{
- $settings = Setting::get_instance();
+ $settings = new Config();
return $settings->get_option_key();
}
@@ -561,7 +561,10 @@ public static function get_template($file, $args = array())
$locale = Core::plugin_dir_path() . $file . '.php';
if (!file_exists($locale)) {
- return;
+ $locale = Core::plugin_dir_path() . $file . '.phtml';
+ if (!file_exists($locale)) {
+ return;
+ }
}
include $locale;
@@ -737,7 +740,7 @@ public static function build_customer_shipping_from_wc_order(WC_Order $wc_order)
{
$method = $wc_order->get_shipping_method();
- $order = new Order($wc_order->get_order_number());
+ $order = new Order($wc_order->get_id());
if (!$method) {
$method = 'Não informado';
diff --git a/src/Model/Account.php b/src/Model/Account.php
index d20d5af4..8c8e8f0e 100644
--- a/src/Model/Account.php
+++ b/src/Model/Account.php
@@ -10,12 +10,12 @@
class Account
{
- private $setting;
+ private $config;
const WALLET_ENDPOINT = 'zff3yg2have4pcw';
public function __construct()
{
- $this->setting = Setting::get_instance();
+ $this->config = new Config();
}
}
diff --git a/src/Model/CardInstallments.php b/src/Model/CardInstallments.php
new file mode 100644
index 00000000..9d85dc67
--- /dev/null
+++ b/src/Model/CardInstallments.php
@@ -0,0 +1,181 @@
+config = $config;
+ }
+
+ /**
+ * @param $total
+ * @param $flag
+ * @return mixed
+ */
+ public function getInstallmentsByType($total, $flag = false)
+ {
+ $total = Utils::str_to_float($total);
+ $type = $this->config->getCcInstallmentType() ?? 1;
+ $maxInstallments = $this->config->getCcInstallmentsMaximum();
+ $minAmount = Utils::str_to_float($this->config->getCcInstallmentsMinAmount());
+ $noInterest = intval($this->config->getCcInstallmentsWithoutInterest());
+ $interest = Utils::str_to_float($this->config->getCcInstallmentsInterest());
+ $interestIncrease = Utils::str_to_float($this->config->getCcInstallmentsInterestIncrease());
+ $method = 'calcInstallments' . $type;
+ return $this->{$method}(
+ compact('maxInstallments', 'minAmount', 'noInterest', 'interest', 'interestIncrease', 'total', 'flag')
+ );
+ }
+
+ /**
+ * @param $total
+ * @param $maxInstallments
+ * @param $minAmount
+ * @param $interest
+ * @param $interestIncrease
+ * @param $noInterest
+ * @return array
+ */
+ public function getOptions($total, $maxInstallments, $minAmount, $interest, $interestIncrease, $noInterest)
+ {
+ $options[] = [
+ 'value' => 1,
+ 'content' => __('1x', 'woo-pagarme-payments') . ' (' . wc_price($total) . ')'
+ ];
+ $interestBase = $interest;
+ for ($times = 2; $times <= $maxInstallments; $times++) {
+ $interest = $interestBase;
+ $amount = $total;
+ if ($interest || $interestIncrease) {
+ if ($interestIncrease && $times > $noInterest + 1) {
+ $interest += ($interestIncrease * ($times - ($noInterest + 1)));
+ }
+ $amount += Utils::calc_percentage($interest, $total);
+ }
+ $value = $amount;
+ if ($times <= $noInterest) {
+ $value = $total;
+ }
+ $price = ceil($value / $times * 100) / 100;
+ if ($price < $minAmount) {
+ break;
+ }
+ $text = sprintf(
+ __('%dx of %s (%s)', 'woo-pagarme-payments'),
+ $times,
+ wc_price($price),
+ wc_price($value)
+ );
+
+ $text .= $this->verifyInterest($times, $noInterest, $interest);
+
+ $options[] = [
+ 'value' => $times,
+ 'content' => $text
+ ];
+ }
+ return $options;
+ }
+
+ /**
+ * @param int $times
+ * @param mixed $noInterest
+ * @param mixed $interest
+ * @return string
+ */
+ public function verifyInterest(int $times, $noInterest, $interest): string
+ {
+ if ($times > $noInterest && $interest) {
+ return " c/juros";
+ }
+
+ return " s/juros";
+ }
+
+ /**
+ * @param array $options
+ * @return string
+ */
+ public function renderOptions(array $options)
+ {
+ $html = '';
+ if (!$options) {
+ $html .= '';
+ }
+ foreach ($options as $option) {
+ $html .= '';
+ }
+ return $html;
+ }
+
+ /**
+ * @param array $params
+ * @return string
+ */
+ private function calcInstallments1(array $params)
+ {
+ extract($params, EXTR_SKIP);
+ return $this->getOptions($total, $maxInstallments, $minAmount, $interest, $interestIncrease, $noInterest);
+ }
+
+ /**
+ * @param array $params
+ * @return string
+ */
+ private function calcInstallments2(array $params)
+ {
+ $configByFlags = $this->config->getCcInstallmentsByFlag();
+ extract($params, EXTR_SKIP);
+ if (!$flag || !isset($configByFlags['max_installment'][$flag])) {
+ return [[
+ 'value' => 0,
+ 'content' => __('This card brand not is allowed on checkout.', Core::SLUG)
+ ]];
+ }
+ $maxInstallments = intval($configByFlags['max_installment'][$flag]);
+ $minAmount = Utils::str_to_float($configByFlags['installment_min_amount'][$flag]);
+ $noInterest = intval($configByFlags['no_interest'][$flag]);
+ $interest = Utils::str_to_float($configByFlags['interest'][$flag]);
+ $interestIncrease = Utils::str_to_float($configByFlags['interest_increase'][$flag]);
+ return $this->getOptions($total, $maxInstallments, $minAmount, $interest, $interestIncrease, $noInterest);
+ }
+
+
+}
diff --git a/src/Model/Charge.php b/src/Model/Charge.php
index 84ff1bc3..572a3109 100644
--- a/src/Model/Charge.php
+++ b/src/Model/Charge.php
@@ -8,9 +8,6 @@
use Pagarme\Core\Webhook\Factories\WebhookFactory;
use Pagarme\Core\Webhook\Services\ChargeHandlerService;
-use Woocommerce\Pagarme\Core;
-use Woocommerce\Pagarme\Helper\Utils;
-use Woocommerce\Pagarme\Model\Setting;
use WC_Order;
class Charge
@@ -220,7 +217,7 @@ public function get_i18n_status($status)
public function is_allowed_capture($charge)
{
- $transaction = array_shift($charge->getTransactions());
+ $transaction = current($charge->getTransactions());
$method = $transaction->getTransactionType()->getType();
$chargeStatus = $charge->getStatus()->getStatus();
@@ -238,7 +235,8 @@ public function is_allowed_capture($charge)
public function is_allowed_cancel($charge)
{
$status = $charge->getStatus()->getStatus();
- $transaction = array_shift($charge->getTransactions());
+ $transactions = $charge->getTransactions();
+ $transaction = array_shift($transactions);
$method = $transaction->getTransactionType()->getType();
if ($method == 'boleto' && in_array($status, ['pending'])) {
diff --git a/src/Model/Checkout.php b/src/Model/Checkout.php
index 95550bc3..81dc724c 100644
--- a/src/Model/Checkout.php
+++ b/src/Model/Checkout.php
@@ -1,21 +1,222 @@
config = $config;
+ $this->orders = $orders;
+ $this->gateway = $gateway;
+ $this->wooOrderRepository = $wooOrderRepository;
+ add_action('woocommerce_after_checkout_validation', array($this, 'validateCheckout'), 10, 2);
+ }
+
+ public function validateCheckout($fields, $errors)
+ {
+ if (
+ $fields['billing_number'] == 0 &&
+ !key_exists('billing_number_required', $errors->errors)
+ ) {
+ $errors->add('billing_number_required', 'O campo "Número" do endereço de faturamento é um campo obrigatório.');
+ }
+ if (
+ $fields['ship_to_different_address'] &&
+ $fields['shipping_number'] == 0 &&
+ !key_exists('shipping_number_required', $errors->errors)
+ ) {
+ $errors->add('shipping_number_required', 'O campo "Número" do endereço de entrega é um campo obrigatório.');
+ }
+ }
+
+ /**
+ * @return Config
+ */
+ public function getConfig()
+ {
+ return $this->config;
+ }
+
+ /**
+ * @param WC_Order|null $wc_order
+ * @param string $type
+ * @return bool|void
+ * @throws \Exception
+ */
+ public function process(WC_Order $wc_order = null, string $type = CheckoutTypes::TRANSPARENT_VALUE)
+ {
+ if (!Utils::is_request_ajax() || Utils::server('REQUEST_METHOD') !== 'POST') {
+ exit(0);
+ }
+ if (!$wc_order) {
+ wp_send_json_error(__('Invalid order', 'woo-pagarme-payments'));
+ }
+ if (!isset($_POST[PaymentRequestInterface::PAGARME_PAYMENT_REQUEST_KEY])) {
+ wp_send_json_error(__('Invalid payment request', 'woo-pagarme-payments'));
+ }
+ if ($type === CheckoutTypes::TRANSPARENT_VALUE) {
+ $fields = $this->convertCheckoutObject($_POST[PaymentRequestInterface::PAGARME_PAYMENT_REQUEST_KEY]);
+ $response = $this->orders->create_order(
+ $wc_order,
+ $fields['payment_method'],
+ $fields
+ );
+
+ $order = new Order($wc_order->get_id());
+ $order->payment_method = $fields['payment_method'];
+ WC()->cart->empty_cart();
+ if ($response) {
+ $order->transaction_id = $response->getPagarmeId()->getValue();
+ $order->pagarme_id = $response->getPagarmeId()->getValue();
+ $order->pagarme_status = $response->getStatus()->getStatus();
+ $order->response_data = json_encode($response);
+ $order->update_by_pagarme_status($response->getStatus()->getStatus());
+ return true;
+ }
+ $order->pagarme_status = 'failed';
+ $order->update_by_pagarme_status('failed');
+ return false;
+ }
+ }
+
+ private function convertCheckoutObject(PaymentRequestInterface $paymentRequest)
+ {
+ $fields = [
+ 'payment_method' => str_replace('-', '_', $paymentRequest->getPaymentMethod())
+ ];
+ if ($cards = $paymentRequest->getCards()) {
+ foreach ($cards as $key => $card) {
+ $key++;
+ if ($key === 1) {
+ if ($orderValue = $card->getOrderValue()) {
+ $fields['card_order_value'] = $orderValue;
+ }
+ $fields['brand'] = $card->getBrand();
+ $fields['installments'] = $card->getInstallment() ?? 1;
+ if ($card->getSaveCard()) {
+ $fields['save_credit_card'] = 1;
+ }
+ if ($value = $card->getWalletId()) {
+ $fields['card_id'] = $value;
+ }
+ } else {
+ if ($orderValue = $card->getOrderValue()) {
+ $fields['card_order_value' . $key] = $orderValue;
+ }
+ $fields['brand' . $key] = $card->getBrand();
+ $fields['installments' . $key] = $card->getInstallment() ?? 1;
+ if ($card->getSaveCard()) {
+ $fields['save_credit_card' . $key] = 1;
+ }
+ if ($value = $card->getWalletId()) {
+ $fields['card_id' . $key] = $value;
+ }
+ }
+ $fields['pagarmetoken' . $key] = $card->getToken();
+ }
+ }
+ $this->extractMulticustomers($fields, $paymentRequest);
+ $this->extractOrderValue($fields, $paymentRequest);
+ return $fields;
+ }
+
+ private function extractMulticustomers(array &$fields, PaymentRequestInterface $paymentRequest)
+ {
+ foreach ($paymentRequest->getData() as $method => $data) {
+ if ($data instanceof AbstractPayment) {
+ if ($data->getMulticustomers() instanceof Multicustomers) {
+ foreach ($data->getMulticustomers()->getData() as $key => $value) {
+ $fields['multicustomer_' . $method][$key] = $value;
+ $fields['multicustomer_' . $method . '[' . $key . ']'] = $value;
+ $fields['enable_multicustomers_' . $method] = 1;
+ }
+ }
+ }
+ if (is_array($data)) {
+ foreach ($data as $sequece => $datum) {
+ if ($datum instanceof Card) {
+ $method = 'card';
+ $sequece++;
+ if (count($data) > 1) {
+ $method .= $sequece;
+ }
+ if ($datum->getMulticustomers() instanceof Multicustomers) {
+ foreach ($datum->getMulticustomers()->getData() as $key => $value) {
+ $fields['multicustomer_' . $method][$key] = $value;
+ $fields['multicustomer_' . $method . '[' . $key . ']'] = $value;
+ $fields['enable_multicustomers_' . $method] = $value;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private function extractOrderValue(array &$fields, PaymentRequestInterface $paymentRequest)
{
- $this->setting = Setting::get_instance();
+ foreach ($paymentRequest->getData() as $method => $data) {
+ if ($data instanceof AbstractPayment) {
+ if ($orderValue = $data->getOrderValue()) {
+ $fields[$method . '_value'] = $orderValue;
+ }
+ }
+ }
}
}
diff --git a/src/Model/Config.php b/src/Model/Config.php
new file mode 100644
index 00000000..ad25a1f4
--- /dev/null
+++ b/src/Model/Config.php
@@ -0,0 +1,276 @@
+pagarmeCoreConfigManagement = $pagarmeCoreConfigManagement ?? new PagarmeCoreConfigManagement;
+ parent::__construct($jsonSerialize, $data);
+ $this->init();
+ }
+
+ /**
+ * @return void
+ */
+ private function init()
+ {
+ if (is_array($this->getOptions()) || is_object($this->getOptions())) {
+ foreach ($this->getOptions() as $key => $value) {
+ $this->setData($key, $value);
+ }
+ add_action(
+ 'update_option_' . $this->getOptionKey(),
+ [ $this, 'updateOption' ],
+ 10, 3
+ );
+ }
+ }
+
+ /**
+ * @return void
+ */
+ public function updateOption()
+ {
+ if (array_key_exists($this->getOptionKey(), $_POST)) {
+ $values = $_POST[$this->getOptionKey()];
+ if ($values && is_array($values)) {
+ foreach ($values as $key => $value) {
+ $this->setData($key, sanitize_text_field($value));
+ }
+ }
+ $this->save();
+ }
+ }
+
+ /**
+ * @param Config|null $config
+ * @return void
+ */
+ public function save(Config $config = null)
+ {
+ if (!$config) {
+ $config = $this;
+ }
+ update_option($this->getOptionKey(), $config->getData());
+ $this->pagarmeCoreConfigManagement->update($config);
+ }
+
+ /**
+ * @return false|mixed|null
+ */
+ private function getOptions()
+ {
+ return get_option($this->getOptionKey());
+ }
+
+ /**
+ * @return string
+ */
+ public function getOptionKey()
+ {
+ return Core::tag_name('settings');
+ }
+
+ /**
+ * @return mixed
+ */
+ private function getHubAppId()
+ {
+ return CoreSetup::getHubAppPublicAppKey();
+ }
+
+ /**
+ * @return bool
+ */
+ public function getIsSandboxMode()
+ {
+ return ( $this->getHubEnvironment() === static::HUB_SANDBOX_ENVIRONMENT ||
+ strpos(($this->getProductionSecretKey()) ?? '', 'sk_test') !== false ||
+ strpos(($this->getProductionPublicKey()) ?? '', 'pk_test') !== false
+ );
+ }
+
+ /**
+ * @return string
+ */
+ public function getHubUrl(): string
+ {
+ return ($this->getHubInstallId()) ? $this->getHubViewIntegrationUrl() : $this->getHubIntegrateUrl();
+ }
+
+ /**
+ * @return string
+ */
+ private function getHubIntegrateUrl(): string
+ {
+ return $this->getHubBaseUrl() . $this->getHubParamsUrl();
+ }
+
+ /**
+ * @return string
+ */
+ private function getHubBaseUrl()
+ {
+ return sprintf(
+ 'https://hub.pagar.me/apps/%s/authorize',
+ $this->getHubAppId()
+ );
+ }
+
+ /**
+ * @return string
+ */
+ private function getHubParamsUrl()
+ {
+ return sprintf(
+ '?redirect=%s?install_token=%s',
+ Core::get_hub_url(),
+ $this->getHubInstallToken()
+ );
+ }
+
+ /**
+ * @return string
+ */
+ private function getHubViewIntegrationUrl()
+ {
+ return sprintf(
+ 'https://hub.pagar.me/apps/%s/edit/%s',
+ $this->getHubAppId(),
+ $this->getHubInstallId()
+ );
+ }
+
+ /**
+ * @return string
+ */
+ private function getHubInstallToken()
+ {
+ $installSeed = uniqid();
+ $hubIntegrationService = new HubIntegrationService();
+ $installToken = $hubIntegrationService
+ ->startHubIntegration($installSeed);
+ return $installToken->getValue();
+ }
+
+ /**
+ * @return string
+ */
+ public function getPublicKey()
+ {
+ $publicKey = $this->getData('production_public_key');
+ if ($this->getHubEnvironment() === EnvironmentsTypes::SANDBOX_VALUE && $this->getData('sandbox_public_key')) {
+ $publicKey = $this->getData('sandbox_public_key');
+ }
+ return $publicKey;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSecretKey()
+ {
+ $publicKey = $this->getData('production_secret_key');
+ if ($this->getHubEnvironment() === EnvironmentsTypes::SANDBOX_VALUE && $this->getData('sandbox_secret_key')) {
+ $publicKey = $this->getData('sandbox_secret_key');
+ }
+ return $publicKey;
+ }
+
+ public function getCardOperationForCore()
+ {
+ return ((int)$this->getCcOperationType() === 2 ? 'auth_and_capture' : 'auth_only');
+ }
+
+ /**
+ * @return array|mixed
+ */
+ public function getCcFlags()
+ {
+ $ccFlags = [];
+ if ($value = $this->getData('cc_flags')) {
+ $ccFlags = $value;
+ }
+ return $ccFlags;
+ }
+
+ public function getMulticustomers()
+ {
+ return $this->getData('multicustomers') === 'yes';
+ }
+
+ public function getCcAllowSave()
+ {
+ return $this->getData('cc_allow_save') === 'yes';
+ }
+
+ public function getVoucherCardWallet()
+ {
+ return $this->getData('voucher_card_wallet') === 'yes';
+ }
+
+ public function getEnableLogs()
+ {
+ return $this->getData('enable_logs') === 'yes';
+ }
+
+ public function getIsGatewayIntegrationType()
+ {
+ return $this->getData('is_gateway_integration_type') === 'yes';
+ }
+
+ public function getIsInstallmentsDefaultConfig()
+ {
+ return $this->getData('cc_installment_type') === '1';
+ }
+
+ public function getAntifraudEnabled()
+ {
+ return $this->getData('antifraud_enabled') === 'yes';
+ }
+
+ public function log()
+ {
+ return new \WC_Logger();
+ }
+
+}
diff --git a/src/Model/Config/PagarmeCoreConfigManagement.php b/src/Model/Config/PagarmeCoreConfigManagement.php
new file mode 100644
index 00000000..0a2e1a72
--- /dev/null
+++ b/src/Model/Config/PagarmeCoreConfigManagement.php
@@ -0,0 +1,184 @@
+pagarmeCoreConfigFactory = $pagarmeCoreConfigFactory ?? new ConfigurationFactory;
+ $this->jsonSerialize = $jsonSerialize ?? new Json;
+ $this->dataObject = $dataObject ?? new DataObject;
+ }
+
+ public function update(Config $config)
+ {
+ $data = $config->getData();
+ /** @var \Pagarme\Core\Kernel\Aggregates\Configuration */
+ $moduleConfig = MPSetup::getModuleConfiguration();
+ foreach ($data as $key => $datum) {
+ unset($data[$key]);
+ $method = $this->getMethod($key, '');
+ if (method_exists($this, 'convertKey' . $method)) {
+ $method = $this->{'convertKey' . $method}();
+ }
+ if (method_exists($this, 'convertData' . $method)) {
+ $datum = $this->{'convertData' . $method}($datum);
+ }
+ if (method_exists($moduleConfig, $this->getMethod($method))) {
+ $moduleConfig->{$this->getMethod($method)}($datum);
+ }
+ }
+ $this->pagarmeCoreConfigRepository = $this->pagarmeCoreConfigRepository ?? new ConfigurationRepository;
+ $this->pagarmeCoreConfigRepository->save($moduleConfig);
+ }
+
+ /**
+ * @param string $value
+ * @param string $type
+ * @return string
+ */
+ private function getMethod(string $value, string $type = 'set')
+ {
+ return $type . str_replace(' ', '', ucwords(str_replace('_', ' ', $value)));
+ }
+
+ /**
+ * @return string
+ */
+ public function convertKeyCcAllowSave()
+ {
+ return 'saveCards';
+ }
+
+ /**
+ * @return string
+ */
+ public function convertKeyVoucherCardWallet()
+ {
+ return 'saveVoucherCards';
+ }
+
+ /**
+ * @return string
+ */
+ public function convertKeyAntifraudMinValue()
+ {
+ return 'antifraudMinAmount';
+ }
+
+ /**
+ * @return string
+ */
+ public function convertKeyEnableBillet()
+ {
+ return 'boletoEnabled';
+ }
+
+ /**
+ * @return string
+ */
+ public function convertKeyEnableCreditCard()
+ {
+ return 'creditCardEnabled';
+ }
+
+ /**
+ * @return string
+ */
+ public function convertKeyMultimethods2Cards()
+ {
+ return 'twoCreditCardsEnabled';
+ }
+
+ /**
+ * @return string
+ */
+ public function convertKeyMultimethodsBilletCard()
+ {
+ return 'boletoCreditCardEnabled';
+ }
+
+ /**
+ * @param $datum
+ * @return bool
+ */
+ public function convertDataSaveCards($datum)
+ {
+ return (bool) $datum;
+ }
+
+ /**
+ * @param $datum
+ * @return bool
+ */
+ public function convertDataAntifraudEnabled($datum)
+ {
+ return (bool) $datum;
+ }
+
+ /**
+ * @param $datum
+ * @return bool
+ */
+ public function convertDataSaveVoucherCards($datum)
+ {
+ return (bool) $datum;
+ }
+
+ /**
+ * @param $datum
+ * @return GUID
+ * @throws InvalidParamException
+ */
+ public function convertDataHubInstallId($datum)
+ {
+ if (!$datum) {
+ $datum = '00000000-0000-0000-0000-000000000000';
+ }
+ return new GUID($datum);
+ }
+}
diff --git a/src/Model/Config/Source/AbstractOptions.php b/src/Model/Config/Source/AbstractOptions.php
new file mode 100644
index 00000000..b4c32439
--- /dev/null
+++ b/src/Model/Config/Source/AbstractOptions.php
@@ -0,0 +1,73 @@
+getConstants();
+ foreach ($const as $code => $value) {
+ if (strpos($code, '_VALUE') === false) {
+ $options[] = ['value' => $const[$code . '_VALUE'], 'label' => __($value)];
+ }
+ }
+ return $options;
+ }
+
+ /**
+ * "key-value" format
+ * @return array
+ */
+ public function toArray()
+ {
+ $options = [];
+ $reflectionClass = new \ReflectionClass($this);
+ $const = $reflectionClass->getConstants();
+ foreach ($const as $code => $value) {
+ if (strpos($code, '_VALUE') === false) {
+ $options[$const[$code . '_VALUE']] = __($value);
+ }
+ }
+ return $options;
+ }
+
+ /**
+ * "key-value" format
+ * @return array
+ */
+ public function toLabelsArray($translate = false)
+ {
+ $options = [];
+ $reflectionClass = new \ReflectionClass($this);
+ $const = $reflectionClass->getConstants();
+ foreach ($const as $code => $value) {
+ if (strpos($code, '_VALUE') === false) {
+ $options[strtolower($value)] = $translate ? __($value) : $value;
+ }
+ }
+ return $options;
+ }
+}
diff --git a/src/Model/Config/Source/CheckoutTypes.php b/src/Model/Config/Source/CheckoutTypes.php
new file mode 100644
index 00000000..b61fa3e5
--- /dev/null
+++ b/src/Model/Config/Source/CheckoutTypes.php
@@ -0,0 +1,35 @@
+_data = $data;
+ if (!$jsonSerialize) {
+ $jsonSerialize = new Json();
+ }
+ $this->jsonSerialize = $jsonSerialize;
+ }
+
+ /**
+ * @param array $arr
+ * @return $this
+ */
+ public function addData(array $arr)
+ {
+ foreach ($arr as $index => $value) {
+ $this->setData($index, $value);
+ }
+ return $this;
+ }
+
+ /**
+ * @param string|array $key
+ * @param mixed $value
+ * @return $this
+ */
+ public function setData($key, $value = null)
+ {
+ if ($key === (array)$key) {
+ $this->_data = $key;
+ } else {
+ $this->_data[$key] = $value;
+ }
+ return $this;
+ }
+
+ /**
+ * @param null|string|array $key
+ * @return $this
+ */
+ public function unsetData($key = null)
+ {
+ if ($key === null) {
+ $this->setData([]);
+ } elseif (is_string($key)) {
+ if (isset($this->_data[$key]) || array_key_exists($key, $this->_data)) {
+ unset($this->_data[$key]);
+ }
+ } elseif ($key === (array)$key) {
+ foreach ($key as $element) {
+ $this->unsetData($element);
+ }
+ }
+ return $this;
+ }
+
+ /**
+ * @param string|null $key
+ * @param string|int $index
+ * @return mixed
+ */
+ public function getData($key = null, $index = null)
+ {
+ if (!$key) {
+ return $this->_data;
+ }
+ if (strpos($key, '/') !== false) {
+ $data = $this->getDataByPath($key);
+ } else {
+ $data = $this->_getData($key);
+ }
+
+ if ($index) {
+ if ($data === (array)$data) {
+ $data = $data[$index] ?? null;
+ } elseif (is_string($data)) {
+ $data = explode(PHP_EOL, $data);
+ $data = $data[$index] ?? null;
+ } elseif ($data instanceof $this) {
+ $data = $data->getData($index);
+ } else {
+ $data = null;
+ }
+ }
+ return $data;
+ }
+
+ /**
+ * @param string $path
+ * @return mixed
+ */
+ public function getDataByPath(string $path)
+ {
+ $keys = explode('/', $path);
+
+ $data = $this->_data;
+ foreach ($keys as $key) {
+ if ((array)$data === $data && isset($data[$key])) {
+ $data = $data[$key];
+ } elseif ($data instanceof DataObject) {
+ $data = $data->getDataByKey($key);
+ } else {
+ return null;
+ }
+ }
+ return $data;
+ }
+
+ /**
+ * @param string $key
+ * @return mixed
+ */
+ public function getDataByKey(string $key)
+ {
+ return $this->_getData($key);
+ }
+
+ /**
+ * @param string $key
+ * @return mixed
+ */
+ protected function _getData(string $key)
+ {
+ if (isset($this->_data[$key])) {
+ return $this->_data[$key];
+ }
+ return null;
+ }
+
+ /**
+ * @param string $key
+ * @param mixed $args
+ * @return $this
+ */
+ public function setDataUsingMethod($key, $args = [])
+ {
+ $method = 'set' . str_replace('_', '', ucwords($key, '_'));
+ $this->{$method}($args);
+ return $this;
+ }
+
+ /**
+ * @param string $key
+ * @param mixed $args
+ * @return mixed
+ */
+ public function getDataUsingMethod($key, $args = null)
+ {
+ $method = 'get' . str_replace('_', '', ucwords($key, '_'));
+ return $this->{$method}($args);
+ }
+
+ /**
+ * @param string $key
+ * @return bool
+ */
+ public function hasData($key = '')
+ {
+ if (empty($key) || !is_string($key)) {
+ return !empty($this->_data);
+ }
+ return array_key_exists($key, $this->_data);
+ }
+
+ /**
+ * @param array $keys array of required keys
+ * @return array
+ */
+ public function toArray(array $keys = [])
+ {
+ if (empty($keys)) {
+ return $this->_data;
+ }
+ $result = [];
+ foreach ($keys as $key) {
+ if (isset($this->_data[$key])) {
+ $result[$key] = $this->_data[$key];
+ } else {
+ $result[$key] = null;
+ }
+ }
+ return $result;
+ }
+
+ /**
+ * @param array $keys
+ * @return array
+ */
+ public function convertToArray(array $keys = [])
+ {
+ return $this->toArray($keys);
+ }
+
+ /**
+ * @param array $keys array of keys that must be represented
+ * @param string $rootName root node name
+ * @param bool $addOpenTag flag that allow to add initial xml node
+ * @param bool $addCdata flag that require wrap all values in CDATA
+ * @return string
+ */
+ public function toXml(array $keys = [], $rootName = 'item', $addOpenTag = false, $addCdata = true)
+ {
+ $xml = '';
+ $data = $this->toArray($keys);
+ foreach ($data as $fieldName => $fieldValue) {
+ if ($addCdata === true) {
+ $fieldValue = "";
+ } else {
+ $fieldValue = str_replace(
+ ['&', '"', "'", '<', '>'],
+ ['&', '"', ''', '<', '>'],
+ $fieldValue
+ );
+ }
+ $xml .= "<{$fieldName}>{$fieldValue}{$fieldName}>\n";
+ }
+ if ($rootName) {
+ $xml = "<{$rootName}>\n{$xml}{$rootName}>\n";
+ }
+ if ($addOpenTag) {
+ $xml = '' . "\n" . $xml;
+ }
+ return $xml;
+ }
+
+ /**
+ * @param array $arrAttributes array of keys that must be represented
+ * @param string $rootName root node name
+ * @param bool $addOpenTag flag that allow to add initial xml node
+ * @param bool $addCdata flag that require wrap all values in CDATA
+ * @return string
+ */
+ public function convertToXml(
+ array $arrAttributes = [],
+ $rootName = 'item',
+ $addOpenTag = false,
+ $addCdata = true
+ ) {
+ return $this->toXml($arrAttributes, $rootName, $addOpenTag, $addCdata);
+ }
+
+ /**
+ * @param array $keys array of required keys
+ * @return bool|string
+ * @throws \InvalidArgumentException
+ */
+ public function toJson(array $keys = [])
+ {
+ return $this->jsonSerialize->serialize($this->toArray($keys));
+ }
+
+ /**
+ * @param array $keys
+ * @return bool|string
+ * @throws \InvalidArgumentException
+ */
+ public function convertToJson(array $keys = [])
+ {
+ return $this->toJson($keys);
+ }
+
+ /**
+ * @param string $format
+ * @return string
+ */
+ public function toString($format = '')
+ {
+ if (empty($format)) {
+ $result = implode(', ', $this->getData());
+ } else {
+ preg_match_all('/\{\{([a-z0-9_]+)\}\}/is', $format, $matches);
+ foreach ($matches[1] as $var) {
+ $format = str_replace('{{' . $var . '}}', $this->getData($var), $format);
+ }
+ $result = $format;
+ }
+ return $result;
+ }
+
+ /**
+ * @param string $method
+ * @param array $args
+ * @return mixed
+ * @throws \Exception
+ */
+ public function __call($method, $args)
+ {
+ switch (substr($method, 0, 3)) {
+ case 'get':
+ $key = $this->_underscore(substr($method, 3));
+ $index = isset($args[0]) ? $args[0] : null;
+ return $this->getData($key, $index);
+ case 'set':
+ $key = $this->_underscore(substr($method, 3));
+ $value = isset($args[0]) ? $args[0] : null;
+ return $this->setData($key, $value);
+ case 'uns':
+ $key = $this->_underscore(substr($method, 3));
+ return $this->unsetData($key);
+ case 'has':
+ $key = $this->_underscore(substr($method, 3));
+ return isset($this->_data[$key]);
+ }
+ throw new \Exception(sprintf('Invalid method %1::%2', get_class($this), $method));
+ }
+
+ /**
+ * @return bool
+ */
+ public function isEmpty()
+ {
+ if (empty($this->_data)) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @param string $name
+ * @return string
+ */
+ protected function _underscore($name)
+ {
+ if (isset(self::$_underscoreCache[$name])) {
+ return self::$_underscoreCache[$name];
+ }
+ $result = strtolower(trim(preg_replace('/([A-Z]|[0-9]+)/', "_$1", $name), '_'));
+ self::$_underscoreCache[$name] = $result;
+ return $result;
+ }
+
+ /**
+ * @param array $keys array of accepted keys
+ * @param string $valueSeparator separator between key and value
+ * @param string $fieldSeparator separator between key/value pairs
+ * @param string $quote quoting sign
+ * @return string
+ */
+ public function serialize($keys = [], $valueSeparator = '=', $fieldSeparator = ' ', $quote = '"')
+ {
+ $data = [];
+ if (empty($keys)) {
+ $keys = array_keys($this->_data);
+ }
+ foreach ($this->_data as $key => $value) {
+ if (in_array($key, $keys)) {
+ $data[] = $key . $valueSeparator . $quote . $value . $quote;
+ }
+ }
+ $res = implode($fieldSeparator, $data);
+ return $res;
+ }
+
+ /**
+ * @param mixed $data
+ * @param array &$objects
+ * @return array
+ */
+ public function debug($data = null, &$objects = [])
+ {
+ if ($data === null) {
+ $hash = spl_object_hash($this);
+ if (!empty($objects[$hash])) {
+ return '*** RECURSION ***';
+ }
+ $objects[$hash] = true;
+ $data = $this->getData();
+ }
+ $debug = [];
+ foreach ($data as $key => $value) {
+ if (is_scalar($value)) {
+ $debug[$key] = $value;
+ } elseif (is_array($value)) {
+ $debug[$key] = $this->debug($value, $objects);
+ } elseif ($value instanceof DataObject) {
+ $debug[$key . ' (' . get_class($value) . ')'] = $value->debug(null, $objects);
+ }
+ }
+ return $debug;
+ }
+
+ /**
+ * @param string $offset
+ * @param mixed $value
+ * @return void
+ */
+ public function offsetSet($offset, $value)
+ {
+ $this->_data[$offset] = $value;
+ }
+
+ /**
+ * @param string $offset
+ * @return bool
+ */
+ public function offsetExists($offset)
+ {
+ return isset($this->_data[$offset]) || array_key_exists($offset, $this->_data);
+ }
+
+ /**
+ * Implementation of \ArrayAccess::offsetUnset()
+ * @param string $offset
+ * @return void
+ */
+ public function offsetUnset($offset)
+ {
+ unset($this->_data[$offset]);
+ }
+
+ /**
+ * Implementation of \ArrayAccess::offsetGet()
+ * @param string $offset
+ * @return mixed
+ */
+ public function offsetGet($offset)
+ {
+ if (isset($this->_data[$offset])) {
+ return $this->_data[$offset];
+ }
+ return null;
+ }
+}
diff --git a/src/Model/Data/OptionSourceInterface.php b/src/Model/Data/OptionSourceInterface.php
new file mode 100644
index 00000000..711c32d7
--- /dev/null
+++ b/src/Model/Data/OptionSourceInterface.php
@@ -0,0 +1,26 @@
+ '', 'label' => '