"use strict";
/*global jQuery */
/*!
* Lettering.JS 0.6.1
*
* Copyright 2010, Dave Rupert http://daverupert.com
* Released under the WTFPL license
* http://sam.zoy.org/wtfpl/
*
* Thanks to Paul Irish - http://paulirish.com - for the feedback.
*
* Date: Mon Sep 20 17:14:00 2010 -0600
*/
(function ($) {
function injector(t, splitter, klass, after) {
var a = t.text().split(splitter),
inject = '';
if (a.length) {
$(a).each(function (i, item) {
inject += '' + item + ' ' + after;
});
t.empty().append(inject);
}
}
var methods = {
init: function init() {
return this.each(function () {
injector($(this), '', 'char', '');
});
},
words: function words() {
return this.each(function () {
injector($(this), ' ', 'word', ' ');
});
},
lines: function lines() {
return this.each(function () {
var r = "eefec303079ad17405c889e092e105b0"; // Because it's hard to split a tag consistently across browsers,
// (*ahem* IE *ahem*), we replaces all instances with an md5 hash
// (of the word "split"). If you're trying to use this plugin on that
// md5 hash string, it will fail because you're being ridiculous.
injector($(this).children("br").replaceWith(r).end(), r, 'line', '');
});
}
};
$.fn.lettering = function (method) {
// Method calling logic
if (method && methods[method]) {
return methods[method].apply(this, [].slice.call(arguments, 1));
} else if (method === 'letters' || !method) {
return methods.init.apply(this, [].slice.call(arguments, 0)); // always pass an array
}
$.error('Method ' + method + ' does not exist on jQuery.lettering');
return this;
};
})(jQuery);/*! elementor-pro - v3.23.0 - 15-07-2024 */
"use strict";
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["loop"],{
/***/ "../assets/dev/js/preview/utils/document-handle.js":
/*!*********************************************************!*\
!*** ../assets/dev/js/preview/utils/document-handle.js ***!
\*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports.SAVE_CONTEXT = exports.EDIT_CONTEXT = void 0;
exports.createElement = createElement;
exports["default"] = addDocumentHandle;
const EDIT_HANDLE_CLASS_NAME = 'elementor-document-handle';
const EDIT_MODE_CLASS_NAME = 'elementor-edit-mode';
const EDIT_CONTEXT = exports.EDIT_CONTEXT = 'edit';
const SAVE_HANDLE_CLASS_NAME = 'elementor-document-save-back-handle';
const SAVE_CONTEXT = exports.SAVE_CONTEXT = 'save';
/**
* @param {Object} handleTarget
* @param {HTMLElement} handleTarget.element
* @param {string|number} handleTarget.id - Document ID.
* @param {string} handleTarget.title
* @param {string} context - Edit/Save
* @param {Function|null} onCloseDocument - Callback to run when outgoing document is closed.
* @param {string} selector
*/
function addDocumentHandle(_ref) {
let {
element,
id,
title = __('Template', 'elementor-pro')
} = _ref;
let context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : EDIT_CONTEXT;
let onCloseDocument = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
let selector = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
if (EDIT_CONTEXT === context) {
if (!id || !element) {
throw Error('`id` and `element` are required.');
}
if (isCurrentlyEditing(element) || hasHandle(element)) {
return;
}
}
const handleElement = createHandleElement({
title,
onClick: () => onDocumentClick(id, context, onCloseDocument, selector)
}, context, element);
element.prepend(handleElement);
if (EDIT_CONTEXT === context) {
element.dataset.editableElementorDocument = id;
}
}
/**
* @param {HTMLElement} element
*
* @return {boolean} Whether the element is currently being edited.
*/
function isCurrentlyEditing(element) {
return element.classList.contains(EDIT_MODE_CLASS_NAME);
}
/**
* @param {HTMLElement} element
*
* @return {boolean} Whether the element has a handle.
*/
function hasHandle(element) {
return !!element.querySelector(`:scope > .${EDIT_HANDLE_CLASS_NAME}`);
}
/**
* @param {Object} handleProperties
* @param {string} handleProperties.title
* @param {Function} handleProperties.onClick
* @param {string} context
* @param {HTMLElement} element
*
* @return {HTMLElement} The newly generated Handle element
*/
function createHandleElement(_ref2, context) {
let {
title,
onClick
} = _ref2;
let element = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
const handleTitle = ['header', 'footer'].includes(element?.dataset.elementorType) ? '%s' : __('Edit %s', 'elementor-pro');
const innerElement = createElement({
tag: 'div',
classNames: [`${EDIT_HANDLE_CLASS_NAME}__inner`],
children: [createElement({
tag: 'i',
classNames: [getHandleIcon(context)]
}), createElement({
tag: 'div',
classNames: [`${EDIT_CONTEXT === context ? EDIT_HANDLE_CLASS_NAME : SAVE_HANDLE_CLASS_NAME}__title`],
children: [document.createTextNode(EDIT_CONTEXT === context ? handleTitle.replace('%s', title) : __('Save %s', 'elementor-pro').replace('%s', title))]
})]
});
const classNames = [EDIT_HANDLE_CLASS_NAME];
if (EDIT_CONTEXT !== context) {
classNames.push(SAVE_HANDLE_CLASS_NAME);
}
const containerElement = createElement({
tag: 'div',
classNames,
children: [innerElement]
});
containerElement.addEventListener('click', onClick);
return containerElement;
}
function getHandleIcon(context) {
let icon = 'eicon-edit';
if (SAVE_CONTEXT === context) {
icon = elementorFrontend.config.is_rtl ? 'eicon-arrow-right' : 'eicon-arrow-left';
}
return icon;
}
/**
* Util for creating HTML element.
*
* @param {Object} elementProperties
* @param {string} elementProperties.tag
* @param {string[]} elementProperties.classNames
* @param {HTMLElement[]} elementProperties.children
*
* @return {HTMLElement} Generated Element
*/
function createElement(_ref3) {
let {
tag,
classNames = [],
children = []
} = _ref3;
const element = document.createElement(tag);
element.classList.add(...classNames);
children.forEach(child => element.appendChild(child));
return element;
}
/**
* @param {string|number} id
* @param {string} context
* @param {Function|null} onCloseDocument
* @param {string} selector
* @return {Promise}
*/
async function onDocumentClick(id, context) {
let onCloseDocument = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
let selector = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
if (EDIT_CONTEXT === context) {
window.top.$e.internal('panel/state-loading');
await window.top.$e.run('editor/documents/switch', {
id: parseInt(id),
onClose: onCloseDocument,
selector
});
window.top.$e.internal('panel/state-ready');
} else {
elementorCommon.api.internal('panel/state-loading');
elementorCommon.api.run('editor/documents/switch', {
id: elementor.config.initial_document.id,
mode: 'save',
shouldScroll: false,
selector
}).finally(() => elementorCommon.api.internal('panel/state-ready'));
}
}
/***/ }),
/***/ "../modules/loop-builder/assets/js/frontend/handlers/loop.js":
/*!*******************************************************************!*\
!*** ../modules/loop-builder/assets/js/frontend/handlers/loop.js ***!
\*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _posts = _interopRequireDefault(__webpack_require__(/*! modules/posts/assets/js/frontend/handlers/posts */ "../modules/posts/assets/js/frontend/handlers/posts.js"));
var _documentHandle = _interopRequireWildcard(__webpack_require__(/*! elementor-pro/preview/utils/document-handle */ "../assets/dev/js/preview/utils/document-handle.js"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
class Loop extends _posts.default {
getSkinPrefix() {
return '';
}
getDefaultSettings() {
const defaultSettings = super.getDefaultSettings();
defaultSettings.selectors.post = '.elementor-loop-container .elementor';
defaultSettings.selectors.postsContainer = '.elementor-loop-container';
defaultSettings.classes.inPlaceTemplateEditable = 'elementor-in-place-template-editable';
return defaultSettings;
}
/**
* Fit Images is used in the extended Posts widget handler to apply the "Image Size", "Image Ratio" and
* "Image Width" controls. These controls don't exist in the Loop Grid widget, so we override `fitImages()`
* to disable it's functionality.
*/
fitImages() {}
getVerticalSpaceBetween() {
return elementorProFrontend.utils.controls.getResponsiveControlValue(this.getElementSettings(), 'row_gap', 'size');
}
/**
* This is a callback that runs when the "Edit Template" document handle is clicked in the Editor.
*/
onInPlaceEditTemplate() {
this.$element.addClass(this.getDefaultSettings().classes.inPlaceTemplateEditable);
this.elementsToRemove = [];
this.handleSwiper();
const templateID = this.getElementSettings('template_id');
this.elementsToRemove = [...this.elementsToRemove, 'style#loop-' + templateID, 'link#font-loop-' + templateID, 'style#loop-dynamic-' + templateID];
this.elementsToRemove.forEach(elementToRemove => {
this.$element.find(elementToRemove).remove();
});
}
handleSwiper() {
const swiper = this.elements.$postsContainer.data('swiper');
if (!swiper) {
return;
}
swiper.slideTo(0);
swiper.autoplay.pause();
swiper.allowTouchMove = false;
swiper.params.autoplay.delay = 1000000; // Add a long delay so that the Swiper does not move while editing the Template. Even though it was paused, it will start again on mouse leave.
swiper.update();
this.elementsToRemove = [...this.elementsToRemove, '.swiper-pagination', '.elementor-swiper-button', '.elementor-document-handle'];
}
attachEditDocumentHandle() {
const templateId = this.getElementSettings('template_id');
if (!templateId) {
return;
}
const elementSettings = this.getElementSettings(),
widgetSelector = `.elementor-element-${this.getID()}`,
editHandleSelector = elementSettings?.edit_handle_selector + ('[data-elementor-type="loop-item"]' === elementSettings?.edit_handle_selector ? `.elementor-${templateId}` : ''),
editHandleElement = this.$element.find(editHandleSelector).first()[0];
if (!editHandleElement) {
return;
}
if (this.isFirstEdit()) {
// TODO: refactor when CSS :has() is fully supported.
this.$element.find('.elementor-swiper-button').remove();
return;
}
(0, _documentHandle.default)({
element: editHandleElement,
title: __('Template', 'elementor-pro'),
id: templateId
}, _documentHandle.EDIT_CONTEXT, () => this.onInPlaceEditTemplate(), `${widgetSelector} .elementor-${templateId}`);
}
isFirstEdit() {
return this.$element.has('.e-loop-first-edit').length;
}
handleCTA() {
const emptyViewContainer = document.querySelector(`[data-id="${this.getID()}"] .e-loop-empty-view__wrapper`);
if (!emptyViewContainer) {
return;
}
const shadowRoot = emptyViewContainer.attachShadow({
mode: 'open'
});
shadowRoot.appendChild(elementorPro.modules.loopBuilder.getCtaStyles());
shadowRoot.appendChild(elementorPro.modules.loopBuilder.getCtaContent(this.getWidgetType()));
const ctaButton = shadowRoot.querySelector('.e-loop-empty-view__box-cta');
ctaButton.addEventListener('click', () => {
elementorPro.modules.loopBuilder.createTemplate();
});
}
/**
* Allows 3rd party add-ons to run code on the Loop Grid handler when the handler is initialized in the Editor.
*/
doEditorInitAction() {
elementor.hooks.doAction('editor/widgets/loop-grid/on-init', this);
}
onElementChange(control) {
if ('_skin' === control) {
elementorPro.modules.loopBuilder.onApplySkinChange();
}
_posts.default.prototype.onElementChange.apply(this);
}
onInit() {
super.onInit(...arguments);
if (elementorFrontend.isEditMode()) {
this.doEditorInitAction();
this.attachEditDocumentHandle();
this.handleCTA();
}
}
}
exports["default"] = Loop;
/***/ }),
/***/ "../modules/posts/assets/js/frontend/handlers/posts.js":
/*!*************************************************************!*\
!*** ../modules/posts/assets/js/frontend/handlers/posts.js ***!
\*************************************************************/
/***/ ((__unused_webpack_module, exports) => {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _default = exports["default"] = elementorModules.frontend.handlers.Base.extend({
getSkinPrefix() {
return 'classic_';
},
bindEvents() {
elementorFrontend.addListenerOnce(this.getModelCID(), 'resize', this.onWindowResize);
},
unbindEvents() {
elementorFrontend.removeListeners(this.getModelCID(), 'resize', this.onWindowResize);
},
getClosureMethodsNames() {
return elementorModules.frontend.handlers.Base.prototype.getClosureMethodsNames.apply(this, arguments).concat(['fitImages', 'onWindowResize', 'runMasonry']);
},
getDefaultSettings() {
return {
classes: {
fitHeight: 'elementor-fit-height',
hasItemRatio: 'elementor-has-item-ratio'
},
selectors: {
postsContainer: '.elementor-posts-container',
post: '.elementor-post',
postThumbnail: '.elementor-post__thumbnail',
postThumbnailImage: '.elementor-post__thumbnail img'
}
};
},
getDefaultElements() {
var selectors = this.getSettings('selectors');
return {
$postsContainer: this.$element.find(selectors.postsContainer),
$posts: this.$element.find(selectors.post)
};
},
fitImage($post) {
var settings = this.getSettings(),
$imageParent = $post.find(settings.selectors.postThumbnail),
$image = $imageParent.find('img'),
image = $image[0];
if (!image) {
return;
}
var imageParentRatio = $imageParent.outerHeight() / $imageParent.outerWidth(),
imageRatio = image.naturalHeight / image.naturalWidth;
$imageParent.toggleClass(settings.classes.fitHeight, imageRatio < imageParentRatio);
},
fitImages() {
var $ = jQuery,
self = this,
itemRatio = getComputedStyle(this.$element[0], ':after').content,
settings = this.getSettings();
if (self.isMasonryEnabled()) {
this.elements.$postsContainer.removeClass(settings.classes.hasItemRatio);
return;
}
this.elements.$postsContainer.toggleClass(settings.classes.hasItemRatio, !!itemRatio.match(/\d/));
this.elements.$posts.each(function () {
var $post = $(this),
$image = $post.find(settings.selectors.postThumbnailImage);
self.fitImage($post);
$image.on('load', function () {
self.fitImage($post);
});
});
},
setColsCountSettings() {
const settings = this.getElementSettings(),
skinPrefix = this.getSkinPrefix(),
colsCount = elementorProFrontend.utils.controls.getResponsiveControlValue(settings, `${skinPrefix}columns`);
this.setSettings('colsCount', colsCount);
},
isMasonryEnabled() {
return !!this.getElementSettings(this.getSkinPrefix() + 'masonry');
},
initMasonry() {
imagesLoaded(this.elements.$posts, this.runMasonry);
},
getVerticalSpaceBetween() {
/* The `verticalSpaceBetween` variable is set up in a way that supports older versions of the portfolio widget */
let verticalSpaceBetween = elementorProFrontend.utils.controls.getResponsiveControlValue(this.getElementSettings(), `${this.getSkinPrefix()}row_gap`, 'size');
if ('' === this.getSkinPrefix() && '' === verticalSpaceBetween) {
verticalSpaceBetween = this.getElementSettings('item_gap.size');
}
return verticalSpaceBetween;
},
runMasonry() {
var elements = this.elements;
elements.$posts.css({
marginTop: '',
transitionDuration: ''
});
this.setColsCountSettings();
var colsCount = this.getSettings('colsCount'),
hasMasonry = this.isMasonryEnabled() && colsCount >= 2;
elements.$postsContainer.toggleClass('elementor-posts-masonry', hasMasonry);
if (!hasMasonry) {
elements.$postsContainer.height('');
return;
}
const verticalSpaceBetween = this.getVerticalSpaceBetween();
var masonry = new elementorModules.utils.Masonry({
container: elements.$postsContainer,
items: elements.$posts.filter(':visible'),
columnsCount: this.getSettings('colsCount'),
verticalSpaceBetween: verticalSpaceBetween || 0
});
masonry.run();
},
run() {
// For slow browsers
setTimeout(this.fitImages, 0);
this.initMasonry();
},
onInit() {
elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
this.bindEvents();
this.run();
},
onWindowResize() {
this.fitImages();
this.runMasonry();
},
onElementChange() {
this.fitImages();
setTimeout(this.runMasonry);
}
});
/***/ })
}]);
//# sourceMappingURL=loop.27d8ba43536f8b76ca41.bundle.js.mapsection.ai1wm-decrypt-backup-section,section.ai1wm-decrypt-backup-section .ai1wm-input-password-container{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}section.ai1wm-decrypt-backup-section{-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end;gap:16px;box-sizing:border-box;padding:16px}section.ai1wm-decrypt-backup-section h1{font-size:20px;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}section.ai1wm-decrypt-backup-section p{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;padding:0;margin:0}section.ai1wm-decrypt-backup-section form{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;padding:0;gap:8px}section.ai1wm-decrypt-backup-section .ai1wm-input-password-container{-webkit-align-items:center;-ms-flex-align:center;align-items:center;position:relative;width:100%}section.ai1wm-decrypt-backup-section .ai1wm-input-password-container input{width:100%}section.ai1wm-decrypt-backup-section .ai1wm-input-password-container .ai1wm-toggle-password-visibility{font-size:16px;text-decoration:none;color:#3c434a;position:absolute;left:10px;top:8px;outline:0;box-shadow:none}section.ai1wm-decrypt-backup-section .ai1wm-input-password-container .ai1wm-error-message{display:none}section.ai1wm-decrypt-backup-section .ai1wm-input-password-container.ai1wm-has-error input{border-color:#e74c3c}section.ai1wm-decrypt-backup-section .ai1wm-input-password-container.ai1wm-has-error .ai1wm-error-message{color:#e74c3c;display:block;font-weight:400;text-align:right;width:100%}section.ai1wm-decrypt-backup-section .ai1wm-backup-decrypt-button-container,section.ai1wm-decrypt-backup-section form{display:-webkit-flex;display:-ms-flexbox;display:flex;width:75%;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}section.ai1wm-decrypt-backup-section .ai1wm-backup-decrypt-button-container{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;gap:16px;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}
// Fixed Width Icons
// -------------------------
.#{$fa-css-prefix}-fw {
width: (18em / 14);
text-align: center;
}
/*! elementor - v3.29.0 - 19-05-2025 */
.e-link-in-bio{--e-link-in-bio-border-color:transparent;--e-link-in-bio-border-style:none;--e-link-in-bio-border-width:0;--e-link-in-bio-container-height:auto;--e-link-in-bio-container-width:360px;--e-link-in-bio-content-align-h:center;--e-link-in-bio-content-align-v:center;--e-link-in-bio-content-width:280px;--e-link-in-bio-full-height:100vh;--e-link-in-bio-gutter-block-end:45px;--e-link-in-bio-gutter-block-start:38px;--e-link-in-bio-gutter-inline:40px;--e-link-in-bio-identity-image-cover-border-bottom-width:0;--e-link-in-bio-identity-image-cover-border-color:transparent;--e-link-in-bio-identity-image-cover-border-style:none;--e-link-in-bio-identity-image-cover-height:170px;--e-link-in-bio-identity-image-cover-position:center center;--e-link-in-bio-identity-image-profile-border-color:transparent;--e-link-in-bio-identity-image-profile-position:center center;--e-link-in-bio-identity-image-profile-border-radius:50%;--e-link-in-bio-identity-image-profile-border-style:none;--e-link-in-bio-identity-image-profile-border-width:0;--e-link-in-bio-identity-image-profile-width:115px;--e-link-in-bio-heading-color:inherit;--e-link-in-bio-title-color:inherit;--e-link-in-bio-about-heading-color:inherit;--e-link-in-bio-description-color:#324a6d;--e-link-in-bio-icon-background-color:transparent;--e-link-in-bio-icon-border-color:transparent;--e-link-in-bio-icon-border-style:none;--e-link-in-bio-icon-border-width:0;--e-link-in-bio-icon-color:inherit;--e-link-in-bio-icon-columns:3;--e-link-in-bio-icon-gap:20px 29px;--e-link-in-bio-icon-size:25px;--e-link-in-bio-ctas-background-color:#467ff7;--e-link-in-bio-ctas-border-color:transparent;--e-link-in-bio-ctas-border-radius:20px;--e-link-in-bio-ctas-border-style:none;--e-link-in-bio-ctas-border-width:0;--e-link-in-bio-ctas-gap:22px;--e-link-in-bio-ctas-padding-block-end:17px;--e-link-in-bio-ctas-padding-block-start:17px;--e-link-in-bio-ctas-padding-inline-end:20px;--e-link-in-bio-ctas-padding-inline-start:20px;--e-link-in-bio-ctas-text-color:#fff;--e-link-in-bio-image-links-border-color:transparent;--e-link-in-bio-image-links-border-style:solid;--e-link-in-bio-image-links-border-width:0;--e-link-in-bio-image-links-columns:2;--e-link-in-bio-image-links-gap:10px;--e-link-in-bio-image-links-height:auto;--background-overlay-opacity:0.5;align-items:var(--e-link-in-bio-content-align-h);border-color:var(--e-link-in-bio-border-color);border-style:var(--e-link-in-bio-border-style);border-width:var(--e-link-in-bio-border-width);display:flex;flex-direction:column;justify-content:var(--e-link-in-bio-content-align-v);margin-inline:auto;max-width:100%;min-height:var(--e-link-in-bio-container-height);padding:var(--e-link-in-bio-gutter-block-start) var(--e-link-in-bio-gutter-inline) var(--e-link-in-bio-gutter-block-end);position:relative;width:var(--e-link-in-bio-container-width)}@supports (height:100dvh){.e-link-in-bio{--e-link-in-bio-full-height:100dvh}}.e-link-in-bio.has-border{--e-link-in-bio-border-style:solid}@media (max-width:767px){.e-link-in-bio.is-full-height-mobile{--e-link-in-bio-container-height:var(--e-link-in-bio-full-height,100vh)}}@media (min-width:-1) and (max-width:-1){.e-link-in-bio.is-full-height-mobile_extra{--e-link-in-bio-container-height:var(--e-link-in-bio-full-height,100vh)}}@media (min-width:768px) and (max-width:1024px){.e-link-in-bio.is-full-height-tablet{--e-link-in-bio-container-height:var(--e-link-in-bio-full-height,100vh)}}@media (min-width:-1) and (max-width:-1){.e-link-in-bio.is-full-height-laptop,.e-link-in-bio.is-full-height-tablet_extra{--e-link-in-bio-container-height:var(--e-link-in-bio-full-height,100vh)}}@media (min-width:1025px){.e-link-in-bio.is-full-height-desktop{--e-link-in-bio-container-height:var(--e-link-in-bio-full-height,100vh)}}@media (min-width:1025px) and (max-width:99999px){.e-link-in-bio.is-full-height-desktop.is-full-height-widescreen{--e-link-in-bio-container-height:var(--e-link-in-bio-full-height,100vh)}}@media (min-width:-1){.e-link-in-bio.is-full-height-widescreen{--e-link-in-bio-container-height:var(--e-link-in-bio-full-height,100vh)}}.e-link-in-bio.is-full-width{--e-link-in-bio-container-width:100%}.e-link-in-bio__bg{display:grid;inset:0;position:absolute;z-index:0}.e-link-in-bio__bg,.e-link-in-bio__bg-overlay{background-position:50%;background-repeat:no-repeat;background-size:cover}.e-link-in-bio__bg-overlay{opacity:var(--background-overlay-opacity)}.e-link-in-bio__content{color:#1c2448;display:flex;flex-direction:column;font-family:var(--e-global-typography-text-font-family,"Poppins"),Sans-serif;max-width:100%;text-align:center;width:var(--e-link-in-bio-content-width);z-index:1}.e-link-in-bio__content *{word-wrap:break-word}.e-link-in-bio__identity{display:grid;grid-template-columns:1fr;grid-template-rows:auto;margin-block-end:14px;margin-block-start:calc(var(--e-link-in-bio-gutter-block-start) * -1)}.e-link-in-bio__identity .e-link-in-bio__identity-image{display:flex;position:relative}.e-link-in-bio__identity .e-link-in-bio__identity-image-element{display:block;flex:1 1 100%;-o-object-fit:cover;object-fit:cover}.e-link-in-bio__identity .e-link-in-bio__identity-image-cover{align-self:start;border-color:var(--e-link-in-bio-identity-image-cover-border-color);border-style:var(--e-link-in-bio-identity-image-cover-border-style);border-width:0 0 var(--e-link-in-bio-identity-image-cover-border-bottom-width) 0;grid-column:1;grid-row:1;margin-inline:calc(var(--e-link-in-bio-gutter-inline) * -1);max-height:var(--e-link-in-bio-identity-image-cover-height);overflow:hidden;width:calc(100% + var(--e-link-in-bio-gutter-inline) * 2)}.e-link-in-bio__identity .e-link-in-bio__identity-image-cover.has-border{--e-link-in-bio-identity-image-cover-border-style:solid}.e-link-in-bio__identity .e-link-in-bio__identity-image-cover .e-link-in-bio__identity-image-element{-o-object-position:var(--e-link-in-bio-identity-image-cover-position);object-position:var(--e-link-in-bio-identity-image-cover-position)}.e-link-in-bio__identity .e-link-in-bio__identity-image-profile{align-self:center;aspect-ratio:1;border-color:var(--e-link-in-bio-identity-image-profile-border-color);border-radius:var(--e-link-in-bio-identity-image-profile-border-radius);border-style:var(--e-link-in-bio-identity-image-profile-border-style);border-width:var(--e-link-in-bio-identity-image-profile-border-width);grid-column:1;grid-row:1;margin-block-end:17px;margin-block-start:var(--e-link-in-bio-gutter-block-start);margin-inline:auto;max-width:100%;overflow:hidden;width:var(--e-link-in-bio-identity-image-profile-width)}.e-link-in-bio__identity .e-link-in-bio__identity-image-profile.has-border{--e-link-in-bio-identity-image-profile-border-style:solid}.e-link-in-bio__identity .e-link-in-bio__identity-image-profile.has-style-square{--e-link-in-bio-identity-image-profile-border-radius:0}.e-link-in-bio__identity .e-link-in-bio__identity-image-profile .e-link-in-bio__identity-image-element{aspect-ratio:inherit;-o-object-position:var(--e-link-in-bio-identity-image-profile-position);object-position:var(--e-link-in-bio-identity-image-profile-position)}.e-link-in-bio__identity .e-link-in-bio__identity-image-cover+.e-link-in-bio__identity-image-profile{margin-block-start:17px}.e-link-in-bio__bio>*{margin-block:0}.e-link-in-bio__heading{color:var(--e-link-in-bio-heading-color);font-size:36px;font-weight:600;line-height:42px}.e-link-in-bio__about-heading{color:var(--e-link-in-bio-about-heading-color);font-size:16px;font-weight:500;line-height:20px}.e-link-in-bio__title{color:var(--e-link-in-bio-title-color);font-size:20px;font-weight:500;line-height:35px}.e-link-in-bio__description{color:var(--e-link-in-bio-description-color);font-size:16px;font-weight:300;line-height:24px;margin-block-start:20px}.e-link-in-bio__bio--footer{margin-block-start:34px}.e-link-in-bio__bio--footer .e-link-in-bio__description{font-size:12px;font-weight:500;line-height:20px;margin-block-start:0}.e-link-in-bio__bio--footer .e-link-in-bio__about-heading+.e-link-in-bio__description{margin-block-start:3px}.e-link-in-bio__icons{display:flex;flex-flow:row wrap;gap:var(--e-link-in-bio-icon-gap);justify-content:center;margin-block-start:20px}.e-link-in-bio__icons i{font-size:var(--e-link-in-bio-icon-size)}.e-link-in-bio__icons.has-size-medium{--e-link-in-bio-icon-size:30px}.e-link-in-bio__icons.has-size-large{--e-link-in-bio-icon-gap:20px 24px;--e-link-in-bio-icon-size:35px}.e-link-in-bio__icon{display:flex}.e-link-in-bio__icon .e-link-in-bio__icon-link{align-items:center;color:inherit;display:flex;flex:1 1 auto;flex-direction:column}.e-link-in-bio__icon .e-link-in-bio__icon-link:active,.e-link-in-bio__icon .e-link-in-bio__icon-link:focus,.e-link-in-bio__icon .e-link-in-bio__icon-link:hover{color:inherit}.e-link-in-bio__icon .e-link-in-bio__icon-svg{align-items:center;color:var(--e-link-in-bio-icon-color);display:flex;justify-content:center}.e-link-in-bio__icon svg{fill:currentColor;height:var(--e-link-in-bio-icon-size)}.e-link-in-bio__icon i{font-size:var(--e-link-in-bio-icon-size)}.e-link-in-bio__icon .e-link-in-bio__icon-label{font-size:14px;font-weight:500;line-height:20px;text-align:center}.e-link-in-bio__image-links{display:grid;gap:var(--e-link-in-bio-image-links-gap);grid-template-columns:repeat(var(--e-link-in-bio-image-links-columns,2),minmax(0,1fr));grid-template-rows:auto;margin-block-start:24px}.e-link-in-bio__image-links.has-1-columns{--e-link-in-bio-image-links-columns:1;--e-link-in-bio-image-links-gap:14px}.e-link-in-bio__image-links.has-3-columns{--e-link-in-bio-image-links-columns:3;--e-link-in-bio-image-links-gap:5px}.e-link-in-bio__image-links .e-link-in-bio__image-links-link{display:grid}.e-link-in-bio__image-links img.e-link-in-bio__image-links-img{aspect-ratio:1;border-color:var(--e-link-in-bio-image-links-border-color);border-style:var(--e-link-in-bio-image-links-border-style);border-width:var(--e-link-in-bio-image-links-border-width);display:block;height:var(--e-link-in-bio-image-links-height,auto);-o-object-fit:cover;object-fit:cover;width:100%}.e-link-in-bio__ctas{display:grid;gap:var(--e-link-in-bio-ctas-gap);grid-template-columns:minmax(0,1fr);grid-template-rows:auto;margin-block-start:31px}.e-link-in-bio__ctas.has-type-link{--e-link-in-bio-ctas-gap:10px;justify-items:center}.e-link-in-bio__ctas.has-type-divider{--e-link-in-bio-ctas-gap:0}.e-link-in-bio__ctas .e-link-in-bio__cta{display:flex;font-size:16px;font-weight:500;line-height:20px}.e-link-in-bio__ctas .e-link-in-bio__cta,.e-link-in-bio__ctas .e-link-in-bio__cta:active,.e-link-in-bio__ctas .e-link-in-bio__cta:focus,.e-link-in-bio__ctas .e-link-in-bio__cta:hover{color:var(--e-link-in-bio-ctas-text-color)}.e-link-in-bio__ctas .e-link-in-bio__cta-image{flex:0 0 min(50%,140px)}.e-link-in-bio__ctas .e-link-in-bio__cta-image-element{aspect-ratio:140/100;display:block;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.e-link-in-bio__ctas .e-link-in-bio__cta-text{align-items:center;display:flex;flex:1 1 auto;justify-content:center}.e-link-in-bio__ctas .e-link-in-bio__cta.is-type-button{border-radius:var(--e-link-in-bio-ctas-border-radius);overflow:hidden}.e-link-in-bio__ctas .e-link-in-bio__cta.is-type-button.has-border{--e-link-in-bio-ctas-border-style:solid;border-color:var(--e-link-in-bio-ctas-border-color);border-style:var(--e-link-in-bio-ctas-border-style);border-width:var(--e-link-in-bio-ctas-border-width)}.e-link-in-bio__ctas .e-link-in-bio__cta.is-type-button.has-corners-rounded{--e-link-in-bio-ctas-border-radius:20px}.e-link-in-bio__ctas .e-link-in-bio__cta.is-type-button.has-corners-round{--e-link-in-bio-ctas-border-radius:50px}.e-link-in-bio__ctas .e-link-in-bio__cta.is-type-button.has-corners-sharp{--e-link-in-bio-ctas-border-radius:0}.e-link-in-bio__ctas .e-link-in-bio__cta.is-type-button .e-link-in-bio__cta-text{background-color:var(--e-link-in-bio-ctas-background-color);padding-block-end:var(--e-link-in-bio-ctas-padding-block-end);padding-block-start:var(--e-link-in-bio-ctas-padding-block-start);padding-inline-end:var(--e-link-in-bio-ctas-padding-inline-end);padding-inline-start:var(--e-link-in-bio-ctas-padding-inline-start)}.e-link-in-bio__ctas .e-link-in-bio__cta.is-type-link{--e-link-in-bio-ctas-text-color:#467ff7;font-weight:700;justify-content:center;margin-block:17px}.e-link-in-bio .e-link-in-bio__content .e-link-in-bio__ctas .e-link-in-bio__cta.is-type-link{text-decoration:underline}
Always Pristine Cleaning
$e-site-editor-conditions-header-image-button-spacing: spacing(44);
$e-site-editor-conditions-header-image-width: px-to-rem(70);
$e-site-editor-conditions-rows-max-width: px-to-rem(700);
$e-site-editor-conditions-rows-y-spacing: spacing(44);
$e-site-editor-conditions-row-block-start-spacing: spacing(12);
$e-site-editor-conditions-remove-condition-color: tints(400);
$e-site-editor-conditions-remove-condition-font-size: type(size, '18');
$e-site-editor-conditions-row-controls-spacing-end: spacing(10);
$e-site-editor-conditions-row-controls-background: theme-colors(light);
$e-site-editor-conditions-row-controls-dark-background: dark-tints(600);
$e-site-editor-conditions-row-controls-radius: $eps-radius;
$e-site-editor-conditions-row-controls-border: $eps-border-width $eps-border-style tints(100);
$e-site-editor-conditions-row-controls-dark-border: $eps-border-width $eps-border-style tints(700);
//$e-site-editor-conditions-row-controls-dark-border: $eps-border-width $eps-border-style tints(725); //merge after 3.12 is out
$e-site-editor-conditions-row-controls-error-border: $eps-border-width $eps-border-style theme-colors(danger);
$e-site-editor-conditions-conflict-block-start-spacing: spacing(5);
$e-site-editor-conditions-conflict-color: theme-colors(danger);
$e-site-editor-add-button-margin-block-start: spacing(44);
$e-site-editor-add-button-background-color: tints(500);
$e-site-editor-add-button-background-dark-color: dark-tints(500);
$e-site-editor-add-button-color: theme-colors(light);
$e-site-editor-add-button-color-hover-background-color: tints(600);
$e-site-editor-add-button-color-hover-dark-background-color: dark-tints(600);
$e-site-editor-add-button-color-hover-color: theme-colors(light);
$e-site-editor-save-button-container-spacing: spacing(8);
$e-site-editor-input-wrapper-border-width: $eps-border-width;
$e-site-editor-input-wrapper-border-style: $eps-border-style;
$e-site-editor-input-wrapper-border-color: tints(100);
$e-site-editor-input-wrapper-border-dark-color: dark-tints(700);
//$e-site-editor-input-wrapper-border-dark-color: dark-tints(725); //merge after 3.12 is out
$e-site-editor-input-wrapper-select-font-size: type(size, "12");
$e-site-editor-input-wrapper-select-height: px-to-rem(40);
$e-site-editor-input-wrapper-select-y-padding: spacing(10);
$e-site-editor-input-wrapper-select-color: tints(700);
//$e-site-editor-input-wrapper-select-color: tints(725); //merge after 3.12 is out
$e-site-editor-input-wrapper-select-dark-color: dark-tints(200);
$e-site-editor-input-wrapper-select-arrow-font-size: type(size, "12");
$e-site-editor-input-wrapper-select-arrow-margin-end: spacing(10);
$e-site-editor-input-wrapper-condition-type-icon-start-spacing: spacing(12);
$e-site-editor-input-wrapper-condition-type-icon-font-size: type(size, "15");
$e-site-editor-input-wrapper-condition-type-icon-color: theme-colors(light);
$e-site-editor-input-wrapper-condition-type-icon-z-index: z-index(dropdown);
$e-site-editor-input-wrapper-condition-type-arrow-color: theme-colors(light);
$e-site-editor-input-wrapper-condition-type-start-padding: px-to-rem(34);
$e-site-editor-input-wrapper-condition-type-width: px-to-rem(120);
$e-site-editor-input-wrapper-condition-type-font-size: type(size, '12');
$e-site-editor-input-wrapper-condition-type-color: theme-colors(light);
$e-site-editor-input-wrapper-condition-include-background-color: tints(500);
$e-site-editor-input-wrapper-condition-include-background-dark-color: dark-tints(600);
$e-site-editor-input-wrapper-condition-exclude-background-color: tints(400);
$e-site-editor-input-wrapper-condition-exclude-background-dark-color: dark-tints(600);
$e-site-editor-input-select2-search-field-color: theme-elements-colors(text-base-color);
$e-site-editor-input-select2-search-field-dark-color: theme-colors(light);
:root {
--e-site-editor-conditions-row-controls-background: #{$e-site-editor-conditions-row-controls-background};
--e-site-editor-input-wrapper-border-color: #{$e-site-editor-input-wrapper-border-color};
--e-site-editor-input-wrapper-select-color: #{$e-site-editor-input-wrapper-select-color};
--e-site-editor-conditions-row-controls-border: #{$e-site-editor-conditions-row-controls-border};
--e-site-editor-add-button-background-color: #{$e-site-editor-add-button-background-color};
--e-site-editor-add-button-color-hover-background-color: #{$e-site-editor-add-button-color-hover-background-color};
--e-site-editor-input-wrapper-condition-include-background-color:
#{$e-site-editor-input-wrapper-condition-include-background-color};
--e-site-editor-input-wrapper-condition-exclude-background-color:
#{$e-site-editor-input-wrapper-condition-exclude-background-color};
--e-site-editor-input-select2-search-field-color: #{$e-site-editor-input-select2-search-field-color}
}
.eps-theme-dark {
--select2-selection-background-color: tints(600);
--e-site-editor-conditions-row-controls-background: #{$e-site-editor-conditions-row-controls-dark-background};
--e-site-editor-input-wrapper-border-color: #{$e-site-editor-input-wrapper-border-dark-color};
--e-site-editor-input-wrapper-select-color: #{$e-site-editor-input-wrapper-select-dark-color};
--e-site-editor-conditions-row-controls-border: #{$e-site-editor-conditions-row-controls-dark-border};
--e-site-editor-add-button-background-color: #{$e-site-editor-add-button-background-dark-color};
--e-site-editor-add-button-color-hover-background-color: #{$e-site-editor-add-button-color-hover-dark-background-color};
--e-site-editor-input-wrapper-condition-include-background-color:
#{$e-site-editor-input-wrapper-condition-include-background-dark-color};
--e-site-editor-input-wrapper-condition-exclude-background-color:
#{$e-site-editor-input-wrapper-condition-exclude-background-dark-color};
--e-site-editor-input-select2-search-field-color: #{$e-site-editor-input-select2-search-field-dark-color}
}
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/*! @elementor/utils */
/*! react */
/*!**************************!*\
!*** external ["React"] ***!
\**************************/
/*!****************************************!*\
!*** external ["elementorV2","utils"] ***!
\****************************************/
/*!*******************************************************************!*\
!*** ./node_modules/@elementor/editor-v1-adapters/dist/index.mjs ***!
\*******************************************************************/
/*! elementor - v3.29.0 - 19-05-2025 */
"use strict";
(self["webpackChunkelementorFrontend"] = self["webpackChunkelementorFrontend"] || []).push([["toggle"],{
/***/ "../assets/dev/js/frontend/handlers/base-tabs.js":
/*!*******************************************************!*\
!*** ../assets/dev/js/frontend/handlers/base-tabs.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
__webpack_require__(/*! core-js/modules/es.array.includes.js */ "../node_modules/core-js/modules/es.array.includes.js");
__webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "../node_modules/core-js/modules/esnext.iterator.constructor.js");
__webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ "../node_modules/core-js/modules/esnext.iterator.filter.js");
__webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "../node_modules/core-js/modules/esnext.iterator.find.js");
class baseTabs extends elementorModules.frontend.handlers.Base {
getDefaultSettings() {
return {
selectors: {
tablist: '[role="tablist"]',
tabTitle: '.elementor-tab-title',
tabContent: '.elementor-tab-content'
},
classes: {
active: 'elementor-active'
},
showTabFn: 'show',
hideTabFn: 'hide',
toggleSelf: true,
hidePrevious: true,
autoExpand: true,
keyDirection: {
ArrowLeft: elementorFrontendConfig.is_rtl ? 1 : -1,
ArrowUp: -1,
ArrowRight: elementorFrontendConfig.is_rtl ? -1 : 1,
ArrowDown: 1
}
};
}
getDefaultElements() {
const selectors = this.getSettings('selectors');
return {
$tabTitles: this.findElement(selectors.tabTitle),
$tabContents: this.findElement(selectors.tabContent)
};
}
activateDefaultTab() {
const settings = this.getSettings();
if (!settings.autoExpand || 'editor' === settings.autoExpand && !this.isEdit) {
return;
}
const defaultActiveTab = this.getEditSettings('activeItemIndex') || 1,
originalToggleMethods = {
showTabFn: settings.showTabFn,
hideTabFn: settings.hideTabFn
};
// Toggle tabs without animation to avoid jumping
this.setSettings({
showTabFn: 'show',
hideTabFn: 'hide'
});
this.changeActiveTab(defaultActiveTab);
// Return back original toggle effects
this.setSettings(originalToggleMethods);
}
handleKeyboardNavigation(event) {
const tab = event.currentTarget,
$tabList = jQuery(tab.closest(this.getSettings('selectors').tablist)),
// eslint-disable-next-line @wordpress/no-unused-vars-before-return
$tabs = $tabList.find(this.getSettings('selectors').tabTitle),
isVertical = 'vertical' === $tabList.attr('aria-orientation');
switch (event.key) {
case 'ArrowLeft':
case 'ArrowRight':
if (isVertical) {
return;
}
break;
case 'ArrowUp':
case 'ArrowDown':
if (!isVertical) {
return;
}
event.preventDefault();
break;
case 'Home':
event.preventDefault();
$tabs.first().trigger('focus');
return;
case 'End':
event.preventDefault();
$tabs.last().trigger('focus');
return;
default:
return;
}
const tabIndex = tab.getAttribute('data-tab') - 1,
direction = this.getSettings('keyDirection')[event.key],
nextTab = $tabs[tabIndex + direction];
if (nextTab) {
nextTab.focus();
} else if (-1 === tabIndex + direction) {
$tabs.last().trigger('focus');
} else {
$tabs.first().trigger('focus');
}
}
deactivateActiveTab(tabIndex) {
const settings = this.getSettings(),
activeClass = settings.classes.active,
activeFilter = tabIndex ? '[data-tab="' + tabIndex + '"]' : '.' + activeClass,
$activeTitle = this.elements.$tabTitles.filter(activeFilter),
$activeContent = this.elements.$tabContents.filter(activeFilter);
$activeTitle.add($activeContent).removeClass(activeClass);
$activeTitle.attr({
tabindex: '-1',
'aria-selected': 'false',
'aria-expanded': 'false'
});
$activeContent[settings.hideTabFn]();
$activeContent.attr('hidden', 'hidden');
}
activateTab(tabIndex) {
const settings = this.getSettings(),
activeClass = settings.classes.active,
$requestedTitle = this.elements.$tabTitles.filter('[data-tab="' + tabIndex + '"]'),
$requestedContent = this.elements.$tabContents.filter('[data-tab="' + tabIndex + '"]'),
animationDuration = 'show' === settings.showTabFn ? 0 : 400;
$requestedTitle.add($requestedContent).addClass(activeClass);
$requestedTitle.attr({
tabindex: '0',
'aria-selected': 'true',
'aria-expanded': 'true'
});
$requestedContent[settings.showTabFn](animationDuration, () => elementorFrontend.elements.$window.trigger('elementor-pro/motion-fx/recalc'));
$requestedContent.removeAttr('hidden');
}
isActiveTab(tabIndex) {
return this.elements.$tabTitles.filter('[data-tab="' + tabIndex + '"]').hasClass(this.getSettings('classes.active'));
}
bindEvents() {
this.elements.$tabTitles.on({
keydown: event => {
// Support for old markup that includes an `` tag in the tab
if (jQuery(event.target).is('a') && `Enter` === event.key) {
event.preventDefault();
}
// We listen to keydowon event for these keys in order to prevent undesired page scrolling
if (['End', 'Home', 'ArrowUp', 'ArrowDown'].includes(event.key)) {
this.handleKeyboardNavigation(event);
}
},
keyup: event => {
switch (event.code) {
case 'ArrowLeft':
case 'ArrowRight':
this.handleKeyboardNavigation(event);
break;
case 'Enter':
case 'Space':
event.preventDefault();
this.changeActiveTab(event.currentTarget.getAttribute('data-tab'));
break;
}
},
click: event => {
event.preventDefault();
this.changeActiveTab(event.currentTarget.getAttribute('data-tab'));
}
});
}
onInit() {
super.onInit(...arguments);
this.activateDefaultTab();
}
onEditSettingsChange(propertyName) {
if ('activeItemIndex' === propertyName) {
this.activateDefaultTab();
}
}
changeActiveTab(tabIndex) {
const isActiveTab = this.isActiveTab(tabIndex),
settings = this.getSettings();
if ((settings.toggleSelf || !isActiveTab) && settings.hidePrevious) {
this.deactivateActiveTab();
}
if (!settings.hidePrevious && isActiveTab) {
this.deactivateActiveTab(tabIndex);
}
if (!isActiveTab) {
this.activateTab(tabIndex);
}
}
}
exports["default"] = baseTabs;
/***/ }),
/***/ "../assets/dev/js/frontend/handlers/toggle.js":
/*!****************************************************!*\
!*** ../assets/dev/js/frontend/handlers/toggle.js ***!
\****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _baseTabs = _interopRequireDefault(__webpack_require__(/*! ./base-tabs */ "../assets/dev/js/frontend/handlers/base-tabs.js"));
class Toggle extends _baseTabs.default {
getDefaultSettings() {
const defaultSettings = super.getDefaultSettings();
return {
...defaultSettings,
showTabFn: 'slideDown',
hideTabFn: 'slideUp',
hidePrevious: false,
autoExpand: 'editor'
};
}
}
exports["default"] = Toggle;
/***/ })
}]);
//# sourceMappingURL=toggle.375da8e2f6fed12731c2.bundle.js.map.flatpickr-calendar {
background: transparent;
opacity: 0;
display: none;
text-align: center;
visibility: hidden;
padding: 0;
-webkit-animation: none;
animation: none;
direction: ltr;
border: 0;
font-size: 14px;
line-height: 24px;
border-radius: 5px;
position: absolute;
width: 307.875px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
-ms-touch-action: manipulation;
touch-action: manipulation;
background: #fff;
-webkit-box-shadow: 1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0,0,0,0.08);
box-shadow: 1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0,0,0,0.08);
}
.flatpickr-calendar.open,
.flatpickr-calendar.inline {
opacity: 1;
max-height: 640px;
visibility: visible;
}
.flatpickr-calendar.open {
display: inline-block;
z-index: 99999;
}
.flatpickr-calendar.animate.open {
-webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
}
.flatpickr-calendar.inline {
display: block;
position: relative;
top: 2px;
}
.flatpickr-calendar.static {
position: absolute;
top: calc(100% + 2px);
}
.flatpickr-calendar.static.open {
z-index: 999;
display: block;
}
.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {
-webkit-box-shadow: none !important;
box-shadow: none !important;
}
.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {
-webkit-box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
}
.flatpickr-calendar .hasWeeks .dayContainer,
.flatpickr-calendar .hasTime .dayContainer {
border-bottom: 0;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.flatpickr-calendar .hasWeeks .dayContainer {
border-left: 0;
}
.flatpickr-calendar.hasTime .flatpickr-time {
height: 40px;
border-top: 1px solid #e6e6e6;
}
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
height: auto;
}
.flatpickr-calendar:before,
.flatpickr-calendar:after {
position: absolute;
display: block;
pointer-events: none;
border: solid transparent;
content: '';
height: 0;
width: 0;
left: 22px;
}
.flatpickr-calendar.rightMost:before,
.flatpickr-calendar.arrowRight:before,
.flatpickr-calendar.rightMost:after,
.flatpickr-calendar.arrowRight:after {
left: auto;
right: 22px;
}
.flatpickr-calendar.arrowCenter:before,
.flatpickr-calendar.arrowCenter:after {
left: 50%;
right: 50%;
}
.flatpickr-calendar:before {
border-width: 5px;
margin: 0 -5px;
}
.flatpickr-calendar:after {
border-width: 4px;
margin: 0 -4px;
}
.flatpickr-calendar.arrowTop:before,
.flatpickr-calendar.arrowTop:after {
bottom: 100%;
}
.flatpickr-calendar.arrowTop:before {
border-bottom-color: #e6e6e6;
}
.flatpickr-calendar.arrowTop:after {
border-bottom-color: #fff;
}
.flatpickr-calendar.arrowBottom:before,
.flatpickr-calendar.arrowBottom:after {
top: 100%;
}
.flatpickr-calendar.arrowBottom:before {
border-top-color: #e6e6e6;
}
.flatpickr-calendar.arrowBottom:after {
border-top-color: #fff;
}
.flatpickr-calendar:focus {
outline: 0;
}
.flatpickr-wrapper {
position: relative;
display: inline-block;
}
.flatpickr-months {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
}
.flatpickr-months .flatpickr-month {
background: transparent;
color: rgba(0,0,0,0.9);
fill: rgba(0,0,0,0.9);
height: 34px;
line-height: 1;
text-align: center;
position: relative;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
overflow: hidden;
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
}
.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
text-decoration: none;
cursor: pointer;
position: absolute;
top: 0;
height: 34px;
padding: 10px;
z-index: 3;
color: rgba(0,0,0,0.9);
fill: rgba(0,0,0,0.9);
}
.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,
.flatpickr-months .flatpickr-next-month.flatpickr-disabled {
display: none;
}
.flatpickr-months .flatpickr-prev-month i,
.flatpickr-months .flatpickr-next-month i {
position: relative;
}
.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
left: 0;
}
.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,
.flatpickr-months .flatpickr-next-month.flatpickr-next-month {
right: 0;
}
.flatpickr-months .flatpickr-prev-month:hover,
.flatpickr-months .flatpickr-next-month:hover {
color: #959ea9;
}
.flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-months .flatpickr-next-month:hover svg {
fill: #f64747;
}
.flatpickr-months .flatpickr-prev-month svg,
.flatpickr-months .flatpickr-next-month svg {
width: 14px;
height: 14px;
}
.flatpickr-months .flatpickr-prev-month svg path,
.flatpickr-months .flatpickr-next-month svg path {
-webkit-transition: fill 0.1s;
transition: fill 0.1s;
fill: inherit;
}
.numInputWrapper {
position: relative;
height: auto;
}
.numInputWrapper input,
.numInputWrapper span {
display: inline-block;
}
.numInputWrapper input {
width: 100%;
}
.numInputWrapper input::-ms-clear {
display: none;
}
.numInputWrapper input::-webkit-outer-spin-button,
.numInputWrapper input::-webkit-inner-spin-button {
margin: 0;
-webkit-appearance: none;
}
.numInputWrapper span {
position: absolute;
right: 0;
width: 14px;
padding: 0 4px 0 2px;
height: 50%;
line-height: 50%;
opacity: 0;
cursor: pointer;
border: 1px solid rgba(57,57,57,0.15);
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.numInputWrapper span:hover {
background: rgba(0,0,0,0.1);
}
.numInputWrapper span:active {
background: rgba(0,0,0,0.2);
}
.numInputWrapper span:after {
display: block;
content: "";
position: absolute;
}
.numInputWrapper span.arrowUp {
top: 0;
border-bottom: 0;
}
.numInputWrapper span.arrowUp:after {
border-left: 4px solid transparent;
border-right: 4px solid transparent;
border-bottom: 4px solid rgba(57,57,57,0.6);
top: 26%;
}
.numInputWrapper span.arrowDown {
top: 50%;
}
.numInputWrapper span.arrowDown:after {
border-left: 4px solid transparent;
border-right: 4px solid transparent;
border-top: 4px solid rgba(57,57,57,0.6);
top: 40%;
}
.numInputWrapper span svg {
width: inherit;
height: auto;
}
.numInputWrapper span svg path {
fill: rgba(0,0,0,0.5);
}
.numInputWrapper:hover {
background: rgba(0,0,0,0.05);
}
.numInputWrapper:hover span {
opacity: 1;
}
.flatpickr-current-month {
font-size: 135%;
line-height: inherit;
font-weight: 300;
color: inherit;
position: absolute;
width: 75%;
left: 12.5%;
padding: 7.48px 0 0 0;
line-height: 1;
height: 34px;
/* Start Custom Elementor Code */
display: flex;
justify-content: center;
align-items: center;
/* End Custom Elementor Code */
text-align: center;
-webkit-transform: translate3d(0px, 0px, 0px);
transform: translate3d(0px, 0px, 0px);
}
.flatpickr-current-month span.cur-month {
font-family: inherit;
font-weight: 700;
color: inherit;
display: inline-block;
margin-left: 0.5ch;
padding: 0;
}
.flatpickr-current-month span.cur-month:hover {
background: rgba(0,0,0,0.05);
}
.flatpickr-current-month .numInputWrapper {
width: 6ch;
width: 7ch\0;
display: inline-block;
}
.flatpickr-current-month .numInputWrapper span.arrowUp:after {
border-bottom-color: rgba(0,0,0,0.9);
}
.flatpickr-current-month .numInputWrapper span.arrowDown:after {
border-top-color: rgba(0,0,0,0.9);
}
.flatpickr-current-month input.cur-year {
background: transparent;
-webkit-box-sizing: border-box;
box-sizing: border-box;
color: inherit;
cursor: text;
padding: 0 0 0 0.5ch;
margin: 0;
display: inline-block;
font-size: inherit;
font-family: inherit;
font-weight: 300;
line-height: inherit;
height: auto;
border: 0;
border-radius: 0;
vertical-align: initial;
-webkit-appearance: textfield;
-moz-appearance: textfield;
appearance: textfield;
}
.flatpickr-current-month input.cur-year:focus {
outline: 0;
}
.flatpickr-current-month input.cur-year[disabled],
.flatpickr-current-month input.cur-year[disabled]:hover {
font-size: 100%;
color: rgba(0,0,0,0.5);
background: transparent;
pointer-events: none;
}
.flatpickr-current-month .flatpickr-monthDropdown-months {
appearance: menulist;
background: transparent;
border: none;
border-radius: 0;
box-sizing: border-box;
color: inherit;
cursor: pointer;
font-size: inherit;
font-family: inherit;
font-weight: 300;
height: auto;
line-height: inherit;
margin: -1px 0 0 0;
outline: none;
padding: 0 0 0 0.5ch;
position: relative;
vertical-align: initial;
-webkit-box-sizing: border-box;
-webkit-appearance: menulist;
-moz-appearance: menulist;
width: auto;
}
.flatpickr-current-month .flatpickr-monthDropdown-months:focus,
.flatpickr-current-month .flatpickr-monthDropdown-months:active {
outline: none;
}
.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
background: rgba(0,0,0,0.05);
}
.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
background-color: transparent;
outline: none;
padding: 0;
}
.flatpickr-weekdays {
background: transparent;
text-align: center;
overflow: hidden;
width: 100%;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
height: 28px;
}
.flatpickr-weekdays .flatpickr-weekdaycontainer {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
}
span.flatpickr-weekday {
cursor: default;
font-size: 90%;
background: transparent;
color: rgba(0,0,0,0.54);
line-height: 1;
margin: 0;
text-align: center;
display: block;
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
font-weight: bolder;
}
.dayContainer,
.flatpickr-weeks {
padding: 1px 0 0 0;
}
.flatpickr-days {
position: relative;
overflow: hidden;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-align: start;
-webkit-align-items: flex-start;
-ms-flex-align: start;
align-items: flex-start;
width: 307.875px;
}
.flatpickr-days:focus {
outline: 0;
}
.dayContainer {
padding: 0;
outline: 0;
text-align: left;
width: 307.875px;
min-width: 307.875px;
max-width: 307.875px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
display: inline-block;
display: -ms-flexbox;
display: -webkit-box;
display: -webkit-flex;
display: flex;
-webkit-flex-wrap: wrap;
flex-wrap: wrap;
-ms-flex-wrap: wrap;
-ms-flex-pack: justify;
-webkit-justify-content: space-around;
justify-content: space-around;
-webkit-transform: translate3d(0px, 0px, 0px);
transform: translate3d(0px, 0px, 0px);
opacity: 1;
}
.dayContainer + .dayContainer {
-webkit-box-shadow: -1px 0 0 #e6e6e6;
box-shadow: -1px 0 0 #e6e6e6;
}
.flatpickr-day {
background: none;
border: 1px solid transparent;
border-radius: 150px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
color: #393939;
cursor: pointer;
font-weight: 400;
width: 14.2857143%;
-webkit-flex-basis: 14.2857143%;
-ms-flex-preferred-size: 14.2857143%;
flex-basis: 14.2857143%;
max-width: 39px;
height: 39px;
line-height: 39px;
margin: 0;
display: inline-block;
position: relative;
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
text-align: center;
}
.flatpickr-day.inRange,
.flatpickr-day.prevMonthDay.inRange,
.flatpickr-day.nextMonthDay.inRange,
.flatpickr-day.today.inRange,
.flatpickr-day.prevMonthDay.today.inRange,
.flatpickr-day.nextMonthDay.today.inRange,
.flatpickr-day:hover,
.flatpickr-day.prevMonthDay:hover,
.flatpickr-day.nextMonthDay:hover,
.flatpickr-day:focus,
.flatpickr-day.prevMonthDay:focus,
.flatpickr-day.nextMonthDay:focus {
cursor: pointer;
outline: 0;
background: #e6e6e6;
border-color: #e6e6e6;
}
.flatpickr-day.today {
border-color: #959ea9;
}
.flatpickr-day.today:hover,
.flatpickr-day.today:focus {
border-color: #959ea9;
background: #959ea9;
color: #fff;
}
.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected.inRange,
.flatpickr-day.startRange.inRange,
.flatpickr-day.endRange.inRange,
.flatpickr-day.selected:focus,
.flatpickr-day.startRange:focus,
.flatpickr-day.endRange:focus,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange:hover,
.flatpickr-day.endRange:hover,
.flatpickr-day.selected.prevMonthDay,
.flatpickr-day.startRange.prevMonthDay,
.flatpickr-day.endRange.prevMonthDay,
.flatpickr-day.selected.nextMonthDay,
.flatpickr-day.startRange.nextMonthDay,
.flatpickr-day.endRange.nextMonthDay {
background: #569ff7;
-webkit-box-shadow: none;
box-shadow: none;
color: #fff;
border-color: #569ff7;
}
.flatpickr-day.selected.startRange,
.flatpickr-day.startRange.startRange,
.flatpickr-day.endRange.startRange {
border-radius: 50px 0 0 50px;
}
.flatpickr-day.selected.endRange,
.flatpickr-day.startRange.endRange,
.flatpickr-day.endRange.endRange {
border-radius: 0 50px 50px 0;
}
.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),
.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
-webkit-box-shadow: -10px 0 0 #569ff7;
box-shadow: -10px 0 0 #569ff7;
}
.flatpickr-day.selected.startRange.endRange,
.flatpickr-day.startRange.startRange.endRange,
.flatpickr-day.endRange.startRange.endRange {
border-radius: 50px;
}
.flatpickr-day.inRange {
border-radius: 0;
-webkit-box-shadow: -5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
box-shadow: -5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
}
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover,
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay,
.flatpickr-day.notAllowed,
.flatpickr-day.notAllowed.prevMonthDay,
.flatpickr-day.notAllowed.nextMonthDay {
color: rgba(57,57,57,0.3);
background: transparent;
border-color: transparent;
cursor: default;
}
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover {
cursor: not-allowed;
color: rgba(57,57,57,0.1);
}
.flatpickr-day.week.selected {
border-radius: 0;
-webkit-box-shadow: -5px 0 0 #569ff7, 5px 0 0 #569ff7;
box-shadow: -5px 0 0 #569ff7, 5px 0 0 #569ff7;
}
.flatpickr-day.hidden {
visibility: hidden;
}
.rangeMode .flatpickr-day {
margin-top: 1px;
}
.flatpickr-weekwrapper {
float: left;
}
.flatpickr-weekwrapper .flatpickr-weeks {
padding: 0 12px;
-webkit-box-shadow: 1px 0 0 #e6e6e6;
box-shadow: 1px 0 0 #e6e6e6;
}
.flatpickr-weekwrapper .flatpickr-weekday {
float: none;
width: 100%;
line-height: 28px;
}
.flatpickr-weekwrapper span.flatpickr-day,
.flatpickr-weekwrapper span.flatpickr-day:hover {
display: block;
width: 100%;
max-width: none;
color: rgba(57,57,57,0.3);
background: transparent;
cursor: default;
border: none;
}
.flatpickr-innerContainer {
display: block;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-sizing: border-box;
box-sizing: border-box;
overflow: hidden;
}
.flatpickr-rContainer {
display: inline-block;
padding: 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.flatpickr-time {
text-align: center;
outline: 0;
display: block;
height: 0;
line-height: 40px;
max-height: 40px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
overflow: hidden;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
}
.flatpickr-time:after {
content: "";
display: table;
clear: both;
}
.flatpickr-time .numInputWrapper {
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
width: 40%;
height: 40px;
float: left;
}
.flatpickr-time .numInputWrapper span.arrowUp:after {
border-bottom-color: #393939;
}
.flatpickr-time .numInputWrapper span.arrowDown:after {
border-top-color: #393939;
}
.flatpickr-time.hasSeconds .numInputWrapper {
width: 26%;
}
.flatpickr-time.time24hr .numInputWrapper {
width: 49%;
}
.flatpickr-time input {
background: transparent;
-webkit-box-shadow: none;
box-shadow: none;
border: 0;
border-radius: 0;
text-align: center;
margin: 0;
padding: 0;
height: inherit;
line-height: inherit;
color: #393939;
font-size: 14px;
position: relative;
-webkit-box-sizing: border-box;
box-sizing: border-box;
-webkit-appearance: textfield;
-moz-appearance: textfield;
appearance: textfield;
}
.flatpickr-time input.flatpickr-hour {
font-weight: bold;
}
.flatpickr-time input.flatpickr-minute,
.flatpickr-time input.flatpickr-second {
font-weight: 400;
}
.flatpickr-time input:focus {
outline: 0;
border: 0;
}
.flatpickr-time .flatpickr-time-separator,
.flatpickr-time .flatpickr-am-pm {
height: inherit;
float: left;
line-height: inherit;
color: #393939;
font-weight: bold;
width: 2%;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-align-self: center;
-ms-flex-item-align: center;
align-self: center;
}
.flatpickr-time .flatpickr-am-pm {
outline: 0;
width: 18%;
cursor: pointer;
text-align: center;
font-weight: 400;
}
.flatpickr-time input:hover,
.flatpickr-time .flatpickr-am-pm:hover,
.flatpickr-time input:focus,
.flatpickr-time .flatpickr-am-pm:focus {
background: #eee;
}
.flatpickr-input[readonly] {
cursor: pointer;
}
@-webkit-keyframes fpFadeInDown {
from {
opacity: 0;
-webkit-transform: translate3d(0, -20px, 0);
transform: translate3d(0, -20px, 0);
}
to {
opacity: 1;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
}
@keyframes fpFadeInDown {
from {
opacity: 0;
-webkit-transform: translate3d(0, -20px, 0);
transform: translate3d(0, -20px, 0);
}
to {
opacity: 1;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
}
{
"name": "psr/http-message",
"description": "Common interface for HTTP messages",
"keywords": ["psr", "psr-7", "http", "http-message", "request", "response"],
"homepage": "https://github.com/php-fig/http-message",
"license": "MIT",
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"require": {
"php": "^7.2 || ^8.0"
},
"autoload": {
"psr-4": {
"Psr\\Http\\Message\\": "src/"
}
},
"extra": {
"branch-alias": {
"dev-master": "1.1.x-dev"
}
}
}
// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE
(function(mod) {
if (typeof exports == "object" && typeof module == "object") // CommonJS
mod(require("../../lib/codemirror"), require("../../addon/mode/multiplex"));
else if (typeof define == "function" && define.amd) // AMD
define(["../../lib/codemirror", "../../addon/mode/multiplex"], mod);
else // Plain browser env
mod(CodeMirror);
})(function(CodeMirror) {
"use strict";
CodeMirror.defineMode("twig:inner", function() {
var keywords = ["and", "as", "autoescape", "endautoescape", "block", "do", "endblock", "else", "elseif", "extends", "for", "endfor", "embed", "endembed", "filter", "endfilter", "flush", "from", "if", "endif", "in", "is", "include", "import", "not", "or", "set", "spaceless", "endspaceless", "with", "endwith", "trans", "endtrans", "blocktrans", "endblocktrans", "macro", "endmacro", "use", "verbatim", "endverbatim"],
operator = /^[+\-*&%=<>!?|~^]/,
sign = /^[:\[\(\{]/,
atom = ["true", "false", "null", "empty", "defined", "divisibleby", "divisible by", "even", "odd", "iterable", "sameas", "same as"],
number = /^(\d[+\-\*\/])?\d+(\.\d+)?/;
keywords = new RegExp("((" + keywords.join(")|(") + "))\\b");
atom = new RegExp("((" + atom.join(")|(") + "))\\b");
function tokenBase (stream, state) {
var ch = stream.peek();
//Comment
if (state.incomment) {
if (!stream.skipTo("#}")) {
stream.skipToEnd();
} else {
stream.eatWhile(/\#|}/);
state.incomment = false;
}
return "comment";
//Tag
} else if (state.intag) {
//After operator
if (state.operator) {
state.operator = false;
if (stream.match(atom)) {
return "atom";
}
if (stream.match(number)) {
return "number";
}
}
//After sign
if (state.sign) {
state.sign = false;
if (stream.match(atom)) {
return "atom";
}
if (stream.match(number)) {
return "number";
}
}
if (state.instring) {
if (ch == state.instring) {
state.instring = false;
}
stream.next();
return "string";
} else if (ch == "'" || ch == '"') {
state.instring = ch;
stream.next();
return "string";
} else if (stream.match(state.intag + "}") || stream.eat("-") && stream.match(state.intag + "}")) {
state.intag = false;
return "tag";
} else if (stream.match(operator)) {
state.operator = true;
return "operator";
} else if (stream.match(sign)) {
state.sign = true;
} else {
if (stream.eat(" ") || stream.sol()) {
if (stream.match(keywords)) {
return "keyword";
}
if (stream.match(atom)) {
return "atom";
}
if (stream.match(number)) {
return "number";
}
if (stream.sol()) {
stream.next();
}
} else {
stream.next();
}
}
return "variable";
} else if (stream.eat("{")) {
if (stream.eat("#")) {
state.incomment = true;
if (!stream.skipTo("#}")) {
stream.skipToEnd();
} else {
stream.eatWhile(/\#|}/);
state.incomment = false;
}
return "comment";
//Open tag
} else if (ch = stream.eat(/\{|%/)) {
//Cache close tag
state.intag = ch;
if (ch == "{") {
state.intag = "}";
}
stream.eat("-");
return "tag";
}
}
stream.next();
};
return {
startState: function () {
return {};
},
token: function (stream, state) {
return tokenBase(stream, state);
}
};
});
CodeMirror.defineMode("twig", function(config, parserConfig) {
var twigInner = CodeMirror.getMode(config, "twig:inner");
if (!parserConfig || !parserConfig.base) return twigInner;
return CodeMirror.multiplexingMode(
CodeMirror.getMode(config, parserConfig.base), {
open: /\{[{#%]/, close: /[}#%]\}/, mode: twigInner, parseDelimiters: true
}
);
});
CodeMirror.defineMIME("text/x-twig", "twig");
});