commit ae16f86d5ea9144282628da79840a04dc54951b1 Author: StartIT Date: Tue Dec 2 16:34:42 2025 +0100 Init diff --git a/.editorconfig b/.editorconfig new file mode 100755 index 0000000..0a6cf5e --- /dev/null +++ b/.editorconfig @@ -0,0 +1,14 @@ +; https://editorconfig.org + +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 2 +indent_style = space +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..94b0a14 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/public/ +/resources/_gen/ +/node_modules/ +/.DS_Store diff --git a/.hugo_build.lock b/.hugo_build.lock new file mode 100644 index 0000000..e69de29 diff --git a/.jshintrc b/.jshintrc new file mode 100644 index 0000000..873eef9 --- /dev/null +++ b/.jshintrc @@ -0,0 +1,59 @@ +{ + "maxerr": 50, + "bitwise": true, + "camelcase": false, + "curly": true, + "eqeqeq": true, + "forin": true, + "freeze": true, + "immed": true, + "indent": 2, + "latedef": true, + "newcap": false, + "noarg": true, + "noempty": true, + "nonbsp": true, + "nonew": true, + "plusplus": false, + "undef": true, + "unused": false, + "strict": true, + "maxparams": false, + "maxdepth": 4, + "maxstatements": false, + "maxcomplexity": false, + "maxlen": 400, + "browser": true, + "devel": true, + "asi": false, + "boss": false, + "debug": false, + "eqnull": false, + "es3": false, + "es5": false, + "esversion": 12, + "moz": false, + "evil": true, + "expr": true, + "funcscope": false, + "globalstrict": false, + "iterator": false, + "lastsemic": false, + "laxbreak": false, + "laxcomma": false, + "loopfunc": true, + "multistr": true, + "noyield": false, + "notypeof": false, + "proto": false, + "scripturl": false, + "shadow": false, + "sub": false, + "supernew": false, + "validthis": false, + "globals": { + "jQuery": false, + "google": false, + "$": false + } +} diff --git a/.markdownlint.json b/.markdownlint.json new file mode 100755 index 0000000..7d41e3f --- /dev/null +++ b/.markdownlint.json @@ -0,0 +1,5 @@ +{ + "MD033": false, + "MD034": false, + "MD013": false +} diff --git a/.prettierrc b/.prettierrc new file mode 100755 index 0000000..f222a15 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,12 @@ +{ + "overrides": [ + { + "files": ["*.html"], + "options": { + "parser": "go-template", + "goTemplateBracketSpacing": true, + "bracketSameLine": true + } + } + ] +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..beb2049 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,6 @@ +{ + "recommendations": [ + "budparr.language-hugo-vscode", + "tamasfe.even-better-toml" + ] +} diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..3a332ec --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,7 @@ +--- +title: "{{ replace .Name "-" " " | title }}" +date: {{ .Date }} +draft: true +# description +description: "This is meta description" +--- \ No newline at end of file diff --git a/assets/images/background/about-overlay.jpg b/assets/images/background/about-overlay.jpg new file mode 100755 index 0000000..287e132 Binary files /dev/null and b/assets/images/background/about-overlay.jpg differ diff --git a/assets/images/background/banner.png b/assets/images/background/banner.png new file mode 100755 index 0000000..1015d11 Binary files /dev/null and b/assets/images/background/banner.png differ diff --git a/assets/images/background/banner.svg b/assets/images/background/banner.svg new file mode 100644 index 0000000..b07c559 --- /dev/null +++ b/assets/images/background/banner.svg @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/background/check-video.png b/assets/images/background/check-video.png new file mode 100755 index 0000000..e31273c Binary files /dev/null and b/assets/images/background/check-video.png differ diff --git a/assets/images/background/ctaBannerHome.svg b/assets/images/background/ctaBannerHome.svg new file mode 100644 index 0000000..1fb00cc --- /dev/null +++ b/assets/images/background/ctaBannerHome.svg @@ -0,0 +1,1112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/background/ctaBannerHome_old.svg b/assets/images/background/ctaBannerHome_old.svg new file mode 100644 index 0000000..891219e --- /dev/null +++ b/assets/images/background/ctaBannerHome_old.svg @@ -0,0 +1,1107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @keyframes gearSpin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } +#gear { transform-box: fill-box; transform-origin: center; animation: gearSpin 30s linear infinite; } +.graphHoverGrow { transform-box: fill-box; transform-origin: bottom; } + +.infoHoverGrow { transform-box: fill-box; transform-origin: center; } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/background/ctaMidCopy.svg b/assets/images/background/ctaMidCopy.svg new file mode 100644 index 0000000..b39729b --- /dev/null +++ b/assets/images/background/ctaMidCopy.svg @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/background/ctaMidDevelopment.svg b/assets/images/background/ctaMidDevelopment.svg new file mode 100644 index 0000000..44662d6 --- /dev/null +++ b/assets/images/background/ctaMidDevelopment.svg @@ -0,0 +1,441 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/background/ctaMidPhone.svg b/assets/images/background/ctaMidPhone.svg new file mode 100644 index 0000000..8a779bf --- /dev/null +++ b/assets/images/background/ctaMidPhone.svg @@ -0,0 +1,481 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/background/testimonial.jpg b/assets/images/background/testimonial.jpg new file mode 100755 index 0000000..bcff9e7 Binary files /dev/null and b/assets/images/background/testimonial.jpg differ diff --git a/assets/images/banner/newsBubble.svg b/assets/images/banner/newsBubble.svg new file mode 100644 index 0000000..042a0a0 --- /dev/null +++ b/assets/images/banner/newsBubble.svg @@ -0,0 +1,1299 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/banner/newsBubbleSmall.svg b/assets/images/banner/newsBubbleSmall.svg new file mode 100644 index 0000000..ec93e27 --- /dev/null +++ b/assets/images/banner/newsBubbleSmall.svg @@ -0,0 +1,1294 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/banner/newsDebt.svg b/assets/images/banner/newsDebt.svg new file mode 100644 index 0000000..9ab1706 --- /dev/null +++ b/assets/images/banner/newsDebt.svg @@ -0,0 +1,268 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/blog/Algemene Voorwaarden.pdf b/assets/images/blog/Algemene Voorwaarden.pdf new file mode 100644 index 0000000..05e59ba Binary files /dev/null and b/assets/images/blog/Algemene Voorwaarden.pdf differ diff --git a/assets/images/blog/Converteren - Toegang.pdf b/assets/images/blog/Converteren - Toegang.pdf new file mode 100644 index 0000000..ea9f9ea Binary files /dev/null and b/assets/images/blog/Converteren - Toegang.pdf differ diff --git a/assets/images/blog/SEO_SEA_Analyse.pdf b/assets/images/blog/SEO_SEA_Analyse.pdf new file mode 100644 index 0000000..3b10b18 Binary files /dev/null and b/assets/images/blog/SEO_SEA_Analyse.pdf differ diff --git a/assets/images/blog/ai-circle.jpg b/assets/images/blog/ai-circle.jpg new file mode 100644 index 0000000..a11ad17 Binary files /dev/null and b/assets/images/blog/ai-circle.jpg differ diff --git a/assets/images/career/logo-1.png b/assets/images/career/logo-1.png new file mode 100755 index 0000000..dbe7f59 Binary files /dev/null and b/assets/images/career/logo-1.png differ diff --git a/assets/images/career/logo-2.png b/assets/images/career/logo-2.png new file mode 100755 index 0000000..c0a9c9b Binary files /dev/null and b/assets/images/career/logo-2.png differ diff --git a/assets/images/career/logo-3.png b/assets/images/career/logo-3.png new file mode 100755 index 0000000..d280d2e Binary files /dev/null and b/assets/images/career/logo-3.png differ diff --git a/assets/images/career/logo-4.png b/assets/images/career/logo-4.png new file mode 100755 index 0000000..67dad5f Binary files /dev/null and b/assets/images/career/logo-4.png differ diff --git a/assets/images/career/logo-5.png b/assets/images/career/logo-5.png new file mode 100755 index 0000000..5a93ee5 Binary files /dev/null and b/assets/images/career/logo-5.png differ diff --git a/assets/images/check-video.png b/assets/images/check-video.png new file mode 100755 index 0000000..e4f68b4 Binary files /dev/null and b/assets/images/check-video.png differ diff --git a/assets/images/cta/ctaMidCopy.svg b/assets/images/cta/ctaMidCopy.svg new file mode 100644 index 0000000..9a6de43 --- /dev/null +++ b/assets/images/cta/ctaMidCopy.svg @@ -0,0 +1,463 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/cta/ctaMidPhone.svg b/assets/images/cta/ctaMidPhone.svg new file mode 100644 index 0000000..874f711 --- /dev/null +++ b/assets/images/cta/ctaMidPhone.svg @@ -0,0 +1,475 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/cta/ctaSmallCloud.svg b/assets/images/cta/ctaSmallCloud.svg new file mode 100644 index 0000000..a7601ad --- /dev/null +++ b/assets/images/cta/ctaSmallCloud.svg @@ -0,0 +1,141 @@ + + + + + + + Cloud + + + + + image/svg+xml + + Cloud + + + + Josh "Cheeseness" Bush + + + Originally created for the official shirt for the 2014 Open Source Developers' Conference held at Griffith University. + + + cloud + + + 2014-10-22 + + + + + + + + + + + + + + + + + + diff --git a/assets/images/cta/ctaSmallMailbox.svg b/assets/images/cta/ctaSmallMailbox.svg new file mode 100644 index 0000000..2a79032 --- /dev/null +++ b/assets/images/cta/ctaSmallMailbox.svg @@ -0,0 +1,253 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/cta/ctaSmallWeb.svg b/assets/images/cta/ctaSmallWeb.svg new file mode 100644 index 0000000..44b713b --- /dev/null +++ b/assets/images/cta/ctaSmallWeb.svg @@ -0,0 +1,198 @@ + + + + diff --git a/assets/images/download-mobile-img.jpg b/assets/images/download-mobile-img.jpg new file mode 100755 index 0000000..4996cf4 Binary files /dev/null and b/assets/images/download-mobile-img.jpg differ diff --git a/assets/images/email/email-01.png b/assets/images/email/email-01.png new file mode 100755 index 0000000..ccc2876 Binary files /dev/null and b/assets/images/email/email-01.png differ diff --git a/assets/images/email/icon_login.png b/assets/images/email/icon_login.png new file mode 100644 index 0000000..bdc7d4d Binary files /dev/null and b/assets/images/email/icon_login.png differ diff --git a/assets/images/email/icon_login.svg b/assets/images/email/icon_login.svg new file mode 100644 index 0000000..8eafbdb --- /dev/null +++ b/assets/images/email/icon_login.svg @@ -0,0 +1,30 @@ + + diff --git a/assets/images/email/icon_question.png b/assets/images/email/icon_question.png new file mode 100644 index 0000000..8758f38 Binary files /dev/null and b/assets/images/email/icon_question.png differ diff --git a/assets/images/email/icon_question.svg b/assets/images/email/icon_question.svg new file mode 100644 index 0000000..9e9d396 --- /dev/null +++ b/assets/images/email/icon_question.svg @@ -0,0 +1,52 @@ + +? diff --git a/assets/images/email/logo_light.png b/assets/images/email/logo_light.png new file mode 100644 index 0000000..b7fd8bb Binary files /dev/null and b/assets/images/email/logo_light.png differ diff --git a/assets/images/email/slogan_light.png b/assets/images/email/slogan_light.png new file mode 100644 index 0000000..3d0b176 Binary files /dev/null and b/assets/images/email/slogan_light.png differ diff --git a/assets/images/favicon.png b/assets/images/favicon.png new file mode 100644 index 0000000..034f45f Binary files /dev/null and b/assets/images/favicon.png differ diff --git a/assets/images/feature/handtekening.png b/assets/images/feature/handtekening.png new file mode 100644 index 0000000..714847a Binary files /dev/null and b/assets/images/feature/handtekening.png differ diff --git a/assets/images/feature/portal.png b/assets/images/feature/portal.png new file mode 100644 index 0000000..d5a3c99 Binary files /dev/null and b/assets/images/feature/portal.png differ diff --git a/assets/images/hugo.svg b/assets/images/hugo.svg new file mode 100644 index 0000000..1678b84 --- /dev/null +++ b/assets/images/hugo.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/assets/images/icon/espocrm.svg b/assets/images/icon/espocrm.svg new file mode 100644 index 0000000..5a1bbac --- /dev/null +++ b/assets/images/icon/espocrm.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/icon/google-play.png b/assets/images/icon/google-play.png new file mode 100755 index 0000000..d012a90 Binary files /dev/null and b/assets/images/icon/google-play.png differ diff --git a/assets/images/logo-small.webp b/assets/images/logo-small.webp new file mode 100644 index 0000000..498ef79 Binary files /dev/null and b/assets/images/logo-small.webp differ diff --git a/assets/images/logo.svg b/assets/images/logo.svg new file mode 100644 index 0000000..a45a7e2 --- /dev/null +++ b/assets/images/logo.svg @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/logo.webp b/assets/images/logo.webp new file mode 100644 index 0000000..f4f3989 Binary files /dev/null and b/assets/images/logo.webp differ diff --git a/assets/images/logo/espocrm.svg b/assets/images/logo/espocrm.svg new file mode 100644 index 0000000..79d96f8 --- /dev/null +++ b/assets/images/logo/espocrm.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/logo/hugo.svg b/assets/images/logo/hugo.svg new file mode 100644 index 0000000..a4dcd1d --- /dev/null +++ b/assets/images/logo/hugo.svg @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/logo/logoDark.svg b/assets/images/logo/logoDark.svg new file mode 100644 index 0000000..a5dad02 --- /dev/null +++ b/assets/images/logo/logoDark.svg @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/logo/nextcloud.svg b/assets/images/logo/nextcloud.svg new file mode 100644 index 0000000..bb8bb50 --- /dev/null +++ b/assets/images/logo/nextcloud.svg @@ -0,0 +1,49 @@ + + diff --git a/assets/images/logo/shopify.svg b/assets/images/logo/shopify.svg new file mode 100644 index 0000000..b81e58f --- /dev/null +++ b/assets/images/logo/shopify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/logo/wordpress.svg b/assets/images/logo/wordpress.svg new file mode 100644 index 0000000..a71ceeb --- /dev/null +++ b/assets/images/logo/wordpress.svg @@ -0,0 +1,78 @@ + + + + + WordPress logo - Brandlogos.net + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/logo/zimbra.svg b/assets/images/logo/zimbra.svg new file mode 100644 index 0000000..95a8dd5 --- /dev/null +++ b/assets/images/logo/zimbra.svg @@ -0,0 +1,56 @@ + + + + + + + + + diff --git a/assets/images/logoDark.svg b/assets/images/logoDark.svg new file mode 100644 index 0000000..a5dad02 --- /dev/null +++ b/assets/images/logoDark.svg @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/logo_light.png b/assets/images/logo_light.png new file mode 100644 index 0000000..05e47b0 Binary files /dev/null and b/assets/images/logo_light.png differ diff --git a/assets/images/logo_light.webp b/assets/images/logo_light.webp new file mode 100644 index 0000000..3956637 Binary files /dev/null and b/assets/images/logo_light.webp differ diff --git a/assets/images/marker.png b/assets/images/marker.png new file mode 100755 index 0000000..37b905c Binary files /dev/null and b/assets/images/marker.png differ diff --git a/assets/images/partner/client-logo-1.png b/assets/images/partner/client-logo-1.png new file mode 100755 index 0000000..29420bd Binary files /dev/null and b/assets/images/partner/client-logo-1.png differ diff --git a/assets/images/partner/client-logo-2.png b/assets/images/partner/client-logo-2.png new file mode 100755 index 0000000..164ddff Binary files /dev/null and b/assets/images/partner/client-logo-2.png differ diff --git a/assets/images/partner/client-logo-3.png b/assets/images/partner/client-logo-3.png new file mode 100755 index 0000000..9608be3 Binary files /dev/null and b/assets/images/partner/client-logo-3.png differ diff --git a/assets/images/partner/client-logo-4.png b/assets/images/partner/client-logo-4.png new file mode 100755 index 0000000..640ccb0 Binary files /dev/null and b/assets/images/partner/client-logo-4.png differ diff --git a/assets/images/partner/client-logo-5.png b/assets/images/partner/client-logo-5.png new file mode 100755 index 0000000..2411099 Binary files /dev/null and b/assets/images/partner/client-logo-5.png differ diff --git a/assets/images/shape/page-title.png b/assets/images/shape/page-title.png new file mode 100755 index 0000000..ccc2876 Binary files /dev/null and b/assets/images/shape/page-title.png differ diff --git a/assets/images/slogan_dark.png b/assets/images/slogan_dark.png new file mode 100644 index 0000000..5e7ea84 Binary files /dev/null and b/assets/images/slogan_dark.png differ diff --git a/assets/images/slogan_light.png b/assets/images/slogan_light.png new file mode 100644 index 0000000..1816306 Binary files /dev/null and b/assets/images/slogan_light.png differ diff --git a/assets/images/wordpress.svg b/assets/images/wordpress.svg new file mode 100644 index 0000000..be9de5c --- /dev/null +++ b/assets/images/wordpress.svg @@ -0,0 +1 @@ +WordPress logo - Brandlogos.net \ No newline at end of file diff --git a/assets/jsconfig.json b/assets/jsconfig.json new file mode 100644 index 0000000..06edad1 --- /dev/null +++ b/assets/jsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "*": [ + "../../../.cache/hugo_cache/modules/filecache/modules/pkg/mod/github.com/gohugoio/hugo-mod-jslibs-dist/popperjs/v2@v2.21100.20000/package/dist/cjs/*", + "../../../.cache/hugo_cache/modules/filecache/modules/pkg/mod/github.com/twbs/bootstrap@v5.3.2+incompatible/js/*" + ] + } + } +} \ No newline at end of file diff --git a/assets/scss/custom.scss b/assets/scss/custom.scss new file mode 100644 index 0000000..e69de29 diff --git a/assets/scss/notice.scss b/assets/scss/notice.scss new file mode 100644 index 0000000..6484df4 --- /dev/null +++ b/assets/scss/notice.scss @@ -0,0 +1,116 @@ +$note-color: #207495; +$abstract-color: #0ca68c; +$info-color: #207495; +$todo-color: #8d05a8; +$tip-color: #19cfb0; +$success-color: #04d904; +$question-color: #207495; +$warning-color: #e38902; +$danger-color: #e31a00; +$failure-color: #e31a00; +$bug-color: #e31a00; +$example-color: #b83acf; +$quote-color: #918e91; + +.notice { + margin-bottom: 1.5rem; + border: 1px solid; + padding: 1.5rem; + border-color: currentColor; + border-radius: 8px; +} + +.notice-head { + display: flex; + align-items: center; +} + +.notice-head svg { + margin-right: 0.75rem; +} + +.notice-head p { + font-size: 1.25rem; + font-weight: 600; + color: currentColor; + margin: 0; + line-height: 1; +} + +.notice-body { + margin-top: 0.75rem; +} + +.notice-body p { + margin: 0; + color:#444; +} + +.notice.note { + color: $note-color; + background-color: rgba($note-color, 0.1); +} + +.notice.abstract { + color: $abstract-color; + background-color: rgba($abstract-color, 0.15); +} + +.notice.info { + color: $info-color; + background-color: rgba($info-color, 0.15); +} + +.notice.todo { + color: $todo-color; + background-color: rgba($todo-color, 0.15); +} + +.notice.tip { + color: $tip-color; + background-color: rgba($tip-color, 0.15); +} + +.notice.success { + color: $success-color; + background-color: rgba($success-color, 0.15); +} + +.notice.question { + color: $question-color; + background-color: rgba($question-color, 0.15); +} + +.notice.warning { + color: $warning-color; + background-color: rgba($warning-color, 0.15); +} + +.notice.failure { + color: $failure-color; + background-color: rgba($failure-color, 0.15); +} + +.notice.danger { + color: $danger-color; + background-color: rgba($danger-color, 0.15); +} + +.notice.bug { + color: $bug-color; + background-color: rgba($bug-color, 0.15); +} + +.notice.example { + color: $example-color; + background-color: rgba($example-color, 0.15); +} + +.notice.quote { + color: $quote-color; + background-color: rgba($quote-color, 0.15); +} +// darkmode +.dark .notice-head p { + color: #d1d5db; +} \ No newline at end of file diff --git a/config/_default/hugo.toml b/config/_default/hugo.toml new file mode 100644 index 0000000..d3c8d41 --- /dev/null +++ b/config/_default/hugo.toml @@ -0,0 +1,94 @@ +######################## default configuration #################### +baseURL = "https://start-it.nl/" +title = "StartIT - Slimme IT zonder fratsen" +theme = "agico-hugo" +# Default time zone for time stamps; use any valid tz database name: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List +timeZone = "Europe/Amsterdam" +# post pagination +pagination.pagerSize = 6 # see https://gohugo.io/extras/pagination/ +# post excerpt +summaryLength = 10 # see https://gohugo.io/content-management/excerpts/ +# disable language +disableLanguages = [] +# example: ["fr"] for disable french language. see https://gohugo.io/content-management/multilingual/ +hasCJKLanguage = false # If hasCJKLanguage true, auto-detect Chinese/Japanese/Korean Languages in the content. see: https://gohugo.io/getting-started/configuration/#hascjklanguage +defaultContentLanguage = "nl" +defaultContentLanguageInSubdir = false + +############################# Modules ############################ +[module] +[[module.mounts]] +source = "assets" +target = "assets" + +[[module.mounts]] +source = "hugo_stats.json" +target = "assets/watching/hugo_stats.json" + +########################### Services ############################# +[services] +[services.googleAnalytics] +ID = 'G-J5E56WD6ZW' # see https://gohugo.io/templates/internal/#configure-google-analytics + +#[services.disqus] +#shortname = 'themefisher-template' # we use disqus to show comments in blog posts . To install disqus please follow this tutorial https://portfolio.peter-baumgartner.net/2017/09/10/how-to-install-disqus-on-hugo/ + +[privacy] + [privacy.googleAnalytics] + disable = false + respectDoNotTrack = false +############################# Build ############################## +[build] +noJSConfigInAssets = false +useResourceCacheWhen = 'fallback' +[build.buildStats] +enable = true +[[build.cachebusters]] +source = 'assets/.*\.(js|ts|jsx|tsx)' +target = '(js|scripts|javascript)' +[[build.cachebusters]] +source = 'assets/.*\.(css|sass|scss)$' +target = '(css|styles|scss|sass)' +[[build.cachebusters]] +source = '(postcss|tailwind)\.config\.js' +target = '(css|styles|scss|sass)' +[[build.cachebusters]] +source = 'assets/.*\.(.*)$' +target = '$1' + +############################# Imaging ############################## +[imaging] +# See https://github.com/disintegration/imaging +# Default JPEG or WebP quality setting. Default is 75. +quality = 90 +resampleFilter = "Lanczos" + +############################# Caches ############################### +[caches] +[caches.images] +dir = ":resourceDir/_gen" +maxAge = "720h" + +[caches.assets] +dir = ":resourceDir/_gen" +maxAge = "720h" + +############################# Outputs ############################## +[outputs] +home = ["HTML", "RSS", "JSON", "WebAppManifest"] + +############################# Markup ############################### +[markup] +[markup.goldmark.renderer] +unsafe= true + +############################ Media types ############################ +[mediaTypes] +[mediaTypes."application/manifest+json"] +suffixes = ["webmanifest"] + +############################ Output Format ########################### +[outputFormats] +[outputFormats.WebAppManifest] +mediaType = "application/manifest+json" +rel = "manifest" \ No newline at end of file diff --git a/config/_default/languages.toml b/config/_default/languages.toml new file mode 100644 index 0000000..6e7e1f1 --- /dev/null +++ b/config/_default/languages.toml @@ -0,0 +1,23 @@ +################################### Dutch language ##################################### +[nl] +languageName = "🇳🇱" +languageCode = "nl-NL" +contentDir = "content/dutch" +weight = 1 + +[nl.params] +home = "Home" +footer_content = "Voor MKB en ZZP leveren we websites, applicaties en beheer die groeien met je bedrijf. Je betaalt per oplevering, niet per medewerker." +copyright = "Alle rechten voorbehouden" + +################################### English language ##################################### +[en] +languageName = "🇬🇧" +languageCode = "en-EN" +contentDir = "content/english" +weight = 2 + +[en.params] +home = "Home" +footer_content = "For businesses and freelancers we provide websites, applications, and management that grow with your business. You pay per installation, not per employee." +copyright = "All rights reserved" \ No newline at end of file diff --git a/config/_default/menus.en.toml b/config/_default/menus.en.toml new file mode 100644 index 0000000..e72dd7d --- /dev/null +++ b/config/_default/menus.en.toml @@ -0,0 +1,63 @@ +############# English navigation ############## +# main menu +[[main]] +name = "Services" +hasChildren = true +weight = 1 + + [[main]] + weight = 1 + parent = "Services" + name = "Websites" + URL = "en/services/websites" + + [[main]] + weight = 2 + parent = "Services" + name = "CRM" + URL = "en/services/crm" + + [[main]] + weight = 3 + parent = "Services" + name = "E-mail" + URL = "en/services/email" + +[[main]] +name = "Information" +hasChildren = true +weight = 2 + + [[main]] + weight = 2 + parent = "Information" + name = "Calculate pricing" + URL = "en/price-calculator/" + + [[main]] + weight = 2 + parent = "Information" + name = "Knowledge base" + URL = "https://kennisbank.start-it.nl?source=StartIT-en" + +[[main]] +name = "News" +URL = "en/news/" +weight = 4 + +#Footer menu +[[footer]] +name = "About us" +URL = "en/about/" + +[[footer]] +name = "Contact" +URL = "en/contact/" + +[[footer]] +name = "Knowledge base" +URL = "https://kennisbank.start-it.nl/en?source=StartIT-en" + +[[footer]] +name = "Privacy Policy" +URL = "#" diff --git a/config/_default/menus.nl.toml b/config/_default/menus.nl.toml new file mode 100644 index 0000000..ba51d82 --- /dev/null +++ b/config/_default/menus.nl.toml @@ -0,0 +1,63 @@ +############# Dutch navigation ############## +# main menu +[[main]] +name = "Diensten" +hasChildren = true +weight = 1 + + [[main]] + weight = 1 + parent = "Diensten" + name = "Websites" + URL = "diensten/websites" + + [[main]] + weight = 2 + parent = "Diensten" + name = "Relatiebeheer" + URL = "diensten/relatiebeheer" + + [[main]] + weight = 3 + parent = "Diensten" + name = "E-mail" + URL = "diensten/email" + +[[main]] +name = "Informatie" +hasChildren = true +weight = 2 + + [[main]] + weight = 2 + parent = "Informatie" + name = "Prijs berekenen" + URL = "prijs-berekenen/" + + [[main]] + weight = 2 + parent = "Informatie" + name = "Kennisbank" + URL = "https://kennisbank.start-it.nl?source=StartIT-nl" + +[[main]] +name = "Nieuws" +URL = "nieuws/" +weight = 4 + +#Footer menu +[[footer]] +name = "Over ons" +URL = "overons" + +[[footer]] +name = "Contact" +URL = "contact/" + +[[footer]] +name = "Kennisbank" +URL = "https://kennisbank.start-it.nl?source=StartIT" + +[[footer]] +name = "Privacy Beleid" +URL = "#" \ No newline at end of file diff --git a/config/_default/module.toml b/config/_default/module.toml new file mode 100644 index 0000000..fed5606 --- /dev/null +++ b/config/_default/module.toml @@ -0,0 +1,90 @@ +[hugoVersion] +extended = true +min = "0.145.0" + +[[imports]] +path = "github.com/gohugoio/hugo-mod-bootstrap-scss/v5" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/components/cookie-consent" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/components/custom-script" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/components/render-link" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/icons/font-awesome" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/components/preloader" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/components/crisp-chat" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/pwa" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/images" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/shortcodes/buttons" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/shortcodes/codepen" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/shortcodes/collapse" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/shortcodes/notice" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/shortcodes/video" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/shortcodes/tabs" + +# [[imports]] +# path = "github.com/gethugothemes/hugo-modules/shortcodes/gallery" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/shortcodes/table-of-contents" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/shortcodes/youtube-lite" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/shortcodes/vimeo-lite" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/seo-tools/baidu-analytics" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/seo-tools/matomo-analytics" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/seo-tools/plausible-analytics" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/seo-tools/counter-analytics" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/seo-tools/site-verifications" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/seo-tools/basic-seo" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/gzip-caching" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/adsense" + +[[imports]] +path = "github.com/gethugothemes/hugo-modules/accordion" diff --git a/config/_default/params.toml b/config/_default/params.toml new file mode 100644 index 0000000..58d35ea --- /dev/null +++ b/config/_default/params.toml @@ -0,0 +1,147 @@ +#################### default parameters ################################ +# favicon +favicon = "images/favicon.png" + +# logo +logo = "images/logo.svg" + +# use `px` or `x` with logo_width, example: "100px". +# Note: logo_width is not work with .svg file +logo_width = "220px" + +# if logo_webp set false, will not generate WEBP version of logo | default is true +logo_webp = true + +# logo text will only show when logo is missing. +logo_text = "StartIT" + +# purgeCSS +purge_css = true + +# search +search = true + +# Main Sections +mainSections = ["nieuws","news"] + +# image gallery shortcode +image_gallery = false + +# contact form action +contact_form_action = "#" # contact form works with [https://airform.io/] or [https://formspree.io] + +# google tag manager, see https://developers.google.com/tag-manager/ +google_tag_manager = "GTM-52294C3T" # example: G-XXXXXXXXXX +google_adsense = "" # example: ca-pub-xxxxxxxxxxxxxxxx + +# custom script on header, example: custom_script= "" +custom_script = "" + +# copyright +theme_copyright = true + +# Preloader +[preloader] +enable = false +preloader = "images/preloader.gif" # use jpg, png, svg or gif format. + +# Navigation button +[navigation_button] +enable = true +label = "Contact" +link = "contact" + +# contact info +[contact_info] +address = "" +kvk = "In aanvraag" +btw = "In aanvraag" +mobile = "+31 6 57969491" +email = "info@start-it.nl" + +# google_map +[google_map] +enable = false +embed_url = "https://www.google.com/maps/embed?pb=!1m14!1m12!1m3!1d193559.60513193885!2d-74.07513185946965!3d40.709896425630156!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!5e0!3m2!1sen!2sbd!4v1677481601686!5m2!1sen!2sbd" + +# Subscription +[subscription] +enable = true +# mailchimp subsciption +mailchimp_form_action = "" # replace this url with yours +mailchimp_form_name = "" # replace this code with yours + +# Crisp Chat +[crisp_chat] +enable = false +crisp_website_id = "4de82ce9-f117-42f2-96dc-f5a8fbc14651" # replace this code with yours +# Check this video tutorial to get your crisp website ID - https://www.youtube.com/watch?v=nW5UX6iVdFc + +# seo meta data for OpenGraph / Twitter Card +[metadata] +keywords = ["StartIT", "IT Diensten", "Barneveld"] +description = "StartIT is een IT dienstverlener in Barneveld en bedient het MKB." +author = "Machiel Heinen" +image = "images/logo.png" # this image will be used as fallback if a page has no image of its own + +# matomo tracking: see https://matomo.org/ +[matomo] +enable = false +url = "" # your matomo url +id = "" # your matomo id + +# baidu analytics: see https://tongji.baidu.com/ +[baidu] +enable = false +analytics_id = "" # Your ID + +# plausible analytics: see https://plausible.io/ +[plausible] +enable = false +domain = "" # yourdomain.com + +# counter analytics: see https://counter.dev/setup.html +[counter] +enable = false +username = "" # your username + +# site verifications +[site_verification] +google = "" # Your verification code +bing = "" # Your verification code +baidu = "" # Your verification code +facebook = "" # Your verification code +mastodon = "" # Your verification code + +# cookies +[cookies] +enable = true +expire_days = 2 +content = "Deze website gebruikt uitsluitend noodzakelijke cookies en vervallen 2 dagen na laatste bezoek." +button = "Prima" + +############################# social site ######################## +#[[social]] +#title = "facebook" +#icon = "fab fa-facebook" # fontawesome icon pack : https://fontawesome.com/icons/ +#link = "#" + +#[[social]] +#title = "twitter" +#icon = "fab fa-twitter" # fontawesome icon pack : https://fontawesome.com/icons/ +#link = "#" + +#[[social]] +#title = "instagram" +#icon = "fab fa-instagram" # fontawesome icon pack : https://fontawesome.com/icons/ +#link = "#" + +#[[social]] +#title = "github" +#icon = "fab fa-github" # fontawesome icon pack : https://fontawesome.com/icons/ +#link = "#" + +#[[social]] +#title = "linkedin" +#icon = "fab fa-linkedin" # fontawesome icon pack : https://fontawesome.com/icons/ +#link = "#" \ No newline at end of file diff --git a/content/dutch/_index.md b/content/dutch/_index.md new file mode 100644 index 0000000..b59bb11 --- /dev/null +++ b/content/dutch/_index.md @@ -0,0 +1,76 @@ +--- +############################### Banner ################################# +banner: + enable : true + bg_image : "images/background/banner.svg" + title : "Slimme IT
zonder fratsen" + watermark : "" + content : "Wij zijn een nieuwe IT dienstverlener in Barneveld. Voor het MKB en ZZP leveren we websites, applicaties en beheer die groeien met je bedrijf. Je betaalt per oplevering, niet per medewerker." + image : "images/background/ctaBannerHome.svg" + button: + enable : true + label : "Meer weten" + link : "#services" + +service: + enable : true + section : "service" + +##################################### About ############################# +about: + enable : true + about_item: + # about item loop + - image : "images/cta/ctaMidPhone.svg" + subtitle : "" + title : "Jouw wens, ons werk" + content : "Wij houden rekening met jouw huidige en toekomstige bedrijfsvoering. Of je nu gaat starten, groeit of stabiliseert. Wij kunnen jouw bedrijf voorzien van de oplossingen die nodig zijn.

Ons onderscheid

" + button: + enable : true + label : "Meer over onze werkwijze" + link : "overons/" + + # about item loop + - image : "images/cta/ctaMidCopy.svg" + subtitle : "" + title : "Vrijheid in software" + content : "Wij werken uitsluitend met open-source software. Zo blijf jij eigenaar van je keuzes. Met een professionele implementatie schaal je gecontroleerd op, zonder onnodige kosten of extra onderhoud.

Wij gebruiken o.a.:

" + button: + enable : true + label : "Bekijk diensten en prijzen" + link : "offerte/" + +# testimonial +testimonial: + enable : false + subtitle : "testimonial" + title : "What Our Clients Says?" + bg_image : "images/background/testimonial.jpg" + testimonial_item: + # testimonial item loop + - name : "Alice kelly" + designation : "Happy client" + content : Lorem ipsum dolor amet constur adipi sicing elit sed eiusmtempor incid dolore magna aliqu. + enim minim veniam quis nostrud exercittion.ullamco laboris nisi ut aliquip excepteur sint occaecat cuida + tat nonproident sunt in culpa qui officia deserunt mollit anim id est laborum. sed ut perspiciatis. + +############################## Download ########################### +download: + enable : true + title : "Probeer het zelf" + image : "images/download-mobile-img.jpg" + content : "Wil je eerst een proefperiode van maximaal 30 dagen om de software zelf te ervaren? Dat kan geheel vrijblijvend. Meld jezelf aan en krijg toegang tot onze demonstratie omgevingen.

Liever gewoon persoonlijk advies? Dat kan uiteraard ook." + playstore: + label : "Demonstratie" + link : "#" + appstore: + label : "Persoonlijk advies" + link : "#" + +############################## pricing ########################### +pricing: + enable : false + section : "diensten" + show_items : 3 + # pricing item comes from "content/*/pricing.md" +--- \ No newline at end of file diff --git a/content/dutch/assets.md b/content/dutch/assets.md new file mode 100644 index 0000000..31709cd --- /dev/null +++ b/content/dutch/assets.md @@ -0,0 +1,13 @@ +--- +title: "Assets" +date: 2020-06-05 +draft: false +watermark: "Status" +page_header_image: "" +description: "" +--- +![logo](images/email/logo_light.png) +![slogan](images/email/slogan_light.png) +![icon question](images/email/icon_question.png) +![icon login](images/email/icon_login.png) +![background](images/email/email-01.png) \ No newline at end of file diff --git a/content/dutch/career/Web-Project-Manager.1.md b/content/dutch/career/Web-Project-Manager.1.md new file mode 100755 index 0000000..6e79bb7 --- /dev/null +++ b/content/dutch/career/Web-Project-Manager.1.md @@ -0,0 +1,55 @@ +--- +title: "Web Project Manager - Team of PHP MySQL Developers" +date: 2019-04-10T09:51:57+06:00 +# watermark text +watermark: "Career" +# page header background image +page_header_image: "images/background/about.jpg" +# meta description +description : "Cupidatat non proident sunt culpa qui officia deserunt mollit
anim idest laborum sed ut perspiciatis." +# career logo +image : "images/career/logo-1.png" +# location +location : "London, United Kingdom" +# job type +job_type : "Full time" +# section +job_category : "MySQL Developer" +# job apply link +apply_link : "#" +--- + + +### Jobs Description + +Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut +labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut +aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse +cillum dolore eu fugiat nulla pariatur. + +Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum +sed ut perspiciatis unde. + + +##### Responsibilities: + +Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim +id est laborum sed ut perspiciatis unde. + +* Talking with clients or account managers to discuss the business objectives and requirements of the job; +* Estimating the time required to complete the work and providing quotes for clients; +* Developing design briefs that suit the client's purpose; +* Thinking creatively to produce new ideas, concepts and developing interactive design; +* Presenting finalized ideas and concepts to clients or account managers; + + +##### Requirements: + +Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim +id est laborum sed ut perspiciatis unde. + +* Talking with clients or account managers to discuss the business objectives and requirements of the job; +* Estimating the time required to complete the work and providing quotes for clients; +* Developing design briefs that suit the client's purpose; +* Thinking creatively to produce new ideas, concepts and developing interactive design; +* Presenting finalized ideas and concepts to clients or account managers; diff --git a/content/dutch/career/Web-Project-Manager.2.md b/content/dutch/career/Web-Project-Manager.2.md new file mode 100755 index 0000000..2b4b902 --- /dev/null +++ b/content/dutch/career/Web-Project-Manager.2.md @@ -0,0 +1,55 @@ +--- +title: "Web Project Manager - Team of PHP MySQL Developers" +date: 2019-04-10T09:51:57+06:00 +# watermark text +watermark: "Career" +# page header background image +page_header_image: "images/background/about.jpg" +# meta description +description : "Cupidatat non proident sunt culpa qui officia deserunt mollit
anim idest laborum sed ut perspiciatis." +# career logo +image : "images/career/logo-2.png" +# location +location : "London, United Kingdom" +# job type +job_type : "Full time" +# section +job_category : "MySQL Developer" +# job apply link +apply_link : "#" +--- + + +### Jobs Description + +Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut +labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut +aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse +cillum dolore eu fugiat nulla pariatur. +

+Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum +sed ut perspiciatis unde. + + +##### Responsibilities: + +Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim +id est laborum sed ut perspiciatis unde. + +* Talking with clients or account managers to discuss the business objectives and requirements of the job; +* Estimating the time required to complete the work and providing quotes for clients; +* Developing design briefs that suit the client's purpose; +* Thinking creatively to produce new ideas, concepts and developing interactive design; +* Presenting finalized ideas and concepts to clients or account managers; + + +##### Requirements: + +Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim +id est laborum sed ut perspiciatis unde. + +* Talking with clients or account managers to discuss the business objectives and requirements of the job; +* Estimating the time required to complete the work and providing quotes for clients; +* Developing design briefs that suit the client's purpose; +* Thinking creatively to produce new ideas, concepts and developing interactive design; +* Presenting finalized ideas and concepts to clients or account managers; diff --git a/content/dutch/career/Web-Project-Manager.3.md b/content/dutch/career/Web-Project-Manager.3.md new file mode 100755 index 0000000..3b010b5 --- /dev/null +++ b/content/dutch/career/Web-Project-Manager.3.md @@ -0,0 +1,55 @@ +--- +title: "Web Project Manager - Team of PHP MySQL Developers" +date: 2019-04-10T09:51:57+06:00 +# watermark text +watermark: "Career" +# page header background image +page_header_image: "images/background/about.jpg" +# meta description +description : "Cupidatat non proident sunt culpa qui officia deserunt mollit
anim idest laborum sed ut perspiciatis." +# career logo +image : "images/career/logo-3.png" +# location +location : "London, United Kingdom" +# job type +job_type : "Full time" +# section +job_category : "MySQL Developer" +# job apply link +apply_link : "#" +--- + + +### Jobs Description + +Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut +labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut +aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse +cillum dolore eu fugiat nulla pariatur. +

+Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum +sed ut perspiciatis unde. + + +##### Responsibilities: + +Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim +id est laborum sed ut perspiciatis unde. + +* Talking with clients or account managers to discuss the business objectives and requirements of the job; +* Estimating the time required to complete the work and providing quotes for clients; +* Developing design briefs that suit the client's purpose; +* Thinking creatively to produce new ideas, concepts and developing interactive design; +* Presenting finalized ideas and concepts to clients or account managers; + + +##### Requirements: + +Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim +id est laborum sed ut perspiciatis unde. + +* Talking with clients or account managers to discuss the business objectives and requirements of the job; +* Estimating the time required to complete the work and providing quotes for clients; +* Developing design briefs that suit the client's purpose; +* Thinking creatively to produce new ideas, concepts and developing interactive design; +* Presenting finalized ideas and concepts to clients or account managers; diff --git a/content/dutch/career/Web-Project-Manager.4.md b/content/dutch/career/Web-Project-Manager.4.md new file mode 100755 index 0000000..36bc555 --- /dev/null +++ b/content/dutch/career/Web-Project-Manager.4.md @@ -0,0 +1,55 @@ +--- +title: "Web Project Manager - Team of PHP MySQL Developers" +date: 2019-04-10T09:51:57+06:00 +# watermark text +watermark: "Career" +# page header background image +page_header_image: "images/background/about.jpg" +# meta description +description : "Cupidatat non proident sunt culpa qui officia deserunt mollit
anim idest laborum sed ut perspiciatis." +# career logo +image : "images/career/logo-4.png" +# location +location : "London, United Kingdom" +# job type +job_type : "Full time" +# section +job_category : "MySQL Developer" +# job apply link +apply_link : "#" +--- + + +### Jobs Description + +Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut +labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut +aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse +cillum dolore eu fugiat nulla pariatur. +

+Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum +sed ut perspiciatis unde. + + +##### Responsibilities: + +Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim +id est laborum sed ut perspiciatis unde. + +* Talking with clients or account managers to discuss the business objectives and requirements of the job; +* Estimating the time required to complete the work and providing quotes for clients; +* Developing design briefs that suit the client's purpose; +* Thinking creatively to produce new ideas, concepts and developing interactive design; +* Presenting finalized ideas and concepts to clients or account managers; + + +##### Requirements: + +Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim +id est laborum sed ut perspiciatis unde. + +* Talking with clients or account managers to discuss the business objectives and requirements of the job; +* Estimating the time required to complete the work and providing quotes for clients; +* Developing design briefs that suit the client's purpose; +* Thinking creatively to produce new ideas, concepts and developing interactive design; +* Presenting finalized ideas and concepts to clients or account managers; diff --git a/content/dutch/career/Web-Project-Manager.5.md b/content/dutch/career/Web-Project-Manager.5.md new file mode 100755 index 0000000..cb59a93 --- /dev/null +++ b/content/dutch/career/Web-Project-Manager.5.md @@ -0,0 +1,55 @@ +--- +title: "Web Project Manager - Team of PHP MySQL Developers" +date: 2019-04-10T09:51:57+06:00 +# watermark text +watermark: "Career" +# page header background image +page_header_image: "images/background/about.jpg" +# meta description +description : "Cupidatat non proident sunt culpa qui officia deserunt mollit
anim idest laborum sed ut perspiciatis." +# career logo +image : "images/career/logo-5.png" +# location +location : "London, United Kingdom" +# job type +job_type : "Full time" +# section +job_category : "MySQL Developer" +# job apply link +apply_link : "#" +--- + + +### Jobs Description + +Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut +labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut +aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse +cillum dolore eu fugiat nulla pariatur. +

+Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum +sed ut perspiciatis unde. + + +##### Responsibilities: + +Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim +id est laborum sed ut perspiciatis unde. + +* Talking with clients or account managers to discuss the business objectives and requirements of the job; +* Estimating the time required to complete the work and providing quotes for clients; +* Developing design briefs that suit the client's purpose; +* Thinking creatively to produce new ideas, concepts and developing interactive design; +* Presenting finalized ideas and concepts to clients or account managers; + + +##### Requirements: + +Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim +id est laborum sed ut perspiciatis unde. + +* Talking with clients or account managers to discuss the business objectives and requirements of the job; +* Estimating the time required to complete the work and providing quotes for clients; +* Developing design briefs that suit the client's purpose; +* Thinking creatively to produce new ideas, concepts and developing interactive design; +* Presenting finalized ideas and concepts to clients or account managers; diff --git a/content/dutch/career/_index.md b/content/dutch/career/_index.md new file mode 100755 index 0000000..2f5d3bb --- /dev/null +++ b/content/dutch/career/_index.md @@ -0,0 +1,11 @@ +--- +title: "Career" +# watermark text +watermark: "Career" +# page header background image +page_header_image: "images/background/about.jpg" +# meta description +description : "Cupidatat non proident sunt culpa qui officia deserunt mollit
anim idest laborum sed ut perspiciatis." + +draft: false +--- \ No newline at end of file diff --git a/content/dutch/changelog.md b/content/dutch/changelog.md new file mode 100644 index 0000000..424a972 --- /dev/null +++ b/content/dutch/changelog.md @@ -0,0 +1,77 @@ +--- +title: "Changelog" +description: "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt dolore magna aliquyam erat, sed diam voluptua. At vero eos et ustoLorem ipsum dolor sit amet, consetetur." +page_header_image: "images/background/about-overlay.jpg" +draft: false +--- + +### February Updates + +**Feb 6, 2019** + +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt dolore magna aliquyam erat, sed diam voluptua. At vero eos et ustoLorem ipsum dolor sit amet, consetetur." + +{{< changelog "changed" >}} +* Better support for using applying additional filters to posts_tax_query for categories for custom WordPress syncs + +* Reporting fine-tuning for speed improvements (up to 60% improvement in latency) + +* Replaced login / registration pre-app screens with a cleaner design +{{}} + + +{{< changelog "removed" >}} +* Removed an issue with the sync autolinker only interlinking selectively. +* Removed up an issue with prematurely logging out users +{{}} + +{{< changelog "security" >}} +1. Removed an issue with the sync autolinker only interlinking selectively. +2. Removed up an issue with prematurely logging out users +{{}} + +
+ + +### March Updates + +**Mar 6, 2019** + +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
invidunt dolore magna aliquyam erat, sed diam voluptua. At vero eos et ustoLorem ipsum dolor sit amet, consetetur." + +{{< changelog "added" >}} +* Some scheduled changelogs, tweets, and slack messages queued up this weekend and were not published on time. We fixed the issue and all delayed publications should be out. +* We now prioritize keywords over title and body so customers can more effectively influence search results +* Support form in the Assistant is now protected with reCaptcha to reduce spam reinitializeOnUrlChange added to the JavaScript API to improve support for pages with turbolinks +{{}} + + +{{< changelog "fixed" >}} +* Fixed an issue with the sync autolinker only interlinking selectively. +* Fixed up an issue with prematurely logging out users +{{}} + +
+ +### Changelog label + +{{< changelog "Added" >}} +{{}} + +{{< changelog "Changed" >}} +{{}} + +{{< changelog "Depricated" >}} +{{}} + +{{< changelog "Removed" >}} +{{}} + +{{< changelog "Fixed" >}} +{{}} + +{{< changelog "Security" >}} +{{}} + +{{< changelog "Unreleased" >}} +{{}} \ No newline at end of file diff --git a/content/dutch/contact.md b/content/dutch/contact.md new file mode 100644 index 0000000..fa80004 --- /dev/null +++ b/content/dutch/contact.md @@ -0,0 +1,10 @@ +--- +title: "Contact" +watermark: "Contact" +short_description: "Neem vrijblijvend contact op voor advies of om een afspraak in te plannen." +page_header_image: "images/background/banner.svg" +description : "Neem vrijblijvend contact op voor advies of om een afspraak in te plannen." + +layout: "contact" +draft: false +--- \ No newline at end of file diff --git a/content/dutch/diensten/cloud.md b/content/dutch/diensten/cloud.md new file mode 100644 index 0000000..b0fe3d0 --- /dev/null +++ b/content/dutch/diensten/cloud.md @@ -0,0 +1,54 @@ +--- +title: "Cloud toepassingen" +page_header_image: "images/background/banner.svg" +description: "De cloud is een onmisbaar stuk gereedschap voor bijna elk bedrijf. Wij leveren cloud oplossingen voor datacentrum of lokale opslag, geheel in eigen beheer.

Liever direct samenstellen? Ga dan naar de prijs berekening pagina.
Prijs berekenen" +layout: "product" +draft: false + +pricing_tables: + - pricing_table_info: + - name: "" + content: "**Nextcloud installatie**" + header: "images/logo/nextcloud.svg" + subheader: "Nextcloud op eigen server" + text: "Het systeem van [Nextcloud GmbH](https://nextcloud.com) is een van de meest solide cloud oplossingen verkrijgbaar.

StartIT is (nog) geen erkend partner van Nextcloud. De promotie op deze pagina is pas geldig zodra wij dit partnerschap gesloten hebben.

+ **Kenmerken;** + " + - name: "Kosten" + info : "" + price: "**€300,-**" + content: "" + pricing_table_data: + - table_row: + - product: "Drievoudige back-up" + info: "Back-ups over meerdere fysieke locaties" + - price: "€250,-" + - table_row: + - product: "Incl. S3 opslag" + info: "Onbeperkt voor 0,01 gb/per maand" + - icon: "fas fa-check text-primary" + + - pricing_table_info: + - name: "" + content: "**Templates**" + header: "" + subheader: "Professioneel en functioneel" + text: "Een nette handtekening zorgt ervoor dat je bedrijf visueel herkenbaar is en maakt het voor de ontvanger gemakkelijk om de bedrijfsgegevens te vinden. Wij maken deze als template die je voor een onbeperkt aantal medewerkers kan gebruiken.

Ook maken wij nieuwsbrief templates, zodat jij moeiteloos je klanten kan informeren. Deze templates kunnen handmatig gebruikt worden om nieuwsbrieven te versturen, of in een automatisch systeem zoals [EspoCRM relatiebeheer](/diensten/relatiebeheer/)" + - name: "" + price: "**per stuk**" + content: "" + pricing_table_data: + - table_row: + - product: "Handtekening" + info: "Herbruikbaar voor meerdere adressen" + - price: "€80,-" + - table_row: + - product: "Nieuwsbrief" + info: "Herbruikbaar voor meerdere mailings" + - price: "€300,-" + +--- + diff --git a/content/dutch/diensten/email.md b/content/dutch/diensten/email.md new file mode 100644 index 0000000..4583cd3 --- /dev/null +++ b/content/dutch/diensten/email.md @@ -0,0 +1,54 @@ +--- +title: "E-mail oplossingen" +page_header_image: "images/background/banner.svg" +description: "Een betrouwbare mail oplossing is een absolute must voor bedrijven. De mailbox moet groot genoeg zijn en de e-mail moet altijd aankomen. Wij bieden diverse oplossingen aan voor e-mail, zoals het adres zelf of het verzorgen van nieuwsbrieven.

Liever direct samenstellen? Ga dan naar de prijs berekening pagina.
Prijs berekenen" +layout: "product" +draft: false + +pricing_tables: + - pricing_table_info: + - name: "" + content: "**E-mail service**" + header: "images/logo/zimbra.svg" + subheader: "Zakelijke e-mailadressen" + text: "Onze mailoplossing is gebaseerd op [Zimbra](https://www.zimbra.com/). Deze e-mail kan gekoppeld worden aan elk mogelijk mailprogramma, kan via API benaderd worden of via een webomgeving.

+ **Kenmerken;** + " + - name: "Kosten" + info : "" + price: "**€20,-**" + content: "" + pricing_table_data: + - table_row: + - product: "Per aanvullende e-mail" + info: "" + - price: "€5,-" + - table_row: + - product: "Incl. DNS instellen" + info: "MX, SPF, DKIM en DMARC records" + - icon: "fas fa-check text-primary" + + - pricing_table_info: + - name: "" + content: "**Templates**" + header: "" + subheader: "Professioneel en functioneel" + text: "Een nette handtekening zorgt ervoor dat je bedrijf visueel herkenbaar is en maakt het voor de ontvanger gemakkelijk om de bedrijfsgegevens te vinden. Wij maken deze als template die je voor een onbeperkt aantal medewerkers kan gebruiken.

Ook maken wij nieuwsbrief templates, zodat jij moeiteloos je klanten kan informeren. Deze templates kunnen handmatig gebruikt worden om nieuwsbrieven te versturen, of in een automatisch systeem zoals [EspoCRM relatiebeheer](/diensten/relatiebeheer/)" + - name: "" + price: "**per stuk**" + content: "" + pricing_table_data: + - table_row: + - product: "Handtekening" + info: "Herbruikbaar voor meerdere adressen" + - price: "€80,-" + - table_row: + - product: "Nieuwsbrief" + info: "Herbruikbaar voor meerdere mailings" + - price: "€300,-" + +--- + diff --git a/content/dutch/diensten/relatiebeheer.md b/content/dutch/diensten/relatiebeheer.md new file mode 100644 index 0000000..e7c3772 --- /dev/null +++ b/content/dutch/diensten/relatiebeheer.md @@ -0,0 +1,76 @@ +--- +title: "Relatiebeheer" +page_header_image: "images/background/banner.svg" +description: "Jouw klanten en partners beheren was nog nooit zo eenvoudig. Met de CRM oplossing [EspoCRM](https://espocrm.com) kan je alles regelen, van automatische mailings en antwoorden, tot aan facturatie en betaalverwerking.

Liever direct samenstellen? Ga dan naar de prijs berekening pagina.
Prijs berekenen" +layout: "product" +draft: false + +pricing_tables: + - pricing_table_info: + - name: "" + content: "**EspoCRM installatie**" + header: "images/logo/espocrm.svg" + subheader: "Jouw bedrijf, jouw beheer" + text: "[EspoCRM](https://espocrm.com) is een OpenSource Software pakket wat door meer dan 50.000 bedrijven in gebruik is. Het is een schaalbare oplossing die met diverse extensies in functie uit te breiden is en met aanpassingen in de code geheel naar wens gemaakt kan worden.

+ **Kenmerken;** + " + - name: "Kosten" + info : "" + price: "**€325,-**" + content: "" + pricing_table_data: + - table_row: + - product: "Onbeperkte opslag met S3" + info: "Aanvullende kosten van €0,09 gb/maand." + - price: "€250,-" + - table_row: + - product: "Gegevens importeren" + info: "Zoals contactpersonen, historische facturen, et cetera. Prijs per stuk." + - price: "€0,09" + - table_row: + - product: "Incl. installeren extensies" + info: "Zoals het [Sales Pack](https://www.espocrm.com/extensions/sales-pack/) voor facturatie." + - icon: "fas fa-check text-primary" + + - pricing_table_info: + - name: "" + content: "**Workflows**" + header: "" + subheader: "Automatiseer je bedrijf" + text: "Stuur nette automatische e-mails op basis van klant interactie, zoals formulier invoer op de website of herinneringen van openstaande betaling. Ook geavanceerd gebruik is mogelijk, zoals interne processen en taken automatiseren of zelfs agenda beheer.{{< notice \"info\" \"Externe aankoop vereist\" >}}Hiervoor is de extensie [Advanced Pack](https://www.espocrm.com/extensions/advanced-pack/) van EspoCRM vereist.{{< /notice >}}" + - name: "" + price: "**€120,-**" + content: "" + pricing_table_data: + - table_row: + - product: "Gratis 1e formulier koppelen" + info: "Als wij de website hebben gemaakt." + - icon: "fas fa-check text-primary" + - table_row: + - product: "Gratis 1e nieuwsbrief workflow" + info: "Als wij de e-mail oplossing voorzien." + - icon: "fas fa-check text-primary" + + - pricing_table_info: + - name: "" + content: "**Portaal instellen**" + header: "" + subheader: "Het portaal voor externe partijen" + text: "Jouw klanten en partners kunnen inloggen op hetzelfde systeem als wat intern gebruikt word. Hier kunnen de partijen alleen de informatie zien die bij hun account horen, zoals historische aankopen, lopende service verzoeken of direct een bericht sturen.

Dit verhoogt vertrouwen door transparantie en verminderd het aantal serviceverzoeken over kanalen die meer tijd kosten, zoals telefonische afhandeling.

Door de gedeelde agenda bestaande uit taken, afspraken en gesprekken is er altijd duidelijkheid tussen alle partijen. Zelfs een afspraak maken tussen klant en partner is mogelijk." + - name: "" + price: "**€180,-**" + pricing_table_data: + - table_row: + - product: "Incl. Rechtenbeheer" + info: "Bepaal wie tot wat toegang heeft." + - icon: "fas fa-check text-primary" + - table_row: + - product: "Incl. E-mail templates" + info: "Als wij de e-mail oplossing voorzien." + - icon: "fas fa-check text-primary" + +--- + diff --git a/content/dutch/diensten/websites.md b/content/dutch/diensten/websites.md new file mode 100644 index 0000000..6e93c95 --- /dev/null +++ b/content/dutch/diensten/websites.md @@ -0,0 +1,112 @@ +--- +title: "Websites" +page_header_image: "images/background/banner.svg" +description: "Wij maken websites voor diverse doeleinden; van webshops tot wiki-sites en alles daartussen Op deze pagina is een globaal overzicht aan te verwachten kosten.

Liever direct samenstellen? Ga dan naar de prijs berekening pagina.
Prijs berekenen" +layout: "product" +draft: false + +pricing_tables: + - pricing_table_info: + - name: "" + content: "**HUGO website**" + header: "images/logo/hugo.svg" + subheader: "Professionele website" + text: "Een [HUGO](https://gohugo.io/) website is een technisch goed werkende website die op elk apparaat werkt. Een website ontwikkelen op dit systeem is handwerk design en code, waardoor je altijd een professioneel maatwerk resultaat krijgt.

*De website van StartIT draait ook op dit systeem.*

+ **Kenmerken;** + + **Aanbevolen voor;** + " + - name: "Kosten" + price: "**€800,-**" + content: "" + pricing_table_data: + - table_row: + - product: "Incl. Analytics" + info: "Self-hosted op basis van [Plausible](https://plausible.io/)" + - icon: "fas fa-check text-primary" + - table_row: + - product: "Pagina template toevoegen" + info: "Nieuwe indeling of functie" + - price: "€110,-" + - table_row: + - product: "Webshop module" + info: "Geschikt tot aan ~1000 producten" + - price: "€600,-" + + - pricing_table_info: + - name: "" + content: "**WordPress Website**" + header: "images/logo/wordpress.svg" + subheader: "Zelf te onderhouden" + text: "[WordPress](https://wordpress.org/) is een flexibel systeem dat geschikt is voor uiteenlopende toepassingen, van blogs tot uitgebreide bedrijfswebsites. Veel webdesigners werken met dit systeem.

*De prijzen die wij hanteren zijn **zonder** de aankoopprijzen van plugins.*

+ **Kenmerken;** + + **Aanbevolen voor;** + " + - name: "Kosten" + price: "**€1150,-**" + content: "" + pricing_table_data: + - table_row: + - product: "Incl. Analytics" + info: "Self-hosted op basis van [Plausible](https://plausible.io/)" + - icon: "fas fa-check text-primary" + - table_row: + - product: "Pagina template toevoegen" + info: "Nieuwe indeling of functie" + - price: "€110,-" + - table_row: + - product: "Webshop module" + info: "Geschikt tot aan ~1000 producten" + - price: "€600,-" + + - pricing_table_info: + - name: "" + content: "**Shopify Website**" + header: "images/logo/shopify.svg" + subheader: "Schaalbare webshop" + text: "De wereldstandaard voor grote webshops is [Shopify](https://www.shopify.com/nl). Hiermee kan je (honderd-)duizenden artikelen verkopen, met keuze uit elk betaalsysteem ter wereld.

*Wij maken gebruik van templates voor dit type website.*

+ **Kenmerken;** + + **Aanbevolen voor;** + " + - name: "Kosten" + price: "**€2350,-**" + content: "" + pricing_table_data: + - table_row: + - product: "Incl. Hosting" + info: "Onderdeel van Shopify diensten" + - icon: "fas fa-check text-primary" + - table_row: + - product: "Incl. Analytics" + info: "Self-hosted op basis van [Plausible](https://plausible.io/)" + - icon: "fas fa-check text-primary" + - table_row: + - product: "Pagina template toevoegen" + info: "Nieuwe indeling of functie" + - price: "€110,-" + - table_row: + - product: "Webshop module" + info: "Onderdeel van Shopify diensten" + - icon: "fas fa-check text-primary" +--- + diff --git a/content/dutch/faq.md b/content/dutch/faq.md new file mode 100644 index 0000000..b3ddcaa --- /dev/null +++ b/content/dutch/faq.md @@ -0,0 +1,40 @@ +--- +title: "Veelgestelde vragen" +draft: false +page_header_image: "images/background/banner.svg" +watermark: "FAQ" +description: "Voor vele sectoren is IT zowel niet belangrijk als essentieel. Soms moet het simpelweg gewoon werken. Hier proberen wij veelvoorkomende vragen preventief te beantwoorden.

Staat jouw vraag hier niet tussen, neem dan [contact](/contact) op." +--- + +## Software & rechten +#### Heb ik een Microsoft, Apple of Google account nodig? +Nee. Wij leveren systemen die zelfstandig zijn en werken zonder aanvullende licenties of software verplichtingen. Je bent vrij om systemen naar keuze te gebruiken zoals Windows op een laptop en Apple iOS voor de mobiel om jouw systemen aan te bedienen. + + +#### Is open-source software veilig? +Ja. Het feit dat de broncode leesbaar en aanpasbaar is voor iedereen, heeft geen invloed op de achterliggende veiligheidslagen in de software of systemen die de software draaien. + +#### Heeft of behoudt StartIT rechten over de software? +Nee, in geen enkel geval. Alle rechten zijn van de oorspronkelijke makers en/of de makers van aftakkingen die wij gebruiken. Wij zijn ook geen verkopende partij van de software, enkel een dienstverlener die de software instelt, optimaliseert of aanpast naar specifiek gebruik scenario. + +
+ +## Garanties & service +#### Wat valt er onder garantie? +**In het kort;** de werking van de systemen zelf. + +Wij zijn niet verantwoordelijk voor de opslag en behandeling van gebruikersdata, zoals afbeeldingen en documenten. De systemen worden technisch operationeel gehouden, publiek toegankelijk vanuit elk IP adres en beveiligt tegen kwaadwillenden. In geval van gebruikersproblemen, zoals het verwijderen van belangrijke bestanden zullen wij herstel uitvoeren (indien mogelijk) tegen facturatie. + +##### Kan garantie vervallen? +Op hardware aankopen, waaronder laptops of smartphones, behouden hun garantie ten alle tijden zoals besproken bij verkoop. De werking van software en diensten, waarbij garantie van werking onderhevig is aan een servicecontract, verliezen hun garantie indien: +- Overeenkomst ten einde is +- Er een betaalachterstand is +- Een gebruiker handmatig (met of zonder kennis) handelingen verricht die de werking in gevaar brengen + +#### Welke typen service zijn mogelijk? +Wij kunnen diverse handelingen doen ter service van jouw IT producten. Hieronder vallen de volgende werkzaamheden: +- Updaten en herconfigureren van servers en software +- Backups maken van data +- Kleine aanpassingen maken, zoals een website updaten met media of inhoud +- Periodieke training + diff --git a/content/dutch/nieuws/_index.md b/content/dutch/nieuws/_index.md new file mode 100755 index 0000000..73f80c5 --- /dev/null +++ b/content/dutch/nieuws/_index.md @@ -0,0 +1,11 @@ +--- +title: "Nieuws" +# watermark text +watermark: "Nieuws" +# page header background image +page_header_image: "images/background/banner.svg" +# meta description +description : "De laatste actualiteiten over ons bedrijf en algemeen IT vind je hier." + +draft: false +--- \ No newline at end of file diff --git a/content/dutch/nieuws/ai.md b/content/dutch/nieuws/ai.md new file mode 100755 index 0000000..697e4fb --- /dev/null +++ b/content/dutch/nieuws/ai.md @@ -0,0 +1,75 @@ +--- +title: "De AI bubbel" +date: 2025-10-25T07:51:57+02:00 +# watermark text +watermark: "Bubbel" +# page header background image +page_header_image: "images/banner/newsBubble.svg" +# meta description +description : "Steeds meer universiteiten, economen en IT-experts beginnen meldingen te maken dat AI een fiscale bubbel is. Is dit ook zo en wat is de potentiële impact?" +# post image +image : "images/banner/newsBubble.svg" +# post author +author : "Machiel Heinen" +# post categories +categories: ["Artificial Intelligence"] +# post tags +tags: ["AI"] +# type +type : "post" +--- + +## AI lost alles op +We zijn nu aanzienlijk gevorderd met zowel AI ontwikkeling, als implementatie. Het zit op onze telefoons, vrijwel elke grote website en in de analoge wereld is het volop aanwezig, zoals automatische leeftijdscan camera's bij winkels. Zelfs onze [ontlasting](https://www.thronescience.com/) krijgt de LLM behandeling. + +De snelheid waarmee AI is geïmplementeerd in ons dagelijks leven, is ongekend ten opzichte van elke andere technologie. Zelfs de smartphone had een langere aanloop naar complete adoptie. En dat is maar goed ook, hoe zouden we ooit zonder kunnen? + +### De vele nuttige toepassingen +Je kan [Will Smith spaghetti](https://en.wikipedia.org/wiki/Will_Smith_Eating_Spaghetti_test) laten eten, een [dakloze toevoegen](https://www.washingtonpost.com/dc-md-va/2025/10/23/ai-fake-intruder/) op een afbeelding of nabestaanden van bekende mensen [traumatiseren](https://www.washingtonpost.com/technology/2025/10/11/openai-sora-dead-celebrities-ai/). Ook kan je vrijuit elk intellectueel eigendom schenden; code, muziek, kunst, vormgeving... + +Waar ooit de promotie van AI bestond uit; *"het gaat al jouw vervelende taken overnemen"*, is de realiteit geheel omgekeerd. Het kan geen vaatwasser inruimen, geen toilet reinigen, fietsband plakken en ga zo maar door. Het enige wat AI kan overnemen, is wat het weet en waarop het getraind is. Het zijn daarom de fotografen, ontwerpers, programmeurs en soortgelijke beroepen de AI te vrezen hebben. + +> *De putjesschepper maakt zich (terecht) nergens zorgen over.* + +## Wat maakt AI een bubbel? +De bubbel bestaat uit meerdere onderdelen, in geen specifieke volgorde: +- **Ontwikkeling snelheid;** De AI-modellen worden iteratief beter, hoewel dit niet eens lineair is, doorbraak blijft uit. +- **Schaalbaarheid;** Hoeveel meer water en stroom heeft AI nodig om aanzienlijk te verbeteren? Zijn dergelijke voorraden theoretisch mogelijk, laat staan praktisch? +- **Geld rouleren;** NVIDIA geeft OpenAI miljarden aan investering. OpenAI investeert in Oracle voor serverparken. Oracle koopt hardware bij NVIDIA. NVIDIA geeft OpenAI miljarden... et cetera ad nauseam. [Lees meer hierover](https://www.noahpinion.blog/p/should-we-worry-about-ais-circular) +- **Geen praktisch verdienmodel;** Afgelopen jaar had OpenAI een een [verlies van 27 miljard](https://wlockett.medium.com/you-have-no-idea-how-screwed-openai-actually-is-8358dccfca1c). + +### Wat is het gevaar? +Een bubbel is pas een probleem als het gekoppeld is aan de (landelijke) economie. Het beste voorbeeld hiervan was de hypotheekbubbel uit 2008, waar de term *"Too big to fail"* naar voren kwam. In plaats van dat de banken om zouden vallen, kregen ze miljarden van de belastingbetaler die tevens nooit meer rente zou krijgen bij dezelfde bank. + +De bubbel van AI is een veelvoud groter dan de hypotheekbubbel. Wat veel mensen niet beseffen, is dat AI nu al hoort bij *"Too big to fail"* en deze positie alleen maar sterker wordt. Het is ook om deze reden dat AI bedrijven met geïnvesteerd of niet-bestaand geld smijten. + +> "Wij zijn bereid om veel financiële risico's aan te gaan met andermans geld" + +### De overheid afhankelijkheid +Een AI bedrijf is afhankelijk van overheden om gratie en immuniteit te krijgen van reguliere wetgeving en handhaving. Waar ik als individu geen mp3 bestand mag downloaden, mag een AI bedrijf elk nummer van elke artiest in elke uitvoering ooit downloaden en gebruiken voor training. Overheden maken dit mogelijk. + +Tevens is elke overheid op dit moment ook afhankelijk van AI bedrijven. Om burgers te monitoren, nieuw wapentuig te ontwikkelen en condensatie van macht te forceren. De gedachtegang is dan ook *"anders doet een ander het"*. + +### Een techno-piramidespel +Dankzij het rouleren van geld onder de grote spelers zijn ze aantrekkelijk op de beurs. Dit omdat ze het geld wat ze onderling rondpompen, ze het allemaal vermelden als inkomsten of investering. NVIDIA koopt 10 miljard OpenAI aandelen, OpenAI koopt 10 miljard aan serverparken bij Oracle en Oracle zelf bestelt voor 10 miljard aan hardware bij NVIDIA. Er zou dan 30 miljard *"extra geld"* in het systeem zitten; een boekhoudkundige illusie en hoewel geen fraude, is het wel een vorm van financiële oneerlijkheid. + +![AI-Grafiek](images/blog/ai-circle.jpg) + +Ze moeten dit vol blijven houden, zodat er een illusie is van oneindige groei(-potentie) waardoor er meer waarde per aandeel is. De overwaarde van de aandelen wordt vervolgens ingezet om de volgende ronde te maken in dezelfde financiële cirkel. + +Uiteindelijk gaat al het geld bij letterlijk een enkel persoon uitkomen. Dit zie je ook gebeuren bij [autobedrijven](https://www.tesla.com/) die 17 miljard dollar winst draaien per jaar, om vervolgens de directeur een bonus van [1 biljoen dollar](https://nos.nl/artikel/2589489-teslabaas-elon-musk-mag-van-aandeelhouders-bonus-van-1000-miljard-dollar-verdienen) uit te keren. + +> ***Ter verduidelijking:** dat is 59 jaar aan winst voor Tesla. Volgend jaar komt er weer een bonus ronde. In de AI sector gaat dit niet anders.* + +![bubbel](images/banner/newsBubbleSmall.svg) + +## StartIT en AI +Er zijn echte voordelen aan AI gebruik. De situaties waarbij het toepasbaar is, zijn echter beperkter in regelmaat en omvang dan het gepromoot wordt. Enkele toepassingen waarvoor StartIT een AI inzet: +- **Afbeeldingen globaal filteren;** Indien er een grote mediabibliotheek uitgezocht moet worden, zoals *"alle afbeeldingen met mensen zichtbaar"* filteren van andere afbeeldingen. +- **Vector zoeken;** Een AI inzetten om tientallen zoekopdrachten onderling te vergelijken met elkaar. Hierdoor kan je dieper op je zoekterm ingaan zonder aanvullende moeite. +- **Globale vertalingen;** Niet-kritische teksten vertalen, zoals een promotietekst van een product. + +### AI zonder fratsen +Wil jij voor jouw bedrijf ook AI inzetten, maar weet niet je wat de beste toepassing is? Dan kan je een vrijblijvend advies gesprek aanvragen waarin we met je meedenken. In veel gevallen is de wens eenvoudige automatisering en dat is het meest efficient zonder AI. + +Adviesgesprek aanvragen \ No newline at end of file diff --git a/content/dutch/nieuws/seo.md b/content/dutch/nieuws/seo.md new file mode 100755 index 0000000..c42df33 --- /dev/null +++ b/content/dutch/nieuws/seo.md @@ -0,0 +1,43 @@ +--- +title: "SEO/SEA: Hoe werkt het?" +date: 2025-11-14 +# watermark text +watermark: "SEO" +# page header background image +page_header_image: "images/banner/newsBubble.svg" +# meta description +description : "Het is voor veel bedrijven een onbegrepen onderwerp. Het staat los van een mooie of snelle website hebben, het is de content en kwaliteit wat leidend is. " +# post image +image : "images/banner/newsBubble.svg" +# post author +author : "Machiel Heinen" +# post categories +categories: ["Marketing","Websites"] +# post tags +tags: ["SEO"] +# type +type : "post" +draft: true +--- + +## Wat is SEO/SEA eigenlijk? +Search Engine Optimization[^1] staat voor de organische vindbaarheid van je website, gebaseerd op eigenschappen zoals kwaliteit van tekst of technische werking. Search Engine Advertisement[^2] is gebaseerd op advertentiebudget en zogeheten campagnes. + +Een ondernemer die de SEO/SEA goed geregeld heeft kan een groot deel van de marketing digitaliseren tegen relatief weinig kosten. Als het niet goed ingesteld is, kan het leiden tot hogere advertentiekosten of afhankelijkheid van niet-digitale marketing, zoals mond-tot-mond reclame. + +[^1]: [Search Engine Optimization](https://nl.wikipedia.org/wiki/Zoekmachineoptimalisatie) - op Wikipedia +[^2]: [Search Engine Advertisement](https://nl.wikipedia.org/wiki/Zoekmachinemarketing) - op Wikipedia + +### Waarom is het belangrijk? +De meeste ondernemers kunnen niet zonder een vorm van digitale marketing, het is in veel gevallen ook het beginpunt van het klantcontact. Naast zoekmachines tonen AI-overzichten steeds vaker directe antwoorden. Jouw SEO/SEA positie is in veel gevallen ook leidend voor je positie in deze overzichten. Als jouw pagina daarin voorkomt, blijf je zichtbaar. + +Digitale marketing heeft diverse functies voor een ondernemer: +- **Promoten** - zonder opzichtig te zijn +- **Informeren** - helder over kwaliteit en onderscheid +- **Uitnodigen** - zodat passanten veranderen in bezoekers + +{{< notice "info" "Alleen vindbaar op bedrijfsnaam?" >}}Dan is het raadzaam om meer te doen met je digitale marketing. Dit is te vergelijken met *"je bent de enige in de buurt"*. Aanvoer van nieuwe klanten zal beperkt blijven.{{< /notice >}} + + + +Adviesgesprek aanvragen \ No newline at end of file diff --git a/content/dutch/nieuws/techdebt.md b/content/dutch/nieuws/techdebt.md new file mode 100755 index 0000000..e932ee1 --- /dev/null +++ b/content/dutch/nieuws/techdebt.md @@ -0,0 +1,80 @@ +--- +title: "Technische schuld" +date: 2025-11-07 +# watermark text +watermark: "Groei" +# page header background image +page_header_image: "images/banner/newsDebt.svg" +# meta description +description : "Een snelle oplossing kiezen komt altijd terug met wraak. Technische schuld weerhoudt menig bedrijf van groei of zorgt voor hoge overheadkosten." +# post image +image : "images/banner/newsDebt.svg" +# post author +author : "Machiel Heinen" +# post categories +categories: ["Algemeen"] +# post tags +tags: ["Financiën","Bedrijfsvoering"] +# type +type : "post" +--- + +## Wat is technische schuld? +Snelle korte termijn oplossingen, die later aanvullende werkzaamheden nodig hebben om te corrigeren. Software as a Service (SaaS)[^1] toepassingen zijn het bekendste voorbeeld hiervan; snelle en "handige" tools die meestal maar een enkel kunstje beperkt kunnen uitvoeren. In de meest problematische gevallen zijn SaaS toepassingen afhankelijk van de werking van andere SaaS toepassingen. + +[^1]: [Software as a Service](https://nl.wikipedia.org/wiki/Software_as_a_Service) - op Wikipedia + +### Bouwen alleen systemen schuld op? +Ook gebruikers van systemen kunnen technische schuld opbouwen op meerdere manieren. Meestal is dit een onbedoeld gevolg van beperkte kennis, waardoor mensen met de beste bedoelingen handelen en niet opmerken dat het een anker vormt voor het bedrijf. + +Enkele voorbeelden van gebruiker opgebouwde schuld: +- Automatische processen onderbreken met een handmatige handeling +- Software buiten bedoelde functie gebruiken +- Informatie fragmenteren over diverse platformen +- In documenten in plaats van databases[^2] werken + +[^2]: [Databases](https://nl.wikipedia.org/wiki/Database) - op Wikipedia + +## De impact +Het grootste risico wat een bedrijf loopt met hoge technische schuld, is uitval van werking. Als er een probleem ergens in de (lange) ketting van *"snelle oplossingen"* plaatsvind, is het gedegen repareren daarvan vrijwel onmogelijk. + +### Een storing... Wat nu? +De eerste reactie is meestal *"repareer de ketting"*, maar dit is niet altijd een logische handeling om te doen. Als de verstoring een voorspelbaar gevolg is van de hoeveelheid technische schuld, zal het eenmalig repareren geen uitkomst bieden. De werking kan hersteld worden, maar de problemen blijven. + +Een bedrijf kan er dan beter voor kiezen om een iets langere storing periode op te vangen met spoedherstel en een gedegen permanente oplossing te zoeken voor de lange termijn. In deze situatie is het raadzaam om contact op te nemen met een partij die hiermee ervaring heeft. + +{{< notice "warning" "Heb je nu storing?" >}}Is er uitval van jouw website of ander belangrijk digitaal onderdeel van jouw bedrijf?

+ +In veel gevallen kunnen wij een basis werking herstellen binnen 24 uur. Zoals het activeren van een tijdelijke pagina bij uitval van de website of schrijven met data herstellen.

+ +Hulp vragen{{< /notice >}} + +### Traagheid +De flexibiliteit van het bedrijf ondervind ook nadelen, ook zonder storing. Zo kan het lastiger zijn om te op- of afschalen met medewerkers, nieuwe technologieën toe te passen of inspelen op veranderingen binnen de branche. Als de techniek langzamer ontwikkeld of toegepast wordt dan het bedrijf wil groeien, ontstaan er bottlenecks die het hele groeiproces remmen. + +Websites zijn in het bijzonder onderhevig aan deze problematiek. Een template wat te rigide is om mee te evolueren met trends op het web, koppelingen met opkomende Social Media die niet gemaakt kunnen worden of andere uitbreiding van functie. Zodoende kan je als bedrijf uitsluitend nog trends volgen, maar niet bepalen. + +### Onzekerheid over toekomst +De systemen die je toepast in je bedrijf, zijn leidend voor de digitale zekerheid van de toekomst. Veel ondernemers beseffen niet wat de impact is hiervan totdat het te laat is. In geen bepaalde volgorde, zijn dit de situaties die regelmatig voorkomen: +- Maker van software stopt met ondersteuning +- Maker van software is overgenomen door een andere partij; waardoor voorwaarden, prijzen en zelfs functie veranderen +- Update van pakket A zorgt dat pakket B niet langer werkt +- Geen overzicht overheadkosten + +## Hoe los je technische schuld af? +Net zoals met een reguliere schuld, is technische schuld af te lossen. Dit betekend dat je moet inlopen op problematiek, zoals het aantal handmatige handelingen verminderen. Ook is het belangrijk om het aantal systemen te reduceren, vooral als er een overlap in functie is tussen systemen. + +### Kaf en koren scheiden +Welk systeem is het meest kritiek om te vervangen? De motivatie kan hiervoor technische werking zijn of overhead kosten. Wij raden altijd aan om technische problemen aan te pakken voor de fiscale, dit omdat een (verdere) verstoring aanzienlijke schade kan toebrengen aan het bedrijf. Bij veel bedrijven is de website het meest belangrijk, omdat dit de primaire aanvoer van klantwerving is. + +### Gebruik OpenSource Software +De nadelen die SaaS kent, zijn niet aanwezig bij OpenSource Software[^5]. Omdat de code vrijuit te lezen en veranderen is, kan elk onderlegd persoon een aanpassing maken voor jouw specifieke doeleinden. Ook ben je vrijer in de keuze van onderhoudspartner. + +Als voorbeeld leveren wij relatiebeheersystemen op basis van het [EspoCRM](https://espocrm.com?source=start-it.nl) pakket. Je kan de installatie en support via StartIT laten verlopen, maar je kan altijd zo overschakelen naar de [support en hosting van EspoCRM zelf](https://www.espocrm.com/cloud?source=start-it.nl). + +[^3]: [OpenSource Software](https://nl.wikipedia.org/wiki/Opensourcesoftware) - op Wikipedia + +### Sparren zonder fratsen? +Dat kan uiteraard, ons advies is vrijblijvend. Samen kunnen we doornemen waar jouw bedrijf nu technisch staat en wat een logische route is. + +Neem contact op \ No newline at end of file diff --git a/content/dutch/overons.md b/content/dutch/overons.md new file mode 100644 index 0000000..22db415 --- /dev/null +++ b/content/dutch/overons.md @@ -0,0 +1,53 @@ +--- +title: "Over ons" +# watermark text +watermark: "Aangenaam" +# page header background image +page_header_image: "images/background/about.jpg" +# meta description +description : "" + +layout : "about" +draft : false + +############################## about ############################### +about: + enable : true + video_bg_image : "images/cta/ctaMidPhone.jpg" + video_thumbnail : "images/cta/ctaMidPhone.svg" + video_link : "https://www.youtube.com/embed/nqye02H_H6I?autoplay=1" + subtitle : "Ik ben Machiel Heinen" + title : "Hallo" + content : "StartIT is in 2025 door mij opgericht als IT dienstverlener in Barneveld. Ik voorzie lokale ondernemers van diverse IT diensten en met meer dan 20 jaar ervaring in OpenSource Software kan ik een degelijke oplossing bieden voor minimale kosten." + button: + enable : true + label : "Stuur mij een bericht" + link : "contact/" + +############################### counter ############################# +funfacts: + enable : false + funfact_item: + # funfact item loop + - name : "Downloads per day" + count : "8000" + + # funfact item loop + - name : "Design awards" + count : "200" + + # funfact item loop + - name : "Totally satisfied users" + count : "25000" + + # funfact item loop + - name : "People behind this app" + count : "80" + + +########################### Service ################################ +service: + enable : true + section : "service" + # service item comes from "content/*/service.md" file +--- \ No newline at end of file diff --git a/content/dutch/prijs-berekenen.md b/content/dutch/prijs-berekenen.md new file mode 100644 index 0000000..3e2a56f --- /dev/null +++ b/content/dutch/prijs-berekenen.md @@ -0,0 +1,146 @@ +--- +title: "Prijs berekenen" +watermark: "Prijzen" +short_description: "Gebruik het onderstaande formulier om een keuze te maken van diensten. De getoonde prijzen zijn excl. BTW, als je het formulier hebt ingevuld krijg je een kopie in de email en nemen wij nog contact op om details door te nemen. Binnen 3 werkdagen ontvang je een offerte." +page_header_image: "images/background/banner.svg" +description: "Gebruik het onderstaande formulier om een keuze te maken van diensten. De getoonde prijzen zijn excl. BTW, als je het formulier hebt ingevuld krijg je een kopie in de email en nemen wij nog contact op om details door te nemen.

Binnen 3 werkdagen ontvang je een offerte." + +products: + - key: website + naam: "Website" + infobox: "**Prijs incl:**Aanvullende modules, zoals deze prijsberekening tool of soortgelijke systemen zijn altijd maatwerk." + categorie: "web" + items: + - label: "HUGO gebaseerd" + prijs: 800 + prijsService: 5 + prijsServicePeriode: "maand" + code: "site-hugo" + - label: "WordPress gebaseerd" + prijs: 1150 + prijsService: 12 + prijsServicePeriode: "maand" + code: "site-wordpress" + - label: "Shopify gebaseerd" + prijs: 2350 + prijsService: 12 + prijsServicePeriode: "maand" + code: "site-shopify" + optional: + - label: "Webshop" + omschrijving: "Een webshop met betaalopties" + prijs: 600 + prijsService: 6 + requiredFor: ["site-shopify"] + - label: "Nieuws/ Blog" + omschrijving: "Eenvoudig te updaten nieuws onderdeel" + prijs: 80 + requiredFor: ["site-wordpress"] + - label: "Social Media feed" + omschrijving: "Berichten van eigen Social Media weergeven op de website" + prijs: 120 + - label: "Chat & Support integratie" + omschrijving: "Een dienst zoals [Crisp](https://crisp.chat/nl/) toevoegen aan de website" + prijs: 160 + prijsService: 4 + - label: "Meertalige website" + omschrijving: "Mogelijkheid om de website meertalig te maken." + prijs: 200 + prijsService: 6 + requiredFor: ["site-shopify","site-hugo"] + quantity: + - label: "Aanvullende templates" + omschrijving: "Indelingen die hergebruikt worden hebben geen aanvullende kosten." + prijs: "110" + + - key: email + naam: "Email" + categorie: "email" + infobox: "De email adressen zijn op het [Zimbra](https://www.zimbra.com/) systeem gebaseerd. Dit zorgt voor een naadloze ervaring met email gebruik en verlaagt de kans dat je in de spam terecht komt. Het kan op elk apparaat en met elke app gebruikt worden.

Onze email opleveringen komen met een 10/10 score op [mail-tester.com](https://mail-tester.com)" + items: + - label: "Aanmaak email adres" + prijs: 20 + prijsService: 3 + prijsServicePeriode: "maand" + code: "email-single" + optional: + - label: "Professionele email handtekening" + omschrijving: "Een nette handtekening onder de email berichten met jouw bedrijfsinformatie" + prijs: 80 + - label: "Nieuwsbrief template aanmaken" + omschrijving: "Een herbruikbaar template om periodiek jouw klanten en partners een nieuwsbrief te sturen." + prijs: 400 + quantity: + - label: "Aanvullende email adressen t.w.v." + omschrijving: "" + prijs: 5 + prijsService: 3 + prijsServicePeriode: "maand" + + - key: cloud + naam: "Cloud omgeving" + categorie: "cloud" + infobox: "De [Nextcloud](https://nextcloud.com/) installaties zijn fysiek in de EU en op jouw eigen apparatuur, waardoor je voldoet aan de AVG wetgeving omtrent gegevens opslag.

**Prijs incl:**" + items: + - label: "Opslag op StartIT cloud" + prijs: 100 + prijsService: 30 + prijsServicePeriode: "maand" + code: "cloud-startit" + - label: "Eigen cloud omgeving" + prijs: 300 + prijsService: 60 + prijsServicePeriode: "maand" + omschrijving: "Dit kan in sommige gevallen noodzakelijk zijn i.v.m. privacy wetgeving." + code: "cloud-private" + optional: + - label: "Drievoudige back-up" + omschrijving: "Een back-up over meerdere fysieke locaties" + prijs: 250 + prijsService: "40" + prijsServicePeriode: "maand" + - label: "Training op locatie" + omschrijving: "Drie uur training met maximaal 8 deelnemers" + prijs: 400 + quantity: + - label: "Aantal aanvullende opslaglocaties t.w.v." + omschrijving: "Unieke opslaglocaties met eigen rechten" + prijs: "90" + - label: "Geschat aantal gigabytes aan opslag" + omschrijving: "Kosten per gigabyte per maand" + prijs: "0,00" + prijsService: "0,01" + prijsServicePeriode: "maand" + + - key: crm + naam: "Relatiebeheer" + categorie: "crm" + omschrijving: "Dit is altijd een installatie op een eigen server om privacy redenen.
Wil je geen eigen server gebruiken, zie dan de officiële [EspoCRM cloud-omgeving](https://www.espocrm.com/cloud/)" + infobox: "Het relatiebeheer systeem van [EspoCRM](https://espocrm.com) is geschikt voor bedrijven van elk formaat. Het kan diverse processen automatiseren, betalingen verwerken en nog veel meer.

Het instellen van cronjobs bevat onderdelen zoals automatische backups maken, notificaties van werking doorsturen en dergelijke." + items: + - label: "Basis installatie" + prijs: 325 + code: "crm-basic" + - label: "Basis installatie + instellen cronjobs" + prijs: 600 + code: "crm-advanced" + optional: + - label: "Onbeperkte opslag" + omschrijving: "Gebaseerd op S3 bucket" + prijs: 250 + - label: "Training op locatie" + omschrijving: "Drie uur training met maximaal 8 deelnemers" + prijs: 400 + quantity: + - label: "Aantal contacten importeren t.w.v." + omschrijving: "Het importeren van contacten uit andere systemen, per stuk." + prijs: "0.09" + - label: "Aantal PDF of email templates maken t.w.v." + omschrijving: "Kosten per template" + prijs: 180 + - label: "Aantal workflows" + omschrijving: "Dit zijn automatische processen die bijv. inschrijvingen van klanten regelen middels een automatisch antwoord." + prijs: 120 +--- + +{{< quote >}} \ No newline at end of file diff --git a/content/dutch/search.md b/content/dutch/search.md new file mode 100644 index 0000000..8cc7bbb --- /dev/null +++ b/content/dutch/search.md @@ -0,0 +1,10 @@ +--- +title: "Zoekresultaat" +watermark: "Zoeken" +date: 2025 +short_description: "" +page_header_image: "images/background/banner.svg" +description : "" +layout: "search" +draft: false +--- \ No newline at end of file diff --git a/content/dutch/serverstatus.md b/content/dutch/serverstatus.md new file mode 100644 index 0000000..d962c0b --- /dev/null +++ b/content/dutch/serverstatus.md @@ -0,0 +1,29 @@ +--- +title: "Server status" +date: 2020-06-05 +draft: false +watermark: "Status" +page_header_image: "" +description: "" +--- + +## Website hosting server +#### Status: Up +- **Type server:** Dit is de website server die alle pagina's van onze klanten beheerd. +- **Locatie:** EU, Frankrijk.
*Elke website die wij hosten voldoet aan de GDPR/AVG norm.*
+- **Eigenschappen:** 4 vCores, 8GB RAM met lokaal en S3 opslag. +- **URL:** Diversen + +## Cloud hosting server +#### Status: Up +- **Type server:** Dit is de publieke cloud van StartIT beheerd. Heb jij een eigen could omgeving dan ben je niet onderhevig aan de werking van deze server. +- **Locatie:** EU, Duitsland. +- **Eigenschappen:** 4 vCores, 8GB RAM met S3 opslag. +- **URL:** [cloud.start-it.nl](https://cloud.start-it.nl) + +## Stats hosting server +#### Status: Up +- **Type server:** Dit is de analytics server die jouw website voorziet van bezoekersinzichten. +- **Locatie:** EU, Frankrijk. +- **Eigenschappen:** 1 vCore, 2GB RAM met lokale opslag. +- **URL:** [stats.start-it.nl](https://stats.start-it.nl) diff --git a/content/dutch/service.md b/content/dutch/service.md new file mode 100644 index 0000000..56f0f35 --- /dev/null +++ b/content/dutch/service.md @@ -0,0 +1,51 @@ +--- +title: "Onze diensten" +watermark: "Diensten" +page_header_image: "images/background/about.jpg" +description : "" +layout : "service" +draft : false + +############################### service ############################## +service: + enable : true + subtitle : "Heeft jouw bedrijf een combinatie van IT oplossingen nodig? Dan zijn wij in staat deze behoefte te voorzien. Onze software pakketten zijn schaalbaar vanaf ZZP formaat tot aan 100+ personeelsleden.

Onze opleveringen zijn altijd maatwerk waarbij we jouw behoeften vertalen naar oplossingen die betaalbaar zijn.

Bekijk onze prijslijst" + title : "Onze diensten" + service_item: + - title : "Web Design" + icon : "far fa-desktop" + icon_color : "primary" # available color : primary, yellow, purple, cyan, red, green, orange, blue. + content : "Wij maken hoge kwaliteit zakelijke websites zoals webshops of bedrijfspresentatie." + link : "/diensten/websites" + + - title : "E-email" + icon : "far fa-envelope" + icon_color : "primary" # available color : primary, yellow, purple, cyan, red, green, orange, blue. + content : "Zakelijke e-mail met 99.99% uptime.
Werkt op elk apparaat en elke app." + link : "/diensten/email" + + - title : "Relatiebeheer" + icon : "far fa-users" + icon_color : "primary" # available color : primary, yellow, purple, cyan, red, green, orange, blue. + content : "Krachtige en schaalbare CRM oplossingen met automatisering voor B2B en B2C." + link : "/diensten/relatiebeheer" + + - title : "Cloud omgeving" + icon : "far fa-cloud" + icon_color : "primary" # available color : primary, yellow, purple, cyan, red, green, orange, blue. + content : "Met een office pakket, videobellen, bestanden delen, AI integratie en nog veel meer." + link : "/diensten/cloud" + + - title : "SEO & SEA" + icon : "far fa-search-plus" + icon_color : "primary" # available color : primary, yellow, purple, cyan, red, green, orange, blue. + content : "Wees zichtbaar online middels organisch zoeken of advertenties. Advies is vrijblijvend." + link : "/diensten/marketing" + + - title : "Maatwerk" + icon : "far fa-comments" + icon_color : "primary" # available color : primary, yellow, purple, cyan, red, green, orange, blue. + content : "Data opschonen of herstellen, spoedreparaties of een ander verzoek." + link : "/ticket" + +--- \ No newline at end of file diff --git a/content/dutch/team.md b/content/dutch/team.md new file mode 100644 index 0000000..5d95d66 --- /dev/null +++ b/content/dutch/team.md @@ -0,0 +1,97 @@ +--- +title: "Our Team" +# watermark text +watermark: "Team" +# page header background image +page_header_image: "images/background/about.jpg" +# meta description +description : "Cupidatat non proident sunt culpa qui officia deserunt mollit
anim idest laborum sed ut perspiciatis." + +layout: "team" +draft: false + +team_member: +# team member +- name : "Justine Marshall" + image : "images/team/team-member-1.jpg" + designation : "Designer" + social: + - icon : "fab fa-facebook" + link : "#" + - icon : "fab fa-twitter" + link : "#" + - icon : "fab fa-linkedin" + link : "#" + - icon : "fab fa-pinterest-p" + link : "#" + +# team member +- name : "Liam Hughes" + image : "images/team/team-member-2.jpg" + designation : "Developer" + social: + - icon : "fab fa-facebook" + link : "#" + - icon : "fab fa-twitter" + link : "#" + - icon : "fab fa-linkedin" + link : "#" + - icon : "fab fa-pinterest-p" + link : "#" + +# team member +- name : "Neil Roberts" + image : "images/team/team-member-3.jpg" + designation : "Marketer" + social: + - icon : "fab fa-facebook" + link : "#" + - icon : "fab fa-twitter" + link : "#" + - icon : "fab fa-linkedin" + link : "#" + - icon : "fab fa-pinterest-p" + link : "#" + +# team member +- name : "Justine Marshall" + image : "images/team/team-member-4.jpg" + designation : "Designer" + social: + - icon : "fab fa-facebook" + link : "#" + - icon : "fab fa-twitter" + link : "#" + - icon : "fab fa-linkedin" + link : "#" + - icon : "fab fa-pinterest-p" + link : "#" + +# team member +- name : "Liam Hughes" + image : "images/team/team-member-5.jpg" + designation : "Developer" + social: + - icon : "fab fa-facebook" + link : "#" + - icon : "fab fa-twitter" + link : "#" + - icon : "fab fa-linkedin" + link : "#" + - icon : "fab fa-pinterest-p" + link : "#" + +# team member +- name : "Neil Roberts" + image : "images/team/team-member-6.jpg" + designation : "Marketer" + social: + - icon : "fab fa-facebook" + link : "#" + - icon : "fab fa-twitter" + link : "#" + - icon : "fab fa-linkedin" + link : "#" + - icon : "fab fa-pinterest-p" + link : "#" +--- \ No newline at end of file diff --git a/content/english/_index.md b/content/english/_index.md new file mode 100644 index 0000000..6b2406c --- /dev/null +++ b/content/english/_index.md @@ -0,0 +1,75 @@ +--- +############################### Banner ################################# +banner: + enable: true + bg_image: "images/background/banner.svg" + title: "Clever IT
without the gimmicks" + watermark: "" + content: "We are a new IT service provider based in the Netherlands. For SMEs and freelancers, we deliver websites, applications and management solutions that grow with your business. You pay per delivery, not per employee." + image: "images/background/ctaBannerHome.svg" + button: + enable: true + label: "Learn more" + link: "#services" + +service: + enable : true + section : "service" + +##################################### About ############################# +about: + enable: true + about_item: + # about item loop + - image: "images/cta/ctaMidPhone.svg" + subtitle: "" + title: "Your needs, our work" + content: "We take your current and future business operations into account. Whether you're starting, growing or stabilizing, we can provide your business with the solutions it needs.

What sets us apart

" + button: + enable: true + label: "More about our approach" + link: "en/about/" + + - image: "images/cta/ctaMidCopy.svg" + subtitle: "" + title: "Freedom in software" + content: "We work exclusively with open-source software—so you remain in control of your choices. With a professional implementation, you scale in a controlled way without unnecessary costs or maintenance.

We use, among others:

" + button: + enable: true + label: "View services & pricing" + link: "en/pricing/" + +# testimonial +testimonial: + enable: false + subtitle: "testimonial" + title: "What Our Clients Say" + bg_image: "images/background/testimonial.jpg" + testimonial_item: + - name: "Alice Kelly" + designation: "Happy client" + content: > + Lorem ipsum dolor amet constur adipi sicing elit sed eiusmtempor incid dolore magna aliqu. + enim minim veniam quis nostrud exercittion. ullamco laboris nisi ut aliquip excepteur sint occaecat cuida + tat nonproident sunt in culpa qui officia deserunt mollit anim id est laborum. sed ut perspiciatis. + +############################## Download ########################### +download: + enable: true + title: "Try it yourself" + image: "images/download-mobile-img.jpg" + content: "Want a trial period of up to 30 days to experience the software yourself? That’s completely free of obligation. Sign up and gain access to our demo environments.

Prefer personal advice? That’s of course possible too." + playstore: + label: "Demo environment" + link: "#" + appstore: + label: "Personal advice" + link: "#" + +############################## pricing ########################### +pricing: + enable: false + section: "services" + show_items: 3 + # pricing items come from "content/*/pricing.md" +--- diff --git a/content/english/contact.md b/content/english/contact.md new file mode 100644 index 0000000..9ba052e --- /dev/null +++ b/content/english/contact.md @@ -0,0 +1,10 @@ +--- +title: "Contact" +watermark: "Contact" +short_description: "Feel free to contact us for advice or to schedule an appointment." +page_header_image: "images/background/banner.svg" +description: "Feel free to contact us for advice or to schedule an appointment." + +layout: "contact" +draft: false +--- diff --git a/content/english/price-calculator.md b/content/english/price-calculator.md new file mode 100644 index 0000000..0271b71 --- /dev/null +++ b/content/english/price-calculator.md @@ -0,0 +1,141 @@ +--- +title: "Calculate price" +watermark: "Quote" +short_description: "Use the form below to select the services you want. Displayed prices are excl. VAT. Once you’ve filled out the form, you’ll receive a copy by email and we’ll contact you to review the details. Within 3 working days you’ll receive a quotation." +page_header_image: "images/background/banner.svg" +description: "Use the form below to select the services you want. Displayed prices are excl. VAT. Once you’ve filled out the form, you’ll receive a copy by email and we’ll contact you to review the details.

Within 3 working days you’ll receive a quotation." + +products: + - key: website + naam: "Website" + infobox: "**Price includes:**Additional modules, such as this price calculation tool or similar systems, are always custom-built." + categorie: "web" + items: + - label: "HUGO-based" + prijs: 800 + prijsService: 5 + prijsServicePeriode: "month" + code: "site-hugo" + - label: "WordPress-based" + prijs: 1150 + prijsService: 12 + prijsServicePeriode: "month" + code: "site-wordpress" + - label: "Shopify-based" + prijs: 2350 + prijsService: 12 + prijsServicePeriode: "month" + code: "site-shopify" + optional: + - label: "Webshop" + omschrijving: "An online shop with payment options" + prijs: 600 + prijsService: 6 + requiredFor: ["site-shopify"] + - label: "News / Blog" + omschrijving: "An easy-to-update news section" + prijs: 80 + requiredFor: ["site-wordpress"] + - label: "Social Media feed" + omschrijving: "Display your own social media posts on the website" + prijs: 120 + - label: "Chat & Support integration" + omschrijving: "Add a service like [Crisp](https://crisp.chat/en/) to the website" + prijs: 160 + prijsService: 4 + quantity: + - label: "Additional templates" + omschrijving: "Layouts that are reused have no extra cost." + prijs: "110" + + - key: email + naam: "Email" + categorie: "email" + infobox: "Email addresses are based on the [Zimbra](https://www.zimbra.com/) system. This ensures a seamless email experience and reduces the risk of ending up in spam. It can be used on any device and with any app.

Our email setups achieve a 10/10 score on [mail-tester.com](https://mail-tester.com)" + items: + - label: "Create email address" + prijs: 20 + prijsService: 3 + prijsServicePeriode: "month" + code: "email-single" + optional: + - label: "Professional email signature" + omschrijving: "A clean signature under your emails with company details" + prijs: 80 + - label: "Newsletter template creation" + omschrijving: "A reusable template to send newsletters to your clients and partners periodically." + prijs: 300 + quantity: + - label: "Additional email addresses worth" + omschrijving: "" + prijs: 5 + prijsService: 3 + prijsServicePeriode: "month" + + - key: cloud + naam: "Cloud environment" + categorie: "cloud" + infobox: "Our [Nextcloud](https://nextcloud.com/) installations are physically located within the EU, ensuring GDPR compliance for data storage.

**Price includes:**" + items: + - label: "Storage on StartIT cloud" + prijs: 100 + prijsService: 30 + prijsServicePeriode: "month" + code: "cloud-startit" + - label: "Private cloud environment" + prijs: 300 + prijsService: 60 + prijsServicePeriode: "month" + omschrijving: "May be required in some cases for privacy compliance." + code: "cloud-private" + optional: + - label: "Triple backup" + omschrijving: "Backup distributed across multiple physical locations" + prijs: 250 + prijsService: "40" + prijsServicePeriode: "month" + - label: "On-site training" + omschrijving: "Three hours of training for up to 8 participants" + prijs: 300 + quantity: + - label: "Number of additional storage locations worth" + omschrijving: "Unique storage locations with separate access rights" + prijs: "90" + - label: "Estimated number of gigabytes of storage" + omschrijving: "Cost per gigabyte per month" + prijs: "0.00" + prijsService: "0.01" + prijsServicePeriode: "month" + + - key: crm + naam: "Customer Relationship Management" + categorie: "crm" + omschrijving: "This is always hosted on a dedicated server for privacy reasons." + infobox: "The [EspoCRM](https://espocrm.com) system is suitable for companies of any size. It can automate various processes, process payments, and much more." + items: + - label: "Basic installation" + prijs: 325 + code: "crm-basic" + - label: "Advanced installation" + prijs: 600 + code: "crm-advanced" + optional: + - label: "Unlimited storage" + omschrijving: "Based on S3 bucket" + prijs: 250 + - label: "On-site training" + omschrijving: "Three hours of training for up to 8 participants" + prijs: 300 + quantity: + - label: "Number of contacts to import worth" + omschrijving: "Importing contacts from other systems, per entry." + prijs: "0.09" + - label: "Number of PDF or email templates worth" + omschrijving: "Cost per template" + prijs: 60 + - label: "Number of workflows" + omschrijving: "Automated processes such as customer registration and auto-reply handling." + prijs: 80 +--- + +{{< quote >}} diff --git a/content/english/search.md b/content/english/search.md new file mode 100644 index 0000000..8f16bfb --- /dev/null +++ b/content/english/search.md @@ -0,0 +1,10 @@ +--- +title: "Search results" +watermark: "Search" +date: 2025 +short_description: "" +page_header_image: "images/background/banner.svg" +description : "" +layout: "search" +draft: false +--- \ No newline at end of file diff --git a/content/english/service.md b/content/english/service.md new file mode 100644 index 0000000..b2514ce --- /dev/null +++ b/content/english/service.md @@ -0,0 +1,50 @@ +--- +title: "Our Services" +watermark: "Services" +page_header_image: "images/background/about.jpg" +description: "" +layout: "service" +draft: false + +############################### service ############################## +service: + enable: true + subtitle: "Does your company need a combination of IT solutions? We can deliver exactly what you need. Our software packages scale from freelancers to teams of 100+ employees.

Every delivery is tailored to your specific needs, translating your requirements into solutions that remain affordable.

View our pricing" + title: "Our Services" + service_item: + - title: "Web Design" + icon: "far fa-desktop" + icon_color: "primary" + content: "We build high-quality business websites, such as webshops and company presentation sites." + link: "/en/services/websites" + + - title: "E-mail" + icon: "far fa-envelope" + icon_color: "primary" + content: "Business email with 99.99% uptime.
Works on every device and in every app." + link: "/en/services/email" + + - title: "CRM" + icon: "far fa-users" + icon_color: "primary" + content: "Powerful and scalable CRM solutions with automation for both B2B and B2C." + link: "/en/services/crm" + + - title: "Cloud Workspace" + icon: "far fa-cloud" + icon_color: "primary" + content: "Includes office suite, video calling, file sharing, AI integration and much more." + link: "/en/services/cloud" + + - title: "SEO & SEA" + icon: "far fa-search-plus" + icon_color: "primary" + content: "Be visible online through organic search or advertising. Advice is without obligation." + link: "/en/services/marketing" + + - title: "Custom Work" + icon: "far fa-comments" + icon_color: "primary" + content: "Data cleanup or recovery, urgent repairs, or any other special request." + link: "/en/ticket" +--- diff --git a/content/english/services/crm.md b/content/english/services/crm.md new file mode 100644 index 0000000..1241bcd --- /dev/null +++ b/content/english/services/crm.md @@ -0,0 +1,76 @@ +--- +title: "CRM" +page_header_image: "images/background/banner.svg" +description: "Managing your customers and partners has never been easier. With the CRM solution [EspoCRM](https://espocrm.com) you can handle everything: from automated mailings and replies to invoicing and payment processing.

Prefer to configure everything directly? Go to the pricing page.
Calculate pricing" +layout: "product" +draft: false + +pricing_tables: + - pricing_table_info: + - name: "" + content: "**EspoCRM installation**" + header: "images/logo/espocrm.svg" + subheader: "Your company, your control" + text: "[EspoCRM](https://espocrm.com) is an open-source software package used by more than 50,000 companies. It’s a scalable solution that can be extended with various add-ons, and with code customizations it can be tailored exactly to your needs.

+ **Features;** + " + - name: "Costs" + info: "" + price: "**€325,-**" + content: "" + pricing_table_data: + - table_row: + - product: "Unlimited storage with S3" + info: "Additional cost of €0.09/GB per month." + - price: "€250,-" + - table_row: + - product: "Importing data" + info: "Such as contacts, historical invoices, etc. Price per record." + - price: "€0.09" + - table_row: + - product: "Including extension installation" + info: "For example the [Sales Pack](https://www.espocrm.com/extensions/sales-pack/) for invoicing." + - icon: "fas fa-check text-primary" + + - pricing_table_info: + - name: "" + content: "**Workflows**" + header: "" + subheader: "Automate your business" + text: "Send clean, automated emails based on customer interactions, such as website form submissions or reminders for outstanding payments. More advanced use is also possible, such as automating internal processes and tasks or even calendar management.{{< notice \"info\" \"External purchase required\" >}}This requires the [Advanced Pack](https://www.espocrm.com/extensions/advanced-pack/) extension from EspoCRM.{{< /notice >}}" + - name: "" + price: "**€120,-**" + content: "" + pricing_table_data: + - table_row: + - product: "Free first form integration" + info: "If we built your website." + - icon: "fas fa-check text-primary" + - table_row: + - product: "Free first newsletter workflow" + info: "If we provide your email solution." + - icon: "fas fa-check text-primary" + + - pricing_table_info: + - name: "" + content: "**Portal configuration**" + header: "" + subheader: "The portal for external parties" + text: "Your customers and partners can log in to the same system your internal team uses. They only see the information linked to their own account, such as historical purchases, open service requests, or a direct messaging option.

This increases trust through transparency and reduces the number of service requests via time-consuming channels such as phone support.

With a shared timeline of tasks, appointments and calls, there is always clarity between all parties. It’s even possible to schedule appointments between customer and partner directly." + - name: "" + price: "**€180,-**" + content: "" + pricing_table_data: + - table_row: + - product: "Includes access control" + info: "Decide who has access to what." + - icon: "fas fa-check text-primary" + - table_row: + - product: "Includes e-mail templates" + info: "If we provide your email solution." + - icon: "fas fa-check text-primary" + +--- diff --git a/content/english/services/email.md b/content/english/services/email.md new file mode 100644 index 0000000..38c0406 --- /dev/null +++ b/content/english/services/email.md @@ -0,0 +1,52 @@ +--- +title: "E-mail solutions" +page_header_image: "images/background/banner.svg" +description: "A reliable email solution is an absolute must for any business. Your mailbox needs to be large enough and your email must always be delivered. We offer several options for email, from the addresses themselves to handling newsletters.

Prefer to configure everything directly? Go to the pricing page.
Calculate pricing" +layout: "product" +draft: false + +pricing_tables: + - pricing_table_info: + - name: "" + content: "**E-mail service**" + header: "images/logo/zimbra.svg" + subheader: "Business email addresses" + text: "Our email solution is based on [Zimbra](https://www.zimbra.com/). This email can be connected to any mail client, accessed via API, or used through a web interface.

+ **Features;** + " + - name: "Costs" + info: "" + price: "**€20,-**" + content: "" + pricing_table_data: + - table_row: + - product: "Per additional e-mail address" + info: "" + - price: "€5,-" + - table_row: + - product: "Including DNS configuration" + info: "MX, SPF, DKIM and DMARC records" + - icon: "fas fa-check text-primary" + + - pricing_table_info: + - name: "" + content: "**Templates**" + header: "" + subheader: "Professional and functional" + text: "A clean email signature makes your company visually recognizable and makes it easy for recipients to find your business details. We create this as a template that you can reuse for an unlimited number of employees.

We also design newsletter templates, so you can inform your customers with minimal effort. These templates can be used manually to send newsletters or integrated into an automated system such as [EspoCRM](https://www.espocrm.com/) for relationship management." + - name: "" + price: "**per template**" + content: "" + pricing_table_data: + - table_row: + - product: "Signature" + info: "Reusable for multiple addresses" + - price: "€80,-" + - table_row: + - product: "Newsletter" + info: "Reusable for multiple campaigns" + - price: "€300,-" +--- diff --git a/content/english/services/websites.md b/content/english/services/websites.md new file mode 100644 index 0000000..ca946b8 --- /dev/null +++ b/content/english/services/websites.md @@ -0,0 +1,111 @@ +--- +title: "Websites" +page_header_image: "images/background/banner.svg" +description: "We build websites for various purposes—from online stores to wiki sites and everything in between. This page provides a general overview of expected costs.

Prefer to configure directly? Go to the price calculation page.
Calculate Price" +layout: "product" +draft: false + +pricing_tables: + - pricing_table_info: + - name: "" + content: "**HUGO Website**" + header: "images/logo/hugo.svg" + subheader: "Professional website" + text: "A [HUGO](https://gohugo.io/) website is a technically robust site that works on every device. Building on this system involves hand-crafted design and code, ensuring a truly professional, bespoke result.

*The StartIT website also runs on this system.*

+ **Features;** + + **Recommended for;** + " + - name: "Cost" + price: "**€800**" + content: "" + pricing_table_data: + - table_row: + - product: "Incl. Analytics" + info: "Self-hosted with [Plausible](https://plausible.io/)" + - icon: "fas fa-check text-primary" + - table_row: + - product: "Add page template" + info: "New layout or feature" + - price: "€110" + - table_row: + - product: "E-commerce module" + info: "Suitable for up to ~1,000 products" + - price: "€600" + + - pricing_table_info: + - name: "" + content: "**WordPress Website**" + header: "images/logo/wordpress.svg" + subheader: "Self-manageable" + text: "[WordPress](https://wordpress.org/) is a flexible system suited to a wide range of use cases, from blogs to full business sites. Many web designers work with this platform.

*Our pricing **excludes** the purchase cost of plugins.*

+ **Features;** + + **Recommended for;** + " + - name: "Cost" + price: "**€1,150**" + content: "" + pricing_table_data: + - table_row: + - product: "Incl. Analytics" + info: "Self-hosted with [Plausible](https://plausible.io/)" + - icon: "fas fa-check text-primary" + - table_row: + - product: "Add page template" + info: "New layout or feature" + - price: "€110" + - table_row: + - product: "E-commerce module" + info: "Suitable for up to ~1,000 products" + - price: "€600" + + - pricing_table_info: + - name: "" + content: "**Shopify Website**" + header: "images/logo/shopify.svg" + subheader: "Scalable webstore" + text: "The global standard for large webshops is [Shopify](https://www.shopify.com/). With it, you can sell (hundreds of) thousands of products and choose virtually any payment provider worldwide.

*We use templates for this type of website.*

+ **Features;** + + **Recommended for;** + " + - name: "Cost" + price: "**€2,350**" + content: "" + pricing_table_data: + - table_row: + - product: "Incl. Hosting" + info: "Part of Shopify services" + - icon: "fas fa-check text-primary" + - table_row: + - product: "Incl. Analytics" + info: "Self-hosted with [Plausible](https://plausible.io/)" + - icon: "fas fa-check text-primary" + - table_row: + - product: "Add page template" + info: "New layout or feature" + - price: "€110" + - table_row: + - product: "E-commerce module" + info: "Part of Shopify services" + - icon: "fas fa-check text-primary" +--- diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..37c4e5c --- /dev/null +++ b/go.mod @@ -0,0 +1,34 @@ +module gethugothemes.com + +go 1.19 + +require ( + github.com/gethugothemes/hugo-modules/accordion v0.0.0-20250702070945-cd8319c6b26e // indirect + github.com/gethugothemes/hugo-modules/adsense v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/components/cookie-consent v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/components/crisp-chat v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/components/custom-script v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/components/preloader v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/components/render-link v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/gzip-caching v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/icons/font-awesome v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/images v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/pwa v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/seo-tools/baidu-analytics v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/seo-tools/basic-seo v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/seo-tools/counter-analytics v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/seo-tools/matomo-analytics v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/seo-tools/plausible-analytics v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/seo-tools/site-verifications v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/shortcodes/buttons v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/shortcodes/codepen v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/shortcodes/collapse v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/shortcodes/notice v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/shortcodes/table-of-contents v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/shortcodes/tabs v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/shortcodes/video v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/shortcodes/vimeo-lite v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gethugothemes/hugo-modules/shortcodes/youtube-lite v0.0.0-20240925042433-d2b5d05977e8 // indirect + github.com/gohugoio/hugo-mod-bootstrap-scss/v5 v5.20300.20200 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..4d46bbc --- /dev/null +++ b/go.sum @@ -0,0 +1,58 @@ +github.com/gethugothemes/hugo-modules/accordion v0.0.0-20250702070945-cd8319c6b26e h1:yeUGenAenE/TAr+h4N1d9u8TMqZFgyk3RkJg87HY8bY= +github.com/gethugothemes/hugo-modules/accordion v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:D4DpauKPDcUHI9CVKYmJeO6bkSJIhUN864TyXZ2o0VI= +github.com/gethugothemes/hugo-modules/adsense v0.0.0-20240925042433-d2b5d05977e8 h1:ewKsG7Nfk55KHJbOLiRNHu01UURu6fS6RWA2RY6S8k4= +github.com/gethugothemes/hugo-modules/adsense v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:8p/gG/cyyu20z4q5cFN/JGE5TOFA55Xsp+aIP9KCsqo= +github.com/gethugothemes/hugo-modules/components/cookie-consent v0.0.0-20240925042433-d2b5d05977e8 h1:oIO0o2wdY2Jhkz+NyzTgwizCGSf6V0IGumuD985SKeU= +github.com/gethugothemes/hugo-modules/components/cookie-consent v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:511ERLpGe3ZTfV2z/NAtUSR5NqKF26h9z5lU/zYV4YQ= +github.com/gethugothemes/hugo-modules/components/crisp-chat v0.0.0-20240925042433-d2b5d05977e8 h1:6kmR95oBWLIPXMQ9BC8qdwEg3NfuQOuOE1gMJnH09t8= +github.com/gethugothemes/hugo-modules/components/crisp-chat v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:qiV/PIeVY59RD2W885rFWc7b62uovQZO6VPFHeP5LT0= +github.com/gethugothemes/hugo-modules/components/custom-script v0.0.0-20240925042433-d2b5d05977e8 h1:b/zLhGA++K6BBuat2bc8LX1EUUgfbXr0csu3CBaR/9s= +github.com/gethugothemes/hugo-modules/components/custom-script v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:RuDHq4WnK8sNEzAIJr4BZQ7oXhzcct/EKaAxc2Xvi9E= +github.com/gethugothemes/hugo-modules/components/preloader v0.0.0-20240925042433-d2b5d05977e8 h1:qXQgATaoB64NwDGxtEsN3dvL79eoJc8de7qzhY1qlGs= +github.com/gethugothemes/hugo-modules/components/preloader v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:FP0iQ3tMOesuWFZhLst2KEvUEYPb5Jk1GW+QBP9lrwg= +github.com/gethugothemes/hugo-modules/components/render-link v0.0.0-20240925042433-d2b5d05977e8 h1:mK0hf8QyPHHT+vYTnAJ23R8S0oudNluyQ8N24Gg3Buk= +github.com/gethugothemes/hugo-modules/components/render-link v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:z3YcIeEBUonAoRDY1/Jv1ojNVkZ5ud35a0Nn8L4Inx0= +github.com/gethugothemes/hugo-modules/gzip-caching v0.0.0-20240925042433-d2b5d05977e8 h1:5/R8j8xG2tvH6bsBrrF1zG6JdBxzzGf7ITlgysgteI0= +github.com/gethugothemes/hugo-modules/gzip-caching v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:0ZMjTZVG4XLZU2/icc8Saqo4mmgMpfRTrUZU2Aa2Pwg= +github.com/gethugothemes/hugo-modules/icons/font-awesome v0.0.0-20240925042433-d2b5d05977e8 h1:h2xHThbg1laJN6t2+bMr6dIAcD/b0IXBWOp+kJlzJec= +github.com/gethugothemes/hugo-modules/icons/font-awesome v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:d3gy1vQyfasPmGpau7HpQLrXbOv23PfXclSnjyOBxeU= +github.com/gethugothemes/hugo-modules/images v0.0.0-20240925042433-d2b5d05977e8 h1:rGWMqcpmotd5G+q5HS9p9sC4GQF2hMxEesuJx8aKvKE= +github.com/gethugothemes/hugo-modules/images v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:FKliP3qOW9diIcQeLtyZ0Hdhg3PL8bdAkC/6O+XtU90= +github.com/gethugothemes/hugo-modules/pwa v0.0.0-20240925042433-d2b5d05977e8 h1:cTObVCZAxl/yW2oVH3FVmg8npXqLWRemuJjXHnnTq0Y= +github.com/gethugothemes/hugo-modules/pwa v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:TRv7iszdfo37O1PbBEE+S8X/enAdpRIxK5DGrp13Qbo= +github.com/gethugothemes/hugo-modules/seo-tools/baidu-analytics v0.0.0-20240925042433-d2b5d05977e8 h1:tsYuHy7SsoKlJkADdTrCJIXYs+NRyt0kc6qn+YvbxoU= +github.com/gethugothemes/hugo-modules/seo-tools/baidu-analytics v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:D/bbq2hSHE+r582zpC3rEdvuk8GufDnq9sGL3xCk/C0= +github.com/gethugothemes/hugo-modules/seo-tools/basic-seo v0.0.0-20240925042433-d2b5d05977e8 h1:cyhgsUNA0Kr172aab/Iy/K11KODP/lTzlOxuNY497vA= +github.com/gethugothemes/hugo-modules/seo-tools/basic-seo v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:Q8dPgjamV7pxwKSQyWV21Xwh5CGi23/k+M8HPTphYbs= +github.com/gethugothemes/hugo-modules/seo-tools/counter-analytics v0.0.0-20240925042433-d2b5d05977e8 h1:YpebNS5F+zV8yE9e8W3jHp81cj5/7zWieB34VUTWAOo= +github.com/gethugothemes/hugo-modules/seo-tools/counter-analytics v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:3kPooRg0PWUkciccThPQbBvIpTfSCo7W9mc3a5GxXHs= +github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager v0.0.0-20240925042433-d2b5d05977e8 h1:WDiOV7iyIFGAUwQzDojoYSayovskKB3mPxm11mf99F4= +github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:cCq50yd55eFTrpqOfeyOK5X0hU5E7qxsqOD7IzTsgLA= +github.com/gethugothemes/hugo-modules/seo-tools/matomo-analytics v0.0.0-20240925042433-d2b5d05977e8 h1:GQ5hErPi3W4sHq9BTcqDoij2jtPB1Xp2dahl5y/pO1Q= +github.com/gethugothemes/hugo-modules/seo-tools/matomo-analytics v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:P2GLltWjXFBJlatFKh4l6WOBszW7+f09myLkZoBBgEs= +github.com/gethugothemes/hugo-modules/seo-tools/plausible-analytics v0.0.0-20240925042433-d2b5d05977e8 h1:VmsGMFVCQgcCNsVuWicafA5fOdVTEBK80ndBj3flDN4= +github.com/gethugothemes/hugo-modules/seo-tools/plausible-analytics v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:MOJtK8ttzyqQiqs0xQkk6xgPaxGbcH7WI5thobpNvqg= +github.com/gethugothemes/hugo-modules/seo-tools/site-verifications v0.0.0-20240925042433-d2b5d05977e8 h1:qlKzcEIQqvbw+q+7RynsqSMVSQ/UafD5Xe3B9A7VMF0= +github.com/gethugothemes/hugo-modules/seo-tools/site-verifications v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:iXielaya126qJscz7Bc2G2WB91moloQOoWru6UoBUyE= +github.com/gethugothemes/hugo-modules/shortcodes/buttons v0.0.0-20240925042433-d2b5d05977e8 h1:cGcPthmzk2TzILc++IDjFpCdJms301p7Xi6pfMzIF70= +github.com/gethugothemes/hugo-modules/shortcodes/buttons v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:hK/aFl0KkirVRFYnljg3c0qBAOwk4W5Isd+YN7UDMvg= +github.com/gethugothemes/hugo-modules/shortcodes/codepen v0.0.0-20240925042433-d2b5d05977e8 h1:NayJdgpxNzGKmlWHDEH/Wob3u5JAh+/dsHdUcsdMOsM= +github.com/gethugothemes/hugo-modules/shortcodes/codepen v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:Y4eAJ7fkCSC6k6fl1+qF4DIoRepAYyB9Om4kBCAixcg= +github.com/gethugothemes/hugo-modules/shortcodes/collapse v0.0.0-20240925042433-d2b5d05977e8 h1:/ekDbxlWbloUT149PLaCKTORR7rKoeJaqOdOXlFsDSg= +github.com/gethugothemes/hugo-modules/shortcodes/collapse v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:rBCFuR+QzMk0S1npR0zVDzgocFncOmyxWToJlRw4ZxU= +github.com/gethugothemes/hugo-modules/shortcodes/notice v0.0.0-20240925042433-d2b5d05977e8 h1:OODdhrS3Fy9GTGvKzk704NfwR4p+1s4ymVrCPEGct1o= +github.com/gethugothemes/hugo-modules/shortcodes/notice v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:ljWyMJx82WA+6SlKjbGFhEdxcriyvUTCjXkJHDa4lho= +github.com/gethugothemes/hugo-modules/shortcodes/table-of-contents v0.0.0-20240925042433-d2b5d05977e8 h1:UfZLrz9c/e6jZwNjJPRPOVL+k/vNIPzCve7QA9VcNbQ= +github.com/gethugothemes/hugo-modules/shortcodes/table-of-contents v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:LKCp/rg9cHtfjHpIEYmpR8kuauI8JNN79nmdkFURXp0= +github.com/gethugothemes/hugo-modules/shortcodes/tabs v0.0.0-20240925042433-d2b5d05977e8 h1:wGiEHblbXl9qYzFcIoOk+LzNmhukToXjf+YVVFZwHvY= +github.com/gethugothemes/hugo-modules/shortcodes/tabs v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:zaQhvQgsSOWfSm/zP3NbWWEfrxgrcdpBblljz2IA2vA= +github.com/gethugothemes/hugo-modules/shortcodes/video v0.0.0-20240925042433-d2b5d05977e8 h1:GmBpIrEhfkBG5MTw++XOvKqVUcqCMy0TFnPXGFOBL60= +github.com/gethugothemes/hugo-modules/shortcodes/video v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:s5CHMBd7/NalnckFfRhZJvqXPY/QTrluDvRgZm7+Cr0= +github.com/gethugothemes/hugo-modules/shortcodes/vimeo-lite v0.0.0-20240925042433-d2b5d05977e8 h1:qtocOb+ChLWrYzeOZmlE7Rr084qXAgGp5T0cvJ02bcw= +github.com/gethugothemes/hugo-modules/shortcodes/vimeo-lite v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:Ac9Ell5o+JV5DZ9dBgW767ZcSvoz/x+2UuFLvMoThwk= +github.com/gethugothemes/hugo-modules/shortcodes/youtube-lite v0.0.0-20240925042433-d2b5d05977e8 h1:37TeExumLSf8kV1MGGk8YgeloDASIRqejc+65YAZcAg= +github.com/gethugothemes/hugo-modules/shortcodes/youtube-lite v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:DtWNw6au8NQg1Y0x470DstCHqjWZPnwm61Uu6ZIMy50= +github.com/gohugoio/hugo-mod-bootstrap-scss/v5 v5.20300.20200 h1:SmpwwN3DNzJWbV+IT8gaFu07ENUFpCvKou5BHYUKuVs= +github.com/gohugoio/hugo-mod-bootstrap-scss/v5 v5.20300.20200/go.mod h1:kx8MBj9T7SFR8ZClWvKZPmmUxBaltkoXvnWlZZcSnYA= +github.com/gohugoio/hugo-mod-jslibs-dist/popperjs/v2 v2.21100.20000/go.mod h1:mFberT6ZtcchrsDtfvJM7aAH2bDKLdOnruUHl0hlapI= +github.com/twbs/bootstrap v5.3.2+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0= diff --git a/hugo.toml b/hugo.toml new file mode 100644 index 0000000..8d7fcea --- /dev/null +++ b/hugo.toml @@ -0,0 +1,77 @@ +# DON'T REMOVE THIS FILE. +# This file is for render site variables and plugins +# +# The actual configuration files are stored in the `config/_default/` folder. + + +######################### site variables ############################## +# site variables +[params.variables] +color_primary = "#207495" +color_secondary = "#4c90aa" +bg_secondary = "#4c90aa" +text_dark = "#444" +text_color = "#484848" +text_light = "#d4dae3" +text_color_light = "#959595" +border_color = "#dee2e6" +border_light = "#2d3041" +bg_gradient_primary = "linear-gradient(134deg, #207495 0%, #4c90aa 100%)" +bg_gradient_secondary = "linear-gradient( 80deg, #207495 0%, #4c90aa 100%)" +btn_gradient_primary = "linear-gradient(45deg, #207495 0%, #3e87a3 100%)" +black = "#000" +white = "#fff" +gray = "#8b8e93" + +# font variables +# base font size for full website, +font_size = "16px" # default is 16px + +# Font Scale Sizes +# "minorSecond": 1.067, +# "majorSecond": 1.125, +# "minorThird": 1.2, +# "majorThird": 1.25, +# "perfectFourth": 1.333, +# "augmentedFourth": 1.414, +# "perfectFifth": 1.5, +# "goldenRatio": 1.618 +font_scale = "1.2" # default is "majorThird": 1.25 + +# Give your font name from google font. add font weight using ":wght@" and separate by ";" +# example: "Work Sans:wght@400;500;600" +#font_primary = "Work Sans:wght@400;500;600;700;800" +#font_primary_type = "sans-serif" # [serif/sans-serif] +#font_secondary = "Work Sans:wght@400;500;600;700;800" +#font_secondary_type = "sans-serif" # [serif/sans-serif] +font_primary = "" +font_primary_type = "" +font_secondary = "" +font_secondary_type = "" +font_icon = "Font Awesome 6 Free" + + +############################# Plugins ############################## +# CSS Plugins +[[params.plugins.css]] +link = "plugins/aos/aos.css" +[[params.plugins.css]] +link = "plugins/swiper/swiper.css" +[[params.plugins.css]] +link = "plugins/font-awesome/v6/solid.css" +[[params.plugins.css]] +link = "plugins/font-awesome/v6/icons.css" +[[params.plugins.css]] +link = "plugins/font-awesome/v6/brands.css" + +# JS Plugins +[[params.plugins.js]] +link = "plugins/cookie.js" +[[params.plugins.js]] +link = "plugins/aos/aos.js" +[[params.plugins.js]] +link = "plugins/swiper/swiper.min.js" +[[params.plugins.js]] +link = "plugins/webfont/webfont-loader-2.js" +[[params.plugins.js]] +link = "js/accordion.js" diff --git a/hugo_stats.json b/hugo_stats.json new file mode 100644 index 0000000..b16ba92 --- /dev/null +++ b/hugo_stats.json @@ -0,0 +1,478 @@ +{ + "htmlElements": { + "tags": [ + "a", + "article", + "b", + "blockquote", + "body", + "br", + "button", + "defs", + "div", + "em", + "footer", + "form", + "g", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "head", + "hr", + "html", + "i", + "iframe", + "img", + "input", + "label", + "li", + "lineargradient", + "link", + "main", + "meta", + "nav", + "ol", + "option", + "p", + "path", + "picture", + "script", + "section", + "select", + "small", + "source", + "span", + "stop", + "strong", + "style", + "sup", + "svg", + "table", + "tbody", + "td", + "textarea", + "title", + "tr", + "ul" + ], + "classes": [ + "active", + "added", + "align-items-center", + "align-items-start", + "align-self-center", + "align-self-end", + "align-self-start", + "article", + "badge", + "bg-cover", + "bg-gradient-primary", + "bg-light", + "bg-triangles", + "bg-white", + "block", + "border", + "border-0", + "border-bottom", + "border-top", + "btn", + "btn-dark", + "btn-lg", + "btn-outline-primary", + "btn-outline-white", + "btn-primary", + "btn-sm", + "btn-white", + "calc-extra", + "card", + "card-body", + "card-img-top", + "card-text", + "card-title", + "changed", + "col-12", + "col-lg-10", + "col-lg-12", + "col-lg-3", + "col-lg-4", + "col-lg-5", + "col-lg-6", + "col-lg-7", + "col-lg-8", + "col-md-12", + "col-md-3", + "col-md-4", + "col-md-5", + "col-md-6", + "col-md-7", + "col-md-8", + "col-sm-12", + "col-sm-6", + "col-xl-4", + "collapse", + "container", + "content", + "cookie-box", + "cookie-box-button", + "cookie-box-hide", + "copyright", + "d-block", + "d-flex", + "d-inline-block", + "d-inline-flex", + "d-none", + "depricated", + "dropdown", + "dropdown-item", + "dropdown-menu", + "dropdown-menu-end", + "dropdown-menu-lang", + "dropdown-toggle", + "fa", + "fa-2x", + "fa-bars", + "fa-briefcase", + "fa-check", + "fa-clock", + "fa-cloud", + "fa-comments", + "fa-desktop", + "fa-envelope", + "fa-facebook", + "fa-info-circle", + "fa-language", + "fa-linkedin", + "fa-map", + "fa-pinterest-p", + "fa-search", + "fa-search-plus", + "fa-sm", + "fa-solid", + "fa-times", + "fa-twitter", + "fa-user", + "fa-users", + "fa-xs", + "fab", + "fade", + "far", + "fas", + "fixed", + "fixed-top", + "flex-column", + "flex-fill", + "flex-lg-row", + "flex-md-row", + "footnote-backref", + "footnote-ref", + "footnotes", + "form-check", + "form-check-input", + "form-check-label", + "form-control", + "form-label", + "form-select", + "fw-bold", + "g-3", + "g-8", + "gap-2", + "gap-lg-0", + "gap-md-4", + "h-100", + "h4", + "h6", + "hero-area", + "hover-bg-primary", + "icon", + "icon-bg-circle", + "icon-bg-primary", + "icon-lg", + "icon-primary", + "img", + "img-fluid", + "img-product", + "info", + "item-select", + "justify-content-between", + "justify-content-center", + "lh-base", + "list-bordered", + "list-hover-underline", + "list-inline", + "list-inline-item", + "list-styled", + "list-unstyled", + "logo-header", + "m-2", + "mb-0", + "mb-1", + "mb-2", + "mb-3", + "mb-4", + "mb-5", + "mb-lg-0", + "mb-md-0", + "mb-sm-0", + "me-2", + "me-3", + "me-sm-3", + "media-body", + "ml-auto", + "modal", + "modal-close", + "modal-content", + "modal-dialog", + "modal-dialog-centered", + "ms-lg-auto", + "mt-0", + "mt-1", + "mt-2", + "mt-3", + "mt-4", + "mt-5", + "mx-5", + "mx-auto", + "my-2", + "my-3", + "my-4", + "my-md-2", + "nav-item", + "nav-link", + "navbar", + "navbar-brand", + "navbar-collapse", + "navbar-dark", + "navbar-expand-lg", + "navbar-nav", + "navbar-toggler", + "navigation", + "no-trans", + "notice", + "notice-body", + "notice-head", + "object-fit-cover", + "optional-block", + "optional-item", + "order-1", + "order-2", + "order-lg-1", + "order-lg-2", + "order-md-1", + "order-md-2", + "p-0", + "p-2", + "p-4", + "p-sm-4", + "page-title", + "page-title-overlay", + "pb-0", + "pb-2", + "pb-3", + "pb-4", + "pb-8", + "pe-5", + "pe-md-4", + "position-relative", + "pricing-table", + "prod-checkbox", + "product-sections", + "product-subtotal-once", + "product-subtotal-service", + "product-wrap", + "ps-3", + "ps-lg-0", + "ps-lg-4", + "pt-0", + "pt-2", + "pt-4", + "pt-5", + "pt-lg-0", + "px-0", + "px-2", + "px-4", + "px-lg-5", + "px-lg-6", + "px-md-5", + "px-sm-4", + "py-2", + "py-3", + "py-4", + "py-5", + "qty-block", + "qty-item", + "removed", + "rounded", + "rounded-0", + "rounded-1", + "rounded-lg", + "rounded-sm", + "rounded-top-lg", + "rounded-xs", + "row", + "screen-reader-text", + "search-btn", + "section", + "section-lg-bottom", + "section-title", + "security", + "shadow", + "shadow-lg", + "shadow-sm", + "small", + "social-icons", + "sticky-top", + "subscription", + "subscription-wrapper", + "subtitle", + "subtot-sticky", + "tag-list", + "team-member", + "team-member-content", + "team-member-designation", + "team-member-name", + "team-member-social", + "text", + "text-capitalize", + "text-center", + "text-color", + "text-danger", + "text-dark", + "text-gray", + "text-lg-left", + "text-lg-right", + "text-light", + "text-md-left", + "text-muted", + "text-primary", + "text-sm-left", + "text-success", + "text-white", + "transition", + "unreleased", + "w-100", + "warning", + "watermark", + "watermark-sm", + "widget", + "wipe-overlay" + ], + "ids": [ + "ai-lost-alles-op", + "ai-zonder-fratsen", + "bouwen-alleen-systemen-schuld-op", + "changelog-label", + "cloud-hosting-server", + "company", + "cookie-box", + "cookie-button", + "de-impact", + "de-overheid-afhankelijkheid", + "de-vele-nuttige-toepassingen", + "een-storing-wat-nu", + "een-techno-piramidespel", + "estimatedTotal", + "february-updates", + "fn:1", + "fn:2", + "fnref:1", + "fnref:2", + "garanties--service", + "gebruik-opensource-software", + "heb-ik-een-microsoft-apple-of-google-account-nodig", + "heeft-of-behoudt-startit-rechten-over-de-software", + "hoe-los-je-technische-schuld-af", + "is-open-source-software-veilig", + "item-0", + "item-1", + "item-2", + "item-3", + "jobs-description", + "kaf-en-koren-scheiden", + "kan-garantie-vervallen", + "langDropdown", + "leadcapture-error", + "leadcapture-form", + "leadcapture-status", + "march-updates", + "navigation", + "onzekerheid-over-toekomst", + "opt-0-0", + "opt-0-0-hidden", + "opt-0-1", + "opt-0-1-hidden", + "opt-0-2", + "opt-0-2-hidden", + "opt-0-3", + "opt-0-3-hidden", + "opt-0-4", + "opt-0-4-hidden", + "opt-1-0", + "opt-1-0-hidden", + "opt-1-1", + "opt-1-1-hidden", + "opt-2-0", + "opt-2-0-hidden", + "opt-2-1", + "opt-2-1-hidden", + "opt-3-0", + "opt-3-0-hidden", + "opt-3-1", + "opt-3-1-hidden", + "paint0_linear_108_821", + "paint10_linear_108_821", + "paint11_linear_108_821", + "paint12_linear_108_821", + "paint13_linear_108_821", + "paint14_linear_108_821", + "paint15_linear_108_821", + "paint1_linear_108_821", + "paint2_linear_108_821", + "paint3_linear_108_821", + "paint4_linear_108_821", + "paint5_linear_108_821", + "paint6_linear_108_821", + "paint7_linear_108_821", + "paint8_linear_108_821", + "paint9_linear_108_821", + "prod-0", + "prod-1", + "prod-2", + "prod-3", + "qty-0-0", + "qty-1-0", + "qty-2-0", + "qty-2-1", + "qty-3-0", + "qty-3-1", + "qty-3-2", + "quote-form", + "requirements", + "responsibilities", + "search-query", + "search-result-template", + "search-results", + "services", + "software--rechten", + "sparren-zonder-fratsen", + "startit-en-ai", + "stats-hosting-server", + "status-up", + "status-up-1", + "status-up-2", + "total-once", + "total-service", + "traagheid", + "videoModal", + "wat-is-het-gevaar", + "wat-is-technische-schuld", + "wat-maakt-ai-een-bubbel", + "wat-valt-er-onder-garantie", + "website-hosting-server", + "welke-typen-service-zijn-mogelijk", + "wipe" + ] + } +} diff --git a/i18n/en.yaml b/i18n/en.yaml new file mode 100644 index 0000000..cc64f81 --- /dev/null +++ b/i18n/en.yaml @@ -0,0 +1,72 @@ +- id: career_subtitle + translation: Best Jobs + +- id: career_title + translation: Featured Jobs + +- id: apply_now + translation: Apply Now + +- id: job_details + translation: Job Details + +- id: location + translation: Location + +- id: job_category + translation: Job Category + +- id: job_type + translation: Job Type + +- id: posted_date + translation: Posted Date + +- id: keep_in_touch + translation: Keep In Touch + +- id: form_subtitle + translation: Message + +- id: form_title + translation: Contact + +- id: submit_now + translation: Submit + +- id: quick_links + translation: Quick links + +- id: contact_info + translation: Contact information + +- id: search + translation: Search + +- id: category + translation: Categories + +- id: latest_article + translation: Latest articles + +- id: tags + translation: Tags + +- id: subscribe_newsletter + translation: Subscribe to our newsletter + +- id: subscribe_now + translation: Send + +- id: yearly + translation: Yearly + +- id: monthly + translation: Monthly + + # Forms +- id: form-select-option + translation: Select option... + +- id: your_email + translation: Your email address \ No newline at end of file diff --git a/i18n/nl.yaml b/i18n/nl.yaml new file mode 100644 index 0000000..ebc68d9 --- /dev/null +++ b/i18n/nl.yaml @@ -0,0 +1,75 @@ +- id: career_subtitle + translation: Best Jobs + +- id: career_title + translation: Featured Jobs + +- id: apply_now + translation: Apply Now + +- id: job_details + translation: Job Details + +- id: location + translation: Location + +- id: job_category + translation: Job Category + +- id: job_type + translation: Job Type + +- id: posted_date + translation: Datum + +- id: keep_in_touch + translation: Blijf op de hoogte + +- id: form_subtitle + translation: Bericht + +- id: form_title + translation: Contact + +- id: submit_now + translation: Verstuur nu + +- id: quick_links + translation: Snel naar... + +- id: contact_info + translation: Contact informatie + +- id: search + translation: Zoeken + +- id: category + translation: Categorieën + +- id: latest_article + translation: Nieuwste artikelen + +- id: tags + translation: Tags + +- id: subscribe_newsletter + translation: Aanmelden nieuwsbrief + +- id: subscribe_now + translation: Verstuur + +- id: yearly + translation: Jaarlijks + +- id: monthly + translation: Maandelijks + +- id: more_info + translation: Informatie + + # Forms +- id: form-select-option + translation: Maak een keuze... + +- id: your_email + translation: Jouw e-mailadres \ No newline at end of file diff --git a/layouts/partials/autotooltips.html b/layouts/partials/autotooltips.html new file mode 100644 index 0000000..14c54bb --- /dev/null +++ b/layouts/partials/autotooltips.html @@ -0,0 +1,26 @@ +{{- $page := . -}} +{{- $html := $page.Content -}} + +{{- $items := site.Data.tooltips.items -}} + +{{/* 1: placeholders zetten */}} +{{- range $name, $cfg := $items }} + {{- $label := $cfg.label -}} + {{- $placeholder := printf "__TOOLTIP_%s__" $name -}} + {{- $pattern := printf `\b%s\b` $label -}} + {{- $html = replaceRE $pattern $placeholder $html -}} +{{- end }} + +{{/* 2: placeholders vervangen door tooltip-woord */}} +{{- range $name, $cfg := $items }} + {{- $label := $cfg.label -}} + {{- $key := $cfg.key -}} + {{- $text := i18n $key -}} + {{- $placeholder := printf "__TOOLTIP_%s__" $name -}} + + {{- $replacement := printf `%s` $text $label -}} + + {{- $html = replace $html $placeholder $replacement -}} +{{- end }} + +{{- $html | safeHTML -}} diff --git a/layouts/partials/image.html b/layouts/partials/image.html new file mode 100644 index 0000000..3b7c4db --- /dev/null +++ b/layouts/partials/image.html @@ -0,0 +1,283 @@ +{{ $image:= . }} +{{ $imagePath:= .Src }} +{{ $class:= .Class }} +{{ $size:= .Size }} +{{ $alt:= .Alt }} +{{ $displayXL:= .DisplayXL | default "1110x" }} +{{ $displayLG:= .DisplayLG | default "700x" }} +{{ $displayMD:= .DisplayMD | default "600x" }} +{{ $displaySM:= .DisplaySM | default "545x" }} +{{ $resize:= .Resize | default true }} +{{ $loading:= .Loading | default "lazy" }} +{{ $fetchpriority:= .FetchPriority | default "" }} +{{ $context:= .Context | default . }} +{{ $contentImage:= false }} +{{ $assetImage:= false }} +{{ $sizeValue:= index (split $size ` `) 0 }} +{{ $height:= index (split $sizeValue `x`) 1 }} +{{ $width:= index (split $sizeValue `x`) 0 }} +{{ $webp:= .Webp | default true }} +{{ $command:= .Command | default "Resize" }} +{{ $placeholder:= .Placeholder | default false }} +{{ $placeholderQuality:= "40x q20" }} + + + +{{ with $context.Resources.GetMatch $imagePath }} + {{ $contentImage = true }} +{{ end }} + + + +{{ if and (not (strings.HasPrefix $imagePath "http")) (fileExists (add `assets/` (string $imagePath))) }} + {{ $assetImage = true }} +{{ end }} + + + +{{ if or (hasPrefix $imagePath "http") (fileExists (add `static/` (string $imagePath))) }} + {{ .Alt }} +{{ else }} + + + + {{ if or $assetImage $contentImage }} + {{ if $assetImage }} + {{ $image = resources.Get $imagePath }} + {{ else if $contentImage }} + {{ $image = $context.Resources.GetMatch $imagePath }} + {{ end }} + + + + {{ $imageExt := path.Ext $image }} + + + + {{ if eq $imageExt `.svg` }} + {{ .Scratch.Set "image-height" "" }} + {{ .Scratch.Set "image-width" "" }} + {{ else }} + {{ .Scratch.Set "image-height" $image.Height }} + {{ .Scratch.Set "image-width" $image.Width }} + {{ end }} + {{ $imageHeight:= .Scratch.Get "image-height" }} + {{ $imageWidth:= .Scratch.Get "image-width" }} + + + + {{ if or (eq $imageExt `.gif`) (eq $imageExt `.svg`) }} + {{ .Alt }} + {{ else }} + + {{ if $size }} + + {{ $imageFallback:= $image.Resize $size }} + {{ $imageWebp:= $image.Resize (add (string $size) " webp") }} + {{ if not $webp }} + {{ $imageWebp = $image.Resize (string $size) }} + {{ end }} + + {{ if eq $command "Fit" }} + {{ $imageFallback = $image.Fit $size }} + {{ $imageWebp = $image.Fit (add (string $size) " webp") }} + {{ if not $webp }} + {{ $imageWebp = $image.Fit (string $size) }} + {{ end }} + + {{ else if eq $command "Fill" }} + {{ $imageFallback = $image.Fill $size }} + {{ $imageWebp = $image.Fill (add (string $size) " webp") }} + {{ if not $webp }} + {{ $imageWebp = $image.Fill (string $size) }} + {{ end }} + + {{ else if eq $command "Crop" }} + {{ $imageFallback = $image.Crop $size }} + {{ $imageWebp = $image.Crop (add (string $size) " webp") }} + {{ if not $webp }} + {{ $imageWebp = $image.Crop (string $size) }} + {{ end }} + {{ end }} + + + + {{ $placeholderImage := ($imageWebp.Resize $placeholderQuality) | images.Filter (images.GaussianBlur 5) }} + + + {{ .Alt }} + + + {{ else if or (lt ($image.Width) 500) (not $resize) }} + {{ $size:= add (add (string $image.Width) "x") (string $image.Height) }} + + {{ $imageWebp:= $image.Resize (add (string $size) " webp") }} + {{ if not $webp }} + {{ $imageWebp = $image.Resize (string $size) }} + {{ end }} + + {{ if eq $command "Fit" }} + {{ $imageWebp = $image.Resize (add (string $size) " webp") }} + {{ if not $webp }} + {{ $imageWebp = $image.Resize (string $size) }} + {{ end }} + + {{ else if eq $command "Fill" }} + {{ $imageWebp = $image.Resize (add (string $size) " webp") }} + {{ if not $webp }} + {{ $imageWebp = $image.Resize (string $size) }} + {{ end }} + + {{ else if eq $command "Crop" }} + {{ $imageWebp = $image.Resize (add (string $size) " webp") }} + {{ if not $webp }} + {{ $imageWebp = $image.Resize (string $size) }} + {{ end }} + {{ end }} + + + + {{ $placeholderImage := ($imageWebp.Resize $placeholderQuality) | images.Filter (images.GaussianBlur 5) }} + + + placeholder + {{ else }} + + + + {{ $imageFallback:= $image.Resize $displayXL }} + {{ $imageXL:= $image.Resize (add $displayXL " webp") }} + {{ $imageLG:= $image.Resize (add $displayLG " webp") }} + {{ $imageMD:= $image.Resize (add $displayMD " webp") }} + {{ $imageSM:= $image.Resize (add $displaySM " webp") }} + {{ if not $webp }} + {{ $imageXL = $image.Resize $displayXL }} + {{ $imageLG = $image.Resize $displayLG }} + {{ $imageMD = $image.Resize $displayMD }} + {{ $imageSM = $image.Resize $displaySM }} + {{ end }} + + + + {{ $placeholderImage := ($imageFallback.Resize $placeholderQuality) | images.Filter (images.GaussianBlur 5) }} + + + + + + + + {{ .Alt }} + + {{ end }} + + {{ end }} + + {{ end }} + + + +{{ end }} \ No newline at end of file diff --git a/layouts/partials/tooltip.html b/layouts/partials/tooltip.html new file mode 100644 index 0000000..c5700d0 --- /dev/null +++ b/layouts/partials/tooltip.html @@ -0,0 +1,18 @@ +{{- $name := .Get 0 -}} +{{- $label := cond (ge (len .Params) 2) (.Get 1) $name -}} + +{{/* naam "hugo" -> i18n key "tooltip_hugo" */}} +{{- $key := printf "tooltip_%s" $name -}} + +{{- $raw := i18n $key -}} + +{{/* simpele fallback als vertaling ontbreekt */}} +{{- $text := cond (eq $raw $key) (printf "Missing tooltip for '%s'" $name) $raw -}} + + + {{ $label }} + + \ No newline at end of file diff --git a/layouts/shortcodes/notice.html b/layouts/shortcodes/notice.html new file mode 100644 index 0000000..1c71450 --- /dev/null +++ b/layouts/shortcodes/notice.html @@ -0,0 +1,107 @@ +{{/* Eerste parameter = type, tweede = title (optioneel) */}} +{{ $type := .Get 0 | default "info" }} +{{ $title := .Get 1 }} + +{{ $type_class := "info" }} + +{{ if eq "note" $type }} + {{ $type_class = "note" }} +{{ else if in (slice "abstract" "summary" "tldr") $type }} + {{ $type_class = "abstract" }} +{{ else if eq "info" $type }} + {{ $type_class = "info" }} +{{ else if eq "todo" $type }} + {{ $type_class = "todo" }} +{{ else if in (slice "tip" "hint" "important") $type }} + {{ $type_class = "tip" }} +{{ else if in (slice "success" "check" "done") $type }} + {{ $type_class = "success" }} +{{ else if in (slice "question" "help" "faq") $type }} + {{ $type_class = "question" }} +{{ else if in (slice "warning" "caution" "attention") $type }} + {{ $type_class = "warning" }} +{{ else if in (slice "failure" "fail" "missing") $type }} + {{ $type_class = "failure" }} +{{ else if in (slice "danger" "error") $type }} + {{ $type_class = "danger" }} +{{ else if eq "bug" $type }} + {{ $type_class = "bug" }} +{{ else if eq "example" $type }} + {{ $type_class = "example" }} +{{ else if in (slice "quote" "cite") $type }} + {{ $type_class = "quote" }} +{{ end }} + +
+
+ {{- if eq $type_class "note" -}} + + + + {{- else if eq $type_class "abstract" -}} + + + + {{- else if eq $type_class "info" -}} + + + + {{- else if eq $type_class "todo" -}} + + + + {{- else if eq $type_class "tip" -}} + + + + + {{- else if eq $type_class "success" -}} + + + + {{- else if eq $type_class "question" -}} + + + + {{- else if eq $type_class "warning" -}} + + + + {{- else if eq $type_class "failure" -}} + + + + {{- else if eq $type_class "danger" -}} + + + + {{- else if eq $type_class "bug" -}} + + + + {{- else if eq $type_class "example" -}} + + + + {{- else if eq $type_class "quote" -}} + + + + {{- else -}} + + + + {{- end -}} + + {{ if $title }} +

{{ $title }}

+ {{ else }} +

{{ $type | title }}

+ {{ end }} +
+ +
+

{{ .Inner | markdownify }}

+
+
diff --git a/netlify.toml b/netlify.toml new file mode 100755 index 0000000..4b0aee1 --- /dev/null +++ b/netlify.toml @@ -0,0 +1,8 @@ +[build] +publish = "public" +command = "yarn project-setup && yarn build" + +[build.environment] +HUGO_VERSION = "0.145.0" +GO_VERSION = "1.24.1" +HUGO_BASEURL = "/" \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..82ad803 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1052 @@ +{ + "name": "agico-hugo", + "version": "3.1.3", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "agico-hugo", + "version": "3.1.3", + "license": "UNLICENSED", + "devDependencies": { + "@fullhuman/postcss-purgecss": "^5.0.0", + "postcss": "^8.4.20", + "postcss-cli": "^10.1.0", + "prettier": "^2.8.1", + "prettier-plugin-go-template": "0.0.13" + } + }, + "node_modules/@fullhuman/postcss-purgecss": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@fullhuman/postcss-purgecss/-/postcss-purgecss-5.0.0.tgz", + "integrity": "sha512-onDS/b/2pMRzqSoj4qOs2tYFmOpaspjTAgvACIHMPiicu1ptajiBruTrjBzTKdxWdX0ldaBb7wj8nEaTLyFkJw==", + "dev": true, + "dependencies": { + "purgecss": "^5.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz", + "integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-cli": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-10.1.0.tgz", + "integrity": "sha512-Zu7PLORkE9YwNdvOeOVKPmWghprOtjFQU3srMUGbdz3pHJiFh7yZ4geiZFMkjMfB0mtTFR3h8RemR62rPkbOPA==", + "dev": true, + "dependencies": { + "chokidar": "^3.3.0", + "dependency-graph": "^0.11.0", + "fs-extra": "^11.0.0", + "get-stdin": "^9.0.0", + "globby": "^13.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^4.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^5.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-reporter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.1.0.tgz", + "integrity": "sha512-/eoEylGWyy6/DOiMP5lmFRdmDKThqgn7D6hP2dXKJI/0rJSO1ADFNngZfDzxL0YAxFvws+Rtpuji1YIHj4mySA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-go-template": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/prettier-plugin-go-template/-/prettier-plugin-go-template-0.0.13.tgz", + "integrity": "sha512-gG/xT5kd+kCzoMaTchXvdfBdsunyRCV6G8cgdPGPd2V5JGGKXUG7SjzBKU7jaGh2RTeblcAdBb/E+S/duOAMsA==", + "dev": true, + "dependencies": { + "ulid": "^2.3.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "prettier": "^2.0.0" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/purgecss": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-5.0.0.tgz", + "integrity": "sha512-RAnuxrGuVyLLTr8uMbKaxDRGWMgK5CCYDfRyUNNcaz5P3kGgD2b7ymQGYEyo2ST7Tl/ScwFgf5l3slKMxHSbrw==", + "dev": true, + "dependencies": { + "commander": "^9.0.0", + "glob": "^8.0.3", + "postcss": "^8.4.4", + "postcss-selector-parser": "^6.0.7" + }, + "bin": { + "purgecss": "bin/purgecss.js" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ulid": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ulid/-/ulid-2.4.0.tgz", + "integrity": "sha512-fIRiVTJNcSRmXKPZtGzFQv9WRrZ3M9eoptl/teFJvjOzmpU+/K/JH6HZ8deBfb5vMEpicJcLn7JmvdknlMq7Zg==", + "dev": true, + "bin": { + "ulid": "bin/cli.js" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yaml": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", + "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", + "dev": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..db44913 --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "agico-hugo", + "version": "3.1.3", + "license": "UNLICENSED", + "author": "gethugothemes", + "scripts": { + "dev": "hugo server", + "build": "hugo --gc --minify --templateMetrics --templateMetricsHints --buildDrafts --buildExpired --buildFuture --forceSyncStatic", + "test": "hugo server --disableFastRender --navigateToChanged --templateMetrics --templateMetricsHints --buildDrafts --buildExpired --buildFuture --watch --forceSyncStatic -e production --minify", + "dev:example": "cd exampleSite; hugo server --themesDir ../..", + "build:example": "cd exampleSite; hugo --themesDir ../.. --gc --minify --templateMetrics --templateMetricsHints --buildDrafts --buildExpired --buildFuture --forceSyncStatic", + "test:example": "cd exampleSite; hugo server --themesDir ../.. --disableFastRender --navigateToChanged --templateMetrics --templateMetricsHints --buildDrafts --buildExpired --buildFuture --watch --forceSyncStatic -e production --minify", + "update-modules": "node ./scripts/clearModules.js && hugo mod clean --all && hugo mod get -u ./... && hugo mod tidy", + "project-setup": "node ./scripts/projectSetup.js", + "theme-setup": "node ./scripts/themeSetup.js", + "format": "prettier -w ." + }, + "devDependencies": { + "@fullhuman/postcss-purgecss": "^5.0.0", + "postcss": "^8.4.20", + "postcss-cli": "^10.1.0", + "prettier": "^2.8.1", + "prettier-plugin-go-template": "0.0.13" + } +} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..c3a6e45 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,35 @@ +const purgecss = require("@fullhuman/postcss-purgecss")({ + content: ["./hugo_stats.json"], + defaultExtractor: (content) => { + const els = JSON.parse(content).htmlElements; + return [...(els.tags || []), ...(els.classes || []), ...(els.ids || [])]; + }, + safelist: [ + /dark/, + /^swiper-/, + /collapsing/, + /show/, + /[aria-expanded=true]/, + /[aria-expanded=false]/, + /^lb-/, + /^gl/, + /^go/, + /^gc/, + /^gs/, + /^gi/, + /^desc/, + /^zoom/, + /dragging/, + /fullscreen/, + /loaded/, + /visible/, + /current/, + /active/, + ], +}); + +module.exports = { + plugins: [ + ...(process.env.HUGO_ENVIRONMENT === "production" ? [purgecss] : []), + ], +}; diff --git a/print/card.svg b/print/card.svg new file mode 100644 index 0000000..3156a71 --- /dev/null +++ b/print/card.svg @@ -0,0 +1,140 @@ + +Machiel Heinen0657969491machiel@start-it.nl diff --git a/print/cardBack.svg b/print/cardBack.svg new file mode 100644 index 0000000..05df4e6 --- /dev/null +++ b/print/cardBack.svg @@ -0,0 +1,4353 @@ + +www.start-it.nl diff --git a/print/cardFront.png b/print/cardFront.png new file mode 100644 index 0000000..f4e4c0a Binary files /dev/null and b/print/cardFront.png differ diff --git a/print/cardFront.svg b/print/cardFront.svg new file mode 100644 index 0000000..94d33ba --- /dev/null +++ b/print/cardFront.svg @@ -0,0 +1,140 @@ + +Machiel Heinen+31 6 57969491machiel@start-it.nl diff --git a/print/logo.svg b/print/logo.svg new file mode 100644 index 0000000..2f585da --- /dev/null +++ b/print/logo.svg @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/print/paper.svg b/print/paper.svg new file mode 100644 index 0000000..80cc1ed --- /dev/null +++ b/print/paper.svg @@ -0,0 +1,251 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Slimme IT + zonder fratsen + + + +31 6 5796 9491 + info@start-it.nl + + + + diff --git a/print/phone.png b/print/phone.png new file mode 100644 index 0000000..08b3134 Binary files /dev/null and b/print/phone.png differ diff --git a/print/shirt.svg b/print/shirt.svg new file mode 100644 index 0000000..6462cd5 --- /dev/null +++ b/print/shirt.svg @@ -0,0 +1,42 @@ + + diff --git a/print/whatsapp.png b/print/whatsapp.png new file mode 100644 index 0000000..2d5bf87 Binary files /dev/null and b/print/whatsapp.png differ diff --git a/scripts/clearModules.js b/scripts/clearModules.js new file mode 100644 index 0000000..1b9c74a --- /dev/null +++ b/scripts/clearModules.js @@ -0,0 +1,14 @@ +const fs = require("fs"); + +const clearModules = (filePath) => { + if (fs.existsSync(filePath)) { + let fileContent = fs.readFileSync(filePath, "utf8"); + fileContent = fileContent.replace(/require\s*\([\s\S]*?\)/, ""); + fs.writeFileSync(filePath, fileContent, "utf8"); + } else { + console.log("File does not exist."); + } +}; + +clearModules("go.mod"); +clearModules("exampleSite/go.mod"); diff --git a/scripts/projectSetup.js b/scripts/projectSetup.js new file mode 100644 index 0000000..4585fc9 --- /dev/null +++ b/scripts/projectSetup.js @@ -0,0 +1,77 @@ +const fs = require("fs"); +const path = require("path"); + +const getFolderName = (rootfolder) => { + const configPath = path.join( + rootfolder, + "exampleSite/config/_default/hugo.toml" + ); + const getConfig = fs.readFileSync(configPath, "utf8"); + const match = getConfig.match(/theme\s*=\s*\[?"([^"\]]+)"\]?/); + let selectedTheme = null; + if (match && match[1]) { + selectedTheme = match[1]; + } + return selectedTheme; +}; + +const deleteFolder = (folderPath) => { + if (fs.existsSync(folderPath)) { + fs.rmSync(folderPath, { recursive: true, force: true }); + } +}; + +const createNewfolder = (rootfolder, folderName) => { + const newFolder = path.join(rootfolder, folderName); + fs.mkdirSync(newFolder, { recursive: true }); + return newFolder; +}; + +const iterateFilesAndFolders = (rootFolder, { destinationRoot }) => { + const directory = path.join(rootFolder); + const items = fs.readdirSync(directory, { withFileTypes: true }); + items.forEach((item) => { + if (item.isDirectory()) { + createNewfolder(destinationRoot, item.name); + iterateFilesAndFolders(path.join(directory, item.name), { + currentFolder: item.name, + destinationRoot: path.join(destinationRoot, item.name), + }); + } else { + const sourceFile = path.join(directory, item.name); + const destinationFile = path.join(destinationRoot, item.name); + fs.renameSync(sourceFile, destinationFile); + } + }); +}; + +const setupProject = () => { + const rootfolder = path.join(__dirname, "../"); + if (!fs.existsSync(path.join(rootfolder, "themes"))) { + const folderList = ["layouts", "assets", "static"]; + const folderName = getFolderName(rootfolder); + const newfolderName = createNewfolder( + path.join(rootfolder, "themes"), + folderName + ); + + folderList.forEach((folder) => { + const source = path.join(rootfolder, folder); + const destination = path.join(newfolderName, folder); + if (fs.existsSync(source)) { + fs.mkdirSync(destination, { recursive: true }); + iterateFilesAndFolders(source, { + currentFolder: folder, + destinationRoot: destination, + }); + deleteFolder(source); + } + }); + + const exampleSite = path.join(rootfolder, "exampleSite"); + iterateFilesAndFolders(exampleSite, { destinationRoot: rootfolder }); + deleteFolder(exampleSite); + } +}; + +setupProject(); diff --git a/scripts/themeSetup.js b/scripts/themeSetup.js new file mode 100644 index 0000000..ad32df9 --- /dev/null +++ b/scripts/themeSetup.js @@ -0,0 +1,93 @@ +const fs = require("fs"); +const path = require("path"); + +const createNewfolder = (rootfolder, folderName) => { + const newFolder = path.join(rootfolder, folderName); + fs.mkdirSync(newFolder, { recursive: true }); + return newFolder; +}; + +const deleteFolder = (folderPath) => { + if (fs.existsSync(folderPath)) { + fs.rmSync(folderPath, { recursive: true, force: true }); + } +}; + +const getFolderName = (rootfolder) => { + const configPath = path.join( + rootfolder, + "exampleSite/config/_default/hugo.toml" + ); + const getConfig = fs.readFileSync(configPath, "utf8"); + const match = getConfig.match(/theme\s*=\s*\[?"([^"\]]+)"\]?/); + let selectedTheme = null; + if (match && match[1]) { + selectedTheme = match[1]; + } + return selectedTheme; +}; + +const iterateFilesAndFolders = (rootFolder, { destinationRoot }) => { + const directory = path.join(rootFolder); + const items = fs.readdirSync(directory, { withFileTypes: true }); + items.forEach((item) => { + if (item.isDirectory()) { + createNewfolder(destinationRoot, item.name); + iterateFilesAndFolders(path.join(directory, item.name), { + currentFolder: item.name, + destinationRoot: path.join(destinationRoot, item.name), + }); + } else { + const sourceFile = path.join(directory, item.name); + const destinationFile = path.join(destinationRoot, item.name); + fs.renameSync(sourceFile, destinationFile); + } + }); +}; + +const setupTheme = () => { + const rootFolder = path.join(__dirname, "../"); + + if (!fs.existsSync(path.join(rootFolder, "exampleSite"))) { + const includesFiles = [ + "tailwind.config.js", + "postcss.config.js", + "go.mod", + "hugo.toml", + "assets", + "config", + "data", + "content", + "i18n", + "static", + ]; + + const folder = createNewfolder(rootFolder, "exampleSite"); + + fs.readdirSync(rootFolder, { withFileTypes: true }).forEach((file) => { + if (includesFiles.includes(file.name)) { + if (file.isDirectory()) { + const destination = path.join(rootFolder, "exampleSite", file.name); + fs.mkdirSync(destination, { recursive: true }); + iterateFilesAndFolders(path.join(rootFolder, file.name), { + destinationRoot: destination, + }); + deleteFolder(path.join(rootFolder, file.name)); + } else { + fs.renameSync( + path.join(rootFolder, file.name), + path.join(folder, file.name) + ); + } + } + }); + + const themes = path.join(rootFolder, "themes"); + iterateFilesAndFolders(path.join(themes, getFolderName(rootFolder)), { + destinationRoot: rootFolder, + }); + deleteFolder(themes); + } +}; + +setupTheme(); diff --git a/static/fonts/WorkSans-ExtraBold.woff2 b/static/fonts/WorkSans-ExtraBold.woff2 new file mode 100644 index 0000000..e7a9178 Binary files /dev/null and b/static/fonts/WorkSans-ExtraBold.woff2 differ diff --git a/static/fonts/WorkSans-Italic.woff2 b/static/fonts/WorkSans-Italic.woff2 new file mode 100644 index 0000000..1c3a5be Binary files /dev/null and b/static/fonts/WorkSans-Italic.woff2 differ diff --git a/static/fonts/WorkSans-Regular.woff2 b/static/fonts/WorkSans-Regular.woff2 new file mode 100644 index 0000000..02a6a42 Binary files /dev/null and b/static/fonts/WorkSans-Regular.woff2 differ diff --git a/static/fonts/WorkSans-SemiBold.woff2 b/static/fonts/WorkSans-SemiBold.woff2 new file mode 100644 index 0000000..1ec3048 Binary files /dev/null and b/static/fonts/WorkSans-SemiBold.woff2 differ diff --git a/static/robots.txt b/static/robots.txt new file mode 100644 index 0000000..8e8b10b --- /dev/null +++ b/static/robots.txt @@ -0,0 +1,3 @@ +User-agent: * +Disallow: +Sitemap: https://start-it.nl/sitemap.xml \ No newline at end of file diff --git a/themes/agico-hugo/assets/.DS_Store b/themes/agico-hugo/assets/.DS_Store new file mode 100644 index 0000000..968283f Binary files /dev/null and b/themes/agico-hugo/assets/.DS_Store differ diff --git a/themes/agico-hugo/assets/js/bootstrap.js b/themes/agico-hugo/assets/js/bootstrap.js new file mode 100644 index 0000000..a209f97 --- /dev/null +++ b/themes/agico-hugo/assets/js/bootstrap.js @@ -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); +// }); +// })(); diff --git a/themes/agico-hugo/assets/js/script.js b/themes/agico-hugo/assets/js/script.js new file mode 100755 index 0000000..4e91dbd --- /dev/null +++ b/themes/agico-hugo/assets/js/script.js @@ -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]); +}); \ No newline at end of file diff --git a/themes/agico-hugo/assets/plugins/aos/aos.css b/themes/agico-hugo/assets/plugins/aos/aos.css new file mode 100644 index 0000000..61dbf06 --- /dev/null +++ b/themes/agico-hugo/assets/plugins/aos/aos.css @@ -0,0 +1,3495 @@ +[data-aos][data-aos][data-aos-duration="50"],body[data-aos-duration="50"] [data-aos]{transition-duration:50ms}[data-aos][data-aos][data-aos-delay="50"],body[data-aos-delay="50"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="50"].aos-animate,body[data-aos-delay="50"] [data-aos].aos-animate{transition-delay:50ms}[data-aos][data-aos][data-aos-duration="100"],body[data-aos-duration="100"] [data-aos]{transition-duration:.1s}[data-aos][data-aos][data-aos-delay="100"],body[data-aos-delay="100"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="100"].aos-animate,body[data-aos-delay="100"] [data-aos].aos-animate{transition-delay:.1s}[data-aos][data-aos][data-aos-duration="150"],body[data-aos-duration="150"] [data-aos]{transition-duration:.15s}[data-aos][data-aos][data-aos-delay="150"],body[data-aos-delay="150"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="150"].aos-animate,body[data-aos-delay="150"] [data-aos].aos-animate{transition-delay:.15s}[data-aos][data-aos][data-aos-duration="200"],body[data-aos-duration="200"] [data-aos]{transition-duration:.2s}[data-aos][data-aos][data-aos-delay="200"],body[data-aos-delay="200"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="200"].aos-animate,body[data-aos-delay="200"] [data-aos].aos-animate{transition-delay:.2s}[data-aos][data-aos][data-aos-duration="250"],body[data-aos-duration="250"] [data-aos]{transition-duration:.25s}[data-aos][data-aos][data-aos-delay="250"],body[data-aos-delay="250"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="250"].aos-animate,body[data-aos-delay="250"] [data-aos].aos-animate{transition-delay:.25s}[data-aos][data-aos][data-aos-duration="300"],body[data-aos-duration="300"] [data-aos]{transition-duration:.3s}[data-aos][data-aos][data-aos-delay="300"],body[data-aos-delay="300"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="300"].aos-animate,body[data-aos-delay="300"] [data-aos].aos-animate{transition-delay:.3s}[data-aos][data-aos][data-aos-duration="350"],body[data-aos-duration="350"] [data-aos]{transition-duration:.35s}[data-aos][data-aos][data-aos-delay="350"],body[data-aos-delay="350"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="350"].aos-animate,body[data-aos-delay="350"] [data-aos].aos-animate{transition-delay:.35s}[data-aos][data-aos][data-aos-duration="400"],body[data-aos-duration="400"] [data-aos]{transition-duration:.4s}[data-aos][data-aos][data-aos-delay="400"],body[data-aos-delay="400"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="400"].aos-animate,body[data-aos-delay="400"] [data-aos].aos-animate{transition-delay:.4s}[data-aos][data-aos][data-aos-duration="450"],body[data-aos-duration="450"] [data-aos]{transition-duration:.45s}[data-aos][data-aos][data-aos-delay="450"],body[data-aos-delay="450"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="450"].aos-animate,body[data-aos-delay="450"] [data-aos].aos-animate{transition-delay:.45s}[data-aos][data-aos][data-aos-duration="500"],body[data-aos-duration="500"] [data-aos]{transition-duration:.5s}[data-aos][data-aos][data-aos-delay="500"],body[data-aos-delay="500"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="500"].aos-animate,body[data-aos-delay="500"] [data-aos].aos-animate{transition-delay:.5s}[data-aos][data-aos][data-aos-duration="550"],body[data-aos-duration="550"] [data-aos]{transition-duration:.55s}[data-aos][data-aos][data-aos-delay="550"],body[data-aos-delay="550"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="550"].aos-animate,body[data-aos-delay="550"] [data-aos].aos-animate{transition-delay:.55s}[data-aos][data-aos][data-aos-duration="600"],body[data-aos-duration="600"] [data-aos]{transition-duration:.6s}[data-aos][data-aos][data-aos-delay="600"],body[data-aos-delay="600"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="600"].aos-animate,body[data-aos-delay="600"] [data-aos].aos-animate{transition-delay:.6s}[data-aos][data-aos][data-aos-duration="650"],body[data-aos-duration="650"] [data-aos]{transition-duration:.65s}[data-aos][data-aos][data-aos-delay="650"],body[data-aos-delay="650"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="650"].aos-animate,body[data-aos-delay="650"] [data-aos].aos-animate{transition-delay:.65s}[data-aos][data-aos][data-aos-duration="700"],body[data-aos-duration="700"] [data-aos]{transition-duration:.7s}[data-aos][data-aos][data-aos-delay="700"],body[data-aos-delay="700"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="700"].aos-animate,body[data-aos-delay="700"] [data-aos].aos-animate{transition-delay:.7s}[data-aos][data-aos][data-aos-duration="750"],body[data-aos-duration="750"] [data-aos]{transition-duration:.75s}[data-aos][data-aos][data-aos-delay="750"],body[data-aos-delay="750"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="750"].aos-animate,body[data-aos-delay="750"] [data-aos].aos-animate{transition-delay:.75s}[data-aos][data-aos][data-aos-duration="800"],body[data-aos-duration="800"] [data-aos]{transition-duration:.8s}[data-aos][data-aos][data-aos-delay="800"],body[data-aos-delay="800"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="800"].aos-animate,body[data-aos-delay="800"] [data-aos].aos-animate{transition-delay:.8s}[data-aos][data-aos][data-aos-duration="850"],body[data-aos-duration="850"] [data-aos]{transition-duration:.85s}[data-aos][data-aos][data-aos-delay="850"],body[data-aos-delay="850"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="850"].aos-animate,body[data-aos-delay="850"] [data-aos].aos-animate{transition-delay:.85s}[data-aos][data-aos][data-aos-duration="900"],body[data-aos-duration="900"] [data-aos]{transition-duration:.9s}[data-aos][data-aos][data-aos-delay="900"],body[data-aos-delay="900"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="900"].aos-animate,body[data-aos-delay="900"] [data-aos].aos-animate{transition-delay:.9s}[data-aos][data-aos][data-aos-duration="950"],body[data-aos-duration="950"] [data-aos]{transition-duration:.95s}[data-aos][data-aos][data-aos-delay="950"],body[data-aos-delay="950"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="950"].aos-animate,body[data-aos-delay="950"] [data-aos].aos-animate{transition-delay:.95s}[data-aos][data-aos][data-aos-duration="1000"],body[data-aos-duration="1000"] [data-aos]{transition-duration:1s}[data-aos][data-aos][data-aos-delay="1000"],body[data-aos-delay="1000"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1000"].aos-animate,body[data-aos-delay="1000"] [data-aos].aos-animate{transition-delay:1s}[data-aos][data-aos][data-aos-duration="1050"],body[data-aos-duration="1050"] [data-aos]{transition-duration:1.05s}[data-aos][data-aos][data-aos-delay="1050"],body[data-aos-delay="1050"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1050"].aos-animate,body[data-aos-delay="1050"] [data-aos].aos-animate{transition-delay:1.05s}[data-aos][data-aos][data-aos-duration="1100"],body[data-aos-duration="1100"] [data-aos]{transition-duration:1.1s}[data-aos][data-aos][data-aos-delay="1100"],body[data-aos-delay="1100"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1100"].aos-animate,body[data-aos-delay="1100"] [data-aos].aos-animate{transition-delay:1.1s}[data-aos][data-aos][data-aos-duration="1150"],body[data-aos-duration="1150"] [data-aos]{transition-duration:1.15s}[data-aos][data-aos][data-aos-delay="1150"],body[data-aos-delay="1150"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1150"].aos-animate,body[data-aos-delay="1150"] [data-aos].aos-animate{transition-delay:1.15s}[data-aos][data-aos][data-aos-duration="1200"],body[data-aos-duration="1200"] [data-aos]{transition-duration:1.2s}[data-aos][data-aos][data-aos-delay="1200"],body[data-aos-delay="1200"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1200"].aos-animate,body[data-aos-delay="1200"] [data-aos].aos-animate{transition-delay:1.2s}[data-aos][data-aos][data-aos-duration="1250"],body[data-aos-duration="1250"] [data-aos]{transition-duration:1.25s}[data-aos][data-aos][data-aos-delay="1250"],body[data-aos-delay="1250"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1250"].aos-animate,body[data-aos-delay="1250"] [data-aos].aos-animate{transition-delay:1.25s}[data-aos][data-aos][data-aos-duration="1300"],body[data-aos-duration="1300"] [data-aos]{transition-duration:1.3s}[data-aos][data-aos][data-aos-delay="1300"],body[data-aos-delay="1300"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1300"].aos-animate,body[data-aos-delay="1300"] [data-aos].aos-animate{transition-delay:1.3s}[data-aos][data-aos][data-aos-duration="1350"],body[data-aos-duration="1350"] [data-aos]{transition-duration:1.35s}[data-aos][data-aos][data-aos-delay="1350"],body[data-aos-delay="1350"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1350"].aos-animate,body[data-aos-delay="1350"] [data-aos].aos-animate{transition-delay:1.35s}[data-aos][data-aos][data-aos-duration="1400"],body[data-aos-duration="1400"] [data-aos]{transition-duration:1.4s}[data-aos][data-aos][data-aos-delay="1400"],body[data-aos-delay="1400"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1400"].aos-animate,body[data-aos-delay="1400"] [data-aos].aos-animate{transition-delay:1.4s}[data-aos][data-aos][data-aos-duration="1450"],body[data-aos-duration="1450"] [data-aos]{transition-duration:1.45s}[data-aos][data-aos][data-aos-delay="1450"],body[data-aos-delay="1450"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1450"].aos-animate,body[data-aos-delay="1450"] [data-aos].aos-animate{transition-delay:1.45s}[data-aos][data-aos][data-aos-duration="1500"],body[data-aos-duration="1500"] [data-aos]{transition-duration:1.5s}[data-aos][data-aos][data-aos-delay="1500"],body[data-aos-delay="1500"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1500"].aos-animate,body[data-aos-delay="1500"] [data-aos].aos-animate{transition-delay:1.5s}[data-aos][data-aos][data-aos-duration="1550"],body[data-aos-duration="1550"] [data-aos]{transition-duration:1.55s}[data-aos][data-aos][data-aos-delay="1550"],body[data-aos-delay="1550"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1550"].aos-animate,body[data-aos-delay="1550"] [data-aos].aos-animate{transition-delay:1.55s}[data-aos][data-aos][data-aos-duration="1600"],body[data-aos-duration="1600"] [data-aos]{transition-duration:1.6s}[data-aos][data-aos][data-aos-delay="1600"],body[data-aos-delay="1600"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1600"].aos-animate,body[data-aos-delay="1600"] [data-aos].aos-animate{transition-delay:1.6s}[data-aos][data-aos][data-aos-duration="1650"],body[data-aos-duration="1650"] [data-aos]{transition-duration:1.65s}[data-aos][data-aos][data-aos-delay="1650"],body[data-aos-delay="1650"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1650"].aos-animate,body[data-aos-delay="1650"] [data-aos].aos-animate{transition-delay:1.65s}[data-aos][data-aos][data-aos-duration="1700"],body[data-aos-duration="1700"] [data-aos]{transition-duration:1.7s}[data-aos][data-aos][data-aos-delay="1700"],body[data-aos-delay="1700"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1700"].aos-animate,body[data-aos-delay="1700"] [data-aos].aos-animate{transition-delay:1.7s}[data-aos][data-aos][data-aos-duration="1750"],body[data-aos-duration="1750"] [data-aos]{transition-duration:1.75s}[data-aos][data-aos][data-aos-delay="1750"],body[data-aos-delay="1750"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1750"].aos-animate,body[data-aos-delay="1750"] [data-aos].aos-animate{transition-delay:1.75s}[data-aos][data-aos][data-aos-duration="1800"],body[data-aos-duration="1800"] [data-aos]{transition-duration:1.8s}[data-aos][data-aos][data-aos-delay="1800"],body[data-aos-delay="1800"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1800"].aos-animate,body[data-aos-delay="1800"] [data-aos].aos-animate{transition-delay:1.8s}[data-aos][data-aos][data-aos-duration="1850"],body[data-aos-duration="1850"] [data-aos]{transition-duration:1.85s}[data-aos][data-aos][data-aos-delay="1850"],body[data-aos-delay="1850"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1850"].aos-animate,body[data-aos-delay="1850"] [data-aos].aos-animate{transition-delay:1.85s}[data-aos][data-aos][data-aos-duration="1900"],body[data-aos-duration="1900"] [data-aos]{transition-duration:1.9s}[data-aos][data-aos][data-aos-delay="1900"],body[data-aos-delay="1900"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1900"].aos-animate,body[data-aos-delay="1900"] [data-aos].aos-animate{transition-delay:1.9s}[data-aos][data-aos][data-aos-duration="1950"],body[data-aos-duration="1950"] [data-aos]{transition-duration:1.95s}[data-aos][data-aos][data-aos-delay="1950"],body[data-aos-delay="1950"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1950"].aos-animate,body[data-aos-delay="1950"] [data-aos].aos-animate{transition-delay:1.95s}[data-aos][data-aos][data-aos-duration="2000"],body[data-aos-duration="2000"] [data-aos]{transition-duration:2s}[data-aos][data-aos][data-aos-delay="2000"],body[data-aos-delay="2000"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2000"].aos-animate,body[data-aos-delay="2000"] [data-aos].aos-animate{transition-delay:2s}[data-aos][data-aos][data-aos-duration="2050"],body[data-aos-duration="2050"] [data-aos]{transition-duration:2.05s}[data-aos][data-aos][data-aos-delay="2050"],body[data-aos-delay="2050"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2050"].aos-animate,body[data-aos-delay="2050"] [data-aos].aos-animate{transition-delay:2.05s}[data-aos][data-aos][data-aos-duration="2100"],body[data-aos-duration="2100"] [data-aos]{transition-duration:2.1s}[data-aos][data-aos][data-aos-delay="2100"],body[data-aos-delay="2100"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2100"].aos-animate,body[data-aos-delay="2100"] [data-aos].aos-animate{transition-delay:2.1s}[data-aos][data-aos][data-aos-duration="2150"],body[data-aos-duration="2150"] [data-aos]{transition-duration:2.15s}[data-aos][data-aos][data-aos-delay="2150"],body[data-aos-delay="2150"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2150"].aos-animate,body[data-aos-delay="2150"] [data-aos].aos-animate{transition-delay:2.15s}[data-aos][data-aos][data-aos-duration="2200"],body[data-aos-duration="2200"] [data-aos]{transition-duration:2.2s}[data-aos][data-aos][data-aos-delay="2200"],body[data-aos-delay="2200"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2200"].aos-animate,body[data-aos-delay="2200"] [data-aos].aos-animate{transition-delay:2.2s}[data-aos][data-aos][data-aos-duration="2250"],body[data-aos-duration="2250"] [data-aos]{transition-duration:2.25s}[data-aos][data-aos][data-aos-delay="2250"],body[data-aos-delay="2250"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2250"].aos-animate,body[data-aos-delay="2250"] [data-aos].aos-animate{transition-delay:2.25s}[data-aos][data-aos][data-aos-duration="2300"],body[data-aos-duration="2300"] [data-aos]{transition-duration:2.3s}[data-aos][data-aos][data-aos-delay="2300"],body[data-aos-delay="2300"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2300"].aos-animate,body[data-aos-delay="2300"] [data-aos].aos-animate{transition-delay:2.3s}[data-aos][data-aos][data-aos-duration="2350"],body[data-aos-duration="2350"] [data-aos]{transition-duration:2.35s}[data-aos][data-aos][data-aos-delay="2350"],body[data-aos-delay="2350"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2350"].aos-animate,body[data-aos-delay="2350"] [data-aos].aos-animate{transition-delay:2.35s}[data-aos][data-aos][data-aos-duration="2400"],body[data-aos-duration="2400"] [data-aos]{transition-duration:2.4s}[data-aos][data-aos][data-aos-delay="2400"],body[data-aos-delay="2400"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2400"].aos-animate,body[data-aos-delay="2400"] [data-aos].aos-animate{transition-delay:2.4s}[data-aos][data-aos][data-aos-duration="2450"],body[data-aos-duration="2450"] [data-aos]{transition-duration:2.45s}[data-aos][data-aos][data-aos-delay="2450"],body[data-aos-delay="2450"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2450"].aos-animate,body[data-aos-delay="2450"] [data-aos].aos-animate{transition-delay:2.45s}[data-aos][data-aos][data-aos-duration="2500"],body[data-aos-duration="2500"] [data-aos]{transition-duration:2.5s}[data-aos][data-aos][data-aos-delay="2500"],body[data-aos-delay="2500"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2500"].aos-animate,body[data-aos-delay="2500"] [data-aos].aos-animate{transition-delay:2.5s}[data-aos][data-aos][data-aos-duration="2550"],body[data-aos-duration="2550"] [data-aos]{transition-duration:2.55s}[data-aos][data-aos][data-aos-delay="2550"],body[data-aos-delay="2550"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2550"].aos-animate,body[data-aos-delay="2550"] [data-aos].aos-animate{transition-delay:2.55s}[data-aos][data-aos][data-aos-duration="2600"],body[data-aos-duration="2600"] [data-aos]{transition-duration:2.6s}[data-aos][data-aos][data-aos-delay="2600"],body[data-aos-delay="2600"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2600"].aos-animate,body[data-aos-delay="2600"] [data-aos].aos-animate{transition-delay:2.6s}[data-aos][data-aos][data-aos-duration="2650"],body[data-aos-duration="2650"] [data-aos]{transition-duration:2.65s}[data-aos][data-aos][data-aos-delay="2650"],body[data-aos-delay="2650"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2650"].aos-animate,body[data-aos-delay="2650"] [data-aos].aos-animate{transition-delay:2.65s}[data-aos][data-aos][data-aos-duration="2700"],body[data-aos-duration="2700"] [data-aos]{transition-duration:2.7s}[data-aos][data-aos][data-aos-delay="2700"],body[data-aos-delay="2700"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2700"].aos-animate,body[data-aos-delay="2700"] [data-aos].aos-animate{transition-delay:2.7s}[data-aos][data-aos][data-aos-duration="2750"],body[data-aos-duration="2750"] [data-aos]{transition-duration:2.75s}[data-aos][data-aos][data-aos-delay="2750"],body[data-aos-delay="2750"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2750"].aos-animate,body[data-aos-delay="2750"] [data-aos].aos-animate{transition-delay:2.75s}[data-aos][data-aos][data-aos-duration="2800"],body[data-aos-duration="2800"] [data-aos]{transition-duration:2.8s}[data-aos][data-aos][data-aos-delay="2800"],body[data-aos-delay="2800"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2800"].aos-animate,body[data-aos-delay="2800"] [data-aos].aos-animate{transition-delay:2.8s}[data-aos][data-aos][data-aos-duration="2850"],body[data-aos-duration="2850"] [data-aos]{transition-duration:2.85s}[data-aos][data-aos][data-aos-delay="2850"],body[data-aos-delay="2850"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2850"].aos-animate,body[data-aos-delay="2850"] [data-aos].aos-animate{transition-delay:2.85s}[data-aos][data-aos][data-aos-duration="2900"],body[data-aos-duration="2900"] [data-aos]{transition-duration:2.9s}[data-aos][data-aos][data-aos-delay="2900"],body[data-aos-delay="2900"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2900"].aos-animate,body[data-aos-delay="2900"] [data-aos].aos-animate{transition-delay:2.9s}[data-aos][data-aos][data-aos-duration="2950"],body[data-aos-duration="2950"] [data-aos]{transition-duration:2.95s}[data-aos][data-aos][data-aos-delay="2950"],body[data-aos-delay="2950"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2950"].aos-animate,body[data-aos-delay="2950"] [data-aos].aos-animate{transition-delay:2.95s}[data-aos][data-aos][data-aos-duration="3000"],body[data-aos-duration="3000"] [data-aos]{transition-duration:3s}[data-aos][data-aos][data-aos-delay="3000"],body[data-aos-delay="3000"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="3000"].aos-animate,body[data-aos-delay="3000"] [data-aos].aos-animate{transition-delay:3s}[data-aos][data-aos][data-aos-easing=linear],body[data-aos-easing=linear] [data-aos]{transition-timing-function:cubic-bezier(.25,.25,.75,.75)}[data-aos][data-aos][data-aos-easing=ease],body[data-aos-easing=ease] [data-aos]{transition-timing-function:ease}[data-aos][data-aos][data-aos-easing=ease-in],body[data-aos-easing=ease-in] [data-aos]{transition-timing-function:ease-in}[data-aos][data-aos][data-aos-easing=ease-out],body[data-aos-easing=ease-out] [data-aos]{transition-timing-function:ease-out}[data-aos][data-aos][data-aos-easing=ease-in-out],body[data-aos-easing=ease-in-out] [data-aos]{transition-timing-function:ease-in-out}[data-aos][data-aos][data-aos-easing=ease-in-back],body[data-aos-easing=ease-in-back] [data-aos]{transition-timing-function:cubic-bezier(.6,-.28,.735,.045)}[data-aos][data-aos][data-aos-easing=ease-out-back],body[data-aos-easing=ease-out-back] [data-aos]{transition-timing-function:cubic-bezier(.175,.885,.32,1.275)}[data-aos][data-aos][data-aos-easing=ease-in-out-back],body[data-aos-easing=ease-in-out-back] [data-aos]{transition-timing-function:cubic-bezier(.68,-.55,.265,1.55)}[data-aos][data-aos][data-aos-easing=ease-in-sine],body[data-aos-easing=ease-in-sine] [data-aos]{transition-timing-function:cubic-bezier(.47,0,.745,.715)}[data-aos][data-aos][data-aos-easing=ease-out-sine],body[data-aos-easing=ease-out-sine] [data-aos]{transition-timing-function:cubic-bezier(.39,.575,.565,1)}[data-aos][data-aos][data-aos-easing=ease-in-out-sine],body[data-aos-easing=ease-in-out-sine] [data-aos]{transition-timing-function:cubic-bezier(.445,.05,.55,.95)}[data-aos][data-aos][data-aos-easing=ease-in-quad],body[data-aos-easing=ease-in-quad] [data-aos]{transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[data-aos][data-aos][data-aos-easing=ease-out-quad],body[data-aos-easing=ease-out-quad] [data-aos]{transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[data-aos][data-aos][data-aos-easing=ease-in-out-quad],body[data-aos-easing=ease-in-out-quad] [data-aos]{transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-aos][data-aos][data-aos-easing=ease-in-cubic],body[data-aos-easing=ease-in-cubic] [data-aos]{transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[data-aos][data-aos][data-aos-easing=ease-out-cubic],body[data-aos-easing=ease-out-cubic] [data-aos]{transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[data-aos][data-aos][data-aos-easing=ease-in-out-cubic],body[data-aos-easing=ease-in-out-cubic] [data-aos]{transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-aos][data-aos][data-aos-easing=ease-in-quart],body[data-aos-easing=ease-in-quart] [data-aos]{transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[data-aos][data-aos][data-aos-easing=ease-out-quart],body[data-aos-easing=ease-out-quart] [data-aos]{transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[data-aos][data-aos][data-aos-easing=ease-in-out-quart],body[data-aos-easing=ease-in-out-quart] [data-aos]{transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-aos^=fade][data-aos^=fade]{opacity:0;transition-property:opacity,transform}[data-aos^=fade][data-aos^=fade].aos-animate{opacity:1;transform:translateZ(0)}[data-aos=fade-up]{transform:translate3d(0,100px,0)}[data-aos=fade-down]{transform:translate3d(0,-100px,0)}[data-aos=fade-right]{transform:translate3d(-100px,0,0)}[data-aos=fade-left]{transform:translate3d(100px,0,0)}[data-aos=fade-up-right]{transform:translate3d(-100px,100px,0)}[data-aos=fade-up-left]{transform:translate3d(100px,100px,0)}[data-aos=fade-down-right]{transform:translate3d(-100px,-100px,0)}[data-aos=fade-down-left]{transform:translate3d(100px,-100px,0)}[data-aos^=zoom][data-aos^=zoom]{opacity:0;transition-property:opacity,transform}[data-aos^=zoom][data-aos^=zoom].aos-animate{opacity:1;transform:translateZ(0) scale(1)}[data-aos=zoom-in]{transform:scale(.6)}[data-aos=zoom-in-up]{transform:translate3d(0,100px,0) scale(.6)}[data-aos=zoom-in-down]{transform:translate3d(0,-100px,0) scale(.6)}[data-aos=zoom-in-right]{transform:translate3d(-100px,0,0) scale(.6)}[data-aos=zoom-in-left]{transform:translate3d(100px,0,0) scale(.6)}[data-aos=zoom-out]{transform:scale(1.2)}[data-aos=zoom-out-up]{transform:translate3d(0,100px,0) scale(1.2)}[data-aos=zoom-out-down]{transform:translate3d(0,-100px,0) scale(1.2)}[data-aos=zoom-out-right]{transform:translate3d(-100px,0,0) scale(1.2)}[data-aos=zoom-out-left]{transform:translate3d(100px,0,0) scale(1.2)}[data-aos^=slide][data-aos^=slide]{transition-property:transform}[data-aos^=slide][data-aos^=slide].aos-animate{transform:translateZ(0)}[data-aos=slide-up]{transform:translate3d(0,100%,0)}[data-aos=slide-down]{transform:translate3d(0,-100%,0)}[data-aos=slide-right]{transform:translate3d(-100%,0,0)}[data-aos=slide-left]{transform:translate3d(100%,0,0)}[data-aos^=flip][data-aos^=flip]{backface-visibility:hidden;transition-property:transform}[data-aos=flip-left]{transform:perspective(2500px) rotateY(-100deg)}[data-aos=flip-left].aos-animate{transform:perspective(2500px) rotateY(0)}[data-aos=flip-right]{transform:perspective(2500px) rotateY(100deg)}[data-aos=flip-right].aos-animate{transform:perspective(2500px) rotateY(0)}[data-aos=flip-up]{transform:perspective(2500px) rotateX(-100deg)}[data-aos=flip-up].aos-animate{transform:perspective(2500px) rotateX(0)}[data-aos=flip-down]{transform:perspective(2500px) rotateX(100deg)}[data-aos=flip-down].aos-animate{transform:perspective(2500px) rotateX(0)} + + +/*! + * animate.css -http://daneden.me/animate + * Version - 3.6.0 + * Licensed under the MIT license - http://opensource.org/licenses/MIT + * + * Copyright (c) 2018 Daniel Eden + */ + +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.animated.infinite { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; +} + +@-webkit-keyframes bounce { + from, + 20%, + 53%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 40%, + 43% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); + } + + 70% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -4px, 0); + transform: translate3d(0, -4px, 0); + } +} + +@keyframes bounce { + from, + 20%, + 53%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 40%, + 43% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); + } + + 70% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -4px, 0); + transform: translate3d(0, -4px, 0); + } +} + +.bounce { + -webkit-animation-name: bounce; + animation-name: bounce; + -webkit-transform-origin: center bottom; + transform-origin: center bottom; +} + +@-webkit-keyframes flash { + from, + 50%, + to { + opacity: 1; + } + + 25%, + 75% { + opacity: 0; + } +} + +@keyframes flash { + from, + 50%, + to { + opacity: 1; + } + + 25%, + 75% { + opacity: 0; + } +} + +.flash { + -webkit-animation-name: flash; + animation-name: flash; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes pulse { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes pulse { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.pulse { + -webkit-animation-name: pulse; + animation-name: pulse; +} + +@-webkit-keyframes rubberBand { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); + } + + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); + } + + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); + } + + 65% { + -webkit-transform: scale3d(0.95, 1.05, 1); + transform: scale3d(0.95, 1.05, 1); + } + + 75% { + -webkit-transform: scale3d(1.05, 0.95, 1); + transform: scale3d(1.05, 0.95, 1); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes rubberBand { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); + } + + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); + } + + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); + } + + 65% { + -webkit-transform: scale3d(0.95, 1.05, 1); + transform: scale3d(0.95, 1.05, 1); + } + + 75% { + -webkit-transform: scale3d(1.05, 0.95, 1); + transform: scale3d(1.05, 0.95, 1); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.rubberBand { + -webkit-animation-name: rubberBand; + animation-name: rubberBand; +} + +@-webkit-keyframes shake { + from, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 10%, + 30%, + 50%, + 70%, + 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 20%, + 40%, + 60%, + 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} + +@keyframes shake { + from, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 10%, + 30%, + 50%, + 70%, + 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 20%, + 40%, + 60%, + 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} + +.shake { + -webkit-animation-name: shake; + animation-name: shake; +} + +@-webkit-keyframes headShake { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + + 6.5% { + -webkit-transform: translateX(-6px) rotateY(-9deg); + transform: translateX(-6px) rotateY(-9deg); + } + + 18.5% { + -webkit-transform: translateX(5px) rotateY(7deg); + transform: translateX(5px) rotateY(7deg); + } + + 31.5% { + -webkit-transform: translateX(-3px) rotateY(-5deg); + transform: translateX(-3px) rotateY(-5deg); + } + + 43.5% { + -webkit-transform: translateX(2px) rotateY(3deg); + transform: translateX(2px) rotateY(3deg); + } + + 50% { + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +@keyframes headShake { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + + 6.5% { + -webkit-transform: translateX(-6px) rotateY(-9deg); + transform: translateX(-6px) rotateY(-9deg); + } + + 18.5% { + -webkit-transform: translateX(5px) rotateY(7deg); + transform: translateX(5px) rotateY(7deg); + } + + 31.5% { + -webkit-transform: translateX(-3px) rotateY(-5deg); + transform: translateX(-3px) rotateY(-5deg); + } + + 43.5% { + -webkit-transform: translateX(2px) rotateY(3deg); + transform: translateX(2px) rotateY(3deg); + } + + 50% { + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +.headShake { + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + -webkit-animation-name: headShake; + animation-name: headShake; +} + +@-webkit-keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); + } + + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); + } + + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); + } + + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); + } + + to { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + } +} + +@keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); + } + + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); + } + + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); + } + + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); + } + + to { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + } +} + +.swing { + -webkit-transform-origin: top center; + transform-origin: top center; + -webkit-animation-name: swing; + animation-name: swing; +} + +@-webkit-keyframes tada { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 10%, + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + } + + 30%, + 50%, + 70%, + 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + } + + 40%, + 60%, + 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes tada { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 10%, + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + } + + 30%, + 50%, + 70%, + 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + } + + 40%, + 60%, + 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.tada { + -webkit-animation-name: tada; + animation-name: tada; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes wobble { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + } + + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + } + + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + } + + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + } + + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes wobble { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + } + + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + } + + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + } + + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + } + + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.wobble { + -webkit-animation-name: wobble; + animation-name: wobble; +} + +@-webkit-keyframes jello { + from, + 11.1%, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 22.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg); + } + + 33.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg); + } + + 44.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg); + } + + 55.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg); + } + + 66.6% { + -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); + transform: skewX(-0.78125deg) skewY(-0.78125deg); + } + + 77.7% { + -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); + transform: skewX(0.390625deg) skewY(0.390625deg); + } + + 88.8% { + -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + } +} + +@keyframes jello { + from, + 11.1%, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 22.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg); + } + + 33.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg); + } + + 44.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg); + } + + 55.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg); + } + + 66.6% { + -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); + transform: skewX(-0.78125deg) skewY(-0.78125deg); + } + + 77.7% { + -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); + transform: skewX(0.390625deg) skewY(0.390625deg); + } + + 88.8% { + -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + } +} + +.jello { + -webkit-animation-name: jello; + animation-name: jello; + -webkit-transform-origin: center; + transform-origin: center; +} + +@-webkit-keyframes bounceIn { + from, + 20%, + 40%, + 60%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 40% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + + 80% { + -webkit-transform: scale3d(0.97, 0.97, 0.97); + transform: scale3d(0.97, 0.97, 0.97); + } + + to { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes bounceIn { + from, + 20%, + 40%, + 60%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 40% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + + 80% { + -webkit-transform: scale3d(0.97, 0.97, 0.97); + transform: scale3d(0.97, 0.97, 0.97); + } + + to { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.bounceIn { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-animation-name: bounceIn; + animation-name: bounceIn; +} + +@-webkit-keyframes bounceInDown { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); + } + + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes bounceInDown { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); + } + + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.bounceInDown { + -webkit-animation-name: bounceInDown; + animation-name: bounceInDown; +} + +@-webkit-keyframes bounceInLeft { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes bounceInLeft { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.bounceInLeft { + -webkit-animation-name: bounceInLeft; + animation-name: bounceInLeft; +} + +@-webkit-keyframes bounceInRight { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + from { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes bounceInRight { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + from { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.bounceInRight { + -webkit-animation-name: bounceInRight; + animation-name: bounceInRight; +} + +@-webkit-keyframes bounceInUp { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + from { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes bounceInUp { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + from { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.bounceInUp { + -webkit-animation-name: bounceInUp; + animation-name: bounceInUp; +} + +@-webkit-keyframes bounceOut { + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + + 50%, + 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } +} + +@keyframes bounceOut { + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + + 50%, + 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } +} + +.bounceOut { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-animation-name: bounceOut; + animation-name: bounceOut; +} + +@-webkit-keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +@keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +.bounceOutDown { + -webkit-animation-name: bounceOutDown; + animation-name: bounceOutDown; +} + +@-webkit-keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +@keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +.bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + animation-name: bounceOutLeft; +} + +@-webkit-keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +@keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +.bounceOutRight { + -webkit-animation-name: bounceOutRight; + animation-name: bounceOutRight; +} + +@-webkit-keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +@keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +.bounceOutUp { + -webkit-animation-name: bounceOutUp; + animation-name: bounceOutUp; +} + +@-webkit-keyframes fadeIn { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +@keyframes fadeIn { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +.fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; +} + +@-webkit-keyframes fadeInDown { + from { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInDown { + from { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInDown { + -webkit-animation-name: fadeInDown; + animation-name: fadeInDown; +} + +@-webkit-keyframes fadeInDownBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInDownBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + animation-name: fadeInDownBig; +} + +@-webkit-keyframes fadeInLeft { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInLeft { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInLeft { + -webkit-animation-name: fadeInLeft; + animation-name: fadeInLeft; +} + +@-webkit-keyframes fadeInLeftBig { + from { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInLeftBig { + from { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig; +} + +@-webkit-keyframes fadeInRight { + from { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInRight { + from { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInRight { + -webkit-animation-name: fadeInRight; + animation-name: fadeInRight; +} + +@-webkit-keyframes fadeInRightBig { + from { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInRightBig { + from { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + animation-name: fadeInRightBig; +} + +@-webkit-keyframes fadeInUp { + from { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInUp { + from { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInUp { + -webkit-animation-name: fadeInUp; + animation-name: fadeInUp; +} + +@-webkit-keyframes fadeInUpBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInUpBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; +} + +@-webkit-keyframes fadeOut { + from { + opacity: 1; + } + + to { + opacity: 0; + } +} + +@keyframes fadeOut { + from { + opacity: 1; + } + + to { + opacity: 0; + } +} + +.fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; +} + +@-webkit-keyframes fadeOutDown { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +@keyframes fadeOutDown { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +.fadeOutDown { + -webkit-animation-name: fadeOutDown; + animation-name: fadeOutDown; +} + +@-webkit-keyframes fadeOutDownBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +@keyframes fadeOutDownBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +.fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig; +} + +@-webkit-keyframes fadeOutLeft { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +@keyframes fadeOutLeft { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +.fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; +} + +@-webkit-keyframes fadeOutLeftBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +@keyframes fadeOutLeftBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +.fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig; +} + +@-webkit-keyframes fadeOutRight { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +@keyframes fadeOutRight { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +.fadeOutRight { + -webkit-animation-name: fadeOutRight; + animation-name: fadeOutRight; +} + +@-webkit-keyframes fadeOutRightBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +@keyframes fadeOutRightBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +.fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig; +} + +@-webkit-keyframes fadeOutUp { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +@keyframes fadeOutUp { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +.fadeOutUp { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp; +} + +@-webkit-keyframes fadeOutUpBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +@keyframes fadeOutUpBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +.fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig; +} + +@-webkit-keyframes flip { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 40% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 50% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 80% { + -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95); + transform: perspective(400px) scale3d(0.95, 0.95, 0.95); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } +} + +@keyframes flip { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 40% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 50% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 80% { + -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95); + transform: perspective(400px) scale3d(0.95, 0.95, 0.95); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } +} + +.animated.flip { + -webkit-backface-visibility: visible; + backface-visibility: visible; + -webkit-animation-name: flip; + animation-name: flip; +} + +@-webkit-keyframes flipInX { + from { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +@keyframes flipInX { + from { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +.flipInX { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInX; + animation-name: flipInX; +} + +@-webkit-keyframes flipInY { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +@keyframes flipInY { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +.flipInY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInY; + animation-name: flipInY; +} + +@-webkit-keyframes flipOutX { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; + } + + to { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; + } +} + +@keyframes flipOutX { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; + } + + to { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; + } +} + +.flipOutX { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-animation-name: flipOutX; + animation-name: flipOutX; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; +} + +@-webkit-keyframes flipOutY { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; + } + + to { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; + } +} + +@keyframes flipOutY { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; + } + + to { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; + } +} + +.flipOutY { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + animation-name: flipOutY; +} + +@-webkit-keyframes lightSpeedIn { + from { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; + } + + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; + } + + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + opacity: 1; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes lightSpeedIn { + from { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; + } + + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; + } + + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + opacity: 1; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +.lightSpeedIn { + -webkit-animation-name: lightSpeedIn; + animation-name: lightSpeedIn; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; +} + +@-webkit-keyframes lightSpeedOut { + from { + opacity: 1; + } + + to { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; + } +} + +@keyframes lightSpeedOut { + from { + opacity: 1; + } + + to { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; + } +} + +.lightSpeedOut { + -webkit-animation-name: lightSpeedOut; + animation-name: lightSpeedOut; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} + +@-webkit-keyframes rotateIn { + from { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; + } + + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes rotateIn { + from { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; + } + + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +.rotateIn { + -webkit-animation-name: rotateIn; + animation-name: rotateIn; +} + +@-webkit-keyframes rotateInDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes rotateInDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +.rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft; +} + +@-webkit-keyframes rotateInDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes rotateInDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +.rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + animation-name: rotateInDownRight; +} + +@-webkit-keyframes rotateInUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes rotateInUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +.rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft; +} + +@-webkit-keyframes rotateInUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes rotateInUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +.rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + animation-name: rotateInUpRight; +} + +@-webkit-keyframes rotateOut { + from { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; + } + + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; + } +} + +@keyframes rotateOut { + from { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; + } + + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; + } +} + +.rotateOut { + -webkit-animation-name: rotateOut; + animation-name: rotateOut; +} + +@-webkit-keyframes rotateOutDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } +} + +@keyframes rotateOutDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } +} + +.rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft; +} + +@-webkit-keyframes rotateOutDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +@keyframes rotateOutDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +.rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight; +} + +@-webkit-keyframes rotateOutUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +@keyframes rotateOutUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +.rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft; +} + +@-webkit-keyframes rotateOutUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; + } +} + +@keyframes rotateOutUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; + } +} + +.rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight; +} + +@-webkit-keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 20%, + 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 40%, + 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; + } + + to { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; + } +} + +@keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 20%, + 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 40%, + 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; + } + + to { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; + } +} + +.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; + -webkit-animation-name: hinge; + animation-name: hinge; +} + +@-webkit-keyframes jackInTheBox { + from { + opacity: 0; + -webkit-transform: scale(0.1) rotate(30deg); + transform: scale(0.1) rotate(30deg); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + } + + 50% { + -webkit-transform: rotate(-10deg); + transform: rotate(-10deg); + } + + 70% { + -webkit-transform: rotate(3deg); + transform: rotate(3deg); + } + + to { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + } +} + +@keyframes jackInTheBox { + from { + opacity: 0; + -webkit-transform: scale(0.1) rotate(30deg); + transform: scale(0.1) rotate(30deg); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + } + + 50% { + -webkit-transform: rotate(-10deg); + transform: rotate(-10deg); + } + + 70% { + -webkit-transform: rotate(3deg); + transform: rotate(3deg); + } + + to { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + } +} + +.jackInTheBox { + -webkit-animation-name: jackInTheBox; + animation-name: jackInTheBox; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollIn { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes rollIn { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.rollIn { + -webkit-animation-name: rollIn; + animation-name: rollIn; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollOut { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + } +} + +@keyframes rollOut { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + } +} + +.rollOut { + -webkit-animation-name: rollOut; + animation-name: rollOut; +} + +@-webkit-keyframes zoomIn { + from { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + 50% { + opacity: 1; + } +} + +@keyframes zoomIn { + from { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + 50% { + opacity: 1; + } +} + +.zoomIn { + -webkit-animation-name: zoomIn; + animation-name: zoomIn; +} + +@-webkit-keyframes zoomInDown { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomInDown { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomInDown { + -webkit-animation-name: zoomInDown; + animation-name: zoomInDown; +} + +@-webkit-keyframes zoomInLeft { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomInLeft { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomInLeft { + -webkit-animation-name: zoomInLeft; + animation-name: zoomInLeft; +} + +@-webkit-keyframes zoomInRight { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomInRight { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomInRight { + -webkit-animation-name: zoomInRight; + animation-name: zoomInRight; +} + +@-webkit-keyframes zoomInUp { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomInUp { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomInUp { + -webkit-animation-name: zoomInUp; + animation-name: zoomInUp; +} + +@-webkit-keyframes zoomOut { + from { + opacity: 1; + } + + 50% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + to { + opacity: 0; + } +} + +@keyframes zoomOut { + from { + opacity: 1; + } + + 50% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + to { + opacity: 0; + } +} + +.zoomOut { + -webkit-animation-name: zoomOut; + animation-name: zoomOut; +} + +@-webkit-keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomOutDown { + -webkit-animation-name: zoomOutDown; + animation-name: zoomOutDown; +} + +@-webkit-keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0); + transform: scale(0.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; + } +} + +@keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0); + transform: scale(0.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; + } +} + +.zoomOutLeft { + -webkit-animation-name: zoomOutLeft; + animation-name: zoomOutLeft; +} + +@-webkit-keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(2000px, 0, 0); + transform: scale(0.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; + } +} + +@keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(2000px, 0, 0); + transform: scale(0.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; + } +} + +.zoomOutRight { + -webkit-animation-name: zoomOutRight; + animation-name: zoomOutRight; +} + +@-webkit-keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomOutUp { + -webkit-animation-name: zoomOutUp; + animation-name: zoomOutUp; +} + +@-webkit-keyframes slideInDown { + from { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInDown { + from { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInDown { + -webkit-animation-name: slideInDown; + animation-name: slideInDown; +} + +@-webkit-keyframes slideInLeft { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInLeft { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInLeft { + -webkit-animation-name: slideInLeft; + animation-name: slideInLeft; +} + +@-webkit-keyframes slideInRight { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInRight { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInRight { + -webkit-animation-name: slideInRight; + animation-name: slideInRight; +} + +@-webkit-keyframes slideInUp { + from { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInUp { + from { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInUp { + -webkit-animation-name: slideInUp; + animation-name: slideInUp; +} + +@-webkit-keyframes slideOutDown { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +@keyframes slideOutDown { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +.slideOutDown { + -webkit-animation-name: slideOutDown; + animation-name: slideOutDown; +} + +@-webkit-keyframes slideOutLeft { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +@keyframes slideOutLeft { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +.slideOutLeft { + -webkit-animation-name: slideOutLeft; + animation-name: slideOutLeft; +} + +@-webkit-keyframes slideOutRight { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +@keyframes slideOutRight { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +.slideOutRight { + -webkit-animation-name: slideOutRight; + animation-name: slideOutRight; +} + +@-webkit-keyframes slideOutUp { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +@keyframes slideOutUp { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +.slideOutUp { + -webkit-animation-name: slideOutUp; + animation-name: slideOutUp; +} \ No newline at end of file diff --git a/themes/agico-hugo/assets/plugins/aos/aos.js b/themes/agico-hugo/assets/plugins/aos/aos.js new file mode 100644 index 0000000..b9f9311 --- /dev/null +++ b/themes/agico-hugo/assets/plugins/aos/aos.js @@ -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; + }, + ]); +}); diff --git a/themes/agico-hugo/assets/plugins/search/fuse.min.js b/themes/agico-hugo/assets/plugins/search/fuse.min.js new file mode 100644 index 0000000..8a0065e --- /dev/null +++ b/themes/agico-hugo/assets/plugins/search/fuse.min.js @@ -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, []); + }; + }, + ]); +}); diff --git a/themes/agico-hugo/assets/plugins/search/search.js b/themes/agico-hugo/assets/plugins/search/search.js new file mode 100644 index 0000000..82b61da --- /dev/null +++ b/themes/agico-hugo/assets/plugins/search/search.js @@ -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 = '

No Search Found

' + } + }); +} + +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'); +// }); \ No newline at end of file diff --git a/themes/agico-hugo/assets/plugins/swiper/swiper.css b/themes/agico-hugo/assets/plugins/swiper/swiper.css new file mode 100644 index 0000000..fcdb3c0 --- /dev/null +++ b/themes/agico-hugo/assets/plugins/swiper/swiper.css @@ -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; +} \ No newline at end of file diff --git a/themes/agico-hugo/assets/plugins/swiper/swiper.min.js b/themes/agico-hugo/assets/plugins/swiper/swiper.min.js new file mode 100644 index 0000000..c10b6e2 --- /dev/null +++ b/themes/agico-hugo/assets/plugins/swiper/swiper.min.js @@ -0,0 +1,14 @@ +/** + * Swiper 8.4.5 + * 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: November 21, 2022 + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Swiper=t()}(this,(function(){"use strict";function e(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function t(s,a){void 0===s&&(s={}),void 0===a&&(a={}),Object.keys(a).forEach((i=>{void 0===s[i]?s[i]=a[i]:e(a[i])&&e(s[i])&&Object.keys(a[i]).length>0&&t(s[i],a[i])}))}const s={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector:()=>null,querySelectorAll:()=>[],getElementById:()=>null,createEvent:()=>({initEvent(){}}),createElement:()=>({children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName:()=>[]}),createElementNS:()=>({}),importNode:()=>null,location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function a(){const e="undefined"!=typeof document?document:{};return t(e,s),e}const i={document:s,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle:()=>({getPropertyValue:()=>""}),Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia:()=>({}),requestAnimationFrame:e=>"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0),cancelAnimationFrame(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function r(){const e="undefined"!=typeof window?window:{};return t(e,i),e}class n extends Array{constructor(e){"number"==typeof e?super(e):(super(...e||[]),function(e){const t=e.__proto__;Object.defineProperty(e,"__proto__",{get:()=>t,set(e){t.__proto__=e}})}(this))}}function l(e){void 0===e&&(e=[]);const t=[];return e.forEach((e=>{Array.isArray(e)?t.push(...l(e)):t.push(e)})),t}function o(e,t){return Array.prototype.filter.call(e,t)}function d(e,t){const s=r(),i=a();let l=[];if(!t&&e instanceof n)return e;if(!e)return new n(l);if("string"==typeof e){const s=e.trim();if(s.indexOf("<")>=0&&s.indexOf(">")>=0){let e="div";0===s.indexOf("e.split(" "))));return this.forEach((e=>{e.classList.add(...a)})),this},removeClass:function(){for(var e=arguments.length,t=new Array(e),s=0;se.split(" "))));return this.forEach((e=>{e.classList.remove(...a)})),this},hasClass:function(){for(var e=arguments.length,t=new Array(e),s=0;se.split(" "))));return o(this,(e=>a.filter((t=>e.classList.contains(t))).length>0)).length>0},toggleClass:function(){for(var e=arguments.length,t=new Array(e),s=0;se.split(" "))));this.forEach((e=>{a.forEach((t=>{e.classList.toggle(t)}))}))},attr:function(e,t){if(1===arguments.length&&"string"==typeof e)return this[0]?this[0].getAttribute(e):void 0;for(let s=0;s=0;e-=1){const i=a[e];r&&i.listener===r||r&&i.listener&&i.listener.dom7proxy&&i.listener.dom7proxy===r?(s.removeEventListener(t,i.proxyListener,n),a.splice(e,1)):r||(s.removeEventListener(t,i.proxyListener,n),a.splice(e,1))}}}return this},trigger:function(){const e=r();for(var t=arguments.length,s=new Array(t),a=0;at>0)),i.dispatchEvent(t),i.dom7EventData=[],delete i.dom7EventData}}}return this},transitionEnd:function(e){const t=this;return e&&t.on("transitionend",(function s(a){a.target===this&&(e.call(this,a),t.off("transitionend",s))})),this},outerWidth:function(e){if(this.length>0){if(e){const e=this.styles();return this[0].offsetWidth+parseFloat(e.getPropertyValue("margin-right"))+parseFloat(e.getPropertyValue("margin-left"))}return this[0].offsetWidth}return null},outerHeight:function(e){if(this.length>0){if(e){const e=this.styles();return this[0].offsetHeight+parseFloat(e.getPropertyValue("margin-top"))+parseFloat(e.getPropertyValue("margin-bottom"))}return this[0].offsetHeight}return null},styles:function(){const e=r();return this[0]?e.getComputedStyle(this[0],null):{}},offset:function(){if(this.length>0){const e=r(),t=a(),s=this[0],i=s.getBoundingClientRect(),n=t.body,l=s.clientTop||n.clientTop||0,o=s.clientLeft||n.clientLeft||0,d=s===e?e.scrollY:s.scrollTop,c=s===e?e.scrollX:s.scrollLeft;return{top:i.top+d-l,left:i.left+c-o}}return null},css:function(e,t){const s=r();let a;if(1===arguments.length){if("string"!=typeof e){for(a=0;a{e.apply(t,[t,s])})),this):this},html:function(e){if(void 0===e)return this[0]?this[0].innerHTML:null;for(let t=0;tt-1)return d([]);if(e<0){const s=t+e;return d(s<0?[]:[this[s]])}return d([this[e]])},append:function(){let e;const t=a();for(let s=0;s=0;i-=1)this[s].insertBefore(a.childNodes[i],this[s].childNodes[0])}else if(e instanceof n)for(i=0;i0?e?this[0].nextElementSibling&&d(this[0].nextElementSibling).is(e)?d([this[0].nextElementSibling]):d([]):this[0].nextElementSibling?d([this[0].nextElementSibling]):d([]):d([])},nextAll:function(e){const t=[];let s=this[0];if(!s)return d([]);for(;s.nextElementSibling;){const a=s.nextElementSibling;e?d(a).is(e)&&t.push(a):t.push(a),s=a}return d(t)},prev:function(e){if(this.length>0){const t=this[0];return e?t.previousElementSibling&&d(t.previousElementSibling).is(e)?d([t.previousElementSibling]):d([]):t.previousElementSibling?d([t.previousElementSibling]):d([])}return d([])},prevAll:function(e){const t=[];let s=this[0];if(!s)return d([]);for(;s.previousElementSibling;){const a=s.previousElementSibling;e?d(a).is(e)&&t.push(a):t.push(a),s=a}return d(t)},parent:function(e){const t=[];for(let s=0;s6&&(i=i.split(", ").map((e=>e.replace(",","."))).join(", ")),n=new s.WebKitCSSMatrix("none"===i?"":i)):(n=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),a=n.toString().split(",")),"x"===t&&(i=s.WebKitCSSMatrix?n.m41:16===a.length?parseFloat(a[12]):parseFloat(a[4])),"y"===t&&(i=s.WebKitCSSMatrix?n.m42:16===a.length?parseFloat(a[13]):parseFloat(a[5])),i||0}function m(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function f(e){return"undefined"!=typeof window&&void 0!==window.HTMLElement?e instanceof HTMLElement:e&&(1===e.nodeType||11===e.nodeType)}function g(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let s=1;st.indexOf(e)<0));for(let t=0,i=s.length;tn?"next":"prev",p=(e,t)=>"next"===c&&e>=t||"prev"===c&&e<=t,u=()=>{l=(new Date).getTime(),null===o&&(o=l);const e=Math.max(Math.min((l-o)/d,1),0),r=.5-Math.cos(e*Math.PI)/2;let c=n+r*(s-n);if(p(c,s)&&(c=s),t.wrapperEl.scrollTo({[a]:c}),p(c,s))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[a]:c})})),void i.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=i.requestAnimationFrame(u)};u()}let b,x,y;function E(){return b||(b=function(){const e=r(),t=a();return{smoothScroll:t.documentElement&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch),passiveListener:function(){let t=!1;try{const s=Object.defineProperty({},"passive",{get(){t=!0}});e.addEventListener("testPassiveListener",null,s)}catch(e){}return t}(),gestures:"ongesturestart"in e}}()),b}function C(e){return void 0===e&&(e={}),x||(x=function(e){let{userAgent:t}=void 0===e?{}:e;const s=E(),a=r(),i=a.navigator.platform,n=t||a.navigator.userAgent,l={ios:!1,android:!1},o=a.screen.width,d=a.screen.height,c=n.match(/(Android);?[\s\/]+([\d.]+)?/);let p=n.match(/(iPad).*OS\s([\d_]+)/);const u=n.match(/(iPod)(.*OS\s([\d_]+))?/),h=!p&&n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),m="Win32"===i;let f="MacIntel"===i;return!p&&f&&s.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${o}x${d}`)>=0&&(p=n.match(/(Version)\/([\d.]+)/),p||(p=[0,1,"13_0_0"]),f=!1),c&&!m&&(l.os="android",l.android=!0),(p||h||u)&&(l.os="ios",l.ios=!0),l}(e)),x}function T(){return y||(y=function(){const e=r();return{isSafari:function(){const t=e.navigator.userAgent.toLowerCase();return t.indexOf("safari")>=0&&t.indexOf("chrome")<0&&t.indexOf("android")<0}(),isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent)}}()),y}Object.keys(c).forEach((e=>{Object.defineProperty(d.fn,e,{value:c[e],writable:!0})}));var $={on(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;const i=s?"unshift":"push";return e.split(" ").forEach((e=>{a.eventsListeners[e]||(a.eventsListeners[e]=[]),a.eventsListeners[e][i](t)})),a},once(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;function i(){a.off(e,i),i.__emitterProxy&&delete i.__emitterProxy;for(var s=arguments.length,r=new Array(s),n=0;n=0&&t.eventsAnyListeners.splice(s,1),t},off(e,t){const s=this;return!s.eventsListeners||s.destroyed?s:s.eventsListeners?(e.split(" ").forEach((e=>{void 0===t?s.eventsListeners[e]=[]:s.eventsListeners[e]&&s.eventsListeners[e].forEach(((a,i)=>{(a===t||a.__emitterProxy&&a.__emitterProxy===t)&&s.eventsListeners[e].splice(i,1)}))})),s):s},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,s,a;for(var i=arguments.length,r=new Array(i),n=0;n{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListeners.forEach((e=>{e.apply(a,[t,...s])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListeners[t].forEach((e=>{e.apply(a,s)}))})),e}};var S={updateSize:function(){const e=this;let t,s;const a=e.$el;t=void 0!==e.params.width&&null!==e.params.width?e.params.width:a[0].clientWidth,s=void 0!==e.params.height&&null!==e.params.height?e.params.height:a[0].clientHeight,0===t&&e.isHorizontal()||0===s&&e.isVertical()||(t=t-parseInt(a.css("padding-left")||0,10)-parseInt(a.css("padding-right")||0,10),s=s-parseInt(a.css("padding-top")||0,10)-parseInt(a.css("padding-bottom")||0,10),Number.isNaN(t)&&(t=0),Number.isNaN(s)&&(s=0),Object.assign(e,{width:t,height:s,size:e.isHorizontal()?t:s}))},updateSlides:function(){const e=this;function t(t){return e.isHorizontal()?t:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[t]}function s(e,s){return parseFloat(e.getPropertyValue(t(s))||0)}const a=e.params,{$wrapperEl:i,size:r,rtlTranslate:n,wrongRTL:l}=e,o=e.virtual&&a.virtual.enabled,d=o?e.virtual.slides.length:e.slides.length,c=i.children(`.${e.params.slideClass}`),p=o?e.virtual.slides.length:c.length;let u=[];const h=[],m=[];let f=a.slidesOffsetBefore;"function"==typeof f&&(f=a.slidesOffsetBefore.call(e));let g=a.slidesOffsetAfter;"function"==typeof g&&(g=a.slidesOffsetAfter.call(e));const w=e.snapGrid.length,b=e.slidesGrid.length;let x=a.spaceBetween,y=-f,E=0,C=0;if(void 0===r)return;"string"==typeof x&&x.indexOf("%")>=0&&(x=parseFloat(x.replace("%",""))/100*r),e.virtualSize=-x,n?c.css({marginLeft:"",marginBottom:"",marginTop:""}):c.css({marginRight:"",marginBottom:"",marginTop:""}),a.centeredSlides&&a.cssMode&&(v(e.wrapperEl,"--swiper-centered-offset-before",""),v(e.wrapperEl,"--swiper-centered-offset-after",""));const T=a.grid&&a.grid.rows>1&&e.grid;let $;T&&e.grid.initSlides(p);const S="auto"===a.slidesPerView&&a.breakpoints&&Object.keys(a.breakpoints).filter((e=>void 0!==a.breakpoints[e].slidesPerView)).length>0;for(let i=0;i1&&u.push(e.virtualSize-r)}if(0===u.length&&(u=[0]),0!==a.spaceBetween){const s=e.isHorizontal()&&n?"marginLeft":t("marginRight");c.filter(((e,t)=>!a.cssMode||t!==c.length-1)).css({[s]:`${x}px`})}if(a.centeredSlides&&a.centeredSlidesBounds){let e=0;m.forEach((t=>{e+=t+(a.spaceBetween?a.spaceBetween:0)})),e-=a.spaceBetween;const t=e-r;u=u.map((e=>e<0?-f:e>t?t+g:e))}if(a.centerInsufficientSlides){let e=0;if(m.forEach((t=>{e+=t+(a.spaceBetween?a.spaceBetween:0)})),e-=a.spaceBetween,e{u[s]=e-t})),h.forEach(((e,s)=>{h[s]=e+t}))}}if(Object.assign(e,{slides:c,snapGrid:u,slidesGrid:h,slidesSizesGrid:m}),a.centeredSlides&&a.cssMode&&!a.centeredSlidesBounds){v(e.wrapperEl,"--swiper-centered-offset-before",-u[0]+"px"),v(e.wrapperEl,"--swiper-centered-offset-after",e.size/2-m[m.length-1]/2+"px");const t=-e.snapGrid[0],s=-e.slidesGrid[0];e.snapGrid=e.snapGrid.map((e=>e+t)),e.slidesGrid=e.slidesGrid.map((e=>e+s))}if(p!==d&&e.emit("slidesLengthChange"),u.length!==w&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),h.length!==b&&e.emit("slidesGridLengthChange"),a.watchSlidesProgress&&e.updateSlidesOffset(),!(o||a.cssMode||"slide"!==a.effect&&"fade"!==a.effect)){const t=`${a.containerModifierClass}backface-hidden`,s=e.$el.hasClass(t);p<=a.maxBackfaceHiddenSlides?s||e.$el.addClass(t):s&&e.$el.removeClass(t)}},updateAutoHeight:function(e){const t=this,s=[],a=t.virtual&&t.params.virtual.enabled;let i,r=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const n=e=>a?t.slides.filter((t=>parseInt(t.getAttribute("data-swiper-slide-index"),10)===e))[0]:t.slides.eq(e)[0];if("auto"!==t.params.slidesPerView&&t.params.slidesPerView>1)if(t.params.centeredSlides)(t.visibleSlides||d([])).each((e=>{s.push(e)}));else for(i=0;it.slides.length&&!a)break;s.push(n(e))}else s.push(n(t.activeIndex));for(i=0;ir?e:r}(r||0===r)&&t.$wrapperEl.css("height",`${r}px`)},updateSlidesOffset:function(){const e=this,t=e.slides;for(let s=0;s=0&&p1&&u<=t.size||p<=0&&u>=t.size)&&(t.visibleSlides.push(l),t.visibleSlidesIndexes.push(e),a.eq(e).addClass(s.slideVisibleClass)),l.progress=i?-d:d,l.originalProgress=i?-c:c}t.visibleSlides=d(t.visibleSlides)},updateProgress:function(e){const t=this;if(void 0===e){const s=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*s||0}const s=t.params,a=t.maxTranslate()-t.minTranslate();let{progress:i,isBeginning:r,isEnd:n}=t;const l=r,o=n;0===a?(i=0,r=!0,n=!0):(i=(e-t.minTranslate())/a,r=i<=0,n=i>=1),Object.assign(t,{progress:i,isBeginning:r,isEnd:n}),(s.watchSlidesProgress||s.centeredSlides&&s.autoHeight)&&t.updateSlidesProgress(e),r&&!l&&t.emit("reachBeginning toEdge"),n&&!o&&t.emit("reachEnd toEdge"),(l&&!r||o&&!n)&&t.emit("fromEdge"),t.emit("progress",i)},updateSlidesClasses:function(){const e=this,{slides:t,params:s,$wrapperEl:a,activeIndex:i,realIndex:r}=e,n=e.virtual&&s.virtual.enabled;let l;t.removeClass(`${s.slideActiveClass} ${s.slideNextClass} ${s.slidePrevClass} ${s.slideDuplicateActiveClass} ${s.slideDuplicateNextClass} ${s.slideDuplicatePrevClass}`),l=n?e.$wrapperEl.find(`.${s.slideClass}[data-swiper-slide-index="${i}"]`):t.eq(i),l.addClass(s.slideActiveClass),s.loop&&(l.hasClass(s.slideDuplicateClass)?a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${r}"]`).addClass(s.slideDuplicateActiveClass):a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${r}"]`).addClass(s.slideDuplicateActiveClass));let o=l.nextAll(`.${s.slideClass}`).eq(0).addClass(s.slideNextClass);s.loop&&0===o.length&&(o=t.eq(0),o.addClass(s.slideNextClass));let d=l.prevAll(`.${s.slideClass}`).eq(0).addClass(s.slidePrevClass);s.loop&&0===d.length&&(d=t.eq(-1),d.addClass(s.slidePrevClass)),s.loop&&(o.hasClass(s.slideDuplicateClass)?a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${o.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicateNextClass):a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${o.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicateNextClass),d.hasClass(s.slideDuplicateClass)?a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${d.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicatePrevClass):a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${d.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicatePrevClass)),e.emitSlidesClasses()},updateActiveIndex:function(e){const t=this,s=t.rtlTranslate?t.translate:-t.translate,{slidesGrid:a,snapGrid:i,params:r,activeIndex:n,realIndex:l,snapIndex:o}=t;let d,c=e;if(void 0===c){for(let e=0;e=a[e]&&s=a[e]&&s=a[e]&&(c=e);r.normalizeSlideIndex&&(c<0||void 0===c)&&(c=0)}if(i.indexOf(s)>=0)d=i.indexOf(s);else{const e=Math.min(r.slidesPerGroupSkip,c);d=e+Math.floor((c-e)/r.slidesPerGroup)}if(d>=i.length&&(d=i.length-1),c===n)return void(d!==o&&(t.snapIndex=d,t.emit("snapIndexChange")));const p=parseInt(t.slides.eq(c).attr("data-swiper-slide-index")||c,10);Object.assign(t,{snapIndex:d,realIndex:p,previousIndex:n,activeIndex:c}),t.emit("activeIndexChange"),t.emit("snapIndexChange"),l!==p&&t.emit("realIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&t.emit("slideChange")},updateClickedSlide:function(e){const t=this,s=t.params,a=d(e).closest(`.${s.slideClass}`)[0];let i,r=!1;if(a)for(let e=0;eo?o:a&&en?"next":r=o.length&&(g=o.length-1);const v=-o[g];if(l.normalizeSlideIndex)for(let e=0;e=s&&t=s&&t=s&&(n=e)}if(r.initialized&&n!==p){if(!r.allowSlideNext&&vr.translate&&v>r.maxTranslate()&&(p||0)!==n)return!1}let b;if(n!==(c||0)&&s&&r.emit("beforeSlideChangeStart"),r.updateProgress(v),b=n>p?"next":n{r.wrapperEl.style.scrollSnapType="",r._swiperImmediateVirtual=!1}))}else{if(!r.support.smoothScroll)return w({swiper:r,targetPosition:s,side:e?"left":"top"}),!0;h.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}return r.setTransition(t),r.setTranslate(v),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,a),r.transitionStart(s,b),0===t?r.transitionEnd(s,b):r.animating||(r.animating=!0,r.onSlideToWrapperTransitionEnd||(r.onSlideToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.$wrapperEl[0].removeEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.$wrapperEl[0].removeEventListener("webkitTransitionEnd",r.onSlideToWrapperTransitionEnd),r.onSlideToWrapperTransitionEnd=null,delete r.onSlideToWrapperTransitionEnd,r.transitionEnd(s,b))}),r.$wrapperEl[0].addEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.$wrapperEl[0].addEventListener("webkitTransitionEnd",r.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e,t,s,a){if(void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),"string"==typeof e){const t=parseInt(e,10);if(!isFinite(t))throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${e}] given.`);e=t}const i=this;let r=e;return i.params.loop&&(r+=i.loopedSlides),i.slideTo(r,t,s,a)},slideNext:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const a=this,{animating:i,enabled:r,params:n}=a;if(!r)return a;let l=n.slidesPerGroup;"auto"===n.slidesPerView&&1===n.slidesPerGroup&&n.slidesPerGroupAuto&&(l=Math.max(a.slidesPerViewDynamic("current",!0),1));const o=a.activeIndexc(e)));let h=n[u.indexOf(p)-1];if(void 0===h&&i.cssMode){let e;n.forEach(((t,s)=>{p>=t&&(e=s)})),void 0!==e&&(h=n[e>0?e-1:e])}let m=0;if(void 0!==h&&(m=l.indexOf(h),m<0&&(m=a.activeIndex-1),"auto"===i.slidesPerView&&1===i.slidesPerGroup&&i.slidesPerGroupAuto&&(m=m-a.slidesPerViewDynamic("previous",!0)+1,m=Math.max(m,0))),i.rewind&&a.isBeginning){const i=a.params.virtual&&a.params.virtual.enabled&&a.virtual?a.virtual.slides.length-1:a.slides.length-1;return a.slideTo(i,e,t,s)}return a.slideTo(m,e,t,s)},slideReset:function(e,t,s){return void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),this.slideTo(this.activeIndex,e,t,s)},slideToClosest:function(e,t,s,a){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===a&&(a=.5);const i=this;let r=i.activeIndex;const n=Math.min(i.params.slidesPerGroupSkip,r),l=n+Math.floor((r-n)/i.params.slidesPerGroup),o=i.rtlTranslate?i.translate:-i.translate;if(o>=i.snapGrid[l]){const e=i.snapGrid[l];o-e>(i.snapGrid[l+1]-e)*a&&(r+=i.params.slidesPerGroup)}else{const e=i.snapGrid[l-1];o-e<=(i.snapGrid[l]-e)*a&&(r-=i.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,i.slidesGrid.length-1),i.slideTo(r,e,t,s)},slideToClickedSlide:function(){const e=this,{params:t,$wrapperEl:s}=e,a="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let i,r=e.clickedIndex;if(t.loop){if(e.animating)return;i=parseInt(d(e.clickedSlide).attr("data-swiper-slide-index"),10),t.centeredSlides?re.slides.length-e.loopedSlides+a/2?(e.loopFix(),r=s.children(`.${t.slideClass}[data-swiper-slide-index="${i}"]:not(.${t.slideDuplicateClass})`).eq(0).index(),p((()=>{e.slideTo(r)}))):e.slideTo(r):r>e.slides.length-a?(e.loopFix(),r=s.children(`.${t.slideClass}[data-swiper-slide-index="${i}"]:not(.${t.slideDuplicateClass})`).eq(0).index(),p((()=>{e.slideTo(r)}))):e.slideTo(r)}else e.slideTo(r)}};var z={loopCreate:function(){const e=this,t=a(),{params:s,$wrapperEl:i}=e,r=i.children().length>0?d(i.children()[0].parentNode):i;r.children(`.${s.slideClass}.${s.slideDuplicateClass}`).remove();let n=r.children(`.${s.slideClass}`);if(s.loopFillGroupWithBlank){const e=s.slidesPerGroup-n.length%s.slidesPerGroup;if(e!==s.slidesPerGroup){for(let a=0;an.length&&e.params.loopedSlidesLimit&&(e.loopedSlides=n.length);const l=[],o=[];n.each(((e,t)=>{d(e).attr("data-swiper-slide-index",t)}));for(let t=0;t=0;e-=1)r.prepend(d(l[e].cloneNode(!0)).addClass(s.slideDuplicateClass))},loopFix:function(){const e=this;e.emit("beforeLoopFix");const{activeIndex:t,slides:s,loopedSlides:a,allowSlidePrev:i,allowSlideNext:r,snapGrid:n,rtlTranslate:l}=e;let o;e.allowSlidePrev=!0,e.allowSlideNext=!0;const d=-n[t]-e.getTranslate();if(t=s.length-a){o=-s.length+t+a,o+=a;e.slideTo(o,0,!1,!0)&&0!==d&&e.setTranslate((l?-e.translate:e.translate)-d)}e.allowSlidePrev=i,e.allowSlideNext=r,e.emit("loopFix")},loopDestroy:function(){const{$wrapperEl:e,params:t,slides:s}=this;e.children(`.${t.slideClass}.${t.slideDuplicateClass},.${t.slideClass}.${t.slideBlankClass}`).remove(),s.removeAttr("data-swiper-slide-index")}};function L(e){const t=this,s=a(),i=r(),n=t.touchEventsData,{params:l,touches:o,enabled:c}=t;if(!c)return;if(t.animating&&l.preventInteractionOnTransition)return;!t.animating&&l.cssMode&&l.loop&&t.loopFix();let p=e;p.originalEvent&&(p=p.originalEvent);let h=d(p.target);if("wrapper"===l.touchEventsTarget&&!h.closest(t.wrapperEl).length)return;if(n.isTouchEvent="touchstart"===p.type,!n.isTouchEvent&&"which"in p&&3===p.which)return;if(!n.isTouchEvent&&"button"in p&&p.button>0)return;if(n.isTouched&&n.isMoved)return;const m=!!l.noSwipingClass&&""!==l.noSwipingClass,f=e.composedPath?e.composedPath():e.path;m&&p.target&&p.target.shadowRoot&&f&&(h=d(f[0]));const g=l.noSwipingSelector?l.noSwipingSelector:`.${l.noSwipingClass}`,v=!(!p.target||!p.target.shadowRoot);if(l.noSwiping&&(v?function(e,t){return void 0===t&&(t=this),function t(s){if(!s||s===a()||s===r())return null;s.assignedSlot&&(s=s.assignedSlot);const i=s.closest(e);return i||s.getRootNode?i||t(s.getRootNode().host):null}(t)}(g,h[0]):h.closest(g)[0]))return void(t.allowClick=!0);if(l.swipeHandler&&!h.closest(l.swipeHandler)[0])return;o.currentX="touchstart"===p.type?p.targetTouches[0].pageX:p.pageX,o.currentY="touchstart"===p.type?p.targetTouches[0].pageY:p.pageY;const w=o.currentX,b=o.currentY,x=l.edgeSwipeDetection||l.iOSEdgeSwipeDetection,y=l.edgeSwipeThreshold||l.iOSEdgeSwipeThreshold;if(x&&(w<=y||w>=i.innerWidth-y)){if("prevent"!==x)return;e.preventDefault()}if(Object.assign(n,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),o.startX=w,o.startY=b,n.touchStartTime=u(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,l.threshold>0&&(n.allowThresholdMove=!1),"touchstart"!==p.type){let e=!0;h.is(n.focusableElements)&&(e=!1,"SELECT"===h[0].nodeName&&(n.isTouched=!1)),s.activeElement&&d(s.activeElement).is(n.focusableElements)&&s.activeElement!==h[0]&&s.activeElement.blur();const a=e&&t.allowTouchMove&&l.touchStartPreventDefault;!l.touchStartForcePreventDefault&&!a||h[0].isContentEditable||p.preventDefault()}t.params.freeMode&&t.params.freeMode.enabled&&t.freeMode&&t.animating&&!l.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",p)}function O(e){const t=a(),s=this,i=s.touchEventsData,{params:r,touches:n,rtlTranslate:l,enabled:o}=s;if(!o)return;let c=e;if(c.originalEvent&&(c=c.originalEvent),!i.isTouched)return void(i.startMoving&&i.isScrolling&&s.emit("touchMoveOpposite",c));if(i.isTouchEvent&&"touchmove"!==c.type)return;const p="touchmove"===c.type&&c.targetTouches&&(c.targetTouches[0]||c.changedTouches[0]),h="touchmove"===c.type?p.pageX:c.pageX,m="touchmove"===c.type?p.pageY:c.pageY;if(c.preventedByNestedSwiper)return n.startX=h,void(n.startY=m);if(!s.allowTouchMove)return d(c.target).is(i.focusableElements)||(s.allowClick=!1),void(i.isTouched&&(Object.assign(n,{startX:h,startY:m,currentX:h,currentY:m}),i.touchStartTime=u()));if(i.isTouchEvent&&r.touchReleaseOnEdges&&!r.loop)if(s.isVertical()){if(mn.startY&&s.translate>=s.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(hn.startX&&s.translate>=s.minTranslate())return;if(i.isTouchEvent&&t.activeElement&&c.target===t.activeElement&&d(c.target).is(i.focusableElements))return i.isMoved=!0,void(s.allowClick=!1);if(i.allowTouchCallbacks&&s.emit("touchMove",c),c.targetTouches&&c.targetTouches.length>1)return;n.currentX=h,n.currentY=m;const f=n.currentX-n.startX,g=n.currentY-n.startY;if(s.params.threshold&&Math.sqrt(f**2+g**2)=25&&(e=180*Math.atan2(Math.abs(g),Math.abs(f))/Math.PI,i.isScrolling=s.isHorizontal()?e>r.touchAngle:90-e>r.touchAngle)}if(i.isScrolling&&s.emit("touchMoveOpposite",c),void 0===i.startMoving&&(n.currentX===n.startX&&n.currentY===n.startY||(i.startMoving=!0)),i.isScrolling)return void(i.isTouched=!1);if(!i.startMoving)return;s.allowClick=!1,!r.cssMode&&c.cancelable&&c.preventDefault(),r.touchMoveStopPropagation&&!r.nested&&c.stopPropagation(),i.isMoved||(r.loop&&!r.cssMode&&s.loopFix(),i.startTranslate=s.getTranslate(),s.setTransition(0),s.animating&&s.$wrapperEl.trigger("webkitTransitionEnd transitionend"),i.allowMomentumBounce=!1,!r.grabCursor||!0!==s.allowSlideNext&&!0!==s.allowSlidePrev||s.setGrabCursor(!0),s.emit("sliderFirstMove",c)),s.emit("sliderMove",c),i.isMoved=!0;let v=s.isHorizontal()?f:g;n.diff=v,v*=r.touchRatio,l&&(v=-v),s.swipeDirection=v>0?"prev":"next",i.currentTranslate=v+i.startTranslate;let w=!0,b=r.resistanceRatio;if(r.touchReleaseOnEdges&&(b=0),v>0&&i.currentTranslate>s.minTranslate()?(w=!1,r.resistance&&(i.currentTranslate=s.minTranslate()-1+(-s.minTranslate()+i.startTranslate+v)**b)):v<0&&i.currentTranslatei.startTranslate&&(i.currentTranslate=i.startTranslate),s.allowSlidePrev||s.allowSlideNext||(i.currentTranslate=i.startTranslate),r.threshold>0){if(!(Math.abs(v)>r.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return i.allowThresholdMove=!0,n.startX=n.currentX,n.startY=n.currentY,i.currentTranslate=i.startTranslate,void(n.diff=s.isHorizontal()?n.currentX-n.startX:n.currentY-n.startY)}r.followFinger&&!r.cssMode&&((r.freeMode&&r.freeMode.enabled&&s.freeMode||r.watchSlidesProgress)&&(s.updateActiveIndex(),s.updateSlidesClasses()),s.params.freeMode&&r.freeMode.enabled&&s.freeMode&&s.freeMode.onTouchMove(),s.updateProgress(i.currentTranslate),s.setTranslate(i.currentTranslate))}function I(e){const t=this,s=t.touchEventsData,{params:a,touches:i,rtlTranslate:r,slidesGrid:n,enabled:l}=t;if(!l)return;let o=e;if(o.originalEvent&&(o=o.originalEvent),s.allowTouchCallbacks&&t.emit("touchEnd",o),s.allowTouchCallbacks=!1,!s.isTouched)return s.isMoved&&a.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);a.grabCursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const d=u(),c=d-s.touchStartTime;if(t.allowClick){const e=o.path||o.composedPath&&o.composedPath();t.updateClickedSlide(e&&e[0]||o.target),t.emit("tap click",o),c<300&&d-s.lastClickTime<300&&t.emit("doubleTap doubleClick",o)}if(s.lastClickTime=u(),p((()=>{t.destroyed||(t.allowClick=!0)})),!s.isTouched||!s.isMoved||!t.swipeDirection||0===i.diff||s.currentTranslate===s.startTranslate)return s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let h;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,h=a.followFinger?r?t.translate:-t.translate:-s.currentTranslate,a.cssMode)return;if(t.params.freeMode&&a.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:h});let m=0,f=t.slidesSizesGrid[0];for(let e=0;e=n[e]&&h=n[e]&&(m=e,f=n[n.length-1]-n[n.length-2])}let g=null,v=null;a.rewind&&(t.isBeginning?v=t.params.virtual&&t.params.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(g=0));const w=(h-n[m])/f,b=ma.longSwipesMs){if(!a.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(w>=a.longSwipesRatio?t.slideTo(a.rewind&&t.isEnd?g:m+b):t.slideTo(m)),"prev"===t.swipeDirection&&(w>1-a.longSwipesRatio?t.slideTo(m+b):null!==v&&w<0&&Math.abs(w)>a.longSwipesRatio?t.slideTo(v):t.slideTo(m))}else{if(!a.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(o.target===t.navigation.nextEl||o.target===t.navigation.prevEl)?o.target===t.navigation.nextEl?t.slideTo(m+b):t.slideTo(m):("next"===t.swipeDirection&&t.slideTo(null!==g?g:m+b),"prev"===t.swipeDirection&&t.slideTo(null!==v?v:m))}}function A(){const e=this,{params:t,el:s}=e;if(s&&0===s.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:a,allowSlidePrev:i,snapGrid:r}=e;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses(),("auto"===t.slidesPerView||t.slidesPerView>1)&&e.isEnd&&!e.isBeginning&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.run(),e.allowSlidePrev=i,e.allowSlideNext=a,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}function D(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function G(){const e=this,{wrapperEl:t,rtlTranslate:s,enabled:a}=e;if(!a)return;let i;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=-t.scrollLeft:e.translate=-t.scrollTop,0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();const r=e.maxTranslate()-e.minTranslate();i=0===r?0:(e.translate-e.minTranslate())/r,i!==e.progress&&e.updateProgress(s?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}let N=!1;function B(){}const H=(e,t)=>{const s=a(),{params:i,touchEvents:r,el:n,wrapperEl:l,device:o,support:d}=e,c=!!i.nested,p="on"===t?"addEventListener":"removeEventListener",u=t;if(d.touch){const t=!("touchstart"!==r.start||!d.passiveListener||!i.passiveListeners)&&{passive:!0,capture:!1};n[p](r.start,e.onTouchStart,t),n[p](r.move,e.onTouchMove,d.passiveListener?{passive:!1,capture:c}:c),n[p](r.end,e.onTouchEnd,t),r.cancel&&n[p](r.cancel,e.onTouchEnd,t)}else n[p](r.start,e.onTouchStart,!1),s[p](r.move,e.onTouchMove,c),s[p](r.end,e.onTouchEnd,!1);(i.preventClicks||i.preventClicksPropagation)&&n[p]("click",e.onClick,!0),i.cssMode&&l[p]("scroll",e.onScroll),i.updateOnWindowResize?e[u](o.ios||o.android?"resize orientationchange observerUpdate":"resize observerUpdate",A,!0):e[u]("observerUpdate",A,!0)};var X={attachEvents:function(){const e=this,t=a(),{params:s,support:i}=e;e.onTouchStart=L.bind(e),e.onTouchMove=O.bind(e),e.onTouchEnd=I.bind(e),s.cssMode&&(e.onScroll=G.bind(e)),e.onClick=D.bind(e),i.touch&&!N&&(t.addEventListener("touchstart",B),N=!0),H(e,"on")},detachEvents:function(){H(this,"off")}};const Y=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var R={addClasses:function(){const e=this,{classNames:t,params:s,rtl:a,$el:i,device:r,support:n}=e,l=function(e,t){const s=[];return e.forEach((e=>{"object"==typeof e?Object.keys(e).forEach((a=>{e[a]&&s.push(t+a)})):"string"==typeof e&&s.push(t+e)})),s}(["initialized",s.direction,{"pointer-events":!n.touch},{"free-mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:a},{grid:s.grid&&s.grid.rows>1},{"grid-column":s.grid&&s.grid.rows>1&&"column"===s.grid.fill},{android:r.android},{ios:r.ios},{"css-mode":s.cssMode},{centered:s.cssMode&&s.centeredSlides},{"watch-progress":s.watchSlidesProgress}],s.containerModifierClass);t.push(...l),i.addClass([...t].join(" ")),e.emitContainerClasses()},removeClasses:function(){const{$el:e,classNames:t}=this;e.removeClass(t.join(" ")),this.emitContainerClasses()}};var W={init:!0,direction:"horizontal",touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:0,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,loopedSlidesLimit:!0,loopFillGroupWithBlank:!1,loopPreventsSlide:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:"swiper-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-invisible-blank",slideActiveClass:"swiper-slide-active",slideDuplicateActiveClass:"swiper-slide-duplicate-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slideDuplicateNextClass:"swiper-slide-duplicate-next",slidePrevClass:"swiper-slide-prev",slideDuplicatePrevClass:"swiper-slide-duplicate-prev",wrapperClass:"swiper-wrapper",runCallbacksOnInit:!0,_emitClasses:!1};function q(e,t){return function(s){void 0===s&&(s={});const a=Object.keys(s)[0],i=s[a];"object"==typeof i&&null!==i?(["navigation","pagination","scrollbar"].indexOf(a)>=0&&!0===e[a]&&(e[a]={auto:!0}),a in e&&"enabled"in i?(!0===e[a]&&(e[a]={enabled:!0}),"object"!=typeof e[a]||"enabled"in e[a]||(e[a].enabled=!0),e[a]||(e[a]={enabled:!1}),g(t,s)):g(t,s)):g(t,s)}}const j={eventsEmitter:$,update:S,translate:M,transition:{setTransition:function(e,t){const s=this;s.params.cssMode||s.$wrapperEl.transition(e),s.emit("setTransition",e,t)},transitionStart:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;a.cssMode||(a.autoHeight&&s.updateAutoHeight(),P({swiper:s,runCallbacks:e,direction:t,step:"Start"}))},transitionEnd:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;s.animating=!1,a.cssMode||(s.setTransition(0),P({swiper:s,runCallbacks:e,direction:t,step:"End"}))}},slide:k,loop:z,grabCursor:{setGrabCursor:function(e){const t=this;if(t.support.touch||!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)return;const s="container"===t.params.touchEventsTarget?t.el:t.wrapperEl;s.style.cursor="move",s.style.cursor=e?"grabbing":"grab"},unsetGrabCursor:function(){const e=this;e.support.touch||e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e["container"===e.params.touchEventsTarget?"el":"wrapperEl"].style.cursor="")}},events:X,breakpoints:{setBreakpoint:function(){const e=this,{activeIndex:t,initialized:s,loopedSlides:a=0,params:i,$el:r}=e,n=i.breakpoints;if(!n||n&&0===Object.keys(n).length)return;const l=e.getBreakpoint(n,e.params.breakpointsBase,e.el);if(!l||e.currentBreakpoint===l)return;const o=(l in n?n[l]:void 0)||e.originalParams,d=Y(e,i),c=Y(e,o),p=i.enabled;d&&!c?(r.removeClass(`${i.containerModifierClass}grid ${i.containerModifierClass}grid-column`),e.emitContainerClasses()):!d&&c&&(r.addClass(`${i.containerModifierClass}grid`),(o.grid.fill&&"column"===o.grid.fill||!o.grid.fill&&"column"===i.grid.fill)&&r.addClass(`${i.containerModifierClass}grid-column`),e.emitContainerClasses()),["navigation","pagination","scrollbar"].forEach((t=>{const s=i[t]&&i[t].enabled,a=o[t]&&o[t].enabled;s&&!a&&e[t].disable(),!s&&a&&e[t].enable()}));const u=o.direction&&o.direction!==i.direction,h=i.loop&&(o.slidesPerView!==i.slidesPerView||u);u&&s&&e.changeDirection(),g(e.params,o);const m=e.params.enabled;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),p&&!m?e.disable():!p&&m&&e.enable(),e.currentBreakpoint=l,e.emit("_beforeBreakpoint",o),h&&s&&(e.loopDestroy(),e.loopCreate(),e.updateSlides(),e.slideTo(t-a+e.loopedSlides,0,!1)),e.emit("breakpoint",o)},getBreakpoint:function(e,t,s){if(void 0===t&&(t="window"),!e||"container"===t&&!s)return;let a=!1;const i=r(),n="window"===t?i.innerHeight:s.clientHeight,l=Object.keys(e).map((e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:n*t,point:e}}return{value:e,point:e}}));l.sort(((e,t)=>parseInt(e.value,10)-parseInt(t.value,10)));for(let e=0;es}else e.isLocked=1===e.snapGrid.length;!0===s.allowSlideNext&&(e.allowSlideNext=!e.isLocked),!0===s.allowSlidePrev&&(e.allowSlidePrev=!e.isLocked),t&&t!==e.isLocked&&(e.isEnd=!1),t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock")}},classes:R,images:{loadImage:function(e,t,s,a,i,n){const l=r();let o;function c(){n&&n()}d(e).parent("picture")[0]||e.complete&&i?c():t?(o=new l.Image,o.onload=c,o.onerror=c,a&&(o.sizes=a),s&&(o.srcset=s),t&&(o.src=t)):c()},preloadImages:function(){const e=this;function t(){null!=e&&e&&!e.destroyed&&(void 0!==e.imagesLoaded&&(e.imagesLoaded+=1),e.imagesLoaded===e.imagesToLoad.length&&(e.params.updateOnImagesReady&&e.update(),e.emit("imagesReady")))}e.imagesToLoad=e.$el.find("img");for(let s=0;s1){const e=[];return d(t.el).each((s=>{const a=g({},t,{el:s});e.push(new V(a))})),e}const r=this;r.__swiper__=!0,r.support=E(),r.device=C({userAgent:t.userAgent}),r.browser=T(),r.eventsListeners={},r.eventsAnyListeners=[],r.modules=[...r.__modules__],t.modules&&Array.isArray(t.modules)&&r.modules.push(...t.modules);const n={};r.modules.forEach((e=>{e({swiper:r,extendParams:q(t,n),on:r.on.bind(r),once:r.once.bind(r),off:r.off.bind(r),emit:r.emit.bind(r)})}));const l=g({},W,n);return r.params=g({},l,_,t),r.originalParams=g({},r.params),r.passedParams=g({},t),r.params&&r.params.on&&Object.keys(r.params.on).forEach((e=>{r.on(e,r.params.on[e])})),r.params&&r.params.onAny&&r.onAny(r.params.onAny),r.$=d,Object.assign(r,{enabled:r.params.enabled,el:e,classNames:[],slides:d(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===r.params.direction,isVertical:()=>"vertical"===r.params.direction,activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,allowSlideNext:r.params.allowSlideNext,allowSlidePrev:r.params.allowSlidePrev,touchEvents:function(){const e=["touchstart","touchmove","touchend","touchcancel"],t=["pointerdown","pointermove","pointerup"];return r.touchEventsTouch={start:e[0],move:e[1],end:e[2],cancel:e[3]},r.touchEventsDesktop={start:t[0],move:t[1],end:t[2]},r.support.touch||!r.params.simulateTouch?r.touchEventsTouch:r.touchEventsDesktop}(),touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:r.params.focusableElements,lastClickTime:u(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,isTouchEvent:void 0,startMoving:void 0},allowClick:!0,allowTouchMove:r.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),r.emit("_swiper"),r.params.init&&r.init(),r}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,t){const s=this;e=Math.min(Math.max(e,0),1);const a=s.minTranslate(),i=(s.maxTranslate()-a)*e+a;s.translateTo(i,void 0===t?0:t),s.updateActiveIndex(),s.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=e.el.className.split(" ").filter((t=>0===t.indexOf("swiper")||0===t.indexOf(e.params.containerModifierClass)));e.emit("_containerClasses",t.join(" "))}getSlideClasses(e){const t=this;return t.destroyed?"":e.className.split(" ").filter((e=>0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass))).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=[];e.slides.each((s=>{const a=e.getSlideClasses(s);t.push({slideEl:s,classNames:a}),e.emit("_slideClass",s,a)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void 0===t&&(t=!1);const{params:s,slides:a,slidesGrid:i,slidesSizesGrid:r,size:n,activeIndex:l}=this;let o=1;if(s.centeredSlides){let e,t=a[l].swiperSlideSize;for(let s=l+1;sn&&(e=!0));for(let s=l-1;s>=0;s-=1)a[s]&&!e&&(t+=a[s].swiperSlideSize,o+=1,t>n&&(e=!0))}else if("current"===e)for(let e=l+1;e=0;e-=1){i[l]-i[e]1)&&e.isEnd&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),i||a()),s.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t){void 0===t&&(t=!0);const s=this,a=s.params.direction;return e||(e="horizontal"===a?"vertical":"horizontal"),e===a||"horizontal"!==e&&"vertical"!==e||(s.$el.removeClass(`${s.params.containerModifierClass}${a}`).addClass(`${s.params.containerModifierClass}${e}`),s.emitContainerClasses(),s.params.direction=e,s.slides.each((t=>{"vertical"===e?t.style.width="":t.style.height=""})),s.emit("changeDirection"),t&&s.update()),s}changeLanguageDirection(e){const t=this;t.rtl&&"rtl"===e||!t.rtl&&"ltr"===e||(t.rtl="rtl"===e,t.rtlTranslate="horizontal"===t.params.direction&&t.rtl,t.rtl?(t.$el.addClass(`${t.params.containerModifierClass}rtl`),t.el.dir="rtl"):(t.$el.removeClass(`${t.params.containerModifierClass}rtl`),t.el.dir="ltr"),t.update())}mount(e){const t=this;if(t.mounted)return!0;const s=d(e||t.params.el);if(!(e=s[0]))return!1;e.swiper=t;const i=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let r=(()=>{if(e&&e.shadowRoot&&e.shadowRoot.querySelector){const t=d(e.shadowRoot.querySelector(i()));return t.children=e=>s.children(e),t}return s.children?s.children(i()):d(s).children(i())})();if(0===r.length&&t.params.createElements){const e=a().createElement("div");r=d(e),e.className=t.params.wrapperClass,s.append(e),s.children(`.${t.params.slideClass}`).each((e=>{r.append(e)}))}return Object.assign(t,{$el:s,el:e,$wrapperEl:r,wrapperEl:r[0],mounted:!0,rtl:"rtl"===e.dir.toLowerCase()||"rtl"===s.css("direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===e.dir.toLowerCase()||"rtl"===s.css("direction")),wrongRTL:"-webkit-box"===r.css("display")}),!0}init(e){const t=this;if(t.initialized)return t;return!1===t.mount(e)||(t.emit("beforeInit"),t.params.breakpoints&&t.setBreakpoint(),t.addClasses(),t.params.loop&&t.loopCreate(),t.updateSize(),t.updateSlides(),t.params.watchOverflow&&t.checkOverflow(),t.params.grabCursor&&t.enabled&&t.setGrabCursor(),t.params.preloadImages&&t.preloadImages(),t.params.loop?t.slideTo(t.params.initialSlide+t.loopedSlides,0,t.params.runCallbacksOnInit,!1,!0):t.slideTo(t.params.initialSlide,0,t.params.runCallbacksOnInit,!1,!0),t.attachEvents(),t.initialized=!0,t.emit("init"),t.emit("afterInit")),t}destroy(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);const s=this,{params:a,$el:i,$wrapperEl:r,slides:n}=s;return void 0===s.params||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),a.loop&&s.loopDestroy(),t&&(s.removeClasses(),i.removeAttr("style"),r.removeAttr("style"),n&&n.length&&n.removeClass([a.slideVisibleClass,a.slideActiveClass,a.slideNextClass,a.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")),s.emit("destroy"),Object.keys(s.eventsListeners).forEach((e=>{s.off(e)})),!1!==e&&(s.$el[0].swiper=null,function(e){const t=e;Object.keys(t).forEach((e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))}(s)),s.destroyed=!0),null}static extendDefaults(e){g(_,e)}static get extendedDefaults(){return _}static get defaults(){return W}static installModule(e){V.prototype.__modules__||(V.prototype.__modules__=[]);const t=V.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>V.installModule(e))),V):(V.installModule(e),V)}}function F(e,t,s,i){const r=a();return e.params.createElements&&Object.keys(i).forEach((a=>{if(!s[a]&&!0===s.auto){let n=e.$el.children(`.${i[a]}`)[0];n||(n=r.createElement("div"),n.className=i[a],e.$el.append(n)),s[a]=n,t[a]=n}})),s}function U(e){return void 0===e&&(e=""),`.${e.trim().replace(/([\.:!\/])/g,"\\$1").replace(/ /g,".")}`}function K(e){const t=this,{$wrapperEl:s,params:a}=t;if(a.loop&&t.loopDestroy(),"object"==typeof e&&"length"in e)for(let t=0;t=l)return void s.appendSlide(t);let o=n>e?n+1:n;const d=[];for(let t=l-1;t>=e;t-=1){const e=s.slides.eq(t);e.remove(),d.unshift(e)}if("object"==typeof t&&"length"in t){for(let e=0;ee?n+t.length:n}else a.append(t);for(let e=0;e{if(s.params.effect!==t)return;s.classNames.push(`${s.params.containerModifierClass}${t}`),l&&l()&&s.classNames.push(`${s.params.containerModifierClass}3d`);const e=n?n():{};Object.assign(s.params,e),Object.assign(s.originalParams,e)})),a("setTranslate",(()=>{s.params.effect===t&&i()})),a("setTransition",((e,a)=>{s.params.effect===t&&r(a)})),a("transitionEnd",(()=>{if(s.params.effect===t&&o){if(!d||!d().slideShadows)return;s.slides.each((e=>{s.$(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").remove()})),o()}})),a("virtualUpdate",(()=>{s.params.effect===t&&(s.slides.length||(c=!0),requestAnimationFrame((()=>{c&&s.slides&&s.slides.length&&(i(),c=!1)})))}))}function se(e,t){return e.transformEl?t.find(e.transformEl).css({"backface-visibility":"hidden","-webkit-backface-visibility":"hidden"}):t}function ae(e){let{swiper:t,duration:s,transformEl:a,allSlides:i}=e;const{slides:r,activeIndex:n,$wrapperEl:l}=t;if(t.params.virtualTranslate&&0!==s){let e,s=!1;e=i?a?r.find(a):r:a?r.eq(n).find(a):r.eq(n),e.transitionEnd((()=>{if(s)return;if(!t||t.destroyed)return;s=!0,t.animating=!1;const e=["webkitTransitionEnd","transitionend"];for(let t=0;t`),i.append(r)),r}Object.keys(j).forEach((e=>{Object.keys(j[e]).forEach((t=>{V.prototype[t]=j[e][t]}))})),V.use([function(e){let{swiper:t,on:s,emit:a}=e;const i=r();let n=null,l=null;const o=()=>{t&&!t.destroyed&&t.initialized&&(a("beforeResize"),a("resize"))},d=()=>{t&&!t.destroyed&&t.initialized&&a("orientationchange")};s("init",(()=>{t.params.resizeObserver&&void 0!==i.ResizeObserver?t&&!t.destroyed&&t.initialized&&(n=new ResizeObserver((e=>{l=i.requestAnimationFrame((()=>{const{width:s,height:a}=t;let i=s,r=a;e.forEach((e=>{let{contentBoxSize:s,contentRect:a,target:n}=e;n&&n!==t.el||(i=a?a.width:(s[0]||s).inlineSize,r=a?a.height:(s[0]||s).blockSize)})),i===s&&r===a||o()}))})),n.observe(t.el)):(i.addEventListener("resize",o),i.addEventListener("orientationchange",d))})),s("destroy",(()=>{l&&i.cancelAnimationFrame(l),n&&n.unobserve&&t.el&&(n.unobserve(t.el),n=null),i.removeEventListener("resize",o),i.removeEventListener("orientationchange",d)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=[],l=r(),o=function(e,t){void 0===t&&(t={});const s=new(l.MutationObserver||l.WebkitMutationObserver)((e=>{if(1===e.length)return void i("observerUpdate",e[0]);const t=function(){i("observerUpdate",e[0])};l.requestAnimationFrame?l.requestAnimationFrame(t):l.setTimeout(t,0)}));s.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),n.push(s)};s({observer:!1,observeParents:!1,observeSlideChildren:!1}),a("init",(()=>{if(t.params.observer){if(t.params.observeParents){const e=t.$el.parents();for(let t=0;t{n.forEach((e=>{e.disconnect()})),n.splice(0,n.length)}))}]);const re=[function(e){let t,{swiper:s,extendParams:a,on:i,emit:r}=e;function n(e,t){const a=s.params.virtual;if(a.cache&&s.virtual.cache[t])return s.virtual.cache[t];const i=a.renderSlide?d(a.renderSlide.call(s,e,t)):d(`
${e}
`);return i.attr("data-swiper-slide-index")||i.attr("data-swiper-slide-index",t),a.cache&&(s.virtual.cache[t]=i),i}function l(e){const{slidesPerView:t,slidesPerGroup:a,centeredSlides:i}=s.params,{addSlidesBefore:l,addSlidesAfter:o}=s.params.virtual,{from:d,to:c,slides:p,slidesGrid:u,offset:h}=s.virtual;s.params.cssMode||s.updateActiveIndex();const m=s.activeIndex||0;let f,g,v;f=s.rtlTranslate?"right":s.isHorizontal()?"left":"top",i?(g=Math.floor(t/2)+a+o,v=Math.floor(t/2)+a+l):(g=t+(a-1)+o,v=a+l);const w=Math.max((m||0)-v,0),b=Math.min((m||0)+g,p.length-1),x=(s.slidesGrid[w]||0)-(s.slidesGrid[0]||0);function y(){s.updateSlides(),s.updateProgress(),s.updateSlidesClasses(),s.lazy&&s.params.lazy.enabled&&s.lazy.load(),r("virtualUpdate")}if(Object.assign(s.virtual,{from:w,to:b,offset:x,slidesGrid:s.slidesGrid}),d===w&&c===b&&!e)return s.slidesGrid!==u&&x!==h&&s.slides.css(f,`${x}px`),s.updateProgress(),void r("virtualUpdate");if(s.params.virtual.renderExternal)return s.params.virtual.renderExternal.call(s,{offset:x,from:w,to:b,slides:function(){const e=[];for(let t=w;t<=b;t+=1)e.push(p[t]);return e}()}),void(s.params.virtual.renderExternalUpdate?y():r("virtualUpdate"));const E=[],C=[];if(e)s.$wrapperEl.find(`.${s.params.slideClass}`).remove();else for(let e=d;e<=c;e+=1)(eb)&&s.$wrapperEl.find(`.${s.params.slideClass}[data-swiper-slide-index="${e}"]`).remove();for(let t=0;t=w&&t<=b&&(void 0===c||e?C.push(t):(t>c&&C.push(t),t{s.$wrapperEl.append(n(p[e],e))})),E.sort(((e,t)=>t-e)).forEach((e=>{s.$wrapperEl.prepend(n(p[e],e))})),s.$wrapperEl.children(".swiper-slide").css(f,`${x}px`),y()}a({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}}),s.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]},i("beforeInit",(()=>{s.params.virtual.enabled&&(s.virtual.slides=s.params.virtual.slides,s.classNames.push(`${s.params.containerModifierClass}virtual`),s.params.watchSlidesProgress=!0,s.originalParams.watchSlidesProgress=!0,s.params.initialSlide||l())})),i("setTranslate",(()=>{s.params.virtual.enabled&&(s.params.cssMode&&!s._immediateVirtual?(clearTimeout(t),t=setTimeout((()=>{l()}),100)):l())})),i("init update resize",(()=>{s.params.virtual.enabled&&s.params.cssMode&&v(s.wrapperEl,"--swiper-virtual-size",`${s.virtualSize}px`)})),Object.assign(s.virtual,{appendSlide:function(e){if("object"==typeof e&&"length"in e)for(let t=0;t{const a=e[s],r=a.attr("data-swiper-slide-index");r&&a.attr("data-swiper-slide-index",parseInt(r,10)+i),t[parseInt(s,10)+i]=a})),s.virtual.cache=t}l(!0),s.slideTo(a,0)},removeSlide:function(e){if(null==e)return;let t=s.activeIndex;if(Array.isArray(e))for(let a=e.length-1;a>=0;a-=1)s.virtual.slides.splice(e[a],1),s.params.virtual.cache&&delete s.virtual.cache[e[a]],e[a]0&&0===t.$el.parents(`.${t.params.slideActiveClass}`).length)return;const a=t.$el,i=a[0].clientWidth,r=a[0].clientHeight,n=o.innerWidth,l=o.innerHeight,d=t.$el.offset();s&&(d.left-=t.$el[0].scrollLeft);const c=[[d.left,d.top],[d.left+i,d.top],[d.left,d.top+r],[d.left+i,d.top+r]];for(let t=0;t=0&&s[0]<=n&&s[1]>=0&&s[1]<=l){if(0===s[0]&&0===s[1])continue;e=!0}}if(!e)return}t.isHorizontal()?((d||c||p||u)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),((c||u)&&!s||(d||p)&&s)&&t.slideNext(),((d||p)&&!s||(c||u)&&s)&&t.slidePrev()):((d||c||h||m)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),(c||m)&&t.slideNext(),(d||h)&&t.slidePrev()),n("keyPress",i)}}function p(){t.keyboard.enabled||(d(l).on("keydown",c),t.keyboard.enabled=!0)}function u(){t.keyboard.enabled&&(d(l).off("keydown",c),t.keyboard.enabled=!1)}t.keyboard={enabled:!1},s({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}}),i("init",(()=>{t.params.keyboard.enabled&&p()})),i("destroy",(()=>{t.keyboard.enabled&&u()})),Object.assign(t.keyboard,{enable:p,disable:u})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();let l;s({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null}}),t.mousewheel={enabled:!1};let o,c=u();const h=[];function m(){t.enabled&&(t.mouseEntered=!0)}function f(){t.enabled&&(t.mouseEntered=!1)}function g(e){return!(t.params.mousewheel.thresholdDelta&&e.delta=6&&u()-c<60||(e.direction<0?t.isEnd&&!t.params.loop||t.animating||(t.slideNext(),i("scroll",e.raw)):t.isBeginning&&!t.params.loop||t.animating||(t.slidePrev(),i("scroll",e.raw)),c=(new n.Date).getTime(),!1)))}function v(e){let s=e,a=!0;if(!t.enabled)return;const r=t.params.mousewheel;t.params.cssMode&&s.preventDefault();let n=t.$el;if("container"!==t.params.mousewheel.eventsTarget&&(n=d(t.params.mousewheel.eventsTarget)),!t.mouseEntered&&!n[0].contains(s.target)&&!r.releaseOnEdges)return!0;s.originalEvent&&(s=s.originalEvent);let c=0;const m=t.rtlTranslate?-1:1,f=function(e){let t=0,s=0,a=0,i=0;return"detail"in e&&(s=e.detail),"wheelDelta"in e&&(s=-e.wheelDelta/120),"wheelDeltaY"in e&&(s=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=s,s=0),a=10*t,i=10*s,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(a=e.deltaX),e.shiftKey&&!a&&(a=i,i=0),(a||i)&&e.deltaMode&&(1===e.deltaMode?(a*=40,i*=40):(a*=800,i*=800)),a&&!t&&(t=a<1?-1:1),i&&!s&&(s=i<1?-1:1),{spinX:t,spinY:s,pixelX:a,pixelY:i}}(s);if(r.forceToAxis)if(t.isHorizontal()){if(!(Math.abs(f.pixelX)>Math.abs(f.pixelY)))return!0;c=-f.pixelX*m}else{if(!(Math.abs(f.pixelY)>Math.abs(f.pixelX)))return!0;c=-f.pixelY}else c=Math.abs(f.pixelX)>Math.abs(f.pixelY)?-f.pixelX*m:-f.pixelY;if(0===c)return!0;r.invert&&(c=-c);let v=t.getTranslate()+c*r.sensitivity;if(v>=t.minTranslate()&&(v=t.minTranslate()),v<=t.maxTranslate()&&(v=t.maxTranslate()),a=!!t.params.loop||!(v===t.minTranslate()||v===t.maxTranslate()),a&&t.params.nested&&s.stopPropagation(),t.params.freeMode&&t.params.freeMode.enabled){const e={time:u(),delta:Math.abs(c),direction:Math.sign(c)},a=o&&e.time=t.minTranslate()&&(n=t.minTranslate()),n<=t.maxTranslate()&&(n=t.maxTranslate()),t.setTransition(0),t.setTranslate(n),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses(),(!d&&t.isBeginning||!u&&t.isEnd)&&t.updateSlidesClasses(),t.params.freeMode.sticky){clearTimeout(l),l=void 0,h.length>=15&&h.shift();const s=h.length?h[h.length-1]:void 0,a=h[0];if(h.push(e),s&&(e.delta>s.delta||e.direction!==s.direction))h.splice(0);else if(h.length>=15&&e.time-a.time<500&&a.delta-e.delta>=1&&e.delta<=6){const s=c>0?.8:.2;o=e,h.splice(0),l=p((()=>{t.slideToClosest(t.params.speed,!0,void 0,s)}),0)}l||(l=p((()=>{o=e,h.splice(0),t.slideToClosest(t.params.speed,!0,void 0,.5)}),500))}if(a||i("scroll",s),t.params.autoplay&&t.params.autoplayDisableOnInteraction&&t.autoplay.stop(),n===t.minTranslate()||n===t.maxTranslate())return!0}}else{const s={time:u(),delta:Math.abs(c),direction:Math.sign(c),raw:e};h.length>=2&&h.shift();const a=h.length?h[h.length-1]:void 0;if(h.push(s),a?(s.direction!==a.direction||s.delta>a.delta||s.time>a.time+150)&&g(s):g(s),function(e){const s=t.params.mousewheel;if(e.direction<0){if(t.isEnd&&!t.params.loop&&s.releaseOnEdges)return!0}else if(t.isBeginning&&!t.params.loop&&s.releaseOnEdges)return!0;return!1}(s))return!0}return s.preventDefault?s.preventDefault():s.returnValue=!1,!1}function w(e){let s=t.$el;"container"!==t.params.mousewheel.eventsTarget&&(s=d(t.params.mousewheel.eventsTarget)),s[e]("mouseenter",m),s[e]("mouseleave",f),s[e]("wheel",v)}function b(){return t.params.cssMode?(t.wrapperEl.removeEventListener("wheel",v),!0):!t.mousewheel.enabled&&(w("on"),t.mousewheel.enabled=!0,!0)}function x(){return t.params.cssMode?(t.wrapperEl.addEventListener(event,v),!0):!!t.mousewheel.enabled&&(w("off"),t.mousewheel.enabled=!1,!0)}a("init",(()=>{!t.params.mousewheel.enabled&&t.params.cssMode&&x(),t.params.mousewheel.enabled&&b()})),a("destroy",(()=>{t.params.cssMode&&b(),t.mousewheel.enabled&&x()})),Object.assign(t.mousewheel,{enable:b,disable:x})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;function r(e){let s;return e&&(s=d(e),t.params.uniqueNavElements&&"string"==typeof e&&s.length>1&&1===t.$el.find(e).length&&(s=t.$el.find(e))),s}function n(e,s){const a=t.params.navigation;e&&e.length>0&&(e[s?"addClass":"removeClass"](a.disabledClass),e[0]&&"BUTTON"===e[0].tagName&&(e[0].disabled=s),t.params.watchOverflow&&t.enabled&&e[t.isLocked?"addClass":"removeClass"](a.lockClass))}function l(){if(t.params.loop)return;const{$nextEl:e,$prevEl:s}=t.navigation;n(s,t.isBeginning&&!t.params.rewind),n(e,t.isEnd&&!t.params.rewind)}function o(e){e.preventDefault(),(!t.isBeginning||t.params.loop||t.params.rewind)&&(t.slidePrev(),i("navigationPrev"))}function c(e){e.preventDefault(),(!t.isEnd||t.params.loop||t.params.rewind)&&(t.slideNext(),i("navigationNext"))}function p(){const e=t.params.navigation;if(t.params.navigation=F(t,t.originalParams.navigation,t.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!e.nextEl&&!e.prevEl)return;const s=r(e.nextEl),a=r(e.prevEl);s&&s.length>0&&s.on("click",c),a&&a.length>0&&a.on("click",o),Object.assign(t.navigation,{$nextEl:s,nextEl:s&&s[0],$prevEl:a,prevEl:a&&a[0]}),t.enabled||(s&&s.addClass(e.lockClass),a&&a.addClass(e.lockClass))}function u(){const{$nextEl:e,$prevEl:s}=t.navigation;e&&e.length&&(e.off("click",c),e.removeClass(t.params.navigation.disabledClass)),s&&s.length&&(s.off("click",o),s.removeClass(t.params.navigation.disabledClass))}s({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),t.navigation={nextEl:null,$nextEl:null,prevEl:null,$prevEl:null},a("init",(()=>{!1===t.params.navigation.enabled?h():(p(),l())})),a("toEdge fromEdge lock unlock",(()=>{l()})),a("destroy",(()=>{u()})),a("enable disable",(()=>{const{$nextEl:e,$prevEl:s}=t.navigation;e&&e[t.enabled?"removeClass":"addClass"](t.params.navigation.lockClass),s&&s[t.enabled?"removeClass":"addClass"](t.params.navigation.lockClass)})),a("click",((e,s)=>{const{$nextEl:a,$prevEl:r}=t.navigation,n=s.target;if(t.params.navigation.hideOnClick&&!d(n).is(r)&&!d(n).is(a)){if(t.pagination&&t.params.pagination&&t.params.pagination.clickable&&(t.pagination.el===n||t.pagination.el.contains(n)))return;let e;a?e=a.hasClass(t.params.navigation.hiddenClass):r&&(e=r.hasClass(t.params.navigation.hiddenClass)),i(!0===e?"navigationShow":"navigationHide"),a&&a.toggleClass(t.params.navigation.hiddenClass),r&&r.toggleClass(t.params.navigation.hiddenClass)}}));const h=()=>{t.$el.addClass(t.params.navigation.navigationDisabledClass),u()};Object.assign(t.navigation,{enable:()=>{t.$el.removeClass(t.params.navigation.navigationDisabledClass),p(),l()},disable:h,update:l,init:p,destroy:u})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const r="swiper-pagination";let n;s({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:e=>e,formatFractionTotal:e=>e,bulletClass:`${r}-bullet`,bulletActiveClass:`${r}-bullet-active`,modifierClass:`${r}-`,currentClass:`${r}-current`,totalClass:`${r}-total`,hiddenClass:`${r}-hidden`,progressbarFillClass:`${r}-progressbar-fill`,progressbarOppositeClass:`${r}-progressbar-opposite`,clickableClass:`${r}-clickable`,lockClass:`${r}-lock`,horizontalClass:`${r}-horizontal`,verticalClass:`${r}-vertical`,paginationDisabledClass:`${r}-disabled`}}),t.pagination={el:null,$el:null,bullets:[]};let l=0;function o(){return!t.params.pagination.el||!t.pagination.el||!t.pagination.$el||0===t.pagination.$el.length}function c(e,s){const{bulletActiveClass:a}=t.params.pagination;e[s]().addClass(`${a}-${s}`)[s]().addClass(`${a}-${s}-${s}`)}function p(){const e=t.rtl,s=t.params.pagination;if(o())return;const a=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,r=t.pagination.$el;let p;const u=t.params.loop?Math.ceil((a-2*t.loopedSlides)/t.params.slidesPerGroup):t.snapGrid.length;if(t.params.loop?(p=Math.ceil((t.activeIndex-t.loopedSlides)/t.params.slidesPerGroup),p>a-1-2*t.loopedSlides&&(p-=a-2*t.loopedSlides),p>u-1&&(p-=u),p<0&&"bullets"!==t.params.paginationType&&(p=u+p)):p=void 0!==t.snapIndex?t.snapIndex:t.activeIndex||0,"bullets"===s.type&&t.pagination.bullets&&t.pagination.bullets.length>0){const a=t.pagination.bullets;let i,o,u;if(s.dynamicBullets&&(n=a.eq(0)[t.isHorizontal()?"outerWidth":"outerHeight"](!0),r.css(t.isHorizontal()?"width":"height",n*(s.dynamicMainBullets+4)+"px"),s.dynamicMainBullets>1&&void 0!==t.previousIndex&&(l+=p-(t.previousIndex-t.loopedSlides||0),l>s.dynamicMainBullets-1?l=s.dynamicMainBullets-1:l<0&&(l=0)),i=Math.max(p-l,0),o=i+(Math.min(a.length,s.dynamicMainBullets)-1),u=(o+i)/2),a.removeClass(["","-next","-next-next","-prev","-prev-prev","-main"].map((e=>`${s.bulletActiveClass}${e}`)).join(" ")),r.length>1)a.each((e=>{const t=d(e),a=t.index();a===p&&t.addClass(s.bulletActiveClass),s.dynamicBullets&&(a>=i&&a<=o&&t.addClass(`${s.bulletActiveClass}-main`),a===i&&c(t,"prev"),a===o&&c(t,"next"))}));else{const e=a.eq(p),r=e.index();if(e.addClass(s.bulletActiveClass),s.dynamicBullets){const e=a.eq(i),n=a.eq(o);for(let e=i;e<=o;e+=1)a.eq(e).addClass(`${s.bulletActiveClass}-main`);if(t.params.loop)if(r>=a.length){for(let e=s.dynamicMainBullets;e>=0;e-=1)a.eq(a.length-e).addClass(`${s.bulletActiveClass}-main`);a.eq(a.length-s.dynamicMainBullets-1).addClass(`${s.bulletActiveClass}-prev`)}else c(e,"prev"),c(n,"next");else c(e,"prev"),c(n,"next")}}if(s.dynamicBullets){const i=Math.min(a.length,s.dynamicMainBullets+4),r=(n*i-n)/2-u*n,l=e?"right":"left";a.css(t.isHorizontal()?l:"top",`${r}px`)}}if("fraction"===s.type&&(r.find(U(s.currentClass)).text(s.formatFractionCurrent(p+1)),r.find(U(s.totalClass)).text(s.formatFractionTotal(u))),"progressbar"===s.type){let e;e=s.progressbarOpposite?t.isHorizontal()?"vertical":"horizontal":t.isHorizontal()?"horizontal":"vertical";const a=(p+1)/u;let i=1,n=1;"horizontal"===e?i=a:n=a,r.find(U(s.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${i}) scaleY(${n})`).transition(t.params.speed)}"custom"===s.type&&s.renderCustom?(r.html(s.renderCustom(t,p+1,u)),i("paginationRender",r[0])):i("paginationUpdate",r[0]),t.params.watchOverflow&&t.enabled&&r[t.isLocked?"addClass":"removeClass"](s.lockClass)}function u(){const e=t.params.pagination;if(o())return;const s=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,a=t.pagination.$el;let r="";if("bullets"===e.type){let i=t.params.loop?Math.ceil((s-2*t.loopedSlides)/t.params.slidesPerGroup):t.snapGrid.length;t.params.freeMode&&t.params.freeMode.enabled&&!t.params.loop&&i>s&&(i=s);for(let s=0;s`;a.html(r),t.pagination.bullets=a.find(U(e.bulletClass))}"fraction"===e.type&&(r=e.renderFraction?e.renderFraction.call(t,e.currentClass,e.totalClass):` / `,a.html(r)),"progressbar"===e.type&&(r=e.renderProgressbar?e.renderProgressbar.call(t,e.progressbarFillClass):``,a.html(r)),"custom"!==e.type&&i("paginationRender",t.pagination.$el[0])}function h(){t.params.pagination=F(t,t.originalParams.pagination,t.params.pagination,{el:"swiper-pagination"});const e=t.params.pagination;if(!e.el)return;let s=d(e.el);0!==s.length&&(t.params.uniqueNavElements&&"string"==typeof e.el&&s.length>1&&(s=t.$el.find(e.el),s.length>1&&(s=s.filter((e=>d(e).parents(".swiper")[0]===t.el)))),"bullets"===e.type&&e.clickable&&s.addClass(e.clickableClass),s.addClass(e.modifierClass+e.type),s.addClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),"bullets"===e.type&&e.dynamicBullets&&(s.addClass(`${e.modifierClass}${e.type}-dynamic`),l=0,e.dynamicMainBullets<1&&(e.dynamicMainBullets=1)),"progressbar"===e.type&&e.progressbarOpposite&&s.addClass(e.progressbarOppositeClass),e.clickable&&s.on("click",U(e.bulletClass),(function(e){e.preventDefault();let s=d(this).index()*t.params.slidesPerGroup;t.params.loop&&(s+=t.loopedSlides),t.slideTo(s)})),Object.assign(t.pagination,{$el:s,el:s[0]}),t.enabled||s.addClass(e.lockClass))}function m(){const e=t.params.pagination;if(o())return;const s=t.pagination.$el;s.removeClass(e.hiddenClass),s.removeClass(e.modifierClass+e.type),s.removeClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),t.pagination.bullets&&t.pagination.bullets.removeClass&&t.pagination.bullets.removeClass(e.bulletActiveClass),e.clickable&&s.off("click",U(e.bulletClass))}a("init",(()=>{!1===t.params.pagination.enabled?f():(h(),u(),p())})),a("activeIndexChange",(()=>{(t.params.loop||void 0===t.snapIndex)&&p()})),a("snapIndexChange",(()=>{t.params.loop||p()})),a("slidesLengthChange",(()=>{t.params.loop&&(u(),p())})),a("snapGridLengthChange",(()=>{t.params.loop||(u(),p())})),a("destroy",(()=>{m()})),a("enable disable",(()=>{const{$el:e}=t.pagination;e&&e[t.enabled?"removeClass":"addClass"](t.params.pagination.lockClass)})),a("lock unlock",(()=>{p()})),a("click",((e,s)=>{const a=s.target,{$el:r}=t.pagination;if(t.params.pagination.el&&t.params.pagination.hideOnClick&&r&&r.length>0&&!d(a).hasClass(t.params.pagination.bulletClass)){if(t.navigation&&(t.navigation.nextEl&&a===t.navigation.nextEl||t.navigation.prevEl&&a===t.navigation.prevEl))return;const e=r.hasClass(t.params.pagination.hiddenClass);i(!0===e?"paginationShow":"paginationHide"),r.toggleClass(t.params.pagination.hiddenClass)}}));const f=()=>{t.$el.addClass(t.params.pagination.paginationDisabledClass),t.pagination.$el&&t.pagination.$el.addClass(t.params.pagination.paginationDisabledClass),m()};Object.assign(t.pagination,{enable:()=>{t.$el.removeClass(t.params.pagination.paginationDisabledClass),t.pagination.$el&&t.pagination.$el.removeClass(t.params.pagination.paginationDisabledClass),h(),u(),p()},disable:f,render:u,update:p,init:h,destroy:m})},function(e){let{swiper:t,extendParams:s,on:i,emit:r}=e;const n=a();let l,o,c,u,h=!1,m=null,f=null;function g(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e,rtlTranslate:s,progress:a}=t,{$dragEl:i,$el:r}=e,n=t.params.scrollbar;let l=o,d=(c-o)*a;s?(d=-d,d>0?(l=o-d,d=0):-d+o>c&&(l=c+d)):d<0?(l=o+d,d=0):d+o>c&&(l=c-d),t.isHorizontal()?(i.transform(`translate3d(${d}px, 0, 0)`),i[0].style.width=`${l}px`):(i.transform(`translate3d(0px, ${d}px, 0)`),i[0].style.height=`${l}px`),n.hide&&(clearTimeout(m),r[0].style.opacity=1,m=setTimeout((()=>{r[0].style.opacity=0,r.transition(400)}),1e3))}function v(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e}=t,{$dragEl:s,$el:a}=e;s[0].style.width="",s[0].style.height="",c=t.isHorizontal()?a[0].offsetWidth:a[0].offsetHeight,u=t.size/(t.virtualSize+t.params.slidesOffsetBefore-(t.params.centeredSlides?t.snapGrid[0]:0)),o="auto"===t.params.scrollbar.dragSize?c*u:parseInt(t.params.scrollbar.dragSize,10),t.isHorizontal()?s[0].style.width=`${o}px`:s[0].style.height=`${o}px`,a[0].style.display=u>=1?"none":"",t.params.scrollbar.hide&&(a[0].style.opacity=0),t.params.watchOverflow&&t.enabled&&e.$el[t.isLocked?"addClass":"removeClass"](t.params.scrollbar.lockClass)}function w(e){return t.isHorizontal()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientX:e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientY:e.clientY}function b(e){const{scrollbar:s,rtlTranslate:a}=t,{$el:i}=s;let r;r=(w(e)-i.offset()[t.isHorizontal()?"left":"top"]-(null!==l?l:o/2))/(c-o),r=Math.max(Math.min(r,1),0),a&&(r=1-r);const n=t.minTranslate()+(t.maxTranslate()-t.minTranslate())*r;t.updateProgress(n),t.setTranslate(n),t.updateActiveIndex(),t.updateSlidesClasses()}function x(e){const s=t.params.scrollbar,{scrollbar:a,$wrapperEl:i}=t,{$el:n,$dragEl:o}=a;h=!0,l=e.target===o[0]||e.target===o?w(e)-e.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),i.transition(100),o.transition(100),b(e),clearTimeout(f),n.transition(0),s.hide&&n.css("opacity",1),t.params.cssMode&&t.$wrapperEl.css("scroll-snap-type","none"),r("scrollbarDragStart",e)}function y(e){const{scrollbar:s,$wrapperEl:a}=t,{$el:i,$dragEl:n}=s;h&&(e.preventDefault?e.preventDefault():e.returnValue=!1,b(e),a.transition(0),i.transition(0),n.transition(0),r("scrollbarDragMove",e))}function E(e){const s=t.params.scrollbar,{scrollbar:a,$wrapperEl:i}=t,{$el:n}=a;h&&(h=!1,t.params.cssMode&&(t.$wrapperEl.css("scroll-snap-type",""),i.transition("")),s.hide&&(clearTimeout(f),f=p((()=>{n.css("opacity",0),n.transition(400)}),1e3)),r("scrollbarDragEnd",e),s.snapOnRelease&&t.slideToClosest())}function C(e){const{scrollbar:s,touchEventsTouch:a,touchEventsDesktop:i,params:r,support:l}=t,o=s.$el;if(!o)return;const d=o[0],c=!(!l.passiveListener||!r.passiveListeners)&&{passive:!1,capture:!1},p=!(!l.passiveListener||!r.passiveListeners)&&{passive:!0,capture:!1};if(!d)return;const u="on"===e?"addEventListener":"removeEventListener";l.touch?(d[u](a.start,x,c),d[u](a.move,y,c),d[u](a.end,E,p)):(d[u](i.start,x,c),n[u](i.move,y,c),n[u](i.end,E,p))}function T(){const{scrollbar:e,$el:s}=t;t.params.scrollbar=F(t,t.originalParams.scrollbar,t.params.scrollbar,{el:"swiper-scrollbar"});const a=t.params.scrollbar;if(!a.el)return;let i=d(a.el);t.params.uniqueNavElements&&"string"==typeof a.el&&i.length>1&&1===s.find(a.el).length&&(i=s.find(a.el)),i.addClass(t.isHorizontal()?a.horizontalClass:a.verticalClass);let r=i.find(`.${t.params.scrollbar.dragClass}`);0===r.length&&(r=d(`
`),i.append(r)),Object.assign(e,{$el:i,el:i[0],$dragEl:r,dragEl:r[0]}),a.draggable&&t.params.scrollbar.el&&t.scrollbar.el&&C("on"),i&&i[t.enabled?"removeClass":"addClass"](t.params.scrollbar.lockClass)}function $(){const e=t.params.scrollbar,s=t.scrollbar.$el;s&&s.removeClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),t.params.scrollbar.el&&t.scrollbar.el&&C("off")}s({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag",scrollbarDisabledClass:"swiper-scrollbar-disabled",horizontalClass:"swiper-scrollbar-horizontal",verticalClass:"swiper-scrollbar-vertical"}}),t.scrollbar={el:null,dragEl:null,$el:null,$dragEl:null},i("init",(()=>{!1===t.params.scrollbar.enabled?S():(T(),v(),g())})),i("update resize observerUpdate lock unlock",(()=>{v()})),i("setTranslate",(()=>{g()})),i("setTransition",((e,s)=>{!function(e){t.params.scrollbar.el&&t.scrollbar.el&&t.scrollbar.$dragEl.transition(e)}(s)})),i("enable disable",(()=>{const{$el:e}=t.scrollbar;e&&e[t.enabled?"removeClass":"addClass"](t.params.scrollbar.lockClass)})),i("destroy",(()=>{$()}));const S=()=>{t.$el.addClass(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.$el&&t.scrollbar.$el.addClass(t.params.scrollbar.scrollbarDisabledClass),$()};Object.assign(t.scrollbar,{enable:()=>{t.$el.removeClass(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.$el&&t.scrollbar.$el.removeClass(t.params.scrollbar.scrollbarDisabledClass),T(),v(),g()},disable:S,updateSize:v,setTranslate:g,init:T,destroy:$})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({parallax:{enabled:!1}});const i=(e,s)=>{const{rtl:a}=t,i=d(e),r=a?-1:1,n=i.attr("data-swiper-parallax")||"0";let l=i.attr("data-swiper-parallax-x"),o=i.attr("data-swiper-parallax-y");const c=i.attr("data-swiper-parallax-scale"),p=i.attr("data-swiper-parallax-opacity");if(l||o?(l=l||"0",o=o||"0"):t.isHorizontal()?(l=n,o="0"):(o=n,l="0"),l=l.indexOf("%")>=0?parseInt(l,10)*s*r+"%":l*s*r+"px",o=o.indexOf("%")>=0?parseInt(o,10)*s+"%":o*s+"px",null!=p){const e=p-(p-1)*(1-Math.abs(s));i[0].style.opacity=e}if(null==c)i.transform(`translate3d(${l}, ${o}, 0px)`);else{const e=c-(c-1)*(1-Math.abs(s));i.transform(`translate3d(${l}, ${o}, 0px) scale(${e})`)}},r=()=>{const{$el:e,slides:s,progress:a,snapGrid:r}=t;e.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((e=>{i(e,a)})),s.each(((e,s)=>{let n=e.progress;t.params.slidesPerGroup>1&&"auto"!==t.params.slidesPerView&&(n+=Math.ceil(s/2)-a*(r.length-1)),n=Math.min(Math.max(n,-1),1),d(e).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((e=>{i(e,n)}))}))};a("beforeInit",(()=>{t.params.parallax.enabled&&(t.params.watchSlidesProgress=!0,t.originalParams.watchSlidesProgress=!0)})),a("init",(()=>{t.params.parallax.enabled&&r()})),a("setTranslate",(()=>{t.params.parallax.enabled&&r()})),a("setTransition",((e,s)=>{t.params.parallax.enabled&&function(e){void 0===e&&(e=t.params.speed);const{$el:s}=t;s.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((t=>{const s=d(t);let a=parseInt(s.attr("data-swiper-parallax-duration"),10)||e;0===e&&(a=0),s.transition(a)}))}(s)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();s({zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),t.zoom={enabled:!1};let l,o,c,p=1,u=!1;const m={$slideEl:void 0,slideWidth:void 0,slideHeight:void 0,$imageEl:void 0,$imageWrapEl:void 0,maxRatio:3},f={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},g={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let v=1;function w(e){if(e.targetTouches.length<2)return 1;const t=e.targetTouches[0].pageX,s=e.targetTouches[0].pageY,a=e.targetTouches[1].pageX,i=e.targetTouches[1].pageY;return Math.sqrt((a-t)**2+(i-s)**2)}function b(e){const s=t.support,a=t.params.zoom;if(o=!1,c=!1,!s.gestures){if("touchstart"!==e.type||"touchstart"===e.type&&e.targetTouches.length<2)return;o=!0,m.scaleStart=w(e)}m.$slideEl&&m.$slideEl.length||(m.$slideEl=d(e.target).closest(`.${t.params.slideClass}`),0===m.$slideEl.length&&(m.$slideEl=t.slides.eq(t.activeIndex)),m.$imageEl=m.$slideEl.find(`.${a.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),m.$imageWrapEl=m.$imageEl.parent(`.${a.containerClass}`),m.maxRatio=m.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,0!==m.$imageWrapEl.length)?(m.$imageEl&&m.$imageEl.transition(0),u=!0):m.$imageEl=void 0}function x(e){const s=t.support,a=t.params.zoom,i=t.zoom;if(!s.gestures){if("touchmove"!==e.type||"touchmove"===e.type&&e.targetTouches.length<2)return;c=!0,m.scaleMove=w(e)}m.$imageEl&&0!==m.$imageEl.length?(s.gestures?i.scale=e.scale*p:i.scale=m.scaleMove/m.scaleStart*p,i.scale>m.maxRatio&&(i.scale=m.maxRatio-1+(i.scale-m.maxRatio+1)**.5),i.scalef.touchesStart.x))return void(f.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(f.minY)===Math.floor(f.startY)&&f.touchesCurrent.yf.touchesStart.y))return void(f.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),f.isMoved=!0,f.currentX=f.touchesCurrent.x-f.touchesStart.x+f.startX,f.currentY=f.touchesCurrent.y-f.touchesStart.y+f.startY,f.currentXf.maxX&&(f.currentX=f.maxX-1+(f.currentX-f.maxX+1)**.8),f.currentYf.maxY&&(f.currentY=f.maxY-1+(f.currentY-f.maxY+1)**.8),g.prevPositionX||(g.prevPositionX=f.touchesCurrent.x),g.prevPositionY||(g.prevPositionY=f.touchesCurrent.y),g.prevTime||(g.prevTime=Date.now()),g.x=(f.touchesCurrent.x-g.prevPositionX)/(Date.now()-g.prevTime)/2,g.y=(f.touchesCurrent.y-g.prevPositionY)/(Date.now()-g.prevTime)/2,Math.abs(f.touchesCurrent.x-g.prevPositionX)<2&&(g.x=0),Math.abs(f.touchesCurrent.y-g.prevPositionY)<2&&(g.y=0),g.prevPositionX=f.touchesCurrent.x,g.prevPositionY=f.touchesCurrent.y,g.prevTime=Date.now(),m.$imageWrapEl.transform(`translate3d(${f.currentX}px, ${f.currentY}px,0)`)}}function C(){const e=t.zoom;m.$slideEl&&t.previousIndex!==t.activeIndex&&(m.$imageEl&&m.$imageEl.transform("translate3d(0,0,0) scale(1)"),m.$imageWrapEl&&m.$imageWrapEl.transform("translate3d(0,0,0)"),e.scale=1,p=1,m.$slideEl=void 0,m.$imageEl=void 0,m.$imageWrapEl=void 0)}function T(e){const s=t.zoom,a=t.params.zoom;if(m.$slideEl||(e&&e.target&&(m.$slideEl=d(e.target).closest(`.${t.params.slideClass}`)),m.$slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.$slideEl=t.$wrapperEl.children(`.${t.params.slideActiveClass}`):m.$slideEl=t.slides.eq(t.activeIndex)),m.$imageEl=m.$slideEl.find(`.${a.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),m.$imageWrapEl=m.$imageEl.parent(`.${a.containerClass}`)),!m.$imageEl||0===m.$imageEl.length||!m.$imageWrapEl||0===m.$imageWrapEl.length)return;let i,r,l,o,c,u,h,g,v,w,b,x,y,E,C,T,$,S;t.params.cssMode&&(t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.touchAction="none"),m.$slideEl.addClass(`${a.zoomedSlideClass}`),void 0===f.touchesStart.x&&e?(i="touchend"===e.type?e.changedTouches[0].pageX:e.pageX,r="touchend"===e.type?e.changedTouches[0].pageY:e.pageY):(i=f.touchesStart.x,r=f.touchesStart.y),s.scale=m.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,p=m.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,e?($=m.$slideEl[0].offsetWidth,S=m.$slideEl[0].offsetHeight,l=m.$slideEl.offset().left+n.scrollX,o=m.$slideEl.offset().top+n.scrollY,c=l+$/2-i,u=o+S/2-r,v=m.$imageEl[0].offsetWidth,w=m.$imageEl[0].offsetHeight,b=v*s.scale,x=w*s.scale,y=Math.min($/2-b/2,0),E=Math.min(S/2-x/2,0),C=-y,T=-E,h=c*s.scale,g=u*s.scale,hC&&(h=C),gT&&(g=T)):(h=0,g=0),m.$imageWrapEl.transition(300).transform(`translate3d(${h}px, ${g}px,0)`),m.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${s.scale})`)}function $(){const e=t.zoom,s=t.params.zoom;m.$slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.$slideEl=t.$wrapperEl.children(`.${t.params.slideActiveClass}`):m.$slideEl=t.slides.eq(t.activeIndex),m.$imageEl=m.$slideEl.find(`.${s.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),m.$imageWrapEl=m.$imageEl.parent(`.${s.containerClass}`)),m.$imageEl&&0!==m.$imageEl.length&&m.$imageWrapEl&&0!==m.$imageWrapEl.length&&(t.params.cssMode&&(t.wrapperEl.style.overflow="",t.wrapperEl.style.touchAction=""),e.scale=1,p=1,m.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),m.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),m.$slideEl.removeClass(`${s.zoomedSlideClass}`),m.$slideEl=void 0)}function S(e){const s=t.zoom;s.scale&&1!==s.scale?$():T(e)}function M(){const e=t.support;return{passiveListener:!("touchstart"!==t.touchEvents.start||!e.passiveListener||!t.params.passiveListeners)&&{passive:!0,capture:!1},activeListenerWithCapture:!e.passiveListener||{passive:!1,capture:!0}}}function P(){return`.${t.params.slideClass}`}function k(e){const{passiveListener:s}=M(),a=P();t.$wrapperEl[e]("gesturestart",a,b,s),t.$wrapperEl[e]("gesturechange",a,x,s),t.$wrapperEl[e]("gestureend",a,y,s)}function z(){l||(l=!0,k("on"))}function L(){l&&(l=!1,k("off"))}function O(){const e=t.zoom;if(e.enabled)return;e.enabled=!0;const s=t.support,{passiveListener:a,activeListenerWithCapture:i}=M(),r=P();s.gestures?(t.$wrapperEl.on(t.touchEvents.start,z,a),t.$wrapperEl.on(t.touchEvents.end,L,a)):"touchstart"===t.touchEvents.start&&(t.$wrapperEl.on(t.touchEvents.start,r,b,a),t.$wrapperEl.on(t.touchEvents.move,r,x,i),t.$wrapperEl.on(t.touchEvents.end,r,y,a),t.touchEvents.cancel&&t.$wrapperEl.on(t.touchEvents.cancel,r,y,a)),t.$wrapperEl.on(t.touchEvents.move,`.${t.params.zoom.containerClass}`,E,i)}function I(){const e=t.zoom;if(!e.enabled)return;const s=t.support;e.enabled=!1;const{passiveListener:a,activeListenerWithCapture:i}=M(),r=P();s.gestures?(t.$wrapperEl.off(t.touchEvents.start,z,a),t.$wrapperEl.off(t.touchEvents.end,L,a)):"touchstart"===t.touchEvents.start&&(t.$wrapperEl.off(t.touchEvents.start,r,b,a),t.$wrapperEl.off(t.touchEvents.move,r,x,i),t.$wrapperEl.off(t.touchEvents.end,r,y,a),t.touchEvents.cancel&&t.$wrapperEl.off(t.touchEvents.cancel,r,y,a)),t.$wrapperEl.off(t.touchEvents.move,`.${t.params.zoom.containerClass}`,E,i)}Object.defineProperty(t.zoom,"scale",{get:()=>v,set(e){if(v!==e){const t=m.$imageEl?m.$imageEl[0]:void 0,s=m.$slideEl?m.$slideEl[0]:void 0;i("zoomChange",e,t,s)}v=e}}),a("init",(()=>{t.params.zoom.enabled&&O()})),a("destroy",(()=>{I()})),a("touchStart",((e,s)=>{t.zoom.enabled&&function(e){const s=t.device;m.$imageEl&&0!==m.$imageEl.length&&(f.isTouched||(s.android&&e.cancelable&&e.preventDefault(),f.isTouched=!0,f.touchesStart.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,f.touchesStart.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY))}(s)})),a("touchEnd",((e,s)=>{t.zoom.enabled&&function(){const e=t.zoom;if(!m.$imageEl||0===m.$imageEl.length)return;if(!f.isTouched||!f.isMoved)return f.isTouched=!1,void(f.isMoved=!1);f.isTouched=!1,f.isMoved=!1;let s=300,a=300;const i=g.x*s,r=f.currentX+i,n=g.y*a,l=f.currentY+n;0!==g.x&&(s=Math.abs((r-f.currentX)/g.x)),0!==g.y&&(a=Math.abs((l-f.currentY)/g.y));const o=Math.max(s,a);f.currentX=r,f.currentY=l;const d=f.width*e.scale,c=f.height*e.scale;f.minX=Math.min(m.slideWidth/2-d/2,0),f.maxX=-f.minX,f.minY=Math.min(m.slideHeight/2-c/2,0),f.maxY=-f.minY,f.currentX=Math.max(Math.min(f.currentX,f.maxX),f.minX),f.currentY=Math.max(Math.min(f.currentY,f.maxY),f.minY),m.$imageWrapEl.transition(o).transform(`translate3d(${f.currentX}px, ${f.currentY}px,0)`)}()})),a("doubleTap",((e,s)=>{!t.animating&&t.params.zoom.enabled&&t.zoom.enabled&&t.params.zoom.toggle&&S(s)})),a("transitionEnd",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&C()})),a("slideChange",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&t.params.cssMode&&C()})),Object.assign(t.zoom,{enable:O,disable:I,in:T,out:$,toggle:S})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;s({lazy:{checkInView:!1,enabled:!1,loadPrevNext:!1,loadPrevNextAmount:1,loadOnTransitionStart:!1,scrollingElement:"",elementClass:"swiper-lazy",loadingClass:"swiper-lazy-loading",loadedClass:"swiper-lazy-loaded",preloaderClass:"swiper-lazy-preloader"}}),t.lazy={};let n=!1,l=!1;function o(e,s){void 0===s&&(s=!0);const a=t.params.lazy;if(void 0===e)return;if(0===t.slides.length)return;const r=t.virtual&&t.params.virtual.enabled?t.$wrapperEl.children(`.${t.params.slideClass}[data-swiper-slide-index="${e}"]`):t.slides.eq(e),n=r.find(`.${a.elementClass}:not(.${a.loadedClass}):not(.${a.loadingClass})`);!r.hasClass(a.elementClass)||r.hasClass(a.loadedClass)||r.hasClass(a.loadingClass)||n.push(r[0]),0!==n.length&&n.each((e=>{const n=d(e);n.addClass(a.loadingClass);const l=n.attr("data-background"),c=n.attr("data-src"),p=n.attr("data-srcset"),u=n.attr("data-sizes"),h=n.parent("picture");t.loadImage(n[0],c||l,p,u,!1,(()=>{if(null!=t&&t&&(!t||t.params)&&!t.destroyed){if(l?(n.css("background-image",`url("${l}")`),n.removeAttr("data-background")):(p&&(n.attr("srcset",p),n.removeAttr("data-srcset")),u&&(n.attr("sizes",u),n.removeAttr("data-sizes")),h.length&&h.children("source").each((e=>{const t=d(e);t.attr("data-srcset")&&(t.attr("srcset",t.attr("data-srcset")),t.removeAttr("data-srcset"))})),c&&(n.attr("src",c),n.removeAttr("data-src"))),n.addClass(a.loadedClass).removeClass(a.loadingClass),r.find(`.${a.preloaderClass}`).remove(),t.params.loop&&s){const e=r.attr("data-swiper-slide-index");if(r.hasClass(t.params.slideDuplicateClass)){o(t.$wrapperEl.children(`[data-swiper-slide-index="${e}"]:not(.${t.params.slideDuplicateClass})`).index(),!1)}else{o(t.$wrapperEl.children(`.${t.params.slideDuplicateClass}[data-swiper-slide-index="${e}"]`).index(),!1)}}i("lazyImageReady",r[0],n[0]),t.params.autoHeight&&t.updateAutoHeight()}})),i("lazyImageLoad",r[0],n[0])}))}function c(){const{$wrapperEl:e,params:s,slides:a,activeIndex:i}=t,r=t.virtual&&s.virtual.enabled,n=s.lazy;let c=s.slidesPerView;function p(t){if(r){if(e.children(`.${s.slideClass}[data-swiper-slide-index="${t}"]`).length)return!0}else if(a[t])return!0;return!1}function u(e){return r?d(e).attr("data-swiper-slide-index"):d(e).index()}if("auto"===c&&(c=0),l||(l=!0),t.params.watchSlidesProgress)e.children(`.${s.slideVisibleClass}`).each((e=>{o(r?d(e).attr("data-swiper-slide-index"):d(e).index())}));else if(c>1)for(let e=i;e1||n.loadPrevNextAmount&&n.loadPrevNextAmount>1){const e=n.loadPrevNextAmount,t=Math.ceil(c),s=Math.min(i+t+Math.max(e,t),a.length),r=Math.max(i-Math.max(t,e),0);for(let e=i+t;e0&&o(u(t));const a=e.children(`.${s.slidePrevClass}`);a.length>0&&o(u(a))}}function p(){const e=r();if(!t||t.destroyed)return;const s=t.params.lazy.scrollingElement?d(t.params.lazy.scrollingElement):d(e),a=s[0]===e,i=a?e.innerWidth:s[0].offsetWidth,l=a?e.innerHeight:s[0].offsetHeight,o=t.$el.offset(),{rtlTranslate:u}=t;let h=!1;u&&(o.left-=t.$el[0].scrollLeft);const m=[[o.left,o.top],[o.left+t.width,o.top],[o.left,o.top+t.height],[o.left+t.width,o.top+t.height]];for(let e=0;e=0&&t[0]<=i&&t[1]>=0&&t[1]<=l){if(0===t[0]&&0===t[1])continue;h=!0}}const f=!("touchstart"!==t.touchEvents.start||!t.support.passiveListener||!t.params.passiveListeners)&&{passive:!0,capture:!1};h?(c(),s.off("scroll",p,f)):n||(n=!0,s.on("scroll",p,f))}a("beforeInit",(()=>{t.params.lazy.enabled&&t.params.preloadImages&&(t.params.preloadImages=!1)})),a("init",(()=>{t.params.lazy.enabled&&(t.params.lazy.checkInView?p():c())})),a("scroll",(()=>{t.params.freeMode&&t.params.freeMode.enabled&&!t.params.freeMode.sticky&&c()})),a("scrollbarDragMove resize _freeModeNoMomentumRelease",(()=>{t.params.lazy.enabled&&(t.params.lazy.checkInView?p():c())})),a("transitionStart",(()=>{t.params.lazy.enabled&&(t.params.lazy.loadOnTransitionStart||!t.params.lazy.loadOnTransitionStart&&!l)&&(t.params.lazy.checkInView?p():c())})),a("transitionEnd",(()=>{t.params.lazy.enabled&&!t.params.lazy.loadOnTransitionStart&&(t.params.lazy.checkInView?p():c())})),a("slideChange",(()=>{const{lazy:e,cssMode:s,watchSlidesProgress:a,touchReleaseOnEdges:i,resistanceRatio:r}=t.params;e.enabled&&(s||a&&(i||0===r))&&c()})),a("destroy",(()=>{t.$el&&t.$el.find(`.${t.params.lazy.loadingClass}`).removeClass(t.params.lazy.loadingClass)})),Object.assign(t.lazy,{load:c,loadInSlide:o})},function(e){let{swiper:t,extendParams:s,on:a}=e;function i(e,t){const s=function(){let e,t,s;return(a,i)=>{for(t=-1,e=a.length;e-t>1;)s=e+t>>1,a[s]<=i?t=s:e=s;return e}}();let a,i;return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(i=s(this.x,e),a=i-1,(e-this.x[a])*(this.y[i]-this.y[a])/(this.x[i]-this.x[a])+this.y[a]):0},this}function r(){t.controller.control&&t.controller.spline&&(t.controller.spline=void 0,delete t.controller.spline)}s({controller:{control:void 0,inverse:!1,by:"slide"}}),t.controller={control:void 0},a("beforeInit",(()=>{t.controller.control=t.params.controller.control})),a("update",(()=>{r()})),a("resize",(()=>{r()})),a("observerUpdate",(()=>{r()})),a("setTranslate",((e,s,a)=>{t.controller.control&&t.controller.setTranslate(s,a)})),a("setTransition",((e,s,a)=>{t.controller.control&&t.controller.setTransition(s,a)})),Object.assign(t.controller,{setTranslate:function(e,s){const a=t.controller.control;let r,n;const l=t.constructor;function o(e){const s=t.rtlTranslate?-t.translate:t.translate;"slide"===t.params.controller.by&&(!function(e){t.controller.spline||(t.controller.spline=t.params.loop?new i(t.slidesGrid,e.slidesGrid):new i(t.snapGrid,e.snapGrid))}(e),n=-t.controller.spline.interpolate(-s)),n&&"container"!==t.params.controller.by||(r=(e.maxTranslate()-e.minTranslate())/(t.maxTranslate()-t.minTranslate()),n=(s-t.minTranslate())*r+e.minTranslate()),t.params.controller.inverse&&(n=e.maxTranslate()-n),e.updateProgress(n),e.setTranslate(n,t),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(a))for(let e=0;e{s.updateAutoHeight()})),s.$wrapperEl.transitionEnd((()=>{i&&(s.params.loop&&"slide"===t.params.controller.by&&s.loopFix(),s.transitionEnd())})))}if(Array.isArray(i))for(r=0;r{n(e),"BUTTON"!==e[0].tagName&&(o(e,"button"),e.on("keydown",m)),p(e,s),function(e,t){e.attr("aria-controls",t)}(e,t)},w=()=>{t.a11y.clicked=!0},b=()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{t.destroyed||(t.a11y.clicked=!1)}))}))},x=e=>{if(t.a11y.clicked)return;const s=e.target.closest(`.${t.params.slideClass}`);if(!s||!t.slides.includes(s))return;const a=t.slides.indexOf(s)===t.activeIndex,i=t.params.watchSlidesProgress&&t.visibleSlides&&t.visibleSlides.includes(s);a||i||e.sourceCapabilities&&e.sourceCapabilities.firesTouchEvents||(t.isHorizontal()?t.el.scrollLeft=0:t.el.scrollTop=0,t.slideTo(t.slides.indexOf(s),0))},y=()=>{const e=t.params.a11y;e.itemRoleDescriptionMessage&&c(d(t.slides),e.itemRoleDescriptionMessage),e.slideRole&&o(d(t.slides),e.slideRole);const s=t.params.loop?t.slides.filter((e=>!e.classList.contains(t.params.slideDuplicateClass))).length:t.slides.length;e.slideLabelMessage&&t.slides.each(((a,i)=>{const r=d(a),n=t.params.loop?parseInt(r.attr("data-swiper-slide-index"),10):i;p(r,e.slideLabelMessage.replace(/\{\{index\}\}/,n+1).replace(/\{\{slidesLength\}\}/,s))}))},E=()=>{const e=t.params.a11y;t.$el.append(i);const s=t.$el;e.containerRoleDescriptionMessage&&c(s,e.containerRoleDescriptionMessage),e.containerMessage&&p(s,e.containerMessage);const a=t.$wrapperEl,r=e.id||a.attr("id")||`swiper-wrapper-${n=16,void 0===n&&(n=16),"x".repeat(n).replace(/x/g,(()=>Math.round(16*Math.random()).toString(16)))}`;var n;const l=t.params.autoplay&&t.params.autoplay.enabled?"off":"polite";var o;let d,u;o=r,a.attr("id",o),function(e,t){e.attr("aria-live",t)}(a,l),y(),t.navigation&&t.navigation.$nextEl&&(d=t.navigation.$nextEl),t.navigation&&t.navigation.$prevEl&&(u=t.navigation.$prevEl),d&&d.length&&v(d,r,e.nextSlideMessage),u&&u.length&&v(u,r,e.prevSlideMessage),g()&&t.pagination.$el.on("keydown",U(t.params.pagination.bulletClass),m),t.$el.on("focus",x,!0),t.$el.on("pointerdown",w,!0),t.$el.on("pointerup",b,!0)};a("beforeInit",(()=>{i=d(``)})),a("afterInit",(()=>{t.params.a11y.enabled&&E()})),a("slidesLengthChange snapGridLengthChange slidesGridLengthChange",(()=>{t.params.a11y.enabled&&y()})),a("fromEdge toEdge afterInit lock unlock",(()=>{t.params.a11y.enabled&&function(){if(t.params.loop||t.params.rewind||!t.navigation)return;const{$nextEl:e,$prevEl:s}=t.navigation;s&&s.length>0&&(t.isBeginning?(u(s),l(s)):(h(s),n(s))),e&&e.length>0&&(t.isEnd?(u(e),l(e)):(h(e),n(e)))}()})),a("paginationUpdate",(()=>{t.params.a11y.enabled&&function(){const e=t.params.a11y;f()&&t.pagination.bullets.each((s=>{const a=d(s);t.params.pagination.clickable&&(n(a),t.params.pagination.renderBullet||(o(a,"button"),p(a,e.paginationBulletMessage.replace(/\{\{index\}\}/,a.index()+1)))),a.is(`.${t.params.pagination.bulletActiveClass}`)?a.attr("aria-current","true"):a.removeAttr("aria-current")}))}()})),a("destroy",(()=>{t.params.a11y.enabled&&function(){let e,s;i&&i.length>0&&i.remove(),t.navigation&&t.navigation.$nextEl&&(e=t.navigation.$nextEl),t.navigation&&t.navigation.$prevEl&&(s=t.navigation.$prevEl),e&&e.off("keydown",m),s&&s.off("keydown",m),g()&&t.pagination.$el.off("keydown",U(t.params.pagination.bulletClass),m),t.$el.off("focus",x,!0),t.$el.off("pointerdown",w,!0),t.$el.off("pointerup",b,!0)}()}))},function(e){let{swiper:t,extendParams:s,on:a}=e;s({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let i=!1,n={};const l=e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),o=e=>{const t=r();let s;s=e?new URL(e):t.location;const a=s.pathname.slice(1).split("/").filter((e=>""!==e)),i=a.length;return{key:a[i-2],value:a[i-1]}},d=(e,s)=>{const a=r();if(!i||!t.params.history.enabled)return;let n;n=t.params.url?new URL(t.params.url):a.location;const o=t.slides.eq(s);let d=l(o.attr("data-history"));if(t.params.history.root.length>0){let s=t.params.history.root;"/"===s[s.length-1]&&(s=s.slice(0,s.length-1)),d=`${s}/${e}/${d}`}else n.pathname.includes(e)||(d=`${e}/${d}`);t.params.history.keepQuery&&(d+=n.search);const c=a.history.state;c&&c.value===d||(t.params.history.replaceState?a.history.replaceState({value:d},null,d):a.history.pushState({value:d},null,d))},c=(e,s,a)=>{if(s)for(let i=0,r=t.slides.length;i{n=o(t.params.url),c(t.params.speed,n.value,!1)};a("init",(()=>{t.params.history.enabled&&(()=>{const e=r();if(t.params.history){if(!e.history||!e.history.pushState)return t.params.history.enabled=!1,void(t.params.hashNavigation.enabled=!0);i=!0,n=o(t.params.url),(n.key||n.value)&&(c(0,n.value,t.params.runCallbacksOnInit),t.params.history.replaceState||e.addEventListener("popstate",p))}})()})),a("destroy",(()=>{t.params.history.enabled&&(()=>{const e=r();t.params.history.replaceState||e.removeEventListener("popstate",p)})()})),a("transitionEnd _freeModeNoMomentumRelease",(()=>{i&&d(t.params.history.key,t.activeIndex)})),a("slideChange",(()=>{i&&t.params.cssMode&&d(t.params.history.key,t.activeIndex)}))},function(e){let{swiper:t,extendParams:s,emit:i,on:n}=e,l=!1;const o=a(),c=r();s({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1}});const p=()=>{i("hashChange");const e=o.location.hash.replace("#","");if(e!==t.slides.eq(t.activeIndex).attr("data-hash")){const s=t.$wrapperEl.children(`.${t.params.slideClass}[data-hash="${e}"]`).index();if(void 0===s)return;t.slideTo(s)}},u=()=>{if(l&&t.params.hashNavigation.enabled)if(t.params.hashNavigation.replaceState&&c.history&&c.history.replaceState)c.history.replaceState(null,null,`#${t.slides.eq(t.activeIndex).attr("data-hash")}`||""),i("hashSet");else{const e=t.slides.eq(t.activeIndex),s=e.attr("data-hash")||e.attr("data-history");o.location.hash=s||"",i("hashSet")}};n("init",(()=>{t.params.hashNavigation.enabled&&(()=>{if(!t.params.hashNavigation.enabled||t.params.history&&t.params.history.enabled)return;l=!0;const e=o.location.hash.replace("#","");if(e){const s=0;for(let a=0,i=t.slides.length;a{t.params.hashNavigation.enabled&&t.params.hashNavigation.watchState&&d(c).off("hashchange",p)})),n("transitionEnd _freeModeNoMomentumRelease",(()=>{l&&u()})),n("slideChange",(()=>{l&&t.params.cssMode&&u()}))},function(e){let t,{swiper:s,extendParams:i,on:r,emit:n}=e;function l(){if(!s.size)return s.autoplay.running=!1,void(s.autoplay.paused=!1);const e=s.slides.eq(s.activeIndex);let a=s.params.autoplay.delay;e.attr("data-swiper-autoplay")&&(a=e.attr("data-swiper-autoplay")||s.params.autoplay.delay),clearTimeout(t),t=p((()=>{let e;s.params.autoplay.reverseDirection?s.params.loop?(s.loopFix(),e=s.slidePrev(s.params.speed,!0,!0),n("autoplay")):s.isBeginning?s.params.autoplay.stopOnLastSlide?d():(e=s.slideTo(s.slides.length-1,s.params.speed,!0,!0),n("autoplay")):(e=s.slidePrev(s.params.speed,!0,!0),n("autoplay")):s.params.loop?(s.loopFix(),e=s.slideNext(s.params.speed,!0,!0),n("autoplay")):s.isEnd?s.params.autoplay.stopOnLastSlide?d():(e=s.slideTo(0,s.params.speed,!0,!0),n("autoplay")):(e=s.slideNext(s.params.speed,!0,!0),n("autoplay")),(s.params.cssMode&&s.autoplay.running||!1===e)&&l()}),a)}function o(){return void 0===t&&(!s.autoplay.running&&(s.autoplay.running=!0,n("autoplayStart"),l(),!0))}function d(){return!!s.autoplay.running&&(void 0!==t&&(t&&(clearTimeout(t),t=void 0),s.autoplay.running=!1,n("autoplayStop"),!0))}function c(e){s.autoplay.running&&(s.autoplay.paused||(t&&clearTimeout(t),s.autoplay.paused=!0,0!==e&&s.params.autoplay.waitForTransition?["transitionend","webkitTransitionEnd"].forEach((e=>{s.$wrapperEl[0].addEventListener(e,h)})):(s.autoplay.paused=!1,l())))}function u(){const e=a();"hidden"===e.visibilityState&&s.autoplay.running&&c(),"visible"===e.visibilityState&&s.autoplay.paused&&(l(),s.autoplay.paused=!1)}function h(e){s&&!s.destroyed&&s.$wrapperEl&&e.target===s.$wrapperEl[0]&&(["transitionend","webkitTransitionEnd"].forEach((e=>{s.$wrapperEl[0].removeEventListener(e,h)})),s.autoplay.paused=!1,s.autoplay.running?l():d())}function m(){s.params.autoplay.disableOnInteraction?d():(n("autoplayPause"),c()),["transitionend","webkitTransitionEnd"].forEach((e=>{s.$wrapperEl[0].removeEventListener(e,h)}))}function f(){s.params.autoplay.disableOnInteraction||(s.autoplay.paused=!1,n("autoplayResume"),l())}s.autoplay={running:!1,paused:!1},i({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}}),r("init",(()=>{if(s.params.autoplay.enabled){o();a().addEventListener("visibilitychange",u),s.params.autoplay.pauseOnMouseEnter&&(s.$el.on("mouseenter",m),s.$el.on("mouseleave",f))}})),r("beforeTransitionStart",((e,t,a)=>{s.autoplay.running&&(a||!s.params.autoplay.disableOnInteraction?s.autoplay.pause(t):d())})),r("sliderFirstMove",(()=>{s.autoplay.running&&(s.params.autoplay.disableOnInteraction?d():c())})),r("touchEnd",(()=>{s.params.cssMode&&s.autoplay.paused&&!s.params.autoplay.disableOnInteraction&&l()})),r("destroy",(()=>{s.$el.off("mouseenter",m),s.$el.off("mouseleave",f),s.autoplay.running&&d();a().removeEventListener("visibilitychange",u)})),Object.assign(s.autoplay,{pause:c,run:l,start:o,stop:d})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let i=!1,r=!1;function n(){const e=t.thumbs.swiper;if(!e||e.destroyed)return;const s=e.clickedIndex,a=e.clickedSlide;if(a&&d(a).hasClass(t.params.thumbs.slideThumbActiveClass))return;if(null==s)return;let i;if(i=e.params.loop?parseInt(d(e.clickedSlide).attr("data-swiper-slide-index"),10):s,t.params.loop){let e=t.activeIndex;t.slides.eq(e).hasClass(t.params.slideDuplicateClass)&&(t.loopFix(),t._clientLeft=t.$wrapperEl[0].clientLeft,e=t.activeIndex);const s=t.slides.eq(e).prevAll(`[data-swiper-slide-index="${i}"]`).eq(0).index(),a=t.slides.eq(e).nextAll(`[data-swiper-slide-index="${i}"]`).eq(0).index();i=void 0===s?a:void 0===a?s:a-e1&&!t.params.centeredSlides&&(i=t.params.slidesPerView),t.params.thumbs.multipleActiveThumbs||(i=1),i=Math.floor(i),s.slides.removeClass(r),s.params.loop||s.params.virtual&&s.params.virtual.enabled)for(let e=0;e1?a:o:a-ot.previousIndex?"next":"prev"}else i=t.realIndex,r=i>t.previousIndex?"next":"prev";l&&(i+="next"===r?n:-1*n),s.visibleSlidesIndexes&&s.visibleSlidesIndexes.indexOf(i)<0&&(s.params.centeredSlides?i=i>o?i-Math.floor(a/2)+1:i+Math.floor(a/2)-1:i>o&&s.params.slidesPerGroup,s.slideTo(i,e?0:void 0))}}t.thumbs={swiper:null},a("beforeInit",(()=>{const{thumbs:e}=t.params;e&&e.swiper&&(l(),o(!0))})),a("slideChange update resize observerUpdate",(()=>{o()})),a("setTransition",((e,s)=>{const a=t.thumbs.swiper;a&&!a.destroyed&&a.setTransition(s)})),a("beforeDestroy",(()=>{const e=t.thumbs.swiper;e&&!e.destroyed&&r&&e.destroy()})),Object.assign(t.thumbs,{init:l,update:o})},function(e){let{swiper:t,extendParams:s,emit:a,once:i}=e;s({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}}),Object.assign(t,{freeMode:{onTouchStart:function(){const e=t.getTranslate();t.setTranslate(e),t.setTransition(0),t.touchEventsData.velocities.length=0,t.freeMode.onTouchEnd({currentPos:t.rtl?t.translate:-t.translate})},onTouchMove:function(){const{touchEventsData:e,touches:s}=t;0===e.velocities.length&&e.velocities.push({position:s[t.isHorizontal()?"startX":"startY"],time:e.touchStartTime}),e.velocities.push({position:s[t.isHorizontal()?"currentX":"currentY"],time:u()})},onTouchEnd:function(e){let{currentPos:s}=e;const{params:r,$wrapperEl:n,rtlTranslate:l,snapGrid:o,touchEventsData:d}=t,c=u()-d.touchStartTime;if(s<-t.minTranslate())t.slideTo(t.activeIndex);else if(s>-t.maxTranslate())t.slides.length1){const e=d.velocities.pop(),s=d.velocities.pop(),a=e.position-s.position,i=e.time-s.time;t.velocity=a/i,t.velocity/=2,Math.abs(t.velocity)150||u()-e.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=r.freeMode.momentumVelocityRatio,d.velocities.length=0;let e=1e3*r.freeMode.momentumRatio;const s=t.velocity*e;let c=t.translate+s;l&&(c=-c);let p,h=!1;const m=20*Math.abs(t.velocity)*r.freeMode.momentumBounceRatio;let f;if(ct.minTranslate())r.freeMode.momentumBounce?(c-t.minTranslate()>m&&(c=t.minTranslate()+m),p=t.minTranslate(),h=!0,d.allowMomentumBounce=!0):c=t.minTranslate(),r.loop&&r.centeredSlides&&(f=!0);else if(r.freeMode.sticky){let e;for(let t=0;t-c){e=t;break}c=Math.abs(o[e]-c){t.loopFix()})),0!==t.velocity){if(e=l?Math.abs((-c-t.translate)/t.velocity):Math.abs((c-t.translate)/t.velocity),r.freeMode.sticky){const s=Math.abs((l?-c:c)-t.translate),a=t.slidesSizesGrid[t.activeIndex];e=s{t&&!t.destroyed&&d.allowMomentumBounce&&(a("momentumBounce"),t.setTransition(r.speed),setTimeout((()=>{t.setTranslate(p),n.transitionEnd((()=>{t&&!t.destroyed&&t.transitionEnd()}))}),0))}))):t.velocity?(a("_freeModeNoMomentumRelease"),t.updateProgress(c),t.setTransition(e),t.setTranslate(c),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,n.transitionEnd((()=>{t&&!t.destroyed&&t.transitionEnd()})))):t.updateProgress(c),t.updateActiveIndex(),t.updateSlidesClasses()}else{if(r.freeMode.sticky)return void t.slideToClosest();r.freeMode&&a("_freeModeNoMomentumRelease")}(!r.freeMode.momentum||c>=r.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}}}})},function(e){let t,s,a,{swiper:i,extendParams:r}=e;r({grid:{rows:1,fill:"column"}}),i.grid={initSlides:e=>{const{slidesPerView:r}=i.params,{rows:n,fill:l}=i.params.grid;s=t/n,a=Math.floor(e/n),t=Math.floor(e/n)===e/n?e:Math.ceil(e/n)*n,"auto"!==r&&"row"===l&&(t=Math.max(t,r*n))},updateSlide:(e,r,n,l)=>{const{slidesPerGroup:o,spaceBetween:d}=i.params,{rows:c,fill:p}=i.params.grid;let u,h,m;if("row"===p&&o>1){const s=Math.floor(e/(o*c)),a=e-c*o*s,i=0===s?o:Math.min(Math.ceil((n-s*c*o)/c),o);m=Math.floor(a/i),h=a-m*i+s*o,u=h+m*t/c,r.css({"-webkit-order":u,order:u})}else"column"===p?(h=Math.floor(e/c),m=e-h*c,(h>a||h===a&&m===c-1)&&(m+=1,m>=c&&(m=0,h+=1))):(m=Math.floor(e/s),h=e-m*s);r.css(l("margin-top"),0!==m?d&&`${d}px`:"")},updateWrapperSize:(e,s,a)=>{const{spaceBetween:r,centeredSlides:n,roundLengths:l}=i.params,{rows:o}=i.params.grid;if(i.virtualSize=(e+r)*t,i.virtualSize=Math.ceil(i.virtualSize/o)-r,i.$wrapperEl.css({[a("width")]:`${i.virtualSize+r}px`}),n){s.splice(0,s.length);const e=[];for(let t=0;t{const{slides:e}=t,s=t.params.fadeEffect;for(let a=0;a{const{transformEl:s}=t.params.fadeEffect;(s?t.slides.find(s):t.slides).transition(e),ae({swiper:t,duration:e,transformEl:s,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const i=(e,t,s)=>{let a=s?e.find(".swiper-slide-shadow-left"):e.find(".swiper-slide-shadow-top"),i=s?e.find(".swiper-slide-shadow-right"):e.find(".swiper-slide-shadow-bottom");0===a.length&&(a=d(`
`),e.append(a)),0===i.length&&(i=d(`
`),e.append(i)),a.length&&(a[0].style.opacity=Math.max(-t,0)),i.length&&(i[0].style.opacity=Math.max(t,0))};te({effect:"cube",swiper:t,on:a,setTranslate:()=>{const{$el:e,$wrapperEl:s,slides:a,width:r,height:n,rtlTranslate:l,size:o,browser:c}=t,p=t.params.cubeEffect,u=t.isHorizontal(),h=t.virtual&&t.params.virtual.enabled;let m,f=0;p.shadow&&(u?(m=s.find(".swiper-cube-shadow"),0===m.length&&(m=d('
'),s.append(m)),m.css({height:`${r}px`})):(m=e.find(".swiper-cube-shadow"),0===m.length&&(m=d('
'),e.append(m))));for(let e=0;e-1&&(f=90*s+90*d,l&&(f=90*-s-90*d)),t.transform(v),p.slideShadows&&i(t,d,u)}if(s.css({"-webkit-transform-origin":`50% 50% -${o/2}px`,"transform-origin":`50% 50% -${o/2}px`}),p.shadow)if(u)m.transform(`translate3d(0px, ${r/2+p.shadowOffset}px, ${-r/2}px) rotateX(90deg) rotateZ(0deg) scale(${p.shadowScale})`);else{const e=Math.abs(f)-90*Math.floor(Math.abs(f)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),s=p.shadowScale,a=p.shadowScale/t,i=p.shadowOffset;m.transform(`scale3d(${s}, 1, ${a}) translate3d(0px, ${n/2+i}px, ${-n/2/a}px) rotateX(-90deg)`)}const g=c.isSafari||c.isWebView?-o/2:0;s.transform(`translate3d(0px,0,${g}px) rotateX(${t.isHorizontal()?0:f}deg) rotateY(${t.isHorizontal()?-f:0}deg)`),s[0].style.setProperty("--swiper-cube-translate-z",`${g}px`)},setTransition:e=>{const{$el:s,slides:a}=t;a.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),t.params.cubeEffect.shadow&&!t.isHorizontal()&&s.find(".swiper-cube-shadow").transition(e)},recreateShadows:()=>{const e=t.isHorizontal();t.slides.each((t=>{const s=Math.max(Math.min(t.progress,1),-1);i(d(t),s,e)}))},getEffectParams:()=>t.params.cubeEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({flipEffect:{slideShadows:!0,limitRotation:!0,transformEl:null}});const i=(e,s,a)=>{let i=t.isHorizontal()?e.find(".swiper-slide-shadow-left"):e.find(".swiper-slide-shadow-top"),r=t.isHorizontal()?e.find(".swiper-slide-shadow-right"):e.find(".swiper-slide-shadow-bottom");0===i.length&&(i=ie(a,e,t.isHorizontal()?"left":"top")),0===r.length&&(r=ie(a,e,t.isHorizontal()?"right":"bottom")),i.length&&(i[0].style.opacity=Math.max(-s,0)),r.length&&(r[0].style.opacity=Math.max(s,0))};te({effect:"flip",swiper:t,on:a,setTranslate:()=>{const{slides:e,rtlTranslate:s}=t,a=t.params.flipEffect;for(let r=0;r{const{transformEl:s}=t.params.flipEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),ae({swiper:t,duration:e,transformEl:s})},recreateShadows:()=>{const e=t.params.flipEffect;t.slides.each((s=>{const a=d(s);let r=a[0].progress;t.params.flipEffect.limitRotation&&(r=Math.max(Math.min(s.progress,1),-1)),i(a,r,e)}))},getEffectParams:()=>t.params.flipEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0,transformEl:null}}),te({effect:"coverflow",swiper:t,on:a,setTranslate:()=>{const{width:e,height:s,slides:a,slidesSizesGrid:i}=t,r=t.params.coverflowEffect,n=t.isHorizontal(),l=t.translate,o=n?e/2-l:s/2-l,d=n?r.rotate:-r.rotate,c=r.depth;for(let e=0,t=a.length;e0?p:0),s.length&&(s[0].style.opacity=-p>0?-p:0)}}},setTransition:e=>{const{transformEl:s}=t.params.coverflowEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({creativeEffect:{transformEl:null,limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const i=e=>"string"==typeof e?e:`${e}px`;te({effect:"creative",swiper:t,on:a,setTranslate:()=>{const{slides:e,$wrapperEl:s,slidesSizesGrid:a}=t,r=t.params.creativeEffect,{progressMultiplier:n}=r,l=t.params.centeredSlides;if(l){const e=a[0]/2-t.params.slidesOffsetBefore||0;s.transform(`translateX(calc(50% - ${e}px))`)}for(let s=0;s0&&(f=r.prev,m=!0),u.forEach(((e,t)=>{u[t]=`calc(${e}px + (${i(f.translate[t])} * ${Math.abs(d*n)}))`})),h.forEach(((e,t)=>{h[t]=f.rotate[t]*Math.abs(d*n)})),a[0].style.zIndex=-Math.abs(Math.round(o))+e.length;const g=u.join(", "),v=`rotateX(${h[0]}deg) rotateY(${h[1]}deg) rotateZ(${h[2]}deg)`,w=c<0?`scale(${1+(1-f.scale)*c*n})`:`scale(${1-(1-f.scale)*c*n})`,b=c<0?1+(1-f.opacity)*c*n:1-(1-f.opacity)*c*n,x=`translate3d(${g}) ${v} ${w}`;if(m&&f.shadow||!m){let e=a.children(".swiper-slide-shadow");if(0===e.length&&f.shadow&&(e=ie(r,a)),e.length){const t=r.shadowPerProgress?d*(1/r.limitProgress):d;e[0].style.opacity=Math.min(Math.max(Math.abs(t),0),1)}}const y=se(r,a);y.transform(x).css({opacity:b}),f.origin&&y.css("transform-origin",f.origin)}},setTransition:e=>{const{transformEl:s}=t.params.creativeEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow").transition(e),ae({swiper:t,duration:e,transformEl:s,allSlides:!0})},perspective:()=>t.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cardsEffect:{slideShadows:!0,transformEl:null,rotate:!0,perSlideRotate:2,perSlideOffset:8}}),te({effect:"cards",swiper:t,on:a,setTranslate:()=>{const{slides:e,activeIndex:s}=t,a=t.params.cardsEffect,{startTranslate:i,isTouched:r}=t.touchEventsData,n=t.translate;for(let l=0;l0&&c<1&&(r||t.params.cssMode)&&n-1&&(r||t.params.cssMode)&&n>i;if(b||x){const e=(1-Math.abs((Math.abs(c)-.5)/.5))**.5;g+=-28*c*e,f+=-.5*e,v+=96*e,h=-25*e*Math.abs(c)+"%"}if(u=c<0?`calc(${u}px + (${v*Math.abs(c)}%))`:c>0?`calc(${u}px + (-${v*Math.abs(c)}%))`:`${u}px`,!t.isHorizontal()){const e=h;h=u,u=e}const y=c<0?""+(1+(1-f)*c):""+(1-(1-f)*c),E=`\n translate3d(${u}, ${h}, ${m}px)\n rotateZ(${a.rotate?g:0}deg)\n scale(${y})\n `;if(a.slideShadows){let e=o.find(".swiper-slide-shadow");0===e.length&&(e=ie(a,o)),e.length&&(e[0].style.opacity=Math.min(Math.max((Math.abs(c)-.5)/.5,0),1))}o[0].style.zIndex=-Math.abs(Math.round(d))+e.length;se(a,o).transform(E)}},setTransition:e=>{const{transformEl:s}=t.params.cardsEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow").transition(e),ae({swiper:t,duration:e,transformEl:s})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})}];return V.use(re),V})); +//# sourceMappingURL=swiper-bundle.min.js.map \ No newline at end of file diff --git a/themes/agico-hugo/assets/plugins/webfont/webfont-loader-2.js b/themes/agico-hugo/assets/plugins/webfont/webfont-loader-2.js new file mode 100644 index 0000000..3371393 --- /dev/null +++ b/themes/agico-hugo/assets/plugins/webfont/webfont-loader-2.js @@ -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)); +}()); \ No newline at end of file diff --git a/themes/agico-hugo/assets/scss/_buttons.scss b/themes/agico-hugo/assets/scss/_buttons.scss new file mode 100755 index 0000000..f094706 --- /dev/null +++ b/themes/agico-hugo/assets/scss/_buttons.scss @@ -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; + } +} \ No newline at end of file diff --git a/themes/agico-hugo/assets/scss/_common.scss b/themes/agico-hugo/assets/scss/_common.scss new file mode 100755 index 0000000..2b8f1f4 --- /dev/null +++ b/themes/agico-hugo/assets/scss/_common.scss @@ -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; +} \ No newline at end of file diff --git a/themes/agico-hugo/assets/scss/_mixins.scss b/themes/agico-hugo/assets/scss/_mixins.scss new file mode 100755 index 0000000..21f71e0 --- /dev/null +++ b/themes/agico-hugo/assets/scss/_mixins.scss @@ -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; +} \ No newline at end of file diff --git a/themes/agico-hugo/assets/scss/_typography.scss b/themes/agico-hugo/assets/scss/_typography.scss new file mode 100755 index 0000000..22aa4d8 --- /dev/null +++ b/themes/agico-hugo/assets/scss/_typography.scss @@ -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); +} \ No newline at end of file diff --git a/themes/agico-hugo/assets/scss/style.scss b/themes/agico-hugo/assets/scss/style.scss new file mode 100755 index 0000000..a98c1ab --- /dev/null +++ b/themes/agico-hugo/assets/scss/style.scss @@ -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 }} \ No newline at end of file diff --git a/themes/agico-hugo/assets/scss/templates/_banner.scss b/themes/agico-hugo/assets/scss/templates/_banner.scss new file mode 100755 index 0000000..a1f0d7b --- /dev/null +++ b/themes/agico-hugo/assets/scss/templates/_banner.scss @@ -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; + } +} \ No newline at end of file diff --git a/themes/agico-hugo/assets/scss/templates/_blog.scss b/themes/agico-hugo/assets/scss/templates/_blog.scss new file mode 100755 index 0000000..0782b60 --- /dev/null +++ b/themes/agico-hugo/assets/scss/templates/_blog.scss @@ -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 */ \ No newline at end of file diff --git a/themes/agico-hugo/assets/scss/templates/_bootstrap.scss b/themes/agico-hugo/assets/scss/templates/_bootstrap.scss new file mode 100644 index 0000000..2de76c9 --- /dev/null +++ b/themes/agico-hugo/assets/scss/templates/_bootstrap.scss @@ -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 diff --git a/themes/agico-hugo/assets/scss/templates/_card.scss b/themes/agico-hugo/assets/scss/templates/_card.scss new file mode 100755 index 0000000..8a4704f --- /dev/null +++ b/themes/agico-hugo/assets/scss/templates/_card.scss @@ -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; + } +} diff --git a/themes/agico-hugo/assets/scss/templates/_footer.scss b/themes/agico-hugo/assets/scss/templates/_footer.scss new file mode 100755 index 0000000..37b0581 --- /dev/null +++ b/themes/agico-hugo/assets/scss/templates/_footer.scss @@ -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; + } + } + } + } +} \ No newline at end of file diff --git a/themes/agico-hugo/assets/scss/templates/_homepage.scss b/themes/agico-hugo/assets/scss/templates/_homepage.scss new file mode 100755 index 0000000..815a9dd --- /dev/null +++ b/themes/agico-hugo/assets/scss/templates/_homepage.scss @@ -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%); +} \ No newline at end of file diff --git a/themes/agico-hugo/assets/scss/templates/_navigation.scss b/themes/agico-hugo/assets/scss/templates/_navigation.scss new file mode 100755 index 0000000..ac2625c --- /dev/null +++ b/themes/agico-hugo/assets/scss/templates/_navigation.scss @@ -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; +} \ No newline at end of file diff --git a/themes/agico-hugo/assets/scss/templates/_team.scss b/themes/agico-hugo/assets/scss/templates/_team.scss new file mode 100755 index 0000000..6c4d192 --- /dev/null +++ b/themes/agico-hugo/assets/scss/templates/_team.scss @@ -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; + } +} \ No newline at end of file diff --git a/themes/agico-hugo/layouts/.DS_Store b/themes/agico-hugo/layouts/.DS_Store new file mode 100644 index 0000000..369f33f Binary files /dev/null and b/themes/agico-hugo/layouts/.DS_Store differ diff --git a/themes/agico-hugo/layouts/404.html b/themes/agico-hugo/layouts/404.html new file mode 100755 index 0000000..984231b --- /dev/null +++ b/themes/agico-hugo/layouts/404.html @@ -0,0 +1,182 @@ +{{ define "main" }} + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +{{ end }} \ No newline at end of file diff --git a/themes/agico-hugo/layouts/_default/about.html b/themes/agico-hugo/layouts/_default/about.html new file mode 100644 index 0000000..ebc0e2d --- /dev/null +++ b/themes/agico-hugo/layouts/_default/about.html @@ -0,0 +1,95 @@ +{{ define "main" }} + +{{"" | safeHTML }} +{{ with .Params.about }} +{{ if .enable }} +
+
+
+ + +
+

{{ .title }}

+

{{ .subtitle }}

+

{{ .content | markdownify }}

+ {{ if .button.enable }} + {{ with .button }} + {{ + .label + }} + {{ end }} + {{ end }} +
+
+
+ + +
+{{ end }} +{{ end }} +{{"" | safeHTML }} + +{{"" | safeHTML }} +{{ with .Params.funfacts }} +{{ if .enable }} +
+
+
+ {{ range .funfact_item }} +
+

{{ .count }}+

+
{{ .name }}
+
+ {{ end }} +
+
+
+{{ end }} +{{ end }} +{{"" | safeHTML }} + +{{ if .Params.service.enable }} + {{ with site.GetPage (string .Params.service.section)}} + {{ partial "components/services.html" . }} +
+ {{ end }} +{{else}} +
+{{ end }} + +{{ end }} \ No newline at end of file diff --git a/themes/agico-hugo/layouts/_default/baseof.html b/themes/agico-hugo/layouts/_default/baseof.html new file mode 100755 index 0000000..7c3b533 --- /dev/null +++ b/themes/agico-hugo/layouts/_default/baseof.html @@ -0,0 +1,54 @@ + + + + + + {{ partial "essential/head.html" . }} + + + + {{ if hugo.IsProduction }} + {{ partialCached "essential/style.html" . }} + {{ else }} + {{ partial "essential/style.html" . }} + {{ end }} + + + + {{ partial "page-transition.html" . }} + + + {{ if hugo.IsProduction }} + {{ partialCached "preloader.html" . }} + {{ else }} + {{ partial "preloader.html" . }} + {{ end }} + + {{ if not .IsHome }} + {{ partial "components/page-header.html" . }} + {{ end }} + + + + {{ partial "essential/header.html" . }} + + +
+ {{ block "main" . }}{{ end }} +
+ + + {{ 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 }} + + + \ No newline at end of file diff --git a/themes/agico-hugo/layouts/_default/contact.html b/themes/agico-hugo/layouts/_default/contact.html new file mode 100644 index 0000000..7be8ba9 --- /dev/null +++ b/themes/agico-hugo/layouts/_default/contact.html @@ -0,0 +1,100 @@ +{{ define "main" }} + + + +
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+ + +
+ +
+ +
+ +
+ + +
+
+
+
+
+
+ +{{ if site.Params.google_map.enable }} + +{{ end }} + +{{ end }} \ No newline at end of file diff --git a/themes/agico-hugo/layouts/_default/index.json b/themes/agico-hugo/layouts/_default/index.json new file mode 100755 index 0000000..7085e02 --- /dev/null +++ b/themes/agico-hugo/layouts/_default/index.json @@ -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 -}} \ No newline at end of file diff --git a/themes/agico-hugo/layouts/_default/list.html b/themes/agico-hugo/layouts/_default/list.html new file mode 100755 index 0000000..d81d25f --- /dev/null +++ b/themes/agico-hugo/layouts/_default/list.html @@ -0,0 +1,151 @@ +{{ define "main" }} + + +{{ if or (eq .Section "post") (eq .Section "posts") (eq .Section "blog") (eq .Section "blogs") (eq .Section "nieuws") (eq .Section "categories") (eq .Section "tags") }} +
+
+
+
+
+ {{ $paginator := .Paginate .Data.Pages }} + {{ range $paginator.Pages }} + {{ "" | safeHTML }} +
+ +
+ {{ end }} + {{"" | safeHTML }} +
+ {{ $paginator := .Paginator }} + + {{ $adjacent_links := 2 }} + + {{ $max_links := (add (mul $adjacent_links 2) 1) }} + + {{ $lower_limit := (add $adjacent_links 1) }} + + {{ $upper_limit := (sub $paginator.TotalPages $adjacent_links) }} + + {{ if gt $paginator.TotalPages 1 }} + + {{ end }} +
+ {{"" | safeHTML }} +
+
+ {{ partial "components/sidebar.html" . }} +
+
+
+{{ else }} + +
+
+
+
+
+ {{.Content }} +
+
+
+
+
+ +{{ end }} + +{{ end }} \ No newline at end of file diff --git a/themes/agico-hugo/layouts/_default/pricing.html b/themes/agico-hugo/layouts/_default/pricing.html new file mode 100644 index 0000000..18b3731 --- /dev/null +++ b/themes/agico-hugo/layouts/_default/pricing.html @@ -0,0 +1,36 @@ +{{ define "main" }} + +{{""| safeHTML}} +
+
+
+ {{ with .Params.pricing }} + + {{ end }} + + {{ range $index, $element:= .Params.pricing.pricing_table }} + {{ $delay := mul $index 200}} +
+
+

{{ .title }}

+
{{ .price }} {{ .unit }}
+ {{ .description }} +
+
    + {{ range .services }} +
  • {{ . | markdownify }}
  • + {{ end }} +
+ Meer informatie +
+
+ {{ end }} +
+
+
+{{""| safeHTML}} + +{{ end }} \ No newline at end of file diff --git a/themes/agico-hugo/layouts/_default/product.html b/themes/agico-hugo/layouts/_default/product.html new file mode 100644 index 0000000..6fbedc1 --- /dev/null +++ b/themes/agico-hugo/layouts/_default/product.html @@ -0,0 +1,86 @@ +{{ define "main" }} + +
+
+ + {{ 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" }} + +
+ + {{/* --------- TEKSTKOLOM (altijd boven op mobiel) --------- */}} +
+ {{ 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 }} +

{{ . }}

+ {{ end }} + + {{ with .text }} +

{{ . | markdownify }}

+ {{ end }} + {{ end }} +
+ + {{/* --------- TABELKOLOM (altijd onder op mobiel) --------- */}} +
+ + + + {{/* PRIJS-REEKS (bovenste rij met kolommen) */}} + + {{ range $tbl.pricing_table_info }} + + {{ end }} + + + {{/* BODY-REEKSEN */}} + {{ range $tbl.pricing_table_data }} + + {{ range .table_row }} + + {{ end }} + + {{ end }} + + +
+ {{ with .price }}
{{ . | markdownify }}
{{ end }} + {{ with .content }}
{{ . | markdownify }}
{{ end }} + {{ with .info }}{{ . | markdownify }}{{ end }} +
+
+ {{ with .icon }}{{ end }} + {{ with .price }}{{ . }}{{ end }} +

{{ .product | markdownify }}

+ {{ with .info }}{{ . | markdownify }}{{ end }} +
+
+
+ +
+ {{ end }} + + + +
+
+ +{{ end }} diff --git a/themes/agico-hugo/layouts/_default/quote.html b/themes/agico-hugo/layouts/_default/quote.html new file mode 100644 index 0000000..3ecac22 --- /dev/null +++ b/themes/agico-hugo/layouts/_default/quote.html @@ -0,0 +1,145 @@ +{{ define "main" }} +
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+ + +
+ +
+
+
Prijsberekening (schatting)
+
+ +
+ + + Prijs per pagina: €50 +
+ +
+ + +
+ +
+ +
+ + +
+
+ + +
+
+ + +
+
+ +
+ +

Totaal: 0

+
+ + + + + + +
+ +
+ +
+ + +
+
+
+
+
+
+ + +{{ end }} diff --git a/themes/agico-hugo/layouts/_default/search.html b/themes/agico-hugo/layouts/_default/search.html new file mode 100644 index 0000000..99e8897 --- /dev/null +++ b/themes/agico-hugo/layouts/_default/search.html @@ -0,0 +1,31 @@ +{{ define "main" }} +
+
+
+
+
+ +
+ + {{ partial "components/sidebar.html" . }} +
+
+
+ + + +{{ end }} \ No newline at end of file diff --git a/themes/agico-hugo/layouts/_default/service.html b/themes/agico-hugo/layouts/_default/service.html new file mode 100644 index 0000000..78a9979 --- /dev/null +++ b/themes/agico-hugo/layouts/_default/service.html @@ -0,0 +1,36 @@ +{{ define "main" }} + +{{ partial "components/services.html" . }} + +{{""| safeHTML}} +{{ if .Params.feature.enable }} +{{ with .Params.feature }} +
+
+
+
+

{{ .subtitle }}

+

{{ .title }}

+
+ {{ range $index, $element:= .feature_item }} + {{ $delay := mul $index 100}} +
+
+
+ + + +

{{ .title }}

+

{{ .content | markdownify }}

+
+
+
+ {{ end }} +
+
+
+{{ end }} +{{ end }} +{{""| safeHTML}} + +{{ end }} \ No newline at end of file diff --git a/themes/agico-hugo/layouts/_default/single.html b/themes/agico-hugo/layouts/_default/single.html new file mode 100755 index 0000000..391d38a --- /dev/null +++ b/themes/agico-hugo/layouts/_default/single.html @@ -0,0 +1,55 @@ +{{ define "main" }} + + + +{{ if or (eq .Section "post") (eq .Section "posts") (eq .Section "blog") (eq .Section "blogs") (eq .Section "nieuws") (eq .Section "categories") (eq .Section "tags") }} +
+
+
+
+ +

{{ .Params.Author }} / {{ .PublishDate.Format "Jan 02, 2006" }}

+
+ {{ .Content }} +
+ + + +
+ {{ partial "components/sidebar.html" . }} +
+
+
+{{ else }} + +
+
+
+
+
+ {{.Content }} +
+
+
+
+
+ +{{ end }} + +{{ end }} \ No newline at end of file diff --git a/themes/agico-hugo/layouts/_default/team.html b/themes/agico-hugo/layouts/_default/team.html new file mode 100644 index 0000000..d6dfa82 --- /dev/null +++ b/themes/agico-hugo/layouts/_default/team.html @@ -0,0 +1,30 @@ +{{ define "main" }} + +{{"" | safeHTML}} +
+
+
+ {{ range $index, $element:= .Params.team_member }} + {{ $delay := mul $index 200}} + {{"" | safeHTML}} +
+
+ {{ partial "image.html" (dict "Src" .image "Alt" .name "Class" "w-100 rounded-sm" "Size" "450x") }} +
+
{{.name}}
+

{{ .designation }}

+
    + {{ range .social }} +
  • + {{ end }} +
+
+
+
+ {{ end }} +
+
+
+{{"" | safeHTML}} + +{{ end }} \ No newline at end of file diff --git a/themes/agico-hugo/layouts/_default/terms.html b/themes/agico-hugo/layouts/_default/terms.html new file mode 100644 index 0000000..25510fa --- /dev/null +++ b/themes/agico-hugo/layouts/_default/terms.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/themes/agico-hugo/layouts/career/list.html b/themes/agico-hugo/layouts/career/list.html new file mode 100755 index 0000000..b654bc3 --- /dev/null +++ b/themes/agico-hugo/layouts/career/list.html @@ -0,0 +1,28 @@ +{{ define "main" }} + +
+
+
+
+

{{ i18n "career_subtitle" }}

+

{{ i18n "career_title" }}

+
+ {{ range .Data.Pages }} +
+
+ {{ 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 }} +
+
{{ .Title }}
+

{{ .Params.Job_category }} | {{ .Params.Location }} | {{ .Params.Job_type }} | {{.PublishDate.Format "06 Jan 2006" }}

+
+ {{ i18n "apply_now" }} +
+
+ {{ end }} +
+
+
+ +{{ end }} \ No newline at end of file diff --git a/themes/agico-hugo/layouts/career/single.html b/themes/agico-hugo/layouts/career/single.html new file mode 100755 index 0000000..aa7a740 --- /dev/null +++ b/themes/agico-hugo/layouts/career/single.html @@ -0,0 +1,55 @@ +{{ define "main" }} + +
+
+
+
+
+ {{ .Content }} +
+ {{ i18n "apply_now" }} +
+ +
+
+

{{ i18n "job_details" }}

+
    +
  • + +
    +
    {{ i18n "location"}}
    +

    {{ .Params.Location | markdownify }}

    +
    +
  • + +
  • + +
    +
    {{ i18n "job_category"}}
    +

    {{ .Params.Job_category | markdownify }}

    +
    +
  • + +
  • + +
    +
    {{ i18n "job_type"}}
    +

    {{ .Params.Job_type | markdownify }}

    +
    +
  • + +
  • + +
    +
    {{ i18n "posted_date"}}
    +

    {{ .PublishDate.Format "06 Jan 2006" }}

    +
    +
  • +
+
+
+
+
+
+ +{{ end }} \ No newline at end of file diff --git a/themes/agico-hugo/layouts/index.html b/themes/agico-hugo/layouts/index.html new file mode 100755 index 0000000..327789d --- /dev/null +++ b/themes/agico-hugo/layouts/index.html @@ -0,0 +1,216 @@ +{{ define "main" }} + +{{""| safeHTML}} +{{ with .Params.banner }} +{{ if .enable }} +
+
+
+
+

{{ .title | safeHTML }}{{ .watermark }}

+

{{ .content | markdownify }}

+ {{ if .button.enable }} + {{ with .button }} + {{ .label }} + {{ end }} + {{ end }} +
+
+
+ {{ partial "image.html" (dict "Src" .image "Alt" "illustration" "FetchPriority" "high" "Loading" "eager") }} +
+
+
+
+
+{{ end }} +{{ end }} +{{""| safeHTML}} + +{{ if .Params.service.enable }} + {{ with site.GetPage (string .Params.service.section)}} + {{ partial "components/services.html" . }} + {{ end }} +{{ end }} + +{{""| safeHTML}} +{{ with .Params.partner }} +{{ if .enable }} +
+
+
+
+
    + {{ range .partner_logo }} +
  • + {{ partial "image.html" (dict "Src" . "Alt" "" "Class" `p-2` `Alt` `partner`) }} +
  • + {{ end }} +
+
+
+
+
+{{ end }} +{{ end }} +{{""| safeHTML}} + +{{""| safeHTML}} +{{ with .Params.feature }} +{{ if .enable }} +
+
+
+
+

{{ .subtitle }}

+

{{ .title }}

+
+ {{ range $index, $element:= .feature_item }} + {{ $delay := mul $index 200 }} +
+
+ {{ partial "image.html" (dict "Src" .image "Alt" "feature image" "Class" "mb-3" ) }} +
{{ .content | markdownify }}
+
+
+ {{ end }} +
+
+
+{{ end }} +{{ end }} +{{""| safeHTML}} + +{{""| safeHTML}} +{{ with .Params.about }} +{{ if .enable }} +{{ range $i,$p := .about_item }} +
+
+
+ {{ if not (modBool $i 2)}} +
+

{{ .subtitle }}

+

{{ .title }}

+
{{ .content | markdownify | safeHTML }}
+ {{ if .button.enable }} + {{ with .button }} + {{ + .label }} details + {{ end }} + {{ end }} +
+
+
+ {{ partial "image.html" (dict "Src" .image "Alt" "about-image" ) }} +
+
+ {{ else }} +
+
+ {{ partial "image.html" (dict "Src" .image "Alt" "about image" ) }} +
+
+
+

{{ .subtitle }}

+

{{ .title }}

+
{{ .content | markdownify | safeHTML }}
+ {{ if .button.enable }} + {{ with .button }} + {{ .label }} details + {{ end }} + {{ end }} +
+ {{ end }} +
+
+
+{{ end }} +{{ end }} +{{ end }} +{{""| safeHTML}} + +{{""| safeHTML}} +{{ with .Params.download }} +{{ if .enable }} +
+
+
+
+
+

{{ .title }}

+

{{ .content | markdownify }}

+ +
+
+
+
+ {{ partial "image.html" (dict "Src" .image "Alt" "mobile" "Class" `w-100`) }} +
+
+
+
+
+{{ end }} +{{ end }} +{{""| safeHTML}} + +{{""| safeHTML}} +{{ with .Params.pricing }} +{{ if .enable }} +
+
+
+
+ {{ with site.GetPage (string .section) }} +

{{ .Params.pricing.subtitle }}

+

{{ .Params.pricing.title }}

+ {{ end }} +
+ + {{$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}} +
+
+ {{ + .title }} +
{{ .price }} / {{ .unit }}
+

{{ .description }}

+
+
    + {{ range .services }} +
  • {{ . }}
  • + {{ end }} +
+ Select Plan +
+
+ {{ end }} + {{ end }} +
+
+
+{{ end }} +{{""| safeHTML}} +{{ end }} +{{ end }} \ No newline at end of file diff --git a/themes/agico-hugo/layouts/partials/components/accordion.html b/themes/agico-hugo/layouts/partials/components/accordion.html new file mode 100755 index 0000000..ba8d422 --- /dev/null +++ b/themes/agico-hugo/layouts/partials/components/accordion.html @@ -0,0 +1,25 @@ +{{ $title:= .Title }} +{{ $content:= .Content }} +{{ $class:= .Class }} +{{ $headerClass:= .HeaderClass }} +{{ $bodyClass:= .BodyClass }} + + +
+ +
+

{{ $content | markdownify }}

+
+
\ No newline at end of file diff --git a/themes/agico-hugo/layouts/partials/components/page-header.html b/themes/agico-hugo/layouts/partials/components/page-header.html new file mode 100755 index 0000000..2e46892 --- /dev/null +++ b/themes/agico-hugo/layouts/partials/components/page-header.html @@ -0,0 +1,33 @@ +{{ "" | safeHTML }} +
+
+
+
+
+

{{ .Title }}{{ .Params.Watermark + }} +

+ {{ with .Params.Description }}

{{ . | markdownify }}

{{ end }} +
+ +
+
+
+
+{{ "" | safeHTML }} \ No newline at end of file diff --git a/themes/agico-hugo/layouts/partials/components/services.html b/themes/agico-hugo/layouts/partials/components/services.html new file mode 100755 index 0000000..b9d5d69 --- /dev/null +++ b/themes/agico-hugo/layouts/partials/components/services.html @@ -0,0 +1,33 @@ +{{"" | safeHTML }} +{{ with .Params.service }} +{{ if .enable }} +
+
+
+
+

{{ .title }}

+

{{ .subtitle | markdownify }}

+
+ {{ range $index, $element:= .service_item }} + {{ $delay := mul $index 100 }} +
+
+
+ + + +

{{ .title }}

+

{{ .content | markdownify }}

+ {{ if .link }} + {{ i18n "more_info" }} + {{ end }} +
+
+
+ {{ end }} +
+
+
+{{ end }} +{{ end }} +{{"" | safeHTML }} \ No newline at end of file diff --git a/themes/agico-hugo/layouts/partials/components/sidebar.html b/themes/agico-hugo/layouts/partials/components/sidebar.html new file mode 100755 index 0000000..ea9ea82 --- /dev/null +++ b/themes/agico-hugo/layouts/partials/components/sidebar.html @@ -0,0 +1,53 @@ +
+
+
+
+
+ + +
+
+
+
+
{{ i18n "category" }}
+ {{- if isset .Site.Taxonomies "categories" }} + {{- if not (eq (len .Site.Taxonomies.categories) 0) }} + + {{- end }} + {{- end }} +
+
+
{{ i18n "latest_article" }}
+
    + {{ range first 3 (where site.RegularPages "Section" "in" site.Params.mainSections ) }} +
  • + {{ partial "image.html" (dict "Src" .Params.Image "Alt" "post-thumb" "Class" `object-fit-cover rounded me-3` "Size" "200x") }} +
    +
    {{ .Title }}
    +

    {{ .PublishDate.Format "Jan 02, 2006" }}

    +
    +
  • + {{ end }} +
+
+
+
{{ i18n "tags" }}
+ {{- if isset .Site.Taxonomies "tags" }} + {{- if not (eq (len .Site.Taxonomies.tags) 0) }} + + {{- end }} + {{- end }} +
+
+
\ No newline at end of file diff --git a/themes/agico-hugo/layouts/partials/components/subscription.html b/themes/agico-hugo/layouts/partials/components/subscription.html new file mode 100755 index 0000000..7b1e1b9 --- /dev/null +++ b/themes/agico-hugo/layouts/partials/components/subscription.html @@ -0,0 +1,27 @@ +{{"" | safeHTML }} +{{ if .Site.Params.subscription.enable }} +{{ with .Site.Params.subscription }} +
+
+
+
+

{{ i18n "subscribe_newsletter" | safeHTML }}

+
+
+ +
+
+ + +
+
+
+
+
+
+{{ end }} +{{ end }} +{{"" | safeHTML }} \ No newline at end of file diff --git a/themes/agico-hugo/layouts/partials/essential/footer.html b/themes/agico-hugo/layouts/partials/essential/footer.html new file mode 100755 index 0000000..9c8c6ab --- /dev/null +++ b/themes/agico-hugo/layouts/partials/essential/footer.html @@ -0,0 +1,60 @@ +{{"" | safeHTML }} + + +{{ "" | safeHTML }} +{{ with site.Params.map.gmap_api }} + +{{ end }} \ No newline at end of file diff --git a/themes/agico-hugo/layouts/partials/essential/head.html b/themes/agico-hugo/layouts/partials/essential/head.html new file mode 100755 index 0000000..b1625f2 --- /dev/null +++ b/themes/agico-hugo/layouts/partials/essential/head.html @@ -0,0 +1,57 @@ + +{{.Title | default site.Title}} + + + + + + + + +{{ partialCached "favicon" .}} + + + +{{ partialCached "manifest" . }} + + + +{{ partialCached "site-verifications.html" . }} + + + +{{ partial "basic-seo.html" . }} + + + +{{ partialCached "custom-script.html" . }} + + + + + + + + + + + + + + + + + + + + + + + + + + +{{ partialCached "crisp-chat.html" . }} + + + \ No newline at end of file diff --git a/themes/agico-hugo/layouts/partials/essential/header.html b/themes/agico-hugo/layouts/partials/essential/header.html new file mode 100755 index 0000000..87995db --- /dev/null +++ b/themes/agico-hugo/layouts/partials/essential/header.html @@ -0,0 +1,88 @@ +{{"" | safeHTML }} + +{{"" | safeHTML }} \ No newline at end of file diff --git a/themes/agico-hugo/layouts/partials/essential/script.html b/themes/agico-hugo/layouts/partials/essential/script.html new file mode 100644 index 0000000..67a4594 --- /dev/null +++ b/themes/agico-hugo/layouts/partials/essential/script.html @@ -0,0 +1,49 @@ + +{{ $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 }} + + + +{{ $scripts := slice }} +{{ range site.Params.plugins.js }} + {{ if findRE "^http" .link }} + + {{ else }} + {{ $scripts = $scripts | append (resources.Get .link) }} + {{ end }} +{{ end }} + + +{{ if site.Params.search }} +{{ $scripts = $scripts | append (resources.Get "plugins/search/fuse.min.js" ) }} +{{ $scripts = $scripts | append (resources.Get "plugins/search/search.js" ) }} +{{ end }} + + +{{ $scripts = $scripts | append (resources.Get "js/script.js") }} +{{ $scripts = $scripts | resources.Concat "js/scripts.js" }} +{{ if hugo.IsProduction }} + {{ $scripts = $scripts | fingerprint "sha512" }} +{{ end }} + + + + +{{ partialCached "pwa.html" . }} + + + +{{ partialCached "cookie-consent.html" . }} + + + + \ No newline at end of file diff --git a/themes/agico-hugo/layouts/partials/essential/style.html b/themes/agico-hugo/layouts/partials/essential/style.html new file mode 100644 index 0000000..3f58288 --- /dev/null +++ b/themes/agico-hugo/layouts/partials/essential/style.html @@ -0,0 +1,53 @@ + + + + + + + + + + + + + +{{ $styles := slice }} +{{ range site.Params.plugins.css }} + {{ if findRE "^http" .link }} + + {{ 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" }} + + + +{{ if and hugo.IsProduction site.Params.purge_css }} + {{ $styles = $styles | css.PostCSS | fingerprint "sha256" }} + {{ $styles = $styles | resources.PostProcess }} +{{ end }} + + + + + diff --git a/themes/agico-hugo/layouts/partials/page-transition.html b/themes/agico-hugo/layouts/partials/page-transition.html new file mode 100644 index 0000000..79fe056 --- /dev/null +++ b/themes/agico-hugo/layouts/partials/page-transition.html @@ -0,0 +1,102 @@ + + +
+ + + diff --git a/themes/agico-hugo/layouts/shortcodes/accordion.html b/themes/agico-hugo/layouts/shortcodes/accordion.html new file mode 100644 index 0000000..34a0934 --- /dev/null +++ b/themes/agico-hugo/layouts/shortcodes/accordion.html @@ -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 }} + + +
+ +
+

{{ .Inner | markdownify }}

+
+
\ No newline at end of file diff --git a/themes/agico-hugo/layouts/shortcodes/changelog.html b/themes/agico-hugo/layouts/shortcodes/changelog.html new file mode 100644 index 0000000..9a4db4d --- /dev/null +++ b/themes/agico-hugo/layouts/shortcodes/changelog.html @@ -0,0 +1,6 @@ +{{ $_hugo_config := `{ "version": 1 }` }} + +
+
{{ .Get 0 | title }}
+ {{ .Inner | markdownify }} +
\ No newline at end of file diff --git a/themes/agico-hugo/layouts/shortcodes/quote.html b/themes/agico-hugo/layouts/shortcodes/quote.html new file mode 100644 index 0000000..baef8a8 --- /dev/null +++ b/themes/agico-hugo/layouts/shortcodes/quote.html @@ -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 }} + +
+
+
+
+
+ + +
+

Stel je diensten samen

+

Maak hieronder je keuze per dienst die wij aanbieden.

+ {{ 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) }} + +
+
+
+ + +
+
+ +
+
+
+ + {{ if $p.omschrijving }}

{{ $p.omschrijving | markdownify }}

{{ end }} + + {{ if gt (len $items) 0 }} + + + {{ end }} + + {{ if gt (len $optList) 0 }} +
+
Optioneel:
+ {{ range $k, $opt := $optList }} +
+ + + +
+ {{ end }} +
+ {{ end }} + + {{ if gt (len $qtyList) 0 }} +
+ {{ range $q, $qty := $qtyList }} + + + {{ end }} +
+ {{ end }} +
+
+ +
+
+
+
{{ or $p.infoTitle (printf "%s info" $p.naam) }}
+ {{ if isset $p "infobox" }} + {{ $p.infobox | markdownify }} + {{ else if $p.omschrijving }} + {{ $p.omschrijving | markdownify }} + {{ else }} + Selecteer opties en vul aantallen in. + {{ end }} + + +
+
+
+ Kosten eenmalig + 0 +
+
+ Kosten per maand + 0 +
+
+
+
+
+
+
+
+
+ {{ end }} +
+ +
+

+ Totaal eenmalig: 0
+ Kosten per maand: 0 +

+
+ +
+

Ontvang berekening en een persoonlijke offerte

+

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.

+

In de tussentijd nog vragen?
Bel dan naar +31 6 5796 9491 of stuur een email naar info@start-it.nl

+ + + + + + + +
+
+
+
+
+
+ +
+
+
+
+
+
+ + + diff --git a/vercel-build.sh b/vercel-build.sh new file mode 100755 index 0000000..3112724 --- /dev/null +++ b/vercel-build.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +# default versions +NODE_VERSION='20.10.0'; +GO_VERSION='1.24.1'; +HUGO_VERSION='0.145.0'; + +# install Node.js +# echo "Installing Node.js $NODE_VERSION..." +# curl -sSOL https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}.tar.gz +# tar -xzf node-v${NODE_VERSION}.tar.gz +# export PATH=$PATH:/usr/local/bin +# rm -rf node-v${NODE_VERSION}.tar.gz + +echo "USING NODE VERSION: $(node -v)" + +# install Go +echo "Installing Go $GO_VERSION..." +curl -sSOL https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz +tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz +export PATH=$PATH:/usr/local/go/bin +rm -rf go${GO_VERSION}.linux-amd64.tar.gz +go version + +# install Hugo +echo "Installing Hugo $HUGO_VERSION..." +curl -sSOL https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz +tar -xzf hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz +mv hugo /usr/local/bin/ +rm -rf hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz +hugo version + +# project setup +echo "Project setting up..." +npm run project-setup + +# install dependencies +echo "Installing project dependencies..." +npm install + +# run the build command +echo "Running the build command..." +npm run build diff --git a/vercel.json b/vercel.json new file mode 100755 index 0000000..f19fd34 --- /dev/null +++ b/vercel.json @@ -0,0 +1,11 @@ +{ + "builds": [ + { + "src": "vercel-build.sh", + "use": "@vercel/static-build", + "config": { + "distDir": "public" + } + } + ] +}