diff --git a/app.js b/app.js new file mode 100644 index 0000000..8b8cf1e --- /dev/null +++ b/app.js @@ -0,0 +1,52 @@ +var createError = require('http-errors'); +var express = require('express'); +var path = require('path'); +var cookieParser = require('cookie-parser'); +var engine = require("express-handlebars"); +var logger = require('morgan'); + +var engineHelper = require("./helper/hbsHelper"); + +var indexRouter = require('./routes/index'); +var usersRouter = require('./routes/users'); + +var app = express(); + +// view engine setup +const hbs = engine.create({ + extname: "hbs", + defaultLayout: "layout", + layoutsDir: `${__dirname}/views`, + partialsDir: `${__dirname}/views/partials`, + helpers: engineHelper, +}); +app.set('views', path.join(__dirname, 'views')); +app.set('view engine', 'hbs'); +app.engine("hbs", hbs.engine); + +app.use(logger('dev')); +app.use(express.json()); +app.use(express.urlencoded({ extended: false })); +app.use(cookieParser()); +app.use(express.static(path.join(__dirname, 'public'))); + +app.use('/', indexRouter); +app.use('/users', usersRouter); + +// catch 404 and forward to error handler +app.use(function (req, res, next) { + next(createError(404)); +}); + +// error handler +app.use(function (err, req, res, next) { + // set locals, only providing error in development + res.locals.message = err.message; + res.locals.error = req.app.get('env') === 'development' ? err : {}; + + // render the error page + res.status(err.status || 500); + res.render('error', {error:true}); +}); + +module.exports = app; diff --git a/bin/www b/bin/www new file mode 100644 index 0000000..c29a8a7 --- /dev/null +++ b/bin/www @@ -0,0 +1,90 @@ +#!/usr/bin/env node + +/** + * Module dependencies. + */ + +var app = require('../app'); +var debug = require('debug')('node-jobfair-2022:server'); +var http = require('http'); + +/** + * Get port from environment and store in Express. + */ + +var port = normalizePort(process.env.PORT || '3000'); +app.set('port', port); + +/** + * Create HTTP server. + */ + +var server = http.createServer(app); + +/** + * Listen on provided port, on all network interfaces. + */ + +server.listen(port); +server.on('error', onError); +server.on('listening', onListening); + +/** + * Normalize a port into a number, string, or false. + */ + +function normalizePort(val) { + var port = parseInt(val, 10); + + if (isNaN(port)) { + // named pipe + return val; + } + + if (port >= 0) { + // port number + return port; + } + + return false; +} + +/** + * Event listener for HTTP server "error" event. + */ + +function onError(error) { + if (error.syscall !== 'listen') { + throw error; + } + + var bind = typeof port === 'string' + ? 'Pipe ' + port + : 'Port ' + port; + + // handle specific listen errors with friendly messages + switch (error.code) { + case 'EACCES': + console.error(bind + ' requires elevated privileges'); + process.exit(1); + break; + case 'EADDRINUSE': + console.error(bind + ' is already in use'); + process.exit(1); + break; + default: + throw error; + } +} + +/** + * Event listener for HTTP server "listening" event. + */ + +function onListening() { + var addr = server.address(); + var bind = typeof addr === 'string' + ? 'pipe ' + addr + : 'port ' + addr.port; + debug('Listening on ' + bind); +} diff --git a/helper/functionHelper.js b/helper/functionHelper.js new file mode 100644 index 0000000..70e7e8c --- /dev/null +++ b/helper/functionHelper.js @@ -0,0 +1,22 @@ +module.exports = { + createUUID: () => { + var dt = new Date().getTime(); + var uuid = "xxxxyyxxyyxxyyyy".replace(/[xy]/g, function (c) { + var r = (dt + Math.random() * 16) % 16 | 0; + dt = Math.floor(dt / 16); + return (c == "x" ? r : (r & 0x3) | 0x8).toString(16); + }); + return uuid; + }, + changeDateType: (date) => { + const yyyy = date.getFullYear(); + let mm = date.getMonth() + 1; // Months start at 0! + let dd = date.getDate(); + + if (dd < 10) dd = "0" + dd; + if (mm < 10) mm = "0" + mm; + + const today = `${dd}/${mm}/${yyyy}`; + return today; + } +}; diff --git a/helper/hbsHelper.js b/helper/hbsHelper.js new file mode 100644 index 0000000..8eca948 --- /dev/null +++ b/helper/hbsHelper.js @@ -0,0 +1,14 @@ +module.exports = { + add: (val1, val2) => { + return parseInt(val1) + parseInt(val2); + }, + difference: (val1, val2) => { + return parseInt(val1) - parseInt(val2); + }, + multiply: (val1, val2) => { + return parseInt(val1) * parseInt(val2); + }, + divide: (val1, val2) => { + return parseInt(val1) / parseInt(val2); + }, +}; diff --git a/helper/userHelper.js b/helper/userHelper.js new file mode 100644 index 0000000..f6e5f5b --- /dev/null +++ b/helper/userHelper.js @@ -0,0 +1,39 @@ +const db = require('../config/database'); +const bcrypt = require('bcrypt'); + +module.exports = { + do_signup: (user) => { + return new Promise(async (resolve, reject) => { + user.password = await bcrypt.hash(user.password, 10); + db.get() + .collection(process.env.DB_COLLECTION_USER) + .insertOne(user) + .then((response) => { + resolve(response) + }).catch((error) => { + reject(error) + }) + }) + }, + + check_user_exist: (email) => { + return new Promise(async (resolve, reject) => { + db.get() + .collection(process.env.DB_COLLECTION_USER) + .findOne( + { + email: email + } + ) + .then((response) => { + if (response) { + resolve(true) + } else { + resolve(false) + } + }).catch((error) => { + reject(error) + }) + }) + } +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..d7a8b6d --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1226 @@ +{ + "name": "node-jobfair-2022", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "node-jobfair-2022", + "version": "0.0.0", + "dependencies": { + "cookie-parser": "~1.4.4", + "debug": "~2.6.9", + "express": "~4.16.1", + "express-handlebars": "^6.0.6", + "hbs": "^4.2.0", + "http-errors": "~1.6.3", + "morgan": "~1.9.1" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "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==" + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha512-YQyoqQG3sO8iCmf8+hyVpgHHOv0/hCEFiS4zTGUwTA1HjAFX66wRcNQrVCeJq9pgESMRvUAOvSil5MJlmccuKQ==", + "dependencies": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "~1.6.3", + "iconv-lite": "0.4.23", + "on-finished": "~2.3.0", + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "~1.6.16" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-parser": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", + "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", + "dependencies": { + "cookie": "0.4.1", + "cookie-signature": "1.0.6" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", + "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", + "dependencies": { + "accepts": "~1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.3", + "content-disposition": "0.5.2", + "content-type": "~1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.4", + "qs": "6.5.2", + "range-parser": "~1.2.0", + "safe-buffer": "5.1.2", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "~1.4.0", + "type-is": "~1.6.16", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express-handlebars": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/express-handlebars/-/express-handlebars-6.0.6.tgz", + "integrity": "sha512-E4QHYCh+9fyfdBEb8uKJ8p6HD4qq/sUSHBq83lRNlLJp2TQKEg2nFJYbVdC+M3QzaV19dODe43lgjQWVaIpbyQ==", + "dependencies": { + "glob": "^8.0.2", + "graceful-fs": "^4.2.10", + "handlebars": "^4.7.7" + }, + "engines": { + "node": ">=v12.22.9" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/finalhandler": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/foreachasync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", + "integrity": "sha512-J+ler7Ta54FwwNcx6wQRDhTIbNeyDcARMkOcguEqnEdtm0jKvN3Li3PDAb2Du3ubJYEWfYL83XMROXdsXAXycw==" + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "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==" + }, + "node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "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/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/hbs": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/hbs/-/hbs-4.2.0.tgz", + "integrity": "sha512-dQwHnrfWlTk5PvG9+a45GYpg0VpX47ryKF8dULVd6DtwOE6TEcYQXQ5QM6nyOx/h7v3bvEQbdn19EDAcfUAgZg==", + "dependencies": { + "handlebars": "4.7.7", + "walk": "2.3.15" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "bin": { + "mime": "cli.js" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "node_modules/morgan": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", + "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", + "dependencies": { + "basic-auth": "~2.0.0", + "debug": "2.6.9", + "depd": "~1.1.2", + "on-finished": "~2.3.0", + "on-headers": "~1.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "dependencies": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/uglify-js": { + "version": "3.16.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.2.tgz", + "integrity": "sha512-AaQNokTNgExWrkEYA24BTNMSjyqEXPSfhqoS0AxmHkCJ4U+Dyy5AvbGV/sqxuxficEfGGoX3zWw9R7QpLFfEsg==", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/walk": { + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.15.tgz", + "integrity": "sha512-4eRTBZljBfIISK1Vnt69Gvr2w/wc3U6Vtrw7qiN5iqYJPH7LElcYh/iU4XWhdCy2dZqv1ToMyYlybDylfG/5Vg==", + "dependencies": { + "foreachasync": "^3.0.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" + }, + "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==" + } + }, + "dependencies": { + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "body-parser": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha512-YQyoqQG3sO8iCmf8+hyVpgHHOv0/hCEFiS4zTGUwTA1HjAFX66wRcNQrVCeJq9pgESMRvUAOvSil5MJlmccuKQ==", + "requires": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "~1.6.3", + "iconv-lite": "0.4.23", + "on-finished": "~2.3.0", + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "~1.6.16" + } + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==" + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + }, + "cookie-parser": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", + "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", + "requires": { + "cookie": "0.4.1", + "cookie-signature": "1.0.6" + } + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "express": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", + "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", + "requires": { + "accepts": "~1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.3", + "content-disposition": "0.5.2", + "content-type": "~1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.4", + "qs": "6.5.2", + "range-parser": "~1.2.0", + "safe-buffer": "5.1.2", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "~1.4.0", + "type-is": "~1.6.16", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==" + } + } + }, + "express-handlebars": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/express-handlebars/-/express-handlebars-6.0.6.tgz", + "integrity": "sha512-E4QHYCh+9fyfdBEb8uKJ8p6HD4qq/sUSHBq83lRNlLJp2TQKEg2nFJYbVdC+M3QzaV19dODe43lgjQWVaIpbyQ==", + "requires": { + "glob": "^8.0.2", + "graceful-fs": "^4.2.10", + "handlebars": "^4.7.7" + } + }, + "finalhandler": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" + } + }, + "foreachasync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", + "integrity": "sha512-J+ler7Ta54FwwNcx6wQRDhTIbNeyDcARMkOcguEqnEdtm0jKvN3Li3PDAb2Du3ubJYEWfYL83XMROXdsXAXycw==" + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } + }, + "hbs": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/hbs/-/hbs-4.2.0.tgz", + "integrity": "sha512-dQwHnrfWlTk5PvG9+a45GYpg0VpX47ryKF8dULVd6DtwOE6TEcYQXQ5QM6nyOx/h7v3bvEQbdn19EDAcfUAgZg==", + "requires": { + "handlebars": "4.7.7", + "walk": "2.3.15" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "morgan": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", + "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", + "requires": { + "basic-auth": "~2.0.0", + "debug": "2.6.9", + "depd": "~1.1.2", + "on-finished": "~2.3.0", + "on-headers": "~1.0.1" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + } + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "uglify-js": { + "version": "3.16.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.2.tgz", + "integrity": "sha512-AaQNokTNgExWrkEYA24BTNMSjyqEXPSfhqoS0AxmHkCJ4U+Dyy5AvbGV/sqxuxficEfGGoX3zWw9R7QpLFfEsg==", + "optional": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "walk": { + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.15.tgz", + "integrity": "sha512-4eRTBZljBfIISK1Vnt69Gvr2w/wc3U6Vtrw7qiN5iqYJPH7LElcYh/iU4XWhdCy2dZqv1ToMyYlybDylfG/5Vg==", + "requires": { + "foreachasync": "^3.0.0" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..e7852a9 --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "name": "node-jobfair-2022", + "version": "0.0.0", + "private": true, + "scripts": { + "start": "node ./bin/www" + }, + "dependencies": { + "cookie-parser": "~1.4.4", + "debug": "~2.6.9", + "express": "~4.16.1", + "express-handlebars": "^6.0.6", + "hbs": "^4.2.0", + "http-errors": "~1.6.3", + "morgan": "~1.9.1" + } +} diff --git a/public/assets/Icons/icon.svg b/public/assets/Icons/icon.svg new file mode 100644 index 0000000..6cc5b3c --- /dev/null +++ b/public/assets/Icons/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/assets/img/Recruiters/ARS.jpg b/public/assets/img/Recruiters/ARS.jpg new file mode 100644 index 0000000..2f77233 Binary files /dev/null and b/public/assets/img/Recruiters/ARS.jpg differ diff --git a/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/Logo - pearl soft.jpg b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/Logo - pearl soft.jpg new file mode 100644 index 0000000..f7b5ec2 Binary files /dev/null and b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/Logo - pearl soft.jpg differ diff --git a/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/Logo- 90 plus my tution app.jpeg b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/Logo- 90 plus my tution app.jpeg new file mode 100644 index 0000000..8f085eb Binary files /dev/null and b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/Logo- 90 plus my tution app.jpeg differ diff --git a/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - Livares.png b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - Livares.png new file mode 100644 index 0000000..a244e1c Binary files /dev/null and b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - Livares.png differ diff --git a/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - Squad S.gif b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - Squad S.gif new file mode 100644 index 0000000..c4d84f4 Binary files /dev/null and b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - Squad S.gif differ diff --git a/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - Vuelogix.png b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - Vuelogix.png new file mode 100644 index 0000000..e0ee5af Binary files /dev/null and b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - Vuelogix.png differ diff --git a/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - mozilor.jpg b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - mozilor.jpg new file mode 100644 index 0000000..abb4c3a Binary files /dev/null and b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - mozilor.jpg differ diff --git a/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - mozilor.zip b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - mozilor.zip new file mode 100644 index 0000000..a50806e Binary files /dev/null and b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - mozilor.zip differ diff --git a/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - nest digital.jpg b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - nest digital.jpg new file mode 100644 index 0000000..08708e1 Binary files /dev/null and b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - nest digital.jpg differ diff --git a/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - one soft.png b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - one soft.png new file mode 100644 index 0000000..cbc145e Binary files /dev/null and b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - one soft.png differ diff --git a/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - open trends.png b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - open trends.png new file mode 100644 index 0000000..af34d6b Binary files /dev/null and b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo - open trends.png differ diff --git a/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo -Codelynks.png b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo -Codelynks.png new file mode 100644 index 0000000..0cb1a81 Binary files /dev/null and b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo -Codelynks.png differ diff --git a/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo SJ.jpg b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo SJ.jpg new file mode 100644 index 0000000..71034af Binary files /dev/null and b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo SJ.jpg differ diff --git a/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo mettle.png b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo mettle.png new file mode 100644 index 0000000..3dd1dd4 Binary files /dev/null and b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo mettle.png differ diff --git a/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo- Aaba soft.png b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo- Aaba soft.png new file mode 100644 index 0000000..bb8f1a0 Binary files /dev/null and b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo- Aaba soft.png differ diff --git a/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo- faya.jpg b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo- faya.jpg new file mode 100644 index 0000000..a45fd10 Binary files /dev/null and b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo- faya.jpg differ diff --git a/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo-aTeam.jpg b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo-aTeam.jpg new file mode 100644 index 0000000..fdb3b8a Binary files /dev/null and b/public/assets/img/Recruiters/Company Logo (File responses)/Company Logo (File responses)/logo-aTeam.jpg differ diff --git a/public/assets/img/Recruiters/Design Alpha.png b/public/assets/img/Recruiters/Design Alpha.png new file mode 100644 index 0000000..9cc75b0 Binary files /dev/null and b/public/assets/img/Recruiters/Design Alpha.png differ diff --git a/public/assets/img/Recruiters/Geojith Technologies.png b/public/assets/img/Recruiters/Geojith Technologies.png new file mode 100644 index 0000000..0839252 Binary files /dev/null and b/public/assets/img/Recruiters/Geojith Technologies.png differ diff --git a/public/assets/img/Recruiters/LEEYE-T LLP .png b/public/assets/img/Recruiters/LEEYE-T LLP .png new file mode 100644 index 0000000..bf172a6 Binary files /dev/null and b/public/assets/img/Recruiters/LEEYE-T LLP .png differ diff --git a/public/assets/img/Recruiters/Logo - pearl soft.jpg b/public/assets/img/Recruiters/Logo - pearl soft.jpg new file mode 100644 index 0000000..f7b5ec2 Binary files /dev/null and b/public/assets/img/Recruiters/Logo - pearl soft.jpg differ diff --git a/public/assets/img/Recruiters/Logo- 90 plus my tution app.jpeg b/public/assets/img/Recruiters/Logo- 90 plus my tution app.jpeg new file mode 100644 index 0000000..8f085eb Binary files /dev/null and b/public/assets/img/Recruiters/Logo- 90 plus my tution app.jpeg differ diff --git a/public/assets/img/Recruiters/Logo-Linsys - Jeena Yousuf.PNG b/public/assets/img/Recruiters/Logo-Linsys - Jeena Yousuf.PNG new file mode 100644 index 0000000..0e54532 Binary files /dev/null and b/public/assets/img/Recruiters/Logo-Linsys - Jeena Yousuf.PNG differ diff --git a/public/assets/img/Recruiters/PITS Logo - Tony Joseph.png b/public/assets/img/Recruiters/PITS Logo - Tony Joseph.png new file mode 100644 index 0000000..2b5d8fb Binary files /dev/null and b/public/assets/img/Recruiters/PITS Logo - Tony Joseph.png differ diff --git a/public/assets/img/Recruiters/Panashi.png b/public/assets/img/Recruiters/Panashi.png new file mode 100644 index 0000000..2b95a63 Binary files /dev/null and b/public/assets/img/Recruiters/Panashi.png differ diff --git a/public/assets/img/Recruiters/Qmetron.jpg b/public/assets/img/Recruiters/Qmetron.jpg new file mode 100644 index 0000000..4f0e546 Binary files /dev/null and b/public/assets/img/Recruiters/Qmetron.jpg differ diff --git a/public/assets/img/Recruiters/Redux_Logomark_RGB - Anna Philip.png b/public/assets/img/Recruiters/Redux_Logomark_RGB - Anna Philip.png new file mode 100644 index 0000000..5daa326 Binary files /dev/null and b/public/assets/img/Recruiters/Redux_Logomark_RGB - Anna Philip.png differ diff --git a/public/assets/img/Recruiters/Reizend pvt ltd logo - Deethu T D.png b/public/assets/img/Recruiters/Reizend pvt ltd logo - Deethu T D.png new file mode 100644 index 0000000..76e2512 Binary files /dev/null and b/public/assets/img/Recruiters/Reizend pvt ltd logo - Deethu T D.png differ diff --git a/public/assets/img/Recruiters/SIL - JOBS AT SOFTLAND.jpg b/public/assets/img/Recruiters/SIL - JOBS AT SOFTLAND.jpg new file mode 100644 index 0000000..b5a313c Binary files /dev/null and b/public/assets/img/Recruiters/SIL - JOBS AT SOFTLAND.jpg differ diff --git a/public/assets/img/Recruiters/Smart HMS - Deethu T D.jpg b/public/assets/img/Recruiters/Smart HMS - Deethu T D.jpg new file mode 100644 index 0000000..53e9ae8 Binary files /dev/null and b/public/assets/img/Recruiters/Smart HMS - Deethu T D.jpg differ diff --git a/public/assets/img/Recruiters/TALogo .png b/public/assets/img/Recruiters/TALogo .png new file mode 100644 index 0000000..5e4cca6 Binary files /dev/null and b/public/assets/img/Recruiters/TALogo .png differ diff --git a/public/assets/img/Recruiters/TP-LOGO_CMYK_-01 - Anie Mathew.png b/public/assets/img/Recruiters/TP-LOGO_CMYK_-01 - Anie Mathew.png new file mode 100644 index 0000000..5157419 Binary files /dev/null and b/public/assets/img/Recruiters/TP-LOGO_CMYK_-01 - Anie Mathew.png differ diff --git a/public/assets/img/Recruiters/Telestaion.jpg b/public/assets/img/Recruiters/Telestaion.jpg new file mode 100644 index 0000000..e42baa4 Binary files /dev/null and b/public/assets/img/Recruiters/Telestaion.jpg differ diff --git a/public/assets/img/Recruiters/Triassic.jpg b/public/assets/img/Recruiters/Triassic.jpg new file mode 100644 index 0000000..bf62c10 Binary files /dev/null and b/public/assets/img/Recruiters/Triassic.jpg differ diff --git a/public/assets/img/Recruiters/accubits.jpeg b/public/assets/img/Recruiters/accubits.jpeg new file mode 100644 index 0000000..58c3367 Binary files /dev/null and b/public/assets/img/Recruiters/accubits.jpeg differ diff --git a/public/assets/img/Recruiters/acsia.jfif b/public/assets/img/Recruiters/acsia.jfif new file mode 100644 index 0000000..10240c6 Binary files /dev/null and b/public/assets/img/Recruiters/acsia.jfif differ diff --git a/public/assets/img/Recruiters/aytech.jpeg b/public/assets/img/Recruiters/aytech.jpeg new file mode 100644 index 0000000..a67d318 Binary files /dev/null and b/public/assets/img/Recruiters/aytech.jpeg differ diff --git a/public/assets/img/Recruiters/benlycos.png b/public/assets/img/Recruiters/benlycos.png new file mode 100644 index 0000000..bb7d4b5 Binary files /dev/null and b/public/assets/img/Recruiters/benlycos.png differ diff --git a/public/assets/img/Recruiters/coexin.jpg b/public/assets/img/Recruiters/coexin.jpg new file mode 100644 index 0000000..3bd95dd Binary files /dev/null and b/public/assets/img/Recruiters/coexin.jpg differ diff --git a/public/assets/img/Recruiters/cool minds.png b/public/assets/img/Recruiters/cool minds.png new file mode 100644 index 0000000..df8ef48 Binary files /dev/null and b/public/assets/img/Recruiters/cool minds.png differ diff --git a/public/assets/img/Recruiters/dinoct.png b/public/assets/img/Recruiters/dinoct.png new file mode 100644 index 0000000..0e641cc Binary files /dev/null and b/public/assets/img/Recruiters/dinoct.png differ diff --git a/public/assets/img/Recruiters/freston.png b/public/assets/img/Recruiters/freston.png new file mode 100644 index 0000000..13a7d3e Binary files /dev/null and b/public/assets/img/Recruiters/freston.png differ diff --git a/public/assets/img/Recruiters/gh_logo_tag_stacked_rgb_stacked_rgb.svg b/public/assets/img/Recruiters/gh_logo_tag_stacked_rgb_stacked_rgb.svg new file mode 100644 index 0000000..d53a579 --- /dev/null +++ b/public/assets/img/Recruiters/gh_logo_tag_stacked_rgb_stacked_rgb.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/img/Recruiters/hermoneytalks.png b/public/assets/img/Recruiters/hermoneytalks.png new file mode 100644 index 0000000..d7f69dd Binary files /dev/null and b/public/assets/img/Recruiters/hermoneytalks.png differ diff --git a/public/assets/img/Recruiters/hrblock.png b/public/assets/img/Recruiters/hrblock.png new file mode 100644 index 0000000..89b61a4 Binary files /dev/null and b/public/assets/img/Recruiters/hrblock.png differ diff --git a/public/assets/img/Recruiters/hybcloud.png b/public/assets/img/Recruiters/hybcloud.png new file mode 100644 index 0000000..41772af Binary files /dev/null and b/public/assets/img/Recruiters/hybcloud.png differ diff --git a/public/assets/img/Recruiters/kimball.png b/public/assets/img/Recruiters/kimball.png new file mode 100644 index 0000000..5d8b0ed Binary files /dev/null and b/public/assets/img/Recruiters/kimball.png differ diff --git a/public/assets/img/Recruiters/kott.jpg b/public/assets/img/Recruiters/kott.jpg new file mode 100644 index 0000000..c04e02f Binary files /dev/null and b/public/assets/img/Recruiters/kott.jpg differ diff --git a/public/assets/img/Recruiters/logo - Livares.png b/public/assets/img/Recruiters/logo - Livares.png new file mode 100644 index 0000000..a244e1c Binary files /dev/null and b/public/assets/img/Recruiters/logo - Livares.png differ diff --git a/public/assets/img/Recruiters/logo - Squad S.gif b/public/assets/img/Recruiters/logo - Squad S.gif new file mode 100644 index 0000000..c4d84f4 Binary files /dev/null and b/public/assets/img/Recruiters/logo - Squad S.gif differ diff --git a/public/assets/img/Recruiters/logo - Vuelogix.png b/public/assets/img/Recruiters/logo - Vuelogix.png new file mode 100644 index 0000000..e0ee5af Binary files /dev/null and b/public/assets/img/Recruiters/logo - Vuelogix.png differ diff --git a/public/assets/img/Recruiters/logo - mozilor.jpg b/public/assets/img/Recruiters/logo - mozilor.jpg new file mode 100644 index 0000000..abb4c3a Binary files /dev/null and b/public/assets/img/Recruiters/logo - mozilor.jpg differ diff --git a/public/assets/img/Recruiters/logo - nest digital.jpg b/public/assets/img/Recruiters/logo - nest digital.jpg new file mode 100644 index 0000000..08708e1 Binary files /dev/null and b/public/assets/img/Recruiters/logo - nest digital.jpg differ diff --git a/public/assets/img/Recruiters/logo - one soft.png b/public/assets/img/Recruiters/logo - one soft.png new file mode 100644 index 0000000..cbc145e Binary files /dev/null and b/public/assets/img/Recruiters/logo - one soft.png differ diff --git a/public/assets/img/Recruiters/logo - open trends.png b/public/assets/img/Recruiters/logo - open trends.png new file mode 100644 index 0000000..af34d6b Binary files /dev/null and b/public/assets/img/Recruiters/logo - open trends.png differ diff --git a/public/assets/img/Recruiters/logo -Codelynks.png b/public/assets/img/Recruiters/logo -Codelynks.png new file mode 100644 index 0000000..0cb1a81 Binary files /dev/null and b/public/assets/img/Recruiters/logo -Codelynks.png differ diff --git a/public/assets/img/Recruiters/logo SJ.jpg b/public/assets/img/Recruiters/logo SJ.jpg new file mode 100644 index 0000000..71034af Binary files /dev/null and b/public/assets/img/Recruiters/logo SJ.jpg differ diff --git a/public/assets/img/Recruiters/logo mettle.png b/public/assets/img/Recruiters/logo mettle.png new file mode 100644 index 0000000..3dd1dd4 Binary files /dev/null and b/public/assets/img/Recruiters/logo mettle.png differ diff --git a/public/assets/img/Recruiters/logo- Aaba soft.png b/public/assets/img/Recruiters/logo- Aaba soft.png new file mode 100644 index 0000000..bb8f1a0 Binary files /dev/null and b/public/assets/img/Recruiters/logo- Aaba soft.png differ diff --git a/public/assets/img/Recruiters/logo- faya.jpg b/public/assets/img/Recruiters/logo- faya.jpg new file mode 100644 index 0000000..a45fd10 Binary files /dev/null and b/public/assets/img/Recruiters/logo- faya.jpg differ diff --git a/public/assets/img/Recruiters/logo-aTeam.jpg b/public/assets/img/Recruiters/logo-aTeam.jpg new file mode 100644 index 0000000..fdb3b8a Binary files /dev/null and b/public/assets/img/Recruiters/logo-aTeam.jpg differ diff --git a/public/assets/img/Recruiters/mobiotics - Silpa Tirumalai.png b/public/assets/img/Recruiters/mobiotics - Silpa Tirumalai.png new file mode 100644 index 0000000..4499e70 Binary files /dev/null and b/public/assets/img/Recruiters/mobiotics - Silpa Tirumalai.png differ diff --git a/public/assets/img/Recruiters/orisys.png b/public/assets/img/Recruiters/orisys.png new file mode 100644 index 0000000..e96eaa2 Binary files /dev/null and b/public/assets/img/Recruiters/orisys.png differ diff --git a/public/assets/img/Recruiters/pearsoft.jpg b/public/assets/img/Recruiters/pearsoft.jpg new file mode 100644 index 0000000..f7b5ec2 Binary files /dev/null and b/public/assets/img/Recruiters/pearsoft.jpg differ diff --git a/public/assets/img/Recruiters/qwder.png b/public/assets/img/Recruiters/qwder.png new file mode 100644 index 0000000..54a52c1 Binary files /dev/null and b/public/assets/img/Recruiters/qwder.png differ diff --git a/public/assets/img/Recruiters/sniqaya.png b/public/assets/img/Recruiters/sniqaya.png new file mode 100644 index 0000000..3157cc0 Binary files /dev/null and b/public/assets/img/Recruiters/sniqaya.png differ diff --git a/public/assets/img/Recruiters/spawos.png b/public/assets/img/Recruiters/spawos.png new file mode 100644 index 0000000..fdff519 Binary files /dev/null and b/public/assets/img/Recruiters/spawos.png differ diff --git a/public/assets/img/Recruiters/suyatti.png b/public/assets/img/Recruiters/suyatti.png new file mode 100644 index 0000000..ff584bc Binary files /dev/null and b/public/assets/img/Recruiters/suyatti.png differ diff --git a/public/assets/img/Recruiters/tataelxi.png b/public/assets/img/Recruiters/tataelxi.png new file mode 100644 index 0000000..c2cb68a Binary files /dev/null and b/public/assets/img/Recruiters/tataelxi.png differ diff --git a/public/assets/img/Recruiters/uvj.jpg b/public/assets/img/Recruiters/uvj.jpg new file mode 100644 index 0000000..174bdd6 Binary files /dev/null and b/public/assets/img/Recruiters/uvj.jpg differ diff --git a/public/assets/img/about.jpg b/public/assets/img/about.jpg new file mode 100644 index 0000000..04b3476 Binary files /dev/null and b/public/assets/img/about.jpg differ diff --git a/public/assets/img/background.jpg b/public/assets/img/background.jpg new file mode 100644 index 0000000..b504507 Binary files /dev/null and b/public/assets/img/background.jpg differ diff --git a/public/assets/img/counts-img.svg b/public/assets/img/counts-img.svg new file mode 100644 index 0000000..ab73671 --- /dev/null +++ b/public/assets/img/counts-img.svg @@ -0,0 +1 @@ +winners \ No newline at end of file diff --git a/public/assets/img/image_1.jpeg b/public/assets/img/image_1.jpeg new file mode 100644 index 0000000..5538368 Binary files /dev/null and b/public/assets/img/image_1.jpeg differ diff --git a/public/assets/img/image_2.jpeg b/public/assets/img/image_2.jpeg new file mode 100644 index 0000000..5b99e66 Binary files /dev/null and b/public/assets/img/image_2.jpeg differ diff --git a/public/assets/img/services.png b/public/assets/img/services.png new file mode 100644 index 0000000..c632cd2 Binary files /dev/null and b/public/assets/img/services.png differ diff --git a/public/assets/img/team/IEEE Kerala Section Logo.png b/public/assets/img/team/IEEE Kerala Section Logo.png new file mode 100644 index 0000000..176e262 Binary files /dev/null and b/public/assets/img/team/IEEE Kerala Section Logo.png differ diff --git a/public/assets/img/team/IKYP-Color.webp b/public/assets/img/team/IKYP-Color.webp new file mode 100644 index 0000000..0183c63 Binary files /dev/null and b/public/assets/img/team/IKYP-Color.webp differ diff --git a/public/assets/img/team/Logo.png b/public/assets/img/team/Logo.png new file mode 100644 index 0000000..17944fd Binary files /dev/null and b/public/assets/img/team/Logo.png differ diff --git a/public/assets/img/team/infoparkLogo.svg b/public/assets/img/team/infoparkLogo.svg new file mode 100644 index 0000000..3e045bf --- /dev/null +++ b/public/assets/img/team/infoparkLogo.svg @@ -0,0 +1,181 @@ + + + + + + + + + + + + diff --git a/public/assets/img/team/link.png b/public/assets/img/team/link.png new file mode 100644 index 0000000..8f43cb2 Binary files /dev/null and b/public/assets/img/team/link.png differ diff --git a/public/assets/vendor/glightbox/css/glightbox.css b/public/assets/vendor/glightbox/css/glightbox.css new file mode 100644 index 0000000..877ff63 --- /dev/null +++ b/public/assets/vendor/glightbox/css/glightbox.css @@ -0,0 +1,942 @@ +.glightbox-container { + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + z-index: 999999 !important; + overflow: hidden; + -ms-touch-action: none; + touch-action: none; + -webkit-text-size-adjust: 100%; + -moz-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + text-size-adjust: 100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + outline: none; + overflow: hidden; +} + +.glightbox-container.inactive { + display: none; +} + +.glightbox-container .gcontainer { + position: relative; + width: 100%; + height: 100%; + z-index: 9999; + overflow: hidden; +} + +.glightbox-container .gslider { + -webkit-transition: -webkit-transform 0.4s ease; + transition: -webkit-transform 0.4s ease; + transition: transform 0.4s ease; + transition: transform 0.4s ease, -webkit-transform 0.4s ease; + height: 100%; + left: 0; + top: 0; + width: 100%; + position: relative; + overflow: hidden; + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} + +.glightbox-container .gslide { + width: 100%; + position: absolute; + opacity: 1; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + opacity: 0; +} + +.glightbox-container .gslide.current { + opacity: 1; + z-index: 99999; + position: relative; +} + +.glightbox-container .gslide.prev { + opacity: 1; + z-index: 9999; +} + +.glightbox-container .gslide-inner-content { + width: 100%; +} + +.glightbox-container .ginner-container { + position: relative; + width: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + max-width: 100%; + margin: auto; + height: 100vh; +} + +.glightbox-container .ginner-container.gvideo-container { + width: 100%; +} + +.glightbox-container .ginner-container.desc-bottom, + .glightbox-container .ginner-container.desc-top { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} + +.glightbox-container .ginner-container.desc-left, + .glightbox-container .ginner-container.desc-right { + max-width: 100% !important; +} + +.gslide iframe, + .gslide video { + outline: none !important; + border: none; + min-height: 165px; + -webkit-overflow-scrolling: touch; + -ms-touch-action: auto; + touch-action: auto; +} + +.gslide:not(.current) { + pointer-events: none; +} + +.gslide-image { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.gslide-image img { + max-height: 100vh; + display: block; + padding: 0; + float: none; + outline: none; + border: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + max-width: 100vw; + width: auto; + height: auto; + -o-object-fit: cover; + object-fit: cover; + -ms-touch-action: none; + touch-action: none; + margin: auto; + min-width: 200px; +} + +.desc-top .gslide-image img, + .desc-bottom .gslide-image img { + width: auto; +} + +.desc-left .gslide-image img, + .desc-right .gslide-image img { + width: auto; + max-width: 100%; +} + +.gslide-image img.zoomable { + position: relative; +} + +.gslide-image img.dragging { + cursor: -webkit-grabbing !important; + cursor: grabbing !important; + -webkit-transition: none; + transition: none; +} + +.gslide-video { + position: relative; + max-width: 100vh; + width: 100% !important; +} + +.gslide-video .gvideo-wrapper { + width: 100%; + /* max-width: 160vmin; */ + margin: auto; +} + +.gslide-video::before { + content: ''; + display: block; + position: absolute; + width: 100%; + height: 100%; + background: rgba(255, 0, 0, 0.34); + display: none; +} + +.gslide-video.playing::before { + display: none; +} + +.gslide-video.fullscreen { + max-width: 100% !important; + min-width: 100%; + height: 75vh; +} + +.gslide-video.fullscreen video { + max-width: 100% !important; + width: 100% !important; +} + +.gslide-inline { + background: #fff; + text-align: left; + max-height: calc(100vh - 40px); + overflow: auto; + max-width: 100%; +} + +.gslide-inline .ginlined-content { + padding: 20px; + width: 100%; +} + +.gslide-inline .dragging { + cursor: -webkit-grabbing !important; + cursor: grabbing !important; + -webkit-transition: none; + transition: none; +} + +.ginlined-content { + overflow: auto; + display: block !important; + opacity: 1; +} + +.gslide-external { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + width: 100%; + min-width: 100%; + background: #fff; + padding: 0; + overflow: auto; + max-height: 75vh; + height: 100%; +} + +.gslide-media { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + width: auto; +} + +.zoomed .gslide-media { + -webkit-box-shadow: none !important; + box-shadow: none !important; +} + +.desc-top .gslide-media, + .desc-bottom .gslide-media { + margin: 0 auto; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} + +.gslide-description { + position: relative; + -webkit-box-flex: 1; + -ms-flex: 1 0 100%; + flex: 1 0 100%; +} + +.gslide-description.description-left, + .gslide-description.description-right { + max-width: 100%; +} + +.gslide-description.description-bottom, + .gslide-description.description-top { + margin: 0 auto; + width: 100%; +} + +.gslide-description p { + margin-bottom: 12px; +} + +.gslide-description p:last-child { + margin-bottom: 0; +} + +.zoomed .gslide-description { + display: none; +} + +.glightbox-button-hidden { + display: none; +} + + +/* + * Description for mobiles + * something like facebook does the description + * for the photos +*/ + +.glightbox-mobile .glightbox-container .gslide-description { + height: auto !important; + width: 100%; + background: transparent; + position: absolute; + bottom: 0; + padding: 19px 11px; + max-width: 100vw !important; + -webkit-box-ordinal-group: 3 !important; + -ms-flex-order: 2 !important; + order: 2 !important; + max-height: 78vh; + overflow: auto !important; + background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.75))); + background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.75) 100%); + -webkit-transition: opacity 0.3s linear; + transition: opacity 0.3s linear; + padding-bottom: 50px; +} + +.glightbox-mobile .glightbox-container .gslide-title { + color: #fff; + font-size: 1em; +} + +.glightbox-mobile .glightbox-container .gslide-desc { + color: #a1a1a1; +} + +.glightbox-mobile .glightbox-container .gslide-desc a { + color: #fff; + font-weight: bold; +} + +.glightbox-mobile .glightbox-container .gslide-desc * { + color: inherit; +} + +.glightbox-mobile .glightbox-container .gslide-desc string { + color: #fff; +} + +.glightbox-mobile .glightbox-container .gslide-desc .desc-more { + color: #fff; + opacity: 0.4; +} + +.gdesc-open .gslide-media { + -webkit-transition: opacity 0.5s ease; + transition: opacity 0.5s ease; + opacity: 0.4; +} + +.gdesc-open .gdesc-inner { + padding-bottom: 30px; +} + +.gdesc-closed .gslide-media { + -webkit-transition: opacity 0.5s ease; + transition: opacity 0.5s ease; + opacity: 1; +} + +.greset { + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +.gabsolute { + position: absolute; +} + +.grelative { + position: relative; +} + +.glightbox-desc { + display: none !important; +} + +.glightbox-open { + overflow: hidden; +} + +.gloader { + height: 25px; + width: 25px; + -webkit-animation: lightboxLoader 0.8s infinite linear; + animation: lightboxLoader 0.8s infinite linear; + border: 2px solid #fff; + border-right-color: transparent; + border-radius: 50%; + position: absolute; + display: block; + z-index: 9999; + left: 0; + right: 0; + margin: 0 auto; + top: 47%; +} + +.goverlay { + width: 100%; + height: calc(100vh + 1px); + position: fixed; + top: -1px; + left: 0; + background: #000; + will-change: opacity; +} + +.glightbox-mobile .goverlay { + background: #000; +} + +.gprev, +.gnext, +.gclose { + z-index: 99999; + cursor: pointer; + width: 26px; + height: 44px; + border: none; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} + +.gprev svg, +.gnext svg, +.gclose svg { + display: block; + width: 25px; + height: auto; + margin: 0; + padding: 0; +} + +.gprev.disabled, +.gnext.disabled, +.gclose.disabled { + opacity: 0.1; +} + +.gprev .garrow, +.gnext .garrow, +.gclose .garrow { + stroke: #fff; +} + +.gbtn.focused { + outline: 2px solid #0f3d81; +} + +iframe.wait-autoplay { + opacity: 0; +} + +.glightbox-closing .gnext, + .glightbox-closing .gprev, + .glightbox-closing .gclose { + opacity: 0 !important; +} + + +/*Skin */ + +.glightbox-clean .gslide-description { + background: #fff; +} + +.glightbox-clean .gdesc-inner { + padding: 22px 20px; +} + +.glightbox-clean .gslide-title { + font-size: 1em; + font-weight: normal; + font-family: arial; + color: #000; + margin-bottom: 19px; + line-height: 1.4em; +} + +.glightbox-clean .gslide-desc { + font-size: 0.86em; + margin-bottom: 0; + font-family: arial; + line-height: 1.4em; +} + +.glightbox-clean .gslide-video { + background: #000; +} + +.glightbox-clean .gprev, + .glightbox-clean .gnext, + .glightbox-clean .gclose { + background-color: rgba(0, 0, 0, 0.75); + border-radius: 4px; +} + +.glightbox-clean .gprev path, +.glightbox-clean .gnext path, +.glightbox-clean .gclose path { + fill: #fff; +} + +.glightbox-clean .gprev { + position: absolute; + top: -100%; + left: 30px; + width: 40px; + height: 50px; +} + +.glightbox-clean .gnext { + position: absolute; + top: -100%; + right: 30px; + width: 40px; + height: 50px; +} + +.glightbox-clean .gclose { + width: 35px; + height: 35px; + top: 15px; + right: 10px; + position: absolute; +} + +.glightbox-clean .gclose svg { + width: 18px; + height: auto; +} + +.glightbox-clean .gclose:hover { + opacity: 1; +} + + +/*CSS Animations*/ + +.gfadeIn { + -webkit-animation: gfadeIn 0.5s ease; + animation: gfadeIn 0.5s ease; +} + +.gfadeOut { + -webkit-animation: gfadeOut 0.5s ease; + animation: gfadeOut 0.5s ease; +} + +.gslideOutLeft { + -webkit-animation: gslideOutLeft 0.3s ease; + animation: gslideOutLeft 0.3s ease; +} + +.gslideInLeft { + -webkit-animation: gslideInLeft 0.3s ease; + animation: gslideInLeft 0.3s ease; +} + +.gslideOutRight { + -webkit-animation: gslideOutRight 0.3s ease; + animation: gslideOutRight 0.3s ease; +} + +.gslideInRight { + -webkit-animation: gslideInRight 0.3s ease; + animation: gslideInRight 0.3s ease; +} + +.gzoomIn { + -webkit-animation: gzoomIn 0.5s ease; + animation: gzoomIn 0.5s ease; +} + +.gzoomOut { + -webkit-animation: gzoomOut 0.5s ease; + animation: gzoomOut 0.5s ease; +} + +@-webkit-keyframes lightboxLoader { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes lightboxLoader { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@-webkit-keyframes gfadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} + +@keyframes gfadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} + +@-webkit-keyframes gfadeOut { + from { + opacity: 1; + } + to { + opacity: 0; + } +} + +@keyframes gfadeOut { + from { + opacity: 1; + } + to { + opacity: 0; + } +} + +@-webkit-keyframes gslideInLeft { + from { + opacity: 0; + -webkit-transform: translate3d(-60%, 0, 0); + transform: translate3d(-60%, 0, 0); + } + to { + visibility: visible; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes gslideInLeft { + from { + opacity: 0; + -webkit-transform: translate3d(-60%, 0, 0); + transform: translate3d(-60%, 0, 0); + } + to { + visibility: visible; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@-webkit-keyframes gslideOutLeft { + from { + opacity: 1; + visibility: visible; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + to { + -webkit-transform: translate3d(-60%, 0, 0); + transform: translate3d(-60%, 0, 0); + opacity: 0; + visibility: hidden; + } +} + +@keyframes gslideOutLeft { + from { + opacity: 1; + visibility: visible; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + to { + -webkit-transform: translate3d(-60%, 0, 0); + transform: translate3d(-60%, 0, 0); + opacity: 0; + visibility: hidden; + } +} + +@-webkit-keyframes gslideInRight { + from { + opacity: 0; + visibility: visible; + -webkit-transform: translate3d(60%, 0, 0); + transform: translate3d(60%, 0, 0); + } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes gslideInRight { + from { + opacity: 0; + visibility: visible; + -webkit-transform: translate3d(60%, 0, 0); + transform: translate3d(60%, 0, 0); + } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@-webkit-keyframes gslideOutRight { + from { + opacity: 1; + visibility: visible; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + to { + -webkit-transform: translate3d(60%, 0, 0); + transform: translate3d(60%, 0, 0); + opacity: 0; + } +} + +@keyframes gslideOutRight { + from { + opacity: 1; + visibility: visible; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + to { + -webkit-transform: translate3d(60%, 0, 0); + transform: translate3d(60%, 0, 0); + opacity: 0; + } +} + +@-webkit-keyframes gzoomIn { + from { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + to { + opacity: 1; + } +} + +@keyframes gzoomIn { + from { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + to { + opacity: 1; + } +} + +@-webkit-keyframes gzoomOut { + 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 gzoomOut { + 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; + } +} + +@media (min-width: 769px) { + .glightbox-container .ginner-container { + width: auto; + height: auto; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + } + .glightbox-container .ginner-container.desc-top .gslide-description { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; + } + .glightbox-container .ginner-container.desc-top .gslide-image, + .glightbox-container .ginner-container.desc-top .gslide-image img { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } + .glightbox-container .ginner-container.desc-left .gslide-description { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0; + } + .glightbox-container .ginner-container.desc-left .gslide-image { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; + } + .gslide-image img { + max-height: 97vh; + max-width: 100%; + } + .gslide-image img.zoomable { + cursor: -webkit-zoom-in; + cursor: zoom-in; + } + .zoomed .gslide-image img.zoomable { + cursor: -webkit-grab; + cursor: grab; + } + .gslide-inline { + max-height: 95vh; + } + .gslide-external { + max-height: 100vh; + } + .gslide-description.description-left, + .gslide-description.description-right { + max-width: 275px; + } + .glightbox-open { + height: auto; + } + .goverlay { + background: rgba(0, 0, 0, 0.92); + } + .glightbox-clean .gslide-media { + -webkit-box-shadow: 1px 2px 9px 0px rgba(0, 0, 0, 0.65); + box-shadow: 1px 2px 9px 0px rgba(0, 0, 0, 0.65); + } + .glightbox-clean .description-left .gdesc-inner, +.glightbox-clean .description-right .gdesc-inner { + position: absolute; + height: 100%; + overflow-y: auto; + } + .glightbox-clean .gprev, + .glightbox-clean .gnext, + .glightbox-clean .gclose { + background-color: rgba(0, 0, 0, 0.32); + } + .glightbox-clean .gprev:hover, +.glightbox-clean .gnext:hover, +.glightbox-clean .gclose:hover { + background-color: rgba(0, 0, 0, 0.7); + } + .glightbox-clean .gprev { + top: 45%; + } + .glightbox-clean .gnext { + top: 45%; + } +} + +@media (min-width: 992px) { + .glightbox-clean .gclose { + opacity: 0.7; + right: 20px; + } +} + +@media screen and (max-height: 420px) { + .goverlay { + background: #000; + } +} diff --git a/public/assets/vendor/glightbox/css/glightbox.min.css b/public/assets/vendor/glightbox/css/glightbox.min.css new file mode 100644 index 0000000..be373be --- /dev/null +++ b/public/assets/vendor/glightbox/css/glightbox.min.css @@ -0,0 +1 @@ +.glightbox-container{width:100%;height:100%;position:fixed;top:0;left:0;z-index:999999!important;overflow:hidden;-ms-touch-action:none;touch-action:none;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;outline:0;overflow:hidden}.glightbox-container.inactive{display:none}.glightbox-container .gcontainer{position:relative;width:100%;height:100%;z-index:9999;overflow:hidden}.glightbox-container .gslider{-webkit-transition:-webkit-transform .4s ease;transition:-webkit-transform .4s ease;transition:transform .4s ease;transition:transform .4s ease,-webkit-transform .4s ease;height:100%;left:0;top:0;width:100%;position:relative;overflow:hidden;display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.glightbox-container .gslide{width:100%;position:absolute;opacity:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;opacity:0}.glightbox-container .gslide.current{opacity:1;z-index:99999;position:relative}.glightbox-container .gslide.prev{opacity:1;z-index:9999}.glightbox-container .gslide-inner-content{width:100%}.glightbox-container .ginner-container{position:relative;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-width:100%;margin:auto;height:100vh}.glightbox-container .ginner-container.gvideo-container{width:100%}.glightbox-container .ginner-container.desc-bottom,.glightbox-container .ginner-container.desc-top{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.glightbox-container .ginner-container.desc-left,.glightbox-container .ginner-container.desc-right{max-width:100%!important}.gslide iframe,.gslide video{outline:0!important;border:none;min-height:165px;-webkit-overflow-scrolling:touch;-ms-touch-action:auto;touch-action:auto}.gslide:not(.current){pointer-events:none}.gslide-image{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.gslide-image img{max-height:100vh;display:block;padding:0;float:none;outline:0;border:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;max-width:100vw;width:auto;height:auto;-o-object-fit:cover;object-fit:cover;-ms-touch-action:none;touch-action:none;margin:auto;min-width:200px}.desc-bottom .gslide-image img,.desc-top .gslide-image img{width:auto}.desc-left .gslide-image img,.desc-right .gslide-image img{width:auto;max-width:100%}.gslide-image img.zoomable{position:relative}.gslide-image img.dragging{cursor:-webkit-grabbing!important;cursor:grabbing!important;-webkit-transition:none;transition:none}.gslide-video{position:relative;max-width:100vh;width:100%!important}.gslide-video .gvideo-wrapper{width:100%;margin:auto}.gslide-video::before{content:'';display:block;position:absolute;width:100%;height:100%;background:rgba(255,0,0,.34);display:none}.gslide-video.playing::before{display:none}.gslide-video.fullscreen{max-width:100%!important;min-width:100%;height:75vh}.gslide-video.fullscreen video{max-width:100%!important;width:100%!important}.gslide-inline{background:#fff;text-align:left;max-height:calc(100vh - 40px);overflow:auto;max-width:100%}.gslide-inline .ginlined-content{padding:20px;width:100%}.gslide-inline .dragging{cursor:-webkit-grabbing!important;cursor:grabbing!important;-webkit-transition:none;transition:none}.ginlined-content{overflow:auto;display:block!important;opacity:1}.gslide-external{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;min-width:100%;background:#fff;padding:0;overflow:auto;max-height:75vh;height:100%}.gslide-media{display:-webkit-box;display:-ms-flexbox;display:flex;width:auto}.zoomed .gslide-media{-webkit-box-shadow:none!important;box-shadow:none!important}.desc-bottom .gslide-media,.desc-top .gslide-media{margin:0 auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.gslide-description{position:relative;-webkit-box-flex:1;-ms-flex:1 0 100%;flex:1 0 100%}.gslide-description.description-left,.gslide-description.description-right{max-width:100%}.gslide-description.description-bottom,.gslide-description.description-top{margin:0 auto;width:100%}.gslide-description p{margin-bottom:12px}.gslide-description p:last-child{margin-bottom:0}.zoomed .gslide-description{display:none}.glightbox-button-hidden{display:none}.glightbox-mobile .glightbox-container .gslide-description{height:auto!important;width:100%;background:0 0;position:absolute;bottom:0;padding:19px 11px;max-width:100vw!important;-webkit-box-ordinal-group:3!important;-ms-flex-order:2!important;order:2!important;max-height:78vh;overflow:auto!important;background:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,0)),to(rgba(0,0,0,.75)));background:linear-gradient(to bottom,rgba(0,0,0,0) 0,rgba(0,0,0,.75) 100%);-webkit-transition:opacity .3s linear;transition:opacity .3s linear;padding-bottom:50px}.glightbox-mobile .glightbox-container .gslide-title{color:#fff;font-size:1em}.glightbox-mobile .glightbox-container .gslide-desc{color:#a1a1a1}.glightbox-mobile .glightbox-container .gslide-desc a{color:#fff;font-weight:700}.glightbox-mobile .glightbox-container .gslide-desc *{color:inherit}.glightbox-mobile .glightbox-container .gslide-desc string{color:#fff}.glightbox-mobile .glightbox-container .gslide-desc .desc-more{color:#fff;opacity:.4}.gdesc-open .gslide-media{-webkit-transition:opacity .5s ease;transition:opacity .5s ease;opacity:.4}.gdesc-open .gdesc-inner{padding-bottom:30px}.gdesc-closed .gslide-media{-webkit-transition:opacity .5s ease;transition:opacity .5s ease;opacity:1}.greset{-webkit-transition:all .3s ease;transition:all .3s ease}.gabsolute{position:absolute}.grelative{position:relative}.glightbox-desc{display:none!important}.glightbox-open{overflow:hidden}.gloader{height:25px;width:25px;-webkit-animation:lightboxLoader .8s infinite linear;animation:lightboxLoader .8s infinite linear;border:2px solid #fff;border-right-color:transparent;border-radius:50%;position:absolute;display:block;z-index:9999;left:0;right:0;margin:0 auto;top:47%}.goverlay{width:100%;height:calc(100vh + 1px);position:fixed;top:-1px;left:0;background:#000;will-change:opacity}.glightbox-mobile .goverlay{background:#000}.gclose,.gnext,.gprev{z-index:99999;cursor:pointer;width:26px;height:44px;border:none;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.gclose svg,.gnext svg,.gprev svg{display:block;width:25px;height:auto;margin:0;padding:0}.gclose.disabled,.gnext.disabled,.gprev.disabled{opacity:.1}.gclose .garrow,.gnext .garrow,.gprev .garrow{stroke:#fff}.gbtn.focused{outline:2px solid #0f3d81}iframe.wait-autoplay{opacity:0}.glightbox-closing .gclose,.glightbox-closing .gnext,.glightbox-closing .gprev{opacity:0!important}.glightbox-clean .gslide-description{background:#fff}.glightbox-clean .gdesc-inner{padding:22px 20px}.glightbox-clean .gslide-title{font-size:1em;font-weight:400;font-family:arial;color:#000;margin-bottom:19px;line-height:1.4em}.glightbox-clean .gslide-desc{font-size:.86em;margin-bottom:0;font-family:arial;line-height:1.4em}.glightbox-clean .gslide-video{background:#000}.glightbox-clean .gclose,.glightbox-clean .gnext,.glightbox-clean .gprev{background-color:rgba(0,0,0,.75);border-radius:4px}.glightbox-clean .gclose path,.glightbox-clean .gnext path,.glightbox-clean .gprev path{fill:#fff}.glightbox-clean .gprev{position:absolute;top:-100%;left:30px;width:40px;height:50px}.glightbox-clean .gnext{position:absolute;top:-100%;right:30px;width:40px;height:50px}.glightbox-clean .gclose{width:35px;height:35px;top:15px;right:10px;position:absolute}.glightbox-clean .gclose svg{width:18px;height:auto}.glightbox-clean .gclose:hover{opacity:1}.gfadeIn{-webkit-animation:gfadeIn .5s ease;animation:gfadeIn .5s ease}.gfadeOut{-webkit-animation:gfadeOut .5s ease;animation:gfadeOut .5s ease}.gslideOutLeft{-webkit-animation:gslideOutLeft .3s ease;animation:gslideOutLeft .3s ease}.gslideInLeft{-webkit-animation:gslideInLeft .3s ease;animation:gslideInLeft .3s ease}.gslideOutRight{-webkit-animation:gslideOutRight .3s ease;animation:gslideOutRight .3s ease}.gslideInRight{-webkit-animation:gslideInRight .3s ease;animation:gslideInRight .3s ease}.gzoomIn{-webkit-animation:gzoomIn .5s ease;animation:gzoomIn .5s ease}.gzoomOut{-webkit-animation:gzoomOut .5s ease;animation:gzoomOut .5s ease}@-webkit-keyframes lightboxLoader{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes lightboxLoader{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes gfadeIn{from{opacity:0}to{opacity:1}}@keyframes gfadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes gfadeOut{from{opacity:1}to{opacity:0}}@keyframes gfadeOut{from{opacity:1}to{opacity:0}}@-webkit-keyframes gslideInLeft{from{opacity:0;-webkit-transform:translate3d(-60%,0,0);transform:translate3d(-60%,0,0)}to{visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes gslideInLeft{from{opacity:0;-webkit-transform:translate3d(-60%,0,0);transform:translate3d(-60%,0,0)}to{visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes gslideOutLeft{from{opacity:1;visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-60%,0,0);transform:translate3d(-60%,0,0);opacity:0;visibility:hidden}}@keyframes gslideOutLeft{from{opacity:1;visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-60%,0,0);transform:translate3d(-60%,0,0);opacity:0;visibility:hidden}}@-webkit-keyframes gslideInRight{from{opacity:0;visibility:visible;-webkit-transform:translate3d(60%,0,0);transform:translate3d(60%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes gslideInRight{from{opacity:0;visibility:visible;-webkit-transform:translate3d(60%,0,0);transform:translate3d(60%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes gslideOutRight{from{opacity:1;visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(60%,0,0);transform:translate3d(60%,0,0);opacity:0}}@keyframes gslideOutRight{from{opacity:1;visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(60%,0,0);transform:translate3d(60%,0,0);opacity:0}}@-webkit-keyframes gzoomIn{from{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:1}}@keyframes gzoomIn{from{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:1}}@-webkit-keyframes gzoomOut{from{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes gzoomOut{from{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@media (min-width:769px){.glightbox-container .ginner-container{width:auto;height:auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.glightbox-container .ginner-container.desc-top .gslide-description{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.glightbox-container .ginner-container.desc-top .gslide-image,.glightbox-container .ginner-container.desc-top .gslide-image img{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.glightbox-container .ginner-container.desc-left .gslide-description{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.glightbox-container .ginner-container.desc-left .gslide-image{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.gslide-image img{max-height:97vh;max-width:100%}.gslide-image img.zoomable{cursor:-webkit-zoom-in;cursor:zoom-in}.zoomed .gslide-image img.zoomable{cursor:-webkit-grab;cursor:grab}.gslide-inline{max-height:95vh}.gslide-external{max-height:100vh}.gslide-description.description-left,.gslide-description.description-right{max-width:275px}.glightbox-open{height:auto}.goverlay{background:rgba(0,0,0,.92)}.glightbox-clean .gslide-media{-webkit-box-shadow:1px 2px 9px 0 rgba(0,0,0,.65);box-shadow:1px 2px 9px 0 rgba(0,0,0,.65)}.glightbox-clean .description-left .gdesc-inner,.glightbox-clean .description-right .gdesc-inner{position:absolute;height:100%;overflow-y:auto}.glightbox-clean .gclose,.glightbox-clean .gnext,.glightbox-clean .gprev{background-color:rgba(0,0,0,.32)}.glightbox-clean .gclose:hover,.glightbox-clean .gnext:hover,.glightbox-clean .gprev:hover{background-color:rgba(0,0,0,.7)}.glightbox-clean .gprev{top:45%}.glightbox-clean .gnext{top:45%}}@media (min-width:992px){.glightbox-clean .gclose{opacity:.7;right:20px}}@media screen and (max-height:420px){.goverlay{background:#000}} \ No newline at end of file diff --git a/public/assets/vendor/glightbox/js/glightbox.js b/public/assets/vendor/glightbox/js/glightbox.js new file mode 100644 index 0000000..d885231 --- /dev/null +++ b/public/assets/vendor/glightbox/js/glightbox.js @@ -0,0 +1,3693 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = global || self, global.GLightbox = factory()); +}(this, (function () { 'use strict'; + + function _typeof(obj) { + "@babel/helpers - typeof"; + + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function (obj) { + return typeof obj; + }; + } else { + _typeof = function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + + return _typeof(obj); + } + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; + } + + var uid = Date.now(); + function extend() { + var extended = {}; + var deep = true; + var i = 0; + var length = arguments.length; + + if (Object.prototype.toString.call(arguments[0]) === '[object Boolean]') { + deep = arguments[0]; + i++; + } + + var merge = function merge(obj) { + for (var prop in obj) { + if (Object.prototype.hasOwnProperty.call(obj, prop)) { + if (deep && Object.prototype.toString.call(obj[prop]) === '[object Object]') { + extended[prop] = extend(true, extended[prop], obj[prop]); + } else { + extended[prop] = obj[prop]; + } + } + } + }; + + for (; i < length; i++) { + var obj = arguments[i]; + merge(obj); + } + + return extended; + } + function each(collection, callback) { + if (isNode(collection) || collection === window || collection === document) { + collection = [collection]; + } + + if (!isArrayLike(collection) && !isObject(collection)) { + collection = [collection]; + } + + if (size(collection) == 0) { + return; + } + + if (isArrayLike(collection) && !isObject(collection)) { + var l = collection.length, + i = 0; + + for (; i < l; i++) { + if (callback.call(collection[i], collection[i], i, collection) === false) { + break; + } + } + } else if (isObject(collection)) { + for (var key in collection) { + if (has(collection, key)) { + if (callback.call(collection[key], collection[key], key, collection) === false) { + break; + } + } + } + } + } + function getNodeEvents(node) { + var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + var fn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + var cache = node[uid] = node[uid] || []; + var data = { + all: cache, + evt: null, + found: null + }; + + if (name && fn && size(cache) > 0) { + each(cache, function (cl, i) { + if (cl.eventName == name && cl.fn.toString() == fn.toString()) { + data.found = true; + data.evt = i; + return false; + } + }); + } + + return data; + } + function addEvent(eventName) { + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + onElement = _ref.onElement, + withCallback = _ref.withCallback, + _ref$avoidDuplicate = _ref.avoidDuplicate, + avoidDuplicate = _ref$avoidDuplicate === void 0 ? true : _ref$avoidDuplicate, + _ref$once = _ref.once, + once = _ref$once === void 0 ? false : _ref$once, + _ref$useCapture = _ref.useCapture, + useCapture = _ref$useCapture === void 0 ? false : _ref$useCapture; + + var thisArg = arguments.length > 2 ? arguments[2] : undefined; + var element = onElement || []; + + if (isString(element)) { + element = document.querySelectorAll(element); + } + + function handler(event) { + if (isFunction(withCallback)) { + withCallback.call(thisArg, event, this); + } + + if (once) { + handler.destroy(); + } + } + + handler.destroy = function () { + each(element, function (el) { + var events = getNodeEvents(el, eventName, handler); + + if (events.found) { + events.all.splice(events.evt, 1); + } + + if (el.removeEventListener) { + el.removeEventListener(eventName, handler, useCapture); + } + }); + }; + + each(element, function (el) { + var events = getNodeEvents(el, eventName, handler); + + if (el.addEventListener && avoidDuplicate && !events.found || !avoidDuplicate) { + el.addEventListener(eventName, handler, useCapture); + events.all.push({ + eventName: eventName, + fn: handler + }); + } + }); + return handler; + } + function addClass(node, name) { + each(name.split(' '), function (cl) { + return node.classList.add(cl); + }); + } + function removeClass(node, name) { + each(name.split(' '), function (cl) { + return node.classList.remove(cl); + }); + } + function hasClass(node, name) { + return node.classList.contains(name); + } + function closest(elem, selector) { + while (elem !== document.body) { + elem = elem.parentElement; + + if (!elem) { + return false; + } + + var matches = typeof elem.matches == 'function' ? elem.matches(selector) : elem.msMatchesSelector(selector); + + if (matches) { + return elem; + } + } + } + function animateElement(element) { + var animation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; + var callback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + if (!element || animation === '') { + return false; + } + + if (animation == 'none') { + if (isFunction(callback)) { + callback(); + } + + return false; + } + + var animationEnd = whichAnimationEvent(); + var animationNames = animation.split(' '); + each(animationNames, function (name) { + addClass(element, 'g' + name); + }); + addEvent(animationEnd, { + onElement: element, + avoidDuplicate: false, + once: true, + withCallback: function withCallback(event, target) { + each(animationNames, function (name) { + removeClass(target, 'g' + name); + }); + + if (isFunction(callback)) { + callback(); + } + } + }); + } + function cssTransform(node) { + var translate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; + + if (translate == '') { + node.style.webkitTransform = ''; + node.style.MozTransform = ''; + node.style.msTransform = ''; + node.style.OTransform = ''; + node.style.transform = ''; + return false; + } + + node.style.webkitTransform = translate; + node.style.MozTransform = translate; + node.style.msTransform = translate; + node.style.OTransform = translate; + node.style.transform = translate; + } + function show(element) { + element.style.display = 'block'; + } + function hide(element) { + element.style.display = 'none'; + } + function createHTML(htmlStr) { + var frag = document.createDocumentFragment(), + temp = document.createElement('div'); + temp.innerHTML = htmlStr; + + while (temp.firstChild) { + frag.appendChild(temp.firstChild); + } + + return frag; + } + function windowSize() { + return { + width: window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth, + height: window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight + }; + } + function whichAnimationEvent() { + var t, + el = document.createElement('fakeelement'); + var animations = { + animation: 'animationend', + OAnimation: 'oAnimationEnd', + MozAnimation: 'animationend', + WebkitAnimation: 'webkitAnimationEnd' + }; + + for (t in animations) { + if (el.style[t] !== undefined) { + return animations[t]; + } + } + } + function whichTransitionEvent() { + var t, + el = document.createElement('fakeelement'); + var transitions = { + transition: 'transitionend', + OTransition: 'oTransitionEnd', + MozTransition: 'transitionend', + WebkitTransition: 'webkitTransitionEnd' + }; + + for (t in transitions) { + if (el.style[t] !== undefined) { + return transitions[t]; + } + } + } + function createIframe(config) { + var url = config.url, + allow = config.allow, + callback = config.callback, + appendTo = config.appendTo; + var iframe = document.createElement('iframe'); + iframe.className = 'vimeo-video gvideo'; + iframe.src = url; + iframe.style.width = '100%'; + iframe.style.height = '100%'; + + if (allow) { + iframe.setAttribute('allow', allow); + } + + iframe.onload = function () { + addClass(iframe, 'node-ready'); + + if (isFunction(callback)) { + callback(); + } + }; + + if (appendTo) { + appendTo.appendChild(iframe); + } + + return iframe; + } + function waitUntil(check, onComplete, delay, timeout) { + if (check()) { + onComplete(); + return; + } + + if (!delay) { + delay = 100; + } + + var timeoutPointer; + var intervalPointer = setInterval(function () { + if (!check()) { + return; + } + + clearInterval(intervalPointer); + + if (timeoutPointer) { + clearTimeout(timeoutPointer); + } + + onComplete(); + }, delay); + + if (timeout) { + timeoutPointer = setTimeout(function () { + clearInterval(intervalPointer); + }, timeout); + } + } + function injectAssets(url, waitFor, callback) { + if (isNil(url)) { + console.error('Inject assets error'); + return; + } + + if (isFunction(waitFor)) { + callback = waitFor; + waitFor = false; + } + + if (isString(waitFor) && waitFor in window) { + if (isFunction(callback)) { + callback(); + } + + return; + } + + var found; + + if (url.indexOf('.css') !== -1) { + found = document.querySelectorAll('link[href="' + url + '"]'); + + if (found && found.length > 0) { + if (isFunction(callback)) { + callback(); + } + + return; + } + + var head = document.getElementsByTagName('head')[0]; + var headStyles = head.querySelectorAll('link[rel="stylesheet"]'); + var link = document.createElement('link'); + link.rel = 'stylesheet'; + link.type = 'text/css'; + link.href = url; + link.media = 'all'; + + if (headStyles) { + head.insertBefore(link, headStyles[0]); + } else { + head.appendChild(link); + } + + if (isFunction(callback)) { + callback(); + } + + return; + } + + found = document.querySelectorAll('script[src="' + url + '"]'); + + if (found && found.length > 0) { + if (isFunction(callback)) { + if (isString(waitFor)) { + waitUntil(function () { + return typeof window[waitFor] !== 'undefined'; + }, function () { + callback(); + }); + return false; + } + + callback(); + } + + return; + } + + var script = document.createElement('script'); + script.type = 'text/javascript'; + script.src = url; + + script.onload = function () { + if (isFunction(callback)) { + if (isString(waitFor)) { + waitUntil(function () { + return typeof window[waitFor] !== 'undefined'; + }, function () { + callback(); + }); + return false; + } + + callback(); + } + }; + + document.body.appendChild(script); + return; + } + function isMobile() { + return 'navigator' in window && window.navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(Android)|(PlayBook)|(BB10)|(BlackBerry)|(Opera Mini)|(IEMobile)|(webOS)|(MeeGo)/i); + } + function isTouch() { + return isMobile() !== null || document.createTouch !== undefined || 'ontouchstart' in window || 'onmsgesturechange' in window || navigator.msMaxTouchPoints; + } + function isFunction(f) { + return typeof f === 'function'; + } + function isString(s) { + return typeof s === 'string'; + } + function isNode(el) { + return !!(el && el.nodeType && el.nodeType == 1); + } + function isArray(ar) { + return Array.isArray(ar); + } + function isArrayLike(ar) { + return ar && ar.length && isFinite(ar.length); + } + function isObject(o) { + var type = _typeof(o); + + return type === 'object' && o != null && !isFunction(o) && !isArray(o); + } + function isNil(o) { + return o == null; + } + function has(obj, key) { + return obj !== null && hasOwnProperty.call(obj, key); + } + function size(o) { + if (isObject(o)) { + if (o.keys) { + return o.keys().length; + } + + var l = 0; + + for (var k in o) { + if (has(o, k)) { + l++; + } + } + + return l; + } else { + return o.length; + } + } + function isNumber(n) { + return !isNaN(parseFloat(n)) && isFinite(n); + } + + function getNextFocusElement() { + var current = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1; + var btns = document.querySelectorAll('.gbtn[data-taborder]:not(.disabled)'); + + if (!btns.length) { + return false; + } + + if (btns.length == 1) { + return btns[0]; + } + + if (typeof current == 'string') { + current = parseInt(current); + } + + var newIndex = current < 0 ? 1 : current + 1; + + if (newIndex > btns.length) { + newIndex = '1'; + } + + var orders = []; + each(btns, function (btn) { + orders.push(btn.getAttribute('data-taborder')); + }); + var nextOrders = orders.filter(function (el) { + return el >= parseInt(newIndex); + }); + var nextFocus = nextOrders.sort()[0]; + return document.querySelector(".gbtn[data-taborder=\"".concat(nextFocus, "\"]")); + } + + function keyboardNavigation(instance) { + if (instance.events.hasOwnProperty('keyboard')) { + return false; + } + + instance.events['keyboard'] = addEvent('keydown', { + onElement: window, + withCallback: function withCallback(event, target) { + event = event || window.event; + var key = event.keyCode; + + if (key == 9) { + var focusedButton = document.querySelector('.gbtn.focused'); + + if (!focusedButton) { + var activeElement = document.activeElement && document.activeElement.nodeName ? document.activeElement.nodeName.toLocaleLowerCase() : false; + + if (activeElement == 'input' || activeElement == 'textarea' || activeElement == 'button') { + return; + } + } + + event.preventDefault(); + var btns = document.querySelectorAll('.gbtn[data-taborder]'); + + if (!btns || btns.length <= 0) { + return; + } + + if (!focusedButton) { + var first = getNextFocusElement(); + + if (first) { + first.focus(); + addClass(first, 'focused'); + } + + return; + } + + var currentFocusOrder = focusedButton.getAttribute('data-taborder'); + var nextFocus = getNextFocusElement(currentFocusOrder); + removeClass(focusedButton, 'focused'); + + if (nextFocus) { + nextFocus.focus(); + addClass(nextFocus, 'focused'); + } + } + + if (key == 39) { + instance.nextSlide(); + } + + if (key == 37) { + instance.prevSlide(); + } + + if (key == 27) { + instance.close(); + } + } + }); + } + + function getLen(v) { + return Math.sqrt(v.x * v.x + v.y * v.y); + } + + function dot(v1, v2) { + return v1.x * v2.x + v1.y * v2.y; + } + + function getAngle(v1, v2) { + var mr = getLen(v1) * getLen(v2); + + if (mr === 0) { + return 0; + } + + var r = dot(v1, v2) / mr; + + if (r > 1) { + r = 1; + } + + return Math.acos(r); + } + + function cross(v1, v2) { + return v1.x * v2.y - v2.x * v1.y; + } + + function getRotateAngle(v1, v2) { + var angle = getAngle(v1, v2); + + if (cross(v1, v2) > 0) { + angle *= -1; + } + + return angle * 180 / Math.PI; + } + + var EventsHandlerAdmin = function () { + function EventsHandlerAdmin(el) { + _classCallCheck(this, EventsHandlerAdmin); + + this.handlers = []; + this.el = el; + } + + _createClass(EventsHandlerAdmin, [{ + key: "add", + value: function add(handler) { + this.handlers.push(handler); + } + }, { + key: "del", + value: function del(handler) { + if (!handler) { + this.handlers = []; + } + + for (var i = this.handlers.length; i >= 0; i--) { + if (this.handlers[i] === handler) { + this.handlers.splice(i, 1); + } + } + } + }, { + key: "dispatch", + value: function dispatch() { + for (var i = 0, len = this.handlers.length; i < len; i++) { + var handler = this.handlers[i]; + + if (typeof handler === 'function') { + handler.apply(this.el, arguments); + } + } + } + }]); + + return EventsHandlerAdmin; + }(); + + function wrapFunc(el, handler) { + var EventshandlerAdmin = new EventsHandlerAdmin(el); + EventshandlerAdmin.add(handler); + return EventshandlerAdmin; + } + + var TouchEvents = function () { + function TouchEvents(el, option) { + _classCallCheck(this, TouchEvents); + + this.element = typeof el == 'string' ? document.querySelector(el) : el; + this.start = this.start.bind(this); + this.move = this.move.bind(this); + this.end = this.end.bind(this); + this.cancel = this.cancel.bind(this); + this.element.addEventListener('touchstart', this.start, false); + this.element.addEventListener('touchmove', this.move, false); + this.element.addEventListener('touchend', this.end, false); + this.element.addEventListener('touchcancel', this.cancel, false); + this.preV = { + x: null, + y: null + }; + this.pinchStartLen = null; + this.zoom = 1; + this.isDoubleTap = false; + + var noop = function noop() {}; + + this.rotate = wrapFunc(this.element, option.rotate || noop); + this.touchStart = wrapFunc(this.element, option.touchStart || noop); + this.multipointStart = wrapFunc(this.element, option.multipointStart || noop); + this.multipointEnd = wrapFunc(this.element, option.multipointEnd || noop); + this.pinch = wrapFunc(this.element, option.pinch || noop); + this.swipe = wrapFunc(this.element, option.swipe || noop); + this.tap = wrapFunc(this.element, option.tap || noop); + this.doubleTap = wrapFunc(this.element, option.doubleTap || noop); + this.longTap = wrapFunc(this.element, option.longTap || noop); + this.singleTap = wrapFunc(this.element, option.singleTap || noop); + this.pressMove = wrapFunc(this.element, option.pressMove || noop); + this.twoFingerPressMove = wrapFunc(this.element, option.twoFingerPressMove || noop); + this.touchMove = wrapFunc(this.element, option.touchMove || noop); + this.touchEnd = wrapFunc(this.element, option.touchEnd || noop); + this.touchCancel = wrapFunc(this.element, option.touchCancel || noop); + this.translateContainer = this.element; + this._cancelAllHandler = this.cancelAll.bind(this); + window.addEventListener('scroll', this._cancelAllHandler); + this.delta = null; + this.last = null; + this.now = null; + this.tapTimeout = null; + this.singleTapTimeout = null; + this.longTapTimeout = null; + this.swipeTimeout = null; + this.x1 = this.x2 = this.y1 = this.y2 = null; + this.preTapPosition = { + x: null, + y: null + }; + } + + _createClass(TouchEvents, [{ + key: "start", + value: function start(evt) { + if (!evt.touches) { + return; + } + + var ignoreDragFor = ['a', 'button', 'input']; + + if (evt.target && evt.target.nodeName && ignoreDragFor.indexOf(evt.target.nodeName.toLowerCase()) >= 0) { + console.log('ignore drag for this touched element', evt.target.nodeName.toLowerCase()); + return; + } + + this.now = Date.now(); + this.x1 = evt.touches[0].pageX; + this.y1 = evt.touches[0].pageY; + this.delta = this.now - (this.last || this.now); + this.touchStart.dispatch(evt, this.element); + + if (this.preTapPosition.x !== null) { + this.isDoubleTap = this.delta > 0 && this.delta <= 250 && Math.abs(this.preTapPosition.x - this.x1) < 30 && Math.abs(this.preTapPosition.y - this.y1) < 30; + + if (this.isDoubleTap) { + clearTimeout(this.singleTapTimeout); + } + } + + this.preTapPosition.x = this.x1; + this.preTapPosition.y = this.y1; + this.last = this.now; + var preV = this.preV, + len = evt.touches.length; + + if (len > 1) { + this._cancelLongTap(); + + this._cancelSingleTap(); + + var v = { + x: evt.touches[1].pageX - this.x1, + y: evt.touches[1].pageY - this.y1 + }; + preV.x = v.x; + preV.y = v.y; + this.pinchStartLen = getLen(preV); + this.multipointStart.dispatch(evt, this.element); + } + + this._preventTap = false; + this.longTapTimeout = setTimeout(function () { + this.longTap.dispatch(evt, this.element); + this._preventTap = true; + }.bind(this), 750); + } + }, { + key: "move", + value: function move(evt) { + if (!evt.touches) { + return; + } + + var preV = this.preV, + len = evt.touches.length, + currentX = evt.touches[0].pageX, + currentY = evt.touches[0].pageY; + this.isDoubleTap = false; + + if (len > 1) { + var sCurrentX = evt.touches[1].pageX, + sCurrentY = evt.touches[1].pageY; + var v = { + x: evt.touches[1].pageX - currentX, + y: evt.touches[1].pageY - currentY + }; + + if (preV.x !== null) { + if (this.pinchStartLen > 0) { + evt.zoom = getLen(v) / this.pinchStartLen; + this.pinch.dispatch(evt, this.element); + } + + evt.angle = getRotateAngle(v, preV); + this.rotate.dispatch(evt, this.element); + } + + preV.x = v.x; + preV.y = v.y; + + if (this.x2 !== null && this.sx2 !== null) { + evt.deltaX = (currentX - this.x2 + sCurrentX - this.sx2) / 2; + evt.deltaY = (currentY - this.y2 + sCurrentY - this.sy2) / 2; + } else { + evt.deltaX = 0; + evt.deltaY = 0; + } + + this.twoFingerPressMove.dispatch(evt, this.element); + this.sx2 = sCurrentX; + this.sy2 = sCurrentY; + } else { + if (this.x2 !== null) { + evt.deltaX = currentX - this.x2; + evt.deltaY = currentY - this.y2; + var movedX = Math.abs(this.x1 - this.x2), + movedY = Math.abs(this.y1 - this.y2); + + if (movedX > 10 || movedY > 10) { + this._preventTap = true; + } + } else { + evt.deltaX = 0; + evt.deltaY = 0; + } + + this.pressMove.dispatch(evt, this.element); + } + + this.touchMove.dispatch(evt, this.element); + + this._cancelLongTap(); + + this.x2 = currentX; + this.y2 = currentY; + + if (len > 1) { + evt.preventDefault(); + } + } + }, { + key: "end", + value: function end(evt) { + if (!evt.changedTouches) { + return; + } + + this._cancelLongTap(); + + var self = this; + + if (evt.touches.length < 2) { + this.multipointEnd.dispatch(evt, this.element); + this.sx2 = this.sy2 = null; + } + + if (this.x2 && Math.abs(this.x1 - this.x2) > 30 || this.y2 && Math.abs(this.y1 - this.y2) > 30) { + evt.direction = this._swipeDirection(this.x1, this.x2, this.y1, this.y2); + this.swipeTimeout = setTimeout(function () { + self.swipe.dispatch(evt, self.element); + }, 0); + } else { + this.tapTimeout = setTimeout(function () { + if (!self._preventTap) { + self.tap.dispatch(evt, self.element); + } + + if (self.isDoubleTap) { + self.doubleTap.dispatch(evt, self.element); + self.isDoubleTap = false; + } + }, 0); + + if (!self.isDoubleTap) { + self.singleTapTimeout = setTimeout(function () { + self.singleTap.dispatch(evt, self.element); + }, 250); + } + } + + this.touchEnd.dispatch(evt, this.element); + this.preV.x = 0; + this.preV.y = 0; + this.zoom = 1; + this.pinchStartLen = null; + this.x1 = this.x2 = this.y1 = this.y2 = null; + } + }, { + key: "cancelAll", + value: function cancelAll() { + this._preventTap = true; + clearTimeout(this.singleTapTimeout); + clearTimeout(this.tapTimeout); + clearTimeout(this.longTapTimeout); + clearTimeout(this.swipeTimeout); + } + }, { + key: "cancel", + value: function cancel(evt) { + this.cancelAll(); + this.touchCancel.dispatch(evt, this.element); + } + }, { + key: "_cancelLongTap", + value: function _cancelLongTap() { + clearTimeout(this.longTapTimeout); + } + }, { + key: "_cancelSingleTap", + value: function _cancelSingleTap() { + clearTimeout(this.singleTapTimeout); + } + }, { + key: "_swipeDirection", + value: function _swipeDirection(x1, x2, y1, y2) { + return Math.abs(x1 - x2) >= Math.abs(y1 - y2) ? x1 - x2 > 0 ? 'Left' : 'Right' : y1 - y2 > 0 ? 'Up' : 'Down'; + } + }, { + key: "on", + value: function on(evt, handler) { + if (this[evt]) { + this[evt].add(handler); + } + } + }, { + key: "off", + value: function off(evt, handler) { + if (this[evt]) { + this[evt].del(handler); + } + } + }, { + key: "destroy", + value: function destroy() { + if (this.singleTapTimeout) { + clearTimeout(this.singleTapTimeout); + } + + if (this.tapTimeout) { + clearTimeout(this.tapTimeout); + } + + if (this.longTapTimeout) { + clearTimeout(this.longTapTimeout); + } + + if (this.swipeTimeout) { + clearTimeout(this.swipeTimeout); + } + + this.element.removeEventListener('touchstart', this.start); + this.element.removeEventListener('touchmove', this.move); + this.element.removeEventListener('touchend', this.end); + this.element.removeEventListener('touchcancel', this.cancel); + this.rotate.del(); + this.touchStart.del(); + this.multipointStart.del(); + this.multipointEnd.del(); + this.pinch.del(); + this.swipe.del(); + this.tap.del(); + this.doubleTap.del(); + this.longTap.del(); + this.singleTap.del(); + this.pressMove.del(); + this.twoFingerPressMove.del(); + this.touchMove.del(); + this.touchEnd.del(); + this.touchCancel.del(); + this.preV = this.pinchStartLen = this.zoom = this.isDoubleTap = this.delta = this.last = this.now = this.tapTimeout = this.singleTapTimeout = this.longTapTimeout = this.swipeTimeout = this.x1 = this.x2 = this.y1 = this.y2 = this.preTapPosition = this.rotate = this.touchStart = this.multipointStart = this.multipointEnd = this.pinch = this.swipe = this.tap = this.doubleTap = this.longTap = this.singleTap = this.pressMove = this.touchMove = this.touchEnd = this.touchCancel = this.twoFingerPressMove = null; + window.removeEventListener('scroll', this._cancelAllHandler); + return null; + } + }]); + + return TouchEvents; + }(); + + function resetSlideMove(slide) { + var transitionEnd = whichTransitionEvent(); + var windowWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; + var media = hasClass(slide, 'gslide-media') ? slide : slide.querySelector('.gslide-media'); + var container = closest(media, '.ginner-container'); + var desc = slide.querySelector('.gslide-description'); + + if (windowWidth > 769) { + media = container; + } + + addClass(media, 'greset'); + cssTransform(media, 'translate3d(0, 0, 0)'); + addEvent(transitionEnd, { + onElement: media, + once: true, + withCallback: function withCallback(event, target) { + removeClass(media, 'greset'); + } + }); + media.style.opacity = ''; + + if (desc) { + desc.style.opacity = ''; + } + } + + function touchNavigation(instance) { + if (instance.events.hasOwnProperty('touch')) { + return false; + } + + var winSize = windowSize(); + var winWidth = winSize.width; + var winHeight = winSize.height; + var process = false; + var currentSlide = null; + var media = null; + var mediaImage = null; + var doingMove = false; + var initScale = 1; + var maxScale = 4.5; + var currentScale = 1; + var doingZoom = false; + var imageZoomed = false; + var zoomedPosX = null; + var zoomedPosY = null; + var lastZoomedPosX = null; + var lastZoomedPosY = null; + var hDistance; + var vDistance; + var hDistancePercent = 0; + var vDistancePercent = 0; + var vSwipe = false; + var hSwipe = false; + var startCoords = {}; + var endCoords = {}; + var xDown = 0; + var yDown = 0; + var isInlined; + var sliderWrapper = document.getElementById('glightbox-slider'); + var overlay = document.querySelector('.goverlay'); + var touchInstance = new TouchEvents(sliderWrapper, { + touchStart: function touchStart(e) { + process = true; + + if (hasClass(e.targetTouches[0].target, 'ginner-container') || closest(e.targetTouches[0].target, '.gslide-desc') || e.targetTouches[0].target.nodeName.toLowerCase() == 'a') { + process = false; + } + + if (closest(e.targetTouches[0].target, '.gslide-inline') && !hasClass(e.targetTouches[0].target.parentNode, 'gslide-inline')) { + process = false; + } + + if (process) { + endCoords = e.targetTouches[0]; + startCoords.pageX = e.targetTouches[0].pageX; + startCoords.pageY = e.targetTouches[0].pageY; + xDown = e.targetTouches[0].clientX; + yDown = e.targetTouches[0].clientY; + currentSlide = instance.activeSlide; + media = currentSlide.querySelector('.gslide-media'); + isInlined = currentSlide.querySelector('.gslide-inline'); + mediaImage = null; + + if (hasClass(media, 'gslide-image')) { + mediaImage = media.querySelector('img'); + } + + var windowWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; + + if (windowWidth > 769) { + media = currentSlide.querySelector('.ginner-container'); + } + + removeClass(overlay, 'greset'); + + if (e.pageX > 20 && e.pageX < window.innerWidth - 20) { + return; + } + + e.preventDefault(); + } + }, + touchMove: function touchMove(e) { + if (!process) { + return; + } + + endCoords = e.targetTouches[0]; + + if (doingZoom || imageZoomed) { + return; + } + + if (isInlined && isInlined.offsetHeight > winHeight) { + var moved = startCoords.pageX - endCoords.pageX; + + if (Math.abs(moved) <= 13) { + return false; + } + } + + doingMove = true; + var xUp = e.targetTouches[0].clientX; + var yUp = e.targetTouches[0].clientY; + var xDiff = xDown - xUp; + var yDiff = yDown - yUp; + + if (Math.abs(xDiff) > Math.abs(yDiff)) { + vSwipe = false; + hSwipe = true; + } else { + hSwipe = false; + vSwipe = true; + } + + hDistance = endCoords.pageX - startCoords.pageX; + hDistancePercent = hDistance * 100 / winWidth; + vDistance = endCoords.pageY - startCoords.pageY; + vDistancePercent = vDistance * 100 / winHeight; + var opacity; + + if (vSwipe && mediaImage) { + opacity = 1 - Math.abs(vDistance) / winHeight; + overlay.style.opacity = opacity; + + if (instance.settings.touchFollowAxis) { + hDistancePercent = 0; + } + } + + if (hSwipe) { + opacity = 1 - Math.abs(hDistance) / winWidth; + media.style.opacity = opacity; + + if (instance.settings.touchFollowAxis) { + vDistancePercent = 0; + } + } + + if (!mediaImage) { + return cssTransform(media, "translate3d(".concat(hDistancePercent, "%, 0, 0)")); + } + + cssTransform(media, "translate3d(".concat(hDistancePercent, "%, ").concat(vDistancePercent, "%, 0)")); + }, + touchEnd: function touchEnd() { + if (!process) { + return; + } + + doingMove = false; + + if (imageZoomed || doingZoom) { + lastZoomedPosX = zoomedPosX; + lastZoomedPosY = zoomedPosY; + return; + } + + var v = Math.abs(parseInt(vDistancePercent)); + var h = Math.abs(parseInt(hDistancePercent)); + + if (v > 29 && mediaImage) { + instance.close(); + return; + } + + if (v < 29 && h < 25) { + addClass(overlay, 'greset'); + overlay.style.opacity = 1; + return resetSlideMove(media); + } + }, + multipointEnd: function multipointEnd() { + setTimeout(function () { + doingZoom = false; + }, 50); + }, + multipointStart: function multipointStart() { + doingZoom = true; + initScale = currentScale ? currentScale : 1; + }, + pinch: function pinch(evt) { + if (!mediaImage || doingMove) { + return false; + } + + doingZoom = true; + mediaImage.scaleX = mediaImage.scaleY = initScale * evt.zoom; + var scale = initScale * evt.zoom; + imageZoomed = true; + + if (scale <= 1) { + imageZoomed = false; + scale = 1; + lastZoomedPosY = null; + lastZoomedPosX = null; + zoomedPosX = null; + zoomedPosY = null; + mediaImage.setAttribute('style', ''); + return; + } + + if (scale > maxScale) { + scale = maxScale; + } + + mediaImage.style.transform = "scale3d(".concat(scale, ", ").concat(scale, ", 1)"); + currentScale = scale; + }, + pressMove: function pressMove(e) { + if (imageZoomed && !doingZoom) { + var mhDistance = endCoords.pageX - startCoords.pageX; + var mvDistance = endCoords.pageY - startCoords.pageY; + + if (lastZoomedPosX) { + mhDistance = mhDistance + lastZoomedPosX; + } + + if (lastZoomedPosY) { + mvDistance = mvDistance + lastZoomedPosY; + } + + zoomedPosX = mhDistance; + zoomedPosY = mvDistance; + var style = "translate3d(".concat(mhDistance, "px, ").concat(mvDistance, "px, 0)"); + + if (currentScale) { + style += " scale3d(".concat(currentScale, ", ").concat(currentScale, ", 1)"); + } + + cssTransform(mediaImage, style); + } + }, + swipe: function swipe(evt) { + if (imageZoomed) { + return; + } + + if (doingZoom) { + doingZoom = false; + return; + } + + if (evt.direction == 'Left') { + if (instance.index == instance.elements.length - 1) { + return resetSlideMove(media); + } + + instance.nextSlide(); + } + + if (evt.direction == 'Right') { + if (instance.index == 0) { + return resetSlideMove(media); + } + + instance.prevSlide(); + } + } + }); + instance.events['touch'] = touchInstance; + } + + var ZoomImages = function () { + function ZoomImages(el, slide) { + var _this = this; + + var onclose = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + + _classCallCheck(this, ZoomImages); + + this.img = el; + this.slide = slide; + this.onclose = onclose; + + if (this.img.setZoomEvents) { + return false; + } + + this.active = false; + this.zoomedIn = false; + this.dragging = false; + this.currentX = null; + this.currentY = null; + this.initialX = null; + this.initialY = null; + this.xOffset = 0; + this.yOffset = 0; + this.img.addEventListener('mousedown', function (e) { + return _this.dragStart(e); + }, false); + this.img.addEventListener('mouseup', function (e) { + return _this.dragEnd(e); + }, false); + this.img.addEventListener('mousemove', function (e) { + return _this.drag(e); + }, false); + this.img.addEventListener('click', function (e) { + if (_this.slide.classList.contains('dragging-nav')) { + _this.zoomOut(); + + return false; + } + + if (!_this.zoomedIn) { + return _this.zoomIn(); + } + + if (_this.zoomedIn && !_this.dragging) { + _this.zoomOut(); + } + }, false); + this.img.setZoomEvents = true; + } + + _createClass(ZoomImages, [{ + key: "zoomIn", + value: function zoomIn() { + var winWidth = this.widowWidth(); + + if (this.zoomedIn || winWidth <= 768) { + return; + } + + var img = this.img; + img.setAttribute('data-style', img.getAttribute('style')); + img.style.maxWidth = img.naturalWidth + 'px'; + img.style.maxHeight = img.naturalHeight + 'px'; + + if (img.naturalWidth > winWidth) { + var centerX = winWidth / 2 - img.naturalWidth / 2; + this.setTranslate(this.img.parentNode, centerX, 0); + } + + this.slide.classList.add('zoomed'); + this.zoomedIn = true; + } + }, { + key: "zoomOut", + value: function zoomOut() { + this.img.parentNode.setAttribute('style', ''); + this.img.setAttribute('style', this.img.getAttribute('data-style')); + this.slide.classList.remove('zoomed'); + this.zoomedIn = false; + this.currentX = null; + this.currentY = null; + this.initialX = null; + this.initialY = null; + this.xOffset = 0; + this.yOffset = 0; + + if (this.onclose && typeof this.onclose == 'function') { + this.onclose(); + } + } + }, { + key: "dragStart", + value: function dragStart(e) { + e.preventDefault(); + + if (!this.zoomedIn) { + this.active = false; + return; + } + + if (e.type === 'touchstart') { + this.initialX = e.touches[0].clientX - this.xOffset; + this.initialY = e.touches[0].clientY - this.yOffset; + } else { + this.initialX = e.clientX - this.xOffset; + this.initialY = e.clientY - this.yOffset; + } + + if (e.target === this.img) { + this.active = true; + this.img.classList.add('dragging'); + } + } + }, { + key: "dragEnd", + value: function dragEnd(e) { + var _this2 = this; + + e.preventDefault(); + this.initialX = this.currentX; + this.initialY = this.currentY; + this.active = false; + setTimeout(function () { + _this2.dragging = false; + _this2.img.isDragging = false; + + _this2.img.classList.remove('dragging'); + }, 100); + } + }, { + key: "drag", + value: function drag(e) { + if (this.active) { + e.preventDefault(); + + if (e.type === 'touchmove') { + this.currentX = e.touches[0].clientX - this.initialX; + this.currentY = e.touches[0].clientY - this.initialY; + } else { + this.currentX = e.clientX - this.initialX; + this.currentY = e.clientY - this.initialY; + } + + this.xOffset = this.currentX; + this.yOffset = this.currentY; + this.img.isDragging = true; + this.dragging = true; + this.setTranslate(this.img, this.currentX, this.currentY); + } + } + }, { + key: "onMove", + value: function onMove(e) { + if (!this.zoomedIn) { + return; + } + + var xOffset = e.clientX - this.img.naturalWidth / 2; + var yOffset = e.clientY - this.img.naturalHeight / 2; + this.setTranslate(this.img, xOffset, yOffset); + } + }, { + key: "setTranslate", + value: function setTranslate(node, xPos, yPos) { + node.style.transform = 'translate3d(' + xPos + 'px, ' + yPos + 'px, 0)'; + } + }, { + key: "widowWidth", + value: function widowWidth() { + return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; + } + }]); + + return ZoomImages; + }(); + + var DragSlides = function () { + function DragSlides() { + var _this = this; + + var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + _classCallCheck(this, DragSlides); + + var dragEl = config.dragEl, + _config$toleranceX = config.toleranceX, + toleranceX = _config$toleranceX === void 0 ? 40 : _config$toleranceX, + _config$toleranceY = config.toleranceY, + toleranceY = _config$toleranceY === void 0 ? 65 : _config$toleranceY, + _config$slide = config.slide, + slide = _config$slide === void 0 ? null : _config$slide, + _config$instance = config.instance, + instance = _config$instance === void 0 ? null : _config$instance; + this.el = dragEl; + this.active = false; + this.dragging = false; + this.currentX = null; + this.currentY = null; + this.initialX = null; + this.initialY = null; + this.xOffset = 0; + this.yOffset = 0; + this.direction = null; + this.lastDirection = null; + this.toleranceX = toleranceX; + this.toleranceY = toleranceY; + this.toleranceReached = false; + this.dragContainer = this.el; + this.slide = slide; + this.instance = instance; + this.el.addEventListener('mousedown', function (e) { + return _this.dragStart(e); + }, false); + this.el.addEventListener('mouseup', function (e) { + return _this.dragEnd(e); + }, false); + this.el.addEventListener('mousemove', function (e) { + return _this.drag(e); + }, false); + } + + _createClass(DragSlides, [{ + key: "dragStart", + value: function dragStart(e) { + if (this.slide.classList.contains('zoomed')) { + this.active = false; + return; + } + + if (e.type === 'touchstart') { + this.initialX = e.touches[0].clientX - this.xOffset; + this.initialY = e.touches[0].clientY - this.yOffset; + } else { + this.initialX = e.clientX - this.xOffset; + this.initialY = e.clientY - this.yOffset; + } + + var clicked = e.target.nodeName.toLowerCase(); + var exludeClicks = ['input', 'select', 'textarea', 'button', 'a']; + + if (e.target.classList.contains('nodrag') || closest(e.target, '.nodrag') || exludeClicks.indexOf(clicked) !== -1) { + this.active = false; + return; + } + + e.preventDefault(); + + if (e.target === this.el || clicked !== 'img' && closest(e.target, '.gslide-inline')) { + this.active = true; + this.el.classList.add('dragging'); + this.dragContainer = closest(e.target, '.ginner-container'); + } + } + }, { + key: "dragEnd", + value: function dragEnd(e) { + var _this2 = this; + + e && e.preventDefault(); + this.initialX = 0; + this.initialY = 0; + this.currentX = null; + this.currentY = null; + this.initialX = null; + this.initialY = null; + this.xOffset = 0; + this.yOffset = 0; + this.active = false; + + if (this.doSlideChange) { + this.instance.preventOutsideClick = true; + this.doSlideChange == 'right' && this.instance.prevSlide(); + this.doSlideChange == 'left' && this.instance.nextSlide(); + } + + if (this.doSlideClose) { + this.instance.close(); + } + + if (!this.toleranceReached) { + this.setTranslate(this.dragContainer, 0, 0, true); + } + + setTimeout(function () { + _this2.instance.preventOutsideClick = false; + _this2.toleranceReached = false; + _this2.lastDirection = null; + _this2.dragging = false; + _this2.el.isDragging = false; + + _this2.el.classList.remove('dragging'); + + _this2.slide.classList.remove('dragging-nav'); + + _this2.dragContainer.style.transform = ''; + _this2.dragContainer.style.transition = ''; + }, 100); + } + }, { + key: "drag", + value: function drag(e) { + if (this.active) { + e.preventDefault(); + this.slide.classList.add('dragging-nav'); + + if (e.type === 'touchmove') { + this.currentX = e.touches[0].clientX - this.initialX; + this.currentY = e.touches[0].clientY - this.initialY; + } else { + this.currentX = e.clientX - this.initialX; + this.currentY = e.clientY - this.initialY; + } + + this.xOffset = this.currentX; + this.yOffset = this.currentY; + this.el.isDragging = true; + this.dragging = true; + this.doSlideChange = false; + this.doSlideClose = false; + var currentXInt = Math.abs(this.currentX); + var currentYInt = Math.abs(this.currentY); + + if (currentXInt > 0 && currentXInt >= Math.abs(this.currentY) && (!this.lastDirection || this.lastDirection == 'x')) { + this.yOffset = 0; + this.lastDirection = 'x'; + this.setTranslate(this.dragContainer, this.currentX, 0); + var doChange = this.shouldChange(); + + if (!this.instance.settings.dragAutoSnap && doChange) { + this.doSlideChange = doChange; + } + + if (this.instance.settings.dragAutoSnap && doChange) { + this.instance.preventOutsideClick = true; + this.toleranceReached = true; + this.active = false; + this.instance.preventOutsideClick = true; + this.dragEnd(null); + doChange == 'right' && this.instance.prevSlide(); + doChange == 'left' && this.instance.nextSlide(); + return; + } + } + + if (this.toleranceY > 0 && currentYInt > 0 && currentYInt >= currentXInt && (!this.lastDirection || this.lastDirection == 'y')) { + this.xOffset = 0; + this.lastDirection = 'y'; + this.setTranslate(this.dragContainer, 0, this.currentY); + var doClose = this.shouldClose(); + + if (!this.instance.settings.dragAutoSnap && doClose) { + this.doSlideClose = true; + } + + if (this.instance.settings.dragAutoSnap && doClose) { + this.instance.close(); + } + + return; + } + } + } + }, { + key: "shouldChange", + value: function shouldChange() { + var doChange = false; + var currentXInt = Math.abs(this.currentX); + + if (currentXInt >= this.toleranceX) { + var dragDir = this.currentX > 0 ? 'right' : 'left'; + + if (dragDir == 'left' && this.slide !== this.slide.parentNode.lastChild || dragDir == 'right' && this.slide !== this.slide.parentNode.firstChild) { + doChange = dragDir; + } + } + + return doChange; + } + }, { + key: "shouldClose", + value: function shouldClose() { + var doClose = false; + var currentYInt = Math.abs(this.currentY); + + if (currentYInt >= this.toleranceY) { + doClose = true; + } + + return doClose; + } + }, { + key: "setTranslate", + value: function setTranslate(node, xPos, yPos) { + var animated = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + + if (animated) { + node.style.transition = 'all .2s ease'; + } else { + node.style.transition = ''; + } + + node.style.transform = "translate3d(".concat(xPos, "px, ").concat(yPos, "px, 0)"); + } + }]); + + return DragSlides; + }(); + + function slideImage(slide, data, index, callback) { + var slideMedia = slide.querySelector('.gslide-media'); + var img = new Image(); + var titleID = 'gSlideTitle_' + index; + var textID = 'gSlideDesc_' + index; + img.addEventListener('load', function () { + if (isFunction(callback)) { + callback(); + } + }, false); + img.src = data.href; + + if (data.sizes != '' && data.srcset != '') { + img.sizes = data.sizes; + img.srcset = data.srcset; + } + + img.alt = ''; + + if (!isNil(data.alt) && data.alt !== '') { + img.alt = data.alt; + } + + if (data.title !== '') { + img.setAttribute('aria-labelledby', titleID); + } + + if (data.description !== '') { + img.setAttribute('aria-describedby', textID); + } + + if (data.hasOwnProperty('_hasCustomWidth') && data._hasCustomWidth) { + img.style.width = data.width; + } + + if (data.hasOwnProperty('_hasCustomHeight') && data._hasCustomHeight) { + img.style.height = data.height; + } + + slideMedia.insertBefore(img, slideMedia.firstChild); + return; + } + + function slideVideo(slide, data, index, callback) { + var _this = this; + + var slideContainer = slide.querySelector('.ginner-container'); + var videoID = 'gvideo' + index; + var slideMedia = slide.querySelector('.gslide-media'); + var videoPlayers = this.getAllPlayers(); + addClass(slideContainer, 'gvideo-container'); + slideMedia.insertBefore(createHTML('
'), slideMedia.firstChild); + var videoWrapper = slide.querySelector('.gvideo-wrapper'); + injectAssets(this.settings.plyr.css, 'Plyr'); + var url = data.href; + var protocol = location.protocol.replace(':', ''); + var videoSource = ''; + var embedID = ''; + var customPlaceholder = false; + + if (protocol == 'file') { + protocol = 'http'; + } + + slideMedia.style.maxWidth = data.width; + injectAssets(this.settings.plyr.js, 'Plyr', function () { + if (url.match(/vimeo\.com\/([0-9]*)/)) { + var vimeoID = /vimeo.*\/(\d+)/i.exec(url); + videoSource = 'vimeo'; + embedID = vimeoID[1]; + } + + if (url.match(/(youtube\.com|youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/) || url.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/) || url.match(/(youtube\.com|youtube-nocookie\.com)\/embed\/([a-zA-Z0-9\-_]+)/)) { + var youtubeID = getYoutubeID(url); + videoSource = 'youtube'; + embedID = youtubeID; + } + + if (url.match(/\.(mp4|ogg|webm|mov)$/) !== null) { + videoSource = 'local'; + var html = ''; + customPlaceholder = createHTML(html); + } + + var placeholder = customPlaceholder ? customPlaceholder : createHTML("
")); + addClass(videoWrapper, "".concat(videoSource, "-video gvideo")); + videoWrapper.appendChild(placeholder); + videoWrapper.setAttribute('data-id', videoID); + videoWrapper.setAttribute('data-index', index); + var playerConfig = has(_this.settings.plyr, 'config') ? _this.settings.plyr.config : {}; + var player = new Plyr('#' + videoID, playerConfig); + player.on('ready', function (event) { + var instance = event.detail.plyr; + videoPlayers[videoID] = instance; + + if (isFunction(callback)) { + callback(); + } + }); + waitUntil(function () { + return slide.querySelector('iframe') && slide.querySelector('iframe').dataset.ready == 'true'; + }, function () { + _this.resize(slide); + }); + player.on('enterfullscreen', handleMediaFullScreen); + player.on('exitfullscreen', handleMediaFullScreen); + }); + } + + function getYoutubeID(url) { + var videoID = ''; + url = url.replace(/(>|<)/gi, '').split(/(vi\/|v=|\/v\/|youtu\.be\/|\/embed\/)/); + + if (url[2] !== undefined) { + videoID = url[2].split(/[^0-9a-z_\-]/i); + videoID = videoID[0]; + } else { + videoID = url; + } + + return videoID; + } + + function handleMediaFullScreen(event) { + var media = closest(event.target, '.gslide-media'); + + if (event.type == 'enterfullscreen') { + addClass(media, 'fullscreen'); + } + + if (event.type == 'exitfullscreen') { + removeClass(media, 'fullscreen'); + } + } + + function slideInline(slide, data, index, callback) { + var _this = this; + + var slideMedia = slide.querySelector('.gslide-media'); + var hash = has(data, 'href') && data.href ? data.href.split('#').pop().trim() : false; + var content = has(data, 'content') && data.content ? data.content : false; + var innerContent; + + if (content) { + if (isString(content)) { + innerContent = createHTML("
".concat(content, "
")); + } + + if (isNode(content)) { + if (content.style.display == 'none') { + content.style.display = 'block'; + } + + var container = document.createElement('div'); + container.className = 'ginlined-content'; + container.appendChild(content); + innerContent = container; + } + } + + if (hash) { + var div = document.getElementById(hash); + + if (!div) { + return false; + } + + var cloned = div.cloneNode(true); + cloned.style.height = data.height; + cloned.style.maxWidth = data.width; + addClass(cloned, 'ginlined-content'); + innerContent = cloned; + } + + if (!innerContent) { + console.error('Unable to append inline slide content', data); + return false; + } + + slideMedia.style.height = data.height; + slideMedia.style.width = data.width; + slideMedia.appendChild(innerContent); + this.events['inlineclose' + hash] = addEvent('click', { + onElement: slideMedia.querySelectorAll('.gtrigger-close'), + withCallback: function withCallback(e) { + e.preventDefault(); + + _this.close(); + } + }); + + if (isFunction(callback)) { + callback(); + } + + return; + } + + function slideIframe(slide, data, index, callback) { + var slideMedia = slide.querySelector('.gslide-media'); + var iframe = createIframe({ + url: data.href, + callback: callback + }); + slideMedia.parentNode.style.maxWidth = data.width; + slideMedia.parentNode.style.height = data.height; + slideMedia.appendChild(iframe); + return; + } + + var SlideConfigParser = function () { + function SlideConfigParser() { + var slideParamas = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + _classCallCheck(this, SlideConfigParser); + + this.defaults = { + href: '', + sizes: '', + srcset: '', + title: '', + type: '', + description: '', + alt: '', + descPosition: 'bottom', + effect: '', + width: '', + height: '', + content: false, + zoomable: true, + draggable: true + }; + + if (isObject(slideParamas)) { + this.defaults = extend(this.defaults, slideParamas); + } + } + + _createClass(SlideConfigParser, [{ + key: "sourceType", + value: function sourceType(url) { + var origin = url; + url = url.toLowerCase(); + + if (url.match(/\.(jpeg|jpg|jpe|gif|png|apn|webp|avif|svg)/) !== null) { + return 'image'; + } + + if (url.match(/(youtube\.com|youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/) || url.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/) || url.match(/(youtube\.com|youtube-nocookie\.com)\/embed\/([a-zA-Z0-9\-_]+)/)) { + return 'video'; + } + + if (url.match(/vimeo\.com\/([0-9]*)/)) { + return 'video'; + } + + if (url.match(/\.(mp4|ogg|webm|mov)/) !== null) { + return 'video'; + } + + if (url.match(/\.(mp3|wav|wma|aac|ogg)/) !== null) { + return 'audio'; + } + + if (url.indexOf('#') > -1) { + var hash = origin.split('#').pop(); + + if (hash.trim() !== '') { + return 'inline'; + } + } + + if (url.indexOf('goajax=true') > -1) { + return 'ajax'; + } + + return 'external'; + } + }, { + key: "parseConfig", + value: function parseConfig(element, settings) { + var _this = this; + + var data = extend({ + descPosition: settings.descPosition + }, this.defaults); + + if (isObject(element) && !isNode(element)) { + if (!has(element, 'type')) { + if (has(element, 'content') && element.content) { + element.type = 'inline'; + } else if (has(element, 'href')) { + element.type = this.sourceType(element.href); + } + } + + var objectData = extend(data, element); + this.setSize(objectData, settings); + return objectData; + } + + var url = ''; + var config = element.getAttribute('data-glightbox'); + var nodeType = element.nodeName.toLowerCase(); + + if (nodeType === 'a') { + url = element.href; + } + + if (nodeType === 'img') { + url = element.src; + data.alt = element.alt; + } + + data.href = url; + each(data, function (val, key) { + if (has(settings, key) && key !== 'width') { + data[key] = settings[key]; + } + + var nodeData = element.dataset[key]; + + if (!isNil(nodeData)) { + data[key] = _this.sanitizeValue(nodeData); + } + }); + + if (data.content) { + data.type = 'inline'; + } + + if (!data.type && url) { + data.type = this.sourceType(url); + } + + if (!isNil(config)) { + var cleanKeys = []; + each(data, function (v, k) { + cleanKeys.push(';\\s?' + k); + }); + cleanKeys = cleanKeys.join('\\s?:|'); + + if (config.trim() !== '') { + each(data, function (val, key) { + var str = config; + var match = 's?' + key + 's?:s?(.*?)(' + cleanKeys + 's?:|$)'; + var regex = new RegExp(match); + var matches = str.match(regex); + + if (matches && matches.length && matches[1]) { + var value = matches[1].trim().replace(/;\s*$/, ''); + data[key] = _this.sanitizeValue(value); + } + }); + } + } else { + if (!data.title && nodeType == 'a') { + var title = element.title; + + if (!isNil(title) && title !== '') { + data.title = title; + } + } + + if (!data.title && nodeType == 'img') { + var alt = element.alt; + + if (!isNil(alt) && alt !== '') { + data.title = alt; + } + } + } + + if (data.description && data.description.substring(0, 1) === '.') { + var description; + + try { + description = document.querySelector(data.description).innerHTML; + } catch (error) { + if (!(error instanceof DOMException)) { + throw error; + } + } + + if (description) { + data.description = description; + } + } + + if (!data.description) { + var nodeDesc = element.querySelector('.glightbox-desc'); + + if (nodeDesc) { + data.description = nodeDesc.innerHTML; + } + } + + this.setSize(data, settings, element); + this.slideConfig = data; + return data; + } + }, { + key: "setSize", + value: function setSize(data, settings) { + var element = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + var defaultWith = data.type == 'video' ? this.checkSize(settings.videosWidth) : this.checkSize(settings.width); + var defaultHeight = this.checkSize(settings.height); + data.width = has(data, 'width') && data.width !== '' ? this.checkSize(data.width) : defaultWith; + data.height = has(data, 'height') && data.height !== '' ? this.checkSize(data.height) : defaultHeight; + + if (element && data.type == 'image') { + data._hasCustomWidth = element.dataset.width ? true : false; + data._hasCustomHeight = element.dataset.height ? true : false; + } + + return data; + } + }, { + key: "checkSize", + value: function checkSize(size) { + return isNumber(size) ? "".concat(size, "px") : size; + } + }, { + key: "sanitizeValue", + value: function sanitizeValue(val) { + if (val !== 'true' && val !== 'false') { + return val; + } + + return val === 'true'; + } + }]); + + return SlideConfigParser; + }(); + + var Slide = function () { + function Slide(el, instance, index) { + _classCallCheck(this, Slide); + + this.element = el; + this.instance = instance; + this.index = index; + } + + _createClass(Slide, [{ + key: "setContent", + value: function setContent() { + var _this = this; + + var slide = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + if (hasClass(slide, 'loaded')) { + return false; + } + + var settings = this.instance.settings; + var slideConfig = this.slideConfig; + var isMobileDevice = isMobile(); + + if (isFunction(settings.beforeSlideLoad)) { + settings.beforeSlideLoad({ + index: this.index, + slide: slide, + player: false + }); + } + + var type = slideConfig.type; + var position = slideConfig.descPosition; + var slideMedia = slide.querySelector('.gslide-media'); + var slideTitle = slide.querySelector('.gslide-title'); + var slideText = slide.querySelector('.gslide-desc'); + var slideDesc = slide.querySelector('.gdesc-inner'); + var finalCallback = callback; + var titleID = 'gSlideTitle_' + this.index; + var textID = 'gSlideDesc_' + this.index; + + if (isFunction(settings.afterSlideLoad)) { + finalCallback = function finalCallback() { + if (isFunction(callback)) { + callback(); + } + + settings.afterSlideLoad({ + index: _this.index, + slide: slide, + player: _this.instance.getSlidePlayerInstance(_this.index) + }); + }; + } + + if (slideConfig.title == '' && slideConfig.description == '') { + if (slideDesc) { + slideDesc.parentNode.parentNode.removeChild(slideDesc.parentNode); + } + } else { + if (slideTitle && slideConfig.title !== '') { + slideTitle.id = titleID; + slideTitle.innerHTML = slideConfig.title; + } else { + slideTitle.parentNode.removeChild(slideTitle); + } + + if (slideText && slideConfig.description !== '') { + slideText.id = textID; + + if (isMobileDevice && settings.moreLength > 0) { + slideConfig.smallDescription = this.slideShortDesc(slideConfig.description, settings.moreLength, settings.moreText); + slideText.innerHTML = slideConfig.smallDescription; + this.descriptionEvents(slideText, slideConfig); + } else { + slideText.innerHTML = slideConfig.description; + } + } else { + slideText.parentNode.removeChild(slideText); + } + + addClass(slideMedia.parentNode, "desc-".concat(position)); + addClass(slideDesc.parentNode, "description-".concat(position)); + } + + addClass(slideMedia, "gslide-".concat(type)); + addClass(slide, 'loaded'); + + if (type === 'video') { + slideVideo.apply(this.instance, [slide, slideConfig, this.index, finalCallback]); + return; + } + + if (type === 'external') { + slideIframe.apply(this, [slide, slideConfig, this.index, finalCallback]); + return; + } + + if (type === 'inline') { + slideInline.apply(this.instance, [slide, slideConfig, this.index, finalCallback]); + + if (slideConfig.draggable) { + new DragSlides({ + dragEl: slide.querySelector('.gslide-inline'), + toleranceX: settings.dragToleranceX, + toleranceY: settings.dragToleranceY, + slide: slide, + instance: this.instance + }); + } + + return; + } + + if (type === 'image') { + slideImage(slide, slideConfig, this.index, function () { + var img = slide.querySelector('img'); + + if (slideConfig.draggable) { + new DragSlides({ + dragEl: img, + toleranceX: settings.dragToleranceX, + toleranceY: settings.dragToleranceY, + slide: slide, + instance: _this.instance + }); + } + + if (slideConfig.zoomable && img.naturalWidth > img.offsetWidth) { + addClass(img, 'zoomable'); + new ZoomImages(img, slide, function () { + _this.instance.resize(); + }); + } + + if (isFunction(finalCallback)) { + finalCallback(); + } + }); + return; + } + + if (isFunction(finalCallback)) { + finalCallback(); + } + } + }, { + key: "slideShortDesc", + value: function slideShortDesc(string) { + var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 50; + var wordBoundary = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + var div = document.createElement('div'); + div.innerHTML = string; + var cleanedString = div.innerText; + var useWordBoundary = wordBoundary; + string = cleanedString.trim(); + + if (string.length <= n) { + return string; + } + + var subString = string.substr(0, n - 1); + + if (!useWordBoundary) { + return subString; + } + + div = null; + return subString + '... ' + wordBoundary + ''; + } + }, { + key: "descriptionEvents", + value: function descriptionEvents(desc, data) { + var _this2 = this; + + var moreLink = desc.querySelector('.desc-more'); + + if (!moreLink) { + return false; + } + + addEvent('click', { + onElement: moreLink, + withCallback: function withCallback(event, target) { + event.preventDefault(); + var body = document.body; + var desc = closest(target, '.gslide-desc'); + + if (!desc) { + return false; + } + + desc.innerHTML = data.description; + addClass(body, 'gdesc-open'); + var shortEvent = addEvent('click', { + onElement: [body, closest(desc, '.gslide-description')], + withCallback: function withCallback(event, target) { + if (event.target.nodeName.toLowerCase() !== 'a') { + removeClass(body, 'gdesc-open'); + addClass(body, 'gdesc-closed'); + desc.innerHTML = data.smallDescription; + + _this2.descriptionEvents(desc, data); + + setTimeout(function () { + removeClass(body, 'gdesc-closed'); + }, 400); + shortEvent.destroy(); + } + } + }); + } + }); + } + }, { + key: "create", + value: function create() { + return createHTML(this.instance.settings.slideHTML); + } + }, { + key: "getConfig", + value: function getConfig() { + if (!isNode(this.element) && !this.element.hasOwnProperty('draggable')) { + this.element.draggable = this.instance.settings.draggable; + } + + var parser = new SlideConfigParser(this.instance.settings.slideExtraAttributes); + this.slideConfig = parser.parseConfig(this.element, this.instance.settings); + return this.slideConfig; + } + }]); + + return Slide; + }(); + + var _version = '3.1.1'; + + var isMobile$1 = isMobile(); + + var isTouch$1 = isTouch(); + + var html = document.getElementsByTagName('html')[0]; + var defaults = { + selector: '.glightbox', + elements: null, + skin: 'clean', + theme: 'clean', + closeButton: true, + startAt: null, + autoplayVideos: true, + autofocusVideos: true, + descPosition: 'bottom', + width: '900px', + height: '506px', + videosWidth: '960px', + beforeSlideChange: null, + afterSlideChange: null, + beforeSlideLoad: null, + afterSlideLoad: null, + slideInserted: null, + slideRemoved: null, + slideExtraAttributes: null, + onOpen: null, + onClose: null, + loop: false, + zoomable: true, + draggable: true, + dragAutoSnap: false, + dragToleranceX: 40, + dragToleranceY: 65, + preload: true, + oneSlidePerOpen: false, + touchNavigation: true, + touchFollowAxis: true, + keyboardNavigation: true, + closeOnOutsideClick: true, + plugins: false, + plyr: { + css: 'https://cdn.plyr.io/3.6.8/plyr.css', + js: 'https://cdn.plyr.io/3.6.8/plyr.js', + config: { + ratio: '16:9', + fullscreen: { + enabled: true, + iosNative: true + }, + youtube: { + noCookie: true, + rel: 0, + showinfo: 0, + iv_load_policy: 3 + }, + vimeo: { + byline: false, + portrait: false, + title: false, + transparent: false + } + } + }, + openEffect: 'zoom', + closeEffect: 'zoom', + slideEffect: 'slide', + moreText: 'See more', + moreLength: 60, + cssEfects: { + fade: { + "in": 'fadeIn', + out: 'fadeOut' + }, + zoom: { + "in": 'zoomIn', + out: 'zoomOut' + }, + slide: { + "in": 'slideInRight', + out: 'slideOutLeft' + }, + slideBack: { + "in": 'slideInLeft', + out: 'slideOutRight' + }, + none: { + "in": 'none', + out: 'none' + } + }, + svg: { + close: '', + next: ' ', + prev: '' + } + }; + defaults.slideHTML = "
\n
\n
\n
\n
\n
\n
\n

\n
\n
\n
\n
\n
\n
"; + defaults.lightboxHTML = "
\n
\n
\n
\n
\n \n \n \n
\n
"; + + var GlightboxInit = function () { + function GlightboxInit() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + _classCallCheck(this, GlightboxInit); + + this.customOptions = options; + this.settings = extend(defaults, options); + this.effectsClasses = this.getAnimationClasses(); + this.videoPlayers = {}; + this.apiEvents = []; + this.fullElementsList = false; + } + + _createClass(GlightboxInit, [{ + key: "init", + value: function init() { + var _this = this; + + var selector = this.getSelector(); + + if (selector) { + this.baseEvents = addEvent('click', { + onElement: selector, + withCallback: function withCallback(e, target) { + e.preventDefault(); + + _this.open(target); + } + }); + } + + this.elements = this.getElements(); + } + }, { + key: "open", + value: function open() { + var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + var startAt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + + if (this.elements.length == 0) { + return false; + } + + this.activeSlide = null; + this.prevActiveSlideIndex = null; + this.prevActiveSlide = null; + var index = isNumber(startAt) ? startAt : this.settings.startAt; + + if (isNode(element)) { + var gallery = element.getAttribute('data-gallery'); + + if (gallery) { + this.fullElementsList = this.elements; + this.elements = this.getGalleryElements(this.elements, gallery); + } + + if (isNil(index)) { + index = this.getElementIndex(element); + + if (index < 0) { + index = 0; + } + } + } + + if (!isNumber(index)) { + index = 0; + } + + this.build(); + + animateElement(this.overlay, this.settings.openEffect == 'none' ? 'none' : this.settings.cssEfects.fade["in"]); + + var body = document.body; + var scrollBar = window.innerWidth - document.documentElement.clientWidth; + + if (scrollBar > 0) { + var styleSheet = document.createElement('style'); + styleSheet.type = 'text/css'; + styleSheet.className = 'gcss-styles'; + styleSheet.innerText = ".gscrollbar-fixer {margin-right: ".concat(scrollBar, "px}"); + document.head.appendChild(styleSheet); + + addClass(body, 'gscrollbar-fixer'); + } + + addClass(body, 'glightbox-open'); + + addClass(html, 'glightbox-open'); + + if (isMobile$1) { + addClass(document.body, 'glightbox-mobile'); + + this.settings.slideEffect = 'slide'; + } + + this.showSlide(index, true); + + if (this.elements.length == 1) { + addClass(this.prevButton, 'glightbox-button-hidden'); + + addClass(this.nextButton, 'glightbox-button-hidden'); + } else { + removeClass(this.prevButton, 'glightbox-button-hidden'); + + removeClass(this.nextButton, 'glightbox-button-hidden'); + } + + this.lightboxOpen = true; + this.trigger('open'); + + if (isFunction(this.settings.onOpen)) { + this.settings.onOpen(); + } + + if (isTouch$1 && this.settings.touchNavigation) { + touchNavigation(this); + } + + if (this.settings.keyboardNavigation) { + keyboardNavigation(this); + } + } + }, { + key: "openAt", + value: function openAt() { + var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + this.open(null, index); + } + }, { + key: "showSlide", + value: function showSlide() { + var _this2 = this; + + var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var first = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + show(this.loader); + + this.index = parseInt(index); + var current = this.slidesContainer.querySelector('.current'); + + if (current) { + removeClass(current, 'current'); + } + + this.slideAnimateOut(); + var slideNode = this.slidesContainer.querySelectorAll('.gslide')[index]; + + if (hasClass(slideNode, 'loaded')) { + this.slideAnimateIn(slideNode, first); + + hide(this.loader); + } else { + show(this.loader); + + var slide = this.elements[index]; + var slideData = { + index: this.index, + slide: slideNode, + slideNode: slideNode, + slideConfig: slide.slideConfig, + slideIndex: this.index, + trigger: slide.node, + player: null + }; + this.trigger('slide_before_load', slideData); + slide.instance.setContent(slideNode, function () { + hide(_this2.loader); + + _this2.resize(); + + _this2.slideAnimateIn(slideNode, first); + + _this2.trigger('slide_after_load', slideData); + }); + } + + this.slideDescription = slideNode.querySelector('.gslide-description'); + this.slideDescriptionContained = this.slideDescription && hasClass(this.slideDescription.parentNode, 'gslide-media'); + + if (this.settings.preload) { + this.preloadSlide(index + 1); + this.preloadSlide(index - 1); + } + + this.updateNavigationClasses(); + this.activeSlide = slideNode; + } + }, { + key: "preloadSlide", + value: function preloadSlide(index) { + var _this3 = this; + + if (index < 0 || index > this.elements.length - 1) { + return false; + } + + if (isNil(this.elements[index])) { + return false; + } + + var slideNode = this.slidesContainer.querySelectorAll('.gslide')[index]; + + if (hasClass(slideNode, 'loaded')) { + return false; + } + + var slide = this.elements[index]; + var type = slide.type; + var slideData = { + index: index, + slide: slideNode, + slideNode: slideNode, + slideConfig: slide.slideConfig, + slideIndex: index, + trigger: slide.node, + player: null + }; + this.trigger('slide_before_load', slideData); + + if (type == 'video' || type == 'external') { + setTimeout(function () { + slide.instance.setContent(slideNode, function () { + _this3.trigger('slide_after_load', slideData); + }); + }, 200); + } else { + slide.instance.setContent(slideNode, function () { + _this3.trigger('slide_after_load', slideData); + }); + } + } + }, { + key: "prevSlide", + value: function prevSlide() { + this.goToSlide(this.index - 1); + } + }, { + key: "nextSlide", + value: function nextSlide() { + this.goToSlide(this.index + 1); + } + }, { + key: "goToSlide", + value: function goToSlide() { + var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + this.prevActiveSlide = this.activeSlide; + this.prevActiveSlideIndex = this.index; + + if (!this.loop() && (index < 0 || index > this.elements.length - 1)) { + return false; + } + + if (index < 0) { + index = this.elements.length - 1; + } else if (index >= this.elements.length) { + index = 0; + } + + this.showSlide(index); + } + }, { + key: "insertSlide", + value: function insertSlide() { + var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1; + + if (index < 0) { + index = this.elements.length; + } + + var slide = new Slide(config, this, index); + var data = slide.getConfig(); + + var slideInfo = extend({}, data); + + var newSlide = slide.create(); + var totalSlides = this.elements.length - 1; + slideInfo.index = index; + slideInfo.node = false; + slideInfo.instance = slide; + slideInfo.slideConfig = data; + this.elements.splice(index, 0, slideInfo); + var addedSlideNode = null; + var addedSlidePlayer = null; + + if (this.slidesContainer) { + if (index > totalSlides) { + this.slidesContainer.appendChild(newSlide); + } else { + var existingSlide = this.slidesContainer.querySelectorAll('.gslide')[index]; + this.slidesContainer.insertBefore(newSlide, existingSlide); + } + + if (this.settings.preload && this.index == 0 && index == 0 || this.index - 1 == index || this.index + 1 == index) { + this.preloadSlide(index); + } + + if (this.index == 0 && index == 0) { + this.index = 1; + } + + this.updateNavigationClasses(); + addedSlideNode = this.slidesContainer.querySelectorAll('.gslide')[index]; + addedSlidePlayer = this.getSlidePlayerInstance(index); + slideInfo.slideNode = addedSlideNode; + } + + this.trigger('slide_inserted', { + index: index, + slide: addedSlideNode, + slideNode: addedSlideNode, + slideConfig: data, + slideIndex: index, + trigger: null, + player: addedSlidePlayer + }); + + if (isFunction(this.settings.slideInserted)) { + this.settings.slideInserted({ + index: index, + slide: addedSlideNode, + player: addedSlidePlayer + }); + } + } + }, { + key: "removeSlide", + value: function removeSlide() { + var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1; + + if (index < 0 || index > this.elements.length - 1) { + return false; + } + + var slide = this.slidesContainer && this.slidesContainer.querySelectorAll('.gslide')[index]; + + if (slide) { + if (this.getActiveSlideIndex() == index) { + if (index == this.elements.length - 1) { + this.prevSlide(); + } else { + this.nextSlide(); + } + } + + slide.parentNode.removeChild(slide); + } + + this.elements.splice(index, 1); + this.trigger('slide_removed', index); + + if (isFunction(this.settings.slideRemoved)) { + this.settings.slideRemoved(index); + } + } + }, { + key: "slideAnimateIn", + value: function slideAnimateIn(slide, first) { + var _this4 = this; + + var slideMedia = slide.querySelector('.gslide-media'); + var slideDesc = slide.querySelector('.gslide-description'); + var prevData = { + index: this.prevActiveSlideIndex, + slide: this.prevActiveSlide, + slideNode: this.prevActiveSlide, + slideIndex: this.prevActiveSlide, + slideConfig: isNil(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].slideConfig, + trigger: isNil(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].node, + player: this.getSlidePlayerInstance(this.prevActiveSlideIndex) + }; + var nextData = { + index: this.index, + slide: this.activeSlide, + slideNode: this.activeSlide, + slideConfig: this.elements[this.index].slideConfig, + slideIndex: this.index, + trigger: this.elements[this.index].node, + player: this.getSlidePlayerInstance(this.index) + }; + + if (slideMedia.offsetWidth > 0 && slideDesc) { + hide(slideDesc); + + slideDesc.style.display = ''; + } + + removeClass(slide, this.effectsClasses); + + if (first) { + animateElement(slide, this.settings.cssEfects[this.settings.openEffect]["in"], function () { + if (_this4.settings.autoplayVideos) { + _this4.slidePlayerPlay(slide); + } + + _this4.trigger('slide_changed', { + prev: prevData, + current: nextData + }); + + if (isFunction(_this4.settings.afterSlideChange)) { + _this4.settings.afterSlideChange.apply(_this4, [prevData, nextData]); + } + }); + } else { + var effectName = this.settings.slideEffect; + var animIn = effectName !== 'none' ? this.settings.cssEfects[effectName]["in"] : effectName; + + if (this.prevActiveSlideIndex > this.index) { + if (this.settings.slideEffect == 'slide') { + animIn = this.settings.cssEfects.slideBack["in"]; + } + } + + animateElement(slide, animIn, function () { + if (_this4.settings.autoplayVideos) { + _this4.slidePlayerPlay(slide); + } + + _this4.trigger('slide_changed', { + prev: prevData, + current: nextData + }); + + if (isFunction(_this4.settings.afterSlideChange)) { + _this4.settings.afterSlideChange.apply(_this4, [prevData, nextData]); + } + }); + } + + setTimeout(function () { + _this4.resize(slide); + }, 100); + + addClass(slide, 'current'); + } + }, { + key: "slideAnimateOut", + value: function slideAnimateOut() { + if (!this.prevActiveSlide) { + return false; + } + + var prevSlide = this.prevActiveSlide; + + removeClass(prevSlide, this.effectsClasses); + + addClass(prevSlide, 'prev'); + + var animation = this.settings.slideEffect; + var animOut = animation !== 'none' ? this.settings.cssEfects[animation].out : animation; + this.slidePlayerPause(prevSlide); + this.trigger('slide_before_change', { + prev: { + index: this.prevActiveSlideIndex, + slide: this.prevActiveSlide, + slideNode: this.prevActiveSlide, + slideIndex: this.prevActiveSlideIndex, + slideConfig: isNil(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].slideConfig, + trigger: isNil(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].node, + player: this.getSlidePlayerInstance(this.prevActiveSlideIndex) + }, + current: { + index: this.index, + slide: this.activeSlide, + slideNode: this.activeSlide, + slideIndex: this.index, + slideConfig: this.elements[this.index].slideConfig, + trigger: this.elements[this.index].node, + player: this.getSlidePlayerInstance(this.index) + } + }); + + if (isFunction(this.settings.beforeSlideChange)) { + this.settings.beforeSlideChange.apply(this, [{ + index: this.prevActiveSlideIndex, + slide: this.prevActiveSlide, + player: this.getSlidePlayerInstance(this.prevActiveSlideIndex) + }, { + index: this.index, + slide: this.activeSlide, + player: this.getSlidePlayerInstance(this.index) + }]); + } + + if (this.prevActiveSlideIndex > this.index && this.settings.slideEffect == 'slide') { + animOut = this.settings.cssEfects.slideBack.out; + } + + animateElement(prevSlide, animOut, function () { + var container = prevSlide.querySelector('.ginner-container'); + var media = prevSlide.querySelector('.gslide-media'); + var desc = prevSlide.querySelector('.gslide-description'); + container.style.transform = ''; + media.style.transform = ''; + + removeClass(media, 'greset'); + + media.style.opacity = ''; + + if (desc) { + desc.style.opacity = ''; + } + + removeClass(prevSlide, 'prev'); + }); + } + }, { + key: "getAllPlayers", + value: function getAllPlayers() { + return this.videoPlayers; + } + }, { + key: "getSlidePlayerInstance", + value: function getSlidePlayerInstance(index) { + var id = 'gvideo' + index; + var videoPlayers = this.getAllPlayers(); + + if (has(videoPlayers, id) && videoPlayers[id]) { + return videoPlayers[id]; + } + + return false; + } + }, { + key: "stopSlideVideo", + value: function stopSlideVideo(slide) { + if (isNode(slide)) { + var node = slide.querySelector('.gvideo-wrapper'); + + if (node) { + slide = node.getAttribute('data-index'); + } + } + + console.log('stopSlideVideo is deprecated, use slidePlayerPause'); + var player = this.getSlidePlayerInstance(slide); + + if (player && player.playing) { + player.pause(); + } + } + }, { + key: "slidePlayerPause", + value: function slidePlayerPause(slide) { + if (isNode(slide)) { + var node = slide.querySelector('.gvideo-wrapper'); + + if (node) { + slide = node.getAttribute('data-index'); + } + } + + var player = this.getSlidePlayerInstance(slide); + + if (player && player.playing) { + player.pause(); + } + } + }, { + key: "playSlideVideo", + value: function playSlideVideo(slide) { + if (isNode(slide)) { + var node = slide.querySelector('.gvideo-wrapper'); + + if (node) { + slide = node.getAttribute('data-index'); + } + } + + console.log('playSlideVideo is deprecated, use slidePlayerPlay'); + var player = this.getSlidePlayerInstance(slide); + + if (player && !player.playing) { + player.play(); + } + } + }, { + key: "slidePlayerPlay", + value: function slidePlayerPlay(slide) { + if (isNode(slide)) { + var node = slide.querySelector('.gvideo-wrapper'); + + if (node) { + slide = node.getAttribute('data-index'); + } + } + + var player = this.getSlidePlayerInstance(slide); + + if (player && !player.playing) { + player.play(); + + if (this.settings.autofocusVideos) { + player.elements.container.focus(); + } + } + } + }, { + key: "setElements", + value: function setElements(elements) { + var _this5 = this; + + this.settings.elements = false; + var newElements = []; + + if (elements && elements.length) { + each(elements, function (el, i) { + var slide = new Slide(el, _this5, i); + var data = slide.getConfig(); + + var slideInfo = extend({}, data); + + slideInfo.slideConfig = data; + slideInfo.instance = slide; + slideInfo.index = i; + newElements.push(slideInfo); + }); + } + + this.elements = newElements; + + if (this.lightboxOpen) { + this.slidesContainer.innerHTML = ''; + + if (this.elements.length) { + each(this.elements, function () { + var slide = createHTML(_this5.settings.slideHTML); + + _this5.slidesContainer.appendChild(slide); + }); + + this.showSlide(0, true); + } + } + } + }, { + key: "getElementIndex", + value: function getElementIndex(node) { + var index = false; + + each(this.elements, function (el, i) { + if (has(el, 'node') && el.node == node) { + index = i; + return true; + } + }); + + return index; + } + }, { + key: "getElements", + value: function getElements() { + var _this6 = this; + + var list = []; + this.elements = this.elements ? this.elements : []; + + if (!isNil(this.settings.elements) && isArray(this.settings.elements) && this.settings.elements.length) { + each(this.settings.elements, function (el, i) { + var slide = new Slide(el, _this6, i); + var elData = slide.getConfig(); + + var slideInfo = extend({}, elData); + + slideInfo.node = false; + slideInfo.index = i; + slideInfo.instance = slide; + slideInfo.slideConfig = elData; + list.push(slideInfo); + }); + } + + var nodes = false; + var selector = this.getSelector(); + + if (selector) { + nodes = document.querySelectorAll(this.getSelector()); + } + + if (!nodes) { + return list; + } + + each(nodes, function (el, i) { + var slide = new Slide(el, _this6, i); + var elData = slide.getConfig(); + + var slideInfo = extend({}, elData); + + slideInfo.node = el; + slideInfo.index = i; + slideInfo.instance = slide; + slideInfo.slideConfig = elData; + slideInfo.gallery = el.getAttribute('data-gallery'); + list.push(slideInfo); + }); + + return list; + } + }, { + key: "getGalleryElements", + value: function getGalleryElements(list, gallery) { + return list.filter(function (el) { + return el.gallery == gallery; + }); + } + }, { + key: "getSelector", + value: function getSelector() { + if (this.settings.elements) { + return false; + } + + if (this.settings.selector && this.settings.selector.substring(0, 5) == 'data-') { + return "*[".concat(this.settings.selector, "]"); + } + + return this.settings.selector; + } + }, { + key: "getActiveSlide", + value: function getActiveSlide() { + return this.slidesContainer.querySelectorAll('.gslide')[this.index]; + } + }, { + key: "getActiveSlideIndex", + value: function getActiveSlideIndex() { + return this.index; + } + }, { + key: "getAnimationClasses", + value: function getAnimationClasses() { + var effects = []; + + for (var key in this.settings.cssEfects) { + if (this.settings.cssEfects.hasOwnProperty(key)) { + var effect = this.settings.cssEfects[key]; + effects.push("g".concat(effect["in"])); + effects.push("g".concat(effect.out)); + } + } + + return effects.join(' '); + } + }, { + key: "build", + value: function build() { + var _this7 = this; + + if (this.built) { + return false; + } + + var children = document.body.childNodes; + var bodyChildElms = []; + + each(children, function (el) { + if (el.parentNode == document.body && el.nodeName.charAt(0) !== '#' && el.hasAttribute && !el.hasAttribute('aria-hidden')) { + bodyChildElms.push(el); + el.setAttribute('aria-hidden', 'true'); + } + }); + + var nextSVG = has(this.settings.svg, 'next') ? this.settings.svg.next : ''; + var prevSVG = has(this.settings.svg, 'prev') ? this.settings.svg.prev : ''; + var closeSVG = has(this.settings.svg, 'close') ? this.settings.svg.close : ''; + var lightboxHTML = this.settings.lightboxHTML; + lightboxHTML = lightboxHTML.replace(/{nextSVG}/g, nextSVG); + lightboxHTML = lightboxHTML.replace(/{prevSVG}/g, prevSVG); + lightboxHTML = lightboxHTML.replace(/{closeSVG}/g, closeSVG); + lightboxHTML = createHTML(lightboxHTML); + document.body.appendChild(lightboxHTML); + var modal = document.getElementById('glightbox-body'); + this.modal = modal; + var closeButton = modal.querySelector('.gclose'); + this.prevButton = modal.querySelector('.gprev'); + this.nextButton = modal.querySelector('.gnext'); + this.overlay = modal.querySelector('.goverlay'); + this.loader = modal.querySelector('.gloader'); + this.slidesContainer = document.getElementById('glightbox-slider'); + this.bodyHiddenChildElms = bodyChildElms; + this.events = {}; + + addClass(this.modal, 'glightbox-' + this.settings.skin); + + if (this.settings.closeButton && closeButton) { + this.events['close'] = addEvent('click', { + onElement: closeButton, + withCallback: function withCallback(e, target) { + e.preventDefault(); + + _this7.close(); + } + }); + } + + if (closeButton && !this.settings.closeButton) { + closeButton.parentNode.removeChild(closeButton); + } + + if (this.nextButton) { + this.events['next'] = addEvent('click', { + onElement: this.nextButton, + withCallback: function withCallback(e, target) { + e.preventDefault(); + + _this7.nextSlide(); + } + }); + } + + if (this.prevButton) { + this.events['prev'] = addEvent('click', { + onElement: this.prevButton, + withCallback: function withCallback(e, target) { + e.preventDefault(); + + _this7.prevSlide(); + } + }); + } + + if (this.settings.closeOnOutsideClick) { + this.events['outClose'] = addEvent('click', { + onElement: modal, + withCallback: function withCallback(e, target) { + if (!_this7.preventOutsideClick && !hasClass(document.body, 'glightbox-mobile') && !closest(e.target, '.ginner-container')) { + if (!closest(e.target, '.gbtn') && !hasClass(e.target, 'gnext') && !hasClass(e.target, 'gprev')) { + _this7.close(); + } + } + } + }); + } + + each(this.elements, function (slide, i) { + _this7.slidesContainer.appendChild(slide.instance.create()); + + slide.slideNode = _this7.slidesContainer.querySelectorAll('.gslide')[i]; + }); + + if (isTouch$1) { + addClass(document.body, 'glightbox-touch'); + } + + this.events['resize'] = addEvent('resize', { + onElement: window, + withCallback: function withCallback() { + _this7.resize(); + } + }); + this.built = true; + } + }, { + key: "resize", + value: function resize() { + var slide = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + slide = !slide ? this.activeSlide : slide; + + if (!slide || hasClass(slide, 'zoomed')) { + return; + } + + var winSize = windowSize(); + + var video = slide.querySelector('.gvideo-wrapper'); + var image = slide.querySelector('.gslide-image'); + var description = this.slideDescription; + var winWidth = winSize.width; + var winHeight = winSize.height; + + if (winWidth <= 768) { + addClass(document.body, 'glightbox-mobile'); + } else { + removeClass(document.body, 'glightbox-mobile'); + } + + if (!video && !image) { + return; + } + + var descriptionResize = false; + + if (description && (hasClass(description, 'description-bottom') || hasClass(description, 'description-top')) && !hasClass(description, 'gabsolute')) { + descriptionResize = true; + } + + if (image) { + if (winWidth <= 768) { + var imgNode = image.querySelector('img'); + } else if (descriptionResize) { + var descHeight = description.offsetHeight; + + var _imgNode = image.querySelector('img'); + + _imgNode.setAttribute('style', "max-height: calc(100vh - ".concat(descHeight, "px)")); + + description.setAttribute('style', "max-width: ".concat(_imgNode.offsetWidth, "px;")); + } + } + + if (video) { + var ratio = has(this.settings.plyr.config, 'ratio') ? this.settings.plyr.config.ratio : ''; + + if (!ratio) { + var containerWidth = video.clientWidth; + var containerHeight = video.clientHeight; + var divisor = containerWidth / containerHeight; + ratio = "".concat(containerWidth / divisor, ":").concat(containerHeight / divisor); + } + + var videoRatio = ratio.split(':'); + var videoWidth = this.settings.videosWidth; + var maxWidth = this.settings.videosWidth; + + if (isNumber(videoWidth) || videoWidth.indexOf('px') !== -1) { + maxWidth = parseInt(videoWidth); + } else { + if (videoWidth.indexOf('vw') !== -1) { + maxWidth = winWidth * parseInt(videoWidth) / 100; + } else if (videoWidth.indexOf('vh') !== -1) { + maxWidth = winHeight * parseInt(videoWidth) / 100; + } else if (videoWidth.indexOf('%') !== -1) { + maxWidth = winWidth * parseInt(videoWidth) / 100; + } else { + maxWidth = parseInt(video.clientWidth); + } + } + + var maxHeight = maxWidth / (parseInt(videoRatio[0]) / parseInt(videoRatio[1])); + maxHeight = Math.floor(maxHeight); + + if (descriptionResize) { + winHeight = winHeight - description.offsetHeight; + } + + if (maxWidth > winWidth || maxHeight > winHeight || winHeight < maxHeight && winWidth > maxWidth) { + var vwidth = video.offsetWidth; + var vheight = video.offsetHeight; + + var _ratio = winHeight / vheight; + + var vsize = { + width: vwidth * _ratio, + height: vheight * _ratio + }; + video.parentNode.setAttribute('style', "max-width: ".concat(vsize.width, "px")); + + if (descriptionResize) { + description.setAttribute('style', "max-width: ".concat(vsize.width, "px;")); + } + } else { + video.parentNode.style.maxWidth = "".concat(videoWidth); + + if (descriptionResize) { + description.setAttribute('style', "max-width: ".concat(videoWidth, ";")); + } + } + } + } + }, { + key: "reload", + value: function reload() { + this.init(); + } + }, { + key: "updateNavigationClasses", + value: function updateNavigationClasses() { + var loop = this.loop(); + + removeClass(this.nextButton, 'disabled'); + + removeClass(this.prevButton, 'disabled'); + + if (this.index == 0 && this.elements.length - 1 == 0) { + addClass(this.prevButton, 'disabled'); + + addClass(this.nextButton, 'disabled'); + } else if (this.index === 0 && !loop) { + addClass(this.prevButton, 'disabled'); + } else if (this.index === this.elements.length - 1 && !loop) { + addClass(this.nextButton, 'disabled'); + } + } + }, { + key: "loop", + value: function loop() { + var loop = has(this.settings, 'loopAtEnd') ? this.settings.loopAtEnd : null; + loop = has(this.settings, 'loop') ? this.settings.loop : loop; + return loop; + } + }, { + key: "close", + value: function close() { + var _this8 = this; + + if (!this.lightboxOpen) { + if (this.events) { + for (var key in this.events) { + if (this.events.hasOwnProperty(key)) { + this.events[key].destroy(); + } + } + + this.events = null; + } + + return false; + } + + if (this.closing) { + return false; + } + + this.closing = true; + this.slidePlayerPause(this.activeSlide); + + if (this.fullElementsList) { + this.elements = this.fullElementsList; + } + + if (this.bodyHiddenChildElms.length) { + each(this.bodyHiddenChildElms, function (el) { + el.removeAttribute('aria-hidden'); + }); + } + + addClass(this.modal, 'glightbox-closing'); + + animateElement(this.overlay, this.settings.openEffect == 'none' ? 'none' : this.settings.cssEfects.fade.out); + + animateElement(this.activeSlide, this.settings.cssEfects[this.settings.closeEffect].out, function () { + _this8.activeSlide = null; + _this8.prevActiveSlideIndex = null; + _this8.prevActiveSlide = null; + _this8.built = false; + + if (_this8.events) { + for (var _key in _this8.events) { + if (_this8.events.hasOwnProperty(_key)) { + _this8.events[_key].destroy(); + } + } + + _this8.events = null; + } + + var body = document.body; + + removeClass(html, 'glightbox-open'); + + removeClass(body, 'glightbox-open touching gdesc-open glightbox-touch glightbox-mobile gscrollbar-fixer'); + + _this8.modal.parentNode.removeChild(_this8.modal); + + _this8.trigger('close'); + + if (isFunction(_this8.settings.onClose)) { + _this8.settings.onClose(); + } + + var styles = document.querySelector('.gcss-styles'); + + if (styles) { + styles.parentNode.removeChild(styles); + } + + _this8.lightboxOpen = false; + _this8.closing = null; + }); + } + }, { + key: "destroy", + value: function destroy() { + this.close(); + this.clearAllEvents(); + + if (this.baseEvents) { + this.baseEvents.destroy(); + } + } + }, { + key: "on", + value: function on(evt, callback) { + var once = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + if (!evt || !isFunction(callback)) { + throw new TypeError('Event name and callback must be defined'); + } + + this.apiEvents.push({ + evt: evt, + once: once, + callback: callback + }); + } + }, { + key: "once", + value: function once(evt, callback) { + this.on(evt, callback, true); + } + }, { + key: "trigger", + value: function trigger(eventName) { + var _this9 = this; + + var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + var onceTriggered = []; + + each(this.apiEvents, function (event, i) { + var evt = event.evt, + once = event.once, + callback = event.callback; + + if (evt == eventName) { + callback(data); + + if (once) { + onceTriggered.push(i); + } + } + }); + + if (onceTriggered.length) { + each(onceTriggered, function (i) { + return _this9.apiEvents.splice(i, 1); + }); + } + } + }, { + key: "clearAllEvents", + value: function clearAllEvents() { + this.apiEvents.splice(0, this.apiEvents.length); + } + }, { + key: "version", + value: function version() { + return _version; + } + }]); + + return GlightboxInit; + }(); + + function glightbox () { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var instance = new GlightboxInit(options); + instance.init(); + return instance; + } + + return glightbox; + +}))); diff --git a/public/assets/vendor/glightbox/js/glightbox.min.js b/public/assets/vendor/glightbox/js/glightbox.min.js new file mode 100644 index 0000000..56d6a89 --- /dev/null +++ b/public/assets/vendor/glightbox/js/glightbox.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).GLightbox=t()}(this,(function(){"use strict";function e(t){return(e="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})(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=e[s]=e[s]||[],l={all:n,evt:null,found:null};return t&&i&&P(n)>0&&o(n,(function(e,n){if(e.eventName==t&&e.fn.toString()==i.toString())return l.found=!0,l.evt=n,!1})),l}function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t.onElement,n=t.withCallback,s=t.avoidDuplicate,l=void 0===s||s,a=t.once,h=void 0!==a&&a,d=t.useCapture,c=void 0!==d&&d,u=arguments.length>2?arguments[2]:void 0,g=i||[];function v(e){T(n)&&n.call(u,e,this),h&&v.destroy()}return C(g)&&(g=document.querySelectorAll(g)),v.destroy=function(){o(g,(function(t){var i=r(t,e,v);i.found&&i.all.splice(i.evt,1),t.removeEventListener&&t.removeEventListener(e,v,c)}))},o(g,(function(t){var i=r(t,e,v);(t.addEventListener&&l&&!i.found||!l)&&(t.addEventListener(e,v,c),i.all.push({eventName:e,fn:v}))})),v}function h(e,t){o(t.split(" "),(function(t){return e.classList.add(t)}))}function d(e,t){o(t.split(" "),(function(t){return e.classList.remove(t)}))}function c(e,t){return e.classList.contains(t)}function u(e,t){for(;e!==document.body;){if(!(e=e.parentElement))return!1;if("function"==typeof e.matches?e.matches(t):e.msMatchesSelector(t))return e}}function g(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e||""===t)return!1;if("none"==t)return T(i)&&i(),!1;var n=x(),s=t.split(" ");o(s,(function(t){h(e,"g"+t)})),a(n,{onElement:e,avoidDuplicate:!1,once:!0,withCallback:function(e,t){o(s,(function(e){d(t,"g"+e)})),T(i)&&i()}})}function v(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(""==t)return e.style.webkitTransform="",e.style.MozTransform="",e.style.msTransform="",e.style.OTransform="",e.style.transform="",!1;e.style.webkitTransform=t,e.style.MozTransform=t,e.style.msTransform=t,e.style.OTransform=t,e.style.transform=t}function f(e){e.style.display="block"}function p(e){e.style.display="none"}function m(e){var t=document.createDocumentFragment(),i=document.createElement("div");for(i.innerHTML=e;i.firstChild;)t.appendChild(i.firstChild);return t}function y(){return{width:window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,height:window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight}}function x(){var e,t=document.createElement("fakeelement"),i={animation:"animationend",OAnimation:"oAnimationEnd",MozAnimation:"animationend",WebkitAnimation:"webkitAnimationEnd"};for(e in i)if(void 0!==t.style[e])return i[e]}function b(e,t,i,n){if(e())t();else{var s;i||(i=100);var l=setInterval((function(){e()&&(clearInterval(l),s&&clearTimeout(s),t())}),i);n&&(s=setTimeout((function(){clearInterval(l)}),n))}}function S(e,t,i){if(I(e))console.error("Inject assets error");else if(T(t)&&(i=t,t=!1),C(t)&&t in window)T(i)&&i();else{var n;if(-1!==e.indexOf(".css")){if((n=document.querySelectorAll('link[href="'+e+'"]'))&&n.length>0)return void(T(i)&&i());var s=document.getElementsByTagName("head")[0],l=s.querySelectorAll('link[rel="stylesheet"]'),o=document.createElement("link");return o.rel="stylesheet",o.type="text/css",o.href=e,o.media="all",l?s.insertBefore(o,l[0]):s.appendChild(o),void(T(i)&&i())}if((n=document.querySelectorAll('script[src="'+e+'"]'))&&n.length>0){if(T(i)){if(C(t))return b((function(){return void 0!==window[t]}),(function(){i()})),!1;i()}}else{var r=document.createElement("script");r.type="text/javascript",r.src=e,r.onload=function(){if(T(i)){if(C(t))return b((function(){return void 0!==window[t]}),(function(){i()})),!1;i()}},document.body.appendChild(r)}}}function w(){return"navigator"in window&&window.navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(Android)|(PlayBook)|(BB10)|(BlackBerry)|(Opera Mini)|(IEMobile)|(webOS)|(MeeGo)/i)}function T(e){return"function"==typeof e}function C(e){return"string"==typeof e}function k(e){return!(!e||!e.nodeType||1!=e.nodeType)}function E(e){return Array.isArray(e)}function A(e){return e&&e.length&&isFinite(e.length)}function L(t){return"object"===e(t)&&null!=t&&!T(t)&&!E(t)}function I(e){return null==e}function O(e,t){return null!==e&&hasOwnProperty.call(e,t)}function P(e){if(L(e)){if(e.keys)return e.keys().length;var t=0;for(var i in e)O(e,i)&&t++;return t}return e.length}function z(e){return!isNaN(parseFloat(e))&&isFinite(e)}function M(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1,t=document.querySelectorAll(".gbtn[data-taborder]:not(.disabled)");if(!t.length)return!1;if(1==t.length)return t[0];"string"==typeof e&&(e=parseInt(e));var i=e<0?1:e+1;i>t.length&&(i="1");var n=[];o(t,(function(e){n.push(e.getAttribute("data-taborder"))}));var s=n.filter((function(e){return e>=parseInt(i)})),l=s.sort()[0];return document.querySelector('.gbtn[data-taborder="'.concat(l,'"]'))}function X(e){if(e.events.hasOwnProperty("keyboard"))return!1;e.events.keyboard=a("keydown",{onElement:window,withCallback:function(t,i){var n=(t=t||window.event).keyCode;if(9==n){var s=document.querySelector(".gbtn.focused");if(!s){var l=!(!document.activeElement||!document.activeElement.nodeName)&&document.activeElement.nodeName.toLocaleLowerCase();if("input"==l||"textarea"==l||"button"==l)return}t.preventDefault();var o=document.querySelectorAll(".gbtn[data-taborder]");if(!o||o.length<=0)return;if(!s){var r=M();return void(r&&(r.focus(),h(r,"focused")))}var a=M(s.getAttribute("data-taborder"));d(s,"focused"),a&&(a.focus(),h(a,"focused"))}39==n&&e.nextSlide(),37==n&&e.prevSlide(),27==n&&e.close()}})}function Y(e){return Math.sqrt(e.x*e.x+e.y*e.y)}function q(e,t){var i=function(e,t){var i=Y(e)*Y(t);if(0===i)return 0;var n=function(e,t){return e.x*t.x+e.y*t.y}(e,t)/i;return n>1&&(n=1),Math.acos(n)}(e,t);return function(e,t){return e.x*t.y-t.x*e.y}(e,t)>0&&(i*=-1),180*i/Math.PI}var N=function(){function e(i){t(this,e),this.handlers=[],this.el=i}return n(e,[{key:"add",value:function(e){this.handlers.push(e)}},{key:"del",value:function(e){e||(this.handlers=[]);for(var t=this.handlers.length;t>=0;t--)this.handlers[t]===e&&this.handlers.splice(t,1)}},{key:"dispatch",value:function(){for(var e=0,t=this.handlers.length;e=0)console.log("ignore drag for this touched element",e.target.nodeName.toLowerCase());else{this.now=Date.now(),this.x1=e.touches[0].pageX,this.y1=e.touches[0].pageY,this.delta=this.now-(this.last||this.now),this.touchStart.dispatch(e,this.element),null!==this.preTapPosition.x&&(this.isDoubleTap=this.delta>0&&this.delta<=250&&Math.abs(this.preTapPosition.x-this.x1)<30&&Math.abs(this.preTapPosition.y-this.y1)<30,this.isDoubleTap&&clearTimeout(this.singleTapTimeout)),this.preTapPosition.x=this.x1,this.preTapPosition.y=this.y1,this.last=this.now;var t=this.preV;if(e.touches.length>1){this._cancelLongTap(),this._cancelSingleTap();var i={x:e.touches[1].pageX-this.x1,y:e.touches[1].pageY-this.y1};t.x=i.x,t.y=i.y,this.pinchStartLen=Y(t),this.multipointStart.dispatch(e,this.element)}this._preventTap=!1,this.longTapTimeout=setTimeout(function(){this.longTap.dispatch(e,this.element),this._preventTap=!0}.bind(this),750)}}}},{key:"move",value:function(e){if(e.touches){var t=this.preV,i=e.touches.length,n=e.touches[0].pageX,s=e.touches[0].pageY;if(this.isDoubleTap=!1,i>1){var l=e.touches[1].pageX,o=e.touches[1].pageY,r={x:e.touches[1].pageX-n,y:e.touches[1].pageY-s};null!==t.x&&(this.pinchStartLen>0&&(e.zoom=Y(r)/this.pinchStartLen,this.pinch.dispatch(e,this.element)),e.angle=q(r,t),this.rotate.dispatch(e,this.element)),t.x=r.x,t.y=r.y,null!==this.x2&&null!==this.sx2?(e.deltaX=(n-this.x2+l-this.sx2)/2,e.deltaY=(s-this.y2+o-this.sy2)/2):(e.deltaX=0,e.deltaY=0),this.twoFingerPressMove.dispatch(e,this.element),this.sx2=l,this.sy2=o}else{if(null!==this.x2){e.deltaX=n-this.x2,e.deltaY=s-this.y2;var a=Math.abs(this.x1-this.x2),h=Math.abs(this.y1-this.y2);(a>10||h>10)&&(this._preventTap=!0)}else e.deltaX=0,e.deltaY=0;this.pressMove.dispatch(e,this.element)}this.touchMove.dispatch(e,this.element),this._cancelLongTap(),this.x2=n,this.y2=s,i>1&&e.preventDefault()}}},{key:"end",value:function(e){if(e.changedTouches){this._cancelLongTap();var t=this;e.touches.length<2&&(this.multipointEnd.dispatch(e,this.element),this.sx2=this.sy2=null),this.x2&&Math.abs(this.x1-this.x2)>30||this.y2&&Math.abs(this.y1-this.y2)>30?(e.direction=this._swipeDirection(this.x1,this.x2,this.y1,this.y2),this.swipeTimeout=setTimeout((function(){t.swipe.dispatch(e,t.element)}),0)):(this.tapTimeout=setTimeout((function(){t._preventTap||t.tap.dispatch(e,t.element),t.isDoubleTap&&(t.doubleTap.dispatch(e,t.element),t.isDoubleTap=!1)}),0),t.isDoubleTap||(t.singleTapTimeout=setTimeout((function(){t.singleTap.dispatch(e,t.element)}),250))),this.touchEnd.dispatch(e,this.element),this.preV.x=0,this.preV.y=0,this.zoom=1,this.pinchStartLen=null,this.x1=this.x2=this.y1=this.y2=null}}},{key:"cancelAll",value:function(){this._preventTap=!0,clearTimeout(this.singleTapTimeout),clearTimeout(this.tapTimeout),clearTimeout(this.longTapTimeout),clearTimeout(this.swipeTimeout)}},{key:"cancel",value:function(e){this.cancelAll(),this.touchCancel.dispatch(e,this.element)}},{key:"_cancelLongTap",value:function(){clearTimeout(this.longTapTimeout)}},{key:"_cancelSingleTap",value:function(){clearTimeout(this.singleTapTimeout)}},{key:"_swipeDirection",value:function(e,t,i,n){return Math.abs(e-t)>=Math.abs(i-n)?e-t>0?"Left":"Right":i-n>0?"Up":"Down"}},{key:"on",value:function(e,t){this[e]&&this[e].add(t)}},{key:"off",value:function(e,t){this[e]&&this[e].del(t)}},{key:"destroy",value:function(){return this.singleTapTimeout&&clearTimeout(this.singleTapTimeout),this.tapTimeout&&clearTimeout(this.tapTimeout),this.longTapTimeout&&clearTimeout(this.longTapTimeout),this.swipeTimeout&&clearTimeout(this.swipeTimeout),this.element.removeEventListener("touchstart",this.start),this.element.removeEventListener("touchmove",this.move),this.element.removeEventListener("touchend",this.end),this.element.removeEventListener("touchcancel",this.cancel),this.rotate.del(),this.touchStart.del(),this.multipointStart.del(),this.multipointEnd.del(),this.pinch.del(),this.swipe.del(),this.tap.del(),this.doubleTap.del(),this.longTap.del(),this.singleTap.del(),this.pressMove.del(),this.twoFingerPressMove.del(),this.touchMove.del(),this.touchEnd.del(),this.touchCancel.del(),this.preV=this.pinchStartLen=this.zoom=this.isDoubleTap=this.delta=this.last=this.now=this.tapTimeout=this.singleTapTimeout=this.longTapTimeout=this.swipeTimeout=this.x1=this.x2=this.y1=this.y2=this.preTapPosition=this.rotate=this.touchStart=this.multipointStart=this.multipointEnd=this.pinch=this.swipe=this.tap=this.doubleTap=this.longTap=this.singleTap=this.pressMove=this.touchMove=this.touchEnd=this.touchCancel=this.twoFingerPressMove=null,window.removeEventListener("scroll",this._cancelAllHandler),null}}]),e}();function W(e){var t=function(){var e,t=document.createElement("fakeelement"),i={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(e in i)if(void 0!==t.style[e])return i[e]}(),i=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,n=c(e,"gslide-media")?e:e.querySelector(".gslide-media"),s=u(n,".ginner-container"),l=e.querySelector(".gslide-description");i>769&&(n=s),h(n,"greset"),v(n,"translate3d(0, 0, 0)"),a(t,{onElement:n,once:!0,withCallback:function(e,t){d(n,"greset")}}),n.style.opacity="",l&&(l.style.opacity="")}function B(e){if(e.events.hasOwnProperty("touch"))return!1;var t,i,n,s=y(),l=s.width,o=s.height,r=!1,a=null,g=null,f=null,p=!1,m=1,x=1,b=!1,S=!1,w=null,T=null,C=null,k=null,E=0,A=0,L=!1,I=!1,O={},P={},z=0,M=0,X=document.getElementById("glightbox-slider"),Y=document.querySelector(".goverlay"),q=new _(X,{touchStart:function(t){if(r=!0,(c(t.targetTouches[0].target,"ginner-container")||u(t.targetTouches[0].target,".gslide-desc")||"a"==t.targetTouches[0].target.nodeName.toLowerCase())&&(r=!1),u(t.targetTouches[0].target,".gslide-inline")&&!c(t.targetTouches[0].target.parentNode,"gslide-inline")&&(r=!1),r){if(P=t.targetTouches[0],O.pageX=t.targetTouches[0].pageX,O.pageY=t.targetTouches[0].pageY,z=t.targetTouches[0].clientX,M=t.targetTouches[0].clientY,a=e.activeSlide,g=a.querySelector(".gslide-media"),n=a.querySelector(".gslide-inline"),f=null,c(g,"gslide-image")&&(f=g.querySelector("img")),(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)>769&&(g=a.querySelector(".ginner-container")),d(Y,"greset"),t.pageX>20&&t.pageXo){var a=O.pageX-P.pageX;if(Math.abs(a)<=13)return!1}p=!0;var h,d=s.targetTouches[0].clientX,c=s.targetTouches[0].clientY,u=z-d,m=M-c;if(Math.abs(u)>Math.abs(m)?(L=!1,I=!0):(I=!1,L=!0),t=P.pageX-O.pageX,E=100*t/l,i=P.pageY-O.pageY,A=100*i/o,L&&f&&(h=1-Math.abs(i)/o,Y.style.opacity=h,e.settings.touchFollowAxis&&(E=0)),I&&(h=1-Math.abs(t)/l,g.style.opacity=h,e.settings.touchFollowAxis&&(A=0)),!f)return v(g,"translate3d(".concat(E,"%, 0, 0)"));v(g,"translate3d(".concat(E,"%, ").concat(A,"%, 0)"))}},touchEnd:function(){if(r){if(p=!1,S||b)return C=w,void(k=T);var t=Math.abs(parseInt(A)),i=Math.abs(parseInt(E));if(!(t>29&&f))return t<29&&i<25?(h(Y,"greset"),Y.style.opacity=1,W(g)):void 0;e.close()}},multipointEnd:function(){setTimeout((function(){b=!1}),50)},multipointStart:function(){b=!0,m=x||1},pinch:function(e){if(!f||p)return!1;b=!0,f.scaleX=f.scaleY=m*e.zoom;var t=m*e.zoom;if(S=!0,t<=1)return S=!1,t=1,k=null,C=null,w=null,T=null,void f.setAttribute("style","");t>4.5&&(t=4.5),f.style.transform="scale3d(".concat(t,", ").concat(t,", 1)"),x=t},pressMove:function(e){if(S&&!b){var t=P.pageX-O.pageX,i=P.pageY-O.pageY;C&&(t+=C),k&&(i+=k),w=t,T=i;var n="translate3d(".concat(t,"px, ").concat(i,"px, 0)");x&&(n+=" scale3d(".concat(x,", ").concat(x,", 1)")),v(f,n)}},swipe:function(t){if(!S)if(b)b=!1;else{if("Left"==t.direction){if(e.index==e.elements.length-1)return W(g);e.nextSlide()}if("Right"==t.direction){if(0==e.index)return W(g);e.prevSlide()}}}});e.events.touch=q}var H=function(){function e(i,n){var s=this,l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(t(this,e),this.img=i,this.slide=n,this.onclose=l,this.img.setZoomEvents)return!1;this.active=!1,this.zoomedIn=!1,this.dragging=!1,this.currentX=null,this.currentY=null,this.initialX=null,this.initialY=null,this.xOffset=0,this.yOffset=0,this.img.addEventListener("mousedown",(function(e){return s.dragStart(e)}),!1),this.img.addEventListener("mouseup",(function(e){return s.dragEnd(e)}),!1),this.img.addEventListener("mousemove",(function(e){return s.drag(e)}),!1),this.img.addEventListener("click",(function(e){return s.slide.classList.contains("dragging-nav")?(s.zoomOut(),!1):s.zoomedIn?void(s.zoomedIn&&!s.dragging&&s.zoomOut()):s.zoomIn()}),!1),this.img.setZoomEvents=!0}return n(e,[{key:"zoomIn",value:function(){var e=this.widowWidth();if(!(this.zoomedIn||e<=768)){var t=this.img;if(t.setAttribute("data-style",t.getAttribute("style")),t.style.maxWidth=t.naturalWidth+"px",t.style.maxHeight=t.naturalHeight+"px",t.naturalWidth>e){var i=e/2-t.naturalWidth/2;this.setTranslate(this.img.parentNode,i,0)}this.slide.classList.add("zoomed"),this.zoomedIn=!0}}},{key:"zoomOut",value:function(){this.img.parentNode.setAttribute("style",""),this.img.setAttribute("style",this.img.getAttribute("data-style")),this.slide.classList.remove("zoomed"),this.zoomedIn=!1,this.currentX=null,this.currentY=null,this.initialX=null,this.initialY=null,this.xOffset=0,this.yOffset=0,this.onclose&&"function"==typeof this.onclose&&this.onclose()}},{key:"dragStart",value:function(e){e.preventDefault(),this.zoomedIn?("touchstart"===e.type?(this.initialX=e.touches[0].clientX-this.xOffset,this.initialY=e.touches[0].clientY-this.yOffset):(this.initialX=e.clientX-this.xOffset,this.initialY=e.clientY-this.yOffset),e.target===this.img&&(this.active=!0,this.img.classList.add("dragging"))):this.active=!1}},{key:"dragEnd",value:function(e){var t=this;e.preventDefault(),this.initialX=this.currentX,this.initialY=this.currentY,this.active=!1,setTimeout((function(){t.dragging=!1,t.img.isDragging=!1,t.img.classList.remove("dragging")}),100)}},{key:"drag",value:function(e){this.active&&(e.preventDefault(),"touchmove"===e.type?(this.currentX=e.touches[0].clientX-this.initialX,this.currentY=e.touches[0].clientY-this.initialY):(this.currentX=e.clientX-this.initialX,this.currentY=e.clientY-this.initialY),this.xOffset=this.currentX,this.yOffset=this.currentY,this.img.isDragging=!0,this.dragging=!0,this.setTranslate(this.img,this.currentX,this.currentY))}},{key:"onMove",value:function(e){if(this.zoomedIn){var t=e.clientX-this.img.naturalWidth/2,i=e.clientY-this.img.naturalHeight/2;this.setTranslate(this.img,t,i)}}},{key:"setTranslate",value:function(e,t,i){e.style.transform="translate3d("+t+"px, "+i+"px, 0)"}},{key:"widowWidth",value:function(){return window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth}}]),e}(),V=function(){function e(){var i=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t(this,e);var s=n.dragEl,l=n.toleranceX,o=void 0===l?40:l,r=n.toleranceY,a=void 0===r?65:r,h=n.slide,d=void 0===h?null:h,c=n.instance,u=void 0===c?null:c;this.el=s,this.active=!1,this.dragging=!1,this.currentX=null,this.currentY=null,this.initialX=null,this.initialY=null,this.xOffset=0,this.yOffset=0,this.direction=null,this.lastDirection=null,this.toleranceX=o,this.toleranceY=a,this.toleranceReached=!1,this.dragContainer=this.el,this.slide=d,this.instance=u,this.el.addEventListener("mousedown",(function(e){return i.dragStart(e)}),!1),this.el.addEventListener("mouseup",(function(e){return i.dragEnd(e)}),!1),this.el.addEventListener("mousemove",(function(e){return i.drag(e)}),!1)}return n(e,[{key:"dragStart",value:function(e){if(this.slide.classList.contains("zoomed"))this.active=!1;else{"touchstart"===e.type?(this.initialX=e.touches[0].clientX-this.xOffset,this.initialY=e.touches[0].clientY-this.yOffset):(this.initialX=e.clientX-this.xOffset,this.initialY=e.clientY-this.yOffset);var t=e.target.nodeName.toLowerCase();e.target.classList.contains("nodrag")||u(e.target,".nodrag")||-1!==["input","select","textarea","button","a"].indexOf(t)?this.active=!1:(e.preventDefault(),(e.target===this.el||"img"!==t&&u(e.target,".gslide-inline"))&&(this.active=!0,this.el.classList.add("dragging"),this.dragContainer=u(e.target,".ginner-container")))}}},{key:"dragEnd",value:function(e){var t=this;e&&e.preventDefault(),this.initialX=0,this.initialY=0,this.currentX=null,this.currentY=null,this.initialX=null,this.initialY=null,this.xOffset=0,this.yOffset=0,this.active=!1,this.doSlideChange&&(this.instance.preventOutsideClick=!0,"right"==this.doSlideChange&&this.instance.prevSlide(),"left"==this.doSlideChange&&this.instance.nextSlide()),this.doSlideClose&&this.instance.close(),this.toleranceReached||this.setTranslate(this.dragContainer,0,0,!0),setTimeout((function(){t.instance.preventOutsideClick=!1,t.toleranceReached=!1,t.lastDirection=null,t.dragging=!1,t.el.isDragging=!1,t.el.classList.remove("dragging"),t.slide.classList.remove("dragging-nav"),t.dragContainer.style.transform="",t.dragContainer.style.transition=""}),100)}},{key:"drag",value:function(e){if(this.active){e.preventDefault(),this.slide.classList.add("dragging-nav"),"touchmove"===e.type?(this.currentX=e.touches[0].clientX-this.initialX,this.currentY=e.touches[0].clientY-this.initialY):(this.currentX=e.clientX-this.initialX,this.currentY=e.clientY-this.initialY),this.xOffset=this.currentX,this.yOffset=this.currentY,this.el.isDragging=!0,this.dragging=!0,this.doSlideChange=!1,this.doSlideClose=!1;var t=Math.abs(this.currentX),i=Math.abs(this.currentY);if(t>0&&t>=Math.abs(this.currentY)&&(!this.lastDirection||"x"==this.lastDirection)){this.yOffset=0,this.lastDirection="x",this.setTranslate(this.dragContainer,this.currentX,0);var n=this.shouldChange();if(!this.instance.settings.dragAutoSnap&&n&&(this.doSlideChange=n),this.instance.settings.dragAutoSnap&&n)return this.instance.preventOutsideClick=!0,this.toleranceReached=!0,this.active=!1,this.instance.preventOutsideClick=!0,this.dragEnd(null),"right"==n&&this.instance.prevSlide(),void("left"==n&&this.instance.nextSlide())}if(this.toleranceY>0&&i>0&&i>=t&&(!this.lastDirection||"y"==this.lastDirection)){this.xOffset=0,this.lastDirection="y",this.setTranslate(this.dragContainer,0,this.currentY);var s=this.shouldClose();return!this.instance.settings.dragAutoSnap&&s&&(this.doSlideClose=!0),void(this.instance.settings.dragAutoSnap&&s&&this.instance.close())}}}},{key:"shouldChange",value:function(){var e=!1;if(Math.abs(this.currentX)>=this.toleranceX){var t=this.currentX>0?"right":"left";("left"==t&&this.slide!==this.slide.parentNode.lastChild||"right"==t&&this.slide!==this.slide.parentNode.firstChild)&&(e=t)}return e}},{key:"shouldClose",value:function(){var e=!1;return Math.abs(this.currentY)>=this.toleranceY&&(e=!0),e}},{key:"setTranslate",value:function(e,t,i){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];e.style.transition=n?"all .2s ease":"",e.style.transform="translate3d(".concat(t,"px, ").concat(i,"px, 0)")}}]),e}();function j(e,t,i,n){var s=e.querySelector(".gslide-media"),l=new Image,o="gSlideTitle_"+i,r="gSlideDesc_"+i;l.addEventListener("load",(function(){T(n)&&n()}),!1),l.src=t.href,""!=t.sizes&&""!=t.srcset&&(l.sizes=t.sizes,l.srcset=t.srcset),l.alt="",I(t.alt)||""===t.alt||(l.alt=t.alt),""!==t.title&&l.setAttribute("aria-labelledby",o),""!==t.description&&l.setAttribute("aria-describedby",r),t.hasOwnProperty("_hasCustomWidth")&&t._hasCustomWidth&&(l.style.width=t.width),t.hasOwnProperty("_hasCustomHeight")&&t._hasCustomHeight&&(l.style.height=t.height),s.insertBefore(l,s.firstChild)}function F(e,t,i,n){var s=this,l=e.querySelector(".ginner-container"),o="gvideo"+i,r=e.querySelector(".gslide-media"),a=this.getAllPlayers();h(l,"gvideo-container"),r.insertBefore(m('
'),r.firstChild);var d=e.querySelector(".gvideo-wrapper");S(this.settings.plyr.css,"Plyr");var c=t.href,u=location.protocol.replace(":",""),g="",v="",f=!1;"file"==u&&(u="http"),r.style.maxWidth=t.width,S(this.settings.plyr.js,"Plyr",(function(){if(c.match(/vimeo\.com\/([0-9]*)/)){var l=/vimeo.*\/(\d+)/i.exec(c);g="vimeo",v=l[1]}if(c.match(/(youtube\.com|youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/)||c.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/)||c.match(/(youtube\.com|youtube-nocookie\.com)\/embed\/([a-zA-Z0-9\-_]+)/)){var r=function(e){var t="";t=void 0!==(e=e.replace(/(>|<)/gi,"").split(/(vi\/|v=|\/v\/|youtu\.be\/|\/embed\/)/))[2]?(t=e[2].split(/[^0-9a-z_\-]/i))[0]:e;return t}(c);g="youtube",v=r}if(null!==c.match(/\.(mp4|ogg|webm|mov)$/)){g="local";var u='")}var w=f||m('
'));h(d,"".concat(g,"-video gvideo")),d.appendChild(w),d.setAttribute("data-id",o),d.setAttribute("data-index",i);var C=O(s.settings.plyr,"config")?s.settings.plyr.config:{},k=new Plyr("#"+o,C);k.on("ready",(function(e){var t=e.detail.plyr;a[o]=t,T(n)&&n()})),b((function(){return e.querySelector("iframe")&&"true"==e.querySelector("iframe").dataset.ready}),(function(){s.resize(e)})),k.on("enterfullscreen",R),k.on("exitfullscreen",R)}))}function R(e){var t=u(e.target,".gslide-media");"enterfullscreen"==e.type&&h(t,"fullscreen"),"exitfullscreen"==e.type&&d(t,"fullscreen")}function G(e,t,i,n){var s,l=this,o=e.querySelector(".gslide-media"),r=!(!O(t,"href")||!t.href)&&t.href.split("#").pop().trim(),d=!(!O(t,"content")||!t.content)&&t.content;if(d&&(C(d)&&(s=m('
'.concat(d,"
"))),k(d))){"none"==d.style.display&&(d.style.display="block");var c=document.createElement("div");c.className="ginlined-content",c.appendChild(d),s=c}if(r){var u=document.getElementById(r);if(!u)return!1;var g=u.cloneNode(!0);g.style.height=t.height,g.style.maxWidth=t.width,h(g,"ginlined-content"),s=g}if(!s)return console.error("Unable to append inline slide content",t),!1;o.style.height=t.height,o.style.width=t.width,o.appendChild(s),this.events["inlineclose"+r]=a("click",{onElement:o.querySelectorAll(".gtrigger-close"),withCallback:function(e){e.preventDefault(),l.close()}}),T(n)&&n()}function Z(e,t,i,n){var s=e.querySelector(".gslide-media"),l=function(e){var t=e.url,i=e.allow,n=e.callback,s=e.appendTo,l=document.createElement("iframe");return l.className="vimeo-video gvideo",l.src=t,l.style.width="100%",l.style.height="100%",i&&l.setAttribute("allow",i),l.onload=function(){h(l,"node-ready"),T(n)&&n()},s&&s.appendChild(l),l}({url:t.href,callback:n});s.parentNode.style.maxWidth=t.width,s.parentNode.style.height=t.height,s.appendChild(l)}var $=function(){function e(){var i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t(this,e),this.defaults={href:"",sizes:"",srcset:"",title:"",type:"",description:"",alt:"",descPosition:"bottom",effect:"",width:"",height:"",content:!1,zoomable:!0,draggable:!0},L(i)&&(this.defaults=l(this.defaults,i))}return n(e,[{key:"sourceType",value:function(e){var t=e;if(null!==(e=e.toLowerCase()).match(/\.(jpeg|jpg|jpe|gif|png|apn|webp|avif|svg)/))return"image";if(e.match(/(youtube\.com|youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/)||e.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/)||e.match(/(youtube\.com|youtube-nocookie\.com)\/embed\/([a-zA-Z0-9\-_]+)/))return"video";if(e.match(/vimeo\.com\/([0-9]*)/))return"video";if(null!==e.match(/\.(mp4|ogg|webm|mov)/))return"video";if(null!==e.match(/\.(mp3|wav|wma|aac|ogg)/))return"audio";if(e.indexOf("#")>-1&&""!==t.split("#").pop().trim())return"inline";return e.indexOf("goajax=true")>-1?"ajax":"external"}},{key:"parseConfig",value:function(e,t){var i=this,n=l({descPosition:t.descPosition},this.defaults);if(L(e)&&!k(e)){O(e,"type")||(O(e,"content")&&e.content?e.type="inline":O(e,"href")&&(e.type=this.sourceType(e.href)));var s=l(n,e);return this.setSize(s,t),s}var r="",a=e.getAttribute("data-glightbox"),h=e.nodeName.toLowerCase();if("a"===h&&(r=e.href),"img"===h&&(r=e.src,n.alt=e.alt),n.href=r,o(n,(function(s,l){O(t,l)&&"width"!==l&&(n[l]=t[l]);var o=e.dataset[l];I(o)||(n[l]=i.sanitizeValue(o))})),n.content&&(n.type="inline"),!n.type&&r&&(n.type=this.sourceType(r)),I(a)){if(!n.title&&"a"==h){var d=e.title;I(d)||""===d||(n.title=d)}if(!n.title&&"img"==h){var c=e.alt;I(c)||""===c||(n.title=c)}}else{var u=[];o(n,(function(e,t){u.push(";\\s?"+t)})),u=u.join("\\s?:|"),""!==a.trim()&&o(n,(function(e,t){var s=a,l=new RegExp("s?"+t+"s?:s?(.*?)("+u+"s?:|$)"),o=s.match(l);if(o&&o.length&&o[1]){var r=o[1].trim().replace(/;\s*$/,"");n[t]=i.sanitizeValue(r)}}))}if(n.description&&"."===n.description.substring(0,1)){var g;try{g=document.querySelector(n.description).innerHTML}catch(e){if(!(e instanceof DOMException))throw e}g&&(n.description=g)}if(!n.description){var v=e.querySelector(".glightbox-desc");v&&(n.description=v.innerHTML)}return this.setSize(n,t,e),this.slideConfig=n,n}},{key:"setSize",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n="video"==e.type?this.checkSize(t.videosWidth):this.checkSize(t.width),s=this.checkSize(t.height);return e.width=O(e,"width")&&""!==e.width?this.checkSize(e.width):n,e.height=O(e,"height")&&""!==e.height?this.checkSize(e.height):s,i&&"image"==e.type&&(e._hasCustomWidth=!!i.dataset.width,e._hasCustomHeight=!!i.dataset.height),e}},{key:"checkSize",value:function(e){return z(e)?"".concat(e,"px"):e}},{key:"sanitizeValue",value:function(e){return"true"!==e&&"false"!==e?e:"true"===e}}]),e}(),U=function(){function e(i,n,s){t(this,e),this.element=i,this.instance=n,this.index=s}return n(e,[{key:"setContent",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(c(t,"loaded"))return!1;var n=this.instance.settings,s=this.slideConfig,l=w();T(n.beforeSlideLoad)&&n.beforeSlideLoad({index:this.index,slide:t,player:!1});var o=s.type,r=s.descPosition,a=t.querySelector(".gslide-media"),d=t.querySelector(".gslide-title"),u=t.querySelector(".gslide-desc"),g=t.querySelector(".gdesc-inner"),v=i,f="gSlideTitle_"+this.index,p="gSlideDesc_"+this.index;if(T(n.afterSlideLoad)&&(v=function(){T(i)&&i(),n.afterSlideLoad({index:e.index,slide:t,player:e.instance.getSlidePlayerInstance(e.index)})}),""==s.title&&""==s.description?g&&g.parentNode.parentNode.removeChild(g.parentNode):(d&&""!==s.title?(d.id=f,d.innerHTML=s.title):d.parentNode.removeChild(d),u&&""!==s.description?(u.id=p,l&&n.moreLength>0?(s.smallDescription=this.slideShortDesc(s.description,n.moreLength,n.moreText),u.innerHTML=s.smallDescription,this.descriptionEvents(u,s)):u.innerHTML=s.description):u.parentNode.removeChild(u),h(a.parentNode,"desc-".concat(r)),h(g.parentNode,"description-".concat(r))),h(a,"gslide-".concat(o)),h(t,"loaded"),"video"!==o){if("external"!==o)return"inline"===o?(G.apply(this.instance,[t,s,this.index,v]),void(s.draggable&&new V({dragEl:t.querySelector(".gslide-inline"),toleranceX:n.dragToleranceX,toleranceY:n.dragToleranceY,slide:t,instance:this.instance}))):void("image"!==o?T(v)&&v():j(t,s,this.index,(function(){var i=t.querySelector("img");s.draggable&&new V({dragEl:i,toleranceX:n.dragToleranceX,toleranceY:n.dragToleranceY,slide:t,instance:e.instance}),s.zoomable&&i.naturalWidth>i.offsetWidth&&(h(i,"zoomable"),new H(i,t,(function(){e.instance.resize()}))),T(v)&&v()})));Z.apply(this,[t,s,this.index,v])}else F.apply(this.instance,[t,s,this.index,v])}},{key:"slideShortDesc",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=document.createElement("div");n.innerHTML=e;var s=n.innerText,l=i;if((e=s.trim()).length<=t)return e;var o=e.substr(0,t-1);return l?(n=null,o+'... '+i+""):o}},{key:"descriptionEvents",value:function(e,t){var i=this,n=e.querySelector(".desc-more");if(!n)return!1;a("click",{onElement:n,withCallback:function(e,n){e.preventDefault();var s=document.body,l=u(n,".gslide-desc");if(!l)return!1;l.innerHTML=t.description,h(s,"gdesc-open");var o=a("click",{onElement:[s,u(l,".gslide-description")],withCallback:function(e,n){"a"!==e.target.nodeName.toLowerCase()&&(d(s,"gdesc-open"),h(s,"gdesc-closed"),l.innerHTML=t.smallDescription,i.descriptionEvents(l,t),setTimeout((function(){d(s,"gdesc-closed")}),400),o.destroy())}})}})}},{key:"create",value:function(){return m(this.instance.settings.slideHTML)}},{key:"getConfig",value:function(){k(this.element)||this.element.hasOwnProperty("draggable")||(this.element.draggable=this.instance.settings.draggable);var e=new $(this.instance.settings.slideExtraAttributes);return this.slideConfig=e.parseConfig(this.element,this.instance.settings),this.slideConfig}}]),e}(),J=w(),K=null!==w()||void 0!==document.createTouch||"ontouchstart"in window||"onmsgesturechange"in window||navigator.msMaxTouchPoints,Q=document.getElementsByTagName("html")[0],ee={selector:".glightbox",elements:null,skin:"clean",theme:"clean",closeButton:!0,startAt:null,autoplayVideos:!0,autofocusVideos:!0,descPosition:"bottom",width:"900px",height:"506px",videosWidth:"960px",beforeSlideChange:null,afterSlideChange:null,beforeSlideLoad:null,afterSlideLoad:null,slideInserted:null,slideRemoved:null,slideExtraAttributes:null,onOpen:null,onClose:null,loop:!1,zoomable:!0,draggable:!0,dragAutoSnap:!1,dragToleranceX:40,dragToleranceY:65,preload:!0,oneSlidePerOpen:!1,touchNavigation:!0,touchFollowAxis:!0,keyboardNavigation:!0,closeOnOutsideClick:!0,plugins:!1,plyr:{css:"https://cdn.plyr.io/3.6.8/plyr.css",js:"https://cdn.plyr.io/3.6.8/plyr.js",config:{ratio:"16:9",fullscreen:{enabled:!0,iosNative:!0},youtube:{noCookie:!0,rel:0,showinfo:0,iv_load_policy:3},vimeo:{byline:!1,portrait:!1,title:!1,transparent:!1}}},openEffect:"zoom",closeEffect:"zoom",slideEffect:"slide",moreText:"See more",moreLength:60,cssEfects:{fade:{in:"fadeIn",out:"fadeOut"},zoom:{in:"zoomIn",out:"zoomOut"},slide:{in:"slideInRight",out:"slideOutLeft"},slideBack:{in:"slideInLeft",out:"slideOutRight"},none:{in:"none",out:"none"}},svg:{close:'',next:' ',prev:''},slideHTML:'
\n
\n
\n
\n
\n
\n
\n

\n
\n
\n
\n
\n
\n
',lightboxHTML:''},te=function(){function e(){var i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t(this,e),this.customOptions=i,this.settings=l(ee,i),this.effectsClasses=this.getAnimationClasses(),this.videoPlayers={},this.apiEvents=[],this.fullElementsList=!1}return n(e,[{key:"init",value:function(){var e=this,t=this.getSelector();t&&(this.baseEvents=a("click",{onElement:t,withCallback:function(t,i){t.preventDefault(),e.open(i)}})),this.elements=this.getElements()}},{key:"open",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(0==this.elements.length)return!1;this.activeSlide=null,this.prevActiveSlideIndex=null,this.prevActiveSlide=null;var i=z(t)?t:this.settings.startAt;if(k(e)){var n=e.getAttribute("data-gallery");n&&(this.fullElementsList=this.elements,this.elements=this.getGalleryElements(this.elements,n)),I(i)&&(i=this.getElementIndex(e))<0&&(i=0)}z(i)||(i=0),this.build(),g(this.overlay,"none"==this.settings.openEffect?"none":this.settings.cssEfects.fade.in);var s=document.body,l=window.innerWidth-document.documentElement.clientWidth;if(l>0){var o=document.createElement("style");o.type="text/css",o.className="gcss-styles",o.innerText=".gscrollbar-fixer {margin-right: ".concat(l,"px}"),document.head.appendChild(o),h(s,"gscrollbar-fixer")}h(s,"glightbox-open"),h(Q,"glightbox-open"),J&&(h(document.body,"glightbox-mobile"),this.settings.slideEffect="slide"),this.showSlide(i,!0),1==this.elements.length?(h(this.prevButton,"glightbox-button-hidden"),h(this.nextButton,"glightbox-button-hidden")):(d(this.prevButton,"glightbox-button-hidden"),d(this.nextButton,"glightbox-button-hidden")),this.lightboxOpen=!0,this.trigger("open"),T(this.settings.onOpen)&&this.settings.onOpen(),K&&this.settings.touchNavigation&&B(this),this.settings.keyboardNavigation&&X(this)}},{key:"openAt",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.open(null,e)}},{key:"showSlide",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];f(this.loader),this.index=parseInt(t);var n=this.slidesContainer.querySelector(".current");n&&d(n,"current"),this.slideAnimateOut();var s=this.slidesContainer.querySelectorAll(".gslide")[t];if(c(s,"loaded"))this.slideAnimateIn(s,i),p(this.loader);else{f(this.loader);var l=this.elements[t],o={index:this.index,slide:s,slideNode:s,slideConfig:l.slideConfig,slideIndex:this.index,trigger:l.node,player:null};this.trigger("slide_before_load",o),l.instance.setContent(s,(function(){p(e.loader),e.resize(),e.slideAnimateIn(s,i),e.trigger("slide_after_load",o)}))}this.slideDescription=s.querySelector(".gslide-description"),this.slideDescriptionContained=this.slideDescription&&c(this.slideDescription.parentNode,"gslide-media"),this.settings.preload&&(this.preloadSlide(t+1),this.preloadSlide(t-1)),this.updateNavigationClasses(),this.activeSlide=s}},{key:"preloadSlide",value:function(e){var t=this;if(e<0||e>this.elements.length-1)return!1;if(I(this.elements[e]))return!1;var i=this.slidesContainer.querySelectorAll(".gslide")[e];if(c(i,"loaded"))return!1;var n=this.elements[e],s=n.type,l={index:e,slide:i,slideNode:i,slideConfig:n.slideConfig,slideIndex:e,trigger:n.node,player:null};this.trigger("slide_before_load",l),"video"==s||"external"==s?setTimeout((function(){n.instance.setContent(i,(function(){t.trigger("slide_after_load",l)}))}),200):n.instance.setContent(i,(function(){t.trigger("slide_after_load",l)}))}},{key:"prevSlide",value:function(){this.goToSlide(this.index-1)}},{key:"nextSlide",value:function(){this.goToSlide(this.index+1)}},{key:"goToSlide",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this.prevActiveSlide=this.activeSlide,this.prevActiveSlideIndex=this.index,!this.loop()&&(e<0||e>this.elements.length-1))return!1;e<0?e=this.elements.length-1:e>=this.elements.length&&(e=0),this.showSlide(e)}},{key:"insertSlide",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;t<0&&(t=this.elements.length);var i=new U(e,this,t),n=i.getConfig(),s=l({},n),o=i.create(),r=this.elements.length-1;s.index=t,s.node=!1,s.instance=i,s.slideConfig=n,this.elements.splice(t,0,s);var a=null,h=null;if(this.slidesContainer){if(t>r)this.slidesContainer.appendChild(o);else{var d=this.slidesContainer.querySelectorAll(".gslide")[t];this.slidesContainer.insertBefore(o,d)}(this.settings.preload&&0==this.index&&0==t||this.index-1==t||this.index+1==t)&&this.preloadSlide(t),0==this.index&&0==t&&(this.index=1),this.updateNavigationClasses(),a=this.slidesContainer.querySelectorAll(".gslide")[t],h=this.getSlidePlayerInstance(t),s.slideNode=a}this.trigger("slide_inserted",{index:t,slide:a,slideNode:a,slideConfig:n,slideIndex:t,trigger:null,player:h}),T(this.settings.slideInserted)&&this.settings.slideInserted({index:t,slide:a,player:h})}},{key:"removeSlide",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1;if(e<0||e>this.elements.length-1)return!1;var t=this.slidesContainer&&this.slidesContainer.querySelectorAll(".gslide")[e];t&&(this.getActiveSlideIndex()==e&&(e==this.elements.length-1?this.prevSlide():this.nextSlide()),t.parentNode.removeChild(t)),this.elements.splice(e,1),this.trigger("slide_removed",e),T(this.settings.slideRemoved)&&this.settings.slideRemoved(e)}},{key:"slideAnimateIn",value:function(e,t){var i=this,n=e.querySelector(".gslide-media"),s=e.querySelector(".gslide-description"),l={index:this.prevActiveSlideIndex,slide:this.prevActiveSlide,slideNode:this.prevActiveSlide,slideIndex:this.prevActiveSlide,slideConfig:I(this.prevActiveSlideIndex)?null:this.elements[this.prevActiveSlideIndex].slideConfig,trigger:I(this.prevActiveSlideIndex)?null:this.elements[this.prevActiveSlideIndex].node,player:this.getSlidePlayerInstance(this.prevActiveSlideIndex)},o={index:this.index,slide:this.activeSlide,slideNode:this.activeSlide,slideConfig:this.elements[this.index].slideConfig,slideIndex:this.index,trigger:this.elements[this.index].node,player:this.getSlidePlayerInstance(this.index)};if(n.offsetWidth>0&&s&&(p(s),s.style.display=""),d(e,this.effectsClasses),t)g(e,this.settings.cssEfects[this.settings.openEffect].in,(function(){i.settings.autoplayVideos&&i.slidePlayerPlay(e),i.trigger("slide_changed",{prev:l,current:o}),T(i.settings.afterSlideChange)&&i.settings.afterSlideChange.apply(i,[l,o])}));else{var r=this.settings.slideEffect,a="none"!==r?this.settings.cssEfects[r].in:r;this.prevActiveSlideIndex>this.index&&"slide"==this.settings.slideEffect&&(a=this.settings.cssEfects.slideBack.in),g(e,a,(function(){i.settings.autoplayVideos&&i.slidePlayerPlay(e),i.trigger("slide_changed",{prev:l,current:o}),T(i.settings.afterSlideChange)&&i.settings.afterSlideChange.apply(i,[l,o])}))}setTimeout((function(){i.resize(e)}),100),h(e,"current")}},{key:"slideAnimateOut",value:function(){if(!this.prevActiveSlide)return!1;var e=this.prevActiveSlide;d(e,this.effectsClasses),h(e,"prev");var t=this.settings.slideEffect,i="none"!==t?this.settings.cssEfects[t].out:t;this.slidePlayerPause(e),this.trigger("slide_before_change",{prev:{index:this.prevActiveSlideIndex,slide:this.prevActiveSlide,slideNode:this.prevActiveSlide,slideIndex:this.prevActiveSlideIndex,slideConfig:I(this.prevActiveSlideIndex)?null:this.elements[this.prevActiveSlideIndex].slideConfig,trigger:I(this.prevActiveSlideIndex)?null:this.elements[this.prevActiveSlideIndex].node,player:this.getSlidePlayerInstance(this.prevActiveSlideIndex)},current:{index:this.index,slide:this.activeSlide,slideNode:this.activeSlide,slideIndex:this.index,slideConfig:this.elements[this.index].slideConfig,trigger:this.elements[this.index].node,player:this.getSlidePlayerInstance(this.index)}}),T(this.settings.beforeSlideChange)&&this.settings.beforeSlideChange.apply(this,[{index:this.prevActiveSlideIndex,slide:this.prevActiveSlide,player:this.getSlidePlayerInstance(this.prevActiveSlideIndex)},{index:this.index,slide:this.activeSlide,player:this.getSlidePlayerInstance(this.index)}]),this.prevActiveSlideIndex>this.index&&"slide"==this.settings.slideEffect&&(i=this.settings.cssEfects.slideBack.out),g(e,i,(function(){var t=e.querySelector(".ginner-container"),i=e.querySelector(".gslide-media"),n=e.querySelector(".gslide-description");t.style.transform="",i.style.transform="",d(i,"greset"),i.style.opacity="",n&&(n.style.opacity=""),d(e,"prev")}))}},{key:"getAllPlayers",value:function(){return this.videoPlayers}},{key:"getSlidePlayerInstance",value:function(e){var t="gvideo"+e,i=this.getAllPlayers();return!(!O(i,t)||!i[t])&&i[t]}},{key:"stopSlideVideo",value:function(e){if(k(e)){var t=e.querySelector(".gvideo-wrapper");t&&(e=t.getAttribute("data-index"))}console.log("stopSlideVideo is deprecated, use slidePlayerPause");var i=this.getSlidePlayerInstance(e);i&&i.playing&&i.pause()}},{key:"slidePlayerPause",value:function(e){if(k(e)){var t=e.querySelector(".gvideo-wrapper");t&&(e=t.getAttribute("data-index"))}var i=this.getSlidePlayerInstance(e);i&&i.playing&&i.pause()}},{key:"playSlideVideo",value:function(e){if(k(e)){var t=e.querySelector(".gvideo-wrapper");t&&(e=t.getAttribute("data-index"))}console.log("playSlideVideo is deprecated, use slidePlayerPlay");var i=this.getSlidePlayerInstance(e);i&&!i.playing&&i.play()}},{key:"slidePlayerPlay",value:function(e){if(k(e)){var t=e.querySelector(".gvideo-wrapper");t&&(e=t.getAttribute("data-index"))}var i=this.getSlidePlayerInstance(e);i&&!i.playing&&(i.play(),this.settings.autofocusVideos&&i.elements.container.focus())}},{key:"setElements",value:function(e){var t=this;this.settings.elements=!1;var i=[];e&&e.length&&o(e,(function(e,n){var s=new U(e,t,n),o=s.getConfig(),r=l({},o);r.slideConfig=o,r.instance=s,r.index=n,i.push(r)})),this.elements=i,this.lightboxOpen&&(this.slidesContainer.innerHTML="",this.elements.length&&(o(this.elements,(function(){var e=m(t.settings.slideHTML);t.slidesContainer.appendChild(e)})),this.showSlide(0,!0)))}},{key:"getElementIndex",value:function(e){var t=!1;return o(this.elements,(function(i,n){if(O(i,"node")&&i.node==e)return t=n,!0})),t}},{key:"getElements",value:function(){var e=this,t=[];this.elements=this.elements?this.elements:[],!I(this.settings.elements)&&E(this.settings.elements)&&this.settings.elements.length&&o(this.settings.elements,(function(i,n){var s=new U(i,e,n),o=s.getConfig(),r=l({},o);r.node=!1,r.index=n,r.instance=s,r.slideConfig=o,t.push(r)}));var i=!1;return this.getSelector()&&(i=document.querySelectorAll(this.getSelector())),i?(o(i,(function(i,n){var s=new U(i,e,n),o=s.getConfig(),r=l({},o);r.node=i,r.index=n,r.instance=s,r.slideConfig=o,r.gallery=i.getAttribute("data-gallery"),t.push(r)})),t):t}},{key:"getGalleryElements",value:function(e,t){return e.filter((function(e){return e.gallery==t}))}},{key:"getSelector",value:function(){return!this.settings.elements&&(this.settings.selector&&"data-"==this.settings.selector.substring(0,5)?"*[".concat(this.settings.selector,"]"):this.settings.selector)}},{key:"getActiveSlide",value:function(){return this.slidesContainer.querySelectorAll(".gslide")[this.index]}},{key:"getActiveSlideIndex",value:function(){return this.index}},{key:"getAnimationClasses",value:function(){var e=[];for(var t in this.settings.cssEfects)if(this.settings.cssEfects.hasOwnProperty(t)){var i=this.settings.cssEfects[t];e.push("g".concat(i.in)),e.push("g".concat(i.out))}return e.join(" ")}},{key:"build",value:function(){var e=this;if(this.built)return!1;var t=document.body.childNodes,i=[];o(t,(function(e){e.parentNode==document.body&&"#"!==e.nodeName.charAt(0)&&e.hasAttribute&&!e.hasAttribute("aria-hidden")&&(i.push(e),e.setAttribute("aria-hidden","true"))}));var n=O(this.settings.svg,"next")?this.settings.svg.next:"",s=O(this.settings.svg,"prev")?this.settings.svg.prev:"",l=O(this.settings.svg,"close")?this.settings.svg.close:"",r=this.settings.lightboxHTML;r=m(r=(r=(r=r.replace(/{nextSVG}/g,n)).replace(/{prevSVG}/g,s)).replace(/{closeSVG}/g,l)),document.body.appendChild(r);var d=document.getElementById("glightbox-body");this.modal=d;var g=d.querySelector(".gclose");this.prevButton=d.querySelector(".gprev"),this.nextButton=d.querySelector(".gnext"),this.overlay=d.querySelector(".goverlay"),this.loader=d.querySelector(".gloader"),this.slidesContainer=document.getElementById("glightbox-slider"),this.bodyHiddenChildElms=i,this.events={},h(this.modal,"glightbox-"+this.settings.skin),this.settings.closeButton&&g&&(this.events.close=a("click",{onElement:g,withCallback:function(t,i){t.preventDefault(),e.close()}})),g&&!this.settings.closeButton&&g.parentNode.removeChild(g),this.nextButton&&(this.events.next=a("click",{onElement:this.nextButton,withCallback:function(t,i){t.preventDefault(),e.nextSlide()}})),this.prevButton&&(this.events.prev=a("click",{onElement:this.prevButton,withCallback:function(t,i){t.preventDefault(),e.prevSlide()}})),this.settings.closeOnOutsideClick&&(this.events.outClose=a("click",{onElement:d,withCallback:function(t,i){e.preventOutsideClick||c(document.body,"glightbox-mobile")||u(t.target,".ginner-container")||u(t.target,".gbtn")||c(t.target,"gnext")||c(t.target,"gprev")||e.close()}})),o(this.elements,(function(t,i){e.slidesContainer.appendChild(t.instance.create()),t.slideNode=e.slidesContainer.querySelectorAll(".gslide")[i]})),K&&h(document.body,"glightbox-touch"),this.events.resize=a("resize",{onElement:window,withCallback:function(){e.resize()}}),this.built=!0}},{key:"resize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if((e=e||this.activeSlide)&&!c(e,"zoomed")){var t=y(),i=e.querySelector(".gvideo-wrapper"),n=e.querySelector(".gslide-image"),s=this.slideDescription,l=t.width,o=t.height;if(l<=768?h(document.body,"glightbox-mobile"):d(document.body,"glightbox-mobile"),i||n){var r=!1;if(s&&(c(s,"description-bottom")||c(s,"description-top"))&&!c(s,"gabsolute")&&(r=!0),n)if(l<=768)n.querySelector("img");else if(r){var a=s.offsetHeight,u=n.querySelector("img");u.setAttribute("style","max-height: calc(100vh - ".concat(a,"px)")),s.setAttribute("style","max-width: ".concat(u.offsetWidth,"px;"))}if(i){var g=O(this.settings.plyr.config,"ratio")?this.settings.plyr.config.ratio:"";if(!g){var v=i.clientWidth,f=i.clientHeight,p=v/f;g="".concat(v/p,":").concat(f/p)}var m=g.split(":"),x=this.settings.videosWidth,b=this.settings.videosWidth,S=(b=z(x)||-1!==x.indexOf("px")?parseInt(x):-1!==x.indexOf("vw")?l*parseInt(x)/100:-1!==x.indexOf("vh")?o*parseInt(x)/100:-1!==x.indexOf("%")?l*parseInt(x)/100:parseInt(i.clientWidth))/(parseInt(m[0])/parseInt(m[1]));if(S=Math.floor(S),r&&(o-=s.offsetHeight),b>l||S>o||ob){var w=i.offsetWidth,T=i.offsetHeight,C=o/T,k={width:w*C,height:T*C};i.parentNode.setAttribute("style","max-width: ".concat(k.width,"px")),r&&s.setAttribute("style","max-width: ".concat(k.width,"px;"))}else i.parentNode.style.maxWidth="".concat(x),r&&s.setAttribute("style","max-width: ".concat(x,";"))}}}}},{key:"reload",value:function(){this.init()}},{key:"updateNavigationClasses",value:function(){var e=this.loop();d(this.nextButton,"disabled"),d(this.prevButton,"disabled"),0==this.index&&this.elements.length-1==0?(h(this.prevButton,"disabled"),h(this.nextButton,"disabled")):0!==this.index||e?this.index!==this.elements.length-1||e||h(this.nextButton,"disabled"):h(this.prevButton,"disabled")}},{key:"loop",value:function(){var e=O(this.settings,"loopAtEnd")?this.settings.loopAtEnd:null;return e=O(this.settings,"loop")?this.settings.loop:e,e}},{key:"close",value:function(){var e=this;if(!this.lightboxOpen){if(this.events){for(var t in this.events)this.events.hasOwnProperty(t)&&this.events[t].destroy();this.events=null}return!1}if(this.closing)return!1;this.closing=!0,this.slidePlayerPause(this.activeSlide),this.fullElementsList&&(this.elements=this.fullElementsList),this.bodyHiddenChildElms.length&&o(this.bodyHiddenChildElms,(function(e){e.removeAttribute("aria-hidden")})),h(this.modal,"glightbox-closing"),g(this.overlay,"none"==this.settings.openEffect?"none":this.settings.cssEfects.fade.out),g(this.activeSlide,this.settings.cssEfects[this.settings.closeEffect].out,(function(){if(e.activeSlide=null,e.prevActiveSlideIndex=null,e.prevActiveSlide=null,e.built=!1,e.events){for(var t in e.events)e.events.hasOwnProperty(t)&&e.events[t].destroy();e.events=null}var i=document.body;d(Q,"glightbox-open"),d(i,"glightbox-open touching gdesc-open glightbox-touch glightbox-mobile gscrollbar-fixer"),e.modal.parentNode.removeChild(e.modal),e.trigger("close"),T(e.settings.onClose)&&e.settings.onClose();var n=document.querySelector(".gcss-styles");n&&n.parentNode.removeChild(n),e.lightboxOpen=!1,e.closing=null}))}},{key:"destroy",value:function(){this.close(),this.clearAllEvents(),this.baseEvents&&this.baseEvents.destroy()}},{key:"on",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e||!T(t))throw new TypeError("Event name and callback must be defined");this.apiEvents.push({evt:e,once:i,callback:t})}},{key:"once",value:function(e,t){this.on(e,t,!0)}},{key:"trigger",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=[];o(this.apiEvents,(function(t,s){var l=t.evt,o=t.once,r=t.callback;l==e&&(r(i),o&&n.push(s))})),n.length&&o(n,(function(e){return t.apiEvents.splice(e,1)}))}},{key:"clearAllEvents",value:function(){this.apiEvents.splice(0,this.apiEvents.length)}},{key:"version",value:function(){return"3.1.1"}}]),e}();return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=new te(e);return t.init(),t}})); \ No newline at end of file diff --git a/public/assets/vendor/swiper/swiper-bundle.min.css b/public/assets/vendor/swiper/swiper-bundle.min.css new file mode 100644 index 0000000..3c6130f --- /dev/null +++ b/public/assets/vendor/swiper/swiper-bundle.min.css @@ -0,0 +1,13 @@ +/** + * Swiper 7.3.0 + * Most modern mobile touch slider and framework with hardware accelerated transitions + * https://swiperjs.com + * + * Copyright 2014-2021 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: November 18, 2021 + */ + +@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;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}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-3d,.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{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,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(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,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(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,.5),rgba(0,0,0,0))}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.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-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-button-next,.swiper-button-prev{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-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next:after,.swiper-button-prev: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}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.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(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.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, .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-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s 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:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-progressbar{background:rgba(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-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(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,.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>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move}.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%;animation:swiper-preloader-spin 1s infinite linear;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{100%{transform:rotate(360deg)}}.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-next+.swiper-slide,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-top{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:.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-bottom,.swiper-flip .swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-top{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/public/assets/vendor/swiper/swiper-bundle.min.js b/public/assets/vendor/swiper/swiper-bundle.min.js new file mode 100644 index 0000000..3da8cba --- /dev/null +++ b/public/assets/vendor/swiper/swiper-bundle.min.js @@ -0,0 +1,14 @@ +/** + * Swiper 7.3.0 + * Most modern mobile touch slider and framework with hardware accelerated transitions + * https://swiperjs.com + * + * Copyright 2014-2021 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: November 18, 2021 + */ + +!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={}){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){super(...e||[]),function(e){const t=e.__proto__;Object.defineProperty(e,"__proto__",{get:()=>t,set(e){t.__proto__=e}})}(this)}}function l(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(...t)})),this},removeClass:function(...e){const t=l(e.map((e=>e.split(" "))));return this.forEach((e=>{e.classList.remove(...t)})),this},hasClass:function(...e){const t=l(e.map((e=>e.split(" "))));return o(this,(e=>t.filter((t=>e.classList.contains(t))).length>0)).length>0},toggleClass:function(...e){const t=l(e.map((e=>e.split(" "))));this.forEach((e=>{t.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 s=n[e];a&&s.listener===a||a&&s.listener&&s.listener.dom7proxy&&s.listener.dom7proxy===a?(r.removeEventListener(t,s.proxyListener,i),n.splice(e,1)):a||(r.removeEventListener(t,s.proxyListener,i),n.splice(e,1))}}}return this},trigger:function(...e){const t=r(),s=e[0].split(" "),a=e[1];for(let i=0;it>0)),i.dispatchEvent(s),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(...e){let t;const s=a();for(let a=0;a=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){const t=Object(e[0]),s=["__proto__","constructor","prototype"];for(let i=1;is.indexOf(e)<0));for(let s=0,a=e.length;si?"next":"prev",c=(e,t)=>"next"===d&&e>=t||"prev"===d&&e<=t,p=()=>{n=(new Date).getTime(),null===l&&(l=n);const r=Math.max(Math.min((n-l)/o,1),0),d=.5-Math.cos(r*Math.PI)/2;let u=i+d*(t-i);if(c(u,t)&&(u=t),e.wrapperEl.scrollTo({[s]:u}),c(u,t))return e.wrapperEl.style.overflow="hidden",e.wrapperEl.style.scrollSnapType="",setTimeout((()=>{e.wrapperEl.style.overflow="",e.wrapperEl.scrollTo({[s]:u})})),void a.cancelAnimationFrame(e.cssModeFrameID);e.cssModeFrameID=a.requestAnimationFrame(p)};p()}let w,b,x;function y(){return w||(w=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}}()),w}function E(e={}){return b||(b=function({userAgent:e}={}){const t=y(),s=r(),a=s.navigator.platform,i=e||s.navigator.userAgent,n={ios:!1,android:!1},l=s.screen.width,o=s.screen.height,d=i.match(/(Android);?[\s\/]+([\d.]+)?/);let c=i.match(/(iPad).*OS\s([\d_]+)/);const p=i.match(/(iPod)(.*OS\s([\d_]+))?/),u=!c&&i.match(/(iPhone\sOS|iOS)\s([\d_]+)/),h="Win32"===a;let m="MacIntel"===a;return!c&&m&&t.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${l}x${o}`)>=0&&(c=i.match(/(Version)\/([\d.]+)/),c||(c=[0,1,"13_0_0"]),m=!1),d&&!h&&(n.os="android",n.android=!0),(c||u||p)&&(n.os="ios",n.ios=!0),n}(e)),b}function T(){return x||(x=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)}}()),x}Object.keys(c).forEach((e=>{Object.defineProperty(d.fn,e,{value:c[e],writable:!0})}));var C={on(e,t,s){const a=this;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("function"!=typeof t)return a;function i(...s){a.off(e,i),i.__emitterProxy&&delete i.__emitterProxy,t.apply(a,s)}return i.__emitterProxy=t,a.on(e,i,s)},onAny(e,t){const s=this;if("function"!=typeof e)return s;const a=t?"unshift":"push";return s.eventsAnyListeners.indexOf(e)<0&&s.eventsAnyListeners[a](e),s},offAny(e){const t=this;if(!t.eventsAnyListeners)return t;const s=t.eventsAnyListeners.indexOf(e);return s>=0&&t.eventsAnyListeners.splice(s,1),t},off(e,t){const s=this;return 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(...e){const t=this;if(!t.eventsListeners)return t;let s,a,i;"string"==typeof e[0]||Array.isArray(e[0])?(s=e[0],a=e.slice(1,e.length),i=t):(s=e[0].events,a=e[0].data,i=e[0].context||t),a.unshift(i);return(Array.isArray(s)?s:s.split(" ")).forEach((e=>{t.eventsAnyListeners&&t.eventsAnyListeners.length&&t.eventsAnyListeners.forEach((t=>{t.apply(i,[e,...a])})),t.eventsListeners&&t.eventsListeners[e]&&t.eventsListeners[e].forEach((e=>{e.apply(i,a)}))})),t}};function $({swiper:e,runCallbacks:t,direction:s,step:a}){const{activeIndex:i,previousIndex:r}=e;let n=s;if(n||(n=i>r?"next":i0)return;if(n.isTouched&&n.isMoved)return;!!l.noSwipingClass&&""!==l.noSwipingClass&&p.target&&p.target.shadowRoot&&e.path&&e.path[0]&&(h=d(e.path[0]));const m=l.noSwipingSelector?l.noSwipingSelector:`.${l.noSwipingClass}`,f=!(!p.target||!p.target.shadowRoot);if(l.noSwiping&&(f?function(e,t=this){return function t(s){return s&&s!==a()&&s!==r()?(s.assignedSlot&&(s=s.assignedSlot),s.closest(e)||t(s.getRootNode().host)):null}(t)}(m,p.target):h.closest(m)[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 g=o.currentX,v=o.currentY,w=l.edgeSwipeDetection||l.iOSEdgeSwipeDetection,b=l.edgeSwipeThreshold||l.iOSEdgeSwipeThreshold;if(w&&(g<=b||g>=i.innerWidth-b)){if("prevent"!==w)return;e.preventDefault()}if(Object.assign(n,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),o.startX=g,o.startY=v,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),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.emit("touchStart",p)}function M(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 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 P(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&&(t.updateClickedSlide(o),t.emit("tap click",o),c<300&&d-s.lastClickTime<300&&t.emit("doubleTap doubleClick",o)),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])}const g=(h-n[m])/f,v=ma.longSwipesMs){if(!a.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(g>=a.longSwipesRatio?t.slideTo(m+v):t.slideTo(m)),"prev"===t.swipeDirection&&(g>1-a.longSwipesRatio?t.slideTo(m+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+v):t.slideTo(m):("next"===t.swipeDirection&&t.slideTo(m+v),"prev"===t.swipeDirection&&t.slideTo(m))}}function k(){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 z(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function O(){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 I=!1;function L(){}const A=(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",k,!0):e[u]("observerUpdate",k,!0)};const D=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var G={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,loopFillGroupWithBlank:!1,loopPreventsSlide:!0,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,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 N(e,t){return function(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}),f(t,s)):f(t,s)):f(t,s)}}const B={eventsEmitter:C,update:{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 v=a.slidesOffsetAfter;"function"==typeof v&&(v=a.slidesOffsetAfter.call(e));const w=e.snapGrid.length,b=e.slidesGrid.length;let x=a.spaceBetween,y=-f,E=0,T=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&&(g(e.wrapperEl,"--swiper-centered-offset-before",""),g(e.wrapperEl,"--swiper-centered-offset-after",""));const C=a.grid&&a.grid.rows>1&&e.grid;let $;C&&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+v: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){g(e.wrapperEl,"--swiper-centered-offset-before",-u[0]+"px"),g(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))}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()},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.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&&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.target).closest(`.${s.slideClass}`)[0];let i,r=!1;if(a)for(let e=0;eo?o:a&&e=o.length&&(g=o.length-1),(p||l.initialSlide||0)===(c||0)&&s&&r.emit("beforeSlideChangeStart");const w=-o[g];if(r.updateProgress(w),l.normalizeSlideIndex)for(let e=0;e=s&&t=s&&t=s&&(n=e)}if(r.initialized&&n!==p){if(!r.allowSlideNext&&wr.translate&&w>r.maxTranslate()&&(p||0)!==n)return!1}let b;if(b=n>p?"next":n{r.wrapperEl.style.scrollSnapType="",r._swiperImmediateVirtual=!1}))}else{if(!r.support.smoothScroll)return v({swiper:r,targetPosition:s,side:e?"left":"top"}),!0;h.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}return 0===t?(r.setTransition(0),r.setTranslate(w),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,a),r.transitionStart(s,b),r.transitionEnd(s,b)):(r.setTransition(t),r.setTranslate(w),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,a),r.transitionStart(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=0,t=this.params.speed,s=!0,a){const i=this;let r=e;return i.params.loop&&(r+=i.loopedSlides),i.slideTo(r,t,s,a)},slideNext:function(e=this.params.speed,t=!0,s){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;return 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))),a.slideTo(m,e,t,s)},slideReset:function(e=this.params.speed,t=!0,s){return this.slideTo(this.activeIndex,e,t,s)},slideToClosest:function(e=this.params.speed,t=!0,s,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)}},loop:{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.loopedSlides=n.length);const l=[],o=[];n.each(((t,s)=>{const a=d(t);s=n.length-e.loopedSlides&&l.push(t),a.attr("data-swiper-slide-index",s)}));for(let e=0;e=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")}},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?"-webkit-grabbing":"-webkit-grab",s.style.cursor=e?"-moz-grabbin":"-moz-grab",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:{attachEvents:function(){const e=this,t=a(),{params:s,support:i}=e;e.onTouchStart=S.bind(e),e.onTouchMove=M.bind(e),e.onTouchEnd=P.bind(e),s.cssMode&&(e.onScroll=O.bind(e)),e.onClick=z.bind(e),i.touch&&!I&&(t.addEventListener("touchstart",L),I=!0),A(e,"on")},detachEvents:function(){A(this,"off")}},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=D(e,i),c=D(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());const u=o.direction&&o.direction!==i.direction,h=i.loop&&(o.slidesPerView!==i.slidesPerView||u);u&&s&&e.changeDirection(),f(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="window",s){if(!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:{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}],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()}},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(s.el).each((t=>{const a=f({},s,{el:t});e.push(new H(a))})),e}const a=this;a.__swiper__=!0,a.support=y(),a.device=E({userAgent:s.userAgent}),a.browser=T(),a.eventsListeners={},a.eventsAnyListeners=[],a.modules=[...a.__modules__],s.modules&&Array.isArray(s.modules)&&a.modules.push(...s.modules);const i={};a.modules.forEach((e=>{e({swiper:a,extendParams:N(s,i),on:a.on.bind(a),once:a.once.bind(a),off:a.off.bind(a),emit:a.emit.bind(a)})}));const r=f({},G,i);return a.params=f({},r,X,s),a.originalParams=f({},a.params),a.passedParams=f({},s),a.params&&a.params.on&&Object.keys(a.params.on).forEach((e=>{a.on(e,a.params.on[e])})),a.params&&a.params.onAny&&a.onAny(a.params.onAny),a.$=d,Object.assign(a,{enabled:a.params.enabled,el:t,classNames:[],slides:d(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===a.params.direction,isVertical:()=>"vertical"===a.params.direction,activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,allowSlideNext:a.params.allowSlideNext,allowSlidePrev:a.params.allowSlidePrev,touchEvents:function(){const e=["touchstart","touchmove","touchend","touchcancel"],t=["pointerdown","pointermove","pointerup"];return a.touchEventsTouch={start:e[0],move:e[1],end:e[2],cancel:e[3]},a.touchEventsDesktop={start:t[0],move:t[1],end:t[2]},a.support.touch||!a.params.simulateTouch?a.touchEventsTouch:a.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:a.params.focusableElements,lastClickTime:u(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,isTouchEvent:void 0,startMoving:void 0},allowClick:!0,allowTouchMove:a.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),a.emit("_swiper"),a.params.init&&a.init(),a}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 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="current",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=!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}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(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=!0,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){f(X,e)}static get extendedDefaults(){return X}static get defaults(){return G}static installModule(e){H.prototype.__modules__||(H.prototype.__modules__=[]);const t=H.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>H.installModule(e))),H):(H.installModule(e),H)}}function Y(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 W(e=""){return`.${e.trim().replace(/([\.:!\/])/g,"\\$1").replace(/ /g,".")}`}function R(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)}))}function U(e,t){return e.transformEl?t.find(e.transformEl).css({"backface-visibility":"hidden","-webkit-backface-visibility":"hidden"}):t}function K({swiper:e,duration:t,transformEl:s,allSlides:a}){const{slides:i,activeIndex:r,$wrapperEl:n}=e;if(e.params.virtualTranslate&&0!==t){let t,l=!1;t=a?s?i.find(s):i:s?i.eq(r).find(s):i.eq(r),t.transitionEnd((()=>{if(l)return;if(!e||e.destroyed)return;l=!0,e.animating=!1;const t=["webkitTransitionEnd","transitionend"];for(let e=0;e`),i.append(r)),r}Object.keys(B).forEach((e=>{Object.keys(B[e]).forEach((t=>{H.prototype[t]=B[e][t]}))})),H.use([function({swiper:e,on:t,emit:s}){const a=r();let i=null;const n=()=>{e&&!e.destroyed&&e.initialized&&(s("beforeResize"),s("resize"))},l=()=>{e&&!e.destroyed&&e.initialized&&s("orientationchange")};t("init",(()=>{e.params.resizeObserver&&void 0!==a.ResizeObserver?e&&!e.destroyed&&e.initialized&&(i=new ResizeObserver((t=>{const{width:s,height:a}=e;let i=s,r=a;t.forEach((({contentBoxSize:t,contentRect:s,target:a})=>{a&&a!==e.el||(i=s?s.width:(t[0]||t).inlineSize,r=s?s.height:(t[0]||t).blockSize)})),i===s&&r===a||n()})),i.observe(e.el)):(a.addEventListener("resize",n),a.addEventListener("orientationchange",l))})),t("destroy",(()=>{i&&i.unobserve&&e.el&&(i.unobserve(e.el),i=null),a.removeEventListener("resize",n),a.removeEventListener("orientationchange",l)}))},function({swiper:e,extendParams:t,on:s,emit:a}){const i=[],n=r(),l=(e,t={})=>{const s=new(n.MutationObserver||n.WebkitMutationObserver)((e=>{if(1===e.length)return void a("observerUpdate",e[0]);const t=function(){a("observerUpdate",e[0])};n.requestAnimationFrame?n.requestAnimationFrame(t):n.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}),i.push(s)};t({observer:!1,observeParents:!1,observeSlideChildren:!1}),s("init",(()=>{if(e.params.observer){if(e.params.observeParents){const t=e.$el.parents();for(let e=0;e{i.forEach((e=>{e.disconnect()})),i.splice(0,i.length)}))}]);const J=[function({swiper:e,extendParams:t,on:s}){let a;function i(t,s){const a=e.params.virtual;if(a.cache&&e.virtual.cache[s])return e.virtual.cache[s];const i=a.renderSlide?d(a.renderSlide.call(e,t,s)):d(`
${t}
`);return i.attr("data-swiper-slide-index")||i.attr("data-swiper-slide-index",s),a.cache&&(e.virtual.cache[s]=i),i}function r(t){const{slidesPerView:s,slidesPerGroup:a,centeredSlides:r}=e.params,{addSlidesBefore:n,addSlidesAfter:l}=e.params.virtual,{from:o,to:d,slides:c,slidesGrid:p,offset:u}=e.virtual;e.params.cssMode||e.updateActiveIndex();const h=e.activeIndex||0;let m,f,g;m=e.rtlTranslate?"right":e.isHorizontal()?"left":"top",r?(f=Math.floor(s/2)+a+l,g=Math.floor(s/2)+a+n):(f=s+(a-1)+l,g=a+n);const v=Math.max((h||0)-g,0),w=Math.min((h||0)+f,c.length-1),b=(e.slidesGrid[v]||0)-(e.slidesGrid[0]||0);function x(){e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),e.lazy&&e.params.lazy.enabled&&e.lazy.load()}if(Object.assign(e.virtual,{from:v,to:w,offset:b,slidesGrid:e.slidesGrid}),o===v&&d===w&&!t)return e.slidesGrid!==p&&b!==u&&e.slides.css(m,`${b}px`),void e.updateProgress();if(e.params.virtual.renderExternal)return e.params.virtual.renderExternal.call(e,{offset:b,from:v,to:w,slides:function(){const e=[];for(let t=v;t<=w;t+=1)e.push(c[t]);return e}()}),void(e.params.virtual.renderExternalUpdate&&x());const y=[],E=[];if(t)e.$wrapperEl.find(`.${e.params.slideClass}`).remove();else for(let t=o;t<=d;t+=1)(tw)&&e.$wrapperEl.find(`.${e.params.slideClass}[data-swiper-slide-index="${t}"]`).remove();for(let e=0;e=v&&e<=w&&(void 0===d||t?E.push(e):(e>d&&E.push(e),e{e.$wrapperEl.append(i(c[t],t))})),y.sort(((e,t)=>t-e)).forEach((t=>{e.$wrapperEl.prepend(i(c[t],t))})),e.$wrapperEl.children(".swiper-slide").css(m,`${b}px`),x()}t({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}}),e.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]},s("beforeInit",(()=>{e.params.virtual.enabled&&(e.virtual.slides=e.params.virtual.slides,e.classNames.push(`${e.params.containerModifierClass}virtual`),e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0,e.params.initialSlide||r())})),s("setTranslate",(()=>{e.params.virtual.enabled&&(e.params.cssMode&&!e._immediateVirtual?(clearTimeout(a),a=setTimeout((()=>{r()}),100)):r())})),s("init update resize",(()=>{e.params.virtual.enabled&&e.params.cssMode&&g(e.wrapperEl,"--swiper-virtual-size",`${e.virtualSize}px`)})),Object.assign(e.virtual,{appendSlide:function(t){if("object"==typeof t&&"length"in t)for(let s=0;s{const a=t[e],r=a.attr("data-swiper-slide-index");r&&a.attr("data-swiper-slide-index",parseInt(r,10)+i),s[parseInt(e,10)+i]=a})),e.virtual.cache=s}r(!0),e.slideTo(a,0)},removeSlide:function(t){if(null==t)return;let s=e.activeIndex;if(Array.isArray(t))for(let a=t.length-1;a>=0;a-=1)e.virtual.slides.splice(t[a],1),e.params.virtual.cache&&delete e.virtual.cache[t[a]],t[a]0&&0===e.$el.parents(`.${e.params.slideActiveClass}`).length)return;const a=e.$el,i=a[0].clientWidth,r=a[0].clientHeight,n=l.innerWidth,o=l.innerHeight,d=e.$el.offset();s&&(d.left-=e.$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 e=0;e=0&&s[0]<=n&&s[1]>=0&&s[1]<=o){if(0===s[0]&&0===s[1])continue;t=!0}}if(!t)return}e.isHorizontal()?((d||c||p||u)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),((c||u)&&!s||(d||p)&&s)&&e.slideNext(),((d||p)&&!s||(c||u)&&s)&&e.slidePrev()):((d||c||h||m)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),(c||m)&&e.slideNext(),(d||h)&&e.slidePrev()),i("keyPress",r)}}function c(){e.keyboard.enabled||(d(n).on("keydown",o),e.keyboard.enabled=!0)}function p(){e.keyboard.enabled&&(d(n).off("keydown",o),e.keyboard.enabled=!1)}e.keyboard={enabled:!1},t({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}}),s("init",(()=>{e.params.keyboard.enabled&&c()})),s("destroy",(()=>{e.keyboard.enabled&&p()})),Object.assign(e.keyboard,{enable:c,disable:p})},function({swiper:e,extendParams:t,on:s,emit:a}){const i=r();let n;t({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null}}),e.mousewheel={enabled:!1};let l,o=u();const c=[];function h(){e.enabled&&(e.mouseEntered=!0)}function m(){e.enabled&&(e.mouseEntered=!1)}function f(t){return!(e.params.mousewheel.thresholdDelta&&t.delta=6&&u()-o<60||(t.direction<0?e.isEnd&&!e.params.loop||e.animating||(e.slideNext(),a("scroll",t.raw)):e.isBeginning&&!e.params.loop||e.animating||(e.slidePrev(),a("scroll",t.raw)),o=(new i.Date).getTime(),!1)))}function g(t){let s=t,i=!0;if(!e.enabled)return;const r=e.params.mousewheel;e.params.cssMode&&s.preventDefault();let o=e.$el;if("container"!==e.params.mousewheel.eventsTarget&&(o=d(e.params.mousewheel.eventsTarget)),!e.mouseEntered&&!o[0].contains(s.target)&&!r.releaseOnEdges)return!0;s.originalEvent&&(s=s.originalEvent);let h=0;const m=e.rtlTranslate?-1:1,g=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(e.isHorizontal()){if(!(Math.abs(g.pixelX)>Math.abs(g.pixelY)))return!0;h=-g.pixelX*m}else{if(!(Math.abs(g.pixelY)>Math.abs(g.pixelX)))return!0;h=-g.pixelY}else h=Math.abs(g.pixelX)>Math.abs(g.pixelY)?-g.pixelX*m:-g.pixelY;if(0===h)return!0;r.invert&&(h=-h);let v=e.getTranslate()+h*r.sensitivity;if(v>=e.minTranslate()&&(v=e.minTranslate()),v<=e.maxTranslate()&&(v=e.maxTranslate()),i=!!e.params.loop||!(v===e.minTranslate()||v===e.maxTranslate()),i&&e.params.nested&&s.stopPropagation(),e.params.freeMode&&e.params.freeMode.enabled){const t={time:u(),delta:Math.abs(h),direction:Math.sign(h)},i=l&&t.time=e.minTranslate()&&(o=e.minTranslate()),o<=e.maxTranslate()&&(o=e.maxTranslate()),e.setTransition(0),e.setTranslate(o),e.updateProgress(),e.updateActiveIndex(),e.updateSlidesClasses(),(!d&&e.isBeginning||!u&&e.isEnd)&&e.updateSlidesClasses(),e.params.freeMode.sticky){clearTimeout(n),n=void 0,c.length>=15&&c.shift();const s=c.length?c[c.length-1]:void 0,a=c[0];if(c.push(t),s&&(t.delta>s.delta||t.direction!==s.direction))c.splice(0);else if(c.length>=15&&t.time-a.time<500&&a.delta-t.delta>=1&&t.delta<=6){const s=h>0?.8:.2;l=t,c.splice(0),n=p((()=>{e.slideToClosest(e.params.speed,!0,void 0,s)}),0)}n||(n=p((()=>{l=t,c.splice(0),e.slideToClosest(e.params.speed,!0,void 0,.5)}),500))}if(i||a("scroll",s),e.params.autoplay&&e.params.autoplayDisableOnInteraction&&e.autoplay.stop(),o===e.minTranslate()||o===e.maxTranslate())return!0}}else{const s={time:u(),delta:Math.abs(h),direction:Math.sign(h),raw:t};c.length>=2&&c.shift();const a=c.length?c[c.length-1]:void 0;if(c.push(s),a?(s.direction!==a.direction||s.delta>a.delta||s.time>a.time+150)&&f(s):f(s),function(t){const s=e.params.mousewheel;if(t.direction<0){if(e.isEnd&&!e.params.loop&&s.releaseOnEdges)return!0}else if(e.isBeginning&&!e.params.loop&&s.releaseOnEdges)return!0;return!1}(s))return!0}return s.preventDefault?s.preventDefault():s.returnValue=!1,!1}function v(t){let s=e.$el;"container"!==e.params.mousewheel.eventsTarget&&(s=d(e.params.mousewheel.eventsTarget)),s[t]("mouseenter",h),s[t]("mouseleave",m),s[t]("wheel",g)}function w(){return e.params.cssMode?(e.wrapperEl.removeEventListener("wheel",g),!0):!e.mousewheel.enabled&&(v("on"),e.mousewheel.enabled=!0,!0)}function b(){return e.params.cssMode?(e.wrapperEl.addEventListener(event,g),!0):!!e.mousewheel.enabled&&(v("off"),e.mousewheel.enabled=!1,!0)}s("init",(()=>{!e.params.mousewheel.enabled&&e.params.cssMode&&b(),e.params.mousewheel.enabled&&w()})),s("destroy",(()=>{e.params.cssMode&&w(),e.mousewheel.enabled&&b()})),Object.assign(e.mousewheel,{enable:w,disable:b})},function({swiper:e,extendParams:t,on:s,emit:a}){function i(t){let s;return t&&(s=d(t),e.params.uniqueNavElements&&"string"==typeof t&&s.length>1&&1===e.$el.find(t).length&&(s=e.$el.find(t))),s}function r(t,s){const a=e.params.navigation;t&&t.length>0&&(t[s?"addClass":"removeClass"](a.disabledClass),t[0]&&"BUTTON"===t[0].tagName&&(t[0].disabled=s),e.params.watchOverflow&&e.enabled&&t[e.isLocked?"addClass":"removeClass"](a.lockClass))}function n(){if(e.params.loop)return;const{$nextEl:t,$prevEl:s}=e.navigation;r(s,e.isBeginning),r(t,e.isEnd)}function l(t){t.preventDefault(),e.isBeginning&&!e.params.loop||e.slidePrev()}function o(t){t.preventDefault(),e.isEnd&&!e.params.loop||e.slideNext()}function c(){const t=e.params.navigation;if(e.params.navigation=Y(e,e.originalParams.navigation,e.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!t.nextEl&&!t.prevEl)return;const s=i(t.nextEl),a=i(t.prevEl);s&&s.length>0&&s.on("click",o),a&&a.length>0&&a.on("click",l),Object.assign(e.navigation,{$nextEl:s,nextEl:s&&s[0],$prevEl:a,prevEl:a&&a[0]}),e.enabled||(s&&s.addClass(t.lockClass),a&&a.addClass(t.lockClass))}function p(){const{$nextEl:t,$prevEl:s}=e.navigation;t&&t.length&&(t.off("click",o),t.removeClass(e.params.navigation.disabledClass)),s&&s.length&&(s.off("click",l),s.removeClass(e.params.navigation.disabledClass))}t({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock"}}),e.navigation={nextEl:null,$nextEl:null,prevEl:null,$prevEl:null},s("init",(()=>{c(),n()})),s("toEdge fromEdge lock unlock",(()=>{n()})),s("destroy",(()=>{p()})),s("enable disable",(()=>{const{$nextEl:t,$prevEl:s}=e.navigation;t&&t[e.enabled?"removeClass":"addClass"](e.params.navigation.lockClass),s&&s[e.enabled?"removeClass":"addClass"](e.params.navigation.lockClass)})),s("click",((t,s)=>{const{$nextEl:i,$prevEl:r}=e.navigation,n=s.target;if(e.params.navigation.hideOnClick&&!d(n).is(r)&&!d(n).is(i)){if(e.pagination&&e.params.pagination&&e.params.pagination.clickable&&(e.pagination.el===n||e.pagination.el.contains(n)))return;let t;i?t=i.hasClass(e.params.navigation.hiddenClass):r&&(t=r.hasClass(e.params.navigation.hiddenClass)),a(!0===t?"navigationShow":"navigationHide"),i&&i.toggleClass(e.params.navigation.hiddenClass),r&&r.toggleClass(e.params.navigation.hiddenClass)}})),Object.assign(e.navigation,{update:n,init:c,destroy:p})},function({swiper:e,extendParams:t,on:s,emit:a}){const i="swiper-pagination";let r;t({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:`${i}-bullet`,bulletActiveClass:`${i}-bullet-active`,modifierClass:`${i}-`,currentClass:`${i}-current`,totalClass:`${i}-total`,hiddenClass:`${i}-hidden`,progressbarFillClass:`${i}-progressbar-fill`,progressbarOppositeClass:`${i}-progressbar-opposite`,clickableClass:`${i}-clickable`,lockClass:`${i}-lock`,horizontalClass:`${i}-horizontal`,verticalClass:`${i}-vertical`}}),e.pagination={el:null,$el:null,bullets:[]};let n=0;function l(){return!e.params.pagination.el||!e.pagination.el||!e.pagination.$el||0===e.pagination.$el.length}function o(t,s){const{bulletActiveClass:a}=e.params.pagination;t[s]().addClass(`${a}-${s}`)[s]().addClass(`${a}-${s}-${s}`)}function c(){const t=e.rtl,s=e.params.pagination;if(l())return;const i=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,c=e.pagination.$el;let p;const u=e.params.loop?Math.ceil((i-2*e.loopedSlides)/e.params.slidesPerGroup):e.snapGrid.length;if(e.params.loop?(p=Math.ceil((e.activeIndex-e.loopedSlides)/e.params.slidesPerGroup),p>i-1-2*e.loopedSlides&&(p-=i-2*e.loopedSlides),p>u-1&&(p-=u),p<0&&"bullets"!==e.params.paginationType&&(p=u+p)):p=void 0!==e.snapIndex?e.snapIndex:e.activeIndex||0,"bullets"===s.type&&e.pagination.bullets&&e.pagination.bullets.length>0){const a=e.pagination.bullets;let i,l,u;if(s.dynamicBullets&&(r=a.eq(0)[e.isHorizontal()?"outerWidth":"outerHeight"](!0),c.css(e.isHorizontal()?"width":"height",r*(s.dynamicMainBullets+4)+"px"),s.dynamicMainBullets>1&&void 0!==e.previousIndex&&(n+=p-e.previousIndex,n>s.dynamicMainBullets-1?n=s.dynamicMainBullets-1:n<0&&(n=0)),i=p-n,l=i+(Math.min(a.length,s.dynamicMainBullets)-1),u=(l+i)/2),a.removeClass(["","-next","-next-next","-prev","-prev-prev","-main"].map((e=>`${s.bulletActiveClass}${e}`)).join(" ")),c.length>1)a.each((e=>{const t=d(e),a=t.index();a===p&&t.addClass(s.bulletActiveClass),s.dynamicBullets&&(a>=i&&a<=l&&t.addClass(`${s.bulletActiveClass}-main`),a===i&&o(t,"prev"),a===l&&o(t,"next"))}));else{const t=a.eq(p),r=t.index();if(t.addClass(s.bulletActiveClass),s.dynamicBullets){const t=a.eq(i),n=a.eq(l);for(let e=i;e<=l;e+=1)a.eq(e).addClass(`${s.bulletActiveClass}-main`);if(e.params.loop)if(r>=a.length-s.dynamicMainBullets){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 o(t,"prev"),o(n,"next");else o(t,"prev"),o(n,"next")}}if(s.dynamicBullets){const i=Math.min(a.length,s.dynamicMainBullets+4),n=(r*i-r)/2-u*r,l=t?"right":"left";a.css(e.isHorizontal()?l:"top",`${n}px`)}}if("fraction"===s.type&&(c.find(W(s.currentClass)).text(s.formatFractionCurrent(p+1)),c.find(W(s.totalClass)).text(s.formatFractionTotal(u))),"progressbar"===s.type){let t;t=s.progressbarOpposite?e.isHorizontal()?"vertical":"horizontal":e.isHorizontal()?"horizontal":"vertical";const a=(p+1)/u;let i=1,r=1;"horizontal"===t?i=a:r=a,c.find(W(s.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${i}) scaleY(${r})`).transition(e.params.speed)}"custom"===s.type&&s.renderCustom?(c.html(s.renderCustom(e,p+1,u)),a("paginationRender",c[0])):a("paginationUpdate",c[0]),e.params.watchOverflow&&e.enabled&&c[e.isLocked?"addClass":"removeClass"](s.lockClass)}function p(){const t=e.params.pagination;if(l())return;const s=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,i=e.pagination.$el;let r="";if("bullets"===t.type){let a=e.params.loop?Math.ceil((s-2*e.loopedSlides)/e.params.slidesPerGroup):e.snapGrid.length;e.params.freeMode&&e.params.freeMode.enabled&&!e.params.loop&&a>s&&(a=s);for(let s=0;s`;i.html(r),e.pagination.bullets=i.find(W(t.bulletClass))}"fraction"===t.type&&(r=t.renderFraction?t.renderFraction.call(e,t.currentClass,t.totalClass):` / `,i.html(r)),"progressbar"===t.type&&(r=t.renderProgressbar?t.renderProgressbar.call(e,t.progressbarFillClass):``,i.html(r)),"custom"!==t.type&&a("paginationRender",e.pagination.$el[0])}function u(){e.params.pagination=Y(e,e.originalParams.pagination,e.params.pagination,{el:"swiper-pagination"});const t=e.params.pagination;if(!t.el)return;let s=d(t.el);0!==s.length&&(e.params.uniqueNavElements&&"string"==typeof t.el&&s.length>1&&(s=e.$el.find(t.el),s.length>1&&(s=s.filter((t=>d(t).parents(".swiper")[0]===e.el)))),"bullets"===t.type&&t.clickable&&s.addClass(t.clickableClass),s.addClass(t.modifierClass+t.type),s.addClass(t.modifierClass+e.params.direction),"bullets"===t.type&&t.dynamicBullets&&(s.addClass(`${t.modifierClass}${t.type}-dynamic`),n=0,t.dynamicMainBullets<1&&(t.dynamicMainBullets=1)),"progressbar"===t.type&&t.progressbarOpposite&&s.addClass(t.progressbarOppositeClass),t.clickable&&s.on("click",W(t.bulletClass),(function(t){t.preventDefault();let s=d(this).index()*e.params.slidesPerGroup;e.params.loop&&(s+=e.loopedSlides),e.slideTo(s)})),Object.assign(e.pagination,{$el:s,el:s[0]}),e.enabled||s.addClass(t.lockClass))}function h(){const t=e.params.pagination;if(l())return;const s=e.pagination.$el;s.removeClass(t.hiddenClass),s.removeClass(t.modifierClass+t.type),s.removeClass(t.modifierClass+e.params.direction),e.pagination.bullets&&e.pagination.bullets.removeClass&&e.pagination.bullets.removeClass(t.bulletActiveClass),t.clickable&&s.off("click",W(t.bulletClass))}s("init",(()=>{u(),p(),c()})),s("activeIndexChange",(()=>{(e.params.loop||void 0===e.snapIndex)&&c()})),s("snapIndexChange",(()=>{e.params.loop||c()})),s("slidesLengthChange",(()=>{e.params.loop&&(p(),c())})),s("snapGridLengthChange",(()=>{e.params.loop||(p(),c())})),s("destroy",(()=>{h()})),s("enable disable",(()=>{const{$el:t}=e.pagination;t&&t[e.enabled?"removeClass":"addClass"](e.params.pagination.lockClass)})),s("lock unlock",(()=>{c()})),s("click",((t,s)=>{const i=s.target,{$el:r}=e.pagination;if(e.params.pagination.el&&e.params.pagination.hideOnClick&&r.length>0&&!d(i).hasClass(e.params.pagination.bulletClass)){if(e.navigation&&(e.navigation.nextEl&&i===e.navigation.nextEl||e.navigation.prevEl&&i===e.navigation.prevEl))return;const t=r.hasClass(e.params.pagination.hiddenClass);a(!0===t?"paginationShow":"paginationHide"),r.toggleClass(e.params.pagination.hiddenClass)}})),Object.assign(e.pagination,{render:p,update:c,init:u,destroy:h})},function({swiper:e,extendParams:t,on:s,emit:i}){const r=a();let n,l,o,c,u=!1,h=null,m=null;function f(){if(!e.params.scrollbar.el||!e.scrollbar.el)return;const{scrollbar:t,rtlTranslate:s,progress:a}=e,{$dragEl:i,$el:r}=t,n=e.params.scrollbar;let d=l,c=(o-l)*a;s?(c=-c,c>0?(d=l-c,c=0):-c+l>o&&(d=o+c)):c<0?(d=l+c,c=0):c+l>o&&(d=o-c),e.isHorizontal()?(i.transform(`translate3d(${c}px, 0, 0)`),i[0].style.width=`${d}px`):(i.transform(`translate3d(0px, ${c}px, 0)`),i[0].style.height=`${d}px`),n.hide&&(clearTimeout(h),r[0].style.opacity=1,h=setTimeout((()=>{r[0].style.opacity=0,r.transition(400)}),1e3))}function g(){if(!e.params.scrollbar.el||!e.scrollbar.el)return;const{scrollbar:t}=e,{$dragEl:s,$el:a}=t;s[0].style.width="",s[0].style.height="",o=e.isHorizontal()?a[0].offsetWidth:a[0].offsetHeight,c=e.size/(e.virtualSize+e.params.slidesOffsetBefore-(e.params.centeredSlides?e.snapGrid[0]:0)),l="auto"===e.params.scrollbar.dragSize?o*c:parseInt(e.params.scrollbar.dragSize,10),e.isHorizontal()?s[0].style.width=`${l}px`:s[0].style.height=`${l}px`,a[0].style.display=c>=1?"none":"",e.params.scrollbar.hide&&(a[0].style.opacity=0),e.params.watchOverflow&&e.enabled&&t.$el[e.isLocked?"addClass":"removeClass"](e.params.scrollbar.lockClass)}function v(t){return e.isHorizontal()?"touchstart"===t.type||"touchmove"===t.type?t.targetTouches[0].clientX:t.clientX:"touchstart"===t.type||"touchmove"===t.type?t.targetTouches[0].clientY:t.clientY}function w(t){const{scrollbar:s,rtlTranslate:a}=e,{$el:i}=s;let r;r=(v(t)-i.offset()[e.isHorizontal()?"left":"top"]-(null!==n?n:l/2))/(o-l),r=Math.max(Math.min(r,1),0),a&&(r=1-r);const d=e.minTranslate()+(e.maxTranslate()-e.minTranslate())*r;e.updateProgress(d),e.setTranslate(d),e.updateActiveIndex(),e.updateSlidesClasses()}function b(t){const s=e.params.scrollbar,{scrollbar:a,$wrapperEl:r}=e,{$el:l,$dragEl:o}=a;u=!0,n=t.target===o[0]||t.target===o?v(t)-t.target.getBoundingClientRect()[e.isHorizontal()?"left":"top"]:null,t.preventDefault(),t.stopPropagation(),r.transition(100),o.transition(100),w(t),clearTimeout(m),l.transition(0),s.hide&&l.css("opacity",1),e.params.cssMode&&e.$wrapperEl.css("scroll-snap-type","none"),i("scrollbarDragStart",t)}function x(t){const{scrollbar:s,$wrapperEl:a}=e,{$el:r,$dragEl:n}=s;u&&(t.preventDefault?t.preventDefault():t.returnValue=!1,w(t),a.transition(0),r.transition(0),n.transition(0),i("scrollbarDragMove",t))}function y(t){const s=e.params.scrollbar,{scrollbar:a,$wrapperEl:r}=e,{$el:n}=a;u&&(u=!1,e.params.cssMode&&(e.$wrapperEl.css("scroll-snap-type",""),r.transition("")),s.hide&&(clearTimeout(m),m=p((()=>{n.css("opacity",0),n.transition(400)}),1e3)),i("scrollbarDragEnd",t),s.snapOnRelease&&e.slideToClosest())}function E(t){const{scrollbar:s,touchEventsTouch:a,touchEventsDesktop:i,params:n,support:l}=e,o=s.$el[0],d=!(!l.passiveListener||!n.passiveListeners)&&{passive:!1,capture:!1},c=!(!l.passiveListener||!n.passiveListeners)&&{passive:!0,capture:!1};if(!o)return;const p="on"===t?"addEventListener":"removeEventListener";l.touch?(o[p](a.start,b,d),o[p](a.move,x,d),o[p](a.end,y,c)):(o[p](i.start,b,d),r[p](i.move,x,d),r[p](i.end,y,c))}function T(){const{scrollbar:t,$el:s}=e;e.params.scrollbar=Y(e,e.originalParams.scrollbar,e.params.scrollbar,{el:"swiper-scrollbar"});const a=e.params.scrollbar;if(!a.el)return;let i=d(a.el);e.params.uniqueNavElements&&"string"==typeof a.el&&i.length>1&&1===s.find(a.el).length&&(i=s.find(a.el));let r=i.find(`.${e.params.scrollbar.dragClass}`);0===r.length&&(r=d(`
`),i.append(r)),Object.assign(t,{$el:i,el:i[0],$dragEl:r,dragEl:r[0]}),a.draggable&&e.params.scrollbar.el&&E("on"),i&&i[e.enabled?"removeClass":"addClass"](e.params.scrollbar.lockClass)}function C(){e.params.scrollbar.el&&E("off")}t({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag"}}),e.scrollbar={el:null,dragEl:null,$el:null,$dragEl:null},s("init",(()=>{T(),g(),f()})),s("update resize observerUpdate lock unlock",(()=>{g()})),s("setTranslate",(()=>{f()})),s("setTransition",((t,s)=>{!function(t){e.params.scrollbar.el&&e.scrollbar.el&&e.scrollbar.$dragEl.transition(t)}(s)})),s("enable disable",(()=>{const{$el:t}=e.scrollbar;t&&t[e.enabled?"removeClass":"addClass"](e.params.scrollbar.lockClass)})),s("destroy",(()=>{C()})),Object.assign(e.scrollbar,{updateSize:g,setTranslate:f,init:T,destroy:C})},function({swiper:e,extendParams:t,on:s}){t({parallax:{enabled:!1}});const a=(t,s)=>{const{rtl:a}=e,i=d(t),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"):e.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})`)}},i=()=>{const{$el:t,slides:s,progress:i,snapGrid:r}=e;t.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((e=>{a(e,i)})),s.each(((t,s)=>{let n=t.progress;e.params.slidesPerGroup>1&&"auto"!==e.params.slidesPerView&&(n+=Math.ceil(s/2)-i*(r.length-1)),n=Math.min(Math.max(n,-1),1),d(t).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((e=>{a(e,n)}))}))};s("beforeInit",(()=>{e.params.parallax.enabled&&(e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0)})),s("init",(()=>{e.params.parallax.enabled&&i()})),s("setTranslate",(()=>{e.params.parallax.enabled&&i()})),s("setTransition",((t,s)=>{e.params.parallax.enabled&&((t=e.params.speed)=>{const{$el:s}=e;s.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((e=>{const s=d(e);let a=parseInt(s.attr("data-swiper-parallax-duration"),10)||t;0===t&&(a=0),s.transition(a)}))})(s)}))},function({swiper:e,extendParams:t,on:s,emit:a}){const i=r();t({zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),e.zoom={enabled:!1};let n,l,o,c=1,p=!1;const u={$slideEl:void 0,slideWidth:void 0,slideHeight:void 0,$imageEl:void 0,$imageWrapEl:void 0,maxRatio:3},m={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:{}},f={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let g=1;function v(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 w(t){const s=e.support,a=e.params.zoom;if(l=!1,o=!1,!s.gestures){if("touchstart"!==t.type||"touchstart"===t.type&&t.targetTouches.length<2)return;l=!0,u.scaleStart=v(t)}u.$slideEl&&u.$slideEl.length||(u.$slideEl=d(t.target).closest(`.${e.params.slideClass}`),0===u.$slideEl.length&&(u.$slideEl=e.slides.eq(e.activeIndex)),u.$imageEl=u.$slideEl.find(`.${a.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),u.$imageWrapEl=u.$imageEl.parent(`.${a.containerClass}`),u.maxRatio=u.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,0!==u.$imageWrapEl.length)?(u.$imageEl&&u.$imageEl.transition(0),p=!0):u.$imageEl=void 0}function b(t){const s=e.support,a=e.params.zoom,i=e.zoom;if(!s.gestures){if("touchmove"!==t.type||"touchmove"===t.type&&t.targetTouches.length<2)return;o=!0,u.scaleMove=v(t)}u.$imageEl&&0!==u.$imageEl.length?(s.gestures?i.scale=t.scale*c:i.scale=u.scaleMove/u.scaleStart*c,i.scale>u.maxRatio&&(i.scale=u.maxRatio-1+(i.scale-u.maxRatio+1)**.5),i.scalem.touchesStart.x))return void(m.isTouched=!1);if(!e.isHorizontal()&&(Math.floor(m.minY)===Math.floor(m.startY)&&m.touchesCurrent.ym.touchesStart.y))return void(m.isTouched=!1)}t.cancelable&&t.preventDefault(),t.stopPropagation(),m.isMoved=!0,m.currentX=m.touchesCurrent.x-m.touchesStart.x+m.startX,m.currentY=m.touchesCurrent.y-m.touchesStart.y+m.startY,m.currentXm.maxX&&(m.currentX=m.maxX-1+(m.currentX-m.maxX+1)**.8),m.currentYm.maxY&&(m.currentY=m.maxY-1+(m.currentY-m.maxY+1)**.8),f.prevPositionX||(f.prevPositionX=m.touchesCurrent.x),f.prevPositionY||(f.prevPositionY=m.touchesCurrent.y),f.prevTime||(f.prevTime=Date.now()),f.x=(m.touchesCurrent.x-f.prevPositionX)/(Date.now()-f.prevTime)/2,f.y=(m.touchesCurrent.y-f.prevPositionY)/(Date.now()-f.prevTime)/2,Math.abs(m.touchesCurrent.x-f.prevPositionX)<2&&(f.x=0),Math.abs(m.touchesCurrent.y-f.prevPositionY)<2&&(f.y=0),f.prevPositionX=m.touchesCurrent.x,f.prevPositionY=m.touchesCurrent.y,f.prevTime=Date.now(),u.$imageWrapEl.transform(`translate3d(${m.currentX}px, ${m.currentY}px,0)`)}}function E(){const t=e.zoom;u.$slideEl&&e.previousIndex!==e.activeIndex&&(u.$imageEl&&u.$imageEl.transform("translate3d(0,0,0) scale(1)"),u.$imageWrapEl&&u.$imageWrapEl.transform("translate3d(0,0,0)"),t.scale=1,c=1,u.$slideEl=void 0,u.$imageEl=void 0,u.$imageWrapEl=void 0)}function T(t){const s=e.zoom,a=e.params.zoom;if(u.$slideEl||(t&&t.target&&(u.$slideEl=d(t.target).closest(`.${e.params.slideClass}`)),u.$slideEl||(e.params.virtual&&e.params.virtual.enabled&&e.virtual?u.$slideEl=e.$wrapperEl.children(`.${e.params.slideActiveClass}`):u.$slideEl=e.slides.eq(e.activeIndex)),u.$imageEl=u.$slideEl.find(`.${a.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),u.$imageWrapEl=u.$imageEl.parent(`.${a.containerClass}`)),!u.$imageEl||0===u.$imageEl.length||!u.$imageWrapEl||0===u.$imageWrapEl.length)return;let r,n,l,o,p,h,f,g,v,w,b,x,y,E,T,C,$,S;e.params.cssMode&&(e.wrapperEl.style.overflow="hidden",e.wrapperEl.style.touchAction="none"),u.$slideEl.addClass(`${a.zoomedSlideClass}`),void 0===m.touchesStart.x&&t?(r="touchend"===t.type?t.changedTouches[0].pageX:t.pageX,n="touchend"===t.type?t.changedTouches[0].pageY:t.pageY):(r=m.touchesStart.x,n=m.touchesStart.y),s.scale=u.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,c=u.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,t?($=u.$slideEl[0].offsetWidth,S=u.$slideEl[0].offsetHeight,l=u.$slideEl.offset().left+i.scrollX,o=u.$slideEl.offset().top+i.scrollY,p=l+$/2-r,h=o+S/2-n,v=u.$imageEl[0].offsetWidth,w=u.$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),T=-y,C=-E,f=p*s.scale,g=h*s.scale,fT&&(f=T),gC&&(g=C)):(f=0,g=0),u.$imageWrapEl.transition(300).transform(`translate3d(${f}px, ${g}px,0)`),u.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${s.scale})`)}function C(){const t=e.zoom,s=e.params.zoom;u.$slideEl||(e.params.virtual&&e.params.virtual.enabled&&e.virtual?u.$slideEl=e.$wrapperEl.children(`.${e.params.slideActiveClass}`):u.$slideEl=e.slides.eq(e.activeIndex),u.$imageEl=u.$slideEl.find(`.${s.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),u.$imageWrapEl=u.$imageEl.parent(`.${s.containerClass}`)),u.$imageEl&&0!==u.$imageEl.length&&u.$imageWrapEl&&0!==u.$imageWrapEl.length&&(e.params.cssMode&&(e.wrapperEl.style.overflow="",e.wrapperEl.style.touchAction=""),t.scale=1,c=1,u.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),u.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),u.$slideEl.removeClass(`${s.zoomedSlideClass}`),u.$slideEl=void 0)}function $(t){const s=e.zoom;s.scale&&1!==s.scale?C():T(t)}function S(){const t=e.support;return{passiveListener:!("touchstart"!==e.touchEvents.start||!t.passiveListener||!e.params.passiveListeners)&&{passive:!0,capture:!1},activeListenerWithCapture:!t.passiveListener||{passive:!1,capture:!0}}}function M(){return`.${e.params.slideClass}`}function P(t){const{passiveListener:s}=S(),a=M();e.$wrapperEl[t]("gesturestart",a,w,s),e.$wrapperEl[t]("gesturechange",a,b,s),e.$wrapperEl[t]("gestureend",a,x,s)}function k(){n||(n=!0,P("on"))}function z(){n&&(n=!1,P("off"))}function O(){const t=e.zoom;if(t.enabled)return;t.enabled=!0;const s=e.support,{passiveListener:a,activeListenerWithCapture:i}=S(),r=M();s.gestures?(e.$wrapperEl.on(e.touchEvents.start,k,a),e.$wrapperEl.on(e.touchEvents.end,z,a)):"touchstart"===e.touchEvents.start&&(e.$wrapperEl.on(e.touchEvents.start,r,w,a),e.$wrapperEl.on(e.touchEvents.move,r,b,i),e.$wrapperEl.on(e.touchEvents.end,r,x,a),e.touchEvents.cancel&&e.$wrapperEl.on(e.touchEvents.cancel,r,x,a)),e.$wrapperEl.on(e.touchEvents.move,`.${e.params.zoom.containerClass}`,y,i)}function I(){const t=e.zoom;if(!t.enabled)return;const s=e.support;t.enabled=!1;const{passiveListener:a,activeListenerWithCapture:i}=S(),r=M();s.gestures?(e.$wrapperEl.off(e.touchEvents.start,k,a),e.$wrapperEl.off(e.touchEvents.end,z,a)):"touchstart"===e.touchEvents.start&&(e.$wrapperEl.off(e.touchEvents.start,r,w,a),e.$wrapperEl.off(e.touchEvents.move,r,b,i),e.$wrapperEl.off(e.touchEvents.end,r,x,a),e.touchEvents.cancel&&e.$wrapperEl.off(e.touchEvents.cancel,r,x,a)),e.$wrapperEl.off(e.touchEvents.move,`.${e.params.zoom.containerClass}`,y,i)}Object.defineProperty(e.zoom,"scale",{get:()=>g,set(e){if(g!==e){const t=u.$imageEl?u.$imageEl[0]:void 0,s=u.$slideEl?u.$slideEl[0]:void 0;a("zoomChange",e,t,s)}g=e}}),s("init",(()=>{e.params.zoom.enabled&&O()})),s("destroy",(()=>{I()})),s("touchStart",((t,s)=>{e.zoom.enabled&&function(t){const s=e.device;u.$imageEl&&0!==u.$imageEl.length&&(m.isTouched||(s.android&&t.cancelable&&t.preventDefault(),m.isTouched=!0,m.touchesStart.x="touchstart"===t.type?t.targetTouches[0].pageX:t.pageX,m.touchesStart.y="touchstart"===t.type?t.targetTouches[0].pageY:t.pageY))}(s)})),s("touchEnd",((t,s)=>{e.zoom.enabled&&function(){const t=e.zoom;if(!u.$imageEl||0===u.$imageEl.length)return;if(!m.isTouched||!m.isMoved)return m.isTouched=!1,void(m.isMoved=!1);m.isTouched=!1,m.isMoved=!1;let s=300,a=300;const i=f.x*s,r=m.currentX+i,n=f.y*a,l=m.currentY+n;0!==f.x&&(s=Math.abs((r-m.currentX)/f.x)),0!==f.y&&(a=Math.abs((l-m.currentY)/f.y));const o=Math.max(s,a);m.currentX=r,m.currentY=l;const d=m.width*t.scale,c=m.height*t.scale;m.minX=Math.min(u.slideWidth/2-d/2,0),m.maxX=-m.minX,m.minY=Math.min(u.slideHeight/2-c/2,0),m.maxY=-m.minY,m.currentX=Math.max(Math.min(m.currentX,m.maxX),m.minX),m.currentY=Math.max(Math.min(m.currentY,m.maxY),m.minY),u.$imageWrapEl.transition(o).transform(`translate3d(${m.currentX}px, ${m.currentY}px,0)`)}()})),s("doubleTap",((t,s)=>{!e.animating&&e.params.zoom.enabled&&e.zoom.enabled&&e.params.zoom.toggle&&$(s)})),s("transitionEnd",(()=>{e.zoom.enabled&&e.params.zoom.enabled&&E()})),s("slideChange",(()=>{e.zoom.enabled&&e.params.zoom.enabled&&e.params.cssMode&&E()})),Object.assign(e.zoom,{enable:O,disable:I,in:T,out:C,toggle:$})},function({swiper:e,extendParams:t,on:s,emit:a}){t({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"}}),e.lazy={};let i=!1,n=!1;function l(t,s=!0){const i=e.params.lazy;if(void 0===t)return;if(0===e.slides.length)return;const r=e.virtual&&e.params.virtual.enabled?e.$wrapperEl.children(`.${e.params.slideClass}[data-swiper-slide-index="${t}"]`):e.slides.eq(t),n=r.find(`.${i.elementClass}:not(.${i.loadedClass}):not(.${i.loadingClass})`);!r.hasClass(i.elementClass)||r.hasClass(i.loadedClass)||r.hasClass(i.loadingClass)||n.push(r[0]),0!==n.length&&n.each((t=>{const n=d(t);n.addClass(i.loadingClass);const o=n.attr("data-background"),c=n.attr("data-src"),p=n.attr("data-srcset"),u=n.attr("data-sizes"),h=n.parent("picture");e.loadImage(n[0],c||o,p,u,!1,(()=>{if(null!=e&&e&&(!e||e.params)&&!e.destroyed){if(o?(n.css("background-image",`url("${o}")`),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(i.loadedClass).removeClass(i.loadingClass),r.find(`.${i.preloaderClass}`).remove(),e.params.loop&&s){const t=r.attr("data-swiper-slide-index");if(r.hasClass(e.params.slideDuplicateClass)){l(e.$wrapperEl.children(`[data-swiper-slide-index="${t}"]:not(.${e.params.slideDuplicateClass})`).index(),!1)}else{l(e.$wrapperEl.children(`.${e.params.slideDuplicateClass}[data-swiper-slide-index="${t}"]`).index(),!1)}}a("lazyImageReady",r[0],n[0]),e.params.autoHeight&&e.updateAutoHeight()}})),a("lazyImageLoad",r[0],n[0])}))}function o(){const{$wrapperEl:t,params:s,slides:a,activeIndex:i}=e,r=e.virtual&&s.virtual.enabled,o=s.lazy;let c=s.slidesPerView;function p(e){if(r){if(t.children(`.${s.slideClass}[data-swiper-slide-index="${e}"]`).length)return!0}else if(a[e])return!0;return!1}function u(e){return r?d(e).attr("data-swiper-slide-index"):d(e).index()}if("auto"===c&&(c=0),n||(n=!0),e.params.watchSlidesProgress)t.children(`.${s.slideVisibleClass}`).each((e=>{l(r?d(e).attr("data-swiper-slide-index"):d(e).index())}));else if(c>1)for(let e=i;e1||o.loadPrevNextAmount&&o.loadPrevNextAmount>1){const e=o.loadPrevNextAmount,t=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+c;e0&&l(u(e));const a=t.children(`.${s.slidePrevClass}`);a.length>0&&l(u(a))}}function c(){const t=r();if(!e||e.destroyed)return;const s=e.params.lazy.scrollingElement?d(e.params.lazy.scrollingElement):d(t),a=s[0]===t,n=a?t.innerWidth:s[0].offsetWidth,l=a?t.innerHeight:s[0].offsetHeight,p=e.$el.offset(),{rtlTranslate:u}=e;let h=!1;u&&(p.left-=e.$el[0].scrollLeft);const m=[[p.left,p.top],[p.left+e.width,p.top],[p.left,p.top+e.height],[p.left+e.width,p.top+e.height]];for(let e=0;e=0&&t[0]<=n&&t[1]>=0&&t[1]<=l){if(0===t[0]&&0===t[1])continue;h=!0}}const f=!("touchstart"!==e.touchEvents.start||!e.support.passiveListener||!e.params.passiveListeners)&&{passive:!0,capture:!1};h?(o(),s.off("scroll",c,f)):i||(i=!0,s.on("scroll",c,f))}s("beforeInit",(()=>{e.params.lazy.enabled&&e.params.preloadImages&&(e.params.preloadImages=!1)})),s("init",(()=>{e.params.lazy.enabled&&(e.params.lazy.checkInView?c():o())})),s("scroll",(()=>{e.params.freeMode&&e.params.freeMode.enabled&&!e.params.freeMode.sticky&&o()})),s("scrollbarDragMove resize _freeModeNoMomentumRelease",(()=>{e.params.lazy.enabled&&(e.params.lazy.checkInView?c():o())})),s("transitionStart",(()=>{e.params.lazy.enabled&&(e.params.lazy.loadOnTransitionStart||!e.params.lazy.loadOnTransitionStart&&!n)&&(e.params.lazy.checkInView?c():o())})),s("transitionEnd",(()=>{e.params.lazy.enabled&&!e.params.lazy.loadOnTransitionStart&&(e.params.lazy.checkInView?c():o())})),s("slideChange",(()=>{const{lazy:t,cssMode:s,watchSlidesProgress:a,touchReleaseOnEdges:i,resistanceRatio:r}=e.params;t.enabled&&(s||a&&(i||0===r))&&o()})),Object.assign(e.lazy,{load:o,loadInSlide:l})},function({swiper:e,extendParams:t,on:s}){function a(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 i(){e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)}t({controller:{control:void 0,inverse:!1,by:"slide"}}),e.controller={control:void 0},s("beforeInit",(()=>{e.controller.control=e.params.controller.control})),s("update",(()=>{i()})),s("resize",(()=>{i()})),s("observerUpdate",(()=>{i()})),s("setTranslate",((t,s,a)=>{e.controller.control&&e.controller.setTranslate(s,a)})),s("setTransition",((t,s,a)=>{e.controller.control&&e.controller.setTransition(s,a)})),Object.assign(e.controller,{setTranslate:function(t,s){const i=e.controller.control;let r,n;const l=e.constructor;function o(t){const s=e.rtlTranslate?-e.translate:e.translate;"slide"===e.params.controller.by&&(!function(t){e.controller.spline||(e.controller.spline=e.params.loop?new a(e.slidesGrid,t.slidesGrid):new a(e.snapGrid,t.snapGrid))}(t),n=-e.controller.spline.interpolate(-s)),n&&"container"!==e.params.controller.by||(r=(t.maxTranslate()-t.minTranslate())/(e.maxTranslate()-e.minTranslate()),n=(s-e.minTranslate())*r+t.minTranslate()),e.params.controller.inverse&&(n=t.maxTranslate()-n),t.updateProgress(n),t.setTranslate(n,e),t.updateActiveIndex(),t.updateSlidesClasses()}if(Array.isArray(i))for(let e=0;e{s.updateAutoHeight()})),s.$wrapperEl.transitionEnd((()=>{i&&(s.params.loop&&"slide"===e.params.controller.by&&s.loopFix(),s.transitionEnd())})))}if(Array.isArray(i))for(r=0;r0&&(e.isBeginning?(p(s),n(s)):(u(s),r(s))),t&&t.length>0&&(e.isEnd?(p(t),n(t)):(u(t),r(t)))}function f(){return e.pagination&&e.params.pagination.clickable&&e.pagination.bullets&&e.pagination.bullets.length}const g=(e,t,s)=>{r(e),"BUTTON"!==e[0].tagName&&(l(e,"button"),e.on("keydown",h)),c(e,s),function(e,t){e.attr("aria-controls",t)}(e,t)};function v(){const t=e.params.a11y;e.$el.append(a);const s=e.$el;t.containerRoleDescriptionMessage&&o(s,t.containerRoleDescriptionMessage),t.containerMessage&&c(s,t.containerMessage);const i=e.$wrapperEl,r=i.attr("id")||`swiper-wrapper-${function(e=16){return"x".repeat(e).replace(/x/g,(()=>Math.round(16*Math.random()).toString(16)))}(16)}`,n=e.params.autoplay&&e.params.autoplay.enabled?"off":"polite";var p;p=r,i.attr("id",p),function(e,t){e.attr("aria-live",t)}(i,n),t.itemRoleDescriptionMessage&&o(d(e.slides),t.itemRoleDescriptionMessage),l(d(e.slides),t.slideRole);const u=e.params.loop?e.slides.filter((t=>!t.classList.contains(e.params.slideDuplicateClass))).length:e.slides.length;let m,v;e.slides.each(((s,a)=>{const i=d(s),r=e.params.loop?parseInt(i.attr("data-swiper-slide-index"),10):a;c(i,t.slideLabelMessage.replace(/\{\{index\}\}/,r+1).replace(/\{\{slidesLength\}\}/,u))})),e.navigation&&e.navigation.$nextEl&&(m=e.navigation.$nextEl),e.navigation&&e.navigation.$prevEl&&(v=e.navigation.$prevEl),m&&m.length&&g(m,r,t.nextSlideMessage),v&&v.length&&g(v,r,t.prevSlideMessage),f()&&e.pagination.$el.on("keydown",W(e.params.pagination.bulletClass),h)}s("beforeInit",(()=>{a=d(``)})),s("afterInit",(()=>{e.params.a11y.enabled&&(v(),m())})),s("toEdge",(()=>{e.params.a11y.enabled&&m()})),s("fromEdge",(()=>{e.params.a11y.enabled&&m()})),s("paginationUpdate",(()=>{e.params.a11y.enabled&&function(){const t=e.params.a11y;f()&&e.pagination.bullets.each((s=>{const a=d(s);r(a),e.params.pagination.renderBullet||(l(a,"button"),c(a,t.paginationBulletMessage.replace(/\{\{index\}\}/,a.index()+1)))}))}()})),s("destroy",(()=>{e.params.a11y.enabled&&function(){let t,s;a&&a.length>0&&a.remove(),e.navigation&&e.navigation.$nextEl&&(t=e.navigation.$nextEl),e.navigation&&e.navigation.$prevEl&&(s=e.navigation.$prevEl),t&&t.off("keydown",h),s&&s.off("keydown",h),f()&&e.pagination.$el.off("keydown",W(e.params.pagination.bulletClass),h)}()}))},function({swiper:e,extendParams:t,on:s}){t({history:{enabled:!1,root:"",replaceState:!1,key:"slides"}});let a=!1,i={};const n=e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),l=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]}},o=(t,s)=>{const i=r();if(!a||!e.params.history.enabled)return;let l;l=e.params.url?new URL(e.params.url):i.location;const o=e.slides.eq(s);let d=n(o.attr("data-history"));if(e.params.history.root.length>0){let s=e.params.history.root;"/"===s[s.length-1]&&(s=s.slice(0,s.length-1)),d=`${s}/${t}/${d}`}else l.pathname.includes(t)||(d=`${t}/${d}`);const c=i.history.state;c&&c.value===d||(e.params.history.replaceState?i.history.replaceState({value:d},null,d):i.history.pushState({value:d},null,d))},d=(t,s,a)=>{if(s)for(let i=0,r=e.slides.length;i{i=l(e.params.url),d(e.params.speed,e.paths.value,!1)};s("init",(()=>{e.params.history.enabled&&(()=>{const t=r();if(e.params.history){if(!t.history||!t.history.pushState)return e.params.history.enabled=!1,void(e.params.hashNavigation.enabled=!0);a=!0,i=l(e.params.url),(i.key||i.value)&&(d(0,i.value,e.params.runCallbacksOnInit),e.params.history.replaceState||t.addEventListener("popstate",c))}})()})),s("destroy",(()=>{e.params.history.enabled&&(()=>{const t=r();e.params.history.replaceState||t.removeEventListener("popstate",c)})()})),s("transitionEnd _freeModeNoMomentumRelease",(()=>{a&&o(e.params.history.key,e.activeIndex)})),s("slideChange",(()=>{a&&e.params.cssMode&&o(e.params.history.key,e.activeIndex)}))},function({swiper:e,extendParams:t,emit:s,on:i}){let n=!1;const l=a(),o=r();t({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1}});const c=()=>{s("hashChange");const t=l.location.hash.replace("#","");if(t!==e.slides.eq(e.activeIndex).attr("data-hash")){const s=e.$wrapperEl.children(`.${e.params.slideClass}[data-hash="${t}"]`).index();if(void 0===s)return;e.slideTo(s)}},p=()=>{if(n&&e.params.hashNavigation.enabled)if(e.params.hashNavigation.replaceState&&o.history&&o.history.replaceState)o.history.replaceState(null,null,`#${e.slides.eq(e.activeIndex).attr("data-hash")}`||""),s("hashSet");else{const t=e.slides.eq(e.activeIndex),a=t.attr("data-hash")||t.attr("data-history");l.location.hash=a||"",s("hashSet")}};i("init",(()=>{e.params.hashNavigation.enabled&&(()=>{if(!e.params.hashNavigation.enabled||e.params.history&&e.params.history.enabled)return;n=!0;const t=l.location.hash.replace("#","");if(t){const s=0;for(let a=0,i=e.slides.length;a{e.params.hashNavigation.enabled&&e.params.hashNavigation.watchState&&d(o).off("hashchange",c)})),i("transitionEnd _freeModeNoMomentumRelease",(()=>{n&&p()})),i("slideChange",(()=>{n&&e.params.cssMode&&p()}))},function({swiper:e,extendParams:t,on:s,emit:i}){let r;function n(){const t=e.slides.eq(e.activeIndex);let s=e.params.autoplay.delay;t.attr("data-swiper-autoplay")&&(s=t.attr("data-swiper-autoplay")||e.params.autoplay.delay),clearTimeout(r),r=p((()=>{let t;e.params.autoplay.reverseDirection?e.params.loop?(e.loopFix(),t=e.slidePrev(e.params.speed,!0,!0),i("autoplay")):e.isBeginning?e.params.autoplay.stopOnLastSlide?o():(t=e.slideTo(e.slides.length-1,e.params.speed,!0,!0),i("autoplay")):(t=e.slidePrev(e.params.speed,!0,!0),i("autoplay")):e.params.loop?(e.loopFix(),t=e.slideNext(e.params.speed,!0,!0),i("autoplay")):e.isEnd?e.params.autoplay.stopOnLastSlide?o():(t=e.slideTo(0,e.params.speed,!0,!0),i("autoplay")):(t=e.slideNext(e.params.speed,!0,!0),i("autoplay")),(e.params.cssMode&&e.autoplay.running||!1===t)&&n()}),s)}function l(){return void 0===r&&(!e.autoplay.running&&(e.autoplay.running=!0,i("autoplayStart"),n(),!0))}function o(){return!!e.autoplay.running&&(void 0!==r&&(r&&(clearTimeout(r),r=void 0),e.autoplay.running=!1,i("autoplayStop"),!0))}function d(t){e.autoplay.running&&(e.autoplay.paused||(r&&clearTimeout(r),e.autoplay.paused=!0,0!==t&&e.params.autoplay.waitForTransition?["transitionend","webkitTransitionEnd"].forEach((t=>{e.$wrapperEl[0].addEventListener(t,u)})):(e.autoplay.paused=!1,n())))}function c(){const t=a();"hidden"===t.visibilityState&&e.autoplay.running&&d(),"visible"===t.visibilityState&&e.autoplay.paused&&(n(),e.autoplay.paused=!1)}function u(t){e&&!e.destroyed&&e.$wrapperEl&&t.target===e.$wrapperEl[0]&&(["transitionend","webkitTransitionEnd"].forEach((t=>{e.$wrapperEl[0].removeEventListener(t,u)})),e.autoplay.paused=!1,e.autoplay.running?n():o())}function h(){e.params.autoplay.disableOnInteraction?o():d(),["transitionend","webkitTransitionEnd"].forEach((t=>{e.$wrapperEl[0].removeEventListener(t,u)}))}function m(){e.params.autoplay.disableOnInteraction||(e.autoplay.paused=!1,n())}e.autoplay={running:!1,paused:!1},t({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}}),s("init",(()=>{if(e.params.autoplay.enabled){l();a().addEventListener("visibilitychange",c),e.params.autoplay.pauseOnMouseEnter&&(e.$el.on("mouseenter",h),e.$el.on("mouseleave",m))}})),s("beforeTransitionStart",((t,s,a)=>{e.autoplay.running&&(a||!e.params.autoplay.disableOnInteraction?e.autoplay.pause(s):o())})),s("sliderFirstMove",(()=>{e.autoplay.running&&(e.params.autoplay.disableOnInteraction?o():d())})),s("touchEnd",(()=>{e.params.cssMode&&e.autoplay.paused&&!e.params.autoplay.disableOnInteraction&&n()})),s("destroy",(()=>{e.$el.off("mouseenter",h),e.$el.off("mouseleave",m),e.autoplay.running&&o();a().removeEventListener("visibilitychange",c)})),Object.assign(e.autoplay,{pause:d,run:n,start:l,stop:o})},function({swiper:e,extendParams:t,on:s}){t({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let a=!1,i=!1;function r(){const t=e.thumbs.swiper;if(!t)return;const s=t.clickedIndex,a=t.clickedSlide;if(a&&d(a).hasClass(e.params.thumbs.slideThumbActiveClass))return;if(null==s)return;let i;if(i=t.params.loop?parseInt(d(t.clickedSlide).attr("data-swiper-slide-index"),10):s,e.params.loop){let t=e.activeIndex;e.slides.eq(t).hasClass(e.params.slideDuplicateClass)&&(e.loopFix(),e._clientLeft=e.$wrapperEl[0].clientLeft,t=e.activeIndex);const s=e.slides.eq(t).prevAll(`[data-swiper-slide-index="${i}"]`).eq(0).index(),a=e.slides.eq(t).nextAll(`[data-swiper-slide-index="${i}"]`).eq(0).index();i=void 0===s?a:void 0===a?s:a-t1?a:o:a-oe.previousIndex?"next":"prev"}else n=e.realIndex,l=n>e.previousIndex?"next":"prev";r&&(n+="next"===l?i:-1*i),s.visibleSlidesIndexes&&s.visibleSlidesIndexes.indexOf(n)<0&&(s.params.centeredSlides?n=n>o?n-Math.floor(a/2)+1:n+Math.floor(a/2)-1:n>o&&s.params.slidesPerGroup,s.slideTo(n,t?0:void 0))}let n=1;const l=e.params.thumbs.slideThumbActiveClass;if(e.params.slidesPerView>1&&!e.params.centeredSlides&&(n=e.params.slidesPerView),e.params.thumbs.multipleActiveThumbs||(n=1),n=Math.floor(n),s.slides.removeClass(l),s.params.loop||s.params.virtual&&s.params.virtual.enabled)for(let t=0;t{const{thumbs:t}=e.params;t&&t.swiper&&(n(),l(!0))})),s("slideChange update resize observerUpdate",(()=>{e.thumbs.swiper&&l()})),s("setTransition",((t,s)=>{const a=e.thumbs.swiper;a&&a.setTransition(s)})),s("beforeDestroy",(()=>{const t=e.thumbs.swiper;t&&i&&t&&t.destroy()})),Object.assign(e.thumbs,{init:n,update:l})},function({swiper:e,extendParams:t,emit:s,once:a}){t({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}}),Object.assign(e,{freeMode:{onTouchMove:function(){const{touchEventsData:t,touches:s}=e;0===t.velocities.length&&t.velocities.push({position:s[e.isHorizontal()?"startX":"startY"],time:t.touchStartTime}),t.velocities.push({position:s[e.isHorizontal()?"currentX":"currentY"],time:u()})},onTouchEnd:function({currentPos:t}){const{params:i,$wrapperEl:r,rtlTranslate:n,snapGrid:l,touchEventsData:o}=e,d=u()-o.touchStartTime;if(t<-e.minTranslate())e.slideTo(e.activeIndex);else if(t>-e.maxTranslate())e.slides.length1){const t=o.velocities.pop(),s=o.velocities.pop(),a=t.position-s.position,r=t.time-s.time;e.velocity=a/r,e.velocity/=2,Math.abs(e.velocity)150||u()-t.time>300)&&(e.velocity=0)}else e.velocity=0;e.velocity*=i.freeMode.momentumVelocityRatio,o.velocities.length=0;let t=1e3*i.freeMode.momentumRatio;const d=e.velocity*t;let c=e.translate+d;n&&(c=-c);let p,h=!1;const m=20*Math.abs(e.velocity)*i.freeMode.momentumBounceRatio;let f;if(ce.minTranslate())i.freeMode.momentumBounce?(c-e.minTranslate()>m&&(c=e.minTranslate()+m),p=e.minTranslate(),h=!0,o.allowMomentumBounce=!0):c=e.minTranslate(),i.loop&&i.centeredSlides&&(f=!0);else if(i.freeMode.sticky){let t;for(let e=0;e-c){t=e;break}c=Math.abs(l[t]-c){e.loopFix()})),0!==e.velocity){if(t=n?Math.abs((-c-e.translate)/e.velocity):Math.abs((c-e.translate)/e.velocity),i.freeMode.sticky){const s=Math.abs((n?-c:c)-e.translate),a=e.slidesSizesGrid[e.activeIndex];t=s{e&&!e.destroyed&&o.allowMomentumBounce&&(s("momentumBounce"),e.setTransition(i.speed),setTimeout((()=>{e.setTranslate(p),r.transitionEnd((()=>{e&&!e.destroyed&&e.transitionEnd()}))}),0))}))):e.velocity?(s("_freeModeNoMomentumRelease"),e.updateProgress(c),e.setTransition(t),e.setTranslate(c),e.transitionStart(!0,e.swipeDirection),e.animating||(e.animating=!0,r.transitionEnd((()=>{e&&!e.destroyed&&e.transitionEnd()})))):e.updateProgress(c),e.updateActiveIndex(),e.updateSlidesClasses()}else{if(i.freeMode.sticky)return void e.slideToClosest();i.freeMode&&s("_freeModeNoMomentumRelease")}(!i.freeMode.momentum||d>=i.longSwipesMs)&&(e.updateProgress(),e.updateActiveIndex(),e.updateSlidesClasses())}}}})},function({swiper:e,extendParams:t}){let s,a,i;t({grid:{rows:1,fill:"column"}}),e.grid={initSlides:t=>{const{slidesPerView:r}=e.params,{rows:n,fill:l}=e.params.grid;a=s/n,i=Math.floor(t/n),s=Math.floor(t/n)===t/n?t:Math.ceil(t/n)*n,"auto"!==r&&"row"===l&&(s=Math.max(s,r*n))},updateSlide:(t,r,n,l)=>{const{slidesPerGroup:o,spaceBetween:d}=e.params,{rows:c,fill:p}=e.params.grid;let u,h,m;if("row"===p&&o>1){const e=Math.floor(t/(o*c)),a=t-c*o*e,i=0===e?o:Math.min(Math.ceil((n-e*c*o)/c),o);m=Math.floor(a/i),h=a-m*i+e*o,u=h+m*s/c,r.css({"-webkit-order":u,order:u})}else"column"===p?(h=Math.floor(t/c),m=t-h*c,(h>i||h===i&&m===c-1)&&(m+=1,m>=c&&(m=0,h+=1))):(m=Math.floor(t/a),h=t-m*a);r.css(l("margin-top"),0!==m?d&&`${d}px`:"")},updateWrapperSize:(t,a,i)=>{const{spaceBetween:r,centeredSlides:n,roundLengths:l}=e.params,{rows:o}=e.params.grid;if(e.virtualSize=(t+r)*s,e.virtualSize=Math.ceil(e.virtualSize/o)-r,e.$wrapperEl.css({[i("width")]:`${e.virtualSize+r}px`}),n){a.splice(0,a.length);const t=[];for(let s=0;s{const{slides:t}=e,s=e.params.fadeEffect;for(let a=0;a{const{transformEl:s}=e.params.fadeEffect;(s?e.slides.find(s):e.slides).transition(t),K({swiper:e,duration:t,transformEl:s,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!e.params.cssMode})})},function({swiper:e,extendParams:t,on:s}){t({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}}),F({effect:"cube",swiper:e,on:s,setTranslate:()=>{const{$el:t,$wrapperEl:s,slides:a,width:i,height:r,rtlTranslate:n,size:l,browser:o}=e,c=e.params.cubeEffect,p=e.isHorizontal(),u=e.virtual&&e.params.virtual.enabled;let h,m=0;c.shadow&&(p?(h=s.find(".swiper-cube-shadow"),0===h.length&&(h=d('
'),s.append(h)),h.css({height:`${i}px`})):(h=t.find(".swiper-cube-shadow"),0===h.length&&(h=d('
'),t.append(h))));for(let e=0;e-1&&(m=90*s+90*o,n&&(m=90*-s-90*o)),t.transform(v),c.slideShadows){let e=p?t.find(".swiper-slide-shadow-left"):t.find(".swiper-slide-shadow-top"),s=p?t.find(".swiper-slide-shadow-right"):t.find(".swiper-slide-shadow-bottom");0===e.length&&(e=d(`
`),t.append(e)),0===s.length&&(s=d(`
`),t.append(s)),e.length&&(e[0].style.opacity=Math.max(-o,0)),s.length&&(s[0].style.opacity=Math.max(o,0))}}if(s.css({"-webkit-transform-origin":`50% 50% -${l/2}px`,"transform-origin":`50% 50% -${l/2}px`}),c.shadow)if(p)h.transform(`translate3d(0px, ${i/2+c.shadowOffset}px, ${-i/2}px) rotateX(90deg) rotateZ(0deg) scale(${c.shadowScale})`);else{const e=Math.abs(m)-90*Math.floor(Math.abs(m)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),s=c.shadowScale,a=c.shadowScale/t,i=c.shadowOffset;h.transform(`scale3d(${s}, 1, ${a}) translate3d(0px, ${r/2+i}px, ${-r/2/a}px) rotateX(-90deg)`)}const f=o.isSafari||o.isWebView?-l/2:0;s.transform(`translate3d(0px,0,${f}px) rotateX(${e.isHorizontal()?0:m}deg) rotateY(${e.isHorizontal()?-m:0}deg)`)},setTransition:t=>{const{$el:s,slides:a}=e;a.transition(t).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(t),e.params.cubeEffect.shadow&&!e.isHorizontal()&&s.find(".swiper-cube-shadow").transition(t)},perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})},function({swiper:e,extendParams:t,on:s}){t({flipEffect:{slideShadows:!0,limitRotation:!0,transformEl:null}}),F({effect:"flip",swiper:e,on:s,setTranslate:()=>{const{slides:t,rtlTranslate:s}=e,a=e.params.flipEffect;for(let i=0;i{const{transformEl:s}=e.params.flipEffect;(s?e.slides.find(s):e.slides).transition(t).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(t),K({swiper:e,duration:t,transformEl:s})},perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!e.params.cssMode})})},function({swiper:e,extendParams:t,on:s}){t({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0,transformEl:null}}),F({effect:"coverflow",swiper:e,on:s,setTranslate:()=>{const{width:t,height:s,slides:a,slidesSizesGrid:i}=e,r=e.params.coverflowEffect,n=e.isHorizontal(),l=e.translate,o=n?t/2-l:s/2-l,d=n?r.rotate:-r.rotate,c=r.depth;for(let e=0,t=a.length;e0?l:0),s.length&&(s[0].style.opacity=-l>0?-l:0)}}},setTransition:t=>{const{transformEl:s}=e.params.coverflowEffect;(s?e.slides.find(s):e.slides).transition(t).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(t)},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})},function({swiper:e,extendParams:t,on:s}){t({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 a=e=>"string"==typeof e?e:`${e}px`;F({effect:"creative",swiper:e,on:s,setTranslate:()=>{const{slides:t,$wrapperEl:s,slidesSizesGrid:i}=e,r=e.params.creativeEffect,{progressMultiplier:n}=r,l=e.params.centeredSlides;if(l){const t=i[0]/2-e.params.slidesOffsetBefore||0;s.transform(`translateX(calc(50% - ${t}px))`)}for(let s=0;s0&&(f=r.prev,m=!0),u.forEach(((e,t)=>{u[t]=`calc(${e}px + (${a(f.translate[t])} * ${Math.abs(d*n)}))`})),h.forEach(((e,t)=>{h[t]=f.rotate[t]*Math.abs(d*n)})),i[0].style.zIndex=-Math.abs(Math.round(o))+t.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=i.children(".swiper-slide-shadow");if(0===e.length&&f.shadow&&(e=Z(r,i)),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=U(r,i);y.transform(x).css({opacity:b}),f.origin&&y.css("transform-origin",f.origin)}},setTransition:t=>{const{transformEl:s}=e.params.creativeEffect;(s?e.slides.find(s):e.slides).transition(t).find(".swiper-slide-shadow").transition(t),K({swiper:e,duration:t,transformEl:s,allSlides:!0})},perspective:()=>e.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!e.params.cssMode})})},function({swiper:e,extendParams:t,on:s}){t({cardsEffect:{slideShadows:!0,transformEl:null}}),F({effect:"cards",swiper:e,on:s,setTranslate:()=>{const{slides:t,activeIndex:s}=e,a=e.params.cardsEffect,{startTranslate:i,isTouched:r}=e.touchEventsData,n=e.translate;for(let l=0;l0&&c<1&&(r||e.params.cssMode)&&n-1&&(r||e.params.cssMode)&&n>i;if(w||b){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`,!e.isHorizontal()){const e=h;h=u,u=e}const x=`\n translate3d(${u}, ${h}, ${m}px)\n rotateZ(${g}deg)\n scale(${c<0?""+(1+(1-f)*c):""+(1-(1-f)*c)})\n `;if(a.slideShadows){let e=o.find(".swiper-slide-shadow");0===e.length&&(e=Z(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))+t.length;U(a,o).transform(x)}},setTransition:t=>{const{transformEl:s}=e.params.cardsEffect;(s?e.slides.find(s):e.slides).transition(t).find(".swiper-slide-shadow").transition(t),K({swiper:e,duration:t,transformEl:s})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!e.params.cssMode})})}];return H.use(J),H})); +//# sourceMappingURL=swiper-bundle.min.js.map \ No newline at end of file diff --git a/public/javascripts/main.js b/public/javascripts/main.js new file mode 100644 index 0000000..3f066d9 --- /dev/null +++ b/public/javascripts/main.js @@ -0,0 +1,232 @@ +/** +* Template Name: Gp - v4.7.0 +* Template URL: https://bootstrapmade.com/gp-free-multipurpose-html-bootstrap-template/ +* Author: BootstrapMade.com +* License: https://bootstrapmade.com/license/ +*/ +(function () { + "use strict"; + + /** + * Easy selector helper function + */ + const select = (el, all = false) => { + el = el.trim() + if (all) { + return [...document.querySelectorAll(el)] + } else { + return document.querySelector(el) + } + } + + /** + * Easy event listener function + */ + const on = (type, el, listener, all = false) => { + let selectEl = select(el, all) + if (selectEl) { + if (all) { + selectEl.forEach(e => e.addEventListener(type, listener)) + } else { + selectEl.addEventListener(type, listener) + } + } + } + + /** + * Easy on scroll event listener + */ + const onscroll = (el, listener) => { + el.addEventListener('scroll', listener) + } + + /** + * Navbar links active state on scroll + */ + let navbarlinks = select('#navbar .scrollto', true) + const navbarlinksActive = () => { + let position = window.scrollY + 200 + navbarlinks.forEach(navbarlink => { + if (!navbarlink.hash) return + let section = select(navbarlink.hash) + if (!section) return + if (position >= section.offsetTop && position <= (section.offsetTop + section.offsetHeight)) { + navbarlink.classList.add('active') + } else { + navbarlink.classList.remove('active') + } + }) + } + window.addEventListener('load', navbarlinksActive) + onscroll(document, navbarlinksActive) + + /** + * Scrolls to an element with header offset + */ + const scrollto = (el) => { + let header = select('#header') + let offset = header.offsetHeight + + let elementPos = select(el).offsetTop + window.scrollTo({ + top: elementPos - offset, + behavior: 'smooth' + }) + } + + /** + * Toggle .header-scrolled class to #header when page is scrolled + */ + let selectHeader = select('#header') + if (selectHeader) { + const headerScrolled = () => { + if (window.scrollY > 100) { + selectHeader.classList.add('header-scrolled') + } else { + selectHeader.classList.remove('header-scrolled') + } + } + window.addEventListener('load', headerScrolled) + onscroll(document, headerScrolled) + } + + /** + * Back to top button + */ + let backtotop = select('.back-to-top') + if (backtotop) { + const toggleBacktotop = () => { + if (window.scrollY > 100) { + backtotop.classList.add('active') + } else { + backtotop.classList.remove('active') + } + } + window.addEventListener('load', toggleBacktotop) + onscroll(document, toggleBacktotop) + } + + /** + * Mobile nav toggle + */ + on('click', '.mobile-nav-toggle', function (e) { + select('#navbar').classList.toggle('navbar-mobile') + this.classList.toggle('bi-list') + this.classList.toggle('bi-x') + }) + + /** + * Mobile nav dropdowns activate + */ + on('click', '.navbar .dropdown > a', function (e) { + if (select('#navbar').classList.contains('navbar-mobile')) { + e.preventDefault() + this.nextElementSibling.classList.toggle('dropdown-active') + } + }, true) + + /** + * Scrool with ofset on links with a class name .scrollto + */ + on('click', '.scrollto', function (e) { + if (select(this.hash)) { + e.preventDefault() + + let navbar = select('#navbar') + if (navbar.classList.contains('navbar-mobile')) { + navbar.classList.remove('navbar-mobile') + let navbarToggle = select('.mobile-nav-toggle') + navbarToggle.classList.toggle('bi-list') + navbarToggle.classList.toggle('bi-x') + } + scrollto(this.hash) + } + }, true) + + /** + * Scroll with ofset on page load with hash links in the url + */ + window.addEventListener('load', () => { + if (window.location.hash) { + if (select(window.location.hash)) { + scrollto(window.location.hash) + } + } + }); + + /** + * Preloader + */ + let preloader = select('#preloader'); + if (preloader) { + window.addEventListener('load', () => { + preloader.remove() + }); + } + + /** + * Clients Slider + */ + new Swiper('.clients-slider', { + speed: 400, + loop: true, + autoplay: { + delay: 5000, + disableOnInteraction: false + }, + slidesPerView: 'auto', + pagination: { + el: '.swiper-pagination', + type: 'bullets', + clickable: true + }, + breakpoints: { + 320: { + slidesPerView: 2, + spaceBetween: 40 + }, + 480: { + slidesPerView: 3, + spaceBetween: 60 + }, + 640: { + slidesPerView: 4, + spaceBetween: 80 + }, + 992: { + slidesPerView: 6, + spaceBetween: 120 + } + } + }); + /** + * Testimonials slider + */ + new Swiper('.testimonials-slider', { + speed: 600, + loop: true, + autoplay: { + delay: 5000, + disableOnInteraction: false + }, + slidesPerView: 'auto', + pagination: { + el: '.swiper-pagination', + type: 'bullets', + clickable: true + } + }); + + /** + * Animation on scroll + */ + window.addEventListener('load', () => { + AOS.init({ + duration: 1000, + easing: "ease-in-out", + once: true, + mirror: false + }); + }); + +})() \ No newline at end of file diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css new file mode 100644 index 0000000..6f9e504 --- /dev/null +++ b/public/stylesheets/style.css @@ -0,0 +1,1327 @@ +/** +* Template Name: Gp - v4.7.0 +* Template URL: https://bootstrapmade.com/gp-free-multipurpose-html-bootstrap-template/ +* Author: BootstrapMade.com +* License: https://bootstrapmade.com/license/ +*/ +/*-------------------------------------------------------------- +# General +--------------------------------------------------------------*/ +body { + display: flex; + flex-direction: column; + min-height: 100vh; + font-family: "Open Sans", sans-serif; + color: #444444; +} + +a { + color: #32b7ff; + text-decoration: none; +} + +a:hover { + color: #62c4f9; + text-decoration: none; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: "Raleway", sans-serif; +} + +html::-webkit-scrollbar-track { + background-color: #000000; +} +html::-webkit-scrollbar { + border-radius: 1rem; + width: 2px; + background-color: #f5f5f5; +} +html::-webkit-scrollbar-thumb { + background-color: #32b7ff; +} + +/*-------------------------------------------------------------- + # Back to top button + --------------------------------------------------------------*/ +.back-to-top { + position: fixed; + visibility: hidden; + opacity: 0; + right: 15px; + bottom: 15px; + z-index: 996; + background: #32b7ff; + width: 40px; + height: 40px; + border-radius: 4px; + transition: all 0.4s; +} + +.back-to-top i { + font-size: 28px; + color: #151515; + line-height: 0; +} + +.back-to-top:hover { + background: #151515; +} + +.back-to-top:hover i { + color: #32b7ff; +} + +.back-to-top.active { + visibility: visible; + opacity: 1; +} + +/*-------------------------------------------------------------- + # Preloader + --------------------------------------------------------------*/ +#preloader { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 9999; + overflow: hidden; + background: #040404; +} + +#preloader:before { + content: ""; + position: fixed; + top: calc(50% - 0px); + left: calc(50% - 30px); + border: 6px solid #32b7ff; + border-top-color: #151515; + border-bottom-color: #151515; + border-radius: 50%; + width: 60px; + height: 60px; + -webkit-animation: animate-preloader 1s linear infinite; + animation: animate-preloader 1s linear infinite; +} + +@-webkit-keyframes animate-preloader { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +@keyframes animate-preloader { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +/*-------------------------------------------------------------- + # Disable aos animation delay on mobile devices + --------------------------------------------------------------*/ +@media screen and (max-width: 768px) { + [data-aos-delay] { + transition-delay: 0 !important; + } +} +/*-------------------------------------------------------------- + # Header + --------------------------------------------------------------*/ +#header { + transition: all 0.5s; + z-index: 997; + padding: 15px 0; +} +#header.inner-page-header { + background-color: #050505; +} + +#header.header-scrolled { + background: rgba(0, 0, 0, 0.8); +} + +#header.header-inner-pages { + background: rgb(0, 0, 0); +} + +#header .logo { + font-size: 1rem; + margin: 0; + padding: 0; + line-height: 1; + font-weight: 700; + letter-spacing: 2px; + text-transform: uppercase; + overflow: visible; +} + +#header .logo a { + color: #fff; +} + +#header .logo a span { + color: #32b7ff; +} + +#header .logo img { + max-height: 40px; +} + +@media (max-width: 992px) { + #header .logo { + font-size: 1.3rem; + } +} +/*-------------------------------------------------------------- + # Get Startet Button + --------------------------------------------------------------*/ +.get-started-btn { + color: #fff; + border-radius: 4px; + padding: 7px 25px 8px 25px; + white-space: nowrap; + transition: 0.3s; + font-size: 14px; + display: inline-block; + border: 2px solid #32b7ff; +} + +.get-started-btn:hover { + background: #23a1e4; + color: #020202; +} + +@media (max-width: 992px) { + .get-started-btn { + padding: 7px 20px 8px 20px; + margin-right: 15px; + } +} +/*-------------------------------------------------------------- + # Navigation Menu + --------------------------------------------------------------*/ +/** + * Desktop Navigation + */ +.navbar { + padding: 0; +} + +.navbar ul { + margin: 0; + padding: 0; + display: flex; + list-style: none; + align-items: center; +} + +.navbar li { + position: relative; +} + +.navbar a, +.navbar a:focus { + display: flex; + align-items: center; + justify-content: space-between; + padding: 10px 0 10px 30px; + font-size: 15px; + font-weight: 600; + color: #fff; + white-space: nowrap; + transition: 0.3s; +} + +.navbar a i, +.navbar a:focus i { + font-size: 12px; + line-height: 0; + margin-left: 5px; +} + +.navbar a:hover, +.navbar .active, +.navbar .active:focus, +.navbar li:hover > a { + color: #32b7ff; +} + +.navbar .dropdown ul { + display: block; + position: absolute; + left: 14px; + top: calc(100% + 30px); + margin: 0; + padding: 10px 0; + z-index: 99; + opacity: 0; + visibility: hidden; + background: #fff; + box-shadow: 0px 0px 30px rgba(127, 137, 161, 0.25); + transition: 0.3s; +} + +.navbar .dropdown ul li { + min-width: 200px; +} + +.navbar .dropdown ul a { + padding: 10px 20px; + font-size: 14px; + text-transform: none; + color: #151515; + font-weight: 400; +} + +.navbar .dropdown ul a i { + font-size: 12px; +} + +.navbar .dropdown ul a:hover, +.navbar .dropdown ul .active:hover, +.navbar .dropdown ul li:hover > a { + background-color: #32b7ff; +} + +.navbar .dropdown:hover > ul { + opacity: 1; + top: 100%; + visibility: visible; +} + +.navbar .dropdown .dropdown ul { + top: 0; + left: calc(100% - 30px); + visibility: hidden; +} + +.navbar .dropdown .dropdown:hover > ul { + opacity: 1; + top: 0; + left: 100%; + visibility: visible; +} + +@media (max-width: 1366px) { + .navbar .dropdown .dropdown ul { + left: -90%; + } + .navbar .dropdown .dropdown:hover > ul { + left: -100%; + } +} +/** + * Mobile Navigation + */ +.mobile-nav-toggle { + color: #fff; + font-size: 28px; + cursor: pointer; + display: none; + line-height: 0; + transition: 0.5s; +} + +@media (max-width: 991px) { + .mobile-nav-toggle { + display: block; + } + .navbar ul { + display: none; + } +} +.navbar-mobile { + position: fixed; + overflow: hidden; + top: 0; + right: 0; + left: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.9); + transition: 0.3s; + z-index: 999; +} + +.navbar-mobile .mobile-nav-toggle { + position: absolute; + top: 15px; + right: 15px; +} + +.navbar-mobile ul { + display: block; + position: absolute; + top: 55px; + right: 15px; + bottom: 15px; + left: 15px; + padding: 10px 0; + background-color: #fff; + overflow-y: auto; + transition: 0.3s; +} + +.navbar-mobile a, +.navbar-mobile a:focus { + padding: 10px 20px; + font-size: 15px; + color: #151515; +} + +.navbar-mobile a:hover, +.navbar-mobile .active, +.navbar-mobile li:hover > a { + color: #151515; + background-color: #32b7ff; +} + +.navbar-mobile .getstarted, +.navbar-mobile .getstarted:focus { + margin: 15px; +} + +.navbar-mobile .dropdown ul { + position: static; + display: none; + margin: 10px 20px; + padding: 10px 0; + z-index: 99; + opacity: 1; + visibility: visible; + background: #fff; + box-shadow: 0px 0px 30px rgba(127, 137, 161, 0.25); +} + +.navbar-mobile .dropdown ul li { + min-width: 200px; +} + +.navbar-mobile .dropdown ul a { + padding: 10px 20px; + color: #151515; +} + +.navbar-mobile .dropdown ul a i { + font-size: 12px; +} + +.navbar-mobile .dropdown ul a:hover, +.navbar-mobile .dropdown ul .active:hover, +.navbar-mobile .dropdown ul li:hover > a { + background-color: #32b7ff; +} + +.navbar-mobile .dropdown > .dropdown-active { + display: block; +} + +/*-------------------------------------------------------------- + # Hero Section + --------------------------------------------------------------*/ +#hero { + width: 100%; + min-height: 100vh; + background: url("/assets/img/background.jpg") top center; + background-size: cover; + box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, 0.3); + position: relative; +} + +#hero:before { + content: ""; + background: rgba(0, 0, 0, 0.6); + position: absolute; + bottom: 0; + top: 0; + left: 0; + right: 0; +} + +#hero .container { + position: relative; + padding-top: 74px; + text-align: center; +} + +#hero h1 { + margin: 0; + font-size: 56px; + font-weight: 700; + line-height: 64px; + color: #fff; + font-family: "Poppins", sans-serif; +} + +#hero h1 span { + color: #32b7ff; +} + +#hero h2 { + color: rgba(255, 255, 255, 0.9); + margin: 10px 0 0 0; + font-size: 1.2rem; + line-height: 1.5rem; + font-weight: 400; +} + +#hero .icon-box { + padding: 30px 20px; + transition: ease-in-out 0.3s; + border: 1px solid rgba(255, 255, 255, 0.3); + height: 100%; + text-align: center; +} + +#hero .icon-box i { + font-size: 32px; + line-height: 1; + color: #32b7ff; +} + +#hero .icon-box h3 { + font-weight: 700; + margin: 10px 0 0 0; + padding: 0; + line-height: 1; + font-size: 20px; + line-height: 26px; +} + +#hero .icon-box h3 a { + color: #fff; + transition: ease-in-out 0.3s; +} + +#hero .icon-box h3 a:hover { + color: #32b7ff; +} + +#hero .icon-box:hover { + border-color: #32b7ff; +} + +@media (min-width: 1024px) { + #hero { + background-attachment: fixed; + } +} +@media (max-width: 768px) { + #hero { + min-height: 80vh; + } + #hero h1 { + font-size: 2.3rem; + line-height: 36px; + } + #hero h2 { + width: 90%; + margin-top: 1rem; + font-size: 1rem; + line-height: 1.5rem; + } +} +/*-------------------------------------------------------------- + # Sections General + --------------------------------------------------------------*/ +section { + padding: 60px 0; + overflow: hidden; +} + +.section-title { + padding-bottom: 40px; +} + +.section-title h2 { + font-size: 14px; + font-weight: 500; + padding: 0; + line-height: 1px; + margin: 0 0 5px 0; + letter-spacing: 2px; + text-transform: uppercase; + color: #aaaaaa; + font-family: "Poppins", sans-serif; +} + +.section-title h2::after { + content: ""; + width: 120px; + height: 1px; + display: inline-block; + background: #84d2fc; + margin: 4px 10px; +} + +.section-title p { + margin: 0; + margin: 0; + font-size: 36px; + font-weight: 700; + text-transform: uppercase; + font-family: "Poppins", sans-serif; + color: #151515; +} + +/* Teamm */ +.team { + background: #f3f9fd; + padding: 0.8rem 0; + text-align: center; +} + +.team .mycol { + display: flex; + align-items: center; + justify-content: center; +} + +.team img { + width: 50%; + filter: grayscale(100); + transition: all 0.4s ease-in-out; + display: inline-block; + padding: 10px 0; +} + +.team img:hover { + filter: none; + transform: scale(1.1); +} + +@media (max-width: 768px) { + .team img { + width: 40%; + } +} +@media (max-width: 575px) { + .team img { + width: 30%; + } +} +/*-------------------------------------------------------------- + # About + --------------------------------------------------------------*/ +.about .content h3 { + font-weight: 700; + font-size: 28px; + font-family: "Poppins", sans-serif; +} + +.about .content ul { + list-style: none; + padding: 0; +} + +.about .content ul li { + padding: 0 0 8px 26px; + position: relative; +} + +.about .content ul i { + position: absolute; + font-size: 20px; + left: 0; + top: -3px; + color: #32b7ff; +} + +.about .content p:last-child { + margin-bottom: 0; +} + +/*Time Line*/ +#timeline { + background-color: #f3f9fd; + position: relative; +} +#timeline h5 { + font-weight: 700; +} +#timeline h5 span { + font-family: "Open Sans", sans-serif; + opacity: 0.5; + font-weight: 700; + font-size: 1.1rem; +} +#timeline .text-right { + text-align: right; +} +#timeline .circle { + padding: 13px 20px; + border-radius: 50%; + background-color: #32b7ff; + color: #fff; + max-height: 50px; + z-index: 2; +} +#timeline .how-it-works.row .col-2 { + align-self: stretch; + position: relative; +} +#timeline .how-it-works.row .col-2::after { + content: ""; + position: absolute; + border-left: 3px solid #32b7ff; + z-index: 1; +} +#timeline .how-it-works.row .col-2.bottom:nth-child(odd)::after { + height: 50%; + left: 50%; + top: 50%; +} +#timeline .how-it-works.row .col-2.bottom:nth-child(even)::after { + height: 50%; + left: calc(50% - 3px); + top: 50%; +} +#timeline .how-it-works.row .col-2.full:nth-child(odd)::after { + position: absolute; + height: 100%; + left: 50%; +} +#timeline .how-it-works.row .col-2.full:nth-child(even)::after { + position: absolute; + height: 100%; + left: calc(50% - 3px); +} +#timeline .how-it-works.row .col-2.top:nth-child(odd)::after { + height: 50%; + left: 50%; + top: 0; +} +#timeline .how-it-works.row .col-2.top:nth-child(even)::after { + height: 50%; + left: calc(50% - 3px); + top: 0; +} +#timeline .timeline div { + padding: 0; + height: 40px; +} +#timeline .timeline hr { + height: 2px; + background-color: #32b7ff; + opacity: 1; + margin: 0; + top: 17px; + position: relative; +} +#timeline .timeline .col-2 { + display: flex; + overflow: hidden; +} +#timeline .timeline .corner { + border: 3px solid #32b7ff; + width: 100%; + position: relative; + border-radius: 15px; +} +#timeline .timeline .top-right { + left: 50%; + top: -50%; +} +#timeline .timeline .left-bottom { + left: -50%; + top: calc(50% - 3px); +} +#timeline .timeline .top-left { + left: -50%; + top: -50%; +} +#timeline .timeline .right-bottom { + left: 50%; + top: calc(50% - 3px); +} + +#recruiters { + background-color: #f3f9fd; +} + +.clients .clients-wrap { + border-top: 1px solid #eceff0; + border-left: 1px solid #eceff0; +} + +.clients .client-logo { + display: flex; + justify-content: center; + align-items: center; + border-right: 1px solid #eceff0; + border-bottom: 1px solid #eceff0; + overflow: hidden; + background: #fff; + height: 120px; + padding: 40px; +} + +.clients .client-logo img { + max-width: 50%; +} + +.clients .client-logo .big { + max-width: 70%; +} + +.clients .client-logo .small { + max-width: 30%; +} + +.clients .client-logo:hover img { + filter: none; + transform: scale(1.1); +} + +.clients img { + transition: all 0.4s ease-in-out; +} + +@media (max-width: 991px) { + .clients .client-logo img { + max-width: 100%; + } + .clients .client-logo .big { + max-width: 120%; + } + .clients .client-logo .small { + max-width: 80%; + } +} +/*-------------------------------------------------------------- + # Features + --------------------------------------------------------------*/ +.features .icon-box { + padding-left: 15px; +} + +.features .icon-box h4 { + font-size: 20px; + font-weight: 700; + margin: 5px 0 10px 60px; +} + +.features .icon-box i { + font-size: 48px; + float: left; + color: #32b7ff; +} + +.features .icon-box p { + font-size: 15px; + color: #848484; + margin-left: 60px; +} + +.features .image { + background-position: center center; + background-repeat: no-repeat; + background-size: cover; + min-height: 400px; +} + +/*-------------------------------------------------------------- + # Cta + --------------------------------------------------------------*/ +.cta { + background: linear-gradient(rgba(2, 2, 2, 0.5), rgba(0, 0, 0, 0.5)), url("/assets/img/background.jpg") fixed center center; + background-size: cover; + box-shadow: inset 0 0 0 2000px rgba(0, 0, 0, 0.3); + padding: 60px 0; +} + +.cta h3 { + color: #fff; + font-size: 28px; + font-weight: 700; +} + +.cta p { + color: #fff; +} + +.cta .cta-btn { + font-family: "Raleway", sans-serif; + font-weight: 600; + font-size: 16px; + letter-spacing: 1px; + display: inline-block; + padding: 8px 28px; + border-radius: 4px; + transition: 0.5s; + margin-top: 10px; + border: 2px solid #fff; + color: #fff; +} + +.cta .cta-btn:hover { + background: #32b7ff; + border-color: #32b7ff; + color: #151515; +} + +/*-------------------------------------------------------------- + # Contact + --------------------------------------------------------------*/ +.contact .info { + width: 100%; + background: #fff; +} + +.contact .info i { + font-size: 20px; + background: #32b7ff; + color: #151515; + float: left; + width: 44px; + height: 44px; + display: flex; + justify-content: center; + align-items: center; + border-radius: 4px; + transition: all 0.3s ease-in-out; +} + +.contact .info h4 { + padding: 0 0 0 60px; + font-size: 22px; + font-weight: 600; + margin-bottom: 5px; + color: #151515; +} + +.contact .info p { + padding: 0 0 0 60px; + margin-bottom: 0; + font-size: 14px; + color: #484848; +} + +.contact .info .email, +.contact .info .phone { + margin-top: 40px; +} + +.contact .php-email-form { + width: 100%; + background: #fff; +} + +.contact .php-email-form .form-group { + padding-bottom: 8px; +} + +.contact .php-email-form .error-message { + display: none; + color: #fff; + background: #ed3c0d; + text-align: left; + padding: 15px; + font-weight: 600; +} + +.contact .php-email-form .error-message br + br { + margin-top: 25px; +} + +.contact .php-email-form .sent-message { + display: none; + color: #fff; + background: #18d26e; + text-align: center; + padding: 15px; + font-weight: 600; +} + +.contact .php-email-form .loading { + display: none; + background: #fff; + text-align: center; + padding: 15px; +} + +.contact .php-email-form .loading:before { + content: ""; + display: inline-block; + border-radius: 50%; + width: 24px; + height: 24px; + margin: 0 10px -6px 0; + border: 3px solid #18d26e; + border-top-color: #eee; + -webkit-animation: animate-loading 1s linear infinite; + animation: animate-loading 1s linear infinite; +} + +.contact .php-email-form input, +.contact .php-email-form textarea { + border-radius: 0; + box-shadow: none; + font-size: 14px; + border-radius: 4px; +} + +.contact .php-email-form input:focus, +.contact .php-email-form textarea:focus { + border-color: #32b7ff; +} + +.contact .php-email-form input { + height: 2.7rem; +} + +.contact .php-email-form textarea { + padding: 10px 12px; +} + +.contact .php-email-form button[type=submit] { + background: #32b7ff; + border: 0; + padding: 10px 24px; + color: #151515; + transition: 0.4s; + border-radius: 4px; +} + +.contact .php-email-form button[type=submit]:hover { + background: #49afe6; +} + +@-webkit-keyframes animate-loading { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +@keyframes animate-loading { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +.inner_main_page { + margin-top: 74px; +} + +/*-------------------------------------------------------------- + # Breadcrumbs + --------------------------------------------------------------*/ +.breadcrumbs { + padding: 15px 0; + background: whitesmoke; + min-height: 40px; +} + +.breadcrumbs h2 { + font-size: 28px; + font-weight: 400; +} + +.breadcrumbs ol { + display: flex; + flex-wrap: wrap; + list-style: none; + padding: 0; + margin: 0; +} + +.breadcrumbs ol li + li { + padding-left: 10px; +} + +.breadcrumbs ol li + li::before { + display: inline-block; + padding-right: 10px; + color: #2f2f2f; + content: "/"; +} + +@media (max-width: 992px) { + .breadcrumbs .d-flex { + display: block !important; + } + .breadcrumbs ol { + display: block; + } + .breadcrumbs ol li { + display: inline-block; + } +} +/*-------------------------------------------------------------- + # Footer + --------------------------------------------------------------*/ +#footer { + margin-top: auto; + background: black; + padding: 0 0 30px 0; + color: #fff; + font-size: 14px; +} + +#footer .copyright { + text-align: center; + padding-top: 30px; +} +#footer .copyright span { + color: #32b7ff; +} + +#footer .credits { + padding-top: 10px; + text-align: center; + font-size: 13px; + color: #fff; +} + +#updates { + padding: 60px 0 30px 0; + position: relative; +} +#updates .card { + border-radius: 3px; + padding: 1rem; + border: 0; + box-shadow: 0px 2px 15px rgba(0, 0, 0, 0.1); + margin-bottom: 30px; +} +#updates .card-icon { + text-align: center; + margin-top: -32px; +} +#updates .card-icon i { + border: 1px solid #fff; + font-size: 32px; + color: #fff; + width: 64px; + height: 64px; + text-align: center; + background-color: #32b7ff; + border-radius: 4px; + text-align: center; + border: 4px solid #fff; + transition: 0.3s; + display: inline-block; +} +#updates .card-body { + padding-top: 12px; +} +#updates .card-title { + font-weight: 700; + text-align: center; +} +#updates .card-title a { + color: #15222b; +} +#updates .card-title a:hover { + color: #32b7ff; +} +#updates .card-text { + color: #5e5e5e; +} +#updates .content h3 { + font-weight: 700; + font-size: 1.5rem; + color: #263d4d; +} +#updates .content ul { + margin: 1.5rem 0rem; + margin-bottom: 0; + list-style: none; + padding: 0; +} +#updates .content ul li { + padding: 0.3rem; + padding-left: 28px; + position: relative; +} +#updates .content ul li:last-child { + padding-bottom: 0; +} +#updates .content ul i { + font-size: 24px; + color: #32b7ff; + position: absolute; + left: 0; +} +#updates .content p:last-child { + margin-bottom: 0; +} + +.inner_page_section { + padding: 60px 0 30px 0; + position: relative; +} +.inner_page_section .card { + border-radius: 3px; + padding: 1rem; + border: 0; + box-shadow: 0px 2px 15px rgba(0, 0, 0, 0.1); + margin-bottom: 30px; +} +.inner_page_section .card-icon { + text-align: center; + margin-top: -32px; +} +.inner_page_section .card-icon i { + border: 1px solid #fff; + font-size: 32px; + color: #fff; + width: 64px; + height: 64px; + text-align: center; + background-color: #32b7ff; + border-radius: 4px; + text-align: center; + border: 4px solid #fff; + transition: 0.3s; + display: inline-block; +} +.inner_page_section .card-body { + padding-top: 12px; +} +.inner_page_section .card-title { + font-weight: 700; + text-align: center; +} +.inner_page_section .card-title a { + color: #15222b; +} +.inner_page_section .card-title a:hover { + color: #32b7ff; +} +.inner_page_section .card-text { + color: #5e5e5e; +} +.inner_page_section .content h3 { + font-weight: 700; + font-size: 1.5rem; + color: #263d4d; +} +.inner_page_section .content ul { + margin: 1.5rem 0rem; + margin-bottom: 0; + list-style: none; + padding: 0; +} +.inner_page_section .content ul li { + padding: 0.3rem; + padding-left: 28px; + position: relative; +} +.inner_page_section .content ul li:last-child { + padding-bottom: 0; +} +.inner_page_section .content ul i { + font-size: 24px; + color: #32b7ff; + position: absolute; + left: 0; +} +.inner_page_section .content p:last-child { + margin-bottom: 0; +} +.inner_page_section .pdf { + background-color: #15222b; + height: 100vh; +} + +/*-------------------------------------------------------------- +# Frequently Asked Questions +--------------------------------------------------------------*/ +#faq { + background-color: #f3f9fd; +} + +.faq .faq-list { + padding: 0 100px; +} + +.faq .faq-list ul { + padding: 0; + list-style: none; +} + +.faq .faq-list li + li { + margin-top: 15px; +} + +.faq .faq-list li { + padding: 20px; + background: #fff; + border-radius: 4px; + position: relative; + box-shadow: 0px 0px 30px rgba(127, 137, 161, 0.15); +} + +.faq .faq-list a { + display: block; + position: relative; + font-family: "Poppins", sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 500; + padding: 0 30px; + outline: none; + cursor: pointer; +} + +.faq .faq-list .icon-help { + font-size: 24px; + position: absolute; + right: 0; + left: 20px; + color: #87c1ea; +} + +.faq .faq-list .icon-show, +.faq .faq-list .icon-close { + font-size: 24px; + position: absolute; + right: 0; + top: 0; +} + +.faq .faq-list p { + margin-bottom: 0; + padding: 10px 0 0 0; +} + +.faq .faq-list .icon-show { + display: none; +} + +.faq .faq-list a.collapsed { + color: #343a40; +} + +.faq .faq-list a.collapsed:hover { + color: #2487ce; +} + +.faq .faq-list a.collapsed .icon-show { + display: inline-block; +} + +.faq .faq-list a.collapsed .icon-close { + display: none; +} + +@media (max-width: 1200px) { + .faq .faq-list { + padding: 0; + } +} \ No newline at end of file diff --git a/routes/index.js b/routes/index.js new file mode 100644 index 0000000..0d51aa1 --- /dev/null +++ b/routes/index.js @@ -0,0 +1,68 @@ +var express = require('express'); +var router = express.Router(); + +var title = 'IEEE Job Fair 2022' + +/* GET home page. */ +router.get('/', function (req, res, next) { + res.render('index', { + title: `${title}`, + home_page: true + }); +}); + +router.get('/updates', function (req, res, next) { + res.render('updates', + { + title: `${title}`, + page_head: 'News & Updates', + page_nav_name: 'Updates' + }); +}); + +router.get('/rank-list', function (req, res, next) { + res.render('pages/ranklist', + { + title: `Rank List | ${title}`, + page_head: 'Rank List of Online Test', + page_nav_name: 'rank-list' + }); +}); + +router.get('/instructions/choosing-recruiters', function (req, res, next) { + res.render('pages/instructions', + { + title: `Instructions | ${title}`, + page_head: 'Instruction for choosing recruiters', + page_nav_name: 'instructions' + }); +}); + +// router.get('/mocktest', function (req, res, next) { +// res.render('pages/mocktest', +// { +// title: 'Mock Test | ${title}`, +// page_head: 'Mock Test', +// page_nav_name: 'mock test' +// }); +// }); + +// router.get('/final-test', function (req, res, next) { +// res.render('pages/finaltest', +// { +// title: 'Online Test | ${title}`, +// page_head: 'Online Test', +// page_nav_name: 'online-test' +// }); +// }); + +// router.get('/online-test', function (req, res, next) { +// res.render('pages/finaltest', +// { +// title: 'Online Test | ${title}`, +// page_head: 'Online Test', +// page_nav_name: 'online-test' +// }); +// }); + +module.exports = router; diff --git a/routes/users.js b/routes/users.js new file mode 100644 index 0000000..623e430 --- /dev/null +++ b/routes/users.js @@ -0,0 +1,9 @@ +var express = require('express'); +var router = express.Router(); + +/* GET users listing. */ +router.get('/', function(req, res, next) { + res.send('respond with a resource'); +}); + +module.exports = router; diff --git a/scss/_inner_pages.scss b/scss/_inner_pages.scss new file mode 100644 index 0000000..6d4d004 --- /dev/null +++ b/scss/_inner_pages.scss @@ -0,0 +1,109 @@ +.inner_page_section { + // background: url("/assets/img/about-boxes-bg.jpg") center top no-repeat fixed; + // background-size: cover; + padding: 60px 0 30px 0; + position: relative; + + // &::before { + // content: ""; + // position: absolute; + // left: 0; + // right: 0; + // top: 0; + // bottom: 0; + // background: rgba(255, 255, 255, 0.90); + // z-index: 9; + // } + + .card { + // width: 100%; + border-radius: 3px; + padding: 1rem; + border: 0; + box-shadow: 0px 2px 15px rgba(0, 0, 0, 0.1); + margin-bottom: 30px; + } + + .card-icon { + text-align: center; + margin-top: -32px; + + i { + border: 1px solid #fff; + font-size: 32px; + color: #fff; + width: 64px; + height: 64px; + // padding-top: 5px; + text-align: center; + background-color: $color1; + border-radius: 4px; + text-align: center; + border: 4px solid #fff; + transition: 0.3s; + display: inline-block; + } + } + + .card-body { + padding-top: 12px; + } + + .card-title { + font-weight: 700; + text-align: center; + + a { + color: #15222b; + + &:hover { + color: $color1; + } + } + } + + .card-text { + color: #5e5e5e; + } + + + .content h3 { + font-weight: 700; + font-size: 1.5rem; + color: #263d4d; + } + + .content ul { + margin: 1.5rem 0rem; + margin-bottom: 0; + list-style: none; + padding: 0; + } + + .content ul li { + padding: 0.3rem; + padding-left: 28px; + position: relative; + + &:last-child{ + padding-bottom: 0; + } + } + + .content ul i { + font-size: 24px; + color: $color1; + position: absolute; + left: 0; + // top: -2px; + } + + .content p:last-child { + margin-bottom: 0; + } + + .pdf{ + background-color: #15222b; + height: 100vh; + } +} \ No newline at end of file diff --git a/scss/_register.scss b/scss/_register.scss new file mode 100644 index 0000000..dbc7c0a --- /dev/null +++ b/scss/_register.scss @@ -0,0 +1,33 @@ +$color_1: #151515; +$color_2: #484848; +$color_3: #fff; +$border-color_1: $color1; +$border-top-color_1: #eee; + +#register { + .registration-form { + // background-color: #484848; + + input, + textarea { + border-radius: 0; + box-shadow: none; + font-size: 14px; + border-radius: 4px; + height: 2.7rem; + } + + button { + background: $color2; + border: 0; + padding: 10px 24px; + color: #151515; + transition: 0.4s; + border-radius: 4px; + + &:hover{ + background: $color1; + } + } + } +} diff --git a/scss/_theme.scss b/scss/_theme.scss new file mode 100644 index 0000000..14c8e98 --- /dev/null +++ b/scss/_theme.scss @@ -0,0 +1,30 @@ +$color1:#D9DADA; +$color2:#FBA367; +$color3:#41DD8F; +$color4:#319ED9; +$color5:#050505; +$color6:#9AD1C7; +$color7:#41637B; +$color8:#F3C9AB; + + + +$color_1: #41637B; +$color_2: #319ED9; +$color_3: #fff; +$color_11: #444444; +$color_20: #565396; + +$color_17: #2a2af0; + +$background-color_1: #fff; +$background-color_2: #eeeef5; +$background-color_3: #319ED9; +$border-color_1: #319ED9; +$border-color_2: #fff; +$border-color_3: #5a5af3; +$border-top-color_1: #eee; + +$font-family_1: "Poppins", sans-serif; +$font-family_2: "Raleway", sans-serif; +$font-family_3: "Open Sans", sans-serif; \ No newline at end of file diff --git a/scss/_updates.scss b/scss/_updates.scss new file mode 100644 index 0000000..0e82a01 --- /dev/null +++ b/scss/_updates.scss @@ -0,0 +1,104 @@ +#updates { + // background: url("/assets/img/about-boxes-bg.jpg") center top no-repeat fixed; + // background-size: cover; + padding: 60px 0 30px 0; + position: relative; + + // &::before { + // content: ""; + // position: absolute; + // left: 0; + // right: 0; + // top: 0; + // bottom: 0; + // background: rgba(255, 255, 255, 0.90); + // z-index: 9; + // } + + .card { + // width: 100%; + border-radius: 3px; + padding: 1rem; + border: 0; + box-shadow: 0px 2px 15px rgba(0, 0, 0, 0.1); + margin-bottom: 30px; + } + + .card-icon { + text-align: center; + margin-top: -32px; + + i { + border: 1px solid #fff; + font-size: 32px; + color: #fff; + width: 64px; + height: 64px; + // padding-top: 5px; + text-align: center; + background-color: $color1; + border-radius: 4px; + text-align: center; + border: 4px solid #fff; + transition: 0.3s; + display: inline-block; + } + } + + .card-body { + padding-top: 12px; + } + + .card-title { + font-weight: 700; + text-align: center; + + a { + color: #15222b; + + &:hover { + color: $color1; + } + } + } + + .card-text { + color: #5e5e5e; + } + + + .content h3 { + font-weight: 700; + font-size: 1.5rem; + color: #263d4d; + } + + .content ul { + margin: 1.5rem 0rem; + margin-bottom: 0; + list-style: none; + padding: 0; + } + + .content ul li { + padding: 0.3rem; + padding-left: 28px; + position: relative; + + &:last-child{ + padding-bottom: 0; + } + } + + .content ul i { + font-size: 24px; + color: $color1; + position: absolute; + left: 0; + // top: -2px; + } + + .content p:last-child { + margin-bottom: 0; + } +} \ No newline at end of file diff --git a/scss/style.scss b/scss/style.scss new file mode 100644 index 0000000..a5c9deb --- /dev/null +++ b/scss/style.scss @@ -0,0 +1,1291 @@ +/** +* Template Name: Gp - v4.7.0 +* Template URL: https://bootstrapmade.com/gp-free-multipurpose-html-bootstrap-template/ +* Author: BootstrapMade.com +* License: https://bootstrapmade.com/license/ +*/ + +$color1: #ffc451; +$color2: #ffd584; +$color3: #ffbb38; +$color4: #ffde9e; +$color5: #ffcd6b; + +$color1: #32b7ff; +$color2: #62c4f9; +$color3: #23a1e4; +$color4: #84d2fc; +$color5: #49afe6; + +$bg_color1: #f3f9fd; + +// $color1:#41DD8F; +// $color2:#62c4f9; +// $color3:#23a1e4; +// $color4:#84d2fc; +// $color5:#49afe6; + +/*-------------------------------------------------------------- +# General +--------------------------------------------------------------*/ +body { + display: flex; + flex-direction: column; + min-height: 100vh; + font-family: "Open Sans", sans-serif; + color: #444444; +} + +a { + color: $color1; + text-decoration: none; +} + +a:hover { + color: $color2; + text-decoration: none; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: "Raleway", sans-serif; +} + +html { + &::-webkit-scrollbar-track { + background-color: #000000; + } + + &::-webkit-scrollbar { + border-radius: 1rem; + width: 2px; + background-color: #f5f5f5; + } + + &::-webkit-scrollbar-thumb { + background-color: $color1; + } +} + +/*-------------------------------------------------------------- + # Back to top button + --------------------------------------------------------------*/ +.back-to-top { + position: fixed; + visibility: hidden; + opacity: 0; + right: 15px; + bottom: 15px; + z-index: 996; + background: $color1; + width: 40px; + height: 40px; + border-radius: 4px; + transition: all 0.4s; +} + +.back-to-top i { + font-size: 28px; + color: #151515; + line-height: 0; +} + +.back-to-top:hover { + background: #151515; +} + +.back-to-top:hover i { + color: $color1; +} + +.back-to-top.active { + visibility: visible; + opacity: 1; +} + +/*-------------------------------------------------------------- + # Preloader + --------------------------------------------------------------*/ +#preloader { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 9999; + overflow: hidden; + background: #040404; +} + +#preloader:before { + content: ""; + position: fixed; + top: calc(50% - 0px); + left: calc(50% - 30px); + border: 6px solid $color1; + border-top-color: #151515; + border-bottom-color: #151515; + border-radius: 50%; + width: 60px; + height: 60px; + -webkit-animation: animate-preloader 1s linear infinite; + animation: animate-preloader 1s linear infinite; +} + +@-webkit-keyframes animate-preloader { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} + +@keyframes animate-preloader { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} + +/*-------------------------------------------------------------- + # Disable aos animation delay on mobile devices + --------------------------------------------------------------*/ +@media screen and (max-width: 768px) { + [data-aos-delay] { + transition-delay: 0 !important; + } +} + +/*-------------------------------------------------------------- + # Header + --------------------------------------------------------------*/ +#header { + transition: all 0.5s; + z-index: 997; + padding: 15px 0; + + &.inner-page-header { + background-color: #050505; + } +} + +#header.header-scrolled { + background: rgba(0, 0, 0, 0.8); +} + +#header.header-inner-pages { + background: rgba(0, 0, 0, 1); +} + +#header .logo { + font-size: 1rem; + margin: 0; + padding: 0; + line-height: 1; + font-weight: 700; + letter-spacing: 2px; + text-transform: uppercase; + overflow: visible; +} + +#header .logo a { + color: #fff; +} + +#header .logo a span { + color: $color1; +} + +#header .logo img { + max-height: 40px; +} + +@media (max-width: 992px) { + #header { + .logo { + font-size: 1.3rem; + } + } +} + +/*-------------------------------------------------------------- + # Get Startet Button + --------------------------------------------------------------*/ +.get-started-btn { + color: #fff; + border-radius: 4px; + padding: 7px 25px 8px 25px; + white-space: nowrap; + transition: 0.3s; + font-size: 14px; + display: inline-block; + border: 2px solid $color1; +} + +.get-started-btn:hover { + background: $color3; + color: #020202; +} + +@media (max-width: 992px) { + .get-started-btn { + padding: 7px 20px 8px 20px; + margin-right: 15px; + } +} + +/*-------------------------------------------------------------- + # Navigation Menu + --------------------------------------------------------------*/ +/** + * Desktop Navigation + */ +.navbar { + padding: 0; +} + +.navbar ul { + margin: 0; + padding: 0; + display: flex; + list-style: none; + align-items: center; +} + +.navbar li { + position: relative; +} + +.navbar a, +.navbar a:focus { + display: flex; + align-items: center; + justify-content: space-between; + padding: 10px 0 10px 30px; + font-size: 15px; + font-weight: 600; + color: #fff; + white-space: nowrap; + transition: 0.3s; +} + +.navbar a i, +.navbar a:focus i { + font-size: 12px; + line-height: 0; + margin-left: 5px; +} + +.navbar a:hover, +.navbar .active, +.navbar .active:focus, +.navbar li:hover>a { + color: $color1; +} + +.navbar .dropdown ul { + display: block; + position: absolute; + left: 14px; + top: calc(100% + 30px); + margin: 0; + padding: 10px 0; + z-index: 99; + opacity: 0; + visibility: hidden; + background: #fff; + box-shadow: 0px 0px 30px rgba(127, 137, 161, 0.25); + transition: 0.3s; +} + +.navbar .dropdown ul li { + min-width: 200px; +} + +.navbar .dropdown ul a { + padding: 10px 20px; + font-size: 14px; + text-transform: none; + color: #151515; + font-weight: 400; +} + +.navbar .dropdown ul a i { + font-size: 12px; +} + +.navbar .dropdown ul a:hover, +.navbar .dropdown ul .active:hover, +.navbar .dropdown ul li:hover>a { + background-color: $color1; +} + +.navbar .dropdown:hover>ul { + opacity: 1; + top: 100%; + visibility: visible; +} + +.navbar .dropdown .dropdown ul { + top: 0; + left: calc(100% - 30px); + visibility: hidden; +} + +.navbar .dropdown .dropdown:hover>ul { + opacity: 1; + top: 0; + left: 100%; + visibility: visible; +} + +@media (max-width: 1366px) { + .navbar .dropdown .dropdown ul { + left: -90%; + } + + .navbar .dropdown .dropdown:hover>ul { + left: -100%; + } +} + +/** + * Mobile Navigation + */ +.mobile-nav-toggle { + color: #fff; + font-size: 28px; + cursor: pointer; + display: none; + line-height: 0; + transition: 0.5s; +} + +@media (max-width: 991px) { + .mobile-nav-toggle { + display: block; + } + + .navbar ul { + display: none; + } +} + +.navbar-mobile { + position: fixed; + overflow: hidden; + top: 0; + right: 0; + left: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.9); + transition: 0.3s; + z-index: 999; +} + +.navbar-mobile .mobile-nav-toggle { + position: absolute; + top: 15px; + right: 15px; +} + +.navbar-mobile ul { + display: block; + position: absolute; + top: 55px; + right: 15px; + bottom: 15px; + left: 15px; + padding: 10px 0; + background-color: #fff; + overflow-y: auto; + transition: 0.3s; +} + +.navbar-mobile a, +.navbar-mobile a:focus { + padding: 10px 20px; + font-size: 15px; + color: #151515; +} + +.navbar-mobile a:hover, +.navbar-mobile .active, +.navbar-mobile li:hover>a { + color: #151515; + background-color: $color1; +} + +.navbar-mobile .getstarted, +.navbar-mobile .getstarted:focus { + margin: 15px; +} + +.navbar-mobile .dropdown ul { + position: static; + display: none; + margin: 10px 20px; + padding: 10px 0; + z-index: 99; + opacity: 1; + visibility: visible; + background: #fff; + box-shadow: 0px 0px 30px rgba(127, 137, 161, 0.25); +} + +.navbar-mobile .dropdown ul li { + min-width: 200px; +} + +.navbar-mobile .dropdown ul a { + padding: 10px 20px; + color: #151515; +} + +.navbar-mobile .dropdown ul a i { + font-size: 12px; +} + +.navbar-mobile .dropdown ul a:hover, +.navbar-mobile .dropdown ul .active:hover, +.navbar-mobile .dropdown ul li:hover>a { + background-color: $color1; +} + +.navbar-mobile .dropdown>.dropdown-active { + display: block; +} + +/*-------------------------------------------------------------- + # Hero Section + --------------------------------------------------------------*/ +#hero { + width: 100%; + min-height: 100vh; + background: url("/assets/img/background.jpg") top center; + background-size: cover; + box-shadow: inset 0 0 0 2000px rgba($color: #000000, $alpha: 0.3); + position: relative; +} + +#hero:before { + content: ""; + background: rgba(0, 0, 0, 0.6); + position: absolute; + bottom: 0; + top: 0; + left: 0; + right: 0; +} + +#hero .container { + position: relative; + padding-top: 74px; + text-align: center; +} + +#hero h1 { + margin: 0; + font-size: 56px; + font-weight: 700; + line-height: 64px; + color: #fff; + font-family: "Poppins", sans-serif; +} + +#hero h1 span { + color: $color1; +} + +#hero h2 { + color: rgba(255, 255, 255, 0.9); + margin: 10px 0 0 0; + font-size: 1.2rem; + line-height: 1.5rem; + font-weight: 400; +} + +#hero .icon-box { + padding: 30px 20px; + transition: ease-in-out 0.3s; + border: 1px solid rgba(255, 255, 255, 0.3); + height: 100%; + text-align: center; +} + +#hero .icon-box i { + font-size: 32px; + line-height: 1; + color: $color1; +} + +#hero .icon-box h3 { + font-weight: 700; + margin: 10px 0 0 0; + padding: 0; + line-height: 1; + font-size: 20px; + line-height: 26px; +} + +#hero .icon-box h3 a { + color: #fff; + transition: ease-in-out 0.3s; +} + +#hero .icon-box h3 a:hover { + color: $color1; +} + +#hero .icon-box:hover { + border-color: $color1; +} + +@media (min-width: 1024px) { + #hero { + background-attachment: fixed; + } +} + +@media (max-width: 768px) { + #hero { + min-height: 80vh; + } + + #hero h1 { + font-size: 2.3rem; + line-height: 36px; + } + + #hero h2 { + width: 90%; + margin-top: 1rem; + font-size: 1rem; + line-height: 1.5rem; + } +} + +/*-------------------------------------------------------------- + # Sections General + --------------------------------------------------------------*/ +section { + padding: 60px 0; + overflow: hidden; +} + +.section-title { + padding-bottom: 40px; +} + +.section-title h2 { + font-size: 14px; + font-weight: 500; + padding: 0; + line-height: 1px; + margin: 0 0 5px 0; + letter-spacing: 2px; + text-transform: uppercase; + color: #aaaaaa; + font-family: "Poppins", sans-serif; +} + +.section-title h2::after { + content: ""; + width: 120px; + height: 1px; + display: inline-block; + background: $color4; + margin: 4px 10px; +} + +.section-title p { + margin: 0; + margin: 0; + font-size: 36px; + font-weight: 700; + text-transform: uppercase; + font-family: "Poppins", sans-serif; + color: #151515; +} + +/* Teamm */ +.team { + background: $bg_color1; + padding: 0.8rem 0; + text-align: center; +} + +.team .mycol { + display: flex; + align-items: center; + justify-content: center; +} + +.team img { + width: 50%; + filter: grayscale(100); + transition: all 0.4s ease-in-out; + display: inline-block; + padding: 10px 0; +} + +.team img:hover { + filter: none; + transform: scale(1.1); +} + +@media (max-width: 768px) { + .team img { + width: 40%; + } +} + +@media (max-width: 575px) { + .team img { + width: 30%; + } +} + +/*-------------------------------------------------------------- + # About + --------------------------------------------------------------*/ + +.about .content h3 { + font-weight: 700; + font-size: 28px; + font-family: "Poppins", sans-serif; +} + +.about .content ul { + list-style: none; + padding: 0; +} + +.about .content ul li { + padding: 0 0 8px 26px; + position: relative; +} + +.about .content ul i { + position: absolute; + font-size: 20px; + left: 0; + top: -3px; + color: $color1; +} + +.about .content p:last-child { + margin-bottom: 0; +} + +/*Time Line*/ + +#timeline { + background-color: $bg_color1; + position: relative; + + h5 { + // font-family: "Open Sans", sans-serif; + font-weight: 700; + + span { + font-family: "Open Sans", sans-serif; + ; + opacity: 0.5; + font-weight: 700; + font-size: 1.1rem; + } + } + + .text-right { + text-align: right; + } + + .circle { + padding: 13px 20px; + border-radius: 50%; + background-color: $color1; + color: #fff; + max-height: 50px; + z-index: 2; + } + + .how-it-works.row .col-2 { + align-self: stretch; + position: relative; + } + + .how-it-works.row .col-2::after { + content: ""; + position: absolute; + border-left: 3px solid $color1; + z-index: 1; + } + + .how-it-works.row .col-2.bottom { + + &:nth-child(odd) { + &::after { + height: 50%; + left: 50%; + top: 50%; + } + } + + &:nth-child(even) { + &::after { + height: 50%; + left: calc(50% - 3px); + top: 50%; + } + } + + } + + .how-it-works.row .col-2.full { + + &:nth-child(odd) { + &::after { + position: absolute; + height: 100%; + left: calc(50%); + } + } + + &:nth-child(even) { + &::after { + position: absolute; + height: 100%; + left: calc(50% - 3px); + } + } + } + + .how-it-works.row .col-2.top { + &:nth-child(odd) { + &::after { + height: 50%; + left: 50%; + top: 0; + } + } + + &:nth-child(even) { + &::after { + height: 50%; + left: calc(50% - 3px); + top: 0; + } + } + } + + .timeline div { + padding: 0; + height: 40px; + } + + .timeline hr { + // border-top: 3px solid $color1; + height: 2px; + background-color: $color1; + opacity: 1; + margin: 0; + top: 17px; + position: relative; + } + + .timeline .col-2 { + display: flex; + overflow: hidden; + } + + .timeline .corner { + border: 3px solid $color1; + width: 100%; + position: relative; + border-radius: 15px; + } + + .timeline .top-right { + left: 50%; + top: -50%; + } + + .timeline .left-bottom { + left: -50%; + top: calc(50% - 3px); + } + + .timeline .top-left { + left: -50%; + top: -50%; + } + + .timeline .right-bottom { + left: 50%; + top: calc(50% - 3px); + } +} + +// -------------------------- + +#recruiters { + background-color: $bg_color1; +} + +.clients .clients-wrap { + border-top: 1px solid #eceff0; + border-left: 1px solid #eceff0; +} + +.clients .client-logo { + display: flex; + justify-content: center; + align-items: center; + border-right: 1px solid #eceff0; + border-bottom: 1px solid #eceff0; + overflow: hidden; + background: #fff; + height: 120px; + padding: 40px; +} + +.clients .client-logo img { + max-width: 50%; + // filter: grayscale(100); +} + +.clients .client-logo .big { + max-width: 70%; +} + +.clients .client-logo .small { + max-width: 30%; +} + +.clients .client-logo:hover img { + filter: none; + transform: scale(1.1); +} + +.clients img { + transition: all 0.4s ease-in-out; +} + +@media (max-width: 991px) { + .clients .client-logo img { + max-width: 100%; + } + + .clients .client-logo .big { + max-width: 120%; + } + + .clients .client-logo .small { + max-width: 80%; + } +} + +/*-------------------------------------------------------------- + # Features + --------------------------------------------------------------*/ +.features .icon-box { + padding-left: 15px; +} + +.features .icon-box h4 { + font-size: 20px; + font-weight: 700; + margin: 5px 0 10px 60px; +} + +.features .icon-box i { + font-size: 48px; + float: left; + color: $color1; +} + +.features .icon-box p { + font-size: 15px; + color: #848484; + margin-left: 60px; +} + +.features .image { + background-position: center center; + background-repeat: no-repeat; + background-size: cover; + min-height: 400px; +} + +/*-------------------------------------------------------------- + # Cta + --------------------------------------------------------------*/ +.cta { + background: linear-gradient(rgba(2, 2, 2, 0.5), rgba(0, 0, 0, 0.5)), + url("/assets/img/background.jpg") fixed center center; + background-size: cover; + box-shadow: inset 0 0 0 2000px rgba($color: #000000, $alpha: 0.3); + padding: 60px 0; +} + +.cta h3 { + color: #fff; + font-size: 28px; + font-weight: 700; +} + +.cta p { + color: #fff; +} + +.cta .cta-btn { + font-family: "Raleway", sans-serif; + font-weight: 600; + font-size: 16px; + letter-spacing: 1px; + display: inline-block; + padding: 8px 28px; + border-radius: 4px; + transition: 0.5s; + margin-top: 10px; + border: 2px solid #fff; + color: #fff; +} + +.cta .cta-btn:hover { + background: $color1; + border-color: $color1; + color: #151515; +} + +/*-------------------------------------------------------------- + # Contact + --------------------------------------------------------------*/ +.contact .info { + width: 100%; + background: #fff; +} + +.contact .info i { + font-size: 20px; + background: $color1; + color: #151515; + float: left; + width: 44px; + height: 44px; + display: flex; + justify-content: center; + align-items: center; + border-radius: 4px; + transition: all 0.3s ease-in-out; +} + +.contact .info h4 { + padding: 0 0 0 60px; + font-size: 22px; + font-weight: 600; + margin-bottom: 5px; + color: #151515; +} + +.contact .info p { + padding: 0 0 0 60px; + margin-bottom: 0; + font-size: 14px; + color: #484848; +} + +.contact .info .email, +.contact .info .phone { + margin-top: 40px; +} + +.contact .php-email-form { + width: 100%; + background: #fff; +} + +.contact .php-email-form .form-group { + padding-bottom: 8px; +} + +.contact .php-email-form .error-message { + display: none; + color: #fff; + background: #ed3c0d; + text-align: left; + padding: 15px; + font-weight: 600; +} + +.contact .php-email-form .error-message br+br { + margin-top: 25px; +} + +.contact .php-email-form .sent-message { + display: none; + color: #fff; + background: #18d26e; + text-align: center; + padding: 15px; + font-weight: 600; +} + +.contact .php-email-form .loading { + display: none; + background: #fff; + text-align: center; + padding: 15px; +} + +.contact .php-email-form .loading:before { + content: ""; + display: inline-block; + border-radius: 50%; + width: 24px; + height: 24px; + margin: 0 10px -6px 0; + border: 3px solid #18d26e; + border-top-color: #eee; + -webkit-animation: animate-loading 1s linear infinite; + animation: animate-loading 1s linear infinite; +} + +.contact .php-email-form input, +.contact .php-email-form textarea { + border-radius: 0; + box-shadow: none; + font-size: 14px; + border-radius: 4px; +} + +.contact .php-email-form input:focus, +.contact .php-email-form textarea:focus { + border-color: $color1; +} + +.contact .php-email-form input { + height: 2.7rem; +} + +.contact .php-email-form textarea { + padding: 10px 12px; +} + +.contact .php-email-form button[type="submit"] { + background: $color1; + border: 0; + padding: 10px 24px; + color: #151515; + transition: 0.4s; + border-radius: 4px; +} + +.contact .php-email-form button[type="submit"]:hover { + background: $color5; +} + +@-webkit-keyframes animate-loading { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} + +@keyframes animate-loading { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} + +.inner_main_page{ + margin-top: 74px; +} + +/*-------------------------------------------------------------- + # Breadcrumbs + --------------------------------------------------------------*/ +.breadcrumbs { + padding: 15px 0; + background: whitesmoke; + min-height: 40px; +} + +.breadcrumbs h2 { + font-size: 28px; + font-weight: 400; +} + +.breadcrumbs ol { + display: flex; + flex-wrap: wrap; + list-style: none; + padding: 0; + margin: 0; +} + +.breadcrumbs ol li+li { + padding-left: 10px; +} + +.breadcrumbs ol li+li::before { + display: inline-block; + padding-right: 10px; + color: #2f2f2f; + content: "/"; +} + +@media (max-width: 992px) { + // .breadcrumbs { + // margin-top: 68px; + // } + + .breadcrumbs .d-flex { + display: block !important; + } + + .breadcrumbs ol { + display: block; + } + + .breadcrumbs ol li { + display: inline-block; + } +} + +/*-------------------------------------------------------------- + # Footer + --------------------------------------------------------------*/ +#footer { + margin-top: auto; + background: black; + padding: 0 0 30px 0; + color: #fff; + font-size: 14px; +} + +#footer .copyright { + text-align: center; + padding-top: 30px; + + span { + color: $color1; + } +} + +#footer .credits { + padding-top: 10px; + text-align: center; + font-size: 13px; + color: #fff; +} + +// @import './register'; +@import './updates'; +@import './inner_pages'; + + +/*-------------------------------------------------------------- +# Frequently Asked Questions +--------------------------------------------------------------*/ +#faq { + background-color: $bg_color1; +} + +.faq .faq-list { + padding: 0 100px; +} + +.faq .faq-list ul { + padding: 0; + list-style: none; +} + +.faq .faq-list li+li { + margin-top: 15px; +} + +.faq .faq-list li { + padding: 20px; + background: #fff; + border-radius: 4px; + position: relative; + box-shadow: 0px 0px 30px rgba(127, 137, 161, 0.15); +} + +.faq .faq-list a { + display: block; + position: relative; + font-family: "Poppins", sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 500; + padding: 0 30px; + outline: none; + cursor: pointer; +} + +.faq .faq-list .icon-help { + font-size: 24px; + position: absolute; + right: 0; + left: 20px; + color: #87c1ea; +} + +.faq .faq-list .icon-show, +.faq .faq-list .icon-close { + font-size: 24px; + position: absolute; + right: 0; + top: 0; +} + +.faq .faq-list p { + margin-bottom: 0; + padding: 10px 0 0 0; +} + +.faq .faq-list .icon-show { + display: none; +} + +.faq .faq-list a.collapsed { + color: #343a40; +} + +.faq .faq-list a.collapsed:hover { + color: #2487ce; +} + +.faq .faq-list a.collapsed .icon-show { + display: inline-block; +} + +.faq .faq-list a.collapsed .icon-close { + display: none; +} + +@media (max-width: 1200px) { + .faq .faq-list { + padding: 0; + } +} + diff --git a/views/error.hbs b/views/error.hbs new file mode 100644 index 0000000..0659765 --- /dev/null +++ b/views/error.hbs @@ -0,0 +1,3 @@ +

{{message}}

+

{{error.status}}

+
{{error.stack}}
diff --git a/views/index.hbs b/views/index.hbs new file mode 100644 index 0000000..385c99e --- /dev/null +++ b/views/index.hbs @@ -0,0 +1,757 @@ + +
+
+ +
+ +
+ IEEE Kerala Section +
+
+ IEEE LINK +
+
+ GTech Mu Learn +
+
+ IEEE Kerala Section YP +
+ +
+ +
+
+ + +
+
+ +
+
+ About +
+
+
+

About

+

IEEE JOB Fair

+
+ +

What is IEEE Job Fair ?

+

+ One of the most prestigious event of IEEE Kerala Section that is determined to serve the + goal of creating opportunities for engineering students and graduates. +

+

The ultimate platform + for companies to choose their successors from the largest talent pool in Kerala. Aimed at + refining the finest of the lot, it broadens opportunities for undergrad students, graduates + and professionals alike to take a giant leap towards their lucrative career.

+
+
+ +
+
+ + +
+
+ +
+

Our

+

Recruiters

+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + + + + + + + + + + + + + + +
+ +
+
+ + +
+
+ +
+

About the

+

Process

+
+ +
+
+
+
+ +

Initial Registration

+

The candidates interested in taking part in the jobfair can register themselves by + providing their data and resume.

+ +
+
+ +

Round 1 - Entry Exam

+

Company specified test or advanced test based on the position applied for by the + candidate will be conducted in an online mode.

+
+
+ +

Round 2 - Offline Interview at Infopark, Kochi

+

On being shortlisted after round 1, candidates are to attend a second round comprising of + interviews presided either directlty by the employer or a jury panel consisting of + company + representatives. This will be held in an offline mode at Infopark

+
+
+
+ +
+
+ +
+ +
+ +
+

Timeline

+

IEEE JOB Fair 2022

+
+ + +
+
+
1
+
+
+
- 25/06/2022
Registrations close
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ +
+
+
26/07/2022 -
Information session for registrants
+
+
+
2
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ +
+
+
3
+
+
+
06/07/2022 -
Mock Test
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ +
+
+
09/07/2022 -
Round 1 - Online Test
+
+
+
4
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+ +
+
+
5
+
+
+
12/07/2022 -
Announcement of test results
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+ +
+
+
22/07/2022 & 23/07/2022 -
Round 2 - offline Interview at Infopark, Kochi +
+
+
+
6
+
+
+
+ +
+ + +
+
+ +
+
+

For more information and live updates

+ Join + IRL + Group +
+
+ +
+
+ +{{!--
+
+ +
+

Frequently Asked

+

Questions

+
+ +
+
    +
  • + Non consectetur a erat nam at lectus urna duis? +
    +

    + Feugiat pretium nibh ipsum consequat. Tempus iaculis urna id volutpat lacus laoreet + non curabitur gravida. Venenatis lectus magna fringilla urna porttitor rhoncus dolor + purus non. +

    +
    +
  • + +
  • + +
    +

    + Dolor sit amet consectetur adipiscing elit pellentesque habitant morbi. Id interdum + velit laoreet id donec ultrices. Fringilla phasellus faucibus scelerisque eleifend + donec pretium. Est pellentesque elit ullamcorper dignissim. Mauris ultrices eros in + cursus turpis massa tincidunt dui. +

    +
    +
  • + +
  • + +
    +

    + Eleifend mi in nulla posuere sollicitudin aliquam ultrices sagittis orci. Faucibus + pulvinar elementum integer enim. Sem nulla pharetra diam sit amet nisl suscipit. + Rutrum tellus pellentesque eu tincidunt. Lectus urna duis convallis convallis + tellus. Urna molestie at elementum eu facilisis sed odio morbi quis +

    +
    +
  • + +
  • + +
    +

    + Molestie a iaculis at erat pellentesque adipiscing commodo. Dignissim suspendisse in + est ante in. Nunc vel risus commodo viverra maecenas accumsan. Sit amet nisl + suscipit adipiscing bibendum est. Purus gravida quis blandit turpis cursus in. +

    +
    +
  • + +
  • + +
    +

    + Laoreet sit amet cursus sit amet dictum sit amet justo. Mauris vitae ultricies leo + integer malesuada nunc vel. Tincidunt eget nullam non nisi est sit amet. Turpis nunc + eget lorem dolor sed. Ut venenatis tellus in metus vulputate eu scelerisque. +

    +
    +
  • + +
+
+ +
+
--}} + + +
+
+ +
+

Contact

+

Contact Us

+
+ +
+ +
+
+
+ +

Location:

+

IEEE Kerala Section, HarmonIEEE, 1st Floor, Cherian’s Square, Trivandrum

+
+ + + +
+ +
+ +
+ +
+
+
+ +
+
+ +
+
+
+ +
+
+ +
+ + + + +
+
Loading
+
+
Your message has been sent. Thank you!
+
+
+
+ +
+ +
+ +
+
\ No newline at end of file diff --git a/views/layout.hbs b/views/layout.hbs new file mode 100644 index 0000000..57f65f9 --- /dev/null +++ b/views/layout.hbs @@ -0,0 +1,120 @@ + + + + + + + + {{title}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{>header}} + + {{#if home_page}} + {{>hero}} + {{/if}} + +
+ {{#if home_page}} + {{else if error}} + {{else}} + + {{/if}} + + {{{body}}} +
+ + + {{>footer}} + +
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/views/pages/finaltest.hbs b/views/pages/finaltest.hbs new file mode 100644 index 0000000..3576ebe --- /dev/null +++ b/views/pages/finaltest.hbs @@ -0,0 +1,80 @@ +
+
+ +
+
+
+
+
+

Online Test Date

+

+ The Online test will be conducted on 09/07/2022 from 8.00PM - 9.00PM. +

+ +
+
+
+
+
+ +
+
+
+
+
+

Instructions for Online Test

+

+ Please carefully read the instructions given below +

+
    +
  • The test will be conducted on + 09/07/2022 + from 8.00 PM to 9.00 PM
  • +
  • The platform will be HackerEarth
  • +
  • Participants are to signup on the + Hackerearth platform with their registered mail IDs
  • +
  • The Hackerearth username must be + your + Unique IEEE Job fair ID.
  • +
  • There will be two seperate + links + for two + sections of the mock test. One will be analytical the second one will + be programming
  • +
  • Participants are to loging to the + hackerEarth atleast 5 minutes before the test starts
  • +
  • First link will be active from + 8.00 PM to + 9:00 PM followed by the second link from 8:30 PM to 9.00 PM
  • +
  • The duration of the test is set such that + everyone will get sufficient time to complete it.
  • +
  • There will not be another chance for the + test.
  • +
  • The test will comprise 50% programming and + 50% + analytical. Those candidates applying for functional jobs in + particular (KPO amd BPO) need not necessarily attempt the programming section of the + test.
  • +
  • The link for the mock test will be provided + in the updates section of the IEEE Job fair website 24 hours before the test + starts. The participants will also be notified of the same by mail.
  • +
+
+
+
+
+
+ +
+
\ No newline at end of file diff --git a/views/pages/instructions.hbs b/views/pages/instructions.hbs new file mode 100644 index 0000000..4f869a4 --- /dev/null +++ b/views/pages/instructions.hbs @@ -0,0 +1,92 @@ +
+
+ +
+
+
+
+
+

Instruction for choosing recruiters

+

+ Please carefully read the instructions given below +

+
    +
  • Candidates should log in using your + registered email id and fill the form for the selection of recruiters. The form + shall be available for a period of 24 hours on the IEEE Job Fair + website from 16 + July, 11:59 PM.
  • +
  • Any request to extend the deadline for + filling the form will not be entertained.
  • +
  • Kindly provide the data required in the + form accurately and appropriately.
  • +
  • Recruiters have been + Grouped based on the + job requirements and benefits offered. Candidates are to rank the groups in their + order of preference. +
  • +
  • The + portfolio of the recruiters will be + available for your perusal. Do go through them and understand the job requirements + and eligibilty criteria + carefully before making your choice.
  • +
  • The + Students with current backpapers should look at readme files of companies closely and select group priority
  • +
  • A + choice once made CANNOT be changed under + any circumstance. So, candidates are to verify their choices before submission.
  • +
  • The exact slot will be allotted to the + candidates based on their ranks in Round 1 and preferences filed. The same shall be + notified by email latest by 19 July,2022.
  • +
  • The email slating your slot for the + interview will serve as the admission letter for the Round 2 offline interview at + Infopark, Kochi. Only the candidates who have received the mail shall be allowed to + attend the interviews.
  • +
  • Those who fail to produce the email at the + venue will not be allowed to sit for the interviews.
  • +
+
+
+
+
+
+
+
+
+

Recruiters' allotment portfolio

+

+ Please understand the above instructions clearly before you proceed with the selection + of slots +

+ +
+
+
+
+
+
+
+
+

Recruiters' allotment Registration

+

+ Please understand the above instructions clearly and look at readme files of companies closely before you proceed with the selection +

+ +
+
+
+
+
+ +
+
\ No newline at end of file diff --git a/views/pages/mocktest.hbs b/views/pages/mocktest.hbs new file mode 100644 index 0000000..60b4ed0 --- /dev/null +++ b/views/pages/mocktest.hbs @@ -0,0 +1,74 @@ +
+
+ +
+
+
+
+
+

Link For Mock Test

+

+

+ +
+
+
+
+
+ +
+
+
+
+
+

Instructions for Mock Test

+

+ Please carefully read the instructions given below +

+
    +
  • The test will be conducted on + 06/07/2022 + from 8.00 PM to 9.00 PM
  • +
  • The platform will be HackerEarth
  • +
  • Participants are to signup on the + Hackerearth platform with their registered mail IDs
  • +
  • The Hackerearth username must be + your + Unique IEEE Job fair ID.
  • +
  • There will be two seperate links + for two + sections of the mock test. One will be analytical the second one will be programming
  • +
  • First link will be active from + 8.00 PM to + 9:00 PM followed by the second link from 8:30 PM to 9.00 PM
  • +
  • The duration of the test is set such that + everyone will get sufficient time to complete it.
  • +
  • There will not be another chance for the + test.
  • +
  • The test will comprise 50% programming and 50% + analytical. Those candidates applying for functional jobs in + particular (KPO amd BPO) need not necessarily attempt the programming section of the + test.
  • +
  • The link for the mock test will be provided + in the updates section of the IEEE Job fair website 12-24 hours before the test + starts. The participants will also be notified of the same by mail.
  • +
+
+
+
+
+
+ +
+
\ No newline at end of file diff --git a/views/pages/ranklist.hbs b/views/pages/ranklist.hbs new file mode 100644 index 0000000..7adeb3a --- /dev/null +++ b/views/pages/ranklist.hbs @@ -0,0 +1,11 @@ +
+
+ +
+ +

get access fromGoogle Dive

+
+
+ +
+
\ No newline at end of file diff --git a/views/partials/footer.hbs b/views/partials/footer.hbs new file mode 100644 index 0000000..c43913d --- /dev/null +++ b/views/partials/footer.hbs @@ -0,0 +1,10 @@ +
+ +
+ +
+
\ No newline at end of file diff --git a/views/partials/header.hbs b/views/partials/header.hbs new file mode 100644 index 0000000..dae0061 --- /dev/null +++ b/views/partials/header.hbs @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/views/partials/hero.hbs b/views/partials/hero.hbs new file mode 100644 index 0000000..a29cf6a --- /dev/null +++ b/views/partials/hero.hbs @@ -0,0 +1,36 @@ +
+
+ +
+
+

IEEE Job Fair 2022

+

One of the most prestigious events of IEEE Kerala Section that is determined to serve the goal + of + creating opportunities for engineering students and graduates.

+
+ + +
+ +
+
\ No newline at end of file diff --git a/views/updates.hbs b/views/updates.hbs new file mode 100644 index 0000000..3b8af70 --- /dev/null +++ b/views/updates.hbs @@ -0,0 +1,122 @@ +
+
+ +
+
+
+
+
+

Instruction for choosing recruiters

+

+ Candidates should log in using your registered email id and fill the form for the + selection of recruiters. The form shall be available for a period of 24 hours on the + IEEE Job Fair website from 16 July, 11:59 PM. Please carefull read the instructions with the link below +

+ +
+
+
+
+
+ +
+
+
+
+
+

Allotment updates

+

Candidates will be given option to priorities the companies. The link will be available + in the website from 16th, Saturday midnight onwards. The candidates are requested to fill their + priority within 24 hours. The final list of companies allocated to each candidate will + be based on the rank they secured for the online test, which will be notified via email + latest by 19th, Tuesday. +

+
+
+
+
+
+ +
+
+
+
+
+

Online Test Rank List Published

+ {{!--

Round 1 - Online Test rank list has been published

--}} + +
+
+
+
+
+ + {{!--
+
+
+
+
+

General Updates

+

Further instructions regarding the Job Fair slot allotment will be posted shortly

+

Stay Tuned!

+
+
+
+
+
--}} + + {{!--
+
+
+
+
+

Instructions for Online Test

+

+ Please carefully read the instructions given below +

+
    +
  • The test will be conducted on + 09/07/2022 + from 8.00 PM to 9.00 PM
  • +
  • The platform will be HackerEarth
  • +
  • Participants are to signup on the + Hackerearth platform with their registered mail IDs
  • +
  • The Hackerearth username must be + your + Unique IEEE Job fair ID.
  • +
  • There will be two seperate links + for two + sections of the mock test. One will be analytical the second one will + be programming
  • +
  • First link will be active from + 8.00 PM to + 9:00 PM followed by the second link from 8:30 PM to 9.00 PM
  • +
  • The duration of the test is set such that + everyone will get sufficient time to complete it.
  • +
  • There will not be another chance for the + test.
  • +
  • The test will comprise 50% programming and + 50% + analytical. Those candidates applying for functional jobs in + particular (KPO amd BPO) need not necessarily attempt the programming section of the + test.
  • +
  • The link for the mock test will be provided + in the updates section of the IEEE Job fair website 24 hours before the test + starts. The participants will also be notified of the same by mail.
  • +
+
+
+
+
+
--}} + +
+
\ No newline at end of file