| Server IP : 185.208.173.17 / Your IP : 87.236.161.98 Web Server : Microsoft-IIS/10.0 System : Windows NT SRV8576125506 10.0 build 26100 (Windows Server 2016) AMD64 User : IUSR ( 0) PHP Version : 7.4.13 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/inetpub/wwwroot/parsmega.nuxt/.nuxt/dist/server/ |
Upload File : |
module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // object to store loaded chunks
/******/ // "0" means "already loaded"
/******/ var installedChunks = {
/******/ 0: 0
/******/ };
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/ // This file contains only the entry chunk.
/******/ // The chunk loading function for additional chunks
/******/ __webpack_require__.e = function requireEnsure(chunkId) {
/******/ var promises = [];
/******/
/******/
/******/ // require() chunk loading for javascript
/******/
/******/ // "0" is the signal for "already loaded"
/******/ if(installedChunks[chunkId] !== 0) {
/******/ var chunk = require("./" + ({"1":"lang-en.js","2":"lang-fa.js","3":"pages/about-us/index","4":"pages/agents/index","5":"pages/articles/index","6":"pages/articles/post/_slug/index","7":"pages/contact-us/index","8":"pages/index","9":"pages/products/_slug/index","10":"pages/products/category/_slug/index","11":"pages/products/index"}[chunkId]||chunkId) + ".js");
/******/ var moreModules = chunk.modules, chunkIds = chunk.ids;
/******/ for(var moduleId in moreModules) {
/******/ modules[moduleId] = moreModules[moduleId];
/******/ }
/******/ for(var i = 0; i < chunkIds.length; i++)
/******/ installedChunks[chunkIds[i]] = 0;
/******/ }
/******/ return Promise.all(promises);
/******/ };
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "/_nuxt/";
/******/
/******/ // uncaught error handler for webpack runtime
/******/ __webpack_require__.oe = function(err) {
/******/ process.nextTick(function() {
/******/ throw err; // catch this error by using import().catch()
/******/ });
/******/ };
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 37);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports) {
module.exports = require("vue");
/***/ }),
/* 1 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; });
/* globals __VUE_SSR_CONTEXT__ */
// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
// This module is a runtime utility for cleaner component module output and will
// be included in the final webpack user bundle.
function normalizeComponent(
scriptExports,
render,
staticRenderFns,
functionalTemplate,
injectStyles,
scopeId,
moduleIdentifier /* server only */,
shadowMode /* vue-cli only */
) {
// Vue.extend constructor export interop
var options =
typeof scriptExports === 'function' ? scriptExports.options : scriptExports
// render functions
if (render) {
options.render = render
options.staticRenderFns = staticRenderFns
options._compiled = true
}
// functional template
if (functionalTemplate) {
options.functional = true
}
// scopedId
if (scopeId) {
options._scopeId = 'data-v-' + scopeId
}
var hook
if (moduleIdentifier) {
// server build
hook = function (context) {
// 2.3 injection
context =
context || // cached call
(this.$vnode && this.$vnode.ssrContext) || // stateful
(this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
// 2.2 with runInNewContext: true
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
context = __VUE_SSR_CONTEXT__
}
// inject component styles
if (injectStyles) {
injectStyles.call(this, context)
}
// register component module identifier for async chunk inferrence
if (context && context._registeredComponents) {
context._registeredComponents.add(moduleIdentifier)
}
}
// used by ssr in case component is cached and beforeCreate
// never gets called
options._ssrRegister = hook
} else if (injectStyles) {
hook = shadowMode
? function () {
injectStyles.call(
this,
(options.functional ? this.parent : this).$root.$options.shadowRoot
)
}
: injectStyles
}
if (hook) {
if (options.functional) {
// for template-only hot-reload because in that case the render fn doesn't
// go through the normalizer
options._injectStyles = hook
// register for functional component in vue file
var originalRender = options.render
options.render = function renderWithStyleInjection(h, context) {
hook.call(context)
return originalRender(h, context)
}
} else {
// inject component registration as beforeCreate hook
var existing = options.beforeCreate
options.beforeCreate = existing ? [].concat(existing, hook) : [hook]
}
}
return {
exports: scriptExports,
options: options
}
}
/***/ }),
/* 2 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
// css base code, injected by the css-loader
// eslint-disable-next-line func-names
module.exports = function (cssWithMappingToString) {
var list = []; // return the list of modules as css string
list.toString = function toString() {
return this.map(function (item) {
var content = cssWithMappingToString(item);
if (item[2]) {
return "@media ".concat(item[2], " {").concat(content, "}");
}
return content;
}).join("");
}; // import a list of modules into the list
// eslint-disable-next-line func-names
list.i = function (modules, mediaQuery, dedupe) {
if (typeof modules === "string") {
// eslint-disable-next-line no-param-reassign
modules = [[null, modules, ""]];
}
var alreadyImportedModules = {};
if (dedupe) {
for (var i = 0; i < this.length; i++) {
// eslint-disable-next-line prefer-destructuring
var id = this[i][0];
if (id != null) {
alreadyImportedModules[id] = true;
}
}
}
for (var _i = 0; _i < modules.length; _i++) {
var item = [].concat(modules[_i]);
if (dedupe && alreadyImportedModules[item[0]]) {
// eslint-disable-next-line no-continue
continue;
}
if (mediaQuery) {
if (!item[2]) {
item[2] = mediaQuery;
} else {
item[2] = "".concat(mediaQuery, " and ").concat(item[2]);
}
}
list.push(item);
}
};
return list;
};
/***/ }),
/* 3 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// EXPORTS
__webpack_require__.d(__webpack_exports__, "default", function() { return /* binding */ addStylesServer; });
// CONCATENATED MODULE: ./node_modules/vue-style-loader/lib/listToStyles.js
/**
* Translates the list format produced by css-loader into something
* easier to manipulate.
*/
function listToStyles (parentId, list) {
var styles = []
var newStyles = {}
for (var i = 0; i < list.length; i++) {
var item = list[i]
var id = item[0]
var css = item[1]
var media = item[2]
var sourceMap = item[3]
var part = {
id: parentId + ':' + i,
css: css,
media: media,
sourceMap: sourceMap
}
if (!newStyles[id]) {
styles.push(newStyles[id] = { id: id, parts: [part] })
} else {
newStyles[id].parts.push(part)
}
}
return styles
}
// CONCATENATED MODULE: ./node_modules/vue-style-loader/lib/addStylesServer.js
function addStylesServer (parentId, list, isProduction, context) {
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
context = __VUE_SSR_CONTEXT__
}
if (context) {
if (!context.hasOwnProperty('styles')) {
Object.defineProperty(context, 'styles', {
enumerable: true,
get: function() {
return renderStyles(context._styles)
}
})
// expose renderStyles for vue-server-renderer (vuejs/#6353)
context._renderStyles = renderStyles
}
var styles = context._styles || (context._styles = {})
list = listToStyles(parentId, list)
if (isProduction) {
addStyleProd(styles, list)
} else {
addStyleDev(styles, list)
}
}
}
// In production, render as few style tags as possible.
// (mostly because IE9 has a limit on number of style tags)
function addStyleProd (styles, list) {
for (var i = 0; i < list.length; i++) {
var parts = list[i].parts
for (var j = 0; j < parts.length; j++) {
var part = parts[j]
// group style tags by media types.
var id = part.media || 'default'
var style = styles[id]
if (style) {
if (style.ids.indexOf(part.id) < 0) {
style.ids.push(part.id)
style.css += '\n' + part.css
}
} else {
styles[id] = {
ids: [part.id],
css: part.css,
media: part.media
}
}
}
}
}
// In dev we use individual style tag for each module for hot-reload
// and source maps.
function addStyleDev (styles, list) {
for (var i = 0; i < list.length; i++) {
var parts = list[i].parts
for (var j = 0; j < parts.length; j++) {
var part = parts[j]
styles[part.id] = {
ids: [part.id],
css: part.css,
media: part.media
}
}
}
}
function renderStyles (styles) {
var css = ''
for (var key in styles) {
var style = styles[key]
css += '<style data-vue-ssr-id="' + style.ids.join(' ') + '"' +
(style.media ? ( ' media="' + style.media + '"' ) : '') + '>' +
style.css + '</style>'
}
return css
}
/***/ }),
/* 4 */
/***/ (function(module, exports) {
module.exports = require("ufo");
/***/ }),
/* 5 */
/***/ (function(module, exports) {
module.exports = require("vue-lazy-hydration");
/***/ }),
/* 6 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(URLSearchParams) {
Object.defineProperty(exports, '__esModule', {
value: true
});
const n = /[^\0-\x7E]/;
const t = /[\x2E\u3002\uFF0E\uFF61]/g;
const o = {
overflow: "Overflow Error",
"not-basic": "Illegal Input",
"invalid-input": "Invalid Input"
};
const e = Math.floor;
const r = String.fromCharCode;
function s(n2) {
throw new RangeError(o[n2]);
}
const c = function (n2, t2) {
return n2 + 22 + 75 * (n2 < 26) - ((t2 != 0) << 5);
};
const u = function (n2, t2, o2) {
let r2 = 0;
for (n2 = o2 ? e(n2 / 700) : n2 >> 1, n2 += e(n2 / t2); n2 > 455; r2 += 36) {
n2 = e(n2 / 35);
}
return e(r2 + 36 * n2 / (n2 + 38));
};
function toASCII(o2) {
return function (n2, o3) {
const e2 = n2.split("@");
let r2 = "";
e2.length > 1 && (r2 = e2[0] + "@", n2 = e2[1]);
const s2 = function (n3, t2) {
const o4 = [];
let e3 = n3.length;
for (; e3--;) {
o4[e3] = t2(n3[e3]);
}
return o4;
}((n2 = n2.replace(t, ".")).split("."), o3).join(".");
return r2 + s2;
}(o2, function (t2) {
return n.test(t2) ? "xn--" + function (n2) {
const t3 = [];
const o3 = (n2 = function (n3) {
const t4 = [];
let o4 = 0;
const e2 = n3.length;
for (; o4 < e2;) {
const r2 = n3.charCodeAt(o4++);
if (r2 >= 55296 && r2 <= 56319 && o4 < e2) {
const e3 = n3.charCodeAt(o4++);
(64512 & e3) == 56320 ? t4.push(((1023 & r2) << 10) + (1023 & e3) + 65536) : (t4.push(r2), o4--);
} else {
t4.push(r2);
}
}
return t4;
}(n2)).length;
let f = 128;
let i = 0;
let l = 72;
for (const o4 of n2) {
o4 < 128 && t3.push(r(o4));
}
const h = t3.length;
let p = h;
for (h && t3.push("-"); p < o3;) {
let o4 = 2147483647;
for (const t4 of n2) {
t4 >= f && t4 < o4 && (o4 = t4);
}
const a = p + 1;
o4 - f > e((2147483647 - i) / a) && s("overflow"), i += (o4 - f) * a, f = o4;
for (const o5 of n2) {
if (o5 < f && ++i > 2147483647 && s("overflow"), o5 == f) {
let n3 = i;
for (let o6 = 36;; o6 += 36) {
const s2 = o6 <= l ? 1 : o6 >= l + 26 ? 26 : o6 - l;
if (n3 < s2) {
break;
}
const u2 = n3 - s2;
const f2 = 36 - s2;
t3.push(r(c(s2 + u2 % f2, 0))), n3 = e(u2 / f2);
}
t3.push(r(c(n3, 0))), l = u(i, a, p == h), i = 0, ++p;
}
}
++i, ++f;
}
return t3.join("");
}(t2) : t2;
});
}
const HASH_RE = /#/g;
const AMPERSAND_RE = /&/g;
const SLASH_RE = /\//g;
const EQUAL_RE = /=/g;
const IM_RE = /\?/g;
const PLUS_RE = /\+/g;
const ENC_BRACKET_OPEN_RE = /%5B/gi;
const ENC_BRACKET_CLOSE_RE = /%5D/gi;
const ENC_CARET_RE = /%5E/gi;
const ENC_BACKTICK_RE = /%60/gi;
const ENC_CURLY_OPEN_RE = /%7B/gi;
const ENC_PIPE_RE = /%7C/gi;
const ENC_CURLY_CLOSE_RE = /%7D/gi;
const ENC_SPACE_RE = /%20/gi;
const ENC_SLASH_RE = /%2F/gi;
const ENC_ENC_SLASH_RE = /%252F/gi;
function encode(text) {
return encodeURI("" + text).replace(ENC_PIPE_RE, "|").replace(ENC_BRACKET_OPEN_RE, "[").replace(ENC_BRACKET_CLOSE_RE, "]");
}
function encodeHash(text) {
return encode(text).replace(ENC_CURLY_OPEN_RE, "{").replace(ENC_CURLY_CLOSE_RE, "}").replace(ENC_CARET_RE, "^");
}
function encodeQueryValue(text) {
return encode(text).replace(PLUS_RE, "%2B").replace(ENC_SPACE_RE, "+").replace(HASH_RE, "%23").replace(AMPERSAND_RE, "%26").replace(ENC_BACKTICK_RE, "`").replace(ENC_CURLY_OPEN_RE, "{").replace(ENC_CURLY_CLOSE_RE, "}").replace(ENC_CARET_RE, "^");
}
function encodeQueryKey(text) {
return encodeQueryValue(text).replace(EQUAL_RE, "%3D");
}
function encodePath(text) {
return encode(text).replace(HASH_RE, "%23").replace(IM_RE, "%3F").replace(ENC_ENC_SLASH_RE, "%2F").replace(AMPERSAND_RE, "%26").replace(PLUS_RE, "%2B");
}
function encodeParam(text) {
return encodePath(text).replace(SLASH_RE, "%2F");
}
function decode(text = "") {
try {
return decodeURIComponent("" + text);
} catch (_err) {
return "" + text;
}
}
function decodePath(text) {
return decode(text.replace(ENC_SLASH_RE, "%252F"));
}
function decodeQueryValue(text) {
return decode(text.replace(PLUS_RE, " "));
}
function encodeHost(name = "") {
return toASCII(name);
}
function parseQuery(paramsStr = "") {
const obj = {};
if (paramsStr[0] === "?") {
paramsStr = paramsStr.substr(1);
}
for (const param of paramsStr.split("&")) {
const s = param.match(/([^=]+)=?(.*)/) || [];
if (s.length < 2) {
continue;
}
const key = decode(s[1]);
if (key === "__proto__" || key === "constructor") {
continue;
}
const value = decodeQueryValue(s[2] || "");
if (obj[key]) {
if (Array.isArray(obj[key])) {
obj[key].push(value);
} else {
obj[key] = [obj[key], value];
}
} else {
obj[key] = value;
}
}
return obj;
}
function encodeQueryItem(key, val) {
if (!val) {
return encodeQueryKey(key);
}
if (Array.isArray(val)) {
return val.map(_val => `${encodeQueryKey(key)}=${encodeQueryValue(_val)}`).join("&");
}
return `${encodeQueryKey(key)}=${encodeQueryValue(val)}`;
}
function stringifyQuery(query) {
return Object.keys(query).map(k => encodeQueryItem(k, query[k])).join("&");
}
class $URL {
constructor(input = "") {
this.query = {};
if (typeof input !== "string") {
throw new TypeError(`URL input should be string received ${typeof input} (${input})`);
}
const parsed = parseURL(input);
this.protocol = decode(parsed.protocol);
this.host = decode(parsed.host);
this.auth = decode(parsed.auth);
this.pathname = decodePath(parsed.pathname);
this.query = parseQuery(parsed.search);
this.hash = decode(parsed.hash);
}
get hostname() {
return parseHost(this.host).hostname;
}
get port() {
return parseHost(this.host).port || "";
}
get username() {
return parseAuth(this.auth).username;
}
get password() {
return parseAuth(this.auth).password || "";
}
get hasProtocol() {
return this.protocol.length;
}
get isAbsolute() {
return this.hasProtocol || this.pathname[0] === "/";
}
get search() {
const q = stringifyQuery(this.query);
return q.length ? "?" + q : "";
}
get searchParams() {
const p = new URLSearchParams();
for (const name in this.query) {
const value = this.query[name];
if (Array.isArray(value)) {
value.forEach(v => p.append(name, v));
} else {
p.append(name, value || "");
}
}
return p;
}
get origin() {
return (this.protocol ? this.protocol + "//" : "") + encodeHost(this.host);
}
get fullpath() {
return encodePath(this.pathname) + this.search + encodeHash(this.hash);
}
get encodedAuth() {
if (!this.auth) {
return "";
}
const {
username,
password
} = parseAuth(this.auth);
return encodeURIComponent(username) + (password ? ":" + encodeURIComponent(password) : "");
}
get href() {
const auth = this.encodedAuth;
const originWithAuth = (this.protocol ? this.protocol + "//" : "") + (auth ? auth + "@" : "") + encodeHost(this.host);
return this.hasProtocol && this.isAbsolute ? originWithAuth + this.fullpath : this.fullpath;
}
append(url) {
if (url.hasProtocol) {
throw new Error("Cannot append a URL with protocol");
}
Object.assign(this.query, url.query);
if (url.pathname) {
this.pathname = withTrailingSlash(this.pathname) + withoutLeadingSlash(url.pathname);
}
if (url.hash) {
this.hash = url.hash;
}
}
toJSON() {
return this.href;
}
toString() {
return this.href;
}
}
function isRelative(inputStr) {
return ["./", "../"].some(str => inputStr.startsWith(str));
}
function hasProtocol(inputStr, acceptProtocolRelative = false) {
return /^\w+:\/\/.+/.test(inputStr) || acceptProtocolRelative && /^\/\/[^/]+/.test(inputStr);
}
const TRAILING_SLASH_RE = /\/$|\/\?/;
function hasTrailingSlash(input = "", queryParams = false) {
if (!queryParams) {
return input.endsWith("/");
}
return TRAILING_SLASH_RE.test(input);
}
function withoutTrailingSlash(input = "", queryParams = false) {
if (!queryParams) {
return (hasTrailingSlash(input) ? input.slice(0, -1) : input) || "/";
}
if (!hasTrailingSlash(input, true)) {
return input || "/";
}
const [s0, ...s] = input.split("?");
return (s0.slice(0, -1) || "/") + (s.length ? `?${s.join("?")}` : "");
}
function withTrailingSlash(input = "", queryParams = false) {
if (!queryParams) {
return input.endsWith("/") ? input : input + "/";
}
if (hasTrailingSlash(input, true)) {
return input || "/";
}
const [s0, ...s] = input.split("?");
return s0 + "/" + (s.length ? `?${s.join("?")}` : "");
}
function hasLeadingSlash(input = "") {
return input.startsWith("/");
}
function withoutLeadingSlash(input = "") {
return (hasLeadingSlash(input) ? input.substr(1) : input) || "/";
}
function withLeadingSlash(input = "") {
return hasLeadingSlash(input) ? input : "/" + input;
}
function cleanDoubleSlashes(input = "") {
return input.split("://").map(str => str.replace(/\/{2,}/g, "/")).join("://");
}
function withBase(input, base) {
if (isEmptyURL(base)) {
return input;
}
const _base = withoutTrailingSlash(base);
if (input.startsWith(_base)) {
return input;
}
return joinURL(_base, input);
}
function withoutBase(input, base) {
if (isEmptyURL(base)) {
return input;
}
const _base = withoutTrailingSlash(base);
if (input.startsWith(_base)) {
return input.substr(_base.length) || "/";
}
return input;
}
function withQuery(input, query) {
const parsed = parseURL(input);
const mergedQuery = {
...parseQuery(parsed.search),
...query
};
parsed.search = stringifyQuery(mergedQuery);
return stringifyParsedURL(parsed);
}
function getQuery(input) {
return parseQuery(parseURL(input).search);
}
function isEmptyURL(url) {
return !url || url === "/";
}
function isNonEmptyURL(url) {
return url && url !== "/";
}
function joinURL(base, ...input) {
let url = base || "";
for (const i of input.filter(isNonEmptyURL)) {
url = url ? withTrailingSlash(url) + withoutLeadingSlash(i) : i;
}
return url;
}
function createURL(input) {
return new $URL(input);
}
function normalizeURL(input) {
return createURL(input).toString();
}
function resolveURL(base, ...input) {
const url = createURL(base);
for (const i of input.filter(isNonEmptyURL)) {
url.append(createURL(i));
}
return url.toString();
}
function isSamePath(p1, p2) {
return decode(withoutTrailingSlash(p1)) === decode(withoutTrailingSlash(p2));
}
function parseURL(input = "", defaultProto) {
if (!hasProtocol(input, true)) {
return defaultProto ? parseURL(defaultProto + input) : parsePath(input);
}
const [protocol = "", auth, hostAndPath] = (input.replace(/\\/g, "/").match(/([^:/]+:)?\/\/([^/@]+@)?(.*)/) || []).splice(1);
const [host = "", path = ""] = (hostAndPath.match(/([^/?#]*)(.*)?/) || []).splice(1);
const {
pathname,
search,
hash
} = parsePath(path);
return {
protocol,
auth: auth ? auth.substr(0, auth.length - 1) : "",
host,
pathname,
search,
hash
};
}
function parsePath(input = "") {
const [pathname = "", search = "", hash = ""] = (input.match(/([^#?]*)(\?[^#]*)?(#.*)?/) || []).splice(1);
return {
pathname,
search,
hash
};
}
function parseAuth(input = "") {
const [username, password] = input.split(":");
return {
username: decode(username),
password: decode(password)
};
}
function parseHost(input = "") {
const [hostname, port] = (input.match(/([^/]*)(:0-9+)?/) || []).splice(1);
return {
hostname: decode(hostname),
port
};
}
function stringifyParsedURL(parsed) {
const fullpath = parsed.pathname + (parsed.search ? (parsed.search.startsWith("?") ? "" : "?") + parsed.search : "") + parsed.hash;
if (!parsed.protocol) {
return fullpath;
}
return parsed.protocol + "//" + (parsed.auth ? parsed.auth + "@" : "") + parsed.host + fullpath;
}
exports.$URL = $URL;
exports.cleanDoubleSlashes = cleanDoubleSlashes;
exports.createURL = createURL;
exports.decode = decode;
exports.decodePath = decodePath;
exports.decodeQueryValue = decodeQueryValue;
exports.encode = encode;
exports.encodeHash = encodeHash;
exports.encodeHost = encodeHost;
exports.encodeParam = encodeParam;
exports.encodePath = encodePath;
exports.encodeQueryItem = encodeQueryItem;
exports.encodeQueryKey = encodeQueryKey;
exports.encodeQueryValue = encodeQueryValue;
exports.getQuery = getQuery;
exports.hasLeadingSlash = hasLeadingSlash;
exports.hasProtocol = hasProtocol;
exports.hasTrailingSlash = hasTrailingSlash;
exports.isEmptyURL = isEmptyURL;
exports.isNonEmptyURL = isNonEmptyURL;
exports.isRelative = isRelative;
exports.isSamePath = isSamePath;
exports.joinURL = joinURL;
exports.normalizeURL = normalizeURL;
exports.parseAuth = parseAuth;
exports.parseHost = parseHost;
exports.parsePath = parsePath;
exports.parseQuery = parseQuery;
exports.parseURL = parseURL;
exports.resolveURL = resolveURL;
exports.stringifyParsedURL = stringifyParsedURL;
exports.stringifyQuery = stringifyQuery;
exports.withBase = withBase;
exports.withLeadingSlash = withLeadingSlash;
exports.withQuery = withQuery;
exports.withTrailingSlash = withTrailingSlash;
exports.withoutBase = withoutBase;
exports.withoutLeadingSlash = withoutLeadingSlash;
exports.withoutTrailingSlash = withoutTrailingSlash;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(73)["URLSearchParams"]))
/***/ }),
/* 7 */
/***/ (function(module, exports) {
module.exports = require("vuex");
/***/ }),
/* 8 */
/***/ (function(module, exports) {
module.exports = require("vue-meta");
/***/ }),
/* 9 */
/***/ (function(module, exports) {
module.exports = require("axios");
/***/ }),
/* 10 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addComment; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return getBlogSlider; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return getArticle; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return getArticles; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return getCategory; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getAllCategories; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return getComments; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return getCustomers; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return getFooterLinks; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return getProduct; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return getProducts; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return getProductsByCategoryId; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return getSimilarProducts; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return getSlides; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getAgents; });
const faBaseUrl = "https://panel.parsmega.com/index.php/wp-json/wp/v2/";
const enBaseUrl = "https://enpanel.parsmega.com/index.php/wp-json/wp/v2/";
function getBaseUrlForLocale(local) {
return local == "fa" ? faBaseUrl : enBaseUrl;
}
function apiValidator(response) {
if (!response && !response.data) {
return {
isValid: false,
result: null
};
}
return {
isValid: parseInt(response.status) < 300,
result: response.data || null
};
}
function mapArticle(article) {
return {
id: article.id,
slug: article.slug,
title: article.title.rendered,
content: article.acf.content,
image: article.acf.image,
canonicalAdress: article.acf.canonical_address,
summary: article.acf.summary,
seoDescription: article.acf.seo_description,
link: `/articles/post/${article.slug}`,
publishDate: article.date_gmt,
seoJsonLd: article.acf.structured_data || null
};
}
function mapCategory(category) {
return {
id: category.id,
slug: category.slug,
parent: category.parent,
image: category.acf.banner,
content: category.acf.content,
seoDescription: category.acf.seo_description,
title: category.acf.browser_tab_title,
seoJsonLd: category.acf.structured_data || null,
acf: category.acf || null
};
}
function mapProduct(product) {
let images = [];
if (product.acf.gallery_image_1) images.push(product.acf.gallery_image_1);
if (product.acf.gallery_image_2) images.push(product.acf.gallery_image_2);
if (product.acf.gallery_image_3) images.push(product.acf.gallery_image_3);
if (product.acf.gallery_image_4) images.push(product.acf.gallery_image_4);
let files = [];
if (product.acf.manual_file1 && product.acf.manual_file1.manual_file_adress) {
files.push({
name: product.acf.manual_file1.manual_file_name,
url: product.acf.manual_file1.manual_file_adress
});
}
if (product.acf.manual_file2 && product.acf.manual_file2.manual_file_adress) {
files.push({
name: product.acf.manual_file2.manual_file_name,
url: product.acf.manual_file2.manual_file_adress
});
}
if (product.acf.manual_file3 && product.acf.manual_file3.manual_file_adress) {
files.push({
name: product.acf.manual_file3.manual_file_name,
url: product.acf.manual_file3.manual_file_adress
});
}
if (product.acf.manual_file4 && product.acf.manual_file4.manual_file_adress) {
files.push({
name: product.acf.manual_file4.manual_file_name,
url: product.acf.manual_file4.manual_file_adress
});
}
let videos = [];
if (product.acf.videos_000_video_link_1) videos.push(product.acf.videos_000_video_link_1);
if (product.acf.videos_001_video_link_2) videos.push(product.acf.videos_001_video_link_2);
if (product.acf.videos_002_video_link_3) videos.push(product.acf.videos_002_video_link_3);
if (product.acf.videos_003_video_link_4) videos.push(product.acf.videos_003_video_link_4);
if (product.acf.videos_004_video_link_5) videos.push(product.acf.videos_004_video_link_5);
if (product.acf.videos_005_video_link_6) videos.push(product.acf.videos_005_video_link_6);
if (product.acf.videos_006_video_link_7) videos.push(product.acf.videos_006_video_link_7);
if (product.acf.videos_007_video_link_8) videos.push(product.acf.videos_007_video_link_8);
if (product.acf.videos_008_video_link_9) videos.push(product.acf.videos_008_video_link_9);
if (product.acf.videos_009_video_link_10) videos.push(product.acf.videos_009_video_link_10);
return {
acf: product.acf,
categories: product.categories || [],
id: product.id,
title: product.title.rendered,
slug: product.slug,
summary: product.acf.summary,
canonicalAdress: product.acf.canonical_address,
hasGuarantee: product.acf.has_guarantee,
guaranteeValue: product.acf.guarantee_value,
images: images,
files: files,
price: product.acf.product_price,
purchaseLink: product.acf.purchase_link,
seoDescription: product.acf.seo_description,
sourcePageAddress: product.acf.source_page_address,
description: product.acf.description,
videos: videos,
link: `/products/${product.slug}`,
seoJsonLd: product.acf.structured_data || null,
order: {
homePage: product.acf.home_page_order || 100000,
productsPage: product.acf.main_category_order || 100000,
categoryPage: product.acf.products_page_order || 100000
}
};
}
function mapAgent(agent) {
return {
id: agent.id,
title: agent.title.rendered,
description: agent.acf.description,
phone: agent.acf.phone,
website: agent.acf.website,
logo: agent.acf.logo
};
}
function addComment(connector, local, name, email, content, postId) {
const baseUrl = getBaseUrlForLocale(local);
const url = `${baseUrl}/comments?author_name=${name}&author_email=${email}&content=${content}&post=${postId}`;
return connector.post(url);
}
async function getBlogSlider(connector, local) {
const sliderCategory = 8;
const baseUrl = getBaseUrlForLocale(local);
const url = `${baseUrl}articles?_embed&categories=${sliderCategory}`;
try {
const apiResult = await connector.get(url);
const {
isValid,
result
} = apiValidator(apiResult);
if (!isValid) return null;
let articles = result.map(mapArticle);
return articles.length > 0 ? articles[0] : null;
} catch (e) {
return null;
}
}
async function getArticle(connector, local, slug) {
const baseUrl = getBaseUrlForLocale(local);
const url = `${baseUrl}articles?_embed&filter[name]=${slug}`;
try {
const apiResult = await connector.get(url);
const {
isValid,
result
} = apiValidator(apiResult);
if (!isValid) return null;
let articles = result.map(mapArticle);
return articles.length > 0 ? articles[0] : null;
} catch (e) {
return null;
}
}
async function getArticles(connector, local, articleCount = 1, page = 1) {
const baseUrl = getBaseUrlForLocale(local);
const url = `${baseUrl}articles?status=publish&per_page=${articleCount}&page=${page}`;
try {
const apiResult = await connector.get(url);
const {
isValid,
result
} = apiValidator(apiResult);
if (isValid) return result.map(mapArticle);
return [];
} catch (e) {
return [];
}
}
async function getCategory(connector, local, slug) {
const baseUrl = getBaseUrlForLocale(local);
const url = `${baseUrl}categories?slug=${slug}`;
try {
const apiResult = await connector.get(url);
const {
isValid,
result
} = apiValidator(apiResult);
if (!isValid) return null;
return result.map(mapCategory)[0];
} catch (e) {
return null;
}
}
async function getAllCategories(connector, local) {
const baseUrl = getBaseUrlForLocale(local);
const url = `${baseUrl}categories?_embed&page=1&per_page=99&acf_format=standard`;
try {
const apiResult = await connector.get(url);
const {
isValid,
result
} = apiValidator(apiResult);
if (!isValid) return null;
return result.map(mapCategory);
} catch (e) {
return null;
}
}
async function getComments(connector, local, postId) {
const baseUrl = getBaseUrlForLocale(local);
const url = `${baseUrl}/comments?per_page=50&post=${postId}`;
try {
const apiResult = await connector.get(url);
const {
isValid,
result
} = apiValidator(apiResult);
if (!isValid) return [];
return result.map(comment => {
return {
id: comment.id,
authorName: comment.author_name,
parent: comment.parent,
date: comment.date_gmt,
content: comment.content.rendered
};
});
} catch (e) {
return [];
}
}
async function getCustomers(connector, local, customerCount = 1, page = 1) {
const baseUrl = getBaseUrlForLocale(local);
const url = `${baseUrl}customers?status=publish&per_page=${customerCount}&page=${page}`;
try {
const apiResult = await connector.get(url);
const {
isValid,
result
} = apiValidator(apiResult);
if (isValid) return result.map(slide => {
return {
id: slide.id,
name: slide.acf.customer_name,
link: slide.acf.customer_link,
logo: slide.acf.customer_logo
};
});
return [];
} catch (e) {
return [];
}
}
async function getFooterLinks(connector, local) {
const baseUrl = getBaseUrlForLocale(local);
const url = `${baseUrl}footerlinks?status=publish&per_page=100&page=1`;
try {
const apiResult = await connector.get(url);
const {
isValid,
result
} = apiValidator(apiResult);
if (isValid) return result.map(item => {
return {
id: item.id,
showName: item.acf.showname,
order: item.acf.order_in_column,
column: item.acf.column_number,
linkUrl: item.acf.link_url,
isExternal: item.acf.is_external_link == "true"
};
});
return [];
} catch (e) {
return [];
}
}
async function getProduct(connector, local, slug) {
const baseUrl = getBaseUrlForLocale(local);
const url = `${baseUrl}products?_embed&filter[name]=${slug}`;
try {
const apiResult = await connector.get(url);
const {
isValid,
result
} = apiValidator(apiResult);
if (!isValid) return null;
return result.map(mapProduct)[0];
} catch (e) {
return null;
}
}
async function getProducts(connector, local, productCount = 1, page = 1) {
const baseUrl = getBaseUrlForLocale(local);
const url = `${baseUrl}products?status=publish&per_page=${productCount}&page=${page}`;
try {
const apiResult = await connector.get(url);
const {
isValid,
result
} = apiValidator(apiResult);
if (isValid) return result.map(mapProduct);
return [];
} catch (e) {
return [];
}
}
async function getProductsByCategoryId(connector, local, categoryId, productCount = 100, page = 1) {
const baseUrl = getBaseUrlForLocale(local);
const url = `${baseUrl}products?status=publish&categories=${categoryId}&per_page=${productCount}&page=${page}`;
try {
const apiResult = await connector.get(url);
const {
isValid,
result
} = apiValidator(apiResult);
if (isValid) return result.map(mapProduct);
return [];
} catch (e) {
return [];
}
}
async function getSimilarProducts(connector, local, productCount = 4, categoryId) {
const baseUrl = getBaseUrlForLocale(local);
const url = `${baseUrl}products?status=publish&per_page=${productCount}&categories=${categoryId}`;
try {
const apiResult = await connector.get(url);
const {
isValid,
result
} = apiValidator(apiResult);
if (isValid) return result.map(mapProduct);
return [];
} catch (e) {
return [];
}
}
async function getSlides(connector, local, slideCount = 1, page = 1) {
const baseUrl = getBaseUrlForLocale(local);
const url = `${baseUrl}slides?status=publish&per_page=${slideCount}&page=${page}`;
try {
const apiResult = await connector.get(url);
const {
isValid,
result
} = apiValidator(apiResult);
if (isValid) return result.map(slide => {
return {
id: slide.id,
title: slide.acf.slide_title,
description: slide.acf.slide_description,
link: slide.acf.slide_link,
image: slide.acf.slide_image
};
});
return [];
} catch (e) {
return [];
}
}
async function getAgents(connector, local, agentsCount = 100, page = 1) {
const baseUrl = getBaseUrlForLocale(local);
const url = `${baseUrl}agent?status=publish&per_page=${agentsCount}&page=${page}`;
try {
const apiResult = await connector.get(url);
const {
isValid,
result
} = apiValidator(apiResult);
if (isValid) return result.map(mapAgent);
return [];
} catch (e) {
return [];
}
}
/***/ }),
/* 11 */
/***/ (function(module, exports) {
module.exports = require("vue-no-ssr");
/***/ }),
/* 12 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addScopeIdToHtmlStringTags; });
/* unused harmony export convertToEnNumber */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getDateDeference; });
/* unused harmony export getUrlParameter */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return isEmailValid; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return isNullOrEmpty; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return isEnCharactersOnly; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return convertImagePathToAvif; });
function addScopeIdToHtmlStringTags(htmlString, scopeId) {
return String(htmlString).replace(new RegExp("<b>", "g"), `<b ${scopeId}>`).replace(new RegExp("<div>", "g"), `<div ${scopeId}>`).replace(new RegExp("<p>", "g"), `<p ${scopeId}>`);
}
function convertToEnNumber(value) {
if (!value) return value;
value = value.replace(new RegExp('۰', 'g'), '0').replace(new RegExp('٠', 'g'), '0');
value = value.replace(new RegExp('۱', 'g'), '1').replace(new RegExp('١', 'g'), '1');
value = value.replace(new RegExp('۲', 'g'), '2').replace(new RegExp('٢', 'g'), '2');
value = value.replace(new RegExp('۳', 'g'), '3').replace(new RegExp('٣', 'g'), '3');
value = value.replace(new RegExp('۴', 'g'), '4').replace(new RegExp('٤', 'g'), '4');
value = value.replace(new RegExp('۵', 'g'), '5').replace(new RegExp('٥', 'g'), '5');
value = value.replace(new RegExp('۶', 'g'), '6').replace(new RegExp('٦', 'g'), '6');
value = value.replace(new RegExp('۷', 'g'), '7').replace(new RegExp('٧', 'g'), '7');
value = value.replace(new RegExp('۸', 'g'), '8').replace(new RegExp('٨', 'g'), '8');
value = value.replace(new RegExp('۹', 'g'), '9').replace(new RegExp('٩', 'g'), '9');
return value;
}
function getDateDeference(publishDate, translate) {
const blogDate = new Date(publishDate);
const today = new Date();
const diffTime = today.getTime() - blogDate.getTime();
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
if (diffDays == 0) return translate("today");
if (diffDays == 1) return translate("yesterday");
if (diffDays > 1 && diffDays < 7) return diffDays + " " + translate("days ago");
if (diffDays == 7) return diffDays + " " + translate("week ago");
if (diffDays > 7 && diffDays <= 30) {
let month = Math.floor(diffDays / 7);
return month + " " + translate("week ago");
}
if (diffDays > 7 && diffDays <= 365) {
let monthDif = Math.floor(diffDays / 30);
return monthDif + " " + translate("month ago");
}
var yearDif = today.getFullYear() - blogDate.getFullYear();
return yearDif + " " + translate("years ago");
}
function getUrlParameter(name) {
name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
let regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
let results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, ' '));
}
function isEmailValid(email) {
email = convertToEnNumber(email);
var filter = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return filter.test(email.trim());
}
function isNullOrEmpty(value) {
if (!value) return true;
return value.toString().trim() === '';
}
function isEnCharactersOnly(value) {
let pattern = /[0-9a-zA-Z-\s]+$/;
return pattern.test(value);
}
function convertImagePathToAvif(imageUrl) {
// if (!imageUrl) return "";
// // Check if the URL has a valid extension
// const urlParts = imageUrl.split('.');
// if (urlParts.length < 2) {
// return imageUrl
// }
// // Change the last part of the URL to 'avif'
// urlParts[urlParts.length - 1] = 'avif';
// return urlParts.join('.');
return imageUrl;
}
/***/ }),
/* 13 */
/***/ (function(module, exports) {
module.exports = require("vue-client-only");
/***/ }),
/* 14 */
/***/ (function(module, exports) {
module.exports = require("vue-router");
/***/ }),
/* 15 */
/***/ (function(module, exports) {
module.exports = require("cookie");
/***/ }),
/* 16 */
/***/ (function(module, exports) {
module.exports = require("vue-i18n");
/***/ }),
/* 17 */
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(41);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(3).default
module.exports.__inject__ = function (context) {
add("8c87f780", content, true, context)
};
/***/ }),
/* 18 */
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(43);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(3).default
module.exports.__inject__ = function (context) {
add("0cb15af7", content, true, context)
};
/***/ }),
/* 19 */
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(45);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(3).default
module.exports.__inject__ = function (context) {
add("2b9b45c0", content, true, context)
};
/***/ }),
/* 20 */
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(47);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(3).default
module.exports.__inject__ = function (context) {
add("662993f4", content, true, context)
};
/***/ }),
/* 21 */
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(49);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(3).default
module.exports.__inject__ = function (context) {
add("7a72a59c", content, true, context)
};
/***/ }),
/* 22 */
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(51);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(3).default
module.exports.__inject__ = function (context) {
add("4a2227c1", content, true, context)
};
/***/ }),
/* 23 */
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(53);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(3).default
module.exports.__inject__ = function (context) {
add("af164c04", content, true, context)
};
/***/ }),
/* 24 */
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(56);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(3).default
module.exports.__inject__ = function (context) {
add("2c5208d1", content, true, context)
};
/***/ }),
/* 25 */
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(58);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(3).default
module.exports.__inject__ = function (context) {
add("3202a58c", content, true, context)
};
/***/ }),
/* 26 */
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(60);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(3).default
module.exports.__inject__ = function (context) {
add("5f8704c8", content, true, context)
};
/***/ }),
/* 27 */
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(62);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(3).default
module.exports.__inject__ = function (context) {
add("6694b580", content, true, context)
};
/***/ }),
/* 28 */
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(64);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(3).default
module.exports.__inject__ = function (context) {
add("71653df1", content, true, context)
};
/***/ }),
/* 29 */
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(66);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(3).default
module.exports.__inject__ = function (context) {
add("7ad7f500", content, true, context)
};
/***/ }),
/* 30 */
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(68);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(3).default
module.exports.__inject__ = function (context) {
add("c16eb040", content, true, context)
};
/***/ }),
/* 31 */
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(70);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(3).default
module.exports.__inject__ = function (context) {
add("edeed436", content, true, context)
};
/***/ }),
/* 32 */
/***/ (function(module, exports) {
// This file is intentionally left empty for noop aliases
/***/ }),
/* 33 */
/***/ (function(module, exports) {
module.exports = require("node-fetch-native");
/***/ }),
/* 34 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
function isHTTPS(req, trustProxy) {
if (trustProxy === void 0) trustProxy = true;
// Check x-forwarded-proto header
var _xForwardedProto = trustProxy && req.headers ? req.headers['x-forwarded-proto'] : undefined;
var protoCheck = typeof _xForwardedProto === 'string' ? _xForwardedProto.includes('https') : undefined;
if (protoCheck) {
return true;
} // Check tlsSocket
var _encrypted = req.connection ? req.connection.encrypted : undefined;
var encryptedCheck = _encrypted !== undefined ? _encrypted === true : undefined;
if (encryptedCheck) {
return true;
}
if (protoCheck === undefined && encryptedCheck === undefined) {
return undefined;
}
return false;
}
module.exports = isHTTPS;
/***/ }),
/* 35 */
/***/ (function(module, exports) {
module.exports = require("defu");
/***/ }),
/* 36 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFilterDataByCategorySlug", function() { return getFilterDataByCategorySlug; });
const analogConvertorFilterData = [{
sectionTitle: "technicalFilter",
items: [{
title: "converter type",
key: "technical__008_converter_type",
inputType: "checkbox",
values: ["Analog to digital", "Digital to analog", "Isolator signal", "Signal converter"],
selectedValues: []
}]
}, {
sectionTitle: "Electrical Properties",
items: [{
title: "power supply",
key: "electrical__000_power_supply",
inputType: "checkbox",
values: ["12 VDC", "24 VDC", "230 VAC", "no power supply"],
selectedValues: []
}]
}, {
sectionTitle: "Display Properties",
items: [{
title: "display",
key: "display__000_display",
inputType: "radio",
values: ["true", "false"],
selectedValues: []
}]
}, {
sectionTitle: "Physical Properties",
items: [{
title: "installation type",
key: "physical__003_installation_type",
inputType: "checkbox",
values: ["Din Rail", "Panel", "walled", "desktop"],
selectedValues: []
}]
}, {
sectionTitle: "Analog Input Properties",
items: [{
title: "analog input",
key: "analog_input__000_analog_input",
inputType: "radio",
values: ["true", "false"],
selectedValues: []
}, {
title: "analog input type",
key: "analog_input__002_analog_input_type",
inputType: "radio",
values: ["0-10V; 0-5V; 0-20mA; 4-20mA", "0/4-20 mA; 0-5/10 V; ±5/10 V", "±0-20 mA; 0/4-20 mA; 0-5/10 V; ±5/10 V"],
selectedValues: []
}]
}, {
sectionTitle: "Analog Output Properties",
items: [{
title: "analog output",
key: "analog_output__000_analog_output",
inputType: "radio",
values: ["true", "false"],
selectedValues: []
}, {
title: "analog output type",
key: "analog_output__003_analog_output_type",
inputType: "checkbox",
values: ["0-10V; 0-5V; 0-20mA; 4-20mA", "0/4-20 mA; 0-5/10 V; ±5/10 V"],
selectedValues: []
}]
}, {
sectionTitle: "Serial Communication Properties",
items: [{
title: "serial communication",
key: "serial__000_serial_communication",
inputType: "radio",
values: ["true", "false"],
selectedValues: null
}, {
title: "port type",
key: "serial__002_serial_port_type",
inputType: "checkbox",
values: ["RS485", "RS232", "RS422"],
selectedValues: []
}]
}];
const counterTimerFilterData = [{
sectionTitle: "technicalFilter",
items: [{
title: "controller type",
key: "technical__012_controller_type",
inputType: "checkbox",
values: ["timer", "counter", "telemeter"],
selectedValues: []
}, {
title: "controller input type",
key: "technical__013_controller_input_type",
inputType: "checkbox",
values: ["Encoder", "NPN", "PNP"],
selectedValues: []
}]
}, {
sectionTitle: "inputOutputFilter",
items: [{
title: "analog output",
key: "analog_output__000_analog_output",
inputType: "radio",
values: ["true", "false"],
selectedValues: []
}, {
title: "analog output type",
key: "analog_output__003_analog_output_type",
inputType: "radio",
values: ["0-10V; 0-5V; 0-20mA; 4-20mA", "0/4-20 mA; 0-5/10 V; ±5/10 V"],
selectedValues: []
}]
}, {
sectionTitle: "connectionFilter",
items: [{
title: "serial communication",
key: "serial__000_serial_communication",
inputType: "radio",
values: ["true", "false"],
selectedValues: []
}, {
title: "serial port type",
key: "serial__002_serial_port_type",
inputType: "radio",
values: ["RS485", "RS232", "RS422"],
selectedValues: []
}]
}, {
sectionTitle: "otherFilter",
items: [{
title: "display",
key: "display__000_display",
inputType: "radio",
values: ["true", "false"],
selectedValues: []
}, {
title: "power supply",
key: "electrical__000_power_supply",
inputType: "checkbox",
values: ["12 VDC", "24 VDC", "230 VAC"],
selectedValues: []
}, {
title: "installation type",
key: "physical__003_installation_type",
inputType: "checkbox",
values: ["Din Rail", "Panel", "walled", "desktop"],
selectedValues: []
}]
}];
const ioDevelopmentFilterData = [{
sectionTitle: "technicalFilter",
items: [{
title: "number of digital outputs",
key: "technical__010_number_of_digital_outputs",
inputType: "checkbox",
values: ["4", "8", "12", "16"],
selectedValues: []
}, {
title: "number of digital inputs",
key: "technical__011_number_of_digital_inputs",
inputType: "checkbox",
values: ["4", "8", "12", "16"],
selectedValues: []
}]
}, {
sectionTitle: "Electrical Properties",
items: [{
title: "power supply",
key: "electrical__000_power_supply",
inputType: "checkbox",
values: ["12 VDC", "24 VDC", "230 VAC"],
selectedValues: []
}]
}, {
sectionTitle: "Physical Properties",
items: [{
title: "installation type",
key: "physical__003_installation_type",
inputType: "checkbox",
values: ["Din Rail", "Panel", "walled", "desktop"],
selectedValues: []
}]
}, {
sectionTitle: "Digital Input Properties",
items: [{
title: "digital input",
key: "digital_input__000_digital_input",
inputType: "radio",
values: ["true", "false"],
selectedValues: []
}]
}, {
sectionTitle: "Digital Output Properties",
items: [{
title: "digital output",
key: "digital_output__000_digital_output",
inputType: "radio",
values: ["true", "false"],
selectedValues: []
}]
}, {
sectionTitle: "Serial Communication Properties",
items: [{
title: "serial communication",
key: "serial__000_serial_communication",
inputType: "radio",
values: ["true", "false"],
selectedValues: null
}, {
title: "port type",
key: "serial__002_serial_port_type",
inputType: "checkbox",
values: ["RS485", "RS232", "RS422"],
selectedValues: []
}]
}];
const productsPageFilterData = [{
sectionTitle: "technicalFilter",
items: [{
title: "controller type",
key: "technical__012_controller_type",
inputType: "checkbox",
values: ["timer", "counter", "telemeter", "USB to RS232", "USB to RS485", "RS485 to FIELDBUS", "RS232 to FIELDBUS", "RS232 to RS485"],
selectedValues: []
}, {
title: "controller input type",
key: "technical__013_controller_input_type",
inputType: "checkbox",
values: ["Encoder", "NPN", "PNP"],
selectedValues: []
}]
}, {
sectionTitle: "Electrical Properties",
items: [{
title: "power supply",
key: "electrical__000_power_supply",
inputType: "checkbox",
values: ["12 VDC", "24 VDC", "230 VAC", "no power supply"],
selectedValues: []
}, {
title: "battery",
key: "electrical__002_battery",
inputType: "radio",
values: ["true", "false"],
selectedValues: []
}]
}, {
sectionTitle: "Physical Properties",
items: [{
title: "installation type",
key: "physical__003_installation_type",
inputType: "checkbox",
values: ["Din Rail", "Panel", "walled", "desktop"],
selectedValues: []
}]
}, {
sectionTitle: "Digital Input Properties",
items: [{
title: "digital input",
key: "digital_input__000_digital_input",
inputType: "radio",
values: ["true", "false"],
selectedValues: []
}]
}, {
sectionTitle: "Digital Output Properties",
items: [{
title: "digital output",
key: "digital_output__000_digital_output",
inputType: "radio",
values: ["true", "false"],
selectedValues: []
}]
}, {
sectionTitle: "Serial Communication Properties",
items: [{
title: "serial communication",
key: "serial__000_serial_communication",
inputType: "radio",
values: ["true", "false"],
selectedValues: null
}, {
title: "port type",
key: "serial__002_serial_port_type",
inputType: "checkbox",
values: ["RS485", "RS232", "RS422"],
selectedValues: []
}]
}, {
sectionTitle: "Display Properties",
items: [{
title: "display",
key: "display__000_display",
inputType: "radio",
values: ["true", "false"],
selectedValues: []
}]
}];
const serialConvertorFilterData = [{
sectionTitle: "technicalFilter",
items: [{
title: "converter type",
key: "technical__008_converter_type",
inputType: "checkbox",
values: ["USB to RS232", "USB to RS485", "RS485 to FIELDBUS", "RS232 to FIELDBUS", "RS232 to RS485"],
selectedValues: []
}]
}, {
sectionTitle: "Electrical Properties",
items: [{
title: "power supply",
key: "electrical__000_power_supply",
inputType: "checkbox",
values: ["12 VDC", "24 VDC", "230 VAC", "no power supply"],
selectedValues: []
}]
}, {
sectionTitle: "Physical Properties",
items: [{
title: "installation type",
key: "physical__003_installation_type",
inputType: "checkbox",
values: ["Din Rail", "Panel", "walled", "desktop"],
selectedValues: []
}]
}, {
sectionTitle: "Serial Communication Properties",
items: [{
title: "serial communication",
key: "serial__000_serial_communication",
inputType: "radio",
values: ["true", "false"],
selectedValues: null
}, {
title: "port type",
key: "serial__002_serial_port_type",
inputType: "checkbox",
values: ["RS485", "RS232", "RS422"],
selectedValues: []
}]
}, {
sectionTitle: "Fieldbus Properties",
items: [{
title: "fieldbus port type",
key: "fieldbus__002_fieldbus_port_type",
inputType: "checkbox",
values: ["CANopen", "CC-LINK", "DeviceNet", "EtherCAT", "Ethernet/IP", "Ethernet TCP/IP", "Modbus/TCP", "POWERLINK", "Profibus DP", "Profinet IO"],
selectedValues: []
}]
}];
const temperatureHumidityFilterData = [{
sectionTitle: "technicalFilter",
items: [{
title: "controller type",
key: "technical__012_controller_type",
inputType: "checkbox",
values: ["temperature", "humidity"],
selectedValues: []
}, {
title: "controller input type",
key: "technical__013_controller_input_type",
inputType: "checkbox",
values: ["RTD", "thermocouple k", "thermocouple j", "0-10V", "0/4-20mA"],
selectedValues: []
}, {
title: "control method",
key: "technical__014_control_method",
inputType: "checkbox",
values: ["pid", "on/off"],
selectedValues: []
}]
}, {
sectionTitle: "Electrical Properties",
items: [{
title: "power supply",
key: "electrical__000_power_supply",
inputType: "checkbox",
values: ["12 VDC", "24 VDC", "230 VAC"],
selectedValues: []
}]
}, {
sectionTitle: "Display Properties",
items: [{
title: "display",
key: "display__000_display",
inputType: "radio",
values: ["true", "false"],
selectedValues: []
}]
}, {
sectionTitle: "Physical Properties",
items: [{
title: "installation type",
key: "physical__003_installation_type",
inputType: "checkbox",
values: ["Din Rail", "Panel", "walled", "desktop"],
selectedValues: []
}]
}, {
sectionTitle: "Analog Output Properties",
items: [{
title: "analog output",
key: "analog_output__000_analog_output",
inputType: "radio",
values: ["true", "false"],
selectedValues: []
}, {
title: "analog output type",
key: "analog_output__003_analog_output_type",
inputType: "radio",
values: ["0-10V; 0-5V; 0-20mA; 4-20mA", "0/4-20 mA; 0-5/10 V; ±5/10 V"],
selectedValues: []
}]
}, {
sectionTitle: "Serial Communication Properties",
items: [{
title: "serial communication",
key: "serial__000_serial_communication",
inputType: "radio",
values: ["true", "false"],
selectedValues: null
}, {
title: "port type",
key: "serial__002_serial_port_type",
inputType: "checkbox",
values: ["RS485", "RS232", "RS422"],
selectedValues: []
}]
}];
const weighingFilterData = [{
sectionTitle: "technicalFilter",
items: [{
title: "load cells supply",
key: "technical__001_load_cells_supply",
inputType: "checkbox",
values: ["5 VDC", "10 VDC"],
selectedValues: []
}, {
title: "a/d_converter",
key: "technical__003_a/d_converter",
inputType: "checkbox",
values: ["24bit", "20bit", "16bit"],
selectedValues: []
}]
}, {
sectionTitle: "Electrical Properties",
items: [{
title: "power supply",
key: "electrical__000_power_supply",
inputType: "checkbox",
values: ["12 VDC", "24 VDC", "230 VAC", "no power supply"],
selectedValues: []
}]
}, {
sectionTitle: "Display Properties",
items: [{
title: "display",
key: "display__000_display",
inputType: "radio",
values: ["true", "false"],
selectedValues: []
}]
}, {
sectionTitle: "Physical Properties",
items: [{
title: "installation type",
key: "physical__003_installation_type",
inputType: "checkbox",
values: ["Din Rail", "Panel", "walled", "desktop"],
selectedValues: []
}]
}, {
sectionTitle: "Analog Output Properties",
items: [{
title: "analog output",
key: "analog_output__000_analog_output",
inputType: "radio",
values: ["true", "false"],
selectedValues: []
}, {
title: "analog output type",
key: "analog_output__003_analog_output_type",
inputType: "checkbox",
values: ["0-10V; 0-5V; 0-20mA; 4-20mA", "0/4-20 mA; 0-5/10 V; ±5/10 V"],
selectedValues: []
}, {
title: "isolation",
key: "analog_output__005_isolation",
inputType: "checkbox",
values: ["isolated", "non-isolated"],
selectedValues: []
}]
}, {
sectionTitle: "Digital Input Properties",
items: [{
title: "digital input",
key: "digital_input__000_digital_input",
inputType: "radio",
values: ["true", "false"],
selectedValues: []
}]
}, {
sectionTitle: "Digital Output Properties",
items: [{
title: "digital output",
key: "digital_output__000_digital_output",
inputType: "radio",
values: ["true", "false"],
selectedValues: []
}]
}, {
sectionTitle: "Serial Communication Properties",
items: [{
title: "serial communication",
key: "serial__000_serial_communication",
inputType: "radio",
values: ["true", "false"],
selectedValues: null
}, {
title: "port type",
key: "serial__002_serial_port_type",
inputType: "checkbox",
values: ["RS485", "RS232", "RS422"],
selectedValues: []
}]
}];
function getFilterDataByCategorySlug(slug) {
if (slug === "counter-timer") return counterTimerFilterData;
if (slug === "analog-converter") return analogConvertorFilterData;
if (slug === "serial-converter") return serialConvertorFilterData;
if (slug === "temperature-humidity") return temperatureHumidityFilterData;
if (slug === "io-development-module") return ioDevelopmentFilterData;
if (slug === "weight") return weighingFilterData;
return productsPageFilterData;
}
/***/ }),
/* 37 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(87);
/***/ }),
/* 38 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
const redirects = [
//articles
{
from: "/articles/36-industrial-automation/54-تفاوت-لودسل-4-سیم-و-6-سیم",
to: "/articles/post/تفاوت-لودسل-4-سیم-و-6-سیم"
}, {
from: "/articles/36-industrial-automation/49-روش-های-تست-لودسل",
to: "/articles/post/روش-های-تست-لودسل"
}, {
from: "/articles/36-industrial-automation/40-افزایش-دقت-اندازه-گیری-لودسل-به-کمک-ارت",
to: "/articles/post/افزایش-دقت-اندازه-گیری-لودسل-به-کمک-ارت"
},
//categories
{
from: "/products/weight",
to: "/products/category/weight"
}, {
from: "/products/converter",
to: "/products/category/analog-converter"
}, {
from: "/products/relay-board",
to: "/products/category/io-development-module"
}, {
from: "/products/controlers",
to: "/products/category/io-development-module"
},
//products
{
from: "/products/converter/usb/usb-rs485-isolated-converter",
to: "/products/مبدل-usb-به-rs485-ایزوله-pm-us01"
}, {
from: "/products/weight/transmitter/pm-ltd11a-weight-transmitter-analog-digital-rs485",
to: "/products/ترانسمیتر-و-نمایشگر-وزن-pm-ltd11a"
}, {
from: "/products/weight/transmitter/pm-ltd11t-weight-transmitter-digital-rs485",
to: "/products/ترانسمیتر-و-نمایشگر-وزنpm-ltd11r"
}, {
from: "/products/weight/indicator/pm-ld01-weight-indicator-rs485",
to: "/products/نمایشگر-وزن-pm-ld01"
}, {
from: "/products/weight/indicator/pm-ld01a-weight-indicator-rs485-analog",
to: "/products/نمایشگر-وزن-pm-ld01a"
}, {
from: "/products/weight/indicator/pm-ld31-weight-indicator-rs485",
to: "/products/نمایشگر-وزن-pm-ld31"
}, {
from: "/products/weight/indicator/pm-ld31a-weight-indicator-rs485-analog",
to: "/products/نمایشگر-وزن-pm-ld31a"
}, {
from: "/products/weight/transmitter/pm-lt11a-weight-transmitter-analog-rs485",
to: "/products/ترانسمیتر-وزن-pm-lt11a"
}, {
from: "/products/weight/transmitter/pm-lt11t-weight-transmitter-rs485",
to: "/products/ترانسمیتر-وزن-pm-lt11t"
}, {
from: "/products/weight/transmitter/pm-lt12a-2-channel-weight-transmitter-analog-rs485",
to: "/products/ترانسمیتر-وزن-دو-کانال-pm-lt12a"
}, {
from: "/products/weight/transmitter/pm-lt12t-2-channel-weight-transmitter-rs485",
to: "/products/ترانسمیتر-وزن-دو-کانال-pm-lt12t"
}, {
from: "/products/weight/transmitter/pm-lt12-2-channel-weight-transmitter-rs485",
to: "/products/ترانسمیتر-وزن-دو-کانال-pm-lt12"
}, {
from: "/products/temperature-humidity/display/temperature-indicator-controller-pm-tdc21",
to: "/products"
}, {
from: "/products/controlers/two-chanel-vibrate-controller",
to: "/products/کنترلر-ویبره-دو-کانال-pm-vc12"
}, {
from: "/products/converter/analog/signal-isolator-pm-iso11",
to: "/products/سیگنال-ایزولاتور-pm-iso11"
}, {
from: "/products/converter/analog/analog-converter-transmitter-pm-at13",
to: "/products/ترانسمیتر-آنالوگ-3-کانال-pm-at13"
}, {
from: "/products/relay-board/remote-io-rtu-module-pm-rio18t",
to: "/products/ماژول-ریموت-io-خروجی-ترانزیستور-pm-rio18t"
}, {
from: "/products/relay-board/remote-io-rtu-module-pm-rio18l",
to: "/products/ماژول-ریموت-io-خروجی-رله-5-آمپر-pm-rio18l"
}, {
from: "/products/relay-board/remote-io-rtu-module-pm-rio18h",
to: "/products/ماژول-ریموت-io-خروجی-رله-16-آمپر-pm-rio18h"
}, {
from: "/products/relay-board/relay-board-8",
to: "/products/برد-رله-8-کانال-pm-rl08s"
}, {
from: "/products/ترانسمیتر-دما-ترموکوپل-pm-tct11",
to: "/products/ترانسمیتر-دما-تک-کانال-ترموکوپل-pm-tt1x"
}];
/* harmony default export */ __webpack_exports__["default"] = (function (req, res, next) {
var url = req.url.split("?")[0];
var urlParams = null;
if (req.url.includes("?")) urlParams = "?" + req.url.split("?")[1];
const redirect = redirects.find(r => encodeURI(r.from) === url);
if (redirect) {
var newLocation = redirect.to;
if (urlParams) newLocation += urlParams;
res.writeHead(301, {
Location: encodeURI(newLocation)
});
res.end();
} else next();
});
/***/ }),
/* 39 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__.p + "img/error_page.289c1aa.png";
/***/ }),
/* 40 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_error_vue_vue_type_style_index_0_id_f1fe3c98_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_error_vue_vue_type_style_index_0_id_f1fe3c98_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_error_vue_vue_type_style_index_0_id_f1fe3c98_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_error_vue_vue_type_style_index_0_id_f1fe3c98_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_error_vue_vue_type_style_index_0_id_f1fe3c98_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/***/ }),
/* 41 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".error__page[data-v-f1fe3c98]{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:15px;text-align:center}.error__image[data-v-f1fe3c98]{display:block;margin:0 auto;max-width:550px;width:80%}.error__text[data-v-f1fe3c98]{font-size:14px;font-weight:700;margin-top:20px;text-align:center}", ""]);
// Exports
___CSS_LOADER_EXPORT___.locals = {};
module.exports = ___CSS_LOADER_EXPORT___;
/***/ }),
/* 42 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_3_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_3_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_3_oneOf_1_2_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_nuxt_loading_vue_vue_type_style_index_0_id_1597082a_prod_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(18);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_3_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_3_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_3_oneOf_1_2_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_nuxt_loading_vue_vue_type_style_index_0_id_1597082a_prod_lang_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_3_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_3_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_3_oneOf_1_2_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_nuxt_loading_vue_vue_type_style_index_0_id_1597082a_prod_lang_css__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_3_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_3_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_3_oneOf_1_2_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_nuxt_loading_vue_vue_type_style_index_0_id_1597082a_prod_lang_css__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_3_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_3_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_3_oneOf_1_2_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_nuxt_loading_vue_vue_type_style_index_0_id_1597082a_prod_lang_css__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/***/ }),
/* 43 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".nuxt-progress{background-color:#ffb301;height:5px;left:0;opacity:1;position:fixed;right:0;top:0;transition:width .1s,opacity .4s;width:0;z-index:999999}.nuxt-progress.nuxt-progress-notransition{transition:none}.nuxt-progress-failed{background-color:red}", ""]);
// Exports
___CSS_LOADER_EXPORT___.locals = {};
module.exports = ___CSS_LOADER_EXPORT___;
/***/ }),
/* 44 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_app_footer_copyright_vue_vue_type_style_index_0_id_11bd7140_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_app_footer_copyright_vue_vue_type_style_index_0_id_11bd7140_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_app_footer_copyright_vue_vue_type_style_index_0_id_11bd7140_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_app_footer_copyright_vue_vue_type_style_index_0_id_11bd7140_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_app_footer_copyright_vue_vue_type_style_index_0_id_11bd7140_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/***/ }),
/* 45 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".copyright[data-v-11bd7140]{background:#191b1e;color:#fff;font-size:12px;padding:8px 16px;text-align:center}.copyright__company[data-v-11bd7140]{color:#ffb301;display:inline-block;font-weight:700;margin:0 3px}", ""]);
// Exports
___CSS_LOADER_EXPORT___.locals = {};
module.exports = ___CSS_LOADER_EXPORT___;
/***/ }),
/* 46 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_app_footer_link_vue_vue_type_style_index_0_id_1a59aadf_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_app_footer_link_vue_vue_type_style_index_0_id_1a59aadf_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_app_footer_link_vue_vue_type_style_index_0_id_1a59aadf_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_app_footer_link_vue_vue_type_style_index_0_id_1a59aadf_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_app_footer_link_vue_vue_type_style_index_0_id_1a59aadf_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/***/ }),
/* 47 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".footer-link[data-v-1a59aadf]{color:#f7f7f7;display:block;font-size:13px;margin:10.66667px 0;overflow:hidden;-webkit-text-decoration:none;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;width:100%}.footer-link[data-v-1a59aadf]:hover{color:#ffb301}", ""]);
// Exports
___CSS_LOADER_EXPORT___.locals = {};
module.exports = ___CSS_LOADER_EXPORT___;
/***/ }),
/* 48 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_app_footer_title_vue_vue_type_style_index_0_id_26b8a362_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(21);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_app_footer_title_vue_vue_type_style_index_0_id_26b8a362_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_app_footer_title_vue_vue_type_style_index_0_id_26b8a362_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_app_footer_title_vue_vue_type_style_index_0_id_26b8a362_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_app_footer_title_vue_vue_type_style_index_0_id_26b8a362_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/***/ }),
/* 49 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".footer-title[data-v-26b8a362]{color:#fff;font-size:14px;font-weight:700;margin:16px 0;opacity:.8}", ""]);
// Exports
___CSS_LOADER_EXPORT___.locals = {};
module.exports = ___CSS_LOADER_EXPORT___;
/***/ }),
/* 50 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_app_footer_vue_vue_type_style_index_0_id_c796c878_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(22);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_app_footer_vue_vue_type_style_index_0_id_c796c878_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_app_footer_vue_vue_type_style_index_0_id_c796c878_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_app_footer_vue_vue_type_style_index_0_id_c796c878_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_app_footer_vue_vue_type_style_index_0_id_c796c878_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/***/ }),
/* 51 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".footer[data-v-c796c878]{background:#30343a;bottom:0;content-visibility:auto;justify-self:end;margin-bottom:0;margin-top:auto;right:0;width:100%}.footer__content[data-v-c796c878]{margin:0 auto;max-width:1080px;padding:16px}.footer__column-1[data-v-c796c878],.footer__column-2[data-v-c796c878]{display:inline-block;vertical-align:top;width:49%}.footer__column-3[data-v-c796c878]{border-top:1px solid #b7b7b7;display:block;margin-top:8px}.footer__column-4[data-v-c796c878]{display:none}.footer__text[data-v-c796c878]{color:#f7f7f7;display:block;font-size:13px;line-height:1.8;margin:10.66667px 0;-webkit-text-decoration:none;text-decoration:none}.footer__text--en[data-v-c796c878]{direction:ltr;text-align:right}.footer__text__icon[data-v-c796c878]{float:right;font-size:20px;margin-left:8px}.footer__text__icon--map[data-v-c796c878]{margin-bottom:30px}.footer__text--phone[data-v-c796c878]{display:inline-block;margin-left:5px;vertical-align:top}.footer__social-link[data-v-c796c878]{color:#f7f7f7;display:inline-block;font-size:20px;margin:5px 5px 5px 32px;-webkit-text-decoration:none;text-decoration:none}@media (min-width:1024px){.footer__column-1[data-v-c796c878],.footer__column-2[data-v-c796c878],.footer__column-3[data-v-c796c878],.footer__column-4[data-v-c796c878]{border:none;display:inline-block;margin-top:0;vertical-align:top;width:24.6%}.footer__column-1[data-v-c796c878],.footer__column-2[data-v-c796c878]{width:20.6%}.footer__column-3[data-v-c796c878],.footer__column-4[data-v-c796c878]{width:28.6%}.footer__column-4[data-v-c796c878]{padding-right:4%}}[data-lang=en] .footer__text[data-v-c796c878]{text-align:left}[data-lang=en] .footer__text--en[data-v-c796c878]{direction:ltr;text-align:left}[data-lang=en] .footer__text--phone[data-v-c796c878]{margin-left:0;margin-right:5px}[data-lang=en] .footer__text__icon[data-v-c796c878]{float:left;margin-left:0;margin-right:8px}[data-lang=en] .footer__social-link[data-v-c796c878]{margin-left:0;margin-right:32px}", ""]);
// Exports
___CSS_LOADER_EXPORT___.locals = {};
module.exports = ___CSS_LOADER_EXPORT___;
/***/ }),
/* 52 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_contact_bar_vue_vue_type_style_index_0_id_3172b8ce_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_contact_bar_vue_vue_type_style_index_0_id_3172b8ce_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_contact_bar_vue_vue_type_style_index_0_id_3172b8ce_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_contact_bar_vue_vue_type_style_index_0_id_3172b8ce_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_contact_bar_vue_vue_type_style_index_0_id_3172b8ce_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/***/ }),
/* 53 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".contact-bar[data-v-3172b8ce]{background:#30343a;color:#fff;font-size:13px;height:30px;line-height:30px;overflow:hidden;position:relative;white-space:nowrap;z-index:102}.contact-bar__contents[data-v-3172b8ce]{margin:0 auto;max-width:1080px;padding:0 16px}.contact-bar__icon[data-v-3172b8ce]{display:inline-block;font-size:20px;vertical-align:middle}.contact-bar__mail[data-v-3172b8ce],.contact-bar__support[data-v-3172b8ce]{color:#fff;direction:ltr;display:inline-block;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle}.contact-bar__support[data-v-3172b8ce]{contain:strict;height:32px;text-align:right;width:116px}.contact-bar__mail[data-v-3172b8ce]{float:left;text-align:left}.contact-bar__social-link[data-v-3172b8ce],.contact-bar__times[data-v-3172b8ce]{display:none}@media (min-width:1024px){.contact-bar__mail[data-v-3172b8ce],.contact-bar__support[data-v-3172b8ce],.contact-bar__times[data-v-3172b8ce]{display:inline-block;float:none;margin-left:32px}.contact-bar__social-link[data-v-3172b8ce]{color:#fff;display:block;float:left;font-size:17px;margin-right:32px;margin-top:3px;-webkit-text-decoration:none;text-decoration:none}}[data-lang=en] .contact-bar__support[data-v-3172b8ce]{float:right;text-align:right}[data-lang=en] .contact-bar__icon[data-v-3172b8ce]{float:left;margin-left:0;margin-right:4px;margin-top:4px}@media (min-width:1024px){[data-lang=en] .contact-bar__social-link[data-v-3172b8ce]{float:right;margin-left:32px;margin-right:0}[data-lang=en] .contact-bar__mail[data-v-3172b8ce],[data-lang=en] .contact-bar__support[data-v-3172b8ce],[data-lang=en] .contact-bar__times[data-v-3172b8ce]{float:none;margin-left:0;margin-right:32px}}", ""]);
// Exports
___CSS_LOADER_EXPORT___.locals = {};
module.exports = ___CSS_LOADER_EXPORT___;
/***/ }),
/* 54 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__.p + "img/logo.237ab1d.svg";
/***/ }),
/* 55 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_logo_link_vue_vue_type_style_index_0_id_3c251dd0_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(24);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_logo_link_vue_vue_type_style_index_0_id_3c251dd0_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_logo_link_vue_vue_type_style_index_0_id_3c251dd0_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_logo_link_vue_vue_type_style_index_0_id_3c251dd0_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_logo_link_vue_vue_type_style_index_0_id_3c251dd0_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/***/ }),
/* 56 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".logo-link[data-v-3c251dd0]{display:inline-block;overflow:hidden;position:relative;-webkit-text-decoration:none;text-decoration:none;vertical-align:text-top;width:100px}.logo-link[data-v-3c251dd0]:after{content:\"\";display:block;padding-top:24%}.logo[data-v-3c251dd0]{display:block;position:absolute;right:0;top:0;width:100%}", ""]);
// Exports
___CSS_LOADER_EXPORT___.locals = {};
module.exports = ___CSS_LOADER_EXPORT___;
/***/ }),
/* 57 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_item_vue_vue_type_style_index_0_id_24f586b6_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_item_vue_vue_type_style_index_0_id_24f586b6_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_item_vue_vue_type_style_index_0_id_24f586b6_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_item_vue_vue_type_style_index_0_id_24f586b6_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_item_vue_vue_type_style_index_0_id_24f586b6_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/***/ }),
/* 58 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".child-link[data-v-24f586b6],.root-link[data-v-24f586b6]{color:#222428;cursor:pointer;display:block;height:32px;line-height:32px;overflow:hidden;-webkit-text-decoration:none;text-decoration:none;width:100%}.child-link[data-v-24f586b6]:hover,.root-link[data-v-24f586b6]:hover{color:#ffb301}.root-link[data-v-24f586b6]{font-weight:700;position:relative}.root-link__go-parent-on-desktop[data-v-24f586b6]{display:none}.root-link--has-child[data-v-24f586b6]{height:auto}@media (min-width:1024px){.root-link[data-v-24f586b6]{display:inline-block;height:50px;line-height:50px;padding:0 16px;vertical-align:middle;width:auto}.root-link--has-child[data-v-24f586b6]{position:relative}.root-link--has-child .root-link__go-parent-on-desktop[data-v-24f586b6]{display:block;height:100%;position:absolute;right:0;top:0;width:100%}.root-link--has-child[data-v-24f586b6]:hover{overflow:visible}.root-link--has-child:hover .links-childs-wrapper[data-v-24f586b6]{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.16);height:auto;opacity:1;right:0;top:50px;width:260px}.root-link[data-is-catalog=true][data-v-24f586b6]{background-color:#00c26d;border-radius:16px;color:#fff;height:32px;line-height:32px}.root-link[data-is-catalog=true][data-v-24f586b6]:hover{background-color:#03a35e}}.root-link--active[data-v-24f586b6]{color:#ffb301}.links-childs-wrapper[data-v-24f586b6]{height:0;opacity:0;overflow:hidden;position:relative;transition:all .2s ease-in-out}.links-childs-wrapper--active[data-v-24f586b6]{height:auto;opacity:1}@media (min-width:1024px){.links-childs-wrapper[data-v-24f586b6]{position:absolute}}.child-link[data-v-24f586b6]{font-weight:400}@media (min-width:1024px){.child-link[data-v-24f586b6]{padding:0 16px;text-align:right}[data-lang=en] .links-childs-wrapper[data-v-24f586b6]{left:0;right:auto}[data-lang=en] .child-link[data-v-24f586b6]{text-align:left}}", ""]);
// Exports
___CSS_LOADER_EXPORT___.locals = {};
module.exports = ___CSS_LOADER_EXPORT___;
/***/ }),
/* 59 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_product_categories_vue_vue_type_style_index_0_id_4659a80d_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_product_categories_vue_vue_type_style_index_0_id_4659a80d_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_product_categories_vue_vue_type_style_index_0_id_4659a80d_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_product_categories_vue_vue_type_style_index_0_id_4659a80d_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_product_categories_vue_vue_type_style_index_0_id_4659a80d_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/***/ }),
/* 60 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".category__base[data-v-4659a80d],.category__level1-link[data-v-4659a80d],.category__level2-link[data-v-4659a80d]{color:#222428;cursor:pointer;display:block;height:32px;line-height:32px;-webkit-text-decoration:none;text-decoration:none;width:100%}[data-lang=en] .category__base[data-v-4659a80d],[data-lang=en] .category__level1-link[data-v-4659a80d],[data-lang=en] .category__level2-link[data-v-4659a80d]{direction:ltr;text-align:left}.category__base[data-v-4659a80d]:hover,.category__level1-link[data-v-4659a80d]:hover,.category__level2-link[data-v-4659a80d]:hover{color:#ffb301}.category[data-v-4659a80d]{display:block}.category__base[data-v-4659a80d]{font-weight:700;position:relative}.category__icon[data-v-4659a80d]{display:inline-block;height:16px;margin-left:16px;vertical-align:middle;width:16px}[data-lang=en] .category__icon[data-v-4659a80d]{margin-left:0;margin-right:16px}.category__icon--level2[data-v-4659a80d]{display:none}.category__level1-group[data-v-4659a80d]{display:block;padding:0 8px 0 0}[data-lang=en] .category__level1-group[data-v-4659a80d]{padding:0 0 0 8px}.category__level2[data-v-4659a80d]{display:block;padding-right:36px}[data-lang=en] .category__level2[data-v-4659a80d]{padding-left:36px;padding-right:0}.category__level2-link[data-v-4659a80d]{color:#4c4c4c}@media (min-width:1024px){.category[data-v-4659a80d]{display:inline-block;padding:0 16px;position:relative;vertical-align:middle;width:auto}.category[data-v-4659a80d],.category__base[data-v-4659a80d]{height:50px;line-height:50px}.category__base[data-v-4659a80d]{cursor:pointer;display:block}.category__level1[data-v-4659a80d]{background:#f7f7f7;opacity:0;padding:8px 0;pointer-events:none;position:absolute;right:8px;top:50px;transform:translateY(-10%);transition:transform .1s ease-in,opacity .15s ease-in;width:280px}[data-lang=en] .category__level1[data-v-4659a80d]{left:8px;right:auto}.category:hover .category__level1[data-v-4659a80d]{opacity:1;pointer-events:all;transform:translateY(0)}.category__level1-link[data-v-4659a80d]{height:42px;line-height:42px;padding:0 12px}.category__level1-group--has-child .category__level1-link[data-v-4659a80d]:before{border-left:2px solid #222428;border-top:2px solid #222428;content:\"\";display:block;float:left;height:6px;margin-top:18px;transform:rotate(-45deg);width:6px}[data-lang=en] .category__level1-group--has-child .category__level1-link[data-v-4659a80d]:before{float:right;transform:rotate(135deg)}.category__level1-group:hover .category__level1-link[data-v-4659a80d]{color:#ffb301}.category__level1-group:hover .category__level1-link[data-v-4659a80d]:before{border-color:#ffb301}.category__level2[data-v-4659a80d]{background:#fff;font-size:0;min-height:100%;opacity:0;padding:12px;pointer-events:none;position:absolute;right:280px;top:0;transform:translateX(25%);transition:transform .1s ease-in,opacity .2s ease-in;width:280px}[data-lang=en] .category__level2[data-v-4659a80d]{left:280px;right:auto;transform:translateX(-25%)}.category__level1-group--has-child:hover .category__level2[data-v-4659a80d]{opacity:1;pointer-events:all;transform:translateX(0)}.category__icon--level2[data-v-4659a80d]{display:block;height:66.6px;margin:0 auto;width:100px}.category__level2-link[data-v-4659a80d]{display:inline-block;font-size:12px;height:auto;text-align:center;vertical-align:top;width:50%}}", ""]);
// Exports
___CSS_LOADER_EXPORT___.locals = {};
module.exports = ___CSS_LOADER_EXPORT___;
/***/ }),
/* 61 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_menu_drawer_vue_vue_type_style_index_0_id_249efb10_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_menu_drawer_vue_vue_type_style_index_0_id_249efb10_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_menu_drawer_vue_vue_type_style_index_0_id_249efb10_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_menu_drawer_vue_vue_type_style_index_0_id_249efb10_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_menu_drawer_vue_vue_type_style_index_0_id_249efb10_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/***/ }),
/* 62 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".drawer[data-v-249efb10]{background:#fff;bottom:0;content-visibility:auto;display:inline-block;height:100%;height:100vh;left:0;opacity:0;overflow:hidden;padding:50px 16px 152px;position:fixed;right:0;top:30px;transform:translateX(100%);transition:all .2s ease-in-out;vertical-align:middle;width:100%;z-index:101}.drawer--active[data-v-249efb10]{opacity:1;transform:translateX(0)}.drawer__header[data-v-249efb10]{background:#fff;height:50px;line-height:50px;padding:0 16px;position:fixed;right:0;top:0;width:100%}.drawer__close-btn[data-v-249efb10]{display:inline-block;font-size:32px;margin-left:8px;vertical-align:middle}.drawer__body[data-v-249efb10]{height:100%;overflow-y:auto}.drawer__footer[data-v-249efb10]{background:#fff;bottom:16px;height:120px;line-height:1;padding:10px 16px;position:fixed;right:0;text-align:center;width:100%}.drawer__call-btn[data-v-249efb10]{background:#30343a;border-radius:4px;color:#fff;direction:ltr;display:block;font-weight:700;height:32px;line-height:32px;margin:0 auto 24px;max-width:200px;padding:0 16px;text-align:center;-webkit-text-decoration:none;text-decoration:none}.drawer__call-btn__icon[data-v-249efb10]{display:inline-block;font-size:22px;margin-right:8px;vertical-align:middle}.drawer__social-link[data-v-249efb10]{color:#30343a;display:inline-block;font-size:18px;margin:0 16px;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle}@media (min-width:1024px){.drawer[data-v-249efb10]{bottom:auto;content-visibility:unset;font-weight:700;height:50px;left:auto;line-height:50px;opacity:1;overflow:visible;padding:0 32px 0 0;position:relative;right:auto;top:auto;transform:none;transition:none;width:calc(100% - 210px);z-index:inherit}.drawer__footer[data-v-249efb10],.drawer__header[data-v-249efb10]{display:none}.drawer__body[data-v-249efb10]{overflow:visible}}[data-lang=en] .drawer__close-btn[data-v-249efb10]{margin-left:0;margin-right:8px}[data-lang=en] .drawer__call-btn__icon[data-v-249efb10]{margin-left:8px;margin-right:0}[data-lang=en] .drawer__language-link--fa[data-v-249efb10]{display:block}[data-lang=en] .drawer__language-link--en[data-v-249efb10]{display:none}@media (min-width:1024px){[data-lang=en] .drawer[data-v-249efb10]{padding-left:32px;padding-right:0}}", ""]);
// Exports
___CSS_LOADER_EXPORT___.locals = {};
module.exports = ___CSS_LOADER_EXPORT___;
/***/ }),
/* 63 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_menu_bar_vue_vue_type_style_index_0_id_8df2affc_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_menu_bar_vue_vue_type_style_index_0_id_8df2affc_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_menu_bar_vue_vue_type_style_index_0_id_8df2affc_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_menu_bar_vue_vue_type_style_index_0_id_8df2affc_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_menu_bar_vue_vue_type_style_index_0_id_8df2affc_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/***/ }),
/* 64 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".menu-bar[data-v-8df2affc]{height:50px;line-height:50px}.menu-bar--colored[data-v-8df2affc]{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.16)}.menu-bar__contents[data-v-8df2affc]{margin:0 auto;max-width:1080px;padding:0 16px}@media (min-width:1024px){.menu-bar__contents[data-v-8df2affc]{padding:0 16px 0 0}}.menu-bar__hamburger-btn[data-v-8df2affc]{display:inline-block;font-size:32px;margin-left:8px;vertical-align:middle}@media (min-width:1024px){.menu-bar__hamburger-btn[data-v-8df2affc]{display:none}}.menu-bar__language-link[data-v-8df2affc]{color:#222428;cursor:pointer;float:left;height:50px;line-height:50px;overflow:hidden;-webkit-text-decoration:none;text-decoration:none;width:52px}.menu-bar__language-link[data-v-8df2affc]:hover{color:#ffb301}.menu-bar__language-link--fa[data-v-8df2affc]{display:none;font-family:Shabnam,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,tahoma;text-align:right}@media (min-width:1024px){.menu-bar__language-link--fa[data-v-8df2affc]{margin-right:15px}}.menu-bar__language-link--en[data-v-8df2affc]{display:block;text-align:left}@media (min-width:1024px){.menu-bar__language-link--en[data-v-8df2affc]{margin-left:15px}}[data-lang=en] .menu-bar__hamburger-btn[data-v-8df2affc]{margin-left:0;margin-right:8px}@media (min-width:1024px){[data-lang=en] .menu-bar__contents[data-v-8df2affc]{padding:0 0 0 16px}}[data-lang=en] .menu-bar__language-link[data-v-8df2affc]{float:right}[data-lang=en] .menu-bar__language-link--fa[data-v-8df2affc]{display:block}[data-lang=en] .menu-bar__language-link--en[data-v-8df2affc]{display:none}", ""]);
// Exports
___CSS_LOADER_EXPORT___.locals = {};
module.exports = ___CSS_LOADER_EXPORT___;
/***/ }),
/* 65 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_bar_vue_vue_type_style_index_0_id_83e62960_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_bar_vue_vue_type_style_index_0_id_83e62960_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_bar_vue_vue_type_style_index_0_id_83e62960_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_bar_vue_vue_type_style_index_0_id_83e62960_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_navigation_bar_vue_vue_type_style_index_0_id_83e62960_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/***/ }),
/* 66 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".navigation[data-v-83e62960]{height:80px;position:fixed;right:0;top:0;width:100%;will-change:transform;z-index:100}", ""]);
// Exports
___CSS_LOADER_EXPORT___.locals = {};
module.exports = ___CSS_LOADER_EXPORT___;
/***/ }),
/* 67 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_floatedContactBtn_vue_vue_type_style_index_0_id_02f82748_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(30);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_floatedContactBtn_vue_vue_type_style_index_0_id_02f82748_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_floatedContactBtn_vue_vue_type_style_index_0_id_02f82748_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_floatedContactBtn_vue_vue_type_style_index_0_id_02f82748_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_floatedContactBtn_vue_vue_type_style_index_0_id_02f82748_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/***/ }),
/* 68 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".contact[data-v-02f82748]{bottom:32px;position:fixed;right:8px;z-index:99}[data-lang=en] .contact[data-v-02f82748]{left:8px;right:auto}.contact__items-wrapper[data-v-02f82748]{bottom:64px;position:absolute;width:52px}.contact__item[data-v-02f82748]{background-color:transparent;background-position:50%;background-repeat:no-repeat;background-size:24px;border:none;border-radius:50%;box-shadow:0 4px 4px 0 rgba(0,0,0,.25);display:block;height:52px;margin-bottom:12px;position:relative;-webkit-text-decoration:none;text-decoration:none}.contact__item--blue[data-v-02f82748]{background-color:#4b72ff;background-image:url(/resources/icon-phone.svg)}.contact__item--green[data-v-02f82748]{background-color:#60d669;background-image:url(/resources/icon-wahtsapp.svg);background-size:30px}.contact__item__text[data-v-02f82748]{background-color:#fff;border-radius:16px;border-bottom-right-radius:0;box-shadow:0 4px 4px 0 rgba(0,0,0,.15);color:#222428;display:inline-block;font-size:12px;font-weight:700;height:32px;line-height:32px;padding:0 16px;position:absolute;right:56px;top:50%;transform:translateY(-50%);white-space:nowrap}[data-lang=en] .contact__item__text[data-v-02f82748]{border-radius:16px;border-bottom-left-radius:0;left:56px;right:auto}.contact__primary-action[data-v-02f82748]{background-color:#ffb301;background-position:50%;background-repeat:no-repeat;background-size:32px;border:none;border-radius:50%;border-bottom-left-radius:0;display:block;height:64px;position:relative;width:64px}.contact__primary-action--show[data-v-02f82748]{background-image:url(/resources/icon-phone.svg)}.contact__primary-action--close[data-v-02f82748]{background-image:url(/resources/icon-close.svg)}.contact__primary-action__text[data-v-02f82748]{right:68px}[data-lang=en] .contact__primary-action__text[data-v-02f82748]{left:68px;right:0}[data-lang=en] .contact__primary-action[data-v-02f82748]{border-bottom-left-radius:50%;border-bottom-right-radius:0}", ""]);
// Exports
___CSS_LOADER_EXPORT___.locals = {};
module.exports = ___CSS_LOADER_EXPORT___;
/***/ }),
/* 69 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_default_vue_vue_type_style_index_0_id_b6916b70_prod_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_default_vue_vue_type_style_index_0_id_b6916b70_prod_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_default_vue_vue_type_style_index_0_id_b6916b70_prod_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_default_vue_vue_type_style_index_0_id_b6916b70_prod_lang_scss__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_node_modules_string_replace_loader_index_js_ref_12_default_vue_vue_type_style_index_0_id_b6916b70_prod_lang_scss__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/***/ }),
/* 70 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});
// Module
___CSS_LOADER_EXPORT___.push([module.i, "@font-face{font-display:block;font-family:\"icomoon\";font-style:normal;font-weight:400;src:url(/fonts/icomoon.woff2) format(\"woff2\"),url(/fonts/icomoon.woff) format(\"woff\"),url(/fonts/icomoon.ttf) format(\"truetype\"),url(/fonts/icomoon.svg#icomoon) format(\"svg\")}[class*=\" icon-\"],[class^=icon-]{font-family:\"icomoon\"!important;speak:never;font-feature-settings:normal;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-aparat:before{content:\"\\e900\"}.icon-linkedin:before{content:\"\\e901\"}.icon-youtube:before{content:\"\\e902\"}.icon-mail_outline:before{content:\"\\e903\"}.icon-add:before{content:\"\\e904\"}.icon-clear:before{content:\"\\e905\"}.icon-map:before{content:\"\\e906\"}.icon-filter_list:before{content:\"\\e907\"}.icon-remove:before{content:\"\\e908\"}.icon-guarantee:before{content:\"\\e909\"}.icon-access_time:before{content:\"\\e90a\"}.icon-storage:before{content:\"\\e90b\"}.icon-instagram:before{content:\"\\e90c\"}.icon-mode_comment:before{content:\"\\e90d\"}.icon-file_download:before{content:\"\\e90e\"}.icon-telegram:before{content:\"\\e90f\"}.icon-compare:before{content:\"\\e910\"}.icon-support:before{content:\"\\e911\"}.icon-local_shipping:before{content:\"\\e912\"}.icon-arrow_back:before{content:\"\\e913\"}.icon-arrow_forward:before{content:\"\\e914\"}.icon-check:before{content:\"\\e915\"}.icon-menu:before{content:\"\\e916\"}.icon-share:before{content:\"\\e917\"}.icon-check_box:before{content:\"\\e918\"}.icon-star:before{content:\"\\e919\"}.icon-star_half:before{content:\"\\e91a\"}.icon-star_outline:before{content:\"\\e91b\"}.icon-twitter:before{content:\"\\e91c\"}.icon-description:before{content:\"\\e91d\"}.icon-done:before{content:\"\\e91e\"}.icon-keyboard_arrow_right:before{content:\"\\e91f\"}.icon-keyboard_arrow_left:before{content:\"\\e920\"}.icon-find_in_page:before{content:\"\\e921\"}.icon-language:before{content:\"\\e922\"}.icon-keyboard_arrow_down:before{content:\"\\e923\"}.icon-search:before{content:\"\\e924\"}.icon-view_list:before{content:\"\\e925\"}.icon-zoom_in:before{content:\"\\e926\"}.icon-zoom_out:before{content:\"\\e927\"}@font-face{font-display:swap;font-family:Shabnam;font-weight:400;src:url(/fonts/Shabnam-FD.woff2) format(\"woff2\"),url(/fonts/Shabnam-FD.eot?#iefix) format(\"embedded-opentype\"),url(/fonts/Shabnam-FD.woff) format(\"woff\"),url(/fonts/Shabnam-FD.ttf) format(\"truetype\")}@font-face{font-display:swap;font-family:Shabnam;font-weight:700;src:url(/fonts/Shabnam-Bold-FD.woff2) format(\"woff2\"),url(/fonts/Shabnam-Bold-FD.eot?#iefix) format(\"embedded-opentype\"),url(/fonts/Shabnam-Bold-FD.woff) format(\"woff\"),url(/fonts/Shabnam-Bold-FD.ttf) format(\"truetype\")}@font-face{font-display:swap;font-family:Shabnam;font-weight:100;src:url(/fonts/Shabnam-Thin-FD.woff2) format(\"woff2\"),url(/fonts/Shabnam-Thin-FD.eot?#iefix) format(\"embedded-opentype\"),url(/fonts/Shabnam-Thin-FD.woff) format(\"woff\"),url(/fonts/Shabnam-Thin-FD.ttf) format(\"truetype\")}@font-face{font-display:swap;font-family:Shabnam;font-weight:300;src:url(/fonts/Shabnam-Light-FD.woff2) format(\"woff2\"),url(/fonts/Shabnam-Light-FD.eot?#iefix) format(\"embedded-opentype\"),url(/fonts/Shabnam-Light-FD.woff) format(\"woff\"),url(/fonts/Shabnam-Light-FD.ttf) format(\"truetype\")}@font-face{font-display:swap;font-family:Shabnam;font-weight:500;src:url(/fonts/Shabnam-Medium-FD.woff2) format(\"woff2\"),url(/fonts/Shabnam-Medium-FD.eot?#iefix) format(\"embedded-opentype\"),url(/fonts/Shabnam-Medium-FD.woff) format(\"woff\"),url(/fonts/Shabnam-Medium-FD.ttf) format(\"truetype\")}*{box-sizing:border-box}html{background:#f7f7f7;font-family:Shabnam,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,tahoma;font-size:14px}body,html{min-height:100vh}body{margin:0;padding:0}.app{direction:rtl;display:flex;flex-direction:column;justify-content:start;min-height:100vh;padding-top:80px}.app--en{direction:ltr;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,tahoma}", ""]);
// Exports
___CSS_LOADER_EXPORT___.locals = {};
module.exports = ___CSS_LOADER_EXPORT___;
/***/ }),
/* 71 */
/***/ (function(module, exports) {
module.exports = require("intersection-observer");
/***/ }),
/* 72 */
/***/ (function(module, exports) {
module.exports = require("js-cookie");
/***/ }),
/* 73 */
/***/ (function(module, exports) {
module.exports = require("url");
/***/ }),
/* 74 */
/***/ (function(module, exports) {
module.exports = require("core-js/modules/esnext.map.delete-all.js");
/***/ }),
/* 75 */
/***/ (function(module, exports) {
module.exports = require("core-js/modules/esnext.map.every.js");
/***/ }),
/* 76 */
/***/ (function(module, exports) {
module.exports = require("core-js/modules/esnext.map.filter.js");
/***/ }),
/* 77 */
/***/ (function(module, exports) {
module.exports = require("core-js/modules/esnext.map.find.js");
/***/ }),
/* 78 */
/***/ (function(module, exports) {
module.exports = require("core-js/modules/esnext.map.find-key.js");
/***/ }),
/* 79 */
/***/ (function(module, exports) {
module.exports = require("core-js/modules/esnext.map.includes.js");
/***/ }),
/* 80 */
/***/ (function(module, exports) {
module.exports = require("core-js/modules/esnext.map.key-of.js");
/***/ }),
/* 81 */
/***/ (function(module, exports) {
module.exports = require("core-js/modules/esnext.map.map-keys.js");
/***/ }),
/* 82 */
/***/ (function(module, exports) {
module.exports = require("core-js/modules/esnext.map.map-values.js");
/***/ }),
/* 83 */
/***/ (function(module, exports) {
module.exports = require("core-js/modules/esnext.map.merge.js");
/***/ }),
/* 84 */
/***/ (function(module, exports) {
module.exports = require("core-js/modules/esnext.map.reduce.js");
/***/ }),
/* 85 */
/***/ (function(module, exports) {
module.exports = require("core-js/modules/esnext.map.some.js");
/***/ }),
/* 86 */
/***/ (function(module, exports) {
module.exports = require("core-js/modules/esnext.map.update.js");
/***/ }),
/* 87 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// EXTERNAL MODULE: external "vue"
var external_vue_ = __webpack_require__(0);
var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);
// EXTERNAL MODULE: external "ufo"
var external_ufo_ = __webpack_require__(4);
// EXTERNAL MODULE: external "node-fetch-native"
var external_node_fetch_native_ = __webpack_require__(33);
var external_node_fetch_native_default = /*#__PURE__*/__webpack_require__.n(external_node_fetch_native_);
// CONCATENATED MODULE: ./.nuxt/middleware.js
const middleware = {};
middleware['redirects'] = __webpack_require__(38);
middleware['redirects'] = middleware['redirects'].default || middleware['redirects'];
/* harmony default export */ var _nuxt_middleware = (middleware);
// CONCATENATED MODULE: ./.nuxt/utils.js
// window.{{globals.loadedCallback}} hook
// Useful for jsdom testing or plugins (https://github.com/tmpvar/jsdom#dealing-with-asynchronous-script-loading)
if (false) {}
function createGetCounter(counterObject, defaultKey = '') {
return function getCounter(id = defaultKey) {
if (counterObject[id] === undefined) {
counterObject[id] = 0;
}
return counterObject[id]++;
};
}
function empty() {}
function globalHandleError(error) {
if (external_vue_default.a.config.errorHandler) {
external_vue_default.a.config.errorHandler(error);
}
}
function interopDefault(promise) {
return promise.then(m => m.default || m);
}
function hasFetch(vm) {
return vm.$options && typeof vm.$options.fetch === 'function' && !vm.$options.fetch.length;
}
function purifyData(data) {
if (true) {
return data;
}
return Object.entries(data).filter(([key, value]) => {
const valid = !(value instanceof Function) && !(value instanceof Promise);
if (!valid) {
console.warn(`${key} is not able to be stringified. This will break in a production environment.`);
}
return valid;
}).reduce((obj, [key, value]) => {
obj[key] = value;
return obj;
}, {});
}
function getChildrenComponentInstancesUsingFetch(vm, instances = []) {
const children = vm.$children || [];
for (const child of children) {
if (child.$fetch) {
instances.push(child);
}
if (child.$children) {
getChildrenComponentInstancesUsingFetch(child, instances);
}
}
return instances;
}
function applyAsyncData(Component, asyncData) {
if (
// For SSR, we once all this function without second param to just apply asyncData
// Prevent doing this for each SSR request
!asyncData && Component.options.__hasNuxtData) {
return;
}
const ComponentData = Component.options._originDataFn || Component.options.data || function () {
return {};
};
Component.options._originDataFn = ComponentData;
Component.options.data = function () {
const data = ComponentData.call(this, this);
if (this.$ssrContext) {
asyncData = this.$ssrContext.asyncData[Component.cid];
}
return {
...data,
...asyncData
};
};
Component.options.__hasNuxtData = true;
if (Component._Ctor && Component._Ctor.options) {
Component._Ctor.options.data = Component.options.data;
}
}
function sanitizeComponent(Component) {
// If Component already sanitized
if (Component.options && Component._Ctor === Component) {
return Component;
}
if (!Component.options) {
Component = external_vue_default.a.extend(Component); // fix issue #6
Component._Ctor = Component;
} else {
Component._Ctor = Component;
Component.extendOptions = Component.options;
}
// If no component name defined, set file path as name, (also fixes #5703)
if (!Component.options.name && Component.options.__file) {
Component.options.name = Component.options.__file;
}
return Component;
}
function getMatchedComponents(route, matches = false, prop = 'components') {
return Array.prototype.concat.apply([], route.matched.map((m, index) => {
return Object.keys(m[prop]).map(key => {
matches && matches.push(index);
return m[prop][key];
});
}));
}
function getMatchedComponentsInstances(route, matches = false) {
return getMatchedComponents(route, matches, 'instances');
}
function flatMapComponents(route, fn) {
return Array.prototype.concat.apply([], route.matched.map((m, index) => {
return Object.keys(m.components).reduce((promises, key) => {
if (m.components[key]) {
promises.push(fn(m.components[key], m.instances[key], m, key, index));
} else {
delete m.components[key];
}
return promises;
}, []);
}));
}
function resolveRouteComponents(route, fn) {
return Promise.all(flatMapComponents(route, async (Component, instance, match, key) => {
// If component is a function, resolve it
if (typeof Component === 'function' && !Component.options) {
try {
Component = await Component();
} catch (error) {
// Handle webpack chunk loading errors
// This may be due to a new deployment or a network problem
if (error && error.name === 'ChunkLoadError' && typeof window !== 'undefined' && window.sessionStorage) {
const timeNow = Date.now();
try {
const previousReloadTime = parseInt(window.sessionStorage.getItem('nuxt-reload'));
// check for previous reload time not to reload infinitely
if (!previousReloadTime || previousReloadTime + 60000 < timeNow) {
window.sessionStorage.setItem('nuxt-reload', timeNow);
window.location.reload(true /* skip cache */);
}
} catch {
// don't throw an error if we have issues reading sessionStorage
}
}
throw error;
}
}
match.components[key] = Component = sanitizeComponent(Component);
return typeof fn === 'function' ? fn(Component, instance, match, key) : Component;
}));
}
async function getRouteData(route) {
if (!route) {
return;
}
// Make sure the components are resolved (code-splitting)
await resolveRouteComponents(route);
// Send back a copy of route with meta based on Component definition
return {
...route,
meta: getMatchedComponents(route).map((Component, index) => {
return {
...Component.options.meta,
...(route.matched[index] || {}).meta
};
})
};
}
async function setContext(app, context) {
// If context not defined, create it
if (!app.context) {
app.context = {
isStatic: false,
isDev: false,
isHMR: false,
app,
store: app.store,
payload: context.payload,
error: context.error,
base: app.router.options.base,
env: {}
};
// Only set once
if (context.req) {
app.context.req = context.req;
}
if (context.res) {
app.context.res = context.res;
}
if (context.ssrContext) {
app.context.ssrContext = context.ssrContext;
}
app.context.redirect = (status, path, query) => {
if (!status) {
return;
}
app.context._redirected = true;
// if only 1 or 2 arguments: redirect('/') or redirect('/', { foo: 'bar' })
let pathType = typeof path;
if (typeof status !== 'number' && (pathType === 'undefined' || pathType === 'object')) {
query = path || {};
path = status;
pathType = typeof path;
status = 302;
}
if (pathType === 'object') {
path = app.router.resolve(path).route.fullPath;
}
// "/absolute/route", "./relative/route" or "../relative/route"
if (/(^[.]{1,2}\/)|(^\/(?!\/))/.test(path)) {
app.context.next({
path,
query,
status
});
} else {
path = Object(external_ufo_["withQuery"])(path, query);
if (true) {
app.context.next({
path,
status
});
}
if (false) {}
}
};
if (true) {
app.context.beforeNuxtRender = fn => context.beforeRenderFns.push(fn);
app.context.beforeSerialize = fn => context.beforeSerializeFns.push(fn);
}
if (false) {}
}
// Dynamic keys
const [currentRouteData, fromRouteData] = await Promise.all([getRouteData(context.route), getRouteData(context.from)]);
if (context.route) {
app.context.route = currentRouteData;
}
if (context.from) {
app.context.from = fromRouteData;
}
if (context.error) {
app.context.error = context.error;
}
app.context.next = context.next;
app.context._redirected = false;
app.context._errored = false;
app.context.isHMR = false;
app.context.params = app.context.route.params || {};
app.context.query = app.context.route.query || {};
}
function middlewareSeries(promises, appContext, renderState) {
if (!promises.length || appContext._redirected || appContext._errored || renderState && renderState.aborted) {
return Promise.resolve();
}
return promisify(promises[0], appContext).then(() => {
return middlewareSeries(promises.slice(1), appContext, renderState);
});
}
function promisify(fn, context) {
let promise;
if (fn.length === 2) {
// fn(context, callback)
promise = new Promise(resolve => {
fn(context, function (err, data) {
if (err) {
context.error(err);
}
data = data || {};
resolve(data);
});
});
} else {
promise = fn(context);
}
if (promise && promise instanceof Promise && typeof promise.then === 'function') {
return promise;
}
return Promise.resolve(promise);
}
// Imported from vue-router
function getLocation(base, mode) {
if (mode === 'hash') {
return window.location.hash.replace(/^#\//, '');
}
base = decodeURI(base).slice(0, -1); // consideration is base is normalized with trailing slash
let path = decodeURI(window.location.pathname);
if (base && path.startsWith(base)) {
path = path.slice(base.length);
}
const fullPath = (path || '/') + window.location.search + window.location.hash;
return Object(external_ufo_["normalizeURL"])(fullPath);
}
// Imported from path-to-regexp
/**
* Compile a string to a template function for the path.
*
* @param {string} str
* @param {Object=} options
* @return {!function(Object=, Object=)}
*/
function compile(str, options) {
return tokensToFunction(parse(str, options), options);
}
function getQueryDiff(toQuery, fromQuery) {
const diff = {};
const queries = {
...toQuery,
...fromQuery
};
for (const k in queries) {
if (String(toQuery[k]) !== String(fromQuery[k])) {
diff[k] = true;
}
}
return diff;
}
function normalizeError(err) {
let message;
if (!(err.message || typeof err === 'string')) {
try {
message = JSON.stringify(err, null, 2);
} catch (e) {
message = `[${err.constructor.name}]`;
}
} else {
message = err.message || err;
}
return {
...err,
message,
statusCode: err.statusCode || err.status || err.response && err.response.status || 500
};
}
/**
* The main path matching regexp utility.
*
* @type {RegExp}
*/
const PATH_REGEXP = new RegExp([
// Match escaped characters that would otherwise appear in future matches.
// This allows the user to escape special characters that won't transform.
'(\\\\.)',
// Match Express-style parameters and un-named parameters with a prefix
// and optional suffixes. Matches appear as:
//
// "/:test(\\d+)?" => ["/", "test", "\d+", undefined, "?", undefined]
// "/route(\\d+)" => [undefined, undefined, undefined, "\d+", undefined, undefined]
// "/*" => ["/", undefined, undefined, undefined, undefined, "*"]
'([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))'].join('|'), 'g');
/**
* Parse a string for the raw tokens.
*
* @param {string} str
* @param {Object=} options
* @return {!Array}
*/
function parse(str, options) {
const tokens = [];
let key = 0;
let index = 0;
let path = '';
const defaultDelimiter = options && options.delimiter || '/';
let res;
while ((res = PATH_REGEXP.exec(str)) != null) {
const m = res[0];
const escaped = res[1];
const offset = res.index;
path += str.slice(index, offset);
index = offset + m.length;
// Ignore already escaped sequences.
if (escaped) {
path += escaped[1];
continue;
}
const next = str[index];
const prefix = res[2];
const name = res[3];
const capture = res[4];
const group = res[5];
const modifier = res[6];
const asterisk = res[7];
// Push the current path onto the tokens.
if (path) {
tokens.push(path);
path = '';
}
const partial = prefix != null && next != null && next !== prefix;
const repeat = modifier === '+' || modifier === '*';
const optional = modifier === '?' || modifier === '*';
const delimiter = res[2] || defaultDelimiter;
const pattern = capture || group;
tokens.push({
name: name || key++,
prefix: prefix || '',
delimiter,
optional,
repeat,
partial,
asterisk: Boolean(asterisk),
pattern: pattern ? escapeGroup(pattern) : asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?'
});
}
// Match any characters still remaining.
if (index < str.length) {
path += str.substr(index);
}
// If the path exists, push it onto the end.
if (path) {
tokens.push(path);
}
return tokens;
}
/**
* Prettier encoding of URI path segments.
*
* @param {string}
* @return {string}
*/
function encodeURIComponentPretty(str, slashAllowed) {
const re = slashAllowed ? /[?#]/g : /[/?#]/g;
return encodeURI(str).replace(re, c => {
return '%' + c.charCodeAt(0).toString(16).toUpperCase();
});
}
/**
* Encode the asterisk parameter. Similar to `pretty`, but allows slashes.
*
* @param {string}
* @return {string}
*/
function encodeAsterisk(str) {
return encodeURIComponentPretty(str, true);
}
/**
* Escape a regular expression string.
*
* @param {string} str
* @return {string}
*/
function escapeString(str) {
return str.replace(/([.+*?=^!:${}()[\]|/\\])/g, '\\$1');
}
/**
* Escape the capturing group by escaping special characters and meaning.
*
* @param {string} group
* @return {string}
*/
function escapeGroup(group) {
return group.replace(/([=!:$/()])/g, '\\$1');
}
/**
* Expose a method for transforming tokens into the path function.
*/
function tokensToFunction(tokens, options) {
// Compile all the tokens into regexps.
const matches = new Array(tokens.length);
// Compile all the patterns before compilation.
for (let i = 0; i < tokens.length; i++) {
if (typeof tokens[i] === 'object') {
matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));
}
}
return function (obj, opts) {
let path = '';
const data = obj || {};
const options = opts || {};
const encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;
for (let i = 0; i < tokens.length; i++) {
const token = tokens[i];
if (typeof token === 'string') {
path += token;
continue;
}
const value = data[token.name || 'pathMatch'];
let segment;
if (value == null) {
if (token.optional) {
// Prepend partial segment prefixes.
if (token.partial) {
path += token.prefix;
}
continue;
} else {
throw new TypeError('Expected "' + token.name + '" to be defined');
}
}
if (Array.isArray(value)) {
if (!token.repeat) {
throw new TypeError('Expected "' + token.name + '" to not repeat, but received `' + JSON.stringify(value) + '`');
}
if (value.length === 0) {
if (token.optional) {
continue;
} else {
throw new TypeError('Expected "' + token.name + '" to not be empty');
}
}
for (let j = 0; j < value.length; j++) {
segment = encode(value[j]);
if (!matches[i].test(segment)) {
throw new TypeError('Expected all "' + token.name + '" to match "' + token.pattern + '", but received `' + JSON.stringify(segment) + '`');
}
path += (j === 0 ? token.prefix : token.delimiter) + segment;
}
continue;
}
segment = token.asterisk ? encodeAsterisk(value) : encode(value);
if (!matches[i].test(segment)) {
throw new TypeError('Expected "' + token.name + '" to match "' + token.pattern + '", but received "' + segment + '"');
}
path += token.prefix + segment;
}
return path;
};
}
/**
* Get the flags for a regexp from the options.
*
* @param {Object} options
* @return {string}
*/
function flags(options) {
return options && options.sensitive ? '' : 'i';
}
function addLifecycleHook(vm, hook, fn) {
if (!vm.$options[hook]) {
vm.$options[hook] = [];
}
if (!vm.$options[hook].includes(fn)) {
vm.$options[hook].push(fn);
}
}
const urlJoin = external_ufo_["joinURL"];
const stripTrailingSlash = external_ufo_["withoutTrailingSlash"];
const isSamePath = external_ufo_["isSamePath"];
function setScrollRestoration(newVal) {
try {
window.history.scrollRestoration = newVal;
} catch (e) {}
}
// CONCATENATED MODULE: ./.nuxt/mixins/fetch.server.js
async function serverPrefetch() {
if (!this._fetchOnServer) {
return;
}
// Call and await on $fetch
try {
await this.$options.fetch.call(this);
} catch (err) {
if (false) {}
this.$fetchState.error = normalizeError(err);
}
this.$fetchState.pending = false;
// Define an ssrKey for hydration
this._fetchKey = this._fetchKey || this.$ssrContext.fetchCounters['']++;
// Add data-fetch-key on parent element of Component
const attrs = this.$vnode.data.attrs = this.$vnode.data.attrs || {};
attrs['data-fetch-key'] = this._fetchKey;
// Add to ssrContext for window.__NUXT__.fetch
this.$ssrContext.nuxt.fetch[this._fetchKey] = this.$fetchState.error ? {
_error: this.$fetchState.error
} : purifyData(this._data);
}
/* harmony default export */ var fetch_server = ({
created() {
if (!hasFetch(this)) {
return;
}
if (typeof this.$options.fetchOnServer === 'function') {
this._fetchOnServer = this.$options.fetchOnServer.call(this) !== false;
} else {
this._fetchOnServer = this.$options.fetchOnServer !== false;
}
const defaultKey = this.$options._scopeId || this.$options.name || '';
const getCounter = createGetCounter(this.$ssrContext.fetchCounters, defaultKey);
if (typeof this.$options.fetchKey === 'function') {
this._fetchKey = this.$options.fetchKey.call(this, getCounter);
} else {
const key = 'string' === typeof this.$options.fetchKey ? this.$options.fetchKey : defaultKey;
this._fetchKey = key ? key + ':' + getCounter(key) : String(getCounter(key));
}
// Added for remove vue undefined warning while ssr
this.$fetch = () => {}; // issue #8043
external_vue_default.a.util.defineReactive(this, '$fetchState', {
pending: true,
error: null,
timestamp: Date.now()
});
addLifecycleHook(this, 'serverPrefetch', serverPrefetch);
}
});
// EXTERNAL MODULE: external "vuex"
var external_vuex_ = __webpack_require__(7);
var external_vuex_default = /*#__PURE__*/__webpack_require__.n(external_vuex_);
// EXTERNAL MODULE: external "vue-meta"
var external_vue_meta_ = __webpack_require__(8);
var external_vue_meta_default = /*#__PURE__*/__webpack_require__.n(external_vue_meta_);
// EXTERNAL MODULE: external "vue-client-only"
var external_vue_client_only_ = __webpack_require__(13);
var external_vue_client_only_default = /*#__PURE__*/__webpack_require__.n(external_vue_client_only_);
// EXTERNAL MODULE: external "vue-no-ssr"
var external_vue_no_ssr_ = __webpack_require__(11);
var external_vue_no_ssr_default = /*#__PURE__*/__webpack_require__.n(external_vue_no_ssr_);
// EXTERNAL MODULE: external "vue-router"
var external_vue_router_ = __webpack_require__(14);
var external_vue_router_default = /*#__PURE__*/__webpack_require__.n(external_vue_router_);
// CONCATENATED MODULE: ./.nuxt/router.scrollBehavior.js
if (false) {}
function shouldScrollToTop(route) {
const Pages = getMatchedComponents(route);
if (Pages.length === 1) {
const {
options = {}
} = Pages[0];
return options.scrollToTop !== false;
}
return Pages.some(({
options
}) => options && options.scrollToTop);
}
/* harmony default export */ var router_scrollBehavior = (function (to, from, savedPosition) {
// If the returned position is falsy or an empty object, will retain current scroll position
let position = false;
const isRouteChanged = to !== from;
// savedPosition is only available for popstate navigations (back button)
if (savedPosition) {
position = savedPosition;
} else if (isRouteChanged && shouldScrollToTop(to)) {
position = {
x: 0,
y: 0
};
}
const nuxt = window.$nuxt;
if (
// Initial load (vuejs/vue-router#3199)
!isRouteChanged ||
// Route hash changes
to.path === from.path && to.hash !== from.hash) {
nuxt.$nextTick(() => nuxt.$emit('triggerScroll'));
}
return new Promise(resolve => {
// wait for the out transition to complete (if necessary)
nuxt.$once('triggerScroll', () => {
// coords will be used if no selector is provided,
// or if the selector didn't match any element.
if (to.hash) {
let hash = to.hash;
// CSS.escape() is not supported with IE and Edge.
if (typeof window.CSS !== 'undefined' && typeof window.CSS.escape !== 'undefined') {
hash = '#' + window.CSS.escape(hash.substr(1));
}
try {
const el = document.querySelector(hash);
if (el) {
var _getComputedStyle$scr;
// scroll to anchor by returning the selector
position = {
selector: hash
};
// Respect any scroll-margin-top set in CSS when scrolling to anchor
const y = Number((_getComputedStyle$scr = getComputedStyle(el)['scroll-margin-top']) === null || _getComputedStyle$scr === void 0 ? void 0 : _getComputedStyle$scr.replace('px', ''));
if (y) {
position.offset = {
y
};
}
}
} catch (e) {
console.warn('Failed to save scroll position. Please add CSS.escape() polyfill (https://github.com/mathiasbynens/CSS.escape).');
}
}
resolve(position);
});
});
});
// CONCATENATED MODULE: ./.nuxt/router.js
const _2a52af78 = () => interopDefault(__webpack_require__.e(/* import() | pages/about-us/index */ 3).then(__webpack_require__.bind(null, 258)));
const _1d25db48 = () => interopDefault(__webpack_require__.e(/* import() | pages/agents/index */ 4).then(__webpack_require__.bind(null, 255)));
const _29bde8b9 = () => interopDefault(__webpack_require__.e(/* import() | pages/articles/index */ 5).then(__webpack_require__.bind(null, 256)));
const _a55f506a = () => interopDefault(__webpack_require__.e(/* import() | pages/contact-us/index */ 7).then(__webpack_require__.bind(null, 259)));
const _cc0c94d4 = () => interopDefault(__webpack_require__.e(/* import() | pages/index */ 8).then(__webpack_require__.bind(null, 253)));
const _d444899c = () => interopDefault(__webpack_require__.e(/* import() | pages/products/index */ 11).then(__webpack_require__.bind(null, 260)));
const _4da79751 = () => interopDefault(__webpack_require__.e(/* import() | pages/articles/post/_slug/index */ 6).then(__webpack_require__.bind(null, 257)));
const _94050354 = () => interopDefault(__webpack_require__.e(/* import() | pages/products/category/_slug/index */ 10).then(__webpack_require__.bind(null, 261)));
const _94ffc150 = () => interopDefault(__webpack_require__.e(/* import() | pages/products/_slug/index */ 9).then(__webpack_require__.bind(null, 254)));
const emptyFn = () => {};
external_vue_default.a.use(external_vue_router_default.a);
const routerOptions = {
mode: 'history',
base: '/',
linkActiveClass: 'nuxt-link-active',
linkExactActiveClass: 'nuxt-link-exact-active',
scrollBehavior: router_scrollBehavior,
routes: [{
path: "/about-us",
component: _2a52af78,
name: "about-us___fa"
}, {
path: "/agents",
component: _1d25db48,
name: "agents___fa"
}, {
path: "/articles",
component: _29bde8b9,
name: "articles___fa"
}, {
path: "/contact-us",
component: _a55f506a,
name: "contact-us___fa"
}, {
path: "/en",
component: _cc0c94d4,
name: "index___en"
}, {
path: "/products",
component: _d444899c,
name: "products___fa"
}, {
path: "/en/about-us",
component: _2a52af78,
name: "about-us___en"
}, {
path: "/en/agents",
component: _1d25db48,
name: "agents___en"
}, {
path: "/en/articles",
component: _29bde8b9,
name: "articles___en"
}, {
path: "/en/contact-us",
component: _a55f506a,
name: "contact-us___en"
}, {
path: "/en/products",
component: _d444899c,
name: "products___en"
}, {
path: "/",
component: _cc0c94d4,
name: "index___fa"
}, {
path: "/en/articles/post/:slug",
component: _4da79751,
name: "articles-post-slug___en"
}, {
path: "/en/products/category/:slug",
component: _94050354,
name: "products-category-slug___en"
}, {
path: "/articles/post/:slug",
component: _4da79751,
name: "articles-post-slug___fa"
}, {
path: "/en/products/:slug",
component: _94ffc150,
name: "products-slug___en"
}, {
path: "/products/category/:slug",
component: _94050354,
name: "products-category-slug___fa"
}, {
path: "/products/:slug",
component: _94ffc150,
name: "products-slug___fa"
}],
fallback: false
};
function createRouter(ssrContext, config) {
const base = config._app && config._app.basePath || routerOptions.base;
const router = new external_vue_router_default.a({
...routerOptions,
base
});
// TODO: remove in Nuxt 3
const originalPush = router.push;
router.push = function push(location, onComplete = emptyFn, onAbort) {
return originalPush.call(this, location, onComplete, onAbort);
};
const resolve = router.resolve.bind(router);
router.resolve = (to, current, append) => {
if (typeof to === 'string') {
to = Object(external_ufo_["normalizeURL"])(to);
}
return resolve(to, current, append);
};
return router;
}
// CONCATENATED MODULE: ./.nuxt/components/nuxt-child.js
/* harmony default export */ var nuxt_child = ({
name: 'NuxtChild',
functional: true,
props: {
nuxtChildKey: {
type: String,
default: ''
},
keepAlive: Boolean,
keepAliveProps: {
type: Object,
default: undefined
}
},
render(_, {
parent,
data,
props
}) {
const h = parent.$createElement;
data.nuxtChild = true;
const _parent = parent;
const transitions = parent.$nuxt.nuxt.transitions;
const defaultTransition = parent.$nuxt.nuxt.defaultTransition;
let depth = 0;
while (parent) {
if (parent.$vnode && parent.$vnode.data.nuxtChild) {
depth++;
}
parent = parent.$parent;
}
data.nuxtChildDepth = depth;
const transition = transitions[depth] || defaultTransition;
const transitionProps = {};
transitionsKeys.forEach(key => {
if (typeof transition[key] !== 'undefined') {
transitionProps[key] = transition[key];
}
});
const listeners = {};
listenersKeys.forEach(key => {
if (typeof transition[key] === 'function') {
listeners[key] = transition[key].bind(_parent);
}
});
if (false) {}
// make sure that leave is called asynchronous (fix #5703)
if (transition.css === false) {
const leave = listeners.leave;
// only add leave listener when user didnt provide one
// or when it misses the done argument
if (!leave || leave.length < 2) {
listeners.leave = (el, done) => {
if (leave) {
leave.call(_parent, el);
}
_parent.$nextTick(done);
};
}
}
let routerView = h('routerView', data);
if (props.keepAlive) {
routerView = h('keep-alive', {
props: props.keepAliveProps
}, [routerView]);
}
return h('transition', {
props: transitionProps,
on: listeners
}, [routerView]);
}
});
const transitionsKeys = ['name', 'mode', 'appear', 'css', 'type', 'duration', 'enterClass', 'leaveClass', 'appearClass', 'enterActiveClass', 'enterActiveClass', 'leaveActiveClass', 'appearActiveClass', 'enterToClass', 'leaveToClass', 'appearToClass'];
const listenersKeys = ['beforeEnter', 'enter', 'afterEnter', 'enterCancelled', 'beforeLeave', 'leave', 'afterLeave', 'leaveCancelled', 'beforeAppear', 'appear', 'afterAppear', 'appearCancelled'];
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./layouts/error.vue?vue&type=template&id=f1fe3c98&scoped=true
var render = function render() {
var _vm = this,
_c = _vm._self._c;
return _c('div', {
staticClass: "error__page"
}, [_vm._ssrNode("<img" + _vm._ssrAttr("src", __webpack_require__(39)) + " alt class=\"error__image\" data-v-f1fe3c98> <div class=\"error__text\" data-v-f1fe3c98>" + _vm._ssrEscape("\n " + _vm._s(_vm.errorText) + "\n ") + "</div>")]);
};
var staticRenderFns = [];
// CONCATENATED MODULE: ./layouts/error.vue?vue&type=template&id=f1fe3c98&scoped=true
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./layouts/error.vue?vue&type=script&lang=js
/* harmony default export */ var errorvue_type_script_lang_js = ({
computed: {
errorText() {
if (this.error.statusCode === 404) return "صفحه مورد نظر یافت نشد!";
return "امکان اجرای درخواست فراهم نشد!";
}
},
name: "ErrorPage",
props: ["error"]
});
// CONCATENATED MODULE: ./layouts/error.vue?vue&type=script&lang=js
/* harmony default export */ var layouts_errorvue_type_script_lang_js = (errorvue_type_script_lang_js);
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(1);
// CONCATENATED MODULE: ./layouts/error.vue
function injectStyles (context) {
var style0 = __webpack_require__(40)
if (style0.__inject__) style0.__inject__(context)
}
/* normalize component */
var error_component = Object(componentNormalizer["a" /* default */])(
layouts_errorvue_type_script_lang_js,
render,
staticRenderFns,
false,
injectStyles,
"f1fe3c98",
"b5efcc32"
)
/* harmony default export */ var layouts_error = (error_component.exports);
// CONCATENATED MODULE: ./.nuxt/components/nuxt.js
/* harmony default export */ var components_nuxt = ({
name: 'Nuxt',
components: {
NuxtChild: nuxt_child,
NuxtError: layouts_error
},
props: {
nuxtChildKey: {
type: String,
default: undefined
},
keepAlive: Boolean,
keepAliveProps: {
type: Object,
default: undefined
},
name: {
type: String,
default: 'default'
}
},
errorCaptured(error) {
// if we receive and error while showing the NuxtError component
// capture the error and force an immediate update so we re-render
// without the NuxtError component
if (this.displayingNuxtError) {
this.errorFromNuxtError = error;
this.$forceUpdate();
}
},
computed: {
routerViewKey() {
// If nuxtChildKey prop is given or current route has children
if (typeof this.nuxtChildKey !== 'undefined' || this.$route.matched.length > 1) {
return this.nuxtChildKey || compile(this.$route.matched[0].path)(this.$route.params);
}
const [matchedRoute] = this.$route.matched;
if (!matchedRoute) {
return this.$route.path;
}
const Component = matchedRoute.components.default;
if (Component && Component.options) {
const {
options
} = Component;
if (options.key) {
return typeof options.key === 'function' ? options.key(this.$route) : options.key;
}
}
const strict = /\/$/.test(matchedRoute.path);
return strict ? this.$route.path : this.$route.path.replace(/\/$/, '');
}
},
beforeCreate() {
external_vue_default.a.util.defineReactive(this, 'nuxt', this.$root.$options.nuxt);
},
render(h) {
// if there is no error or
// error page has not been loaded yet on client
if (!this.nuxt.err || false && false) {
// Directly return nuxt child
return h('NuxtChild', {
key: this.routerViewKey,
props: this.$props
});
}
// if an error occurred within NuxtError show a simple
// error message instead to prevent looping
if (this.errorFromNuxtError) {
this.$nextTick(() => this.errorFromNuxtError = false);
return h('div', {}, [h('h2', 'An error occurred while showing the error page'), h('p', 'Unfortunately an error occurred and while showing the error page another error occurred'), h('p', `Error details: ${this.errorFromNuxtError.toString()}`), h('nuxt-link', {
props: {
to: '/'
}
}, 'Go back to home')]);
}
// track if we are showing the NuxtError component
this.displayingNuxtError = true;
this.$nextTick(() => this.displayingNuxtError = false);
return h(layouts_error, {
props: {
error: this.nuxt.err
}
});
}
});
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./.nuxt/components/nuxt-loading.vue?vue&type=script&lang=js
/* harmony default export */ var nuxt_loadingvue_type_script_lang_js = ({
name: 'NuxtLoading',
data() {
return {
percent: 0,
show: false,
canSucceed: true,
reversed: false,
skipTimerCount: 0,
rtl: false,
throttle: 200,
duration: 5000,
continuous: true
};
},
computed: {
left() {
if (!this.continuous && !this.rtl) {
return false;
}
return this.rtl ? this.reversed ? '0px' : 'auto' : !this.reversed ? '0px' : 'auto';
}
},
beforeDestroy() {
this.clear();
},
methods: {
clear() {
clearInterval(this._timer);
clearTimeout(this._throttle);
clearTimeout(this._hide);
this._timer = null;
},
start() {
this.clear();
this.percent = 0;
this.reversed = false;
this.skipTimerCount = 0;
this.canSucceed = true;
if (this.throttle) {
this._throttle = setTimeout(() => this.startTimer(), this.throttle);
} else {
this.startTimer();
}
return this;
},
set(num) {
this.show = true;
this.canSucceed = true;
this.percent = Math.min(100, Math.max(0, Math.floor(num)));
return this;
},
get() {
return this.percent;
},
increase(num) {
this.percent = Math.min(100, Math.floor(this.percent + num));
return this;
},
decrease(num) {
this.percent = Math.max(0, Math.floor(this.percent - num));
return this;
},
pause() {
clearInterval(this._timer);
return this;
},
resume() {
this.startTimer();
return this;
},
finish() {
this.percent = this.reversed ? 0 : 100;
this.hide();
return this;
},
hide() {
this.clear();
this._hide = setTimeout(() => {
this.show = false;
this.$nextTick(() => {
this.percent = 0;
this.reversed = false;
});
}, 500);
return this;
},
fail(error) {
this.canSucceed = false;
return this;
},
startTimer() {
if (!this.show) {
this.show = true;
}
if (typeof this._cut === 'undefined') {
this._cut = 10000 / Math.floor(this.duration);
}
this._timer = setInterval(() => {
/**
* When reversing direction skip one timers
* so 0, 100 are displayed for two iterations
* also disable css width transitioning
* which otherwise interferes and shows
* a jojo effect
*/
if (this.skipTimerCount > 0) {
this.skipTimerCount--;
return;
}
if (this.reversed) {
this.decrease(this._cut);
} else {
this.increase(this._cut);
}
if (this.continuous) {
if (this.percent >= 100) {
this.skipTimerCount = 1;
this.reversed = !this.reversed;
} else if (this.percent <= 0) {
this.skipTimerCount = 1;
this.reversed = !this.reversed;
}
}
}, 100);
}
},
render(h) {
let el = h(false);
if (this.show) {
el = h('div', {
staticClass: 'nuxt-progress',
class: {
'nuxt-progress-notransition': this.skipTimerCount > 0,
'nuxt-progress-failed': !this.canSucceed
},
style: {
width: this.percent + '%',
left: this.left
}
});
}
return el;
}
});
// CONCATENATED MODULE: ./.nuxt/components/nuxt-loading.vue?vue&type=script&lang=js
/* harmony default export */ var components_nuxt_loadingvue_type_script_lang_js = (nuxt_loadingvue_type_script_lang_js);
// CONCATENATED MODULE: ./.nuxt/components/nuxt-loading.vue
var nuxt_loading_render, nuxt_loading_staticRenderFns
function nuxt_loading_injectStyles (context) {
var style0 = __webpack_require__(42)
if (style0.__inject__) style0.__inject__(context)
}
/* normalize component */
var nuxt_loading_component = Object(componentNormalizer["a" /* default */])(
components_nuxt_loadingvue_type_script_lang_js,
nuxt_loading_render,
nuxt_loading_staticRenderFns,
false,
nuxt_loading_injectStyles,
null,
"350d23bf"
)
/* harmony default export */ var nuxt_loading = (nuxt_loading_component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./layouts/default.vue?vue&type=template&id=b6916b70
var defaultvue_type_template_id_b6916b70_render = function render() {
var _vm = this,
_c = _vm._self._c;
return _c('div', {
class: _vm.applicationClassList,
attrs: {
"data-lang": _vm.language
}
}, [_c('navigation-bar'), _vm._ssrNode(" "), _c('Nuxt'), _vm._ssrNode(" "), _c('contact-btn'), _vm._ssrNode(" "), _c('app-footer')], 2);
};
var defaultvue_type_template_id_b6916b70_staticRenderFns = [];
// CONCATENATED MODULE: ./layouts/default.vue?vue&type=template&id=b6916b70
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/footer/app_footer.vue?vue&type=template&id=c796c878&scoped=true
var app_footervue_type_template_id_c796c878_scoped_true_render = function render() {
var _vm = this,
_c = _vm._self._c;
return _c('LazyHydrate', {
attrs: {
"when-visible": ""
}
}, [_c('footer', {
staticClass: "footer"
}, [_c('div', {
staticClass: "footer__content"
}, [_c('div', {
staticClass: "footer__column-1"
}, [_c('footer-title', [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.$t("pars mega products")) + "\n\t\t\t\t")]), _vm._v(" "), _vm._l(_vm.column1Links, function (item) {
return _c('footer-link', {
key: item.id,
attrs: {
"is-external": item.isExternal,
"text": item.showName,
"href": item.linkUrl
}
});
})], 2), _vm._v(" "), _c('div', {
staticClass: "footer__column-2"
}, [_c('footer-title', [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.$t("quick access")) + "\n\t\t\t\t")]), _vm._v(" "), _vm._l(_vm.column2Links, function (item) {
return _c('footer-link', {
key: item.id,
attrs: {
"is-external": item.isExternal,
"text": item.showName,
"href": item.linkUrl
}
});
})], 2), _vm._v(" "), _c('div', {
staticClass: "footer__column-3"
}, [_c('footer-title', [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.$t("contact info")) + "\n\t\t\t\t")]), _vm._v(" "), _c('a', {
staticClass: "footer__text footer__text--phone footer__text--en",
attrs: {
"href": `tel:${_vm.telephoneLink}`,
"title": "contact phone number",
"aria-label": "contact phone number"
}
}, [_c('i', {
staticClass: "icon-support footer__text__icon"
}), _vm._v("\n\t\t\t\t\t" + _vm._s(_vm.telephone) + "\n\t\t\t\t")]), _vm._v(" "), _c('a', {
staticClass: "footer__text footer__text--phone footer__text--en",
attrs: {
"href": `tel:${_vm.telephone2Link}`,
"title": "contact phone number",
"aria-label": "contact phone number"
}
}, [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.telephone2) + "\n\t\t\t\t")]), _vm._v(" "), _c('div', {
staticClass: "footer__text"
}, [_c('i', {
staticClass: "icon-mail_outline footer__text__icon"
}), _vm._v("\n\t\t\t\t\t" + _vm._s(_vm.$t("contactEmailValue")) + "\n\t\t\t\t")]), _vm._v(" "), _c('div', {
staticClass: "footer__text"
}, [_c('i', {
staticClass: "icon-map footer__text__icon footer__text__icon--map"
}), _vm._v("\n\t\t\t\t\t" + _vm._s(_vm.$t("contactAddressValue")) + "\n\t\t\t\t")]), _vm._v(" "), _c('a', {
staticClass: "footer__social-link",
attrs: {
"href": _vm.$t('contactLinkdin'),
"title": "linkedin",
"aria-label": "linkedin"
}
}, [_c('i', {
staticClass: "icon-linkedin"
})]), _vm._v(" "), _c('a', {
staticClass: "footer__social-link",
attrs: {
"href": _vm.$t('contactYoutubeLink'),
"title": "youtube",
"aria-label": "youtube"
}
}, [_c('i', {
staticClass: "icon-youtube"
})]), _vm._v(" "), _c('a', {
staticClass: "footer__social-link",
attrs: {
"href": _vm.$t('contactTelegramLink'),
"title": "telegram",
"aria-label": "telegram"
}
}, [_c('i', {
staticClass: "icon-telegram"
})]), _vm._v(" "), _c('a', {
staticClass: "footer__social-link",
attrs: {
"href": _vm.$t('contactInstagramLink'),
"title": "instagram link",
"aria-label": "instagram link"
}
}, [_c('i', {
staticClass: "icon-instagram"
})])], 1), _vm._v(" "), _c('div', {
staticClass: "footer__column-4"
}, [_c('footer-title', [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.$t("about pars mega")) + "\n\t\t\t\t")]), _vm._v(" "), _c('div', {
staticClass: "footer__text"
}, [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.$t("footerAboutLine1")) + "\n\t\t\t\t")]), _vm._v(" "), _c('div', {
staticClass: "footer__text"
}, [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.$t("footerAboutLine2")) + "\n\t\t\t\t")]), _vm._v(" "), _c('div', {
staticClass: "footer__text"
}, [_c('i', {
staticClass: "icon-access_time footer__text__icon"
}), _vm._v("\n\t\t\t\t\t" + _vm._s(_vm.$t("contactWorkTimes")) + "\n\t\t\t\t")])], 1)]), _vm._v(" "), _c('footer-copyright')], 1)]);
};
var app_footervue_type_template_id_c796c878_scoped_true_staticRenderFns = [];
// CONCATENATED MODULE: ./components/shared/footer/app_footer.vue?vue&type=template&id=c796c878&scoped=true
// EXTERNAL MODULE: external "vue-lazy-hydration"
var external_vue_lazy_hydration_ = __webpack_require__(5);
var external_vue_lazy_hydration_default = /*#__PURE__*/__webpack_require__.n(external_vue_lazy_hydration_);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/footer/app_footer_copyright.vue?vue&type=template&id=11bd7140&scoped=true
var app_footer_copyrightvue_type_template_id_11bd7140_scoped_true_render = function render() {
var _vm = this,
_c = _vm._self._c;
return _c('div', {
staticClass: "copyright"
}, [_vm._ssrNode(_vm._ssrEscape("\n\t" + _vm._s(_vm.$t("copyright1")) + "\n\t") + "<b class=\"copyright__company\" data-v-11bd7140>" + _vm._ssrEscape("\n\t\t" + _vm._s(_vm.$t("parsmega")) + "\n\t") + "</b>" + _vm._ssrEscape("\n\t" + _vm._s(_vm.$t("copyright2")) + "\n"))]);
};
var app_footer_copyrightvue_type_template_id_11bd7140_scoped_true_staticRenderFns = [];
// CONCATENATED MODULE: ./components/shared/footer/app_footer_copyright.vue?vue&type=template&id=11bd7140&scoped=true
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/footer/app_footer_copyright.vue?vue&type=script&lang=js
/* harmony default export */ var app_footer_copyrightvue_type_script_lang_js = ({
name: "AppFooterCopyright"
});
// CONCATENATED MODULE: ./components/shared/footer/app_footer_copyright.vue?vue&type=script&lang=js
/* harmony default export */ var footer_app_footer_copyrightvue_type_script_lang_js = (app_footer_copyrightvue_type_script_lang_js);
// CONCATENATED MODULE: ./components/shared/footer/app_footer_copyright.vue
function app_footer_copyright_injectStyles (context) {
var style0 = __webpack_require__(44)
if (style0.__inject__) style0.__inject__(context)
}
/* normalize component */
var app_footer_copyright_component = Object(componentNormalizer["a" /* default */])(
footer_app_footer_copyrightvue_type_script_lang_js,
app_footer_copyrightvue_type_template_id_11bd7140_scoped_true_render,
app_footer_copyrightvue_type_template_id_11bd7140_scoped_true_staticRenderFns,
false,
app_footer_copyright_injectStyles,
"11bd7140",
"f25fdeba"
)
/* harmony default export */ var app_footer_copyright = (app_footer_copyright_component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/footer/app_footer_link.vue?vue&type=template&id=1a59aadf&scoped=true
var app_footer_linkvue_type_template_id_1a59aadf_scoped_true_render = function render() {
var _vm = this,
_c = _vm._self._c;
return _vm.isExternal ? _c('a', {
staticClass: "footer-link",
attrs: {
"href": _vm.href,
"target": "_blank"
}
}, [_vm._ssrNode(_vm._ssrEscape("\n\t" + _vm._s(_vm.text) + "\n"))], 2) : _c('nuxt-link', {
staticClass: "footer-link",
attrs: {
"to": _vm.localePath(_vm.href)
}
}, [_vm._v("\n\t" + _vm._s(_vm.text) + "\n")]);
};
var app_footer_linkvue_type_template_id_1a59aadf_scoped_true_staticRenderFns = [];
// CONCATENATED MODULE: ./components/shared/footer/app_footer_link.vue?vue&type=template&id=1a59aadf&scoped=true
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/footer/app_footer_link.vue?vue&type=script&lang=js
/* harmony default export */ var app_footer_linkvue_type_script_lang_js = ({
name: "AppFooterLink",
props: {
href: {
default: "#",
required: true,
type: String
},
isExternal: {
default: false,
required: true,
type: Boolean
},
text: {
default: "#",
required: true,
type: String
}
}
});
// CONCATENATED MODULE: ./components/shared/footer/app_footer_link.vue?vue&type=script&lang=js
/* harmony default export */ var footer_app_footer_linkvue_type_script_lang_js = (app_footer_linkvue_type_script_lang_js);
// CONCATENATED MODULE: ./components/shared/footer/app_footer_link.vue
function app_footer_link_injectStyles (context) {
var style0 = __webpack_require__(46)
if (style0.__inject__) style0.__inject__(context)
}
/* normalize component */
var app_footer_link_component = Object(componentNormalizer["a" /* default */])(
footer_app_footer_linkvue_type_script_lang_js,
app_footer_linkvue_type_template_id_1a59aadf_scoped_true_render,
app_footer_linkvue_type_template_id_1a59aadf_scoped_true_staticRenderFns,
false,
app_footer_link_injectStyles,
"1a59aadf",
"7634254e"
)
/* harmony default export */ var app_footer_link = (app_footer_link_component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/footer/app_footer_title.vue?vue&type=template&id=26b8a362&scoped=true
var app_footer_titlevue_type_template_id_26b8a362_scoped_true_render = function render() {
var _vm = this,
_c = _vm._self._c;
return _c('div', {
staticClass: "footer-title"
}, [_vm._t("default")], 2);
};
var app_footer_titlevue_type_template_id_26b8a362_scoped_true_staticRenderFns = [];
// CONCATENATED MODULE: ./components/shared/footer/app_footer_title.vue?vue&type=template&id=26b8a362&scoped=true
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/footer/app_footer_title.vue?vue&type=script&lang=js
/* harmony default export */ var app_footer_titlevue_type_script_lang_js = ({
name: "FooterTitle"
});
// CONCATENATED MODULE: ./components/shared/footer/app_footer_title.vue?vue&type=script&lang=js
/* harmony default export */ var footer_app_footer_titlevue_type_script_lang_js = (app_footer_titlevue_type_script_lang_js);
// CONCATENATED MODULE: ./components/shared/footer/app_footer_title.vue
function app_footer_title_injectStyles (context) {
var style0 = __webpack_require__(48)
if (style0.__inject__) style0.__inject__(context)
}
/* normalize component */
var app_footer_title_component = Object(componentNormalizer["a" /* default */])(
footer_app_footer_titlevue_type_script_lang_js,
app_footer_titlevue_type_template_id_26b8a362_scoped_true_render,
app_footer_titlevue_type_template_id_26b8a362_scoped_true_staticRenderFns,
false,
app_footer_title_injectStyles,
"26b8a362",
"347490b4"
)
/* harmony default export */ var app_footer_title = (app_footer_title_component.exports);
// EXTERNAL MODULE: ./api/api_list.js
var api_list = __webpack_require__(10);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/footer/app_footer.vue?vue&type=script&lang=js
/* harmony default export */ var app_footervue_type_script_lang_js = ({
name: "AppFooter",
components: {
footerCopyright: app_footer_copyright,
footerLink: app_footer_link,
footerTitle: app_footer_title,
LazyHydrate: external_vue_lazy_hydration_default.a
},
computed: {
column1Links() {
return this.links.filter(item => item.column == 1).sort((a, b) => a.order - b.order);
},
column2Links() {
return this.links.filter(item => item.column == 2).sort((a, b) => a.order - b.order);
},
instagramLink() {
return this.$t("contactInstagramLink");
},
telegramLink() {
return this.$t("contactTelegramLink");
},
telephone() {
return this.$t("contactSupportPhoneValue");
},
telephone2() {
return this.$t("contactSupportPhone2Value");
},
telephoneLink() {
return this.$t("contactSupportPhonePureValue");
},
telephone2Link() {
return this.$t("contactSupportPhone2PureValue");
},
twitterLink() {
return this.$t("contactTwitterLink");
}
},
data() {
return {
links: []
};
},
async created() {
const locale = this.$i18n.locale;
this.links = await Object(api_list["j" /* getFooterLinks */])(this.$axios, locale);
}
});
// CONCATENATED MODULE: ./components/shared/footer/app_footer.vue?vue&type=script&lang=js
/* harmony default export */ var footer_app_footervue_type_script_lang_js = (app_footervue_type_script_lang_js);
// CONCATENATED MODULE: ./components/shared/footer/app_footer.vue
function app_footer_injectStyles (context) {
var style0 = __webpack_require__(50)
if (style0.__inject__) style0.__inject__(context)
}
/* normalize component */
var app_footer_component = Object(componentNormalizer["a" /* default */])(
footer_app_footervue_type_script_lang_js,
app_footervue_type_template_id_c796c878_scoped_true_render,
app_footervue_type_template_id_c796c878_scoped_true_staticRenderFns,
false,
app_footer_injectStyles,
"c796c878",
"11b84e1b"
)
/* harmony default export */ var app_footer = (app_footer_component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/navigation/navigation_bar.vue?vue&type=template&id=83e62960&scoped=true
var navigation_barvue_type_template_id_83e62960_scoped_true_render = function render() {
var _vm = this,
_c = _vm._self._c;
return _c('section', {
staticClass: "navigation"
}, [_c('LazyHydrate', {
attrs: {
"when-visible": ""
}
}, [_c('contact-bar')], 1), _vm._ssrNode(" "), _c('menu-bar')], 2);
};
var navigation_barvue_type_template_id_83e62960_scoped_true_staticRenderFns = [];
// CONCATENATED MODULE: ./components/shared/navigation/navigation_bar.vue?vue&type=template&id=83e62960&scoped=true
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/navigation/navigation_contact_bar.vue?vue&type=template&id=3172b8ce&scoped=true
var navigation_contact_barvue_type_template_id_3172b8ce_scoped_true_render = function render() {
var _vm = this,
_c = _vm._self._c;
return _c('div', {
staticClass: "contact-bar"
}, [_vm._ssrNode("<div class=\"contact-bar__contents\" data-v-3172b8ce><a" + _vm._ssrAttr("href", `tel:${_vm.telephoneLink}`) + " aria-label=\"support number\" class=\"contact-bar__support\" data-v-3172b8ce>" + _vm._ssrEscape("\n\t\t\t" + _vm._s(_vm.telephone) + "\n\t\t\t") + "<i class=\"icon-support contact-bar__icon\" data-v-3172b8ce></i></a> <span class=\"contact-bar__mail\" data-v-3172b8ce>" + _vm._ssrEscape("\n\t\t\t" + _vm._s(_vm.$t("contactEmailValue")) + "\n\t\t\t") + "<i class=\"icon-mail_outline contact-bar__icon\" data-v-3172b8ce></i></span> <span class=\"contact-bar__times\" data-v-3172b8ce><i class=\"icon-access_time contact-bar__icon\" data-v-3172b8ce></i>" + _vm._ssrEscape("\n\t\t\t" + _vm._s(_vm.$t("contactWorkTimes")) + "\n\t\t") + "</span> <a" + _vm._ssrAttr("href", _vm.$t('contactLinkdin')) + " aria-label=\"linkedin account\" class=\"contact-bar__social-link\" data-v-3172b8ce><i class=\"icon-linkedin\" data-v-3172b8ce></i></a> <a" + _vm._ssrAttr("href", _vm.$t('contactYoutubeLink')) + " aria-label=\"youtube account\" class=\"contact-bar__social-link\" data-v-3172b8ce><i class=\"icon-youtube\" data-v-3172b8ce></i></a> <a" + _vm._ssrAttr("href", _vm.$t('contactTelegramLink')) + " aria-label=\"telegram account\" class=\"contact-bar__social-link\" data-v-3172b8ce><i class=\"icon-telegram\" data-v-3172b8ce></i></a> <a" + _vm._ssrAttr("href", _vm.$t('contactInstagramLink')) + " aria-label=\"instagram account\" class=\"contact-bar__social-link\" data-v-3172b8ce><i class=\"icon-instagram\" data-v-3172b8ce></i></a></div>")]);
};
var navigation_contact_barvue_type_template_id_3172b8ce_scoped_true_staticRenderFns = [];
// CONCATENATED MODULE: ./components/shared/navigation/navigation_contact_bar.vue?vue&type=template&id=3172b8ce&scoped=true
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/navigation/navigation_contact_bar.vue?vue&type=script&lang=js
/* harmony default export */ var navigation_contact_barvue_type_script_lang_js = ({
name: "NavigationContactBar",
computed: {
instagramLink() {
return this.$t("contactInstagramLink");
},
telegramLink() {
return this.$t("contactTelegramLink");
},
telephone() {
return this.$t("contactSupportPhoneValue");
},
telephoneLink() {
return this.$t("contactSupportPhonePureValue");
},
twitterLink() {
return this.$t("contactTwitterLink");
}
}
});
// CONCATENATED MODULE: ./components/shared/navigation/navigation_contact_bar.vue?vue&type=script&lang=js
/* harmony default export */ var navigation_navigation_contact_barvue_type_script_lang_js = (navigation_contact_barvue_type_script_lang_js);
// CONCATENATED MODULE: ./components/shared/navigation/navigation_contact_bar.vue
function navigation_contact_bar_injectStyles (context) {
var style0 = __webpack_require__(52)
if (style0.__inject__) style0.__inject__(context)
}
/* normalize component */
var navigation_contact_bar_component = Object(componentNormalizer["a" /* default */])(
navigation_navigation_contact_barvue_type_script_lang_js,
navigation_contact_barvue_type_template_id_3172b8ce_scoped_true_render,
navigation_contact_barvue_type_template_id_3172b8ce_scoped_true_staticRenderFns,
false,
navigation_contact_bar_injectStyles,
"3172b8ce",
"51203ad2"
)
/* harmony default export */ var navigation_contact_bar = (navigation_contact_bar_component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/navigation/navigation_menu_bar.vue?vue&type=template&id=8df2affc&scoped=true
var navigation_menu_barvue_type_template_id_8df2affc_scoped_true_render = function render() {
var _vm = this,
_c = _vm._self._c;
return _c('div', {
staticClass: "menu-bar menu-bar--colored"
}, [_vm._ssrNode("<div class=\"menu-bar__contents\" data-v-8df2affc>", "</div>", [_vm._ssrNode("<i class=\"icon-menu menu-bar__hamburger-btn\" data-v-8df2affc></i> "), _c('logo-link', {
staticClass: "menu-bar__logo"
}), _vm._ssrNode(" "), _c('menu-drawer', {
attrs: {
"is-drawer-active": _vm.isDrawerActive
},
on: {
"close": _vm.hideDrawer
}
}), _vm._ssrNode(" <a href=\"/en/\" class=\"menu-bar__language-link menu-bar__language-link--en\" data-v-8df2affc>\n En\n </a> <a href=\"/\" class=\"menu-bar__language-link menu-bar__language-link--fa\" data-v-8df2affc>\n فارسی\n </a>")], 2)]);
};
var navigation_menu_barvue_type_template_id_8df2affc_scoped_true_staticRenderFns = [];
// CONCATENATED MODULE: ./components/shared/navigation/navigation_menu_bar.vue?vue&type=template&id=8df2affc&scoped=true
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/navigation/navigation_menu_drawer.vue?vue&type=template&id=249efb10&scoped=true
var navigation_menu_drawervue_type_template_id_249efb10_scoped_true_render = function render() {
var _vm = this,
_c = _vm._self._c;
return _c('div', {
staticClass: "drawer",
class: {
'drawer--active': _vm.isDrawerActive
}
}, [_vm._ssrNode("<div class=\"drawer__header\" data-v-249efb10>", "</div>", [_vm._ssrNode("<i class=\"icon-clear drawer__close-btn\" data-v-249efb10></i> "), _c('logo-link')], 2), _vm._ssrNode(" "), _vm._ssrNode("<div class=\"drawer__body\" data-v-249efb10>", "</div>", [_c('navigation-item', {
attrs: {
"link": _vm.homePageLink,
"subLinks": []
}
}), _vm._ssrNode(" "), _c('productCategoriesSubMen'), _vm._ssrNode(" "), _vm._l(_vm.commonPagesLink, function (link) {
return _c('navigation-item', {
key: link.name,
attrs: {
"link": link,
"subLinks": []
}
});
}), _vm._ssrNode(" "), _c('navigation-item', {
attrs: {
"link": _vm.catalogMenuItem,
"subLinks": [],
"tag-type": "a",
"is-catalog": true,
"isLocalizeLinkUrl": false
}
})], 2), _vm._ssrNode(" <div class=\"drawer__footer\" data-v-249efb10><a" + _vm._ssrAttr("href", 'tel:' + _vm.supportPhoneLink) + " class=\"drawer__call-btn\" data-v-249efb10>" + _vm._ssrEscape("\n " + _vm._s(_vm.supportPhone) + "\n ") + "<i class=\"icon-support drawer__call-btn__icon\" data-v-249efb10></i></a> <a" + _vm._ssrAttr("href", _vm.$t('contactLinkdin')) + " class=\"drawer__social-link\" data-v-249efb10><i class=\"icon-linkedin\" data-v-249efb10></i></a> <a" + _vm._ssrAttr("href", _vm.$t('contactYoutube')) + " class=\"drawer__social-link\" data-v-249efb10><i class=\"icon-youtube\" data-v-249efb10></i></a> <a" + _vm._ssrAttr("href", _vm.$t('contactTelegramLink')) + " class=\"drawer__social-link\" data-v-249efb10><i class=\"icon-telegram\" data-v-249efb10></i></a> <a" + _vm._ssrAttr("href", _vm.$t('contactInstagramLink')) + " class=\"drawer__social-link\" data-v-249efb10><i class=\"icon-instagram\" data-v-249efb10></i></a></div>")], 2);
};
var navigation_menu_drawervue_type_template_id_249efb10_scoped_true_staticRenderFns = [];
// CONCATENATED MODULE: ./components/shared/navigation/navigation_menu_drawer.vue?vue&type=template&id=249efb10&scoped=true
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/navigation/navigation_logo_link.vue?vue&type=template&id=3c251dd0&scoped=true
var navigation_logo_linkvue_type_template_id_3c251dd0_scoped_true_render = function render() {
var _vm = this,
_c = _vm._self._c;
return _c('nuxt-link', {
staticClass: "logo-link",
attrs: {
"to": _vm.localePath('/'),
"aria-label": "parsmega home page"
}
}, [_c('img', {
staticClass: "logo",
attrs: {
"src": __webpack_require__(54),
"alt": ""
}
})]);
};
var navigation_logo_linkvue_type_template_id_3c251dd0_scoped_true_staticRenderFns = [];
// CONCATENATED MODULE: ./components/shared/navigation/navigation_logo_link.vue?vue&type=template&id=3c251dd0&scoped=true
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/navigation/navigation_logo_link.vue?vue&type=script&lang=js
/* harmony default export */ var navigation_logo_linkvue_type_script_lang_js = ({
name: "NavigationLogoLink"
});
// CONCATENATED MODULE: ./components/shared/navigation/navigation_logo_link.vue?vue&type=script&lang=js
/* harmony default export */ var navigation_navigation_logo_linkvue_type_script_lang_js = (navigation_logo_linkvue_type_script_lang_js);
// CONCATENATED MODULE: ./components/shared/navigation/navigation_logo_link.vue
function navigation_logo_link_injectStyles (context) {
var style0 = __webpack_require__(55)
if (style0.__inject__) style0.__inject__(context)
}
/* normalize component */
var navigation_logo_link_component = Object(componentNormalizer["a" /* default */])(
navigation_navigation_logo_linkvue_type_script_lang_js,
navigation_logo_linkvue_type_template_id_3c251dd0_scoped_true_render,
navigation_logo_linkvue_type_template_id_3c251dd0_scoped_true_staticRenderFns,
false,
navigation_logo_link_injectStyles,
"3c251dd0",
"8469e428"
)
/* harmony default export */ var navigation_logo_link = (navigation_logo_link_component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/navigation/navigation_item.vue?vue&type=template&id=24f586b6&scoped=true
var navigation_itemvue_type_template_id_24f586b6_scoped_true_render = function render() {
var _vm = this,
_c = _vm._self._c;
return _vm.hasSubLinks ? _c('div', {
staticClass: "root-link root-link--has-child",
on: {
"click": _vm.toogleChilds
}
}, [_vm._ssrNode("<div class=\"root-link\" style=\"padding: 0\" data-v-24f586b6>", "</div>", [_vm._ssrNode(_vm._ssrEscape("\n\t\t" + _vm._s(_vm.$t(_vm.link.showName)) + "\n\t\t")), _vm.link.url ? _c('nuxt-link', {
staticClass: "root-link__go-parent-on-desktop",
attrs: {
"to": _vm.localePath(_vm.link.url)
}
}) : _vm._e()], 2), _vm._ssrNode(" "), _vm._ssrNode("<div" + _vm._ssrClass("links-childs-wrapper", {
'links-childs-wrapper--active': _vm.isChildsWrapperActive
}) + " data-v-24f586b6>", "</div>", _vm._l(_vm.subLinks, function (item) {
return _c('nuxt-link', {
key: item.name,
staticClass: "child-link",
attrs: {
"to": _vm.localePath(item.url)
}
}, [_vm._v("\n\t\t\t" + _vm._s(_vm.$t(item.showName)) + "\n\t\t")]);
}), 1)], 2) : _c(_vm.tagType, {
tag: "component",
staticClass: "root-link",
attrs: {
"to": _vm.isLocalizeLinkUrl ? _vm.localePath(_vm.link.url) : _vm.link.url,
"href": _vm.isLocalizeLinkUrl ? _vm.localePath(_vm.link.url) : _vm.link.url,
"data-is-catalog": _vm.isCatalog,
"target": "isLocalizeLinkUrl ? 'self' : 'blank'",
"active-class": 'root-link--active'
}
}, [_vm._v("\n\t" + _vm._s(_vm.$t(_vm.link.showName)) + "\n")]);
};
var navigation_itemvue_type_template_id_24f586b6_scoped_true_staticRenderFns = [];
// CONCATENATED MODULE: ./components/shared/navigation/navigation_item.vue?vue&type=template&id=24f586b6&scoped=true
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/navigation/navigation_item.vue?vue&type=script&lang=js
/* harmony default export */ var navigation_itemvue_type_script_lang_js = ({
name: "NavigationItem",
computed: {
hasSubLinks() {
return this.subLinks && this.subLinks.length > 0;
}
},
data() {
return {
isChildsWrapperActive: true
};
},
methods: {
toogleChilds() {
//this.isChildsWrapperActive = !this.isChildsWrapperActive;
}
},
props: {
link: {
required: true,
type: Object
},
subLinks: {
required: true
},
tagType: {
default: "nuxt-link",
required: false
},
isLocalizeLinkUrl: {
default: true,
required: false
},
isCatalog: {
default: false,
required: false
}
}
});
// CONCATENATED MODULE: ./components/shared/navigation/navigation_item.vue?vue&type=script&lang=js
/* harmony default export */ var navigation_navigation_itemvue_type_script_lang_js = (navigation_itemvue_type_script_lang_js);
// CONCATENATED MODULE: ./components/shared/navigation/navigation_item.vue
function navigation_item_injectStyles (context) {
var style0 = __webpack_require__(57)
if (style0.__inject__) style0.__inject__(context)
}
/* normalize component */
var navigation_item_component = Object(componentNormalizer["a" /* default */])(
navigation_navigation_itemvue_type_script_lang_js,
navigation_itemvue_type_template_id_24f586b6_scoped_true_render,
navigation_itemvue_type_template_id_24f586b6_scoped_true_staticRenderFns,
false,
navigation_item_injectStyles,
"24f586b6",
"5893bc25"
)
/* harmony default export */ var navigation_item = (navigation_item_component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/navigation/navigation_product_categories.vue?vue&type=template&id=4659a80d&scoped=true
var navigation_product_categoriesvue_type_template_id_4659a80d_scoped_true_render = function render() {
var _vm = this,
_c = _vm._self._c;
return _c('div', {
staticClass: "category"
}, [_vm._ssrNode("<div class=\"category__base\" data-v-4659a80d>" + _vm._ssrEscape("\n\t\t" + _vm._s(_vm.$t("products")) + "\n\t") + "</div> "), _vm._ssrNode("<div class=\"category__level1\" data-v-4659a80d>", "</div>", _vm._l(_vm.level1Categories, function (level1) {
return _vm._ssrNode("<div" + _vm._ssrClass("category__level1-group", {
'category__level1-group--has-child': _vm.getLevel2Items(level1.name).length
}) + " data-v-4659a80d>", "</div>", [_c('nuxt-link', {
staticClass: "category__level1-link",
attrs: {
"to": _vm.localePath(level1.url)
}
}, [level1.icon ? _c('picture', [level1.iconAvif ? _c('source', {
attrs: {
"srcset": level1.iconAvif
}
}) : _vm._e(), _vm._v(" "), _c('img', {
staticClass: "category__icon category__icon--level1",
attrs: {
"src": level1.icon,
"decoding": "async",
"loading": "lazy",
"alt": "",
"width": "16",
"height": "16",
"aria-hidden": "true"
}
})]) : _vm._e(), _vm._v("\n\t\t\t\t" + _vm._s(level1.showName) + "\n\t\t\t")]), _vm._ssrNode(" "), _vm._ssrNode("<div class=\"category__level2\" data-v-4659a80d>", "</div>", _vm._l(_vm.getLevel2Items(level1.name), function (level2) {
return _c('nuxt-link', {
key: level2.name,
staticClass: "category__level2-link",
attrs: {
"to": _vm.localePath(level2.url)
}
}, [level2.icon ? _c('picture', [level2.iconAvif ? _c('source', {
attrs: {
"srcset": level2.iconAvif
}
}) : _vm._e(), _vm._v(" "), _c('img', {
staticClass: "category__icon category__icon--level2",
attrs: {
"src": level2.icon,
"decoding": "async",
"loading": "lazy",
"alt": "",
"height": "66.6",
"width": "100",
"aria-hidden": "true"
}
})]) : _vm._e(), _vm._v("\t \n\t\t\t\t\t" + _vm._s(level2.showName) + "\n\t\t\t\t")]);
}), 1)], 2);
}), 0)], 2);
};
var navigation_product_categoriesvue_type_template_id_4659a80d_scoped_true_staticRenderFns = [];
// CONCATENATED MODULE: ./components/shared/navigation/navigation_product_categories.vue?vue&type=template&id=4659a80d&scoped=true
// EXTERNAL MODULE: ./helper/helper.js
var helper = __webpack_require__(12);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/navigation/navigation_product_categories.vue?vue&type=script&lang=js
/* harmony default export */ var navigation_product_categoriesvue_type_script_lang_js = ({
name: "NavigationProductCategories",
data() {
return {
level1Categories: [],
level2Categories: []
};
},
async beforeMount() {
const categories = await Object(api_list["c" /* getAllCategories */])(this.$axios, this.$i18n.locale);
const visibleInMenuList = categories.filter(item => {
var _item$acf;
return item === null || item === void 0 ? void 0 : (_item$acf = item.acf) === null || _item$acf === void 0 ? void 0 : _item$acf.is_show_in_menu;
});
const productsBaseCategoryId = 2;
const level1Categories = visibleInMenuList.filter(item => item.parent == productsBaseCategoryId).map(item => {
var _item$acf2, _item$acf3, _item$acf4;
return {
"id": item.id,
"name": item.slug,
"showName": item.title,
"url": `/products/category/${item.slug}`,
"parent": null,
"icon": (_item$acf2 = item.acf) === null || _item$acf2 === void 0 ? void 0 : _item$acf2.icon,
"iconAvif": Object(helper["b" /* convertImagePathToAvif */])((_item$acf3 = item.acf) === null || _item$acf3 === void 0 ? void 0 : _item$acf3.icon),
"order": Number((_item$acf4 = item.acf) === null || _item$acf4 === void 0 ? void 0 : _item$acf4.order) || 100
};
}).sort((cat1, cat2) => cat1.order - cat2.order);
const level2Categories = [];
for (let i = 0; i < level1Categories.length; i++) {
const level1 = level1Categories[i];
const level1Childe = visibleInMenuList.filter(item => item.parent == level1.id);
level1Childe.forEach(level2Item => {
var _level2Item$acf;
level2Categories.push({
"name": level2Item.slug,
"showName": level2Item.title,
"url": `/products/category/${level2Item.slug}`,
"parent": level1.name,
"icon": level2Item.acf.icon,
"iconAvif": Object(helper["b" /* convertImagePathToAvif */])(level2Item.acf.icon),
"order": Number((_level2Item$acf = level2Item.acf) === null || _level2Item$acf === void 0 ? void 0 : _level2Item$acf.order) || 100
});
});
}
this.level1Categories = level1Categories;
this.level2Categories = level2Categories.sort((cat1, cat2) => cat1.order - cat2.order);
},
methods: {
getLevel2Items(level1Name) {
return this.level2Categories.filter(item => item.parent == level1Name);
}
}
});
// CONCATENATED MODULE: ./components/shared/navigation/navigation_product_categories.vue?vue&type=script&lang=js
/* harmony default export */ var navigation_navigation_product_categoriesvue_type_script_lang_js = (navigation_product_categoriesvue_type_script_lang_js);
// CONCATENATED MODULE: ./components/shared/navigation/navigation_product_categories.vue
function navigation_product_categories_injectStyles (context) {
var style0 = __webpack_require__(59)
if (style0.__inject__) style0.__inject__(context)
}
/* normalize component */
var navigation_product_categories_component = Object(componentNormalizer["a" /* default */])(
navigation_navigation_product_categoriesvue_type_script_lang_js,
navigation_product_categoriesvue_type_template_id_4659a80d_scoped_true_render,
navigation_product_categoriesvue_type_template_id_4659a80d_scoped_true_staticRenderFns,
false,
navigation_product_categories_injectStyles,
"4659a80d",
"ce54bb04"
)
/* harmony default export */ var navigation_product_categories = (navigation_product_categories_component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/navigation/navigation_menu_drawer.vue?vue&type=script&lang=js
/* harmony default export */ var navigation_menu_drawervue_type_script_lang_js = ({
name: "MenuDrawer",
components: {
logoLink: navigation_logo_link,
navigationItem: navigation_item,
productCategoriesSubMen: navigation_product_categories,
LazyHydrate: external_vue_lazy_hydration_default.a
},
computed: {
instagramLink() {
return this.$t("contactInstagramLink");
},
homePageLink() {
return {
"name": "Home Page",
"showName": "home",
"url": "/",
"parent": null,
"order": 1,
"visible": true
};
},
catalogMenuItem() {
var _this$$i18n;
const isEn = ((_this$$i18n = this.$i18n) === null || _this$$i18n === void 0 ? void 0 : _this$$i18n.locale) == "en";
const faCatalog = "https://panel.parsmega.com/wp-content/uploads/2024/09/Parsmega-Products-Catalouge.pdf";
const enCatalog = "https://enpanel.parsmega.com/wp-content/uploads/2025/08/en-parsmega-products-catalog.pdf";
const catalogUrl = isEn ? enCatalog : faCatalog;
return {
"name": "Catalog",
"showName": "downloadCatalog",
"url": catalogUrl,
"parent": null,
"order": 80,
"visible": true
};
},
commonPagesLink() {
return [{
"name": "blog",
"showName": "articles",
"url": "/articles",
"parent": null,
"order": 30,
"visible": true
}, {
"name": "Contact Us",
"showName": "contact-us",
"url": "/contact-us",
"parent": null,
"order": 50,
"visible": true
}, {
"name": "About Us",
"showName": "about-us",
"url": "/about-us",
"parent": null,
"order": 60,
"visible": true
}, {
"name": "Agents",
"showName": "agents",
"url": "/agents",
"parent": null,
"order": 70,
"visible": true
}];
},
supportPhone() {
return this.$t("contactSupportPhoneValue");
},
supportPhoneLink() {
return this.$t("contactSupportPhonePureValue");
},
telegramLink() {
return this.$t("contactTelegramLink");
},
twitterLink() {
return this.$t("contactTwitterLink");
}
},
props: {
isDrawerActive: {
default: false,
required: true,
type: Boolean
}
}
});
// CONCATENATED MODULE: ./components/shared/navigation/navigation_menu_drawer.vue?vue&type=script&lang=js
/* harmony default export */ var navigation_navigation_menu_drawervue_type_script_lang_js = (navigation_menu_drawervue_type_script_lang_js);
// CONCATENATED MODULE: ./components/shared/navigation/navigation_menu_drawer.vue
function navigation_menu_drawer_injectStyles (context) {
var style0 = __webpack_require__(61)
if (style0.__inject__) style0.__inject__(context)
}
/* normalize component */
var navigation_menu_drawer_component = Object(componentNormalizer["a" /* default */])(
navigation_navigation_menu_drawervue_type_script_lang_js,
navigation_menu_drawervue_type_template_id_249efb10_scoped_true_render,
navigation_menu_drawervue_type_template_id_249efb10_scoped_true_staticRenderFns,
false,
navigation_menu_drawer_injectStyles,
"249efb10",
"4fac26a2"
)
/* harmony default export */ var navigation_menu_drawer = (navigation_menu_drawer_component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/navigation/navigation_menu_bar.vue?vue&type=script&lang=js
/* harmony default export */ var navigation_menu_barvue_type_script_lang_js = ({
name: "MenuBar",
components: {
menuDrawer: navigation_menu_drawer,
logoLink: navigation_logo_link
},
data() {
return {
isDrawerActive: false
};
},
methods: {
hideDrawer() {
this.isDrawerActive = false;
},
showDrawer() {
this.isDrawerActive = true;
}
},
watch: {
$route: {
handler: "hideDrawer"
}
}
});
// CONCATENATED MODULE: ./components/shared/navigation/navigation_menu_bar.vue?vue&type=script&lang=js
/* harmony default export */ var navigation_navigation_menu_barvue_type_script_lang_js = (navigation_menu_barvue_type_script_lang_js);
// CONCATENATED MODULE: ./components/shared/navigation/navigation_menu_bar.vue
function navigation_menu_bar_injectStyles (context) {
var style0 = __webpack_require__(63)
if (style0.__inject__) style0.__inject__(context)
}
/* normalize component */
var navigation_menu_bar_component = Object(componentNormalizer["a" /* default */])(
navigation_navigation_menu_barvue_type_script_lang_js,
navigation_menu_barvue_type_template_id_8df2affc_scoped_true_render,
navigation_menu_barvue_type_template_id_8df2affc_scoped_true_staticRenderFns,
false,
navigation_menu_bar_injectStyles,
"8df2affc",
"6f419d45"
)
/* harmony default export */ var navigation_menu_bar = (navigation_menu_bar_component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/navigation/navigation_bar.vue?vue&type=script&lang=js
/* harmony default export */ var navigation_barvue_type_script_lang_js = ({
name: "NavigationBar",
components: {
contactBar: navigation_contact_bar,
menuBar: navigation_menu_bar,
LazyHydrate: external_vue_lazy_hydration_default.a
}
});
// CONCATENATED MODULE: ./components/shared/navigation/navigation_bar.vue?vue&type=script&lang=js
/* harmony default export */ var navigation_navigation_barvue_type_script_lang_js = (navigation_barvue_type_script_lang_js);
// CONCATENATED MODULE: ./components/shared/navigation/navigation_bar.vue
function navigation_bar_injectStyles (context) {
var style0 = __webpack_require__(65)
if (style0.__inject__) style0.__inject__(context)
}
/* normalize component */
var navigation_bar_component = Object(componentNormalizer["a" /* default */])(
navigation_navigation_barvue_type_script_lang_js,
navigation_barvue_type_template_id_83e62960_scoped_true_render,
navigation_barvue_type_template_id_83e62960_scoped_true_staticRenderFns,
false,
navigation_bar_injectStyles,
"83e62960",
"cbec941e"
)
/* harmony default export */ var navigation_bar = (navigation_bar_component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/contact/floatedContactBtn.vue?vue&type=template&id=02f82748&scoped=true
var floatedContactBtnvue_type_template_id_02f82748_scoped_true_render = function render() {
var _vm = this,
_c = _vm._self._c;
return _c('div', {
staticClass: "contact"
}, [_vm._ssrNode("<div class=\"contact__items-wrapper\"" + _vm._ssrStyle(null, null, {
display: _vm.isItemsVisible ? '' : 'none'
}) + " data-v-02f82748><a" + _vm._ssrAttr("href", `tel:${_vm.$t('contactDirect')}`) + " class=\"contact__item contact__item--blue\" data-v-02f82748><span class=\"contact__item__text\" data-v-02f82748>" + _vm._ssrEscape("\n " + _vm._s(_vm.$t("contactBtnDirectCall")) + "\n ") + "</span></a> <a" + _vm._ssrAttr("href", _vm.$t('contactSellTeam')) + " class=\"contact__item contact__item--green\" data-v-02f82748><span class=\"contact__item__text\" data-v-02f82748>" + _vm._ssrEscape("\n " + _vm._s(_vm.$t("contactBtnSellTeam")) + "\n ") + "</span></a> <a" + _vm._ssrAttr("href", _vm.$t('contactTechnicalTeam')) + " class=\"contact__item contact__item--green\" data-v-02f82748><span class=\"contact__item__text\" data-v-02f82748>" + _vm._ssrEscape("\n " + _vm._s(_vm.$t("contactBtnTechnicalTeam")) + "\n ") + "</span></a></div> <button" + _vm._ssrAttr("title", _vm.$t('close')) + " class=\"contact__primary-action contact__primary-action--close\"" + _vm._ssrStyle(null, null, {
display: _vm.isItemsVisible ? '' : 'none'
}) + " data-v-02f82748></button> <button" + _vm._ssrAttr("title", _vm.$t('contactBtnPrimaryAction')) + " class=\"contact__primary-action contact__primary-action--show\"" + _vm._ssrStyle(null, null, {
display: !_vm.isItemsVisible ? '' : 'none'
}) + " data-v-02f82748><span class=\"contact__item__text contact__primary-action__text\" data-v-02f82748>" + _vm._ssrEscape("\n " + _vm._s(_vm.$t("contactBtnPrimaryAction")) + "\n ") + "</span></button>")]);
};
var floatedContactBtnvue_type_template_id_02f82748_scoped_true_staticRenderFns = [];
// CONCATENATED MODULE: ./components/shared/contact/floatedContactBtn.vue?vue&type=template&id=02f82748&scoped=true
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./components/shared/contact/floatedContactBtn.vue?vue&type=script&lang=js
/* harmony default export */ var floatedContactBtnvue_type_script_lang_js = ({
name: "ContactFloatedBtn",
data() {
return {
isItemsVisible: false
};
},
methods: {
showItems() {
this.isItemsVisible = true;
},
hideItems() {
this.isItemsVisible = false;
}
}
});
// CONCATENATED MODULE: ./components/shared/contact/floatedContactBtn.vue?vue&type=script&lang=js
/* harmony default export */ var contact_floatedContactBtnvue_type_script_lang_js = (floatedContactBtnvue_type_script_lang_js);
// CONCATENATED MODULE: ./components/shared/contact/floatedContactBtn.vue
function floatedContactBtn_injectStyles (context) {
var style0 = __webpack_require__(67)
if (style0.__inject__) style0.__inject__(context)
}
/* normalize component */
var floatedContactBtn_component = Object(componentNormalizer["a" /* default */])(
contact_floatedContactBtnvue_type_script_lang_js,
floatedContactBtnvue_type_template_id_02f82748_scoped_true_render,
floatedContactBtnvue_type_template_id_02f82748_scoped_true_staticRenderFns,
false,
floatedContactBtn_injectStyles,
"02f82748",
"68bd25fc"
)
/* harmony default export */ var floatedContactBtn = (floatedContactBtn_component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/string-replace-loader??ref--12!./layouts/default.vue?vue&type=script&lang=js
/* harmony default export */ var defaultvue_type_script_lang_js = ({
name: "Default",
components: {
appFooter: app_footer,
navigationBar: navigation_bar,
contactBtn: floatedContactBtn
},
computed: {
applicationClassList() {
const lang = this.language;
let classList = {
app: true
};
classList[`app--${lang}`] = true;
return classList;
},
language() {
return this.$i18n.localeProperties.code || "fa";
}
}
});
// CONCATENATED MODULE: ./layouts/default.vue?vue&type=script&lang=js
/* harmony default export */ var layouts_defaultvue_type_script_lang_js = (defaultvue_type_script_lang_js);
// CONCATENATED MODULE: ./layouts/default.vue
function default_injectStyles (context) {
var style0 = __webpack_require__(69)
if (style0.__inject__) style0.__inject__(context)
}
/* normalize component */
var default_component = Object(componentNormalizer["a" /* default */])(
layouts_defaultvue_type_script_lang_js,
defaultvue_type_template_id_b6916b70_render,
defaultvue_type_template_id_b6916b70_staticRenderFns,
false,
default_injectStyles,
null,
"24f1b840"
)
/* harmony default export */ var layouts_default = (default_component.exports);
// CONCATENATED MODULE: ./.nuxt/App.js
const layouts = {
"_default": sanitizeComponent(layouts_default)
};
/* harmony default export */ var App = ({
render(h, props) {
const loadingEl = h('NuxtLoading', {
ref: 'loading'
});
const layoutEl = h(this.layout || 'nuxt');
const templateEl = h('div', {
domProps: {
id: '__layout'
},
key: this.layoutName
}, [layoutEl]);
const transitionEl = h('transition', {
props: {
name: 'layout',
mode: 'out-in'
},
on: {
beforeEnter(el) {
// Ensure to trigger scroll event after calling scrollBehavior
window.$nuxt.$nextTick(() => {
window.$nuxt.$emit('triggerScroll');
});
}
}
}, [templateEl]);
return h('div', {
domProps: {
id: '__nuxt'
}
}, [loadingEl, transitionEl]);
},
data: () => ({
isOnline: true,
layout: null,
layoutName: '',
nbFetching: 0
}),
beforeCreate() {
external_vue_default.a.util.defineReactive(this, 'nuxt', this.$options.nuxt);
},
created() {
// Add this.$nuxt in child instances
this.$root.$options.$nuxt = this;
if (false) {}
// Add $nuxt.error()
this.error = this.nuxt.error;
// Add $nuxt.context
this.context = this.$options.context;
},
async mounted() {
this.$loading = this.$refs.loading;
},
watch: {
'nuxt.err': 'errorChanged'
},
computed: {
isOffline() {
return !this.isOnline;
},
isFetching() {
return this.nbFetching > 0;
}
},
methods: {
refreshOnlineStatus() {
if (false) {}
},
async refresh() {
const pages = getMatchedComponentsInstances(this.$route);
if (!pages.length) {
return;
}
this.$loading.start();
const promises = pages.map(async page => {
let p = [];
// Old fetch
if (page.$options.fetch && page.$options.fetch.length) {
p.push(promisify(page.$options.fetch, this.context));
}
if (page.$options.asyncData) {
p.push(promisify(page.$options.asyncData, this.context).then(newData => {
for (const key in newData) {
external_vue_default.a.set(page.$data, key, newData[key]);
}
}));
}
// Wait for asyncData & old fetch to finish
await Promise.all(p);
// Cleanup refs
p = [];
if (page.$fetch) {
p.push(page.$fetch());
}
// Get all component instance to call $fetch
for (const component of getChildrenComponentInstancesUsingFetch(page.$vnode.componentInstance)) {
p.push(component.$fetch());
}
return Promise.all(p);
});
try {
await Promise.all(promises);
} catch (error) {
this.$loading.fail(error);
globalHandleError(error);
this.error(error);
}
this.$loading.finish();
},
errorChanged() {
if (this.nuxt.err) {
if (this.$loading) {
if (this.$loading.fail) {
this.$loading.fail(this.nuxt.err);
}
if (this.$loading.finish) {
this.$loading.finish();
}
}
let errorLayout = (layouts_error.options || layouts_error).layout;
if (typeof errorLayout === 'function') {
errorLayout = errorLayout(this.context);
}
this.nuxt.errPageReady = true;
this.setLayout(errorLayout);
}
},
setLayout(layout) {
if (!layout || !layouts['_' + layout]) {
layout = 'default';
}
this.layoutName = layout;
this.layout = layouts['_' + layout];
return this.layout;
},
loadLayout(layout) {
if (!layout || !layouts['_' + layout]) {
layout = 'default';
}
return Promise.resolve(layouts['_' + layout]);
}
},
components: {
NuxtLoading: nuxt_loading
}
});
// CONCATENATED MODULE: ./.nuxt/store.js
external_vue_default.a.use(external_vuex_default.a);
const VUEX_PROPERTIES = ['state', 'getters', 'actions', 'mutations'];
let store_store = {};
(function updateModules() {
// If store is an exported method = classic mode (deprecated)
// Enforce store modules
store_store.modules = store_store.modules || {};
resolveStoreModules(__webpack_require__(36), 'category_filter_data.js');
// If the environment supports hot reloading...
})();
// createStore
const createStore = store_store instanceof Function ? store_store : () => {
return new external_vuex_default.a.Store(Object.assign({
strict: "production" !== 'production'
}, store_store));
};
function normalizeRoot(moduleData, filePath) {
moduleData = moduleData.default || moduleData;
if (moduleData.commit) {
throw new Error(`[nuxt] ${filePath} should export a method that returns a Vuex instance.`);
}
if (typeof moduleData !== 'function') {
// Avoid TypeError: setting a property that has only a getter when overwriting top level keys
moduleData = Object.assign({}, moduleData);
}
return normalizeModule(moduleData, filePath);
}
function normalizeModule(moduleData, filePath) {
if (moduleData.state && typeof moduleData.state !== 'function') {
console.warn(`'state' should be a method that returns an object in ${filePath}`);
const state = Object.assign({}, moduleData.state);
// Avoid TypeError: setting a property that has only a getter when overwriting top level keys
moduleData = Object.assign({}, moduleData, {
state: () => state
});
}
return moduleData;
}
function resolveStoreModules(moduleData, filename) {
moduleData = moduleData.default || moduleData;
// Remove store src + extension (./foo/index.js -> foo/index)
const namespace = filename.replace(/\.(js|mjs)$/, '');
const namespaces = namespace.split('/');
let moduleName = namespaces[namespaces.length - 1];
const filePath = `store/${filename}`;
moduleData = moduleName === 'state' ? normalizeState(moduleData, filePath) : normalizeModule(moduleData, filePath);
// If src is a known Vuex property
if (VUEX_PROPERTIES.includes(moduleName)) {
const property = moduleName;
const propertyStoreModule = getStoreModule(store_store, namespaces, {
isProperty: true
});
// Replace state since it's a function
mergeProperty(propertyStoreModule, moduleData, property);
return;
}
// If file is foo/index.js, it should be saved as foo
const isIndexModule = moduleName === 'index';
if (isIndexModule) {
namespaces.pop();
moduleName = namespaces[namespaces.length - 1];
}
const storeModule = getStoreModule(store_store, namespaces);
for (const property of VUEX_PROPERTIES) {
mergeProperty(storeModule, moduleData[property], property);
}
if (moduleData.namespaced === false) {
delete storeModule.namespaced;
}
}
function normalizeState(moduleData, filePath) {
if (typeof moduleData !== 'function') {
console.warn(`${filePath} should export a method that returns an object`);
const state = Object.assign({}, moduleData);
return () => state;
}
return normalizeModule(moduleData, filePath);
}
function getStoreModule(storeModule, namespaces, {
isProperty = false
} = {}) {
// If ./mutations.js
if (!namespaces.length || isProperty && namespaces.length === 1) {
return storeModule;
}
const namespace = namespaces.shift();
storeModule.modules[namespace] = storeModule.modules[namespace] || {};
storeModule.modules[namespace].namespaced = true;
storeModule.modules[namespace].modules = storeModule.modules[namespace].modules || {};
return getStoreModule(storeModule.modules[namespace], namespaces, {
isProperty
});
}
function mergeProperty(storeModule, moduleData, property) {
if (!moduleData) {
return;
}
if (property === 'state') {
storeModule.state = moduleData || storeModule.state;
} else {
storeModule[property] = Object.assign({}, storeModule[property], moduleData);
}
}
// CONCATENATED MODULE: ./.nuxt/v-lazy-load.js
__webpack_require__(71);
let v_lazy_load_options = {
"images": true,
"videos": true,
"audios": true,
"iframes": true,
"native": false,
"directiveOnly": true,
"loadingClass": "isLoading",
"loadedClass": "isLoaded",
"appendClass": "lazyLoad",
"observerConfig": {},
"globalName": "nuxt"
};
let observer = null;
let attributes = ['src', 'poster', 'srcset'];
let elementsMap = {
img: 'images',
video: 'videos',
audio: 'audios',
iframe: 'iframes',
picture: 'images'
};
const capitalize = s => {
if (typeof s !== 'string') return '';
return s.charAt(0).toUpperCase() + s.slice(1);
};
const setAttributes = (el, defaultImage = false) => {
let elementTagName = el.tagName.toLowerCase();
if (elementTagName !== 'svg') {
let media = el.children && el.children.length > 0 ? [...el.children, el] : [el];
media.forEach(el => {
for (let attribute of attributes) {
if (el.dataset[attribute]) {
el[attribute] = defaultImage ? v_lazy_load_options.defaultImage : el.dataset[attribute];
if (!defaultImage) el.removeAttribute(`data-${attribute}`);
}
if (el.load) el.load();
if (elementTagName === 'audio' && el.getAttribute('data-lazy-controls') === 'true') {
el.removeAttribute('controls');
el.removeAttribute('data-lazy-controls');
}
}
});
}
};
const setBackground = el => {
el.style.backgroundImage = `url(${el.getAttribute('lazy-background')})`;
el.removeAttribute('lazy-background');
if (v_lazy_load_options.loadedClass !== false) el.classList.add(v_lazy_load_options.loadedClass);
};
const setClasses = (el, type) => {
let elementTagName = el.tagName.toLowerCase();
if (['img', 'picture', 'video'].includes(elementTagName)) {
el = elementTagName === 'picture' ? el.querySelector('img') : el;
let eventName = elementTagName === 'video' ? 'loadeddata' : 'load';
const e = elementTagName === 'picture' ? el.parentNode : el;
if (v_lazy_load_options.loadingClass !== false && type === 'loading') {
e.classList.add(v_lazy_load_options.loadingClass);
el.addEventListener(eventName, () => {
e.classList.remove(v_lazy_load_options.loadingClass);
});
} else if (v_lazy_load_options.loadedClass !== false && type === 'loaded') {
el.addEventListener(eventName, () => {
e.classList.add(v_lazy_load_options.loadedClass);
});
}
} else if (type === 'loaded' && v_lazy_load_options.loadedClass !== false) {
el.classList.add(v_lazy_load_options.loadedClass);
}
};
const removeNotLazy = el => {
el.removeAttribute('data-no-lazy');
el.removeAttribute('data-not-lazy');
};
if (false) {}
const vLazyLoad = external_vue_default.a.directive('lazy-load', {
inserted(el, {
value,
def
}) {
def.set(el, value);
},
update(el, {
value,
def
}, vNode, oldVnode) {
for (let attribute of attributes) {
if (oldVnode.data.attrs && vNode.data.attrs && oldVnode.data.attrs[`data-${attribute}`] !== vNode.data.attrs[`data-${attribute}`]) {
def.set(el, value);
break;
}
}
},
set(el, value) {
if (v_lazy_load_options.native === true) {
if (v_lazy_load_options.appendClass) el.classList.add(v_lazy_load_options.appendClass);
if (['notLazy', 'noLazy'].every(d => el.dataset[d] === undefined)) {
el.setAttribute('loading', 'lazy');
removeNotLazy(el);
if (v_lazy_load_options.loadedClass) {
el.addEventListener('load', () => {
el.classList.add(v_lazy_load_options.loadedClass);
});
}
}
} else {
if (v_lazy_load_options.defaultImage) setAttributes(el, true);
if (false) {}
}
}
});
const vLazyBackground = external_vue_default.a.directive('lazy-background', {
inserted(el, {
def
}) {
def.set(el);
},
update(el, {
def
}, vNode, oldVnode) {
def.set(el, vNode.data.attrs['lazy-background'] !== oldVnode.data.attrs['lazy-background']);
},
set(el, hasBackgroundChanged = false) {
if (false) {}
}
});
external_vue_default.a.use(vLazyLoad);
external_vue_default.a.use(vLazyBackground);
const lazyLoadMedia = el => {
el.removeAttribute('data-manual-lazy');
if (v_lazy_load_options.appendClass !== false) el.classList.add(v_lazy_load_options.appendClass);
if (el.getAttribute('lazy-background')) setBackground(el);else {
setAttributes(el);
setClasses(el, 'loading');
setClasses(el, 'loaded');
}
};
const lazyLoadInject = e => {
if (e.target) {
let media = e.target.querySelectorAll('[data-manual-lazy]');
[...media].forEach(m => lazyLoadMedia(m));
} else lazyLoadMedia(e);
};
// IE Polyfill
// if (!Array.from && options.polyfill) {
// Array.from = (function () {
// var toStr = Object.prototype.toString;
// var isCallable = function (fn) {
// return typeof fn === 'function' || toStr.call(fn) === '[object Function]';
// };
// var toInteger = function (value) {
// var number = Number(value);
// if (isNaN(number)) { return 0; }
// if (number === 0 || !isFinite(number)) { return number; }
// return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));
// };
// var maxSafeInteger = Math.pow(2, 53) - 1;
// var toLength = function (value) {
// var len = toInteger(value);
// return Math.min(Math.max(len, 0), maxSafeInteger);
// };
// return function from(arrayLike) {
// var C = this;
// var items = Object(arrayLike);
// if (arrayLike == null) {
// throw new TypeError("Array.from requires an array-like object - not null or undefined");
// }
// var mapFn = arguments.length > 1 ? arguments[1] : void undefined;
// var T;
// if (typeof mapFn !== 'undefined') {
// if (!isCallable(mapFn)) {
// throw new TypeError('Array.from: when provided, the second argument must be a function');
// }
// if (arguments.length > 2) {
// T = arguments[2];
// }
// }
// var len = toLength(items.length);
// var A = isCallable(C) ? Object(new C(len)) : new Array(len);
// var k = 0;
// var kValue;
// while (k < len) {
// kValue = items[k];
// if (mapFn) {
// A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);
// } else {
// A[k] = kValue;
// }
// k += 1;
// }
// A.length = len;
// return A;
// };
// }());
// }
/* harmony default export */ var v_lazy_load = ((context, inject) => {
inject('lazyLoad', lazyLoadInject);
});
// EXTERNAL MODULE: ./node_modules/is-https/dist/index.js
var dist = __webpack_require__(34);
var dist_default = /*#__PURE__*/__webpack_require__.n(dist);
// CONCATENATED MODULE: ./.nuxt/nuxt-i18n/options.js
const Constants = {
COMPONENT_OPTIONS_KEY: "nuxtI18n",
STRATEGIES: {
"PREFIX": "prefix",
"PREFIX_EXCEPT_DEFAULT": "prefix_except_default",
"PREFIX_AND_DEFAULT": "prefix_and_default",
"NO_PREFIX": "no_prefix"
}
};
const nuxtOptions = {
isUniversalMode: true,
trailingSlash: undefined
};
const options_options = {
vueI18n: {},
vueI18nLoader: false,
locales: [{
"code": "fa",
"iso": "fa-IR",
"file": "fa.js",
"dir": "rtl"
}, {
"code": "en",
"iso": "en-US",
"file": "en.js",
"dir": "ltr"
}],
defaultLocale: "fa",
defaultDirection: "ltr",
routesNameSeparator: "___",
defaultLocaleRouteNameSuffix: "default",
sortRoutes: true,
strategy: "prefix_except_default",
lazy: true,
langDir: "C:\\inetpub\\wwwroot\\parsmega.nuxt\\languages",
rootRedirect: null,
detectBrowserLanguage: false,
differentDomains: false,
seo: false,
baseUrl: "",
vuex: {
"moduleName": "i18n",
"syncLocale": false,
"syncMessages": false,
"syncRouteParams": true
},
parsePages: true,
pages: {},
skipSettingLocaleOnNavigate: false,
beforeLanguageSwitch: () => null,
onBeforeLanguageSwitch: () => {},
onLanguageSwitched: () => null,
fallbackLocale: "fa",
useCookie: false,
normalizedLocales: [{
"code": "fa",
"iso": "fa-IR",
"file": "fa.js",
"dir": "rtl"
}, {
"code": "en",
"iso": "en-US",
"file": "en.js",
"dir": "ltr"
}],
localeCodes: ["fa", "en"]
};
const localeMessages = {
'fa.js': () => __webpack_require__.e(/* import() | lang-fa.js */ 2).then(__webpack_require__.bind(null, 251)),
'en.js': () => __webpack_require__.e(/* import() | lang-en.js */ 1).then(__webpack_require__.bind(null, 252))
};
// EXTERNAL MODULE: external "cookie"
var external_cookie_ = __webpack_require__(15);
var external_cookie_default = /*#__PURE__*/__webpack_require__.n(external_cookie_);
// EXTERNAL MODULE: external "js-cookie"
var external_js_cookie_ = __webpack_require__(72);
// CONCATENATED MODULE: ./.nuxt/nuxt-i18n/utils-common.js
/** @typedef {import('../../types/internal').ResolvedOptions} ResolvedOptions */
/**
* Formats a log message, prefixing module's name to it.
*
* @param {string} text
* @return {string}
*/
function formatMessage(text) {
return `[nuxt-i18n] ${text}`;
}
/**
* Parses locales provided from browser through `accept-language` header.
*
* @param {string} input
* @return {string[]} An array of locale codes. Priority determined by order in array.
*/
function parseAcceptLanguage(input) {
// Example input: en-US,en;q=0.9,nb;q=0.8,no;q=0.7
// Contains tags separated by comma.
// Each tag consists of locale code (2-3 letter language code) and optionally country code
// after dash. Tag can also contain score after semicolon, that is assumed to match order
// so it's not explicitly used.
return input.split(',').map(tag => tag.split(';')[0]);
}
/**
* Find locale code that best matches provided list of browser locales.
*
* @param {ResolvedOptions['normalizedLocales']} appLocales The user-configured locales that are to be matched.
* @param {readonly string[]} browserLocales The locales to match against configured.
* @return {string | undefined}
*/
function matchBrowserLocale(appLocales, browserLocales) {
/** @type {{ code: string, score: number }[]} */
const matchedLocales = [];
// Normalise appLocales input
/** @type {{ code: string, iso: string }[]} */
const normalizedAppLocales = [];
for (const appLocale of appLocales) {
const {
code
} = appLocale;
const iso = appLocale.iso || code;
normalizedAppLocales.push({
code,
iso
});
}
// First pass: match exact locale.
for (const [index, browserCode] of browserLocales.entries()) {
const matchedLocale = normalizedAppLocales.find(appLocale => appLocale.iso.toLowerCase() === browserCode.toLowerCase());
if (matchedLocale) {
matchedLocales.push({
code: matchedLocale.code,
score: 1 - index / browserLocales.length
});
break;
}
}
// Second pass: match only locale code part of the browser locale (not including country).
for (const [index, browserCode] of browserLocales.entries()) {
const languageCode = browserCode.split('-')[0].toLowerCase();
const matchedLocale = normalizedAppLocales.find(appLocale => appLocale.iso.split('-')[0].toLowerCase() === languageCode);
if (matchedLocale) {
// Deduct a thousandth for being non-exact match.
matchedLocales.push({
code: matchedLocale.code,
score: 0.999 - index / browserLocales.length
});
break;
}
}
// Sort the list by score (0 - lowest, 1 - highest).
if (matchedLocales.length > 1) {
matchedLocales.sort((localeA, localeB) => {
if (localeA.score === localeB.score) {
// If scores are equal then pick more specific (longer) code.
return localeB.code.length - localeA.code.length;
}
return localeB.score - localeA.score;
});
}
return matchedLocales.length ? matchedLocales[0].code : undefined;
}
/**
* Get locale code that corresponds to current hostname
*
* @param {ResolvedOptions['normalizedLocales']} locales
* @param {import('http').IncomingMessage | undefined} req
* @return {string} Locale code found if any
*/
function getLocaleDomain(locales, req) {
/** @type {string | undefined} */
let host;
if (false) {} else if (req) {
const detectedHost = req.headers['x-forwarded-host'] || req.headers.host;
host = Array.isArray(detectedHost) ? detectedHost[0] : detectedHost;
}
if (host) {
const matchingLocale = locales.find(l => l.domain === host);
if (matchingLocale) {
return matchingLocale.code;
}
}
return '';
}
/**
* Creates a RegExp for route paths
*
* @param {readonly string[]} localeCodes
* @return {RegExp}
*/
function getLocalesRegex(localeCodes) {
return new RegExp(`^/(${localeCodes.join('|')})(?:/|$)`, 'i');
}
/**
* Creates getter for getLocaleFromRoute
*
* @param {readonly string[]} localeCodes
* @param {Pick<ResolvedOptions, 'routesNameSeparator' | 'defaultLocaleRouteNameSuffix'>} options
*/
function createLocaleFromRouteGetter(localeCodes, {
routesNameSeparator,
defaultLocaleRouteNameSuffix
}) {
const localesPattern = `(${localeCodes.join('|')})`;
const defaultSuffixPattern = `(?:${routesNameSeparator}${defaultLocaleRouteNameSuffix})?`;
const regexpName = new RegExp(`${routesNameSeparator}${localesPattern}${defaultSuffixPattern}$`, 'i');
const regexpPath = getLocalesRegex(localeCodes);
/**
* Extract locale code from given route:
* - If route has a name, try to extract locale from it
* - Otherwise, fall back to using the routes'path
* @param {import('vue-router').Route} route
* @return {string} Locale code found if any
*/
const getLocaleFromRoute = route => {
// Extract from route name
if (route.name) {
const matches = route.name.match(regexpName);
if (matches && matches.length > 1) {
return matches[1];
}
} else if (route.path) {
// Extract from path
const matches = route.path.match(regexpPath);
if (matches && matches.length > 1) {
return matches[1];
}
}
return '';
};
return getLocaleFromRoute;
}
/**
* @param {import('http').IncomingMessage | undefined} req
* @param {{ useCookie: boolean, cookieKey: string, localeCodes: readonly string[] }} options
* @return {string | undefined}
*/
function getLocaleCookie(req, {
useCookie,
cookieKey,
localeCodes
}) {
if (useCookie) {
let localeCode;
if (false) {} else if (req && typeof req.headers.cookie !== 'undefined') {
const cookies = req.headers && req.headers.cookie ? external_cookie_default.a.parse(req.headers.cookie) : {};
localeCode = cookies[cookieKey];
}
if (localeCode && localeCodes.includes(localeCode)) {
return localeCode;
}
}
}
/**
* @param {string} locale
* @param {import('http').ServerResponse | undefined} res
* @param {{ useCookie: boolean, cookieDomain: string | null, cookieKey: string, cookieSecure: boolean, cookieCrossOrigin: boolean}} options
*/
function setLocaleCookie(locale, res, {
useCookie,
cookieDomain,
cookieKey,
cookieSecure,
cookieCrossOrigin
}) {
if (!useCookie) {
return;
}
const date = new Date();
/** @type {import('cookie').CookieSerializeOptions} */
const cookieOptions = {
expires: new Date(date.setDate(date.getDate() + 365)),
path: '/',
sameSite: cookieCrossOrigin ? 'none' : 'lax',
secure: cookieCrossOrigin || cookieSecure
};
if (cookieDomain) {
cookieOptions.domain = cookieDomain;
}
if (false) {} else if (res) {
let headers = res.getHeader('Set-Cookie') || [];
if (!Array.isArray(headers)) {
headers = [String(headers)];
}
const redirectCookie = external_cookie_default.a.serialize(cookieKey, locale, cookieOptions);
headers.push(redirectCookie);
res.setHeader('Set-Cookie', headers);
}
}
// EXTERNAL MODULE: ./node_modules/nuxt-i18n/node_modules/ufo/dist/index.cjs
var ufo_dist = __webpack_require__(6);
// CONCATENATED MODULE: ./.nuxt/nuxt-i18n/plugin.utils.js
// @ts-ignore
/** @typedef {import('../../types/internal').ResolvedOptions} ResolvedOptions */
/**
* Asynchronously load messages from translation files
*
* @param {import('@nuxt/types').Context} context
* @param {string} locale Language code to load
* @return {Promise<void>}
*/
async function loadLanguageAsync(context, locale) {
const {
app
} = context;
const {
i18n
} = app;
if (!i18n.loadedLanguages) {
i18n.loadedLanguages = [];
}
if (!i18n.loadedLanguages.includes(locale)) {
const localeObject = options_options.normalizedLocales.find(l => l.code === locale);
if (localeObject) {
const {
file
} = localeObject;
if (file) {
/* */
/** @type {import('vue-i18n').LocaleMessageObject | undefined} */
let messages;
if (false) {}
if (!messages) {
try {
// @ts-ignore
const getter = await localeMessages[file]().then(m => m.default || m);
messages = typeof getter === 'function' ? await Promise.resolve(getter(context, locale)) : getter;
} catch (error) {
// eslint-disable-next-line no-console
console.error(formatMessage(`Failed loading async locale export: ${error.message}`));
}
}
if (messages) {
i18n.setLocaleMessage(locale, messages);
i18n.loadedLanguages.push(locale);
}
/* */
} else {
console.warn(formatMessage(`Could not find lang file for locale ${locale}`));
}
} else {
console.warn(formatMessage(`Attempted to load messages for non-existant locale code "${locale}"`));
}
}
}
/**
* Resolves base URL value if provided as function. Otherwise just returns verbatim.
*
* @param {string | ((context: import('@nuxt/types').Context) => string)} baseUrl
* @param {import('@nuxt/types').Context} context
* @param {import('../../types').Locale} localeCode
* @param {Pick<ResolvedOptions, 'differentDomains' | 'normalizedLocales'>} options
* @return {string}
*/
function resolveBaseUrl(baseUrl, context, localeCode, {
differentDomains,
normalizedLocales
}) {
if (typeof baseUrl === 'function') {
return baseUrl(context);
}
if (differentDomains && localeCode) {
// Lookup the `differentDomain` origin associated with given locale.
const domain = getDomainFromLocale(localeCode, context.req, {
normalizedLocales
});
if (domain) {
return domain;
}
}
return baseUrl;
}
/**
* Gets the `differentDomain` domain from locale.
*
* @param {string} localeCode
* @param {import('http').IncomingMessage | undefined} req
* @param {Pick<ResolvedOptions, 'normalizedLocales'>} options
* @return {string | undefined}
*/
function getDomainFromLocale(localeCode, req, {
normalizedLocales
}) {
// Lookup the `differentDomain` origin associated with given locale.
const lang = normalizedLocales.find(locale => locale.code === localeCode);
if (lang && lang.domain) {
if (Object(ufo_dist["hasProtocol"])(lang.domain)) {
return lang.domain;
}
let protocol;
if (true) {
protocol = req && dist_default()(req) ? 'https' : 'http';
} else {}
return `${protocol}://${lang.domain}`;
}
// eslint-disable-next-line no-console
console.warn(formatMessage(`Could not find domain name for locale ${localeCode}`));
}
/**
* @param {import('vuex').Store<Record<string, boolean>>} store
* @param {Required<import('../../types').VuexOptions>} vuex
* @param {readonly string[]} localeCodes
*/
function registerStore(store, vuex, localeCodes) {
/** @typedef {{
* locale?: string
* messages?: Record<string, string>
* routeParams?: Record<string, Record<string, string>>
* }} ModuleStore
*
* @type {import('vuex').Module<ModuleStore, {}>}
*/
const storeModule = {
namespaced: true,
state: () => ({
...(vuex.syncLocale ? {
locale: ''
} : {}),
...(vuex.syncMessages ? {
messages: {}
} : {}),
...(vuex.syncRouteParams ? {
routeParams: {}
} : {})
}),
actions: {
...(vuex.syncLocale ? {
setLocale({
commit
}, locale) {
commit('setLocale', locale);
}
} : {}),
...(vuex.syncMessages ? {
setMessages({
commit
}, messages) {
commit('setMessages', messages);
}
} : {}),
...(vuex.syncRouteParams ? {
setRouteParams({
commit
}, params) {
if (false) {}
commit('setRouteParams', params);
}
} : {})
},
mutations: {
...(vuex.syncLocale ? {
setLocale(state, locale) {
state.locale = locale;
}
} : {}),
...(vuex.syncMessages ? {
setMessages(state, messages) {
state.messages = messages;
}
} : {}),
...(vuex.syncRouteParams ? {
setRouteParams(state, params) {
state.routeParams = params;
}
} : {})
},
getters: {
...(vuex.syncRouteParams ? {
localeRouteParams: ({
routeParams
}) => {
/** @type {(locale: string) => Record<string, string>} */
const paramsGetter = locale => routeParams && routeParams[locale] || {};
return paramsGetter;
}
} : {})
}
};
store.registerModule(vuex.moduleName, storeModule, {
preserveState: !!store.state[vuex.moduleName]
});
}
/**
* Dispatch store module actions to keep it in sync with app's locale data
*
* @param {import('vuex').Store<void>} store
* @param {string | null} locale The current locale
* @param {object | null} messages Current messages
* @param {ResolvedOptions['vuex']} vuex
* @return {Promise<void>}
*/
async function syncVuex(store, locale = null, messages = null, vuex) {
if (vuex && store) {
if (locale !== null && vuex.syncLocale) {
await store.dispatch(vuex.moduleName + '/setLocale', locale);
}
if (messages !== null && vuex.syncMessages) {
await store.dispatch(vuex.moduleName + '/setMessages', messages);
}
}
}
/**
* Validate setRouteParams action's payload
*
* @param {object} routeParams The action's payload
* @param {readonly string[]} localeCodes
*/
function validateRouteParams(routeParams, localeCodes) {
if (!isObject(routeParams)) {
// eslint-disable-next-line no-console
console.warn(formatMessage('Route params should be an object'));
return;
}
for (const [key, value] of Object.entries(routeParams)) {
if (!localeCodes.includes(key)) {
// eslint-disable-next-line no-console
console.warn(formatMessage(`Trying to set route params for key ${key} which is not a valid locale`));
} else if (!isObject(value)) {
// eslint-disable-next-line no-console
console.warn(formatMessage(`Trying to set route params for locale ${key} with a non-object value`));
}
}
}
/**
* @param {any} value
* @return {boolean}
*/
function isObject(value) {
return value && !Array.isArray(value) && typeof value === 'object';
}
// CONCATENATED MODULE: ./.nuxt/nuxt-i18n/middleware.js
// @ts-ignore
/** @type {import('@nuxt/types').Middleware} */
const i18nMiddleware = async context => {
const {
app,
isHMR
} = context;
if (isHMR) {
return;
}
const [status, redirectPath, preserveQuery] = await app.i18n.__onNavigate(context.route);
if (status && redirectPath) {
const query = preserveQuery ? context.route.query : undefined;
context.redirect(status, redirectPath, query);
}
};
_nuxt_middleware.nuxti18n = i18nMiddleware;
// CONCATENATED MODULE: ./.nuxt/nuxt-i18n/plugin.routing.js
// @ts-ignore
/**
* @this {import('../../types/internal').PluginProxy}
* @type {Vue['localePath']}
*/
function plugin_routing_localePath(route, locale) {
const localizedRoute = resolveRoute.call(this, route, locale);
return localizedRoute ? localizedRoute.route.fullPath : '';
}
/**
* @this {import('../../types/internal').PluginProxy}
* @type {Vue['localeRoute']}
*/
function localeRoute(route, locale) {
const resolved = resolveRoute.call(this, route, locale);
return resolved ? resolved.route : undefined;
}
/**
* @this {import('../../types/internal').PluginProxy}
* @type {Vue['localeLocation']}
*/
function localeLocation(route, locale) {
const resolved = resolveRoute.call(this, route, locale);
return resolved ? resolved.location : undefined;
}
/**
* @this {import('../../types/internal').PluginProxy}
* @param {import('vue-router').RawLocation} route
* @param {string} [locale]
* @return {ReturnType<import('vue-router').default['resolve']> | undefined}
*/
function resolveRoute(route, locale) {
// Abort if no route or no locale
if (!route) {
return;
}
const {
i18n
} = this;
locale = locale || i18n.locale;
if (!locale) {
return;
}
// If route parameter is a string, check if it's a path or name of route.
if (typeof route === 'string') {
if (route[0] === '/') {
// If route parameter is a path, create route object with path.
route = {
path: route
};
} else {
// Else use it as route name.
route = {
name: route
};
}
}
let localizedRoute = Object.assign({}, route);
if (localizedRoute.path && !localizedRoute.name) {
const resolvedRoute = this.router.resolve(localizedRoute).route;
const resolvedRouteName = this.getRouteBaseName(resolvedRoute);
if (resolvedRouteName) {
localizedRoute = {
name: getLocaleRouteName(resolvedRouteName, locale),
params: resolvedRoute.params,
query: resolvedRoute.query,
hash: resolvedRoute.hash
};
} else {
const isDefaultLocale = locale === options_options.defaultLocale;
// if route has a path defined but no name, resolve full route using the path
const isPrefixed =
// don't prefix default locale
!(isDefaultLocale && [Constants.STRATEGIES.PREFIX_EXCEPT_DEFAULT, Constants.STRATEGIES.PREFIX_AND_DEFAULT].includes(options_options.strategy)) &&
// no prefix for any language
!(options_options.strategy === Constants.STRATEGIES.NO_PREFIX) &&
// no prefix for different domains
!i18n.differentDomains;
if (isPrefixed) {
localizedRoute.path = `/${locale}${localizedRoute.path}`;
}
localizedRoute.path = nuxtOptions.trailingSlash ? Object(ufo_dist["withTrailingSlash"])(localizedRoute.path, true) : Object(ufo_dist["withoutTrailingSlash"])(localizedRoute.path, true);
}
} else {
if (!localizedRoute.name && !localizedRoute.path) {
localizedRoute.name = this.getRouteBaseName();
}
localizedRoute.name = getLocaleRouteName(localizedRoute.name, locale);
const {
params
} = localizedRoute;
if (params && params['0'] === undefined && params.pathMatch) {
params['0'] = params.pathMatch;
}
}
const resolvedRoute = this.router.resolve(localizedRoute);
if (resolvedRoute.route.name) {
return resolvedRoute;
}
// If didn't resolve to an existing route then just return resolved route based on original input.
return this.router.resolve(route);
}
/**
* @this {import('../../types/internal').PluginProxy}
* @type {Vue['switchLocalePath']}
*/
function switchLocalePath(locale) {
const name = this.getRouteBaseName();
if (!name) {
return '';
}
const {
i18n,
route,
store
} = this;
const {
params,
...routeCopy
} = route;
let langSwitchParams = {};
if (options_options.vuex && options_options.vuex.syncRouteParams && store) {
langSwitchParams = store.getters[`${options_options.vuex.moduleName}/localeRouteParams`](locale);
}
const baseRoute = Object.assign({}, routeCopy, {
name,
params: {
...params,
...langSwitchParams,
0: params.pathMatch
}
});
let path = this.localePath(baseRoute, locale);
// Handle different domains
if (i18n.differentDomains) {
const getDomainOptions = {
differentDomains: i18n.differentDomains,
normalizedLocales: options_options.normalizedLocales
};
const domain = getDomainFromLocale(locale, this.req, getDomainOptions);
if (domain) {
path = domain + path;
}
}
return path;
}
/**
* @this {import('../../types/internal').PluginProxy}
* @type {Vue['getRouteBaseName']}
*/
function getRouteBaseName(givenRoute) {
const route = givenRoute !== undefined ? givenRoute : this.route;
if (!route || !route.name) {
return;
}
return route.name.split(options_options.routesNameSeparator)[0];
}
/**
* @param {string | undefined} routeName
* @param {string} locale
*/
function getLocaleRouteName(routeName, locale) {
let name = routeName + (options_options.strategy === Constants.STRATEGIES.NO_PREFIX ? '' : options_options.routesNameSeparator + locale);
if (locale === options_options.defaultLocale && options_options.strategy === Constants.STRATEGIES.PREFIX_AND_DEFAULT) {
name += options_options.routesNameSeparator + options_options.defaultLocaleRouteNameSuffix;
}
return name;
}
/**
* @template {(...args: any[]) => any} T
* @param {T} targetFunction
* @return {(this: Vue, ...args: Parameters<T>) => ReturnType<T>}
*/
const VueInstanceProxy = function (targetFunction) {
return function () {
const proxy = {
getRouteBaseName: this.getRouteBaseName,
i18n: this.$i18n,
localePath: this.localePath,
localeRoute: this.localeRoute,
localeLocation: this.localeLocation,
req: true ? this.$ssrContext.req : undefined,
route: this.$route,
router: this.$router,
store: this.$store
};
return targetFunction.call(proxy, ...arguments);
};
};
/**
* @template {(...args: any[]) => any} T
* @param {import('@nuxt/types').Context} context
* @param {T} targetFunction
* @return {(...args: Parameters<T>) => ReturnType<T>}
*/
const NuxtContextProxy = function (context, targetFunction) {
return function () {
const {
app,
req,
route,
store
} = context;
const proxy = {
getRouteBaseName: app.getRouteBaseName,
i18n: app.i18n,
localePath: app.localePath,
localeLocation: app.localeLocation,
localeRoute: app.localeRoute,
req: true ? req : undefined,
route,
router: app.router,
store
};
return targetFunction.call(proxy, ...arguments);
};
};
/** @type {import('vue').PluginObject<void>} */
const plugin_routing_plugin = {
install(Vue) {
Vue.mixin({
methods: {
localePath: VueInstanceProxy(plugin_routing_localePath),
localeRoute: VueInstanceProxy(localeRoute),
localeLocation: VueInstanceProxy(localeLocation),
switchLocalePath: VueInstanceProxy(switchLocalePath),
getRouteBaseName: VueInstanceProxy(getRouteBaseName)
}
});
}
};
/** @type {import('@nuxt/types').Plugin} */
/* harmony default export */ var plugin_routing = (context => {
external_vue_default.a.use(plugin_routing_plugin);
const {
app,
store
} = context;
app.localePath = context.localePath = NuxtContextProxy(context, plugin_routing_localePath);
app.localeRoute = context.localeRoute = NuxtContextProxy(context, localeRoute);
app.localeLocation = context.localeLocation = NuxtContextProxy(context, localeLocation);
app.switchLocalePath = context.switchLocalePath = NuxtContextProxy(context, switchLocalePath);
app.getRouteBaseName = context.getRouteBaseName = NuxtContextProxy(context, getRouteBaseName);
if (store) {
store.localePath = app.localePath;
store.localeRoute = app.localeRoute;
store.localeLocation = app.localeLocation;
store.switchLocalePath = app.switchLocalePath;
store.getRouteBaseName = app.getRouteBaseName;
}
});
// EXTERNAL MODULE: external "vue-i18n"
var external_vue_i18n_ = __webpack_require__(16);
var external_vue_i18n_default = /*#__PURE__*/__webpack_require__.n(external_vue_i18n_);
// EXTERNAL MODULE: external "core-js/modules/esnext.map.delete-all.js"
var esnext_map_delete_all_js_ = __webpack_require__(74);
// EXTERNAL MODULE: external "core-js/modules/esnext.map.every.js"
var esnext_map_every_js_ = __webpack_require__(75);
// EXTERNAL MODULE: external "core-js/modules/esnext.map.filter.js"
var esnext_map_filter_js_ = __webpack_require__(76);
// EXTERNAL MODULE: external "core-js/modules/esnext.map.find.js"
var esnext_map_find_js_ = __webpack_require__(77);
// EXTERNAL MODULE: external "core-js/modules/esnext.map.find-key.js"
var esnext_map_find_key_js_ = __webpack_require__(78);
// EXTERNAL MODULE: external "core-js/modules/esnext.map.includes.js"
var esnext_map_includes_js_ = __webpack_require__(79);
// EXTERNAL MODULE: external "core-js/modules/esnext.map.key-of.js"
var esnext_map_key_of_js_ = __webpack_require__(80);
// EXTERNAL MODULE: external "core-js/modules/esnext.map.map-keys.js"
var esnext_map_map_keys_js_ = __webpack_require__(81);
// EXTERNAL MODULE: external "core-js/modules/esnext.map.map-values.js"
var esnext_map_map_values_js_ = __webpack_require__(82);
// EXTERNAL MODULE: external "core-js/modules/esnext.map.merge.js"
var esnext_map_merge_js_ = __webpack_require__(83);
// EXTERNAL MODULE: external "core-js/modules/esnext.map.reduce.js"
var esnext_map_reduce_js_ = __webpack_require__(84);
// EXTERNAL MODULE: external "core-js/modules/esnext.map.some.js"
var esnext_map_some_js_ = __webpack_require__(85);
// EXTERNAL MODULE: external "core-js/modules/esnext.map.update.js"
var esnext_map_update_js_ = __webpack_require__(86);
// CONCATENATED MODULE: ./.nuxt/nuxt-i18n/head-meta.js
/**
* @this {import('vue/types/vue').Vue}
* @return {import('vue-meta').MetaInfo}
*/
function nuxtI18nHead({
addDirAttribute = true,
addSeoAttributes = false
} = {}) {
// Can happen when using from a global mixin.
if (!this.$i18n) {
return {};
}
/** @type {import('../../types/vue').NuxtI18nMeta} */
const metaObject = {
htmlAttrs: {},
link: [],
meta: []
};
const currentLocale = this.$i18n.localeProperties;
const currentLocaleIso = currentLocale.iso;
const currentLocaleDir = currentLocale.dir || options_options.defaultDirection;
/**
* Adding Direction Attribute:
*/
if (addDirAttribute) {
metaObject.htmlAttrs.dir = currentLocaleDir;
}
/**
* Adding SEO Meta:
*/
if (addSeoAttributes && (
// @ts-ignore
external_vue_meta_default.a.hasMetaInfo ? external_vue_meta_default.a.hasMetaInfo(this) : this._hasMetaInfo) && this.$i18n.locale && this.$i18n.locales && this.$options[Constants.COMPONENT_OPTIONS_KEY] !== false &&
// @ts-ignore
!(this.$options[Constants.COMPONENT_OPTIONS_KEY] && this.$options[Constants.COMPONENT_OPTIONS_KEY].seo === false)) {
if (currentLocaleIso) {
metaObject.htmlAttrs.lang = currentLocaleIso; // TODO: simple lang or "specific" lang with territory?
}
const locales = /** @type {import('../../types').LocaleObject[]} */this.$i18n.locales;
addHreflangLinks.bind(this)(locales, this.$i18n.__baseUrl, metaObject.link);
addCanonicalLinks.bind(this)(this.$i18n.__baseUrl, metaObject.link);
addCurrentOgLocale.bind(this)(currentLocale, currentLocaleIso, metaObject.meta);
addAlternateOgLocales.bind(this)(locales, currentLocaleIso, metaObject.meta);
}
/**
* Internals:
*/
/**
* @this {import('vue/types/vue').Vue}
*
* @param {import('../../types').LocaleObject[]} locales
* @param {string} baseUrl
* @param {import('../../types/vue').NuxtI18nMeta['link']} link
*/
function addHreflangLinks(locales, baseUrl, link) {
if (options_options.strategy === Constants.STRATEGIES.NO_PREFIX) {
return;
}
/** @type {Map<string, import('../../types').LocaleObject>} */
const localeMap = new Map();
for (const locale of locales) {
const localeIso = locale.iso;
if (!localeIso) {
// eslint-disable-next-line no-console
console.warn(formatMessage('Locale ISO code is required to generate alternate link'));
continue;
}
const [language, region] = localeIso.split('-');
if (language && region && (locale.isCatchallLocale || !localeMap.has(language))) {
localeMap.set(language, locale);
}
localeMap.set(localeIso, locale);
}
for (const [iso, mapLocale] of localeMap.entries()) {
const localePath = this.switchLocalePath(mapLocale.code);
if (localePath) {
link.push({
hid: `i18n-alt-${iso}`,
rel: 'alternate',
href: toAbsoluteUrl(localePath, baseUrl),
hreflang: iso
});
}
}
if (options_options.defaultLocale) {
const localePath = this.switchLocalePath(options_options.defaultLocale);
if (localePath) {
link.push({
hid: 'i18n-xd',
rel: 'alternate',
href: toAbsoluteUrl(localePath, baseUrl),
hreflang: 'x-default'
});
}
}
}
/**
* @this {import('vue/types/vue').Vue}
*
* @param {string} baseUrl
* @param {import('../../types/vue').NuxtI18nMeta['link']} link
*/
function addCanonicalLinks(baseUrl, link) {
const currentRoute = this.localeRoute({
...this.$route,
name: this.getRouteBaseName()
});
const canonicalPath = currentRoute ? currentRoute.path : null;
if (canonicalPath) {
link.push({
hid: 'i18n-can',
rel: 'canonical',
href: toAbsoluteUrl(canonicalPath, baseUrl)
});
}
}
/**
* @this {import('vue/types/vue').Vue}
*
* @param {import('../../types').LocaleObject} currentLocale
* @param {string | undefined} currentLocaleIso
* @param {import('../../types/vue').NuxtI18nMeta['meta']} meta
*/
function addCurrentOgLocale(currentLocale, currentLocaleIso, meta) {
const hasCurrentLocaleAndIso = currentLocale && currentLocaleIso;
if (!hasCurrentLocaleAndIso) {
return;
}
meta.push({
hid: 'i18n-og',
property: 'og:locale',
// Replace dash with underscore as defined in spec: language_TERRITORY
content: hypenToUnderscore(currentLocaleIso)
});
}
/**
* @this {import('vue/types/vue').Vue}
*
* @param {import('../../types').LocaleObject[]} locales
* @param {string | undefined} currentLocaleIso
* @param {import('../../types/vue').NuxtI18nMeta['meta']} meta
*/
function addAlternateOgLocales(locales, currentLocaleIso, meta) {
const localesWithoutCurrent = locales.filter(locale => {
const localeIso = locale.iso;
return localeIso && localeIso !== currentLocaleIso;
});
if (localesWithoutCurrent.length) {
const alternateLocales = localesWithoutCurrent.map(locale => ({
hid: `i18n-og-alt-${locale.iso}`,
property: 'og:locale:alternate',
content: hypenToUnderscore(locale.iso)
}));
meta.push(...alternateLocales);
}
}
/**
* @param {string | undefined} str
* @return {string}
*/
function hypenToUnderscore(str) {
return (str || '').replace(/-/g, '_');
}
/**
* @param {string} urlOrPath
* @param {string} baseUrl
*/
function toAbsoluteUrl(urlOrPath, baseUrl) {
if (urlOrPath.match(/^https?:\/\//)) {
return urlOrPath;
}
return baseUrl + urlOrPath;
}
return metaObject;
}
/**
* @deprecated Use `nuxtI18nHead()` instead.
* @this {import('vue/types/vue').Vue}
*/
function nuxtI18nSeo() {
return nuxtI18nHead.call(this, {
addDirAttribute: false,
addSeoAttributes: true
});
}
// CONCATENATED MODULE: ./node_modules/klona/full/index.mjs
function set(obj, key, val) {
if (typeof val.value === 'object') val.value = klona(val.value);
if (!val.enumerable || val.get || val.set || !val.configurable || !val.writable || key === '__proto__') {
Object.defineProperty(obj, key, val);
} else obj[key] = val.value;
}
function klona(x) {
if (typeof x !== 'object') return x;
var i=0, k, list, tmp, str=Object.prototype.toString.call(x);
if (str === '[object Object]') {
tmp = Object.create(x.__proto__ || null);
} else if (str === '[object Array]') {
tmp = Array(x.length);
} else if (str === '[object Set]') {
tmp = new Set;
x.forEach(function (val) {
tmp.add(klona(val));
});
} else if (str === '[object Map]') {
tmp = new Map;
x.forEach(function (val, key) {
tmp.set(klona(key), klona(val));
});
} else if (str === '[object Date]') {
tmp = new Date(+x);
} else if (str === '[object RegExp]') {
tmp = new RegExp(x.source, x.flags);
} else if (str === '[object DataView]') {
tmp = new x.constructor( klona(x.buffer) );
} else if (str === '[object ArrayBuffer]') {
tmp = x.slice(0);
} else if (str.slice(-6) === 'Array]') {
// ArrayBuffer.isView(x)
// ~> `new` bcuz `Buffer.slice` => ref
tmp = new x.constructor(x);
}
if (tmp) {
for (list=Object.getOwnPropertySymbols(x); i < list.length; i++) {
set(tmp, list[i], Object.getOwnPropertyDescriptor(x, list[i]));
}
for (i=0, list=Object.getOwnPropertyNames(x); i < list.length; i++) {
if (Object.hasOwnProperty.call(tmp, k=list[i]) && tmp[k] === x[k]) continue;
set(tmp, k, Object.getOwnPropertyDescriptor(x, k));
}
}
return tmp || x;
}
// CONCATENATED MODULE: ./.nuxt/nuxt-i18n/plugin.main.js
// @ts-ignore
// @ts-ignore
external_vue_default.a.use(external_vue_i18n_default.a);
/** @type {import('@nuxt/types').Plugin} */
/* harmony default export */ var plugin_main = (async context => {
const {
app,
route,
store,
req,
res,
redirect
} = context;
if (options_options.vuex && store) {
registerStore(store, options_options.vuex, options_options.localeCodes);
}
const {
lazy
} = options_options;
const injectInNuxtState = lazy && (lazy === true || lazy.skipNuxtState !== true);
if ( true && injectInNuxtState) {
const devalue = (await Promise.resolve(/* import() */).then(__webpack_require__.t.bind(null, 90, 7))).default;
context.beforeNuxtRender(({
nuxtState
}) => {
/** @type {Record<string, import('vue-i18n').LocaleMessageObject>} */
const langs = {};
const {
fallbackLocale,
locale
} = app.i18n;
if (locale && locale !== fallbackLocale) {
// @ts-ignore Using internal API to avoid unnecessary cloning.
const messages = app.i18n._getMessages()[locale];
if (messages) {
try {
devalue(messages);
langs[locale] = messages;
} catch {
// Ignore - client-side will load the chunk asynchronously.
}
}
}
nuxtState.__i18n = {
langs
};
});
}
const {
alwaysRedirect,
fallbackLocale,
onlyOnNoPrefix,
onlyOnRoot,
useCookie,
cookieKey,
cookieDomain,
cookieSecure,
cookieCrossOrigin
} = /** @type {Required<import('../../types').DetectBrowserLanguageOptions>} */options_options.detectBrowserLanguage;
/**
* @param {string | undefined} newLocale
* @param {{ initialSetup?: boolean }} [options=false]
*/
const loadAndSetLocale = async (newLocale, {
initialSetup = false
} = {}) => {
if (!newLocale) {
return;
}
// Abort if different domains option enabled
if (!initialSetup && app.i18n.differentDomains) {
return;
}
const oldLocale = app.i18n.locale;
if (newLocale === oldLocale) {
return;
}
const localeOverride = app.i18n.onBeforeLanguageSwitch(oldLocale, newLocale, initialSetup, context);
if (localeOverride && app.i18n.localeCodes.includes(localeOverride)) {
if (localeOverride === oldLocale) {
return;
}
newLocale = localeOverride;
}
if (!initialSetup) {
app.i18n.beforeLanguageSwitch(oldLocale, newLocale);
}
if (useCookie) {
app.i18n.setLocaleCookie(newLocale);
}
if (options_options.langDir) {
const i18nFallbackLocale = app.i18n.fallbackLocale;
if (options_options.lazy) {
// Load fallback locale(s).
if (i18nFallbackLocale) {
/** @type {Promise<void>[]} */
let localesToLoadPromises = [];
if (Array.isArray(i18nFallbackLocale)) {
localesToLoadPromises = i18nFallbackLocale.map(fbLocale => loadLanguageAsync(context, fbLocale));
} else if (typeof i18nFallbackLocale === 'object') {
if (i18nFallbackLocale[newLocale]) {
localesToLoadPromises = localesToLoadPromises.concat(i18nFallbackLocale[newLocale].map(fbLocale => loadLanguageAsync(context, fbLocale)));
}
if (i18nFallbackLocale.default) {
localesToLoadPromises = localesToLoadPromises.concat(i18nFallbackLocale.default.map(fbLocale => loadLanguageAsync(context, fbLocale)));
}
} else if (newLocale !== i18nFallbackLocale) {
localesToLoadPromises.push(loadLanguageAsync(context, i18nFallbackLocale));
}
await Promise.all(localesToLoadPromises);
}
await loadLanguageAsync(context, newLocale);
} else {
// Load all locales.
await Promise.all(options_options.localeCodes.map(locale => loadLanguageAsync(context, locale)));
}
}
app.i18n.locale = newLocale;
/** @type {import('../../types').LocaleObject} */
const newLocaleProperties = options_options.normalizedLocales.find(l => l.code === newLocale) || {
code: newLocale
};
// In case certain locale has more properties than another, reset all the properties.
for (const key of Object.keys(app.i18n.localeProperties)) {
app.i18n.localeProperties[key] = undefined;
}
// Copy properties of the new locale
for (const [key, value] of Object.entries(newLocaleProperties)) {
external_vue_default.a.set(app.i18n.localeProperties, key, klona(value));
}
if (options_options.vuex) {
await syncVuex(store, newLocale, app.i18n.getLocaleMessage(newLocale), options_options.vuex);
}
// Must retrieve from context as it might have changed since plugin initialization.
const {
route
} = context;
const redirectPath = getRedirectPathForLocale(route, newLocale);
if (initialSetup) {
// Redirect will be delayed until middleware runs as redirecting from plugin does not
// work in SPA (https://github.com/nuxt/nuxt.js/issues/4491).
app.i18n.__redirect = redirectPath;
} else {
app.i18n.onLanguageSwitched(oldLocale, newLocale);
if (redirectPath) {
redirect(redirectPath);
}
}
};
const getLocaleFromRoute = createLocaleFromRouteGetter(options_options.localeCodes, {
routesNameSeparator: options_options.routesNameSeparator,
defaultLocaleRouteNameSuffix: options_options.defaultLocaleRouteNameSuffix
});
/**
* Gets the redirect path for locale.
*
* @param {import("vue-router").Route} route
* @param {string | undefined} locale
* @return {string} The redirect path for locale.
*/
const getRedirectPathForLocale = (route, locale) => {
// Redirects are ignored if it is a nuxt generate.
if (false) {}
if (!locale || app.i18n.differentDomains || options_options.strategy === Constants.STRATEGIES.NO_PREFIX) {
return '';
}
if (getLocaleFromRoute(route) === locale) {
// If "onlyOnRoot" or "onlyOnNoPrefix" is set and strategy is "prefix_and_default", prefer unprefixed route for
// default locale.
if (!(onlyOnRoot || onlyOnNoPrefix) || locale !== options_options.defaultLocale || options_options.strategy !== Constants.STRATEGIES.PREFIX_AND_DEFAULT) {
return '';
}
}
// At this point we are left with route that either has no or different locale.
let redirectPath = app.switchLocalePath(locale);
if (!redirectPath) {
// Current route could be 404 in which case attempt to find matching route for given locale.
redirectPath = app.localePath(route.fullPath, locale);
}
if (!redirectPath || redirectPath === route.fullPath || redirectPath.startsWith('//')) {
return '';
}
return redirectPath;
};
/**
* Called by middleware on navigation (also on the initial one).
*
* @type {import('../../types/internal').onNavigateInternal}
*/
const onNavigate = async route => {
// Handle root path redirect
if (route.path === '/' && options_options.rootRedirect) {
let statusCode = 302;
let path = options_options.rootRedirect;
if (typeof options_options.rootRedirect !== 'string') {
statusCode = options_options.rootRedirect.statusCode;
path = options_options.rootRedirect.path;
}
return [statusCode, `/${path}`, /* preserve query */true];
}
const storedRedirect = app.i18n.__redirect;
if (storedRedirect) {
app.i18n.__redirect = null;
return [302, storedRedirect];
}
const resolveBaseUrlOptions = {
differentDomains: options_options.differentDomains,
normalizedLocales: options_options.normalizedLocales
};
app.i18n.__baseUrl = resolveBaseUrl(options_options.baseUrl, context, app.i18n.locale, resolveBaseUrlOptions);
const finalLocale = options_options.detectBrowserLanguage && doDetectBrowserLanguage(route) || getLocaleFromRoute(route) || app.i18n.locale || app.i18n.defaultLocale || '';
if (options_options.skipSettingLocaleOnNavigate) {
app.i18n.__pendingLocale = finalLocale;
app.i18n.__pendingLocalePromise = new Promise(resolve => {
app.i18n.__resolvePendingLocalePromise = resolve;
});
} else {
await app.i18n.setLocale(finalLocale);
}
return [null, null];
};
const finalizePendingLocaleChange = async () => {
if (!app.i18n.__pendingLocale) {
return;
}
await app.i18n.setLocale(app.i18n.__pendingLocale);
app.i18n.__resolvePendingLocalePromise('');
app.i18n.__pendingLocale = null;
};
const waitForPendingLocaleChange = async () => {
if (app.i18n.__pendingLocale) {
await app.i18n.__pendingLocalePromise;
}
};
const getBrowserLocale = () => {
if (false) {} else if (req && typeof req.headers['accept-language'] !== 'undefined') {
return matchBrowserLocale(options_options.normalizedLocales, parseAcceptLanguage(req.headers['accept-language']));
} else {
return undefined;
}
};
/**
* @param {import('vue-router').Route} route
* @return {string} Returns the browser locale that was detected or an empty string otherwise.
*/
const doDetectBrowserLanguage = route => {
// Browser detection is ignored if it is a nuxt generate.
if (false) {}
if (options_options.strategy !== Constants.STRATEGIES.NO_PREFIX) {
if (onlyOnRoot) {
if (route.path !== '/') {
return '';
}
} else if (onlyOnNoPrefix) {
if (!alwaysRedirect && route.path.match(getLocalesRegex(options_options.localeCodes))) {
return '';
}
}
}
let matchedLocale;
if (useCookie && (matchedLocale = app.i18n.getLocaleCookie())) {
// Get preferred language from cookie if present and enabled
} else {
// Try to get locale from either navigator or header detection
matchedLocale = getBrowserLocale();
}
const finalLocale = matchedLocale || fallbackLocale;
// Handle cookie option to prevent multiple redirections
if (finalLocale && (!useCookie || alwaysRedirect || !app.i18n.getLocaleCookie())) {
if (finalLocale !== app.i18n.locale) {
return finalLocale;
}
}
return '';
};
/**
* Extends the newly created vue-i18n instance with nuxt-i18n properties.
*
* @param {import('vue-i18n').IVueI18n} i18n
*/
const extendVueI18nInstance = i18n => {
i18n.locales = klona(options_options.locales);
i18n.localeCodes = klona(options_options.localeCodes);
i18n.localeProperties = external_vue_default.a.observable(klona(options_options.normalizedLocales.find(l => l.code === i18n.locale) || {
code: i18n.locale
}));
i18n.defaultLocale = options_options.defaultLocale;
i18n.differentDomains = options_options.differentDomains;
i18n.beforeLanguageSwitch = options_options.beforeLanguageSwitch;
i18n.onBeforeLanguageSwitch = options_options.onBeforeLanguageSwitch;
i18n.onLanguageSwitched = options_options.onLanguageSwitched;
i18n.setLocaleCookie = locale => setLocaleCookie(locale, res, {
useCookie,
cookieDomain,
cookieKey,
cookieSecure,
cookieCrossOrigin
});
i18n.getLocaleCookie = () => getLocaleCookie(req, {
useCookie,
cookieKey,
localeCodes: options_options.localeCodes
});
i18n.setLocale = locale => loadAndSetLocale(locale);
i18n.getBrowserLocale = () => getBrowserLocale();
i18n.finalizePendingLocaleChange = finalizePendingLocaleChange;
i18n.waitForPendingLocaleChange = waitForPendingLocaleChange;
i18n.__baseUrl = app.i18n.__baseUrl;
i18n.__pendingLocale = app.i18n.__pendingLocale;
i18n.__pendingLocalePromise = app.i18n.__pendingLocalePromise;
i18n.__resolvePendingLocalePromise = app.i18n.__resolvePendingLocalePromise;
};
// Set instance options
const vueI18nOptions = typeof options_options.vueI18n === 'function' ? await options_options.vueI18n(context) : klona(options_options.vueI18n);
vueI18nOptions.componentInstanceCreatedListener = extendVueI18nInstance;
// @ts-ignore
app.i18n = context.i18n = new external_vue_i18n_default.a(vueI18nOptions);
// Initialize locale and fallbackLocale as vue-i18n defaults those to 'en-US' if falsey
app.i18n.locale = '';
app.i18n.fallbackLocale = vueI18nOptions.fallbackLocale || '';
extendVueI18nInstance(app.i18n);
const resolveBaseUrlOptions = {
differentDomains: options_options.differentDomains,
normalizedLocales: options_options.normalizedLocales
};
app.i18n.__baseUrl = resolveBaseUrl(options_options.baseUrl, context, '', resolveBaseUrlOptions);
app.i18n.__onNavigate = onNavigate;
external_vue_default.a.prototype.$nuxtI18nSeo = nuxtI18nSeo;
external_vue_default.a.prototype.$nuxtI18nHead = nuxtI18nHead;
if (store) {
// Inject in store.
store.$i18n = app.i18n;
if (store.state.localeDomains) {
for (const locale of app.i18n.locales) {
if (typeof locale === 'string') {
continue;
}
locale.domain = store.state.localeDomains[locale.code];
}
}
}
/** @type {string | undefined} */
let finalLocale = options_options.detectBrowserLanguage ? doDetectBrowserLanguage(route) : '';
if (!finalLocale) {
const {
vuex
} = options_options;
if (vuex && vuex.syncLocale && store && store.state[vuex.moduleName].locale !== '') {
finalLocale = store.state[vuex.moduleName].locale;
} else if (app.i18n.differentDomains) {
const domainLocale = getLocaleDomain(options_options.normalizedLocales, req);
finalLocale = domainLocale;
} else if (options_options.strategy !== Constants.STRATEGIES.NO_PREFIX) {
const routeLocale = getLocaleFromRoute(route);
finalLocale = routeLocale;
}
}
if (!finalLocale && useCookie) {
finalLocale = app.i18n.getLocaleCookie();
}
if (!finalLocale) {
finalLocale = app.i18n.defaultLocale || '';
}
await loadAndSetLocale(finalLocale, {
initialSetup: true
});
if (false) {}
});
// EXTERNAL MODULE: external "axios"
var external_axios_ = __webpack_require__(9);
var external_axios_default = /*#__PURE__*/__webpack_require__.n(external_axios_);
// EXTERNAL MODULE: external "defu"
var external_defu_ = __webpack_require__(35);
var external_defu_default = /*#__PURE__*/__webpack_require__.n(external_defu_);
// CONCATENATED MODULE: ./.nuxt/axios.js
// Axios.prototype cannot be modified
const axiosExtra = {
setBaseURL(baseURL) {
this.defaults.baseURL = baseURL;
},
setHeader(name, value, scopes = 'common') {
for (const scope of Array.isArray(scopes) ? scopes : [scopes]) {
if (!value) {
delete this.defaults.headers[scope][name];
continue;
}
this.defaults.headers[scope][name] = value;
}
},
setToken(token, type, scopes = 'common') {
const value = !token ? null : (type ? type + ' ' : '') + token;
this.setHeader('Authorization', value, scopes);
},
onRequest(fn) {
this.interceptors.request.use(config => fn(config) || config);
},
onResponse(fn) {
this.interceptors.response.use(response => fn(response) || response);
},
onRequestError(fn) {
this.interceptors.request.use(undefined, error => fn(error) || Promise.reject(error));
},
onResponseError(fn) {
this.interceptors.response.use(undefined, error => fn(error) || Promise.reject(error));
},
onError(fn) {
this.onRequestError(fn);
this.onResponseError(fn);
},
create(options) {
return createAxiosInstance(external_defu_default()(options, this.defaults));
}
};
// Request helpers ($get, $post, ...)
for (const method of ['request', 'delete', 'get', 'head', 'options', 'post', 'put', 'patch']) {
axiosExtra['$' + method] = function () {
return this[method].apply(this, arguments).then(res => res && res.data);
};
}
const extendAxiosInstance = axios => {
for (const key in axiosExtra) {
axios[key] = axiosExtra[key].bind(axios);
}
};
const createAxiosInstance = axiosOptions => {
// Create new axios instance
const axios = external_axios_default.a.create(axiosOptions);
axios.CancelToken = external_axios_default.a.CancelToken;
axios.isCancel = external_axios_default.a.isCancel;
// Extend axios proto
extendAxiosInstance(axios);
// Intercept to apply default headers
axios.onRequest(config => {
config.headers = {
...axios.defaults.headers.common,
...config.headers
};
});
// Setup interceptors
setupProgress(axios);
return axios;
};
const setupProgress = axios => {
if (true) {
return;
}
// A noop loading inteterface for when $nuxt is not yet ready
const noopLoading = {
finish: () => {},
start: () => {},
fail: () => {},
set: () => {}
};
const $loading = () => {
const $nuxt = typeof window !== 'undefined' && window['$nuxt'];
return $nuxt && $nuxt.$loading && $nuxt.$loading.set ? $nuxt.$loading : noopLoading;
};
let currentRequests = 0;
axios.onRequest(config => {
if (config && config.progress === false) {
return;
}
currentRequests++;
});
axios.onResponse(response => {
if (response && response.config && response.config.progress === false) {
return;
}
currentRequests--;
if (currentRequests <= 0) {
currentRequests = 0;
$loading().finish();
}
});
axios.onError(error => {
if (error && error.config && error.config.progress === false) {
return;
}
currentRequests--;
if (external_axios_default.a.isCancel(error)) {
if (currentRequests <= 0) {
currentRequests = 0;
$loading().finish();
}
return;
}
$loading().fail();
$loading().finish();
});
const onProgress = e => {
if (!currentRequests || !e.total) {
return;
}
const progress = e.loaded * 100 / (e.total * currentRequests);
$loading().set(Math.min(100, progress));
};
axios.defaults.onUploadProgress = onProgress;
axios.defaults.onDownloadProgress = onProgress;
};
/* harmony default export */ var _nuxt_axios = ((ctx, inject) => {
// runtimeConfig
const runtimeConfig = ctx.$config && ctx.$config.axios || {};
// baseURL
const baseURL = false ? undefined : runtimeConfig.baseURL || runtimeConfig.baseUrl || process.env._AXIOS_BASE_URL_ || 'http://localhost:3000/';
// Create fresh objects for all default header scopes
// Axios creates only one which is shared across SSR requests!
// https://github.com/mzabriskie/axios/blob/master/lib/defaults.js
const headers = {
"common": {
"Accept": "application/json, text/plain, */*"
},
"delete": {},
"get": {},
"head": {},
"post": {},
"put": {},
"patch": {}
};
const axiosOptions = {
baseURL,
headers
};
// Proxy SSR request headers headers
if ( true && ctx.req && ctx.req.headers) {
const reqHeaders = {
...ctx.req.headers
};
for (const h of ["accept", "cf-connecting-ip", "cf-ray", "content-length", "content-md5", "content-type", "host", "x-forwarded-host", "x-forwarded-port", "x-forwarded-proto"]) {
delete reqHeaders[h];
}
axiosOptions.headers.common = {
...reqHeaders,
...axiosOptions.headers.common
};
}
if (true) {
// Don't accept brotli encoding because Node can't parse it
axiosOptions.headers.common['accept-encoding'] = 'gzip, deflate';
}
const axios = createAxiosInstance(axiosOptions);
// Inject axios to the context as $axios
ctx.$axios = axios;
inject('axios', axios);
});
// EXTERNAL MODULE: ./.nuxt/empty.js
var _nuxt_empty = __webpack_require__(32);
// CONCATENATED MODULE: ./.nuxt/index.js
/* Plugins */
// Source: .\\v-lazy-load.js (mode: 'all')
// Source: .\\nuxt-i18n\\plugin.utils.js (mode: 'all')
// Source: .\\nuxt-i18n\\plugin.routing.js (mode: 'all')
// Source: .\\nuxt-i18n\\plugin.main.js (mode: 'all')
// Source: .\\axios.js (mode: 'all')
// Source: ..\\plugins\\v-waypoint.js (mode: 'client')
// Source: ..\\plugins\\animate.client.js (mode: 'client')
// Component: <ClientOnly>
external_vue_default.a.component(external_vue_client_only_default.a.name, external_vue_client_only_default.a);
// TODO: Remove in Nuxt 3: <NoSsr>
external_vue_default.a.component(external_vue_no_ssr_default.a.name, {
...external_vue_no_ssr_default.a,
render(h, ctx) {
if (false) {}
return external_vue_no_ssr_default.a.render(h, ctx);
}
});
// Component: <NuxtChild>
external_vue_default.a.component(nuxt_child.name, nuxt_child);
external_vue_default.a.component('NChild', nuxt_child);
// Component NuxtLink is imported in server.js or client.js
// Component: <Nuxt>
external_vue_default.a.component(components_nuxt.name, components_nuxt);
Object.defineProperty(external_vue_default.a.prototype, '$nuxt', {
get() {
const globalNuxt = this.$root ? this.$root.$options.$nuxt : null;
if (false) {}
return globalNuxt;
},
configurable: true
});
external_vue_default.a.use(external_vue_meta_default.a, {
"keyName": "head",
"attribute": "data-n-head",
"ssrAttribute": "data-n-head-ssr",
"tagIDKeyName": "hid"
});
const defaultTransition = {
"name": "page",
"mode": "out-in",
"appear": false,
"appearClass": "appear",
"appearActiveClass": "appear-active",
"appearToClass": "appear-to"
};
const originalRegisterModule = external_vuex_default.a.Store.prototype.registerModule;
function registerModule(path, rawModule, options = {}) {
const preserveState = false && (false);
return originalRegisterModule.call(this, path, rawModule, {
preserveState,
...options
});
}
async function createApp(ssrContext, config = {}) {
const store = createStore(ssrContext);
const router = await createRouter(ssrContext, config, {
store
});
// Add this.$router into store actions/mutations
store.$router = router;
// Fix SSR caveat https://github.com/nuxt/nuxt.js/issues/3757#issuecomment-414689141
store.registerModule = registerModule;
// Create Root instance
// here we inject the router and store to all child components,
// making them available everywhere as `this.$router` and `this.$store`.
const app = {
head: function () {
var _this$$i18n;
const isEn = ((_this$$i18n = this.$i18n) === null || _this$$i18n === void 0 ? void 0 : _this$$i18n.locale) == "en";
const link = [{
rel: "icon",
type: "image/x-icon",
href: "/favicon.ico"
}, {
rel: "preload",
href: "/fonts/Shabnam-FD.woff2",
// Path to your font file
as: "font",
type: "font/woff2",
crossorigin: true
}, {
rel: "preload",
href: "/fonts/Shabnam-Bold-FD.woff2",
// Path to your font file
as: "font",
type: "font/woff2",
crossorigin: true
}, {
rel: "preload",
href: "/fonts/icomoon.woff2",
// Path to your font file
as: "font",
type: "font/woff2",
crossorigin: true
}];
return {
htmlAttrs: {
lang: this.$i18n.locale
},
meta: [{
charset: "utf-8"
}, {
name: "viewport",
content: "width=device-width, initial-scale=1"
}, {
hid: "description",
name: "description",
content: ""
}],
link: link
};
},
store,
router,
nuxt: {
defaultTransition,
transitions: [defaultTransition],
setTransitions(transitions) {
if (!Array.isArray(transitions)) {
transitions = [transitions];
}
transitions = transitions.map(transition => {
if (!transition) {
transition = defaultTransition;
} else if (typeof transition === 'string') {
transition = Object.assign({}, defaultTransition, {
name: transition
});
} else {
transition = Object.assign({}, defaultTransition, transition);
}
return transition;
});
this.$options.nuxt.transitions = transitions;
return transitions;
},
err: null,
errPageReady: false,
dateErr: null,
error(err) {
err = err || null;
app.context._errored = Boolean(err);
err = err ? normalizeError(err) : null;
let nuxt = app.nuxt; // to work with @vue/composition-api, see https://github.com/nuxt/nuxt.js/issues/6517#issuecomment-573280207
if (this) {
nuxt = this.nuxt || this.$options.nuxt;
}
nuxt.dateErr = Date.now();
nuxt.err = err;
nuxt.errPageReady = false;
// Used in src/server.js
if (ssrContext) {
ssrContext.nuxt.error = err;
}
return err;
}
},
...App
};
// Make app available into store via this.app
store.app = app;
const next = ssrContext ? ssrContext.next : location => app.router.push(location);
// Resolve route
let route;
if (ssrContext) {
route = router.resolve(ssrContext.url).route;
} else {
const path = getLocation(router.options.base, router.options.mode);
route = router.resolve(path).route;
}
// Set context to app.context
await setContext(app, {
store,
route,
next,
error: app.nuxt.error.bind(app),
payload: ssrContext ? ssrContext.payload : undefined,
req: ssrContext ? ssrContext.req : undefined,
res: ssrContext ? ssrContext.res : undefined,
beforeRenderFns: ssrContext ? ssrContext.beforeRenderFns : undefined,
beforeSerializeFns: ssrContext ? ssrContext.beforeSerializeFns : undefined,
ssrContext
});
function inject(key, value) {
if (!key) {
throw new Error('inject(key, value) has no key provided');
}
if (value === undefined) {
throw new Error(`inject('${key}', value) has no value provided`);
}
key = '$' + key;
// Add into app
app[key] = value;
// Add into context
if (!app.context[key]) {
app.context[key] = value;
}
// Add into store
store[key] = app[key];
// Check if plugin not already installed
const installKey = '__nuxt_' + key + '_installed__';
if (external_vue_default.a[installKey]) {
return;
}
external_vue_default.a[installKey] = true;
// Call Vue.use() to install the plugin into vm
external_vue_default.a.use(() => {
if (!Object.prototype.hasOwnProperty.call(external_vue_default.a.prototype, key)) {
Object.defineProperty(external_vue_default.a.prototype, key, {
get() {
return this.$root.$options[key];
}
});
}
});
}
// Inject runtime config as $config
inject('config', config);
if (false) {}
// Add enablePreview(previewData = {}) in context for plugins
if (false) {}
// Plugin execution
if (typeof v_lazy_load === 'function') {
await v_lazy_load(app.context, inject);
}
if (typeof /* Cannot get final name for export "default" in "./.nuxt/nuxt-i18n/plugin.utils.js" (known exports: loadLanguageAsync resolveBaseUrl getDomainFromLocale registerStore syncVuex validateRouteParams, known reexports: ) */ undefined === 'function') {
await /* Cannot get final name for export "default" in "./.nuxt/nuxt-i18n/plugin.utils.js" (known exports: loadLanguageAsync resolveBaseUrl getDomainFromLocale registerStore syncVuex validateRouteParams, known reexports: ) */ undefined(app.context, inject);
}
if (typeof plugin_routing === 'function') {
await plugin_routing(app.context, inject);
}
if (typeof plugin_main === 'function') {
await plugin_main(app.context, inject);
}
if (typeof _nuxt_axios === 'function') {
await _nuxt_axios(app.context, inject);
}
if (false) {}
if (false) {}
// Lock enablePreview in context
if (false) {}
// Wait for async component to be resolved first
await new Promise((resolve, reject) => {
// Ignore 404s rather than blindly replacing URL in browser
if (false) {}
router.replace(app.context.route.fullPath, resolve, err => {
// https://github.com/vuejs/vue-router/blob/v3.4.3/src/util/errors.js
if (!err._isRouter) return reject(err);
if (err.type !== 2 /* NavigationFailureType.redirected */) return resolve();
// navigated to a different route in router guard
const unregister = router.afterEach(async (to, from) => {
if ( true && ssrContext && ssrContext.url) {
ssrContext.url = to.fullPath;
}
app.context.route = await getRouteData(to);
app.context.params = to.params || {};
app.context.query = to.query || {};
unregister();
resolve();
});
});
});
return {
store,
app,
router
};
}
// CONCATENATED MODULE: ./.nuxt/components/nuxt-link.server.js
/* harmony default export */ var nuxt_link_server = ({
name: 'NuxtLink',
extends: external_vue_default.a.component('RouterLink'),
props: {
prefetch: {
type: Boolean,
default: true
},
noPrefetch: {
type: Boolean,
default: false
}
}
});
// CONCATENATED MODULE: ./.nuxt/server.js
// should be included after ./index.js
// Update serverPrefetch strategy
external_vue_default.a.config.optionMergeStrategies.serverPrefetch = external_vue_default.a.config.optionMergeStrategies.created;
// Fetch mixin
if (!external_vue_default.a.__nuxt__fetch__mixin__) {
external_vue_default.a.mixin(fetch_server);
external_vue_default.a.__nuxt__fetch__mixin__ = true;
}
// Component: <NuxtLink>
external_vue_default.a.component(nuxt_link_server.name, nuxt_link_server);
external_vue_default.a.component('NLink', nuxt_link_server);
if (!global.fetch) {
global.fetch = external_node_fetch_native_default.a;
}
const noopApp = () => new external_vue_default.a({
render: h => h('div', {
domProps: {
id: '__nuxt'
}
})
});
const createNext = ssrContext => opts => {
// If static target, render on client-side
ssrContext.redirected = opts;
if (ssrContext.target === 'static' || !ssrContext.res) {
ssrContext.nuxt.serverRendered = false;
return;
}
let fullPath = Object(external_ufo_["withQuery"])(opts.path, opts.query);
const $config = ssrContext.nuxt.config || {};
const routerBase = $config._app && $config._app.basePath || '/';
if (!fullPath.startsWith('http') && routerBase !== '/' && !fullPath.startsWith(routerBase)) {
fullPath = Object(external_ufo_["joinURL"])(routerBase, fullPath);
}
// Avoid loop redirect
if (decodeURI(fullPath) === decodeURI(ssrContext.url)) {
ssrContext.redirected = false;
return;
}
ssrContext.res.writeHead(opts.status, {
Location: Object(external_ufo_["normalizeURL"])(fullPath)
});
ssrContext.res.end();
};
// This exported function will be called by `bundleRenderer`.
// This is where we perform data-prefetching to determine the
// state of our application before actually rendering it.
// Since data fetching is async, this function is expected to
// return a Promise that resolves to the app instance.
/* harmony default export */ var server = __webpack_exports__["default"] = (async ssrContext => {
// Create ssrContext.next for simulate next() of beforeEach() when wanted to redirect
ssrContext.redirected = false;
ssrContext.next = createNext(ssrContext);
// Used for beforeNuxtRender({ Components, nuxtState })
ssrContext.beforeRenderFns = [];
// for beforeSerialize(nuxtState)
ssrContext.beforeSerializeFns = [];
// Nuxt object (window.{{globals.context}}, defaults to window.__NUXT__)
ssrContext.nuxt = {
layout: 'default',
data: [],
fetch: {},
error: null,
state: null,
serverRendered: true,
routePath: ''
};
ssrContext.fetchCounters = {};
// Remove query from url is static target
// Public runtime config
ssrContext.nuxt.config = ssrContext.runtimeConfig.public;
if (ssrContext.nuxt.config._app) {
__webpack_require__.p = Object(external_ufo_["joinURL"])(ssrContext.nuxt.config._app.cdnURL, ssrContext.nuxt.config._app.assetsPath);
}
// Create the app definition and the instance (created for each request)
const {
app,
router,
store
} = await createApp(ssrContext, ssrContext.runtimeConfig.private);
const _app = new external_vue_default.a(app);
// Add ssr route path to nuxt context so we can account for page navigation between ssr and csr
ssrContext.nuxt.routePath = app.context.route.path;
// Add meta infos (used in renderer.js)
ssrContext.meta = _app.$meta();
// Keep asyncData for each matched component in ssrContext (used in app/utils.js via this.$ssrContext)
ssrContext.asyncData = {};
const beforeRender = async () => {
// Call beforeNuxtRender() methods
await Promise.all(ssrContext.beforeRenderFns.map(fn => promisify(fn, {
Components,
nuxtState: ssrContext.nuxt
})));
ssrContext.rendered = () => {
// Call beforeSerialize() hooks
ssrContext.beforeSerializeFns.forEach(fn => fn(ssrContext.nuxt));
// Add the state from the vuex store
ssrContext.nuxt.state = store.state;
};
};
const renderErrorPage = async () => {
// Don't server-render the page in static target
if (ssrContext.target === 'static') {
ssrContext.nuxt.serverRendered = false;
}
// Load layout for error page
const layout = (layouts_error.options || layouts_error).layout;
const errLayout = typeof layout === 'function' ? layout.call(layouts_error, app.context) : layout;
ssrContext.nuxt.layout = errLayout || 'default';
await _app.loadLayout(errLayout);
_app.setLayout(errLayout);
await beforeRender();
return _app;
};
const render404Page = () => {
app.context.error({
statusCode: 404,
path: ssrContext.url,
message: 'This page could not be found'
});
return renderErrorPage();
};
// Components are already resolved by setContext -> getRouteData (app/utils.js)
const Components = getMatchedComponents(app.context.route);
/*
** Dispatch store nuxtServerInit
*/
if (store._actions && store._actions.nuxtServerInit) {
try {
await store.dispatch('nuxtServerInit', app.context);
} catch (err) {
console.debug('Error occurred when calling nuxtServerInit: ', err.message);
throw err;
}
}
// ...If there is a redirect or an error, stop the process
if (ssrContext.redirected) {
return noopApp();
}
if (ssrContext.nuxt.error) {
return renderErrorPage();
}
/*
** Call global middleware (nuxt.config.js)
*/
let midd = ["nuxti18n"];
midd = midd.map(name => {
if (typeof name === 'function') {
return name;
}
if (typeof _nuxt_middleware[name] !== 'function') {
app.context.error({
statusCode: 500,
message: 'Unknown middleware ' + name
});
}
return _nuxt_middleware[name];
});
await middlewareSeries(midd, app.context);
// ...If there is a redirect or an error, stop the process
if (ssrContext.redirected) {
return noopApp();
}
if (ssrContext.nuxt.error) {
return renderErrorPage();
}
/*
** Set layout
*/
let layout = Components.length ? Components[0].options.layout : layouts_error.layout;
if (typeof layout === 'function') {
layout = layout(app.context);
}
await _app.loadLayout(layout);
if (ssrContext.nuxt.error) {
return renderErrorPage();
}
layout = _app.setLayout(layout);
ssrContext.nuxt.layout = _app.layoutName;
/*
** Call middleware (layout + pages)
*/
midd = [];
layout = sanitizeComponent(layout);
if (layout.options.middleware) {
midd = midd.concat(layout.options.middleware);
}
Components.forEach(Component => {
if (Component.options.middleware) {
midd = midd.concat(Component.options.middleware);
}
});
midd = midd.map(name => {
if (typeof name === 'function') {
return name;
}
if (typeof _nuxt_middleware[name] !== 'function') {
app.context.error({
statusCode: 500,
message: 'Unknown middleware ' + name
});
}
return _nuxt_middleware[name];
});
await middlewareSeries(midd, app.context);
// ...If there is a redirect or an error, stop the process
if (ssrContext.redirected) {
return noopApp();
}
if (ssrContext.nuxt.error) {
return renderErrorPage();
}
/*
** Call .validate()
*/
let isValid = true;
try {
for (const Component of Components) {
if (typeof Component.options.validate !== 'function') {
continue;
}
isValid = await Component.options.validate(app.context);
if (!isValid) {
break;
}
}
} catch (validationError) {
// ...If .validate() threw an error
app.context.error({
statusCode: validationError.statusCode || '500',
message: validationError.message
});
return renderErrorPage();
}
// ...If .validate() returned false
if (!isValid) {
// Render a 404 error page
return render404Page();
}
// If no Components found, returns 404
if (!Components.length) {
return render404Page();
}
// Call asyncData & fetch hooks on components matched by the route.
const asyncDatas = await Promise.all(Components.map(Component => {
const promises = [];
// Call asyncData(context)
if (Component.options.asyncData && typeof Component.options.asyncData === 'function') {
const promise = promisify(Component.options.asyncData, app.context).then(asyncDataResult => {
ssrContext.asyncData[Component.cid] = asyncDataResult;
applyAsyncData(Component);
return asyncDataResult;
});
promises.push(promise);
} else {
promises.push(null);
}
// Call fetch(context)
if (Component.options.fetch && Component.options.fetch.length) {
promises.push(Component.options.fetch(app.context));
} else {
promises.push(null);
}
return Promise.all(promises);
}));
// datas are the first row of each
ssrContext.nuxt.data = asyncDatas.map(r => r[0] || {});
// ...If there is a redirect or an error, stop the process
if (ssrContext.redirected) {
return noopApp();
}
if (ssrContext.nuxt.error) {
return renderErrorPage();
}
// Call beforeNuxtRender methods & add store state
await beforeRender();
return _app;
});
/***/ }),
/* 88 */
/***/ (function(module, exports) {
module.exports = require("vue-slick-carousel");
/***/ }),
/* 89 */
/***/ (function(module, exports) {
module.exports = require("@splidejs/splide");
/***/ }),
/* 90 */
/***/ (function(module, exports) {
module.exports = require("devalue");
/***/ })
/******/ ]);
//# sourceMappingURL=server.js.map