(function (win, doc, $, util) {
'use strict';
var KEYENCE = {};
var kpi_openedModalWindow = '';
var SMALL_SCREEN = 969;
var smallScreenMql = win.matchMedia('only screen and (max-width: ' + SMALL_SCREEN + 'px)');
if ($ === undefined) {
return;
}
KEYENCE.init = function () {
var self = this;
self.getElem = {
docElement: doc.documentElement ? doc.documentElement : doc.body,
spMenu: doc.getElementById('js-setMenu'),
spPhoneMenu: doc.getElementById('js-setPhoneMenu'),
spMenuTarget: doc.getElementById('js-setMenu-target'),
spSearchTarget: doc.getElementById('js-setMenu-searchTarget'),
spPhoneTarget: doc.getElementById('js-setMenu-phoneTarget'),
spMenuBtn: doc.getElementById('js-setMenu-button'),
spSearchBtn: doc.getElementById('js-setMenu-searchButton'),
spPhoneBtn: doc.getElementById('js-setMenu-phoneButton'),
changeLang: doc.getElementById('js-changeLanguage'),
changeLangTrigger: doc.getElementById('js-changeLanguage-trigger'),
changeLangTarget: doc.getElementById('js-changeLanguage-target'),
focusOrderTrigger: doc.getElementById('js-ctrlFocusOrder'),
divideMenu: doc.getElementById('js-divideMenu'),
megaMenu: doc.querySelectorAll('.js-megaMenu'),
slideNavTarget: doc.querySelectorAll('.js-slideNavigation-target'),
slideNavPrevTrigger: doc.querySelectorAll('.js-slideNavigation-previousTrigger'),
slideNavNextTrigger: doc.querySelectorAll('.js-slideNavigation-nextTrigger'),
menuConversionGroup: doc.querySelector('.js-menuConversion-group'),
menuConversion: doc.querySelector('.js-menuConversion'),
categoryHeader: doc.querySelector('.js-categoryHeader'),
carousel: doc.querySelector('.js-setHomeCarousel'),
changeCategoryTarget: doc.querySelectorAll('.js-setChangeCategory-target'),
changeCategoryTrigger: doc.querySelectorAll('.js-setChangeCategory-trigger'),
adjustHeight: doc.querySelectorAll('.js-setHomeAdjustHeight'),
toggleCart: doc.querySelector('.js-toggleCart'),
richSurvey: doc.getElementById('js-setRichSurvey')
};
self.CONFIG = {
FOCUSABLE: 'a, area, [tabindex], input, button, select, option, textarea, output, summary, video, audio, object, embed',
SHOW_CLASS: 'is-show',
MENU_SHOW_CLASS: 'is-menu-show',
MEGA_MENU_SHOW_CLASS: 'is-megaMenu-show',
SUGGEST_SHOW_CLASS: 'is-suggest-show',
HIDE_CLASS: 'is-hide',
ACTIVE_CLASS: 'is-active',
CURRENT_CLASS: 'is-current',
FIXED_CLASS: 'is-fixed',
STOP_CLASS: 'is-stop',
ARIA_EXPANDED: 'aria-expanded',
ARIA_CONTROLS: 'aria-controls'
};
self.polyfill.setChildNodeRemove();
self.polyfill.setNodeListForEach();
self.polyfill.setElemClosest();
};
KEYENCE.ctrlHeader = function () {
var self = this;
var header = doc.getElementById('js-controlHeader');
var seriesHeader = doc.querySelector('[data-series-header-target="sticky"]');
var observationTarget = doc.createElement('div');
var fn = {};
var observer = null;
var intersectionClassName = 'is-intersection';
var searchHiddenClassName = 'IsHidden';
var suggestTarget = doc.querySelector('.JSHeaderSuggest .JSSearchSuggestTarget');
var delayVal = 100;
var resizeTimer = null;
if (!header) {
return;
}
if (seriesHeader) {
return;
}
fn.hasIntersectionObserver = function () {
return ('IntersectionObserver' in win && 'IntersectionObserverEntry' in win);
};
fn.init = function () {
if (fn.hasIntersectionObserver()) {
observationTarget.dataset.observationTarget = 'header';
observationTarget.style.cssText =
'position: absolute; bottom: 0; width: 100%; height: 1px; z-index: 10000;';
header.insertBefore(observationTarget, header.firstChild);
observer = new IntersectionObserver(fn.handleIntersect);
observer.observe(observationTarget);
}
};
fn.adjustHeaderHeight = function () {
header.style.height = self.getElem.spMenu.offsetHeight + 'px';
};
fn.passIntersection = function () {
if (self.getElem.spSearchTarget) {
self.getElem.spSearchTarget.classList.add(intersectionClassName);
setTimeout(function () {
self.getElem.spSearchTarget.classList.remove(intersectionClassName);
}, delayVal);
}
};
fn.fixHeader = function () {
header.classList.add(self.CONFIG.FIXED_CLASS);
setTimeout(function () {
header.classList.add(self.CONFIG.SHOW_CLASS);
}, delayVal);
if (self.getElem.spSearchTarget && self.getElem.spSearchBtn) {
if (self.getElem.spSearchTarget.classList.contains(self.CONFIG.SHOW_CLASS)) {
self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, true);
} else {
self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
}
self.getElem.spSearchBtn.disabled = false;
}
fn.passIntersection();
};
fn.releaseHeader = function () {
header.classList.remove(self.CONFIG.FIXED_CLASS);
setTimeout(function () {
header.classList.remove(self.CONFIG.SHOW_CLASS);
}, delayVal);
if (!smallScreenMql.matches && self.getElem.spSearchBtn && self.getElem.spSearchTarget) {
self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, true);
self.getElem.spSearchBtn.disabled = true;
self.getElem.spSearchTarget.classList.remove(self.CONFIG.HIDE_CLASS);
}
fn.passIntersection();
};
fn.handleResize = function () {
if (resizeTimer !== null) {
clearTimeout(resizeTimer);
}
resizeTimer = setTimeout(function () {
fn.adjustHeaderHeight();
if (!fn.hasIntersectionObserver()) {
fn.runForLegacy();
}
}, delayVal);
};
fn.handleIntersect = function (entries) {
entries.forEach(function (entry) {
if (entry.isIntersecting) {
fn.releaseHeader();
fn.adjustHeaderHeight();
} else {
fn.fixHeader();
fn.adjustHeaderHeight();
}
});
};
fn.runForLegacy = function () {
if (win.pageYOffset > Math.round(header.getBoundingClientRect().top)) {
fn.fixHeader();
} else {
fn.releaseHeader();
}
fn.adjustHeaderHeight();
};
fn.runForEachScreen = function () {
if (smallScreenMql.matches) {
if (!fn.hasIntersectionObserver()) {
win.removeEventListener('load', fn.runForLegacy);
win.removeEventListener('scroll', fn.runForLegacy);
}
if (self.getElem.spSearchTarget && self.getElem.spSearchBtn) {
self.getElem.spSearchBtn.disabled = false;
if (self.getElem.spSearchTarget.classList.contains(self.CONFIG.SHOW_CLASS)) {
self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, true);
} else {
self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
}
}
if (suggestTarget) {
doc.body.classList.remove(self.CONFIG.SUGGEST_SHOW_CLASS);
suggestTarget.classList.add(searchHiddenClassName);
}
} else {
header.style.height = 'auto';
if (!fn.hasIntersectionObserver()) {
win.addEventListener('load', fn.runForLegacy);
win.addEventListener('scroll', fn.runForLegacy);
}
if (self.getElem.spSearchBtn) {
setTimeout(function () {
if (header.classList.contains(self.CONFIG.FIXED_CLASS)) {
self.getElem.spSearchBtn.disabled = false;
self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
} else {
self.getElem.spSearchBtn.disabled = true;
self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, true);
}
}, delayVal);
}
if (suggestTarget) {
doc.body.classList.remove(self.CONFIG.SUGGEST_SHOW_CLASS);
suggestTarget.classList.add(searchHiddenClassName);
}
}
};
fn.init();
fn.runForEachScreen();
smallScreenMql.addListener(fn.runForEachScreen);
win.addEventListener('resize', fn.handleResize);
};
KEYENCE.setMenu = function () {
var self = this;
var isAnimated = false;
var toggleMenu = null;
var transitionEndMenu = null;
var transitionEndSearch = null;
var transitionEndPhone = null;
var runKeydown = null;
var runForEachScreen = null;
var body = null;
if (!self.getElem.spMenu) {
return;
}
body = doc.body;
if (doc.getElementById('js-controlHeader')) {
body.dataset.header = 'full';
}
toggleMenu = function (e) {
var thisTrigger = e.currentTarget;
e.preventDefault();
if (!isAnimated) {
isAnimated = true;
if (smallScreenMql.matches) {
if (self.getElem.docElement.scrollTop) {
self.getElem.docElement.scrollTop = 0;
}
if (doc.body.scrollTop) {
doc.body.scrollTop = 0;
}
}
if (this.otherTargets.length) {
this.otherTargets.forEach((target) => {
if (target) {
target.classList.remove(self.CONFIG.SHOW_CLASS);
}
});
}
if (this.triggers.length) {
this.triggers.forEach((trigger) => {
if (trigger) {
trigger.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
}
});
}
if (this.target.classList.contains(self.CONFIG.SHOW_CLASS)) {
thisTrigger.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
this.target.classList.remove(self.CONFIG.SHOW_CLASS);
this.target.classList.add(self.CONFIG.HIDE_CLASS);
body.classList.remove(self.CONFIG.MENU_SHOW_CLASS);
} else {
thisTrigger.setAttribute(self.CONFIG.ARIA_EXPANDED, true);
this.target.classList.add(self.CONFIG.SHOW_CLASS);
this.target.classList.remove(self.CONFIG.HIDE_CLASS);
body.classList.add(self.CONFIG.MENU_SHOW_CLASS);
if (self.getElem.slideNavTarget.length) {
self.getElem.slideNavTarget.forEach(function (items) {
items.classList.remove(self.CONFIG.SHOW_CLASS);
});
}
}
}
};
runKeydown = function (e) {
if (e.key === 'Esc' || e.key === 'Escape') {
e.preventDefault();
if (!this.classList.contains(self.CONFIG.MENU_SHOW_CLASS)) {
return;
}
this.classList.remove(self.CONFIG.MENU_SHOW_CLASS);
if (self.getElem.spMenuBtn && self.getElem.spMenuTarget) {
self.getElem.spMenuBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
self.getElem.spMenuTarget.classList.remove(self.CONFIG.SHOW_CLASS);
self.getElem.spMenuTarget.classList.add(self.CONFIG.HIDE_CLASS);
}
if (self.getElem.spSearchBtn && self.getElem.spSearchTarget) {
self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
self.getElem.spSearchTarget.classList.remove(self.CONFIG.SHOW_CLASS);
self.getElem.spSearchTarget.classList.add(self.CONFIG.HIDE_CLASS);
}
if (self.getElem.spPhoneBtn && self.getElem.spPhoneTarget) {
self.getElem.spPhoneBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
self.getElem.spPhoneTarget.classList.remove(self.CONFIG.SHOW_CLASS);
self.getElem.spPhoneTarget.classList.add(self.CONFIG.HIDE_CLASS);
}
}
};
transitionEndMenu = function () {
isAnimated = false;
if (!body.classList.contains(self.CONFIG.MENU_SHOW_CLASS)) {
self.getElem.spMenuTarget.removeAttribute('style');
$(self.getElem.spMenuTarget).find(self.CONFIG.FOCUSABLE).removeAttr('tabindex');
}
};
transitionEndSearch = function () {
isAnimated = false;
self.getElem.spMenuTarget.removeAttribute('style');
$(self.getElem.spMenuTarget).find(self.CONFIG.FOCUSABLE).removeAttr('tabindex');
if (!smallScreenMql.matches && self.getElem.spSearchTarget &&
self.getElem.spSearchTarget.classList.contains(self.CONFIG.SHOW_CLASS)
) {
if (self.getElem.spSearchTarget.querySelector('.JSSearchSuggestInput')) {
self.getElem.spSearchTarget.querySelector('.JSSearchSuggestInput').focus();
}
}
};
transitionEndPhone = function () {
isAnimated = false;
if (!body.classList.contains(self.CONFIG.MENU_SHOW_CLASS)) {
self.getElem.spPhoneTarget.removeAttribute('style');
$(self.getElem.spPhoneTarget).find(self.CONFIG.FOCUSABLE).removeAttr('tabindex');
}
};
if (self.getElem.spMenuBtn && self.getElem.spMenuTarget) {
var triggers = [self.getElem.spSearchBtn, self.getElem.spPhoneBtn];
var otherTargets = [self.getElem.spSearchTarget, self.getElem.spPhoneTarget];
self.getElem.spMenuBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
self.getElem.spMenuBtn.setAttribute(self.CONFIG.ARIA_CONTROLS, self.getElem.spMenuTarget.id);
self.getElem.spMenuBtn.addEventListener('click', {
handleEvent: toggleMenu,
triggers: triggers,
target: self.getElem.spMenuTarget,
otherTargets: otherTargets
}, false);
}
if (self.getElem.spSearchBtn && self.getElem.spSearchTarget) {
var triggers = [self.getElem.spMenuBtn, self.getElem.spPhoneBtn];
var otherTargets = [self.getElem.spMenuTarget, self.getElem.spPhoneTarget];
self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_CONTROLS, self.getElem.spSearchTarget.id);
self.getElem.spSearchBtn.addEventListener('click', {
handleEvent: toggleMenu,
triggers: triggers,
target: self.getElem.spSearchTarget,
otherTargets: otherTargets
}, false);
}
if (self.getElem.spPhoneBtn && self.getElem.spPhoneTarget) {
var triggers = [self.getElem.spMenuBtn, self.getElem.spSearchBtn];
var otherTargets = [self.getElem.spMenuTarget, self.getElem.spSearchTarget];
self.getElem.spPhoneBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
self.getElem.spPhoneBtn.setAttribute(self.CONFIG.ARIA_CONTROLS, self.getElem.spPhoneTarget.id);
self.getElem.spPhoneBtn.addEventListener('click', {
handleEvent: toggleMenu,
triggers: triggers,
target: self.getElem.spPhoneTarget,
otherTargets: otherTargets
}, false);
}
self.getElem.spMenuBtn.children[0].addEventListener('transitionend', transitionEndMenu, false);
self.getElem.spSearchBtn.addEventListener('transitionend', transitionEndSearch, false);
if (self.getElem.spPhoneBtn) {
self.getElem.spPhoneBtn.addEventListener('transitionend', transitionEndPhone, false);
}
runForEachScreen = function () {
body.classList.add('is-menu-initializing');
setTimeout(function () {
body.classList.remove('is-menu-initializing');
}, 200);
if (smallScreenMql.matches) {
body.addEventListener('keydown', runKeydown, false);
body.classList.remove(self.CONFIG.MENU_SHOW_CLASS);
doc.querySelector('.JSHeaderSuggest .JSSearchSuggestInput').blur();
if (self.getElem.spMenuBtn && self.getElem.spMenuTarget) {
self.getElem.spMenuTarget.classList.add(self.CONFIG.HIDE_CLASS);
self.getElem.spMenuTarget.classList.remove(self.CONFIG.SHOW_CLASS);
self.getElem.spMenuBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
}
if (self.getElem.spSearchBtn && self.getElem.spSearchTarget) {
self.getElem.spSearchTarget.classList.add(self.CONFIG.HIDE_CLASS);
self.getElem.spSearchTarget.classList.remove(self.CONFIG.SHOW_CLASS);
self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
}
if (self.getElem.spPhoneBtn && self.getElem.spPhoneTarget) {
self.getElem.spPhoneTarget.classList.add(self.CONFIG.HIDE_CLASS);
self.getElem.spPhoneTarget.classList.remove(self.CONFIG.SHOW_CLASS);
self.getElem.spPhoneBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
}
} else {
body.removeEventListener('keydown', runKeydown, false);
if (self.getElem.spMenuBtn && self.getElem.spMenuTarget) {
self.getElem.spMenuTarget.classList.remove(self.CONFIG.HIDE_CLASS);
}
if (self.getElem.spSearchBtn && self.getElem.spSearchTarget) {
self.getElem.spSearchTarget.classList.remove(self.CONFIG.HIDE_CLASS);
self.getElem.spSearchTarget.classList.remove(self.CONFIG.SHOW_CLASS);
self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
if (doc.querySelector('[data-series-header-target="sticky"]')) {
self.getElem.spSearchBtn.disabled = false;
self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
self.getElem.spSearchTarget.classList.add(self.CONFIG.HIDE_CLASS);
body.classList.remove(self.CONFIG.MENU_SHOW_CLASS);
}
}
if (self.getElem.spPhoneBtn && self.getElem.spPhoneTarget) {
self.getElem.spPhoneTarget.classList.remove(self.CONFIG.HIDE_CLASS);
self.getElem.spPhoneTarget.classList.remove(self.CONFIG.SHOW_CLASS);
self.getElem.spPhoneBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
}
}
};
runForEachScreen();
smallScreenMql.addListener(runForEachScreen);
};
KEYENCE.setPhoneMenu = function () {
var self = this;
var isAnimated = false;
var togglePhoneMenu = null;
var transitionEndPhone = null;
var runForEachScreen = null;
var runKeydown = null;
var body = doc.body;
if (!self.getElem.spPhoneMenu || !self.getElem.spPhoneBtn || !self.getElem.spPhoneTarget) {
return;
}
togglePhoneMenu = function (e) {
var thisTrigger = e.currentTarget;
e.preventDefault();
if (!isAnimated) {
isAnimated = true;
if (this.phoneTarget.classList.contains(self.CONFIG.SHOW_CLASS)) {
thisTrigger.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
this.phoneTarget.classList.remove(self.CONFIG.SHOW_CLASS);
this.phoneTarget.classList.add(self.CONFIG.HIDE_CLASS);
body.classList.remove(self.CONFIG.MENU_SHOW_CLASS);
} else {
thisTrigger.setAttribute(self.CONFIG.ARIA_EXPANDED, true);
this.phoneTarget.classList.add(self.CONFIG.SHOW_CLASS);
this.phoneTarget.classList.remove(self.CONFIG.HIDE_CLASS);
body.classList.add(self.CONFIG.MENU_SHOW_CLASS);
}
}
};
runKeydown = function (e) {
if (e.key === 'Esc' || e.key === 'Escape') {
e.preventDefault();
if (!this.classList.contains(self.CONFIG.MENU_SHOW_CLASS)) {
return;
}
this.classList.remove(self.CONFIG.MENU_SHOW_CLASS);
self.getElem.spPhoneBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
self.getElem.spPhoneTarget.classList.remove(self.CONFIG.SHOW_CLASS);
self.getElem.spPhoneTarget.classList.add(self.CONFIG.HIDE_CLASS);
}
};
transitionEndPhone = function () {
isAnimated = false;
};
self.getElem.spPhoneTarget.classList.add(self.CONFIG.HIDE_CLASS);
self.getElem.spPhoneBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
self.getElem.spPhoneBtn.setAttribute(self.CONFIG.ARIA_CONTROLS, self.getElem.spPhoneTarget.id);
self.getElem.spPhoneBtn.addEventListener('click', {
handleEvent: togglePhoneMenu,
phoneTrigger: self.getElem.spPhoneBtn,
phoneTarget: self.getElem.spPhoneTarget
}, false);
self.getElem.spPhoneBtn.addEventListener('transitionend', transitionEndPhone, false);
runForEachScreen = function () {
body.classList.remove(self.CONFIG.MENU_SHOW_CLASS);
self.getElem.spPhoneBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
self.getElem.spPhoneTarget.classList.remove(self.CONFIG.SHOW_CLASS);
if (smallScreenMql.matches) {
body.addEventListener('keydown', runKeydown, false);
self.getElem.spPhoneTarget.classList.add(self.CONFIG.HIDE_CLASS);
} else {
body.removeEventListener('keydown', runKeydown, false);
self.getElem.spPhoneTarget.classList.remove(self.CONFIG.HIDE_CLASS);
}
};
runForEachScreen();
smallScreenMql.addListener(runForEachScreen);
};
KEYENCE.setMegaMenu = function () {
var self = this;
var rootSelector = '.js-megaMenu';
var targetSelector = null;
var triggerSelector = null;
var overlayName = 'js-menu-overlay';
var targets = null;
var triggers = null;
var fn = {};
var handlers = {};
var isAnimated = false;
var slideNavTargetSelector = '.js-slideNavigation-target';
var arrPageX = [];
var arrPageY = [];
var resizeTimer = null;
var delayVal = 100;
if (!self.getElem.megaMenu.length) {
return;
}
targetSelector = rootSelector + '-target';
triggerSelector = rootSelector + '-trigger';
targets = doc.querySelectorAll(targetSelector);
triggers = doc.querySelectorAll(triggerSelector);
if (!targets.length || !triggers.length) {
return;
}
fn.hideMenu = function (target) {
if (target && target.nodeType === 1 && target.classList.contains(self.CONFIG.SHOW_CLASS)) {
target.classList.remove(self.CONFIG.SHOW_CLASS);
target.classList.add(self.CONFIG.HIDE_CLASS);
target.removeAttribute('style');
}
};
fn.hideSuggest = function () {
doc.body.classList.remove(self.CONFIG.SUGGEST_SHOW_CLASS);
doc.querySelector('.JSHeaderSuggest .JSSearchSuggestTarget').classList.add('IsHidden');
};
fn.showMenu = function (target) {
if (target && target.nodeType === 1) {
target.classList.add(self.CONFIG.SHOW_CLASS);
target.classList.remove(self.CONFIG.HIDE_CLASS);
doc.body.classList.add(self.CONFIG.MEGA_MENU_SHOW_CLASS);
if (doc.getElementById(overlayName)) {
doc.getElementById(overlayName).setAttribute('data-owner', 'megaMenu');
}
}
};
fn.adjustTargetHeight = function (target) {
if (target && target.nodeType === 1 && target.children[0]) {
if (target.offsetHeight < target.children[0].offsetHeight) {
target.style.height = target.children[0].offsetHeight + 'px';
} else {
target.style.height = target.offsetHeight + 'px';
}
}
};
fn.activateTrigger = function (trigger) {
if (trigger && trigger.nodeType === 1) {
trigger.classList.add(self.CONFIG.ACTIVE_CLASS);
}
};
fn.deactivateTrigger = function (trigger) {
if (trigger && trigger.nodeType === 1) {
trigger.classList.remove(self.CONFIG.ACTIVE_CLASS);
}
};
fn.removeMenuShowClass = function () {
doc.body.classList.remove(self.CONFIG.MEGA_MENU_SHOW_CLASS);
};
handlers.onForcusinForFocusable = function (e) {
if (!e.target.closest(rootSelector)) {
targets.forEach(function (items) {
fn.hideMenu(items);
});
triggers.forEach(function (items) {
fn.deactivateTrigger(items);
});
fn.removeMenuShowClass();
}
};
handlers.onMouseenterForTrigger = function (e) {
var thisTrigger = e.currentTarget;
e.preventDefault();
triggers.forEach(function (items) {
fn.deactivateTrigger(items);
});
targets.forEach(function (items) {
fn.hideMenu(items);
});
fn.showMenu(this.target);
fn.adjustTargetHeight(this.target);
fn.activateTrigger(thisTrigger);
doc.activeElement.blur();
fn.hideSuggest();
};
handlers.onForcusinForTrigger = function (e) {
var thisTrigger = e.currentTarget;
triggers.forEach(function (items) {
fn.deactivateTrigger(items);
});
targets.forEach(function (items) {
fn.hideMenu(items);
});
fn.showMenu(this.target);
fn.adjustTargetHeight(this.target);
fn.activateTrigger(thisTrigger);
fn.hideSuggest();
};
handlers.onTouchstartForTrigger = function (e) {
arrPageX.length = 0;
arrPageY.length = 0;
arrPageX.push(e.touches[0].pageX);
arrPageY.push(e.touches[0].pageY);
if (doc.querySelectorAll('.JSSearchSuggestTarget').length) {
doc.querySelectorAll('.JSSearchSuggestTarget').forEach(function (items) {
items.classList.add('IsHidden');
});
}
};
handlers.onTouchendForTrigger = function (e) {
if (e.changedTouches[0].pageX !== arrPageX[0] || e.changedTouches[0].pageY !== arrPageY[0]) {
e.preventDefault();
}
};
handlers.onMouseleaveForTrigger = function (e) {
var thisTrigger = e.currentTarget;
fn.hideMenu(this.target);
fn.deactivateTrigger(thisTrigger);
fn.removeMenuShowClass();
};
handlers.onMouseenterForTarget = function () {
fn.showMenu(this.target);
fn.adjustTargetHeight(this.target);
fn.activateTrigger(this.trigger);
fn.hideSuggest();
};
handlers.onMouseleaveForTarget = function () {
fn.hideMenu(this.target);
fn.deactivateTrigger(this.trigger);
fn.removeMenuShowClass();
};
handlers.onFocusinForTarget = function () {
fn.showMenu(this.target);
fn.hideSuggest();
};
handlers.onTouchstartForDoc = function (e) {
arrPageX.length = 0;
arrPageY.length = 0;
arrPageX.push(e.touches[0].pageX);
arrPageY.push(e.touches[0].pageY);
};
handlers.onTouchstartCloseMegaMenu = function (e) {
if (e.changedTouches[0].pageX === arrPageX[0] || e.changedTouches[0].pageY === arrPageY[0]) {
if (!e.target.closest(rootSelector)) {
if (e.target.id === overlayName) {
e.preventDefault();
}
fn.deactivateTrigger(this.trigger);
fn.hideMenu(this.target);
fn.removeMenuShowClass();
}
}
};
handlers.resizeTarget = function () {
if (resizeTimer !== null) {
clearTimeout(resizeTimer);
}
resizeTimer = setTimeout(function () {
targets.forEach(function (items) {
if (items.classList.contains(self.CONFIG.SHOW_CLASS) && items.children[0]) {
items.style.height = items.children[0].offsetHeight + 'px';
}
});
}, delayVal);
};
handlers.slideNext = function (e) {
var $this = $(this);
if (!self.getElem.slideNavTarget.length) {
return;
}
e.preventDefault();
if (!isAnimated) {
isAnimated = true;
if (self.getElem.docElement.scrollTop) {
self.getElem.docElement.scrollTop = 0;
}
if (doc.body.scrollTop) {
doc.body.scrollTop = 0;
}
self.getElem.slideNavTarget.forEach(function (items) {
items.classList.remove(self.CONFIG.SHOW_CLASS);
});
if (this.closest('li') && this.closest('li').querySelector(slideNavTargetSelector)) {
this.closest('li').querySelector(slideNavTargetSelector).classList.add(self.CONFIG.SHOW_CLASS);
$(self.getElem.spMenuTarget).find(self.CONFIG.FOCUSABLE).attr('tabindex', -1);
$(this.closest('li').querySelector(slideNavTargetSelector)).find(self.CONFIG.FOCUSABLE).removeAttr('tabindex');
}
if ($this.parents(slideNavTargetSelector).length) {
$this.parents(slideNavTargetSelector).addClass(self.CONFIG.SHOW_CLASS);
}
if (self.getElem.spMenuTarget) {
self.getElem.spMenuTarget.style.left = Number(self.getElem.spMenuTarget.style.left.slice(0, -1)) - 100 + '%';
}
this.blur();
}
};
handlers.slidePrev = function (e) {
if (!self.getElem.spMenuTarget) {
return;
}
e.preventDefault();
if (!isAnimated) {
isAnimated = true;
if (self.getElem.docElement.scrollTop) {
self.getElem.docElement.scrollTop = 0;
}
if (doc.body.scrollTop) {
doc.body.scrollTop = 0;
}
self.getElem.spMenuTarget.classList.add('is-back');
self.getElem.spMenuTarget.style.left = Number(self.getElem.spMenuTarget.style.left.slice(0, -1)) + 100 + '%';
if (this.closest(slideNavTargetSelector)) {
this.closest(slideNavTargetSelector).classList.add('is-targeted');
}
this.blur();
}
};
handlers.slideEnd = function () {
var target = null;
if (this.classList.contains('is-back')) {
if (self.getElem.slideNavPrevTrigger.length) {
self.getElem.slideNavPrevTrigger.forEach(function (items) {
target = items.closest(slideNavTargetSelector + '.is-targeted');
if (target) {
target.classList.remove(self.CONFIG.SHOW_CLASS);
target.classList.remove('is-targeted');
$(self.getElem.spMenuTarget).find(self.CONFIG.FOCUSABLE).attr('tabindex', -1);
$(self.getElem.slideNavTarget).filter('.' + self.CONFIG.SHOW_CLASS).find(self.CONFIG.FOCUSABLE).removeAttr('tabindex');
}
});
}
this.classList.remove('is-back');
}
if (Number(self.getElem.spMenuTarget.style.left.slice(0, -1)) === 0) {
$(self.getElem.spMenuTarget).find(self.CONFIG.FOCUSABLE).removeAttr('tabindex');
}
isAnimated = false;
};
self.getElem.megaMenu.forEach(function (items) {
var target = items.querySelector(targetSelector);
var trigger = items.querySelector(triggerSelector);
var objMouseenterForTrigger = {
handleEvent: handlers.onMouseenterForTrigger,
target: target
};
var objForcusinForTrigger = {
handleEvent: handlers.onForcusinForTrigger,
target: target
};
var objMouseleaveForTrigger = {
handleEvent: handlers.onMouseleaveForTrigger,
target: target
};
var objMouseenterForTarget = {
handleEvent: handlers.onMouseenterForTarget,
trigger: trigger,
target: target
};
var objMouseleaveForTarget = {
handleEvent: handlers.onMouseleaveForTarget,
trigger: trigger,
target: target
};
var objFocusinForTarget = {
handleEvent: handlers.onFocusinForTarget,
target: target
};
var objTouchstarCloseMegaMenu = {
handleEvent: handlers.onTouchstartCloseMegaMenu,
trigger: trigger,
target: target
};
fn.runForEachScreen1 = function () {
if (smallScreenMql.matches) {
trigger.removeEventListener('mouseenter', objMouseenterForTrigger, false);
trigger.removeEventListener('touchstart', handlers.onTouchstartForTrigger, false);
trigger.removeEventListener('touchmove', objMouseenterForTrigger, false);
trigger.removeEventListener('touchend', handlers.onTouchendForTrigger, false);
trigger.removeEventListener('focusin', objForcusinForTrigger, false);
trigger.removeEventListener('mouseleave', objMouseleaveForTrigger, false);
target.removeEventListener('mouseenter', objMouseenterForTarget, false);
target.removeEventListener('mouseleave', objMouseleaveForTarget, false);
target.removeAttribute('style');
target.querySelectorAll(self.CONFIG.FOCUSABLE).forEach(function (selectors) {
selectors.removeEventListener('focusin', objFocusinForTarget, false);
});
fn.removeMenuShowClass();
fn.deactivateTrigger(trigger);
doc.removeEventListener('touchstart', handlers.onTouchstartForDoc, false);
doc.removeEventListener('touchend', objTouchstarCloseMegaMenu, false);
win.removeEventListener('resize', handlers.resizeTarget, false);
} else {
trigger.addEventListener('touchstart', handlers.onTouchstartForTrigger, false);
trigger.addEventListener('touchend', handlers.onTouchendForTrigger, false);
trigger.addEventListener('mouseenter', objMouseenterForTrigger, false);
trigger.addEventListener('touchmove', objMouseenterForTrigger, false);
trigger.addEventListener('focusin', objForcusinForTrigger, false);
trigger.addEventListener('mouseleave', objMouseleaveForTrigger, false);
target.addEventListener('mouseenter', objMouseenterForTarget, false);
target.addEventListener('mouseleave', objMouseleaveForTarget, false);
target.querySelectorAll(self.CONFIG.FOCUSABLE).forEach(function (selectors) {
selectors.addEventListener('focusin', objFocusinForTarget, false);
});
doc.addEventListener('touchstart', handlers.onTouchstartForDoc, false);
doc.addEventListener('touchend', objTouchstarCloseMegaMenu, false);
win.addEventListener('resize', handlers.resizeTarget, false);
}
};
fn.runForEachScreen1();
smallScreenMql.addListener(fn.runForEachScreen1);
});
fn.spMegaMenuEvents = function () {
if (self.getElem.slideNavNextTrigger.length) {
self.getElem.slideNavNextTrigger.forEach(function (items) {
items.addEventListener('click', handlers.slideNext, false);
});
}
if (self.getElem.slideNavPrevTrigger.length) {
self.getElem.slideNavPrevTrigger.forEach(function (items) {
items.addEventListener('click', handlers.slidePrev, false);
});
}
if (self.getElem.spMenuTarget) {
self.getElem.spMenuTarget.addEventListener('transitionend', handlers.slideEnd, false);
}
};
fn.runForEachScreen2 = function () {
if (smallScreenMql.matches) {
fn.spMegaMenuEvents();
targets.forEach(function (items) {
items.classList.remove(self.CONFIG.SHOW_CLASS);
items.classList.remove(self.CONFIG.HIDE_CLASS);
});
doc.querySelectorAll(self.CONFIG.FOCUSABLE).forEach(function (selectors) {
selectors.removeEventListener('focusin', handlers.onForcusinForFocusable, false);
});
if (self.getElem.changeLangTrigger) {
self.getElem.changeLangTrigger.removeEventListener('focusin', handlers.onForcusinForFocusable, false);
}
} else {
$(self.getElem.spMenuTarget).find(self.CONFIG.FOCUSABLE).removeAttr('tabindex');
if (self.getElem.slideNavNextTrigger.length) {
self.getElem.slideNavNextTrigger.forEach(function (items) {
items.removeEventListener('click', handlers.slideNext, false);
});
}
if (self.getElem.slideNavPrevTrigger.length) {
self.getElem.slideNavPrevTrigger.forEach(function (items) {
items.removeEventListener('click', handlers.slidePrev, false);
});
}
if (self.getElem.spMenuTarget) {
self.getElem.spMenuTarget.removeAttribute('style');
self.getElem.spMenuTarget.removeEventListener('transitionend', handlers.slideEnd, false);
}
if (self.getElem.slideNavTarget) {
self.getElem.slideNavTarget.forEach(function (items) {
items.classList.remove(self.CONFIG.SHOW_CLASS);
});
}
doc.querySelectorAll(self.CONFIG.FOCUSABLE).forEach(function (selectors) {
selectors.addEventListener('focusin', handlers.onForcusinForFocusable, false);
});
if (self.getElem.changeLangTrigger) {
self.getElem.changeLangTrigger.addEventListener('focusin', handlers.onForcusinForFocusable, false);
}
}
};
fn.runForEachScreen2();
smallScreenMql.addListener(fn.runForEachScreen2);
};
KEYENCE.divideMenu = function () {
var self = this;
var targetList = null;
var targetListLength = null;
var $targetList = null;
var i = null;
var j = null;
var rowNumArrLength = null;
var divideArrLength = null;
var divideArrsLength = null;
var rowNumArr = [];
var divideArr = [];
var accumulation = 0;
var divideCount = 0;
var groupCount = 0;
var groupClassStr = 'group';
if (!self.getElem.divideMenu) {
return;
}
targetList = self.getElem.divideMenu.querySelectorAll('.navigationMegaMenu-list');
$targetList = $(targetList);
targetListLength = $targetList.length;
if (!targetListLength) {
return;
}
for (i = 0; i < targetListLength; i++) {
if (!$targetList.eq(i).hasClass('smallScreen-show')) {
rowNumArr.push($targetList.eq(i).find('li:not(".smallScreen-show")').length);
} else {
rowNumArr.push(0);
}
}
divideArr[divideCount] = [];
for (i = 0, rowNumArrLength = rowNumArr.length; i < rowNumArrLength; i++) {
if (accumulation <= win.kpi_usersettings.MegaMenuRowsNum) {
accumulation += rowNumArr[i];
if (accumulation + rowNumArr[i + 1] <= win.kpi_usersettings.MegaMenuRowsNum) {
divideArr[divideCount].push(rowNumArr[i]);
divideArr[divideCount + 1] = [];
} else {
divideArr[divideCount].push(rowNumArr[i]);
divideArr[divideCount + 1] = [];
accumulation = 0;
divideCount++;
}
}
}
divideArr.pop();
$(self.getElem.divideMenu).find('.layout-megaMenuGrid').addClass('of-column-' + divideArr.length);
for (i = 0, divideArrLength = divideArr.length; i < divideArrLength; i++) {
for (j = 0, divideArrsLength = divideArr[i].length; j < divideArrsLength; j++) {
groupCount++;
$targetList.eq(groupCount - 1).addClass(groupClassStr + i);
}
$targetList.filter('.' + groupClassStr + i).wrapAll('
');
$targetList.filter('.' + groupClassStr + i).removeClass(groupClassStr + i);
}
};
KEYENCE.setCategoryHeader = function () {
var self = this;
var classNames = {
commonInner: 'js-categoryHeader-commonInner',
titleArea: 'js-categoryHeader-titleArea',
navigationGroup: 'js-categoryHeader-navigationGroup',
navigationListOuter: 'js-categoryHeader-navigationListOuter',
trigger: 'js-categoryHeader-trigger',
targetGroup: 'js-categoryHeader-targetGroup',
target: 'js-categoryHeader-target',
subNavigationLink: 'js-categoryHeader-subNavigationLink'
};
var commonInner = doc.querySelector('.' + classNames.commonInner);
var titleArea = doc.querySelector('.' + classNames.titleArea);
var navigationGroup = doc.querySelector('.' + classNames.navigationGroup);
var targetGroup = doc.querySelector('.' + classNames.targetGroup);
var arrPageX = [];
var arrPageY = [];
var fn = {};
var handlers = {};
var handlersObj = {};
if (!self.getElem.categoryHeader) {
return;
}
fn.init = function () {
fn.runForEachScreen();
smallScreenMql.addListener(fn.runForEachScreen);
};
fn.setAttribute = function () {
var targets = doc.querySelectorAll('.' + classNames.target);
targets.forEach(function (target) {
target.setAttribute("aria-hidden", true);
});
};
fn.setMaxWidthOfNavigation = function (mql) {
var commonInnerWidth;
var titleAreaWidth;
var maxWidth;
if (!commonInner || !titleArea || !navigationGroup) {
return;
}
commonInnerWidth = commonInner.offsetWidth;
titleAreaWidth = titleArea.offsetWidth;
maxWidth = mql.matches ? "none" : commonInnerWidth - titleAreaWidth + 'px';
navigationGroup.style.maxWidth = maxWidth;
};
fn.setOverflowingClass = function () {
var navigationListOuter = doc.querySelector('.' + classNames.navigationListOuter);
if (!navigationListOuter) {
return;
}
fn.deActiveSubNavigation();
if (navigationListOuter.scrollWidth > navigationListOuter.clientWidth) {
navigationListOuter.classList.add('is-overflowing')
} else {
navigationListOuter.classList.remove('is-overflowing')
}
};
fn.setPositionOfSubNavigation = function (currentNavigation) {
var currentLeft;
var currentRight;
var wrapperLeft;
var wrapperRight;
var targetGroupWidth;
var left;
if (!currentNavigation || !navigationGroup || !targetGroup) {
return;
}
setTimeout(() => {
currentLeft = currentNavigation.getBoundingClientRect().left;
currentRight = currentNavigation.getBoundingClientRect().right;
wrapperLeft = navigationGroup.getBoundingClientRect().left;
wrapperRight = navigationGroup.getBoundingClientRect().right;
targetGroupWidth = targetGroup.offsetWidth;
if (currentLeft < wrapperLeft) {
left = wrapperLeft + 'px';
} else if (currentRight >= wrapperRight) {
left = wrapperRight - targetGroupWidth + 'px';
} else if (wrapperRight - currentLeft < targetGroupWidth) {
left = currentLeft - (targetGroupWidth - currentNavigation.offsetWidth) + 'px';
} else {
left = currentLeft + 'px';
}
targetGroup.style.left = left;
}, 0);
};
fn.activeSubNavigation = function (currentNavigation) {
var triggers = doc.querySelectorAll('.' + classNames.trigger);
var targets = doc.querySelectorAll('.' + classNames.target);
var currentNavigationId = currentNavigation ? currentNavigation.getAttribute("aria-controls") : null;
var hasSubNavigation = doc.querySelector('#' + currentNavigationId) ? true : false;
hasSubNavigation ? targetGroup.classList.add(KEYENCE.CONFIG.SHOW_CLASS) : targetGroup.classList.remove(KEYENCE.CONFIG.SHOW_CLASS);
triggers.forEach(function (trigger) {
var isSelected = trigger === currentNavigation;
trigger.tabIndex = isSelected ? 0 : -1;
isSelected && hasSubNavigation ? trigger.classList.add(KEYENCE.CONFIG.ACTIVE_CLASS) : trigger.classList.remove(KEYENCE.CONFIG.ACTIVE_CLASS);
});
targets.forEach(function (target) {
var isSelected = target.id === currentNavigationId;
hasSubNavigation ? target.setAttribute("aria-hidden", !isSelected) : target.setAttribute("aria-hidden", true);
});
};
fn.deActiveSubNavigation = function () {
var triggers = doc.querySelectorAll('.' + classNames.trigger);
var targets = doc.querySelectorAll('.' + classNames.target);
targetGroup.classList.remove(KEYENCE.CONFIG.SHOW_CLASS);
targetGroup.style.left = "";
triggers.forEach(function (trigger) {
// trigger.tabIndex = 0;
trigger.classList.remove(KEYENCE.CONFIG.ACTIVE_CLASS);
});
targets.forEach(function (target) {
target.setAttribute("aria-hidden", true);
});
};
fn.switchNavigation = function (event) {
var triggers = doc.querySelectorAll('.' + classNames.trigger);
switch (event.key) {
case "ArrowRight": {
if (triggers[fn.getSelectedNavigationIndex() + 1]) {
triggers[fn.getSelectedNavigationIndex() + 1].focus();
} else {
fn.getFirstNavigation().focus();
}
break;
}
case "ArrowLeft": {
if (triggers[fn.getSelectedNavigationIndex() - 1]) {
triggers[fn.getSelectedNavigationIndex() - 1].focus();
} else {
fn.getLastNavigation().focus();
}
break;
}
}
};
fn.getFirstNavigation = function () {
var triggers = doc.querySelectorAll('.' + classNames.trigger);
return triggers[0];
};
fn.getLastNavigation = function () {
var triggers = doc.querySelectorAll('.' + classNames.trigger);
return triggers[triggers.length - 1];
};
fn.getSelectedNavigationIndex = function () {
var triggers = doc.querySelectorAll('.' + classNames.trigger);
return Array.from(triggers).findIndex(function (elm) {
return elm.tabIndex === 0;
});
};
handlers.scrollForNavigationListOuter = function () {
var navigationListOuter = doc.querySelector('.' + classNames.navigationListOuter);
if (!navigationListOuter) {
return;
}
fn.deActiveSubNavigation();
navigationListOuter.classList.add('is-hasScrolled')
};
handlers.mouseenterForTrigger = function (event) {
var currentNavigation = event.currentTarget;
fn.setPositionOfSubNavigation(currentNavigation);
fn.activeSubNavigation(currentNavigation);
};
handlers.focusinForTrigger = function (event) {
var currentNavigation = event.currentTarget;
fn.setPositionOfSubNavigation(currentNavigation);
fn.activeSubNavigation(currentNavigation);
};
handlers.clickForTrigger = function (event) {
var currentNavigation = event.currentTarget;
var hasActiveClass = currentNavigation.classList.contains(KEYENCE.CONFIG.ACTIVE_CLASS);
if (currentNavigation.getAttribute('aria-controls') || currentNavigation.getAttribute('href') === "") {
event.preventDefault();
}
if (hasActiveClass) {
fn.deActiveSubNavigation();
} else {
fn.activeSubNavigation(currentNavigation);
}
};
handlers.touchstart = function (event) {
arrPageX.length = 0;
arrPageY.length = 0;
arrPageX.push(event.touches[0].pageX);
arrPageY.push(event.touches[0].pageY);
};
handlers.touchend = function (event) {
if (event.changedTouches[0].pageX === arrPageX[0] || event.changedTouches[0].pageY === arrPageY[0]) {
if (!event.target.closest('.' + classNames.navigationGroup)) {
fn.deActiveSubNavigation();
}
}
};
handlers.mouseleaveForNavigation = function () {
fn.deActiveSubNavigation();
};
handlers.keyupForTrigger = function (event) {
fn.switchNavigation(event);
};
handlersObj.scrollForNavigationListOuter = {
handleEvent: handlers.scrollForNavigationListOuter
};
handlersObj.mouseenterForTrigger = {
handleEvent: handlers.mouseenterForTrigger
};
handlersObj.focusinForTrigger = {
handleEvent: handlers.focusinForTrigger
};
handlersObj.clickForTrigger = {
handleEvent: handlers.clickForTrigger
};
handlersObj.mouseleaveForNavigation = {
handleEvent: handlers.mouseleaveForNavigation
};
handlersObj.keyupForTrigger = {
handleEvent: handlers.keyupForTrigger
};
handlersObj.touchstart = {
handleEvent: handlers.touchstart
};
handlersObj.touchend = {
handleEvent: handlers.touchend
};
fn.runForEachScreen = function () {
var self = this;
var resizeObserver = new ResizeObserver(fn.setMaxWidthOfNavigation.bind(self, smallScreenMql));
var resizeObserverOfNavigationListOuter = new ResizeObserver(fn.setOverflowingClass);
var trigger = doc.querySelectorAll('.' + classNames.trigger);
var navigationListOuter = doc.querySelector('.' + classNames.navigationListOuter);
fn.setAttribute();
resizeObserverOfNavigationListOuter.observe(navigationListOuter);
navigationListOuter.addEventListener('scroll', handlersObj.scrollForNavigationListOuter, false);
doc.addEventListener('touchstart', handlersObj.touchstart, false);
doc.addEventListener('touchend', handlersObj.touchend, false);
if (smallScreenMql.matches) {
resizeObserver.unobserve(commonInner);
navigationGroup.removeEventListener('mouseleave', handlersObj.mouseleaveForNavigation, false);
trigger.forEach(function(elm) {
elm.removeEventListener('mouseenter', handlersObj.mouseenterForTrigger, false);
elm.removeEventListener('focusin', handlersObj.focusinForTrigger, false);
elm.addEventListener('click', handlersObj.clickForTrigger, false);
});
targetGroup.style.left = '';
} else {
resizeObserver.observe(commonInner);
navigationGroup.addEventListener('mouseleave', handlersObj.mouseleaveForNavigation, false);
trigger.forEach(function(elm) {
elm.removeEventListener('click', handlersObj.clickForTrigger, false);
elm.addEventListener('click', function (event) {
if (event.currentTarget.getAttribute('href') === "") {
event.preventDefault();
}
}, false);
elm.addEventListener('focusin', handlersObj.focusinForTrigger, false);
elm.addEventListener('mouseenter', handlersObj.mouseenterForTrigger, false);
elm.addEventListener('keyup', handlersObj.keyupForTrigger, false);
});
doc.querySelectorAll(KEYENCE.CONFIG.FOCUSABLE).forEach(function (selectors) {
selectors.addEventListener('focusin', function (event) {
if (!event.target.closest('.' + classNames.navigationGroup)) {
fn.deActiveSubNavigation();
}
}, false);
});
}
};
fn.init();
};
KEYENCE.setChangeLanguage = function () {
var self = this;
var setToggle = null;
var runClick = null;
var runKeydown = null;
var closeTarget = null;
var runForEachScreen = null;
if (!self.getElem.changeLangTrigger || !self.getElem.changeLangTarget) {
return;
}
if (self.getElem.changeLangTarget.querySelectorAll('li').length <= 1) {
return;
}
setToggle = function (target) {
if (target.getAttribute(self.CONFIG.ARIA_EXPANDED) === 'true') {
self.getElem.changeLangTarget.classList.remove(self.CONFIG.SHOW_CLASS);
target.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
} else {
self.getElem.changeLangTarget.classList.add(self.CONFIG.SHOW_CLASS);
target.setAttribute(self.CONFIG.ARIA_EXPANDED, true);
}
};
runClick = function (e) {
e.preventDefault();
setToggle(this);
};
runKeydown = function (e) {
if (e.key === 'Spacebar' || e.key === ' ' || e.key === 'Enter') {
e.preventDefault();
setToggle(this);
}
};
closeTarget = function (e) {
if (!e.target.closest('#' + self.getElem.changeLang.id)) {
self.getElem.changeLangTarget.classList.remove(self.CONFIG.SHOW_CLASS);
self.getElem.changeLangTrigger.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
}
};
runForEachScreen = function () {
if (smallScreenMql.matches) {
self.getElem.changeLangTrigger.removeAttribute(self.CONFIG.ARIA_CONTROLS);
self.getElem.changeLangTrigger.removeAttribute(self.CONFIG.ARIA_EXPANDED);
self.getElem.changeLangTrigger.removeAttribute('tabindex');
self.getElem.changeLangTrigger.removeEventListener('click', runClick, false);
self.getElem.changeLangTrigger.removeEventListener('keydown', runKeydown, false);
doc.removeEventListener('click', closeTarget, false);
} else {
self.getElem.changeLangTrigger.setAttribute(self.CONFIG.ARIA_CONTROLS, self.getElem.changeLangTarget.id);
self.getElem.changeLangTrigger.setAttribute(self.CONFIG.ARIA_EXPANDED, false);
self.getElem.changeLangTrigger.tabIndex = 0;
self.getElem.changeLangTrigger.addEventListener('click', runClick, false);
self.getElem.changeLangTrigger.addEventListener('keydown', runKeydown, false);
doc.addEventListener('click', closeTarget, false);
}
};
runForEachScreen();
smallScreenMql.addListener(runForEachScreen);
};
KEYENCE.setCurrentNav = function () {
var self = this;
var nav;
var href = null;
var hrefRegexp = null;
var pathname = win.location.pathname;
if (win.suz_LanguagePath + '/' === pathname) {
return;
}
if (!self.getElem.focusOrderTrigger) {
return;
}
nav = self.getElem.focusOrderTrigger.querySelectorAll('.navigationGlobal > li > a');
if (!nav.length) {
return;
}
nav.forEach(function (items) {
href = items.pathname.replace(/^\/(.+)(\/index\.jsp?)$/, '/$1/');
hrefRegexp = new RegExp('^' + href);
if (hrefRegexp.test(pathname)) {
items.classList.add(self.CONFIG.CURRENT_CLASS);
}
});
};
KEYENCE.ctrlTelLink = function () {
var telLink = doc.querySelectorAll('a[href^="tel:"]');
var hasTouchScreen = false;
var mQ = null;
var ua = win.navigator.userAgent;
var cancelLink = null;
if (!telLink.length) {
return;
}
cancelLink = function (e) {
e.preventDefault();
};
if ('maxTouchPoints' in navigator) {
hasTouchScreen = win.navigator.maxTouchPoints > 0;
if (ua.indexOf('Edge') !== -1) {
if (ua.indexOf('Windows Phone') === -1 && ua.indexOf('IEMobile') === -1) {
hasTouchScreen = false;
}
}
} else if ('msMaxTouchPoints' in navigator) {
hasTouchScreen = win.navigator.msMaxTouchPoints > 0;
} else {
mQ = win.matchMedia && matchMedia('(pointer:coarse)');
if (mQ && mQ.media === '(pointer:coarse)') {
hasTouchScreen = Boolean(mQ.matches);
} else if ('orientation' in win) {
hasTouchScreen = true;
} else {
hasTouchScreen = (
/\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(ua) ||
/\b(Android|Windows Phone|iPad|iPod)\b/i.test(ua)
);
}
}
if (!hasTouchScreen) {
telLink.forEach(function (item) {
item.addEventListener('click', cancelLink, false);
});
}
};
KEYENCE.ctrlFocusOrder = function () {
var self = this;
var $gNav = $(self.getElem.focusOrderTrigger);
var $spMenuTarget = $(self.getElem.spMenuTarget);
var $spMenuBtn = $(self.getElem.spMenuBtn);
var $spSearchBtn = $(self.getElem.spSearchBtn);
var runForEachScreen = null;
runForEachScreen = function () {
if (smallScreenMql.matches) {
$gNav.insertBefore($spMenuTarget.children().filter(':first'));
$spSearchBtn.insertAfter($spMenuBtn);
} else {
$gNav.insertAfter($spMenuTarget.children().filter(':last'));
$spSearchBtn.insertAfter($gNav.children().filter(':last'));
}
};
runForEachScreen();
smallScreenMql.addListener(runForEachScreen);
};
KEYENCE.setHomeAdjustHeight = function () {
var self = this;
var roots = self.getElem.adjustHeight;
var fn = {};
var className = {
adjustHeightTarget: 'js-setHomeAdjustHeight-target'
};
if (!roots.length) {
return;
}
fn.init = function () {
roots.forEach(function (root) {
fn.setTargetHeight(root);
fn.resizeWindow(root);
});
};
fn.resizeWindow = function (root) {
var timer = null;
win.addEventListener('resize', function () {
if (timer !== null) {
clearTimeout(timer);
}
timer = setTimeout(function () {
fn.setTargetHeight(root);
}, 200);
});
};
fn.getTarget = function (root) {
var adjustHeightTarget = root.querySelectorAll('.' + className.adjustHeightTarget);
return adjustHeightTarget;
};
fn.destroyHeight = function (root) {
var target = fn.getTarget(root);
if (!target.length) {
return;
}
target.forEach(function (elm) {
elm.style.height = '';
});
};
fn.setTargetHeight = function (root) {
var target = fn.getTarget(root);
var targetHeight = 0;
var maxHeight = 0;
var windowWidth = win.innerWidth;
if (!target.length) {
return;
}
if (windowWidth > 640) {
target.forEach(function (elm) {
elm.style.height = '';
targetHeight = elm.offsetHeight;
if (targetHeight > maxHeight) {
maxHeight = targetHeight;
}
});
target.forEach(function (elm) {
elm.style.height = maxHeight + 'px';
});
} else {
fn.destroyHeight(root);
}
};
fn.init();
};
KEYENCE.setHomeCarousel = function () {
var self = this;
var className = {
utilityTemplate: 'js-setHomeCarousel-utilityControllerTemplate',
paginationListTemplate: 'js-setHomeCarousel-paginationListTemplate',
targetOuter: 'js-setHomeCarousel-targetOuter',
target: 'js-setHomeCarousel-target',
clone: 'js-setHomeCarousel-clone',
utility: 'js-setHomeCarousel-utilityController',
image: 'js-setHomeCarousel-image',
pagination: 'js-setHomeCarousel-pagination',
paginationBtn: 'js-setHomeCarousel-paginationButton',
prevBtn: 'js-setCrousel-prevButton',
nextBtn: 'js-setCrousel-nextButton',
controller: 'js-setHomeCarousel-controller',
isInitialized: 'is-initialized'
};
var root = null;
var targetOuter = null;
var targetWidth = null;
var target = null;
var targetLength = null;
var arrTargetLength = [];
var currentNum = 0;
var timer = null;
var isAnimate = false;
var isAutoPlay = true;
var isEnterSlide = false;
var num = 0;
var arrPageX = [];
var arrPageY = [];
var fn = {};
var DURATION = 4000;
if (self.getElem.carousel === null) {
return;
}
root = self.getElem.carousel;
root.classList.add(className.isInitialized);
fn.init = function () {
fn.setSlide();
fn.setUtility();
fn.setSlideClone();
fn.setSlideWidth();
fn.setAlly();
fn.setPaginationCurrent(0);
fn.swipe();
fn.resizeWindow();
fn.addMouseEnterEvent();
fn.addMouseLeaveEvent();
if (isAutoPlay) {
fn.setAutoPlay();
}
};
targetOuter = root.querySelector('.' + className.targetOuter);
target = root.querySelectorAll('.' + className.target);
if (targetOuter === null || !target.length) {
return;
}
fn.setSlide = function () {
targetLength = target.length;
arrTargetLength.push(targetLength);
num = 1;
currentNum = 0;
targetWidth = win.innerWidth;
targetOuter.style.transform = 'translate3d(-' + (targetWidth * num) + 'px ,0, 0)';
};
fn.setSlideClone = function () {
var firstClone;
var lastClone;
if (target.length > 1) {
firstClone = targetOuter.firstElementChild.cloneNode(true);
lastClone = targetOuter.lastElementChild.cloneNode(true);
firstClone.classList.add(className.clone);
lastClone.classList.add(className.clone);
targetOuter.appendChild(firstClone);
targetOuter.insertBefore(lastClone, targetOuter.firstElementChild);
}
};
fn.setSlideWidth = function () {
target = root.querySelectorAll('.' + className.target);
targetLength = target.length;
if (/Macintosh|iP(hone|ad|od)/.test(win.navigator.userAgent) && 'ontouchend' in doc) {
targetWidth = doc.documentElement.clientWidth;
} else {
targetWidth = win.innerWidth;
}
if (!target.length) {
return;
}
targetOuter.style.width = (targetWidth * targetLength) + 'px';
target.forEach(function (elm) {
elm.style.width = targetWidth + 'px';
});
};
fn.setSlideCurrent = function () {
target.forEach(function (elm, idx) {
elm.classList.remove(self.CONFIG.CURRENT_CLASS);
if (elm.classList.contains(self.CONFIG.CURRENT_CLASS)) {
num = idx;
}
});
targetOuter.style.transform = 'translate3d(-' + (targetWidth * num) + 'px ,0, 0)';
target[num].classList.add(self.CONFIG.CURRENT_CLASS);
};
fn.setUtility = function () {
var utility = doc.getElementById(className.utilityTemplate);
var utilityClone;
if (utility === null) {
return;
}
utilityClone = fn.createNodeClone(utility, '.' + className.utility);
root.appendChild(utilityClone);
fn.setPagination();
fn.clickPrevBtn();
fn.clickNextBtn();
fn.clickController();
};
fn.setPagination = function () {
var paginationList = doc.getElementById(className.paginationListTemplate);
var image = root.querySelectorAll('.' + className.image);
var fragment = doc.createDocumentFragment();
var pagination = root.querySelector('.' + className.pagination);
var paginationListClone;
var srcList = [];
var i;
var thumbnail;
if (pagination === null || paginationList === null || !image.length) {
return;
}
image.forEach(function (elm) {
var img;
var src;
img = elm.querySelector('img');
if (img === null) {
return;
}
src = img.getAttribute('src');
srcList.push(src);
});
for (i = 0; i < arrTargetLength[0]; i++) {
paginationListClone = fn.createNodeClone(paginationList, 'li');
thumbnail = paginationListClone.querySelector('img');
thumbnail.setAttribute('src', srcList[i]);
thumbnail.setAttribute('alt', i + 1);
fragment.appendChild(paginationListClone);
}
pagination.appendChild(fragment);
fn.setPaginationStyle();
fn.clickPagination();
};
fn.setPaginationStyle = function () {
var pagination = root.querySelector('.' + className.pagination);
var paginationBtn;
var styleList = [];
if (pagination === null) {
return;
}
target.forEach(function (elm) {
var style;
style = elm.style.background;
styleList.push(style);
});
paginationBtn = pagination.querySelectorAll('.' + className.paginationBtn);
if (!paginationBtn.length) {
return;
}
paginationBtn.forEach(function (elm, idx) {
elm.style.background = styleList[idx];
});
};
fn.setPaginationCurrent = function (currentNumber) {
var pagination = root.querySelector('.' + className.pagination);
var paginationBtn;
if (pagination === null) {
return;
}
currentNum = currentNumber;
paginationBtn = pagination.querySelectorAll('.' + className.paginationBtn);
if (!paginationBtn.length) {
return;
}
paginationBtn.forEach(function (elm, idx) {
if (elm.classList.contains(self.CONFIG.CURRENT_CLASS)) {
currentNum = idx;
}
elm.classList.remove(self.CONFIG.CURRENT_CLASS);
});
paginationBtn[currentNum].classList.add(self.CONFIG.CURRENT_CLASS);
};
fn.setAlly = function () {
var $target = $('.' + className.target);
if (!$target.length) {
return;
}
$target.find(self.CONFIG.FOCUSABLE).attr('tabIndex', -1);
$target.filter('.' + self.CONFIG.CURRENT_CLASS).find(self.CONFIG.FOCUSABLE).attr('tabIndex', 0);
};
fn.setAutoPlay = function () {
timer = setTimeout(function () {
fn.slideNext();
fn.setAutoPlay();
}, DURATION);
};
fn.changeSlideCurrent = function () {
target.forEach(function (elm, idx) {
if (idx === currentNum + 1) {
elm.classList.add(self.CONFIG.CURRENT_CLASS);
} else {
elm.classList.remove(self.CONFIG.CURRENT_CLASS);
}
});
};
fn.changePaginationCurrent = function () {
var pagination = root.querySelector('.' + className.pagination);
var paginationBtn;
if (pagination === null) {
return;
}
paginationBtn = pagination.querySelectorAll('.' + className.paginationBtn);
if (!paginationBtn.length) {
return;
}
paginationBtn.forEach(function (elm, idx) {
if (idx === currentNum) {
elm.classList.add(self.CONFIG.CURRENT_CLASS);
} else {
elm.classList.remove(self.CONFIG.CURRENT_CLASS);
}
});
};
fn.clickPagination = function () {
var pagination = root.querySelector('.' + className.pagination);
var btn;
var currentBtn;
if (pagination === null) {
return;
}
btn = pagination.querySelectorAll('.' + className.paginationBtn);
if (!btn.length) {
return;
}
btn.forEach(function (elm, idx) {
if (isAnimate === false) {
elm.addEventListener('click', function () {
isAnimate = true;
currentBtn = pagination.querySelector('.' + self.CONFIG.CURRENT_CLASS);
if (currentBtn === null) {
return;
}
currentBtn.classList.remove(self.CONFIG.CURRENT_CLASS);
elm.classList.add(self.CONFIG.CURRENT_CLASS);
num = idx + 1;
currentNum = idx;
fn.slide();
fn.changeSlideCurrent();
fn.setAlly();
});
}
});
};
fn.clickController = function () {
var utility = root.querySelector('.' + className.utility);
var controller;
var text;
var playText;
var stopText;
if (utility === null) {
return;
}
controller = utility.querySelector('.' + className.controller);
if (controller === null) {
return;
}
text = controller.querySelector('span');
if (text === null) {
return;
}
playText = text.dataset.playlabel;
stopText = text.dataset.stoplabel;
if (isAutoPlay) {
text.innerText = playText;
} else {
text.innerText = stopText;
}
controller.addEventListener('click', function () {
if (isAutoPlay) {
isAutoPlay = false;
clearTimeout(timer);
text.innerText = playText;
controller.classList.add(self.CONFIG.STOP_CLASS);
} else {
isAutoPlay = true;
fn.setAutoPlay();
text.innerText = stopText;
controller.classList.remove(self.CONFIG.STOP_CLASS);
}
});
};
fn.clickPrevBtn = function () {
var prevBtn = root.querySelector('.' + className.prevBtn);
if (prevBtn === null) {
return;
}
prevBtn.addEventListener('click', function () {
fn.slidePrev();
});
};
fn.clickNextBtn = function () {
var nextBtn = root.querySelector('.' + className.nextBtn);
if (nextBtn === null) {
return;
}
nextBtn.addEventListener('click', function () {
fn.slideNext();
});
};
fn.slidePrev = function () {
var paginationMax = arrTargetLength[0] - 1;
if (isAnimate === false) {
isAnimate = true;
if (num === 1) {
num--;
currentNum = paginationMax;
}
if (num !== 0) {
num--;
currentNum--;
}
fn.slide();
fn.changeSlideCurrent();
fn.changePaginationCurrent();
}
};
fn.slideNext = function () {
var max = targetLength - 1;
if (isAnimate === false) {
isAnimate = true;
if (num === arrTargetLength[0]) {
num++;
currentNum = 0;
} else if (num < max) {
num++;
currentNum++;
}
fn.slide();
fn.changeSlideCurrent();
fn.changePaginationCurrent();
fn.setAlly();
}
};
fn.slide = function () {
var max = targetLength - 1;
targetOuter.style.transform = 'translate3d(-' + (targetWidth * num) + 'px ,0, 0)';
targetOuter.style.transition = 'transform 1s ease 0s';
fn.addEventListenerOnce(targetOuter, 'transitionend', function () {
isAnimate = false;
targetOuter.style.transition = '';
if (num === max) {
targetOuter.style.transform = 'translate3d(-' + (targetWidth) + 'px ,0, 0)';
num = 1;
} else if (num === 0) {
targetOuter.style.transform = 'translate3d(-' + (targetWidth * (max - 1)) + 'px ,0, 0)';
num = max - 1;
}
if (isAutoPlay) {
clearTimeout(timer);
fn.setAutoPlay();
}
});
};
fn.enterSlide = function () {
var utility = root.querySelector('.' + className.utility);
var controller;
var text;
var playText;
if (utility === null) {
return;
}
controller = utility.querySelector('.' + className.controller);
if (controller === null) {
return;
}
text = controller.querySelector('span');
if (text === null) {
return;
}
playText = text.dataset.playlabel;
if (isAutoPlay && !isEnterSlide) {
isAutoPlay = false;
isEnterSlide = true;
clearTimeout(timer);
text.innerText = playText;
controller.classList.add(self.CONFIG.STOP_CLASS);
}
};
fn.leaveSlide = function () {
var utility = root.querySelector('.' + className.utility);
var controller;
var text;
var stopText;
if (utility === null) {
return;
}
controller = utility.querySelector('.' + className.controller);
if (controller === null) {
return;
}
text = controller.querySelector('span');
if (text === null) {
return;
}
stopText = text.dataset.stoplabel;
if (!isAutoPlay && isEnterSlide) {
isAutoPlay = true;
isEnterSlide = false;
fn.setAutoPlay();
text.innerText = stopText;
controller.classList.remove(self.CONFIG.STOP_CLASS);
}
};
fn.swipe = function () {
var startX;
var startY;
var moveX;
var moveY;
var distanceX;
var distanceY;
var nowPosition;
var endPosition;
var x;
var radian;
var swipeAngle;
target.forEach(function (elm) {
elm.addEventListener('touchstart', function (e) {
arrPageX.length = 0;
arrPageY.length = 0;
startX = e.touches[0].pageX;
startY = e.touches[0].pageY;
arrPageX.push(startX);
arrPageY.push(startY);
distanceX = 0;
clearTimeout(timer);
});
elm.addEventListener('touchmove', function (e) {
moveX = e.changedTouches[0].pageX;
moveY = e.changedTouches[0].pageY;
distanceX = moveX - arrPageX[0];
distanceY = moveY - arrPageY[0];
if (distanceX === 0 && e.cancelable) {
e.preventDefault();
}
if (isAnimate === true) {
return;
}
radian = Math.atan2(distanceY, distanceX);
swipeAngle = Math.round(radian * 180 / Math.PI);
if (swipeAngle < 0) {
swipeAngle = 360 - Math.abs(swipeAngle);
}
if ((0 < swipeAngle && swipeAngle < 45) || (135 < swipeAngle && swipeAngle < 225) || (315 < swipeAngle && swipeAngle < 360)) {
if (Math.abs(distanceX) > 20) {
doc.addEventListener('touchmove', fn.scrollControl, {passive: false});
}
nowPosition = targetWidth * num;
x = nowPosition + -distanceX;
if (nowPosition - x < 0 && -targetWidth < nowPosition - x) {
targetOuter.style.transition = '';
targetOuter.style.transform = 'translate3d(-' + x + 'px ,0, 0)';
} else if (nowPosition - x > 0 && targetWidth > nowPosition - x) {
targetOuter.style.transition = '';
targetOuter.style.transform = 'translate3d(-' + x + 'px ,0, 0)';
}
} else {
doc.removeEventListener('touchmove', fn.scrollControl, {passive: false});
}
});
elm.addEventListener('touchend', function (e) {
endPosition = e.changedTouches[0].pageX;
if (distanceX === 0) {
return;
}
if (startX !== endPosition && e.cancelable) {
e.preventDefault();
}
doc.removeEventListener('touchmove', fn.scrollControl, {passive: false});
if (endPosition < startX) {
fn.slideNext();
} else if (endPosition > startX) {
fn.slidePrev();
}
});
});
};
fn.scrollControl = function (e) {
if (e.cancelable) {
e.preventDefault();
}
};
fn.resizeWindow = function () {
var resizeTimer = null;
win.addEventListener('resize', function () {
clearTimeout(timer);
if (resizeTimer !== null) {
clearTimeout(resizeTimer);
}
resizeTimer = setTimeout(function () {
fn.setSlideWidth();
fn.setSlideCurrent();
fn.setAlly();
fn.setPaginationCurrent();
if (isAutoPlay) {
fn.setAutoPlay();
}
}, 30);
});
};
fn.addMouseEnterEvent = function () {
targetOuter.addEventListener('mouseenter', fn.enterSlide);
};
fn.addMouseLeaveEvent = function () {
targetOuter.addEventListener('mouseleave', fn.leaveSlide);
};
fn.addEventListenerOnce = function (elm, type, listener) {
elm.addEventListener(type, function func() {
elm.removeEventListener(type, func);
listener();
});
};
fn.checkSupportsTemp = function () {
return 'content' in doc.createElement('template');
};
fn.createNodeClone = function (template, selectorForIE) {
if (fn.checkSupportsTemp() === true) {
return doc.importNode(template.content, true);
}
return doc.importNode(template.querySelector(selectorForIE), true);
};
fn.init();
};
KEYENCE.setHomeChangeCategory = function () {
var self = this;
var target;
var trigger;
var cookieValue;
var isAnimate = false;
var DELAY = 600;
var ORIGINAL_DOMAIN = win.kpi_originalDomain;
var CATEGORY_COOKIE_NAME = 'kpi_has_changeCategory';
var fn = {};
if (!self.getElem.changeCategoryTarget.length || !self.getElem.changeCategoryTrigger.length) {
return;
}
target = self.getElem.changeCategoryTarget;
trigger = self.getElem.changeCategoryTrigger;
cookieValue = util.getCookie(CATEGORY_COOKIE_NAME);
fn.init = function () {
fn.setMql();
};
fn.setMql = function () {
smallScreenMql.addListener(fn.checkBreakPoint);
fn.checkBreakPoint(smallScreenMql);
};
fn.checkBreakPoint = function () {
if (smallScreenMql.matches) {
fn.removeCurrentClassForTrigegr();
fn.addShowClassForTarget();
} else {
fn.setTrigger();
fn.setTarget();
fn.clickTrigger();
}
};
fn.setTrigger = function () {
var category;
if (cookieValue) {
trigger.forEach(function (elm) {
category = elm.getAttribute('data-category');
if (category === cookieValue) {
elm.classList.add(self.CONFIG.CURRENT_CLASS);
}
});
} else {
trigger[0].classList.add(self.CONFIG.CURRENT_CLASS);
}
};
fn.setTarget = function () {
var category;
target.forEach(function (elm) {
category = elm.getAttribute('data-category');
if (cookieValue) {
if (cookieValue === 'all') {
elm.classList.add(self.CONFIG.SHOW_CLASS);
} else {
if (category === cookieValue) {
elm.classList.add(self.CONFIG.SHOW_CLASS);
} else {
elm.style.display = 'none';
elm.classList.add(self.CONFIG.HIDE_CLASS);
elm.classList.remove(self.CONFIG.SHOW_CLASS);
}
}
} else {
elm.classList.add(self.CONFIG.SHOW_CLASS);
}
});
};
fn.clickTrigger = function () {
var category;
trigger.forEach(function (elm) {
elm.addEventListener('click', function () {
if (isAnimate === false) {
isAnimate = true;
fn.removeCurrentClassForTrigegr();
elm.classList.add(self.CONFIG.CURRENT_CLASS);
category = elm.getAttribute('data-category');
cookieValue = category;
util.setCookie(CATEGORY_COOKIE_NAME, cookieValue);
fn.changeCategory(category);
}
});
});
};
fn.changeCategory = function (category) {
var targetCategory;
target = doc.querySelectorAll('.js-setChangeCategory-target');
if (!target.length) {
return;
}
if (category === 'all') {
fn.addHideClassForTarget();
setTimeout(function () {
fn.addShowClassForTarget();
}, DELAY);
} else {
target.forEach(function (elm) {
targetCategory = elm.getAttribute('data-category');
elm.classList.add(self.CONFIG.HIDE_CLASS);
elm.classList.remove(self.CONFIG.SHOW_CLASS);
elm.addEventListener('animationend', function () {
isAnimate = false;
if (elm.classList.contains(self.CONFIG.HIDE_CLASS)) {
elm.style.display = 'none';
}
});
if (category === targetCategory) {
setTimeout(function () {
if (elm.classList.contains(self.CONFIG.HIDE_CLASS)) {
elm.style.display = 'flex';
}
elm.classList.remove(self.CONFIG.HIDE_CLASS);
elm.classList.add(self.CONFIG.SHOW_CLASS);
elm.addEventListener('animationend', function () {
isAnimate = false;
});
}, DELAY);
}
});
}
};
fn.removeCurrentClassForTrigegr = function () {
trigger = doc.querySelectorAll('.js-setChangeCategory-trigger');
if (!trigger.length) {
return;
}
trigger.forEach(function (elm) {
elm.classList.remove(self.CONFIG.CURRENT_CLASS);
});
};
fn.addShowClassForTarget = function () {
target.forEach(function (elm) {
elm.classList.remove(self.CONFIG.HIDE_CLASS);
elm.classList.add(self.CONFIG.SHOW_CLASS);
if (elm.classList.contains(self.CONFIG.SHOW_CLASS)) {
elm.style.display = 'flex';
}
elm.addEventListener('animationend', function () {
isAnimate = false;
});
});
};
fn.addHideClassForTarget = function () {
target.forEach(function (elm) {
elm.classList.remove(self.CONFIG.SHOW_CLASS);
elm.classList.add(self.CONFIG.HIDE_CLASS);
});
};
fn.init();
};
KEYENCE.setToggleCart = function () {
var self = this;
var fn = {};
var className = {
toggle: 'js-toggleCart',
toggleItem: 'js-toggleCart-item',
toggleHook: 'js-toggleCart-hook',
toggleContent: 'js-toggleCart-content',
toggleState: 'js-toggleCart-state',
totalizer: 'totalizer',
totalizerTxt: 'totalizer-text',
class: {
isHide: 'is-hide'
}
};
var elm = {};
if (self.getElem.toggleCart === null) {
return;
}
elm.$root = $('.' + className.toggle);
elm.$toggleItem = elm.$root.find('.' + className.toggleItem);
elm.$toggleHook = elm.$root.find('.' + className.toggleHook);
elm.$toggleContent = elm.$root.find('.' + className.toggleContent);
elm.$totalizer = elm.$root.find('.' + className.totalizer);
fn.init = function () {
fn.setMql();
};
fn.setMql = function () {
function checkBp(mq) {
if (mq.matches) {
fn.set();
fn.openContent();
} else {
fn.unSet();
}
}
smallScreenMql.addListener(checkBp);
checkBp(smallScreenMql);
};
fn.set = function () {
var i;
var $totalizerTxt;
var text = '';
$totalizerTxt = elm.$totalizer.find('.' + className.totalizerTxt);
elm.$toggleItem.prepend('