\n
\n - ");
if (elementSettings.custom_style_list == 'hm-toc-slide-style') {
htmlul += "<".concat(elementSettings.html_tag, " class=\"hm-toc-title\">").concat(elementSettings.widget_title, "").concat(elementSettings.html_tag, ">");
} else {
htmlul += "<".concat(elementSettings.html_tag, " class=\"hm-toc-title\">").concat(elementSettings.widget_title, "").concat(elementSettings.html_tag, ">");
}
htmlul += "<".concat(settings.listWrapperTag, " class=\"hm-toc-items-inner\">");
for (var i = 0; i < this.headingsData.length; i++) {
var list = '';
var currentItemDot = this.headingsData[i];
if (level > currentItemDot.level) {
break;
}
var listItemTextClasses = settings.classes.listItemText;
if (0 === currentItemDot.level) {
// If the current list item is a top level item, give it the first level class
listItemTextClasses += " " + settings.classes.firstLevelListItem;
}
if (level === currentItemDot.level) {
list += "
- ");
if ('bullets' === elementSettings.marker_view && icon && elementSettings.custom_style_list == 'hm-toc-slide-style') {
list += "");
}
list += "").concat(currentItemDot.text, "");
list += "
";
}
htmlul += list;
}
htmlul += "".concat(settings.listWrapperTag, ">");
htmlul += " \n
";
}
return htmlul;
},
getNestedLevel: function getNestedLevel(level) {
var settings = this.getSettings(),
elementSettings = this.getElementSettings(),
icon = this.getElementSettings("icon");
var html = '';
// Open new list/nested list
html += "<" + settings.listWrapperTag + ' class="' + settings.classes.listWrapper + '">';
// for each list item, build its markup.
while (this.listItemPointer < this.headingsData.length) {
var currentItem = this.headingsData[this.listItemPointer];
var listItemTextClasses = settings.classes.listItemText;
if (0 === currentItem.level) {
// If the current list item is a top level item, give it the first level class
listItemTextClasses += " " + settings.classes.firstLevelListItem;
}
if (level > currentItem.level) {
break;
}
if (level === currentItem.level) {
html += '
';
html += '';
var liContent = '
' + currentItem.text + "";
// If list type is bullets, add the bullet icon as an
tag
if ("bullets" === elementSettings.marker_view && icon) {
liContent = '' + liContent;
}
html += liContent;
html += " ";
this.listItemPointer++;
var nextItem = this.headingsData[this.listItemPointer];
if (nextItem && level < nextItem.level) {
// If a new nested list has to be created under the current item,
// this entire method is called recursively (outside the while loop, a list wrapper is created)
html += this.getNestedLevel(nextItem.level);
}
html += "";
}
}
html += "" + settings.listWrapperTag + ">";
return html;
},
handleNoHeadingsFound: function handleNoHeadingsFound() {
var _messages = 'No headings were found on this page.';
if (elementorFrontend.isEditMode()) {
return this.elements.$tocBody.html(_messages);
}
},
collapseOnInit: function collapseOnInit() {
var $self = this;
var minimizedOn = this.getElementSettings("minimized_on"),
currentDeviceMode = elementorFrontend.getCurrentDeviceMode();
if ("" !== minimizedOn && "array" !== typeof minimizedOn) {
minimizedOn = [minimizedOn];
}
if (0 !== minimizedOn.length && "object" === _typeof(minimizedOn)) {
minimizedOn.forEach(function (value) {
if ("desktop" === value[0] && "desktop" == currentDeviceMode && $(window).width() < elementorFrontend.config.breakpoints.xxl || "tablet" === value[0] && "tablet" === currentDeviceMode && $(window).width() < elementorFrontend.config.breakpoints.lg || "mobile" === value[0] && "mobile" === currentDeviceMode && $(window).width() < elementorFrontend.config.breakpoints.md) {
$self.collapseBox();
}
});
}
},
getHeadingAnchorLink: function getHeadingAnchorLink(index, classes) {
var headingID = this.elements.$headings[index].id,
wrapperID = this.elements.$headings[index].closest('.elementor-widget').id;
var anchorLink = '';
if (headingID) {
anchorLink = headingID;
} else if (wrapperID) {
// If the heading itself has an ID, we don't want to overwrite it
anchorLink = wrapperID;
} // If there is no existing ID, use the heading text to create a semantic ID
if (headingID || wrapperID) {
jQuery(this.elements.$headings[index]).data('hasOwnID', true);
} else {
anchorLink = "".concat(classes.headingAnchor, "-").concat(index);
}
return anchorLink;
},
setHeadingsData: function setHeadingsData() {
var $this = this;
this.headingsData = [];
var classes = this.getSettings("classes");
// Create an array for simplifying TOC list creation
this.elements.$headings.each(function (index, element) {
var anchorLink = $this.getHeadingAnchorLink(index, classes);
$this.headingsData.push({
tag: +element.nodeName.slice(1),
text: element.textContent,
anchorLink: anchorLink
});
});
},
run: function run() {
var elementSettings = this.getElementSettings();
this.elements.$headings = this.getHeadings();
if (!this.elements.$headings.length) {
return this.handleNoHeadingsFound();
}
this.setHeadingsData();
if (!elementorFrontend.isEditMode()) {
this.addAnchorsBeforeHeadings();
}
this.populateTOC();
if (elementSettings.minimize_box) {
this.collapseOnInit();
}
if (elementSettings.sticky_toc_toggle) {
this.handleStickyToc();
}
if ("" !== elementSettings.scroll_offset.size) {
this.setOffset();
}
},
expandBox: function expandBox() {
var boxHeight = this.getCurrentDeviceSetting("min_height");
this.$element.removeClass(this.getSettings("classes.collapsed"));
this.elements.$tocBody.slideDown();
// return container to the full height in case a min-height is defined by the user
this.elements.$widgetContainer.css("min-height", boxHeight.size + boxHeight.unit);
},
collapseBox: function collapseBox() {
this.$element.addClass(this.getSettings("classes.collapsed"));
this.elements.$tocBody.slideUp();
// close container in case a min-height is defined by the user
this.elements.$widgetContainer.css("min-height", "0px");
},
onInit: function onInit() {
var $self = this;
this.initElements();
this.bindEvents();
jQuery(document).ready(function () {
$self.run();
});
},
onListItemClick: function onListItemClick(event) {
var $self = this;
this.itemClicked = true;
setTimeout(function () {
return $self.itemClicked = false;
}, 2000);
var $clickedItem = jQuery(event.target),
$list = $clickedItem.parent().next(),
collapseNestedList = this.getElementSettings("collapse_subitems");
if ("SPAN" == $clickedItem[0].tagName && 'yes' == this.getElementSettings("custom_style")) {
$clickedItem = jQuery(event.currentTarget);
}
var listIsActive = void 0;
if (collapseNestedList && $clickedItem.hasClass(this.getSettings("classes.firstLevelListItem"))) {
if ($list.is(":visible")) {
listIsActive = true;
}
}
this.activateItem($clickedItem);
if (collapseNestedList && listIsActive) {
$list.slideUp();
}
},
handleStickyToc: function handleStickyToc() {
var elementSettings = this.getElementSettings();
var currentDeviceMode = elementorFrontend.getCurrentDeviceMode();
var $devices = elementSettings.sticky_toc_disable_on;
var target = this.getID();
var type = elementSettings.sticky_toc_type;
if ("in-place" === type) {
var parentWidth = target.parent().parent().outerWidth();
target.css("width", parentWidth);
} else if ("custom-position" === type) {
var parentWidth = target.parent().parent().outerWidth();
target.css("width", parentWidth);
}
if (-1 == $.inArray(currentDeviceMode, $devices)) {
target.removeClass('floating-toc');
$(window).off('scroll', this.stickyScroll);
return;
}
$(window).on('scroll', $.proxy(this.stickyScroll, this));
},
stickyScroll: function stickyScroll() {
var target = this.getID();
var elementSettings = this.getElementSettings();
var item = document.querySelector(".ha-table-of-contents");
var bound, tocHeight;
bound = item.getBoundingClientRect();
tocHeight = target.outerHeight();
if (target.hasClass("floating-toc")) {
target.parent().parent().css("height", tocHeight);
} else {
target.parent().parent().css("height", '');
}
if (bound.y + bound.height / 2 < 0) {
if (target.hasClass('floating-toc')) {
return;
}
target.addClass("floating-toc");
} else {
if (!target.hasClass('floating-toc')) {
return;
}
target.removeClass("floating-toc");
}
},
scrollToTop: function scrollToTop() {
var $self = this;
var scrollTo = this.getElementSettings("scroll_to_top_option");
if ("window_top" === scrollTo) {
$("html, body").animate({
scrollTop: 0
}, 250);
} else {
var $id = this.getID().parents('.ha-table-of-contents');
$("html, body").animate({
scrollTop: $($id).offset().top - 60
}, 1000);
}
},
getID: function getID() {
return $("#ha-toc-" + this.$element[0].attributes["data-id"].nodeValue);
}
});
elementorFrontend.hooks.addAction("frontend/element_ready/ha-table-of-contents.default", function ($scope) {
elementorFrontend.elementsHandler.addHandler(HaTOC, {
$element: $scope
});
});
//creativeSlider
var HaCreativeSlider = function HaCreativeSlider($scope) {
var $rcContainer = $scope.find('.ha-creative-slider-container');
if ($rcContainer) {
// var $haCsWidth = window.innerWidth;
var $haCsWidth = $(window).width();
var $haCsNextSelector = parseInt($haCsWidth) <= 767 ? $rcContainer.find('.ha_cs_mobile_next') : $rcContainer.find('.ha_cc_next_wrapper');
var $haCsPrevSelector = parseInt($haCsWidth) <= 767 ? $rcContainer.find('.ha_cs_mobile_prev') : $rcContainer.find('.ha_cc_prev_wrapper');
var csTextItemDelay = parseInt($haCsWidth) <= 767 ? 40 : 30;
var csImageItemDelay = 40;
var csPrevItemsOwl = $rcContainer.find('.ha_cc_prev_items');
var csTextItemsOwl = $rcContainer.find('.ha_cc_text_items');
var csImageItemsOwl = $rcContainer.find('.ha_cc_inner_image_items');
var csNextItemsOwl = $rcContainer.find('.ha_cc_next_items');
var csPrevNavOptions = {
loop: true,
dots: false,
nav: false,
items: 1,
autoplay: false,
smartSpeed: 500,
touchDrag: false,
mouseDrag: false,
rewind: true,
startPosition: -1
};
var csNextNavOptions = {
loop: true,
dots: false,
nav: false,
items: 1,
autoplay: false,
smartSpeed: 500,
touchDrag: false,
mouseDrag: false,
rewind: true,
startPosition: 1
};
var csGeneralOptions = {
loop: true,
dots: false,
nav: false,
items: 1,
autoplay: false,
smartSpeed: 1000,
touchDrag: false,
mouseDrag: false,
singleItem: true,
animateOut: 'fadeOutRight',
animateIn: 'fadeInLeft',
rewind: true
};
}
csPrevItemsOwl.owlCarousel(csPrevNavOptions);
csNextItemsOwl.owlCarousel(csNextNavOptions);
csTextItemsOwl.owlCarousel(csGeneralOptions);
csImageItemsOwl.owlCarousel(csGeneralOptions);
window.parent.addEventListener('message', function (e) {
if ('ha_cs_reinit' == e.data) {
csTextItemsOwl.owlCarousel('refresh');
csImageItemsOwl.owlCarousel('refresh');
}
});
$($haCsPrevSelector).click(function (e) {
e.preventDefault();
csPrevItemsOwl.trigger('prev.owl.carousel');
csNextItemsOwl.trigger('prev.owl.carousel');
setTimeout(function () {
csTextItemsOwl.trigger('prev.owl.carousel');
}, csTextItemDelay);
setTimeout(function () {
csImageItemsOwl.trigger('prev.owl.carousel');
}, csTextItemDelay + csImageItemDelay);
});
$($haCsNextSelector).click(function (e) {
e.preventDefault();
csPrevItemsOwl.trigger('next.owl.carousel');
csNextItemsOwl.trigger('next.owl.carousel');
setTimeout(function () {
csTextItemsOwl.trigger('next.owl.carousel');
}, csTextItemDelay);
setTimeout(function () {
csImageItemsOwl.trigger('next.owl.carousel');
}, csTextItemDelay + csImageItemDelay);
});
};
elementorFrontend.hooks.addAction('frontend/element_ready/ha-creative-slider.default', HaCreativeSlider);
//Advanced Comparison Table
var AdvancedComparisonTable = function AdvancedComparisonTable($scope) {
var nav = $scope.find('ul.ha-adct-table-responsive-nav');
var rows = $scope.find(".ha-adct-row, .ha-adct-child-row");
var collapse = $scope.find(".ha-adct-collapse-icon-wrap");
// console.log(rows);
var pos = 2;
nav.on("click", "li", function () {
var pos = $(this).index() + 2;
// console.log( pos );
rows.find(".ha-adct-column:not(:eq(0))").hide();
$scope.find(".ha-adct-column:nth-child(" + pos + ")").css("display", "flex");
nav.find("li").removeClass("active");
$(this).addClass("active");
});
collapse.on("click", function () {
var row_wrap = $(this).closest('.ha-adct-row-wrap');
// console.log( row_wrap );
$(this).toggleClass('open');
row_wrap.find('.ha-adct-child-row-wrap').slideToggle("slow");
// row_wrap.find('.ha-adct-child-row-wrap .ha-adct-column').slideToggle("slow");
// $('.ha-adct-heading').slideToggle("slow");
});
// Initialize the media query
//var mediaQuery = window.matchMedia("(min-width: 767px)");
// console.log(mediaQuery);
var mode = $('body').attr('data-elementor-device-mode');
var w_width = $(window).outerWidth(true);
function hideAndShowColumn(mode) {
if ('tablet' == mode || 'mobile_extra' == mode || 'mobile' == mode) {
rows.find(".ha-adct-column:not(:eq(0))").hide();
$scope.find(".ha-adct-column:nth-child(" + pos + ")").css("display", "flex");
} else {
rows.find(".ha-adct-column").removeAttr("style");
}
}
;
hideAndShowColumn(mode);
$(window).on('resize', function (e) {
var mode = $('body').attr('data-elementor-device-mode');
var w_resize_width = $(window).outerWidth(true);
if (w_width != w_resize_width) {
w_width = w_resize_width;
hideAndShowColumn(mode);
}
});
};
elementorFrontend.hooks.addAction('frontend/element_ready/ha-advanced-comparison-table.default', AdvancedComparisonTable);
//Title Tips
var TitleTips = function TitleTips($scope) {
var element = $scope.find('.ha-flip-box-inner');
var items = $scope.find('.ha-title-tips-hover li > a');
var rect = $scope.find('.ha-title-tips-hover')[0].getBoundingClientRect();
if ($scope.find('.ha-title-tips-hover').hasClass('swap')) {
var wrapper = $scope.find('.ha-title-tips-hover');
var anchor_item = $scope.find('.ha-title-tips-hover-item.have-image');
var figure = $scope.find('figure');
var Work = {
_register: {
hover: {
active: !1,
currentX: 0,
currentY: 0,
targetX: 0,
targetY: 0
}
},
_init: function _init() {
this._base(), this._events();
},
_base: function _base() {
figure.find('img').each(function () {
var item = $(this);
// console.log( item.height() );
item.attr("height_ratio", item.height());
});
requestAnimationFrame(function () {
Work._interaction.hover.move_image();
});
},
_events: function _events() {
anchor_item.on("mouseenter", "a", function () {
Work._interaction.hover.image($(this));
});
anchor_item.on("mouseleave", "a", function () {
Work._interaction.hover.leave();
});
anchor_item.on("mousemove", "a", function (e) {
Work._interaction.hover.move(e);
});
},
_functions: {
round: function round(e, t) {
var t = void 0 === t ? 100 : Math.pow(10, t);
return Math.round(e * t) / t;
}
},
_interaction: {
hover: {
image: function image(e) {
e.parents("li").addClass("active").removeClass("not-selected").siblings().removeClass("active").addClass("not-selected");
if (!Work._register.hover.visible && (Work._register.hover.currentX || Work._register.hover.currentY)) {
Work._register.hover.visible = !0;
figure.addClass("visible");
}
// $img = $('#work-hover img[project="' + e.attr("href") + '"]');
var $img = figure.find('img[data-filter-id="' + e.attr("data-filter-id") + '"]');
$img.addClass("active").siblings(".active").removeClass("active").addClass("was-active");
// console.log($img);
// console.log($img.height());
// figure.get()[0].style.setProperty("--height_ratio", ( Math.floor(Math.random() * (500 - 150 + 1) ) + 150 ) + 'px' );
// figure.get()[0].style.setProperty("--height_ratio", ( $img.height() ) + 'px' );
figure.get()[0].style.setProperty("--height_ratio", $img.attr("height_ratio") + 'px');
// .style.setProperty("--height_ratio", $img.attr("height_ratio")),
clearTimeout(figure.prop("leave"));
clearTimeout(figure.prop("animate"));
figure.addClass("animate").prop("animate", setTimeout(function () {
figure.removeClass("animate").find("img.was-active").removeClass("was-active");
}, 400));
},
leave: function leave() {
anchor_item.removeClass("active not-selected");
clearTimeout(figure.prop("leave"));
clearTimeout(figure.prop("active"));
figure.prop("leave", setTimeout(function () {
// Work._register.hover.visible = !1;
Work._register.hover.visible = false;
figure.removeClass("visible");
}, 1));
figure.prop("active", setTimeout(function () {
Work._register.hover.active = !1;
}, 2e3));
},
move: function move(e) {
var currentReact = e.currentTarget.getBoundingClientRect();
var currentWrapperReact = wrapper.get()[0].getBoundingClientRect();
var targetMiddle = currentReact.top + currentReact.height / 2;
Work._register.hover.active || (Work._register.hover.active = !0, requestAnimationFrame(function () {
Work._interaction.hover.move_image();
}), clearTimeout(figure.prop("active")), figure.prop("active", setTimeout(function () {
Work._register.hover.active = !1;
}, 2e3)));
// var react = $("#work-projects").get()[0].getBoundingClientRect();
var s = 0;
var targetItem = anchor_item.find('a').offset().left - 40;
if ($scope.hasClass('ha_title_tips_img_pos--left')) {
// Work._register.hover.targetX = currentReact.left - figure.width(); // for left side
Work._register.hover.targetX = -(figure.width() + 10); // for left side
} else {
Work._register.hover.targetX = currentReact.width + 10; // for right side
}
// Work._register.hover.targetY = targetMiddle;
Work._register.hover.targetY = e.pageY - (currentWrapperReact.top + window.scrollY);
if (!Work._register.hover.visible && (Work._register.hover.currentX || Work._register.hover.currentY)) {
Work._register.hover.visible = true;
figure.addClass("visible");
}
},
move_image: function move_image() {
if (figure.length) {
Work._register.hover.currentX += (Work._register.hover.targetX - Work._register.hover.currentX) * 0.09;
Work._register.hover.currentY += (Work._register.hover.targetY - Work._register.hover.currentY) * 0.09;
figure.get()[0].style.transform = " translate3d(\n\t\t\t\t\t\t\t\t\t\t".concat(Work._functions.round(Work._register.hover.currentX), "px,\n\t\t\t\t\t\t\t\t\t\t").concat(Work._functions.round(Work._register.hover.currentY), "px, 0px\n\t\t\t\t\t\t\t\t\t)");
if (Work._register.hover.active) {
requestAnimationFrame(function () {
Work._interaction.hover.move_image();
});
}
}
}
}
}
};
Work._init();
}
};
elementorFrontend.hooks.addAction('frontend/element_ready/ha-title-tips.default', TitleTips);
});
})(jQuery, Happy, window);