import { Card } from '@elementor/app-ui'; import { SiteTemplateHeader } from './site-template-header'; import { SiteTemplateBody } from './site-template-body'; import { SiteTemplateFooter } from './site-template-footer'; import './site-template.scss'; export default function SiteTemplate( props ) { const baseClassName = 'e-site-template', classes = [ baseClassName ], ref = React.useRef( null ); React.useEffect( () => { if ( ! props.isSelected ) { return; } ref.current.scrollIntoView( { behavior: 'smooth', block: 'start', } ); }, [ props.isSelected ] ); if ( props.extended ) { classes.push( `${ baseClassName }--extended` ); } if ( props.aspectRatio ) { classes.push( `${ baseClassName }--${ props.aspectRatio }` ); } const CardFooter = props.extended && props.showInstances ? : ''; return ( { CardFooter } ); } SiteTemplate.propTypes = { aspectRatio: PropTypes.string, className: PropTypes.string, extended: PropTypes.bool, id: PropTypes.number.isRequired, isActive: PropTypes.bool.isRequired, status: PropTypes.string, thumbnail: PropTypes.string.isRequired, title: PropTypes.string.isRequired, isSelected: PropTypes.bool, type: PropTypes.string.isRequired, showInstances: PropTypes.bool, }; SiteTemplate.defaultProps = { isSelected: false, }; // Hide paging when TTA collapses to accordion (except pageable) // ========================== @media (max-width: @vc_tta-breakpoint) { .vc_tta-container { .vc_tta:not([class*="vc_tta-pageable"]) { .vc_pagination { display: none; } } } }/*! elementor - v3.14.0 - 26-06-2023 */ "use strict"; (self["webpackChunkelementor"] = self["webpackChunkelementor"] || []).push([["toggle"],{ /***/ "../assets/dev/js/frontend/handlers/base-tabs.js": /*!*******************************************************!*\ !*** ../assets/dev/js/frontend/handlers/base-tabs.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; 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.29e5a34bb6e51dab4600.bundle.js.map(function ($) { "use strict"; vc.atts.g5element_number_and_unit = { init: function (param, $field) { var $inputField = $field.find('.g5element_number_and_unit_field'); $field.find('.g5element-vc-number-and-unit-field').on('change',function(){ var value = ''; $field.find('.g5element-vc-number-and-unit-field').each(function(){ if (value === '') { value += $(this).val(); } else { value += $(this).val(); } }); $inputField.val(value); }); } } })(jQuery);
.gel-image-hover-gray-scale img { -webkit-filter: grayscale(100%); filter: grayscale(100%); -webkit-transition: 0.7s ease-in-out; transition: 0.7s ease-in-out; } .gel-image-hover-gray-scale:hover img { -webkit-filter: grayscale(0); filter: grayscale(0); } .gel-image-hover-opacity .img { opacity: 1; -webkit-transition: 0.7s ease-in-out; transition: 0.7s ease-in-out; } .gel-image-hover-opacity:hover img { opacity: 0.5; } @-webkit-keyframes gel-shine { 100% { left: 125%; } } @keyframes gel-shine { 100% { left: 125%; } } .gel-image-hover-shine:before { position: absolute; top: 0; left: -100%; z-index: 2; display: block; content: ""; width: 50%; height: 100%; background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%); background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%); -webkit-transform: skewX(-25deg); transform: skewX(-25deg); } .gel-image-hover-shine:hover:before { -webkit-animation: gel-shine 0.35s; animation: gel-shine 0.35s; } @-webkit-keyframes gel-shine { 100% { left: 125%; } } @keyframes gel-shine { 100% { left: 125%; } } .gel-image-hover-circle:before { position: absolute; top: 50%; left: 50%; z-index: 2; display: block; content: ""; width: 0; height: 0; background: rgba(255, 255, 255, 0.2); border-radius: 100%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); opacity: 0; } .gel-image-hover-circle:hover:before { -webkit-animation: gel-circle 0.7s; animation: gel-circle 0.7s; } @-webkit-keyframes gel-circle { 0% { opacity: 1; } 40% { opacity: 1; } 100% { width: 200%; height: 200%; opacity: 0; } } @keyframes gel-circle { 0% { opacity: 1; } 40% { opacity: 1; } 100% { width: 200%; height: 200%; opacity: 0; } } .gel-image-hover-flash:hover img { opacity: 1; -webkit-animation: gel-flash 0.7s; animation: gel-flash 0.7s; } @-webkit-keyframes gel-flash { 0% { opacity: 0.4; } 100% { opacity: 1; } } @keyframes gel-flash { 0% { opacity: 0.4; } 100% { opacity: 1; } } .gel-image-box a:not(.btn) { color: inherit; } .gel-image-box.img-circle .g5core__lazy-image, .gel-image-box.img-circle .image, .gel-image-box.img-circle img { border-radius: 50%; } .gel-image-box.img-circle .g5core__lazy-image:after, .gel-image-box.img-circle .image:after, .gel-image-box.img-circle img:after { border-radius: 50%; } .gel-image-box .image a { position: relative; z-index: 1; display: inline-block; } .gel-image-box .title { margin-bottom: 1rem; } .gel-image-box .btn-box { margin-top: 1.5rem; } .gel-image-box p:last-child { margin-bottom: 0; } .gel-image-box.border-img .image { display: inline-block; position: relative; -webkit-box-shadow: 0 0 0 4px #d7aa82; box-shadow: 0 0 0 4px #d7aa82; -webkit-transition: transform 0.3s, opacity 0.3s; transition: transform 0.3s, opacity 0.3s; font-size: 0; } .gel-image-box.border-img .image:after { min-width: 100%; height: 100%; content: ""; position: absolute; -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; top: -1px; left: -1px; padding: 1px; -webkit-transform: scale(1.3); transform: scale(1.3); opacity: 0; -webkit-box-shadow: 0 0 0 1px #d7aa82; box-shadow: 0 0 0 1px #d7aa82; -webkit-transition: transform 0.3s, opacity 0.3s; transition: transform 0.3s, opacity 0.3s; } .gel-image-box.border-img:hover .image { -webkit-box-shadow: 0 0 0 2px #d7aa82; box-shadow: 0 0 0 2px #d7aa82; -webkit-transition: background 0.3s, transform 0.3s, opacity 0.3s; transition: background 0.3s, transform 0.3s, opacity 0.3s; } .gel-image-box.border-img:hover .image:after { opacity: 1; -webkit-transform: scale(1); transform: scale(1); -webkit-transition: transform 0.3s, opacity 0.3s; transition: transform 0.3s, opacity 0.3s; -webkit-box-shadow: 0 0 0 2px #d7aa82; box-shadow: 0 0 0 2px #d7aa82; } .gel-image-box.img-size-sm .image { -ms-flex: 0 0 60px; flex: 0 0 60px; max-width: 60px; } .gel-image-box.img-size-md .image { -ms-flex: 0 0 80px; flex: 0 0 80px; max-width: 80px; } .gel-image-box.img-size-lg .image { -ms-flex: 0 0 120px; flex: 0 0 120px; max-width: 120px; } .gel-image-box .image-hover { position: relative; } .gel-image-box .image-hover .g5core__lazy-image, .gel-image-box .image-hover img { -webkit-transition: all 0.3s; transition: all 0.3s; } .gel-image-box .image-hover .g5core__lazy-image:last-of-type, .gel-image-box .image-hover img:last-of-type { position: absolute; top: 0; left: 0; opacity: 0; } .gel-image-box:hover .image-hover .g5core__lazy-image:first-of-type, .gel-image-box:hover .image-hover img:first-of-type { opacity: 0; } .gel-image-box:hover .image-hover .g5core__lazy-image:last-of-type, .gel-image-box:hover .image-hover img:last-of-type { opacity: 1; } .gel-image-box .gel-effect-bg-image { display: inline-block; } .gel-image-box .gel-image-effect:after { content: none; } .gel-image-box-style-01, .gel-image-box-style-04, .gel-image-box-style-06 { text-align: left; } .gel-image-box-style-02 { text-align: center; } .gel-image-box-style-02 .image { margin-left: auto; margin-right: auto; } .gel-image-box-style-02 .image-hover img:last-of-type { right: 0; bottom: 0; margin: auto; } .gel-image-box-style-03, .gel-image-box-style-05, .gel-image-box-style-07 { text-align: right; } .gel-image-box-style-03 .image-hover img:last-of-type, .gel-image-box-style-05 .image-hover img:last-of-type, .gel-image-box-style-07 .image-hover img:last-of-type { right: 0; left: auto; } .gel-image-box-style-01 .image, .gel-image-box-style-02 .image, .gel-image-box-style-03 .image { margin-bottom: 2rem; } .gel-image-box-style-04, .gel-image-box-style-05 { display: -ms-flexbox; display: flex; } .gel-image-box-style-04 .content-box, .gel-image-box-style-05 .content-box { -ms-flex: 1 1 auto; flex: 1 1 auto; } .gel-image-box-style-04 .image { margin-right: 1rem; } .gel-image-box-style-04.img-default .image { -ms-flex-negative: 0; flex-shrink: 0; } .gel-image-box-style-05 .image { margin-left: 1rem; } .gel-image-box-style-05.img-default .image { -ms-flex-negative: 0; flex-shrink: 0; } .gel-image-box-style-06 .top-box, .gel-image-box-style-07 .top-box { display: -ms-flexbox; display: flex; -ms-flex-align: center; align-items: center; } .gel-image-box-style-06 .top-box .image { margin: 0 1rem 1rem 0; } .gel-image-box-style-07 .top-box { -ms-flex-pack: end; justify-content: flex-end; } .gel-image-box-style-07 .top-box .image { margin: 0 0 0.75rem 1rem; } /*# sourceMappingURL=image-box.css.map */