Init
This commit is contained in:
BIN
themes/agico-hugo/assets/.DS_Store
vendored
Normal file
BIN
themes/agico-hugo/assets/.DS_Store
vendored
Normal file
Binary file not shown.
33
themes/agico-hugo/assets/js/bootstrap.js
vendored
Normal file
33
themes/agico-hugo/assets/js/bootstrap.js
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
// bootstrap js components
|
||||
// import Alert from "js/bootstrap/src/alert";
|
||||
// import Button from "js/bootstrap/src/button";
|
||||
// import Carousel from "js/bootstrap/src/carousel";
|
||||
import Collapse from "js/bootstrap/src/collapse";
|
||||
import Dropdown from "js/bootstrap/src/dropdown";
|
||||
import Modal from "js/bootstrap/src/modal";
|
||||
// import Offcanvas from "js/bootstrap/src/offcanvas";
|
||||
// import Popover from "js/bootstrap/src/popover";
|
||||
// import ScrollSpy from "js/bootstrap/src/scrollspy";
|
||||
import Tab from "js/bootstrap/src/tab";
|
||||
// import Toast from "js/bootstrap/src/toast";
|
||||
// import Tooltip from "js/bootstrap/src/tooltip";
|
||||
|
||||
// bootstrap popover and toats
|
||||
// (function () {
|
||||
// "use strict";
|
||||
// let toastElList = [].slice.call(document.querySelectorAll(".toast"));
|
||||
// let toastList = toastElList.map(function (toastEl) {
|
||||
// return new Toast(toastEl);
|
||||
// });
|
||||
|
||||
// toastList.forEach(function (toast) {
|
||||
// toast.show();
|
||||
// });
|
||||
|
||||
// let popoverTriggerList = [].slice.call(
|
||||
// document.querySelectorAll('[data-bs-toggle="popover"]')
|
||||
// );
|
||||
// popoverTriggerList.map(function (popoverTriggerEl) {
|
||||
// return new Popover(popoverTriggerEl);
|
||||
// });
|
||||
// })();
|
||||
241
themes/agico-hugo/assets/js/script.js
Executable file
241
themes/agico-hugo/assets/js/script.js
Executable file
@@ -0,0 +1,241 @@
|
||||
(function () {
|
||||
"use strict";
|
||||
|
||||
window.addEventListener("load", () => {
|
||||
// Element Existence Checker Function
|
||||
function isElementExist(element) {
|
||||
if (element) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Aos js
|
||||
AOS.init({
|
||||
once: true,
|
||||
offset: 50,
|
||||
easing: 'ease',
|
||||
duration: 600
|
||||
});
|
||||
|
||||
// ##################
|
||||
// Video Modal
|
||||
// ##################
|
||||
let videoPlayBtn = document.querySelectorAll(".play-icon");
|
||||
let videoModal = document.querySelector("#videoModal");
|
||||
|
||||
if (isElementExist(videoPlayBtn)) {
|
||||
videoPlayBtn.forEach((btn) => {
|
||||
btn.addEventListener("click", function () {
|
||||
let videoIframe = document.querySelector("#videoModal iframe");
|
||||
let videoLink = btn.getAttribute("video-url");
|
||||
videoIframe.setAttribute("src", videoLink);
|
||||
});
|
||||
});
|
||||
|
||||
if (isElementExist(videoModal)) {
|
||||
videoModal.addEventListener("hidden.bs.modal", function () {
|
||||
let videoIframe = document.querySelector("#videoModal iframe");
|
||||
videoIframe.setAttribute("src", "");
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// ##################
|
||||
// counterUp
|
||||
// ##################
|
||||
// You can change this class to specify which elements are going to behave as counters.
|
||||
var elements = document.querySelectorAll(".counter");
|
||||
|
||||
elements.forEach(function (item) {
|
||||
// Add new attributes to the elements with the '.counter' HTML class
|
||||
item.counterAlreadyFired = false;
|
||||
item.counterSpeed = item.getAttribute("data-counter-time") / 45;
|
||||
item.counterTarget = +item.innerText;
|
||||
item.counterCount = 0;
|
||||
item.counterStep = item.counterTarget / item.counterSpeed;
|
||||
|
||||
item.updateCounter = function () {
|
||||
item.counterCount = item.counterCount + item.counterStep;
|
||||
item.innerText = Math.ceil(item.counterCount);
|
||||
|
||||
if (item.counterCount < item.counterTarget) {
|
||||
setTimeout(item.updateCounter, item.counterSpeed);
|
||||
} else {
|
||||
item.innerText = item.counterTarget;
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
// Function to determine if an element is visible in the web page
|
||||
var isElementVisible = function isElementVisible(el) {
|
||||
var scroll = window.scrollY || window.pageYOffset;
|
||||
var boundsTop = el.getBoundingClientRect().top + scroll;
|
||||
var viewport = {
|
||||
top: scroll,
|
||||
bottom: scroll + window.innerHeight,
|
||||
};
|
||||
var bounds = {
|
||||
top: boundsTop,
|
||||
bottom: boundsTop + el.clientHeight,
|
||||
};
|
||||
return (
|
||||
(bounds.bottom >= viewport.top && bounds.bottom <= viewport.bottom) ||
|
||||
(bounds.top <= viewport.bottom && bounds.top >= viewport.top)
|
||||
);
|
||||
};
|
||||
|
||||
// Funciton that will get fired uppon scrolling
|
||||
var handleScroll = function handleScroll() {
|
||||
elements.forEach(function (item, id) {
|
||||
if (true === item.counterAlreadyFired) return;
|
||||
if (!isElementVisible(item)) return;
|
||||
item.updateCounter();
|
||||
item.counterAlreadyFired = true;
|
||||
});
|
||||
};
|
||||
|
||||
// Fire the function on scroll
|
||||
window.addEventListener("scroll", handleScroll);
|
||||
})
|
||||
|
||||
// ##################
|
||||
// navfixed
|
||||
// ##################
|
||||
let scrolling = window.scrollY;
|
||||
let naviagtion = document.querySelector(".naviagtion");
|
||||
|
||||
function navFixed() {
|
||||
scrolling = window.scrollY;
|
||||
|
||||
if (scrolling > 10) {
|
||||
naviagtion.classList.add('nav-bg');
|
||||
} else {
|
||||
naviagtion.classList.remove('nav-bg');
|
||||
}
|
||||
};
|
||||
|
||||
navFixed();
|
||||
window.addEventListener("scroll", (e) => {
|
||||
navFixed();
|
||||
})
|
||||
|
||||
// ##################
|
||||
// testimonial
|
||||
// ##################
|
||||
new Swiper(".testimonial-slider", {
|
||||
slidesPerView: 3,
|
||||
loop: true,
|
||||
spaceBetween: 50,
|
||||
grabCursor: true,
|
||||
enteredSlides: true,
|
||||
speed: 900,
|
||||
autoplay: true,
|
||||
breakpoints: {
|
||||
// when window width is >= 0 px
|
||||
0: {
|
||||
slidesPerView: 1,
|
||||
spaceBetween: 40
|
||||
},
|
||||
// when window width is >= 768 px
|
||||
768: {
|
||||
slidesPerView: 2,
|
||||
spaceBetween: 50
|
||||
},
|
||||
// when window width is >= 991 px
|
||||
991: {
|
||||
slidesPerView: 3,
|
||||
spaceBetween: 50
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
})();
|
||||
|
||||
// ##################
|
||||
// Mailing
|
||||
// ##################
|
||||
(function () {
|
||||
function ready(fn){ if(document.readyState!=='loading'){fn()} else {document.addEventListener('DOMContentLoaded',fn)} }
|
||||
|
||||
ready(function(){
|
||||
const form = document.getElementById('leadcapture-form');
|
||||
if (!form) return; // veiligheid
|
||||
const okEl = document.getElementById('leadcapture-status');
|
||||
const errEl = document.getElementById('leadcapture-error');
|
||||
const endpoint = "https://crm.start-it.nl/api/v1/LeadCapture/231344ae2852d65f41e98d99da418af8";
|
||||
|
||||
form.addEventListener('submit', async function(e){
|
||||
e.preventDefault();
|
||||
if (okEl) okEl.hidden = true;
|
||||
if (errEl) errEl.hidden = true;
|
||||
|
||||
// Honeypot
|
||||
if (form.company && form.company.value.trim() !== '') return;
|
||||
|
||||
// Kleine validatie
|
||||
const email = (form.emailAddress?.value || '').trim();
|
||||
const last = (form.lastName?.value || '').trim();
|
||||
if (!email || !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email) || !last) {
|
||||
if (errEl) { errEl.hidden = false; errEl.textContent = "Controleer achternaam en e-mail."; }
|
||||
return;
|
||||
}
|
||||
|
||||
const payload = {
|
||||
salutationName: form.salutationName?.value || null,
|
||||
firstName: form.firstName?.value || null,
|
||||
lastName: form.lastName?.value || null,
|
||||
emailAddress: email || null,
|
||||
phoneNumber: form.phoneNumber?.value || null,
|
||||
description: form.description?.value || null
|
||||
};
|
||||
|
||||
const submitBtn = form.querySelector('button[type="submit"]');
|
||||
if (submitBtn) submitBtn.disabled = true;
|
||||
|
||||
try {
|
||||
const res = await fetch(endpoint, {
|
||||
method: 'POST',
|
||||
headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(payload),
|
||||
mode: 'cors',
|
||||
credentials: 'omit'
|
||||
});
|
||||
|
||||
if (res.ok) {
|
||||
form.reset();
|
||||
if (okEl) okEl.hidden = false;
|
||||
// // Optioneel: redirect
|
||||
// window.location.href = "/bedankt/";
|
||||
} else {
|
||||
if (errEl) { errEl.hidden = false; errEl.textContent = "Serverfout ("+res.status+")."; }
|
||||
}
|
||||
} catch (e) {
|
||||
if (errEl) { errEl.hidden = false; errEl.textContent = "Netwerk/CORS fout. Zie console."; }
|
||||
console.error('LeadCapture error:', e);
|
||||
} finally {
|
||||
if (submitBtn) submitBtn.disabled = false;
|
||||
}
|
||||
});
|
||||
});
|
||||
})();
|
||||
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
const rows = document.querySelectorAll("table tbody tr");
|
||||
const observer = new IntersectionObserver(entries => {
|
||||
entries.forEach(entry => {
|
||||
if (entry.isIntersecting) {
|
||||
rows.forEach((row, i) => {
|
||||
setTimeout(() => {
|
||||
row.classList.add("show");
|
||||
}, i * 150);
|
||||
});
|
||||
observer.disconnect(); // eenmalig
|
||||
}
|
||||
});
|
||||
}, { threshold: 0.1 });
|
||||
|
||||
if (rows.length) observer.observe(rows[0]);
|
||||
});
|
||||
3495
themes/agico-hugo/assets/plugins/aos/aos.css
Normal file
3495
themes/agico-hugo/assets/plugins/aos/aos.css
Normal file
File diff suppressed because one or more lines are too long
654
themes/agico-hugo/assets/plugins/aos/aos.js
Normal file
654
themes/agico-hugo/assets/plugins/aos/aos.js
Normal file
@@ -0,0 +1,654 @@
|
||||
!(function (e, t) {
|
||||
'object' == typeof exports && 'object' == typeof module
|
||||
? (module.exports = t())
|
||||
: 'function' == typeof define && define.amd
|
||||
? define([], t)
|
||||
: 'object' == typeof exports
|
||||
? (exports.AOS = t())
|
||||
: (e.AOS = t());
|
||||
})(this, function () {
|
||||
return (function (e) {
|
||||
function t(o) {
|
||||
if (n[o]) return n[o].exports;
|
||||
var i = (n[o] = { exports: {}, id: o, loaded: !1 });
|
||||
return e[o].call(i.exports, i, i.exports, t), (i.loaded = !0), i.exports;
|
||||
}
|
||||
var n = {};
|
||||
return (t.m = e), (t.c = n), (t.p = 'dist/'), t(0);
|
||||
})([
|
||||
function (e, t, n) {
|
||||
'use strict';
|
||||
function o(e) {
|
||||
return e && e.__esModule ? e : { default: e };
|
||||
}
|
||||
var i =
|
||||
Object.assign ||
|
||||
function (e) {
|
||||
for (var t = 1; t < arguments.length; t++) {
|
||||
var n = arguments[t];
|
||||
for (var o in n)
|
||||
Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]);
|
||||
}
|
||||
return e;
|
||||
},
|
||||
r = n(1),
|
||||
a = (o(r), n(6)),
|
||||
u = o(a),
|
||||
c = n(7),
|
||||
f = o(c),
|
||||
s = n(8),
|
||||
d = o(s),
|
||||
l = n(9),
|
||||
p = o(l),
|
||||
m = n(10),
|
||||
b = o(m),
|
||||
v = n(11),
|
||||
y = o(v),
|
||||
g = n(14),
|
||||
h = o(g),
|
||||
w = [],
|
||||
k = !1,
|
||||
x = document.all && !window.atob,
|
||||
j = {
|
||||
offset: 120,
|
||||
delay: 0,
|
||||
easing: 'ease',
|
||||
duration: 400,
|
||||
disable: !1,
|
||||
once: !1,
|
||||
startEvent: 'DOMContentLoaded',
|
||||
throttleDelay: 99,
|
||||
debounceDelay: 50,
|
||||
disableMutationObserver: !1,
|
||||
},
|
||||
O = function () {
|
||||
var e =
|
||||
arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
|
||||
if ((e && (k = !0), k))
|
||||
return (w = (0, y.default)(w, j)), (0, b.default)(w, j.once), w;
|
||||
},
|
||||
_ = function () {
|
||||
(w = (0, h.default)()), O();
|
||||
},
|
||||
S = function () {
|
||||
w.forEach(function (e, t) {
|
||||
e.node.removeAttribute('data-aos'),
|
||||
e.node.removeAttribute('data-aos-easing'),
|
||||
e.node.removeAttribute('data-aos-duration'),
|
||||
e.node.removeAttribute('data-aos-delay');
|
||||
});
|
||||
},
|
||||
z = function (e) {
|
||||
return (
|
||||
e === !0 ||
|
||||
('mobile' === e && p.default.mobile()) ||
|
||||
('phone' === e && p.default.phone()) ||
|
||||
('tablet' === e && p.default.tablet()) ||
|
||||
('function' == typeof e && e() === !0)
|
||||
);
|
||||
},
|
||||
A = function (e) {
|
||||
return (
|
||||
(j = i(j, e)),
|
||||
(w = (0, h.default)()),
|
||||
z(j.disable) || x
|
||||
? S()
|
||||
: (document
|
||||
.querySelector('body')
|
||||
.setAttribute('data-aos-easing', j.easing),
|
||||
document
|
||||
.querySelector('body')
|
||||
.setAttribute('data-aos-duration', j.duration),
|
||||
document
|
||||
.querySelector('body')
|
||||
.setAttribute('data-aos-delay', j.delay),
|
||||
'DOMContentLoaded' === j.startEvent &&
|
||||
['complete', 'interactive'].indexOf(document.readyState) > -1
|
||||
? O(!0)
|
||||
: 'load' === j.startEvent
|
||||
? window.addEventListener(j.startEvent, function () {
|
||||
O(!0);
|
||||
})
|
||||
: document.addEventListener(j.startEvent, function () {
|
||||
O(!0);
|
||||
}),
|
||||
window.addEventListener(
|
||||
'resize',
|
||||
(0, f.default)(O, j.debounceDelay, !0)
|
||||
),
|
||||
window.addEventListener(
|
||||
'orientationchange',
|
||||
(0, f.default)(O, j.debounceDelay, !0)
|
||||
),
|
||||
window.addEventListener(
|
||||
'scroll',
|
||||
(0, u.default)(function () {
|
||||
(0, b.default)(w, j.once);
|
||||
}, j.throttleDelay)
|
||||
),
|
||||
j.disableMutationObserver || (0, d.default)('[data-aos]', _),
|
||||
w)
|
||||
);
|
||||
};
|
||||
e.exports = { init: A, refresh: O, refreshHard: _ };
|
||||
},
|
||||
function (e, t) {},
|
||||
,
|
||||
,
|
||||
,
|
||||
,
|
||||
function (e, t) {
|
||||
(function (t) {
|
||||
'use strict';
|
||||
function n(e, t, n) {
|
||||
function o(t) {
|
||||
var n = b,
|
||||
o = v;
|
||||
return (b = v = void 0), (k = t), (g = e.apply(o, n));
|
||||
}
|
||||
function r(e) {
|
||||
return (k = e), (h = setTimeout(s, t)), _ ? o(e) : g;
|
||||
}
|
||||
function a(e) {
|
||||
var n = e - w,
|
||||
o = e - k,
|
||||
i = t - n;
|
||||
return S ? j(i, y - o) : i;
|
||||
}
|
||||
function c(e) {
|
||||
var n = e - w,
|
||||
o = e - k;
|
||||
return void 0 === w || n >= t || n < 0 || (S && o >= y);
|
||||
}
|
||||
function s() {
|
||||
var e = O();
|
||||
return c(e) ? d(e) : void (h = setTimeout(s, a(e)));
|
||||
}
|
||||
function d(e) {
|
||||
return (h = void 0), z && b ? o(e) : ((b = v = void 0), g);
|
||||
}
|
||||
function l() {
|
||||
void 0 !== h && clearTimeout(h), (k = 0), (b = w = v = h = void 0);
|
||||
}
|
||||
function p() {
|
||||
return void 0 === h ? g : d(O());
|
||||
}
|
||||
function m() {
|
||||
var e = O(),
|
||||
n = c(e);
|
||||
if (((b = arguments), (v = this), (w = e), n)) {
|
||||
if (void 0 === h) return r(w);
|
||||
if (S) return (h = setTimeout(s, t)), o(w);
|
||||
}
|
||||
return void 0 === h && (h = setTimeout(s, t)), g;
|
||||
}
|
||||
var b,
|
||||
v,
|
||||
y,
|
||||
g,
|
||||
h,
|
||||
w,
|
||||
k = 0,
|
||||
_ = !1,
|
||||
S = !1,
|
||||
z = !0;
|
||||
if ('function' != typeof e) throw new TypeError(f);
|
||||
return (
|
||||
(t = u(t) || 0),
|
||||
i(n) &&
|
||||
((_ = !!n.leading),
|
||||
(S = 'maxWait' in n),
|
||||
(y = S ? x(u(n.maxWait) || 0, t) : y),
|
||||
(z = 'trailing' in n ? !!n.trailing : z)),
|
||||
(m.cancel = l),
|
||||
(m.flush = p),
|
||||
m
|
||||
);
|
||||
}
|
||||
function o(e, t, o) {
|
||||
var r = !0,
|
||||
a = !0;
|
||||
if ('function' != typeof e) throw new TypeError(f);
|
||||
return (
|
||||
i(o) &&
|
||||
((r = 'leading' in o ? !!o.leading : r),
|
||||
(a = 'trailing' in o ? !!o.trailing : a)),
|
||||
n(e, t, { leading: r, maxWait: t, trailing: a })
|
||||
);
|
||||
}
|
||||
function i(e) {
|
||||
var t = 'undefined' == typeof e ? 'undefined' : c(e);
|
||||
return !!e && ('object' == t || 'function' == t);
|
||||
}
|
||||
function r(e) {
|
||||
return (
|
||||
!!e && 'object' == ('undefined' == typeof e ? 'undefined' : c(e))
|
||||
);
|
||||
}
|
||||
function a(e) {
|
||||
return (
|
||||
'symbol' == ('undefined' == typeof e ? 'undefined' : c(e)) ||
|
||||
(r(e) && k.call(e) == d)
|
||||
);
|
||||
}
|
||||
function u(e) {
|
||||
if ('number' == typeof e) return e;
|
||||
if (a(e)) return s;
|
||||
if (i(e)) {
|
||||
var t = 'function' == typeof e.valueOf ? e.valueOf() : e;
|
||||
e = i(t) ? t + '' : t;
|
||||
}
|
||||
if ('string' != typeof e) return 0 === e ? e : +e;
|
||||
e = e.replace(l, '');
|
||||
var n = m.test(e);
|
||||
return n || b.test(e) ? v(e.slice(2), n ? 2 : 8) : p.test(e) ? s : +e;
|
||||
}
|
||||
var c =
|
||||
'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator
|
||||
? function (e) {
|
||||
return typeof e;
|
||||
}
|
||||
: function (e) {
|
||||
return e &&
|
||||
'function' == typeof Symbol &&
|
||||
e.constructor === Symbol &&
|
||||
e !== Symbol.prototype
|
||||
? 'symbol'
|
||||
: typeof e;
|
||||
},
|
||||
f = 'Expected a function',
|
||||
s = NaN,
|
||||
d = '[object Symbol]',
|
||||
l = /^\s+|\s+$/g,
|
||||
p = /^[-+]0x[0-9a-f]+$/i,
|
||||
m = /^0b[01]+$/i,
|
||||
b = /^0o[0-7]+$/i,
|
||||
v = parseInt,
|
||||
y =
|
||||
'object' == ('undefined' == typeof t ? 'undefined' : c(t)) &&
|
||||
t &&
|
||||
t.Object === Object &&
|
||||
t,
|
||||
g =
|
||||
'object' == ('undefined' == typeof self ? 'undefined' : c(self)) &&
|
||||
self &&
|
||||
self.Object === Object &&
|
||||
self,
|
||||
h = y || g || Function('return this')(),
|
||||
w = Object.prototype,
|
||||
k = w.toString,
|
||||
x = Math.max,
|
||||
j = Math.min,
|
||||
O = function () {
|
||||
return h.Date.now();
|
||||
};
|
||||
e.exports = o;
|
||||
}.call(
|
||||
t,
|
||||
(function () {
|
||||
return this;
|
||||
})()
|
||||
));
|
||||
},
|
||||
function (e, t) {
|
||||
(function (t) {
|
||||
'use strict';
|
||||
function n(e, t, n) {
|
||||
function i(t) {
|
||||
var n = b,
|
||||
o = v;
|
||||
return (b = v = void 0), (O = t), (g = e.apply(o, n));
|
||||
}
|
||||
function r(e) {
|
||||
return (O = e), (h = setTimeout(s, t)), _ ? i(e) : g;
|
||||
}
|
||||
function u(e) {
|
||||
var n = e - w,
|
||||
o = e - O,
|
||||
i = t - n;
|
||||
return S ? x(i, y - o) : i;
|
||||
}
|
||||
function f(e) {
|
||||
var n = e - w,
|
||||
o = e - O;
|
||||
return void 0 === w || n >= t || n < 0 || (S && o >= y);
|
||||
}
|
||||
function s() {
|
||||
var e = j();
|
||||
return f(e) ? d(e) : void (h = setTimeout(s, u(e)));
|
||||
}
|
||||
function d(e) {
|
||||
return (h = void 0), z && b ? i(e) : ((b = v = void 0), g);
|
||||
}
|
||||
function l() {
|
||||
void 0 !== h && clearTimeout(h), (O = 0), (b = w = v = h = void 0);
|
||||
}
|
||||
function p() {
|
||||
return void 0 === h ? g : d(j());
|
||||
}
|
||||
function m() {
|
||||
var e = j(),
|
||||
n = f(e);
|
||||
if (((b = arguments), (v = this), (w = e), n)) {
|
||||
if (void 0 === h) return r(w);
|
||||
if (S) return (h = setTimeout(s, t)), i(w);
|
||||
}
|
||||
return void 0 === h && (h = setTimeout(s, t)), g;
|
||||
}
|
||||
var b,
|
||||
v,
|
||||
y,
|
||||
g,
|
||||
h,
|
||||
w,
|
||||
O = 0,
|
||||
_ = !1,
|
||||
S = !1,
|
||||
z = !0;
|
||||
if ('function' != typeof e) throw new TypeError(c);
|
||||
return (
|
||||
(t = a(t) || 0),
|
||||
o(n) &&
|
||||
((_ = !!n.leading),
|
||||
(S = 'maxWait' in n),
|
||||
(y = S ? k(a(n.maxWait) || 0, t) : y),
|
||||
(z = 'trailing' in n ? !!n.trailing : z)),
|
||||
(m.cancel = l),
|
||||
(m.flush = p),
|
||||
m
|
||||
);
|
||||
}
|
||||
function o(e) {
|
||||
var t = 'undefined' == typeof e ? 'undefined' : u(e);
|
||||
return !!e && ('object' == t || 'function' == t);
|
||||
}
|
||||
function i(e) {
|
||||
return (
|
||||
!!e && 'object' == ('undefined' == typeof e ? 'undefined' : u(e))
|
||||
);
|
||||
}
|
||||
function r(e) {
|
||||
return (
|
||||
'symbol' == ('undefined' == typeof e ? 'undefined' : u(e)) ||
|
||||
(i(e) && w.call(e) == s)
|
||||
);
|
||||
}
|
||||
function a(e) {
|
||||
if ('number' == typeof e) return e;
|
||||
if (r(e)) return f;
|
||||
if (o(e)) {
|
||||
var t = 'function' == typeof e.valueOf ? e.valueOf() : e;
|
||||
e = o(t) ? t + '' : t;
|
||||
}
|
||||
if ('string' != typeof e) return 0 === e ? e : +e;
|
||||
e = e.replace(d, '');
|
||||
var n = p.test(e);
|
||||
return n || m.test(e) ? b(e.slice(2), n ? 2 : 8) : l.test(e) ? f : +e;
|
||||
}
|
||||
var u =
|
||||
'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator
|
||||
? function (e) {
|
||||
return typeof e;
|
||||
}
|
||||
: function (e) {
|
||||
return e &&
|
||||
'function' == typeof Symbol &&
|
||||
e.constructor === Symbol &&
|
||||
e !== Symbol.prototype
|
||||
? 'symbol'
|
||||
: typeof e;
|
||||
},
|
||||
c = 'Expected a function',
|
||||
f = NaN,
|
||||
s = '[object Symbol]',
|
||||
d = /^\s+|\s+$/g,
|
||||
l = /^[-+]0x[0-9a-f]+$/i,
|
||||
p = /^0b[01]+$/i,
|
||||
m = /^0o[0-7]+$/i,
|
||||
b = parseInt,
|
||||
v =
|
||||
'object' == ('undefined' == typeof t ? 'undefined' : u(t)) &&
|
||||
t &&
|
||||
t.Object === Object &&
|
||||
t,
|
||||
y =
|
||||
'object' == ('undefined' == typeof self ? 'undefined' : u(self)) &&
|
||||
self &&
|
||||
self.Object === Object &&
|
||||
self,
|
||||
g = v || y || Function('return this')(),
|
||||
h = Object.prototype,
|
||||
w = h.toString,
|
||||
k = Math.max,
|
||||
x = Math.min,
|
||||
j = function () {
|
||||
return g.Date.now();
|
||||
};
|
||||
e.exports = n;
|
||||
}.call(
|
||||
t,
|
||||
(function () {
|
||||
return this;
|
||||
})()
|
||||
));
|
||||
},
|
||||
function (e, t) {
|
||||
'use strict';
|
||||
function n(e, t) {
|
||||
var n = new r(o);
|
||||
(a = t),
|
||||
n.observe(i.documentElement, {
|
||||
childList: !0,
|
||||
subtree: !0,
|
||||
removedNodes: !0,
|
||||
});
|
||||
}
|
||||
function o(e) {
|
||||
e &&
|
||||
e.forEach(function (e) {
|
||||
var t = Array.prototype.slice.call(e.addedNodes),
|
||||
n = Array.prototype.slice.call(e.removedNodes),
|
||||
o = t.concat(n).filter(function (e) {
|
||||
return e.hasAttribute && e.hasAttribute('data-aos');
|
||||
}).length;
|
||||
o && a();
|
||||
});
|
||||
}
|
||||
Object.defineProperty(t, '__esModule', { value: !0 });
|
||||
var i = window.document,
|
||||
r =
|
||||
window.MutationObserver ||
|
||||
window.WebKitMutationObserver ||
|
||||
window.MozMutationObserver,
|
||||
a = function () {};
|
||||
t.default = n;
|
||||
},
|
||||
function (e, t) {
|
||||
'use strict';
|
||||
function n(e, t) {
|
||||
if (!(e instanceof t))
|
||||
throw new TypeError('Cannot call a class as a function');
|
||||
}
|
||||
function o() {
|
||||
return navigator.userAgent || navigator.vendor || window.opera || '';
|
||||
}
|
||||
Object.defineProperty(t, '__esModule', { value: !0 });
|
||||
var i = (function () {
|
||||
function e(e, t) {
|
||||
for (var n = 0; n < t.length; n++) {
|
||||
var o = t[n];
|
||||
(o.enumerable = o.enumerable || !1),
|
||||
(o.configurable = !0),
|
||||
'value' in o && (o.writable = !0),
|
||||
Object.defineProperty(e, o.key, o);
|
||||
}
|
||||
}
|
||||
return function (t, n, o) {
|
||||
return n && e(t.prototype, n), o && e(t, o), t;
|
||||
};
|
||||
})(),
|
||||
r =
|
||||
/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,
|
||||
a =
|
||||
/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i,
|
||||
u =
|
||||
/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i,
|
||||
c =
|
||||
/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i,
|
||||
f = (function () {
|
||||
function e() {
|
||||
n(this, e);
|
||||
}
|
||||
return (
|
||||
i(e, [
|
||||
{
|
||||
key: 'phone',
|
||||
value: function () {
|
||||
var e = o();
|
||||
return !(!r.test(e) && !a.test(e.substr(0, 4)));
|
||||
},
|
||||
},
|
||||
{
|
||||
key: 'mobile',
|
||||
value: function () {
|
||||
var e = o();
|
||||
return !(!u.test(e) && !c.test(e.substr(0, 4)));
|
||||
},
|
||||
},
|
||||
{
|
||||
key: 'tablet',
|
||||
value: function () {
|
||||
return this.mobile() && !this.phone();
|
||||
},
|
||||
},
|
||||
]),
|
||||
e
|
||||
);
|
||||
})();
|
||||
t.default = new f();
|
||||
},
|
||||
function (e, t) {
|
||||
'use strict';
|
||||
Object.defineProperty(t, '__esModule', { value: !0 });
|
||||
var n = function (e, t, n) {
|
||||
var o = e.node.getAttribute('data-aos-once');
|
||||
t > e.position
|
||||
? e.node.classList.add('aos-animate')
|
||||
: 'undefined' != typeof o &&
|
||||
('false' === o || (!n && 'true' !== o)) &&
|
||||
e.node.classList.remove('aos-animate');
|
||||
},
|
||||
o = function (e, t) {
|
||||
var o = window.pageYOffset,
|
||||
i = window.innerHeight;
|
||||
e.forEach(function (e, r) {
|
||||
n(e, i + o, t);
|
||||
});
|
||||
};
|
||||
t.default = o;
|
||||
},
|
||||
function (e, t, n) {
|
||||
'use strict';
|
||||
function o(e) {
|
||||
return e && e.__esModule ? e : { default: e };
|
||||
}
|
||||
Object.defineProperty(t, '__esModule', { value: !0 });
|
||||
var i = n(12),
|
||||
r = o(i),
|
||||
a = function (e, t) {
|
||||
return (
|
||||
e.forEach(function (e, n) {
|
||||
e.node.classList.add('aos-init'),
|
||||
(e.position = (0, r.default)(e.node, t.offset));
|
||||
}),
|
||||
e
|
||||
);
|
||||
};
|
||||
t.default = a;
|
||||
},
|
||||
function (e, t, n) {
|
||||
'use strict';
|
||||
function o(e) {
|
||||
return e && e.__esModule ? e : { default: e };
|
||||
}
|
||||
Object.defineProperty(t, '__esModule', { value: !0 });
|
||||
var i = n(13),
|
||||
r = o(i),
|
||||
a = function (e, t) {
|
||||
var n = 0,
|
||||
o = 0,
|
||||
i = window.innerHeight,
|
||||
a = {
|
||||
offset: e.getAttribute('data-aos-offset'),
|
||||
anchor: e.getAttribute('data-aos-anchor'),
|
||||
anchorPlacement: e.getAttribute('data-aos-anchor-placement'),
|
||||
};
|
||||
switch (
|
||||
(a.offset && !isNaN(a.offset) && (o = parseInt(a.offset)),
|
||||
a.anchor &&
|
||||
document.querySelectorAll(a.anchor) &&
|
||||
(e = document.querySelectorAll(a.anchor)[0]),
|
||||
(n = (0, r.default)(e).top),
|
||||
a.anchorPlacement)
|
||||
) {
|
||||
case 'top-bottom':
|
||||
break;
|
||||
case 'center-bottom':
|
||||
n += e.offsetHeight / 2;
|
||||
break;
|
||||
case 'bottom-bottom':
|
||||
n += e.offsetHeight;
|
||||
break;
|
||||
case 'top-center':
|
||||
n += i / 2;
|
||||
break;
|
||||
case 'bottom-center':
|
||||
n += i / 2 + e.offsetHeight;
|
||||
break;
|
||||
case 'center-center':
|
||||
n += i / 2 + e.offsetHeight / 2;
|
||||
break;
|
||||
case 'top-top':
|
||||
n += i;
|
||||
break;
|
||||
case 'bottom-top':
|
||||
n += e.offsetHeight + i;
|
||||
break;
|
||||
case 'center-top':
|
||||
n += e.offsetHeight / 2 + i;
|
||||
}
|
||||
return a.anchorPlacement || a.offset || isNaN(t) || (o = t), n + o;
|
||||
};
|
||||
t.default = a;
|
||||
},
|
||||
function (e, t) {
|
||||
'use strict';
|
||||
Object.defineProperty(t, '__esModule', { value: !0 });
|
||||
var n = function (e) {
|
||||
for (
|
||||
var t = 0, n = 0;
|
||||
e && !isNaN(e.offsetLeft) && !isNaN(e.offsetTop);
|
||||
|
||||
)
|
||||
(t += e.offsetLeft - ('BODY' != e.tagName ? e.scrollLeft : 0)),
|
||||
(n += e.offsetTop - ('BODY' != e.tagName ? e.scrollTop : 0)),
|
||||
(e = e.offsetParent);
|
||||
return { top: n, left: t };
|
||||
};
|
||||
t.default = n;
|
||||
},
|
||||
function (e, t) {
|
||||
'use strict';
|
||||
Object.defineProperty(t, '__esModule', { value: !0 });
|
||||
var n = function (e) {
|
||||
return (
|
||||
(e = e || document.querySelectorAll('[data-aos]')),
|
||||
Array.prototype.map.call(e, function (e) {
|
||||
return { node: e };
|
||||
})
|
||||
);
|
||||
};
|
||||
t.default = n;
|
||||
},
|
||||
]);
|
||||
});
|
||||
794
themes/agico-hugo/assets/plugins/search/fuse.min.js
vendored
Normal file
794
themes/agico-hugo/assets/plugins/search/fuse.min.js
vendored
Normal file
@@ -0,0 +1,794 @@
|
||||
/*!
|
||||
* Fuse.js v3.4.6 - Lightweight fuzzy-search (http://fusejs.io)
|
||||
*
|
||||
* Copyright (c) 2012-2017 Kirollos Risk (http://kiro.me)
|
||||
* All Rights Reserved. Apache Software License 2.0
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
!(function (e, t) {
|
||||
'object' == typeof exports && 'object' == typeof module
|
||||
? (module.exports = t())
|
||||
: 'function' == typeof define && define.amd
|
||||
? define('Fuse', [], t)
|
||||
: 'object' == typeof exports
|
||||
? (exports.Fuse = t())
|
||||
: (e.Fuse = t());
|
||||
})(this, function () {
|
||||
return (function (e) {
|
||||
var t = {};
|
||||
function n(r) {
|
||||
if (t[r]) return t[r].exports;
|
||||
var o = (t[r] = { i: r, l: !1, exports: {} });
|
||||
return e[r].call(o.exports, o, o.exports, n), (o.l = !0), o.exports;
|
||||
}
|
||||
return (
|
||||
(n.m = e),
|
||||
(n.c = t),
|
||||
(n.d = function (e, t, r) {
|
||||
n.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: r });
|
||||
}),
|
||||
(n.r = function (e) {
|
||||
'undefined' != typeof Symbol &&
|
||||
Symbol.toStringTag &&
|
||||
Object.defineProperty(e, Symbol.toStringTag, { value: 'Module' }),
|
||||
Object.defineProperty(e, '__esModule', { value: !0 });
|
||||
}),
|
||||
(n.t = function (e, t) {
|
||||
if ((1 & t && (e = n(e)), 8 & t)) return e;
|
||||
if (4 & t && 'object' == typeof e && e && e.__esModule) return e;
|
||||
var r = Object.create(null);
|
||||
if (
|
||||
(n.r(r),
|
||||
Object.defineProperty(r, 'default', { enumerable: !0, value: e }),
|
||||
2 & t && 'string' != typeof e)
|
||||
)
|
||||
for (var o in e)
|
||||
n.d(
|
||||
r,
|
||||
o,
|
||||
function (t) {
|
||||
return e[t];
|
||||
}.bind(null, o)
|
||||
);
|
||||
return r;
|
||||
}),
|
||||
(n.n = function (e) {
|
||||
var t =
|
||||
e && e.__esModule
|
||||
? function () {
|
||||
return e.default;
|
||||
}
|
||||
: function () {
|
||||
return e;
|
||||
};
|
||||
return n.d(t, 'a', t), t;
|
||||
}),
|
||||
(n.o = function (e, t) {
|
||||
return Object.prototype.hasOwnProperty.call(e, t);
|
||||
}),
|
||||
(n.p = ''),
|
||||
n((n.s = 1))
|
||||
);
|
||||
})([
|
||||
function (e, t) {
|
||||
e.exports = function (e) {
|
||||
return Array.isArray
|
||||
? Array.isArray(e)
|
||||
: '[object Array]' === Object.prototype.toString.call(e);
|
||||
};
|
||||
},
|
||||
function (e, t, n) {
|
||||
function r(e) {
|
||||
return (r =
|
||||
'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator
|
||||
? function (e) {
|
||||
return typeof e;
|
||||
}
|
||||
: function (e) {
|
||||
return e &&
|
||||
'function' == typeof Symbol &&
|
||||
e.constructor === Symbol &&
|
||||
e !== Symbol.prototype
|
||||
? 'symbol'
|
||||
: typeof e;
|
||||
})(e);
|
||||
}
|
||||
function o(e, t) {
|
||||
for (var n = 0; n < t.length; n++) {
|
||||
var r = t[n];
|
||||
(r.enumerable = r.enumerable || !1),
|
||||
(r.configurable = !0),
|
||||
'value' in r && (r.writable = !0),
|
||||
Object.defineProperty(e, r.key, r);
|
||||
}
|
||||
}
|
||||
var i = n(2),
|
||||
a = n(8),
|
||||
s = n(0),
|
||||
c = (function () {
|
||||
function e(t, n) {
|
||||
var r = n.location,
|
||||
o = void 0 === r ? 0 : r,
|
||||
i = n.distance,
|
||||
s = void 0 === i ? 100 : i,
|
||||
c = n.threshold,
|
||||
h = void 0 === c ? 0.6 : c,
|
||||
l = n.maxPatternLength,
|
||||
u = void 0 === l ? 32 : l,
|
||||
f = n.caseSensitive,
|
||||
d = void 0 !== f && f,
|
||||
v = n.tokenSeparator,
|
||||
p = void 0 === v ? / +/g : v,
|
||||
g = n.findAllMatches,
|
||||
y = void 0 !== g && g,
|
||||
m = n.minMatchCharLength,
|
||||
k = void 0 === m ? 1 : m,
|
||||
S = n.id,
|
||||
x = void 0 === S ? null : S,
|
||||
b = n.keys,
|
||||
M = void 0 === b ? [] : b,
|
||||
_ = n.shouldSort,
|
||||
L = void 0 === _ || _,
|
||||
w = n.getFn,
|
||||
A = void 0 === w ? a : w,
|
||||
C = n.sortFn,
|
||||
I =
|
||||
void 0 === C
|
||||
? function (e, t) {
|
||||
return e.score - t.score;
|
||||
}
|
||||
: C,
|
||||
O = n.tokenize,
|
||||
j = void 0 !== O && O,
|
||||
P = n.matchAllTokens,
|
||||
F = void 0 !== P && P,
|
||||
T = n.includeMatches,
|
||||
z = void 0 !== T && T,
|
||||
E = n.includeScore,
|
||||
K = void 0 !== E && E,
|
||||
$ = n.verbose,
|
||||
J = void 0 !== $ && $;
|
||||
!(function (e, t) {
|
||||
if (!(e instanceof t))
|
||||
throw new TypeError('Cannot call a class as a function');
|
||||
})(this, e),
|
||||
(this.options = {
|
||||
location: o,
|
||||
distance: s,
|
||||
threshold: h,
|
||||
maxPatternLength: u,
|
||||
isCaseSensitive: d,
|
||||
tokenSeparator: p,
|
||||
findAllMatches: y,
|
||||
minMatchCharLength: k,
|
||||
id: x,
|
||||
keys: M,
|
||||
includeMatches: z,
|
||||
includeScore: K,
|
||||
shouldSort: L,
|
||||
getFn: A,
|
||||
sortFn: I,
|
||||
verbose: J,
|
||||
tokenize: j,
|
||||
matchAllTokens: F,
|
||||
}),
|
||||
this.setCollection(t);
|
||||
}
|
||||
var t, n, c;
|
||||
return (
|
||||
(t = e),
|
||||
(n = [
|
||||
{
|
||||
key: 'setCollection',
|
||||
value: function (e) {
|
||||
return (this.list = e), e;
|
||||
},
|
||||
},
|
||||
{
|
||||
key: 'search',
|
||||
value: function (e) {
|
||||
var t =
|
||||
arguments.length > 1 && void 0 !== arguments[1]
|
||||
? arguments[1]
|
||||
: { limit: !1 };
|
||||
this._log('---------\nSearch pattern: "'.concat(e, '"'));
|
||||
var n = this._prepareSearchers(e),
|
||||
r = n.tokenSearchers,
|
||||
o = n.fullSearcher,
|
||||
i = this._search(r, o),
|
||||
a = i.weights,
|
||||
s = i.results;
|
||||
return (
|
||||
this._computeScore(a, s),
|
||||
this.options.shouldSort && this._sort(s),
|
||||
t.limit &&
|
||||
'number' == typeof t.limit &&
|
||||
(s = s.slice(0, t.limit)),
|
||||
this._format(s)
|
||||
);
|
||||
},
|
||||
},
|
||||
{
|
||||
key: '_prepareSearchers',
|
||||
value: function () {
|
||||
var e =
|
||||
arguments.length > 0 && void 0 !== arguments[0]
|
||||
? arguments[0]
|
||||
: '',
|
||||
t = [];
|
||||
if (this.options.tokenize)
|
||||
for (
|
||||
var n = e.split(this.options.tokenSeparator),
|
||||
r = 0,
|
||||
o = n.length;
|
||||
r < o;
|
||||
r += 1
|
||||
)
|
||||
t.push(new i(n[r], this.options));
|
||||
return {
|
||||
tokenSearchers: t,
|
||||
fullSearcher: new i(e, this.options),
|
||||
};
|
||||
},
|
||||
},
|
||||
{
|
||||
key: '_search',
|
||||
value: function () {
|
||||
var e =
|
||||
arguments.length > 0 && void 0 !== arguments[0]
|
||||
? arguments[0]
|
||||
: [],
|
||||
t = arguments.length > 1 ? arguments[1] : void 0,
|
||||
n = this.list,
|
||||
r = {},
|
||||
o = [];
|
||||
if ('string' == typeof n[0]) {
|
||||
for (var i = 0, a = n.length; i < a; i += 1)
|
||||
this._analyze(
|
||||
{ key: '', value: n[i], record: i, index: i },
|
||||
{
|
||||
resultMap: r,
|
||||
results: o,
|
||||
tokenSearchers: e,
|
||||
fullSearcher: t,
|
||||
}
|
||||
);
|
||||
return { weights: null, results: o };
|
||||
}
|
||||
for (var s = {}, c = 0, h = n.length; c < h; c += 1)
|
||||
for (
|
||||
var l = n[c], u = 0, f = this.options.keys.length;
|
||||
u < f;
|
||||
u += 1
|
||||
) {
|
||||
var d = this.options.keys[u];
|
||||
if ('string' != typeof d) {
|
||||
if (
|
||||
((s[d.name] = { weight: 1 - d.weight || 1 }),
|
||||
d.weight <= 0 || d.weight > 1)
|
||||
)
|
||||
throw new Error('Key weight has to be > 0 and <= 1');
|
||||
d = d.name;
|
||||
} else s[d] = { weight: 1 };
|
||||
this._analyze(
|
||||
{
|
||||
key: d,
|
||||
value: this.options.getFn(l, d),
|
||||
record: l,
|
||||
index: c,
|
||||
},
|
||||
{
|
||||
resultMap: r,
|
||||
results: o,
|
||||
tokenSearchers: e,
|
||||
fullSearcher: t,
|
||||
}
|
||||
);
|
||||
}
|
||||
return { weights: s, results: o };
|
||||
},
|
||||
},
|
||||
{
|
||||
key: '_analyze',
|
||||
value: function (e, t) {
|
||||
var n = e.key,
|
||||
r = e.arrayIndex,
|
||||
o = void 0 === r ? -1 : r,
|
||||
i = e.value,
|
||||
a = e.record,
|
||||
c = e.index,
|
||||
h = t.tokenSearchers,
|
||||
l = void 0 === h ? [] : h,
|
||||
u = t.fullSearcher,
|
||||
f = void 0 === u ? [] : u,
|
||||
d = t.resultMap,
|
||||
v = void 0 === d ? {} : d,
|
||||
p = t.results,
|
||||
g = void 0 === p ? [] : p;
|
||||
if (null != i) {
|
||||
var y = !1,
|
||||
m = -1,
|
||||
k = 0;
|
||||
if ('string' == typeof i) {
|
||||
this._log('\nKey: '.concat('' === n ? '-' : n));
|
||||
var S = f.search(i);
|
||||
if (
|
||||
(this._log(
|
||||
'Full text: "'.concat(i, '", score: ').concat(S.score)
|
||||
),
|
||||
this.options.tokenize)
|
||||
) {
|
||||
for (
|
||||
var x = i.split(this.options.tokenSeparator),
|
||||
b = [],
|
||||
M = 0;
|
||||
M < l.length;
|
||||
M += 1
|
||||
) {
|
||||
var _ = l[M];
|
||||
this._log('\nPattern: "'.concat(_.pattern, '"'));
|
||||
for (var L = !1, w = 0; w < x.length; w += 1) {
|
||||
var A = x[w],
|
||||
C = _.search(A),
|
||||
I = {};
|
||||
C.isMatch
|
||||
? ((I[A] = C.score),
|
||||
(y = !0),
|
||||
(L = !0),
|
||||
b.push(C.score))
|
||||
: ((I[A] = 1),
|
||||
this.options.matchAllTokens || b.push(1)),
|
||||
this._log(
|
||||
'Token: "'.concat(A, '", score: ').concat(I[A])
|
||||
);
|
||||
}
|
||||
L && (k += 1);
|
||||
}
|
||||
m = b[0];
|
||||
for (var O = b.length, j = 1; j < O; j += 1) m += b[j];
|
||||
(m /= O), this._log('Token score average:', m);
|
||||
}
|
||||
var P = S.score;
|
||||
m > -1 && (P = (P + m) / 2),
|
||||
this._log('Score average:', P);
|
||||
var F =
|
||||
!this.options.tokenize ||
|
||||
!this.options.matchAllTokens ||
|
||||
k >= l.length;
|
||||
if (
|
||||
(this._log('\nCheck Matches: '.concat(F)),
|
||||
(y || S.isMatch) && F)
|
||||
) {
|
||||
var T = v[c];
|
||||
T
|
||||
? T.output.push({
|
||||
key: n,
|
||||
arrayIndex: o,
|
||||
value: i,
|
||||
score: P,
|
||||
matchedIndices: S.matchedIndices,
|
||||
})
|
||||
: ((v[c] = {
|
||||
item: a,
|
||||
output: [
|
||||
{
|
||||
key: n,
|
||||
arrayIndex: o,
|
||||
value: i,
|
||||
score: P,
|
||||
matchedIndices: S.matchedIndices,
|
||||
},
|
||||
],
|
||||
}),
|
||||
g.push(v[c]));
|
||||
}
|
||||
} else if (s(i))
|
||||
for (var z = 0, E = i.length; z < E; z += 1)
|
||||
this._analyze(
|
||||
{
|
||||
key: n,
|
||||
arrayIndex: z,
|
||||
value: i[z],
|
||||
record: a,
|
||||
index: c,
|
||||
},
|
||||
{
|
||||
resultMap: v,
|
||||
results: g,
|
||||
tokenSearchers: l,
|
||||
fullSearcher: f,
|
||||
}
|
||||
);
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
key: '_computeScore',
|
||||
value: function (e, t) {
|
||||
this._log('\n\nComputing score:\n');
|
||||
for (var n = 0, r = t.length; n < r; n += 1) {
|
||||
for (
|
||||
var o = t[n].output, i = o.length, a = 1, s = 1, c = 0;
|
||||
c < i;
|
||||
c += 1
|
||||
) {
|
||||
var h = e ? e[o[c].key].weight : 1,
|
||||
l = (1 === h ? o[c].score : o[c].score || 0.001) * h;
|
||||
1 !== h
|
||||
? (s = Math.min(s, l))
|
||||
: ((o[c].nScore = l), (a *= l));
|
||||
}
|
||||
(t[n].score = 1 === s ? a : s), this._log(t[n]);
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
key: '_sort',
|
||||
value: function (e) {
|
||||
this._log('\n\nSorting....'), e.sort(this.options.sortFn);
|
||||
},
|
||||
},
|
||||
{
|
||||
key: '_format',
|
||||
value: function (e) {
|
||||
var t = [];
|
||||
if (this.options.verbose) {
|
||||
var n = [];
|
||||
this._log(
|
||||
'\n\nOutput:\n\n',
|
||||
JSON.stringify(e, function (e, t) {
|
||||
if ('object' === r(t) && null !== t) {
|
||||
if (-1 !== n.indexOf(t)) return;
|
||||
n.push(t);
|
||||
}
|
||||
return t;
|
||||
})
|
||||
),
|
||||
(n = null);
|
||||
}
|
||||
var o = [];
|
||||
this.options.includeMatches &&
|
||||
o.push(function (e, t) {
|
||||
var n = e.output;
|
||||
t.matches = [];
|
||||
for (var r = 0, o = n.length; r < o; r += 1) {
|
||||
var i = n[r];
|
||||
if (0 !== i.matchedIndices.length) {
|
||||
var a = { indices: i.matchedIndices, value: i.value };
|
||||
i.key && (a.key = i.key),
|
||||
i.hasOwnProperty('arrayIndex') &&
|
||||
i.arrayIndex > -1 &&
|
||||
(a.arrayIndex = i.arrayIndex),
|
||||
t.matches.push(a);
|
||||
}
|
||||
}
|
||||
}),
|
||||
this.options.includeScore &&
|
||||
o.push(function (e, t) {
|
||||
t.score = e.score;
|
||||
});
|
||||
for (var i = 0, a = e.length; i < a; i += 1) {
|
||||
var s = e[i];
|
||||
if (
|
||||
(this.options.id &&
|
||||
(s.item = this.options.getFn(
|
||||
s.item,
|
||||
this.options.id
|
||||
)[0]),
|
||||
o.length)
|
||||
) {
|
||||
for (
|
||||
var c = { item: s.item }, h = 0, l = o.length;
|
||||
h < l;
|
||||
h += 1
|
||||
)
|
||||
o[h](s, c);
|
||||
t.push(c);
|
||||
} else t.push(s.item);
|
||||
}
|
||||
return t;
|
||||
},
|
||||
},
|
||||
{
|
||||
key: '_log',
|
||||
value: function () {
|
||||
var e;
|
||||
this.options.verbose && (e = console).log.apply(e, arguments);
|
||||
},
|
||||
},
|
||||
]) && o(t.prototype, n),
|
||||
c && o(t, c),
|
||||
e
|
||||
);
|
||||
})();
|
||||
e.exports = c;
|
||||
},
|
||||
function (e, t, n) {
|
||||
function r(e, t) {
|
||||
for (var n = 0; n < t.length; n++) {
|
||||
var r = t[n];
|
||||
(r.enumerable = r.enumerable || !1),
|
||||
(r.configurable = !0),
|
||||
'value' in r && (r.writable = !0),
|
||||
Object.defineProperty(e, r.key, r);
|
||||
}
|
||||
}
|
||||
var o = n(3),
|
||||
i = n(4),
|
||||
a = n(7),
|
||||
s = (function () {
|
||||
function e(t, n) {
|
||||
var r = n.location,
|
||||
o = void 0 === r ? 0 : r,
|
||||
i = n.distance,
|
||||
s = void 0 === i ? 100 : i,
|
||||
c = n.threshold,
|
||||
h = void 0 === c ? 0.6 : c,
|
||||
l = n.maxPatternLength,
|
||||
u = void 0 === l ? 32 : l,
|
||||
f = n.isCaseSensitive,
|
||||
d = void 0 !== f && f,
|
||||
v = n.tokenSeparator,
|
||||
p = void 0 === v ? / +/g : v,
|
||||
g = n.findAllMatches,
|
||||
y = void 0 !== g && g,
|
||||
m = n.minMatchCharLength,
|
||||
k = void 0 === m ? 1 : m;
|
||||
!(function (e, t) {
|
||||
if (!(e instanceof t))
|
||||
throw new TypeError('Cannot call a class as a function');
|
||||
})(this, e),
|
||||
(this.options = {
|
||||
location: o,
|
||||
distance: s,
|
||||
threshold: h,
|
||||
maxPatternLength: u,
|
||||
isCaseSensitive: d,
|
||||
tokenSeparator: p,
|
||||
findAllMatches: y,
|
||||
minMatchCharLength: k,
|
||||
}),
|
||||
(this.pattern = this.options.isCaseSensitive
|
||||
? t
|
||||
: t.toLowerCase()),
|
||||
this.pattern.length <= u &&
|
||||
(this.patternAlphabet = a(this.pattern));
|
||||
}
|
||||
var t, n, s;
|
||||
return (
|
||||
(t = e),
|
||||
(n = [
|
||||
{
|
||||
key: 'search',
|
||||
value: function (e) {
|
||||
if (
|
||||
(this.options.isCaseSensitive || (e = e.toLowerCase()),
|
||||
this.pattern === e)
|
||||
)
|
||||
return {
|
||||
isMatch: !0,
|
||||
score: 0,
|
||||
matchedIndices: [[0, e.length - 1]],
|
||||
};
|
||||
var t = this.options,
|
||||
n = t.maxPatternLength,
|
||||
r = t.tokenSeparator;
|
||||
if (this.pattern.length > n) return o(e, this.pattern, r);
|
||||
var a = this.options,
|
||||
s = a.location,
|
||||
c = a.distance,
|
||||
h = a.threshold,
|
||||
l = a.findAllMatches,
|
||||
u = a.minMatchCharLength;
|
||||
return i(e, this.pattern, this.patternAlphabet, {
|
||||
location: s,
|
||||
distance: c,
|
||||
threshold: h,
|
||||
findAllMatches: l,
|
||||
minMatchCharLength: u,
|
||||
});
|
||||
},
|
||||
},
|
||||
]) && r(t.prototype, n),
|
||||
s && r(t, s),
|
||||
e
|
||||
);
|
||||
})();
|
||||
e.exports = s;
|
||||
},
|
||||
function (e, t) {
|
||||
var n = /[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g;
|
||||
e.exports = function (e, t) {
|
||||
var r =
|
||||
arguments.length > 2 && void 0 !== arguments[2]
|
||||
? arguments[2]
|
||||
: / +/g,
|
||||
o = new RegExp(t.replace(n, '\\$&').replace(r, '|')),
|
||||
i = e.match(o),
|
||||
a = !!i,
|
||||
s = [];
|
||||
if (a)
|
||||
for (var c = 0, h = i.length; c < h; c += 1) {
|
||||
var l = i[c];
|
||||
s.push([e.indexOf(l), l.length - 1]);
|
||||
}
|
||||
return { score: a ? 0.5 : 1, isMatch: a, matchedIndices: s };
|
||||
};
|
||||
},
|
||||
function (e, t, n) {
|
||||
var r = n(5),
|
||||
o = n(6);
|
||||
e.exports = function (e, t, n, i) {
|
||||
for (
|
||||
var a = i.location,
|
||||
s = void 0 === a ? 0 : a,
|
||||
c = i.distance,
|
||||
h = void 0 === c ? 100 : c,
|
||||
l = i.threshold,
|
||||
u = void 0 === l ? 0.6 : l,
|
||||
f = i.findAllMatches,
|
||||
d = void 0 !== f && f,
|
||||
v = i.minMatchCharLength,
|
||||
p = void 0 === v ? 1 : v,
|
||||
g = s,
|
||||
y = e.length,
|
||||
m = u,
|
||||
k = e.indexOf(t, g),
|
||||
S = t.length,
|
||||
x = [],
|
||||
b = 0;
|
||||
b < y;
|
||||
b += 1
|
||||
)
|
||||
x[b] = 0;
|
||||
if (-1 !== k) {
|
||||
var M = r(t, {
|
||||
errors: 0,
|
||||
currentLocation: k,
|
||||
expectedLocation: g,
|
||||
distance: h,
|
||||
});
|
||||
if (((m = Math.min(M, m)), -1 !== (k = e.lastIndexOf(t, g + S)))) {
|
||||
var _ = r(t, {
|
||||
errors: 0,
|
||||
currentLocation: k,
|
||||
expectedLocation: g,
|
||||
distance: h,
|
||||
});
|
||||
m = Math.min(_, m);
|
||||
}
|
||||
}
|
||||
k = -1;
|
||||
for (
|
||||
var L = [], w = 1, A = S + y, C = 1 << (S <= 31 ? S - 1 : 30), I = 0;
|
||||
I < S;
|
||||
I += 1
|
||||
) {
|
||||
for (var O = 0, j = A; O < j; ) {
|
||||
r(t, {
|
||||
errors: I,
|
||||
currentLocation: g + j,
|
||||
expectedLocation: g,
|
||||
distance: h,
|
||||
}) <= m
|
||||
? (O = j)
|
||||
: (A = j),
|
||||
(j = Math.floor((A - O) / 2 + O));
|
||||
}
|
||||
A = j;
|
||||
var P = Math.max(1, g - j + 1),
|
||||
F = d ? y : Math.min(g + j, y) + S,
|
||||
T = Array(F + 2);
|
||||
T[F + 1] = (1 << I) - 1;
|
||||
for (var z = F; z >= P; z -= 1) {
|
||||
var E = z - 1,
|
||||
K = n[e.charAt(E)];
|
||||
if (
|
||||
(K && (x[E] = 1),
|
||||
(T[z] = ((T[z + 1] << 1) | 1) & K),
|
||||
0 !== I && (T[z] |= ((L[z + 1] | L[z]) << 1) | 1 | L[z + 1]),
|
||||
T[z] & C &&
|
||||
(w = r(t, {
|
||||
errors: I,
|
||||
currentLocation: E,
|
||||
expectedLocation: g,
|
||||
distance: h,
|
||||
})) <= m)
|
||||
) {
|
||||
if (((m = w), (k = E) <= g)) break;
|
||||
P = Math.max(1, 2 * g - k);
|
||||
}
|
||||
}
|
||||
if (
|
||||
r(t, {
|
||||
errors: I + 1,
|
||||
currentLocation: g,
|
||||
expectedLocation: g,
|
||||
distance: h,
|
||||
}) > m
|
||||
)
|
||||
break;
|
||||
L = T;
|
||||
}
|
||||
return {
|
||||
isMatch: k >= 0,
|
||||
score: 0 === w ? 0.001 : w,
|
||||
matchedIndices: o(x, p),
|
||||
};
|
||||
};
|
||||
},
|
||||
function (e, t) {
|
||||
e.exports = function (e, t) {
|
||||
var n = t.errors,
|
||||
r = void 0 === n ? 0 : n,
|
||||
o = t.currentLocation,
|
||||
i = void 0 === o ? 0 : o,
|
||||
a = t.expectedLocation,
|
||||
s = void 0 === a ? 0 : a,
|
||||
c = t.distance,
|
||||
h = void 0 === c ? 100 : c,
|
||||
l = r / e.length,
|
||||
u = Math.abs(s - i);
|
||||
return h ? l + u / h : u ? 1 : l;
|
||||
};
|
||||
},
|
||||
function (e, t) {
|
||||
e.exports = function () {
|
||||
for (
|
||||
var e =
|
||||
arguments.length > 0 && void 0 !== arguments[0]
|
||||
? arguments[0]
|
||||
: [],
|
||||
t =
|
||||
arguments.length > 1 && void 0 !== arguments[1]
|
||||
? arguments[1]
|
||||
: 1,
|
||||
n = [],
|
||||
r = -1,
|
||||
o = -1,
|
||||
i = 0,
|
||||
a = e.length;
|
||||
i < a;
|
||||
i += 1
|
||||
) {
|
||||
var s = e[i];
|
||||
s && -1 === r
|
||||
? (r = i)
|
||||
: s ||
|
||||
-1 === r ||
|
||||
((o = i - 1) - r + 1 >= t && n.push([r, o]), (r = -1));
|
||||
}
|
||||
return e[i - 1] && i - r >= t && n.push([r, i - 1]), n;
|
||||
};
|
||||
},
|
||||
function (e, t) {
|
||||
e.exports = function (e) {
|
||||
for (var t = {}, n = e.length, r = 0; r < n; r += 1) t[e.charAt(r)] = 0;
|
||||
for (var o = 0; o < n; o += 1) t[e.charAt(o)] |= 1 << (n - o - 1);
|
||||
return t;
|
||||
};
|
||||
},
|
||||
function (e, t, n) {
|
||||
var r = n(0);
|
||||
e.exports = function (e, t) {
|
||||
return (function e(t, n, o) {
|
||||
if (n) {
|
||||
var i = n.indexOf('.'),
|
||||
a = n,
|
||||
s = null;
|
||||
-1 !== i && ((a = n.slice(0, i)), (s = n.slice(i + 1)));
|
||||
var c = t[a];
|
||||
if (null != c)
|
||||
if (s || ('string' != typeof c && 'number' != typeof c))
|
||||
if (r(c))
|
||||
for (var h = 0, l = c.length; h < l; h += 1) e(c[h], s, o);
|
||||
else s && e(c, s, o);
|
||||
else o.push(c.toString());
|
||||
} else o.push(t);
|
||||
return o;
|
||||
})(e, t, []);
|
||||
};
|
||||
},
|
||||
]);
|
||||
});
|
||||
136
themes/agico-hugo/assets/plugins/search/search.js
Normal file
136
themes/agico-hugo/assets/plugins/search/search.js
Normal file
@@ -0,0 +1,136 @@
|
||||
summaryInclude = 100;
|
||||
var fuseOptions = {
|
||||
isCaseSensitive: false,
|
||||
includeScore: false,
|
||||
shouldSort: true,
|
||||
includeMatches: true,
|
||||
findAllMatches: false,
|
||||
minMatchCharLength: 3,
|
||||
location: 0,
|
||||
threshold: 0.5,
|
||||
distance: 50,
|
||||
useExtendedSearch: false,
|
||||
ignoreLocation: false,
|
||||
ignoreFieldNorm: false,
|
||||
keys: [{
|
||||
name: "title",
|
||||
weight: 0.8
|
||||
},
|
||||
{
|
||||
name: "tags",
|
||||
weight: 0.5
|
||||
},
|
||||
{
|
||||
name: "categories",
|
||||
weight: 0.5
|
||||
},
|
||||
{
|
||||
name: "contents",
|
||||
weight: 0.3
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
var searchQuery = param("s");
|
||||
if (searchQuery) {
|
||||
document.querySelector("#search-query").value = searchQuery
|
||||
executeSearch(searchQuery);
|
||||
}
|
||||
|
||||
function executeSearch(searchQuery) {
|
||||
fetch(indexURL)
|
||||
.then(res => res.json())
|
||||
.then(data => {
|
||||
var pages = data;
|
||||
var fuse = new Fuse(pages, fuseOptions);
|
||||
var result = fuse.search(searchQuery);
|
||||
if (result.length > 0) {
|
||||
populateResults(result);
|
||||
} else {
|
||||
document.querySelector('#search-results').innerHTML = '<div class=\"text-center\"><img class=\"img-fluid mb-5\" src=\"https://user-images.githubusercontent.com/37659754/64060567-7cece400-cbf0-11e9-9cf9-abac3543ec1f.png" width=\"300\"><h3>No Search Found</h3></div>'
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function populateResults(result) {
|
||||
result.forEach((value, key) => {
|
||||
var contents = value.item.contents;
|
||||
var snippet = "";
|
||||
var snippetHighlights = [];
|
||||
const matchValue = value.matches
|
||||
|
||||
matchValue.forEach((mvalue, matchKey) => {
|
||||
if (mvalue.key === "tags" || mvalue.key === "categories") {
|
||||
snippetHighlights.push(mvalue.value);
|
||||
} else if (mvalue.key == "contents") {
|
||||
start = mvalue.indices[0][0] - summaryInclude > 0 ? mvalue.indices[0][0] - summaryInclude : 0;
|
||||
end = mvalue.indices[0][1] + summaryInclude < contents.length ? mvalue.indices[0][1] + summaryInclude : contents.length;
|
||||
snippet += contents.substring(start, end);
|
||||
snippetHighlights.push(mvalue.value.substring(mvalue.indices[0][0], mvalue.indices[0][1] - mvalue.indices[0][0] + 1));
|
||||
}
|
||||
});
|
||||
|
||||
if (snippet.length < 1) {
|
||||
snippet += contents.substring(0, summaryInclude * 2);
|
||||
}
|
||||
//pull template from hugo templarte definition
|
||||
var templateDefinition = document.querySelector('#search-result-template').innerHTML;
|
||||
//replace values
|
||||
var output = render(templateDefinition, {
|
||||
key: key,
|
||||
title: value.item.title,
|
||||
image: value.item.image,
|
||||
date: value.item.date,
|
||||
link: value.item.permalink,
|
||||
tags: value.item.tags,
|
||||
categories: value.item.categories,
|
||||
snippet: snippet
|
||||
});
|
||||
// $('#search-results').append(output);
|
||||
const searchResults = document.querySelector('#search-results');
|
||||
searchResults.insertAdjacentHTML('beforeend', output);
|
||||
});
|
||||
}
|
||||
|
||||
function param(name) {
|
||||
return decodeURIComponent((location.search.split(name + '=')[1] || '').split('&')[0]).replace(/\+/g, ' ');
|
||||
}
|
||||
|
||||
function render(templateString, data) {
|
||||
var conditionalMatches, conditionalPattern, copy;
|
||||
conditionalPattern = /\$\{\s*isset ([a-zA-Z]*) \s*\}(.*)\$\{\s*end\s*}/g;
|
||||
//since loop below depends on re.lastInxdex, we use a copy to capture any manipulations whilst inside the loop
|
||||
copy = templateString;
|
||||
while ((conditionalMatches = conditionalPattern.exec(templateString)) !== null) {
|
||||
if (data[conditionalMatches[1]]) {
|
||||
//valid key, remove conditionals, leave contents.
|
||||
copy = copy.replace(conditionalMatches[0], conditionalMatches[2]);
|
||||
} else {
|
||||
//not valid, remove entire section
|
||||
copy = copy.replace(conditionalMatches[0], '');
|
||||
}
|
||||
}
|
||||
templateString = copy;
|
||||
//now any conditionals removed we can do simple substitution
|
||||
var key, find, re;
|
||||
for (key in data) {
|
||||
find = '\\$\\{\\s*' + key + '\\s*\\}';
|
||||
re = new RegExp(find, 'g');
|
||||
templateString = templateString.replace(re, data[key]);
|
||||
}
|
||||
return templateString;
|
||||
}
|
||||
|
||||
|
||||
// // Search Form Open
|
||||
// document.querySelector('#searchOpen').addEventListener('click', function () {
|
||||
// document.querySelector('.search-wrapper').classList.add('open')
|
||||
// setTimeout(function () {
|
||||
// document.querySelector('.search-box').focus();
|
||||
// }, 400);
|
||||
// });
|
||||
|
||||
// // Search Form close
|
||||
// document.querySelector('#searchClose').addEventListener('click', function () {
|
||||
// document.querySelector('.search-wrapper').classList.remove('open');
|
||||
// });
|
||||
624
themes/agico-hugo/assets/plugins/swiper/swiper.css
Normal file
624
themes/agico-hugo/assets/plugins/swiper/swiper.css
Normal file
@@ -0,0 +1,624 @@
|
||||
/**
|
||||
* Swiper 8.0.7
|
||||
* Most modern mobile touch slider and framework with hardware accelerated transitions
|
||||
* https://swiperjs.com
|
||||
*
|
||||
* Copyright 2014-2022 Vladimir Kharlampidi
|
||||
*
|
||||
* Released under the MIT License
|
||||
*
|
||||
* Released on: March 4, 2022
|
||||
*/
|
||||
|
||||
@font-face {
|
||||
font-family: 'swiper-icons';
|
||||
src: url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
}
|
||||
:root {
|
||||
--swiper-theme-color: #007aff;
|
||||
}
|
||||
.swiper {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
/* Fix of Webkit flickering */
|
||||
z-index: 1;
|
||||
}
|
||||
.swiper-vertical > .swiper-wrapper {
|
||||
flex-direction: column;
|
||||
}
|
||||
.swiper-wrapper {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
transition-property: transform;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
.swiper-android .swiper-slide,
|
||||
.swiper-wrapper {
|
||||
transform: translate3d(0px, 0, 0);
|
||||
}
|
||||
.swiper-pointer-events {
|
||||
touch-action: pan-y;
|
||||
}
|
||||
.swiper-pointer-events.swiper-vertical {
|
||||
touch-action: pan-x;
|
||||
}
|
||||
.swiper-slide {
|
||||
flex-shrink: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
transition-property: transform;
|
||||
}
|
||||
.swiper-slide-invisible-blank {
|
||||
visibility: hidden;
|
||||
}
|
||||
/* Auto Height */
|
||||
.swiper-autoheight,
|
||||
.swiper-autoheight .swiper-slide {
|
||||
height: auto;
|
||||
}
|
||||
.swiper-autoheight .swiper-wrapper {
|
||||
align-items: flex-start;
|
||||
transition-property: transform, height;
|
||||
}
|
||||
.swiper-backface-hidden .swiper-slide {
|
||||
transform: translateZ(0);
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
}
|
||||
/* 3D Effects */
|
||||
.swiper-3d,
|
||||
.swiper-3d.swiper-css-mode .swiper-wrapper {
|
||||
perspective: 1200px;
|
||||
}
|
||||
.swiper-3d .swiper-wrapper,
|
||||
.swiper-3d .swiper-slide,
|
||||
.swiper-3d .swiper-slide-shadow,
|
||||
.swiper-3d .swiper-slide-shadow-left,
|
||||
.swiper-3d .swiper-slide-shadow-right,
|
||||
.swiper-3d .swiper-slide-shadow-top,
|
||||
.swiper-3d .swiper-slide-shadow-bottom,
|
||||
.swiper-3d .swiper-cube-shadow {
|
||||
transform-style: preserve-3d;
|
||||
}
|
||||
.swiper-3d .swiper-slide-shadow,
|
||||
.swiper-3d .swiper-slide-shadow-left,
|
||||
.swiper-3d .swiper-slide-shadow-right,
|
||||
.swiper-3d .swiper-slide-shadow-top,
|
||||
.swiper-3d .swiper-slide-shadow-bottom {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
pointer-events: none;
|
||||
z-index: 10;
|
||||
}
|
||||
.swiper-3d .swiper-slide-shadow {
|
||||
background: rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
.swiper-3d .swiper-slide-shadow-left {
|
||||
background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
|
||||
}
|
||||
.swiper-3d .swiper-slide-shadow-right {
|
||||
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
|
||||
}
|
||||
.swiper-3d .swiper-slide-shadow-top {
|
||||
background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
|
||||
}
|
||||
.swiper-3d .swiper-slide-shadow-bottom {
|
||||
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
|
||||
}
|
||||
/* CSS Mode */
|
||||
.swiper-css-mode > .swiper-wrapper {
|
||||
overflow: auto;
|
||||
scrollbar-width: none;
|
||||
/* For Firefox */
|
||||
-ms-overflow-style: none;
|
||||
/* For Internet Explorer and Edge */
|
||||
}
|
||||
.swiper-css-mode > .swiper-wrapper::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
.swiper-css-mode > .swiper-wrapper > .swiper-slide {
|
||||
scroll-snap-align: start start;
|
||||
}
|
||||
.swiper-horizontal.swiper-css-mode > .swiper-wrapper {
|
||||
scroll-snap-type: x mandatory;
|
||||
}
|
||||
.swiper-vertical.swiper-css-mode > .swiper-wrapper {
|
||||
scroll-snap-type: y mandatory;
|
||||
}
|
||||
.swiper-centered > .swiper-wrapper::before {
|
||||
content: '';
|
||||
flex-shrink: 0;
|
||||
order: 9999;
|
||||
}
|
||||
.swiper-centered.swiper-horizontal > .swiper-wrapper > .swiper-slide:first-child {
|
||||
margin-inline-start: var(--swiper-centered-offset-before);
|
||||
}
|
||||
.swiper-centered.swiper-horizontal > .swiper-wrapper::before {
|
||||
height: 100%;
|
||||
min-height: 1px;
|
||||
width: var(--swiper-centered-offset-after);
|
||||
}
|
||||
.swiper-centered.swiper-vertical > .swiper-wrapper > .swiper-slide:first-child {
|
||||
margin-block-start: var(--swiper-centered-offset-before);
|
||||
}
|
||||
.swiper-centered.swiper-vertical > .swiper-wrapper::before {
|
||||
width: 100%;
|
||||
min-width: 1px;
|
||||
height: var(--swiper-centered-offset-after);
|
||||
}
|
||||
.swiper-centered > .swiper-wrapper > .swiper-slide {
|
||||
scroll-snap-align: center center;
|
||||
}
|
||||
.swiper-virtual .swiper-slide {
|
||||
-webkit-backface-visibility: hidden;
|
||||
transform: translateZ(0);
|
||||
}
|
||||
.swiper-virtual.swiper-css-mode .swiper-wrapper::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after {
|
||||
height: 1px;
|
||||
width: var(--swiper-virtual-size);
|
||||
}
|
||||
.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after {
|
||||
width: 1px;
|
||||
height: var(--swiper-virtual-size);
|
||||
}
|
||||
:root {
|
||||
--swiper-navigation-size: 44px;
|
||||
/*
|
||||
--swiper-navigation-color: var(--swiper-theme-color);
|
||||
*/
|
||||
}
|
||||
.swiper-button-prev,
|
||||
.swiper-button-next {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: calc(var(--swiper-navigation-size) / 44 * 27);
|
||||
height: var(--swiper-navigation-size);
|
||||
margin-top: calc(0px - (var(--swiper-navigation-size) / 2));
|
||||
z-index: 10;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: var(--swiper-navigation-color, var(--swiper-theme-color));
|
||||
}
|
||||
.swiper-button-prev.swiper-button-disabled,
|
||||
.swiper-button-next.swiper-button-disabled {
|
||||
opacity: 0.35;
|
||||
cursor: auto;
|
||||
pointer-events: none;
|
||||
}
|
||||
.swiper-button-prev:after,
|
||||
.swiper-button-next:after {
|
||||
font-family: swiper-icons;
|
||||
font-size: var(--swiper-navigation-size);
|
||||
text-transform: none !important;
|
||||
letter-spacing: 0;
|
||||
text-transform: none;
|
||||
font-variant: initial;
|
||||
line-height: 1;
|
||||
}
|
||||
.swiper-button-prev,
|
||||
.swiper-rtl .swiper-button-next {
|
||||
left: 10px;
|
||||
right: auto;
|
||||
}
|
||||
.swiper-button-prev:after,
|
||||
.swiper-rtl .swiper-button-next:after {
|
||||
content: 'prev';
|
||||
}
|
||||
.swiper-button-next,
|
||||
.swiper-rtl .swiper-button-prev {
|
||||
right: 10px;
|
||||
left: auto;
|
||||
}
|
||||
.swiper-button-next:after,
|
||||
.swiper-rtl .swiper-button-prev:after {
|
||||
content: 'next';
|
||||
}
|
||||
.swiper-button-lock {
|
||||
display: none;
|
||||
}
|
||||
:root {
|
||||
/*
|
||||
--swiper-pagination-color: var(--swiper-theme-color);
|
||||
--swiper-pagination-bullet-size: 8px;
|
||||
--swiper-pagination-bullet-width: 8px;
|
||||
--swiper-pagination-bullet-height: 8px;
|
||||
--swiper-pagination-bullet-inactive-color: #000;
|
||||
--swiper-pagination-bullet-inactive-opacity: 0.2;
|
||||
--swiper-pagination-bullet-opacity: 1;
|
||||
--swiper-pagination-bullet-horizontal-gap: 4px;
|
||||
--swiper-pagination-bullet-vertical-gap: 6px;
|
||||
*/
|
||||
}
|
||||
.swiper-pagination {
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
transition: 300ms opacity;
|
||||
transform: translate3d(0, 0, 0);
|
||||
z-index: 10;
|
||||
}
|
||||
.swiper-pagination.swiper-pagination-hidden {
|
||||
opacity: 0;
|
||||
}
|
||||
/* Common Styles */
|
||||
.swiper-pagination-fraction,
|
||||
.swiper-pagination-custom,
|
||||
.swiper-horizontal > .swiper-pagination-bullets,
|
||||
.swiper-pagination-bullets.swiper-pagination-horizontal {
|
||||
bottom: 10px;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
}
|
||||
/* Bullets */
|
||||
.swiper-pagination-bullets-dynamic {
|
||||
overflow: hidden;
|
||||
font-size: 0;
|
||||
}
|
||||
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
|
||||
transform: scale(0.33);
|
||||
position: relative;
|
||||
}
|
||||
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {
|
||||
transform: scale(1);
|
||||
}
|
||||
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {
|
||||
transform: scale(1);
|
||||
}
|
||||
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {
|
||||
transform: scale(0.66);
|
||||
}
|
||||
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {
|
||||
transform: scale(0.33);
|
||||
}
|
||||
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {
|
||||
transform: scale(0.66);
|
||||
}
|
||||
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {
|
||||
transform: scale(0.33);
|
||||
}
|
||||
.swiper-pagination-bullet {
|
||||
width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));
|
||||
height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));
|
||||
display: inline-block;
|
||||
border-radius: 50%;
|
||||
background: var(--swiper-pagination-bullet-inactive-color, #000);
|
||||
opacity: var(--swiper-pagination-bullet-inactive-opacity, 0.2);
|
||||
}
|
||||
button.swiper-pagination-bullet {
|
||||
border: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-shadow: none;
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
.swiper-pagination-clickable .swiper-pagination-bullet {
|
||||
cursor: pointer;
|
||||
}
|
||||
.swiper-pagination-bullet:only-child {
|
||||
display: none !important;
|
||||
}
|
||||
.swiper-pagination-bullet-active {
|
||||
opacity: var(--swiper-pagination-bullet-opacity, 1);
|
||||
background: var(--swiper-pagination-color, var(--swiper-theme-color));
|
||||
}
|
||||
.swiper-vertical > .swiper-pagination-bullets,
|
||||
.swiper-pagination-vertical.swiper-pagination-bullets {
|
||||
right: 10px;
|
||||
top: 50%;
|
||||
transform: translate3d(0px, -50%, 0);
|
||||
}
|
||||
.swiper-vertical > .swiper-pagination-bullets .swiper-pagination-bullet,
|
||||
.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet {
|
||||
margin: var(--swiper-pagination-bullet-vertical-gap, 6px) 0;
|
||||
display: block;
|
||||
}
|
||||
.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic,
|
||||
.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
width: 8px;
|
||||
}
|
||||
.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,
|
||||
.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
|
||||
display: inline-block;
|
||||
transition: 200ms transform, 200ms top;
|
||||
}
|
||||
.swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet,
|
||||
.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
|
||||
margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px);
|
||||
}
|
||||
.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic,
|
||||
.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
white-space: nowrap;
|
||||
}
|
||||
.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,
|
||||
.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
|
||||
transition: 200ms transform, 200ms left;
|
||||
}
|
||||
.swiper-horizontal.swiper-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
|
||||
transition: 200ms transform, 200ms right;
|
||||
}
|
||||
/* Progress */
|
||||
.swiper-pagination-progressbar {
|
||||
background: rgba(0, 0, 0, 0.25);
|
||||
position: absolute;
|
||||
}
|
||||
.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
|
||||
background: var(--swiper-pagination-color, var(--swiper-theme-color));
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
transform: scale(0);
|
||||
transform-origin: left top;
|
||||
}
|
||||
.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
|
||||
transform-origin: right top;
|
||||
}
|
||||
.swiper-horizontal > .swiper-pagination-progressbar,
|
||||
.swiper-pagination-progressbar.swiper-pagination-horizontal,
|
||||
.swiper-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,
|
||||
.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite {
|
||||
width: 100%;
|
||||
height: 4px;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
.swiper-vertical > .swiper-pagination-progressbar,
|
||||
.swiper-pagination-progressbar.swiper-pagination-vertical,
|
||||
.swiper-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,
|
||||
.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite {
|
||||
width: 4px;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
.swiper-pagination-lock {
|
||||
display: none;
|
||||
}
|
||||
/* Scrollbar */
|
||||
.swiper-scrollbar {
|
||||
border-radius: 10px;
|
||||
position: relative;
|
||||
-ms-touch-action: none;
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.swiper-horizontal > .swiper-scrollbar {
|
||||
position: absolute;
|
||||
left: 1%;
|
||||
bottom: 3px;
|
||||
z-index: 50;
|
||||
height: 5px;
|
||||
width: 98%;
|
||||
}
|
||||
.swiper-vertical > .swiper-scrollbar {
|
||||
position: absolute;
|
||||
right: 3px;
|
||||
top: 1%;
|
||||
z-index: 50;
|
||||
width: 5px;
|
||||
height: 98%;
|
||||
}
|
||||
.swiper-scrollbar-drag {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
border-radius: 10px;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
.swiper-scrollbar-cursor-drag {
|
||||
cursor: move;
|
||||
}
|
||||
.swiper-scrollbar-lock {
|
||||
display: none;
|
||||
}
|
||||
.swiper-zoom-container {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
}
|
||||
.swiper-zoom-container > img,
|
||||
.swiper-zoom-container > svg,
|
||||
.swiper-zoom-container > canvas {
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
object-fit: contain;
|
||||
}
|
||||
.swiper-slide-zoomed {
|
||||
cursor: move;
|
||||
}
|
||||
/* Preloader */
|
||||
:root {
|
||||
/*
|
||||
--swiper-preloader-color: var(--swiper-theme-color);
|
||||
*/
|
||||
}
|
||||
.swiper-lazy-preloader {
|
||||
width: 42px;
|
||||
height: 42px;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
margin-left: -21px;
|
||||
margin-top: -21px;
|
||||
z-index: 10;
|
||||
transform-origin: 50%;
|
||||
box-sizing: border-box;
|
||||
border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
|
||||
border-radius: 50%;
|
||||
border-top-color: transparent;
|
||||
}
|
||||
.swiper-slide-visible .swiper-lazy-preloader {
|
||||
animation: swiper-preloader-spin 1s infinite linear;
|
||||
}
|
||||
.swiper-lazy-preloader-white {
|
||||
--swiper-preloader-color: #fff;
|
||||
}
|
||||
.swiper-lazy-preloader-black {
|
||||
--swiper-preloader-color: #000;
|
||||
}
|
||||
@keyframes swiper-preloader-spin {
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
/* a11y */
|
||||
.swiper .swiper-notification {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
pointer-events: none;
|
||||
opacity: 0;
|
||||
z-index: -1000;
|
||||
}
|
||||
.swiper-free-mode > .swiper-wrapper {
|
||||
transition-timing-function: ease-out;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.swiper-grid > .swiper-wrapper {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.swiper-grid-column > .swiper-wrapper {
|
||||
flex-wrap: wrap;
|
||||
flex-direction: column;
|
||||
}
|
||||
.swiper-fade.swiper-free-mode .swiper-slide {
|
||||
transition-timing-function: ease-out;
|
||||
}
|
||||
.swiper-fade .swiper-slide {
|
||||
pointer-events: none;
|
||||
transition-property: opacity;
|
||||
}
|
||||
.swiper-fade .swiper-slide .swiper-slide {
|
||||
pointer-events: none;
|
||||
}
|
||||
.swiper-fade .swiper-slide-active,
|
||||
.swiper-fade .swiper-slide-active .swiper-slide-active {
|
||||
pointer-events: auto;
|
||||
}
|
||||
.swiper-cube {
|
||||
overflow: visible;
|
||||
}
|
||||
.swiper-cube .swiper-slide {
|
||||
pointer-events: none;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
z-index: 1;
|
||||
visibility: hidden;
|
||||
transform-origin: 0 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.swiper-cube .swiper-slide .swiper-slide {
|
||||
pointer-events: none;
|
||||
}
|
||||
.swiper-cube.swiper-rtl .swiper-slide {
|
||||
transform-origin: 100% 0;
|
||||
}
|
||||
.swiper-cube .swiper-slide-active,
|
||||
.swiper-cube .swiper-slide-active .swiper-slide-active {
|
||||
pointer-events: auto;
|
||||
}
|
||||
.swiper-cube .swiper-slide-active,
|
||||
.swiper-cube .swiper-slide-next,
|
||||
.swiper-cube .swiper-slide-prev,
|
||||
.swiper-cube .swiper-slide-next + .swiper-slide {
|
||||
pointer-events: auto;
|
||||
visibility: visible;
|
||||
}
|
||||
.swiper-cube .swiper-slide-shadow-top,
|
||||
.swiper-cube .swiper-slide-shadow-bottom,
|
||||
.swiper-cube .swiper-slide-shadow-left,
|
||||
.swiper-cube .swiper-slide-shadow-right {
|
||||
z-index: 0;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
}
|
||||
.swiper-cube .swiper-cube-shadow {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
opacity: 0.6;
|
||||
z-index: 0;
|
||||
}
|
||||
.swiper-cube .swiper-cube-shadow:before {
|
||||
content: '';
|
||||
background: #000;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
filter: blur(50px);
|
||||
}
|
||||
.swiper-flip {
|
||||
overflow: visible;
|
||||
}
|
||||
.swiper-flip .swiper-slide {
|
||||
pointer-events: none;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
z-index: 1;
|
||||
}
|
||||
.swiper-flip .swiper-slide .swiper-slide {
|
||||
pointer-events: none;
|
||||
}
|
||||
.swiper-flip .swiper-slide-active,
|
||||
.swiper-flip .swiper-slide-active .swiper-slide-active {
|
||||
pointer-events: auto;
|
||||
}
|
||||
.swiper-flip .swiper-slide-shadow-top,
|
||||
.swiper-flip .swiper-slide-shadow-bottom,
|
||||
.swiper-flip .swiper-slide-shadow-left,
|
||||
.swiper-flip .swiper-slide-shadow-right {
|
||||
z-index: 0;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
}
|
||||
.swiper-creative .swiper-slide {
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
overflow: hidden;
|
||||
transition-property: transform, opacity, height;
|
||||
}
|
||||
.swiper-cards {
|
||||
overflow: visible;
|
||||
}
|
||||
.swiper-cards .swiper-slide {
|
||||
transform-origin: center bottom;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
overflow: hidden;
|
||||
}
|
||||
14
themes/agico-hugo/assets/plugins/swiper/swiper.min.js
vendored
Normal file
14
themes/agico-hugo/assets/plugins/swiper/swiper.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
735
themes/agico-hugo/assets/plugins/webfont/webfont-loader-2.js
Normal file
735
themes/agico-hugo/assets/plugins/webfont/webfont-loader-2.js
Normal file
@@ -0,0 +1,735 @@
|
||||
/* Web Font Loader v1.6.28 - (c) Adobe Systems, Google. License: Apache 2.0 */
|
||||
(function () {
|
||||
function aa(a, b, c) {
|
||||
return a.call.apply(a.bind, arguments)
|
||||
}
|
||||
|
||||
function ba(a, b, c) {
|
||||
if (!a) throw Error();
|
||||
if (2 < arguments.length) {
|
||||
var d = Array.prototype.slice.call(arguments, 2);
|
||||
return function () {
|
||||
var c = Array.prototype.slice.call(arguments);
|
||||
Array.prototype.unshift.apply(c, d);
|
||||
return a.apply(b, c)
|
||||
}
|
||||
}
|
||||
return function () {
|
||||
return a.apply(b, arguments)
|
||||
}
|
||||
}
|
||||
|
||||
function p(a, b, c) {
|
||||
p = Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? aa : ba;
|
||||
return p.apply(null, arguments)
|
||||
}
|
||||
var q = Date.now || function () {
|
||||
return +new Date
|
||||
};
|
||||
|
||||
function ca(a, b) {
|
||||
this.a = a;
|
||||
this.s = b || a;
|
||||
this.c = this.s.document
|
||||
}
|
||||
var da = !!window.FontFace;
|
||||
|
||||
function t(a, b, c, d) {
|
||||
b = a.c.createElement(b);
|
||||
if (c)
|
||||
for (var e in c) c.hasOwnProperty(e) && ("style" == e ? b.style.cssText = c[e] : b.setAttribute(e, c[e]));
|
||||
d && b.appendChild(a.c.createTextNode(d));
|
||||
return b
|
||||
}
|
||||
|
||||
function u(a, b, c) {
|
||||
a = a.c.getElementsByTagName(b)[0];
|
||||
a || (a = document.documentElement);
|
||||
a.insertBefore(c, a.lastChild)
|
||||
}
|
||||
|
||||
function v(a) {
|
||||
a.parentNode && a.parentNode.removeChild(a)
|
||||
}
|
||||
|
||||
function w(a, b, c) {
|
||||
b = b || [];
|
||||
c = c || [];
|
||||
for (var d = a.className.split(/\s+/), e = 0; e < b.length; e += 1) {
|
||||
for (var f = !1, g = 0; g < d.length; g += 1)
|
||||
if (b[e] === d[g]) {
|
||||
f = !0;
|
||||
break
|
||||
} f || d.push(b[e])
|
||||
}
|
||||
b = [];
|
||||
for (e = 0; e < d.length; e += 1) {
|
||||
f = !1;
|
||||
for (g = 0; g < c.length; g += 1)
|
||||
if (d[e] === c[g]) {
|
||||
f = !0;
|
||||
break
|
||||
} f || b.push(d[e])
|
||||
}
|
||||
a.className = b.join(" ").replace(/\s+/g, " ").replace(/^\s+|\s+$/, "")
|
||||
}
|
||||
|
||||
function y(a, b) {
|
||||
for (var c = a.className.split(/\s+/), d = 0, e = c.length; d < e; d++)
|
||||
if (c[d] == b) return !0;
|
||||
return !1
|
||||
}
|
||||
|
||||
function ea(a) {
|
||||
return a.s.location.hostname || a.a.location.hostname
|
||||
}
|
||||
|
||||
function z(a, b, c) {
|
||||
function d() {
|
||||
m && e && f && (m(g), m = null)
|
||||
}
|
||||
b = t(a, "link", {
|
||||
rel: "stylesheet",
|
||||
href: b,
|
||||
media: "all"
|
||||
});
|
||||
var e = !1,
|
||||
f = !0,
|
||||
g = null,
|
||||
m = c || null;
|
||||
da ? (b.onload = function () {
|
||||
e = !0;
|
||||
d()
|
||||
}, b.onerror = function () {
|
||||
e = !0;
|
||||
g = Error("Stylesheet failed to load");
|
||||
d()
|
||||
}) : setTimeout(function () {
|
||||
e = !0;
|
||||
d()
|
||||
}, 0);
|
||||
u(a, "head", b)
|
||||
}
|
||||
|
||||
function A(a, b, c, d) {
|
||||
var e = a.c.getElementsByTagName("head")[0];
|
||||
if (e) {
|
||||
var f = t(a, "script", {
|
||||
src: b
|
||||
}),
|
||||
g = !1;
|
||||
f.onload = f.onreadystatechange = function () {
|
||||
g || this.readyState && "loaded" != this.readyState && "complete" != this.readyState || (g = !0, c && c(null), f.onload = f.onreadystatechange = null, "HEAD" == f.parentNode.tagName && e.removeChild(f))
|
||||
};
|
||||
e.appendChild(f);
|
||||
setTimeout(function () {
|
||||
g || (g = !0, c && c(Error("Script load timeout")))
|
||||
}, d || 5E3);
|
||||
return f
|
||||
}
|
||||
return null
|
||||
};
|
||||
|
||||
function B() {
|
||||
this.a = 0;
|
||||
this.c = null
|
||||
}
|
||||
|
||||
function C(a) {
|
||||
a.a++;
|
||||
return function () {
|
||||
a.a--;
|
||||
D(a)
|
||||
}
|
||||
}
|
||||
|
||||
function E(a, b) {
|
||||
a.c = b;
|
||||
D(a)
|
||||
}
|
||||
|
||||
function D(a) {
|
||||
0 == a.a && a.c && (a.c(), a.c = null)
|
||||
};
|
||||
|
||||
function F(a) {
|
||||
this.a = a || "-"
|
||||
}
|
||||
F.prototype.c = function (a) {
|
||||
for (var b = [], c = 0; c < arguments.length; c++) b.push(arguments[c].replace(/[\W_]+/g, "").toLowerCase());
|
||||
return b.join(this.a)
|
||||
};
|
||||
|
||||
function G(a, b) {
|
||||
this.c = a;
|
||||
this.f = 4;
|
||||
this.a = "n";
|
||||
var c = (b || "n4").match(/^([nio])([1-9])$/i);
|
||||
c && (this.a = c[1], this.f = parseInt(c[2], 10))
|
||||
}
|
||||
|
||||
function fa(a) {
|
||||
return H(a) + " " + (a.f + "00") + " 300px " + I(a.c)
|
||||
}
|
||||
|
||||
function I(a) {
|
||||
var b = [];
|
||||
a = a.split(/,\s*/);
|
||||
for (var c = 0; c < a.length; c++) {
|
||||
var d = a[c].replace(/['"]/g, ""); - 1 != d.indexOf(" ") || /^\d/.test(d) ? b.push("'" + d + "'") : b.push(d)
|
||||
}
|
||||
return b.join(",")
|
||||
}
|
||||
|
||||
function J(a) {
|
||||
return a.a + a.f
|
||||
}
|
||||
|
||||
function H(a) {
|
||||
var b = "normal";
|
||||
"o" === a.a ? b = "oblique" : "i" === a.a && (b = "italic");
|
||||
return b
|
||||
}
|
||||
|
||||
function ga(a) {
|
||||
var b = 4,
|
||||
c = "n",
|
||||
d = null;
|
||||
a && ((d = a.match(/(normal|oblique|italic)/i)) && d[1] && (c = d[1].substr(0, 1).toLowerCase()), (d = a.match(/([1-9]00|normal|bold)/i)) && d[1] && (/bold/i.test(d[1]) ? b = 7 : /[1-9]00/.test(d[1]) && (b = parseInt(d[1].substr(0, 1), 10))));
|
||||
return c + b
|
||||
};
|
||||
|
||||
function ha(a, b) {
|
||||
this.c = a;
|
||||
this.f = a.s.document.documentElement;
|
||||
this.h = b;
|
||||
this.a = new F("-");
|
||||
this.j = !1 !== b.events;
|
||||
this.g = !1 !== b.classes
|
||||
}
|
||||
|
||||
function ia(a) {
|
||||
a.g && w(a.f, [a.a.c("wf", "loading")]);
|
||||
K(a, "loading")
|
||||
}
|
||||
|
||||
function L(a) {
|
||||
if (a.g) {
|
||||
var b = y(a.f, a.a.c("wf", "active")),
|
||||
c = [],
|
||||
d = [a.a.c("wf", "loading")];
|
||||
b || c.push(a.a.c("wf", "inactive"));
|
||||
w(a.f, c, d)
|
||||
}
|
||||
K(a, "inactive")
|
||||
}
|
||||
|
||||
function K(a, b, c) {
|
||||
if (a.j && a.h[b])
|
||||
if (c) a.h[b](c.c, J(c));
|
||||
else a.h[b]()
|
||||
};
|
||||
|
||||
function ja() {
|
||||
this.c = {}
|
||||
}
|
||||
|
||||
function ka(a, b, c) {
|
||||
var d = [],
|
||||
e;
|
||||
for (e in b)
|
||||
if (b.hasOwnProperty(e)) {
|
||||
var f = a.c[e];
|
||||
f && d.push(f(b[e], c))
|
||||
} return d
|
||||
};
|
||||
|
||||
function M(a, b) {
|
||||
this.c = a;
|
||||
this.f = b;
|
||||
this.a = t(this.c, "span", {
|
||||
"aria-hidden": "true"
|
||||
}, this.f)
|
||||
}
|
||||
|
||||
function N(a) {
|
||||
u(a.c, "body", a.a)
|
||||
}
|
||||
|
||||
function O(a) {
|
||||
return "display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:" + I(a.c) + ";" + ("font-style:" + H(a) + ";font-weight:" + (a.f + "00") + ";")
|
||||
};
|
||||
|
||||
function P(a, b, c, d, e, f) {
|
||||
this.g = a;
|
||||
this.j = b;
|
||||
this.a = d;
|
||||
this.c = c;
|
||||
this.f = e || 3E3;
|
||||
this.h = f || void 0
|
||||
}
|
||||
P.prototype.start = function () {
|
||||
var a = this.c.s.document,
|
||||
b = this,
|
||||
c = q(),
|
||||
d = new Promise(function (d, e) {
|
||||
function f() {
|
||||
q() - c >= b.f ? e() : a.fonts.load(fa(b.a), b.h).then(function (a) {
|
||||
1 <= a.length ? d() : setTimeout(f, 25)
|
||||
}, function () {
|
||||
e()
|
||||
})
|
||||
}
|
||||
f()
|
||||
}),
|
||||
e = null,
|
||||
f = new Promise(function (a, d) {
|
||||
e = setTimeout(d, b.f)
|
||||
});
|
||||
Promise.race([f, d]).then(function () {
|
||||
e && (clearTimeout(e), e = null);
|
||||
b.g(b.a)
|
||||
}, function () {
|
||||
b.j(b.a)
|
||||
})
|
||||
};
|
||||
|
||||
function Q(a, b, c, d, e, f, g) {
|
||||
this.v = a;
|
||||
this.B = b;
|
||||
this.c = c;
|
||||
this.a = d;
|
||||
this.o = g || "BESbswy";
|
||||
this.f = {};
|
||||
this.w = e || 3E3;
|
||||
this.u = f || null;
|
||||
this.m = this.j = this.h = this.g = null;
|
||||
this.g = new M(this.c, this.o);
|
||||
this.h = new M(this.c, this.o);
|
||||
this.j = new M(this.c, this.o);
|
||||
this.m = new M(this.c, this.o);
|
||||
a = new G(this.a.c + ",serif", J(this.a));
|
||||
a = O(a);
|
||||
this.g.a.style.cssText = a;
|
||||
a = new G(this.a.c + ",sans-serif", J(this.a));
|
||||
a = O(a);
|
||||
this.h.a.style.cssText = a;
|
||||
a = new G("serif", J(this.a));
|
||||
a = O(a);
|
||||
this.j.a.style.cssText = a;
|
||||
a = new G("sans-serif", J(this.a));
|
||||
a =
|
||||
O(a);
|
||||
this.m.a.style.cssText = a;
|
||||
N(this.g);
|
||||
N(this.h);
|
||||
N(this.j);
|
||||
N(this.m)
|
||||
}
|
||||
var R = {
|
||||
D: "serif",
|
||||
C: "sans-serif"
|
||||
},
|
||||
S = null;
|
||||
|
||||
function T() {
|
||||
if (null === S) {
|
||||
var a = /AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgentData);
|
||||
S = !!a && (536 > parseInt(a[1], 10) || 536 === parseInt(a[1], 10) && 11 >= parseInt(a[2], 10))
|
||||
}
|
||||
return S
|
||||
}
|
||||
Q.prototype.start = function () {
|
||||
this.f.serif = this.j.a.offsetWidth;
|
||||
this.f["sans-serif"] = this.m.a.offsetWidth;
|
||||
this.A = q();
|
||||
U(this)
|
||||
};
|
||||
|
||||
function la(a, b, c) {
|
||||
for (var d in R)
|
||||
if (R.hasOwnProperty(d) && b === a.f[R[d]] && c === a.f[R[d]]) return !0;
|
||||
return !1
|
||||
}
|
||||
|
||||
function U(a) {
|
||||
var b = a.g.a.offsetWidth,
|
||||
c = a.h.a.offsetWidth,
|
||||
d;
|
||||
(d = b === a.f.serif && c === a.f["sans-serif"]) || (d = T() && la(a, b, c));
|
||||
d ? q() - a.A >= a.w ? T() && la(a, b, c) && (null === a.u || a.u.hasOwnProperty(a.a.c)) ? V(a, a.v) : V(a, a.B) : ma(a) : V(a, a.v)
|
||||
}
|
||||
|
||||
function ma(a) {
|
||||
setTimeout(p(function () {
|
||||
U(this)
|
||||
}, a), 50)
|
||||
}
|
||||
|
||||
function V(a, b) {
|
||||
setTimeout(p(function () {
|
||||
v(this.g.a);
|
||||
v(this.h.a);
|
||||
v(this.j.a);
|
||||
v(this.m.a);
|
||||
b(this.a)
|
||||
}, a), 0)
|
||||
};
|
||||
|
||||
function W(a, b, c) {
|
||||
this.c = a;
|
||||
this.a = b;
|
||||
this.f = 0;
|
||||
this.m = this.j = !1;
|
||||
this.o = c
|
||||
}
|
||||
var X = null;
|
||||
W.prototype.g = function (a) {
|
||||
var b = this.a;
|
||||
b.g && w(b.f, [b.a.c("wf", a.c, J(a).toString(), "active")], [b.a.c("wf", a.c, J(a).toString(), "loading"), b.a.c("wf", a.c, J(a).toString(), "inactive")]);
|
||||
K(b, "fontactive", a);
|
||||
this.m = !0;
|
||||
na(this)
|
||||
};
|
||||
W.prototype.h = function (a) {
|
||||
var b = this.a;
|
||||
if (b.g) {
|
||||
var c = y(b.f, b.a.c("wf", a.c, J(a).toString(), "active")),
|
||||
d = [],
|
||||
e = [b.a.c("wf", a.c, J(a).toString(), "loading")];
|
||||
c || d.push(b.a.c("wf", a.c, J(a).toString(), "inactive"));
|
||||
w(b.f, d, e)
|
||||
}
|
||||
K(b, "fontinactive", a);
|
||||
na(this)
|
||||
};
|
||||
|
||||
function na(a) {
|
||||
0 == --a.f && a.j && (a.m ? (a = a.a, a.g && w(a.f, [a.a.c("wf", "active")], [a.a.c("wf", "loading"), a.a.c("wf", "inactive")]), K(a, "active")) : L(a.a))
|
||||
};
|
||||
|
||||
function oa(a) {
|
||||
this.j = a;
|
||||
this.a = new ja;
|
||||
this.h = 0;
|
||||
this.f = this.g = !0
|
||||
}
|
||||
oa.prototype.load = function (a) {
|
||||
this.c = new ca(this.j, a.context || this.j);
|
||||
this.g = !1 !== a.events;
|
||||
this.f = !1 !== a.classes;
|
||||
pa(this, new ha(this.c, a), a)
|
||||
};
|
||||
|
||||
function qa(a, b, c, d, e) {
|
||||
var f = 0 == --a.h;
|
||||
(a.f || a.g) && setTimeout(function () {
|
||||
var a = e || null,
|
||||
m = d || null || {};
|
||||
if (0 === c.length && f) L(b.a);
|
||||
else {
|
||||
b.f += c.length;
|
||||
f && (b.j = f);
|
||||
var h, l = [];
|
||||
for (h = 0; h < c.length; h++) {
|
||||
var k = c[h],
|
||||
n = m[k.c],
|
||||
r = b.a,
|
||||
x = k;
|
||||
r.g && w(r.f, [r.a.c("wf", x.c, J(x).toString(), "loading")]);
|
||||
K(r, "fontloading", x);
|
||||
r = null;
|
||||
if (null === X)
|
||||
if (window.FontFace) {
|
||||
var x = /Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgentData),
|
||||
xa = /OS X.*Version\/10\..*Safari/.exec(window.navigator.userAgentData) && /Apple/.exec(window.navigator.vendor);
|
||||
X = x ? 42 < parseInt(x[1], 10) : xa ? !1 : !0
|
||||
} else X = !1;
|
||||
X ? r = new P(p(b.g, b), p(b.h, b), b.c, k, b.o, n) : r = new Q(p(b.g, b), p(b.h, b), b.c, k, b.o, a, n);
|
||||
l.push(r)
|
||||
}
|
||||
for (h = 0; h < l.length; h++) l[h].start()
|
||||
}
|
||||
}, 0)
|
||||
}
|
||||
|
||||
function pa(a, b, c) {
|
||||
var d = [],
|
||||
e = c.timeout;
|
||||
ia(b);
|
||||
var d = ka(a.a, c, a.c),
|
||||
f = new W(a.c, b, e);
|
||||
a.h = d.length;
|
||||
b = 0;
|
||||
for (c = d.length; b < c; b++) d[b].load(function (b, d, c) {
|
||||
qa(a, f, b, d, c)
|
||||
})
|
||||
};
|
||||
|
||||
function ra(a, b) {
|
||||
this.c = a;
|
||||
this.a = b
|
||||
}
|
||||
ra.prototype.load = function (a) {
|
||||
function b() {
|
||||
if (f["__mti_fntLst" + d]) {
|
||||
var c = f["__mti_fntLst" + d](),
|
||||
e = [],
|
||||
h;
|
||||
if (c)
|
||||
for (var l = 0; l < c.length; l++) {
|
||||
var k = c[l].fontfamily;
|
||||
void 0 != c[l].fontStyle && void 0 != c[l].fontWeight ? (h = c[l].fontStyle + c[l].fontWeight, e.push(new G(k, h))) : e.push(new G(k))
|
||||
}
|
||||
a(e)
|
||||
} else setTimeout(function () {
|
||||
b()
|
||||
}, 50)
|
||||
}
|
||||
var c = this,
|
||||
d = c.a.projectId,
|
||||
e = c.a.version;
|
||||
if (d) {
|
||||
var f = c.c.s;
|
||||
A(this.c, (c.a.api || "https://fast.fonts.net/jsapi") + "/" + d + ".js" + (e ? "?v=" + e : ""), function (e) {
|
||||
e ? a([]) : (f["__MonotypeConfiguration__" +
|
||||
d] = function () {
|
||||
return c.a
|
||||
}, b())
|
||||
}).id = "__MonotypeAPIScript__" + d
|
||||
} else a([])
|
||||
};
|
||||
|
||||
function sa(a, b) {
|
||||
this.c = a;
|
||||
this.a = b
|
||||
}
|
||||
sa.prototype.load = function (a) {
|
||||
var b, c, d = this.a.urls || [],
|
||||
e = this.a.families || [],
|
||||
f = this.a.testStrings || {},
|
||||
g = new B;
|
||||
b = 0;
|
||||
for (c = d.length; b < c; b++) z(this.c, d[b], C(g));
|
||||
var m = [];
|
||||
b = 0;
|
||||
for (c = e.length; b < c; b++)
|
||||
if (d = e[b].split(":"), d[1])
|
||||
for (var h = d[1].split(","), l = 0; l < h.length; l += 1) m.push(new G(d[0], h[l]));
|
||||
else m.push(new G(d[0]));
|
||||
E(g, function () {
|
||||
a(m, f)
|
||||
})
|
||||
};
|
||||
|
||||
function ta(a, b, c, d, e) {
|
||||
this.o = 2 === e ? 2 : 1;
|
||||
e = ua[this.o - 1];
|
||||
a ? this.c = a : this.c = e[0];
|
||||
this.m = e[1];
|
||||
this.a = [];
|
||||
this.f = [];
|
||||
this.j = b || "";
|
||||
this.g = c || "";
|
||||
this.h = d || ""
|
||||
}
|
||||
var ua = [
|
||||
["https://fonts.googleapis.com/css", "%7C"],
|
||||
["https://fonts.googleapis.com/css2", "&family="]
|
||||
];
|
||||
|
||||
function va(a, b) {
|
||||
for (var c = b.length, d = 0; d < c; d++) {
|
||||
var e = b[d].split(":");
|
||||
3 == e.length && a.f.push(e.pop());
|
||||
var f = "";
|
||||
2 == e.length && "" != e[1] && (f = ":");
|
||||
a.a.push(e.join(f))
|
||||
}
|
||||
}
|
||||
|
||||
function wa(a) {
|
||||
if (0 == a.a.length) throw Error("No fonts to load!");
|
||||
if (-1 != a.c.indexOf("kit=")) return a.c;
|
||||
for (var b = a.a.length, c = [], d = 0; d < b; d++) c.push(a.a[d].replace(/ /g, "+"));
|
||||
b = a.c + "?family=" + c.join(a.m);
|
||||
0 < a.f.length && (b += "&subset=" + a.f.join(","));
|
||||
0 < a.j.length && (b += "&text=" + encodeURIComponent(a.j));
|
||||
0 < a.g.length && (b += "&display=" + encodeURIComponent(a.g));
|
||||
0 < a.h.length && (b += "&effect=" + encodeURIComponent(a.h));
|
||||
return b
|
||||
};
|
||||
|
||||
function ya(a) {
|
||||
this.f = a;
|
||||
this.a = [];
|
||||
this.c = {}
|
||||
}
|
||||
var za = {
|
||||
latin: "BESbswy",
|
||||
"latin-ext": "\u00e7\u00f6\u00fc\u011f\u015f",
|
||||
cyrillic: "\u0439\u044f\u0416",
|
||||
greek: "\u03b1\u03b2\u03a3",
|
||||
khmer: "\u1780\u1781\u1782",
|
||||
Hanuman: "\u1780\u1781\u1782"
|
||||
},
|
||||
Aa = {
|
||||
thin: "1",
|
||||
extralight: "2",
|
||||
"extra-light": "2",
|
||||
ultralight: "2",
|
||||
"ultra-light": "2",
|
||||
light: "3",
|
||||
regular: "4",
|
||||
book: "4",
|
||||
medium: "5",
|
||||
"semi-bold": "6",
|
||||
semibold: "6",
|
||||
"demi-bold": "6",
|
||||
demibold: "6",
|
||||
bold: "7",
|
||||
"extra-bold": "8",
|
||||
extrabold: "8",
|
||||
"ultra-bold": "8",
|
||||
ultrabold: "8",
|
||||
black: "9",
|
||||
heavy: "9",
|
||||
l: "3",
|
||||
r: "4",
|
||||
b: "7"
|
||||
},
|
||||
Ba = {
|
||||
i: "i",
|
||||
italic: "i",
|
||||
n: "n",
|
||||
normal: "n"
|
||||
},
|
||||
Ca = /^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;
|
||||
|
||||
function Da(a) {
|
||||
for (var b = a.f.length, c = 0; c < b; c++) {
|
||||
var d = a.f[c].split(":"),
|
||||
e = d[0].replace(/\+/g, " "),
|
||||
f = ["n4"];
|
||||
if (2 <= d.length) {
|
||||
var g;
|
||||
var m = d[1];
|
||||
g = [];
|
||||
if (m)
|
||||
for (var m = m.split(","), h = m.length, l = 0; l < h; l++) {
|
||||
var k;
|
||||
k = m[l];
|
||||
if (k.match(/^[\w-]+$/)) {
|
||||
var n = Ca.exec(k.toLowerCase());
|
||||
if (null == n) k = "";
|
||||
else {
|
||||
k = n[2];
|
||||
k = null == k || "" == k ? "n" : Ba[k];
|
||||
n = n[1];
|
||||
if (null == n || "" == n) n = "4";
|
||||
else var r = Aa[n],
|
||||
n = r ? r : isNaN(n) ? "4" : n.substr(0, 1);
|
||||
k = [k, n].join("")
|
||||
}
|
||||
} else k = "";
|
||||
k && g.push(k)
|
||||
}
|
||||
0 < g.length && (f = g);
|
||||
3 == d.length && (d = d[2], g = [], d = d ? d.split(",") :
|
||||
g, 0 < d.length && (d = za[d[0]]) && (a.c[e] = d))
|
||||
}
|
||||
a.c[e] || (d = za[e]) && (a.c[e] = d);
|
||||
for (d = 0; d < f.length; d += 1) a.a.push(new G(e, f[d]))
|
||||
}
|
||||
};
|
||||
|
||||
function Ea(a, b) {
|
||||
this.c = a;
|
||||
this.a = b
|
||||
}
|
||||
var Fa = {
|
||||
Arimo: !0,
|
||||
Cousine: !0,
|
||||
Tinos: !0
|
||||
};
|
||||
Ea.prototype.load = function (a) {
|
||||
var b = new B,
|
||||
c = this.c,
|
||||
d = new ta(this.a.api, this.a.text, this.a.display, this.a.effect, this.a.version),
|
||||
e = this.a.families;
|
||||
va(d, e);
|
||||
var f = new ya(e);
|
||||
Da(f);
|
||||
z(c, wa(d), C(b));
|
||||
E(b, function () {
|
||||
a(f.a, f.c, Fa)
|
||||
})
|
||||
};
|
||||
|
||||
function Ga(a, b) {
|
||||
this.c = a;
|
||||
this.a = b
|
||||
}
|
||||
Ga.prototype.load = function (a) {
|
||||
var b = this.a.id,
|
||||
c = this.c.s;
|
||||
b ? A(this.c, (this.a.api || "https://use.typekit.net") + "/" + b + ".js", function (b) {
|
||||
if (b) a([]);
|
||||
else if (c.Typekit && c.Typekit.config && c.Typekit.config.fn) {
|
||||
b = c.Typekit.config.fn;
|
||||
for (var e = [], f = 0; f < b.length; f += 2)
|
||||
for (var g = b[f], m = b[f + 1], h = 0; h < m.length; h++) e.push(new G(g, m[h]));
|
||||
try {
|
||||
c.Typekit.load({
|
||||
events: !1,
|
||||
classes: !1,
|
||||
async: !0
|
||||
})
|
||||
} catch (l) {}
|
||||
a(e)
|
||||
}
|
||||
}, 2E3) : a([])
|
||||
};
|
||||
|
||||
function Ha(a, b) {
|
||||
this.c = a;
|
||||
this.f = b;
|
||||
this.a = []
|
||||
}
|
||||
Ha.prototype.load = function (a) {
|
||||
var b = this.f.id,
|
||||
c = this.c.s,
|
||||
d = this;
|
||||
b ? (c.__webfontfontdeckmodule__ || (c.__webfontfontdeckmodule__ = {}), c.__webfontfontdeckmodule__[b] = function (b, c) {
|
||||
for (var g = 0, m = c.fonts.length; g < m; ++g) {
|
||||
var h = c.fonts[g];
|
||||
d.a.push(new G(h.name, ga("font-weight:" + h.weight + ";font-style:" + h.style)))
|
||||
}
|
||||
a(d.a)
|
||||
}, A(this.c, (this.f.api || "https://f.fontdeck.com/s/css/js/") + ea(this.c) + "/" + b + ".js", function (b) {
|
||||
b && a([])
|
||||
})) : a([])
|
||||
};
|
||||
var Y = new oa(window);
|
||||
Y.a.c.custom = function (a, b) {
|
||||
return new sa(b, a)
|
||||
};
|
||||
Y.a.c.fontdeck = function (a, b) {
|
||||
return new Ha(b, a)
|
||||
};
|
||||
Y.a.c.monotype = function (a, b) {
|
||||
return new ra(b, a)
|
||||
};
|
||||
Y.a.c.typekit = function (a, b) {
|
||||
return new Ga(b, a)
|
||||
};
|
||||
Y.a.c.google = function (a, b) {
|
||||
return new Ea(b, a)
|
||||
};
|
||||
var Z = {
|
||||
load: p(Y.load, Y)
|
||||
};
|
||||
"function" === typeof define && define.amd ? define(function () {
|
||||
return Z
|
||||
}) : "undefined" !== typeof module && module.exports ? module.exports = Z : (window.WebFont = Z, window.WebFontConfig && Y.load(window.WebFontConfig));
|
||||
}());
|
||||
175
themes/agico-hugo/assets/scss/_buttons.scss
Executable file
175
themes/agico-hugo/assets/scss/_buttons.scss
Executable file
@@ -0,0 +1,175 @@
|
||||
.btn {
|
||||
font-size: 16px;
|
||||
//font-family: $font-primary;
|
||||
/* text-transform: capitalize; */
|
||||
padding: 14px 45px;
|
||||
border-radius: 45px;
|
||||
font-weight: 500;
|
||||
border: 2px solid;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
transition: .3s ease;
|
||||
overflow: hidden;
|
||||
text-decoration: none !important;
|
||||
|
||||
&:focus,
|
||||
&:hover {
|
||||
outline: 0;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
&:active {
|
||||
box-shadow: none;
|
||||
background: none;
|
||||
}
|
||||
|
||||
img,
|
||||
svg,
|
||||
i {
|
||||
margin-right: 10px;
|
||||
font-size: 20px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-lg {
|
||||
padding: 20px 40px;
|
||||
}
|
||||
|
||||
.btn-sm {
|
||||
padding: 10px 20px;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
border: 0;
|
||||
color: $white;
|
||||
background-color: transparent !important;
|
||||
|
||||
&:not(&[type="submit"]) {
|
||||
border: 2px solid $color-secondary !important;
|
||||
|
||||
&:hover {
|
||||
border: 2px solid $color-secondary !important;
|
||||
color: $color-primary !important;
|
||||
|
||||
&:after {
|
||||
left: 102%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 102%;
|
||||
height: 100%;
|
||||
background: $btn-gradient-primary;
|
||||
z-index: -1;
|
||||
transition: ease 0.3s;
|
||||
}
|
||||
|
||||
&.btn-dark {
|
||||
&:hover {
|
||||
color: $color-secondary !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btn-outline-primary {
|
||||
color: $color-secondary;
|
||||
border: 2px solid white !important;
|
||||
|
||||
&:hover {
|
||||
color: $white !important;
|
||||
background: none !important;
|
||||
border: 2px solid $color-secondary;
|
||||
|
||||
i {
|
||||
color: $white !important;
|
||||
}
|
||||
|
||||
&:after {
|
||||
left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: -102%;
|
||||
width: 102%;
|
||||
height: 100%;
|
||||
background: $btn-gradient-primary;
|
||||
z-index: -1;
|
||||
transition: ease 0.3s;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-white {
|
||||
background: $white !important;
|
||||
color: $color-primary !important;
|
||||
border: 1px solid $white !important;
|
||||
|
||||
&:hover {
|
||||
color: $white !important;
|
||||
|
||||
i {
|
||||
color: $white !important;
|
||||
}
|
||||
|
||||
&:after {
|
||||
left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: -102%;
|
||||
width: 102%;
|
||||
height: 100%;
|
||||
background: $color-primary !important;
|
||||
z-index: -1;
|
||||
transition: ease 0.3s;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-outline-white {
|
||||
color: $white !important;
|
||||
border: 1px solid $white !important;
|
||||
|
||||
&:hover {
|
||||
color: $color-primary !important;
|
||||
background: none !important;
|
||||
border: 2px solid $color-secondary;
|
||||
|
||||
i {
|
||||
color: $color-primary !important;
|
||||
}
|
||||
|
||||
&:after {
|
||||
left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: -102%;
|
||||
width: 102%;
|
||||
height: 100%;
|
||||
background: $white;
|
||||
z-index: -1;
|
||||
transition: ease 0.3s;
|
||||
}
|
||||
}
|
||||
869
themes/agico-hugo/assets/scss/_common.scss
Executable file
869
themes/agico-hugo/assets/scss/_common.scss
Executable file
@@ -0,0 +1,869 @@
|
||||
@keyframes fadeInUp {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(10px);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
/* Openklap-animatie */
|
||||
.product-sections {
|
||||
overflow: hidden;
|
||||
max-height: 0;
|
||||
opacity: 0;
|
||||
transition: max-height 0.45s ease, opacity 0.3s ease;
|
||||
}
|
||||
.product-sections.open {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.ml-auto {
|
||||
margin-left: auto !important;
|
||||
}
|
||||
|
||||
|
||||
:root {
|
||||
--bs-border-color: #{$border-color} !important;
|
||||
}
|
||||
|
||||
a,
|
||||
a:hover,
|
||||
a:focus {
|
||||
text-decoration: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
a,
|
||||
button,
|
||||
select {
|
||||
cursor: pointer;
|
||||
transition: 0.3s ease;
|
||||
|
||||
&:focus {
|
||||
outline: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.fas {
|
||||
font-size: 24px;
|
||||
color: $color-primary !important;
|
||||
|
||||
}
|
||||
|
||||
a.text-color,
|
||||
a.text-dark,
|
||||
a.text-light,
|
||||
a {
|
||||
&:hover {
|
||||
color: $color-primary;
|
||||
}
|
||||
}
|
||||
|
||||
section {
|
||||
overflow: hidden;
|
||||
|
||||
&.subscription {
|
||||
overflow: inherit;
|
||||
}
|
||||
}
|
||||
.modal-content {
|
||||
.modal-close {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
color: white;
|
||||
font-size: 16px;
|
||||
border-radius: 8px;
|
||||
background: $bg-secondary;
|
||||
top: -45px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border: none;
|
||||
outline: none;
|
||||
|
||||
svg {
|
||||
transition: transform 0.3s ease;
|
||||
}
|
||||
|
||||
&:hover svg {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
iframe {
|
||||
width: 900px;
|
||||
margin: auto;
|
||||
height: 400px;
|
||||
}
|
||||
|
||||
// color
|
||||
.text-color {
|
||||
color: $text-color;
|
||||
}
|
||||
.text-light {
|
||||
color: $text-light !important;
|
||||
}
|
||||
.text-dark {
|
||||
color: $text-dark !important;
|
||||
}
|
||||
.text-secondary {
|
||||
color: $color-secondary !important;
|
||||
}
|
||||
.bg-gradient-primary {
|
||||
background: $bg-gradient-primary;
|
||||
}
|
||||
.bg-gradient-secondary {
|
||||
background: $bg-gradient-secondary;
|
||||
}
|
||||
.btn-primary-gradient {
|
||||
background: $btn-gradient-primary;
|
||||
}
|
||||
.bg-gradient-purple {
|
||||
background: linear-gradient(
|
||||
180deg,
|
||||
rgb(98, 90, 255) 20%,
|
||||
rgb(176, 37, 239) 100%
|
||||
);
|
||||
}
|
||||
.border-gray {
|
||||
border-color: rgb(137, 96, 212) !important;
|
||||
}
|
||||
.bg-gray {
|
||||
background: $gray;
|
||||
}
|
||||
.bg-gray-light {
|
||||
background: #f5f6f7;
|
||||
}
|
||||
.bg-secondary {
|
||||
background: $bg-secondary !important;
|
||||
}
|
||||
.badge-light {
|
||||
background: #edeff2;
|
||||
}
|
||||
.border-color {
|
||||
border-color: $border-color !important;
|
||||
}
|
||||
.overflow-hidden {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
// shadow
|
||||
.shadow {
|
||||
box-shadow: 0px 15px 15px 0px rgba(32, 116, 149, 0.3);
|
||||
}
|
||||
|
||||
// box-shadow
|
||||
.shadow-sm {
|
||||
box-shadow: 0px 5px 15px 0px rgba(51, 77, 128, 0.12) !important;
|
||||
}
|
||||
.zindex-1 {
|
||||
z-index: 1;
|
||||
}
|
||||
.screen-reader-text {
|
||||
border: 0;
|
||||
clip: rect(1px, 1px, 1px, 1px);
|
||||
-webkit-clip-path: inset(50%);
|
||||
clip-path: inset(50%);
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute !important;
|
||||
width: 1px;
|
||||
word-wrap: normal !important;
|
||||
word-break: normal;
|
||||
}
|
||||
|
||||
/* overlay */
|
||||
.overlay {
|
||||
position: relative;
|
||||
|
||||
&::before {
|
||||
position: absolute;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
background: $black;
|
||||
content: "";
|
||||
opacity: 0.7;
|
||||
border-radius: inherit;
|
||||
}
|
||||
}
|
||||
.overlay-gradient {
|
||||
position: relative;
|
||||
|
||||
&::before {
|
||||
position: absolute;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
background-image: $bg-gradient-primary;
|
||||
content: "";
|
||||
opacity: 0.7;
|
||||
border-radius: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
/* preloader */
|
||||
.preloader {
|
||||
background-color: #0e1e2f !important;
|
||||
z-index: 99999 !important;
|
||||
img {
|
||||
max-width: 500px;
|
||||
}
|
||||
}
|
||||
|
||||
// background img
|
||||
.bg-cover {
|
||||
background-repeat: no-repeat;
|
||||
background-position: center bottom;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
// border-radius
|
||||
.rounded-xl {
|
||||
border-radius: 45px;
|
||||
}
|
||||
.rounded-lg {
|
||||
border-radius: 20px;
|
||||
}
|
||||
.rounded-sm {
|
||||
border-radius: 15px;
|
||||
}
|
||||
.rounded-xs {
|
||||
border-radius: 10px;
|
||||
}
|
||||
.rounded-top-xs {
|
||||
border-top-right-radius: 10px;
|
||||
border-top-left-radius: 10px;
|
||||
}
|
||||
.rounded-top-sm {
|
||||
border-top-right-radius: 15px;
|
||||
border-top-left-radius: 15px;
|
||||
}
|
||||
.rounded-top-lg {
|
||||
border-top-right-radius: 20px;
|
||||
border-top-left-radius: 20px;
|
||||
}
|
||||
|
||||
// font-weight
|
||||
.font-weight-medium {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
// transition
|
||||
.transition {
|
||||
transition: ease 0.3s;
|
||||
}
|
||||
|
||||
// section
|
||||
.section {
|
||||
padding-top: 110px;
|
||||
padding-bottom: 110px;
|
||||
|
||||
@include desktop {
|
||||
padding-top: 100px;
|
||||
padding-bottom: 100px;
|
||||
}
|
||||
|
||||
&-lg {
|
||||
padding-top: 250px;
|
||||
padding-bottom: 250px;
|
||||
|
||||
&-bottom {
|
||||
padding-bottom: 150px;
|
||||
|
||||
@include desktop {
|
||||
padding-bottom: 150px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&-sm {
|
||||
padding-top: 70px;
|
||||
padding-bottom: 70px;
|
||||
}
|
||||
|
||||
&-title {
|
||||
margin-bottom: 38px;
|
||||
}
|
||||
}
|
||||
.subtitle {
|
||||
/* text-transform: capitalize; */
|
||||
font-size: 18px;
|
||||
color: $text-color;
|
||||
//font-family: $font-primary;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.sticky-top {
|
||||
top: 100px;
|
||||
}
|
||||
|
||||
// pulse animtion
|
||||
.video-container {
|
||||
min-height: 400px;
|
||||
}
|
||||
|
||||
.pulse-box {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
|
||||
/* pulse in SVG */
|
||||
svg.pulse-svg {
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
svg.pulse-svg .first-circle {
|
||||
fill: $white;
|
||||
transform: scale(0.1);
|
||||
transform-origin: center center;
|
||||
animation: pulse-me 3s linear infinite;
|
||||
}
|
||||
|
||||
svg.pulse-svg .second-circle {
|
||||
fill: $white;
|
||||
transform: scale(0.1);
|
||||
transform-origin: center center;
|
||||
animation: pulse-me 3s linear infinite;
|
||||
animation-delay: 1s;
|
||||
}
|
||||
|
||||
svg.pulse-svg .third-circle {
|
||||
fill: $white;
|
||||
transform: scale(0.1);
|
||||
transform-origin: center center;
|
||||
animation: pulse-me 3s linear infinite;
|
||||
animation-delay: 2s;
|
||||
}
|
||||
|
||||
/* pulse in CSS */
|
||||
.pulse-css {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
border-radius: 15px;
|
||||
background: $white;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.pulse-css:before,
|
||||
.pulse-css:after {
|
||||
content: "";
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
border-radius: 15px;
|
||||
background-color: $white;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
margin: auto;
|
||||
transform: scale(0.5);
|
||||
transform-origin: center center;
|
||||
animation: pulse-me 3s linear infinite;
|
||||
}
|
||||
|
||||
.pulse-css:after {
|
||||
animation-delay: 2s;
|
||||
}
|
||||
|
||||
@keyframes pulse-me {
|
||||
0% {
|
||||
transform: scale(0.5);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
50% {
|
||||
opacity: 0.1;
|
||||
}
|
||||
|
||||
70% {
|
||||
opacity: 0.09;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale(3);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
// pulse animtion
|
||||
|
||||
/* social icon */
|
||||
.social-icons {
|
||||
li {
|
||||
a {
|
||||
i {
|
||||
width: 46px !important;
|
||||
padding: 13px;
|
||||
height: 46px;
|
||||
line-height: 46px;
|
||||
color: $white;
|
||||
text-align: center;
|
||||
border: 2px solid $border-color;
|
||||
display: block;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
@extend .transition;
|
||||
|
||||
&:hover {
|
||||
background-color: $color-primary;
|
||||
border: 2px solid $color-primary;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* / social icon */
|
||||
|
||||
/* list style */
|
||||
.list-styled {
|
||||
padding-left: 0;
|
||||
|
||||
li {
|
||||
position: relative;
|
||||
list-style-type: none;
|
||||
|
||||
svg {
|
||||
margin-right: 8px;
|
||||
transform: scale(0.8);
|
||||
}
|
||||
|
||||
&:hover {
|
||||
&::before {
|
||||
color: $color-primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
&.text-light {
|
||||
&::before {
|
||||
color: $text-light;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.list-hover-underline {
|
||||
li {
|
||||
a {
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.list-bordered {
|
||||
li {
|
||||
&:not(:last-child) {
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* /list style */
|
||||
|
||||
/* page title */
|
||||
.page-title {
|
||||
& > div {
|
||||
background: $color-primary;
|
||||
opacity: 0.95;
|
||||
|
||||
& > div {
|
||||
padding: 220px 0 100px;
|
||||
}
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 50px;
|
||||
}
|
||||
|
||||
p {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
.breadcrumb-item + .breadcrumb-item::before {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
/* /page title */
|
||||
|
||||
/* form style */
|
||||
input[type="search"]::-webkit-search-decoration,
|
||||
input[type="search"]::-webkit-search-cancel-button,
|
||||
input[type="search"]::-webkit-search-results-button,
|
||||
input[type="search"]::-webkit-search-results-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
.form-control {
|
||||
border: 0;
|
||||
height: 60px;
|
||||
padding: 0 25px;
|
||||
border-radius: 50px;
|
||||
|
||||
&:focus {
|
||||
outline: 0;
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
textarea.form-control {
|
||||
border-radius: 20px;
|
||||
height: 150px;
|
||||
padding: 25px;
|
||||
resize: none;
|
||||
}
|
||||
|
||||
/* /form style */
|
||||
.badge {
|
||||
margin-bottom: 20px;
|
||||
font-weight: 600;
|
||||
font-size: 15px;
|
||||
padding: 5px 10px;
|
||||
|
||||
&.added {
|
||||
background: #3778ff;
|
||||
color: $white;
|
||||
}
|
||||
|
||||
&.fixed {
|
||||
background: #f54773;
|
||||
color: $white;
|
||||
}
|
||||
|
||||
&.changed {
|
||||
background: #3aaa55;
|
||||
color: $white;
|
||||
}
|
||||
|
||||
&.depricated {
|
||||
background: #343434;
|
||||
color: $white;
|
||||
}
|
||||
|
||||
&.removed {
|
||||
background: #3bbfe4;
|
||||
color: $white;
|
||||
}
|
||||
|
||||
&.security {
|
||||
background: #f53535;
|
||||
color: $white;
|
||||
}
|
||||
|
||||
&.unreleased {
|
||||
background: #a037ff;
|
||||
color: $white;
|
||||
}
|
||||
}
|
||||
.content {
|
||||
* {
|
||||
word-break: break-word;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: underline;
|
||||
color: $color-primary;
|
||||
}
|
||||
|
||||
ol {
|
||||
padding-left: 20px;
|
||||
|
||||
li {
|
||||
margin-bottom: 6px;
|
||||
margin-left: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
padding-left: 20px;
|
||||
|
||||
li {
|
||||
margin-bottom: 6px;
|
||||
list-style-type: none;
|
||||
margin-left:30px;
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
padding-left: 0;
|
||||
margin-bottom: 20px;
|
||||
|
||||
li {
|
||||
padding-left: 20px;
|
||||
position: relative;
|
||||
|
||||
&::before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
height: 8px;
|
||||
width: 8px;
|
||||
border-radius: 50%;
|
||||
background: $color-primary;
|
||||
left: 3px;
|
||||
top: 8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
hr {
|
||||
margin: 50px 0;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
margin-bottom: 1rem;
|
||||
border: 1px solid #eeeeee;
|
||||
}
|
||||
|
||||
table td,
|
||||
table th {
|
||||
padding: 0.75rem;
|
||||
vertical-align: top;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
tr:not(:last-child) {
|
||||
border-bottom: 1px solid #eeeeee;
|
||||
}
|
||||
|
||||
th {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
thead {
|
||||
background: $gray;
|
||||
margin-bottom: 0;
|
||||
|
||||
tr {
|
||||
border-bottom: 1px solid #eeeeee;
|
||||
}
|
||||
}
|
||||
|
||||
tbody {
|
||||
background: #fff;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
font-size: 20px !important;
|
||||
color: $text-color;
|
||||
padding: 20px 40px;
|
||||
border-left: 2px solid $color-primary;
|
||||
margin: 40px 0;
|
||||
font-weight: 600;
|
||||
|
||||
p {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
pre {
|
||||
display: block;
|
||||
padding: 9.5px;
|
||||
margin: 10px 0px 10px;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
code {
|
||||
margin-bottom: 0 !important;
|
||||
font-size: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.accordion {
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
.accordion-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 1rem;
|
||||
font-size: 1.1rem;
|
||||
width: 100%;
|
||||
font-weight: 600;
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.accordion-icon {
|
||||
width: 0.78em;
|
||||
height: 0.78em;
|
||||
transform: rotate(-90deg);
|
||||
transition: transform 0.2s ease;
|
||||
}
|
||||
|
||||
.accordion-content {
|
||||
max-height: 0;
|
||||
overflow: hidden;
|
||||
padding: 0 1rem;
|
||||
}
|
||||
|
||||
.accordion.active .accordion-icon {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
.accordion.active .accordion-content {
|
||||
max-height: max-content;
|
||||
}
|
||||
|
||||
.pricing-table {
|
||||
|
||||
border-radius:24px;
|
||||
/* border:4px solid white;*/
|
||||
|
||||
p {
|
||||
margin:0;
|
||||
}
|
||||
|
||||
small {
|
||||
font-style: italic;
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
td.active {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
tbody {
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
tbody td,
|
||||
tbody th {
|
||||
border: 1px solid #efefef;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
td span {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
thead td,
|
||||
thead th {
|
||||
border-bottom-width: 1px;
|
||||
background: $color-primary;
|
||||
border-color: $color-primary;
|
||||
padding:20px;
|
||||
}
|
||||
|
||||
thead td:first-child,
|
||||
thead th:first-child,
|
||||
tr td:first-child {
|
||||
border-top-color: transparent;
|
||||
border-left-color: transparent;
|
||||
border-top-left-radius: 32px;
|
||||
}
|
||||
|
||||
thead td:last-child,
|
||||
thead th:last-child,
|
||||
tr td:last-child {
|
||||
border-top-color: transparent;
|
||||
border-right-color: transparent;
|
||||
border-top-right-radius: 32px;
|
||||
}
|
||||
|
||||
@include desktop {
|
||||
tr {
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
td,
|
||||
th {
|
||||
padding: 10px 20px;
|
||||
width: initial;
|
||||
}
|
||||
|
||||
td {
|
||||
border: none;
|
||||
border-bottom: 1px solid #eee;
|
||||
position: relative;
|
||||
padding-left: 50%;
|
||||
}
|
||||
|
||||
td:before {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
left: 20px;
|
||||
width: 45%;
|
||||
padding-right: 10px;
|
||||
white-space: nowrap;
|
||||
font-weight: bold;
|
||||
content: attr(data-label);
|
||||
}
|
||||
}
|
||||
|
||||
@include mobile {
|
||||
td {
|
||||
padding-left: 40%;
|
||||
}
|
||||
|
||||
td:before {
|
||||
width: 39%;
|
||||
}
|
||||
.pricing-table td { padding-left: 45%; } /* iets compacter op hele kleine schermen */
|
||||
.pricing-table td:before { width: 42%; }
|
||||
}
|
||||
}
|
||||
|
||||
.content img {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
.px-6 {
|
||||
padding-left: ($spacer * 4) !important;
|
||||
padding-right: ($spacer * 4) !important;
|
||||
}
|
||||
|
||||
.img-product {
|
||||
max-height:80px;
|
||||
object-fit: contain;
|
||||
object-position: left;
|
||||
}
|
||||
|
||||
.g-8 {
|
||||
--bs-gutter-x: 3rem;
|
||||
}
|
||||
|
||||
sup, .footnote-ref {
|
||||
font-size: 0.8em;
|
||||
//vertical-align: super;
|
||||
}
|
||||
.footnote-ref::before {
|
||||
content: "[";
|
||||
}
|
||||
.footnote-ref::after {
|
||||
content: "]";
|
||||
}
|
||||
|
||||
.footnotes ol li,
|
||||
.footnotes ol li p {
|
||||
font-size: 0.85em;
|
||||
line-height: 0.9em;
|
||||
}
|
||||
|
||||
.cookie-box {
|
||||
color: $text-dark;
|
||||
}
|
||||
|
||||
.fa-xs {
|
||||
font-size: 1em;
|
||||
padding-right:4px;
|
||||
}
|
||||
34
themes/agico-hugo/assets/scss/_mixins.scss
Executable file
34
themes/agico-hugo/assets/scss/_mixins.scss
Executable file
@@ -0,0 +1,34 @@
|
||||
@mixin mobile-xs{
|
||||
@media(max-width:400px){
|
||||
@content;
|
||||
}
|
||||
}
|
||||
@mixin mobile{
|
||||
@media(max-width:575px){
|
||||
@content;
|
||||
}
|
||||
}
|
||||
@mixin tablet{
|
||||
@media(max-width:767px){
|
||||
@content;
|
||||
}
|
||||
}
|
||||
@mixin desktop{
|
||||
@media(max-width:991px){
|
||||
@content;
|
||||
}
|
||||
}
|
||||
@mixin desktop-lg{
|
||||
@media(max-width:1200px){
|
||||
@content;
|
||||
}
|
||||
}
|
||||
@mixin desktop-xl{
|
||||
@media(max-width:1650px){
|
||||
@content;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin size($size){
|
||||
width: $size; height: $size;
|
||||
}
|
||||
162
themes/agico-hugo/assets/scss/_typography.scss
Executable file
162
themes/agico-hugo/assets/scss/_typography.scss
Executable file
@@ -0,0 +1,162 @@
|
||||
/* 400 normal */
|
||||
@font-face {
|
||||
font-family: "Work Sans";
|
||||
src: url("/fonts/WorkSans-Regular.woff2") format("woff2");
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
/* 400 italic */
|
||||
@font-face {
|
||||
font-family: "Work Sans";
|
||||
src: url("/fonts/WorkSans-Italic.woff2") format("woff2");
|
||||
font-weight: 400;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
/* 600 (Semibold) */
|
||||
@font-face {
|
||||
font-family: "Work Sans";
|
||||
src: url("/fonts/WorkSans-SemiBold.woff2") format("woff2");
|
||||
font-weight: 600;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
/* 800 (ExtraBold) */
|
||||
@font-face {
|
||||
font-family: "Work Sans";
|
||||
src: url("/fonts/WorkSans-ExtraBold.woff2") format("woff2");
|
||||
font-weight: 800;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
:root {
|
||||
--font-primary: "Work Sans", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
|
||||
}
|
||||
|
||||
|
||||
body {
|
||||
line-height: 1.6;
|
||||
//font-family: $font_secondary;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
font-size: 16px;
|
||||
color: $text-color;
|
||||
font-family: var(--font-primary);
|
||||
font-synthesis: weight style;
|
||||
}
|
||||
|
||||
p,
|
||||
.paragraph {
|
||||
font-weight: 400;
|
||||
color: $text-color;
|
||||
font-size: 16px;
|
||||
line-height: 1.6;
|
||||
transition: 0.3s;
|
||||
//font-family: $font_secondary;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
color: $text-dark;
|
||||
//font-family: $font-primary;
|
||||
/* text-transform: capitalize; */
|
||||
font-weight: 800;
|
||||
line-height: 1.2;
|
||||
transition: 0.3s ease;
|
||||
}
|
||||
|
||||
h6 {
|
||||
/* padding-top:10px; */
|
||||
}
|
||||
|
||||
h1,
|
||||
.h1 {
|
||||
font-size: 40px;
|
||||
}
|
||||
|
||||
// List in descending order to prevent extra sort function
|
||||
$type-levels: 6, 5, 4, 3, 2;
|
||||
|
||||
@each $level in $type-levels {
|
||||
$font-size: $font-size * $font-scale;
|
||||
|
||||
// Output heading styles
|
||||
h#{$level},
|
||||
.h#{$level} {
|
||||
font-size: $font-size;
|
||||
line-height: calc(2px + 2ex + 2px);
|
||||
margin-bottom: 0.65em;
|
||||
|
||||
// responsive for h1, h2, h3, h4
|
||||
&:not(h5, .h5, h6, .h6) {
|
||||
@include desktop {
|
||||
font-size: calc(#{$font-size} * 0.9);
|
||||
margin-bottom: 0.55em;
|
||||
}
|
||||
|
||||
@include tablet {
|
||||
font-size: calc(#{$font-size} * 0.8);
|
||||
}
|
||||
}
|
||||
|
||||
// responsive for h5, h6
|
||||
@include desktop {
|
||||
font-size: calc(#{$font-size} * 0.95);
|
||||
margin-bottom: 0.55em;
|
||||
}
|
||||
|
||||
@include tablet {
|
||||
font-size: calc(#{$font-size} * 0.9);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.text-white a,
|
||||
.text-white a:hover,
|
||||
.text-white a:focus {
|
||||
color: $white;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
input[type="checkbox"] {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border: 2px solid #ccc;
|
||||
border-radius: 4px;
|
||||
background: #fff;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
transition: all 0.15s ease-in-out;
|
||||
border-radius: 20px;
|
||||
}
|
||||
|
||||
input[type="checkbox"]:hover,
|
||||
input[type="checkbox"]:focus {
|
||||
border-color: #207495;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
input[type="checkbox"]:checked {
|
||||
background-color: #207495;
|
||||
border-color: #207495;
|
||||
}
|
||||
|
||||
input[type="checkbox"]:checked::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 1px;
|
||||
left: 4px;
|
||||
width: 8px;
|
||||
height: 12px;
|
||||
border: solid #fff;
|
||||
border-width: 0 2px 2px 0;
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
47
themes/agico-hugo/assets/scss/style.scss
Executable file
47
themes/agico-hugo/assets/scss/style.scss
Executable file
@@ -0,0 +1,47 @@
|
||||
// Color Variables
|
||||
{{ with site.Params.variables }}
|
||||
$color-primary: {{.color_primary}};
|
||||
$color-secondary: {{.color_secondary}};
|
||||
$bg-secondary: {{.bg_secondary}};
|
||||
|
||||
$text-dark: {{.text_dark}};
|
||||
$text-light: {{.text_light}};
|
||||
$text-color: {{.text_color}};
|
||||
$border-color: {{.border_color}};
|
||||
$border-light: {{.border_light}};
|
||||
|
||||
$bg-gradient-primary: {{.bg_gradient_primary}};
|
||||
$bg-gradient-secondary: {{.bg_gradient_secondary}};
|
||||
$btn-gradient-primary: {{.btn_gradient_primary}};
|
||||
|
||||
$black: {{.black}};
|
||||
$white: {{.white}};
|
||||
$gray: {{.gray}};
|
||||
|
||||
// Font Variables
|
||||
$font-size: {{.font_size | default "16px"}};
|
||||
$font-scale: {{.font_scale | default "1.25"}};
|
||||
$font-primary: '{{ replaceRE ":[ital,]*wght@[0-9,;]+" "" .font_primary }}', {{.font_primary_type}};
|
||||
$font-secondary: '{{ replaceRE ":[ital,]*wght@[0-9,;]+" "" .font_secondary }}', {{.font_secondary_type}};
|
||||
$font-icon: '{{.font_icon}}';
|
||||
{{ end }}
|
||||
|
||||
@import 'templates/bootstrap';
|
||||
@import 'mixins';
|
||||
@import 'typography';
|
||||
@import 'buttons';
|
||||
@import 'common';
|
||||
@import 'templates/navigation';
|
||||
@import 'templates/banner';
|
||||
@import 'templates/homepage';
|
||||
@import 'templates/card';
|
||||
@import 'templates/team';
|
||||
@import 'templates/blog';
|
||||
@import 'templates/footer';
|
||||
@import 'preloader';
|
||||
@import 'accordion';
|
||||
@import 'notice';
|
||||
|
||||
{{ if site.Params.image_gallery }}
|
||||
@import 'gallery';
|
||||
{{ end }}
|
||||
62
themes/agico-hugo/assets/scss/templates/_banner.scss
Executable file
62
themes/agico-hugo/assets/scss/templates/_banner.scss
Executable file
@@ -0,0 +1,62 @@
|
||||
// banner css start
|
||||
section.hero-area {
|
||||
padding: 200px 0 175px;
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
background-position: bottom center !important;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
|
||||
@include mobile-xs {
|
||||
padding: 190px 0 100px;
|
||||
}
|
||||
|
||||
@include desktop-xl {
|
||||
padding: 190px 0 155px;
|
||||
}
|
||||
|
||||
p {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
h1 {
|
||||
line-height: 68px;
|
||||
z-index: 1;
|
||||
font-size: 50px;
|
||||
|
||||
@include mobile-xs {
|
||||
font-size: 50px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.watermark {
|
||||
position: absolute;
|
||||
opacity: 0.07;
|
||||
top: 20px;
|
||||
left: 0;
|
||||
font-size: 200px;
|
||||
font-weight: 600;
|
||||
z-index: -1;
|
||||
color: inherit;
|
||||
|
||||
@include mobile {
|
||||
top: 0;
|
||||
font-size: 120px;
|
||||
}
|
||||
}
|
||||
|
||||
.watermark-sm {
|
||||
position: absolute;
|
||||
opacity: 0.07;
|
||||
top: -40px;
|
||||
left: 0;
|
||||
font-size: 110px;
|
||||
font-weight: 600;
|
||||
color: inherit;
|
||||
|
||||
@include mobile {
|
||||
top: 0;
|
||||
font-size: 100px;
|
||||
}
|
||||
}
|
||||
97
themes/agico-hugo/assets/scss/templates/_blog.scss
Executable file
97
themes/agico-hugo/assets/scss/templates/_blog.scss
Executable file
@@ -0,0 +1,97 @@
|
||||
/* sidebar */
|
||||
.widget {
|
||||
padding: 40px 30px 0;
|
||||
ul {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
.search-btn {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
background: transparent;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.tag-list {
|
||||
li {
|
||||
a {
|
||||
padding: 12px 15px;
|
||||
display: block;
|
||||
border-radius: 40px;
|
||||
|
||||
&:hover {
|
||||
background: $btn-gradient-primary;
|
||||
color: $white !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* sidebar */
|
||||
|
||||
.pagination .page-item .page-link {
|
||||
background: transparent;
|
||||
border: none;
|
||||
color: $color-primary;
|
||||
font-family: "Open Sans", sans-serif;
|
||||
font-weight: 600;
|
||||
transition: .3s ease;
|
||||
height: 50px;
|
||||
text-align: center;
|
||||
border-radius: 10px;
|
||||
margin: 10px;
|
||||
width: 50px;
|
||||
line-height: 33px;
|
||||
box-shadow: 0px 5px 15px 0px rgba(51, 77, 128, 0.12)
|
||||
}
|
||||
|
||||
.pagination .page-item.active .page-link {
|
||||
background: $btn-gradient-primary;
|
||||
color: $white;
|
||||
box-shadow: 0px 15px 15px 0px rgba(8, 18, 109, 0.1)
|
||||
}
|
||||
|
||||
.pagination .page-item .page-link:hover {
|
||||
box-shadow: 0px 15px 15px 0px rgba(8, 18, 109, 0.1)
|
||||
}
|
||||
|
||||
/* blog single */
|
||||
|
||||
blockquote {
|
||||
box-shadow: inset 0px 7px 0px 0px rgba(255, 255, 255, 0.596);
|
||||
padding: 34px 40px 37px 40px;
|
||||
background-image: $bg-gradient-secondary;
|
||||
border-radius: 10px;
|
||||
margin: 40px 0;
|
||||
|
||||
p {
|
||||
position: relative;
|
||||
font-style: italic;
|
||||
color: $white;
|
||||
}
|
||||
|
||||
h6 {
|
||||
color: $white;
|
||||
}
|
||||
}
|
||||
|
||||
.article {
|
||||
display: flex;
|
||||
|
||||
img {
|
||||
height: 75px;
|
||||
width: 75px;
|
||||
object-fit: cover;
|
||||
}
|
||||
}
|
||||
|
||||
form {
|
||||
textarea {
|
||||
height: 180px;
|
||||
}
|
||||
}
|
||||
|
||||
/* /blog single */
|
||||
53
themes/agico-hugo/assets/scss/templates/_bootstrap.scss
Normal file
53
themes/agico-hugo/assets/scss/templates/_bootstrap.scss
Normal file
@@ -0,0 +1,53 @@
|
||||
// Bootstrap 5.3.0
|
||||
|
||||
@import "../bootstrap/mixins/banner";
|
||||
@include bsBanner("");
|
||||
|
||||
// scss-docs-start import-stack
|
||||
// Configuration
|
||||
@import "../bootstrap/functions";
|
||||
@import "../bootstrap/variables";
|
||||
@import "../bootstrap/variables-dark";
|
||||
@import "../bootstrap/maps";
|
||||
@import "../bootstrap/mixins";
|
||||
@import "../bootstrap/utilities";
|
||||
|
||||
// Layout & components
|
||||
@import "../bootstrap/root";
|
||||
@import "../bootstrap/reboot";
|
||||
@import "../bootstrap/type";
|
||||
@import "../bootstrap/images";
|
||||
@import "../bootstrap/containers";
|
||||
@import "../bootstrap/grid";
|
||||
@import "../bootstrap/tables";
|
||||
@import "../bootstrap/forms";
|
||||
@import "../bootstrap/buttons";
|
||||
@import "../bootstrap/transitions";
|
||||
@import "../bootstrap/dropdown";
|
||||
// @import "../bootstrap/button-group";
|
||||
@import "../bootstrap/nav";
|
||||
@import "../bootstrap/navbar";
|
||||
@import "../bootstrap/card";
|
||||
@import "../bootstrap/accordion";
|
||||
@import "../bootstrap/breadcrumb";
|
||||
@import "../bootstrap/pagination";
|
||||
// @import "../bootstrap/badge";
|
||||
// @import "../bootstrap/alert";
|
||||
// @import "../bootstrap/progress";
|
||||
// @import "../bootstrap/list-group";
|
||||
// @import "../bootstrap/close";
|
||||
// @import "../bootstrap/toasts";
|
||||
@import "../bootstrap/modal";
|
||||
// @import "../bootstrap/tooltip";
|
||||
// @import "../bootstrap/popover";
|
||||
// @import "../bootstrap/carousel";
|
||||
// @import "../bootstrap/spinners";
|
||||
// @import "../bootstrap/offcanvas";
|
||||
// @import "../bootstrap/placeholders";
|
||||
|
||||
// Helpers
|
||||
@import "../bootstrap/helpers";
|
||||
|
||||
// Utilities
|
||||
@import "../bootstrap/utilities/api";
|
||||
// scss-docs-end import-stack
|
||||
226
themes/agico-hugo/assets/scss/templates/_card.scss
Executable file
226
themes/agico-hugo/assets/scss/templates/_card.scss
Executable file
@@ -0,0 +1,226 @@
|
||||
.card{
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.card-img-sm {
|
||||
max-width: 60px;
|
||||
max-height: 60px;
|
||||
}
|
||||
|
||||
.card-date {
|
||||
padding-left: 40px;
|
||||
position: relative;
|
||||
|
||||
&::before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
height: 1px;
|
||||
width: 30px;
|
||||
background: $text-color;
|
||||
left: 0;
|
||||
top: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.card-active{
|
||||
background: $bg-gradient-primary;
|
||||
*{
|
||||
color: $white;
|
||||
}
|
||||
}
|
||||
|
||||
.hover-bg-primary {
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: inherit;
|
||||
@extend .transition;
|
||||
background: $bg-gradient-primary;
|
||||
z-index: -1;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.btn {
|
||||
transition: .3s ease;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: transparent;
|
||||
&:before {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
* {
|
||||
color: $white !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.card-border-bottom {
|
||||
&:hover {
|
||||
&:after {
|
||||
width: 94%;
|
||||
border-radius: 0 0 20px 20px;
|
||||
}
|
||||
}
|
||||
|
||||
&:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
width: 170px;
|
||||
height: 4px;
|
||||
left: 50%;
|
||||
bottom: 0;
|
||||
transform: translateX(-50%);
|
||||
border-radius: 45px;
|
||||
background: $bg-gradient-secondary;
|
||||
@extend .transition;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-quote {
|
||||
border: 4px solid #e5e6e8;
|
||||
height: 40px;
|
||||
padding: 8px;
|
||||
border-radius: 10px;
|
||||
font-size: 20px;
|
||||
color: $color-primary;
|
||||
}
|
||||
|
||||
.icon {
|
||||
font-size: 25px;
|
||||
}
|
||||
|
||||
.icon-lg {
|
||||
font-size: 50px;
|
||||
}
|
||||
|
||||
.icon-bg-circle {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
top: -20px;
|
||||
left: 15px;
|
||||
border-radius: 50%;
|
||||
background: inherit;
|
||||
opacity: .1;
|
||||
z-index: -1;
|
||||
}
|
||||
&::before{
|
||||
z-index: 1;
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-bg-square {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: -55px;
|
||||
left: 73%;
|
||||
width: 75px;
|
||||
height: 75px;
|
||||
transform: rotate(50deg) scale(0.8) skew(-1deg, -15deg) translateX(16px) translateY(97px);
|
||||
background: #f5f6f7;
|
||||
z-index: -1;
|
||||
@extend .rounded-sm;
|
||||
}
|
||||
|
||||
&::before {
|
||||
z-index: 1;
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-primary {
|
||||
color: #207495;
|
||||
}
|
||||
|
||||
.icon-yellow{
|
||||
color: #f6a622;
|
||||
}
|
||||
|
||||
.icon-purple{
|
||||
color: #7952f5;
|
||||
}
|
||||
|
||||
.icon-cyan{
|
||||
color: #02d0a1;
|
||||
}
|
||||
|
||||
.icon-red {
|
||||
color: #ff4949;
|
||||
}
|
||||
|
||||
.icon-orange{
|
||||
color: #ff7c17;
|
||||
}
|
||||
|
||||
.icon-green{
|
||||
color: #66cc33;
|
||||
}
|
||||
|
||||
.icon-blue{
|
||||
color: #3682ff;
|
||||
}
|
||||
|
||||
.icon-bg-primary{
|
||||
&::after{
|
||||
background: #207495;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-bg-yellow{
|
||||
&::after{
|
||||
background: #f6a622;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-bg-purple{
|
||||
&::after{
|
||||
background: #7952f5;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-bg-cyan{
|
||||
&::after{
|
||||
background: #02d0a1;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-bg-red{
|
||||
&::after{
|
||||
background: #ff4949;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-bg-green{
|
||||
&::after{
|
||||
background: #66cc33;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-bg-orange{
|
||||
&::after{
|
||||
background: #ff7c17;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-bg-blue{
|
||||
&::after{
|
||||
background: #3682ff;
|
||||
}
|
||||
}
|
||||
95
themes/agico-hugo/assets/scss/templates/_footer.scss
Executable file
95
themes/agico-hugo/assets/scss/templates/_footer.scss
Executable file
@@ -0,0 +1,95 @@
|
||||
footer {
|
||||
&>div:first-child {
|
||||
/* border-bottom: 1px solid $border-light; */
|
||||
|
||||
}
|
||||
}
|
||||
.copyright {
|
||||
a {
|
||||
color: $text-light;
|
||||
|
||||
&:hover {
|
||||
color: $color-primary;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* subscription */
|
||||
.subscription {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
|
||||
@include desktop {
|
||||
background: $bg-gradient-secondary;
|
||||
position: static;
|
||||
}
|
||||
|
||||
&.bg-white {
|
||||
background: none !important;
|
||||
|
||||
.subscription-wrapper {
|
||||
&::before {
|
||||
background: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
@include desktop {
|
||||
background: $white;
|
||||
}
|
||||
|
||||
.form-control {
|
||||
border: 1px solid #ebebeb !important;
|
||||
}
|
||||
}
|
||||
|
||||
&-wrapper {
|
||||
position: relative;
|
||||
top: -40px;
|
||||
|
||||
@include desktop {
|
||||
top: 0;
|
||||
padding: 50px 0;
|
||||
}
|
||||
|
||||
&::before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
border-radius: 24px;
|
||||
border: 4px solid white;
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
left: 0;
|
||||
background: $bg-gradient-secondary;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
@extend .shadow;
|
||||
|
||||
@include desktop {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.form-control {
|
||||
height: 60px;
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
border-radius: 45px;
|
||||
|
||||
&:focus {
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
outline: 0;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
&::placeholder {
|
||||
color: $gray;
|
||||
}
|
||||
|
||||
&.text-white {
|
||||
|
||||
&::placeholder {
|
||||
color: $white;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
74
themes/agico-hugo/assets/scss/templates/_homepage.scss
Executable file
74
themes/agico-hugo/assets/scss/templates/_homepage.scss
Executable file
@@ -0,0 +1,74 @@
|
||||
// video css start
|
||||
.video-thumb {
|
||||
min-height: 400px;
|
||||
}
|
||||
|
||||
// testimonial css start
|
||||
.swiper {
|
||||
padding: 0px 20px;
|
||||
|
||||
@include mobile-xs {
|
||||
padding: 0px 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.bg-shape-triangles {
|
||||
position: relative;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
z-index: -1;
|
||||
}
|
||||
}
|
||||
|
||||
// testimonial css end
|
||||
|
||||
// pricing css end
|
||||
|
||||
|
||||
.floating-video {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
|
||||
.play-icon {
|
||||
font-size: 18px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
text-align: center;
|
||||
line-height: 90px;
|
||||
background: $white;
|
||||
display: inline-block;
|
||||
border-radius: 50%;
|
||||
border: none;
|
||||
outline: none;
|
||||
box-shadow: none;
|
||||
|
||||
.fa-play {
|
||||
z-index: 1;
|
||||
margin-left: 5px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.pulse-svg {
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-center {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
214
themes/agico-hugo/assets/scss/templates/_navigation.scss
Executable file
214
themes/agico-hugo/assets/scss/templates/_navigation.scss
Executable file
@@ -0,0 +1,214 @@
|
||||
.navigation {
|
||||
transition: none;
|
||||
|
||||
background: $bg-gradient-secondary;
|
||||
|
||||
@include desktop {
|
||||
background: $bg-gradient-secondary;
|
||||
padding: 15px 0;
|
||||
}
|
||||
|
||||
&.nav-bg {
|
||||
background: $bg-gradient-secondary;
|
||||
padding: 15px 0;
|
||||
}
|
||||
|
||||
&.navigation-white {
|
||||
&.nav-bg {
|
||||
background: $white;
|
||||
box-shadow: 0px 10px 20px 0px rgba(0, 141, 236, 0.1);
|
||||
|
||||
.btn {
|
||||
color: $color-primary !important;
|
||||
|
||||
&:hover {
|
||||
color: $white !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include desktop {
|
||||
background: $white;
|
||||
|
||||
.btn {
|
||||
color: $color-primary !important;
|
||||
|
||||
&:hover {
|
||||
color: $white !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.dropdown {
|
||||
&-menu {
|
||||
background: $white;
|
||||
}
|
||||
|
||||
&-item {
|
||||
color: $text-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.navbar {
|
||||
.navbar-toggler {
|
||||
&[aria-expanded="true"] {
|
||||
.fa-times {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.fa-bars {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.fa-times,
|
||||
.fa-bars {
|
||||
color: $white !important;
|
||||
font-size: 25px;
|
||||
}
|
||||
|
||||
.fa-times {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&:focus {
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
.nav-item {
|
||||
|
||||
.nav-link {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
padding: 20px 22px;
|
||||
//font-family: $font-primary;
|
||||
transition: all ease 0.3s;
|
||||
|
||||
@include desktop-lg {
|
||||
padding: 20px 15px;
|
||||
}
|
||||
|
||||
@include desktop {
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
&.active {
|
||||
color: $white;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: $white !important;
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.dropdown {
|
||||
&:hover {
|
||||
.dropdown-menu {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
transform: scaleX(1);
|
||||
}
|
||||
}
|
||||
|
||||
&-menu {
|
||||
border: 0;
|
||||
top: 50px;
|
||||
opacity: 0;
|
||||
left: -20px;
|
||||
padding: 15px;
|
||||
display: block;
|
||||
border-radius: 0;
|
||||
visibility: hidden;
|
||||
border-radius: 10px;
|
||||
transition: .3s ease;
|
||||
margin: 0px;
|
||||
transform: scale(.8);
|
||||
background: $bg-gradient-secondary;
|
||||
box-shadow: 0px 3px 9px 0px rgba(0, 0, 0, 0.12);
|
||||
border: 1px solid white;
|
||||
|
||||
@include desktop {
|
||||
display: none;
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
transform: scale(1);
|
||||
transform-origin: unset;
|
||||
}
|
||||
|
||||
&.show {
|
||||
visibility: hidden;
|
||||
|
||||
@include desktop {
|
||||
visibility: visible;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&-item {
|
||||
position: relative;
|
||||
color: $white;
|
||||
transition: .2s ease;
|
||||
//font-family: $font-primary;
|
||||
|
||||
@include desktop {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
&:not(:last-child) {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: $white !important;
|
||||
text-decoration: underline;
|
||||
background: transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#langDropdown {
|
||||
background: transparent;
|
||||
border: none;
|
||||
color: $white;
|
||||
font-size: 16px;
|
||||
border-radius: 50px;
|
||||
appearance: none;
|
||||
padding: 12px;
|
||||
width: auto !important;
|
||||
min-width: 0 !important;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
option {
|
||||
color: black;
|
||||
min-width: 0;
|
||||
}
|
||||
&:hover {
|
||||
color:$white !important;
|
||||
}
|
||||
}
|
||||
|
||||
.dropdown-menu-lang {
|
||||
min-width: 0 !important;
|
||||
width: auto;
|
||||
white-space: nowrap;
|
||||
padding: 4px;
|
||||
background: $white !important;
|
||||
appearance: none;
|
||||
--bs-dropdown-min-width: 0;
|
||||
--bs-dropdown-link-active-bg: #79ACBF; /* background of selected item */
|
||||
--bs-dropdown-link-active-color: #fff; /* text color of selected item */
|
||||
}
|
||||
|
||||
.navbar .dropdown > .dropdown-menu.dropdown-menu-lang {
|
||||
width: max-content !important;
|
||||
min-width: 0 !important;
|
||||
}
|
||||
73
themes/agico-hugo/assets/scss/templates/_team.scss
Executable file
73
themes/agico-hugo/assets/scss/templates/_team.scss
Executable file
@@ -0,0 +1,73 @@
|
||||
.team-member {
|
||||
position: relative;
|
||||
|
||||
&:hover {
|
||||
.team-member-content {
|
||||
&::before {
|
||||
height: 100%;
|
||||
transition: .3s ease;
|
||||
}
|
||||
}
|
||||
|
||||
.team-member-name,
|
||||
.team-member-designation {
|
||||
transform: translateY(0);
|
||||
opacity: 1;
|
||||
transition-delay: .1s;
|
||||
}
|
||||
|
||||
.team-member-social {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
bottom: 0;
|
||||
transition-delay: .4s;
|
||||
}
|
||||
}
|
||||
|
||||
&-content {
|
||||
position: absolute;
|
||||
height: 32%;
|
||||
width: 80%;
|
||||
left: 10%;
|
||||
bottom: 10%;
|
||||
z-index: 1;
|
||||
|
||||
&::before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
height: 0;
|
||||
width: 100%;
|
||||
transition: .5s ease;
|
||||
background: $bg-gradient-primary;
|
||||
bottom: 0;
|
||||
border-radius: 10px;
|
||||
left: 0;
|
||||
z-index: -1;
|
||||
}
|
||||
}
|
||||
|
||||
&-name {
|
||||
transform: translateY(100px);
|
||||
opacity: 0;
|
||||
transition: .4s ease;
|
||||
transition-delay: .0s;
|
||||
}
|
||||
|
||||
&-designation {
|
||||
transform: translateY(100px);
|
||||
opacity: 0;
|
||||
transition: .4s ease;
|
||||
transition-delay: .0s;
|
||||
}
|
||||
|
||||
&-social {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: -10%;
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
transition: .3s ease;
|
||||
transition-delay: .0s;
|
||||
}
|
||||
}
|
||||
BIN
themes/agico-hugo/layouts/.DS_Store
vendored
Normal file
BIN
themes/agico-hugo/layouts/.DS_Store
vendored
Normal file
Binary file not shown.
182
themes/agico-hugo/layouts/404.html
Executable file
182
themes/agico-hugo/layouts/404.html
Executable file
@@ -0,0 +1,182 @@
|
||||
{{ define "main" }}
|
||||
|
||||
<section class="pt-0 section mb-5">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12 text-center">
|
||||
|
||||
<svg width="549" height="501" viewBox="0 0 549 501" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g opacity="0.3">
|
||||
<path d="M16.9221 500.063C8.34526 500.063 1.29317 493.456 0.721375 484.942C-1.81992 446.061 -1.24813 361.181 65.8421 355.146C166.668 346.061 132.233 236.721 261.967 231.194C442.589 223.507 402.818 342.693 469.908 357.242C552.818 375.222 549.26 440.152 548.625 484.18C548.498 493.011 541.255 500.063 532.424 500.063H16.9221Z" fill="#B5DFEA"/>
|
||||
<path opacity="0.5" d="M548.625 484.18C548.498 493.011 541.255 500.063 532.424 500.063H497.481C498.18 456.099 500.785 392.312 418.765 374.587C351.674 360.038 391.446 240.787 210.76 248.538C204.533 248.792 198.752 249.301 193.225 250C209.552 239.707 231.09 232.528 261.967 231.194C442.589 223.507 402.818 342.693 469.908 357.242C552.818 375.222 549.26 440.152 548.625 484.18V484.18Z" fill="#90CEDD"/>
|
||||
</g>
|
||||
<path d="M185.474 0V208.132H182.615V0H185.474Z" fill="#79C9E8"/>
|
||||
<path d="M390.048 0V240.089H387.189V0H390.048Z" fill="#79C9E8"/>
|
||||
<path d="M404.279 244.408L388.396 380.114C387.38 389.135 379.184 395.616 370.099 394.599L157.964 369.821C148.879 368.741 142.399 360.546 143.479 351.524L159.298 215.819C160.379 206.797 168.574 200.317 177.659 201.333L389.731 226.111C398.816 227.191 405.296 235.387 404.279 244.408V244.408Z" fill="#D7F0F9"/>
|
||||
<path d="M157.71 229.288L159.298 215.819C160.378 206.797 168.574 200.317 177.659 201.333L389.73 226.111C398.815 227.191 405.296 235.387 404.279 244.408L402.691 257.877L157.71 229.288Z" fill="#CEEBF5"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M192.081 311.435L218.955 264.04C220.671 260.991 224.038 259.275 227.532 259.72C232.297 260.228 235.664 264.548 235.156 269.313L229.502 317.28H229.756C233.059 317.662 235.41 320.648 235.029 323.951C234.648 327.255 231.662 329.606 228.358 329.224H228.167L227.087 337.928C226.706 341.486 223.466 344.028 219.908 343.646C216.35 343.202 213.809 339.961 214.19 336.404L215.207 327.7L195.893 325.413C192.589 325.031 190.175 322.045 190.556 318.742L191.064 314.358C191.192 313.341 191.509 312.325 192.081 311.435V311.435ZM216.732 314.93L220.162 285.26C220.226 285.006 219.908 284.942 219.845 285.133L203.962 313.151C203.644 313.659 203.962 314.294 204.533 314.358L215.842 315.629C216.287 315.692 216.668 315.374 216.732 314.93V314.93Z" fill="url(#paint0_linear_108_821)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M310.696 325.285L337.634 277.89C339.349 274.84 342.716 273.125 346.147 273.57C350.976 274.078 354.343 278.398 353.771 283.163L348.18 331.13H348.434C351.738 331.511 354.089 334.497 353.708 337.801C353.326 341.105 350.34 343.455 347.037 343.074H346.783L345.766 351.778C345.385 355.336 342.145 357.877 338.587 357.496C335.029 357.051 332.488 353.875 332.869 350.253L333.885 341.549L314.508 339.262C311.204 338.881 308.854 335.895 309.235 332.591L309.743 328.207C309.87 327.191 310.188 326.174 310.696 325.285ZM335.41 328.779L338.841 299.11C338.905 298.855 338.587 298.792 338.523 298.983L322.64 327C322.323 327.509 322.64 328.144 323.212 328.207L334.521 329.478C334.965 329.542 335.347 329.224 335.41 328.779V328.779Z" fill="url(#paint1_linear_108_821)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M257.392 283.545C258.917 270.139 266.859 263.341 279.819 264.802C292.716 266.327 298.879 274.777 297.291 288.182L292.208 331.702C290.683 345.107 282.742 351.905 269.781 350.444C256.884 348.919 250.721 340.47 252.31 327.064L257.392 283.545ZM265.334 329.415C264.635 335.387 267.049 337.992 271.179 338.5C275.372 338.945 278.294 336.975 278.993 331.003L284.266 285.832C284.965 279.86 282.615 277.255 278.421 276.81C274.228 276.302 271.306 278.271 270.607 284.243L265.334 329.415Z" fill="url(#paint2_linear_108_821)"/>
|
||||
<path d="M182.742 217.075C182.424 219.553 180.264 221.268 177.786 221.014C175.372 220.697 173.657 218.473 173.911 216.059C174.228 213.644 176.388 211.866 178.866 212.183C181.28 212.437 182.996 214.661 182.742 217.075V217.075Z" fill="#FA5F57"/>
|
||||
<path d="M204.025 219.554C203.707 222.032 201.547 223.747 199.069 223.493C196.655 223.175 194.94 220.951 195.194 218.537C195.448 216.123 197.672 214.344 200.149 214.662C202.564 214.916 204.279 217.14 204.025 219.554V219.554Z" fill="#FCBC2E"/>
|
||||
<path d="M226.071 222.158C225.817 224.572 223.593 226.351 221.179 226.034C218.701 225.78 216.986 223.556 217.24 221.142C217.557 218.664 219.718 216.949 222.195 217.203C224.61 217.52 226.388 219.744 226.071 222.158V222.158Z" fill="#28C840"/>
|
||||
<path d="M167.684 376.811C167.684 376.811 161.013 424.079 160.505 428.844C159.996 433.545 146.718 493.393 146.718 493.393H137.379C137.379 493.393 138.777 416.963 138.332 405.337C137.887 392.376 140.746 379.67 140.746 379.67L167.684 376.811Z" fill="#00668E"/>
|
||||
<path d="M175.943 376.809C175.943 376.809 180.708 424.077 181.344 428.842C181.979 433.544 183.694 493.391 183.694 493.391H174.355C174.355 493.391 156.375 415.691 152.754 404.128C149.069 392.502 146.973 376.174 146.973 376.174L175.943 376.809Z" fill="url(#paint3_linear_108_821)"/>
|
||||
<path d="M182.805 493.393C186.68 493.964 190.873 496.315 193.478 498.03C194.304 498.602 193.923 499.936 192.906 499.936H175.117V493.393H182.805Z" fill="url(#paint4_linear_108_821)"/>
|
||||
<path d="M145.575 493.393C149.451 493.964 153.58 496.315 156.185 498.03C157.074 498.602 156.63 499.936 155.613 499.936H137.888V493.393H145.575Z" fill="url(#paint5_linear_108_821)"/>
|
||||
<path d="M165.651 307.687C165.651 307.687 168.573 322.173 154.787 316.518C140.937 310.864 149.514 295.171 151.801 293.202C155.232 290.216 161.458 290.915 161.458 290.915C161.458 290.915 163.618 289.326 169.018 290.025C176.07 290.915 169.908 300.191 169.908 300.191L165.651 307.687Z" fill="#00668E"/>
|
||||
<path d="M171.814 291.423C169.082 291.042 162.347 290.47 160.314 295.68C160.314 295.68 155.041 293.583 152.817 298.094C150.657 302.605 152.055 318.424 165.206 314.739C164.063 317.344 161.267 319.187 154.787 316.518C140.937 310.864 149.514 295.171 151.801 293.202C155.232 290.216 161.458 290.915 161.458 290.915C161.458 290.915 163.618 289.326 169.018 290.025C170.479 290.216 171.305 290.724 171.814 291.423V291.423Z" fill="#05556D"/>
|
||||
<path d="M169.908 300.189C169.908 300.189 171.496 304.065 171.75 309.465C172.004 314.929 165.397 317.597 165.397 317.597V321.282H154.787V316.517C159.298 316.708 159.997 310.863 159.997 310.863C157.71 310.609 156.82 306.543 158.154 304.7C159.552 302.921 161.331 304.7 161.331 304.7C166.286 304.256 169.908 300.189 169.908 300.189V300.189Z" fill="#F98D3D"/>
|
||||
<path d="M159.044 316.328C162.856 318.425 165.397 317.599 165.397 317.599V321.284H163.872C163.809 320.267 163.999 319.568 162.983 319.124C161.268 318.425 159.044 316.328 159.044 316.328V316.328Z" fill="#ED701B"/>
|
||||
<path d="M163.11 299.81C161.013 299.746 159.997 299.555 159.615 299.301C159.425 299.111 159.488 298.73 159.806 298.666L161.077 298.475C159.615 297.522 158.535 296.569 158.98 295.489C159.615 293.838 165.143 296.061 165.143 296.061L163.11 299.81Z" fill="#F98D3D"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M204.851 312.707C201.992 315.947 193.987 326.112 177.278 339.327L177.786 385.642L177.532 385.706C167.049 387.93 147.29 386.341 141.128 385.769C139.921 385.642 139.222 385.579 139.222 385.579L139.285 385.325L139.222 385.388L137.125 382.275L117.938 354.067C117.938 354.067 129.311 336.214 136.045 328.463C143.542 319.886 153.008 321.03 153.008 321.03L166.223 321.093C167.24 321.093 168.256 320.903 169.209 320.458C173.529 318.489 186.236 312.644 187.252 311.754C188.968 310.293 162.919 300.191 162.919 300.191L165.27 295.871C165.27 295.871 193.987 302.097 204.533 309.848C205.423 310.547 205.613 311.881 204.851 312.707V312.707ZM140.429 369.124L142.208 344.791L132.36 355.846L138.269 368.87L140.175 372.999L140.429 369.124Z" fill="#FFBF4D"/>
|
||||
<path d="M138.269 368.869L140.175 372.999L139.285 385.324L139.222 385.388L137.125 382.275L138.269 368.869Z" fill="#EFAA3A"/>
|
||||
<g style="mix-blend-mode:multiply" opacity="0.3">
|
||||
<path d="M204.533 309.848C205.423 310.547 205.613 311.881 204.851 312.707C201.992 315.947 193.987 326.112 177.278 339.327L177.786 385.642L177.532 385.705C175.372 386.15 172.894 386.468 170.162 386.595C169.654 379.924 170.353 369.568 171.052 357.56C171.497 350.445 171.052 338.945 172.831 337.675C191.319 324.27 204.533 309.848 204.533 309.848Z" fill="#F98D2B"/>
|
||||
</g>
|
||||
<path d="M183.695 493.393H180.581C179.946 467.091 170.162 386.595 170.162 386.595L176.897 385.896C178.294 399.874 180.836 425.414 181.344 428.844C181.979 433.546 183.695 493.393 183.695 493.393V493.393Z" fill="#00668E"/>
|
||||
<path d="M83.568 471.791C82.4879 470.139 81.9161 464.422 82.3609 457.306C82.8056 450.19 81.662 445.489 71.878 431.957C62.1576 418.488 67.8755 384.18 67.939 386.023C68.0025 387.865 86.8717 415.756 89.2859 426.81C91.7001 437.929 86.7446 447.713 84.8386 457.878C82.9327 468.106 85.7916 470.775 85.7916 470.775L83.568 471.791Z" fill="#79C9E8"/>
|
||||
<path d="M80.3273 425.286C70.7974 409.276 67.9385 386.023 67.9385 386.023C68.002 387.866 86.8711 415.757 89.2854 426.811C91.6996 437.929 86.7441 447.713 84.8381 457.879C83.8216 463.406 84.1392 466.71 84.711 468.552C84.3934 469.06 84.1392 469.187 84.0122 468.933C82.1697 466.201 82.8686 454.829 84.0122 450.255C85.1558 445.744 87.1888 436.722 80.3273 425.286V425.286Z" fill="#49B4D6"/>
|
||||
<path d="M89.2224 470.075C89.2224 470.075 83.6951 456.225 93.0979 444.281C102.437 432.274 117.431 416.899 117.748 410.863C117.748 410.863 121.624 439.771 109.426 447.903C97.1639 456.098 88.6506 457.433 90.7472 470.012L89.2224 470.075Z" fill="#79C9E8"/>
|
||||
<path d="M117.749 410.863C117.749 410.863 121.624 439.771 109.426 447.903C97.355 456.035 88.8416 457.369 90.6841 469.567C90.2394 469.44 89.9217 469.186 89.7946 468.741C87.698 463.468 88.7781 452.032 102.438 442.121C116.034 432.21 117.749 410.863 117.749 410.863Z" fill="#49B4D6"/>
|
||||
<path d="M78.104 470.457C78.104 470.457 78.231 465.565 76.198 459.72C74.165 453.875 51.9286 445.997 49.8321 433.926C47.7355 421.854 61.3314 405.336 61.3314 405.336C58.9172 407.433 60.0608 430.177 64.0633 434.434C71.7507 442.82 80.0099 447.267 80.9629 455.145C81.9159 463.023 80.137 470.393 80.137 470.393L78.104 470.457Z" fill="#79C9E8"/>
|
||||
<path d="M61.077 405.654C58.9804 409.022 60.1875 430.305 64.063 434.434C71.7504 442.821 80.0096 447.268 80.9626 455.146C81.2803 458.005 81.2803 460.8 81.0897 463.215L79.3108 468.742C79.3108 468.742 82.8051 454.701 71.814 447.967C56.8838 438.755 52.246 424.015 56.7568 411.817C58.7263 408.704 60.5052 406.417 61.077 405.654V405.654Z" fill="#49B4D6"/>
|
||||
<path d="M61.0771 405.654C61.2677 405.463 61.3313 405.336 61.3313 405.336C61.2466 405.421 61.1619 405.527 61.0771 405.654Z" fill="#49B4D6"/>
|
||||
<path d="M92.0811 469.442C92.0811 469.442 95.2577 457.624 103.136 456.036C111.077 454.448 120.099 442.758 120.607 440.471C120.607 440.471 119.273 462.453 92.0811 469.442V469.442Z" fill="#79C9E8"/>
|
||||
<path d="M102.691 459.912C97.8627 462.326 95.8297 465.63 95.1309 468.552C119.337 460.801 120.607 440.471 120.607 440.471C120.48 440.915 120.099 441.741 119.4 442.758C116.986 446.951 111.268 455.655 102.691 459.912V459.912Z" fill="#49B4D6"/>
|
||||
<path d="M104.279 495.934C103.898 498.285 101.865 500 99.5141 500H77.5319C75.1812 500 73.1482 498.285 72.767 495.934L67.875 465.121H109.171L104.279 495.934Z" fill="#FFBF4D"/>
|
||||
<path d="M68.7009 470.204L67.875 465.121H109.171L108.345 470.204H68.7009Z" fill="#FF9F50"/>
|
||||
<path d="M109.172 465.121L104.28 495.934C103.898 498.285 101.865 500 99.5147 500H89.4766C91.8908 500 93.8603 498.285 94.2415 495.934L99.1335 465.121H109.172Z" fill="#FF9F50"/>
|
||||
<path d="M393.924 410.102V448.03H207.329V410.102H393.924Z" fill="#FFBF4D"/>
|
||||
<g style="mix-blend-mode:multiply" opacity="0.3">
|
||||
<path d="M393.924 410.102V419.314H207.329V410.102H393.924Z" fill="#F98D2B"/>
|
||||
</g>
|
||||
<path d="M223.529 410.102H240.62L236.045 419.314H218.955L223.529 410.102Z" fill="#F77E2D"/>
|
||||
<path d="M261.903 410.102H278.994L274.419 419.314H257.393L261.903 410.102Z" fill="#F77E2D"/>
|
||||
<path d="M300.277 410.102H317.304L312.793 419.314H295.767L300.277 410.102Z" fill="#F77E2D"/>
|
||||
<path d="M338.65 410.102H355.677L351.103 419.314H334.14L338.65 410.102Z" fill="#F77E2D"/>
|
||||
<path d="M393.924 410.102V410.356L389.477 419.314H372.514L377.024 410.102H393.924Z" fill="#F77E2D"/>
|
||||
<path d="M243.733 499.935H230.582V448.029H243.733V499.935Z" fill="#79C9E8"/>
|
||||
<path d="M243.733 499.935H240.747V448.029H243.733V499.935Z" fill="#49B4D6"/>
|
||||
<path d="M371.751 499.935H358.6V448.029H371.751V499.935Z" fill="#79C9E8"/>
|
||||
<path d="M371.751 499.935H367.876V448.029H371.751V499.935Z" fill="#49B4D6"/>
|
||||
<path d="M243.733 454.51H230.582V448.029H243.733V454.51Z" fill="#49B4D6"/>
|
||||
<path d="M371.751 454.51H358.6V448.029H371.751V454.51Z" fill="#49B4D6"/>
|
||||
<path d="M243.733 410.038H230.582V404.193H243.733V410.038Z" fill="#79C9E8"/>
|
||||
<path d="M243.733 410.038H240.747V404.193H243.733V410.038Z" fill="#49B4D6"/>
|
||||
<path d="M371.751 410.038H358.6V404.193H371.751V410.038Z" fill="#79C9E8"/>
|
||||
<path d="M371.751 410.038H367.876V404.193H371.751V410.038Z" fill="#49B4D6"/>
|
||||
<path d="M243.733 410.037H230.582V409.338H243.733V410.037Z" fill="#49B4D6"/>
|
||||
<path d="M371.751 410.037H358.6V409.338H371.751V410.037Z" fill="#49B4D6"/>
|
||||
<path d="M240.62 410.102L221.751 448.03H207.329V442.821L223.53 410.102H240.62Z" fill="url(#paint6_linear_108_821)"/>
|
||||
<path d="M278.993 410.102L260.124 448.03H243.098L261.903 410.102H278.993Z" fill="url(#paint7_linear_108_821)"/>
|
||||
<path d="M317.304 410.102L298.498 448.03H281.472L300.277 410.102H317.304Z" fill="url(#paint8_linear_108_821)"/>
|
||||
<path d="M355.677 410.102L336.871 448.03H319.845L338.65 410.102H355.677Z" fill="url(#paint9_linear_108_821)"/>
|
||||
<path d="M393.924 410.356L375.245 448.03H358.219L377.024 410.102L393.924 410.356Z" fill="url(#paint10_linear_108_821)"/>
|
||||
<path d="M240.62 410.102L236.045 419.314H218.955L223.529 410.102H240.62Z" fill="#E19917"/>
|
||||
<path d="M278.994 410.102L274.419 419.314H257.393L261.903 410.102H278.994Z" fill="#E19917"/>
|
||||
<path d="M317.303 410.102L312.792 419.314H295.766L300.276 410.102H317.303Z" fill="#E19917"/>
|
||||
<path d="M355.677 410.102L351.103 419.314H334.14L338.65 410.102H355.677Z" fill="#E19917"/>
|
||||
<path d="M393.923 410.356L389.476 419.314H372.513L377.023 410.102L393.923 410.356Z" fill="#E19917"/>
|
||||
<path style="mix-blend-mode:overlay" opacity="0.5" d="M390.747 445.488H212.539V426.492H390.747V445.488Z" fill="url(#paint11_linear_108_821)"/>
|
||||
<path d="M236.808 407.687C230.328 407.687 225.055 402.413 225.055 395.933C225.055 389.453 230.328 384.18 236.808 384.18C243.288 384.18 248.498 389.453 248.498 395.933C248.498 402.413 243.288 407.687 236.808 407.687Z" fill="#FFBF4D"/>
|
||||
<path d="M236.808 401.269C233.886 401.269 231.472 398.855 231.472 395.932C231.472 393.01 233.886 390.596 236.808 390.596C239.731 390.596 242.082 393.01 242.082 395.932C242.082 398.855 239.731 401.269 236.808 401.269Z" fill="url(#paint12_linear_108_821)"/>
|
||||
<path d="M365.08 407.687C358.599 407.687 353.326 402.413 353.326 395.933C353.326 389.453 358.599 384.18 365.08 384.18C371.56 384.18 376.833 389.453 376.833 395.933C376.833 402.413 371.56 407.687 365.08 407.687Z" fill="#FFBF4D"/>
|
||||
<path d="M365.08 401.269C362.157 401.269 359.743 398.855 359.743 395.932C359.743 393.01 362.157 390.596 365.08 390.596C368.002 390.596 370.417 393.01 370.417 395.932C370.417 398.855 368.002 401.269 365.08 401.269Z" fill="url(#paint13_linear_108_821)"/>
|
||||
<path d="M464.635 495.87H405.232L414.318 473.888V473.824L417.939 464.929L418.955 462.515L420.607 458.576L420.925 457.75L424.61 448.856L425.245 447.267L431.725 431.511C432.933 428.652 436.935 428.652 438.079 431.511L444.559 447.267L445.258 448.856L448.879 457.75L449.26 458.576L450.912 462.515L451.865 464.929L455.55 473.824V473.888L464.635 495.87Z" fill="#FFBF4D"/>
|
||||
<g style="mix-blend-mode:multiply" opacity="0.3">
|
||||
<path d="M460.76 486.467L464.635 495.87H405.232L409.108 486.467H460.76Z" fill="#F98D2B"/>
|
||||
</g>
|
||||
<path d="M468.511 499.873H400.468V490.279H468.511V499.873Z" fill="#79C9E8"/>
|
||||
<path d="M468.511 490.279V499.873H453.835V490.279H468.511Z" fill="#49B4D6"/>
|
||||
<g style="mix-blend-mode:multiply" opacity="0.3">
|
||||
<path d="M462.285 490.279H453.898L447.164 473.888L443.479 464.993L442.462 462.515L440.811 458.576L440.493 457.75L436.872 448.856L436.173 447.267L430.709 433.989L431.725 431.511C432.933 428.652 436.935 428.652 438.079 431.511L444.559 447.267L445.258 448.856L448.879 457.75L449.26 458.576L450.912 462.515L451.865 464.993L455.55 473.888L462.285 490.279Z" fill="#F98D2B"/>
|
||||
</g>
|
||||
<path d="M448.879 457.75H420.925L424.61 448.855H445.258L448.879 457.75Z" fill="url(#paint14_linear_108_821)"/>
|
||||
<path d="M455.55 473.824V473.888H414.317V473.824L417.939 464.93H451.865L455.55 473.824Z" fill="url(#paint15_linear_108_821)"/>
|
||||
<path d="M448.879 457.75H440.492L436.871 448.855H445.257L448.879 457.75Z" fill="#E19917"/>
|
||||
<path d="M455.55 473.824V473.888H447.163V473.824L443.479 464.93H451.865L455.55 473.824Z" fill="#E19917"/>
|
||||
<path d="M19.3999 279.795C14.2538 279.795 10.1242 275.475 10.3783 270.329C10.3783 270.287 10.3995 270.223 10.4419 270.138C11.0772 260.672 18.8281 253.112 28.2945 252.667C31.9793 252.54 35.4101 253.366 38.3961 255.018C38.3538 254.594 38.3326 254.149 38.3326 253.684C38.3326 243.264 46.7824 234.814 57.1382 234.814C67.0492 234.814 75.1178 242.438 75.9438 252.095C76.325 252.053 76.7273 252.032 77.1509 252.032C86.9349 252.032 94.8764 259.973 94.8764 269.757C94.8764 270.604 94.8129 271.409 94.6858 272.172C94.114 276.555 90.2386 279.795 85.7913 279.795H19.3999Z" fill="#D7F0F9"/>
|
||||
<path d="M441.827 293.71C429.184 293.71 426.579 275.476 438.841 272.363C440.62 271.855 442.462 271.664 444.368 271.664C447.799 271.664 451.039 272.426 453.962 273.824C455.55 262.007 465.588 252.922 477.85 252.922C489.794 252.922 499.705 261.626 501.547 273.062C503.835 272.299 506.249 271.918 508.727 271.918C509.108 271.918 509.489 271.918 509.87 271.918C523.911 272.617 523.149 293.71 509.108 293.71H441.827Z" fill="#D7F0F9"/>
|
||||
<path d="M273.402 189.708C260.759 189.708 258.154 171.474 270.416 168.361C272.195 167.853 274.038 167.662 276.007 167.662C279.438 167.662 282.678 168.424 285.537 169.822C287.125 158.005 297.163 148.92 309.425 148.92C321.369 148.92 331.28 157.624 333.123 169.06C335.41 168.297 337.824 167.916 340.302 167.916C340.683 167.916 341.064 167.937 341.445 167.98C355.486 168.615 354.66 189.708 340.683 189.708H273.402Z" fill="#D7F0F9"/>
|
||||
<path d="M117.43 228.717C98.8785 228.717 83.8213 213.66 83.8213 195.109C83.8213 176.557 98.8785 161.5 117.43 161.5C135.981 161.5 151.039 176.557 151.039 195.109C151.039 213.66 135.981 228.717 117.43 228.717Z" fill="#FFBF4D"/>
|
||||
<path d="M151.039 195.109C151.039 213.66 135.982 228.717 117.43 228.717C110.632 228.717 104.279 226.684 99.0059 223.253C99.0906 223.253 99.1753 223.253 99.26 223.253C117.811 223.253 132.869 208.196 132.869 189.645C132.869 177.891 126.833 167.536 117.684 161.5C136.109 161.691 151.039 176.684 151.039 195.109V195.109Z" fill="#FF9F50"/>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear_108_821" x1="212.862" y1="259.65" x2="212.862" y2="343.684" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#2CCDAA"/>
|
||||
<stop offset="1" stop-color="#2AACEB"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint1_linear_108_821" x1="331.514" y1="273.5" x2="331.514" y2="357.534" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#2CCDAA"/>
|
||||
<stop offset="1" stop-color="#2AACEB"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint2_linear_108_821" x1="274.8" y1="264.607" x2="274.8" y2="350.639" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#2CCDAA"/>
|
||||
<stop offset="1" stop-color="#2AACEB"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint3_linear_108_821" x1="165.334" y1="376.174" x2="165.334" y2="493.391" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#00668E"/>
|
||||
<stop offset="1" stop-color="#2D88AC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint4_linear_108_821" x1="184.523" y1="493.393" x2="184.523" y2="499.936" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#2D5FFC"/>
|
||||
<stop offset="1" stop-color="#00B1ED"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint5_linear_108_821" x1="147.275" y1="493.393" x2="147.275" y2="499.936" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#2D5FFC"/>
|
||||
<stop offset="1" stop-color="#00B1ED"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint6_linear_108_821" x1="223.975" y1="410.102" x2="223.975" y2="448.03" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FDA53A"/>
|
||||
<stop offset="1" stop-color="#FDA53A"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint7_linear_108_821" x1="261.046" y1="410.102" x2="261.046" y2="448.03" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FDA53A"/>
|
||||
<stop offset="1" stop-color="#FDA53A"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint8_linear_108_821" x1="299.388" y1="410.102" x2="299.388" y2="448.03" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FDA53A"/>
|
||||
<stop offset="1" stop-color="#FDA53A"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint9_linear_108_821" x1="337.761" y1="410.102" x2="337.761" y2="448.03" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FDA53A"/>
|
||||
<stop offset="1" stop-color="#FDA53A"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint10_linear_108_821" x1="376.071" y1="410.102" x2="376.071" y2="448.03" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FDA53A"/>
|
||||
<stop offset="1" stop-color="#FDA53A"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint11_linear_108_821" x1="209.998" y1="459.148" x2="209.998" y2="428.589" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="white"/>
|
||||
<stop offset="1" stop-color="#FEFEFE" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint12_linear_108_821" x1="236.777" y1="390.596" x2="236.777" y2="401.269" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FDA53A"/>
|
||||
<stop offset="1" stop-color="#FDA53A"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint13_linear_108_821" x1="365.08" y1="390.596" x2="365.08" y2="401.269" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FDA53A"/>
|
||||
<stop offset="1" stop-color="#FDA53A"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint14_linear_108_821" x1="434.902" y1="448.855" x2="434.902" y2="457.75" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FDA53A"/>
|
||||
<stop offset="1" stop-color="#FDA53A"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint15_linear_108_821" x1="434.934" y1="464.93" x2="434.934" y2="473.888" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FDA53A"/>
|
||||
<stop offset="1" stop-color="#FDA53A"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
||||
|
||||
<div class="block">
|
||||
<a href="{{site.BaseURL | relLangURL }}" class="btn btn-primary mt-5">Back to Home</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ end }}
|
||||
95
themes/agico-hugo/layouts/_default/about.html
Normal file
95
themes/agico-hugo/layouts/_default/about.html
Normal file
@@ -0,0 +1,95 @@
|
||||
{{ define "main" }}
|
||||
|
||||
{{"<!-- overons -->" | safeHTML }}
|
||||
{{ with .Params.about }}
|
||||
{{ if .enable }}
|
||||
<section class="section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<!-- <div class="col-md-6 pe-lg-4 mb-4 mb-md-0">
|
||||
<div class="position-relative" data-aos="fade-right">
|
||||
{{ partial "image.html" (dict "Src" .video_bg_image "Alt" "videoThumbBg" "Class" `rounded-sm` ) }}
|
||||
{{ if and .video_thumbnail }}
|
||||
<div class="floating-video {{ if .video_link }}overlay{{end}} rounded-sm">
|
||||
{{ partial "image.html" (dict "Src" .video_thumbnail "Alt" "video-thumb" "Class" `rounded-sm` ) }}
|
||||
{{ if .video_link }}
|
||||
<div class="pulse-container">
|
||||
<div class="pulse-box">
|
||||
<button class="play-icon icon-center" video-url="{{.video_link}}" data-bs-toggle="modal"
|
||||
data-bs-target="#videoModal" aria-label="open video modal">
|
||||
<i class="fa fa-play text-secondary fs-5"></i>
|
||||
<svg class="pulse-svg icon-center" viewBox="0 0 50 50" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<circle class="circle first-circle" fill="#fff" cx="25" cy="25" r="25"></circle>
|
||||
<circle class="circle second-circle" fill="#fff" cx="25" cy="25" r="25"></circle>
|
||||
<circle class="circle third-circle" fill="#fff" cx="25" cy="25" r="25"></circle>
|
||||
<circle class="circle" fill="#fff" cx="25" cy="25" r="25"></circle>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<div class="col-md-6 align-self-center ps-lg-4">
|
||||
<h2 class="section-title" data-aos="fade-up" data-aos-delay="200">{{ .title }}</h2>
|
||||
<p class="subtitle" data-aos="fade-up" data-aos-delay="400">{{ .subtitle }}</p>
|
||||
<p data-aos="fade-up" data-aos-delay="600">{{ .content | markdownify }}</p>
|
||||
{{ if .button.enable }}
|
||||
{{ with .button }}
|
||||
<a class="btn btn-primary btn-dark" href="{{ .link | absLangURL }}" data-aos="fade-up" data-aos-delay="800">{{
|
||||
.label
|
||||
}}</a>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" tabindex="-1" id="videoModal">
|
||||
<div class="modal-dialog modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<button class="modal-close" data-bs-dismiss="modal" aria-label="close modal"><i class="fa fa-times"></i></button>
|
||||
<iframe class="" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" type="text/html"
|
||||
src="">
|
||||
</iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{"<!-- overons -->" | safeHTML }}
|
||||
|
||||
{{"<!-- counter -->" | safeHTML }}
|
||||
{{ with .Params.funfacts }}
|
||||
{{ if .enable }}
|
||||
<section class="bg-light py-5">
|
||||
<div class="container">
|
||||
<div class="row justify-content-around gy-4">
|
||||
{{ range .funfact_item }}
|
||||
<div class="col-sm-6 col-md-4 col-lg-3 mb-4 mb-md-0 text-center">
|
||||
<p class="h2 fw-light text-dark"><span class="counter" data-counter-time="2500">{{ .count }}</span>+</p>
|
||||
<h6 class="text-dark fw-normal">{{ .name }}</h6>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{"<!-- counter -->" | safeHTML }}
|
||||
|
||||
{{ if .Params.service.enable }}
|
||||
{{ with site.GetPage (string .Params.service.section)}}
|
||||
{{ partial "components/services.html" . }}
|
||||
<div class="section pt-0"></div>
|
||||
{{ end }}
|
||||
{{else}}
|
||||
<div class="section-lg-bottom"></div>
|
||||
{{ end }}
|
||||
|
||||
{{ end }}
|
||||
54
themes/agico-hugo/layouts/_default/baseof.html
Executable file
54
themes/agico-hugo/layouts/_default/baseof.html
Executable file
@@ -0,0 +1,54 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ site.LanguageCode | default `en-US` }}"
|
||||
lang="{{ with .Site.LanguageCode }}{{ . }}{{ else }}en-US{{ end }}" itemscope itemtype=" http://schema.org/WebPage">
|
||||
|
||||
<head>
|
||||
<!-- head (don't cache it) -->
|
||||
{{ partial "essential/head.html" . }}
|
||||
|
||||
|
||||
<!-- cache partial only in production -->
|
||||
{{ if hugo.IsProduction }}
|
||||
{{ partialCached "essential/style.html" . }}
|
||||
{{ else }}
|
||||
{{ partial "essential/style.html" . }}
|
||||
{{ end }}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{{ partial "page-transition.html" . }}
|
||||
|
||||
<!-- cache partial only in production -->
|
||||
{{ if hugo.IsProduction }}
|
||||
{{ partialCached "preloader.html" . }}
|
||||
{{ else }}
|
||||
{{ partial "preloader.html" . }}
|
||||
{{ end }}
|
||||
|
||||
{{ if not .IsHome }}
|
||||
{{ partial "components/page-header.html" . }}
|
||||
{{ end }}
|
||||
|
||||
|
||||
<!-- header (don't cache it) -->
|
||||
{{ partial "essential/header.html" . }}
|
||||
|
||||
|
||||
<main>
|
||||
{{ block "main" . }}{{ end }}
|
||||
</main>
|
||||
|
||||
<!-- cache partial only in production -->
|
||||
{{ if hugo.IsProduction }}
|
||||
|
||||
{{ partialCached "components/subscription.html" . }}
|
||||
{{ partialCached "essential/footer.html" . }}
|
||||
{{ partialCached "essential/script.html" . }}
|
||||
{{ else }}
|
||||
{{ partial "components/subscription.html" . }}
|
||||
{{ partial "essential/footer.html" . }}
|
||||
{{ partial "essential/script.html" . }}
|
||||
{{ end }}
|
||||
</body>
|
||||
|
||||
</html>
|
||||
100
themes/agico-hugo/layouts/_default/contact.html
Normal file
100
themes/agico-hugo/layouts/_default/contact.html
Normal file
@@ -0,0 +1,100 @@
|
||||
{{ define "main" }}
|
||||
|
||||
<!--
|
||||
<section class="section">
|
||||
<div class="container">
|
||||
<div class="row justify-content-between">
|
||||
{{ with site.Params.google_map }}
|
||||
{{ if .enable }}
|
||||
<div class="col-lg-8 mb-5 mb-lg-0 overflow-hidden">
|
||||
<iframe class="rounded-3" style="min-height:100%;width:100%;" frameborder="0" src="{{.embed_url}}"></iframe>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
<div class="col-lg-4">
|
||||
<div class="p-5 rounded-xs shadow">
|
||||
<h3 class="text-dark border-bottom mb-5 pb-4">{{ i18n "keep_in_touch" }}</h3>
|
||||
<ul class="list-unstyled">
|
||||
{{ with site.Params.contact_info.mobile }}
|
||||
<li class="d-flex mb-4" data-aos="fade-up" data-aos-delay="100">
|
||||
<i class="fa fa-phone icon-primary"></i>
|
||||
<div class="ps-3">
|
||||
<h6 class="text-dark">Mobile</h6>
|
||||
<p>{{ . | markdownify }}</p>
|
||||
</div>
|
||||
</li>
|
||||
{{ end }}
|
||||
|
||||
{{ with site.Params.contact_info.email }}
|
||||
<li class="d-flex mb-4" data-aos="fade-up" data-aos-delay="100">
|
||||
<i class="fas fa-envelope icon-primary"></i>
|
||||
<div class="ps-3">
|
||||
<h6 class="text-dark">Email</h6>
|
||||
<div class="content">{{ . | markdownify }}</div>
|
||||
</div>
|
||||
</li>
|
||||
{{ end }}
|
||||
|
||||
{{ with site.Params.contact_info.address }}
|
||||
<li class="d-flex mb-4" data-aos="fade-up" data-aos-delay="100">
|
||||
<i class="fas fa-map icon-primary"></i>
|
||||
<div class="ps-3">
|
||||
<h6 class="text-dark">Address</h6>
|
||||
<p>{{ . | markdownify }}</p>
|
||||
</div>
|
||||
</li>
|
||||
{{end }}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
-->
|
||||
|
||||
<section class="section section-lg-bottom bg-light">
|
||||
<div class="container text-center">
|
||||
<div class="row text-center">
|
||||
<div class="col-lg-8 mx-auto text-center">
|
||||
<form id="leadcapture-form" class="row">
|
||||
<div class="col-lg-6">
|
||||
<input type="text" name="firstName" class="form-control mb-4" placeholder="Voornaam">
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<input type="text" name="lastName" class="form-control mb-4" placeholder="Achternaam *" required>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<input type="email" name="emailAddress" class="form-control mb-4" placeholder="E-mail *" required>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<input type="text" name="phoneNumber" class="form-control mb-4" placeholder="Telefoon">
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<textarea name="description" class="form-control mb-4" placeholder="Bericht *" required></textarea>
|
||||
</div>
|
||||
|
||||
<div style="position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;">
|
||||
<label for="company">Bedrijfsnaam</label>
|
||||
<input type="text" id="company" name="company" tabindex="-1" autocomplete="off">
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<button type="submit" class="btn btn-primary">{{ i18n "submit_now"}}</button>
|
||||
</div>
|
||||
|
||||
<div class="col-12 mt-2">
|
||||
<p id="leadcapture-status" class="text-success" hidden>Bedankt! We nemen zo spoedig mogelijk contact op.</p>
|
||||
<p id="leadcapture-error" class="text-danger" hidden>Er ging iets mis. Probeer het opnieuw.</p>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ if site.Params.google_map.enable }}
|
||||
<script src="https://maps.googleapis.com/maps/api/js?key={{site.Params.google_map.gmap_api}}&libraries=places"></script>
|
||||
{{ end }}
|
||||
|
||||
{{ end }}
|
||||
6
themes/agico-hugo/layouts/_default/index.json
Executable file
6
themes/agico-hugo/layouts/_default/index.json
Executable file
@@ -0,0 +1,6 @@
|
||||
{{- $.Scratch.Add "index" slice -}}
|
||||
{{- range where site.RegularPages "Section" "in" site.Params.mainSections -}}
|
||||
{{ $date:= .PublishDate.Format "02"}}
|
||||
{{- $.Scratch.Add "index" (dict "title" .Title "date" $date "tags" .Params.tags "image" .Params.image "categories" .Params.categories "contents" .Plain "permalink" .Permalink) -}}
|
||||
{{- end -}}
|
||||
{{- $.Scratch.Get "index" | jsonify -}}
|
||||
151
themes/agico-hugo/layouts/_default/list.html
Executable file
151
themes/agico-hugo/layouts/_default/list.html
Executable file
@@ -0,0 +1,151 @@
|
||||
{{ define "main" }}
|
||||
|
||||
<!-- checking blog -->
|
||||
{{ if or (eq .Section "post") (eq .Section "posts") (eq .Section "blog") (eq .Section "blogs") (eq .Section "nieuws") (eq .Section "categories") (eq .Section "tags") }}
|
||||
<section class="section section-lg-bottom">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<div class="row">
|
||||
{{ $paginator := .Paginate .Data.Pages }}
|
||||
{{ range $paginator.Pages }}
|
||||
{{ "<!-- blog post -->" | safeHTML }}
|
||||
<div class="col-md-6 mb-4">
|
||||
<article class="card border-0 shadow px-2 rounded-lg">
|
||||
<a href="{{ .Permalink }}">
|
||||
{{ partial "image.html" (dict "Src" .Params.Image "Alt" "post thumb" "Class" `card-img-top rounded-top-lg`) }}
|
||||
</a>
|
||||
|
||||
<div class="card-body px-4">
|
||||
<p>{{ .PublishDate.Format "Jan 02, 2006" }}</p>
|
||||
<h5 class="lh-base">
|
||||
<a class="text-dark" href="{{ .Permalink }}">{{ .Title }}</a>
|
||||
</h5>
|
||||
|
||||
{{/* Description met fallback naar Summary */}}
|
||||
{{ $desc := .Description }}
|
||||
{{ if not $desc }}
|
||||
{{ $desc = .Summary }}
|
||||
{{ end }}
|
||||
{{ with $desc }}
|
||||
<p class="card-text text-muted mb-0">
|
||||
{{ . | plainify | truncate 160 }}
|
||||
</p>
|
||||
{{ end }}
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{"<!-- pagination -->" | safeHTML }}
|
||||
<div class="col-12 mt-5">
|
||||
{{ $paginator := .Paginator }}
|
||||
<!-- Number of links either side of the current page. -->
|
||||
{{ $adjacent_links := 2 }}
|
||||
<!-- $max_links = ($adjacent_links * 2) + 1 -->
|
||||
{{ $max_links := (add (mul $adjacent_links 2) 1) }}
|
||||
<!-- $lower_limit = $adjacent_links + 1 -->
|
||||
{{ $lower_limit := (add $adjacent_links 1) }}
|
||||
<!-- $upper_limit = $paginator.TotalPages - $adjacent_links -->
|
||||
{{ $upper_limit := (sub $paginator.TotalPages $adjacent_links) }}
|
||||
<!-- If there's more than one page. -->
|
||||
{{ if gt $paginator.TotalPages 1 }}
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination justify-content-center">
|
||||
<!-- First page. -->
|
||||
{{ if ne $paginator.PageNumber 1 }}
|
||||
<li class="page-item">
|
||||
<a class="page-link hover-ripple" href="{{ $paginator.First.URL }}">
|
||||
««
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
<!-- Previous page. -->
|
||||
{{ if $paginator.HasPrev }}
|
||||
<li class="page-item">
|
||||
<a href="{{ $paginator.Prev.URL }}" class="page-link hover-ripple">
|
||||
«
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
<!-- Page numbers. -->
|
||||
{{ range $paginator.Pagers }}
|
||||
{{ $.Scratch.Set "page_number_flag" false }}
|
||||
<!-- Advanced page numbers. -->
|
||||
{{ if gt $paginator.TotalPages $max_links }}
|
||||
<!-- Lower limit pages. -->
|
||||
<!-- If the user is on a page which is in the lower limit. -->
|
||||
{{ if le $paginator.PageNumber $lower_limit }}
|
||||
<!-- If the current loop page is less than max_links. -->
|
||||
{{ if le .PageNumber $max_links }}
|
||||
{{ $.Scratch.Set "page_number_flag" true }}
|
||||
{{ end }}
|
||||
<!-- Upper limit pages. -->
|
||||
<!-- If the user is on a page which is in the upper limit. -->
|
||||
{{ else if ge $paginator.PageNumber $upper_limit }}
|
||||
<!-- If the current loop page is greater than total pages minus $max_links -->
|
||||
{{ if gt .PageNumber (sub $paginator.TotalPages $max_links) }}
|
||||
{{ $.Scratch.Set "page_number_flag" true }}
|
||||
{{ end }}
|
||||
<!-- Middle pages. -->
|
||||
{{ else }}
|
||||
{{ if and ( ge .PageNumber (sub $paginator.PageNumber $adjacent_links) ) ( le .PageNumber (add $paginator.PageNumber $adjacent_links) ) }}
|
||||
{{ $.Scratch.Set "page_number_flag" true }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
<!-- Simple page numbers. -->
|
||||
{{ else }}
|
||||
{{ $.Scratch.Set "page_number_flag" true }}
|
||||
{{ end }}
|
||||
<!-- Output page numbers. -->
|
||||
{{ if eq ($.Scratch.Get "page_number_flag") true }}
|
||||
<li class="page-item{{ if eq . $paginator }} page-item active {{ end }}">
|
||||
<a href="{{ .URL }}" class="page-link hover-ripple">
|
||||
{{ .PageNumber }}
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
<!-- Next page. -->
|
||||
{{ if $paginator.HasNext }}
|
||||
<li class="page-item">
|
||||
<a href="{{ $paginator.Next.URL }}" class="page-link hover-ripple">
|
||||
»
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
<!-- Last page. -->
|
||||
{{ if ne $paginator.PageNumber $paginator.TotalPages }}
|
||||
<li class="page-item">
|
||||
<a class="page-link hover-ripple" href="{{ $paginator.Last.URL }}">
|
||||
»»
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</nav>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{"<!-- /pagination -->" | safeHTML }}
|
||||
</div>
|
||||
</div>
|
||||
{{ partial "components/sidebar.html" . }}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ else }}
|
||||
|
||||
<section class="section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="content">
|
||||
{{.Content }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ end }}
|
||||
|
||||
{{ end }}
|
||||
36
themes/agico-hugo/layouts/_default/pricing.html
Normal file
36
themes/agico-hugo/layouts/_default/pricing.html
Normal file
@@ -0,0 +1,36 @@
|
||||
{{ define "main" }}
|
||||
|
||||
{{"<!-- pricing -->"| safeHTML}}
|
||||
<section class="section section-lg-bottom">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
{{ with .Params.pricing }}
|
||||
<!-- <div class="col-lg-12 text-center">
|
||||
<h2 class="section-title" data-aos="fade-up" data-aos-delay="100">{{ .title }}</h2>
|
||||
<p class="subtitle" data-aos="fade-up">{{ .subtitle }}</p>
|
||||
</div> -->
|
||||
{{ end }}
|
||||
|
||||
{{ range $index, $element:= .Params.pricing.pricing_table }}
|
||||
{{ $delay := mul $index 200}}
|
||||
<div class="col-lg-6 col-md-6 mb-lg-0 mb-4 px-4" data-aos="fade-up" data-aos-delay="{{$delay}}">
|
||||
<div class="pricing-table position-relative text-left px-4 py-5 rounded-lg shadow transition bg-white">
|
||||
<h3 class="mb-4 fw-normal"><b>{{ .title }}</b></h3>
|
||||
<div class="h4">{{ .price }}<span class="paragraph text-lowercase"> {{ .unit }}</span></div>
|
||||
<span class="badge badge-pill badge-light fw-medium mb-3 py-1 rounded-4 px-4 mb-4 d-inline-block">{{ .description }}</span>
|
||||
<hr>
|
||||
<ul class="list-unstyled my-4">
|
||||
{{ range .services }}
|
||||
<li class="my-3">{{ . | markdownify }}</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
<a href="{{ .link | safeURL }}" class="btn btn-primary">Meer informatie</a>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{"<!-- pricing -->"| safeHTML}}
|
||||
|
||||
{{ end }}
|
||||
86
themes/agico-hugo/layouts/_default/product.html
Normal file
86
themes/agico-hugo/layouts/_default/product.html
Normal file
@@ -0,0 +1,86 @@
|
||||
{{ define "main" }}
|
||||
|
||||
<section class="section section-lg-bottom">
|
||||
<div class="container">
|
||||
|
||||
{{ range $idx, $tbl := .Params.pricing_tables }}
|
||||
|
||||
{{ $odd := eq (mod $idx 2) 1 }}
|
||||
{{ $textOrderLg := cond $odd "order-lg-1" "order-lg-2" }}
|
||||
{{ $tableOrderLg := cond $odd "order-lg-2" "order-lg-1" }}
|
||||
{{ $delay := mul (add $idx 1) 100 }}
|
||||
{{ $textAOS := cond $odd "fade-right" "fade-left" }}
|
||||
{{ $tableAOS := "fade-up" }}
|
||||
|
||||
<div class="row justify-content-center align-items-start mb-5 g-8">
|
||||
|
||||
{{/* --------- TEKSTKOLOM (altijd boven op mobiel) --------- */}}
|
||||
<div class="col-lg-7 col-md-12 col-sm-12 p-sm-4 px-lg-6 order-1 {{ $textOrderLg }}"
|
||||
data-aos="{{ $textAOS }}" data-aos-delay="{{ $delay }}">
|
||||
{{ range $tbl.pricing_table_info }}
|
||||
{{ with .header }}
|
||||
{{ partial "image.html" (dict
|
||||
"Src" .
|
||||
"Alt" (printf "Logo %s" $.Page.Title)
|
||||
"Class" "img-fluid mb-3 logo-header img-product"
|
||||
) }}
|
||||
{{ end }}
|
||||
{{ with .subheader }}
|
||||
<h4 class="mt-2 {{ $textOrderLg }}" data-aos="{{ $textAOS }}" data-aos-delay="{{ $delay }}">{{ . }}</h4>
|
||||
{{ end }}
|
||||
|
||||
{{ with .text }}
|
||||
<p class="{{ $textOrderLg }}" data-aos="{{ $textAOS }}" data-aos-delay="{{ $delay }}">{{ . | markdownify }}</p>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
{{/* --------- TABELKOLOM (altijd onder op mobiel) --------- */}}
|
||||
<div class="col-lg-5 col-md-12 col-sm-12 my-4 order-2 {{ $tableOrderLg }}" data-aos="{{ $tableAOS }}" data-aos-delay="{{ $delay }}">
|
||||
<table class="pricing-table shadow-lg" style="width: 100%;">
|
||||
<tbody>
|
||||
|
||||
{{/* PRIJS-REEKS (bovenste rij met kolommen) */}}
|
||||
<tr>
|
||||
{{ range $tbl.pricing_table_info }}
|
||||
<td>
|
||||
{{ with .price }}<h6>{{ . | markdownify }}</h6>{{ end }}
|
||||
{{ with .content }}<h6>{{ . | markdownify }}</h6>{{ end }}
|
||||
{{ with .info }}<small>{{ . | markdownify }}</small>{{ end }}
|
||||
</td>
|
||||
{{ end }}
|
||||
</tr>
|
||||
|
||||
{{/* BODY-REEKSEN */}}
|
||||
{{ range $tbl.pricing_table_data }}
|
||||
<tr>
|
||||
{{ range .table_row }}
|
||||
<td style="width:60%;">
|
||||
<div>
|
||||
{{ with .icon }}<i class="{{ . }}"></i>{{ end }}
|
||||
{{ with .price }}<span class="d-flex align-items-center">{{ . }}</span>{{ end }}
|
||||
<p><b>{{ .product | markdownify }}</b></p>
|
||||
{{ with .info }}<small>{{ . | markdownify }}</small>{{ end }}
|
||||
</div>
|
||||
</td>
|
||||
{{ end }}
|
||||
</tr>
|
||||
{{ end }}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
<!-- <div class="row justify-content-center" data-aos="fade-up" data-aos-delay="200">
|
||||
<div class="col-lg-8 col-md-8 col-sm-12 mb-40">
|
||||
{{ .Content }}
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ end }}
|
||||
145
themes/agico-hugo/layouts/_default/quote.html
Normal file
145
themes/agico-hugo/layouts/_default/quote.html
Normal file
@@ -0,0 +1,145 @@
|
||||
{{ define "main" }}
|
||||
<section class="section section-lg-bottom bg-light">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-12 mx-auto">
|
||||
<form id="leadcapture-form" class="row">
|
||||
<div class="col-lg-6">
|
||||
<input type="text" name="firstName" class="form-control mb-4" placeholder="Voornaam">
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<input type="text" name="lastName" class="form-control mb-4" placeholder="Achternaam *" required>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<input type="email" name="emailAddress" class="form-control mb-4" placeholder="E-mail *" required>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<input type="text" name="phoneNumber" class="form-control mb-4" placeholder="Telefoon">
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<textarea name="description" class="form-control mb-4" placeholder="Bericht *" required></textarea>
|
||||
</div>
|
||||
|
||||
<div style="position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;">
|
||||
<label for="company">Bedrijfsnaam</label>
|
||||
<input type="text" id="company" name="company" tabindex="-1" autocomplete="off">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12">
|
||||
<hr>
|
||||
<h5>Prijsberekening (schatting)</h5>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4">
|
||||
<label for="pages" class="form-label">Aantal pagina's</label>
|
||||
<input type="number" id="pages" name="pages" class="form-control mb-3" value="1" min="0" step="1">
|
||||
<small class="text-muted">Prijs per pagina: €50</small>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4">
|
||||
<label for="websiteType" class="form-label">Website type</label>
|
||||
<select id="websiteType" name="websiteType" class="form-select mb-3">
|
||||
<option value="800">HUGO — €800</option>
|
||||
<option value="1150" selected>Wordpress — €1150</option>
|
||||
<option value="2350">Shopify — €2350</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4">
|
||||
<label class="form-label d-block">Extra modules</label>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input calc-extra" type="checkbox" value="300" id="extraBlog" name="extraBlog">
|
||||
<label class="form-check-label" for="extraBlog">Blog — €100</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input calc-extra" type="checkbox" value="100" id="extraContact" name="extraContact">
|
||||
<label class="form-check-label" for="extraContact">Extra contactformulier — €100</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input calc-extra" type="checkbox" value="400" id="extraWebshopPayment" name="extraWebshopPayment">
|
||||
<label class="form-check-label" for="extraWebshopPayment">Webshop — €400</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12 mt-3 d-flex">
|
||||
<button type="button" id="calculate" class="btn btn-outline-primary me-3">Bereken totaal</button>
|
||||
<p class="mb-0">Totaal: <strong>€<span id="total">0</span></strong></p>
|
||||
</div>
|
||||
|
||||
<!-- Verborgen input zodat backend het totaal krijgt bij submit -->
|
||||
<input type="hidden" name="estimatedTotal" id="estimatedTotal" value="0">
|
||||
|
||||
<!-- -------- einde calculator -------- -->
|
||||
|
||||
<div class="col-12 mt-4">
|
||||
<button type="submit" class="btn btn-primary">{{ i18n "submit_now"}}</button>
|
||||
</div>
|
||||
|
||||
<div class="col-12 mt-2">
|
||||
<p id="leadcapture-status" class="text-success" hidden>Bedankt! We nemen zo spoedig mogelijk contact op.</p>
|
||||
<p id="leadcapture-error" class="text-danger" hidden>Er ging iets mis. Probeer het opnieuw.</p>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<script>
|
||||
(function () {
|
||||
const pagesEl = document.getElementById('pages');
|
||||
const websiteTypeEl = document.getElementById('websiteType');
|
||||
const extrasEls = document.querySelectorAll('.calc-extra');
|
||||
const totalEl = document.getElementById('total');
|
||||
const hiddenTotalEl = document.getElementById('estimatedTotal');
|
||||
const calculateBtn = document.getElementById('calculate');
|
||||
const form = document.getElementById('leadcapture-form');
|
||||
|
||||
function toIntSafe(value) {
|
||||
const s = String(value).replace(/[^\d\-]/g, '');
|
||||
const n = parseInt(s, 10);
|
||||
return Number.isNaN(n) ? 0 : n;
|
||||
}
|
||||
|
||||
function computeTotal() {
|
||||
const pages = toIntSafe(pagesEl.value);
|
||||
const websiteBase = toIntSafe(websiteTypeEl.value);
|
||||
|
||||
let extrasSum = 0;
|
||||
extrasEls.forEach(el => {
|
||||
if (el.checked) {
|
||||
extrasSum += toIntSafe(el.value);
|
||||
}
|
||||
});
|
||||
|
||||
const total = websiteBase + (pages * pricePerPage) + extrasSum;
|
||||
return total;
|
||||
}
|
||||
|
||||
function updateUI(total) {
|
||||
totalEl.textContent = total;
|
||||
hiddenTotalEl.value = total;
|
||||
}
|
||||
|
||||
[pagesEl, websiteTypeEl].forEach(el => el.addEventListener('input', () => updateUI(computeTotal())));
|
||||
extrasEls.forEach(el => el.addEventListener('change', () => updateUI(computeTotal())));
|
||||
calculateBtn.addEventListener('click', () => updateUI(computeTotal()));
|
||||
|
||||
// Initial render
|
||||
updateUI(computeTotal());
|
||||
|
||||
form.addEventListener('submit', function (ev) {
|
||||
const honeypot = document.getElementById('company').value;
|
||||
if (honeypot && honeypot.trim() !== '') {
|
||||
// vermoedelijke bot — blokkeer submit
|
||||
ev.preventDefault();
|
||||
// toon fout (optioneel)
|
||||
document.getElementById('leadcapture-error').hidden = false;
|
||||
document.getElementById('leadcapture-status').hidden = true;
|
||||
return;
|
||||
}
|
||||
hiddenTotalEl.value = computeTotal();
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
{{ end }}
|
||||
31
themes/agico-hugo/layouts/_default/search.html
Normal file
31
themes/agico-hugo/layouts/_default/search.html
Normal file
@@ -0,0 +1,31 @@
|
||||
{{ define "main" }}
|
||||
<section class="section section-lg-bottom">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<div class="row" id="search-results"></div>
|
||||
<script id="search-result-template" type="text/x-js-template">
|
||||
<div class="col-md-6 mb-4">
|
||||
<article class="card border-0 p-3 shadow rounded-lg" id="summary-${key}">
|
||||
<div class="card-body">
|
||||
<h4><a class="text-dark" href="${link}">${title}</a></h4>
|
||||
<p class="card-date">{{ .PublishDate.Format "Jan 02, 2006" }}</p>
|
||||
<p>${snippet}</p>
|
||||
${ isset tags }<p class="mb-1">Tags: ${tags}</p>${ end }
|
||||
${ isset categories }<p class="mb-0">Categories: ${categories}</p>${ end }
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
</script>
|
||||
</div>
|
||||
|
||||
{{ partial "components/sidebar.html" . }}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Search index -->
|
||||
<script>
|
||||
var indexURL = {{ "index.json" | relLangURL}}
|
||||
</script>
|
||||
{{ end }}
|
||||
36
themes/agico-hugo/layouts/_default/service.html
Normal file
36
themes/agico-hugo/layouts/_default/service.html
Normal file
@@ -0,0 +1,36 @@
|
||||
{{ define "main" }}
|
||||
|
||||
{{ partial "components/services.html" . }}
|
||||
|
||||
{{"<!-- features -->"| safeHTML}}
|
||||
{{ if .Params.feature.enable }}
|
||||
{{ with .Params.feature }}
|
||||
<section class="bg-light section section-lg-bottom">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-12 text-center">
|
||||
<p class="subtitle" data-aos="fade-up">{{ .subtitle }}</p>
|
||||
<h2 class="section-title" data-aos="fade-up" data-aos-delay="200">{{ .title }}</h2>
|
||||
</div>
|
||||
{{ range $index, $element:= .feature_item }}
|
||||
{{ $delay := mul $index 100}}
|
||||
<div class="col-lg-4 col-md-6 mb-4 mb-lg-0" data-aos="fade-up" data-aos-delay="{{$delay}}">
|
||||
<div class="text-center shadow card py-3 border-0 rounded-sm">
|
||||
<div class="card-body">
|
||||
<i class="icon-lg icon-bg-square mb-3 d-inline-block icon-{{.icon_color}}">
|
||||
<i class="{{ .icon }}"></i>
|
||||
</i>
|
||||
<h4 class="mb-3">{{ .title }}</h4>
|
||||
<p>{{ .content | markdownify }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{"<!-- /features -->"| safeHTML}}
|
||||
|
||||
{{ end }}
|
||||
55
themes/agico-hugo/layouts/_default/single.html
Executable file
55
themes/agico-hugo/layouts/_default/single.html
Executable file
@@ -0,0 +1,55 @@
|
||||
{{ define "main" }}
|
||||
|
||||
|
||||
<!-- checking blog -->
|
||||
{{ if or (eq .Section "post") (eq .Section "posts") (eq .Section "blog") (eq .Section "blogs") (eq .Section "nieuws") (eq .Section "categories") (eq .Section "tags") }}
|
||||
<section class="section section-lg-bottom">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 rounded-sm pe-5">
|
||||
<!-- {{ partial "image.html" (dict "Src" .Params.Image "Alt" "post-thumb" "Class" "rounded-sm w-100 mb-2" "Size" "990x") }} -->
|
||||
<p class="text-color position-relative d-inline-block"><span
|
||||
class="text fw-bold">{{ .Params.Author }}</span> / <span
|
||||
class="text fw-bold">{{ .PublishDate.Format "Jan 02, 2006" }}</span></p>
|
||||
<div class="content">
|
||||
{{ .Content }}
|
||||
</div>
|
||||
<!--
|
||||
<div class="my-5">
|
||||
<h5 class="d-inline-block me-3">Deel bericht:</h5>
|
||||
<ul class="list-inline d-inline-block">
|
||||
{{ $url := printf "%s" .Permalink | absLangURL }}
|
||||
<li class="list-inline-item"><a href="https://facebook.com/sharer/sharer.php?u={{ $url }}" class="text-color lead"><i class="fab fa-facebook "></i></a></li>
|
||||
<li class="list-inline-item"><a href="https://twitter.com/intent/tweet/?text={{ .Title }}&url={{ $url }}" class="text-color lead"><i class="fab fa-twitter "></i></a></li>
|
||||
<li class="list-inline-item"><a href="https://reddit.com/submit/?url={{ $url }}&resubmit=true&title={{ .Title }}" class="text-color lead"><i class="fab fa-reddit "></i></a></li>
|
||||
<li class="list-inline-item"><a href="whatsapp://send?text={{ .Title }}%20{{ $url }}" class="text-color lead"><i class="fab fa-whatsapp "></i></a></li>
|
||||
<li class="list-inline-item"><a href="https://telegram.me/share/url?text={{ .Title }}&url={{ $url }}" class="text-color lead"><i class="fab fa-telegram "></i></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
-->
|
||||
<!-- comments -->
|
||||
<!-- {{ if site.Config.Services.Disqus.Shortname }}
|
||||
{{ template "_internal/disqus.html" . }}
|
||||
{{ end }} -->
|
||||
</div>
|
||||
{{ partial "components/sidebar.html" . }}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ else }}
|
||||
|
||||
<section class="section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="content">
|
||||
{{.Content }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ end }}
|
||||
|
||||
{{ end }}
|
||||
30
themes/agico-hugo/layouts/_default/team.html
Normal file
30
themes/agico-hugo/layouts/_default/team.html
Normal file
@@ -0,0 +1,30 @@
|
||||
{{ define "main" }}
|
||||
|
||||
{{"<!-- team -->" | safeHTML}}
|
||||
<section class="section section-lg-bottom">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
{{ range $index, $element:= .Params.team_member }}
|
||||
{{ $delay := mul $index 200}}
|
||||
{{"<!-- team member -->" | safeHTML}}
|
||||
<div class="col-lg-4 col-md-6 mb-5" data-aos="fade-up" data-aos-delay="{{$delay}}">
|
||||
<div class="team-member text-center">
|
||||
{{ partial "image.html" (dict "Src" .image "Alt" .name "Class" "w-100 rounded-sm" "Size" "450x") }}
|
||||
<div class="team-member-content p-4">
|
||||
<h5 class="team-member-name text-white">{{.name}}</h5>
|
||||
<p class="team-member-designation text-light">{{ .designation }}</p>
|
||||
<ul class="list-inline team-member-social">
|
||||
{{ range .social }}
|
||||
<li class="list-inline-item"><a href="{{.link | safeURL }}" class="p-2"><i class="{{ .icon }} text-white"></i></a></li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{"<!-- /team -->" | safeHTML}}
|
||||
|
||||
{{ end }}
|
||||
2
themes/agico-hugo/layouts/_default/terms.html
Normal file
2
themes/agico-hugo/layouts/_default/terms.html
Normal file
@@ -0,0 +1,2 @@
|
||||
<!-- Redirect to homepage -->
|
||||
<script>window.location.replace("{{ site.BaseURL | relLangURL }}");</script>
|
||||
28
themes/agico-hugo/layouts/career/list.html
Executable file
28
themes/agico-hugo/layouts/career/list.html
Executable file
@@ -0,0 +1,28 @@
|
||||
{{ define "main" }}
|
||||
|
||||
<section class="section section-lg-bottom bg-light">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-12 text-center">
|
||||
<p class="subtitle" data-aos="fade-up">{{ i18n "career_subtitle" }}</p>
|
||||
<h2 class="section-title" data-aos="fade-up" data-aos-delay="100">{{ i18n "career_title" }}</h2>
|
||||
</div>
|
||||
{{ range .Data.Pages }}
|
||||
<div class="col-lg-12 bg-white p-4 rounded shadow-sm my-3" data-aos="fade-up">
|
||||
<div class="d-flex gap-2 gap-md-4 gap-lg-0 align-items-center flex-column flex-lg-row p-2">
|
||||
{{ with .Params.Image }}
|
||||
{{ partial "image.html" (dict "Src" . "Alt" "company-logo" "Class" `me-sm-3 mb-4 mb-sm-0 border rounded p-2` "Size" "75x" "Webp" false) }}
|
||||
{{ end }}
|
||||
<div class="media-body text-sm-left mb-4 mb-sm-0">
|
||||
<h6 class="mt-0 mb-1">{{ .Title }}</h6>
|
||||
<p class="mb-0 text-gray">{{ .Params.Job_category }} | {{ .Params.Location }} | {{ .Params.Job_type }} | {{.PublishDate.Format "06 Jan 2006" }}</p>
|
||||
</div>
|
||||
<a href="{{ .Permalink }}" class="btn btn-sm btn-outline-primary ms-lg-auto">{{ i18n "apply_now" }}</a>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ end }}
|
||||
55
themes/agico-hugo/layouts/career/single.html
Executable file
55
themes/agico-hugo/layouts/career/single.html
Executable file
@@ -0,0 +1,55 @@
|
||||
{{ define "main" }}
|
||||
|
||||
<section class="section section-lg-bottom">
|
||||
<div class="container">
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-lg-7 order-2 order-lg-1">
|
||||
<div class="content">
|
||||
{{ .Content }}
|
||||
</div>
|
||||
<a href="{{.Params.Apply_link | safeURL }}" class="btn btn-primary btn-dark">{{ i18n "apply_now" }}</a>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 order-1 order-lg-2 mb-5 mb-lg-0 align-self-start">
|
||||
<div class="py-5 px-4 px-lg-5 rounded-xs shadow sticky-top">
|
||||
<h3 class="text-dark border-bottom pb-4 mb-5 h4">{{ i18n "job_details" }}</h3>
|
||||
<ul class="list-unstyled mb-0">
|
||||
<li class="d-flex mb-4">
|
||||
<i class="fa fa-map icon icon-primary"></i>
|
||||
<div class="ps-3">
|
||||
<h6 class="text-dark">{{ i18n "location"}}</h6>
|
||||
<p>{{ .Params.Location | markdownify }}</p>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="d-flex mb-4">
|
||||
<i class="fa fa-user icon icon-primary"></i>
|
||||
<div class="ps-3">
|
||||
<h6 class="text-dark">{{ i18n "job_category"}}</h6>
|
||||
<p>{{ .Params.Job_category | markdownify }}</p>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="d-flex mb-4">
|
||||
<i class="fa fa-briefcase icon icon-primary"></i>
|
||||
<div class="ps-3">
|
||||
<h6 class="text-dark">{{ i18n "job_type"}}</h6>
|
||||
<p>{{ .Params.Job_type | markdownify }}</p>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="d-flex mb-4">
|
||||
<i class="far fa-clock icon icon-primary"></i>
|
||||
<div class="ps-3">
|
||||
<h6 class="text-dark">{{ i18n "posted_date"}}</h6>
|
||||
<p>{{ .PublishDate.Format "06 Jan 2006" }}</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ end }}
|
||||
216
themes/agico-hugo/layouts/index.html
Executable file
216
themes/agico-hugo/layouts/index.html
Executable file
@@ -0,0 +1,216 @@
|
||||
{{ define "main" }}
|
||||
|
||||
{{"<!-- banner -->"| safeHTML}}
|
||||
{{ with .Params.banner }}
|
||||
{{ if .enable }}
|
||||
<section class="hero-area" {{ partial `bg-image.html` (dict `Src` .bg_image) | safeHTMLAttr }}>
|
||||
<div class="container">
|
||||
<div class="row align-items-center justify-content-between">
|
||||
<div class="col-lg-6 ps-lg-0 text-lg-left">
|
||||
<h1 class="text-white position-relative" data-aos="fade-up" data-aos-delay="100">{{ .title | safeHTML }}<span class="watermark">{{ .watermark }}</span></h1>
|
||||
<p class="text-white pt-2 pb-3" data-aos="fade-up" data-aos-delay="200">{{ .content | markdownify }}</p>
|
||||
{{ if .button.enable }}
|
||||
{{ with .button }}
|
||||
<a href="{{ .link | absURL }}" class="btn btn-outline-primary text-white" data-aos="fade-up" data-aos-delay="400">{{ .label }}</a>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="col-lg-6 ps-lg-0 pt-5 pt-lg-0 text-lg-right text-center">
|
||||
<div>
|
||||
{{ partial "image.html" (dict "Src" .image "Alt" "illustration" "FetchPriority" "high" "Loading" "eager") }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{"<!-- /banner -->"| safeHTML}}
|
||||
|
||||
{{ if .Params.service.enable }}
|
||||
{{ with site.GetPage (string .Params.service.section)}}
|
||||
{{ partial "components/services.html" . }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{"<!-- partner -->"| safeHTML}}
|
||||
{{ with .Params.partner }}
|
||||
{{ if .enable }}
|
||||
<section>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<ul class="list-inline d-flex justify-content-between border-bottom border-top py-3 py-lg-5 align-items-center">
|
||||
{{ range .partner_logo }}
|
||||
<li class="list-inline-item">
|
||||
{{ partial "image.html" (dict "Src" . "Alt" "" "Class" `p-2` `Alt` `partner`) }}
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{"<!-- /partner -->"| safeHTML}}
|
||||
|
||||
{{"<!-- feature -->"| safeHTML}}
|
||||
{{ with .Params.feature }}
|
||||
{{ if .enable }}
|
||||
<section class="section pb-0">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-12 text-center">
|
||||
<p class="subtitle" data-aos="fade-up">{{ .subtitle }}</p>
|
||||
<h2 class="section-title" data-aos="fade-up" data-aos-delay="100">{{ .title }}</h2>
|
||||
</div>
|
||||
{{ range $index, $element:= .feature_item }}
|
||||
{{ $delay := mul $index 200 }}
|
||||
<div class="col-lg-4 col-md-6 mb-4" data-aos="fade-up" data-aos-delay="{{ $delay }}">
|
||||
<div class="hover-bg-primary text-center position-relative px-4 py-5 rounded-lg shadow">
|
||||
{{ partial "image.html" (dict "Src" .image "Alt" "feature image" "Class" "mb-3" ) }}
|
||||
<div class="mb-4 mt-4">{{ .content | markdownify }}</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{"<!-- feature -->"| safeHTML}}
|
||||
|
||||
{{"<!-- about -->"| safeHTML}}
|
||||
{{ with .Params.about }}
|
||||
{{ if .enable }}
|
||||
{{ range $i,$p := .about_item }}
|
||||
<section class="section pb-8 pt-4">
|
||||
<div class="container">
|
||||
<div class="row align-items-center">
|
||||
{{ if not (modBool $i 2)}}
|
||||
<div class="col-lg-8 col-md-7 text-md-left order-md-1 order-2">
|
||||
<p class="subtitle" data-aos="fade-right">{{ .subtitle }}</p>
|
||||
<h2 class="section-title" data-aos="fade-right" data-aos-delay="100">{{ .title }}</h2>
|
||||
<div class="mb-4" data-aos="fade-right" data-aos-delay="150">{{ .content | markdownify | safeHTML }}</div>
|
||||
{{ if .button.enable }}
|
||||
{{ with .button }}
|
||||
<a href="{{ .link | absLangURL }}" class="btn btn-primary" data-aos="fade-right" data-aos-delay="200">{{
|
||||
.label }} <span class="screen-reader-text">details</span></a>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="col-lg-4 col-md-5 text-center text-md-left order-1 order-md-2 mb-4 mb-md-0">
|
||||
<div data-aos="fade-left">
|
||||
{{ partial "image.html" (dict "Src" .image "Alt" "about-image" ) }}
|
||||
</div>
|
||||
</div>
|
||||
{{ else }}
|
||||
<div class="col-lg-4 col-md-5 text-center text-md-left mb-4 mb-md-0">
|
||||
<div data-aos="fade-right">
|
||||
{{ partial "image.html" (dict "Src" .image "Alt" "about image" ) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-8 col-md-7 text-md-left">
|
||||
<p class="subtitle" data-aos="fade-left">{{ .subtitle }}</p>
|
||||
<h2 class="section-title" data-aos="fade-left" data-aos-delay="100">{{ .title }}</h2>
|
||||
<div class="mb-4" data-aos="fade-left" data-aos-delay="150">{{ .content | markdownify | safeHTML }}</div>
|
||||
{{ if .button.enable }}
|
||||
{{ with .button }}
|
||||
<a href="{{ .link | absLangURL }}" class="btn btn-primary" data-aos="fade-left" data-aos-delay="500">{{ .label }} <span class="screen-reader-text">details</span></a>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{"<!-- about -->"| safeHTML}}
|
||||
|
||||
{{"<!-- download part start -->"| safeHTML}}
|
||||
{{ with .Params.download }}
|
||||
{{ if .enable }}
|
||||
<section class="bg-triangles bg-gradient-primary">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-6 text-lg-left">
|
||||
<div class="section">
|
||||
<h2 class="section-title text-white" data-aos="fade-up">{{ .title }}</h2>
|
||||
<p class="text-white mb-4" data-aos="fade-up" data-aos-delay="200">{{ .content | markdownify }}</p>
|
||||
<ul class="list-inline">
|
||||
<li class="list-inline-item mb-3 mb-lg-0">
|
||||
{{ with .playstore }}
|
||||
<a class="btn btn-white" href="{{ .link | safeURL }}" data-aos="zoom-in" data-aos-delay="400">
|
||||
<!-- {{ partial "image.html" (dict "Src" "images/icon/espocrm.svg" "Alt" "about-image" "Class" `me-2` )
|
||||
}} -->
|
||||
{{ .label }}
|
||||
</a>
|
||||
{{ end }}
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
{{ with .appstore }}
|
||||
<a class="btn btn-outline-white" href="{{ .link | safeURL }}" data-aos="zoom-in" data-aos-delay="500"><i
|
||||
class="fab fa-2x me-2" style="vertical-align: -5px;"></i>{{ .label }}</a>
|
||||
{{ end }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 align-self-end">
|
||||
<div data-aos="fade-up" data-aos-delay="800">
|
||||
{{ partial "image.html" (dict "Src" .image "Alt" "mobile" "Class" `w-100`) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{"<!-- download -->"| safeHTML}}
|
||||
|
||||
{{"<!-- pricing -->"| safeHTML}}
|
||||
{{ with .Params.pricing }}
|
||||
{{ if .enable }}
|
||||
<section class="section section-lg-bottom">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-12 text-center">
|
||||
{{ with site.GetPage (string .section) }}
|
||||
<p class="subtitle" data-aos="fade-up">{{ .Params.pricing.subtitle }}</p>
|
||||
<h2 class="section-title" data-aos="fade-up" data-aos-delay="100">{{ .Params.pricing.title }}</h2>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
{{$show_items:= .show_items}}
|
||||
{{ with site.GetPage (string .section) }}
|
||||
|
||||
{{ range $index, $element:= first ($show_items | default 3) .Params.pricing.pricing_table }}
|
||||
{{ $delay := mul $index 200}}
|
||||
<div class="col-lg-4 col-md-6 mb-lg-0 mb-4" data-aos="fade-up" data-aos-delay="{{$delay}}">
|
||||
<div class="pricing-table position-relative text-center px-4 py-5 rounded-lg shadow transition bg-white">
|
||||
<span
|
||||
class="badge badge-pill badge-light fw-medium mb-3 py-1 rounded-4 px-4 mb-4 d-inline-block text-primary">{{
|
||||
.title }}</span>
|
||||
<div class="h1 text-dark">{{ .price }}<span class="paragraph text-lowercase"> / {{ .unit }}</span></div>
|
||||
<h3 class="h5 mb-4 fw-normal text-color">{{ .description }}</h3>
|
||||
<hr>
|
||||
<ul class="list-unstyled my-4">
|
||||
{{ range .services }}
|
||||
<li class="my-3">{{ . }}</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
<a href="{{ .link | safeURL }}" class="btn btn-outline-primary">Select Plan</a>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
{{"<!-- pricing -->"| safeHTML}}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
25
themes/agico-hugo/layouts/partials/components/accordion.html
Executable file
25
themes/agico-hugo/layouts/partials/components/accordion.html
Executable file
@@ -0,0 +1,25 @@
|
||||
{{ $title:= .Title }}
|
||||
{{ $content:= .Content }}
|
||||
{{ $class:= .Class }}
|
||||
{{ $headerClass:= .HeaderClass }}
|
||||
{{ $bodyClass:= .BodyClass }}
|
||||
|
||||
|
||||
<div class="accordion {{ $class }}">
|
||||
<button class="accordion-header {{ $headerClass }}" data-accordion>
|
||||
{{ $title | markdownify }}
|
||||
<svg
|
||||
class="accordion-icon"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 512 512"
|
||||
xmlspace="preserve">
|
||||
<path
|
||||
fill="currentColor"
|
||||
d="M505.755,123.592c-8.341-8.341-21.824-8.341-30.165,0L256.005,343.176L36.421,123.592c-8.341-8.341-21.824-8.341-30.165,0 s-8.341,21.824,0,30.165l234.667,234.667c4.16,4.16,9.621,6.251,15.083,6.251c5.462,0,10.923-2.091,15.083-6.251l234.667-234.667 C514.096,145.416,514.096,131.933,505.755,123.592z"></path>
|
||||
</svg>
|
||||
</button>
|
||||
<div class="accordion-content {{ $bodyClass }}">
|
||||
<p>{{ $content | markdownify }}</p>
|
||||
</div>
|
||||
</div>
|
||||
33
themes/agico-hugo/layouts/partials/components/page-header.html
Executable file
33
themes/agico-hugo/layouts/partials/components/page-header.html
Executable file
@@ -0,0 +1,33 @@
|
||||
{{ "<!-- page-header -->" | safeHTML }}
|
||||
<section class="page-title page-title-overlay bg-cover" {{ partial `bg-image.html` (dict `Src` .Params.page_header_image
|
||||
) | safeHTMLAttr }}>
|
||||
<div>
|
||||
<div class="container">
|
||||
<div class="row" data-aos="fade-in" data-aos-delay="1">
|
||||
<div class="col-lg-7">
|
||||
<h1 class="text-white position-relative">{{ .Title }}<span class="watermark-sm">{{ .Params.Watermark
|
||||
}}</span>
|
||||
</h1>
|
||||
{{ with .Params.Description }}<p class="text-white pt-4">{{ . | markdownify }}</p>{{ end }}
|
||||
</div>
|
||||
<!-- <div class="col-lg-3 ms-auto align-self-end">
|
||||
<nav class="position-relative zindex-1" aria-label="breadcrumb">
|
||||
<ol class="breadcrumb justify-content-sm-end bg-transparent">
|
||||
<li class="breadcrumb-item">
|
||||
<a href="{{ .Site.BaseURL | relLangURL }}" class="text-white">{{ with .Site.Params.Home }} {{ . }} {{
|
||||
end
|
||||
}}</a>
|
||||
</li>
|
||||
{{ if or (eq .Section "post") (eq .Section "blog") (eq .Section "career") }}
|
||||
<li class="breadcrumb-item text-white" aria-current="page">{{ .Params.watermark }}</li>
|
||||
{{ else }}
|
||||
<li class="breadcrumb-item text-white" aria-current="page">{{ .Title }}</li>
|
||||
{{ end }}
|
||||
</ol>
|
||||
</nav>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ "<!-- /page-header -->" | safeHTML }}
|
||||
33
themes/agico-hugo/layouts/partials/components/services.html
Executable file
33
themes/agico-hugo/layouts/partials/components/services.html
Executable file
@@ -0,0 +1,33 @@
|
||||
{{"<!-- service -->" | safeHTML }}
|
||||
{{ with .Params.service }}
|
||||
{{ if .enable }}
|
||||
<section class="section pb-0" id="services">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-10 mx-auto pe-md-4">
|
||||
<h2 class="section-title" data-aos="fade-up">{{ .title }}</h2>
|
||||
<p class="subtitle pb-4" data-aos="fade-up" data-aos-delay="200">{{ .subtitle | markdownify }}</p>
|
||||
</div>
|
||||
{{ range $index, $element:= .service_item }}
|
||||
{{ $delay := mul $index 100 }}
|
||||
<div class="col-xl-4 col-lg-6 col-md-6 mb-4" data-aos="fade-up" data-aos-delay="{{$delay}}">
|
||||
<div class="card border-0 shadow rounded-xs py-3 px-2 text-center hover-bg-primary">
|
||||
<div class="card-body">
|
||||
<i class="icon-lg icon-{{ .icon_color }} icon-bg-{{ .icon_color }} icon-bg-circle mb-3">
|
||||
<i class="{{ .icon }}"></i>
|
||||
</i>
|
||||
<h3 class="mt-4 mb-3">{{ .title }}</h3>
|
||||
<p>{{ .content | markdownify }}</p>
|
||||
{{ if .link }}
|
||||
<a class="btn btn-sm btn-outline-primary px-4" href="{{ .link }}"><i class="fas fa-sm fa-info-circle"></i>{{ i18n "more_info" }}</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{"<!-- service -->" | safeHTML }}
|
||||
53
themes/agico-hugo/layouts/partials/components/sidebar.html
Executable file
53
themes/agico-hugo/layouts/partials/components/sidebar.html
Executable file
@@ -0,0 +1,53 @@
|
||||
<div class="col-lg-4">
|
||||
<div class="rounded-sm shadow bg-white pb-4">
|
||||
<div class="widget">
|
||||
<form action="{{ `search`| relLangURL }}">
|
||||
<div class="position-relative">
|
||||
<input id="search-query" name="s" type="search" placeholder="{{ i18n "search" }}"
|
||||
class="border-bottom form-control rounded-0 px-0">
|
||||
<button class="search-btn" type="submit"><i class="fa fa-search"></i></button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="widget">
|
||||
<h5>{{ i18n "category" }}</h5>
|
||||
{{- if isset .Site.Taxonomies "categories" }}
|
||||
{{- if not (eq (len .Site.Taxonomies.categories) 0) }}
|
||||
<ul class="list-styled list-bordered">
|
||||
{{- range $name, $items := .Site.Taxonomies.categories }}
|
||||
<li><a class="text-color d-inline-block py-2"
|
||||
href="{{ `categories/` | relLangURL }}{{ $name | urlize | lower }}">{{ $name | title | humanize }}</a></li>
|
||||
{{- end }}
|
||||
</ul>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
</div>
|
||||
<div class="widget">
|
||||
<h5>{{ i18n "latest_article" }}</h5>
|
||||
<ul class="list-unstyled list-bordered">
|
||||
{{ range first 3 (where site.RegularPages "Section" "in" site.Params.mainSections ) }}
|
||||
<li class="article py-3">
|
||||
{{ partial "image.html" (dict "Src" .Params.Image "Alt" "post-thumb" "Class" `object-fit-cover rounded me-3` "Size" "200x") }}
|
||||
<div class="media-body d-inline-block">
|
||||
<h5 class="h6 mt-0"><a href="{{ .Permalink }}" class="text-dark">{{ .Title }}</a></h5>
|
||||
<p class="mb-0 text-color">{{ .PublishDate.Format "Jan 02, 2006" }}</p>
|
||||
</div>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="widget">
|
||||
<h5>{{ i18n "tags" }}</h5>
|
||||
{{- if isset .Site.Taxonomies "tags" }}
|
||||
{{- if not (eq (len .Site.Taxonomies.tags) 0) }}
|
||||
<ul class="list-inline tag-list mt-4">
|
||||
{{- range $name, $items := .Site.Taxonomies.tags }}
|
||||
<li class="list-inline-item mb-3"><a href="{{ `tags/` | relLangURL }}{{ $name | urlize | lower }}"
|
||||
class="text-color shadow-sm">{{ $name | humanize }}</a></li>
|
||||
{{- end }}
|
||||
</ul>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
27
themes/agico-hugo/layouts/partials/components/subscription.html
Executable file
27
themes/agico-hugo/layouts/partials/components/subscription.html
Executable file
@@ -0,0 +1,27 @@
|
||||
{{"<!-- subscription -->" | safeHTML }}
|
||||
{{ if .Site.Params.subscription.enable }}
|
||||
{{ with .Site.Params.subscription }}
|
||||
<section class="subscription">
|
||||
<div class="container my-4">
|
||||
<div class="subscription-wrapper col-lg-10 align-items-center mx-auto">
|
||||
<div class="d-flex position-relative mx-5 justify-content-between align-items-center flex-column flex-md-row text-md-left">
|
||||
<h4 class="text-white flex-fill">{{ i18n "subscribe_newsletter" | safeHTML }}</h4>
|
||||
<form action="{{ .mailchimp_form_action }}" method="post"
|
||||
name="mc-embedded-subscribe-form" target="_blank" novalidate class="row flex-fill">
|
||||
<div class="col-lg-7 my-md-2 my-2">
|
||||
<input type="email" class="form-control text-white px-4 border-0 w-100 text-center text-md-left" placeholder="{{ i18n "your_email" }}" name="EMAIL" required>
|
||||
</div>
|
||||
<div class="col-lg-5 my-md-2 my-2">
|
||||
<button type="submit" name="subscribe" class="btn btn-outline-white text-white border-0 w-100">{{ i18n "subscribe_now" | safeHTML }}</button>
|
||||
<div style="position: absolute; left: -5000px;" aria-hidden="true">
|
||||
<input type="text" name="{{ .mailchimp_form_name }}" tabindex="-1">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{"<!-- /subscription -->" | safeHTML }}
|
||||
60
themes/agico-hugo/layouts/partials/essential/footer.html
Executable file
60
themes/agico-hugo/layouts/partials/essential/footer.html
Executable file
@@ -0,0 +1,60 @@
|
||||
{{"<!-- footer part start -->" | safeHTML }}
|
||||
<footer class="bg-gradient-primary pt-5">
|
||||
<div class="section">
|
||||
<div class="container">
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-md-5 mb-4 mb-md-0">
|
||||
<a href="{{ site.BaseURL | relLangURL }}" class="mb-4 d-inline-block">
|
||||
{{ partial "logo.html" (dict "Alt" site.Title)}}
|
||||
</a>
|
||||
<p class="text-white mb-2">{{ site.Params.footer_content | markdownify }}</p>
|
||||
<ul class="list-inline social-icons">
|
||||
{{ range site.Params.social }}
|
||||
<li class="list-inline-item"><a href="{{ .link | safeURL }}"><i class="{{ .icon }}"></i> <span class="screen-reader-text">{{.title}}</span></a></li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-3 col-sm-6">
|
||||
<h4 class="text-white mb-4">{{ i18n "quick_links" }}</h4>
|
||||
<ul class="list-unstyled list-hover-underline">
|
||||
{{ range site.Menus.footer }}
|
||||
<li class="mb-2 text-white"><a href="{{ .URL | relLangURL }}" class="text-white">{{ .Name }}</a></li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-4 col-sm-6">
|
||||
<h4 class="text-white mb-4">{{ i18n "contact_info"}}</h4>
|
||||
<ul class="list-unstyled">
|
||||
<li class="mb-2 text-white"><b>Tel:</b> <a href="tel:{{site.Params.contact_info.mobile}}">{{site.Params.contact_info.mobile | safeHTML }}</a></li>
|
||||
<li class="mb-2 text-white"><b>E-mail:</b> <a href="mailto:{{site.Params.contact_info.email}}">{{site.Params.contact_info.email | safeHTML }}</a></li>
|
||||
<li class="mb-2 text-white">{{site.Params.contact_info.address | safeHTML }}</li>
|
||||
<li class="mb-2 text-white"><b>KvK:</b> {{site.Params.contact_info.kvk | safeHTML }}</li>
|
||||
<li class="mb-2 text-white"><b>BTW:</b> {{site.Params.contact_info.btw | safeHTML }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{" <!-- footer part end -->" | safeHTML }}
|
||||
|
||||
{{" <!-- copyright part start -->" | safeHTML }}
|
||||
<div class="py-4">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12 text-center">
|
||||
<p class="mb-0 text-white copyright">
|
||||
{{ site.Params.copyright | markdownify }}
|
||||
{{ if site.Params.theme_copyright }}
|
||||
{{ end }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{" <!-- copyright part end -->" | safeHTML }}
|
||||
</footer>
|
||||
|
||||
{{ "<!-- Google Map API -->" | safeHTML }}
|
||||
{{ with site.Params.map.gmap_api }}
|
||||
<script src="{{ . | safeURL }}"></script>
|
||||
{{ end }}
|
||||
57
themes/agico-hugo/layouts/partials/essential/head.html
Executable file
57
themes/agico-hugo/layouts/partials/essential/head.html
Executable file
@@ -0,0 +1,57 @@
|
||||
<meta charset="utf-8">
|
||||
<title>{{.Title | default site.Title}}</title>
|
||||
|
||||
<!-- responsive meta -->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5" />
|
||||
|
||||
<!-- theme meta -->
|
||||
<meta name="theme-name" content="StartIT" />
|
||||
|
||||
<!-- favicon -->
|
||||
{{ partialCached "favicon" .}}
|
||||
|
||||
|
||||
<!-- manifest -->
|
||||
{{ partialCached "manifest" . }}
|
||||
|
||||
|
||||
<!-- site verifications -->
|
||||
{{ partialCached "site-verifications.html" . }}
|
||||
|
||||
|
||||
<!-- opengraph and twitter card -->
|
||||
{{ partial "basic-seo.html" . }}
|
||||
|
||||
|
||||
<!-- custom script -->
|
||||
{{ partialCached "custom-script.html" . }}
|
||||
|
||||
|
||||
<!-- google analytics -->
|
||||
<!-- {{ template "_internal/google_analytics.html" . }} -->
|
||||
|
||||
|
||||
<!-- google tag manager -->
|
||||
<!-- {{ partialCached "gtm.html" . }} -->
|
||||
|
||||
<!-- matomo analytics -->
|
||||
<!-- {{ partialCached "matomo-analytics.html" . }} -->
|
||||
|
||||
|
||||
<!-- Baidu analytics -->
|
||||
<!-- {{ partialCached "baidu-analytics.html" . }} -->
|
||||
|
||||
|
||||
<!-- Plausible Analytics -->
|
||||
<!-- {{ partialCached "plausible-analytics.html" . }} -->
|
||||
|
||||
|
||||
<!-- Counter Analytics -->
|
||||
<!-- {{ partialCached "counter-analytics.html" . }} -->
|
||||
|
||||
|
||||
<!-- Crisp Chat -->
|
||||
{{ partialCached "crisp-chat.html" . }}
|
||||
|
||||
<!-- Plausible -->
|
||||
<script defer data-domain="start-it.nl" src="https://stats.start-it.nl/js/script.file-downloads.outbound-links.tagged-events.js" preconnect></script>
|
||||
88
themes/agico-hugo/layouts/partials/essential/header.html
Executable file
88
themes/agico-hugo/layouts/partials/essential/header.html
Executable file
@@ -0,0 +1,88 @@
|
||||
{{"<!-- navigation -->" | safeHTML }}
|
||||
<div class="navigation fixed-top transition">
|
||||
<div class="container">
|
||||
<nav class="navbar navbar-expand-lg navbar-dark p-0">
|
||||
<a class="navbar-brand p-0" href="{{ .Site.BaseURL | relLangURL }}">
|
||||
{{ partial "logo.html" (dict "Alt" .Site.Title)}}
|
||||
</a>
|
||||
<button class="navbar-toggler border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navigation"
|
||||
aria-controls="navigation" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<i class="fa fa-bars"></i>
|
||||
<i class="fas fa-times"></i>
|
||||
</button>
|
||||
|
||||
<div class="collapse navbar-collapse" id="navigation">
|
||||
<ul class="navbar-nav ml-auto m-2">
|
||||
<!-- <li class="nav-item">
|
||||
<a class="nav-link text-white text-capitalize" href="{{ .Site.BaseURL | relLangURL }}">{{ .Site.Params.Home
|
||||
}}</a>
|
||||
</li> -->
|
||||
{{ range .Site.Menus.main }}
|
||||
{{ if .HasChildren }}
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link text-white text-capitalize dropdown-toggle" href="#" role="button"
|
||||
data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
{{ .Name }}
|
||||
</a>
|
||||
<div class="dropdown-menu">
|
||||
{{ range .Children }}
|
||||
<a class="dropdown-item text-color" href="{{ .URL | relLangURL }}">{{ .Name }}</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
</li>
|
||||
{{ else }}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-white text-capitalize" href="{{ .URL | relLangURL }}">{{ .Name }}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
</ul>
|
||||
|
||||
{{ if .Site.Params.navigation_button.enable }}
|
||||
{{ "<!-- get start btn -->" | safeHTML }}
|
||||
<a href="{{ .Site.Params.navigation_button.link | absURL }}"
|
||||
class="btn btn-white btn-sm text-white small bg-white me-2">{{ .Site.Params.navigation_button.label }}</a>
|
||||
{{ end }}
|
||||
|
||||
<!-- Language List -->
|
||||
{{ if .IsTranslated }}
|
||||
<div class="dropdown">
|
||||
<a class="dropdown-toggle d-inline-flex align-items-center"
|
||||
type="button"
|
||||
id="langDropdown"
|
||||
data-bs-toggle="dropdown"
|
||||
aria-expanded="false"
|
||||
aria-label="">
|
||||
<i class="fa-solid fa-language me-2" aria-hidden="true"></i>
|
||||
</a>
|
||||
|
||||
<ul class="dropdown-menu dropdown-menu-lang dropdown-menu-end" aria-labelledby="langDropdown">
|
||||
{{ $siteLanguages := .Site.Languages }}
|
||||
{{ $pageLang := .Page.Lang }}
|
||||
{{ range .Page.AllTranslations }}
|
||||
{{ $translation := . }}
|
||||
{{ range $siteLanguages }}
|
||||
{{ if eq $translation.Lang .Lang }}
|
||||
<li>
|
||||
<a class="dropdown-item {{ if eq $pageLang .Lang }}active{{ end }}"
|
||||
rel="alternate"
|
||||
hreflang="{{ .Lang }}"
|
||||
lang="{{ .Lang }}"
|
||||
href="{{ $translation.Permalink }}">
|
||||
{{ .LanguageName }}
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
{{"<!-- nav part end -->" | safeHTML }}
|
||||
49
themes/agico-hugo/layouts/partials/essential/script.html
Normal file
49
themes/agico-hugo/layouts/partials/essential/script.html
Normal file
@@ -0,0 +1,49 @@
|
||||
<!-- Bootstrap scripts -->
|
||||
{{ $bootstrap := resources.Get "js/bootstrap.js" }}
|
||||
{{ $params := dict }}
|
||||
{{ $sourceMap := cond hugo.IsProduction "" "inline" }}
|
||||
{{ $opts := dict "sourceMap" $sourceMap "target" "es2018" "params" $params }}
|
||||
{{ $bootstrap = $bootstrap | js.Build $opts }}
|
||||
{{ if hugo.IsProduction }}
|
||||
{{ $bootstrap = $bootstrap | fingerprint "sha512" }}
|
||||
{{ end }}
|
||||
<script crossorigin="anonymous" defer {{ if hugo.IsProduction }}integrity="{{ $bootstrap.Data.Integrity }}"{{end}} type="application/javascript">{{$bootstrap.Content | safeJS}}</script>
|
||||
|
||||
<!-- JS Plugins + Main script -->
|
||||
{{ $scripts := slice }}
|
||||
{{ range site.Params.plugins.js }}
|
||||
{{ if findRE "^http" .link }}
|
||||
<script
|
||||
src="{{ .link | relURL }}"
|
||||
type="application/javascript"
|
||||
{{ .attributes | safeHTMLAttr }}></script>
|
||||
{{ else }}
|
||||
{{ $scripts = $scripts | append (resources.Get .link) }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
<!-- search script -->
|
||||
{{ if site.Params.search }}
|
||||
{{ $scripts = $scripts | append (resources.Get "plugins/search/fuse.min.js" ) }}
|
||||
{{ $scripts = $scripts | append (resources.Get "plugins/search/search.js" ) }}
|
||||
{{ end }}
|
||||
|
||||
<!-- main script -->
|
||||
{{ $scripts = $scripts | append (resources.Get "js/script.js") }}
|
||||
{{ $scripts = $scripts | resources.Concat "js/scripts.js" }}
|
||||
{{ if hugo.IsProduction }}
|
||||
{{ $scripts = $scripts | fingerprint "sha512" }}
|
||||
{{ end }}
|
||||
<script crossorigin="anonymous" defer {{ if hugo.IsProduction }}integrity="{{ $scripts.Data.Integrity }}"{{end}} type="application/javascript">{{$scripts.Content | safeJS}}</script>
|
||||
|
||||
|
||||
<!-- progressive web app -->
|
||||
{{ partialCached "pwa.html" . }}
|
||||
|
||||
|
||||
<!-- cookie consent -->
|
||||
{{ partialCached "cookie-consent.html" . }}
|
||||
|
||||
|
||||
<!-- google adsense -->
|
||||
<!-- {{ partialCached "adsense-script.html" . }} -->
|
||||
53
themes/agico-hugo/layouts/partials/essential/style.html
Normal file
53
themes/agico-hugo/layouts/partials/essential/style.html
Normal file
@@ -0,0 +1,53 @@
|
||||
<!-- DNS preconnect -->
|
||||
<meta http-equiv="x-dns-prefetch-control" content="on" />
|
||||
|
||||
<link rel="preconnect" href="https://use.fontawesome.com" crossorigin />
|
||||
<link rel="preconnect" href="//cdnjs.cloudflare.com" />
|
||||
<link rel="dns-prefetch" href="https://use.fontawesome.com" />
|
||||
<link rel="dns-prefetch" href="//cdnjs.cloudflare.com" />
|
||||
<link rel="preload" href="/fonts/WorkSans-Regular.woff2" as="font" type="font/woff2" crossorigin>
|
||||
|
||||
|
||||
<!--
|
||||
<link rel="dns-prefetch" href="//www.googletagmanager.com" />
|
||||
<link rel="dns-prefetch" href="//www.google-analytics.com" />
|
||||
<link rel="preconnect" href="//ajax.googleapis.com" />
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous" />
|
||||
<link rel="preconnect" href="//www.googletagmanager.com" />
|
||||
<link rel="preconnect" href="//www.google-analytics.com" />
|
||||
<link rel="dns-prefetch" href="https://fonts.gstatic.com" />
|
||||
<link rel="dns-prefetch" href="//ajax.googleapis.com" />
|
||||
<link rel="dns-prefetch" href="//fonts.googleapis.com" />
|
||||
<link rel="dns-prefetch" href="//connect.facebook.net" />
|
||||
<link rel="dns-prefetch" href="//platform.linkedin.com" />
|
||||
<link rel="dns-prefetch" href="//platform.twitter.com" />
|
||||
-->
|
||||
|
||||
<!-- plugins + stylesheet -->
|
||||
{{ $styles := slice }}
|
||||
{{ range site.Params.plugins.css }}
|
||||
{{ if findRE "^http" .link }}
|
||||
<link
|
||||
crossorigin="anonymous"
|
||||
media="all"
|
||||
rel="stylesheet"
|
||||
href="{{ .link | relURL }}"
|
||||
{{ .attributes | safeHTMLAttr }} />
|
||||
{{ else }}
|
||||
{{ $styles = $styles | append (resources.Get .link) }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ $styles := $styles | append (resources.Get "scss/style.scss" | resources.ExecuteAsTemplate "style.scss" . | toCSS) }}
|
||||
{{ $styles := $styles | resources.Concat "/css/style.css" }}
|
||||
|
||||
|
||||
<!-- Purge CSS in Production -->
|
||||
{{ if and hugo.IsProduction site.Params.purge_css }}
|
||||
{{ $styles = $styles | css.PostCSS | fingerprint "sha256" }}
|
||||
{{ $styles = $styles | resources.PostProcess }}
|
||||
{{ end }}
|
||||
|
||||
|
||||
<!-- <link rel="stylesheet" href="{{ $styles.RelPermalink }}" /> -->
|
||||
|
||||
<style type="text/css">{{$styles.Content | safeCSS}}</style>
|
||||
102
themes/agico-hugo/layouts/partials/page-transition.html
Normal file
102
themes/agico-hugo/layouts/partials/page-transition.html
Normal file
@@ -0,0 +1,102 @@
|
||||
<style>
|
||||
:root{
|
||||
--wipe-duration: .25s;
|
||||
--wipe-ease: cubic-bezier(.22,.61,.36,1);
|
||||
--wipe-color: #207495;
|
||||
}
|
||||
|
||||
.wipe-overlay{
|
||||
position: fixed; inset: 0;
|
||||
background: var(--wipe-color);
|
||||
z-index: 2147483647;
|
||||
pointer-events: none;
|
||||
transform: translateY(0);
|
||||
transition: transform var(--wipe-duration) ease-in-out;
|
||||
}
|
||||
|
||||
.wipe-overlay.no-trans{ transition: none; }
|
||||
.wipe-overlay.is-revealing{ transform: translateY(100%); }
|
||||
|
||||
.wipe-overlay.pre-enter{ transform: translateY(-100%); }
|
||||
.wipe-overlay.is-covering{ transform: translateY(0); }
|
||||
|
||||
.wipe-overlay{ box-shadow: 0 2px 0 rgba(0,0,0,.03); }
|
||||
|
||||
@media (prefers-reduced-motion: reduce){
|
||||
.wipe-overlay{ transition: none !important; transform: translateY(100%) !important; }
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="wipe-overlay no-trans" id="wipe"></div>
|
||||
|
||||
<script>
|
||||
(function () {
|
||||
var wipe = document.getElementById('wipe');
|
||||
if (!wipe) return;
|
||||
|
||||
function startReveal(){
|
||||
wipe.classList.remove('no-trans');
|
||||
requestAnimationFrame(function(){
|
||||
wipe.classList.add('is-revealing');
|
||||
});
|
||||
}
|
||||
|
||||
window.addEventListener('pageshow', function () {
|
||||
wipe.classList.add('no-trans');
|
||||
wipe.classList.remove('pre-enter','is-covering','is-revealing');
|
||||
requestAnimationFrame(startReveal);
|
||||
});
|
||||
|
||||
function normPath(p){
|
||||
if (!p) return '/';
|
||||
p = p.replace(/\/index\.html?$/i, '/').replace(/\/+$/,'/');
|
||||
return p || '/';
|
||||
}
|
||||
|
||||
document.addEventListener('click', function (e) {
|
||||
if (e.defaultPrevented) return;
|
||||
|
||||
var a = e.target.closest && e.target.closest('a');
|
||||
if (!a) return;
|
||||
|
||||
var here = new URL(window.location.href);
|
||||
var url = new URL(a.href, here);
|
||||
|
||||
// Zelfde origin?
|
||||
if (url.origin !== here.origin) return;
|
||||
// Modifier keys -> laat browser z'n ding doen
|
||||
if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) return;
|
||||
// Nieuwe tab / download -> niet wipen
|
||||
if (a.target === '_blank' || a.hasAttribute('download')) return;
|
||||
|
||||
// >>> ENIGE VOORWAARDE OM TE WIPEN:
|
||||
// alleen als pad of query anders is (hash telt NIET mee)
|
||||
var samePath = normPath(url.pathname) === normPath(here.pathname);
|
||||
var sameSearch = url.search === here.search;
|
||||
|
||||
if (samePath && sameSearch) {
|
||||
// zelfde document (incl. http://localhost:1313/#) -> GEEN wipe
|
||||
return;
|
||||
}
|
||||
|
||||
// echte navigatie -> wipe + ga
|
||||
e.preventDefault();
|
||||
|
||||
wipe.classList.add('no-trans');
|
||||
wipe.classList.remove('is-revealing','is-covering');
|
||||
wipe.classList.add('pre-enter');
|
||||
void wipe.offsetHeight;
|
||||
|
||||
wipe.classList.remove('no-trans');
|
||||
wipe.classList.remove('pre-enter');
|
||||
wipe.classList.add('is-covering');
|
||||
|
||||
var go = function () {
|
||||
wipe.removeEventListener('transitionend', go);
|
||||
window.location.href = a.href;
|
||||
};
|
||||
wipe.addEventListener('transitionend', go);
|
||||
}, { capture: true });
|
||||
})();
|
||||
</script>
|
||||
|
||||
28
themes/agico-hugo/layouts/shortcodes/accordion.html
Normal file
28
themes/agico-hugo/layouts/shortcodes/accordion.html
Normal file
@@ -0,0 +1,28 @@
|
||||
{{ $title:= .Get 0 }}
|
||||
{{ $class:= .Get "class" }}
|
||||
{{ $headerClass:= .Get "header-class" }}
|
||||
{{ $bodyClass:= .Get "body-class" }}
|
||||
|
||||
{{ range $i, $e:= .Params }}
|
||||
{{ if eq $i "title" }}{{ $title = $e }}{{ end }}
|
||||
{{ end }}
|
||||
|
||||
|
||||
<div class="accordion {{ $class }}">
|
||||
<button class="accordion-header {{ $headerClass }}" data-accordion>
|
||||
{{ $title | markdownify }}
|
||||
<svg
|
||||
class="accordion-icon"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 512 512"
|
||||
xmlspace="preserve">
|
||||
<path
|
||||
fill="currentColor"
|
||||
d="M505.755,123.592c-8.341-8.341-21.824-8.341-30.165,0L256.005,343.176L36.421,123.592c-8.341-8.341-21.824-8.341-30.165,0 s-8.341,21.824,0,30.165l234.667,234.667c4.16,4.16,9.621,6.251,15.083,6.251c5.462,0,10.923-2.091,15.083-6.251l234.667-234.667 C514.096,145.416,514.096,131.933,505.755,123.592z"></path>
|
||||
</svg>
|
||||
</button>
|
||||
<div class="accordion-content {{ $bodyClass }}">
|
||||
<p>{{ .Inner | markdownify }}</p>
|
||||
</div>
|
||||
</div>
|
||||
6
themes/agico-hugo/layouts/shortcodes/changelog.html
Normal file
6
themes/agico-hugo/layouts/shortcodes/changelog.html
Normal file
@@ -0,0 +1,6 @@
|
||||
{{ $_hugo_config := `{ "version": 1 }` }}
|
||||
|
||||
<div class="mt-4">
|
||||
<div class="badge d-inline-block rounded-1 {{ .Get 0 | lower}}">{{ .Get 0 | title }}</div>
|
||||
{{ .Inner | markdownify }}
|
||||
</div>
|
||||
702
themes/agico-hugo/layouts/shortcodes/quote.html
Normal file
702
themes/agico-hugo/layouts/shortcodes/quote.html
Normal file
@@ -0,0 +1,702 @@
|
||||
{{/* Drop-in shortcode: quote.html – offerteformulier met items, optional, quantities, en herhaalbare secties (Websites/Cloud/Netwerk) */}}
|
||||
|
||||
{{/* Bronproducten uit page front matter of fallback site data */}}
|
||||
{{ $products := slice }}
|
||||
{{ if .Page.Params.products }}
|
||||
{{ $products = .Page.Params.products }}
|
||||
{{ else if site.Data.products }}
|
||||
{{ $products = site.Data.products }}
|
||||
{{ end }}
|
||||
|
||||
{{/* Optioneel: filteren op categorie via page param `productFilter` (string of array) */}}
|
||||
{{ $filter := .Page.Params.productFilter }}
|
||||
{{ if $filter }}
|
||||
{{ $typeStr := printf "%T" $filter }}
|
||||
{{ $filters := cond (eq $typeStr "[]interface {}") $filter (slice $filter) }}
|
||||
{{ $products = where $products "categorie" "in" $filters }}
|
||||
{{ end }}
|
||||
|
||||
<section class="section pt-0 mt-0">
|
||||
<div class="container col-lg-10 bg-light p-4 rounded-sm">
|
||||
<div class="row">
|
||||
<div class="col-lg-12 px-lg-6 px-md-5 px-sm-4 mx-auto">
|
||||
<form id="quote-form" class="row" novalidate>
|
||||
|
||||
<!-- Product-secties -->
|
||||
<div class="col-lg-12 mb-3">
|
||||
<h2>Stel je diensten samen</h2>
|
||||
<p>Maak hieronder je keuze per dienst die wij aanbieden.</p>
|
||||
{{ range $i, $p := $products }}
|
||||
{{ $idx := printf "%d" $i }}
|
||||
{{ $items := cond (isset $p "items") $p.items (slice) }}
|
||||
{{ $optList := cond (isset $p "optional") $p.optional (slice) }}
|
||||
{{ $qtyList := cond (isset $p "quantity") $p.quantity (slice) }}
|
||||
|
||||
<div class="product-wrap mb-4" data-wrap-idx="{{ $idx }}" data-key="{{ $p.key }}" data-base="{{ with $p.prijs }}{{ . }}{{ else }}0{{ end }}" data-categorie="{{ $p.categorie }}">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input me-2 prod-checkbox" type="checkbox" id="prod-{{ $idx }}" name="prod-{{ $p.key }}" data-item="item-{{ $idx }}" data-base="{{ with $p.prijs }}{{ . }}{{ else }}0{{ end }}">
|
||||
<label class="form-check-label" for="prod-{{ $idx }}"><b>{{ $p.naam }}</b></label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="product-sections d-none">
|
||||
<div class="row g-3">
|
||||
<div class="col-lg-8 pt-4">
|
||||
|
||||
{{ if $p.omschrijving }}<p class="text-muted small mb-2">{{ $p.omschrijving | markdownify }}</p>{{ end }}
|
||||
|
||||
{{ if gt (len $items) 0 }}
|
||||
<!-- <h4 class="form-label mt-1" for="item-{{ $idx }}">Stel je <span style="text-transform: lowercase;">{{ $p.naam }}</span> samen</h4> -->
|
||||
<select id="item-{{ $idx }}" name="item-{{ $p.key }}" class="form-select mt-1 item-select" data-idx="{{ $idx }}">
|
||||
<option class="text-light" value="" disabled selected>{{ i18n "form-select-option" }}</option>
|
||||
{{ range $j, $d := $items }}
|
||||
<option value="{{ with $d.prijs }}{{ . }}{{ else }}0{{ end }}"
|
||||
data-code="{{ $d.code }}"
|
||||
data-service="{{ with $d.prijsService }}{{ . }}{{ else }}0{{ end }}"
|
||||
data-periode="{{ with $d.prijsServicePeriode }}{{ . }}{{ else }}maand{{ end }}">
|
||||
{{ if and (isset $d "prijs") (ne $d.prijs 0) }}€{{ $d.prijs }} — {{ end }}{{ $d.label }}
|
||||
</option>
|
||||
|
||||
{{ end }}
|
||||
</select>
|
||||
{{ end }}
|
||||
|
||||
{{ if gt (len $optList) 0 }}
|
||||
<div class="mt-3 optional-block">
|
||||
<h6 class="d-block my-2">Optioneel:</h6>
|
||||
{{ range $k, $opt := $optList }}
|
||||
<div class="form-check">
|
||||
<input class="form-check-input calc-extra optional-item" type="checkbox" id="opt-{{ $idx }}-{{ $k }}" name="opt-{{ $p.key }}-{{ $k }}" value="{{ with $opt.prijs }}{{ . }}{{ else }}0{{ end }}" data-service="{{ with $opt.prijsService }}{{ . }}{{ else }}0{{ end }}" data-periode="{{ with $opt.prijsServicePeriode }}{{ . }}{{ else }}maand{{ end }}" data-required-for='{{ if isset $opt "requiredFor" }}{{ $opt.requiredFor | jsonify }}{{ else }}[]{{ end }}'>
|
||||
<input type="hidden" id="opt-{{ $idx }}-{{ $k }}-hidden" name="opt-{{ $p.key }}-{{ $k }}-hidden" value="0">
|
||||
<label class="form-check-label pb-2" for="opt-{{ $idx }}-{{ $k }}"><b>{{ $opt.label }}</b> - {{ if and (isset $opt "prijs") (ne $opt.prijs 0) }} €{{ $opt.prijs }}{{ end }}{{ if $opt.omschrijving }} <br><small class="text-muted">{{ $opt.omschrijving | markdownify }}</small>{{ end }}</label>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
{{ if gt (len $qtyList) 0 }}
|
||||
<div class="mt-3 qty-block" data-idx="{{ $idx }}">
|
||||
{{ range $q, $qty := $qtyList }}
|
||||
<label class="form-label d-block my-2" for="qty-{{ $idx }}-{{ $q }}">
|
||||
<b>{{ $qty.label }} {{ if and (isset $qty "prijs") (ne $qty.prijs 0) }} €{{ $qty.prijs }}{{ end }}</b>{{ if $qty.omschrijving }} <br><small class="text-muted">{{ $qty.omschrijving | markdownify }}</small>{{ end }}
|
||||
</label>
|
||||
<input
|
||||
type="number"
|
||||
min="0"
|
||||
step="1"
|
||||
value="0"
|
||||
class="form-control qty-item mb-2"
|
||||
data-unit="{{ with $qty.prijs }}{{ . }}{{ else }}0{{ end }}"
|
||||
data-unit-service="{{ with $qty.prijsService }}{{ . }}{{ else }}0{{ end }}"
|
||||
data-periode="{{ with $qty.prijsServicePeriode }}{{ . }}{{ else }}maand{{ end }}"
|
||||
data-idx="{{ $idx }}"
|
||||
id="qty-{{ $idx }}-{{ $q }}"
|
||||
name="qty-{{ $p.key }}-{{ $q }}"
|
||||
>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
<hr class="mt-4 mb-0">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4">
|
||||
<div class="card h-100">
|
||||
<div class="card-body">
|
||||
<h6 class="card-title mb-2">{{ or $p.infoTitle (printf "%s info" $p.naam) }}</h6>
|
||||
{{ if isset $p "infobox" }}
|
||||
<span class="text-muted small mb-0">{{ $p.infobox | markdownify }}</span>
|
||||
{{ else if $p.omschrijving }}
|
||||
<span class="text-muted small mb-0">{{ $p.omschrijving | markdownify }}</span>
|
||||
{{ else }}
|
||||
<span class="text-muted small mb-0">Selecteer opties en vul aantallen in.</span>
|
||||
{{ end }}
|
||||
|
||||
<!-- SUBTOTAAL: sticky onderin de infobox -->
|
||||
<div class="mt-3 pt-2 border-top d-flex justify-content-between align-items-center subtot-sticky">
|
||||
<div class="w-100">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<span class="text-muted small">Kosten eenmalig</span>
|
||||
<strong>€<span class="product-subtotal-once" data-idx="{{ $idx }}">0</span></strong>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<span class="text-muted small">Kosten per maand</span>
|
||||
<strong>€<span class="product-subtotal-service" data-idx="{{ $idx }}">0</span></strong>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<div class="col-12 my-3 d-flex align-items-center">
|
||||
<p class="mb-0 h4">
|
||||
Totaal eenmalig: <strong>€<span id="total-once">0</span></strong><br>
|
||||
<small>Kosten per maand: <strong>€<span id="total-service">0</span></strong></small>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
<h4>Ontvang berekening en een persoonlijke offerte</h4>
|
||||
<p>Laat jouw gegevens achter om de berekening met aanvullende informatie te ontvangen per mail. Ook zullen wij in contact met je komen over jouw nieuwe IT project. Wij nemen binnen 3 werkdagen contact op om alles door te nemen en een offerte op maat te maken.</p>
|
||||
<p><b>In de tussentijd nog vragen?</b><br>Bel dan naar <a href="tel:+31657969491">+31 6 5796 9491</a> of stuur een email naar <a href="mailto:info@start-it.nl">info@start-it.nl</a></p>
|
||||
|
||||
<input type="hidden" name="estimatedTotal" id="estimatedTotal" value="0">
|
||||
|
||||
<!-- Honeypot tegen bots -->
|
||||
<input type="text" id="company" name="company" class="d-none" tabindex="-1" autocomplete="off">
|
||||
|
||||
<!-- Contact -->
|
||||
<div class="col-lg-6"><input type="text" name="firstName" class="form-control mb-4" placeholder="Voornaam"></div>
|
||||
<div class="col-lg-6"><input type="text" name="lastName" class="form-control mb-4" placeholder="Achternaam *" required></div>
|
||||
<div class="col-lg-6"><input type="email" name="email" class="form-control mb-4" placeholder="E-mail" required></div>
|
||||
<div class="col-lg-6"><input type="tel" name="phone" class="form-control mb-4" placeholder="Telefoon *" required></div>
|
||||
<div class="col-lg-12"><textarea name="description" class="form-control mb-4" placeholder="Aanvullende informatie over jouw project..."></textarea></div>
|
||||
<div class="col-lg-12"><input type="checkbox" name="agree"><label style="padding-left: 4px;" for="agree" required>Akkoord met voorwaarden & privacybeleid</label></div>
|
||||
|
||||
<div class="col-12 mt-4"><button type="submit" class="btn btn-primary">Ontvang offerte</button></div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<script>
|
||||
(function () {
|
||||
// === ESPOCRM LeadCapture endpoint ===
|
||||
const ESPO_ENDPOINT = 'https://crm.start-it.nl/api/v1/LeadCapture/231344ae2852d65f41e98d99da418af8';
|
||||
|
||||
// --- ELEMENTS ---
|
||||
const totalEl = document.getElementById('total'); // bestaand totaal (blijft bestaan)
|
||||
const hiddenTotalEl = document.getElementById('estimatedTotal');
|
||||
const calculateBtn = document.getElementById('calculate');
|
||||
const form = document.getElementById('quote-form');
|
||||
const prodCheckboxes = document.querySelectorAll('.prod-checkbox');
|
||||
const extrasEls = document.querySelectorAll('.calc-extra:not(.optional-item)');
|
||||
const optionalEls = document.querySelectorAll('.optional-item');
|
||||
|
||||
// === DECIMAAL-VEILIG PARSEN ===
|
||||
function toNumberSafe(value) {
|
||||
if (typeof value === 'number') return Number.isFinite(value) ? value : 0;
|
||||
let s = String(value || '').trim();
|
||||
if (!s) return 0;
|
||||
s = s.replace(/\s/g, '');
|
||||
const hasComma = s.includes(',');
|
||||
const hasDot = s.includes('.');
|
||||
if (hasComma && hasDot) {
|
||||
const lastComma = s.lastIndexOf(',');
|
||||
const lastDot = s.lastIndexOf('.');
|
||||
if (lastComma > lastDot) { s = s.replace(/\./g, ''); s = s.replace(',', '.'); }
|
||||
else { s = s.replace(/,/g, ''); }
|
||||
} else if (hasComma) { s = s.replace(/\./g, ''); s = s.replace(',', '.'); }
|
||||
else { s = s.replace(/,/g, ''); }
|
||||
const n = Number(s);
|
||||
return Number.isFinite(n) ? n : 0;
|
||||
}
|
||||
function toQtySafe(value) { return Math.max(0, Math.floor(toNumberSafe(value))); }
|
||||
|
||||
// === HELPERS ===
|
||||
function toIntSafe(value) { const s = String(value).replace(/[^\d\-]/g, ''); const n = parseInt(s, 10); return Number.isNaN(n) ? 0 : n; }
|
||||
function getIdxFromCb(cb) { const id = cb.dataset.item; if (!id) return null; const m = id.match(/^item-(\d+)$/); return m ? m[1] : null; }
|
||||
|
||||
// === UI UPGRADE: voeg service-totaal bovenaan toe als die ontbreekt ===
|
||||
// Bestaand totaal (id="total") blijft de "eenmalig" tonen; we voegen "per maand" eronder.
|
||||
(function ensureHeaderTotals(){
|
||||
if (!totalEl) return;
|
||||
const parent = totalEl.closest('p') || totalEl.parentElement;
|
||||
if (!parent) return;
|
||||
if (!document.getElementById('total-once')) {
|
||||
// Wrap het bestaande getal in een ID 'total-once' zonder de layout te breken
|
||||
totalEl.id = 'total-once';
|
||||
}
|
||||
if (!document.getElementById('total-service')) {
|
||||
const small = document.createElement('small');
|
||||
small.innerHTML = 'Kosten per maand: <strong>€<span id="total-service">0</span></strong>';
|
||||
parent.appendChild(document.createElement('br'));
|
||||
parent.appendChild(small);
|
||||
}
|
||||
})();
|
||||
|
||||
const totalOnceEl = document.getElementById('total-once');
|
||||
const totalServiceEl = document.getElementById('total-service');
|
||||
|
||||
// === UI UPGRADE: vervang subtotaalblok in infobox ON-THE-FLY (niet in template) ===
|
||||
// We laten de bestaande container staan, maar tonen daarbinnen 2 regels.
|
||||
function upgradeSubtotalsDOM() {
|
||||
document.querySelectorAll('.subtot-sticky').forEach(box => {
|
||||
// al geüpgraded?
|
||||
if (box.querySelector('.product-subtotal-once') || box.querySelector('.product-subtotal-service')) return;
|
||||
|
||||
// Haal idx via een van de bestaande elementen in de buurt
|
||||
const idxEl = box.closest('.product-wrap');
|
||||
const idx = idxEl ? idxEl.getAttribute('data-wrap-idx') : null;
|
||||
if (!idx) return;
|
||||
|
||||
// Maak twee regels (eenmalig + per maand)
|
||||
const wrapper = document.createElement('div');
|
||||
wrapper.className = 'w-100';
|
||||
|
||||
const row1 = document.createElement('div');
|
||||
row1.className = 'd-flex justify-content-between align-items-center';
|
||||
row1.innerHTML = '<span class="text-muted small">Kosten eenmalig</span><strong>€<span class="product-subtotal-once" data-idx="'+idx+'">0</span></strong>';
|
||||
|
||||
const row2 = document.createElement('div');
|
||||
row2.className = 'd-flex justify-content-between align-items-center';
|
||||
row2.innerHTML = '<span class="text-muted small">Kosten per maand</span><strong>€<span class="product-subtotal-service" data-idx="'+idx+'">0</span></strong>';
|
||||
|
||||
// Opruimen oude single-subtotal, maar laat de rest van de layout intact
|
||||
box.innerHTML = '';
|
||||
box.appendChild(wrapper);
|
||||
wrapper.appendChild(row1);
|
||||
wrapper.appendChild(row2);
|
||||
});
|
||||
}
|
||||
upgradeSubtotalsDOM();
|
||||
|
||||
// === COLLAPSIBLE ANIMATIE: zonder d-none races ===
|
||||
function prepareCollapsibles() {
|
||||
document.querySelectorAll('.product-sections').forEach(sec => {
|
||||
sec.classList.remove('d-none'); // niet met display:none werken
|
||||
sec.classList.remove('open'); // start dicht
|
||||
sec.style.maxHeight = '0px';
|
||||
sec.dataset.animating = '0';
|
||||
});
|
||||
}
|
||||
prepareCollapsibles();
|
||||
|
||||
function toggleSection(checkbox) {
|
||||
const idx = getIdxFromCb(checkbox);
|
||||
if (!idx) return;
|
||||
|
||||
const wrap = document.querySelector(`.product-wrap[data-wrap-idx="${idx}"]`);
|
||||
const sections = wrap ? wrap.querySelector('.product-sections') : null;
|
||||
const selectEl = document.getElementById(`item-${idx}`);
|
||||
const qtyInputs = wrap ? wrap.querySelectorAll('.qty-item') : [];
|
||||
const optChecks = wrap ? wrap.querySelectorAll('.optional-item') : [];
|
||||
if (!sections) return;
|
||||
|
||||
if (sections.dataset.animating === '1') return;
|
||||
const forceReflow = el => el.offsetHeight;
|
||||
|
||||
if (checkbox.checked) {
|
||||
if (sections.classList.contains('open')) return;
|
||||
sections.dataset.animating = '1';
|
||||
|
||||
sections.style.maxHeight = '0px';
|
||||
sections.style.removeProperty('opacity');
|
||||
forceReflow(sections);
|
||||
|
||||
const target = sections.scrollHeight;
|
||||
sections.classList.add('open'); // opacity -> 1 via CSS
|
||||
sections.style.maxHeight = target + 'px';
|
||||
|
||||
const onEndOpen = (e) => {
|
||||
if (e.propertyName !== 'max-height') return;
|
||||
sections.style.maxHeight = 'auto';
|
||||
sections.dataset.animating = '0';
|
||||
sections.removeEventListener('transitionend', onEndOpen);
|
||||
};
|
||||
sections.addEventListener('transitionend', onEndOpen);
|
||||
|
||||
} else {
|
||||
const isClosedNow = (!sections.classList.contains('open') && (sections.style.maxHeight === '0px' || !sections.style.maxHeight));
|
||||
if (isClosedNow) return;
|
||||
|
||||
sections.dataset.animating = '1';
|
||||
|
||||
const current = sections.scrollHeight;
|
||||
sections.style.maxHeight = current + 'px';
|
||||
sections.style.removeProperty('opacity');
|
||||
forceReflow(sections);
|
||||
|
||||
sections.classList.remove('open');
|
||||
sections.style.maxHeight = '0px';
|
||||
|
||||
const onEndClose = (e) => {
|
||||
if (e.propertyName !== 'max-height') return;
|
||||
sections.dataset.animating = '0';
|
||||
sections.removeEventListener('transitionend', onEndClose);
|
||||
sections.style.maxHeight = '0px';
|
||||
// Reset velden
|
||||
if (selectEl) selectEl.value = '0';
|
||||
qtyInputs.forEach(inp => inp.value = '0');
|
||||
optChecks.forEach(opt => {
|
||||
opt.checked = false;
|
||||
const hidden = document.getElementById(opt.id + '-hidden');
|
||||
if (hidden) hidden.value = '0';
|
||||
});
|
||||
updateUI(); // na reset opnieuw rekenen
|
||||
};
|
||||
sections.addEventListener('transitionend', onEndClose);
|
||||
}
|
||||
}
|
||||
|
||||
function computeTotals() {
|
||||
let once = 0; // eenmalig
|
||||
let service = 0; // per maand
|
||||
|
||||
// extras (globaal) → eenmalig
|
||||
extrasEls.forEach(el => {
|
||||
if (!el.checked) return;
|
||||
// globale extras tellen we als eenmalig (pas aan als je hier ook service wilt)
|
||||
once += toNumberSafe(el.value);
|
||||
});
|
||||
|
||||
// producten
|
||||
prodCheckboxes.forEach(cb => {
|
||||
if (!cb.checked) return;
|
||||
|
||||
const idx = getIdxFromCb(cb);
|
||||
const baseVal = toNumberSafe(cb.dataset.base || 0);
|
||||
|
||||
let itemOnce = 0;
|
||||
let itemSvc = 0;
|
||||
|
||||
if (idx) {
|
||||
const selectEl = document.getElementById(`item-${idx}`);
|
||||
if (selectEl) {
|
||||
const sel = selectEl.options[selectEl.selectedIndex];
|
||||
itemOnce = toNumberSafe(selectEl.value || 0);
|
||||
itemSvc = sel ? toNumberSafe(sel.dataset.service || 0) : 0;
|
||||
}
|
||||
|
||||
// Base en item zijn *alternatief*: als er een itemprijs is, laat base weg.
|
||||
once += (itemOnce > 0 ? itemOnce : baseVal);
|
||||
service += itemSvc;
|
||||
|
||||
const wrap = document.querySelector(`.product-wrap[data-wrap-idx="${idx}"]`);
|
||||
if (wrap) {
|
||||
// quantities → eenmalig + (optioneel) per maand
|
||||
wrap.querySelectorAll('.qty-item').forEach(inp => {
|
||||
const qty = toQtySafe(inp.value);
|
||||
if (!qty) return;
|
||||
const unitOnce = toNumberSafe(inp.dataset.unit || 0);
|
||||
const unitSvc = toNumberSafe(inp.dataset.unitService || 0);
|
||||
once += qty * unitOnce;
|
||||
service += qty * unitSvc;
|
||||
});
|
||||
|
||||
// optionals → eenmalig (uitgezonderd inbegrepen)
|
||||
// optionals (eenmalig + service)
|
||||
wrap.querySelectorAll('.optional-item').forEach(opt => {
|
||||
if (!opt.checked) return;
|
||||
|
||||
const sel = selectEl ? selectEl.options[selectEl.selectedIndex] : null;
|
||||
const selectedCode = sel ? sel.dataset.code : '';
|
||||
let requiredFor = [];
|
||||
try { requiredFor = JSON.parse(opt.dataset.requiredFor || '[]'); } catch (e) { requiredFor = []; }
|
||||
|
||||
if (requiredFor.indexOf(selectedCode) !== -1) return; // inbegrepen → niet rekenen
|
||||
|
||||
const onceVal = toNumberSafe(opt.value || 0);
|
||||
const svcVal = toNumberSafe(opt.dataset.service || 0);
|
||||
|
||||
once += onceVal;
|
||||
service += svcVal;
|
||||
});
|
||||
|
||||
}
|
||||
} else {
|
||||
// Geen idx/select → alleen base
|
||||
once += baseVal;
|
||||
}
|
||||
});
|
||||
|
||||
return { once, service };
|
||||
}
|
||||
|
||||
|
||||
function computeProductSubtotalPair(idx) {
|
||||
let once = 0;
|
||||
let service = 0;
|
||||
|
||||
const wrap = document.querySelector(`.product-wrap[data-wrap-idx="${idx}"]`);
|
||||
if (!wrap) return { once: 0, service: 0 };
|
||||
|
||||
const cb = wrap.querySelector(`#prod-${idx}`);
|
||||
if (!cb || !cb.checked) return { once: 0, service: 0 };
|
||||
|
||||
const baseVal = toNumberSafe(cb.dataset.base || 0);
|
||||
|
||||
// item-select
|
||||
const selectEl = document.getElementById(`item-${idx}`);
|
||||
let itemOnce = 0;
|
||||
let itemSvc = 0;
|
||||
if (selectEl) {
|
||||
const sel = selectEl.options[selectEl.selectedIndex];
|
||||
itemOnce = toNumberSafe(selectEl.value || 0);
|
||||
itemSvc = sel ? toNumberSafe(sel.dataset.service || 0) : 0;
|
||||
}
|
||||
|
||||
// Base en item zijn *alternatief*: als er een itemprijs is, geen base tellen.
|
||||
once += (itemOnce > 0 ? itemOnce : baseVal);
|
||||
service += itemSvc;
|
||||
|
||||
// optionals (eenmalig, behalve inbegrepen)
|
||||
// optionals (eenmalig + service)
|
||||
wrap.querySelectorAll('.optional-item').forEach(opt => {
|
||||
if (!opt.checked) return;
|
||||
|
||||
const sel = selectEl ? selectEl.options[selectEl.selectedIndex] : null;
|
||||
const selectedCode = sel ? sel.dataset.code : '';
|
||||
let requiredFor = [];
|
||||
try { requiredFor = JSON.parse(opt.dataset.requiredFor || '[]'); } catch (e) { requiredFor = []; }
|
||||
|
||||
if (requiredFor.indexOf(selectedCode) !== -1) return; // inbegrepen → niet rekenen
|
||||
|
||||
const onceVal = toNumberSafe(opt.value || 0);
|
||||
const svcVal = toNumberSafe(opt.dataset.service || 0);
|
||||
|
||||
once += onceVal;
|
||||
service += svcVal;
|
||||
});
|
||||
|
||||
|
||||
// quantities (eenmalig + periodiek)
|
||||
wrap.querySelectorAll('.qty-item').forEach(inp => {
|
||||
const qty = toQtySafe(inp.value);
|
||||
if (!qty) return;
|
||||
const unitOnce = toNumberSafe(inp.dataset.unit || 0);
|
||||
const unitSvc = toNumberSafe(inp.dataset.unitService || 0);
|
||||
once += qty * unitOnce;
|
||||
service += qty * unitSvc;
|
||||
});
|
||||
|
||||
return { once, service };
|
||||
}
|
||||
|
||||
|
||||
function updateProductSubtotals(idx) {
|
||||
const pair = computeProductSubtotalPair(idx);
|
||||
const onceSpan = document.querySelector(`.product-subtotal-once[data-idx="${idx}"]`);
|
||||
const svcSpan = document.querySelector(`.product-subtotal-service[data-idx="${idx}"]`);
|
||||
if (onceSpan) onceSpan.textContent = pair.once.toLocaleString('nl-NL');
|
||||
if (svcSpan) svcSpan.textContent = pair.service.toLocaleString('nl-NL');
|
||||
}
|
||||
|
||||
function updateAllProductSubtotals() {
|
||||
document.querySelectorAll('.product-subtotal-once').forEach(span => {
|
||||
const idx = span.getAttribute('data-idx');
|
||||
updateProductSubtotals(idx);
|
||||
});
|
||||
}
|
||||
|
||||
// === UI UPDATE ===
|
||||
function updateUI() {
|
||||
// header totals
|
||||
const { once, service } = computeTotals();
|
||||
if (totalOnceEl) totalOnceEl.textContent = once.toLocaleString('nl-NL');
|
||||
if (totalServiceEl) totalServiceEl.textContent = service.toLocaleString('nl-NL');
|
||||
if (hiddenTotalEl) hiddenTotalEl.value = once; // hidden bewaart eenmalig (compatibel met bestaande verwerkingen)
|
||||
|
||||
// per product
|
||||
updateAllProductSubtotals();
|
||||
}
|
||||
|
||||
// === BINDINGS ===
|
||||
prodCheckboxes.forEach(cb => {
|
||||
toggleSection(cb); // initial state
|
||||
cb.addEventListener('change', () => { toggleSection(cb); updateUI(); });
|
||||
const idx = getIdxFromCb(cb);
|
||||
if (idx) {
|
||||
const selectEl = document.getElementById(`item-${idx}`);
|
||||
if (selectEl) selectEl.addEventListener('change', () => updateUI());
|
||||
}
|
||||
});
|
||||
|
||||
extrasEls.forEach(el => {
|
||||
const hidden = document.getElementById(el.id + '-hidden');
|
||||
const sync = () => {
|
||||
if (hidden) hidden.value = el.checked ? el.value : '0';
|
||||
updateUI();
|
||||
};
|
||||
el.addEventListener('change', sync);
|
||||
sync(); // init
|
||||
});
|
||||
|
||||
optionalEls.forEach(el => {
|
||||
const hidden = document.getElementById(el.id + '-hidden');
|
||||
const sync = () => {
|
||||
if (hidden) hidden.value = el.checked ? el.value : '0';
|
||||
updateUI(); // triggert totals + subtotals
|
||||
};
|
||||
el.addEventListener('change', sync);
|
||||
sync(); // init
|
||||
});
|
||||
|
||||
document.querySelectorAll('.qty-item').forEach(inp => {
|
||||
inp.addEventListener('input', () => {
|
||||
updateUI();
|
||||
const w = inp.closest('.product-wrap');
|
||||
if (w) updateProductSubtotals(w.getAttribute('data-wrap-idx'));
|
||||
});
|
||||
});
|
||||
|
||||
if (calculateBtn) calculateBtn.addEventListener('click', () => updateUI());
|
||||
|
||||
document.querySelectorAll('.item-select').forEach(select => {
|
||||
const idx = select.dataset.idx || (select.id.match(/^item-(\d+)$/) || [])[1];
|
||||
if (!idx) return;
|
||||
const wrap = document.querySelector(`.product-wrap[data-wrap-idx="${idx}"]`);
|
||||
const optionals = wrap ? Array.from(wrap.querySelectorAll('.optional-item')) : [];
|
||||
const applyState = () => {
|
||||
const selectedOption = select.options[select.selectedIndex];
|
||||
const selectedCode = selectedOption ? selectedOption.dataset.code : '';
|
||||
optionals.forEach(opt => {
|
||||
const raw = opt.dataset.requiredFor || '[]'; let requiredFor = [];
|
||||
try { requiredFor = JSON.parse(raw); } catch (e) { requiredFor = []; }
|
||||
const must = requiredFor.indexOf(selectedCode) !== -1;
|
||||
const hidden = document.getElementById(opt.id + '-hidden');
|
||||
if (must) { opt.checked = true; opt.disabled = true; if (hidden) hidden.value = '0'; }
|
||||
else { opt.disabled = false; if (hidden) hidden.value = opt.checked ? opt.value : '0'; }
|
||||
});
|
||||
updateUI();
|
||||
};
|
||||
select.addEventListener('change', applyState);
|
||||
applyState();
|
||||
});
|
||||
|
||||
// Init (UI + subtotals)
|
||||
updateUI();
|
||||
|
||||
// === SUBMIT ===
|
||||
form.addEventListener('submit', async function (ev) {
|
||||
ev.preventDefault();
|
||||
ev.stopPropagation();
|
||||
if (typeof ev.stopImmediatePropagation === 'function') ev.stopImmediatePropagation();
|
||||
|
||||
if (!form.checkValidity()) { form.reportValidity(); return; }
|
||||
|
||||
const honeypot = document.getElementById('company');
|
||||
if (honeypot && honeypot.value && honeypot.value.trim() !== '') { alert('Bot detectie: formulier niet verzonden.'); return; }
|
||||
|
||||
const totals = computeTotals();
|
||||
hiddenTotalEl.value = totals.once; // compatibel
|
||||
|
||||
const firstName = (form.querySelector('[name="firstName"]')?.value || '').trim();
|
||||
const lastName = (form.querySelector('[name="lastName"]')?.value || '').trim();
|
||||
const email = (form.querySelector('[name="email"]')?.value || '').trim();
|
||||
const phone = (form.querySelector('[name="phone"]')?.value || '').trim();
|
||||
const descFree = (form.querySelector('[name="description"]')?.value || '').trim();
|
||||
|
||||
const emailOk = /^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(email);
|
||||
if (!emailOk) {
|
||||
const emailEl = form.querySelector('[name="email"]');
|
||||
if (emailEl) { emailEl.setCustomValidity('Vul een geldig e-mailadres in.'); form.reportValidity(); emailEl.setCustomValidity(''); }
|
||||
return;
|
||||
}
|
||||
|
||||
// Beschrijving multiline
|
||||
const lines = [];
|
||||
lines.push('Ingediend via offerteformulier');
|
||||
lines.push('Voornaam: ' + firstName);
|
||||
lines.push('Achternaam: ' + lastName);
|
||||
lines.push('E-mail: ' + email);
|
||||
lines.push('Telefoon: ' + phone);
|
||||
if (descFree) lines.push('Aanvullende info: ' + descFree);
|
||||
|
||||
document.querySelectorAll('.product-wrap').forEach(wrap => {
|
||||
const idx = wrap.getAttribute('data-wrap-idx');
|
||||
const cb = wrap.querySelector('#prod-' + idx);
|
||||
if (!cb || !cb.checked) return;
|
||||
|
||||
const titleLabel = wrap.querySelector('label[for="prod-' + idx + '"]');
|
||||
const title = titleLabel ? titleLabel.textContent.trim() : ('Onderdeel #' + idx);
|
||||
|
||||
lines.push('');
|
||||
lines.push('[' + title + ']');
|
||||
|
||||
// basis (eenmalig)
|
||||
const base = toNumberSafe(cb.dataset.base || 0);
|
||||
if (base) lines.push(' Basis: €' + base.toLocaleString('nl-NL'));
|
||||
|
||||
// gekozen item: toon label + service
|
||||
const selectEl = document.getElementById('item-' + idx);
|
||||
let serviceForThis = 0;
|
||||
if (selectEl && selectEl.options && selectEl.selectedIndex >= 0) {
|
||||
const opt = selectEl.options[selectEl.selectedIndex];
|
||||
const txt = (opt && opt.textContent ? opt.textContent : '').trim();
|
||||
if (txt) lines.push(' Keuze: ' + txt);
|
||||
serviceForThis = toNumberSafe(opt?.dataset?.service || 0);
|
||||
}
|
||||
|
||||
// optionals (eenmalig; inbegrepen overslaan)
|
||||
wrap.querySelectorAll('.optional-item').forEach(optEl => {
|
||||
if (!optEl.checked) return;
|
||||
const lbl = wrap.querySelector('label[for="' + optEl.id + '"]');
|
||||
const optTxt = lbl ? lbl.textContent.replace(/\s+/g,' ').trim() : 'Optie';
|
||||
|
||||
const sel = (selectEl && selectEl.options && selectEl.selectedIndex >= 0) ? selectEl.options[selectEl.selectedIndex] : null;
|
||||
const selectedCode = sel && sel.dataset ? sel.dataset.code : '';
|
||||
|
||||
let requiredFor = [];
|
||||
try { requiredFor = JSON.parse(optEl.dataset.requiredFor || '[]'); } catch(e) { requiredFor = []; }
|
||||
const isIncluded = requiredFor.indexOf(selectedCode) !== -1;
|
||||
|
||||
const priceShown = toNumberSafe(optEl.value || 0);
|
||||
lines.push(' Optioneel: ' + optTxt + (isIncluded ? ' (inbegrepen)' : (priceShown ? ' (€' + priceShown.toLocaleString('nl-NL') + ')' : '')));
|
||||
});
|
||||
|
||||
// quantities (eenmalig)
|
||||
wrap.querySelectorAll('.qty-item').forEach(q => {
|
||||
const qty = toQtySafe(q.value);
|
||||
if (!qty) return;
|
||||
const qLab = wrap.querySelector('label[for="' + q.id + '"]');
|
||||
const qTxt = qLab ? qLab.textContent.replace(/\s+/g,' ').trim() : 'Aantal-item';
|
||||
const unit = toNumberSafe(q.dataset.unit || 0);
|
||||
lines.push(' ' + qTxt + ': ' + qty + ' × €' + unit.toLocaleString('nl-NL') + ' = €' + (qty * unit).toLocaleString('nl-NL'));
|
||||
});
|
||||
|
||||
// per-onderdeel subtotals
|
||||
const pair = computeProductSubtotalPair(idx);
|
||||
lines.push(' Kosten eenmalig: €' + pair.once.toLocaleString('nl-NL'));
|
||||
lines.push(' Kosten per maand: €' + pair.service.toLocaleString('nl-NL'));
|
||||
});
|
||||
|
||||
lines.push('');
|
||||
lines.push('Totaal eenmalig: €' + totals.once.toLocaleString('nl-NL'));
|
||||
lines.push('Totaal per maand: €' + totals.service.toLocaleString('nl-NL'));
|
||||
|
||||
const payload = {
|
||||
salutationName: '',
|
||||
firstName,
|
||||
lastName,
|
||||
middleName: '',
|
||||
emailAddress: email,
|
||||
phoneNumber: phone,
|
||||
description: lines.join('\n')
|
||||
};
|
||||
|
||||
try {
|
||||
const res = await fetch(ESPO_ENDPOINT, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },
|
||||
body: JSON.stringify(payload)
|
||||
});
|
||||
|
||||
const text = await res.text().catch(() => '');
|
||||
if (!res.ok) {
|
||||
if (res.status === 409 || res.status === 422 || /duplicate/i.test(text)) {
|
||||
alert('We hebben dit e-mailadres al in het systeem. We koppelen je inzending aan het bestaande contact en nemen contact op.');
|
||||
return;
|
||||
}
|
||||
throw new Error(`LeadCapture HTTP ${res.status} ${res.statusText} — ${text}`);
|
||||
}
|
||||
|
||||
alert('Bedankt! Je aanvraag is ontvangen. We nemen zo spoedig mogelijk contact op.');
|
||||
form.reset();
|
||||
updateUI();
|
||||
} catch (e) {
|
||||
console.error('[LeadCapture] Fout:', e);
|
||||
alert('Er ging iets mis bij het versturen. Probeer het later opnieuw of neem contact op.');
|
||||
}
|
||||
});
|
||||
|
||||
})();
|
||||
</script>
|
||||
Reference in New Issue
Block a user