clean styles

parent e31dfe5a
......@@ -32,7 +32,6 @@ class EnsureEmailIsVerified extends Middleware
} else {
if (! $request->user()->hasVerifiedEmail()) {
return redirect()->route('home');
//return redirect()->route('notVerified');
}
}
......
......@@ -76,26 +76,6 @@
margin: 10px;
}
#sign-in-with-apple
{
display: block;
text-align: center;
height: 25%;
padding: 5%;
padding-top: 3%;
padding-bottom: 3%;
width: 100%;
background-color: #fff;
border: solid 1px #000;
border-radius: 10px;
color: #000;
}
#sign-in-with-apple b
{
font-family:'SF Pro Text';
}
.b-auth-wrap
{
height: calc(100vh - 160px);
......@@ -108,6 +88,7 @@
color: #545454;
background-color: #ffffff;
box-shadow: 0 1px 2px 1px #ddd;
border: none;
}
.btn-google:focus,
......@@ -118,12 +99,3 @@
box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25);
}
\ No newline at end of file
#sign-in-with-apple
{
padding: 8px !important;
border-radius: 8px !important;
color: #545454 !important;
border: none !important;
}
@font-face {
font-family: "SF Pro Text";
src: url(data:application/x-font-woff;charset=utf-8;base64,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) format("woff")
}
\ No newline at end of file
......@@ -267,11 +267,6 @@
})
});
/**
* Initiate Pure Counter
*/
new PureCounter();
// Клик по логину-почте:
const navbarDropdown = document.querySelector('#navbar .dropdown');
......
This source diff could not be displayed because it is too large. You can view the blob instead.
/**
* PHP Email Form Validation - v3.6
* URL: https://bootstrapmade.com/php-email-form/
* Author: BootstrapMade.com
*/
(function () {
"use strict";
let forms = document.querySelectorAll('.php-email-form');
forms.forEach( function(e) {
e.addEventListener('submit', function(event) {
event.preventDefault();
let thisForm = this;
let action = thisForm.getAttribute('action');
let recaptcha = thisForm.getAttribute('data-recaptcha-site-key');
if( ! action ) {
displayError(thisForm, 'The form action property is not set!');
return;
}
thisForm.querySelector('.loading').classList.add('d-block');
thisForm.querySelector('.error-message').classList.remove('d-block');
let formData = new FormData( thisForm );
if ( recaptcha ) {
if(typeof grecaptcha !== "undefined" ) {
grecaptcha.ready(function() {
try {
grecaptcha.execute(recaptcha, {action: 'php_email_form_submit'})
.then(token => {
formData.set('recaptcha-response', token);
php_email_form_submit(thisForm, action, formData);
})
} catch(error) {
displayError(thisForm, error);
}
});
} else {
displayError(thisForm, 'The reCaptcha javascript API url is not loaded!')
}
} else {
php_email_form_submit(thisForm, action, formData);
}
});
});
function php_email_form_submit(thisForm, action, formData) {
fetch(action, {
method: 'POST',
body: formData,
headers: {'X-Requested-With': 'XMLHttpRequest'}
})
.then(response => {
if( response.ok ) {
return response.text();
} else {
throw new Error(`${response.status} ${response.statusText} ${response.url}`);
}
})
.then(data => {
thisForm.querySelector('.loading').classList.remove('d-block');
if (data.trim() == 'OK') {
thisForm.reset();
} else {
throw new Error(data ? data : 'Form submission failed and no error message returned from: ' + action);
}
})
.catch((error) => {
displayError(thisForm, error);
});
}
function displayError(thisForm, error) {
console.log('AAA error = ', error);
thisForm.querySelector('.loading').classList.remove('d-block');
thisForm.querySelector('.error-message').innerHTML = error.message;
thisForm.querySelector('.error-message').classList.add('d-block');
}
})();
/*!
* purecounter.js - A simple yet configurable native javascript counter which you can count on.
* Author: Stig Rex
* Version: 1.5.0
* Url: https://github.com/srexi/purecounterjs
* License: MIT
*/
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.PureCounter=t():e.PureCounter=t()}(self,(function(){return e={638:function(e){function t(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function r(e){return function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={};for(var n in e)if(t=={}||t.hasOwnProperty(n)){var o=c(e[n]);r[n]=o,n.match(/duration|pulse/)&&(r[n]="boolean"!=typeof o?1e3*o:o)}return Object.assign({},t,r)}function i(e,t){var r=(t.end-t.start)/(t.duration/t.delay),n="inc";t.start>t.end&&(n="dec",r*=-1);var o=c(t.start);e.innerHTML=u(o,t),!0===t.once&&e.setAttribute("data-purecounter-duration",0);var i=setInterval((function(){var a=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"inc";return e=c(e),t=c(t),parseFloat("inc"===r?e+t:e-t)}(o,r,n);e.innerHTML=u(a,t),((o=a)>=t.end&&"inc"==n||o<=t.end&&"dec"==n)&&(e.innerHTML=u(t.end,t),t.pulse&&(e.setAttribute("data-purecounter-duration",0),setTimeout((function(){e.setAttribute("data-purecounter-duration",t.duration/1e3)}),t.pulse)),clearInterval(i))}),t.delay)}function a(e,t){return Math.pow(e,t)}function u(e,t){var r={minimumFractionDigits:t.decimals,maximumFractionDigits:t.decimals},n="string"==typeof t.formater?t.formater:void 0;return e=function(e,t){if(t.filesizing||t.currency){e=Math.abs(Number(e));var r=1e3,n=t.currency&&"string"==typeof t.currency?t.currency:"",o=t.decimals||1,i=["","K","M","B","T"],u="";t.filesizing&&(r=1024,i=["bytes","KB","MB","GB","TB"]);for(var c=4;c>=0;c--)if(0===c&&(u="".concat(e.toFixed(o)," ").concat(i[c])),e>=a(r,c)){u="".concat((e/a(r,c)).toFixed(o)," ").concat(i[c]);break}return n+u}return parseFloat(e)}(e,t),function(e,t){if(t.formater){var r=t.separator?"string"==typeof t.separator?t.separator:",":"";return"en-US"!==t.formater&&!0===t.separator?e:(n=r,e.replace(/^(?:(\d{1,3},(?:\d{1,3},?)*)|(\d{1,3}\.(?:\d{1,3}\.?)*)|(\d{1,3}(?:\s\d{1,3})*))([\.,]?\d{0,2}?)$/gi,(function(e,t,r,o,i){var a="",u="";if(void 0!==t?(a=t.replace(new RegExp(/,/gi,"gi"),n),u=","):void 0!==r?a=r.replace(new RegExp(/\./gi,"gi"),n):void 0!==o&&(a=o.replace(new RegExp(/ /gi,"gi"),n)),void 0!==i){var c=","!==u&&","!==n?",":".";a+=void 0!==i?i.replace(new RegExp(/\.|,/gi,"gi"),c):""}return a})))}var n;return e}(e=t.formater?e.toLocaleString(n,r):parseInt(e).toString(),t)}function c(e){return/^[0-9]+\.[0-9]+$/.test(e)?parseFloat(e):/^[0-9]+$/.test(e)?parseInt(e):/^true|false/i.test(e)?/^true/i.test(e):e}function f(e){for(var t=e.offsetTop,r=e.offsetLeft,n=e.offsetWidth,o=e.offsetHeight;e.offsetParent;)t+=(e=e.offsetParent).offsetTop,r+=e.offsetLeft;return t>=window.pageYOffset&&r>=window.pageXOffset&&t+o<=window.pageYOffset+window.innerHeight&&r+n<=window.pageXOffset+window.innerWidth}function s(){return"IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype}e.exports=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n={start:0,end:100,duration:2e3,delay:10,once:!0,pulse:!1,decimals:0,legacy:!0,filesizing:!1,currency:!1,separator:!1,formater:"us-US",selector:".purecounter"},a=o(e,n);function d(){var e=document.querySelectorAll(a.selector);if(0!==e.length)if(s()){var t=new IntersectionObserver(p.bind(this),{root:null,rootMargin:"20px",threshold:.5});e.forEach((function(e){t.observe(e)}))}else window.addEventListener&&(l(e),window.addEventListener("scroll",(function(t){l(e)}),{passive:!0}))}function l(e){e.forEach((function(e){!0===v(e).legacy&&f(e)&&p([e])}))}function p(e,t){e.forEach((function(e){var r=e.target||e,n=v(r);if(n.duration<=0)return r.innerHTML=u(n.end,n);if(!t&&!f(e)||t&&e.intersectionRatio<.5){var o=n.start>n.end?n.end:n.start;return r.innerHTML=u(o,n)}setTimeout((function(){return i(r,n)}),n.delay)}))}function v(e){var n=a,i=[].filter.call(e.attributes,(function(e){return/^data-purecounter-/.test(e.name)}));return o(0!=i.length?Object.assign.apply(Object,[{}].concat(r(i.map((function(e){var r=e.name,n=e.value;return t({},r.replace("data-purecounter-","").toLowerCase(),c(n))}))))):{},n)}d()}}},t={},r=function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}(638),r;var e,t,r}));
//# sourceMappingURL=purecounter_vanilla.js.map
\ No newline at end of file
{"version":3,"file":"purecounter_vanilla.js","mappings":"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","sources":["webpack://PureCounter/webpack/universalModuleDefinition","webpack://PureCounter/./js/purecounter_vanilla.js","webpack://PureCounter/webpack/bootstrap","webpack://PureCounter/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PureCounter\"] = factory();\n\telse\n\t\troot[\"PureCounter\"] = factory();\n})(self, function() {\nreturn ","/** This function is for create and merge configuration */\r\nfunction setOptions(config, baseConfig = {}) {\r\n // Create new Config object;\r\n var newConfig = {};\r\n\r\n // Loop config items to set it value into newConfig\r\n for (var key in config) {\r\n // if baseConfig is set, only accept the baseconfig property\r\n if (baseConfig != {} && !baseConfig.hasOwnProperty(key)) continue;\r\n // parse the config value\r\n var val = parseValue(config[key]);\r\n // set the newConfig property value\r\n newConfig[key] = val;\r\n // Exclusive for 'duration' or 'pulse' property, recheck the value\r\n // If it's not a boolean, just set it to milisecond unit\r\n if (key.match(/duration|pulse/)) {\r\n newConfig[key] = typeof val != \"boolean\" ? val * 1000 : val;\r\n }\r\n }\r\n\r\n // Finally, we can just merge the baseConfig (if any), with newConfig.\r\n return Object.assign({}, baseConfig, newConfig);\r\n}\r\n\r\n/** This is the the counter method */\r\nfunction startCounter(element, config) {\r\n // First, get the increments step\r\n var incrementsPerStep =\r\n (config.end - config.start) / (config.duration / config.delay);\r\n // Next, set the counter mode (Increment or Decrement)\r\n var countMode = \"inc\";\r\n\r\n // Set mode to 'decrement' and 'increment step' to minus if start is larger than end\r\n if (config.start > config.end) {\r\n countMode = \"dec\";\r\n incrementsPerStep *= -1;\r\n }\r\n\r\n // Next, determine the starting value\r\n var currentCount = parseValue(config.start);\r\n // And then print it's value to the page\r\n element.innerHTML = formatNumber(currentCount, config);\r\n\r\n // If the config 'once' is true, then set the 'duration' to 0\r\n if (config.once === true) {\r\n element.setAttribute(\"data-purecounter-duration\", 0);\r\n }\r\n\r\n // Now, start counting with counterWorker using Interval method based on delay\r\n var counterWorker = setInterval(() => {\r\n // First, determine the next value base on current value, increment value, and count mode\r\n var nextNum = nextNumber(currentCount, incrementsPerStep, countMode);\r\n // Next, print that value to the page\r\n element.innerHTML = formatNumber(nextNum, config);\r\n // Now set that value to the current value, because it's already printed\r\n currentCount = nextNum;\r\n\r\n // If the value is larger or less than the 'end' (base on mode), then print the end value and stop the Interval\r\n if (\r\n (currentCount >= config.end && countMode == \"inc\") ||\r\n (currentCount <= config.end && countMode == \"dec\")\r\n ) {\r\n element.innerHTML = formatNumber(config.end, config);\r\n // If 'pulse' is set ignore the 'once' config\r\n if (config.pulse) {\r\n // First set the 'duration' to zero\r\n element.setAttribute(\"data-purecounter-duration\", 0);\r\n // Next, use timeout to reset it duration back based on 'pulse' config\r\n setTimeout(() => {\r\n element.setAttribute(\r\n \"data-purecounter-duration\",\r\n config.duration / 1000\r\n );\r\n }, config.pulse);\r\n }\r\n clearInterval(counterWorker);\r\n }\r\n }, config.delay);\r\n}\r\n\r\n/** This function is to get the next number */\r\nfunction nextNumber(number, steps, mode = \"inc\") {\r\n // First, get the exact value from the number and step (int or float)\r\n number = parseValue(number);\r\n steps = parseValue(steps);\r\n\r\n // Last, get the next number based on current number, increment step, and count mode\r\n // Always return it as float\r\n return parseFloat(mode === \"inc\" ? number + steps : number - steps);\r\n}\r\n\r\n/** This function is to convert number into currency format */\r\nfunction convertNumber(number, config) {\r\n /** Use converter if filesizing or currency is on */\r\n if (config.filesizing || config.currency) {\r\n number = Math.abs(Number(number)); // Get the absolute value of number\r\n\r\n var baseNumber = 1000, // Base multiplying treshold\r\n symbol =\r\n config.currency && typeof config.currency === \"string\"\r\n ? config.currency\r\n : \"\", // Set the Currency Symbol (if any)\r\n limit = config.decimals || 1, // Set the decimal limit (default is 1)\r\n unit = [\"\", \"K\", \"M\", \"B\", \"T\"], // Number unit based exponent threshold\r\n value = \"\"; // Define value variable\r\n\r\n /** Changes base number and its unit for filesizing */\r\n if (config.filesizing) {\r\n baseNumber = 1024; // Use 1024 instead of 1000\r\n unit = [\"bytes\", \"KB\", \"MB\", \"GB\", \"TB\"]; // Change to 'bytes' unit\r\n }\r\n\r\n /** Set value based on the threshold */\r\n for (var i = 4; i >= 0; i--) {\r\n // If the exponent is 0\r\n if (i === 0) value = `${number.toFixed(limit)} ${unit[i]}`;\r\n // If the exponent is above zero\r\n if (number >= getFilesizeThreshold(baseNumber, i)) {\r\n value = `${(number / getFilesizeThreshold(baseNumber, i)).toFixed(\r\n limit\r\n )} ${unit[i]}`;\r\n break;\r\n }\r\n }\r\n\r\n // Apply symbol before the value and return it as string\r\n return symbol + value;\r\n } else {\r\n /** Return its value as float if not using filesizing or currency*/\r\n return parseFloat(number);\r\n }\r\n}\r\n\r\n/** This function will get the given base. */\r\nfunction getFilesizeThreshold(baseNumber, index) {\r\n return Math.pow(baseNumber, index);\r\n}\r\n\r\n/** This function is to get the last formated number */\r\nfunction applySeparator(value, config) {\r\n // Get replaced value based on it's separator/symbol.\r\n function replacedValue(val, separator) {\r\n // Well this is my regExp for detecting the Thausands Separator\r\n // I use 3 groups to determine it's separator\r\n // THen the group 4 is to get the decimals value\r\n var separatorRegExp =\r\n /^(?:(\\d{1,3},(?:\\d{1,3},?)*)|(\\d{1,3}\\.(?:\\d{1,3}\\.?)*)|(\\d{1,3}(?:\\s\\d{1,3})*))([\\.,]?\\d{0,2}?)$/gi;\r\n\r\n return val.replace(separatorRegExp, function (match, g1, g2, g3, g4) {\r\n // set initial result value\r\n var result = \"\",\r\n sep = \"\";\r\n if (g1 !== undefined) {\r\n // Group 1 is using comma as thausands separator, and period as decimal separator\r\n result = g1.replace(new RegExp(/,/gi, \"gi\"), separator);\r\n sep = \",\";\r\n } else if (g2 !== undefined) {\r\n // Group 2 is using period as thausands separator, and comma as decimal separator\r\n result = g2.replace(new RegExp(/\\./gi, \"gi\"), separator);\r\n } else if (g3 !== undefined) {\r\n // Group 3 is using space as thausands separator, and comma as decimal separator\r\n result = g3.replace(new RegExp(/ /gi, \"gi\"), separator);\r\n }\r\n if (g4 !== undefined) {\r\n var decimal = sep !== \",\" ? (separator !== \",\" ? \",\" : \".\") : \".\";\r\n result +=\r\n g4 !== undefined\r\n ? g4.replace(new RegExp(/\\.|,/gi, \"gi\"), decimal)\r\n : \"\";\r\n }\r\n // Returning result value;\r\n return result;\r\n });\r\n }\r\n // If config formater is not false, then apply separator\r\n if (config.formater) {\r\n // Now get the separator symbol\r\n var symbol = config.separator // if config separator is setted\r\n ? typeof config.separator === \"string\" // Check the type of value\r\n ? config.separator // If it's type is string, then apply it's value\r\n : \",\" // If it's not string (boolean), then apply comma as default separator\r\n : \"\";\r\n // Special exception when locale is not 'en-US' but separator value is 'true'\r\n // Use it's default locale thausands separator.\r\n if (config.formater !== \"en-US\" && config.separator === true) {\r\n return value;\r\n }\r\n // Return the replaced Value based on it's symbol\r\n return replacedValue(value, symbol);\r\n }\r\n // If config formater is false, then return it's default value\r\n return value;\r\n}\r\n\r\n/** This function is to get formated number to be printed in the page */\r\nfunction formatNumber(number, config) {\r\n // This is the configuration for 'toLocaleString' method\r\n var strConfig = {\r\n minimumFractionDigits: config.decimals,\r\n maximumFractionDigits: config.decimals,\r\n };\r\n // Get locale from config formater\r\n var locale = typeof config.formater === \"string\" ? config.formater : undefined;\r\n\r\n // Set and convert the number base on its config.\r\n number = convertNumber(number, config);\r\n\r\n // Now format the number to string base on it's locale\r\n number = config.formater\r\n ? number.toLocaleString(locale, strConfig)\r\n : parseInt(number).toString();\r\n\r\n // Last, apply the number separator using number as string\r\n return applySeparator(number, config);\r\n}\r\n\r\n/** This function is to get the parsed value */\r\nfunction parseValue(data) {\r\n // If number with dot (.), will be parsed as float\r\n if (/^[0-9]+\\.[0-9]+$/.test(data)) {\r\n return parseFloat(data);\r\n }\r\n // If just number, will be parsed as integer\r\n if (/^[0-9]+$/.test(data)) {\r\n return parseInt(data);\r\n }\r\n // If it's boolean string, will be parsed as boolean\r\n if (/^true|false/i.test(data)) {\r\n return /^true/i.test(data);\r\n }\r\n // Return it's value as default\r\n return data;\r\n}\r\n\r\n// This function is to detect the element is in view or not.\r\nfunction elementIsInView(element) {\r\n var top = element.offsetTop;\r\n var left = element.offsetLeft;\r\n var width = element.offsetWidth;\r\n var height = element.offsetHeight;\r\n\r\n while (element.offsetParent) {\r\n element = element.offsetParent;\r\n top += element.offsetTop;\r\n left += element.offsetLeft;\r\n }\r\n\r\n return (\r\n top >= window.pageYOffset &&\r\n left >= window.pageXOffset &&\r\n top + height <= window.pageYOffset + window.innerHeight &&\r\n left + width <= window.pageXOffset + window.innerWidth\r\n );\r\n}\r\n\r\n/** Just some condition to check browser Intersection Support */\r\nfunction intersectionListenerSupported() {\r\n return (\r\n \"IntersectionObserver\" in window &&\r\n \"IntersectionObserverEntry\" in window &&\r\n \"intersectionRatio\" in window.IntersectionObserverEntry.prototype\r\n );\r\n}\r\n\r\n/** Initialize PureCounter */\r\nfunction PureCounter(options = {}) {\r\n var configs = {\r\n start: 0, // Starting number [uint]\r\n end: 100, // End number [uint]\r\n duration: 2000, // Count duration [milisecond]\r\n delay: 10, // Count delay [milisecond]\r\n once: true, // Counting at once or recount when scroll [boolean]\r\n pulse: false, // Pulse count for certain time [boolean|milisecond]\r\n decimals: 0, // Decimal places [uint]\r\n legacy: true, // If this is true it will use the scroll event listener on browsers\r\n filesizing: false, // Is it for filesize?\r\n currency: false, // Is it for currency? Use it for set the symbol too [boolean|char|string]\r\n separator: false, // Do you want to use thausands separator? use it for set the symbol too [boolean|char|string]\r\n formater: \"us-US\", // Number toLocaleString locale/formater, by default is \"en-US\" [string|boolean:false]\r\n selector: \".purecounter\", // HTML query selector for spesific element\r\n };\r\n var configOptions = setOptions(options, configs);\r\n\r\n function registerEventListeners() {\r\n /** Get all elements with class 'purecounter' */\r\n var elements = document.querySelectorAll(configOptions.selector);\r\n /** Return if no elements */\r\n if (elements.length === 0) {\r\n return;\r\n }\r\n\r\n /** Run animateElements base on Intersection Support */\r\n if (intersectionListenerSupported()) {\r\n var intersectObserver = new IntersectionObserver(animateElements.bind(this), {\r\n root: null,\r\n rootMargin: \"20px\",\r\n threshold: 0.5,\r\n });\r\n\r\n elements.forEach((element) => {\r\n intersectObserver.observe(element);\r\n });\r\n } else {\r\n if (window.addEventListener) {\r\n animateLegacy(elements);\r\n window.addEventListener(\r\n \"scroll\",\r\n function (e) {\r\n animateLegacy(elements);\r\n },\r\n { passive: true }\r\n );\r\n }\r\n }\r\n }\r\n\r\n /** This legacy to make Purecounter use very lightweight & fast */\r\n function animateLegacy(elements) {\r\n elements.forEach((element) => {\r\n var config = parseConfig(element);\r\n if (config.legacy === true && elementIsInView(element)) {\r\n animateElements([element]);\r\n }\r\n });\r\n }\r\n\r\n /** Main Element Count Animation */\r\n function animateElements(elements, observer) {\r\n elements.forEach((element) => {\r\n var elm = element.target || element; // Just make sure which element will be used\r\n var elementConfig = parseConfig(elm); // Get config value on that element\r\n\r\n // If duration is less than or equal zero, just format the 'end' value\r\n if (elementConfig.duration <= 0) {\r\n return (elm.innerHTML = formatNumber(elementConfig.end, elementConfig));\r\n }\r\n\r\n if (\r\n (!observer && !elementIsInView(element)) ||\r\n (observer && element.intersectionRatio < 0.5)\r\n ) {\r\n var value =\r\n elementConfig.start > elementConfig.end\r\n ? elementConfig.end\r\n : elementConfig.start;\r\n return (elm.innerHTML = formatNumber(value, elementConfig));\r\n }\r\n\r\n // If duration is more than 0, then start the counter\r\n setTimeout(() => {\r\n return startCounter(elm, elementConfig);\r\n }, elementConfig.delay);\r\n });\r\n }\r\n\r\n /** This function is to generate the element Config */\r\n function parseConfig(element) {\r\n // First, we need to declare the base Config\r\n // This config will be used if the element doesn't have config\r\n var baseConfig = configOptions;\r\n\r\n // Next, get all 'data-precounter-*' attributes value. Store to array\r\n var configValues = [].filter.call(element.attributes, function (attr) {\r\n return /^data-purecounter-/.test(attr.name);\r\n });\r\n\r\n // Now, we create element config as an object\r\n var elementConfig =\r\n configValues.length != 0\r\n ? Object.assign(\r\n {},\r\n ...configValues.map(({ name, value }) => {\r\n var key = name.replace(\"data-purecounter-\", \"\").toLowerCase(),\r\n val = parseValue(value);\r\n\r\n return { [key]: val };\r\n })\r\n )\r\n : {};\r\n\r\n // Last setOptions and return\r\n return setOptions(elementConfig, baseConfig);\r\n }\r\n\r\n /** Run the initial function */\r\n registerEventListeners();\r\n}\r\n\r\nmodule.exports = PureCounter;\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(638);\n"],"names":["root","factory","exports","module","define","amd","self","setOptions","config","baseConfig","newConfig","key","hasOwnProperty","val","parseValue","match","Object","assign","startCounter","element","incrementsPerStep","end","start","duration","delay","countMode","currentCount","innerHTML","formatNumber","once","setAttribute","counterWorker","setInterval","nextNum","number","steps","mode","parseFloat","nextNumber","pulse","setTimeout","clearInterval","getFilesizeThreshold","baseNumber","index","Math","pow","strConfig","minimumFractionDigits","decimals","maximumFractionDigits","locale","formater","undefined","filesizing","currency","abs","Number","symbol","limit","unit","value","i","toFixed","convertNumber","separator","replace","g1","g2","g3","g4","result","sep","RegExp","decimal","applySeparator","toLocaleString","parseInt","toString","data","test","elementIsInView","top","offsetTop","left","offsetLeft","width","offsetWidth","height","offsetHeight","offsetParent","window","pageYOffset","pageXOffset","innerHeight","innerWidth","intersectionListenerSupported","IntersectionObserverEntry","prototype","options","configs","legacy","selector","configOptions","registerEventListeners","elements","document","querySelectorAll","length","intersectObserver","IntersectionObserver","animateElements","bind","this","rootMargin","threshold","forEach","observe","addEventListener","animateLegacy","e","passive","parseConfig","observer","elm","target","elementConfig","intersectionRatio","configValues","filter","call","attributes","attr","name","map","toLowerCase","__webpack_module_cache__","__webpack_exports__","__webpack_require__","moduleId","cachedModule","__webpack_modules__"],"sourceRoot":""}
......@@ -22,7 +22,7 @@
<?php /* ?>
@signInWithApple("white", true, "sign-in", 10)
<?php */ ?>
<a class="btn-apple" href="/login/apple" id="sign-in-with-apple"><b></b> Продовжити з Apple</a>
<a class="btn btn-apple" href="/login/apple" id="sign-in-with-apple"><b class="ri-apple-fill"></b> Продовжити з Apple</a>
</div>
<br>
<div class="row">
......
......@@ -4,7 +4,6 @@
@else
<script src="assets/vendor/purecounter/purecounter_vanilla.js"></script>
<script src="assets/vendor/aos/aos.js"></script>
<script src="assets/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="assets/vendor/glightbox/js/glightbox.min.js"></script>
......
......@@ -11,7 +11,6 @@
<link href="assets/vendor/glightbox/css/glightbox.min.css" rel="stylesheet">
<link href="assets/vendor/remixicon/remixicon.css" rel="stylesheet">
<link href="assets/vendor/swiper/swiper-bundle.min.css" rel="stylesheet">
<link href="assets/css/fonts.css" rel="stylesheet">
<link href="assets/css/style.css" rel="stylesheet">
<link href="assets/css/common.css" rel="stylesheet">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment