1(function (win, doc, $, util) { 2 'use strict'; 3 4 var KEYENCE = {}; 5 var kpi_openedModalWindow = ''; 6 var SMALL_SCREEN = 969; 7 var smallScreenMql = win.matchMedia('(max-width: ' + SMALL_SCREEN + 'px)'); 8 9 if ($ === undefined) { 10 return; 11 } 12 13 KEYENCE.init = function () { 14 var self = this; 15 16 self.getElem = { 17 docElement: doc.documentElement ? doc.documentElement : doc.body, 18 spMenu: doc.getElementById('js-setMenu'), 19 spPhoneMenu: doc.getElementById('js-setPhoneMenu'), 20 spMenuTarget: doc.getElementById('js-setMenu-target'), 21 spSearchTarget: doc.getElementById('js-setMenu-searchTarget'), 22 spPhoneTarget: doc.getElementById('js-setMenu-phoneTarget'), 23 spMenuBtn: doc.getElementById('js-setMenu-button'), 24 spSearchBtn: doc.getElementById('js-setMenu-searchButton'), 25 spPhoneBtn: doc.getElementById('js-setMenu-phoneButton'), 26 changeLang: doc.getElementById('js-changeLanguage'), 27 changeLangTrigger: doc.getElementById('js-changeLanguage-trigger'), 28 changeLangTarget: doc.getElementById('js-changeLanguage-target'), 29 focusOrderTrigger: doc.getElementById('js-ctrlFocusOrder'), 30 divideMenu: doc.getElementById('js-divideMenu'), 31 megaMenu: doc.querySelectorAll('.js-megaMenu'), 32 slideNavTarget: doc.querySelectorAll('.js-slideNavigation-target'), 33 slideNavPrevTrigger: doc.querySelectorAll('.js-slideNavigation-previousTrigger'), 34 slideNavNextTrigger: doc.querySelectorAll('.js-slideNavigation-nextTrigger'), 35 menuConversionGroup: doc.querySelector('.js-menuConversion-group'), 36 menuConversion: doc.querySelector('.js-menuConversion'), 37 categoryHeader: doc.querySelectorAll('.js-categoryHeader'), 38 carousel: doc.querySelector('.js-setHomeCarousel'), 39 changeCategoryTarget: doc.querySelectorAll('.js-setChangeCategory-target'), 40 changeCategoryTrigger: doc.querySelectorAll('.js-setChangeCategory-trigger'), 41 adjustHeight: doc.querySelectorAll('.js-setHomeAdjustHeight'), 42 toggleCart: doc.querySelector('.js-toggleCart'), 43 richSurvey: doc.getElementById('js-setRichSurvey') 44 }; 45 46 self.CONFIG = { 47 FOCUSABLE: 'a, area, [tabindex], input, button, select, option, textarea, output, summary, video, audio, object, embed', 48 SHOW_CLASS: 'is-show', 49 MENU_SHOW_CLASS: 'is-menu-show', 50 MEGA_MENU_SHOW_CLASS: 'is-megaMenu-show', 51 SUGGEST_SHOW_CLASS: 'is-suggest-show', 52 HIDE_CLASS: 'is-hide', 53 ACTIVE_CLASS: 'is-active', 54 CURRENT_CLASS: 'is-current', 55 FIXED_CLASS: 'is-fixed', 56 STOP_CLASS: 'is-stop', 57 ARIA_EXPANDED: 'aria-expanded', 58 ARIA_CONTROLS: 'aria-controls' 59 }; 60 61 self.polyfill.setChildNodeRemove(); 62 self.polyfill.setNodeListForEach(); 63 self.polyfill.setElemClosest(); 64 }; 65 66 KEYENCE.ctrlHeader = function () { 67 var self = this; 68 var header = doc.getElementById('js-controlHeader'); 69 var seriesHeader = doc.querySelector('[data-series-header-target="sticky"]'); 70 var observationTarget = doc.createElement('div'); 71 var fn = {}; 72 var observer = null; 73 var intersectionClassName = 'is-intersection'; 74 var searchHiddenClassName = 'IsHidden'; 75 var suggestTarget = doc.querySelector('.JSHeaderSuggest .JSSearchSuggestTarget'); 76 var delayVal = 100; 77 var resizeTimer = null; 78 79 if (!header) { 80 return; 81 } 82 83 if (seriesHeader) { 84 return; 85 } 86 87 fn.hasIntersectionObserver = function () { 88 return ('IntersectionObserver' in win && 'IntersectionObserverEntry' in win); 89 }; 90 91 fn.init = function () { 92 if (fn.hasIntersectionObserver()) { 93 observationTarget.dataset.observationTarget = 'header'; 94 observationTarget.style.cssText = 95 'position: absolute; bottom: 0; width: 100%; height: 1px;'; 96 header.insertBefore(observationTarget, header.firstChild); 97 98 observer = new IntersectionObserver(fn.handleIntersect); 99 observer.observe(observationTarget); 100 } 101 }; 102 103 fn.adjustHeaderHeight = function () { 104 header.style.height = self.getElem.spMenu.offsetHeight + 'px'; 105 }; 106 107 fn.passIntersection = function () { 108 if (self.getElem.spSearchTarget) { 109 self.getElem.spSearchTarget.classList.add(intersectionClassName); 110 111 setTimeout(function () { 112 self.getElem.spSearchTarget.classList.remove(intersectionClassName); 113 }, delayVal); 114 } 115 }; 116 117 fn.fixHeader = function () { 118 header.classList.add(self.CONFIG.FIXED_CLASS); 119 120 setTimeout(function () { 121 header.classList.add(self.CONFIG.SHOW_CLASS); 122 }, delayVal); 123 124 if (self.getElem.spSearchTarget && self.getElem.spSearchBtn) { 125 if (self.getElem.spSearchTarget.classList.contains(self.CONFIG.SHOW_CLASS)) { 126 self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, true); 127 } else { 128 self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 129 } 130 self.getElem.spSearchBtn.disabled = false; 131 } 132 133 fn.passIntersection(); 134 }; 135 136 fn.releaseHeader = function () { 137 header.classList.remove(self.CONFIG.FIXED_CLASS); 138 setTimeout(function () { 139 header.classList.remove(self.CONFIG.SHOW_CLASS); 140 }, delayVal); 141 142 if (!smallScreenMql.matches && self.getElem.spSearchBtn && self.getElem.spSearchTarget) { 143 self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, true); 144 self.getElem.spSearchBtn.disabled = true; 145 self.getElem.spSearchTarget.classList.remove(self.CONFIG.HIDE_CLASS); 146 } 147 148 fn.passIntersection(); 149 }; 150 151 fn.handleResize = function () { 152 if (resizeTimer !== null) { 153 clearTimeout(resizeTimer); 154 } 155 156 resizeTimer = setTimeout(function () { 157 fn.adjustHeaderHeight(); 158 159 if (!fn.hasIntersectionObserver()) { 160 fn.runForLegacy(); 161 } 162 }, delayVal); 163 }; 164 165 fn.handleIntersect = function (entries) {
166 entries.forEach(function (entry) { 167 if (entry.isIntersecting) { 168 fn.releaseHeader(); 169 fn.adjustHeaderHeight(); 170 } else { 171 fn.fixHeader(); 172 fn.adjustHeaderHeight(); 173 } 174 }); 175 }; 176 177 fn.runForLegacy = function () { 178 if (win.pageYOffset > Math.round(header.getBoundingClientRect().top)) { 179 fn.fixHeader(); 180 } else { 181 fn.releaseHeader(); 182 } 183 184 fn.adjustHeaderHeight(); 185 }; 186 187 fn.runForEachScreen = function () { 188 if (smallScreenMql.matches) { 189 if (!fn.hasIntersectionObserver()) { 190 win.removeEventListener('load', fn.runForLegacy); 191 win.removeEventListener('scroll', fn.runForLegacy); 192 } 193 194 if (self.getElem.spSearchTarget && self.getElem.spSearchBtn) { 195 self.getElem.spSearchBtn.disabled = false; 196 if (self.getElem.spSearchTarget.classList.contains(self.CONFIG.SHOW_CLASS)) { 197 self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, true); 198 } else { 199 self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 200 } 201 } 202 203 if (suggestTarget) { 204 doc.body.classList.remove(self.CONFIG.SUGGEST_SHOW_CLASS); 205 suggestTarget.classList.add(searchHiddenClassName); 206 } 207 } else { 208 header.style.height = 'auto'; 209 if (!fn.hasIntersectionObserver()) { 210 win.addEventListener('load', fn.runForLegacy); 211 win.addEventListener('scroll', fn.runForLegacy); 212 } 213 214 if (self.getElem.spSearchBtn) { 215 setTimeout(function () { 216 if (header.classList.contains(self.CONFIG.FIXED_CLASS)) { 217 self.getElem.spSearchBtn.disabled = false; 218 self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 219 } else { 220 self.getElem.spSearchBtn.disabled = true; 221 self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, true); 222 } 223 }, delayVal); 224 } 225 226 if (suggestTarget) { 227 doc.body.classList.remove(self.CONFIG.SUGGEST_SHOW_CLASS); 228 suggestTarget.classList.add(searchHiddenClassName); 229 } 230 } 231 }; 232 233 fn.init(); 234 fn.runForEachScreen(); 235 smallScreenMql.addListener(fn.runForEachScreen); 236 win.addEventListener('resize', fn.handleResize); 237 }; 238 239 KEYENCE.hideHamburgerMenu = function () { 240 var self = this; 241 var menuTarget = self.getElem && self.getElem.spMenuTarget; 242 var menuBtn = self.getElem && self.getElem.spMenuBtn; 243 var rect; 244 245 if (!menuTarget) { 246 return; 247 } 248 249 // is-show ã® absolute ãå¤ã㨠fixed ã«ãªãå é ã¸è·³ããã®ã§ãæ¶ããã¾ã§ç»é¢ä¸ã®ä½ç½®ãåºå®ãã 250 if (menuTarget.classList.contains(self.CONFIG.SHOW_CLASS)) { 251 rect = menuTarget.getBoundingClientRect(); 252 menuTarget.style.position = 'fixed'; 253 menuTarget.style.top = rect.top + 'px'; 254 255 if (!menuTarget.style.left) { 256 menuTarget.style.left = rect.left + 'px'; 257 } 258 } 259 260 menuTarget.classList.remove(self.CONFIG.SHOW_CLASS); 261 menuTarget.classList.add(self.CONFIG.HIDE_CLASS); 262 263 if (menuBtn) { 264 menuBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 265 } 266 }; 267 268 KEYENCE.resetHamburgerMenuState = function () { 269 var self = this; 270 var menuTarget = self.getElem && self.getElem.spMenuTarget; 271 var slideNavTarget = self.getElem && self.getElem.slideNavTarget; 272 273 if (!menuTarget) { 274 return; 275 } 276 277 menuTarget.classList.remove('is-back'); 278 menuTarget.removeAttribute('style'); 279 280 if (slideNavTarget && slideNavTarget.length) { 281 slideNavTarget.forEach(function (items) { 282 items.classList.remove(self.CONFIG.SHOW_CLASS); 283 items.classList.remove('is-targeted'); 284 }); 285 } 286 287 $(menuTarget).find(self.CONFIG.FOCUSABLE).removeAttr('tabindex'); 288 }; 289 290 KEYENCE.scheduleHamburgerMenuReset = function () { 291 var self = this;
292 var delay = 200; 293 294 if (self.hamburgerResetTimer) { 295 clearTimeout(self.hamburgerResetTimer); 296 } 297 298 self.hamburgerResetTimer = win.setTimeout(function () { 299 self.hamburgerResetTimer = null; 300 self.resetHamburgerMenuState(); 301 }, delay); 302 }; 303 304 KEYENCE.flushHamburgerMenuReset = function () { 305 var self = this; 306 307 if (self.hamburgerResetTimer) { 308 clearTimeout(self.hamburgerResetTimer); 309 self.hamburgerResetTimer = null; 310 } 311 312 self.resetHamburgerMenuState(); 313 }; 314 315 KEYENCE.setMenu = function () { 316 var self = this; 317 var isAnimated = false; 318 var toggleMenu = null; 319 var closeMypageMenu = null; 320 var transitionEndMenu = null; 321 var transitionEndSearch = null; 322 var transitionEndPhone = null; 323 var runKeydown = null; 324 var runForEachScreen = null; 325 var body = null; 326 327 if (!self.getElem.spMenu) { 328 return; 329 } 330 331 body = doc.body; 332 333 if (doc.getElementById('js-controlHeader')) { 334 body.dataset.header = 'full'; 335 } 336 337 // éããæç¤ºã¯ã¯ã©ã¹ã§åºãããã§ã¼ãã¢ã¦ãå¾ã®detailsã®ééã¯setLoginHeaderMenuãæ ã 338 closeMypageMenu = function () { 339 var mypageMenu = doc.querySelector('.js-headerMypageTooltip-menuTarget .js-headerMypageTooltip'); 340 var mypageButton; 341 var mypageContainer; 342 343 if (!mypageMenu || !mypageMenu.open) { 344 return; 345 } 346 347 mypageMenu.classList.remove('is-tooltip-open'); 348 mypageMenu.classList.add('is-tooltip-close'); 349 350 mypageButton = mypageMenu.querySelector('.js-headerMypageTooltip-button'); 351 mypageContainer = mypageMenu.querySelector('.js-headerMypageTooltip-container'); 352 353 if (mypageButton) { 354 mypageButton.setAttribute('aria-expanded', 'false'); 355 } 356 357 if (mypageContainer) { 358 mypageContainer.setAttribute('aria-hidden', 'true'); 359 } 360 361 win.setTimeout(function () { 362 if (mypageMenu.classList.contains('is-tooltip-close')) { 363 mypageMenu.open = false; 364 } 365 }, 200); 366 }; 367 368 toggleMenu = function (e) { 369 var thisTrigger = e.currentTarget; 370 371 e.preventDefault(); 372 373 if (!isAnimated) { 374 isAnimated = true; 375 closeMypageMenu(); 376 377 if (this.otherTargets.length) { 378 this.otherTargets.forEach((target) => { 379 if (target === self.getElem.spMenuTarget) { 380 self.hideHamburgerMenu(); 381 self.scheduleHamburgerMenuReset(); 382 } else if (target) { 383 target.classList.remove(self.CONFIG.SHOW_CLASS); 384 } 385 }); 386 } 387 388 if (this.triggers.length) { 389 this.triggers.forEach((trigger) => { 390 if (trigger) { 391 trigger.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 392 } 393 }); 394 } 395 396 if (this.target.classList.contains(self.CONFIG.SHOW_CLASS)) { 397 thisTrigger.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 398 this.target.classList.remove(self.CONFIG.SHOW_CLASS); 399 this.target.classList.add(self.CONFIG.HIDE_CLASS); 400 body.classList.remove(self.CONFIG.MENU_SHOW_CLASS); 401 } else { 402 if (this.target === self.getElem.spMenuTarget && self.hamburgerResetTimer) { 403 body.classList.add('is-menu-initializing'); 404 self.flushHamburgerMenuReset(); 405 self.getElem.spMenuTarget.offsetHeight; 406 body.classList.remove('is-menu-initializing'); 407 } 408 409 thisTrigger.setAttribute(self.CONFIG.ARIA_EXPANDED, true); 410 this.target.classList.add(self.CONFIG.SHOW_CLASS); 411 this.target.classList.remove(self.CONFIG.HIDE_CLASS); 412 body.classList.add(self.CONFIG.MENU_SHOW_CLASS); 413 } 414 415 if (smallScreenMql.matches) { 416 if (self.getElem.docElement.scrollTop) { 417 self.getElem.docElement.scrollTop = 0; 418 } 419 420 if (doc.body.scrollTop) { 421 doc.body.scrollTop = 0; 422 } 423 } 424 } 425 }; 426 427 runKeydown = function (e) { 428 if (e.key === 'Esc' || e.key === 'Escape') { 429 e.preventDefault(); 430 431 if (!this.classList.contains(self.CONFIG.MENU_SHOW_CLASS)) { 432 return; 433 } 434 435 this.classList.remove(self.CONFIG.MENU_SHOW_CLASS); 436 437 if (self.getElem.spMenuBtn && self.getElem.spMenuTarget) { 438 self.getElem.spMenuBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 439 self.getElem.spMenuTarget.classList.remove(self.CONFIG.SHOW_CLASS); 440 self.getElem.spMenuTarget.classList.add(self.CONFIG.HIDE_CLASS); 441 } 442 443 if (self.getElem.spSearchBtn && self.getElem.spSearchTarget) { 444 self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 445 self.getElem.spSearchTarget.classList.remove(self.CONFIG.SHOW_CLASS); 446 self.getElem.spSearchTarget.classList.add(self.CONFIG.HIDE_CLASS); 447 } 448 449 if (self.getElem.spPhoneBtn && self.getElem.spPhoneTarget) { 450 self.getElem.spPhoneBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 451 self.getElem.spPhoneTarget.classList.remove(self.CONFIG.SHOW_CLASS); 452 self.getElem.spPhoneTarget.classList.add(self.CONFIG.HIDE_CLASS); 453 } 454 455 closeMypageMenu(); 456 } 457 }; 458 459 transitionEndMenu = function () { 460 isAnimated = false; 461 462 if (!body.classList.contains(self.CONFIG.MENU_SHOW_CLASS)) { 463 self.resetHamburgerMenuState(); 464 } 465 }; 466 467 transitionEndSearch = function () { 468 isAnimated = false; 469 self.flushHamburgerMenuReset(); 470 471 if (!smallScreenMql.matches && self.getElem.spSearchTarget && 472 self.getElem.spSearchTarget.classList.contains(self.CONFIG.SHOW_CLASS) 473 ) { 474 if (self.getElem.spSearchTarget.querySelector('.JSSearchSuggestInput')) { 475 self.getElem.spSearchTarget.querySelector('.JSSearchSuggestInput').focus(); 476 } 477 } 478 }; 479 480 transitionEndPhone = function () { 481 isAnimated = false; 482 self.flushHamburgerMenuReset(); 483 484 if (!body.classList.contains(self.CONFIG.MENU_SHOW_CLASS)) { 485 self.getElem.spPhoneTarget.removeAttribute('style'); 486 $(self.getElem.spPhoneTarget).find(self.CONFIG.FOCUSABLE).removeAttr('tabindex'); 487 } 488 }; 489 490 if (self.getElem.spMenuBtn && self.getElem.spMenuTarget) { 491 var triggers = [self.getElem.spSearchBtn, self.getElem.spPhoneBtn]; 492 var otherTargets = [self.getElem.spSearchTarget, self.getElem.spPhoneTarget]; 493 494 self.getElem.spMenuBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 495 self.getElem.spMenuBtn.setAttribute(self.CONFIG.ARIA_CONTROLS, self.getElem.spMenuTarget.id); 496 self.getElem.spMenuBtn.addEventListener('click', { 497 handleEvent: toggleMenu, 498 triggers: triggers, 499 target: self.getElem.spMenuTarget, 500 otherTargets: otherTargets 501 }, false); 502 } 503 504 if (self.getElem.spSearchBtn && self.getElem.spSearchTarget) { 505 var triggers = [self.getElem.spMenuBtn, self.getElem.spPhoneBtn]; 506 var otherTargets = [self.getElem.spMenuTarget, self.getElem.spPhoneTarget]; 507 508 self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 509 self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_CONTROLS, self.getElem.spSearchTarget.id); 510 self.getElem.spSearchBtn.addEventListener('click', { 511 handleEvent: toggleMenu, 512 triggers: triggers, 513 target: self.getElem.spSearchTarget, 514 otherTargets: otherTargets 515 }, false); 516 } 517 518 if (self.getElem.spPhoneBtn && self.getElem.spPhoneTarget) { 519 var triggers = [self.getElem.spMenuBtn, self.getElem.spSearchBtn]; 520 var otherTargets = [self.getElem.spMenuTarget, self.getElem.spSearchTarget]; 521 522 self.getElem.spPhoneBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 523 self.getElem.spPhoneBtn.setAttribute(self.CONFIG.ARIA_CONTROLS, self.getElem.spPhoneTarget.id); 524 self.getElem.spPhoneBtn.addEventListener('click', { 525 handleEvent: toggleMenu, 526 triggers: triggers, 527 target: self.getElem.spPhoneTarget, 528 otherTargets: otherTargets 529 }, false); 530 } 531 532 self.getElem.spMenuBtn.children[0].addEventListener('transitionend', transitionEndMenu, false); 533 self.getElem.spSearchBtn.addEventListener('transitionend', transitionEndSearch, false); 534 535 if (self.getElem.spPhoneBtn) { 536 self.getElem.spPhoneBtn.addEventListener('transitionend', transitionEndPhone, false); 537 } 538 539 runForEachScreen = function () { 540 body.classList.add('is-menu-initializing'); 541 setTimeout(function () { 542 body.classList.remove('is-menu-initializing'); 543 }, 200); 544 545 if (smallScreenMql.matches) { 546 body.addEventListener('keydown', runKeydown, false); 547 body.classList.remove(self.CONFIG.MENU_SHOW_CLASS); 548 doc.querySelector('.JSHeaderSuggest .JSSearchSuggestInput').blur(); 549 if (self.getElem.spMenuBtn && self.getElem.spMenuTarget) { 550 self.getElem.spMenuTarget.classList.add(self.CONFIG.HIDE_CLASS); 551 self.getElem.spMenuTarget.classList.remove(self.CONFIG.SHOW_CLASS); 552 self.getElem.spMenuBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 553 } 554 if (self.getElem.spSearchBtn && self.getElem.spSearchTarget) { 555 self.getElem.spSearchTarget.classList.add(self.CONFIG.HIDE_CLASS); 556 self.getElem.spSearchTarget.classList.remove(self.CONFIG.SHOW_CLASS); 557 self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 558 } 559 if (self.getElem.spPhoneBtn && self.getElem.spPhoneTarget) { 560 self.getElem.spPhoneTarget.classList.add(self.CONFIG.HIDE_CLASS); 561 self.getElem.spPhoneTarget.classList.remove(self.CONFIG.SHOW_CLASS); 562 self.getElem.spPhoneBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 563 } 564 } else { 565 body.removeEventListener('keydown', runKeydown, false); 566 567 if (self.getElem.spMenuBtn && self.getElem.spMenuTarget) { 568 self.getElem.spMenuTarget.classList.remove(self.CONFIG.HIDE_CLASS); 569 } 570 571 if (self.getElem.spSearchBtn && self.getElem.spSearchTarget) { 572 self.getElem.spSearchTarget.classList.remove(self.CONFIG.HIDE_CLASS); 573 self.getElem.spSearchTarget.classList.remove(self.CONFIG.SHOW_CLASS); 574 self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 575 576 if (doc.querySelector('[data-series-header-target="sticky"]')) { 577 self.getElem.spSearchBtn.disabled = false; 578 self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 579 self.getElem.spSearchTarget.classList.add(self.CONFIG.HIDE_CLASS); 580 body.classList.remove(self.CONFIG.MENU_SHOW_CLASS); 581 } 582 } 583 if (self.getElem.spPhoneBtn && self.getElem.spPhoneTarget) { 584 self.getElem.spPhoneTarget.classList.remove(self.CONFIG.HIDE_CLASS); 585 self.getElem.spPhoneTarget.classList.remove(self.CONFIG.SHOW_CLASS); 586 self.getElem.spPhoneBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 587 } 588 } 589 }; 590 591 runForEachScreen(); 592 smallScreenMql.addListener(runForEachScreen); 593 }; 594 595 KEYENCE.setPhoneMenu = function () { 596 var self = this; 597 var isAnimated = false; 598 var togglePhoneMenu = null; 599 var transitionEndPhone = null; 600 var runForEachScreen = null; 601 var runKeydown = null; 602 var body = doc.body; 603 604 if (!self.getElem.spPhoneMenu || !self.getElem.spPhoneBtn || !self.getElem.spPhoneTarget) { 605 return; 606 } 607 608 togglePhoneMenu = function (e) { 609 var thisTrigger = e.currentTarget; 610 611 e.preventDefault(); 612 613 if (!isAnimated) { 614 isAnimated = true; 615 616 if (this.phoneTarget.classList.contains(self.CONFIG.SHOW_CLASS)) { 617 thisTrigger.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 618 this.phoneTarget.classList.remove(self.CONFIG.SHOW_CLASS); 619 this.phoneTarget.classList.add(self.CONFIG.HIDE_CLASS); 620 body.classList.remove(self.CONFIG.MENU_SHOW_CLASS); 621 } else { 622 thisTrigger.setAttribute(self.CONFIG.ARIA_EXPANDED, true); 623 this.phoneTarget.classList.add(self.CONFIG.SHOW_CLASS); 624 this.phoneTarget.classList.remove(self.CONFIG.HIDE_CLASS); 625 body.classList.add(self.CONFIG.MENU_SHOW_CLASS); 626 } 627 } 628 }; 629 630 runKeydown = function (e) { 631 if (e.key === 'Esc' || e.key === 'Escape') { 632 e.preventDefault(); 633 634 if (!this.classList.contains(self.CONFIG.MENU_SHOW_CLASS)) { 635 return; 636 } 637 638 this.classList.remove(self.CONFIG.MENU_SHOW_CLASS); 639 640 self.getElem.spPhoneBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 641 self.getElem.spPhoneTarget.classList.remove(self.CONFIG.SHOW_CLASS); 642 self.getElem.spPhoneTarget.classList.add(self.CONFIG.HIDE_CLASS); 643 } 644 }; 645 646 transitionEndPhone = function () { 647 isAnimated = false; 648 }; 649 650 self.getElem.spPhoneTarget.classList.add(self.CONFIG.HIDE_CLASS); 651 self.getElem.spPhoneBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 652 self.getElem.spPhoneBtn.setAttribute(self.CONFIG.ARIA_CONTROLS, self.getElem.spPhoneTarget.id); 653 self.getElem.spPhoneBtn.addEventListener('click', { 654 handleEvent: togglePhoneMenu, 655 phoneTrigger: self.getElem.spPhoneBtn, 656 phoneTarget: self.getElem.spPhoneTarget
657 }, false); 658 659 self.getElem.spPhoneBtn.addEventListener('transitionend', transitionEndPhone, false); 660 661 runForEachScreen = function () { 662 body.classList.remove(self.CONFIG.MENU_SHOW_CLASS); 663 self.getElem.spPhoneBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 664 self.getElem.spPhoneTarget.classList.remove(self.CONFIG.SHOW_CLASS); 665 666 if (smallScreenMql.matches) { 667 body.addEventListener('keydown', runKeydown, false); 668 self.getElem.spPhoneTarget.classList.add(self.CONFIG.HIDE_CLASS); 669 } else { 670 body.removeEventListener('keydown', runKeydown, false); 671 self.getElem.spPhoneTarget.classList.remove(self.CONFIG.HIDE_CLASS); 672 } 673 }; 674 675 runForEachScreen(); 676 smallScreenMql.addListener(runForEachScreen); 677 }; 678 679 KEYENCE.setMegaMenu = function () { 680 var self = this; 681 var rootSelector = '.js-megaMenu'; 682 var targetSelector = null; 683 var triggerSelector = null; 684 var overlayName = 'js-menu-overlay'; 685 var targets = null; 686 var triggers = null; 687 var fn = {}; 688 var handlers = {}; 689 var isAnimated = false; 690 var slideNavTargetSelector = '.js-slideNavigation-target'; 691 var arrPageX = []; 692 var arrPageY = []; 693 var resizeTimer = null; 694 var delayVal = 100; 695 696 if (!self.getElem.megaMenu.length) { 697 return; 698 } 699 700 targetSelector = rootSelector + '-target'; 701 triggerSelector = rootSelector + '-trigger'; 702 targets = doc.querySelectorAll(targetSelector); 703 triggers = doc.querySelectorAll(triggerSelector); 704 705 if (!targets.length || !triggers.length) { 706 return; 707 } 708 709 fn.hideMenu = function (target) { 710 if (target && target.nodeType === 1 && target.classList.contains(self.CONFIG.SHOW_CLASS)) { 711 target.classList.remove(self.CONFIG.SHOW_CLASS); 712 target.classList.add(self.CONFIG.HIDE_CLASS); 713 target.removeAttribute('style'); 714 } 715 }; 716 717 fn.hideSuggest = function () { 718 doc.body.classList.remove(self.CONFIG.SUGGEST_SHOW_CLASS); 719 doc.querySelector('.JSHeaderSuggest .JSSearchSuggestTarget').classList.add('IsHidden'); 720 }; 721 722 fn.showMenu = function (target) { 723 if (target && target.nodeType === 1) { 724 target.classList.add(self.CONFIG.SHOW_CLASS); 725 target.classList.remove(self.CONFIG.HIDE_CLASS); 726 doc.body.classList.add(self.CONFIG.MEGA_MENU_SHOW_CLASS); 727 if (doc.getElementById(overlayName)) { 728 doc.getElementById(overlayName).setAttribute('data-owner', 'megaMenu'); 729 } 730 } 731 }; 732 733 fn.adjustTargetHeight = function (target) { 734 if (target && target.nodeType === 1 && target.children[0]) { 735 if (target.offsetHeight < target.children[0].offsetHeight) { 736 target.style.height = target.children[0].offsetHeight + 'px'; 737 } else { 738 target.style.height = target.offsetHeight + 'px'; 739 } 740 } 741 }; 742 743 fn.activateTrigger = function (trigger) { 744 if (trigger && trigger.nodeType === 1) { 745 trigger.classList.add(self.CONFIG.ACTIVE_CLASS); 746 } 747 }; 748 749 fn.deactivateTrigger = function (trigger) { 750 if (trigger && trigger.nodeType === 1) { 751 trigger.classList.remove(self.CONFIG.ACTIVE_CLASS); 752 } 753 }; 754 755 fn.removeMenuShowClass = function () { 756 doc.body.classList.remove(self.CONFIG.MEGA_MENU_SHOW_CLASS); 757 }; 758 759 handlers.onForcusinForFocusable = function (e) { 760 if (!e.target.closest(rootSelector)) { 761 targets.forEach(function (items) { 762 fn.hideMenu(items); 763 }); 764
765 triggers.forEach(function (items) { 766 fn.deactivateTrigger(items); 767 }); 768 769 fn.removeMenuShowClass(); 770 } 771 }; 772 773 handlers.onMouseenterForTrigger = function (e) { 774 var thisTrigger = e.currentTarget; 775 776 e.preventDefault(); 777 778 triggers.forEach(function (items) { 779 fn.deactivateTrigger(items); 780 }); 781 targets.forEach(function (items) { 782 fn.hideMenu(items); 783 }); 784 fn.showMenu(this.target); 785 fn.adjustTargetHeight(this.target); 786 fn.activateTrigger(thisTrigger); 787 doc.activeElement.blur(); 788 fn.hideSuggest(); 789 }; 790 791 handlers.onForcusinForTrigger = function (e) { 792 var thisTrigger = e.currentTarget; 793 794 triggers.forEach(function (items) { 795 fn.deactivateTrigger(items); 796 }); 797 targets.forEach(function (items) { 798 fn.hideMenu(items); 799 }); 800 fn.showMenu(this.target); 801 fn.adjustTargetHeight(this.target); 802 fn.activateTrigger(thisTrigger); 803 fn.hideSuggest(); 804 }; 805 806 handlers.onTouchstartForTrigger = function (e) { 807 arrPageX.length = 0; 808 arrPageY.length = 0; 809 arrPageX.push(e.touches[0].pageX); 810 arrPageY.push(e.touches[0].pageY); 811 812 if (doc.querySelectorAll('.JSSearchSuggestTarget').length) { 813 doc.querySelectorAll('.JSSearchSuggestTarget').forEach(function (items) { 814 items.classList.add('IsHidden'); 815 }); 816 } 817 }; 818 819 handlers.onTouchendForTrigger = function (e) { 820 if (e.changedTouches[0].pageX !== arrPageX[0] || e.changedTouches[0].pageY !== arrPageY[0]) { 821 e.preventDefault(); 822 } 823 }; 824 825 handlers.onMouseleaveForTrigger = function (e) { 826 var thisTrigger = e.currentTarget; 827 828 fn.hideMenu(this.target); 829 fn.deactivateTrigger(thisTrigger); 830 fn.removeMenuShowClass(); 831 }; 832 833 handlers.onMouseenterForTarget = function () { 834 fn.showMenu(this.target); 835 fn.adjustTargetHeight(this.target); 836 fn.activateTrigger(this.trigger); 837 fn.hideSuggest(); 838 }; 839 840 handlers.onMouseleaveForTarget = function () { 841 fn.hideMenu(this.target); 842 fn.deactivateTrigger(this.trigger); 843 fn.removeMenuShowClass(); 844 }; 845 846 handlers.onFocusinForTarget = function () { 847 fn.showMenu(this.target); 848 fn.hideSuggest(); 849 }; 850 851 handlers.onTouchstartForDoc = function (e) { 852 arrPageX.length = 0; 853 arrPageY.length = 0; 854 arrPageX.push(e.touches[0].pageX); 855 arrPageY.push(e.touches[0].pageY); 856 }; 857 858 handlers.onTouchstartCloseMegaMenu = function (e) { 859 if (e.changedTouches[0].pageX === arrPageX[0] || e.changedTouches[0].pageY === arrPageY[0]) { 860 if (!e.target.closest(rootSelector)) { 861 if (e.target.id === overlayName) { 862 e.preventDefault(); 863 } 864 fn.deactivateTrigger(this.trigger); 865 fn.hideMenu(this.target); 866 fn.removeMenuShowClass(); 867 } 868 } 869 }; 870 871 handlers.resizeTarget = function () { 872 if (resizeTimer !== null) { 873 clearTimeout(resizeTimer); 874 } 875 876 resizeTimer = setTimeout(function () { 877 targets.forEach(function (items) { 878 if (items.classList.contains(self.CONFIG.SHOW_CLASS) && items.children[0]) { 879 items.style.height = items.children[0].offsetHeight + 'px'; 880 } 881 }); 882 }, delayVal); 883 }; 884 885 handlers.slideNext = function (e) { 886 var $this = $(this); 887 888 if (!self.getElem.slideNavTarget.length) { 889 return; 890 } 891 892 e.preventDefault(); 893 894 if (!isAnimated) { 895 isAnimated = true; 896 897 if (self.getElem.docElement.scrollTop) { 898 self.getElem.docElement.scrollTop = 0; 899 } 900 901 if (doc.body.scrollTop) { 902 doc.body.scrollTop = 0; 903 } 904 905 self.getElem.slideNavTarget.forEach(function (items) { 906 items.classList.remove(self.CONFIG.SHOW_CLASS); 907 }); 908 909 if (this.closest('li') && this.closest('li').querySelector(slideNavTargetSelector)) { 910 this.closest('li').querySelector(slideNavTargetSelector).classList.add(self.CONFIG.SHOW_CLASS); 911 $(self.getElem.spMenuTarget).find(self.CONFIG.FOCUSABLE).attr('tabindex', -1); 912 $(this.closest('li').querySelector(slideNavTargetSelector)).find(self.CONFIG.FOCUSABLE).removeAttr('tabindex'); 913 } 914 915 if ($this.parents(slideNavTargetSelector).length) { 916 $this.parents(slideNavTargetSelector).addClass(self.CONFIG.SHOW_CLASS); 917 } 918 919 if (self.getElem.spMenuTarget) { 920 self.getElem.spMenuTarget.style.left = Number(self.getElem.spMenuTarget.style.left.slice(0, -1)) - 100 + '%'; 921 } 922 this.blur(); 923 } 924 }; 925 926 handlers.slidePrev = function (e) { 927 if (!self.getElem.spMenuTarget) { 928 return; 929 } 930 931 e.preventDefault(); 932 933 if (!isAnimated) { 934 isAnimated = true; 935 936 if (self.getElem.docElement.scrollTop) { 937 self.getElem.docElement.scrollTop = 0; 938 } 939 940 if (doc.body.scrollTop) { 941 doc.body.scrollTop = 0; 942 } 943 944 self.getElem.spMenuTarget.classList.add('is-back'); 945 self.getElem.spMenuTarget.style.left = Number(self.getElem.spMenuTarget.style.left.slice(0, -1)) + 100 + '%'; 946 if (this.closest(slideNavTargetSelector)) { 947 this.closest(slideNavTargetSelector).classList.add('is-targeted'); 948 } 949 this.blur(); 950 } 951 }; 952 953 handlers.slideEnd = function () { 954 var target = null; 955 956 if (this.classList.contains('is-back')) { 957 if (self.getElem.slideNavPrevTrigger.length) { 958 self.getElem.slideNavPrevTrigger.forEach(function (items) { 959 target = items.closest(slideNavTargetSelector + '.is-targeted'); 960 961 if (target) { 962 target.classList.remove(self.CONFIG.SHOW_CLASS); 963 target.classList.remove('is-targeted'); 964 $(self.getElem.spMenuTarget).find(self.CONFIG.FOCUSABLE).attr('tabindex', -1); 965 $(self.getElem.slideNavTarget).filter('.' + self.CONFIG.SHOW_CLASS).find(self.CONFIG.FOCUSABLE).removeAttr('tabindex'); 966 } 967 }); 968 } 969 this.classList.remove('is-back'); 970 } 971 972 if (Number(self.getElem.spMenuTarget.style.left.slice(0, -1)) === 0) { 973 $(self.getElem.spMenuTarget).find(self.CONFIG.FOCUSABLE).removeAttr('tabindex'); 974 } 975 isAnimated = false; 976 }; 977 978 self.getElem.megaMenu.forEach(function (items) {
979 var target = items.querySelector(targetSelector); 980 var trigger = items.querySelector(triggerSelector); 981 var objMouseenterForTrigger = { 982 handleEvent: handlers.onMouseenterForTrigger, 983 target: target 984 }; 985 var objForcusinForTrigger = { 986 handleEvent: handlers.onForcusinForTrigger, 987 target: target 988 }; 989 var objMouseleaveForTrigger = { 990 handleEvent: handlers.onMouseleaveForTrigger, 991 target: target 992 }; 993 var objMouseenterForTarget = { 994 handleEvent: handlers.onMouseenterForTarget, 995 trigger: trigger, 996 target: target 997 }; 998 var objMouseleaveForTarget = { 999 handleEvent: handlers.onMouseleaveForTarget, 1000 trigger: trigger, 1001 target: target 1002 }; 1003 var objFocusinForTarget = { 1004 handleEvent: handlers.onFocusinForTarget, 1005 target: target 1006 }; 1007 var objTouchstarCloseMegaMenu = { 1008 handleEvent: handlers.onTouchstartCloseMegaMenu, 1009 trigger: trigger, 1010 target: target 1011 }; 1012 1013 fn.runForEachScreen1 = function () { 1014 if (smallScreenMql.matches) { 1015 trigger.removeEventListener('mouseenter', objMouseenterForTrigger, false); 1016 trigger.removeEventListener('touchstart', handlers.onTouchstartForTrigger, false); 1017 trigger.removeEventListener('touchmove', objMouseenterForTrigger, false); 1018 trigger.removeEventListener('touchend', handlers.onTouchendForTrigger, false); 1019 trigger.removeEventListener('focusin', objForcusinForTrigger, false); 1020 trigger.removeEventListener('mouseleave', objMouseleaveForTrigger, false); 1021 target.removeEventListener('mouseenter', objMouseenterForTarget, false); 1022 target.removeEventListener('mouseleave', objMouseleaveForTarget, false); 1023 target.removeAttribute('style'); 1024 target.querySelectorAll(self.CONFIG.FOCUSABLE).forEach(function (selectors) { 1025 selectors.removeEventListener('focusin', objFocusinForTarget, false); 1026 }); 1027 fn.removeMenuShowClass(); 1028 fn.deactivateTrigger(trigger); 1029 doc.removeEventListener('touchstart', handlers.onTouchstartForDoc, false); 1030 doc.removeEventListener('touchend', objTouchstarCloseMegaMenu, false); 1031 win.removeEventListener('resize', handlers.resizeTarget, false); 1032 } else { 1033 trigger.addEventListener('touchstart', handlers.onTouchstartForTrigger, false); 1034 trigger.addEventListener('touchend', handlers.onTouchendForTrigger, false); 1035 trigger.addEventListener('mouseenter', objMouseenterForTrigger, false); 1036 trigger.addEventListener('touchmove', objMouseenterForTrigger, false); 1037 trigger.addEventListener('focusin', objForcusinForTrigger, false); 1038 trigger.addEventListener('mouseleave', objMouseleaveForTrigger, false); 1039 target.addEventListener('mouseenter', objMouseenterForTarget, false); 1040 target.addEventListener('mouseleave', objMouseleaveForTarget, false); 1041 target.querySelectorAll(self.CONFIG.FOCUSABLE).forEach(function (selectors) { 1042 selectors.addEventListener('focusin', objFocusinForTarget, false); 1043 }); 1044 doc.addEventListener('touchstart', handlers.onTouchstartForDoc, false); 1045 doc.addEventListener('touchend', objTouchstarCloseMegaMenu, false); 1046 win.addEventListener('resize', handlers.resizeTarget, false); 1047 } 1048 }; 1049 1050 fn.runForEachScreen1(); 1051 smallScreenMql.addListener(fn.runForEachScreen1); 1052 }); 1053 1054 fn.spMegaMenuEvents = function () { 1055 if (self.getElem.slideNavNextTrigger.length) { 1056 self.getElem.slideNavNextTrigger.forEach(function (items) { 1057 items.addEventListener('click', handlers.slideNext, false); 1058 }); 1059 } 1060 1061 if (self.getElem.slideNavPrevTrigger.length) { 1062 self.getElem.slideNavPrevTrigger.forEach(function (items) { 1063 items.addEventListener('click', handlers.slidePrev, false); 1064 }); 1065 } 1066 1067 if (self.getElem.spMenuTarget) { 1068 self.getElem.spMenuTarget.addEventListener('transitionend', handlers.slideEnd, false); 1069 } 1070 }; 1071 1072 fn.runForEachScreen2 = function () { 1073 if (smallScreenMql.matches) { 1074 fn.spMegaMenuEvents(); 1075
1076 targets.forEach(function (items) { 1077 items.classList.remove(self.CONFIG.SHOW_CLASS); 1078 items.classList.remove(self.CONFIG.HIDE_CLASS); 1079 }); 1080 1081 doc.querySelectorAll(self.CONFIG.FOCUSABLE).forEach(function (selectors) { 1082 selectors.removeEventListener('focusin', handlers.onForcusinForFocusable, false); 1083 }); 1084 1085 if (self.getElem.changeLangTrigger) { 1086 self.getElem.changeLangTrigger.removeEventListener('focusin', handlers.onForcusinForFocusable, false); 1087 } 1088 } else { 1089 $(self.getElem.spMenuTarget).find(self.CONFIG.FOCUSABLE).removeAttr('tabindex'); 1090 1091 if (self.getElem.slideNavNextTrigger.length) { 1092 self.getElem.slideNavNextTrigger.forEach(function (items) { 1093 items.removeEventListener('click', handlers.slideNext, false); 1094 }); 1095 } 1096 1097 if (self.getElem.slideNavPrevTrigger.length) { 1098 self.getElem.slideNavPrevTrigger.forEach(function (items) { 1099 items.removeEventListener('click', handlers.slidePrev, false); 1100 }); 1101 } 1102 1103 if (self.getElem.spMenuTarget) { 1104 self.getElem.spMenuTarget.removeAttribute('style'); 1105 self.getElem.spMenuTarget.removeEventListener('transitionend', handlers.slideEnd, false); 1106 } 1107 1108 if (self.getElem.slideNavTarget) { 1109 self.getElem.slideNavTarget.forEach(function (items) { 1110 items.classList.remove(self.CONFIG.SHOW_CLASS); 1111 }); 1112 } 1113 1114 doc.querySelectorAll(self.CONFIG.FOCUSABLE).forEach(function (selectors) { 1115 selectors.addEventListener('focusin', handlers.onForcusinForFocusable, false); 1116 }); 1117 1118 if (self.getElem.changeLangTrigger) { 1119 self.getElem.changeLangTrigger.addEventListener('focusin', handlers.onForcusinForFocusable, false); 1120 } 1121 } 1122 }; 1123 1124 fn.runForEachScreen2(); 1125 smallScreenMql.addListener(fn.runForEachScreen2); 1126 }; 1127
1128 KEYENCE.divideMenu = function () { 1129 var self = this; 1130 var targetList = null; 1131 var targetListLength = null; 1132 var $targetList = null; 1133 var i = null; 1134 var j = null; 1135 var rowNumArrLength = null; 1136 var divideArrLength = null; 1137 var divideArrsLength = null; 1138 var rowNumArr = []; 1139 var divideArr = []; 1140 var accumulation = 0; 1141 var divideCount = 0; 1142 var groupCount = 0; 1143 var groupClassStr = 'group'; 1144 1145 if (!self.getElem.divideMenu) { 1146 return; 1147 } 1148 1149 targetList = self.getElem.divideMenu.querySelectorAll('.navigationMegaMenu-list'); 1150 $targetList = $(targetList); 1151 targetListLength = $targetList.length; 1152 1153 if (!targetListLength) { 1154 return; 1155 } 1156 1157 for (i = 0; i < targetListLength; i++) { 1158 if (!$targetList.eq(i).hasClass('smallScreen-show')) { 1159 rowNumArr.push($targetList.eq(i).find('li:not(".smallScreen-show")').length); 1160 } else { 1161 rowNumArr.push(0); 1162 } 1163 } 1164 1165 divideArr[divideCount] = []; 1166 for (i = 0, rowNumArrLength = rowNumArr.length; i < rowNumArrLength; i++) { 1167 if (accumulation <= win.kpi_usersettings.MegaMenuRowsNum) { 1168 accumulation += rowNumArr[i]; 1169 1170 if (accumulation + rowNumArr[i + 1] <= win.kpi_usersettings.MegaMenuRowsNum) { 1171 divideArr[divideCount].push(rowNumArr[i]); 1172 divideArr[divideCount + 1] = []; 1173 } else { 1174 divideArr[divideCount].push(rowNumArr[i]); 1175 divideArr[divideCount + 1] = []; 1176 accumulation = 0; 1177 divideCount++; 1178 } 1179 } 1180 } 1181 1182 divideArr.pop();
1183 $(self.getElem.divideMenu).find('.layout-megaMenuGrid').addClass('of-column-' + divideArr.length); 1184 1185 for (i = 0, divideArrLength = divideArr.length; i < divideArrLength; i++) { 1186 for (j = 0, divideArrsLength = divideArr[i].length; j < divideArrsLength; j++) { 1187 groupCount++; 1188 $targetList.eq(groupCount - 1).addClass(groupClassStr + i); 1189 } 1190 1191 $targetList.filter('.' + groupClassStr + i).wrapAll('<div class="layout-megaMenuGrid-column of-column-1" />'); 1192 $targetList.filter('.' + groupClassStr + i).removeClass(groupClassStr + i); 1193 } 1194 }; 1195 1196 KEYENCE.setCategoryHeader = function () { 1197 var self = this; 1198 var roots = self.getElem.categoryHeader; 1199 var classNames = { 1200 commonInner: 'js-categoryHeader-commonInner', 1201 titleArea: 'js-categoryHeader-titleArea', 1202 navigationGroup: 'js-categoryHeader-navigationGroup', 1203 navigationListOuter: 'js-categoryHeader-navigationListOuter', 1204 trigger: 'js-categoryHeader-trigger', 1205 targetGroup: 'js-categoryHeader-targetGroup', 1206 target: 'js-categoryHeader-target', 1207 subNavigationLink: 'js-categoryHeader-subNavigationLink' 1208 }; 1209 var arrPageX = []; 1210 var arrPageY = []; 1211 var fn = {}; 1212 var handlers = {}; 1213 1214 if (!roots.length) { 1215 return; 1216 } 1217 1218 fn.init = function () { 1219 roots.forEach(function (root) { 1220 var handlerSet = fn.createHandlerSet(root); 1221 fn.runForEachScreen(root, handlerSet); 1222 1223 smallScreenMql.addEventListener('change', function () { 1224 fn.runForEachScreen(root, handlerSet); 1225 }); 1226 }); 1227 }; 1228 1229 fn.setAttribute = function (root) { 1230 var targets = root.querySelectorAll('.' + classNames.target); 1231 1232 targets.forEach(function (target) { 1233 target.setAttribute("aria-hidden", true); 1234 }); 1235 }; 1236 1237 fn.setMaxWidthOfNavigation = function (root, mql) { 1238 var commonInner = root.querySelector('.' + classNames.commonInner); 1239 var titleArea = root.querySelector('.' + classNames.titleArea); 1240 var navigationGroup = root.querySelector('.' + classNames.navigationGroup); 1241 var commonInnerWidth; 1242 var titleAreaWidth; 1243 var maxWidth; 1244 1245 if (!commonInner || !titleArea || !navigationGroup) { 1246 return; 1247 } 1248 1249 commonInnerWidth = commonInner.offsetWidth; 1250 titleAreaWidth = titleArea.offsetWidth; 1251 1252 maxWidth = mql.matches ? "none" : commonInnerWidth - titleAreaWidth + 'px'; 1253 1254 navigationGroup.style.maxWidth = maxWidth; 1255 }; 1256 1257 fn.setOverflowingClass = function (root) { 1258 var navigationListOuter = root.querySelector('.' + classNames.navigationListOuter); 1259 1260 if (!navigationListOuter) { 1261 return; 1262 } 1263 1264 fn.deActiveSubNavigation(root); 1265 1266 if (navigationListOuter.scrollWidth > navigationListOuter.clientWidth) { 1267 navigationListOuter.classList.add('is-overflowing') 1268 } else { 1269 navigationListOuter.classList.remove('is-overflowing') 1270 } 1271 }; 1272 fn.setPositionOfSubNavigation = function (root, currentNavigation) { 1273 var navigationGroup = root.querySelector('.' + classNames.navigationGroup); 1274 var targetGroup = root.querySelector('.' + classNames.targetGroup); 1275 var currentLeft; 1276 var currentRight; 1277 var wrapperLeft; 1278 var wrapperRight; 1279 var targetGroupWidth; 1280 var left; 1281 if (!currentNavigation || !navigationGroup || !targetGroup) { 1282 return; 1283 } 1284 1285 setTimeout(() => { 1286 currentLeft = currentNavigation.getBoundingClientRect().left; 1287 currentRight = currentNavigation.getBoundingClientRect().right; 1288 wrapperLeft = navigationGroup.getBoundingClientRect().left; 1289 wrapperRight = navigationGroup.getBoundingClientRect().right; 1290 targetGroupWidth = targetGroup.offsetWidth; 1291 1292 if (currentLeft < wrapperLeft) { 1293 left = wrapperLeft + 'px'; 1294 } else if (currentRight >= wrapperRight) { 1295 left = wrapperRight - targetGroupWidth + 'px'; 1296 } else if (wrapperRight - currentLeft < targetGroupWidth) { 1297 left = currentLeft - (targetGroupWidth - currentNavigation.offsetWidth) + 'px'; 1298 } else { 1299 left = currentLeft + 'px'; 1300 } 1301 1302 targetGroup.style.left = left; 1303 }, 0); 1304 1305 }; 1306 1307 1308 1309 fn.activeSubNavigation = function (root, currentNavigation) { 1310 var triggers = root.querySelectorAll('.' + classNames.trigger); 1311 var targets = root.querySelectorAll('.' + classNames.target); 1312 var targetGroup = root.querySelector('.' + classNames.targetGroup); 1313 var currentNavigationId = currentNavigation ? currentNavigation.getAttribute("aria-controls") : null; 1314 var hasSubNavigation = root.querySelector('#' + currentNavigationId) ? true : false; 1315 1316 hasSubNavigation ? targetGroup.classList.add(KEYENCE.CONFIG.SHOW_CLASS) : targetGroup.classList.remove(KEYENCE.CONFIG.SHOW_CLASS); 1317
1318 triggers.forEach(function (trigger) { 1319 var isSelected = trigger === currentNavigation; 1320 1321 trigger.tabIndex = isSelected ? 0 : -1; 1322 isSelected && hasSubNavigation ? trigger.classList.add(KEYENCE.CONFIG.ACTIVE_CLASS) : trigger.classList.remove(KEYENCE.CONFIG.ACTIVE_CLASS); 1323 }); 1324 1325 targets.forEach(function (target) { 1326 var isSelected = target.id === currentNavigationId; 1327 1328 hasSubNavigation ? target.setAttribute("aria-hidden", !isSelected) : target.setAttribute("aria-hidden", true); 1329 }); 1330 }; 1331 1332 fn.deActiveSubNavigation = function (root) { 1333 var triggers = root.querySelectorAll('.' + classNames.trigger); 1334 var targets = root.querySelectorAll('.' + classNames.target); 1335 var targetGroup = root.querySelector('.' + classNames.targetGroup); 1336 1337 targetGroup.classList.remove(KEYENCE.CONFIG.SHOW_CLASS); 1338 targetGroup.style.left = ""; 1339 1340 triggers.forEach(function (trigger) { 1341 trigger.classList.remove(KEYENCE.CONFIG.ACTIVE_CLASS); 1342 }); 1343 1344 targets.forEach(function (target) { 1345 target.setAttribute("aria-hidden", true); 1346 }); 1347 }; 1348 1349 fn.switchNavigation = function (root, event) { 1350 var triggers = root.querySelectorAll('.' + classNames.trigger); 1351 var selectedIndex = fn.getSelectedNavigationIndex(root); 1352 1353 switch (event.key) { 1354 case "ArrowRight": { 1355 if (triggers[selectedIndex + 1]) { 1356 triggers[selectedIndex + 1].focus(); 1357 } else { 1358 fn.getFirstNavigation(root).focus(); 1359 } 1360 break; 1361 } 1362 case "ArrowLeft": { 1363 if (triggers[selectedIndex - 1]) { 1364 triggers[selectedIndex - 1].focus(); 1365 } else { 1366 fn.getLastNavigation(root).focus(); 1367 } 1368 break; 1369 } 1370 } 1371 }; 1372 1373 fn.getFirstNavigation = function (root) { 1374 var triggers = root.querySelectorAll('.' + classNames.trigger); 1375
1376 return triggers[0]; 1377 }; 1378 1379 fn.getLastNavigation = function (root) { 1380 var triggers = root.querySelectorAll('.' + classNames.trigger); 1381 1382 return triggers[triggers.length - 1]; 1383 }; 1384 1385 fn.getSelectedNavigationIndex = function (root) { 1386 var triggers = root.querySelectorAll('.' + classNames.trigger); 1387 1388 return Array.from(triggers).findIndex(function (elm) { 1389 return elm.tabIndex === 0; 1390 }); 1391 }; 1392 1393 handlers.scrollForNavigationListOuter = function (root) { 1394 var navigationListOuter = root.querySelector('.' + classNames.navigationListOuter); 1395 1396 if (!navigationListOuter) { 1397 return; 1398 } 1399 1400 fn.deActiveSubNavigation(root); 1401 navigationListOuter.classList.add('is-hasScrolled') 1402 }; 1403 1404 handlers.mouseenterForTrigger = function (root, event) { 1405 var currentNavigation = event.currentTarget; 1406 1407 fn.setPositionOfSubNavigation(root, currentNavigation); 1408 fn.activeSubNavigation(root, currentNavigation); 1409 }; 1410 1411 handlers.focusinForTrigger = function (root, event) { 1412 var currentNavigation = event.currentTarget; 1413 1414 fn.setPositionOfSubNavigation(root, currentNavigation); 1415 fn.activeSubNavigation(root, currentNavigation); 1416 }; 1417 1418 handlers.clickForTrigger = function (root, event) { 1419 var currentNavigation = event.currentTarget; 1420 var hasActiveClass = currentNavigation.classList.contains(KEYENCE.CONFIG.ACTIVE_CLASS); 1421 1422 if (currentNavigation.getAttribute('aria-controls') || currentNavigation.getAttribute('href') === "") { 1423 event.preventDefault(); 1424 } 1425 1426 if (hasActiveClass) { 1427 fn.deActiveSubNavigation(root); 1428 } else { 1429 fn.activeSubNavigation(root, currentNavigation); 1430 } 1431 }; 1432 1433 handlers.touchstart = function (event) { 1434 arrPageX.length = 0; 1435 arrPageY.length = 0; 1436 arrPageX.push(event.touches[0].pageX); 1437 arrPageY.push(event.touches[0].pageY); 1438 }; 1439 1440 handlers.touchend = function (root, event) { 1441 if (event.changedTouches[0].pageX === arrPageX[0] || event.changedTouches[0].pageY === arrPageY[0]) { 1442 if (!event.target.closest('.' + classNames.navigationGroup)) { 1443 fn.deActiveSubNavigation(root); 1444 } 1445 } 1446 }; 1447 1448 handlers.mouseleaveForNavigation = function (root) { 1449 fn.deActiveSubNavigation(root); 1450 }; 1451 1452 handlers.keyupForTrigger = function (root, event) { 1453 fn.switchNavigation(root, event); 1454 }; 1455 1456 fn.createHandlerSet = function (root) { 1457 return { 1458 scrollForNavigationListOuter: { 1459 handleEvent: function () { 1460 handlers.scrollForNavigationListOuter(root); 1461 } 1462 }, 1463 mouseenterForTrigger: { 1464 handleEvent: function (event) { 1465 handlers.mouseenterForTrigger(root, event); 1466 } 1467 }, 1468 focusinForTrigger: { 1469 handleEvent: function (event) { 1470 handlers.focusinForTrigger(root, event); 1471 } 1472 }, 1473 clickForTrigger: { 1474 handleEvent: function (event) { 1475 handlers.clickForTrigger(root, event); 1476 } 1477 }, 1478 mouseleaveForNavigation: { 1479 handleEvent: function () { 1480 handlers.mouseleaveForNavigation(root); 1481 } 1482 }, 1483 keyupForTrigger: { 1484 handleEvent: function (event) { 1485 handlers.keyupForTrigger(root, event); 1486 } 1487 }, 1488 touchstart: { 1489 handleEvent: handlers.touchstart 1490 }, 1491 touchend: { 1492 handleEvent: function (event) { 1493 handlers.touchend(root, event); 1494 } 1495 }, 1496 preventEmptyHrefClick: { 1497 handleEvent: function (event) { 1498 if (event.currentTarget.getAttribute('href') === '') { 1499 event.preventDefault(); 1500 } 1501 } 1502 }, 1503 focusinOutsideNavigation: { 1504 handleEvent: function (event) { 1505 if (!event.target.closest('.' + classNames.navigationGroup)) { 1506 fn.deActiveSubNavigation(root); 1507 } 1508 } 1509 } 1510 }; 1511 }; 1512 1513 fn.runForEachScreen = function (root, handlerSet) { 1514 var commonInner = root.querySelector('.' + classNames.c
1514ommonInner); 1515 var navigationGroup = root.querySelector('.' + classNames.navigationGroup); 1516 var trigger = root.querySelectorAll('.' + classNames.trigger); 1517 var navigationListOuter = root.querySelector('.' + classNames.navigationListOuter); 1518 var targetGroup = root.querySelector('.' + classNames.targetGroup); 1519 var resizeObserver = new ResizeObserver(function () { 1520 fn.setMaxWidthOfNavigation(root, smallScreenMql); 1521 }); 1522 var resizeObserverOfNavigationListOuter = new ResizeObserver(function () { 1523 fn.setOverflowingClass(root); 1524 }); 1525 1526 if (!commonInner || !navigationGroup || !targetGroup || !navigationListOuter) {; 1527 return; 1528 } 1529 1530 fn.setAttribute(root); 1531 1532 resizeObserverOfNavigationListOuter.observe(navigationListOuter); 1533 navigationListOuter.removeEventListener('scroll', handlerSet.scrollForNavigationListOuter, false); 1534 navigationListOuter.addEventListener('scroll', handlerSet.scrollForNavigationListOuter, false); 1535 doc.removeEventListener('touchstart', handlerSet.touchstart, false); 1536 doc.removeEventListener('touchend', handlerSet.touchend, false); 1537 doc.addEventListener('touchstart', handlerSet.touchstart, false); 1538 doc.addEventListener('touchend', handlerSet.touchend, false); 1539 1540 if (smallScreenMql.matches) { 1541 fn.deActiveSubNavigation(root); 1542 resizeObserver.unobserve(commonInner); 1543 navigationGroup.removeEventListener('mouseleave', handlerSet.mouseleaveForNavigation, false); 1544 1545 trigger.forEach(function(elm) { 1546 elm.removeEventListener('mouseenter', handlerSet.mouseenterForTrigger, false); 1547 elm.removeEventListener('focusin', handlerSet.focusinForTrigger, false); 1548 elm.removeEventListener('click', handlerSet.preventEmptyHrefClick, false); 1549 elm.addEventListener('click', handlerSet.clickForTrigger, false); 1550 }); 1551 } else { 1552 resizeObserver.observe(commonInner); 1553 navigationGroup.removeEventListener('mouseleave', handlerSet.mouseleaveForNavigation, false); 1554 navigationGroup.addEventListener('mouseleave', handlerSet.mouseleaveForNavigation, false); 1555 1556 trigger.forEach(function(elm) { 1557 elm.removeEventListener('click', handlerSet.clickForTrigger, false); 1558 elm.removeEventListener('click', handlerSet.preventEmptyHrefClick, false); 1559 elm.removeEventListener('focusin', handlerSet.focusinForTrigger, false); 1560 elm.removeEventListener('mouseenter', handlerSet.mouseenterForTrigger, false); 1561 elm.removeEventListener('keyup', handlerSet.keyupForTrigger, false); 1562 1563 elm.addEventListener('click', handlerSet.preventEmptyHrefClick, false); 1564 elm.addEventListener('focusin', handlerSet.focusinForTrigger, false); 1565 elm.addEventListener('mouseenter', handlerSet.mouseenterForTrigger, false); 1566 elm.addEventListener('keyup', handlerSet.keyupForTrigger, false); 1567 }); 1568 doc.querySelectorAll(KEYENCE.CONFIG.FOCUSABLE).forEach(function (selectors) { 1569 selectors.removeEventListener('focusin', handlerSet.focusinOutsideNavigation, false); 1570 selectors.addEventListener('focusin', handlerSet.focusinOutsideNavigation, false); 1571 }); 1572 } 1573 }; 1574 1575 fn.init(); 1576 }; 1577 1578 KEYENCE.setChangeLanguage = function () { 1579 var self = this; 1580 var setToggle = null; 1581 var runClick = null; 1582 var runKeydown = null; 1583 var closeTarget = null; 1584 var runForEachScreen = null; 1585 1586 if (!self.getElem.changeLangTrigger || !self.getElem.changeLangTarget) { 1587 return; 1588 } 1589 1590 if (self.getElem.changeLangTarget.querySelectorAll('li').length <= 1) { 1591 return; 1592 } 1593 1594 setToggle = function (target) { 1595 if (target.getAttribute(self.CONFIG.ARIA_EXPANDED) === 'true') { 1596 self.getElem.changeLangTarget.classList.remove(self.CONFIG.SHOW_CLASS); 1597 target.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 1598 } else { 1599 self.getElem.changeLangTarget.classList.add(self.CONFIG.SHOW_CLASS); 1600 target.setAttribute(self.CONFIG.ARIA_EXPANDED, true); 1601 } 1602 }; 1603 1604 runClick = function (e) { 1605 e.preventDefault(); 1606 1607 setToggle(this); 1608 }; 1609 1610 runKeydown = function (e) { 1611 if (e.key === 'Spacebar' || e.key === ' ' || e.key === 'Enter') { 1612 e.preventDefault(); 1613 1614 setToggle(this); 1615 } 1616 }; 1617 1618 closeTarget = function (e) { 1619 if (!e.target.closest('#' + self.getElem.changeLang.id)) { 1620 self.getElem.changeLangTarget.classList.remove(self.CONFIG.SHOW_CLASS); 1621 self.getElem.changeLangTrigger.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 1622 } 1623 }; 1624 1625 runForEachScreen = function () { 1626 if (smallScreenMql.matches) { 1627 self.getElem.changeLangTrigger.removeAttribute(self.CONFIG.ARIA_CONTROLS); 1628 self.getElem.changeLangTrigger.removeAttribute(self.CONFIG.ARIA_EXPANDED); 1629 self.getElem.changeLangTrigger.removeAttribute('tabindex'); 1630 self.getElem.changeLangTrigger.removeEventListener('click', runClick, false); 1631 self.getElem.changeLangTrigger.removeEventListener('keydown', runKeydown, false); 1632 doc.removeEventListener('click', closeTarget, false); 1633 } else { 1634 self.getElem.changeLangTrigger.setAttribute(self.CONFIG.ARIA_CONTROLS, self.getElem.changeLangTarget.id); 1635 self.getElem.changeLangTrigger.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 1636 self.getElem.changeLangTrigger.tabIndex = 0; 1637 self.getElem.changeLangTrigger.addEventListener('click', runClick, false); 1638 self.getElem.changeLangTrigger.addEventListener('keydown', runKeydown, false); 1639 doc.addEventListener('click', closeTarget, false); 1640 } 1641 }; 1642 1643 runForEachScreen(); 1644 smallScreenMql.addListener(runForEachScreen); 1645 }; 1646 1647 KEYENCE.setCurrentNav = function () { 1648 var self = this; 1649 var nav; 1650 var href = null; 1651 var hrefRegexp = null; 1652 var pathname = win.location.pathname; 1653 1654 if (win.suz_LanguagePath + '/' === pathname) { 1655 return; 1656 } 1657 1658 if (!self.getElem.focusOrderTrigger) { 1659 return; 1660 } 1661 1662 nav = self.getElem.focusOrderTrigger.querySelectorAll('.navigationGlobal > li > a'); 1663 1664 if (!nav.length) { 1665 return; 1666 } 1667 1668 nav.forEach(function (items) { 1669 href = items.pathname.replace(/^\/(.+)(\/index\.jsp?)$/, '/$1/'); 1670 hrefRegexp = new RegExp('^' + href); 1671 1672 if (hrefRegexp.test(pathname)) { 1673 items.classList.add(self.CONFIG.CURRENT_CLASS); 1674 } 1675 }); 1676 }; 1677 1678 KEYENCE.ctrlTelLink = function () { 1679 var telLink = doc.querySelectorAll('a[href^="tel:"]'); 1680 var hasTouchScreen = false; 1681 var mQ = null; 1682 var ua = win.navigator.userAgent; 1683 var cancelLink = null; 1684 1685 if (!telLink.length) { 1686 return; 1687 } 1688 1689 cancelLink = function (e) { 1690 e.preventDefault(); 1691 }; 1692 1693 if ('maxTouchPoints' in navigator) { 1694 hasTouchScreen = win.navigator.maxTouchPoints > 0; 1695 if (ua.indexOf('Edge') !== -1) { 1696 if (ua.indexOf('Windows Phone') === -1 && ua.indexOf('IEMobile') === -1) { 1697 hasTouchScreen = false; 1698 } 1699 } 1700 } else if ('msMaxTouchPoints' in navigator) { 1701 hasTouchScreen = win.navigator.msMaxTouchPoints > 0; 1702 } else { 1703 mQ = win.matchMedia && matchMedia('(pointer:coarse)'); 1704 1705 if (mQ && mQ.media === '(pointer:coarse)') { 1706 hasTouchScreen = Boolean(mQ.matches); 1707 } else if ('orientation' in win) { 1708 hasTouchScreen = true; 1709 } else { 1710 hasTouchScreen = ( 1711 /\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(ua) || 1712 /\b(Android|Windows Phone|iPad|iPod)\b/i.test(ua) 1713 ); 1714 } 1715 } 1716 1717 if (!hasTouchScreen) { 1718 telLink.forEach(function (item) { 1719 item.addEventListener('click', cancelLink, false); 1720 }); 1721 } 1722 }; 1723 1724 KEYENCE.ctrlFocusOrder = function () { 1725 var self = this; 1726 var $gNav = $(self.getElem.focusOrderTrigger); 1727 var $spMenuTarget = $(self.getElem.spMenuTarget); 1728 var $spMenuBtn = $(self.getElem.spMenuBtn); 1729 var $spSearchBtn = $(self.getElem.spSearchBtn); 1730 var runForEachScreen = null; 1731 1732 runForEachScreen = function () { 1733 if (smallScreenMql.matches) { 1734 $gNav.insertBefore($spMenuTarget.children().filter(':first')); 1735 $spSearchBtn.insertAfter($spMenuBtn); 1736 } else { 1737 $gNav.insertAfter($spMenuTarget.children().filter(':last')); 1738 $spSearchBtn.insertAfter($gNav.children().filter(':last')); 1739 } 1740 }; 1741 1742 runForEachScreen(); 1743 smallScreenMql.addListener(runForEachScreen); 1744 }; 1745 1746 KEYENCE.setHomeAdjustHeight = function () { 1747 var self = this; 1748 var roots = self.getElem.adjustHeight; 1749 var fn = {}; 1750 var className = { 1751 adjustHeightTarget: 'js-setHomeAdjustHeight-target' 1752 }; 1753 1754 if (!roots.length) { 1755 return; 1756 } 1757 1758 fn.init = function () {
1759 roots.forEach(function (root) { 1760 fn.setTargetHeight(root); 1761 fn.resizeWindow(root); 1762 }); 1763 }; 1764 1765 fn.resizeWindow = function (root) { 1766 var timer = null; 1767 1768 win.addEventListener('resize', function () { 1769 if (timer !== null) { 1770 clearTimeout(timer); 1771 } 1772 1773 timer = setTimeout(function () { 1774 fn.setTargetHeight(root); 1775 }, 200); 1776 }); 1777 }; 1778 1779 fn.getTarget = function (root) { 1780 var adjustHeightTarget = root.querySelectorAll('.' + className.adjustHeightTarget); 1781 1782 return adjustHeightTarget; 1783 }; 1784 1785 fn.destroyHeight = function (root) { 1786 var target = fn.getTarget(root); 1787 1788 if (!target.length) { 1789 return; 1790 } 1791 1792 target.forEach(function (elm) { 1793 elm.style.height = ''; 1794 }); 1795 }; 1796 1797 fn.setTargetHeight = function (root) { 1798 var target = fn.getTarget(root); 1799 var targetHeight = 0; 1800 var maxHeight = 0; 1801 var windowWidth = win.innerWidth; 1802 1803 if (!target.length) { 1804 return; 1805 } 1806 1807 if (windowWidth > 640) { 1808 target.forEach(function (elm) { 1809 elm.style.height = ''; 1810 targetHeight = elm.offsetHeight; 1811 1812 if (targetHeight > maxHeight) { 1813 maxHeight = targetHeight; 1814 } 1815 }); 1816 1817 target.forEach(function (elm) { 1818 elm.style.height = maxHeight + 'px'; 1819 }); 1820 } else { 1821 fn.destroyHeight(root); 1822 } 1823 }; 1824 1825 fn.init(); 1826 }; 1827 1828 KEYENCE.setHomeCarousel = function () { 1829 var self = this; 1830 var className = { 1831 utilityTemplate: 'js-setHomeCarousel-utilityControllerTemplate', 1832 paginationListTemplate: 'js-setHomeCarousel-paginationListTemplate', 1833 targetOuter: 'js-setHomeCarousel-targetOuter', 1834 target: 'js-setHomeCarousel-target', 1835 clone: 'js-setHomeCarousel-clone', 1836 utility: 'js-setHomeCarousel-utilityController', 1837 image: 'js-setHomeCarousel-image', 1838 pagination: 'js-setHomeCarousel-pagination', 1839 paginationBtn: 'js-setHomeCarousel-paginationButton', 1840 prevBtn: 'js-setCrousel-prevButton', 1841 nextBtn: 'js-setCrousel-nextButton', 1842 controller: 'js-setHomeCarousel-controller', 1843 isInitialized: 'is-initialized' 1844 }; 1845 var root = null; 1846 var targetOuter = null; 1847 var targetWidth = null; 1848 var target = null; 1849 var targetLength = null; 1850 var arrTargetLength = []; 1851 var currentNum = 0; 1852 var timer = null; 1853 var isAnimate = false; 1854 var isAutoPlay = true; 1855 var isEnterSlide = false; 1856 var num = 0; 1857 var arrPageX = []; 1858 var arrPageY = []; 1859 var fn = {}; 1860 var DURATION = 4000; 1861 1862 if (self.getElem.carousel === null) { 1863 return; 1864 } 1865 1866 root = self.getElem.carousel; 1867 1868 root.classList.add(className.isInitialized); 1869 1870 fn.init = function () { 1871 fn.setSlide(); 1872 fn.setUtility(); 1873 fn.setSlideClone(); 1874 fn.setSlideWidth(); 1875 fn.setAlly(); 1876 fn.setPaginationCurrent(0); 1877 fn.swipe(); 1878 fn.resizeWindow(); 1879 fn.addMouseEnterEvent(); 1880 fn.addMouseLeaveEvent(); 1881 1882 if (isAutoPlay) { 1883 fn.setAutoPlay(); 1884 } 1885 }; 1886 1887 targetOuter = root.querySelector('.' + className.targetOuter); 1888 target = root.querySelectorAll('.' + className.target); 1889 1890 if (targetOuter === null || !target.length) { 1891 return; 1892 } 1893 1894 fn.setSlide = function () { 1895 targetLength = target.length; 1896 arrTargetLength.push(targetLength); 1897 num = 1; 1898 currentNum = 0; 1899 targetWidth = win.innerWidth; 1900 targetOuter.style.transform = 'translate3d(-' + (targetWidth * num) + 'px ,0, 0)'; 1901 }; 1902 1903 fn.setSlideClone = function () { 1904 var firstClone; 1905 var lastClone; 1906 1907 if (target.length > 1) { 1908 firstClone = targetOuter.firstElementChild.cloneNode(true); 1909 lastClone = targetOuter.lastElementChild.cloneNode(true); 1910 1911 firstClone.classList.add(className.clone); 1912 lastClone.classList.add(className.clone); 1913 1914 targetOuter.appendChild(firstClone); 1915 targetOuter.insertBefore(lastClone, targetOuter.firstElementChild); 1916 } 1917 }; 1918 1919 fn.setSlideWidth = function () { 1920 target = root.querySelectorAll('.' + className.target); 1921 targetLength = target.length; 1922 1923 if (/Macintosh|iP(hone|ad|od)/.test(win.navigator.userAgent) && 'ontouchend' in doc) { 1924 targetWidth = doc.documentElement.clientWidth; 1925 } else { 1926 targetWidth = win.innerWidth; 1927 } 1928 1929 if (!target.length) { 1930 return; 1931 } 1932 1933 targetOuter.style.width = (targetWidth * targetLength) + 'px'; 1934 1935 target.forEach(function (elm) { 1936 elm.style.width = targetWidth + 'px'; 1937 }); 1938 }; 1939 1940 fn.setSlideCurrent = function () { 1941 target.forEach(function (elm, idx) { 1942 elm.classList.remove(self.CONFIG.CURRENT_CLASS); 1943 1944 if (elm.classList.contains(self.CONFIG.CURRENT_CLASS)) { 1945 num = idx; 1946 } 1947 }); 1948 1949 targetOuter.style.transform = 'translate3d(-' + (targetWidth * num) + 'px ,0, 0)'; 1950 target[num].classList.add(self.CONFIG.CURRENT_CLASS); 1951 }; 1952 1953 fn.setUtility = function () { 1954 var utility = doc.getElementById(className.utilityTemplate); 1955 var utilityClone; 1956 1957 if (utility === null) { 1958 return; 1959 } 1960 1961 utilityClone = fn.createNodeClone(utility, '.' + className.utility); 1962 1963 root.appendChild(utilityClone); 1964 1965 fn.setPagination(); 1966 fn.clickPrevBtn(); 1967 fn.clickNextBtn(); 1968 fn.clickController(); 1969 }; 1970 1971 fn.setPagination = function () { 1972 var paginationList = doc.getElementById(className.paginationListTemplate); 1973 var image = root.querySelectorAll('.' + className.image); 1974 var fragment = doc.createDocumentFragment(); 1975 var pagination = root.querySelector('.' + className.pagination); 1976 var paginationListClone; 1977 var srcList = []; 1978 var i; 1979 var thumbnail; 1980 1981 if (pagination === null || paginationList === null || !image.length) { 1982 return; 1983 } 1984 1985 image.forEach(function (elm) { 1986 var img; 1987 var src; 1988 1989 img = elm.querySelector('img'); 1990 1991 if (img === null) { 1992 return; 1993 } 1994 1995 src = img.getAttribute('src'); 1996 srcList.push(src); 1997 }); 1998 1999 for (i = 0; i < arrTargetLength[0]; i++) { 2000 paginationListClone = fn.createNodeClone(paginationList, 'li'); 2001 thumbnail = paginationListClone.querySelector('img'); 2002 thumbnail.setAttribute('src', srcList[i]); 2003 thumbnail.setAttribute('alt', i + 1); 2004 fragment.appendChild(paginationListClone); 2005 } 2006 2007 pagination.appendChild(fragment); 2008 2009 fn.setPaginationStyle(); 2010 fn.clickPagination(); 2011 }; 2012 2013 fn.setPaginationStyle = function () { 2014 var pagination = root.querySelector('.' + className.pagination); 2015 var paginationBtn; 2016 var styleList = []; 2017 2018 if (pagination === null) { 2019 return; 2020 } 2021 2022 target.forEach(function (elm) { 2023 var style; 2024 2025 style = elm.style.background; 2026 2027 styleList.push(style); 2028 }); 2029 2030 paginationBtn = pagination.querySelectorAll('.' + className.paginationBtn); 2031 2032 if (!paginationBtn.length) { 2033 return; 2034 } 2035
2036 paginationBtn.forEach(function (elm, idx) { 2037 elm.style.background = styleList[idx]; 2038 }); 2039 }; 2040 2041 fn.setPaginationCurrent = function (currentNumber) { 2042 var pagination = root.querySelector('.' + className.pagination); 2043 var paginationBtn; 2044 2045 if (pagination === null) { 2046 return; 2047 } 2048 2049 currentNum = currentNumber; 2050 paginationBtn = pagination.querySelectorAll('.' + className.paginationBtn); 2051 2052 if (!paginationBtn.length) { 2053 return; 2054 } 2055 2056 paginationBtn.forEach(function (elm, idx) { 2057 2058 if (elm.classList.contains(self.CONFIG.CURRENT_CLASS)) { 2059 currentNum = idx; 2060 } 2061 2062 elm.classList.remove(self.CONFIG.CURRENT_CLASS); 2063 }); 2064 2065 paginationBtn[currentNum].classList.add(self.CONFIG.CURRENT_CLASS); 2066 }; 2067 2068 fn.setAlly = function () { 2069 var $target = $('.' + className.target); 2070 2071 if (!$target.length) { 2072 return; 2073 } 2074 2075 $target.find(self.CONFIG.FOCUSABLE).attr('tabIndex', -1); 2076 $target.filter('.' + self.CONFIG.CURRENT_CLASS).find(self.CONFIG.FOCUSABLE).attr('tabIndex', 0); 2077 }; 2078 2079 fn.setAutoPlay = function () { 2080 timer = setTimeout(function () { 2081 fn.slideNext(); 2082 fn.setAutoPlay(); 2083 }, DURATION); 2084 }; 2085 2086 fn.changeSlideCurrent = function () { 2087 target.forEach(function (elm, idx) { 2088 if (idx === currentNum + 1) { 2089 elm.classList.add(self.CONFIG.CURRENT_CLASS); 2090 } else { 2091 elm.classList.remove(self.CONFIG.CURRENT_CLASS); 2092 } 2093 }); 2094 }; 2095 2096 fn.changePaginationCurrent = function () { 2097 var pagination = root.querySelector('.' + className.pagination); 2098 var paginationBtn; 2099 2100 if (pagination === null) { 2101 return; 2102 } 2103 2104 paginationBtn = pagination.querySelectorAll('.' + className.paginationBtn); 2105 2106 if (!paginationBtn.length) { 2107 return; 2108 } 2109 2110 paginationBtn.forEach(function (elm, idx) { 2111 if (idx === currentNum) { 2112 elm.classList.add(self.CONFIG.CURRENT_CLASS); 2113 } else { 2114 elm.classList.remove(self.CONFIG.CURRENT_CLASS); 2115 } 2116 }); 2117 }; 2118 2119 fn.clickPagination = function () { 2120 var pagination = root.querySelector('.' + className.pagination); 2121 var btn; 2122 var currentBtn; 2123 2124 if (pagination === null) { 2125 return; 2126 } 2127 2128 btn = pagination.querySelectorAll('.' + className.paginationBtn); 2129 2130 if (!btn.length) { 2131 return; 2132 } 2133 2134 btn.forEach(function (elm, idx) { 2135 if (isAnimate === false) { 2136 elm.addEventListener('click', function () { 2137 isAnimate = true; 2138 2139 currentBtn = pagination.querySelector('.' + self.CONFIG.CURRENT_CLASS); 2140 2141 if (currentBtn === null) { 2142 return; 2143 } 2144 2145 currentBtn.classList.remove(self.CONFIG.CURRENT_CLASS); 2146 elm.classList.add(self.CONFIG.CURRENT_CLASS); 2147 num = idx + 1; 2148 currentNum = idx; 2149 fn.slide(); 2150 fn.changeSlideCurrent(); 2151 fn.setAlly(); 2152 }); 2153 } 2154 }); 2155 }; 2156 2157 fn.clickController = function () { 2158 var utility = root.querySelector('.' + className.utility); 2159 var controller; 2160 var text; 2161 var playText; 2162 var stopText; 2163 2164 if (utility === null) { 2165 return; 2166 } 2167 2168 controller = utility.querySelector('.' + className.controller); 2169 2170 if (controller === null) { 2171 return; 2172 } 2173 2174 text = controller.querySelector('span'); 2175 2176 if (text === null) { 2177 return; 2178 } 2179 2180 playText = text.dataset.playlabel; 2181 stopText = text.dataset.stoplabel; 2182 2183 if (isAutoPlay) { 2184 text.innerText = playText; 2185 } else { 2186 text.innerText = stopText; 2187 } 2188 2189 controller.addEventListener('click', function () { 2190 if (isAutoPlay) { 2191 isAutoPlay = false; 2192 clearTimeout(timer); 2193 text.innerText = playText; 2194 controller.classList.add(self.CONFIG.STOP_CLASS); 2195 } else { 2196 isAutoPlay = true; 2197 fn.setAutoPlay(); 2198 text.innerText = stopText; 2199 controller.classList.remove(self.CONFIG.STOP_CLASS); 2200 } 2201 }); 2202 }; 2203 2204 fn.clickPrevBtn = function () { 2205 var prevBtn = root.querySelector('.' + className.prevBtn); 2206 2207 if (prevBtn === null) { 2208 return; 2209 } 2210 2211 prevBtn.addEventListener('click', function () { 2212 fn.slidePrev(); 2213 }); 2214 }; 2215 2216 fn.clickNextBtn = function () { 2217 var nextBtn = root.querySelector('.' + className.nextBtn); 2218 2219 if (nextBtn === null) { 2220 return; 2221 } 2222 2223 nextBtn.addEventListener('click', function () { 2224 fn.slideNext(); 2225 }); 2226 }; 2227 2228 fn.slidePrev = function () { 2229 var paginationMax = arrTargetLength[0] - 1; 2230 2231 if (isAnimate === false) { 2232 isAnimate = true; 2233 2234 if (num === 1) { 2235 num--; 2236 currentNum = paginationMax; 2237 } 2238 if (num !== 0) { 2239 num--; 2240 currentNum--; 2241 } 2242 2243 fn.slide(); 2244 fn.changeSlideCurrent(); 2245 fn.changePaginationCurrent(); 2246 } 2247 }; 2248 2249 fn.slideNext = function () { 2250 var max = targetLength - 1; 2251 2252 if (isAnimate === false) { 2253 isAnimate = true; 2254 2255 if (num === arrTargetLength[0]) { 2256 num++; 2257 currentNum = 0; 2258 } else if (num < max) { 2259 num++; 2260 currentNum++; 2261 } 2262 2263 fn.slide(); 2264 fn.changeSlideCurrent(); 2265 fn.changePaginationCurrent(); 2266 fn.setAlly(); 2267 } 2268 }; 2269 2270 fn.slide = function () { 2271 var max = targetLength - 1; 2272 2273 targetOuter.style.transform = 'translate3d(-' + (targetWidth * num) + 'px ,0, 0)'; 2274 targetOuter.style.transition = 'transform 1s ease 0s'; 2275 2276 fn.addEventListenerOnce(targetOuter, 'transitionend', function () { 2277 isAnimate = false; 2278 targetOuter.style.transition = ''; 2279 2280 if (num === max) { 2281 targetOuter.style.transform = 'translate3d(-' + (targetWidth) + 'px ,0, 0)'; 2282 num = 1; 2283 } else if (num === 0) { 2284 targetOuter.style.transform = 'translate3d(-' + (targetWidth * (max - 1)) + 'px ,0, 0)'; 2285 num = max - 1; 2286 } 2287 2288 if (isAutoPlay) { 2289 clearTimeout(timer); 2290 fn.setAutoPlay(); 2291 } 2292 }); 2293 }; 2294 2295 fn.enterSlide = function () { 2296 var utility = root.querySelector('.' + className.utility); 2297 var controller; 2298 var text; 2299 var playText; 2300 2301 if (utility === null) { 2302 return; 2303 } 2304 2305 controller = utility.querySelector('.' + className.controller); 2306 2307 if (controller === null) { 2308 return; 2309 } 2310 2311 text = controller.querySelector('span'); 2312 2313 if (text === null) { 2314 return; 2315 } 2316 2317 playText = text.dataset.playlabel; 2318 2319 if (isAutoPlay && !isEnterSlide) { 2320 isAutoPlay = false; 2321 isEnterSlide = true; 2322 clearTimeout(timer); 2323 text.innerText = playText; 2324 controller.classList.add(self.CONFIG.STOP_CLASS); 2325 } 2326 }; 2327 2328 fn.leaveSlide = function () { 2329 var utility = root.querySelector('.' + className.utility); 2330 var controller; 2331 var text; 2332 var stopText; 2333 2334 if (utility === null) { 2335 return; 2336 } 2337 2338 controller = utility.querySelector('.' + className.controller); 2339 2340 if (controller === null) { 2341 return; 2342 } 2343 2344 text = controller.querySelector('span'); 2345 2346 if (text === null) { 2347 return; 2348 } 2349 2350 stopText = text.dataset.stoplabel; 2351 2352 if (!isAutoPlay && isEnterSlide) { 2353 isAutoPlay = true; 2354 isEnterSlide = false; 2355 fn.setAutoPlay(); 2356 text.innerText = stopText; 2357 controller.classList.remove(self.CONFIG.STOP_CLASS); 2358 } 2359 }; 2360 2361 fn.swipe = function () { 2362 var startX; 2363 var startY; 2364 var moveX; 2365 var moveY; 2366 var distanceX; 2367 var distanceY; 2368 var nowPosition; 2369 var endPosition; 2370 var x; 2371 var radian; 2372 var swipeAngle; 2373 2374 target.forEach(function (elm) { 2375 elm.addEventListener('touchstart', function (e) { 2376 arrPageX.length = 0; 2377 arrPageY.length = 0; 2378 startX = e.touches[0].pageX; 2379 startY = e.touches[0].pageY; 2380 arrPageX.push(startX); 2381 arrPageY.push(startY); 2382 distanceX = 0; 2383 clearTimeout(timer); 2384 }); 2385 2386 elm.addEventListener('touchmove', function (e) { 2387 moveX = e.changedTouches[0].pageX; 2388 moveY = e.changedTouches[0].pageY; 2389 distanceX = moveX - arrPageX[0]; 2390 distanceY = moveY - arrPageY[0]; 2391 2392 if (distanceX === 0 && e.cancelable) { 2393 e.preventDefault(); 2394 } 2395 2396 if (isAnimate === true) { 2397 return; 2398 } 2399 2400 radian = Math.atan2(distanceY, distanceX); 2401 swipeAngle = Math.round(radian * 180 / Math.PI); 2402 2403 if (swipeAngle < 0) { 2404 swipeAngle = 360 - Math.abs(swipeAngle); 2405 } 2406 2407 if ((0 < swipeAngle && swipeAngle < 45) || (135 < swipeAngle && swipeAngle < 225) || (315 < swipeAngle && swipeAngle < 360)) { 2408 if (Math.abs(distanceX) > 20) { 2409 doc.addEventListener('touchmove', fn.scrollControl, {passive: false}); 2410 } 2411 2412 nowPosition = targetWidth * num; 2413 x = nowPosition + -distanceX; 2414 2415 if (nowPosition - x < 0 && -targetWidth < nowPosition - x) { 2416 targetOuter.style.transition = ''; 2417 targetOuter.style.transform = 'translate3d(-' + x + 'px ,0, 0)'; 2418 } else if (nowPosition - x > 0 && targetWidth > nowPosition - x) { 2419 targetOuter.style.transition = ''; 2420 targetOuter.style.transform = 'translate3d(-' + x + 'px ,0, 0)'; 2421 } 2422 } else { 2423 doc.removeEventListener('touchmove', fn.scrollControl, {passive: false}); 2424 } 2425 }); 2426 2427 elm.addEventListener('touchend', function (e) { 2428 endPosition = e.changedTouches[0].pageX; 2429 2430 if (distanceX === 0) { 2431 return; 2432 } 2433 2434 if (startX !== endPosition && e.cancelable) { 2435 e.preventDefault(); 2436 } 2437 2438 doc.removeEventListener('touchmove', fn.scrollControl, {passive: false}); 2439 2440 2441 if (endPosition < startX) { 2442 fn.slideNext(); 2443 } else if (endPosition > startX) { 2444 fn.slidePrev(); 2445 } 2446 }); 2447 }); 2448 }; 2449 2450 fn.scrollControl = function (e) { 2451 if (e.cancelable) { 2452 e.preventDefault(); 2453 } 2454 }; 2455 2456 fn.resizeWindow = function () { 2457 var resizeTimer = null; 2458 2459 win.addEventListener('resize', function () { 2460 clearTimeout(timer); 2461 2462 if (resizeTimer !== null) { 2463 clearTimeout(resizeTimer); 2464 } 2465 2466 resizeTimer = setTimeout(function () { 2467 fn.setSlideWidth(); 2468 fn.setSlideCurrent(); 2469 fn.setAlly(); 2470 fn.setPaginationCurrent(); 2471 2472 if (isAutoPlay) { 2473 fn.setAutoPlay(); 2474 } 2475 }, 30); 2476 }); 2477 }; 2478 2479 fn.addMouseEnterEvent = function () { 2480 targetOuter.addEventListener('mouseenter', fn.enterSlide); 2481 }; 2482 2483 fn.addMouseLeaveEvent = function () { 2484 targetOuter.addEventListener('mouseleave', fn.leaveSlide); 2485 }; 2486 2487 fn.addEventListenerOnce = function (elm, type, listener) { 2488 elm.addEventListener(type, function func() { 2489 elm.removeEventListener(type, func); 2490 listener(); 2491 }); 2492 }; 2493 2494 fn.checkSupportsTemp = function () {
2495 return 'content' in doc.createElement('template'); 2496 }; 2497 2498 fn.createNodeClone = function (template, selectorForIE) { 2499 if (fn.checkSupportsTemp() === true) { 2500 return doc.importNode(template.content, true); 2501 } 2502 2503 return doc.importNode(template.querySelector(selectorForIE), true); 2504 }; 2505 2506 fn.init(); 2507 }; 2508 2509 KEYENCE.setHomeChangeCategory = function () { 2510 var self = this; 2511 var target; 2512 var trigger; 2513 var cookieValue; 2514 var isAnimate = false; 2515 var DELAY = 600; 2516 var ORIGINAL_DOMAIN = win.kpi_originalDomain; 2517 var CATEGORY_COOKIE_NAME = 'kpi_has_changeCategory'; 2518 var fn = {}; 2519 2520 if (!self.getElem.changeCategoryTarget.length || !self.getElem.changeCategoryTrigger.length) { 2521 return; 2522 } 2523 2524 target = self.getElem.changeCategoryTarget; 2525 trigger = self.getElem.changeCategoryTrigger; 2526 cookieValue = util.getCookie(CATEGORY_COOKIE_NAME); 2527 2528 fn.init = function () { 2529 fn.setMql(); 2530 }; 2531 2532 fn.setMql = function () { 2533 smallScreenMql.addListener(fn.checkBreakPoint); 2534 fn.checkBreakPoint(smallScreenMql); 2535 }; 2536 2537 fn.checkBreakPoint = function () { 2538 if (smallScreenMql.matches) { 2539 fn.removeCurrentClassForTrigegr(); 2540 fn.addShowClassForTarget(); 2541 } else { 2542 fn.setTrigger(); 2543 fn.setTarget(); 2544 fn.clickTrigger(); 2545 } 2546 }; 2547 2548 fn.setTrigger = function () { 2549 var category; 2550 2551 if (cookieValue) { 2552 trigger.forEach(function (elm) { 2553 category = elm.getAttribute('data-category'); 2554 2555 if (category === cookieValue) { 2556 elm.classList.add(self.CONFIG.CURRENT_CLASS); 2557 } 2558 }); 2559 } else { 2560 trigger[0].classList.add(self.CONFIG.CURRENT_CLASS); 2561 } 2562 }; 2563 2564 fn.setTarget = function () { 2565 var category; 2566 2567 target.forEach(function (elm) { 2568 category = elm.getAttribute('data-category'); 2569 2570 if (cookieValue) { 2571 if (cookieValue === 'all') { 2572 elm.classList.add(self.CONFIG.SHOW_CLASS); 2573 } else { 2574 if (category === cookieValue) { 2575 elm.classList.add(self.CONFIG.SHOW_CLASS); 2576 } else { 2577 elm.style.display = 'none'; 2578 elm.classList.add(self.CONFIG.HIDE_CLASS); 2579 elm.classList.remove(self.CONFIG.SHOW_CLASS); 2580 } 2581 } 2582 } else { 2583 elm.classList.add(self.CONFIG.SHOW_CLASS); 2584 } 2585 }); 2586 }; 2587 2588 fn.clickTrigger = function () { 2589 var category; 2590 2591 trigger.forEach(function (elm) { 2592 elm.addEventListener('click', function () { 2593 if (isAnimate === false) { 2594 isAnimate = true; 2595 fn.removeCurrentClassForTrigegr(); 2596 elm.classList.add(self.CONFIG.CURRENT_CLASS); 2597 category = elm.getAttribute('data-category'); 2598 cookieValue = category; 2599 util.setCookie(CATEGORY_COOKIE_NAME, cookieValue); 2600 fn.changeCategory(category); 2601 } 2602 }); 2603 }); 2604 }; 2605 2606 fn.changeCategory = function (category) { 2607 var targetCategory; 2608 2609 target = doc.querySelectorAll('.js-setChangeCategory-target'); 2610 2611 if (!target.length) { 2612 return; 2613 } 2614 2615 if (category === 'all') { 2616 fn.addHideClassForTarget(); 2617 2618 setTimeout(function () { 2619 fn.addShowClassForTarget(); 2620 }, DELAY); 2621 } else { 2622 target.forEach(function (elm) { 2623 targetCategory = elm.getAttribute('data-category'); 2624 elm.classList.add(self.CONFIG.HIDE_CLASS); 2625 elm.classList.remove(self.CONFIG.SHOW_CLASS); 2626 elm.addEventListener('animationend', function () { 2627 isAnimate = false; 2628 if (elm.classList.contains(self.CONFIG.HIDE_CLASS)) { 2629 elm.style.display = 'none'; 2630 } 2631 }); 2632 2633 if (category === targetCategory) { 2634 setTimeout(function () { 2635 if (elm.classList.contains(self.CONFIG.HIDE_CLASS)) { 2636 elm.style.display = 'flex'; 2637 } 2638 elm.classList.remove(self.CONFIG.HIDE_CLASS); 2639 elm.classList.add(self.CONFIG.SHOW_CLASS); 2640 2641 elm.addEventListener('animationend', function () { 2642 isAnimate = false; 2643 }); 2644 }, DELAY); 2645 } 2646 }); 2647 } 2648 }; 2649 2650 fn.removeCurrentClassForTrigegr = function () { 2651 trigger = doc.querySelectorAll('.js-setChangeCategory-trigger'); 2652 2653 if (!trigger.length) { 2654 return; 2655 } 2656 2657 trigger.forEach(function (elm) { 2658 elm.classList.remove(self.CONFIG.CURRENT_CLASS); 2659 }); 2660 }; 2661 2662 fn.addShowClassForTarget = function () { 2663 target.forEach(function (elm) { 2664 elm.classList.remove(self.CONFIG.HIDE_CLASS); 2665 elm.classList.add(self.CONFIG.SHOW_CLASS); 2666 if (elm.classList.contains(self.CONFIG.SHOW_CLASS)) { 2667 elm.style.display = 'flex'; 2668 } 2669 elm.addEventListener('animationend', function () { 2670 isAnimate = false; 2671 }); 2672 }); 2673 }; 2674 2675 fn.addHideClassForTarget = function () { 2676 target.forEach(function (elm) { 2677 elm.classList.remove(self.CONFIG.SHOW_CLASS); 2678 elm.classList.add(self.CONFIG.HIDE_CLASS); 2679 }); 2680 }; 2681 2682 fn.init(); 2683 }; 2684 2685 KEYENCE.setToggleCart = function () { 2686 var self = this; 2687 var fn = {}; 2688 var className = { 2689 toggle: 'js-toggleCart', 2690 toggleItem: 'js-toggleCart-item', 2691 toggleHook: 'js-toggleCart-hook', 2692 toggleContent: 'js-toggleCart-content', 2693 toggleState: 'js-toggleCart-state',
2694 totalizer: 'totalizer', 2695 totalizerTxt: 'totalizer-text', 2696 class: { 2697 isHide: 'is-hide' 2698 } 2699 }; 2700 var elm = {}; 2701 2702 if (self.getElem.toggleCart === null) { 2703 return; 2704 } 2705 2706 elm.$root = $('.' + className.toggle); 2707 elm.$toggleItem = elm.$root.find('.' + className.toggleItem); 2708 elm.$toggleHook = elm.$root.find('.' + className.toggleHook); 2709 elm.$toggleContent = elm.$root.find('.' + className.toggleContent); 2710 elm.$totalizer = elm.$root.find('.' + className.totalizer); 2711 2712 fn.init = function () { 2713 fn.setMql(); 2714 }; 2715 2716 fn.setMql = function () { 2717 function checkBp(mq) { 2718 if (mq.matches) { 2719 fn.set(); 2720 fn.openContent(); 2721 } else { 2722 fn.unSet(); 2723 } 2724 } 2725 2726 smallScreenMql.addListener(checkBp); 2727 checkBp(smallScreenMql); 2728 }; 2729 2730 fn.set = function () { 2731 var i; 2732 var $totalizerTxt; 2733 var text = ''; 2734 2735 $totalizerTxt = elm.$totalizer.find('.' + className.totalizerTxt); 2736 elm.$toggleItem.prepend('<button type="button" class="' + className.toggleHook + '">'); 2737 elm.$toggleHook = elm.$root.find('.' + className.toggleHook); 2738 2739 for (i = 0; i < $totalizerTxt.length; i++) { 2740 if (i !== 0) { 2741 text += ' ' + $totalizerTxt.eq(i).html(); 2742 } else { 2743 text += $totalizerTxt.eq(i).html(); 2744 } 2745 } 2746 2747 elm.$toggleHook.append(text); 2748 elm.$toggleItem.attr('aria-expanded', false); 2749 elm.$toggleContent.attr('aria-hidden', true); 2750 }; 2751 2752 fn.unSet = function () { 2753 if (elm.$toggleHook.length) { 2754 elm.$toggleHook.remove(); 2755 elm.$toggleItem.removeAttr('aria-expanded'); 2756 elm.$toggleContent.removeAttr('aria-hidden'); 2757 } 2758 }; 2759 2760 fn.openContent = function () { 2761 elm.$toggleHook.on('click', function () { 2762 var $this = $(this); 2763 var $thisItem = $this.closest('.' + className.toggleItem); 2764 var $thisItemContent = $thisItem.find('.' + className.toggleContent); 2765 2766 if ($thisItem.attr('aria-expanded') === 'false') { 2767 $thisItem.attr('aria-expanded', true); 2768 $thisItemContent.attr('aria-hidden', false); 2769 } else { 2770 $thisItem.attr('aria-expanded', false); 2771 $thisItemContent.attr('aria-hidden', true); 2772 } 2773 }); 2774 }; 2775 2776 fn.init(); 2777 }; 2778 2779 KEYENCE.setRichSurvey = function () { 2780 var self = this; 2781 var classNames = { 2782 content: 'js-setRichSurvey-content', 2783 targetParent: 'js-setRichSurvey-targetParent', 2784 target: 'js-setRichSurvey-target', 2785 utility: 'js-setRichSurvey-utility', 2786 prevButton: 'js-setRichSurvey-prevButton', 2787 nextButton: 'js-setRichSurvey-nextButton', 2788 progress: 'js-setRichSurvey-progress', 2789 progressBar: 'js-setRichSurvey-progressBar', 2790 progressText: 'js-setRichSurvey-progressText', 2791 video: 'js-setRichSurvey-video', 2792 videoJsOuter: 'js-setRichSurvey-videoJsOuter', 2793 videoJs: 'video-js', 2794 videoJsScript: 'js-setRichSurvey-videoJsScript', 2795 form: 'LoginForm', 2796 titleAndText: 'TitleAndText', 2797 isCurrent: 'is-current', 2798 isHide: 'is-hide', 2799 isHideForToggleDisplay: 'IsHide', 2800 isInitialized: 'is-initialized', 2801 isRequired: 'IsRequired', 2802 isAutoplay: 'is-autoplay' 2803 }; 2804 var idNames = { 2805 utilityTemplate: 'js-setRichSurvey-utilityTemplate', 2806 multiStepFormSignin: win.MultiStepForm.SignIn.idNames.signinForm, 2807 multiStepFormRegistration: win.MultiStepForm.Register.idNames.regForm 2808 }; 2809 var root = null; 2810 var targetParent = null; 2811 var target = null; 2812 var currentTarget = null; 2813 var prevButton = null; 2814 var nextButton = null; 2815 var progress = null; 2816 var progressBar = null; 2817 var progressText = null; 2818 var form = null; 2819 var multiStepFormSignin = null; 2820 var multiStepFormRegistration = null; 2821 var targetLength = 0; 2822 var rootPosition = 0; 2823 var rootTopPosition = 0; 2824 var scrollAmount = 0; 2825 var num = 0; 2826 var ratio = 0; 2827 var resizeTimer = null; 2828 var enqueteData = win.enqueteData || {}; 2829 var isSlide = false; 2830 var fn = {}; 2831 var videoJsOuter = null; 2832 var brightcoveSettings = win.brightcove_settings ? win.brightcove_settings : null; 2833 var brightcoveId = brightcoveSettings && brightcoveSettings.brightcoveId ? brightcoveSettings.brightcoveId : null; 2834 var brightcovePlayer = brightcoveSettings && brightcoveSettings.brightcovePlayer ? brightcoveSettings.brightcovePlayer : null; 2835 var PLAYER_DATA = { 2836 ACCOUNT_ID: brightcoveId, 2837 PLAYER_ID: brightcovePlayer 2838 }; 2839 2840 root = self.getElem.richSurvey; 2841 2842 if (root === null) { 2843 return; 2844 } 2845 2846 fn.init = function () { 2847 fn.setUtility(); 2848 fn.setElement(); 2849 fn.setSlide(); 2850 }; 2851 2852 fn.setUtility = function () { 2853 var utility = doc.getElementById(idNames.utilityTemplate); 2854 var utilityClone = null; 2855 2856 if (utility === null) { 2857 return; 2858 } 2859 2860 utilityClone = fn.createNodeClone(utility, '.' + classNames.utility); 2861 2862 if (utilityClone === null) { 2863 return; 2864 } 2865 2866 root.appendChild(utilityClone); 2867 }; 2868 2869 fn.setElement = function () { 2870 targetParent = root.querySelector('.' + classNames.targetParent); 2871 2872 if (targetParent === null) { 2873 return; 2874 } 2875 2876 target = targetParent.querySelectorAll('.' + classNames.target); 2877 2878 if (!target.length) { 2879 return; 2880 } 2881 2882 prevButton = root.querySelector('.' + classNames.prevButton); 2883 nextButton = root.querySelector('.' + classNames.nextButton); 2884 progress = root.querySelector('.' + classNames.progress); 2885 progressBar = root.querySelector('.' + classNames.progressBar); 2886 progressText = root.querySelector('.' + classNames.progressText); 2887 videoJsOuter = root.querySelectorAll('.' + classNames.videoJsOuter); 2888 form = doc.getElementById(classNames.form); 2889 multiStepFormSignin = doc.getElementById(idNames.multiStepFormSignin);
2890 multiStepFormRegistration = doc.getElementById(idNames.multiStepFormRegistration); 2891 }; 2892 2893 fn.setSlide = function () { 2894 root.classList.add(classNames.isInitialized); 2895 fn.runWhenFormShow(); 2896 fn.changeCurrentClass(); 2897 fn.changeTabIndex(); 2898 fn.changeProgressDisplay(); 2899 fn.changeButtonDisplay(); 2900 fn.changeProgressBar(); 2901 fn.changeFormDisplay(); 2902 fn.setEnquete(); 2903 fn.setVideoJs(); 2904 fn.observeAttrforRequiredInput(fn.getRequiredItem()); 2905 fn.addResizeEvent(); 2906 fn.clickPrevButton(); 2907 fn.clickNextButton(); 2908 }; 2909 2910 fn.clickPrevButton = function () { 2911 if (prevButton === null) { 2912 return; 2913 } 2914 2915 prevButton.addEventListener('click', fn.slidePrev, false); 2916 }; 2917 2918 fn.clickNextButton = function () { 2919 if (nextButton === null) { 2920 return; 2921 } 2922 2923 nextButton.addEventListener('click', fn.slideNext, false); 2924 }; 2925 2926 fn.slidePrev = function () { 2927 if (isSlide) { 2928 return; 2929 } 2930 2931 do { 2932 num--; 2933 } while (target[num].classList.contains(classNames.isHideForToggleDisplay)); 2934 2935 if (num < 0) { 2936 num = 0; 2937 2938 return; 2939 } 2940 2941 fn.getPosition(); 2942 fn.changePosition(); 2943 fn.slide(); 2944 }; 2945 2946 fn.slideNext = function () { 2947 targetLength = target.length; 2948 2949 if (isSlide) { 2950 return; 2951 } 2952 2953 do { 2954 num++; 2955 } while (target[num].classList.contains(classNames.isHideForToggleDisplay)); 2956 2957 if (num >= targetLength) { 2958 num = targetLength - 1; 2959 2960 return; 2961 } 2962 2963 fn.getPosition(); 2964 fn.changePosition(); 2965 fn.slide(); 2966 }; 2967 2968 fn.slide = function () { 2969 isSlide = true; 2970 2971 fn.changeCurrentClass(); 2972 fn.changeTabIndex(); 2973 fn.changeProgressBar(); 2974 fn.changeButtonDisplay(); 2975 fn.changeProgressDisplay(); 2976 fn.changeFormDisplay(); 2977 fn.setEnquete(); 2978 fn.setVideoJs(); 2979 fn.ctrlVideo(); 2980 fn.changeFocus(); 2981 }; 2982 2983 fn.changeCurrentClass = function () { 2984 target.forEach(function (elm) { 2985 fn.removeCurrentClass(elm); 2986 }); 2987 2988 fn.addCurrentClass(target[num]); 2989 }; 2990 2991 fn.changeTabIndex = function () { 2992 var focusable = null; 2993 2994 target.forEach(function (elm) { 2995 focusable = elm.querySelectorAll(self.CONFIG.FOCUSABLE); 2996 2997 if (focusable.length) { 2998 if (elm.classList.contains(classNames.isCurrent)) { 2999 focusable.forEach(function (item) { 3000 item.tabIndex = 0; 3001 }); 3002 } else { 3003 focusable.forEach(function (item) { 3004 item.tabIndex = -1; 3005 }); 3006 } 3007 } 3008 }); 3009 }; 3010 3011 fn.preventSubmit = function () { 3012 var focusable = null; 3013 var focusableForm = 'input, button, select, option, textarea, output'; 3014 3015 currentTarget = targetParent.querySelector('.' + classNames.isCurrent); 3016 3017 if (currentTarget === null) { 3018 return; 3019 } 3020 3021 focusable = currentTarget.querySelectorAll(focusableForm); 3022 3023 if (!focusable.length) { 3024 return; 3025 } 3026 3027 focusable.forEach(function (elm) { 3028 elm.addEventListener('keydown', fn.handlers.keyDown, false); 3029 }); 3030 }; 3031 3032 fn.changeFocus = function () { 3033 fn.addEventListenerOnce(targetParent, 'transitionend', function () {
3034 isSlide = false; 3035 3036 target.forEach(function (elm) { 3037 if (elm.classList.contains(classNames.isCurrent)) { 3038 elm.tabIndex = -1; 3039 elm.focus(); 3040 } else { 3041 elm.removeAttribute('tabIndex'); 3042 } 3043 }); 3044 }); 3045 }; 3046 3047 fn.addCurrentClass = function (elm) { 3048 elm.classList.add(classNames.isCurrent); 3049 }; 3050 3051 fn.removeCurrentClass = function (elm) { 3052 elm.classList.remove(classNames.isCurrent); 3053 }; 3054 3055 fn.getNotHideTarget = function () { 3056 var notHideTarget = []; 3057 3058 if (targetParent !== null) { 3059 target = targetParent.querySelectorAll('.' + classNames.target); 3060 } 3061 3062 3063 if (target.length) { 3064 target.forEach(function (elm) { 3065 if (!elm.classList.contains('IsHide')) { 3066 notHideTarget.push(elm); 3067 } 3068 }); 3069 } 3070 3071 return notHideTarget; 3072 }; 3073 3074 fn.changeProgressBar = function () { 3075 ratio = (num * 100) / (targetLength - 1); 3076 3077 ratio = Math.floor(ratio); 3078 3079 if (progressText === null) { 3080 return; 3081 } 3082 3083 progressText.innerText = ratio + '%'; 3084 3085 if (progressBar === null) { 3086 return; 3087 } 3088 3089 progressBar.style.width = ratio + '%'; 3090 }; 3091 3092 fn.changeButtonDisplay = function () { 3093 if (prevButton === null || nextButton === null) { 3094 return; 3095 } 3096 3097 if (num === 0) { 3098 fn.addHideClass(prevButton); 3099 fn.removeHideClass(nextButton); 3100 } else if (num === targetLength - 1) { 3101 fn.addHideClass(nextButton); 3102 fn.removeHideClass(prevButton); 3103 } else { 3104 fn.removeHideClass(nextButton); 3105 fn.removeHideClass(prevButton); 3106 } 3107 }; 3108 3109 fn.changeProgressDisplay = function () { 3110 if (progress === null) { 3111 return; 3112 } 3113 3114 if (num === targetLength - 1) { 3115 fn.addHideClass(progress); 3116 } else { 3117 fn.removeHideClass(progress); 3118 } 3119 }; 3120 3121 fn.changeFormDisplay = function () { 3122 if (form === null) { 3123 return; 3124 } 3125 3126 if (num === targetLength - 1) { 3127 fn.removeHideClass(form); 3128 } else { 3129 fn.addHideClass(form); 3130 } 3131 }; 3132 3133 fn.getPosition = function () { 3134 rootTopPosition = root.getBoundingClientRect().top; 3135 }; 3136 3137 fn.changePosition = function () { 3138 scrollAmount = win.pageYOffset; 3139 rootPosition = rootTopPosition + scrollAmount; 3140 3141 win.scrollTo(0, rootPosition - 30); 3142 }; 3143 3144 fn.addHideClass = function (elm) { 3145 elm.classList.add(classNames.isHide); 3146 }; 3147 3148 fn.removeHideClass = function (elm) { 3149 elm.classList.remove(classNames.isHide); 3150 }; 3151 3152 fn.destroySize = function () { 3153 targetParent.style.width = ''; 3154 targetParent.style.height = ''; 3155 3156 target.forEach(function (elm) { 3157 elm.style.width = ''; 3158 }); 3159 }; 3160 3161 fn.addResizeEvent = function () { 3162 win.addEventListener('resize', fn.handlers.resize, false); 3163 }; 3164 3165 fn.setEnquete = function () { 3166 fn.preventSubmit(); 3167 fn.validateForm(fn.getRequiredItem()); 3168 fn.addChangeEvent(); 3169 fn.observeClassforTitleAndText(); 3170 }; 3171 3172 fn.getRequiredItem = function () { 3173 var requiredData = fn.rebuildRequiredData(enqueteData.required); 3174 var requiredItem = null; 3175 3176 currentTarget = targetParent.querySelector('.' + classNames.isCurrent); 3177 3178 if (currentTarget !== null) { 3179 if (requiredData.length) { 3180 requiredItem = currentTarget.querySelectorAll(requiredData); 3181 } else { 3182 requiredItem = []; 3183 } 3184 } 3185 3186 return requiredItem; 3187 }; 3188 3189 fn.rebuildRequiredData = function (data) { 3190 var i; 3191 var len = data.length; 3192 var list = []; 3193 3194 for (i = 0; i < len; i++) { 3195 list.push(data[i].name); 3196 } 3197 3198 list = fn.supplementItemList(list); 3199 3200 return list; 3201 }; 3202 3203 fn.supplementItemList = function (list) { 3204 var requiredInput = null; 3205 3206 currentTarget = targetParent.querySelector('.' + classNames.isCurrent); 3207 3208 if (currentTarget !== null) { 3209 requiredInput = currentTarget.querySelectorAll('.' + classNames.isRequired); 3210 3211 if (requiredInput.length) { 3212 requiredInput.forEach(function (elm) { 3213 list.push("[name='" + elm.getAttribute('name') + "']"); 3214 }); 3215 } 3216 } 3217 3218 return list; 3219 }; 3220 3221 fn.validateForm = function (requiredList) { 3222 var isEntered = false; 3223 var isInputted = false; 3224 var inputList = []; 3225 var requiredInputList = []; 3226 3227 if (!requiredList.length) { 3228 isEntered = true; 3229 } else { 3230 requiredList.forEach(function (elm) { 3231 if (elm.type === 'checkbox' || elm.type === 'radio') { 3232 isEntered = isEntered || elm.checked; 3233 } else if (!elm.classList.contains(classNames.isRequired)) { 3234 inputList.push(elm); 3235 } else if (elm.classList.contains(classNames.isRequired) && !elm.disabled) { 3236 requiredInputList.push(elm); 3237 } 3238 }); 3239 } 3240 3241 if (inputList.length) { 3242 isInputted = inputList.every(function (elm) { 3243 return elm.value !== null && elm.value.trim() !== ''; 3244 }); 3245 3246 if (isInputted) { 3247 isEntered = true; 3248 } else { 3249 isEntered = false; 3250 } 3251 } 3252 3253 if (requiredInputList.length) { 3254 requiredInputList.forEach(function (elm) { 3255 if (elm.value.trim() === '') { 3256 isEntered = false; 3257 } 3258 }); 3259 } 3260 3261 if (isEntered) { 3262 fn.enableButton(); 3263 } else { 3264 fn.disableButton(); 3265 } 3266 }; 3267 3268 fn.observeAttrforRequiredInput = function (requiredList) { 3269 var obs; 3270 var config = {attributes: true}; 3271 3272 requiredList.forEach(function (elm) { 3273 if ((elm.tagName === 'TEXTAREA' || elm.getAttribute('type') === 'text') && elm.classList.contains(classNames.isRequired)) { 3274 obs = new MutationObserver(function () { 3275 fn.validateForm(fn.getRequiredItem()); 3276 }); 3277 3278 obs.observe(elm, config); 3279 } 3280 }); 3281 }; 3282 3283 fn.observeClassforTitleAndText = function () { 3284 var obs; 3285 var config = {attributes: true}; 3286 var titleAndText = root.querySelectorAll('.' + classNames.titleAndText); 3287 3288 if (!titleAndText.length) { 3289 return; 3290 } 3291 3292 titleAndText.forEach(function (elm) { 3293 obs = new MutationObserver(function () { 3294 fn.toggleDisplayForTarget(elm); 3295 }); 3296 3297 obs.observe(elm, config); 3298 }); 3299 }; 3300 3301 fn.toggleDisplayForTarget = function (elm) { 3302 var parentTarget; 3303 3304 if (!elm) { 3305 return; 3306 } 3307 3308 parentTarget = elm.closest('.' + classNames.target); 3309 3310 if (parentTarget && !fn.hasChildQuestion(parentTarget)) { 3311 if (elm.classList.contains(classNames.isHideForToggleDisplay)) { 3312 fn.addHideClassforTitleAndTextParent(parentTarget); 3313 } else { 3314 fn.removeHideClassforTitleAndTextParent(parentTarget); 3315 } 3316 } 3317 }; 3318 3319 fn.hasChildQuestion = function (elm) { 3320 if (elm && elm.querySelectorAll('.EnqTitle02').length) { 3321 return true; 3322 } 3323 3324 return false; 3325 }; 3326 3327 fn.addHideClassforTitleAndTextParent = function (elm) { 3328 if (elm) { 3329 elm.classList.add(classNames.isHideForToggleDisplay); 3330 } 3331 }; 3332 3333 fn.removeHideClassforTitleAndTextParent = function (elm) { 3334 if (elm) { 3335 elm.classList.remove(classNames.isHideForToggleDisplay); 3336 } 3337 }; 3338 3339 fn.enableButton = function () { 3340 if (nextButton === null) { 3341 return; 3342 } 3343 3344 nextButton.removeAttribute('disabled'); 3345 }; 3346 3347 fn.disableButton = function () { 3348 if (nextButton === null) { 3349 return; 3350 } 3351 3352 nextButton.setAttribute('disabled', true); 3353 }; 3354 3355 fn.addChangeEvent = function () { 3356 var requiredList = fn.getRequiredItem(); 3357 3358 requiredList.forEach(function (elm) { 3359 if (elm.tagName === 'TEXTAREA' || elm.getAttribute('type') === 'text') { 3360 elm.addEventListener('input', fn.handlers.input); 3361 } else { 3362 elm.addEventListener('change', fn.handlers.change); 3363 } 3364 }); 3365 }; 3366 3367 fn.runWhenFormShow = function () { 3368 if (multiStepFormSignin === null || multiStepFormRegistration === null) { 3369 return; 3370 } 3371 3372 if (!multiStepFormSignin.classList.contains(classNames.isHide) || !multiStepFormRegistration.classList.contains(classNames.isHide)) { 3373 targetLength = target.length; 3374 3375 if (targetLength) { 3376 target.forEach(function (elm) { 3377 fn.removeCurrentClass(elm); 3378 }); 3379 3380 num = targetLength - 1; 3381 fn.addCurrentClass(target[targetLength - 1]); 3382 } 3383 } 3384 }; 3385 3386 fn.ctrlVideo = function () { 3387 var videos; 3388 var data; 3389 3390 if (targetParent) { 3391 videos = targetParent.querySelectorAll('.' + classNames.video); 3392 } 3393 3394 if (videos.length) { 3395 videos.forEach(function (elm) { 3396 data = elm.dataset.video; 3397 3398 if (data) { 3399 if (fn.checkVideoJs()) { 3400 fn.stopVideoJs(Number(data) - 1); 3401 } else { 3402 fn.stopVideo(Number(data) - 1); 3403 } 3404 } 3405 }); 3406 } 3407 3408 if (root.classList.contains(classNames.isAutoplay)) { 3409 fn.startCurrentVideo(); 3410 } 3411 }; 3412 3413 fn.startCurrentVideo = function () { 3414 var currentVideo = null; 3415 3416 if (targetParent) { 3417 target = targetParent.querySelectorAll('.' + classNames.target); 3418 } 3419 3420 if (!target.length) { 3421 return; 3422 } 3423 3424 target.forEach(function (elm) { 3425 if (elm.classList.contains(classNames.isCurrent)) { 3426 currentVideo = elm.querySelector('.' + classNames.video); 3427 3428 if (currentVideo) { 3429 if (fn.checkVideoJs()) { 3430 fn.startVideoJs(currentVideo.dataset.video); 3431 } else { 3432 fn.startVideo(currentVideo.dataset.video); 3433 } 3434 } 3435 } 3436 }); 3437 }; 3438 3439 fn.startVideo = function (idx) { 3440 if (!fn.checkVideoList()) { 3441 return; 3442 } 3443 3444 if (fn.getState(win.surveyVideoPlayers[idx - 1]) !== 'complete') { 3445 win.surveyVideoPlayers[idx - 1].accessor.play(); 3446 } 3447 }; 3448 3449 fn.stopVideo = function (idx) { 3450 if (!fn.checkVideoList()) { 3451 return; 3452 } 3453 3454 win.surveyVideoPlayers[idx].accessor.pause(); 3455 }; 3456 3457 fn.getState = function (player) { 3458 var stete; 3459 3460 if (player) { 3461 stete = player.accessor.state; 3462 } 3463 3464 return stete; 3465 }; 3466 3467 fn.checkVideoList = function () { 3468 var result = false; 3469 3470 if (typeof win.surveyVideoPlayers === 'undefined' || !win.surveyVideoPlayers.length) { 3471 result = false; 3472 } else { 3473 result = true; 3474 } 3475 3476 return result; 3477 }; 3478 3479 fn.setVideoJs = function () { 3480 if (!target.length) { 3481 return; 3482 } 3483 3484 target.forEach(function (elm) { 3485 var videoOuter; 3486 var videoJs; 3487 var videoJsAttr = {}; 3488 var video; 3489 3490 if (elm.classList.contains(classNames.isCurrent)) { 3491 videoOuter = elm.querySelector('.' + classNames.videoJsOuter); 3492 3493 if (videoOuter) { 3494 videoJs = videoOuter.querySelector('.' + classNames.videoJs); 3495 3496 if (!videoJs) { 3497 videoJsAttr.id = videoOuter.dataset.videoJsId; 3498 videoJsAttr.accountId = PLAYER_DATA.ACCOUNT_ID ? PLAYER_DATA.ACCOUNT_ID : videoOuter.dataset.videoJsAccount; 3499 videoJsAttr.player = PLAYER_DATA.PLAYER_ID ? PLAYER_DATA.PLAYER_ID : videoOuter.dataset.videoJsPlayer; 3500 videoJsAttr.embed = videoOuter.dataset.videoJsEmbed; 3501 videoJsAttr.videoId = videoOuter.dataset.videoJsVideoId; 3502 videoJsAttr.class = videoOuter.dataset.videoJsClass; 3503 videoJsAttr.attr = videoOuter.dataset.videoJsVideoAttr; 3504 3505 video = fn.createVideoJs(videoJsAttr); 3506 3507 videoOuter.appendChild(video);
3508 fn.setVideoJsScript(videoJsAttr.accountId, videoJsAttr.player); 3509 } 3510 } 3511 } 3512 }); 3513 }; 3514 3515 fn.createVideoJs = function (videoJsAttr) { 3516 var videoJs = doc.createElement('video-js'); 3517 var key; 3518 var videoAttr; 3519 3520 videoJs.id = videoJsAttr.id ? videoJsAttr.id : ''; 3521 videoJs.dataset.account = videoJsAttr.accountId ? videoJsAttr.accountId : ''; 3522 videoJs.dataset.player = videoJsAttr.player ? videoJsAttr.player : ''; 3523 videoJs.dataset.embed = videoJsAttr.embed ? videoJsAttr.embed : ''; 3524 videoJs.dataset.videoId = videoJsAttr.videoId ? videoJsAttr.videoId : ''; 3525 3526 if (videoJsAttr.class) { 3527 videoJs.classList.add(videoJsAttr.class); 3528 } 3529 3530 videoAttr = JSON.parse(videoJsAttr.attr); 3531 3532 if (typeof videoAttr !== 'undefined') { 3533 for (key in videoAttr) { 3534 if (videoAttr.hasOwnProperty(key) && videoAttr[key]) { 3535 if (videoAttr[key] === 'false') { 3536 continue; 3537 } 3538 3539 if (videoAttr[key] === 'true') { 3540 videoJs.setAttribute(key, Boolean(videoAttr[key])); 3541 } else { 3542 videoJs.setAttribute(key, videoAttr[key]); 3543 } 3544 } 3545 } 3546 } 3547 3548 return videoJs; 3549 }; 3550 3551 fn.setVideoJsScript = function (accountId, player) { 3552 var bcScript = doc.querySelector('.' + classNames.videoJsScript); 3553 var script = doc.createElement('script'); 3554 var src = 'https://players.brightcove.net/' + accountId + '/' + player + '_default/index.min.js'; 3555 3556 script.classList.add(classNames.videoJsScript); 3557 script.src = src; 3558 3559 if (bcScript) { 3560 bcScript.parentNode.removeChild(bcScript); 3561 } 3562 3563 doc.body.appendChild(script); 3564 }; 3565 3566 fn.startVideoJs = function (idx) { 3567 var bcScript; 3568 var videoJs; 3569 var id; 3570 3571 if (fn.checkVideoJs()) { 3572 videoJs = videoJsOuter[idx - 1].querySelector(classNames.videoJs); 3573 id = videoJs ? videoJs.id : null; 3574 bcScript = doc.querySelector('.' + classNames.videoJsScript); 3575 3576 if (win.videojs && win.videojs.players.hasOwnProperty(id)) { 3577 win.videojs.getPlayer(id).play(); 3578 } else { 3579 if (bcScript) { 3580 bcScript.addEventListener('load', function () { 3581 if (win.videojs && win.videojs.players.hasOwnProperty(id)) { 3582 win.videojs.getPlayer(id).play(); 3583 } 3584 }); 3585 } 3586 } 3587 } 3588 }; 3589 3590 fn.stopVideoJs = function (idx) { 3591 var bcScript; 3592 var videoJs; 3593 var id; 3594 3595 if (fn.checkVideoJs()) { 3596 videoJs = videoJsOuter[idx].querySelector(classNames.videoJs); 3597 id = videoJs ? videoJs.id : null; 3598 bcScript = doc.querySelector('.' + classNames.videoJsScript); 3599 3600 if (win.videojs && win.videojs.players.hasOwnProperty(id)) { 3601 win.videojs.getPlayer(id).pause(); 3602 } else { 3603 if (bcScript) { 3604 bcScript.addEventListener('load', function () { 3605 if (win.videojs && win.videojs.players.hasOwnProperty(id)) { 3606 win.videojs.getPlayer(id).pause(); 3607 } 3608 }); 3609 } 3610 } 3611 } 3612 }; 3613 3614 fn.checkVideoJs = function () { 3615 var result; 3616 3617 if (!videoJsOuter.length) { 3618 result = false; 3619 } else { 3620 result = true; 3621 } 3622 3623 return result; 3624 }; 3625 3626 fn.addEventListenerOnce = function (elm, type, listener) { 3627 elm.addEventListener(type, function func() { 3628 elm.removeEventListener(type, func); 3629 listener(); 3630 }); 3631 }; 3632 3633 fn.checkSupportsTemp = function () {
3634 return 'content' in doc.createElement('template'); 3635 }; 3636 3637 fn.createNodeClone = function (template, selectorForIE) { 3638 if (fn.checkSupportsTemp() === true) { 3639 return doc.importNode(template.content, true); 3640 } 3641 3642 return doc.importNode(template.querySelector(selectorForIE), true); 3643 }; 3644 3645 fn.handlers = { 3646 change: function () { 3647 fn.validateForm(fn.getRequiredItem()); 3648 }, 3649 input: function () { 3650 fn.validateForm(fn.getRequiredItem()); 3651 }, 3652 resize: function () { 3653 if (resizeTimer !== null) { 3654 clearTimeout(resizeTimer); 3655 } 3656 3657 resizeTimer = setTimeout(function () { 3658 fn.destroySize(); 3659 fn.getPosition(); 3660 }, 50); 3661 }, 3662 keyDown: function (e) { 3663 if (e.key === 'Enter') { 3664 e.preventDefault(); 3665 } 3666 } 3667 }; 3668 3669 fn.init(); 3670 }; 3671 3672 KEYENCE.setStepRegistrationForm = function () { 3673 var fn = {}; // namespace 3674 3675 var idNames = { 3676 regArea: 'suz_regArea', 3677 regForm: 'suz_registrationForm' 3678 }; 3679 3680 var classNames = { 3681 hiddenForm: 'js-hiddenFormItem', 3682 isHide: 'is-hide', 3683 preForm: 'js-preInput', 3684 isPreInputCompleted: 'is-preInput-completed', 3685 isError: 'is-error', 3686 btnContinue: 'js-formContinue', 3687 btnSubmit: 'js-formSubmit', 3688 errorMsg: 'suz_errorMsg' 3689 }; 3690 3691 var formElementSelector = 'input, textarea, select'; 3692 3693 var elements = { 3694 $regArea: $('#' + idNames.regArea), 3695 $btnContinue: $('.' + classNames.btnContinue, '#' + idNames.regForm) 3696 }; 3697 3698 fn.init = function () { 3699 var $regArea = elements.$regArea; 3700 var $btnContinue = elements.$btnContinue; 3701 3702 if (!$regArea.length || !$btnContinue.length) { 3703 return; 3704 } 3705 3706 if (fn.isPreInputCompleted()) { 3707 fn.enableFullForm(); 3708 3709 return; 3710 } 3711 3712 fn.bindClickContinue(); 3713 3714 fn.deployObserver(function () { 3715 if (fn.isPreInputCompleted()) { 3716 fn.enableFullForm(); 3717 } 3718 }); 3719 }; 3720 3721 fn.existsElem = function ($element) { 3722 if ($element && $element.length) { 3723 return true; 3724 } 3725 3726 return false; 3727 }; 3728 3729 fn.show = function ($item) { 3730 if (fn.existsElem($item)) { 3731 $item.removeClass(classNames.isHide); 3732 } 3733 }; 3734 3735 fn.showAll = function ($items, needFocus) { 3736 if (!fn.existsElem($items)) { 3737 return; 3738 } 3739 3740 $items.each(function (index) { 3741 var $this = $(this); 3742 var $formElement; 3743 3744 fn.show($this); 3745 3746 if (needFocus && index === 0) { 3747 $formElement = $this.find(formElementSelector); 3748 3749 if (!$formElement.length) { 3750 return; 3751 } 3752 3753 if (fn.existsElem($formElement)) { 3754 $formElement[0].focus(); 3755 } 3756 } 3757 }); 3758 }; 3759 3760 fn.hide = function ($item) { 3761 if (fn.existsElem($item)) { 3762 $item.addClass(classNames.isHide); 3763 } 3764 }; 3765 3766 fn.isPreInputCompleted = function () { 3767 var $regArea = elements.$regArea; 3768 3769 if ($regArea.hasClass(classNames.isPreInputCompleted)) { 3770 return true; 3771 } 3772 3773 return false; 3774 }; 3775 3776 fn.deployObserver = function (handler) { 3777 var $regArea = elements.$regArea; 3778 var obs; 3779 3780 obs = new MutationObserver(function () { 3781 if (handler) { 3782 handler(); 3783 } 3784 }); 3785 3786 if ($regArea.length) { 3787 obs.observe($regArea[0], { 3788 childList: true 3789 }); 3790 } 3791 3792 return obs; 3793 }; 3794 3795 fn.deleteObserver = function (obs) { 3796 if (obs && typeof obs.disconnect === 'function') { 3797 obs.disconnect(); 3798 } 3799 }; 3800 3801 fn.enableFullForm = function (needFocus) { 3802 var $regArea = elements.$regArea; 3803 var $btnContinue = elements.$btnContinue; 3804 var $btnSubmit = $('.' + classNames.btnSubmit); 3805 var $hiddenItems = $('.' + classNames.hiddenForm); 3806 3807 fn.showAll($hiddenItems, needFocus); 3808 fn.show($btnSubmit); 3809 fn.hide($btnContinue); 3810 $regArea.addClass(classNames.isPreInputCompleted); 3811 }; 3812 3813 fn.bindClickContinue = function () { 3814 var $btnContinue = elements.$btnContinue; 3815 var $input = $btnContinue.find('input'); 3816 3817 if ($input.length) { 3818 $input.off().on('click', fn.onclickContinue); 3819 } 3820 }; 3821 3822 fn.onclickContinue = function () { 3823 var deferreds = []; 3824 var $regArea = elements.$regArea; 3825 var $preForms = $regArea.find('.' + classNames.preForm); 3826 3827 $preForms.each(function () { 3828 var $item = $(this); 3829 var $input = $item.find('input'); 3830 3831 if ($input.length) { 3832 deferreds.push( 3833 fn.validateForm($input) 3834 ); 3835 } 3836 }); 3837 3838 if (deferreds.length) { 3839 $.when.apply(null, deferreds).done(function () { 3840 if (fn.isCompletedAll($preForms)) { 3841 fn.enableFullForm(true); 3842 fn.clearAll($('.' + classNames.hiddenForm)); 3843 } 3844 }).fail(function () { 3845 fn.enableFullForm(true); 3846 fn.clearAll($('.' + classNames.hiddenForm)); 3847 }); 3848 } 3849 }; 3850 3851 fn.clearAll = function ($items) { 3852 if (!fn.existsElem($items)) { 3853 return; 3854 } 3855 3856 $items.each(function (index) { 3857 var $this = $(this); 3858 var $input; 3859 var $errorMsg; 3860 3861 if ($this.hasClass(classNames.isError)) { 3862 $this.removeClass(classNames.isError); 3863 3864 $input = $this.find(':text,:password,input[type="email"], input[type="tel"]'); 3865 3866 if ($input.length) { 3867 $input.val(''); 3868 } 3869 3870 $errorMsg = $this.find('.' + classNames.errorMsg); 3871 3872 if ($errorMsg.length) { 3873 $errorMsg.text(''); 3874 } 3875 } 3876 }); 3877 }; 3878 3879 fn.isCompletedAll = function ($forms) { 3880 var result = true; 3881 3882 if (!fn.existsElem($forms)) { 3883 return false; 3884 } 3885 3886 $forms.each(function () { 3887 var $this = $(this); 3888 3889 if ($this.hasClass(classNames.isError)) { 3890 result = false; 3891 3892 return false; 3893 } 3894 3895 return true; 3896 }); 3897 3898 return result; 3899 }; 3900 3901 fn.updateFieldStatus = function (data, fieldName) { 3902 var $trgtTr = $('#suz_tr_' + fieldName); 3903 var $trgtDiv = $('#suz_div_' + fieldName); 3904 3905 if (!data) { 3906 return; 3907 } 3908 3909 if ($trgtTr.length) { 3910 if (data.message) { 3911 $trgtTr.removeClass('ProperRow'); 3912 $trgtTr.addClass('is-error'); 3913 $trgtTr.find('p').html(data.message); 3914 $trgtTr.find('p').parent().css('display', 'block'); 3915 } else { 3916 $trgtTr.removeClass('is-error'); 3917 $trgtTr.addClass('ProperRow'); 3918 $trgtTr.find('p').html(''); 3919 $trgtTr.find('p').parent().css('display', 'none'); 3920 } 3921 $trgtTr.addClass('suzChecked'); 3922 } else if ($trgtDiv.length) { 3923 if (data.message) { 3924 $trgtDiv.addClass('is-error'); 3925 $trgtDiv.find('.suz_errorMsg').html(data.message); 3926 $trgtDiv.find('.suz_errorMsg').css('display', 'block'); 3927 } else { 3928 $trgtDiv.removeClass('is-error'); 3929 $trgtDiv.find('.suz_errorMsg').html(''); 3930 $trgtDiv.find('.suz_errorMsg').css('display', 'none'); 3931 } 3932 $trgtDiv.addClass('suzChecked'); 3933 } 3934 }; 3935 3936 fn.validateForm = function ($input) { 3937 var deferred = new $.Deferred(); 3938 var fieldName; 3939 var fieldValue; 3940 3941 if (!fn.existsElem($input)) { 3942 return deferred.fail(); 3943 } 3944 3945 fieldName = $input.attr('name') || ''; 3946 3947 if ($input.attr('type') === 'checkbox') { 3948 fieldValue = $input.prop('checked') ? 'on' : 'off'; 3949 } else { 3950 fieldValue = $input.val() || ''; 3951 } 3952 3953 $.ajax({
3954 url: win.suz_getCurrentDomain() + '/ajax/registrationAjax/validator/', 3955 data: { 3956 fieldName: fieldName, 3957 fieldValue: encodeURIComponent(fieldValue), 3958 token: $("input[name='org.apache.struts.taglib.html.TOKEN']").attr('value') 3959 }, 3960 dataType: 'jsonp', 3961 jsonp: 'callback', 3962 scriptCharset: 'UTF-8' 3963 }).done(function (data) { 3964 fn.updateFieldStatus(data, fieldName); 3965 3966 deferred.resolve(); 3967 }).fail(function (req, stat, err) { 3968 if (req.status === 401) { 3969 window.location.href = win.suz_getCurrentDomain() + '/error/tokenError.jsp'; 3970 3971 return false; 3972 } 3973 3974 win.alert(err); 3975 3976 deferred.fail(); 3977 }); 3978 3979 return deferred.promise(); 3980 }; 3981 3982 fn.init(); 3983 }; 3984 3985 KEYENCE.scrollTransitionToAnchor = function () { 3986 var self = this; 3987 var hash = win.location.hash; 3988 var target = doc.getElementById(hash.substring(1)); 3989 var seriesHeader = doc.querySelector('[data-series-header-target="sticky"]'); 3990 var fixedHeader = null; 3991 var needsInitialScroll = target !== null; 3992 var smallHeightScreenMql = win.matchMedia('only screen and (max-height: 770px)'); 3993 var scroller = {}; 3994 var SCROLL_ADJUST = { 3995 THRESHOLD: 3, 3996 COOL_DOWN: 250, 3997 ADJUSTMENT_LOCKOUT: 1000, 3998 MAX_CORRECTION_COUNT: 2, 3999 LOCK_DURATION: 1500, 4000 }; 4001 var userInterruptedUntil = 0; 4002 var lastAdjusted = { 4003 key: null, 4004 time: 0 4005 }; 4006 var adjustTimerId = null; 4007 var isPending = false; 4008 var USER_INPUT_EVENTS = ['wheel', 'touchmove', 'keydown', 'mousedown']; 4009 var LISTENER_OPTIONS = { passive: true }; 4010 4011 scroller.init = new SmoothScroll(); 4012 4013 scroller.run = function () { 4014 scroller.init.destroy(); 4015 4016 if (smallScreenMql.matches) { 4017 fixedHeader = seriesHeader ? '[data-series-header-target="sticky"]' : '#js-controlHeader'; 4018 } else { 4019 if (smallHeightScreenMql.matches) { 4020 fixedHeader = seriesHeader ? '[data-series-header-target="sticky"]' : null; 4021 } else { 4022 fixedHeader = seriesHeader ? '[data-series-header-target="sticky"]' : '#js-controlHeader'; 4023 } 4024 } 4025 4026 scroller.init = new SmoothScroll('.js-scrollTransition[href^="#"], #LpcContentsArea [href^="#"]', { 4027 header: fixedHeader, 4028 speed: 400, 4029 easing: 'easeInOutQuart', 4030 updateURL: false, 4031 speedAsDuration: true 4032 }); 4033 }; 4034 4035 scroller.runForEachScreen = function () { 4036 scroller.run(); 4037 }; 4038 4039 scroller.handleLoad = function () { 4040 if (needsInitialScroll) { 4041 scroller.init.animateScroll(target, null, { 4042 speed: 100 4043 }); 4044 } 4045 }; 4046 4047 scroller.handleScrollStart = async function (e) { 4048 var anchor = e?.detail?.anchor; 4049 4050 if (self.getElem.spSearchBtn && self.getElem.spSearchTarget) { 4051 self.getElem.spSearchBtn.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 4052 self.getElem.spSearchTarget.classList.remove(self.CONFIG.SHOW_CLASS); 4053 doc.body.classList.remove(self.CONFIG.MENU_SHOW_CLASS); 4054 } 4055 4056 scroller.addUserInputListeners(); 4057 4058 if (anchor) { 4059 try { await scroller.preflightLayoutTo(anchor); } catch(_) {} 4060 } 4061 }; 4062 4063 scroller.preflightLayoutTo = async function (target) { 4064 var startY = win.pageYOffset || doc.documentElement.scrollTop || 0; 4065 var targetY = target.getBoundingClientRect().top + startY; 4066 var minY = Math.min(startY, targetY); 4067 var maxY = Math.max(startY, targetY); 4068 4069 var imgs = [...doc.images].filter(img => { 4070 var y = 0; 4071 4072 if (img.loading !== 'lazy') { 4073 return false; 4074 } 4075 4076 y = img.getBoundingClientRect().top + startY; 4077 4078 return y >= minY && y <= maxY; 4079 }); 4080
4081 imgs.forEach(img => { 4082 try { img.loading = 'eager'; } catch(_) {} 4083 if (!img.hasAttribute('fetchpriority')) { 4084 img.setAttribute('fetchpriority', 'high'); 4085 } 4086 }); 4087 4088 await Promise.all(imgs.map(img => img.decode?.().catch(() => {}))); 4089 }; 4090 4091 scroller.handleScrollStop = function (e) { 4092 var anchor = e?.detail?.anchor; 4093 var currentTime = Date.now(); 4094 var anchorKey = null; 4095 var diff = 0; 4096 var isAdjusted = false; 4097 var scrollMetrics; 4098 4099 if (!anchor || currentTime < userInterruptedUntil) { 4100 scroller.removeUserInputListeners(); 4101 return; 4102 } 4103 4104 anchorKey = anchor.id || anchor?.getAttribute('name') || anchor; 4105 4106 if (lastAdjusted.key === anchorKey && (currentTime - lastAdjusted.time) < SCROLL_ADJUST.ADJUSTMENT_LOCKOUT) { 4107 scroller.removeUserInputListeners(); 4108 return; 4109 } 4110 4111 if (adjustTimerId) { 4112 clearTimeout(adjustTimerId); 4113 adjustTimerId = null; 4114 } 4115 4116 if (smallScreenMql.matches) { 4117 isPending = true; 4118 4119 adjustTimerId = setTimeout(function () { 4120 if (!isPending || Date.now() < userInterruptedUntil) { 4121 isPending = false; 4122 adjustTimerId = null; 4123 scroller.removeUserInputListeners(); 4124 4125 return; 4126 } 4127 4128 scrollMetrics = scroller.getScrollMetrics(anchor); 4129 diff = scrollMetrics?.diff ?? 0; 4130 4131 if (diff > SCROLL_ADJUST.THRESHOLD) { 4132 lastAdjusted.key = anchorKey; 4133 lastAdjusted.time = currentTime; 4134 isAdjusted = true; 4135 4136 scroller.init && scroller.init.animateScroll(anchor, null, { 4137 speed: 100, 4138 updateURL: false 4139 }); 4140 } 4141 4142 isPending = false; 4143 adjustTimerId = null; 4144 4145 if (!isAdjusted) { 4146 scroller.removeUserInputListeners(); 4147 } 4148 }, 1000); 4149 } else { 4150 isPending = false; 4151 4152 scrollMetrics = scroller.getScrollMetrics(anchor); 4153 diff = scrollMetrics?.diff ?? 0; 4154 4155 if (diff > SCROLL_ADJUST.THRESHOLD) { 4156 lastAdjusted.key = anchorKey; 4157 lastAdjusted.time = currentTime; 4158 4159 scroller.instantCorrectTo(anchor, fixedHeader); 4160 } 4161 4162 scroller.startScrollLock(anchor, fixedHeader); 4163 4164 scroller.removeUserInputListeners(); 4165 } 4166 }; 4167 4168 scroller.getScrollMetrics = function (target) { 4169 var header = doc.querySelector(fixedHeader) ?? null; 4170 var headerHeight = header?.offsetHeight ?? 0; 4171 var currentY = win.pageYOffset ?? doc.documentElement.scrollTop ?? 0; 4172 var rectTop = target?.getBoundingClientRect?.().top ?? 0; 4173 var expectedTop = rectTop + currentY - headerHeight; 4174 var diff = Math.abs(currentY - expectedTop); 4175 4176 return { 4177 header: header, 4178 headerHeight: headerHeight, 4179 currentY: currentY, 4180 expectedTop: expectedTop, 4181 diff: diff 4182 }; 4183 }; 4184 4185 scroller.instantCorrectTo = function (anchor, headerSelector) { 4186 var header = headerSelector ? doc.querySelector(headerSelector) : null; 4187 var headerHeight = header?.offsetHeight ?? 0; 4188 var currentY = win.pageYOffset ?? doc.documentElement.scrollTop ?? 0; 4189 var rect = anchor.getBoundingClientRect(); 4190 var expectedTop = rect.top + currentY - headerHeight; 4191 4192 win.scrollTo({ top: expectedTop, behavior: 'auto' });
4193 }; 4194 4195 scroller.startScrollLock = function (anchor, headerSelector) { 4196 var correctionCount = 0; 4197 var header = headerSelector ? doc.querySelector(headerSelector) : null; 4198 var headerHeight = header?.offsetHeight ?? 0; 4199 var resizeObserver = new ResizeObserver(function () { 4200 var currentY = 0; 4201 var rect = 0; 4202 var expectedTop = 0; 4203 var diff = 0; 4204 4205 if (Date.now() < userInterruptedUntil || correctionCount >= SCROLL_ADJUST.MAX_CORRECTION_COUNT) { 4206 return; 4207 } 4208 4209 currentY = win.pageYOffset ?? doc.documentElement.scrollTop ?? 0; 4210 rect = anchor.getBoundingClientRect(); 4211 expectedTop = rect.top + currentY - headerHeight; 4212 diff = Math.abs(currentY - expectedTop); 4213 4214 if (diff > SCROLL_ADJUST.THRESHOLD) { 4215 correctionCount += 1; 4216 win.scrollTo({ top: expectedTop, behavior: 'auto' }); 4217 } 4218 }); 4219 4220 try { resizeObserver.observe(doc.body); } catch(_) {} 4221 setTimeout(function () { resizeObserver.disconnect(); }, SCROLL_ADJUST.LOCK_DURATION); 4222 }; 4223 4224 scroller.addUserInputListeners = function () { 4225 USER_INPUT_EVENTS.forEach(function (e) { 4226 win.addEventListener(e, scroller.markUserInput, LISTENER_OPTIONS); 4227 }); 4228 }; 4229 4230 scroller.removeUserInputListeners = function () { 4231 USER_INPUT_EVENTS.forEach(function (e) { 4232 win.removeEventListener(e, scroller.markUserInput, LISTENER_OPTIONS); 4233 }); 4234 }; 4235 4236 scroller.markUserInput = function () { 4237 userInterruptedUntil = Date.now() + SCROLL_ADJUST.COOL_DOWN; 4238 4239 if (adjustTimerId) { 4240 clearTimeout(adjustTimerId); 4241 adjustTimerId = null; 4242 } 4243 4244 isPending = false; 4245 scroller.removeUserInputListeners(); 4246 }; 4247 4248 scroller.runForEachScreen(); 4249 smallScreenMql.addListener(scroller.runForEachScreen); 4250 smallHeightScreenMql.addListener(scroller.runForEachScreen); 4251 win.addEventListener('load', scroller.handleLoad); 4252 doc.addEventListener('scrollStart', scroller.handleScrollStart); 4253 doc.addEventListener('scrollStop', scroller.handleScrollStop); 4254 }; 4255 4256 KEYENCE.setLoginHeaderMenu = function () { 4257 var self = this; 4258 var ROOT_SELECTOR = 'js-headerMypageTooltip'; 4259 var BUTTON_SELECTOR = 'js-headerMypageTooltip-button'; 4260 var CONTAINER_SELECTOR = 'js-headerMypageTooltip-container'; 4261 var MENU_TARGET_SELECTOR = 'js-headerMypageTooltip-menuTarget'; 4262 var STATE_OPEN_CLASS = 'is-tooltip-open'; 4263 var STATE_CLOSE_CLASS = 'is-tooltip-close'; 4264 var ACTIVE_PC_ATTR = 'data-tooltip-active-pc'; 4265 var READY_ATTR = 'data-header-tooltip-ready'; 4266 var OVERFLOW_LEFT_VAR = '--tooltip-over-left'; 4267 var OVERFLOW_RIGHT_VAR = '--tooltip-over-right'; 4268 var FOCUS_OUT_DELAY = 100; 4269 var OVERFLOW_CLASS = { 4270 left: 'is-windowOverFlow-leftOver', 4271 right: 'is-windowOverFlow-rightOver', 4272 window: 'is-windowOverFlow-windowOver', 4273 top: 'is-windowOverFlow-topOver', 4274 bottom: 'is-windowOverFlow-bottomOver' 4275 }; 4276 4277 function preventDefaultEvent(event) { 4278 event.preventDefault(); 4279 } 4280 4281 function checkInsideActiveElement(container) { 4282 return container.contains(doc.activeElement); 4283 } 4284 4285 function isElementOutOfViewportHorizontally(target) { 4286 var windowWidth = doc.documentElement.clientWidth; 4287 var targetPosition = target.getBoundingClientRect(); 4288 var result = { 4289 state: '', 4290 className: '', 4291 overFlowSize: { 4292 left: Math.round(targetPosition.right - windowWidth) || 0, 4293 right: Math.round(targetPosition.left) || 0 4294 } 4295 }; 4296 var isLeftOver = targetPosition.left < 0; 4297 var isRightOver = windowWidth < targetPosition.right; 4298 4299 if (isLeftOver && isRightOver) { 4300 result.state = 'window'; 4301 result.className = OVERFLOW_CLASS.window; 4302 } else if (isLeftOver) { 4303 result.state = 'left'; 4304 result.className = OVERFLOW_CLASS.left; 4305 } else if (isRightOver) { 4306 result.state = 'right'; 4307 result.className = OVERFLOW_CLASS.right; 4308 } 4309 4310 return result; 4311 } 4312 4313 function resetTargetOverflowClass(target) { 4314 target.classList.remove(OVERFLOW_CLASS.top); 4315 target.classList.remove(OVERFLOW_CLASS.bottom); 4316 target.classList.remove(OVERFLOW_CLASS.left); 4317 target.classList.remove(OVERFLOW_CLASS.right); 4318 target.classList.remove(OVERFLOW_CLASS.window); 4319 } 4320
4321 function isDetailsElement(element) { 4322 return element instanceof HTMLDetailsElement; 4323 } 4324 4325 // SPã®ãã³ãã¼ã¬ã¼ã»æ¤ç´¢ã»é»è©±ã®åããã¯ã¼ããã§ã¼ãã¢ã¦ãããã 4326 function closeOtherHeaderMenu() { 4327 var targets = [ 4328 self.getElem.spSearchTarget, 4329 self.getElem.spPhoneTarget 4330 ]; 4331 var triggers = [ 4332 self.getElem.spSearchBtn, 4333 self.getElem.spPhoneBtn 4334 ]; 4335 4336 self.hideHamburgerMenu(); 4337 self.scheduleHamburgerMenuReset(); 4338 4339 targets.forEach(function (target) { 4340 if (target && target.classList.contains(self.CONFIG.SHOW_CLASS)) { 4341 target.classList.remove(self.CONFIG.SHOW_CLASS); 4342 target.classList.add(self.CONFIG.HIDE_CLASS); 4343 } 4344 }); 4345 4346 triggers.forEach(function (trigger) { 4347 if (trigger) { 4348 trigger.setAttribute(self.CONFIG.ARIA_EXPANDED, false); 4349 } 4350 }); 4351 } 4352 4353 class LoginHeaderMenu { 4354 constructor(element) { 4355 this.root = element; 4356 this.button = null; 4357 this.container = null; 4358 this.containerId = ROOT_SELECTOR + '-' + Math.random().toString().substring(2); 4359 this.isOpen = false; 4360 this.isPcHoverBound = false; 4361 this.focusInEvent = this.open.bind(this); 4362 this.closeFocusOutEvent = this.closeFocusOut.bind(this); 4363 this.mouseLeaveEvent = this.close.bind(this); 4364 this.mouseMoveEvent = this.open.bind(this); 4365 this.detailsEvent = this.setDetailsOpenState.bind(this); 4366 this.keydownEvent = this.onKeydown.bind(this); 4367 this.mediaQueryChangeEvent = this.switchMediaQuery.bind(this); 4368 } 4369 4370 init() { 4371 this.set(); 4372 this.switchMediaQuery(); 4373 this.bindEvent(); 4374 } 4375 4376 set() { 4377 this.container = this.root.querySelector('.' + CONTAINER_SELECTOR); 4378 this.button = this.root.querySelector('.' + BUTTON_SELECTOR); 4379 4380 if (this.container) { 4381 var id = this.container.getAttribute('id'); 4382 4383 if (id) { 4384 this.containerId = id; 4385 } 4386 4387 this.container.setAttribute('id', this.containerId); 4388 } 4389 } 4390 4391 bindEvent() { 4392 win.addEventListener('keydown', this.keydownEvent); 4393 4394 if (smallScreenMql.addEventListener) { 4395 smallScreenMql.addEventListener('change', this.mediaQueryChangeEvent); 4396 } else if (smallScreenMql.addListener) { 4397 smallScreenMql.addListener(this.mediaQueryChangeEvent); 4398 } 4399 } 4400 4401 onKeydown(event) { 4402 if (event.key === 'Escape' && this.isOpen) { 4403 this.close(); 4404 } 4405 } 4406 4407 switchMediaQuery() { 4408 this.destroyBindEventHover(); 4409 4410 if (smallScreenMql.matches) { 4411 if (isDetailsElement(this.root)) { 4412 this.root.open = false; 4413 } 4414 4415 this.root.classList.remove(STATE_CLOSE_CLASS); 4416 this.root.classList.remove(STATE_OPEN_CLASS); 4417 4418 if (this.container) { 4419 this.container.inert = false; 4420 } 4421 4422 if (this.button) { 4423 this.button.inert = false; 4424 } 4425 4426 return; 4427 } 4428 4429 this.removeAttribute(); 4430 4431 if (this.root.getAttribute(ACTIVE_PC_ATTR) !== 'hover') { 4432 return; 4433 } 4434 4435 this.toggleA11y(false); 4436 this.setBindEventHover(); 4437 this.addAttribute(); 4438 } 4439 4440 addAttribute() { 4441 if (this.button) { 4442 this.button.setAttribute('aria-expanded', 'false'); 4443 this.button.setAttribute('aria-controls', this.containerId); 4444 } 4445 4446 if (this.container) { 4447 this.container.setAttribute('id', this.containerId); 4448 this.container.setAttribute('aria-hidden', 'true'); 4449 } 4450 } 4451 4452 removeAttribute() { 4453 if (isDetailsElement(this.root)) { 4454 this.root.open = false; 4455 } 4456 4457 this.root.classList.remove(STATE_CLOSE_CLASS); 4458 this.root.classList.remove(STATE_OPEN_CLASS); 4459 4460 if (this.button) { 4461 this.button.removeAttribute('aria-expanded'); 4462 this.button.removeAttribute('aria-controls'); 4463 } 4464 4465 if (this.container) { 4466 this.container.removeAttribute('aria-hidden'); 4467 } 4468 } 4469 4470 setBindEventHover() { 4471 if (this.isPcHoverBound) { 4472 return; 4473 } 4474 4475 if (isDetailsElement(this.root) && this.button) { 4476 this.button.addEventListener('click', preventDefaultEvent); 4477 } 4478 4479 this.root.addEventListener('focusin', this.focusInEvent); 4480 this.root.addEventListener('focusout', this.closeFocusOutEvent); 4481 this.root.addEventListener('mouseover', this.mouseMoveEvent); 4482 this.root.addEventListener('mouseleave', this.mouseLeaveEvent); 4483 4484 if (this.container) { 4485 this.container.addEventListener('focusout', this.closeFocusOutEvent); 4486 this.container.addEventListener('animationend', this.detailsEvent); 4487 } 4488 4489 if (this.button) { 4490 this.button.inert = false; 4491 } 4492 4493 this.isPcHoverBound = true; 4494 } 4495 4496 destroyBindEventHover() { 4497 if (isDetailsElement(this.root) && this.button) { 4498 this.button.removeEventListener('click', preventDefaultEvent); 4499 } 4500 4501 if (this.container) { 4502 this.container.inert = false; 4503 } 4504 4505 if (this.button) { 4506 this.button.inert = false; 4507 } 4508 4509 if (!this.isPcHoverBound) { 4510 return; 4511 } 4512 4513 this.root.removeEventListener('focusin', this.focusInEvent); 4514 this.root.removeEventListener('focusout', this.closeFocusOutEvent); 4515 this.root.removeEventListener('mouseover', this.mouseMoveEvent); 4516 this.root.removeEventListener('mouseleave', this.mouseLeaveEvent); 4517 4518 if (this.container) { 4519 this.container.removeEventListener('focusout', this.closeFocusOutEvent); 4520 this.container.removeEventListener('animationend', this.detailsEvent); 4521 } 4522 4523 this.isPcHoverBound = false; 4524 } 4525 4526 toggleA11y(state) { 4527 if (this.button) { 4528 this.button.setAttribute('aria-expanded', String(state)); 4529 } 4530 4531 if (this.container) { 4532 this.container.setAttribute('aria-hidden', String(!state)); 4533 this.container.inert = !state; 4534 } 4535 } 4536 4537 open() { 4538 if (isDetailsElement(this.root) && !this.root.open) { 4539 this.root.open = true; 4540 } 4541 4542 this.isOpen = true; 4543 this.toggleA11y(true); 4544 this.root.classList.remove(STATE_CLOSE_CLASS); 4545 this.root.classList.add(STATE_OPEN_CLASS); 4546 this.judgementOverFlowWindow(); 4547 } 4548 4549 close() { 4550 this.toggleA11y(false); 4551 this.root.classList.remove(STATE_OPEN_CLASS); 4552 this.root.classList.add(STATE_CLOSE_CLASS); 4553 this.isOpen = false; 4554 } 4555 4556 closeFocusOut(event) { 4557 var self = this; 4558 4559 win.setTimeout(function () { 4560 var target = event.target; 4561 4562 if (target === self.button) { 4563 return; 4564 } 4565 4566 if (!event.relatedTarget) { 4567 return; 4568 } 4569 4570 if (self.container && checkInsideActiveElement(self.container)) { 4571 return; 4572 } 4573 4574 self.close(); 4575 }, FOCUS_OUT_DELAY); 4576 } 4577 4578 setDetailsOpenState() { 4579 if (isDetailsElement(this.root) && this.root.open) { 4580 this.root.open = this.root.classList.contains(STATE_OPEN_CLASS); 4581 } 4582 } 4583 4584 judgementOverFlowWindow() { 4585 if (!this.container) { 4586 return; 4587 } 4588 4589 resetTargetOverflowClass(this.container); 4590 var isWindowOver = isElementOutOfViewportHorizontally(this.container); 4591 4592 if (isWindowOver.state) { 4593 this.container.classList.add(isWindowOver.className); 4594 this.container.style.setProperty( 4595 OVERFLOW_LEFT_VAR, 4596 isWindowOver.overFlowSize.left + 'px' 4597 ); 4598 this.container.style.setProperty( 4599 OVERFLOW_RIGHT_VAR, 4600 isWindowOver.overFlowSize.right + 'px' 4601 ); 4602 } 4603 } 4604 } 4605 4606 // SPã§ã¯ãããã¼å ã®detailsãã¯ãªãã¯ã§ééããä»ããã¯ã¼ã¨ãã§ã¼ããå ¥ãæ¿ãã 4607 class LoginHeaderSpMenu { 4608 constructor(element) { 4609 this.root = element; 4610 this.details = null; 4611 this.button = null; 4612 this.container = null; 4613 this.isSpBound = false; 4614 this.closeTimerId = null; 4615 this.toggleEvent = this.onToggle.bind(this); 4616 this.animationEndEvent = this.onAnimationEnd.bind(this); 4617 this.mediaQueryChangeEvent = this.switchMediaQuery.bind(this); 4618 } 4619 4620 init() { 4621 this.set(); 4622 4623 if (!this.details) { 4624 return false; 4625 } 4626 4627 this.switchMediaQuery(); 4628 this.bindEvent(); 4629 return true; 4630 } 4631 4632 set() { 4633 this.details = this.root.querySelector('.' + ROOT_SELECTOR); 4634 this.button = this.root.querySelector('.' + BUTTON_SELECTOR); 4635 this.container = this.root.querySelector('.' + CONTAINER_SELECTOR); 4636 } 4637 4638 bindEvent() { 4639 if (smallScreenMql.addEventListener) { 4640 smallScreenMql.addEventListener('change', this.mediaQueryChangeEvent); 4641 } else if (smallScreenMql.addListener) { 4642 smallScreenMql.addListener(this.mediaQueryChangeEvent); 4643 } 4644 } 4645 4646 switchMediaQuery() { 4647 if (smallScreenMql.matches) { 4648 this.setBindEventAnimation(); 4649 } else { 4650 this.destroyBindEventAnimation(); 4651 } 4652 } 4653 4654 setBindEventAnimation() { 4655 this.set(); 4656 4657 if (!this.details) { 4658 return; 4659 } 4660 4661 if (!this.isSpBound) { 4662 this.details.addEventListener('toggle', this.toggleEvent); 4663 4664 if (this.container) { 4665 this.container.addEventListener('animationend', this.animationEndEvent); 4666 } 4667 4668 this.isSpBound = true; 4669 } 4670 4671 this.addSpAttribute(); 4672 } 4673 4674 destroyBindEventAnimation() { 4675 if (!this.isSpBound) { 4676 return; 4677 } 4678 4679 if (this.details) { 4680 this.details.removeEventListener('toggle', this.toggleEvent); 4681 this.details.classList.remove(STATE_OPEN_CLASS); 4682 this.details.classList.remove(STATE_CLOSE_CLASS); 4683 } 4684 4685 if (this.container) { 4686 this.container.removeEventListener('animationend', this.animationEndEvent); 4687 } 4688 4689 this.clearCloseTimer(); 4690 this.isSpBound = false; 4691 } 4692 4693 addSpAttribute() { 4694 var isOpen = this.details && 4695 this.details.classList.contains(STATE_OPEN_CLASS) && 4696 !this.details.classList.contains(STATE_CLOSE_CLASS); 4697 4698 if (this.button) { 4699 this.button.setAttribute('aria-expanded', isOpen ? 'true' : 'false'); 4700 4701 if (this.container && this.container.id) { 4702 this.button.setAttribute('aria-controls', this.container.id); 4703 } 4704 } 4705 4706 if (this.container) { 4707 this.container.setAttribute('aria-hidden', isOpen ? 'false' : 'true'); 4708 } 4709 } 4710 4711 toggleSpA11y(state) { 4712 if (this.button) { 4713 this.button.setAttribute('aria-expanded', String(state)); 4714 } 4715 4716 if (this.container) { 4717 this.container.setAttribute('aria-hidden', String(!state)); 4718 } 4719 } 4720 4721 onClick(event) { 4722 event.preventDefault(); 4723 this.set(); 4724 4725 if (!this.details) { 4726 return; 4727 } 4728 4729 if ( 4730 this.details.classList.contains(STATE_OPEN_CLASS) && 4731 !this.details.classList.contains(STATE_CLOSE_CLASS) 4732 ) { 4733 this.close(); 4734 return; 4735 } 4736 4737 this.details.open = true; 4738 this.open(); 4739 } 4740 4741 // ä»ã®ããã¯ã¼ã®ãã§ã¼ãã¢ã¦ãã¨å ¥ãæ¿ããããããã³ãã¼ã¬ã¼ã¡ãã¥ã¼ã¨åãæé ã§éã 4742 open() { 4743 this.set(); 4744 4745 if (!this.details) { 4746 return; 4747 } 4748 4749 this.clearCloseTimer(); 4750 closeOtherHeaderMenu(); 4751 4752 if (self.getElem.docElement.scrollTop) { 4753 self.getElem.docElement.scrollTop = 0; 4754 } 4755 4756 if (doc.body.scrollTop) { 4757 doc.body.scrollTop = 0; 4758 } 4759 4760 doc.body.classList.add(self.CONFIG.MENU_SHOW_CLASS); 4761 this.details.classList.remove(STATE_CLOSE_CLASS); 4762 this.details.classList.add(STATE_OPEN_CLASS); 4763 this.toggleSpA11y(true); 4764 } 4765 4766 close() { 4767 this.set(); 4768 4769 if (!this.details) { 4770 return; 4771 } 4772 4773 doc.body.classList.remove(self.CONFIG.MENU_SHOW_CLASS); 4774 this.details.classList.remove(STATE_OPEN_CLASS); 4775 this.details.classList.add(STATE_CLOSE_CLASS); 4776 this.toggleSpA11y(false); 4777 this.scheduleFinishClose(); 4778 } 4779
4780 onToggle() { 4781 this.set(); 4782 4783 if (!this.details || this.details.open) { 4784 return; 4785 } 4786 4787 this.clearCloseTimer(); 4788 this.details.classList.remove(STATE_OPEN_CLASS); 4789 this.details.classList.remove(STATE_CLOSE_CLASS); 4790 this.toggleSpA11y(false); 4791 } 4792 4793 onAnimationEnd() { 4794 this.set(); 4795 4796 if (!this.details || !this.details.classList.contains(STATE_CLOSE_CLASS)) { 4797 return; 4798 } 4799 4800 this.finishClose(); 4801 } 4802 4803 scheduleFinishClose() { 4804 var selfMenu = this; 4805 4806 this.clearCloseTimer(); 4807 this.closeTimerId = win.setTimeout(function () { 4808 selfMenu.finishClose(); 4809 }, 200); 4810 } 4811 4812 clearCloseTimer() { 4813 if (this.closeTimerId) { 4814 win.clearTimeout(this.closeTimerId); 4815 this.closeTimerId = null; 4816 } 4817 } 4818 4819 finishClose() { 4820 this.clearCloseTimer(); 4821 this.set(); 4822 4823 if (!this.details || !this.details.classList.contains(STATE_CLOSE_CLASS)) { 4824 return; 4825 } 4826 4827 this.details.open = false; 4828 } 4829 } 4830 4831 function getSpMenu(menuTarget) { 4832 var menus = self.loginHeaderSpMenus || []; 4833 var i; 4834 4835 for (i = 0; i < menus.length; i += 1) { 4836 if (menus[i].root === menuTarget) { 4837 return menus[i]; 4838 } 4839 } 4840 4841 return null; 4842 } 4843 4844 function ensureSpMenu(menuTarget) { 4845 var menu = getSpMenu(menuTarget); 4846 4847 if (menu) { 4848 menu.set(); 4849 return menu.details ? menu : null; 4850 } 4851 4852 menu = new LoginHeaderSpMenu(menuTarget); 4853 4854 if (!menu.init()) { 4855 return null; 4856 } 4857 4858 if (!self.loginHeaderSpMenus) { 4859 self.loginHeaderSpMenus = []; 4860 } 4861 4862 self.loginHeaderSpMenus.push(menu); 4863 menuTarget.setAttribute(READY_ATTR, 'true'); 4864 return menu; 4865 } 4866 4867 function onDelegatedSpClick(event) { 4868 var eventTarget = event.target; 4869 var button; 4870 var menuTarget; 4871 var menu; 4872 4873 if (!smallScreenMql.matches) { 4874 return; 4875 } 4876 4877 if (eventTarget && eventTarget.nodeType !== 1) { 4878 eventTarget = eventTarget.parentElement; 4879 } 4880 4881 if (!eventTarget || !eventTarget.closest) { 4882 return; 4883 } 4884 4885 button = eventTarget.closest('.' + BUTTON_SELECTOR); 4886 4887 if (!button) { 4888 return; 4889 } 4890 4891 menuTarget = button.closest('.' + MENU_TARGET_SELECTOR); 4892 4893 if (!menuTarget) { 4894 return; 4895 } 4896 4897 event.preventDefault(); 4898 menu = ensureSpMenu(menuTarget); 4899 4900 if (!menu) { 4901 return; 4902 } 4903 4904 if (!menu.isSpBound) { 4905 menu.setBindEventAnimation(); 4906 } 4907 4908 menu.onClick(event); 4909 } 4910 4911 var elements = doc.querySelectorAll('.' + ROOT_SELECTOR + '[' + ACTIVE_PC_ATTR + '="hover"]'); 4912 var menuTargets = doc.querySelectorAll('.' + MENU_TARGET_SELECTOR); 4913 var i; 4914 var spMenu; 4915 4916 if (!self.loginHeaderSpMenus) { 4917 self.loginHeaderSpMenus = []; 4918 } 4919 4920 for (i = 0; i < elements.length; i += 1) { 4921 if (elements[i].getAttribute(READY_ATTR) === 'true') { 4922 continue; 4923 } 4924 4925 elements[i].setAttribute(READY_ATTR, 'true'); 4926 new LoginHeaderMenu(elements[i]).init(); 4927 } 4928 4929 for (i = 0; i < menuTargets.length; i += 1) { 4930 if (menuTargets[i].getAttribute(READY_ATTR) === 'true') { 4931 continue; 4932 } 4933 4934 spMenu = new LoginHeaderSpMenu(menuTargets[i]); 4935 4936 if (!spMenu.init()) { 4937 continue; 4938 } 4939 4940 menuTargets[i].setAttribute(READY_ATTR, 'true'); 4941 self.loginHeaderSpMenus.push(spMenu); 4942 } 4943 4944 if (!self.loginHeaderSpClickBound) { 4945 doc.addEventListener('click', onDelegatedSpClick, true); 4946 self.loginHeaderSpClickBound = true; 4947 } 4948 }; 4949 4950 KEYENCE.setHeaderMypageUserName = function () {
4951 var SOURCE_SELECTOR = 'js-headerMypageUserName'; 4952 var TARGET_SELECTOR = 'js-headerMypageUserName-target'; 4953 var ROOT_SELECTOR = 'js-headerMypageTooltip'; 4954 var ATTR_SORT_ORDER = 'data-headerUser-nameSortOrder'; 4955 var ATTR_FIRST_NAME = 'data-headerUser-firstName'; 4956 var ATTR_LAST_NAME = 'data-headerUser-lastName'; 4957 var sources = doc.querySelectorAll('.' + SOURCE_SELECTOR); 4958 var i; 4959 var source; 4960 var root; 4961 var target; 4962 var displayName; 4963 4964 function formatDisplayName(element) { 4965 var format = element.getAttribute(ATTR_SORT_ORDER) || ''; 4966 var firstName = element.getAttribute(ATTR_FIRST_NAME) || ''; 4967 var lastName = element.getAttribute(ATTR_LAST_NAME) || ''; 4968 4969 if (!format || (!firstName && !lastName)) { 4970 return ''; 4971 } 4972 4973 return format 4974 .replace(/\{firstName\}/g, firstName) 4975 .replace(/\{lastName\}/g, lastName); 4976 } 4977 4978 for (i = 0; i < sources.length; i += 1) { 4979 source = sources[i]; 4980 displayName = formatDisplayName(source); 4981 source.textContent = displayName; 4982 root = source.closest('.' + ROOT_SELECTOR); 4983 4984 if (!root) { 4985 continue; 4986 } 4987 4988 target = root.querySelector('.' + TARGET_SELECTOR); 4989 4990 if (target) { 4991 target.textContent = displayName; 4992 } 4993 } 4994 }; 4995 4996 KEYENCE.setMultiStepForm = function () { 4997 var multiStepForm = win.MultiStepForm; 4998 4999 if (multiStepForm) { 5000 multiStepForm.init(); 5001 } 5002 }; 5003 5004 KEYENCE.MultiStepForm = (function () { 5005 var $window = $(window); 5006 var $htmlBody = $('html, body'); 5007 5008 var LAUNCH_MODE = { 5009 DEV: 0, 5010 PUB: 1 5011 }; 5012 5013 var EVENT_TYPE = { 5014 CLICK_LEFT: 1 5015 }; 5016 5017 var PANEL_INDEX = { 5018 FIRST: 0, 5019 SECOND: 1, 5020 THIRD: 2, 5021 FOURTH: 3 5022 }; 5023 5024 var PANEL_NUM = { 5025 NONE: 0, 5026 FIRST: 1, 5027 SECOND: 2, 5028 THIRD: 3, 5029 FOURTH: 4 5030 }; 5031 5032 var FORM_TYPE = { 5033 DEFAULT: 'default', 5034 EMAIL: 'email', 5035 MOBILE_NUMBER: 'mobileNumber' 5036 }; 5037 5038 var isScrolling = false; 5039 5040 var Form = (function () { 5041 var classNames = { 5042 isHide: 'is-hide', 5043 isCurrent: 'is-current', 5044 errText: 'js-formErrText', 5045 isError: 'is-error', 5046 isFixed: 'is-fixed', 5047 scrollTransition: 'js-scrollTransition', 5048 isInitialized: 'is-initialized', 5049 errMessage: 'suz_errorMsg', 5050 checkCurrentScreen: 'js-checkCurrentFormScreen' 5051 }; 5052 5053 var idNames = { 5054 trigger: 'js-multiStepForm', 5055 signinForm: 'js-multiStepForm-signin', 5056 regForm: 'js-multiStepForm-registration', 5057 header: 'js-controlHeader', 5058 stickyHeader: 'js-setMenu' 5059 }; 5060 5061 var urls = { 5062 validator: '/ajax/registrationAjax/validator/', 5063 getEmailStatus: '/ajax/registrationAjax/getEmailStatus/', 5064 getMobileNumberStatus: '/ajax/registrationAjax/getMobileNumberStatus/', 5065 createVerificationCode: '/ajax/registrationAjax/createVerificationCode/', 5066 actionPwdAssistance: '/user/passwordAssistance/', 5067 checkRegularMember: '/ajax/userAjax/isRegularMember/', 5068 }; 5069 5070 var selectors = { 5071 token: 'input[name="org.apache.struts.taglib.html.TOKEN"]', 5072 focusableElements: 'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex="0"], [contenteditable], summary, video, audio, [role="button"]', 5073 focusableInputElements: 'input:not([disabled]), select:not([disabled]), textarea:not([disabled])', 5074 disabledInputElements: 'input:disabled, select:disabled, textarea:disabled' 5075 }; 5076 5077 var siteData = { 5078 KA: { 5079 id: 1, 5080 lang: 'en-US' 5081 }, 5082 KBR: { 5083 id: 14, 5084 lang: 'pt-BR' 5085 } , 5086 KC: { 5087 id: 21, 5088 lang: 'zh-CN' 5089 }, 5090 KCN_en: { 5091 id: 9, 5092 lang: 'en-GB' 5093 }, 5094 KCN_fr: { 5095 id: 9, 5096 lang: 'fr-FR' 5097 }, 5098 KD: { 5099 id: 3, 5100 lang: 'de-DE' 5101 }, 5102 KF: { 5103 id: 8, 5104 lang: 'fr-FR' 5105 }, 5106 KI: { 5107 id: 15, 5108 lang: 'it-IT' 5109 }, 5110 KIB_cs: { 5111 id: 10, 5112 lang: 'cs-CZ' 5113 }, 5114 KIB_de: { 5115 id: 10, 5116 lang: 'de-DE' 5117 }, 5118 KIB_en: { 5119 id: 10, 5120 lang: 'en-GB' 5121 }, 5122 KIB_fr: { 5123 id: 10, 5124 lang: 'fr-FR' 5125 }, 5126 KIB_hu: { 5127 id: 10, 5128 lang: 'hu-HU' 5129 }, 5130 KIB_nl: { 5131 id: 10, 5132 lang: 'nl-NL' 5133 }, 5134 KIB_pl: { 5135 id: 10, 5136 lang: 'pl-PL' 5137 }, 5138 KID: { 5139 id: 18, 5140 lang: 'id-ID' 5141 }, 5142 KIN: { 5143 id: 7, 5144 lang: 'en-GB' 5145 }, 5146 KJ: { 5147 id: 17, 5148 lang: 'ja-JP' 5149 }, 5150 KK: { 5151 id: 16, 5152 lang: 'ko-KR' 5153 }, 5154 KM: { 5155 id: 6, 5156 lang: 'en-GB' 5157 }, 5158 KMX: { 5159 id: 12, 5160 lang: 'es-MX' 5161 }, 5162 KPH: { 5163 id: 20, 5164 lang: 'en-GB' 5165 }, 5166 KS: { 5167 id: 4, 5168 lang: 'en-GB' 5169 }, 5170 KT: { 5171 id: 13, 5172 lang: 'th-TH' 5173 }, 5174 KU: { 5175 id: 5, 5176 lang: 'en-GB' 5177 }, 5178 KVN: { 5179 id: 19, 5180 lang: 'vi-VN' 5181 }, 5182 KW: { 5183 id: 11, 5184 lang: 'zh-TW' 5185 } 5186 }; 5187 5188 var screenNames = { 5189 initial: 'initial', 5190 login: 'login', 5191 loginSMSCode: 'login-smsCode', 5192 loginPassword: 'login-password', 5193 OneClickLoginSendEmail: 'ocli-sendEmail', 5194 AutoSignUp: 'asu',
5195 hospitalitySignUp: 'osu', 5196 hospitalitySignUpSendEmail: 'osu-sendEmail', 5197 step1: 'register-step1', 5198 flat: 'register-flat', 5199 checkRegistered: 'check-registered', 5200 }; 5201 5202 var Main = { 5203 needScrollAnimation: false, 5204 needFocus: true, 5205 scrollSpeed: 500, 5206 idNames: idNames, 5207 classNames: classNames, 5208 urls: urls, 5209 selectors: selectors, 5210 $header: $('#' + idNames.header), 5211 $stickyHeader: $('#' + idNames.stickyHeader), 5212 $modal: null, 5213 siteData: siteData, 5214 screenNames: screenNames, 5215 formWrapper: doc.querySelector('.' + classNames.checkCurrentScreen) 5216 }; 5217 5218 Main.mode = LAUNCH_MODE.DEV; 5219 5220 Main.init = function () { 5221 if (doc.getElementById(Main.idNames.trigger)) { 5222 if (win.shouldFormInitialFocus === undefined) { 5223 win.shouldFormInitialFocus = true; 5224 } 5225 5226 Main.readyPreventUnload(); 5227 Main.addEventAll(); 5228 Form.PreForm.init(); 5229 Form.SignIn.init(); 5230 Form.Register.init(); 5231 Form.SendEmail.init(); 5232 5233 if (Main.isReEnterPage() && Main.isModalContent()) { 5234 Form.Modal.open(); 5235 } 5236 } 5237 }; 5238 5239 Main.addEventAll = function () { 5240 Main.addScroll(); 5241 Main.attachSubmitEvent(); 5242 Main.attachBeforeunloadEvent(); 5243 }; 5244 5245 Main.addScroll = function () { 5246 var timeID = null; 5247 5248 $(doc).on('scroll', function () { 5249 isScrolling = true; 5250 5251 if (timeID !== null) { 5252 win.clearTimeout(timeID); 5253 } 5254 5255 timeID = win.setTimeout(function () { 5256 isScrolling = false; 5257 }, 200); 5258 }); 5259 }; 5260 5261 Main.attachSubmitEvent = function () { 5262 $(doc).on('submit', 'form', this.onSubmitForm.bind(this)); 5263 }; 5264 5265 Main.attachBeforeunloadEvent = function () { 5266 win.addEventListener('beforeunload', this.onBeforeunload.bind(this)); 5267 }; 5268 5269 Main.onSubmitForm = function () { 5270 delete doc.getElementById(Main.idNames.trigger).dataset.preventUnload; 5271 }; 5272 5273 Main.onBeforeunload = function (e) { 5274 if (doc.getElementById(Main.idNames.trigger).dataset.preventUnload === 'true') { 5275 e.preventDefault(); 5276 e.returnValue = ''; 5277 } 5278 }; 5279 5280 Main.readyPreventUnload = function () { 5281 var signinForm = doc.getElementById(Main.idNames.signinForm); 5282 var regForm = doc.getElementById(Main.idNames.regForm); 5283 5284 if (!signinForm || !regForm) { 5285 return; 5286 } 5287 5288 if (!signinForm.classList.contains(Main.classNames.isHide) || 5289 !regForm.classList.contains(Main.classNames.isHide)) { 5290 doc.getElementById(Main.idNames.trigger).dataset.preventUnload = 'true'; 5291 } 5292 }; 5293 5294 Main.show = function ($element) { 5295 var $currentPanel; 5296 5297 if (!$element || !$element.length) { 5298 return; 5299 } 5300 5301 $element.removeClass(this.classNames.isHide); 5302 5303 // signin or registration form 5304 if ($element.attr('id') === Form.PreForm.idNames.root) { 5305 Form.PreForm.$formCheckEmail.prop('disabled', false); 5306 5307 if (Main.isModalContent()) { 5308 $.colorbox.close(); 5309 } 5310 } 5311 5312 if ($element.attr('id') === Form.SignIn.idNames.signinForm) { 5313 Main.clearInputError(Form.SignIn.names.loginPassword, false); 5314 } 5315 5316 // registration form 5317 if ($element.attr('id') === Form.Register.idNames.regForm) { 5318 $element.attr('data-index-current', 1); 5319 Form.Register.$description.removeClass('is-hide'); 5320 5321 $currentPanel = $element.find('[data-panel-index="1"]'); 5322 5323 if ($currentPanel.attr('data-panel-displayed') === 'false') { 5324 Form.Register.clearInputErrorAll($currentPanel); 5325 $currentPanel.data('data-panel-displayed', true); 5326 } 5327 5328 if ($('#as_agreeBoxCheked').length) { 5329 win.suz_checkBoxDecision(); 5330 } 5331 } 5332 5333 if (Main.needFocus && !Main.isModalContent()) { 5334 $element.on('animationend', function() { 5335 Main.scrollToElement(idNames.trigger); 5336 5337 setTimeout(function () { 5338 Form.focusFirstInputElement($element); 5339 }, 0); 5340 5341 $element.off('animationend'); 5342 }); 5343 } else { 5344 Main.scrollToElement(idNames.trigger); 5345 } 5346 }; 5347 5348 Main.focusFirstInputElement = function ($element) { 5349 var $inputElement = this.getFocusableFirstInputElement($element); 5350 5351 if ($inputElement.length) { 5352 $inputElement.get(0).focus(); 5353 } 5354 }; 5355 5356 Main.hide = function ($element) { 5357 if (!$element || !$element.length) { 5358 return; 5359 } 5360 5361 $element.addClass(this.classNames.isHide); 5362 5363 if ($element.attr('id') === Form.PreForm.idNames.root) { 5364 Form.PreForm.$formCheckEmail.prop('disabled', true); 5365 } 5366 5367 if ($element.attr('id') === Form.SignIn.idNames.signinForm) { 5368 win.KeyenceForm.ModalPasswordError.resetErrorCount(); 5369 } 5370 }; 5371 5372 Main.getEmailStatus = function (emailAddress) { 5373 var deferred = new $.Deferred(); 5374 var options; 5375 var url; 5376 5377 if (typeof emailAddress !== 'string') { 5378 return deferred.reject(); 5379 } 5380 5381 url = win.suz_getCurrentDomain() + this.urls.getEmailStatus; 5382 5383 options = { 5384 url: url, 5385 data: { 5386 emailAddress: emailAddress, 5387 token: $("input[name='org.apache.struts.taglib.html.TOKEN']").attr('value') 5388 }, 5389 dataType: 'jsonp', 5390 jsonp: 'callback', 5391 scriptCharset: 'UTF-8' 5392 } 5393 5394 $.ajax(options).done(function (data) { 5395 deferred.resolve(data); 5396 }).fail(function (jqXHR, textStatus, errorThrown) { 5397 Main.asyncErrorHundler(jqXHR.status, textStatus); 5398 deferred.reject(jqXHR, textStatus, errorThrown); 5399 }); 5400 5401 return deferred.promise(); 5402 }; 5403 5404 Main.asyncErrorHundler = function (status, err) { 5405 if (status && status === 401) { 5406 window.location.href = suz_getCurrentDomain() + "/error/tokenError.jsp"; 5407 5408 return false; 5409 } 5410 5411 if (err) { 5412 win.alert(err); 5413 } 5414 5415 return true; 5416 }; 5417 5418 Main.insertErrorText = function (nameAttr, text) { 5419 var $formElement; 5420 var $errText; 5421 var $group; 5422 5423 if (typeof nameAttr === 'string') { 5424 $formElement = $('input[name="' + nameAttr + '"'); 5425 } 5426 5427 if (!$formElement || !$formElement.length) { 5428 return; 5429 } 5430 5431 if ($('.prd-inputGroup').length) { 5432 $group = $formElement.closest('.prd-inputGroup'); 5433 } else { 5434 $group = $formElement.parent(); 5435 } 5436 5437 if ($group.length) { 5438 $group.removeClass(KeyenceForm.AvailableValidator.targetClass.status);
5439 $group.addClass(Main.classNames.isError); 5440 5441 $errText = $group.find('.' + Main.classNames.errText); 5442 5443 if (!$errText.length) { 5444 return; 5445 } 5446 5447 if (typeof $errText.get(0).getAttribute('style') === 'string') { 5448 $errText.css('display', 'block'); 5449 } else { 5450 $errText.removeClass('is-hide'); 5451 } 5452 5453 if ( 5454 text === 'data-message-required' && 5455 typeof $errText.attr('data-message-required') === 'string' 5456 ) { 5457 text = $errText.attr('data-message-required'); 5458 } else if ( 5459 text === 'data-message-mobile-number-format' && 5460 typeof $errText.attr('data-message-required') === 'string' 5461 ) { 5462 text = $errText.attr('data-message-mobile-number-format'); 5463 } else if ( 5464 text === 'data-message-verification-code-format' && 5465 typeof $errText.attr('data-message-required') === 'string' 5466 ) { 5467 text = $errText.attr('data-message-verification-code-format'); 5468 } else if ( 5469 text === 'data-message-email-address-format' && 5470 typeof $errText.attr('data-message-required') === 'string' 5471 ) { 5472 text = $errText.attr('data-message-email-address-format'); 5473 } else if ( 5474 text === 'data-message-zipcode-format' 5475 ) { 5476 text = $errText.attr('data-message-zipcode-format'); 5477 } else if ( 5478 text === 'data-message-email-address-registered' 5479 ) { 5480 text = $errText.attr('data-message-email-address-registered'); 5481 } 5482 5483 if (typeof text === 'string') { 5484 $errText.text(text); 5485 } 5486 } 5487 }; 5488 5489 Main.clearInputError = function (name, isSaveText) { 5490 var $formElement; 5491 var $errText; 5492 var $group; 5493 5494 if (typeof name === 'string') { 5495 $formElement = $('input[name="' + name + '"'); 5496 } 5497 5498 if (!$formElement || !$formElement.length) { 5499 return; 5500 } 5501 5502 if ($('.prd-inputGroup').length) { 5503 $group = $formElement.closest('.prd-inputGroup'); 5504 } else { 5505 $group = $formElement.parent(); 5506 } 5507 5508 if ($group.length) { 5509 $group.removeClass(Main.classNames.isError); 5510 5511 $errText = $group.find('.' + Main.classNames.errText + ', .' + Main.classNames.errMessage); 5512 5513 if (!$errText.length) { 5514 return; 5515 } 5516 5517 if (typeof $errText.get(0).getAttribute('style') === 'string') { 5518 $errText.css('display', 'none'); 5519 } else { 5520 $errText.addClass('is-hide'); 5521 } 5522 5523 if (!isSaveText) { 5524 $errText.text(''); 5525 } 5526 } 5527 }; 5528 5529 Main.enableFocus = function ($elements) { 5530 if ($elements.length) { 5531 $elements.attr('tabindex', 0); 5532 } 5533 }; 5534 5535 Main.disableFocus = function ($elements) { 5536 if ($elements.length) { 5537 $elements.attr('tabindex', -1); 5538 } 5539 }; 5540 5541 Main.scrollToElement = function (id) { 5542 var position = 0; 5543 var adjust = 0; 5544 var gap = 5; 5545 5546 if (typeof id !== 'string') { 5547 return; 5548 } 5549 5550 if (Main.$header.length && !smallScreenMql.matches) { 5551 adjust = Main.$header.height(); 5552 } 5553
5554 position = ($('#' + id).offset().top - gap) - adjust; 5555 5556 if (Main.needScrollAnimation) { 5557 $htmlBody.animate({ 5558 scrollTop: position 5559 }, Main.scrollSpeed, 'ease'); 5560 } else { 5561 $htmlBody.animate({ 5562 scrollTop: position 5563 }, 1); 5564 } 5565 }; 5566 5567 Main.isShow = function ($element) { 5568 if (($element && $element.length) && !$element.hasClass(classNames.isHide)) { 5569 return true; 5570 } 5571 5572 return false; 5573 }; 5574 5575 Main.isModalContent = function () { 5576 if (doc.getElementById(Form.Modal.idNames.root)) { 5577 return true; 5578 } 5579 5580 return false; 5581 }; 5582 5583 Main.isReEnterPage = function () { 5584 if ( 5585 !Form.SignIn.$root.hasClass(classNames.isHide) || 5586 !Form.Register.$root.hasClass(classNames.isHide) 5587 ) { 5588 return true; 5589 } 5590 5591 return false; 5592 }; 5593 5594 Main.isInView = function (elem, isInside) { 5595 var rect = elem.getBoundingClientRect(); 5596 var isInView; 5597 5598 if (isInside) { 5599 isInView = (0 < rect.top) && (rect.bottom < window.innerHeight); 5600 } else { 5601 isInView = (0 < rect.bottom) && (rect.top < window.innerHeight); 5602 } 5603 5604 return isInView; 5605 }; 5606 5607 Main.setInitialFocus = function ($page) { 5608 var $firstInputElem; 5609 5610 if (!win.shouldFormInitialFocus || !$page || !$page.length || $page.hasClass(classNames.isHide)) { 5611 return; 5612 } 5613 5614 $firstInputElem = this.getFocusableFirstInputElement($page); 5615 5616 if ($firstInputElem.length && this.isInView($firstInputElem.get(0), false)) { 5617 Main.focusFirstInputElement($page); 5618 } 5619 }; 5620 5621 Main.getFocusableFirstInputElement = function ($element) { 5622 var $inputElem = $(null); 5623 var $parents; 5624 5625 if (!$element || !$element.length) { 5626 return $(null); 5627 } 5628 5629 if ($element.attr('id') === Form.Register.idNames.root) { 5630 $parents = $element.find('.' + Form.Register.classNames.formPanel).eq(0); 5631 } else { 5632 $parents = $element; 5633 } 5634 5635 if ($parents && $parents.length) { 5636 $inputElem = $parents.find(Main.selectors.focusableInputElements).filter(':visible'); 5637 } 5638 5639 return $inputElem; 5640 }; 5641 5642 Main.focusFirstErrorItem = function ($argParentElement) { 5643 var $parentElement; 5644 var $errorItems; 5645 var $formElem; 5646 var availableValidator = win.KeyenceForm.AvailableValidator; 5647 5648 if ($argParentElement && $argParentElement.length) { 5649 $parentElement = $argParentElement; 5650 } else { 5651 $parentElement = $('#' + idNames.trigger); 5652 } 5653 5654 if ($parentElement.length) { 5655 $errorItems = $parentElement.find('[id^="suz_div_"].is-error:visible, [id^="suz_div_"].' + availableValidator.targetClass.status + ':visible'); 5656 5657 if ($errorItems.length) { 5658 $formElem = $errorItems.eq(0).find(Form.selectors.focusableInputElements); 5659 } 5660 5661 if ($formElem && $formElem.length) { 5662 if ($formElem.length === 2) { 5663 if ( 5664 $formElem.get(0).tagName.toLowerCase() === 'select' && 5665 $formElem.get(1).tagName.toLowerCase() === 'input' 5666 ) { 5667 $formElem.get(1).focus(); 5668 } 5669 } else { 5670 $formElem.get(0).focus(); 5671 } 5672 } 5673 } 5674 }; 5675 5676 Main.getMobileNumberStatus = function (mobileCountryId, mobileNumber) { 5677 var deferred = new $.Deferred(); 5678 var options; 5679 var url; 5680 5681 if (typeof mobileCountryId !== 'string' || typeof mobileNumber !== 'string') { 5682 return; 5683 } 5684 5685 url = win.suz_getCurrentDomain() + this.urls.getMobileNumberStatus; 5686 5687 options = { 5688 url: url, 5689 data: { 5690 mobileCountryId: mobileCountryId, 5691 mobileNumber: mobileNumber, 5692 token: $("input[name='org.apache.struts.taglib.html.TOKEN']").attr('value') 5693 }, 5694 dataType: 'jsonp', 5695 jsonp: 'callback', 5696 scriptCharset: 'UTF-8' 5697 }; 5698 5699 $.ajax(options).done(function (data) { 5700 deferred.resolve(data); 5701 }).fail(function (jqXHR, textStatus, errorThrown) { 5702 Main.asyncErrorHundler(jqXHR.status, textStatus); 5703 deferred.reject(jqXHR, textStatus, errorThrown); 5704 }); 5705 5706 return deferred.promise(); 5707 }; 5708 5709 Main.createVerificationCode = function (mobileNumber,
5709countyCode) { 5710 var deferred = new $.Deferred(); 5711 var options; 5712 var url; 5713 5714 if (typeof mobileNumber !== 'string' || typeof countyCode !== 'string') { 5715 return; 5716 } 5717 5718 url = win.suz_getCurrentDomain() + this.urls.getMobileNumberStatus; 5719 5720 options = { 5721 url: url, 5722 data: { 5723 mobileCountryId: mobileCountryId, 5724 mobileNumber: mobileNumber 5725 }, 5726 dataType: 'jsonp', 5727 jsonp: 'callback', 5728 scriptCharset: 'UTF-8' 5729 }; 5730 5731 $.ajax(options).done(function (data) { 5732 deferred.resolve(data); 5733 }).fail(function (jqXHR, textStatus, errorThrown) { 5734 Main.asyncErrorHundler(jqXHR.status, textStatus); 5735 deferred.reject(jqXHR, textStatus, errorThrown); 5736 }); 5737 5738 return deferred.promise(); 5739 }; 5740 5741 Main.getRequiredMessage = function (name) { 5742 var wrapper; 5743 var errTextElement; 5744 var message = ''; 5745 5746 if (typeof name === 'string') { 5747 wrapper = doc.getElementById('suz_div_' + name); 5748 } 5749 5750 if (wrapper) { 5751 errTextElement = wrapper.querySelector('.js-formErrText'); 5752 } 5753 5754 if (errTextElement) { 5755 message = errTextElement.getAttribute('data-message-required'); 5756 } 5757 5758 return message; 5759 }; 5760 5761 Main.isEditProfileForm = function () { 5762 var form = doc.querySelector('form[name="user_profileActionForm"]'); 5763 5764 return form !== null; 5765 }; 5766 5767 Main.changeCurrentScreenName = function (screenName, stepNumber) { 5768 var formFilter = win.KeyenceForm.FormFilter; 5769 var WechatLoginFlow = win.KeyenceForm.WechatLoginFlow; 5770 var prefix = ''; 5771 var formType = ''; 5772 5773 if (!this.formWrapper) { 5774 return; 5775 } 5776 5777 formType = formFilter.General.getFormType(); 5778 5779 if (this.formWrapper.classList.contains(WechatLoginFlow.classNames.isLoginActive) || 5780 formType === formFilter.General.FORM_TYPE.WECHAT) { 5781 prefix = 'wechat-'; 5782 } else if (formType === formFilter.General.FORM_TYPE.MOBILE_NUMBER) { 5783 prefix = 'mobile-'; 5784 } else if (formType === formFilter.General.FORM_TYPE.EMAIL) { 5785 prefix = 'email-'; 5786 } 5787 5788 if (screenName === 'step' && stepNumber) { 5789 this.formWrapper.dataset.currentScreenName = prefix + 'register-step' + stepNumber; 5790 } else if (screenName) { 5791 this.formWrapper.dataset.currentScreenName = prefix + screenName; 5792 } 5793 }; 5794 5795 Main.checkRegularMember = function (emailAddressValue) { 5796 var deferred = new $.Deferred(); 5797 var options; 5798 var url; 5799 5800 if (typeof emailAddressValue !== 'string') { 5801 return deferred.reject(); 5802 } 5803 5804 url = win.suz_getCurrentDomain() + this.urls.checkRegularMember; 5805 5806 options = { 5807 url: url, 5808 data: { 5809 emailAddress: emailAddressValue, 5810 token: $("input[name='org.apache.struts.taglib.html.TOKEN']").attr('value') 5811 }, 5812 dataType: 'jsonp', 5813 jsonp: 'callback', 5814 scriptCharset: 'UTF-8' 5815 } 5816 5817 $.ajax(options).done(function (data) { 5818 deferred.resolve(data); 5819 }).fail(function (jqXHR, textStatus, errorThrown) { 5820 Main.asyncErrorHundler(jqXHR.status, textStatus); 5821 deferred.reject(jqXHR, textStatus, errorThrown); 5822 }); 5823 5824 return deferred.promise(); 5825 }; 5826 5827 return Main; 5828 }()); 5829 5830 /** 5831 * Signin or Registration 5832 */ 5833 Form.PreForm = (function () { 5834 var idNames = { 5835 btnConitnue: 'js-form-btnCheckRegistered', 5836 btnMobileContinue: 'js-form-btnCheckMobileRegistered', 5837 root: 'js-multiStepForm-signinOrRegister', 5838 showEmailForm: 'js-showEmailForm', 5839 multiStepForm: 'js-multiStepForm', 5840 }; 5841 5842 var classNames = { 5843 formFilterGeneral: 'js-formFilterGeneral',
5844 formFilterGeneralTrigger: 'js-formFilterGeneral-trigger', 5845 isFilterEmail: 'is-filter-email', 5846 isFilterMobileNumber: 'is-filter-mobileNumber', 5847 isFilterDefault: 'is-filter-default', 5848 }; 5849 5850 var PreForm = { 5851 idNames: idNames, 5852 $root: $('#' + idNames.root), 5853 $btnContinue: $('#' + idNames.btnConitnue), 5854 $btnMobileContinue: $('#' + idNames.btnMobileContinue), 5855 $formCheckEmail: $('input[name="checkRegistered"]'), 5856 $formCheckMobileNumber: $('input[name="checkMobileNumber"]'), 5857 $formFilterGeneral: $('.' + classNames.formFilterGeneral), 5858 $formFilterGeneralTriggers: $('.' + classNames.formFilterGeneralTrigger), 5859 $buttonShowEmailForm: $('#' + idNames.showEmailForm), 5860 $multiStepFormTrigger: $('#' + idNames.multiStepForm), 5861 $passwordAssistanceFormTrigger: $('form[name="user_passwordAssistanceActionForm"]'), 5862 }; 5863 5864 var signInMessageEvent = { 5865 handleEvent: null, 5866 }; 5867 5868 PreForm.isClickContinueRunning = false; 5869 5870 PreForm.init = function () { 5871 if (this.$root.length) { 5872 this.$root.find('svg').attr('focusable', false); 5873 this.addEventAll(); 5874 Form.setInitialFocus(this.$root); 5875 } 5876 }; 5877 5878 PreForm.addEventAll = function () { 5879 this.clickContinueButton(); 5880 this.attachEmailFormKeydownEvent(); 5881 this.onMessageAction(); 5882 }; 5883 5884 PreForm.clickContinueButton = function () { 5885 PreForm.$btnContinue.on('click', this.onClickContinue.bind(this)); 5886 PreForm.$btnMobileContinue.on('click', this.onClickContinue.bind(this)); 5887 }; 5888 5889 PreForm.onClickContinue = function (e) { 5890 var BlankFieldValidator = KeyenceForm.BlankFieldValidator; 5891 var MobileNumberValidator = KeyenceForm.MobileNumberValidator; 5892 var PatternValidator = KeyenceForm.PatternMatchValidator; 5893 var AvailableValidator = KeyenceForm.AvailableValidator; 5894 var ControlErrorDisplay = KeyenceForm.ControlErrorDisplay; 5895 var SMSCodeButton = KeyenceForm.SMSCodeButton; 5896 var WechatLoginFlow = KeyenceForm.WechatLoginFlow; 5897 var formType = KEYENCE.Form.FormFilter.General.getFormType() 5898 var formInfo = PreForm.getFormInfo(); 5899 var FormFilter = KEYENCE.Form.FormFilter; 5900 var targetInput = doc.querySelector('input[name="' + formInfo.name + '"]'); 5901 var multiStepFormElem = doc.getElementById(PreForm.idNames.multiStepForm); 5902 var fieldWrapper = null; 5903 var errorText = null; 5904 var mobileContinueButton = PreForm.$btnMobileContinue[0]; 5905 5906 if (e.type === 'click' 5907 && win.AnalyticsViews 5908 && PreForm.checkMessageTargetForm()) { 5909 return; 5910 } 5911 5912 if (e.type === 'message' 5913 && e.data !== AnalyticsViews.Utility.messageNames.nextForm) { 5914 return; 5915 } 5916 5917 if (targetInput) { 5918 if (targetInput.classList.contains('js-check-blank') && !BlankFieldValidator.isBlank(targetInput)) { 5919 if (!ControlErrorDisplay.isTriggerClicked(PreForm.$btnContinue.get(0))) { 5920 BlankFieldValidator.config.isClickedContinueButton = true; 5921 ControlErrorDisplay.setTriggerClickedData(PreForm.$btnContinue.get(0)); 5922 5923 if (targetInput.classList.contains('js-check-pattern')) { 5924 if (AvailableValidator.config.isRunningVerification) { 5925 PreForm.isClickContinueRunning = true; 5926 } 5927 5928 PatternValidator.updateFieldStatus(targetInput); 5929 5930 if (targetInput.classList.contains(MobileNumberValidator.classNames.status) || 5931 targetInput.classList.contains(PatternValidator.classNames.status)) { 5932 targetInput.focus(); 5933 5934 return; 5935 } 5936 5937 fieldWrapper = targetInput.closest('.is-unavailable'); 5938 5939 if (fieldWrapper) { 5940 errorText = fieldWrapper.querySelector('.js-formErrText'); 5941 } 5942 5943 if (errorText) { 5944 errorText.classList.remove('is-hide'); 5945 } 5946 5947 PreForm.isClickContinueRunning = false; 5948 } 5949 } 5950 5951 AvailableValidator.updatePreFormBlockStatus(formType, FormFilter, PreForm, e); 5952 5953 if (AvailableValidator.config.isPreFormContinueBlocked) { 5954 return; 5955 } 5956 } 5957 } 5958 5959 // for beforeunload event 5960 if (multiStepFormElem) { 5961 multiStepFormElem.dataset.preventUnload = 'true'; 5962 } 5963 5964 BlankFieldValidator.config.isClickedContinueButton = true; 5965 ControlErrorDisplay.setTriggerClickedData(PreForm.$btnContinue.get(0)); 5966 5967 if (targetInput) { 5968 if (targetInput.classList.contains('js-check-blank') && BlankFieldValidator.isBlank(targetInput)) { 5969 MultiStepForm.insertErrorText(formInfo.name, 'data-message-required'); 5970 targetInput.classList.add(BlankFieldValidator.classNames.status); 5971 targetInput.classList.remove(MobileNumberValidator.classNames.status); 5972 targetInput.classList.remove(PatternValidator.classNames.status); 5973 targetInput.focus(); 5974 5975 return; 5976 } else { 5977 MultiStepForm.clearInputError(formInfo.name, true); 5978 targetInput.classList.remove(BlankFieldValidator.classNames.status); 5979 } 5980 } 5981 5982 if (formType === FormFilter.General.FORM_TYPE.MOBILE_NUMBER) { 5983 if (PreForm.$formCheckMobileNumber.hasClass('js-checkMobileNumberFormat')) { 5984 KeyenceForm.MobileNumberValidator.checkFormat(formInfo.countryCode, formInfo.mobileNumber ).done(function (status) { 5985 if (status.message) { 5986 Form.insertErrorText(formInfo.name, status.message); 5987 targetInput.focus(); 5988 } else { 5989 if (WechatLoginFlow.isLoginActive()) { 5990 WechatLoginFlow.getStatus(WechatLoginFlow.cacheId.value, formInfo.countryCode, formInfo.mobileNumber, formInfo) 5991 .then((result) => { 5992 if (!result.status) { 5993 if (SMSCodeButton.maxCountOver.errorFlag === result.maxCntOverFlg) { 5994 SMSCodeButton.setMaxCountOverDisabled(mobileContinueButton, formInfo.mobileNumber); 5995 } 5996 5997 Form.insertErrorText(formInfo.name, result.message); 5998 targetInput.focus(); 5999 return; 6000 } 6001 6002 if (result.wechatStateCode === WechatLoginFlow.STATE_CODE.R20) { 6003 WechatLoginFlow.STATE_CODE.current = result.wechatStateCode; 6004 WechatLoginFlow.showRegisterForm(result.wechatStateCode, formInfo.mobileNumberCode, formInfo.mobileNumber, formInfo); 6005 } else if (result.wechatStateCode !== WechatLoginFlow.STATE_CODE.L10) { 6006 WechatLoginFlow.STATE_CODE.current = result.wechatStateCode; 6007 WechatLoginFlow.showLoginForm(result.wechatStateCode, formInfo.mobileNumberCode, formInfo.mobileNumber, formInfo); 6008 } else { 6009 WechatLoginFlow.STATE_CODE.current = result.wechatStateCode; 6010 WechatLoginFlow.submitLoginForm(WechatLoginFlow.cacheId.value, formInfo.mobileNumberCode, formInfo.mobileNumber, formInfo); 6011 } 6012 }) 6013 .catch((error) => { 6014 return; 6015 }); 6016 6017 return; 6018 } 6019 6020 Form.getMobileNumberStatus(formInfo.countryCode, formInfo.mobileNumber).done(function (status) { 6021 if (status.message) { 6022 Form.insertErrorText(formInfo.name, status.message); 6023 targetInput.focus(); 6024 } else { 6025 PreForm.showNextForm(status.isRegistered, formInfo, PreForm.isAutoSignupUser(status)); 6026 } 6027 }); 6028 } 6029 }); 6030 } else { 6031 Form.getMobileNumberStatus(formInfo.countryCode, formInfo.mobileNumber).done(function (status) { 6032 if (status.message) { 6033 Form.insertErrorText(formInfo.name, status.message); 6034 targetInput.focus(); 6035 } else { 6036 PreForm.showNextForm(status.isRegistered, formInfo, PreForm.isAutoSignupUser(status)); 6037 } 6038 }); 6039 } 6040 } else { 6041 Form.getEmailStatus(formInfo.value).done(function (status) { 6042 // done 6043 if (status.message) { 6044 Form.insertErrorText(formInfo.name, status.message); 6045 targetInput.focus(); 6046 } else { 6047 PreForm.showNextForm(status.isRegistered, formInfo, PreForm.isEmailAutoSignupUser(status)); 6048 } 6049 }); 6050 } 6051 }; 6052 6053 PreForm.showNextForm = function (isRegistered, formInfo, isAutoSignup) { 6054 var formType = KEYENCE.Form.FormFilter.General.getFormType(); 6055 var $email; 6056 var FormFilter = KEYENCE.Form.FormFilter; 6057 var id; 6058 var currentScreen = ''; 6059 var SMSCodeButton = KEYENCE.Form.SMSCodeButton; 6060 var $verificationCodeCreateTrigger = null; 6061 var mobileContinueButton = PreForm.$btnMobileContinue[0]; 6062 6063 if (typeof isRegistered !== 'boolean' || !formInfo) { 6064 return; 6065 } 6066 6067 if (formType === FormFilter.General.FORM_TYPE.MOBILE_NUMBER) { 6068 if (PreForm.$btnMobileContinue.length 6069 && PreForm.$btnMobileContinue.is(':disabled')) { 6070 return; 6071 } 6072 } 6073 6074 if (isRegistered || isAutoSignup) { 6075 if (formType === FormFilter.General.FORM_TYPE.MOBILE_NUMBER) { 6076 Form.SignIn.$loginMobileNumber.val(formInfo.mobileNumber); 6077 document.getElementById('loginCountryNumber').value = formInfo.mobileNumberCode; 6078 $verificationCodeCreateTrigger = Form.SignIn.$root.find('.' + SMSCodeButton.classNames.trigger); 6079 6080 if ($verificationCodeCreateTrigger.length 6081 && PreForm.$btnMobileContinue.length) { 6082 SMSCodeButton.onclick(null, $verificationCodeCreateTrigger[0]).then(function (status) { 6083 if (status.message) { 6084 if (SMSCodeButton.maxCountOver.errorFlag === status.maxCntOverFlg) { 6085 SMSCodeButton.setMaxCountOverDisabled(mobileContinueButton, formInfo.mobileNumber); 6086 } 6087 6088 MultiStepForm.insertErrorText(formInfo.name, status.message); 6089 6090 Form.SignIn.$loginMobileNumber.val(''); 6091 document.getElementById('loginCountryNumber').value = ''; 6092 } else { 6093 FormFilter.SignIn.changeAutoSignUp(isAutoSignup, formType); 6094 6095 if (!isAutoSignup) { 6096 $('#' + FormFilter.SignIn.idNames.smscode).trigger('click'); 6097 } 6098 6099 if (Form.SignIn.$root.hasClass(FormFilter.SignIn.classNames.isFilterAutoSignUp
6099)) { 6100 currentScreen = 'AutoSignUp'; 6101 } else if (Form.SignIn.$root.hasClass(FormFilter.SignIn.classNames.isFilterPassword)) { 6102 currentScreen = 'loginPassword'; 6103 } else { 6104 currentScreen = 'loginSMSCode'; 6105 } 6106 6107 PreForm.showNextSignInForm(formInfo, currentScreen); 6108 } 6109 }).catch(function (error) { 6110 if (error?.errorMessage) { 6111 MultiStepForm.insertErrorText(formInfo.name, error.message); 6112 } 6113 6114 Form.SignIn.$loginMobileNumber.val(''); 6115 document.getElementById('loginCountryNumber').value = ''; 6116 }); 6117 } 6118 } else { 6119 if ((isRegistered && isAutoSignup) || (isRegistered && !isAutoSignup)) { 6120 Form.SignIn.$loginUserName.val(formInfo.value); 6121 Form.SignIn.$loginPassword.each(function () { 6122 this.removeAttribute('disabled'); 6123 }); 6124 6125 currentScreen = 'login'; 6126 } else { 6127 Form.SendEmail.enterEmailAddress(); 6128 FormFilter.SignIn.changeAutoSignUp(isAutoSignup, formType); 6129 6130 if (Form.SignIn.$root.hasClass(FormFilter.SignIn.classNames.isFilterAutoSignUp)) { 6131 currentScreen = 'hospitalitySignUp'; 6132 } else { 6133 currentScreen = 'login'; 6134 } 6135 } 6136 6137 PreForm.showNextSignInForm(formInfo, currentScreen); 6138 } 6139 } else { 6140 if (formType === FormFilter.General.FORM_TYPE.MOBILE_NUMBER) { 6141 $('#' + Form.Register.idNames.mobileNumber).val(formInfo.mobileNumber); 6142 $('#suz_mobileCountryNumber').val(formInfo.mobileNumberCode); 6143 $verificationCodeCreateTrigger = Form.Register.$root.find('.' + SMSCodeButton.classNames.trigger); 6144 6145 if ($verificationCodeCreateTrigger.length 6146 && PreForm.$btnMobileContinue.length) { 6147 SMSCodeButton.onclick(null, $verificationCodeCreateTrigger[0]).then(function (status) { 6148 if (status.message) { 6149 if (SMSCodeButton.maxCountOver.errorFlag === status.maxCntOverFlg) { 6150 SMSCodeButton.setMaxCountOverDisabled(mobileContinueButton, formInfo.mobileNumber); 6151 } 6152 6153 MultiStepForm.insertErrorText(formInfo.name, status.message); 6154 6155 $('#' + Form.Register.idNames.mobileNumber).val(''); 6156 $('#suz_mobileCountryNumber').val(''); 6157 } else { 6158 $('#' + Form.Register.idNames.mobileNumber).prop('disabled', true); 6159 $('#suz_mobileCountryNumber').prop('disabled', true); 6160 6161 PreForm.showNextRegisterForm(formInfo); 6162 } 6163 }).catch(function (error) { 6164 if (error?.errorMessage) { 6165 MultiStepForm.insertErrorText(formInfo.name, error.message); 6166 } 6167 6168 $('#' + Form.Register.idNames.mobileNumber).val(''); 6169 $('#suz_mobileCountryNumber').val(''); 6170 }); 6171 } 6172 } else { 6173 $email = $('#' + Form.Register.idNames.email); 6174 6175 $email.val(formInfo.value); 6176 win.suz_callRegValidator($email.attr('name'), $email.val()); 6177 6178 PreForm.showNextRegisterForm(formInfo); 6179 } 6180 } 6181 6182 if (Form.isModalContent()) { 6183 Form.Modal.open(); 6184 } 6185 }; 6186 6187 PreForm.showNextSignInForm = function (formInfo, currentScreen) { 6188 var countryCode = ''; 6189 var mobileNumber = ''; 6190 6191 Form.show(Form.SignIn.$root); 6192 Form.hide(Form.PreForm.$root); 6193 6194 Form.changeCurrentScreenName(Form.screenNames[currentScreen]); 6195 6196 Form.clearInputError(formInfo.name, false); 6197 6198 countryCode = $('#checkCountryNumber').find('option:selected').attr('data-code'); 6199 mobileNumber = $('#checkMobileNumber').val(); 6200 6201 $('#loginFullMobileNumber').val(countryCode + mobileNumber); 6202 }; 6203 6204 PreForm.showNextRegisterForm = function (formInfo) { 6205 Form.Register.showPanelByIndex(0); 6206 6207 Form.show(Form.Register.$root); 6208 Form.hide(Form.PreForm.$root); 6209 6210 Form.changeCurrentScreenName(Form.screenNames.step1); 6211 6212 Form.clearInputError(formInfo.name, false); 6213 }; 6214 6215 PreForm.onMessageAction = function () { 6216 signInMessageEvent.handleEvent = PreForm.onClickContinue; 6217 6218 win.addEventListener('message', signInMessageEvent, false); 6219 }; 6220 6221 PreForm.attachEmailFormKeydownEvent = function () { 6222 PreForm.$formCheckEmail.on('keydown.enterKeySubmit', PreForm.onKeydownEmailForm); 6223 6224 if (PreForm.$formCheckMobileNumber.length) { 6225 PreForm.$formCheckMobileNumber.on('keydown.enterKeySubmit', PreForm.onKeydownEmailForm); 6226 } 6227 }; 6228 6229 PreForm.onKeydownEmailForm = function (event) { 6230 var AvailableValidator = win.KeyenceForm.AvailableValidator; 6231 var PatternMatchValidator = win.KeyenceForm.PatternMatchValidator; 6232 var ControlErrorDisplay = KeyenceForm.ControlErrorDisplay; 6233 var $field = null; 6234 var FormFilter = KEYENCE.Form.FormFilter; 6235 var formType = KEYENCE.Form.FormFilter.General.getFormType(); 6236 6237 if (event.key === 'Enter') { 6238 $field = PreForm.$root.find('.' + AvailableValidator.targetClass.emailAddress + ':visible, .' + AvailableValidator.targetClass.mobileNumber + ':visible'); 6239 6240 if ($field.length === 1) { 6241 if (!ControlErrorDisplay.isTriggerClicked(event.currentTarget)) { 6242 AvailableValidator.runValidate($(this).attr('name'), true).always(function (field) { 6243 var errorFieldWrapper = field.closest('.is-error'); 6244 6245 if (errorFieldWrapper) { 6246 errorFieldWrapper.classList.remove('is-error'); 6247 } 6248 6249 AvailableValidator.changeDisplayNoteText(field.name); 6250 6251 if (formType === FormFilter.General.FORM_TYPE.MOBILE_NUMBER 6252 && PreForm.$btnMobileContinue.length) { 6253 PreForm.$btnMobileContinue.get(0).click(); 6254 } else { 6255 PreForm.$btnContinue.get(0).click(); 6256 } 6257 }); 6258 6259 return false; 6260 } 6261 6262 AvailableValidator.runValidate($(this).attr('name'), true).always(function (field) { 6263 PatternMatchValidator.updateFieldStatus(field); 6264 AvailableValidator.changeDisplayNoteText(field.name); 6265 6266 if (formType === FormFilter.General.FORM_TYPE.MOBILE_NUMBER 6267 && PreForm.$btnMobileContinue.length) { 6268 PreForm.$btnMobileContinue.get(0).click(); 6269 } else { 6270 PreForm.$btnContinue.get(0).click(); 6271 } 6272 }); 6273 } else { 6274 if (formType === FormFilter.General.FORM_TYPE.MOBILE_NUMBER 6275 && PreForm.$btnMobileContinue.length) { 6276 PreForm.$btnMobileContinue.get(0).click(); 6277 } else { 6278 PreForm.$btnContinue.get(0).click(); 6279 } 6280 } 6281 6282 return false; 6283 } 6284 }; 6285 6286 PreForm.getFormInfo = function () { 6287 var FormFilter = KEYENCE.Form.FormFilter; 6288 var formInfo = { 6289 name: PreForm.$formCheckEmail.attr('name'), 6290 value: PreForm.$formCheckEmail.val() 6291 }; 6292 6293 if (FormFilter.General.getFormType() === FormFilter.General.FORM_TYPE.MOBILE_NUMBER) { 6294 formInfo = { 6295 name: $('#checkMobileNumber').attr('name'), 6296 mobileNumber: $('#checkMobileNumber').val(), 6297 countryCode: $('#checkCountryNumber').val(), 6298 mobileNumberCode: $('#checkCountryNumber').find('option:selected').attr('data-code'), 6299 }; 6300 } 6301 6302 return formInfo; 6303 }; 6304 6305 PreForm.getMobileCountryInfo = function () { 6306 var info = {}; 6307 var $select = $('#checkCountryNumber'); 6308 var $option; 6309 6310 if (!$select.length) { 6311 return info; 6312 } 6313 6314 $option = $select.find('option:selected'); 6315 6316 info.id = $select.val(); 6317 info.code = $option.attr('data-code'); 6318 info.text = $option.text(); 6319 6320 return info; 6321 }; 6322 6323 PreForm.isAutoSignupUser = function (accountStatus) { 6324 if (accountStatus && (accountStatus.isAutoSignup && doc.getElementById(Form.SignIn.idNames.asuLoginButton))) { 6325 return true; 6326 } 6327 6328 return false; 6329 }; 6330 6331 PreForm.isEmailAutoSignupUser = function (accountStatus) { 6332 if (accountStatus && (accountStatus.isAutoSignup && doc.getElementById(Form.SignIn.idNames.asuSendMailButton))) { 6333 return true; 6334 } 6335 6336 return false; 6337 }; 6338 6339 PreForm.changeDisplayForm = function (isRegistered, formInfo, isAutoSignup) { 6340 if (typeof isRegistered !== 'boolean' || !formInfo) { 6341 return; 6342 } 6343 6344 if (isRegistered || isAutoSignup) { 6345 Form.show(Form.SignIn.$root); 6346 Form.hide(Form.PreForm.$root); 6347 } else { 6348 Form.show(Form.Register.$root); 6349 Form.hide(Form.PreForm.$root); 6350 } 6351 }; 6352 6353 PreForm.checkMessageTargetForm = function () { 6354 var isTargetForm = false; 6355 6356 if (PreForm.$multiStepFormTrigger.length || PreForm.$passwordAssistanceFormTrigger.length) { 6357 isTargetForm = true; 6358 } else { 6359 isTargetForm = false; 6360 } 6361 6362 return isTargetForm; 6363 }; 6364 6365 return PreForm; 6366 }()); 6367 6368 Form.SignIn = (function () { 6369 var canSubmit = false; 6370 6371 var idNames = { 6372 signinForm: 'js-multiStepForm-signin', 6373 btnBack: 'js-signinForm-btnBackToEmail',
6374 btnBackToMobileNumber: 'js-signinForm-btnBackToMobile', 6375 loginUserName: 'loginUserName', 6376 loginMobileNumber: 'loginMobileNumber', 6377 loginPassword: 'loginPassword', 6378 loginVerificationCode: 'loginVerificationCode', 6379 asuLoginButton: 'js-form-autoSignupSwitch', 6380 registerLoginPassword: 'suz_registerLoginPassword', 6381 btnCheckSendEmail: 'js-form-btnCheckSendMail', 6382 asuSendMailButton: 'js-form-btnCheckSendAutoSignupMail', 6383 btnForwardToRegister: 'js-signinForm-btnForwardToRegister', 6384 }; 6385 6386 var names = { 6387 loginActionForm: $('#' + idNames.signinForm).parent().attr('name'), 6388 loginPassword: 'loginPassword' 6389 }; 6390 6391 var SignIn = { 6392 idNames: idNames, 6393 names: names, 6394 $root: $('#' + idNames.signinForm), 6395 $loginUserName: $('#' + idNames.loginUserName), 6396 $btnBackToEmail: $('#' + idNames.btnBack), 6397 $btnBackToMobile: $('#' + idNames.btnBackToMobileNumber), 6398 $loginActionForm: $('form[name="' + names.loginActionForm + '"]'), 6399 $loginMobileNumber: $('#' + idNames.loginMobileNumber), 6400 $loginPassword: $('#' + idNames.loginPassword), 6401 $loginVerificationCode: $('#' + idNames.loginVerificationCode), 6402 $registerLoginPassword: $('#' + idNames.registerLoginPassword), 6403 $btnCheckSendEmail: $('#' + idNames.btnCheckSendEmail), 6404 $asuSendMailButton: $('#' + idNames.asuSendMailButton), 6405 $btnForwardToRegister: $('#' + idNames.btnForwardToRegister), 6406 }; 6407 6408 var backMessageEvent = { 6409 handleEvent: null, 6410 }; 6411 6412 var forwardMessageEvent = { 6413 handleEvent: null, 6414 }; 6415 6416 SignIn.init = function () { 6417 if (this.$root.length) { 6418 this.initAttributes(); 6419 this.addEventAll(); 6420 this.checkSendEmailButton(); 6421 6422 if (Form.isReEnterPage() && !win.KeyenceEnquete.hasError()) { 6423 Form.setInitialFocus(this.$root); 6424 Form.scrollToElement(idNames.signinForm); 6425 } 6426 } 6427 }; 6428 6429 SignIn.initAttributes = function () { 6430 this.$root.find('svg').attr('focusable', false); 6431 this.$loginUserName.prop('disabled', true); 6432 }; 6433 6434 SignIn.addEventAll = function () { 6435 this.clickBackButton(); 6436 this.clickForwardButton(); 6437 this.submitSignin(); 6438 this.attachKeydownFormInputEvent(); 6439 this.onMessageAction(); 6440 }; 6441 6442 SignIn.clickBackButton = function () { 6443 this.$btnBackToEmail.on('click', this.onclickBackButton.bind(this)); 6444 6445 if (this.$btnBackToMobile.length) { 6446 this.$btnBackToMobile.on('click', this.onclickBackButton.bind(this)); 6447 } 6448 }; 6449 6450 SignIn.clickForwardButton = function () { 6451 if (this.$btnForwardToRegister.length) { 6452 this.$btnForwardToRegister.on('click', this.onclickForwardButton.bind(this)); 6453 } 6454 }; 6455 6456 SignIn.onclickBackButton = function (event) { 6457 var AvailableValidator = win.KeyenceForm.AvailableValidator; 6458 var SMSCodeButton = KEYENCE.Form.SMSCodeButton; 6459 6460 event.preventDefault(); 6461 6462 if (!win.AnalyticsViews || !Form.PreForm.checkMessageTargetForm()) { 6463 if (SMSCodeButton && SMSCodeButton.maxCountOver.isLimitOver) { 6464 SMSCodeButton.removeMaxCountOverDisabledInScreen(Form.SignIn.$root[0]); 6465 } 6466 6467 AvailableValidator.hideNoteText(Form.PreForm.$root); 6468 6469 Form.show(Form.PreForm.$root); 6470 Form.hide(this.$root); 6471 6472 KEYENCE.Form.FormFilter.SignIn.clickLoginPasswordTrigger(); 6473 KEYENCE.Form.WechatLoginFlow.resetLoginFlow(); 6474 } 6475 }; 6476 6477 SignIn.onclickForwardButton = function (event) { 6478 var $email = null; 6479 var formInfo = null; 6480 6481 event.preventDefault(); 6482 6483 if (!win.AnalyticsViews || !Form.PreForm.checkMessageTargetForm()) { 6484 $email = $('#' + Form.Register.idNames.email); 6485 formInfo = Form.PreForm.getFormInfo(); 6486 6487 if (!formInfo.value || !$email.length) { 6488 return; 6489 } 6490 6491 $email.val(formInfo.value); 6492 win.suz_callRegValidator($email.attr('name'), $email.val()); 6493 6494 Form.Register.showPanelByIndex(0); 6495 KEYENCE.Form.FormFilter.SignIn.clickLoginPasswordTrigger(); 6496 6497 Form.show(Form.Register.$root); 6498 Form.hide(Form.SignIn.$root); 6499 6500 Form.clearInputError(Form.SignIn.$loginUserName.attr('name'), false); 6501 } 6502 }; 6503 6504 SignIn.onMessageAction = function () { 6505 backMessageEvent.handleEvent = SignIn.changeBackDisplayForm; 6506 forwardMessageEvent.handleEvent = SignIn.changeForwardDisplayForm 6507 6508 win.addEventListener('message', backMessageEvent, false); 6509 win.addEventListener('message', forwardMessageEvent, false); 6510 }; 6511 6512 SignIn.checkSendEmailButton = function () { 6513 if (this.$btnCheckSendEmail.length) { 6514 Form.SendEmail.attachClickSendEmailButton(this.$btnCheckSendEmail); 6515 } 6516 6517 if (this.$asuSendMailButton.length) { 6518 Form.SendEmail.attachClickSendEmailButton(this.$asuSendMailButton); 6519 } 6520 }; 6521 6522 SignIn.submitSignin = function () { 6523 if (this.$loginActionForm.length) { 6524 this.$loginActionForm.on('submit', this.onSubmitLoginAction.bind(this)); 6525 } 6526 }; 6527 6528 SignIn.onSubmitLoginAction = function () { 6529 SignIn.$loginUserName.prop('disabled', false); 6530 }; 6531 6532 SignIn.validateForm = function (trigger) { 6533 var BlankFieldValidator = KEYENCE.Form.BlankFieldValidator; 6534 var PatternValidator = KEYENCE.Form.PatternMatchValidator; 6535 var ControlErrorDisplay = KEYENCE.Form.ControlErrorDisplay 6536 var FormFilter = KEYENCE.Form.FormFilter; 6537 var WechatLoginFlow = KEYENCE.Form.WechatLoginFlow; 6538 var formTypeGeneral = FormFilter.General.getFormType(); 6539 var formTypeSignIn = FormFilter.SignIn.getFormType(); 6540 var inputBlankCheckTargetList = $.makeArray(SignIn.$root.find('.js-check-blank:visible'));
6541 var ModalPasswordError = KEYENCE.Form.ModalPasswordError; 6542 var controlErrorDispalyTrigger = null; 6543 var isVerificationCodeChecking = false; 6544 var loginButton = doc.getElementById('js-form-regBtnSignin'); 6545 var AsuLoginButton = doc.getElementById('js-form-autoSignupSwitch'); 6546 6547 controlErrorDispalyTrigger = trigger ? trigger : ControlErrorDisplay.browserValidaterTarget; 6548 6549 if (formTypeGeneral === FormFilter.General.FORM_TYPE.EMAIL) { 6550 ControlErrorDisplay.setTriggerClickedData(controlErrorDispalyTrigger); 6551 6552 if (inputBlankCheckTargetList.length && BlankFieldValidator.validateFieldAll(inputBlankCheckTargetList)) { 6553 SignIn.$loginPassword[0] && SignIn.$loginPassword[0].focus(); 6554 6555 return; 6556 } 6557 6558 Form.clearInputError(Form.SignIn.$loginPassword.attr('name'), true); 6559 FormFilter.General.enableFields('email', true); 6560 ModalPasswordError.enableErrorCount(formTypeGeneral); 6561 } else if (formTypeGeneral === FormFilter.General.FORM_TYPE.MOBILE_NUMBER) { 6562 if (formTypeSignIn === FormFilter.SignIn.FORM_TYPE.PASSWORD) { 6563 if (inputBlankCheckTargetList.length && BlankFieldValidator.validateFieldAll(inputBlankCheckTargetList)) { 6564 SignIn.$loginPassword[0] && SignIn.$loginPassword[0].focus(); 6565 6566 return; 6567 } 6568 6569 Form.clearInputError(Form.SignIn.$loginPassword.attr('name'), true); 6570 FormFilter.SignIn.enableFields('password', true); 6571 } else if (formTypeSignIn === FormFilter.SignIn.FORM_TYPE.SMS_CODE) { 6572 if (inputBlankCheckTargetList.length && BlankFieldValidator.validateFieldAll(inputBlankCheckTargetList)) { 6573 ControlErrorDisplay.setTriggerClickedData(controlErrorDispalyTrigger); 6574 SignIn.$loginVerificationCode[0] && SignIn.$loginVerificationCode[0].focus(); 6575 6576 return; 6577 } 6578 6579 if (!ControlErrorDisplay.isTriggerClicked(SignIn.$loginVerificationCode.get(0))) { 6580 PatternValidator.updateFieldStatus(SignIn.$loginVerificationCode.get(0)); 6581 6582 if (SignIn.$loginVerificationCode.hasClass(PatternValidator.classNames.status)) { 6583 ControlErrorDisplay.setTriggerClickedData(controlErrorDispalyTrigger); 6584 SignIn.$loginVerificationCode[0] && SignIn.$loginVerificationCode[0].focus(); 6585 6586 return; 6587 } 6588 } 6589 6590 isVerificationCodeChecking = true; 6591 6592 if (!this.canSubmit) { 6593 WechatLoginFlow.checkVerificationCode( 6594 WechatLoginFlow.getMobileCountryId(FormFilter.SignIn.$loginCountryNumber.val()), 6595 Form.SignIn.$loginMobileNumber.val(), 6596 Form.SignIn.$loginVerificationCode.val() 6597 ).then((result) => { 6598 if (result.message) { 6599 ControlErrorDisplay.setTriggerClickedData(controlErrorDispalyTrigger); 6600 Form.insertErrorText(Form.SignIn.$loginVerificationCode.attr('name'), result.message); 6601 SignIn.$loginVerificationCode[0] && SignIn.$loginVerificationCode[0].focus(); 6602 6603 return; 6604 } else { 6605 Form.clearInputError(Form.SignIn.$loginVerificationCode.attr('name'), true); 6606 FormFilter.SignIn.enableFields('smscode', true); 6607 6608 SignIn.canSubmit = true; 6609 loginButton.click(); 6610 } 6611 }).catch((error) => { 6612 SignIn.canSubmit = true; 6613 loginButton.click(); 6614 }); 6615 } 6616 } else if (formTypeSignIn === FormFilter.SignIn.FORM_TYPE.ASU) { 6617 ControlErrorDisplay.setTriggerClickedData(controlErrorDispalyTrigger); 6618 6619 if (inputBlankCheckTargetList.length && BlankFieldValidator.validateFieldAll(inputBlankCheckTargetList)) { 6620 if (BlankFieldValidator.isBlank(SignIn.$loginVerificationCode.get(0))) { 6621 SignIn.$loginVerificationCode[0] && SignIn.$loginVerificationCode[0].focus(); 6622 } else { 6623 SignIn.$registerLoginPassword[0] && SignIn.$registerLoginPassword[0].focus(); 6624 } 6625 6626 return; 6627 } 6628 6629 isVerificationCodeChecking = true; 6630 6631 if (!this.canSubmit) { 6632 WechatLoginFlow.checkVerificationCode( 6633 WechatLoginFlow.getMobileCountryId(FormFilter.SignIn.$loginCountryNumber.val()), 6634 Form.SignIn.$loginMobileNumber.val(), 6635 Form.SignIn.$loginVerificationCode.val() 6636 ).then((result) => { 6637 if (result.message) { 6638 Form.insertErrorText(Form.SignIn.$loginVerificationCode.attr('name'), result.message); 6639 SignIn.$loginVerificationCode[0] && SignIn.$loginVerificationCode[0].focus(); 6640 6641 return; 6642 } else { 6643 Form.clearInputError(Form.SignIn.$registerLoginPassword.attr('name'), true); 6644 Form.clearInputError(Form.SignIn.$loginVerificationCode.attr('name'), true); 6645 FormFilter.SignIn.enableFields('asu', true); 6646 6647 SignIn.canSubmit = true; 6648 AsuLoginButton.click(); 6649 } 6650 }).catch((error) => { 6651 SignIn.canSubmit = true; 6652 AsuLoginButton.click(); 6653 }); 6654 } 6655 } 6656 } else if (formTypeGeneral === FormFilter.General.FORM_TYPE.DEFAULT) { 6657 ControlErrorDisplay.setTriggerClickedData(controlErrorDispalyTrigger); 6658 6659 if (inputBlankCheckTargetList.length && BlankFieldValidator.validateFieldAll(inputBlankCheckTargetList)) { 6660 SignIn.$loginPassword[0] && SignIn.$loginPassword[0].focus(); 6661 6662 return; 6663 } 6664 6665 Form.SignIn.$loginUserName.prop('disabled', false); 6666 ModalPasswordError.enableErrorCount(formTypeGeneral); 6667 } 6668 6669 if (isVerificationCodeChecking) { 6670 return; 6671 } 6672 6673 this.canSubmit = true; 6674 return; 6675 }; 6676 6677 SignIn.attachKeydownFormInputEvent = function () { 6678 this.$root.on('keydown.enterKeyAutoSignUpSubmit', 'input, textarea', this.onKeydownFormInput.bind(this)); 6679 }; 6680 6681 SignIn.onKeydownFormInput = function (event) { 6682 if (event.key !== 'Enter') { 6683 return; 6684 } 6685 6686 if (this.$root.get(0).classList.contains(KEYENCE.Form.FormFilter.SignIn.classNames.isFilterAutoSignUp
6686)) { 6687 $('#' + this.idNames.asuLoginButton).trigger('click'); 6688 6689 return false; 6690 } 6691 }; 6692 6693 SignIn.changeBackDisplayForm = function (e) { 6694 var availableValidator = win.KeyenceForm.AvailableValidator; 6695 var SMSCodeButton = KEYENCE.Form.SMSCodeButton; 6696 6697 if (e.data === AnalyticsViews.Utility.messageNames.backLink) { 6698 if (SMSCodeButton && SMSCodeButton.maxCountOver.isLimitOver) { 6699 SMSCodeButton.removeMaxCountOverDisabledInScreen(Form.SignIn.$root[0]); 6700 } 6701 6702 KEYENCE.Form.FormFilter.SignIn.clickLoginPasswordTrigger(); 6703 availableValidator.hideNoteText(Form.PreForm.$root); 6704 6705 Form.show(Form.PreForm.$root); 6706 Form.hide(win.MultiStepForm.SignIn.$root); 6707 6708 KEYENCE.Form.WechatLoginFlow.resetLoginFlow(); 6709 Form.changeCurrentScreenName(Form.screenNames.initial); 6710 } 6711 }; 6712 6713 SignIn.changeForwardDisplayForm = function (e) { 6714 var $email = null; 6715 var formInfo = null; 6716 6717 if (e.data === AnalyticsViews.Utility.messageNames.forwardLink) { 6718 $email = $('#' + Form.Register.idNames.email); 6719 formInfo = Form.PreForm.getFormInfo(); 6720 6721 if (!formInfo.value || !$email.length) { 6722 return; 6723 } 6724 6725 $email.val(formInfo.value); 6726 win.suz_callRegValidator($email.attr('name'), $email.val()); 6727 6728 Form.Register.showPanelByIndex(0); 6729 KEYENCE.Form.FormFilter.SignIn.clickLoginPasswordTrigger(); 6730 6731 Form.show(Form.Register.$root); 6732 Form.hide(Form.SignIn.$root); 6733 6734 Form.changeCurrentScreenName(Form.screenNames.step1); 6735 6736 Form.clearInputError(Form.SignIn.$loginUserName.attr('name'), false); 6737 } 6738 }; 6739 6740 return SignIn; 6741 }()); 6742 6743 /** 6744 * Create Register Form 6745 */ 6746 Form.Register = (function () { 6747 var canSubmit = false; 6748 6749 var idNames = { 6750 btnSubmit: 'js-regForm-btnSubmit', 6751 regForm: 'js-multiStepForm-registration', 6752 ageeBox: 'as_agreeBoxCheked', 6753 btnBackLink: 'js-regForm-btnBackToEmail', 6754 formPanelParent: 'js-multiStep-targetParent', 6755 formRoot: 'suz_registrationForm', 6756 email: 'suz_emailAddress', 6757 description: 'js-regForm-description', 6758 progressBarRoot: 'js-formProgress-trigger', 6759 progressTotalNum: 'js-formProgress-totalNum', 6760 progressCurrentNum: 'js-formProgress-currentNum', 6761 progressBarTrigger: 'js-formProgress-triggerBar', 6762 btnSearchAddress: 'js-regForm-btnSearchAddress', 6763 agreeAll: 'agreeAll', 6764 btnBackToMobileLink: 'js-regForm-btnBackToMobile', 6765 mobileNumber: 'suz_mobileNumber', 6766 formStepCurrentNum: 'js-formStep-currentNum', 6767 country: 'suz_countryID', 6768 state: 'suz_stateID', 6769 city: 'suz_cityName', 6770 cityId: 'suz_cityID', 6771 addressWrapper: 'suz_div_address1', 6772 address1: 'suz_address1', 6773 zipCode: 'suz_zipCode', 6774 company: 'suz_companyName', 6775 suggestListTemplate: 'js-suggestAddressList-template', 6776 addressSuggestWrapper: 'js-setAddressAttribute', 6777 addressSuggest: 'js-setAddressSuggest', 6778 suzRegArea: 'suz_regArea', 6779 suggestListShowMoreTemplate: 'js-suggestAddressList-showMoreTemplate' 6780 }; 6781 6782 var classNames = { 6783 btnSubmit: 'js-regForm-btnSubmit', 6784 btnNext: 'js-regForm-btnNext', 6785 formPanel: 'js-multiStep-target', 6786 required: 'js-form-required', 6787 isRequired: 'is-required', 6788 btnPrevious: 'js-regForm-btnPrevious', 6789 progressBar: 'js-formProgress-triggerBar',
6790 isRegError: 'is-register-error', 6791 isRegFlat: 'is-register-flat', 6792 isHide: 'is-hide', 6793 isAutoCompleteElementHide: 'is-autoCompleteElement-hide', 6794 isError: 'is-error', 6795 inputWrapper: 'prd-inputGroup', 6796 errorText: 'prd-form-errorText', 6797 suggestButton: 'js-setFormValue', 6798 suggestShowMoreButton: 'js-showMoreSuggestAddress' 6799 }; 6800 6801 var names = { 6802 privacyChk: 'privacyChk' 6803 }; 6804 6805 var suggestElems = { 6806 country: null, 6807 addressWrapper: null, 6808 address1: null, 6809 state: null, 6810 city: null, 6811 zipCode: null, 6812 addressSuggestWrapper: null, 6813 addressSuggest: null, 6814 suggestListTemplate: null, 6815 suggestListShowMoreTemplate: null 6816 }; 6817 6818 var suggestConfig = { 6819 valid: true, 6820 country: '', 6821 timer: null, 6822 timeOutTimer: null, 6823 api: [ 6824 { 6825 name: 'postGrid', 6826 url: 'https://api.postgrid.com/v1/intl_addver/completions', 6827 key: 'live_pk_uVtrFSaKtXSzcowhhF5TaK', 6828 length: 0, 6829 maxLength: 0, 6830 target: ['US', 'CA'], 6831 siteId: 0 6832 }, 6833 { 6834 name: 'juso', 6835 url: 'https://business.juso.go.kr/addrlink/addrLinkApiJsonp.do', 6836 key: 'U01TX0FVVEgyMDIzMDUxMTE2NDQyOTExMzc2MjU=', 6837 length: 0, 6838 maxLength: 100, 6839 target: ['KR'], 6840 siteId: 16 6841 }, 6842 { 6843 name: 'google', 6844 target: ['MX', 'BR', 'BE', 'NL', 'CH', 'AT', 'PL', 'HU', 'CZ', 'SK', 'SI', 'RO', 'IN', 'FR', 'IT', 'TW', 'SG', 'MY', 'ID', 'DE', 'GB', 'IE'] 6845 } 6846 ], 6847 hasAddressValue: false, 6848 isAutoCompleteElementsHide: false, 6849 currentApi: null, 6850 isMultiStep: false, 6851 isSuggestObserverReady: false, 6852 isSuggestItemObserverReady: false, 6853 isCurrentSuggestItem: false 6854 }; 6855 6856 var countryArray = []; 6857 6858 var googleAutocomplete = { 6859 api: null, 6860 triggerField: null, 6861 currentApiCategory: null, 6862 targetElems: { 6863 address1: null, 6864 state: null, 6865 city: null, 6866 cityId: null, 6867 zipCode: null, 6868 company: null 6869 }, 6870 selectedSuggestItem: null, 6871 config: { 6872 url: 'https://maps.googleapis.com/maps/api/js?key=AIzaSyCwRLytbkfMvZgopJQ8yq3NPyyba1X-ux8&libraries=places&callback=initGoogleAutocompleteAddress', 6873 valid: true, 6874 countryFormatList: null, 6875 isRunning: false, 6876 isOptionUpdateTriggerField: false, 6877 isMatchedTempValueTrigger: false, 6878 tempInputValue: { 6879 company: '', 6880 cityLevel2: '', 6881 cityLevel3: '', 6882 address1: '', 6883 zipcode: '', 6884 cityId: '', 6885 city: '' 6886 }, 6887 selectedSuggestMainText: '', 6888 isSuggestItemEventReady: false 6889 }, 6890 category: { 6891 address: { 6892 name: 'address', 6893 target: ['MX', 'BR', 'BE', 'NL', 'CH', 'AT', 'PL', 'HU', 'CZ', 'SK', '
6893SI', 'RO', 'FR', 'SG', 'MY', 'ID'], 6894 field: 'address1', 6895 fieldArray: ['address_components'], 6896 typeArray: ['address'], 6897 }, 6898 zipcode: { 6899 name: 'zipcode', 6900 target: ['IN'], 6901 field: 'zipCode', 6902 fieldArray: ['address_components'], 6903 typeArray: ['postal_code'], 6904 }, 6905 company: { 6906 name: 'company', 6907 target: ['TW', 'DE', 'IT', 'GB', 'IE'], 6908 field: 'company', 6909 fieldArray: ['address_components', 'name', 'formatted_address'], 6910 typeArray: ['establishment'], 6911 } 6912 }, 6913 classNames: { 6914 suggestWrpper: 'pac-container', 6915 suggestItem: 'pac-item', 6916 selectedSuggestItem: 'pac-item-selected', 6917 suggestMainText: 'pac-item-query' 6918 } 6919 }; 6920 6921 var Register = { 6922 idNames: idNames, 6923 classNames: classNames, 6924 names: names, 6925 suggestElems: suggestElems, 6926 suggestConfig: suggestConfig, 6927 googleAutocomplete: googleAutocomplete, 6928 countryArray: countryArray, 6929 $root: $('#' + idNames.regForm), 6930 $formRoot: $('#' + idNames.formRoot), 6931 $description: $('#' + idNames.description), 6932 $email: $('#' + idNames.email), 6933 $agreeBox: $('#' + idNames.ageeBox), 6934 $progressBarRoot: $('#' + idNames.progressBarRoot), 6935 $progressBar: $('#' + idNames.progressBar), 6936 $progressBarTrigger: $('#' + idNames.progressBarTrigger), 6937 $progressTotalNum: $('#' + idNames.progressTotalNum), 6938 $progressCurrentNum: $('#' + idNames.progressCurrentNum), 6939 $btnSearchAddress: $('#' + idNames.btnSearchAddress), 6940 isErrorPage: Form.isShow($('#' + idNames.regForm)), 6941 $formStepCurrentNum: $('#' + idNames.formStepCurrentNum), 6942 }; 6943 6944 Register.init = function () { 6945 if (!this.$root.length) { 6946 return; 6947 } 6948 6949 if (this.isRegError() || this.isRegFlat()) { 6950 suggestConfig.isMultiStep = false; 6951 6952 this.initAttributes(); 6953 this.clickBackLink(); 6954 this.clickPrevButton(); 6955 this.initAgreeBoxControl(); 6956 this.attachKeydownFormInputEvent(); 6957 this.submitForm(); 6958 6959 if (suggestConfig.valid) { 6960 this.initAutocompleteAddress(suggestConfig.isMultiStep); 6961 } 6962 6963 if (Form.isEditProfileForm() && $('#' + Form.idNames.trigger).find('[id^="suz_div_"].is-error').length) { 6964 setTimeout(function () { 6965 Form.focusFirstErrorItem(); 6966 }, 0); 6967 } else if (Form.isEditProfileForm()) { 6968 Form.setInitialFocus(this.$root); 6969 } else if ($('#' + Form.idNames.trigger).find('[id^="suz_div_"].is-error').length) { 6970 setTimeout(function () { 6971 Form.focusFirstErrorItem(); 6972 }, 0); 6973 } else { 6974 Form.setInitialFocus(this.$root); 6975 } 6976 6977 if (googleAutocomplete.config.valid) { 6978 this.setGoogleAutocomplete(); 6979 } 6980 6981 if (Form.formWrapper && !this.$root.hasClass(Form.classNames.isHide)) { 6982 if (Form.formWrapper.dataset.currentScreenName !== 'email-register-flat' && Form.formWrapper.dataset.currentScreenName !== 'mobile-register-flat') { 6983 Form.changeCurrentScreenName(Form.screenNames.flat); 6984 } 6985 } 6986 } else { 6987 suggestConfig.isMultiStep = true; 6988 6989 this.initAttributes(); 6990 this.addEventAll(); 6991 this.setPanelAttributes(); 6992 this.initProgressBar(); 6993 this.initAgreeBoxControl(); 6994 6995 if (suggestConfig.valid) { 6996 this.initAutocompleteAddress(suggestConfig.isMultiStep); 6997 } 6998 6999 if (googleAutocomplete.config.valid) { 7000 this.setGoogleAutocomplete(); 7001 } 7002 7003 Form.focusFirstErrorItem(); 7004 } 7005 }; 7006 7007 Register.initAttributes = function () { 7008 this.$root.attr('data-index-current', 0); 7009 this.$root.addClass(Form.classNames.isInitialized); 7010 7011 if (!this.isErrorPage) { 7012 $('#' + idNames.email).prop('disabled', true); 7013 } 7014 }; 7015 7016 Register.addEventAll = function () { 7017 this.clickNextButton(); 7018 this.clickPrevButton(); 7019 this.clickBackLink();
7020 this.submitForm(); 7021 this.attachKeydownFormInputEvent(); 7022 }; 7023 7024 Register.isRegError = function () { 7025 if (this.$root.hasClass(classNames.isRegError)) { 7026 return true; 7027 } 7028 7029 return false; 7030 }; 7031 7032 Register.isRegFlat = function () { 7033 if (this.$root.hasClass(classNames.isRegFlat)) { 7034 return true; 7035 } 7036 7037 return false; 7038 }; 7039 7040 Register.getPanels = function () { 7041 var $parentElement = this.$root.find('#' + idNames.formPanelParent); 7042 var $panels; 7043 7044 if ($parentElement.length) { 7045 $panels = $parentElement.children('.' + classNames.formPanel); 7046 } else { 7047 $panels = this.$root.find('.' + classNames.formPanel); 7048 } 7049 7050 return $panels; 7051 }; 7052 7053 Register.setPanelAttributes = function () { 7054 var $panels = this.getPanels(); 7055 var mobileCountryInfo = Form.PreForm.getMobileCountryInfo(); 7056 var $regMobileCountryNumber = $('#suz_mobileCountryNumber'); 7057 7058 $panels.each(function (index) { 7059 $(this).attr('data-panel-index', index + 1); 7060 $(this).attr('data-panel-displayed', false); 7061 }); 7062 7063 if (!this.isErrorPage) { 7064 $('#' + idNames.email).prop('disabled', true); 7065 } 7066 7067 if (Register.$root.attr('data-index-current') === PANEL_NUM.NONE) { 7068 this.showPanelByIndex(PANEL_INDEX.FIRST) 7069 } 7070 7071 if (!this.isRegError() && !this.isRegFlat()) { 7072 Form.setInitialFocus(this.$root); 7073 } 7074 7075 Form.focusFirstErrorItem(Register.$root.find('#' + idNames.formPanelParent)); 7076 7077 if ($regMobileCountryNumber.length) { 7078 $regMobileCountryNumber.val(mobileCountryInfo.code); 7079 $regMobileCountryNumber.attr('disabled', true); 7080 $('#suz_mobileNumber').val($('#checkMobileNumber').val()); 7081 } 7082 }; 7083 7084 Register.initAgreeBoxControl = function () { 7085 if (this.$agreeBox.length) { 7086 win.suz_checkBoxDecision(); 7087 } 7088 }; 7089 7090 Register.setPassedStatusByButton = function (button, status) { 7091 var $panel; 7092 7093 if (button && typeof status === 'boolean') { 7094 $panel = $(button).parents('.' + this.classNames.formPanel); 7095 7096 if ($panel.length) { 7097 $panel.attr('data-panel-passed', status); 7098 } 7099 } 7100 }; 7101 7102 Register.showNext = function (event, isEnterKeyTrigger) { 7103 var button = event.currentTarget; 7104 var $panels = this.getPanels(); 7105 var $currentPanel; 7106 var $autoCompleteElements = null; 7107 var AvailableValidator = KeyenceForm.AvailableValidator; 7108 var $mobileNumber = null; 7109 var $phoneNumber = null; 7110 var $registerEmailAddress = null; 7111 var blurEvent = new Event('blur'); 7112 var SetMobileNumberToPhoneField = KeyenceForm.SetMobileNumberToPhoneField; 7113 7114 if (button.disabled) { 7115 return; 7116 } 7117 7118 if (event.handleObj.type !== 'keydown') { 7119 event.preventDefault(); 7120 } 7121 7122 if (!isEnterKeyTrigger) { 7123 if (event.handleObj.type === 'keydown' && event.key !== 'Enter') { 7124 return; 7125 } 7126 7127 if (event.handleObj.type === 'mousedown' && event.which !== EVENT_TYPE.CLICK_LEFT) { 7128 return; 7129 } 7130 7131 if (event.handleObj.type === 'touchend' && isScrolling) { 7132 return; 7133 } 7134 } 7135 7136 if (this.getCurrentIndex() === this.getLastIndex()) { 7137 return; 7138 } 7139 7140 $currentPanel = $(button).parents('.' + this.classNames.formPanel + '.' + Form.classNames.isCurrent); 7141 7142 if ($currentPanel.attr('data-panel-passed') === 'true') { 7143 return; 7144 } 7145 7146 KeyenceForm.ControlErrorDisplay.setTriggerClickedData(button, 'register'); 7147 7148 AvailableValidator.updateRegisterBlockStatus($currentPanel, event, 'n
7148otLastPanel'); 7149 7150 if (AvailableValidator.config.isRegisterContinueBlocked) { 7151 if (AvailableValidator.config.currentTarget) { 7152 AvailableValidator.config.currentTarget.dispatchEvent(blurEvent); 7153 } 7154 7155 return; 7156 } 7157 7158 $mobileNumber = $currentPanel.find('.' + AvailableValidator.targetWrapperClass.mobile); 7159 $phoneNumber = $currentPanel.find('.' + AvailableValidator.targetWrapperClass.phone); 7160 $registerEmailAddress = $currentPanel.find('.' + AvailableValidator.targetWrapperClass.email); 7161 7162 if ($mobileNumber.length) { 7163 AvailableValidator.setUnavailableData($mobileNumber); 7164 } 7165 7166 if ($phoneNumber.length) { 7167 AvailableValidator.setUnavailableData($phoneNumber); 7168 } 7169 7170 if ($registerEmailAddress.length) { 7171 AvailableValidator.setUnavailableData($registerEmailAddress); 7172 } 7173 7174 $autoCompleteElements = $currentPanel.find('.' + classNames.isAutoCompleteElementHide); 7175 7176 if ($autoCompleteElements.length) { 7177 Register.setAutoCompleteHideClass(true); 7178 } 7179 7180 $currentPanel.attr('data-panel-passed', true); 7181 7182 this.updateInputFieldStatus($currentPanel).done(function (hasError) { 7183 var $currentPanel; 7184 var $newPanel; 7185 var nextIndex; 7186 7187 $currentPanel = $panels.filter('.' + Form.classNames.isCurrent); 7188 7189 if (hasError) { 7190 $currentPanel.removeAttr('data-panel-passed'); 7191 Form.focusFirstErrorItem($currentPanel); 7192 7193 SetMobileNumberToPhoneField.config.isScreenValidateRunning = false; 7194 return; 7195 } 7196 7197 if (!$currentPanel.length) { 7198 SetMobileNumberToPhoneField.config.isScreenValidateRunning = false; 7199 return; 7200 } 7201 7202 $newPanel = $panels.filter('.' + Form.classNames.isCurrent).next(); 7203 7204 if ($newPanel.length) { 7205 if (AvailableValidator.isBlockedProcessingStatus($currentPanel)) { 7206 SetMobileNumberToPhoneField.config.isScreenValidateRunning = false; 7207 return; 7208 } 7209 7210 AvailableValidator.hideNoteText($newPanel); 7211 nextIndex = $newPanel.index(); 7212 7213 Register.disableInputElementAll($currentPanel.find(Form.selectors.focusableInputElements)); 7214 Register.showPanelByIndex(nextIndex); 7215 7216 Form.changeCurrentScreenName('step', nextIndex + 1); 7217 7218 Register.changeProgress($newPanel.data('panelIndex')); 7219 Form.scrollToElement(Register.idNames.regForm); 7220 7221 $currentPanel.removeAttr('data-panel-passed'); 7222 7223 if ($newPanel.attr('data-panel-displayed') === 'false') { 7224 Form.Register.clearInputErrorAll($newPanel); 7225 $newPanel.attr('data-panel-displayed', true); 7226 } 7227 7228 SetMobileNumberToPhoneField.config.isScreenValidateRunning = false; 7229 } 7230 }).fail(function () { 7231 $currentPanel.removeAttr('data-panel-passed'); 7232 SetMobileNumberToPhoneField.config.isScreenValidateRunning = false; 7233 }); 7234 }; 7235 7236 Register.showPrev = function (event) { 7237 var button = event.currentTarget; 7238 var $panels = this.getPanels(); 7239 var $currentPanel; 7240 var $prevPanel; 7241 var prevIndex; 7242 var availableValidator = KeyenceForm.AvailableValidator; 7243 var SMSCodeButton = KEYENCE.Form.SMSCodeButton; 7244 7245 if (event.handleObj.type !== 'keydown') { 7246 event.preventDefault(); 7247 } 7248 7249 if (event.handleObj.type === 'keydown' && event.key !== 'Enter') { 7250 return; 7251 } 7252 7253 if (event.handleObj.type === 'mousedown' && event.which !== EVENT_TYPE.CLICK_LEFT) { 7254 return; 7255 } 7256 7257 if (event.handleObj.type === 'touchend' && isScrolling) { 7258 return; 7259 } 7260 7261 $currentPanel = $(button).parents('.' + this.classNames.formPanel + '.' + Form.classNames.isCurrent); 7262 7263 if (!$currentPanel.length) { 7264 return; 7265 } 7266 7267 if ($currentPanel.attr('data-panel-passed') === 'true') { 7268 return; 7269 } 7270 7271 this.$root.off('keypress.enterKeySubmit'); 7272 $currentPanel.attr('data-panel-passed', true); 7273 7274 $prevPanel = $panels.filter('.' + Form.classNames.isCurrent).prev(); 7275 7276 if ($prevPanel.length) { 7277 availableValidator.hideNoteText($prevPanel); 7278 7279 prevIndex = $prevPanel.index(); 7280 7281 Register.showPanelByIndex(prevIndex); 7282 7283 Form.changeCurrentScreenName('step', prevIndex + 1); 7284 7285 Register.changeProgress($prevPanel.data('panelIndex')); 7286 } else { 7287 if (SMSCodeButton && SMSCodeButton.maxCountOver.isLimitOver) { 7288 SMSCodeButton.removeMaxCountOverDisabledInScreen(Form.Register.$root[0]); 7289 } 7290 7291 availableValidator.hideNoteText(Form.PreForm.$root); 7292 7293 Form.show(Form.PreForm.$root); 7294 Form.hide(Register.$root); 7295 7296 KEYENCE.Form.WechatLoginFlow.resetLoginFlow(); 7297 Form.changeCurrentScreenName(Form.screenNames.initial); 7298 } 7299 7300 $currentPanel.removeAttr('data-panel-passed'); 7301 Form.scrollToElement(Form.idNames.trigger); 7302 7303 }; 7304 7305 Register.updateInputFieldStatus = function ($currentPanel) { 7306 var $requiredInputs; 7307 var deferred = new $.Deferred(); 7308 var hasError = false; 7309 var deferreds = []; 7310 var BlankFieldValidator = win.KeyenceForm.BlankFieldValidator; 7311 var PatternMatchValidator = win.KeyenceForm.PatternMatchValidator; 7312 7313 win.KeyenceForm.SetMobileNumberToPhoneField.config.isScreenValidateRunning = true; 7314 7315 if (!$currentPanel.length) { 7316 deferred.resolve(false); 7317 } 7318 7319 $requiredInputs = $currentPanel.find('.' + this.classNames.required).filter(':visible'); 7320 7321 if ($requiredInputs.length) { 7322 $requiredInputs.each(function () { 7323 var field = this; 7324 7325 if (field.classList.contains(BlankFieldValidator.classNames.trigger) 7326 && field.classList.contains(PatternMatchValidator.classNames.replaceValueTrigger)) { 7327 if (BlankFieldValidator.isBlank(field)) { 7328 Form.insertErrorText(field.name); 7329 7330 hasError = true; 7331 return; 7332 } 7333 7334 PatternMatchValidator.updateFieldStatus(field); 7335 7336 if (field.classList.contains(PatternMatchValidator.classNames.status)) { 7337 hasError = true; 7338 return; 7339 } 7340 7341 Form.clearInputError(field.name, true, false); 7342 } else if (field.classList.contains(BlankFieldValidator.classNames.trigger)) { 7343 if (BlankFieldValidator.isBlank(field)) { 7344 Form.insertErrorText(field.name); 7345 7346 hasError = true; 7347 } else { 7348 Form.clearInputError(field.name, true, false); 7349 } 7350 } else if (field.classList.contains(PatternMatchValidator.classNames.replaceValueTrigger)) { 7351 PatternMatchValidator.updateFieldStatus(field); 7352 7353 if (field.classList.contains(PatternMatchValidator.classNames.status)) { 7354 hasError = true; 7355 } else { 7356 deferreds.push(win.suz_callRegValidator(field.name, field.value)); 7357 } 7358 } else { 7359 deferreds.push(win.suz_callRegValidator(field.name, field.value)); 7360 } 7361 }); 7362 7363 if (hasError) { 7364 deferred.resolve(hasError); 7365 } else { 7366 $.when.apply(null, deferreds).then(function () { 7367 Array.prototype.slice.call(arguments).forEac
7367h(function (result) { 7368 if (result && (result.message && result.message.length)) { 7369 hasError = true; 7370 } 7371 }); 7372 7373 deferred.resolve(hasError); 7374 }); 7375 } 7376 } else { 7377 deferred.resolve(false); 7378 } 7379 7380 return deferred.promise(); 7381 }; 7382 7383 Register.enableInputElements = function ($inputElements) { 7384 if ($inputElements && $inputElements.length) { 7385 $inputElements.prop('disabled', false); 7386 } 7387 }; 7388 7389 Register.disableInputElementAll = function ($inputElements) { 7390 if ($inputElements && $inputElements.length) { 7391 $inputElements.prop('disabled', true); 7392 } 7393 }; 7394 7395 Register.showPanelByIndex = function (nextIndex) { 7396 var $panels = this.getPanels(); 7397 var $email = $('#suz_emailAddress'); 7398 7399 if (typeof nextIndex !== 'number' || !$panels.length) { 7400 return; 7401 } 7402 7403 if (nextIndex === 0) { 7404 Form.Register.$description.removeClass('is-hide'); 7405 } else { 7406 Form.Register.$description.addClass('is-hide'); 7407 } 7408 7409 $panels.each(function (index) { 7410 var $this = $(this); 7411 7412 $this.find('svg').attr('focusable', false); 7413 7414 if (index === nextIndex) { 7415 Register.showPanel($this); 7416 } else { 7417 if (Register.isRegError() || Register.isRegFlat()) { 7418 return; 7419 } 7420 7421 Register.hidePanel($this); 7422 7423 if (index < nextIndex) { 7424 Register.disableInputElementAll($this.find(Form.selectors.focusableInputElements)); 7425 } 7426 } 7427 }); 7428 }; 7429 7430 Register.showPanel = function ($panel) { 7431 var $inputElements; 7432 var $inputForEnterKey; 7433 var panelNum; 7434 7435 if (!$panel || !$panel.length) { 7436 return; 7437 } 7438 7439 panelNum = $panel.data('panelIndex'); 7440 7441 if (panelNum === undefined) { 7442 panelNum = PANEL_NUM.FIRST; 7443 } 7444 7445 $inputElements = $panel.find(Form.selectors.disabledInputElements + ',' + Form.selectors.focusableInputElements); 7446 7447 if ($inputElements.length) { 7448 if (panelNum === PANEL_NUM.FIRST) { 7449 $inputElements = $inputElements.filter(function () { 7450 return this.name !== 'emailAddress' && this.name !== 'mobileNumber' && this.name !== 'countryNumber' && this.name !== 'mobileCountryNumber' 7451 }); 7452 } 7453 7454 // enable input elements 7455 Register.enableInputElements($inputElements); 7456 } 7457 7458 Form.enableFocus($panel.find(Form.selectors.focusableElements)); 7459 $panel.addClass(Form.classNames.isCurrent); 7460 this.$root.attr('data-index-current', panelNum); 7461 7462 if (Form.needFocus && $inputElements.length && !this.isRegError() && !this.isRegFlat()) { 7463 $inputElements.get(0).focus(); 7464 } 7465 }; 7466 7467 Register.hidePanel = function ($panel) { 7468 var $focusableElements; 7469 7470 if (!$panel || !$panel.length) { 7471 return; 7472 } 7473 7474 $panel.removeClass(Form.classNames.isCurrent); 7475 7476 $focusableElements = $panel.find(Form.selectors.focusableElements); 7477 7478 Form.disableFocus($focusableElements); 7479 }; 7480 7481 Register.initProgressBar = function () { 7482 var $panels = this.getPanels(); 7483 7484 if ($panels.length) { 7485 this.$progressTotalNum.text($panels.length); 7486 this.changeProgress(1); 7487 } 7488 }; 7489 7490 Register.changeProgress = function (num) { 7491 var $panels = this.getPanels(); 7492 var percentage = 0; 7493 7494 if (typeof num !== 'number' || !$panels.length) { 7495 return; 7496 } 7497 7498 if (num === $panels.length) { 7499 percentage = 100; 7500 } else { 7501 percentage = Math.floor((num / $panels.length) * 100); 7502 } 7503 7504 if (Register.$formStepCurrentNum.length) { 7505 Register.$formStepCurrentNum.text(num); 7506 } else { 7507 Register.$progressCurrentNum.text(num); 7508 } 7509 7510 Register.$progressBarTrigger.css('width', percentage + '%'); 7511 } 7512 7513 Register.clickNextButton = function () { 7514 this.$root.on('keydown mousedown touchend', '.' + this.classNames.btnNext, this.showNext.bind(this)); 7515 }; 7516 7517 Register.clickPrevButton = function () { 7518 this.$root.on('keydown mousedown touchend', '.' + this.classNames.btnPrevious, this.showPrev.bind(this)); 7519 }; 7520 7521 Register.clickBackLink = function () { 7522 var SMSCodeButton = KEYENCE.Form.SMSCodeButton; 7523 7524 this.$root.on('click', '#' + this.idNames.btnBackLink, function (event) { 7525 event.preventDefault(); 7526 Form.show(Form.PreForm.$root); 7527 Form.hide(Register.$root); 7528 7529 Form.changeCurrentScreenName(Form.screenNames.initial); 7530 }); 7531 7532 this.$root.on('click', '#' + this.idNames.btnBackToMobileLink, function (event) { 7533 if (SMSCodeButton && SMSCodeButton.maxCountOver.isLimitOver) { 7534 SMSCodeButton.removeMaxCountOverDisabledInScreen(Form.Register.$root[0]); 7535 } 7536 7537 event.preventDefault(); 7538 Form.show(Form.PreForm.$root); 7539 Form.hide(Register.$root); 7540 7541 KEYENCE.Form.WechatLoginFlow.resetLoginFlow(); 7542 Form.changeCurrentScreenName(Form.screenNames.initial); 7543 }); 7544 }; 7545 7546 Register.getCurrentIndex = function () { 7547 var $panels = this.getPanels(); 7548 var $current; 7549 7550 if (!$panels.length) { 7551 return null; 7552 } 7553 7554 $current = $panels.filter('.' + Form.classNames.isCurrent); 7555 7556 return $current.index(); 7557 }; 7558 7559 Register.getLastIndex = function () { 7560 var $panels = this.getPanels(); 7561 7562 if ($panels.length) { 7563 return $panels.length - 1; 7564 } 7565 7566 return null; 7567 }; 7568 7569 Register.isLastPage = function () { 7570 var $panels = this.getPanels(); 7571 7572 if ($panels.length === this.getCurrentIndex()) { 7573 return true; 7574 } 7575 7576 return false; 7577 }; 7578 7579 Register.isActionPwdAssistance = function () { 7580 var actionValue = Register.$formRoot.attr('action'); 7581 7582 if (new RegExp(Form.urls.actionPwdAssistance).test(actionValue)) { 7583 return true; 7584 } 7585 7586 return false; 7587 }; 7588 7589 Register.submitForm = function () { 7590 this.$formRoot.on('submit.reg-submit', this.onSubmitForm.bind(this)); 7591 }; 7592 7593 Register.onSubmitForm = function (event) { 7594 var FormFilter = KEYENCE.Form.FormFilter; 7595 var $panels = this.getPanels(); 7596 var $currentPanel; 7597 var formTypeGeneral = FormFilter.General.getFormType(); 7598 var $autoCompleteElements = null; 7599 var AvailableValidator = win.KeyenceForm.AvailableValidator; 7600 var PatternMatchValidator = win.KeyenceForm.PatternMatchValidator; 7601 var RegisteredValidator = win.KeyenceForm.RegisteredValidator; 7602 var ControlErrorDisplay = win.KeyenceForm.ControlErrorDisplay; 7603 var WechatLoginFlow = win.KeyenceForm.WechatLoginFlow; 7604 var MultiFactorAuthentication = win.KeyenceForm.MultiFactorAuthentication; 7605 var $mobileNumber = null; 7606 var $phoneNumber = null; 7607 var $registerEmailAddress = null; 7608 var blurEvent = new Event('blur'); 7609 var $replaceValueTargets = null; 7610 var replaceValueTargetsLength = 0; 7611 var patternError = false; 7612 var errorElementsLength = 0;
7613 var $checkRegisteredTarget = null; 7614 var SetMobileNumberToPhoneField = KEYENCE.Form.SetMobileNumberToPhoneField; 7615 var controlErrorDispalyTrigger = null; 7616 7617 if (Form.isShow(Form.PreForm.$root) && 7618 !WechatLoginFlow.filterTarget?.classList.contains(WechatLoginFlow.classNames.isLoginActive)) { 7619 return false; 7620 } 7621 7622 if (Register.isActionPwdAssistance()) { 7623 return true; 7624 } 7625 7626 if (Form.isShow(Form.SignIn.$root) || 7627 (WechatLoginFlow.filterTarget?.classList.contains(WechatLoginFlow.classNames.isLoginActive) && 7628 Form.isShow(Form.PreForm.$root)) 7629 ) { 7630 if (WechatLoginFlow.filterTarget.classList.contains(WechatLoginFlow.classNames.isLoginActive) && 7631 WechatLoginFlow.STATE_CODE.current === WechatLoginFlow.STATE_CODE.L10) { 7632 return true; 7633 } 7634 7635 Form.SignIn.validateForm(event.originalEvent.submitter); 7636 7637 if (Form.SignIn.canSubmit) { 7638 return true; 7639 } 7640 7641 return false; 7642 } 7643 7644 $currentPanel = $panels.filter('.' + Form.classNames.isCurrent); 7645 7646 controlErrorDispalyTrigger = event.originalEvent.submitter ? event.originalEvent.submitter : ControlErrorDisplay.browserValidaterTarget; 7647 ControlErrorDisplay.setTriggerClickedData(controlErrorDispalyTrigger, 'register'); 7648 7649 AvailableValidator.updateRegisterBlockStatus($currentPanel, event, 'lastPanel'); 7650 MultiFactorAuthentication.activeNoteTextHideFlag = false; 7651 7652 if (AvailableValidator.config.isRegisterContinueBlocked && 7653 !MultiFactorAuthentication.initialErrorItemRootArray.length 7654 ) { 7655 if (Form.isEditProfileForm()) { 7656 if (!AvailableValidator.config.currentTarget) { 7657 AvailableValidator.config.registerCurrentPanelType === ''; 7658 AvailableValidator.config.registerProcessingEventObject = null; 7659 } else if (AvailableValidator.config.currentTarget 7660 && AvailableValidator.config.isPressedEnterOnEditProfileForm) { 7661 AvailableValidator.config.currentTarget.dispatchEvent(blurEvent); 7662 } 7663 } else if (AvailableValidator.config.currentTarget 7664 && AvailableValidator.config.isPressedEnterOnEditProfileForm) { 7665 AvailableValidator.config.currentTarget.dispatchEvent(blurEvent); 7666 } 7667 7668 AvailableValidator.config.isPressedEnterOnEditProfileForm = false; 7669 7670 return false; 7671 } 7672 7673 if (Register.isRegError() || Register.isRegFlat()) { 7674 SetMobileNumberToPhoneField.config.isScreenValidateRunning = true; 7675 $replaceValueTargets = $currentPanel.find('.' + PatternMatchValidator.classNames.replaceValueTrigger); 7676 7677 if ($replaceValueTargets.length) { 7678 replaceValueTargetsLength = $replaceValueTargets.length; 7679 7680 $replaceValueTargets.each(function () { 7681 PatternMatchValidator.updateFieldStatus(this); 7682 7683 if (this.classList.contains(PatternMatchValidator.classNames.status)) { 7684 patternError = true; 7685 } 7686 }); 7687 7688 errorElementsLength = $currentPanel.find('.' + this.classNames.isError).length; 7689 } 7690 7691 if (patternError && replaceValueTargetsLength === errorElementsLength) { 7692 Form.focusFirstErrorItem(); 7693 7694 SetMobileNumberToPhoneField.config.isScreenValidateRunning = false; 7695 return false; 7696 } 7697 7698 if (formTypeGeneral === FormFilter.General.FORM_TYPE.E
7698MAIL) { 7699 $('#' + idNames.email).prop('disabled', false); 7700 } else if (formTypeGeneral === FormFilter.General.FORM_TYPE.MOBILE_NUMBER) { 7701 $('#' + idNames.mobileNumber).prop('disabled', false); 7702 } else { 7703 $('#' + idNames.email).prop('disabled', false); 7704 } 7705 7706 SetMobileNumberToPhoneField.config.isScreenValidateRunning = false; 7707 7708 if (Form.isEditProfileForm()) { 7709 KEYENCE.Form.MultiFactorAuthentication.enableAllInputs(); 7710 } 7711 7712 return true; 7713 } 7714 7715 if (this.getCurrentIndex() !== this.getLastIndex()) { 7716 return false; 7717 } 7718 7719 if (canSubmit) { 7720 $panels.each(function () { 7721 Register.enableInputElements($(this).find(Form.selectors.disabledInputElements)); 7722 }); 7723 7724 if (formTypeGeneral === FormFilter.General.FORM_TYPE.EMAIL) { 7725 FormFilter.General.disableFields('mobileNumber', true); 7726 } else if (formTypeGeneral === FormFilter.General.FORM_TYPE.MOBILE_NUMBER) { 7727 FormFilter.General.disableFields('email', true); 7728 } 7729 7730 return true; 7731 } 7732 7733 $mobileNumber = $currentPanel.find('.' + AvailableValidator.targetWrapperClass.mobile); 7734 $phoneNumber = $currentPanel.find('.' + AvailableValidator.targetWrapperClass.phone); 7735 $registerEmailAddress = $currentPanel.find('.' + AvailableValidator.targetWrapperClass.email); 7736 7737 if ($mobileNumber.length) { 7738 AvailableValidator.setUnavailableData($mobileNumber); 7739 } 7740 7741 if ($phoneNumber.length) { 7742 AvailableValidator.setUnavailableData($phoneNumber); 7743 } 7744 7745 if ($registerEmailAddress.length) { 7746 AvailableValidator.setUnavailableData($registerEmailAddress); 7747 } 7748 7749 $autoCompleteElements = $currentPanel.find('.' + classNames.isAutoCompleteElementHide); 7750 7751 if ($autoCompleteElements.length) { 7752 Register.setAutoCompleteHideClass(true); 7753 } 7754 7755 this.updateInputFieldStatus($currentPanel).done(function (hasError) { 7756 setTimeout(function () { 7757 $checkRegisteredTarget = $currentPanel.find('.' + RegisteredValidator.targetClass.emailAddress); 7758 7759 if (hasError) { 7760 if ($checkRegisteredTarget.length) { 7761 if ($checkRegisteredTarget.hasClass(RegisteredValidator.targetClass.status)) { 7762 MultiStepForm.insertErrorText($checkRegisteredTarget[0].name, 'data-message-email-address-registered'); 7763 } else if ($checkRegisteredTarget.val() !== '') { 7764 MultiStepForm.checkRegularMember($checkRegisteredTarget.val()).always(function (status) { 7765 if (status && status.isRegularMember) { 7766 RegisteredValidator.showRegisteredError($checkRegisteredTarget[0]); 7767 } 7768 }); 7769 } 7770 } 7771 7772 Form.scrollToElement(Form.idNames.trigger); 7773 Form.focusFirstErrorItem($currentPanel); 7774 SetMobileNumberToPhoneField.config.isScreenValidateRunning = false; 7775 } else { 7776 if (AvailableValidator.isBlockedProcessingStatus($currentPanel)) { 7777 SetMobileNumberToPhoneField.config.isScreenValidateRunning = false; 7778 return; 7779 } 7780
7781 if ($checkRegisteredTarget.length) { 7782 if ($checkRegisteredTarget.hasClass(RegisteredValidator.targetClass.status)) { 7783 MultiStepForm.insertErrorText($checkRegisteredTarget[0].name, 'data-message-email-address-registered'); 7784 Form.scrollToElement(Form.idNames.trigger); 7785 Form.focusFirstErrorItem($currentPanel); 7786 7787 SetMobileNumberToPhoneField.config.isScreenValidateRunning = false; 7788 return; 7789 } 7790 7791 MultiStepForm.checkRegularMember($checkRegisteredTarget.val()).always(function (status) { 7792 if (status && status.isRegularMember && $checkRegisteredTarget.val() !== '') { 7793 RegisteredValidator.showRegisteredError($checkRegisteredTarget[0]); 7794 Form.scrollToElement(Form.idNames.trigger); 7795 Form.focusFirstErrorItem($currentPanel); 7796 7797 SetMobileNumberToPhoneField.config.isScreenValidateRunning = false; 7798 return; 7799 } else { 7800 canSubmit = true; 7801 7802 SetMobileNumberToPhoneField.config.isScreenValidateRunning = false; 7803 $('.' + classNames.btnSubmit).trigger('click'); 7804 } 7805 }); 7806 } else { 7807 canSubmit = true; 7808 7809 SetMobileNumberToPhoneField.config.isScreenValidateRunning = false; 7810 $('.' + classNames.btnSubmit).trigger('click'); 7811 } 7812 } 7813 }, 0); 7814 }); 7815 7816 return false; 7817 }; 7818 7819 Register.clearInputErrorAll = function ($panel) { 7820 var $inputs; 7821 7822 if ($panel && $panel.length) { 7823 $inputs = $panel.find('.' + this.classNames.required); 7824 7825 $inputs.each(function () { 7826 Form.clearInputError(this.name, false); 7827 }); 7828 } 7829 }; 7830 7831 Register.attachKeydownFormInputEvent = function () { 7832 this.$root.on('keydown.enterKeySubmit', 'input:not([disabled]), textarea:not([disabled])', this.onKeydownFormInput.bind(this)); 7833 }; 7834 7835 Register.onKeydownFormInput = function (event) { 7836 var $currentPanel; 7837 var $buttonContinue; 7838 7839 if (event.key !== 'Enter') { 7840 return; 7841 } 7842 7843 if (Register.googleAutocomplete.triggerField 7844 && Register.suggestConfig.isCurrentSuggestItem) { 7845 Register.googleAutocomplete.triggerField.blur(); 7846 7847 return false; 7848 } 7849 7850 if (Register.isRegError() || Register.isRegFlat() || (this.getCurrentIndex() === this.getLastIndex())) { 7851 win.KeyenceForm.AvailableValidator.config.isPressedEnterOnEditProfileForm = true; 7852 7853 if (Form.isEditProfileForm()) { 7854 $('#submit2').trigger('click'); 7855 } else { 7856 $('.' + classNames.btnSubmit).trigger('click'); 7857 } 7858 7859 return false; 7860 } 7861 7862 $currentPanel = $(event.currentTarget).parents('.js-multiStep-target'); 7863 7864 if ($currentPanel.length && $currentPanel.hasClass('is-current')) { 7865 $buttonContinue = $currentPanel.find('.js-regForm-btnNext'); 7866 7867 if ($buttonContinue.length) { 7868 $buttonContinue.trigger('mousedown', true); 7869 } 7870 } 7871 7872 return false; 7873 }; 7874 7875 Register.initAutocompleteAddress = function (isMultiStep) { 7876 Register.getSuggestElements(); 7877 7878 if (!suggestElems.suggestListTemplate) { 7879 return; 7880 } 7881 7882 Register.addEventSuggest(); 7883 Register.setMutationObserver(isMultiStep); 7884 Register.setTargetCountry(); 7885 7886 if (suggestConfig.country 7887 && suggestElems.addressSuggestWrapper 7888 && Register.isSuggestTargetSite()) { 7889 Register.changeAttribute(); 7890 Register.addEventAfterReplace(); 7891 7892 if (isMultiStep) { 7893 Register.setAutoCompleteHideClass(false); 7894 } 7895 } 7896 }; 7897 7898 Register.getSuggestElements = function () { 7899 suggestElems = { 7900 country: doc.getElementById(idNames.country), 7901 addressWrapper: doc.getElementById(idNames.addressWrapper), 7902 address1: doc.getElementById(idNames.address1), 7903 state: doc.getElementById(idNames.state), 7904 city: doc.getElementById(idNames.city), 7905 cityId: doc.getElementById(idNames.cityId), 7906 zipCode: doc.getElementById(idNames.zipCode), 7907 addressSuggestWrapper: doc.getElementById(idNames.addressSuggestWrapper), 7908 addressSuggest: doc.getElementById(idNames.addressSuggest), 7909 suggestListTemplate: doc.getElementById(idNames.suggestListTemplate), 7910 suggestListShowMoreTemplate: doc.getElementById(idNames.suggestListShowMoreTemplate) 7911 }; 7912 }; 7913 7914 Register.addEventSuggest = function () { 7915 var targetParent = null; 7916 7917 doc.addEventListener('click', function (e) { 7918 if (e.target && e.target.classList.contains(classNames.suggestButton)) { 7919 e.preventDefault(); 7920 7921 switch (suggestConfig.currentApi.name) { 7922 case 'postGrid': 7923 Register.setFormPostGridValue(e.target); 7924 break; 7925
7926 case 'juso': 7927 Register.setFormJusoValue(e.target); 7928 break; 7929 7930 default: 7931 return; 7932 } 7933 } 7934 }); 7935 7936 doc.addEventListener('click', function (e) { 7937 if (e.target 7938 && (e.target.classList.contains(classNames.suggestShowMoreButton) 7939 || e.target.closest('.' + classNames.suggestShowMoreButton))) { 7940 e.preventDefault(); 7941 7942 targetParent = e.target.closest('.' + classNames.suggestShowMoreButton); 7943 7944 if (targetParent) { 7945 Register.setFormJusoValue(targetParent); 7946 e.target.parentElement.remove(); 7947 } else { 7948 Register.setFormJusoValue(e.target); 7949 e.target.remove(); 7950 } 7951 } 7952 }); 7953 7954 doc.addEventListener('click', function (e) { 7955 if (e.target !== suggestElems.address1 7956 && suggestElems.addressSuggestWrapper 7957 && (!e.target.classList.contains(classNames.suggestShowMoreButton) 7958 && !e.target.closest('.' + classNames.suggestShowMoreButton))) { 7959 suggestElems.addressSuggestWrapper.classList.add(classNames.isHide); 7960 7961 if (suggestElems.addressSuggest) { 7962 while (suggestElems.addressSuggest.lastChild) { 7963 suggestElems.addressSuggest.removeChild(suggestElems.addressSuggest.lastChild); 7964 } 7965 7966 suggestElems.addressSuggestWrapper.style.height = 'auto'; 7967 } 7968 } 7969 }); 7970 }; 7971 7972 Register.setMutationObserver = function (isMultiStep) { 7973 var target = doc.getElementById(idNames.suzRegArea); 7974 var observer = null; 7975 var observersuggestConfig = { 7976 attributeFilter: ['id'], 7977 childList: true 7978 }; 7979 var $currentPanel = null; 7980 var $panels = null; 7981 var $state = null; 7982 7983 if (!target) { 7984 return; 7985 } 7986 7987 observer = new MutationObserver(function (record) { 7988 if (record[0].target.id === idNames.suzRegArea) { 7989 suggestConfig.country = ''; 7990 googleAutocomplete.triggerField = null; 7991 7992 Register.getSuggestElements(); 7993 Register.getGoogleSuggestElements(); 7994 Register.setTargetCountry(); 7995 Register.removeGoogleSuggestArea(); 7996 7997 if (!suggestConfig.country) { 7998 return; 7999 } 8000 8001 Register.setCurrentApi(); 8002 8003 if (suggestConfig.currentApi.name === 'google' 8004 && googleAutocomplete.config.isRunning) { 8005 googleAutocomplete.currentApiCategory = Register.getGoogleSuggestCategory(); 8006 8007 if (googleAutocomplete.currentApiCategory) { 8008 googleAutocomplete.triggerField = googleAutocomplete.targetElems[googleAutocomplete.currentApiCategory.field]; 8009 8010 if (!googleAutocomplete.config.countryFormatList) { 8011 Register.setCountryFormatList(); 8012 } 8013 8014 $panels = Register.getPanels(); 8015 8016 suggestConfig.isSuggestItemObserverReady = false; 8017 8018 Register.setGoogleAutocompleteApi(); 8019 Register.addGoogleAutocompleteEvent(); 8020 8021 if (suggestConfig.country !== 'TW') { 8022 Register.changeAttribute(); 8023 } 8024 8025 Register.setReplacedElementValue(); 8026 googleAutocomplete.config.isOptionUpdateTriggerField = false; 8027 8028 if ($panels.length) { 8029 $currentPanel = $panels.filter('.' + Form.classNames.isCurrent); 8030 8031 if ($currentPanel.length) { 8032 $state = $currentPanel.find('#' + idNames.state); 8033 } 8034 } 8035 8036 if (isMultiStep && ($state === null || !$state.length)) { 8037 Register.setAutoCompleteHideClass(false); 8038 } 8039 } 8040 } else if (suggestElems.addressSuggestWrapper && Register.isSuggestTargetSite()) { 8041 $panels = Register.getPanels(); 8042 8043 Register.changeAttribute(); 8044 Register.addEventAfterReplace(); 8045 8046 if ($panels.length) { 8047 $currentPanel = $panels.filter('.' + Form.classNames.isCurrent); 8048 8049 if ($currentPanel.length) { 8050 $state = $currentPanel.find('#' + idNames.state); 8051 } 8052 } 8053 8054 if (isMultiStep && ($state === null || !$state.length)) { 8055 Register.setAutoCompleteHideClass(false); 8056 } 8057 } 8058 } 8059 }); 8060 8061 observer.observe(target, observersuggestConfig); 8062 8063 suggestConfig.isSuggestObserverReady = true; 8064 }; 8065 8066 Register.setTargetCountry = function () { 8067 var country = suggestElems.country; 8068 var optionElements = null; 8069 var CountryValue = null; 8070 var targeCountry = ''; 8071 8072 if(!country) { 8073 return; 8074 } 8075 8076 optionElements = country.options; 8077 CountryValue = optionElements[country.selectedIndex].value; 8078 targeCountry = Register.getTargetCountryName(CountryValue); 8079 8080 if (targeCountry) { 8081 suggestConfig.country = targeCountry; 8082 } 8083 }; 8084 8085 Register.getTargetCountryName = function (CountryValue) { 8086 var countryName = ''; 8087 8088 if (!countryArray.length) { 8089 Register.connectCountryArray(); 8090 }; 8091 8092 if (typeof CountryValue === 'string' && CountryValue) { 8093 countryArray.forEach(function (country) { 8094 if (CountryValue === country) { 8095 countryName = country; 8096 } 8097 }); 8098 } 8099 8100 return countryName; 8101 }; 8102 8103 Register.connectCountryArray = function () { 8104 var partialArray = []; 8105
8106 Object.keys(suggestConfig.api).forEach(function (key) { 8107 if (suggestConfig.api[key]) { 8108 if (!partialArray.length) { 8109 partialArray = suggestConfig.api[key].target; 8110 } else { 8111 partialArray = partialArray.concat(suggestConfig.api[key].target); 8112 } 8113 } 8114 }); 8115 8116 countryArray = partialArray; 8117 }; 8118 8119 Register.isSuggestTargetSite = function () { 8120 Register.setCurrentApi(); 8121 8122 if (suggestConfig.country !== 'KR') { 8123 return true; 8124 } else if (win.kpi_siteSettings.siteId === suggestConfig.currentApi.siteId) { 8125 return true; 8126 } 8127 8128 return false; 8129 }; 8130 8131 Register.changeAttribute = function () { 8132 if (googleAutocomplete.triggerField) { 8133 googleAutocomplete.triggerField.setAttribute('autocomplete', 'off'); 8134 8135 if (googleAutocomplete.triggerField === suggestElems.zipCode) { 8136 googleAutocomplete.triggerField.placeholder = ''; 8137 } 8138 } else if (suggestElems.address1 && suggestElems.addressWrapper) { 8139 suggestElems.address1.setAttribute('autocomplete', 'off'); 8140 suggestElems.addressWrapper.style.position = 'relative'; 8141 } 8142 }; 8143 8144 Register.addEventAfterReplace = function () { 8145 if (!suggestElems.address1) { 8146 return; 8147 } 8148 8149 suggestElems.address1.addEventListener('input', Register.setSuggest, false); 8150 }; 8151 8152 Register.setSuggest = function (e) { 8153 var address = e.currentTarget; 8154 var addressWrapper = address.closest('#' + idNames.addressWrapper); 8155 var addressSuggestWrapper = null; 8156 8157 if (e.inputType === 'deleteCompositionText' || e.inputType === 'insertFromComposition') { 8158 return; 8159 } 8160 8161 if (addressWrapper) { 8162 addressSuggestWrapper = addressWrapper.querySelector('#' + idNames.addressSuggestWrapper); 8163 } 8164 8165 if (!address || !addressSuggestWrapper) { 8166 return; 8167 } 8168 8169 if (!suggestConfig.currentApi) { 8170 Register.setCurrentApi(); 8171 } 8172 8173 if (suggestConfig.timer !== null) { 8174 clearTimeout(suggestConfig.timer); 8175 } 8176 8177 suggestConfig.timer = setTimeout(function () { 8178 if (address.value === '') { 8179 addressSuggestWrapper.classList.add(classNames.isHide); 8180 8181 return; 8182 } 8183 8184 switch (suggestConfig.currentApi.name) { 8185 case 'postGrid': 8186 Register.getSuggestPostGridValue(address).then(function (result) { 8187 if (result) { 8188 suggestConfig.currentApi.length = result.data.length; 8189 8190 Register.expandSuggest(address, result); 8191 } 8192 }).catch(function (error) { 8193 if (suggestConfig.isAutoCompleteElementsHide) { 8194 Register.setAutoCompleteHideClass(true); 8195 } 8196 }); 8197 break; 8198 8199 case 'juso': 8200 Register.getSuggestJusoValue(address, 1).then(function (result) { 8201 suggestConfig.currentApi.length = result[0].results.juso.length; 8202 8203 Register.expandSuggest(address, result); 8204 }).catch(function (error) { 8205 if (suggestConfig.isAutoCompleteElementsHide) { 8206 Register.setAutoCompleteHideClass(true); 8207 } 8208 }); 8209 break; 8210 8211 default: 8212 return; 8213 } 8214 }, 200); 8215 }; 8216 8217 Register.setCurrentApi = function () { 8218 suggestConfig.api.forEach(function (item) { 8219 if (item.target) { 8220 if(item.target.indexOf(suggestConfig.country) !== -1) { 8221 suggestConfig.currentApi = item; 8222 } 8223 } 8224 }); 8225 }; 8226 8227 Register.expandSuggest = function (address, result) { 8228 if (result || result.length) { 8229 if (address.value === '') { 8230 return; 8231 } 8232 8233 Register.updateSuggest(result); 8234 Register.showSuggest(); 8235 8236 if (suggestConfig.isAutoCompleteElementsHide) { 8237 Register.setAutoCompleteHideClass(true); 8238 } 8239 } 8240 }; 8241 8242 Register.getSuggestPostGridValue = function (item) { 8243 var api = suggestConfig.currentApi; 8244 var myHeaders = new Headers(); 8245 var controller = new AbortController(); 8246 var requestOptions = { 8247 method: 'GET', 8248 headers: myHeaders, 8249 redirect: 'follow', 8250 signal: controller.signal 8251 }; 8252 var url = api.url; 8253 var partialStreet = ''; 8254 var idInfo = ''; 8255 8256 myHeaders.append('x-api-key', api.key); 8257 8258 if (typeof item === 'object' && item === suggestElems.address1) { 8259 partialStreet = item.value; 8260 8261 if (partialStreet) { 8262 url += '?partialStreet=' + partialStreet + '&countriesFilter=' + suggestConfig.country; 8263 } else { 8264 item.value = ''; 8265 suggestElems.addressSuggestWrapper.classList.add(classNames.isHide); 8266 8267 return; 8268 } 8269 } else if (typeof item === 'object') { 8270 idInfo = item.dataset.idInfo; 8271 8272 if (idInfo) { 8273 url += '?container=' + idInfo + '&advanced=true'; 8274 } else { 8275 return; 8276 } 8277 } 8278 8279 if (suggestConfig.timeOutTimer !== null) { 8280 clearTimeout(suggestConfig.timeOutTimer); 8281 } 8282 8283 suggestConfig.timeOutTimer = setTimeout(function () { 8284 controller.abort(); 8285 }, 10000); 8286 8287 return new Promise(function (resolve, reject) { 8288 fetch(url, requestOptions) 8289 .then(function (result) { 8290 if (!result.ok) { 8291 throw new Error(result.status); 8292 } 8293 8294 return result.json(); 8295 }) 8296 .then(function (result) { 8297 resolve(result); 8298 }) 8299 .catch(function (error) { 8300 reject(error); 8301 }); 8302 }); 8303 }; 8304 8305 Register.getSuggestJusoValue = function (item, currentPageNumber) { 8306 var api = suggestConfig.currentApi; 8307 var searchKeyword = item.value; 8308 var targetCurrentPageNumber = 1 8309 8310 if (currentPageNumber > 1) { 8311 targetCurrentPageNumber = Number(item.dataset.showCount); 8312 searchKeyword = suggestElems.address1.value; 8313 } 8314 8315 return new Promise(function (resolve, reject) { 8316 $.ajax({
8317 url: api.url, 8318 type: 'post', 8319 data: { 8320 keyword: searchKeyword, 8321 resultType: 'json', 8322 currentPage: targetCurrentPageNumber, 8323 countPerPage: 100, 8324 confmKey: api.key, 8325 hstryYn: 'Y' 8326 }, 8327 dataType: 'jsonp', 8328 crossDomain: true, 8329 jsonpCallback: 'callbackAddress', 8330 timeout: 10000 8331 }).done(function (result) { 8332 if (result.results.common.errorCode !== '0') { 8333 reject(result.results.common.errorMessage); 8334 } 8335 8336 resolve([result, targetCurrentPageNumber]); 8337 }).fail(function (errorThrown) { 8338 reject(errorThrown); 8339 }); 8340 }); 8341 }; 8342 8343 Register.updateSuggest = function (result) { 8344 var api = suggestConfig.currentApi; 8345 var fragment = doc.createDocumentFragment(); 8346 var suggestListNodeClone = null; 8347 var id = ''; 8348 var type = ''; 8349 var addressText = ''; 8350 var zipCode = ''; 8351 var address = ''; 8352 var city = ''; 8353 var stateId = ''; 8354 var addressDescription = ''; 8355 var button = null; 8356 var currentPageNumber = 0; 8357 8358 if (result[1]) { 8359 currentPageNumber = result[1]; 8360 8361 if (suggestElems.addressSuggest && currentPageNumber === 1) { 8362 while (suggestElems.addressSuggest.lastChild) { 8363 suggestElems.addressSuggest.removeChild(suggestElems.addressSuggest.lastChild); 8364 } 8365 } 8366 } else { 8367 if (suggestElems.addressSuggest) { 8368 while (suggestElems.addressSuggest.lastChild) { 8369 suggestElems.addressSuggest.removeChild(suggestElems.addressSuggest.lastChild); 8370 } 8371 } 8372 } 8373 8374 switch (api.name) { 8375 case 'postGrid': 8376 result.data.forEach(function (elem) { 8377 suggestListNodeClone = Register.createNodeClone(suggestElems.suggestListTemplate); 8378 button = suggestListNodeClone.querySelector('.' + classNames.suggestButton); 8379 8380 id = elem.id; 8381 type = elem.type; 8382 addressText = elem.text; 8383 addressDescription = elem.description; 8384 8385 if (!button) { 8386 return; 8387 } 8388 8389 if (addressText && addressDescription) { 8390 button.textContent = addressText + ' ' + addressDescription; 8391 } else if (addressText) { 8392 button.textContent = addressText; 8393 } 8394 8395 if (id && type) { 8396 button.dataset.idInfo = id; 8397 button.dataset.typeInfo = type; 8398 } 8399 8400 fragment.appendChild(suggestListNodeClone); 8401 }); 8402 break; 8403 8404 case 'juso': 8405 result[0].results.juso.forEach(function (elem) { 8406 suggestListNodeClone = Register.createNodeClone(suggestElems.suggestListTemplate); 8407 button = suggestListNodeClone.querySelector('.' + classNames.suggestButton); 8408 8409 zipCode = elem.zipNo; 8410 addressText = elem.roadAddr; 8411 8412 if (!button || !addressText) { 8413 return; 8414 } 8415 8416 if (zipCode) { 8417 button.textContent = zipCode + ' ' + addressText; 8418 } else { 8419 button.textContent = addressText; 8420 } 8421 8422 if (suggestElems.city && suggestElems.state) { 8423 city = elem.sggNm; 8424 stateId = elem.siNm; 8425 8426 if (city && stateId) { 8427 address = addressText.replace(`${city} `, '').replace(`${stateId} `, ''); 8428 } else if (city) { 8429 address = addressText.replace(`${city} `, ''); 8430 } else if (stateId) { 8431 address = addressText.replace(`${stateId} `, ''); 8432 } 8433 } 8434 8435 if (address) { 8436 button.dataset.address = address; 8437 } else { 8438 button.dataset.address = addressText; 8439 } 8440 8441 if (zipCode) {
8442 button.dataset.zipcode = zipCode; 8443 } 8444 8445 if (city) { 8446 button.dataset.city = city; 8447 } 8448 8449 if (stateId) { 8450 button.dataset.stateId = stateId; 8451 } 8452 8453 fragment.appendChild(suggestListNodeClone); 8454 }); 8455 8456 Register.setShowMoreButton(fragment, api, currentPageNumber); 8457 break; 8458 8459 default: 8460 return; 8461 } 8462 8463 suggestElems.addressSuggest.append(fragment); 8464 }; 8465 8466 Register.setShowMoreButton = function (fragment, api, currentPageNumber) { 8467 var suggestListNodeClone = null; 8468 var button = null; 8469 8470 if (!suggestElems.suggestListShowMoreTemplate) { 8471 return; 8472 } 8473 8474 if ((api.maxLength > 0) 8475 && (api.length === api.maxLength)) { 8476 suggestListNodeClone = Register.createNodeClone(suggestElems.suggestListShowMoreTemplate); 8477 button = suggestListNodeClone.querySelector('.' + classNames.suggestShowMoreButton); 8478 button.dataset.showCount = currentPageNumber + 1; 8479 8480 fragment.appendChild(suggestListNodeClone); 8481 } 8482 }; 8483 8484 Register.showSuggest = function () { 8485 var suggestHeight = 0; 8486 8487 if (suggestConfig.currentApi.length > 0) { 8488 suggestElems.addressSuggestWrapper.style.height = 'auto'; 8489 suggestElems.addressSuggestWrapper.style.bottom = null; 8490 suggestElems.addressSuggestWrapper.classList.remove(classNames.isHide); 8491 suggestHeight = suggestElems.addressSuggestWrapper.offsetHeight; 8492 suggestHeight += suggestElems.addressSuggestWrapper.marginTop; 8493 8494 if (suggestHeight >= 300) { 8495 suggestElems.addressSuggestWrapper.style.height = '300px'; 8496 suggestElems.addressSuggestWrapper.style.bottom = '-300px'; 8497 } else { 8498 suggestElems.addressSuggestWrapper.style.height = 'auto'; 8499 suggestElems.addressSuggestWrapper.style.bottom = (suggestHeight * -1) + 'px'; 8500 } 8501 } else { 8502 suggestElems.addressSuggestWrapper.classList.add(classNames.isHide); 8503 } 8504 }; 8505 8506 Register.setFormPostGridValue = function (item) { 8507 var api = suggestConfig.currentApi; 8508 var myHeaders = new Headers(); 8509 var urlEncoded = new URLSearchParams(); 8510 var controller = new AbortController(); 8511 var requestOptions = { 8512 method: 'POST', 8513 headers: myHeaders, 8514 body: urlEncoded, 8515 redirect: 'follow', 8516 signal: controller.signal 8517 }; 8518 var url = api.url; 8519 var idInfo = ''; 8520 var line1 = ''; 8521 var line2 = ''; 8522 var line3 = ''; 8523 var line4 = ''; 8524 var city = ''; 8525 var province = ''; 8526 var provinceState = ''; 8527 var pc = ''; 8528 var address = ''; 8529 8530 if (!item) { 8531 return; 8532 } 8533 8534 if (item.dataset.typeInfo !== 'Address') { 8535 Register.getSuggestPostGridValue(item).then(function (result) { 8536 if (result) { 8537 api.length = result.data.length; 8538 8539 Register.updateSuggest(result); 8540 Register.showSuggest(); 8541 } 8542 }); 8543 8544 return; 8545 } 8546 8547 idInfo = item.dataset.idInfo; 8548 8549 if (idInfo) { 8550 urlEncoded.append('id', idInfo); 8551 } else { 8552 return; 8553 } 8554 8555 myHeaders.append('x-api-key', api.key); 8556 8557 if (suggestConfig.timeOutTimer !== null) { 8558 clearTimeout(suggestConfig.timeOutTimer); 8559 } 8560 8561 suggestConfig.timeOutTimer = setTimeout(function () { 8562 controller.abort(); 8563 }, 10000); 8564 8565 fetch(url, requestOptions) 8566 .then(function (result) { 8567 if (!result.ok) { 8568 throw new Error(); 8569 } 8570 8571 return result.json(); 8572 }) 8573 .then(function (result) { 8574 line1 = result.data.line1;
8575 line2 = result.data.line2; 8576 line3 = result.data.line3; 8577 line4 = result.data.line4; 8578 city = result.data.city; 8579 province = result.data.provinceCode; 8580 provinceState = result.data.provinceOrState; 8581 pc = result.data.postalOrZip; 8582 8583 if (line1 && line2 && line3 && line4) { 8584 address = line1 + ' ' + line2 + ' ' + line3 + ' ' + line4; 8585 } else if (line1 && line2 && line3) { 8586 address = line1 + ' ' + line2 + ' ' + line3; 8587 } else if (line1 && line2) { 8588 address = line1 + ' ' + line2; 8589 } else if (line1) { 8590 address = line1; 8591 } 8592 8593 if (address) { 8594 suggestConfig.hasAddressValue = true; 8595 8596 Register.inputValue(suggestElems.address1, address); 8597 } 8598 8599 if (city) { 8600 Register.inputValue(suggestElems.city, city); 8601 } 8602 8603 if (pc) { 8604 if (suggestConfig.country === 'US' && pc.length !== 5) { 8605 pc = pc.substring(0, pc.indexOf('-')); 8606 } 8607 8608 Register.inputValue(suggestElems.zipCode, pc); 8609 } 8610 8611 if (province) { 8612 if (suggestConfig.country === 'IE' && provinceState) { 8613 Register.inputValue(suggestElems.state, provinceState, false); 8614 8615 suggestConfig.hasAddressValue = false; 8616 8617 return; 8618 } 8619 8620 Register.inputValue(suggestElems.state, province, true); 8621 } else if (provinceState) { 8622 Register.inputValue(suggestElems.state, provinceState, false); 8623 } 8624 8625 suggestConfig.hasAddressValue = false; 8626 }) 8627 .catch(function (error) { 8628 suggestElems.addressSuggestWrapper.classList.add(classNames.isHide); 8629 }); 8630 }; 8631 8632 Register.setFormJusoValue = function (item) { 8633 var address = ''; 8634 var zipCode = ''; 8635 var city = ''; 8636 var stateId = ''; 8637 8638 if (!item) { 8639 return; 8640 } 8641 8642 if (item.dataset.showCount) {
8643 this.getSuggestJusoValue(item, item.dataset.showCount).then(function (result) { 8644 suggestConfig.currentApi.length = result[0].results.juso.length; 8645 8646 Register.updateSuggest(result); 8647 Register.showSuggest(); 8648 }); 8649 8650 return; 8651 } 8652 8653 address = item.dataset.address; 8654 zipCode = item.dataset.zipcode; 8655 city = item.dataset.city; 8656 stateId = item.dataset.stateId; 8657 8658 if (address) { 8659 suggestConfig.hasAddressValue = true; 8660 8661 this.inputValue(suggestElems.address1, address); 8662 } 8663 8664 if (zipCode) { 8665 this.inputValue(suggestElems.zipCode, zipCode); 8666 } 8667 8668 if (city) { 8669 this.inputValue(suggestElems.city, city); 8670 } 8671 8672 if (stateId) { 8673 this.inputValue(suggestElems.state, stateId); 8674 } 8675 }; 8676 8677 Register.inputValue = function (field, value, isStateCode) { 8678 var selector = null; 8679 var i = 0; 8680 8681 if ((typeof field !== 'object' || !field) && suggestConfig.hasAddressValue) { 8682 Register.updateAddressValue(value); 8683 8684 return; 8685 } else if ((typeof field !== 'object' || !field) && !suggestConfig.hasAddressValue) { 8686 return; 8687 } 8688 8689 if (field === suggestElems.state) { 8690 if (isStateCode) { 8691 selector = field.querySelector('option[value="' + value + '"]'); 8692 8693 if (selector) { 8694 selector.selected = true; 8695 Register.clearInputError(field); 8696 } 8697 } else { 8698 selector = field.options; 8699 8700 for (i = 0; i < selector.length; i++) { 8701 if (selector[i].text === value) { 8702 selector[i].selected = true; 8703 Register.clearInputError(field); 8704 8705 break; 8706 } 8707 } 8708 } 8709 } else { 8710 field.value = value; 8711 Register.clearInputError(field); 8712 8713 if (field.classList.contains(win.KeyenceForm.PatternMatchValidator.classNames.replaceValueTrigger)) { 8714 win.KeyenceForm.PatternMatchValidator.updateFieldStatus(field); 8715 8716 if (!field.classList.contains(win.KeyenceForm.PatternMatchValidator.classNames.status)) { 8717 win.suz_callRegValidator(field.name, field.value); 8718 } 8719 } else { 8720 win.suz_callRegValidator(field.name, field.value); 8721 } 8722 } 8723 8724 suggestElems.addressSuggestWrapper.classList.add(classNames.isHide); 8725 }; 8726 8727 Register.updateAddressValue = function (value) { 8728 var addressValue = suggestElems.address1.value; 8729 8730 addressValue += ', ' + value; 8731 suggestElems.address1.value = addressValue; 8732 8733 win.suz_callRegValidator(suggestElems.address1.name, addressValue); 8734 }; 8735 8736 Register.createNodeClone = function (template) { 8737 return doc.importNode(template.content, true); 8738 }; 8739 8740 Register.clearInputError = function (field) { 8741 var fieldWrapper = null; 8742 var errorElem = null; 8743 8744 if (typeof field !== 'object' || !field) { 8745 return; 8746 } 8747 8748 fieldWrapper = field.closest('.' + classNames.inputWrapper); 8749 8750 if (fieldWrapper) { 8751 fieldWrapper.classList.remove(classNames.isError); 8752 errorElem = fieldWrapper.querySelector('.' + classNames.errorText); 8753 } 8754 8755 if (errorElem) { 8756 errorElem.style.display = 'none'; 8757 } 8758 }; 8759 8760 Register.setAutoCompleteHideClass = function (isHide) { 8761 var targets = { 8762 address1: suggestElems.address1, 8763 city: suggestElems.city, 8764 state: suggestElems.state, 8765 zipCode: suggestElems.zipCode 8766 } 8767 var targetWrapper = null; 8768 8769 if (isHide) { 8770 if (!suggestConfig.isAutoCompleteElementsHide) { 8771 return; 8772 } 8773 } 8774 8775 if (suggestConfig.currentApi.name === 'google' 8776 && !googleAutocomplete.triggerField) { 8777 return; 8778 } 8779 8780 if (suggestConfig.currentApi.name !== 'google') { 8781 delete targets.address1; 8782 } 8783 8784 if (suggestConfig.country === 'TW') { 8785 targets.cityId = suggestElems.cityId; 8786 } 8787
8788 Object.keys(targets).forEach(function (key) { 8789 if (targets[key]) { 8790 if (suggestConfig.currentApi.name === 'google' 8791 && targets[key] === googleAutocomplete.triggerField) { 8792 return; 8793 } 8794 8795 targetWrapper = targets[key].closest('.prd-inputGroup'); 8796 8797 if (targetWrapper) { 8798 Register.updateClass(targetWrapper, isHide); 8799 } 8800 } 8801 }); 8802 }; 8803 8804 Register.updateClass = function (target, isHide) { 8805 if (isHide) { 8806 target.classList.remove(classNames.isAutoCompleteElementHide); 8807 suggestConfig.isAutoCompleteElementsHide = false; 8808 } else { 8809 target.classList.add(classNames.isAutoCompleteElementHide); 8810 suggestConfig.isAutoCompleteElementsHide = true; 8811 } 8812 }; 8813 8814 Register.setGoogleAutocomplete = function () { 8815 var scriptElement = doc.createElement('script'); 8816 8817 Register.addLanguageQuery(); 8818 8819 scriptElement.src = googleAutocomplete.config.url; 8820 scriptElement.async = true; 8821 8822 doc.head.appendChild(scriptElement); 8823 8824 win.initGoogleAutocompleteAddress = function () { 8825 googleAutocomplete.config.isRunning = true; 8826 8827 Register.addAutocompleteRunningData(); 8828 Register.getGoogleSuggestElements(); 8829 Register.setCurrentApi(); 8830 8831 if (!suggestConfig.country) { 8832 Register.setTargetCountry(); 8833 } 8834 8835 if (!suggestConfig.isSuggestObserverReady) { 8836 Register.setMutationObserver(suggestConfig.isMultiStep); 8837 } 8838 8839 if (suggestConfig.country 8840 && suggestConfig.currentApi.name === 'google') { 8841 googleAutocomplete.currentApiCategory = Register.getGoogleSuggestCategory(); 8842 8843 if (googleAutocomplete.currentApiCategory) { 8844 googleAutocomplete.triggerField = googleAutocomplete.targetElems[googleAutocomplete.currentApiCategory.field]; 8845 8846 if (!googleAutocomplete.config.countryFormatList) { 8847 Register.setCountryFormatList(); 8848 } 8849 8850 Register.removeGoogleSuggestArea(); 8851 Register.changeAttribute(); 8852 Register.setGoogleAutocompleteApi(); 8853 Register.addGoogleAutocompleteEvent(); 8854 } 8855 8856 if (suggestConfig.isMultiStep) { 8857 Register.setAutoCompleteHideClass(false); 8858 } 8859 } 8860 }; 8861 }; 8862 8863 Register.addLanguageQuery = function () { 8864 var siteId = win.kpi_siteSettings.siteId; 8865 8866 if (siteId === Form.siteData.KW.id) { 8867 googleAutocomplete.config.url = googleAutocomplete.config.url + '&language=zh-TW'; 8868 } else if (siteId === Form.siteData.KIN.id) { 8869 googleAutocomplete.config.url = googleAutocomplete.config.url + '&language=en-GB'; 8870 } 8871 }; 8872 8873 Register.addAutocompleteRunningData = function () { 8874 var registerWrapper = null; 8875 8876 registerWrapper = doc.getElementById('js-multiStepForm-registration'); 8877 8878 if (registerWrapper) { 8879 registerWrapper.dataset.googleAutocompleteForVwo = true; 8880 } 8881 }; 8882 8883 Register.getGoogleSuggestElements = function () { 8884 googleAutocomplete.targetElems = { 8885 address1: doc.getElementById(idNames.address1), 8886 state: doc.getElementById(idNames.state), 8887 city: doc.getElementById(idNames.city), 8888 cityId: doc.getElementById(idNames.cityId), 8889 zipCode: doc.getElementById(idNames.zipCode), 8890 company: doc.getElementById(idNames.company) 8891 } 8892 }; 8893 8894 Register.getGoogleSuggestCategory = function () { 8895 var category = null; 8896
8897 Object.keys(googleAutocomplete.category).forEach(function (key) { 8898 if (googleAutocomplete.category[key]) { 8899 if (googleAutocomplete.category[key].target.indexOf(suggestConfig.country) !== -1) { 8900 category = googleAutocomplete.category[key]; 8901 } 8902 } 8903 }); 8904 8905 return category; 8906 }; 8907 8908 Register.setCountryFormatList = function () { 8909 googleAutocomplete.config.countryFormatList = { 8910 MX: { 8911 isAddressSortRequired: false, 8912 notAutoCompleteField: ['cityId', 'company'], 8913 addressInputTarget: 'address1', 8914 hasMultiCountry: false, 8915 subpremise: ['totalValue', ', ', 'long_name'], 8916 streetNumber: ['long_name', ', ', 'totalValue'], 8917 route: ['long_name', ' ', 'totalValue'], 8918 neighborhood: ['totalValue', ', ', 'long_name'], 8919 sublocalityLevel1: ['totalValue', ', ', 'long_name'], 8920 postalCode: ['long_name', 'totalValue'], 8921 postalCodeSuffix: ['totalValue', '-', 'long_name'], 8922 locality: { 8923 type: function (targetField) { 8924 return targetField.tagName.toLowerCase(); 8925 }, 8926 target: 'city', 8927 name: 'long_name' 8928 }, 8929 administrativeAreaLevel1: { 8930 type: function (targetField) { 8931 return targetField.tagName.toLowerCase(); 8932 }, 8933 target: 'state', 8934 name: 'long_name' 8935 } 8936 }, 8937 BR: { 8938 isAddressSortRequired: false, 8939 notAutoCompleteField: ['cityId', 'company'], 8940 addressInputTarget: 'address1', 8941 hasMultiCountry: false, 8942 subpremise: ['totalValue', ', ', 'long_name'], 8943 streetNumber: ['long_name', 'totalValue'], 8944 route: ['long_name', ' ', 'totalValue'], 8945 neighborhood: ['totalValue', ', ', 'long_name'], 8946 sublocalityLevel1:['totalValue', ' - ', 'long_name'], 8947 postalCode: ['long_name', 'totalValue'], 8948 postalCodeSuffix: ['totalValue', '-', 'long_name'], 8949 administrativeAreaLevel2: { 8950 type: function (targetField) { 8951 return targetField.tagName.toLowerCase(); 8952 }, 8953 target: 'city', 8954 name: 'long_name' 8955 }, 8956 administrativeAreaLevel1: { 8957 type: function (targetField) { 8958 return targetField.tagName.toLowerCase(); 8959 }, 8960 target: 'state', 8961 name: 'short_name' 8962 }, 8963 custom: { 8964 zipCode: { 8965 replaceValue: function (zipCode) { 8966 return zipCode.replace('-', ''); 8967 } 8968 } 8969 } 8970 }, 8971 BE: { 8972 isAddressSortRequired: false, 8973 notAutoCompleteField: ['cityId', 'company'], 8974 addressInputTarget: 'address1', 8975 hasMultiCountry: true, 8976 subpremise: ['totalValue', ', ', 'long_name'], 8977 streetNumber: ['long_name', 'totalValue'], 8978 route: ['long_name', ' ', 'totalValue'], 8979 neighborhood: ['totalValue', ', ', 'long_name'], 8980 locality: { 8981 type: function (targetField) { 8982 return targetField.tagName.toLowerCase(); 8983 }, 8984 target: 'city', 8985 name: 'long_name', 8986 country: ['BE', 'NL', 'CH', 'AT', 'PL', 'HU', 'SK', 'RO'] 8987 }, 8988 postalCode: ['long_name', 'totalValue'], 8989 postalCodeSuffix: ['totalValue', '-', 'long_name'], 8990 administrativeAreaLevel1: { 8991 type: function (targetField) { 8992 return targetField.tagName.toLowerCase(); 8993 }, 8994 target: 'city', 8995 name: 'long_name', 8996 country: ['SI'] 8997 }, 8998 sublocalityLevel1: { 8999 type: function (targetField) { 9000 return targetField.tagName.toLowerCase(); 9001 }, 9002 target: 'city', 9003 name: 'long_name', 9004 country: ['CZ'] 9005 }, 9006 allCountry: ['BE', 'NL', 'CH', 'AT', 'PL', 'HU', 'SK', 'RO', 'SI', 'CZ'] 9007 }, 9008 IN: { 9009 isAddressSortRequired: false, 9010 notAutoCompleteField: ['address1', 'cityId', 'company'], 9011 hasMultiCountry: false, 9012 postalCode: ['long_name', 'totalValue'], 9013 postalCodeSuffix: ['totalValue', '-', 'long_name'], 9014 locality: { 9015 type: function (targetField) { 9016 return targetField.tagName.toLowerCase(); 9017 }, 9018 target: 'city', 9019 name: 'long_name' 9020 }, 9021 administrativeAreaLevel1: { 9022 type: function (targetField) { 9023 return targetField.tagName.toLowerCase(); 9024 }, 9025 target: 'state', 9026 name: 'custom', 9027 parts: ['IN:', 'long_name_upperCase'] 9028 } 9029 }, 9030 FR: { 9031 isAddressSortRequired: false, 9032 notAutoCompleteField: ['cityId', 'company'], 9033 addressInputTarget: 'address1', 9034 hasMultiCountry: false, 9035 subpremise: ['totalValue', ', ', 'long_name'], 9036 streetNumber: ['long_name', 'totalValue'], 9037 route: ['totalValue', ' ', 'long_name'], 9038 neighborhood: ['totalValue', ', ', 'long_name'], 9039 sublocalityLevel1:['totalValue', ', ', 'long_name'], 9040 postalCode: ['long_name', 'totalValue'], 9041 postalCodeSuffix: ['totalValue', '-', 'long_name'], 9042 locality: { 9043 type: function (targetField) { 9044 return targetField.tagName.toLowerCase(); 9045 }, 9046 target: 'city', 9047 name: 'long_name' 9048 } 9049 }, 9050 IT: { 9051 isAddressSortRequired: true, 9052 notAutoCompleteField: ['cityId'], 9053 addressInputTarget: 'address1', 9054 hasMultiCountry: false, 9055 streetNumber: ['long_name', 'totalValue'], 9056 route: ['long_name', ' ', 'totalValue'], 9057 postalCode: ['long_name', 'totalValue'], 9058 administrativeAreaLevel2: { 9059 type: function (targetField) { 9060 return targetField.tagName.toLowerCase(); 9061 }, 9062 target: 'state', 9063 name: 'short_name' 9064 }, 9065 administrativeAreaLevel3: { 9066 type: function (targetField) { 9067 return targetField.tagName.toLowerCase(); 9068 }, 9069 target: 'city', 9070 name: 'long_name' 9071 }, 9072 addressOrder: { 9073 street_number: { 9074 isValue: false, 9075 value: '', 9076 getReorderedValue: function (totalValue, apiValue, orderObject) { 9077 if (orderObject.route.value) { 9078 return orderObject.route.value + ' ' + apiValue; 9079 } else if (orderObject.route.isValue) { 9080 orderObject.street_number.value = apiValue; 9081 9082 return totalValue; 9083 } else if (totalValue) { 9084 return totalValue + ' ' + apiValue; 9085 } 9086 9087 return apiValue; 9088 } 9089 }, 9090 route: { 9091 isValue: false, 9092 value: '', 9093 getReorderedValue: function (totalValue, apiValue, orderObject) { 9094 if (orderObject.street_number.value) { 9095 return apiValue + ' ' + orderObject.street_number.value; 9096 } else if (orderObject.street_number.isValue) { 9097 orderObject.route.value = apiValue; 9098 9099 return totalValue; 9100 } else if (totalValue) { 9101 return apiValue + ' ' + totalValue; 9102 } 9103 9104 return apiValue; 9105 } 9106 } 9107 }, 9108 custom: { 9109 company: 'getSelectedSuggestText' 9110 } 9111 }, 9112 TW: { 9113 isAddressSortRequired: true, 9114 notAutoCompleteField: [], 9115 addressInputTarget: 'address1', 9116 hasMultiCountry: false, 9117 optionUpdateTriggerName: 'state', 9118 optionUpdateTriggerId: 'suz_stateID', 9119 subpremise: ['totalValue', ', ', 'long_name'], 9120 streetNumber: ['totalValue', 'long_name'], 9121 route: ['long_name', 'totalValue'], 9122 sublocalityLevel2: ['totalValue', ', ', 'long_name'], 9123 postalCode: ['long_name', 'totalValue'], 9124 postalCodeSuffix: ['totalValue', '-', 'long_name'], 9125 administrativeAreaLevel1: { 9126 type: function (targetField) { 9127 return targetField.tagName.toLowerCase(); 9128 }, 9129 target: 'state', 9130 optionUpdateTriggerId: 'state', 9131 name: 'replace', 9132 parts: ['long_name'], 9133 replaceValue: function (apiValue) { 9134 if (apiValue.indexOf('èº') !== -1) { 9135 return apiValue.replace('èº', 'å°'); 9136 } 9137 9138 return apiValue; 9139 } 9140 }, 9141 administrativeAreaLevel2: { 9142 type: function (targetField) { 9143 return targetField.tagName.toLowerCase(); 9144 }, 9145 target: 'state', 9146 subTarget: 'cityId', 9147 optionUpdateTriggerId: 'state', 9148 tempValue: { 9149 target: 'cityId', 9150 strageLocation: 'cityLevel2' 9151 }, 9152 name: 'replace', 9153 parts: ['long_name'], 9154 replaceValue: function (apiValue) { 9155 if (apiValue.indexOf('èº') !== -1) { 9156 return apiValue.replace('èº', 'å°'); 9157 } 9158 9159 return apiValue; 9160 } 9161 }, 9162 administrativeAreaLevel3: { 9163 type: function (targetField) { 9164 return targetField.tagName.toLowerCase(); 9165 }, 9166 target: 'cityId', 9167 tempValue: { 9168 target: 'cityId', 9169 strageLocation: 'cityLevel3' 9170 }, 9171 name: 'long_name' 9172 }, 9173 addressOrder: { 9174 subpremise: { 9175 isValue: false, 9176 value: '', 9177 getReorderedValue: function (totalValue, apiValue, orderObject) { 9178 if (orderObject.street_number.isValue) { 9179 orderObject.subpremise.value = apiValue; 9180 9181 return totalValue; 9182 } else { 9183 if (totalValue === '') { 9184 return apiValue; 9185 } else { 9186 return totalValue + ', ' + apiValue; 9187 } 9188 } 9189 } 9190 }, 9191 street_number: { 9192 isValue: false, 9193 value: '', 9194 getReorderedValue: function (totalValue, apiValue, orderObject) { 9195 if (orderObject.subpremise.value) { 9196 if (totalValue === '') { 9197 return apiValue + orderObject.subpremise.value; 9198 } else { 9199 return totalValue + apiValue + orderObject.subpremise.value; 9200 } 9201 } else { 9202 if (totalValue === '') { 9203 return apiValue; 9204 } else { 9205 return totalValue + apiValue; 9206 } 9207 } 9208 } 9209 } 9210
9210 }, 9211 replaceName: { 9212 target: 'cityId', 9213 replaceValue: function (value) { 9214 if (value.indexOf('åº') !== -1) { 9215 return value.replace('åº', 'å'); 9216 } 9217 9218 return value; 9219 } 9220 } 9221 }, 9222 SG: { 9223 isAddressSortRequired: true, 9224 notAutoCompleteField: ['cityId', 'company'], 9225 addressInputTarget: 'address1', 9226 hasMultiCountry: false, 9227 subpremise: ['totalValue', ', ', 'long_name'], 9228 streetNumber: ['long_name'], 9229 route: ['totalValue', ' ', 'long_name'], 9230 sublocalityLevel1: ['totalValue', ', ', 'long_name'], 9231 postalCode: ['long_name', 'totalValue'], 9232 postalCodeSuffix: ['totalValue', '-', 'long_name'], 9233 sublocalityLevel2: ['totalValue', ', ', 'long_name'], 9234 addressOrder: { 9235 street_number: { 9236 isValue: false, 9237 value: '', 9238 getReorderedValue: function (totalValue, apiValue, orderObject) { 9239 if (orderObject.route.isValue) { 9240 orderObject.street_number.value = apiValue; 9241 9242 return totalValue; 9243 } else { 9244 if (totalValue === '') { 9245 return apiValue; 9246 } else { 9247 return apiValue + ', ' + totalValue; 9248 } 9249 } 9250 } 9251 }, 9252 route: { 9253 isValue: false, 9254 value: '', 9255 getReorderedValue: function (totalValue, apiValue, orderObject) { 9256 if (orderObject.street_number.value) { 9257 if (totalValue === '') { 9258 return orderObject.street_number.value + ' ' + apiValue; 9259 } else { 9260 return orderObject.street_number.value + ' ' + apiValue + ', ' + totalValue; 9261 } 9262 } else { 9263 if (totalValue === '') { 9264 return apiValue; 9265 } else { 9266 return apiValue + ', ' + totalValue; 9267 } 9268 } 9269 } 9270 }, 9271 }, 9272 }, 9273 MY: { 9274 isAddressSortRequired: false, 9275 notAutoCompleteField: ['cityId', 'company'], 9276 addressInputTarget: 'address1', 9277 hasMultiCountry: false, 9278 subpremise: ['long_name', ', ', 'totalValue'], 9279 streetNumber: ['totalValue', ', ', 'long_name'], 9280 route: ['totalValue', ', ', 'long_name'], 9281 neighborhood: ['totalValue', ', ', 'long_name'], 9282 sublocalityLevel1: ['totalValue', ', ', 'long_name'], 9283 postalCode: ['long_name', 'totalValue'], 9284 postalCodeSuffix: ['totalValue', '-', 'long_name'], 9285 locality: { 9286 type: function (targetField) { 9287 return targetField.tagName.toLowerCase(); 9288 }, 9289 target: 'city', 9290 name: 'long_name' 9291 }, 9292 administrativeAreaLevel1: { 9293 type: function (targetField) { 9294 return targetField.tagName.toLowerCase(); 9295 }, 9296 target: 'state', 9297 name: 'custom', 9298 parts: ['MY:', 'long_name'] 9299 }, 9300 sublocalityLevel2: ['totalValue', ', ', 'long_name'], 9301 }, 9302 ID: { 9303 isAddressSortRequired: true, 9304 notAutoCompleteField: ['cityId', 'company'], 9305 addressInputTarget: 'address1', 9306 hasMultiCountry: false, 9307 subpremise: ['long_name', ', ', 'totalValue'], 9308 streetNumber: ['long_name'], 9309 route: ['totalValue', ', ', 'long_name'], 9310 neighborhood: ['totalValue', ', ', 'long_name'], 9311 sublocalityLevel1: ['totalValue', ', ', 'long_name'], 9312 postalCode: ['long_name', 'totalValue'], 9313 postalCodeSuffix: ['totalValue', '-', 'long_name'], 9314 administrativeAreaLevel2: { 9315 type: function (targetField) { 9316 return targetField.tagName.toLowerCase(); 9317 }, 9318 target: 'city', 9319 name: 'long_name' 9320 }, 9321 administrativeAreaLevel3: ['totalValue', ', ', 'long_name'], 9322 administrativeAreaLevel4: ['totalValue', ', ', 'long_name'], 9323 sublocalityLevel2: ['totalValue', ', ', 'long_name'], 9324 administrativeAreaLevel6: ['totalValue', ', ', 'long_name'], 9325 administrativeAreaLevel7: ['totalValue', '/', 'long_name'], 9326 addressOrder: { 9327 subpremise: { 9328 isValue: false, 9329 value: '', 9330 getReorderedValue: function (totalValue, apiValue, orderObject) { 9331 if (orderObject.route.isValue) { 9332 orderObject.subpremise.value = apiValue; 9333 9334 return totalValue; 9335 } else { 9336 if (totalValue === '') { 9337 return apiValue; 9338 } else { 9339 return totalValue + ', ' + apiValue; 9340 } 9341 } 9342 } 9343 }, 9344 street_number: { 9345 isValue: false, 9346 value: '', 9347 getReorderedValue: function (totalValue, apiValue, orderObject) { 9348 if (orderObject.route.isValue) { 9349 orderObject.street_number.value = apiValue; 9350 9351 return totalValue; 9352 } else { 9353 if (totalValue === '') { 9354 return apiValue; 9355 } else { 9356 return totalValue + ', ' + apiValue; 9357 } 9358 } 9359 } 9360 }, 9361 route: { 9362 isValue: false, 9363 value: '', 9364 getReorderedValue: function (totalValue, apiValue, orderObject) { 9365 if (orderObject.street_number.value 9366 && orderObject.subpremise.value 9367 ) { 9368 if (totalValue === '') { 9369 return apiValue + ', ' + orderObject.street_number.value + ', ' + orderObject.subpremise.value; 9370 } else { 9371 return totalValue + ', ' + apiValue + ', ' + orderObject.street_number.value + ', ' + orderObject.subpremise.value; 9372 } 9373 } else if (orderObject.street_number.value) { 9374 if (totalValue === '') { 9375 return apiValue + ', ' + orderObject.street_number.value; 9376 } else { 9377 return totalValue + ', ' + apiValue + ', ' + orderObject.street_number.value; 9378 } 9379 } else if (orderObject.subpremise.value) { 9380 if (totalValue === '') { 9381 return apiValue + ', ' + orderObject.subpremise.value; 9382 } else { 9383 return totalValue + ', ' + apiValue + ', ' + orderObject.subpremise.value; 9384 } 9385 } else { 9386 if (totalValue === '') { 9387 return apiValue; 9388 } else { 9389 return totalValue + ', ' + apiValue; 9390 } 9391 } 9392 } 9393 }, 9394 administrative_area_level_7: { 9395 isValue: false, 9396 value: '', 9397 getReorderedValue: function (totalValue, apiValue, orderObject) { 9398 if (orderObject.administrative_area_level_6.isValue) { 9399 orderObject.administrative_area_level_7.value = apiValue; 9400 9401 return totalValue; 9402 } else { 9403 if (totalValue === '') { 9404 return apiValue; 9405 } else { 9406 return totalValue + ', ' + apiValue; 9407 } 9408 } 9409 } 9410 }, 9411 administrative_area_level_6: { 9412 isValue: false, 9413 value: '', 9414 getReorderedValue: function (totalValue, apiValue, orderObject) { 9415 if (orderObject.administrative_area_level_7.value) { 9416 if (totalValue === '') { 9417 return orderObject.administrative_area_level_7.value + '/' + apiValue; 9418 } else { 9419 return totalValue + ', ' + orderObject.administrative_area_level_7.value + '/' + apiValue; 9420 } 9421 } else { 9422 if (totalValue === '') { 9423 return apiValue; 9424 } else { 9425 return totalValue + ', ' + apiValue; 9426 } 9427 } 9428 } 9429 }, 9430 } 9431 }, 9432 DE: { 9433 isAddressSortRequired: true, 9434 notAutoCompleteField: ['cityId'], 9435 addressInputTarget: 'address1', 9436 hasMultiCountry: false, 9437 streetNumber: ['totalValue', 'long_name'], 9438 route: ['long_name', 'totalValue'], 9439 postalCode: ['long_name'], 9440 locality: { 9441 type: function (targetField) { 9442 return targetField.tagName.toLowerCase(); 9443 }, 9444 target: 'city', 9445 name: 'long_name' 9446 }, 9447 addressOrder: { 9448 street_number: { 9449 isValue: false, 9450 value: '', 9451 getReorderedValue: function (totalValue, apiValue, orderObject) { 9452 if (orderObject.route.value) { 9453 return orderObject.route.value + ' ' + apiValue; 9454 } else if (orderObject.route.isValue) { 9455 orderObject.street_number.value = apiValue; 9456 9457 return totalValue; 9458 } else if (totalValue) { 9459 return totalValue + ' ' + apiValue; 9460 } 9461 9462 return apiValue; 9463 } 9464 }, 9465 route: { 9466 isValue: false, 9467 value: '', 9468 getReorderedValue: function (totalValue, apiValue, orderObject) { 9469 if (orderObject.street_number.value) { 9470 return apiValue + ' ' + orderObject.street_number.value; 9471 } else if (orderObject.street_number.isValue) { 9472 orderObject.route.value = apiValue; 9473 9474 return totalValue; 9475 } else if (totalValue) { 9476 return apiValue + ' ' + totalValue; 9477 } 9478 9479 return apiValue; 9480 } 9481 } 9482 }, 9483 custom: { 9484 company: 'getSelectedSuggestText' 9485 } 9486 }, 9487 GB: { 9488 isAddressSortRequired: false, 9489 notAutoCompleteField: ['cityId'], 9490 addressInputTarget: 'address1', 9491 hasMultiCountry: false, 9492 postalCode: ['long_name'], 9493 postalTown: { 9494 type: function (targetField) { 9495 return targetField.tagName.toLowerCase(); 9496 }, 9497 target: 'city', 9498 name: 'long_name' 9499 }, 9500 custom: { 9501 address: { 9502 functionName: 'getConfirmedAddr
9502essValue', 9503 target: 'city' 9504 } 9505 } 9506 }, 9507 IE: { 9508 isAddressSortRequired: false, 9509 notAutoCompleteField: ['cityId'], 9510 addressInputTarget: 'address1', 9511 hasMultiCountry: false, 9512 postalCode: ['long_name'], 9513 locality: { 9514 type: function (targetField) { 9515 return targetField.tagName.toLowerCase(); 9516 }, 9517 target: 'city', 9518 name: 'long_name' 9519 }, 9520 postalTown: { 9521 type: function (targetField) { 9522 return targetField.tagName.toLowerCase(); 9523 }, 9524 target: 'city', 9525 name: 'long_name' 9526 }, 9527 administrativeAreaLevel1: { 9528 type: function (targetField) { 9529 return targetField.tagName.toLowerCase(); 9530 }, 9531 target: 'state', 9532 name: 'replace', 9533 parts: ['long_name'], 9534 replaceValue: function (apiValue) { 9535 var spritApiValue = apiValue.split(' '); 9536 9537 if (!spritApiValue[1]) { 9538 return apiValue; 9539 } 9540 9541 return spritApiValue[1]; 9542 } 9543 }, 9544 priorityOrder: { 9545 locality: { 9546 getPriorityValue: function (apiValue, priorityOrderObject, dataName) { 9547 if (!priorityOrderObject.priorityInputValue || dataName === priorityOrderObject.priorityComponentType) { 9548 return apiValue; 9549 } else { 9550 return priorityOrderObject.priorityInputValue; 9551 } 9552 } 9553 }, 9554 postal_town: { 9555 getPriorityValue: function (apiValue, priorityOrderObject, dataName) { 9556 if (!priorityOrderObject.priorityInputValue || dataName === priorityOrderObject.priorityComponentType) { 9557 return apiValue; 9558 } else { 9559 return priorityOrderObject.priorityInputValue; 9560 } 9561 } 9562 }, 9563 priorityComponentType: 'locality', 9564 priorityInputValue: '', 9565 target: 'city' 9566 }, 9567 custom: { 9568 address: { 9569 functionName: 'getConfirmedAddressValue', 9570 target: 'city' 9571 } 9572 } 9573 } 9574 } 9575 }; 9576 9577 Register.setGoogleAutocompleteApi = function () { 9578 if (!googleAutocomplete.triggerField 9579 || !googleAutocomplete.currentApiCategory.fieldArray.length 9580 || !googleAutocomplete.currentApiCategory.typeArray.length) { 9581 return; 9582 } 9583 9584 googleAutocomplete.api = new google.maps.places.Autocomplete(googleAutocomplete.triggerField, { 9585 componentRestrictions: { 9586 country: ['' + suggestConfig.country.toLowerCase() + ''], 9587 }, 9588 fields: googleAutocomplete.currentApiCategory.fieldArray, 9589 types: googleAutocomplete.currentApiCategory.typeArray 9590 }); 9591 }; 9592 9593 Register.addGoogleAutocompleteEvent = function () { 9594 if (googleAutocomplete.api) { 9595 googleAutocomplete.api.addListener("place_changed", this.setAutocompleteValue.bind(this)); 9596 } 9597 9598 if (googleAutocomplete.triggerField) { 9599 googleAutocomplete.triggerField.addEventListener('blur', this.showAutocompleteTargetField.bind(this), false); 9600 googleAutocomplete.triggerField.addEventListener('focus', this.setSuggestItemMutationObserver.bind(this), false); 9601 9602 if (!googleAutocomplete.config.isSuggestItemEventReady) { 9603 doc.addEventListener('mousedown', this.setSelectedSuggestMainText.bind(this), false); 9604 doc.addEventListener('touchend', this.setSelectedSuggestMainText.bind(this), false); 9605 9606 googleAutocomplete.config.isSuggestItemEventReady = true; 9607 } 9608 } 9609 }; 9610 9611 Register.setAutocompleteValue = function () { 9612 var placeObject = googleAutocomplete.api.getPlace(); 9613 var countryFormatList = googleAutocomplete.config.countryFormatList; 9614 var addressTotalValue = ''; 9615 var zipCodeTotalValue = ''; 9616 var addressValue = ''; 9617 var zipCodeValue = ''; 9618 var component = null; 9619 var componentType = null; 9620 var currentCountryObject = null; 9621 var addressInputTarget = null; 9622 var zipCodeInputTarget = null; 9623 var companyInputTarget = null; 9624 var priorityValueInputTarget = null; 9625 var ControlErrorDisplay = KeyenceForm.ControlErrorDisplay; 9626 9627 Register.suggestConfig.isCurrentSuggestItem = false; 9628 Register.googleAutocomplete.config.isMatchedTempValueTrigger = false; 9629 9630 if (!placeObject || placeObject.address_components === undefined) { 9631 return; 9632 } 9633 9634 if (!placeObject.address_components.length) { 9635 return; 9636 } 9637 9638 if (Register.checkBelgiumGroup(countryFormatList)) { 9639 currentCountryObject = countryFormatList.BE; 9640 } else { 9641 currentCountryObject = countryFormatList[suggestConfig.country]; 9642 } 9643 9644 Register.initAutocompleteFieldValue(currentCountryObject); 9645 Register.checkSortOrderItem(currentCountryObject, placeObject.address_components); 9646 9647 if (currentCountryObject.optionUpdateTriggerName) { 9648 Register.googleAutocomplete.config.isOptionUpdateTriggerField = true; 9649 } 9650 9651 for (component of placeObject.address_components) { 9652 componentType = component.types[0]; 9653 9654 switch (componentType) { 9655 case "subpremise": { 9656 addressValue = addressTotalValue; 9657 9658 addressTotalValue = Register.getPartialValue(addressValue, currentCountryObject.subpremise, component.long_name, 'subpremise',
9658currentCountryObject); 9659 9660 break; 9661 } 9662 9663 case "street_number": { 9664 addressValue = addressTotalValue; 9665 9666 addressTotalValue = Register.getPartialValue(addressValue, currentCountryObject.streetNumber, component.long_name, 'street_number', currentCountryObject); 9667 9668 break; 9669 } 9670 9671 case "route": { 9672 addressValue = addressTotalValue; 9673 9674 addressTotalValue = Register.getPartialValue(addressValue, currentCountryObject.route, component.long_name, 'route', currentCountryObject); 9675 9676 break; 9677 } 9678 9679 case "neighborhood": { 9680 addressValue = addressTotalValue; 9681 9682 addressTotalValue = Register.getPartialValue(addressValue, currentCountryObject.neighborhood, component.long_name, 'neighborhood', currentCountryObject); 9683 9684 break; 9685 } 9686 9687 case "postal_code": { 9688 zipCodeValue = zipCodeTotalValue; 9689 9690 zipCodeTotalValue = Register.getPartialValue(zipCodeValue, currentCountryObject.postalCode, component.long_name, 'postal_code', currentCountryObject); 9691 9692 break; 9693 } 9694 9695 case "postal_code_suffix": { 9696 zipCodeValue = zipCodeTotalValue; 9697 9698 zipCodeTotalValue = Register.getPartialValue(zipCodeValue, currentCountryObject.postalCodeSuffix, component.long_name, 'postal_code_suffix', currentCountryObject); 9699 9700 break; 9701 } 9702 9703 case "locality": { 9704 var itemObject = currentCountryObject.locality; 9705 9706 if (!itemObject) { 9707 break; 9708 } 9709 9710 if (Array.isArray(itemObject)) { 9711 addressValue = addressTotalValue; 9712 9713 addressTotalValue = Register.getPartialValue(addressValue, itemObject, component.long_name, 'locality', currentCountryObject); 9714 } else { 9715 if (currentCountryObject.hasMultiCountry) { 9716 if (itemObject.country.indexOf(suggestConfig.country) === -1) { 9717 break; 9718 } 9719 } 9720 9721 Register.inputApiValue(itemObject, component.long_name, component.short_name, 'locality', currentCountryObject); 9722 } 9723 9724 break; 9725 } 9726 9727 case "sublocality_level_1": { 9728 var itemObject = currentCountryObject.sublocalityLevel1; 9729 9730 if (!itemObject) { 9731 break; 9732 } 9733 9734 if (Array.isArray(itemObject)) { 9735 addressValue = addressTotalValue; 9736 9737 addressTotalValue = Register.getPartialValue(addressValue, itemObject, component.long_name, 'sublocality_level_1', currentCountryObject); 9738 } else { 9739 if (currentCountryObject.hasMultiCountry) { 9740 if (itemObject.country.indexOf(suggestConfig.country) === -1) { 9741 break; 9742 } 9743 } 9744 9745 Register.inputApiValue(itemObject, component.long_name, component.short_name, 'sublocality_level_1', currentCountryObject); 9746 } 9747 9748 break; 9749 } 9750 9751 case "sublocality_level_2": { 9752 var itemObject = currentCountryObject.sublocalityLevel2; 9753 9754 if (!itemObject) { 9755 break; 9756 } 9757 9758 if (Array.isArray(itemObject)) { 9759 addressValue = addressTotalValue; 9760 9761 addressTotalValue = Register.getPartialValue(addressValue, itemObject, component.long_name, 'sublocality_level_2', currentCountryObject); 9762 } else { 9763 if (currentCountryObject.hasMultiCountry) { 9764 if (itemObject.country.indexOf(suggestConfig.country) === -1) { 9765 break; 9766 } 9767 } 9768 9769 Register.inputApiValue(itemObject, component.long_name, component.short_name, 'sublocality_level_2', currentCountryObject); 9770 } 9771 9772 break; 9773 } 9774 9775 case "administrative_area_level_1": { 9776 var itemObject = currentCountryObject.administrativeAreaLevel1; 9777 9778 if (!itemObject) { 9779 break; 9780 } 9781 9782 if (Array.isArray(itemObject)) { 9783 addressValue = addressTotalValue; 9784 9785 addressTotalValue = Register.getPartialValue(addressValue, itemObject, component.long_name, 'administrative_area_level_1', currentCountryObject); 9786 } else { 9787 if (currentCountryObject.hasMultiCountry) { 9788 if (itemObject.country.indexOf(suggestConfig.country) === -1) { 9789 break; 9790 } 9791 } 9792 9793 Register.inputApiValue(itemObject, component.long_name, component.short_name, 'administrative_area_level_1', currentCountryObject); 9794 } 9795 9796 break; 9797 } 9798 9799 case "administrative_area_level_2": { 9800 var itemObject = currentCountryObject.administrativeAreaLevel2; 9801 9802 if (!itemObject) { 9803 break; 9804 } 9805 9806 if (Array.isArray(itemObject)) { 9807 addressValue = addressTotalValue; 9808 9809 addressTotalValue = Register.getPartialValue(addressValue, itemObject, component.long_name, 'administrative_area_level_2', currentCountryObject); 9810 } else { 9811 if (currentCountryObject.hasMultiCountry) { 9812 if (itemObject.country.indexOf(suggestConfig.country) === -1) { 9813 break; 9814 } 9815 } 9816 9817 Register.inputApiValue(itemObject, component.long_name, component.short_name, 'administrative_area_level_2', currentCountryObject); 9818 } 9819 9820 break; 9821 } 9822 9823 case "administrative_area_level_3": { 9824 var itemObject = currentCountryObject.administrativeAreaLevel3; 9825 9826 if (!itemObject) { 9827 break; 9828 } 9829 9830 if (Array.isArray(itemObject)) { 9831 addressValue = addressTotalValue; 9832 9833 addressTotalValue = Register.getPartialValue(addressValue, itemObject, component.long_name, 'administrative_area_level_3', currentCountryObject); 9834 } else { 9835 if (currentCountryObject.hasMultiCountry) { 9836 if (itemObject.country.indexOf(suggestConfig.country) === -1) { 9837 break; 9838 } 9839 } 9840 9841 Register.inputApiValue(itemObject, component.long_name, component.short_name, 'administrative_area_level_3', currentCountryObject); 9842 } 9843 9844 break; 9845 } 9846 9847 case "administrative_area_level_4": { 9848 var itemObject = currentCountryObject.administrativeAreaLevel4; 9849 9850 if (!itemObject) { 9851 break; 9852 } 9853 9854 if (Array.isArray(itemObject)) { 9855 addressValue = addressTotalValue; 9856 9857 addressTotalValue = Register.getPartialValue(addressValue, itemObject, component.long_name, 'administrative_area_level_4', currentCountryObject); 9858 } else { 9859 if (currentCountryObject.hasMultiCountry) { 9860 if (itemObject.country.indexOf(suggestConfig.country) === -1) { 9861 break; 9862 } 9863 } 9864 9865 Register.inputApiValue(itemObject, component.long_name, component.short_name, 'administrative_area_level_4', currentCountryObject); 9866 } 9867 9868 break; 9869 } 9870 9871 case "administrative_area_level_6": { 9872 addressValue = addressTotalValue; 9873 9874 addressTotalValue = Register.getPartialValue(addressValue, currentCountryObject.administrativeAreaLevel6, component.long_name, 'administrative_area_level_6', currentCountryObject); 9875 9876 break; 9877 } 9878 9879 case "administrative_area_level_7": { 9880 addressValue = addressTotalValue; 9881 9882 addressTotalValue = Register.getPartialValue(addressValue, currentCountryObject.administrativeAreaLevel7, component.long_name, 'administrative_area_level_7', currentCountryObject); 9883 9884 break; 9885 } 9886 9887 case "postal_town": { 9888 var itemObject = currentCountryObject.postalTown; 9889 9890 if (!itemObject) { 9891 break; 9892 } 9893 9894 if (Array.isArray(itemObject)) { 9895 addressValue = addressTotalValue; 9896 9897 addressTotalValue = Register.getPartialValue(addressValue, itemObject, component.long_name, 'postal_town', currentCountryObject); 9898 } else { 9899 if (currentCountryObject.hasMultiCountry) { 9900 if (itemObject.country.indexOf(suggestConfig.country) === -1) { 9901 break; 9902 } 9903 } 9904 9905 Register.inputApiValue(itemObject, component.long_name, component.short_name, 'postal_town', currentCountryObject); 9906 } 9907 9908 break; 9909 } 9910 } 9911 } 9912 9913 if (currentCountryObject.custom) { 9914 if (currentCountryObject.custom.address && currentCountryObject.custom.address.functionName === 'getConfirmedAddressValue') { 9915 if (currentCountryObject.priorityOrder) { 9916 addressTotalValue = Register.getConfirmedAddressValue(placeObject, currentCountryObject.priorityOrder.priorityInputValue); 9917 } else if (googleAutocomplete.targetElems[currentCountryObject.custom.address.target]) { 9918 addressTotalValue = Register.getConfirmedAddressValue(placeObject, googleAutocomplete.targetElems[currentCountryObject.custom.address.target].value); 9919 } 9920 } else if (addressTotalValue && currentCountryObject.custom.address) { 9921 addressValue = addressTotalValue; 9922 addressTotalValue = currentCountryObject.custom.address.replaceValue(addressValue); 9923 } 9924 9925 if (zipCodeTotalValue && currentCountryObject.custom.zipCode) { 9926 zipCodeValue = zipCodeTotalValue; 9927 zipCodeTotalValue = currentCountryObject.custom.zipCode.replaceValue(zipCodeValue); 9928 } 9929 } 9930 9931 if (googleAutocomplete.config.isMatchedTempValueTrigger) { 9932 if (googleAutocomplete.currentApiCategory.name === 'company') { 9933 if (currentCountryObject.custom && 9934 currentCountryObject.custom.company === 'getSelectedSuggestText') { 9935 googleAutocomplete.config.tempInputValue.company = Register.getSelectedSuggestText(placeObject.name); 9936 } else if (placeObject.name) { 9937 googleAutocomplete.config.tempInputValue.company = placeObject.name; 9938 } 9939 } 9940 9941 if (addressTotalValue) { 9942 googleAutocomplete.config.tempInputValue[currentCountryObject.addressInputTarget] = addressTotalValue; 9943 } 9944 9945 if (zipCodeTotalValue) { 9946 googleAutocomplete.config.tempInputValue.zipcode = zipCodeTotalValue; 9947 } 9948 9949 if (currentCountryObject.priorityOrder && 9950 currentCountryObject.priorityOrder.priorityInputValue) { 9951 googleAutocomplete.config.tempInputValue[currentCountryObject.priorityOrder.target] = currentCountryObject.priorityOrder.priorityInputValue; 9952 } 9953 9954 $('#' + currentCountryObject.optionUpdateTriggerId).trigger('change'); 9955 } else { 9956 if (googleAutocomplete.currentApiCategory.name === 'company') { 9957 companyInputTarget = googleAutocomplete.targetElems.company; 9958 } 9959 9960 if (companyInputTarget) { 9961 if (currentCountryObject.custom && 9962 currentCountryObject.custom.company === 'getSelectedSuggestText') { 9963 companyInputTarget.value = Register.getSelectedSuggestText(placeObject.name); 9964 } else if (placeObject.name) { 9965 companyInputTarget.value = placeObject.name; 9966 } 9967 9968 if (ControlErrorDisplay.isTriggerClicked(companyInputTarget)) { 9969 Register.clearInputError(companyInputTarget); 9970 } 9971 9972 win.suz_callRegValidator(companyInputTarget.name, companyInputTarget.value); 9973 } 9974 9975 if (addressTotalValue) { 9976 addressInputTarget = googleAutocomplete.targetElems[currentCountryObject.addressInputTarget]; 9977 9978 if (addressInputTarget) { 9979 addressInputTarget.value = addressTotalValue; 9980 9981 if (ControlErrorDisplay.isTriggerClicked(addressInputTarget)) { 9982 Register.clearInputError(addressInputTarget); 9983 } 9984 9985
9985 win.suz_callRegValidator(addressInputTarget.name, addressInputTarget.value); 9986 } 9987 } 9988 9989 if (zipCodeTotalValue) { 9990 zipCodeInputTarget = googleAutocomplete.targetElems.zipCode; 9991 9992 if (zipCodeInputTarget) { 9993 zipCodeInputTarget.value = zipCodeTotalValue; 9994 9995 if (ControlErrorDisplay.isTriggerClicked(zipCodeInputTarget)) { 9996 Register.clearInputError(zipCodeInputTarget); 9997 } 9998 9999 win.suz_callRegValidator(zipCodeInputTarget.name, zipCodeInputTarget.value); 10000 } 10001 } 10002 10003 if (currentCountryObject.priorityOrder) { 10004 priorityValueInputTarget = googleAutocomplete.targetElems[currentCountryObject.priorityOrder.target]; 10005 10006 if (priorityValueInputTarget) { 10007 priorityValueInputTarget.value = currentCountryObject.priorityOrder.priorityInputValue; 10008 10009 if (ControlErrorDisplay.isTriggerClicked(priorityValueInputTarget)) { 10010 Register.clearInputError(priorityValueInputTarget); 10011 } 10012 10013 win.suz_callRegValidator(priorityValueInputTarget.name, priorityValueInputTarget.value); 10014 currentCountryObject.priorityOrder.priorityInputValue = ''; 10015 } 10016 } 10017 } 10018 10019 Register.googleAutocomplete.selectedSuggestItem = null; 10020 Register.googleAutocomplete.config.selectedSuggestMainText = ''; 10021 Register.initOrderAddressList(currentCountryObject.addressOrder); 10022 }; 10023 10024 Register.getConfirmedAddressValue = function (placeObject, targetValue) { 10025 var sameValueCount = 0; 10026 var formattedAddressPartialValue = ''; 10027 var formattedAddress = placeObject.formatted_address; 10028 10029 if (formattedAddress && targetValue) { 10030 sameValueCount = formattedAddress.split(targetValue).length - 1; 10031 10032 if (sameValueCount >= 1) { 10033 formattedAddressPartialValue = Register.getFormattedAddressPartialValue(formattedAddress, targetValue); 10034 10035 return formattedAddressPartialValue; 10036 } 10037 10038 return formattedAddress; 10039 } 10040 10041 return formattedAddressPartialValue; 10042 }; 10043 10044 Register.getFormattedAddressPartialValue = function (formatted_address, targetValue) { 10045 var lastIndex = formatted_address.lastIndexOf(targetValue); 10046 var textBeforeLastTarget = ''; 10047 10048 if (lastIndex === -1) { 10049 return formatted_address; 10050 } 10051 10052 textBeforeLastTarget = formatted_address.slice(0, lastIndex); 10053 10054 return textBeforeLastTarget.replace(/[ ,\.]+$/, ''); 10055 }; 10056 10057 Register.getPartialValue = function (totalValue, countryFormat, apiValue, dataName, currentCountryObject) { 10058 var itemValue = ''; 10059 10060 if ((typeof countryFormat !== 'object' || !countryFormat) 10061 || (typeof apiValue !== 'string' || !apiValue)) { 10062 return totalValue; 10063 } 10064 10065 if (currentCountryObject.addressOrder) { 10066 if (currentCountryObject.addressOrder[dataName]) { 10067 return currentCountryObject.addressOrder[dataName].getReorderedValue(totalValue, apiValue, currentCountryObject.addressOrder); 10068 } 10069 } 10070 10071 if (totalValue === '') { 10072 return apiValue; 10073 } 10074 10075 countryFormat.forEach(function (text) { 10076 if (text === 'totalValue') { 10077 itemValue += totalValue; 10078 } else if (text === 'long_name') { 10079 itemValue += apiValue; 10080 } else { 10081 itemValue += text; 10082 } 10083 }); 10084 10085 return itemValue; 10086 }; 10087 10088 Register.inputApiValue = function (countryFormat, apiLongV
10088alue, apiShortValue, dataName, currentCountryObject) { 10089 var selector = null; 10090 var targetField = null; 10091 var optionValue = ''; 10092 var valueType = ''; 10093 var ControlErrorDisplay = KeyenceForm.ControlErrorDisplay; 10094 10095 if ((typeof countryFormat !== 'object' || !countryFormat) 10096 || (!apiLongValue || !apiShortValue)) { 10097 return; 10098 } 10099 10100 targetField = googleAutocomplete.targetElems[countryFormat.target]; 10101 10102 if (countryFormat.type(targetField) === 'input') { 10103 if (dataName && 10104 currentCountryObject && 10105 currentCountryObject.priorityOrder && 10106 currentCountryObject.priorityOrder[dataName]) { 10107 currentCountryObject.priorityOrder.priorityInputValue = currentCountryObject.priorityOrder[dataName].getPriorityValue(apiLongValue, currentCountryObject.priorityOrder, dataName); 10108 } else if (countryFormat.name === 'long_name') { 10109 if (countryFormat.tempValue) { 10110 if (countryFormat.tempValue.target === countryFormat.target) { 10111 googleAutocomplete.config.tempInputValue[countryFormat.tempValue.strageLocation] = apiLongValue; 10112 10113 return; 10114 } 10115 } 10116 10117 Register.inputApiTextValue(targetField, apiLongValue); 10118 } else { 10119 if (countryFormat.tempValue) { 10120 if (countryFormat.tempValue.target === countryFormat.target) { 10121 googleAutocomplete.config.tempInputValue[countryFormat.tempValue.strageLocation] = apiShortValue; 10122 10123 return; 10124 } 10125 } 10126 10127 Register.inputApiTextValue(targetField, apiShortValue); 10128 } 10129 } else if (countryFormat.type(targetField) === 'select') { 10130 selector = targetField.options; 10131 10132 if (countryFormat.name === 'custom') { 10133 countryFormat.parts.forEach(function (part) { 10134 if (part === 'long_name') { 10135 optionValue += apiLongValue; 10136 } else if (part === 'short_name') { 10137 optionValue += apiShortValue; 10138 } else if (part === 'long_name_upperCase') { 10139 optionValue += apiLongValue.toUpperCase(); 10140 } else { 10141 optionValue += part; 10142 } 10143 }); 10144 10145 if (countryFormat.tempValue) { 10146 if (countryFormat.optionUpdateTriggerId === countryFormat.target 10147 && googleAutocomplete.config.isMatchedTempValueTrigger) { 10148 return; 10149 } 10150 10151 if (countryFormat.tempValue.target === countryFormat.target) { 10152 googleAutocomplete.config.tempInputValue[countryFormat.tempValue.strageLocation] = optionValue; 10153 return; 10154 } 10155 } 10156 10157 for (i = 0; i < selector.length; i++) { 10158 if (selector[i].value === optionValue) { 10159 selector[i].selected = true; 10160 10161 if (ControlErrorDisplay.isTriggerClicked(targetField)) { 10162 Register.clearInputError(targetField); 10163 } 10164 10165 win.suz_callRegValidator(targetField.name, selector[i].value); 10166
10167 if (countryFormat.optionUpdateTriggerId === countryFormat.target) { 10168 googleAutocomplete.config.isMatchedTempValueTrigger = true; 10169 } 10170 10171 return; 10172 } 10173 } 10174 10175 if (!googleAutocomplete.config.isMatchedTempValueTrigger) { 10176 if (countryFormat.tempValue) { 10177 if (countryFormat.tempValue.target === countryFormat.subTarget 10178 && !googleAutocomplete.config.isMatchedTempValueTrigger) { 10179 googleAutocomplete.config.tempInputValue[countryFormat.tempValue.strageLocation] = optionValue; 10180 10181 return; 10182 } 10183 } 10184 } 10185 } else if (countryFormat.name === 'replace') { 10186 if (typeof countryFormat.replaceValue !== 'function') { 10187 return; 10188 } 10189 10190 countryFormat.parts.forEach(function (part) { 10191 if (part === 'long_name') { 10192 valueType += apiLongValue; 10193 } else if (part === 'short_name') { 10194 valueType += apiShortValue; 10195 } else if (part === 'long_name_upperCase') { 10196 valueType += apiLongValue.toUpperCase(); 10197 } else { 10198 valueType += part; 10199 } 10200 }); 10201 10202 optionValue = countryFormat.replaceValue(valueType); 10203 10204 if (countryFormat.tempValue) { 10205 if (countryFormat.optionUpdateTriggerId === countryFormat.target 10206 && googleAutocomplete.config.isMatchedTempValueTrigger) { 10207 return true; 10208 } 10209 10210 if (countryFormat.tempValue.target === countryFormat.target) { 10211 googleAutocomplete.config.tempInputValue[countryFormat.tempValue.strageLocation] = optionValue; 10212 return; 10213 } 10214 } 10215 10216 for (i = 0; i < selector.length; i++) { 10217 if (selector[i].value === optionValue) { 10218 selector[i].selected = true; 10219 10220 if (ControlErrorDisplay.isTriggerClicked(targetField)) { 10221 Register.clearInputError(targetField); 10222 } 10223 10224 win.suz_callRegValidator(targetField.name, selector[i].value); 10225 10226 if (countryFormat.optionUpdateTriggerId === countryFormat.target) { 10227 googleAutocomplete.config.isMatchedTempValueTrigger = true; 10228 } 10229 10230 return; 10231 } 10232 } 10233 10234 for (i = 0; i < selector.length; i++) { 10235 if (selector[i].text === optionValue) { 10236 selector[i].selected = true; 10237 10238 if (ControlErrorDisplay.isTriggerClicked(targetField)) { 10239 Register.clearInputError(targetField); 10240 } 10241 10242 win.suz_callRegValidator(targetField.name, selector[i].value); 10243 10244 if (countryFormat.optionUpdateTriggerId === countryFormat.target) { 10245 googleAutocomplete.config.isMatchedTempValueTrigger = true; 10246 } 10247 10248 return; 10249 } 10250 } 10251 10252 if (!googleAutocomplete.config.isMatchedTempValueTrigger) { 10253 if (countryFormat.tempValue) { 10254 if (countryFormat.tempValue.target === countryFormat.subTarget
10255 && !googleAutocomplete.config.isMatchedTempValueTrigger) { 10256 googleAutocomplete.config.tempInputValue[countryFormat.tempValue.strageLocation] = optionValue; 10257 10258 return; 10259 } 10260 } 10261 } 10262 } else if (countryFormat.name === 'long_name') { 10263 if (countryFormat.tempValue) { 10264 if (countryFormat.optionUpdateTriggerId === countryFormat.target 10265 && googleAutocomplete.config.isMatchedTempValueTrigger) { 10266 return; 10267 } 10268 10269 if (countryFormat.tempValue.target === countryFormat.target) { 10270 googleAutocomplete.config.tempInputValue[countryFormat.tempValue.strageLocation] = apiLongValue; 10271 return; 10272 } 10273 } 10274 10275 for (i = 0; i < selector.length; i++) { 10276 if (selector[i].text === apiLongValue) { 10277 selector[i].selected = true; 10278 10279 if (ControlErrorDisplay.isTriggerClicked(targetField)) { 10280 Register.clearInputError(targetField); 10281 } 10282 10283 win.suz_callRegValidator(targetField.name, selector[i].value); 10284 10285 if (countryFormat.optionUpdateTriggerId === countryFormat.target) { 10286 googleAutocomplete.config.isMatchedTempValueTrigger = true; 10287 } 10288 10289 return; 10290 } 10291 } 10292 10293 if (!googleAutocomplete.config.isMatchedTempValueTrigger) { 10294 if (countryFormat.tempValue) { 10295 if (countryFormat.tempValue.target === countryFormat.subTarget 10296 && !googleAutocomplete.config.isMatchedTempValueTrigger) { 10297 googleAutocomplete.config.tempInputValue[countryFormat.tempValue.strageLocation] = apiLongValue; 10298 10299 return; 10300 } 10301 } 10302 } 10303 } else if (countryFormat.name === 'short_name') { 10304 if (countryFormat.tempValue) { 10305 if (countryFormat.optionUpdateTriggerId === countryFormat.target 10306 && googleAutocomplete.config.isMatchedTempValueTrigger) { 10307 return; 10308 } 10309 10310 if (countryFormat.tempValue.target === countryFormat.target) { 10311 googleAutocomplete.config.tempInputValue[countryFormat.tempValue.strageLocation] = apiShortValue; 10312 return; 10313 } 10314 } 10315 10316 for (i = 0; i < selector.length; i++) { 10317 if (selector[i].value === apiShortValue) { 10318 selector[i].selected = true; 10319 10320 if (ControlErrorDisplay.isTriggerClicked(targetField)) { 10321 Register.clearInputError(targetField); 10322 } 10323 10324 win.suz_callRegValidator(targetField.name, selector[i].value); 10325 10326 if (countryFormat.optionUpdateTriggerId === countryFormat.target) { 10327 googleAutocomplete.config.isMatchedTempValueTrigger = true; 10328 } 10329 10330 return; 10331 } 10332 } 10333 10334 if (!googleAutocomplete.config.isMatchedTempValueTrigger) { 10335 if (countryFormat.tempValue) { 10336 if (countryFormat.tempValue.target === countryFormat.subTarget
10337 && !googleAutocomplete.config.isMatchedTempValueTrigger) { 10338 googleAutocomplete.config.tempInputValue[countryFormat.tempValue.strageLocation] = apiShortValue; 10339 10340 return; 10341 } 10342 } 10343 } 10344 } 10345 } 10346 }; 10347 10348 Register.inputApiTextValue = function (Field, value) { 10349 Field.value = value; 10350 10351 if (KeyenceForm.ControlErrorDisplay.isTriggerClicked(Field)) { 10352 Register.clearInputError(Field); 10353 } 10354 10355 win.suz_callRegValidator(Field.name, Field.value); 10356 }; 10357 10358 Register.initAutocompleteFieldValue = function (currentCountryObject) { 10359 var targets = googleAutocomplete.targetElems; 10360 var i = 0; 10361 10362 Object.keys(targets).forEach(function (key) { 10363 if (!targets[key] 10364 || targets[key] === googleAutocomplete.triggerField) { 10365 return; 10366 } 10367 10368 if (currentCountryObject.notAutoCompleteField.length) { 10369 for (i = 0; i < currentCountryObject.notAutoCompleteField.length; i++) { 10370 if (currentCountryObject.notAutoCompleteField[i] === key) { 10371 return; 10372 } 10373 } 10374 } 10375 10376 if (targets[key].tagName.toLowerCase() === 'select') { 10377 targets[key].options[0].selected = true; 10378 } else { 10379 targets[key].value = ''; 10380 } 10381 }); 10382 }; 10383 10384 Register.checkBelgiumGroup = function (countryFormatList) { 10385 if (countryFormatList.BE.allCountry.indexOf(suggestConfig.country) !== -1) { 10386 return true; 10387 } 10388 10389 return false; 10390 }; 10391 10392 Register.removeGoogleSuggestArea = function () { 10393 var suggestArea = doc.querySelector('.' + googleAutocomplete.classNames.suggestWrpper); 10394 10395 if (suggestArea) { 10396 suggestArea.remove(); 10397 } 10398 }; 10399 10400 Register.showAutocompleteTargetField = function () { 10401 if (suggestConfig.isAutoCompleteElementsHide 10402 && googleAutocomplete.triggerField.value !== '') { 10403 Register.setAutoCompleteHideClass(true); 10404 } 10405 }; 10406 10407 Register.setSuggestItemMutationObserver = function () { 10408 var target = null; 10409 var observer = null; 10410 var observersuggestConfig = { 10411 attributeFilter: ['class'], 10412 subtree: true 10413 }; 10414 var selectedItem = null; 10415 10416 if (suggestConfig.isSuggestItemObserverReady) { 10417 return; 10418 } 10419 10420 target = doc.querySelector('.' + googleAutocomplete.classNames.suggestWrpper); 10421 10422 if (!target) { 10423 return; 10424 } 10425 10426 observer = new MutationObserver(function () { 10427 selectedItem = target.querySelector('.' + Register.googleAutocomplete.classNames.selectedSuggestItem); 10428 10429 if (selectedItem) { 10430 Register.suggestConfig.isCurrentSuggestItem = true; 10431 Register.googleAutocomplete.selectedSuggestItem = selectedItem; 10432 } else { 10433 if (Register.suggestConfig.isCurrentSuggestItem 10434 && Register.googleAutocomplete.triggerField === doc.activeElement) { 10435 return; 10436 } 10437 10438 Register.suggestConfig.isCurrentSuggestItem = false; 10439 } 10440 }); 10441 10442 observer.observe(target, observersuggestConfig); 10443
10444 suggestConfig.isSuggestItemObserverReady = true; 10445 }; 10446 10447 Register.setSelectedSuggestMainText = function (event) { 10448 var MainTextWrapper = null; 10449 var suggestClassList = googleAutocomplete.classNames; 10450 10451 if (!event.target 10452 || (event.type === 'touchend' && isScrolling) 10453 || (event.type === 'mousedown' && event.which !== EVENT_TYPE.CLICK_LEFT) 10454 ) { 10455 return; 10456 } 10457 10458 if (event.target.classList.contains(suggestClassList.suggestItem)) { 10459 MainTextWrapper = event.target.querySelector('.' + suggestClassList.suggestMainText); 10460 } else if (event.target.closest('.' + suggestClassList.suggestItem)) { 10461 MainTextWrapper = event.target.closest('.' + suggestClassList.suggestItem).querySelector('.' + suggestClassList.suggestMainText); 10462 } 10463 10464 if (MainTextWrapper) { 10465 googleAutocomplete.config.selectedSuggestMainText = MainTextWrapper.innerText; 10466 } 10467 }; 10468 10469 Register.setReplacedElementValue = function () { 10470 var currentFormatList = googleAutocomplete.config.countryFormatList[suggestConfig.country]; 10471 var triggerFieldName = null; 10472 10473 if (!currentFormatList) { 10474 return; 10475 } 10476 10477 triggerFieldName = currentFormatList.optionUpdateTriggerName; 10478 10479 if (!triggerFieldName 10480 || !googleAutocomplete.targetElems[triggerFieldName] 10481 || googleAutocomplete.targetElems[triggerFieldName].value === '00' 10482 || !googleAutocomplete.config.isOptionUpdateTriggerField) { 10483 return; 10484 } 10485 10486 this.setValueReplacedField(); 10487 }; 10488 10489 Register.setValueReplacedField = function () { 10490 var suggestElements = googleAutocomplete.targetElems; 10491 var currentCountryObject = googleAutocomplete.config.countryFormatList[suggestConfig.country]; 10492 var tempValue = googleAutocomplete.config.tempInputValue; 10493 var citySelector = null; 10494 var isMatchCity = false; 10495 10496 if (suggestElements.company && tempValue.company) { 10497 suggestElements.company.value = tempValue.company; 10498 win.suz_callRegValidator(suggestElements.company.name, suggestElements.company.value); 10499 } 10500 10501 if (suggestElements.address1 && tempValue.address1) { 10502 suggestElements.address1.value = tempValue.address1; 10503 win.suz_callRegValidator(suggestElements.address1.name, suggestElements.address1.value); 10504 } 10505 10506 if (suggestElements.zipCode && tempValue.zipcode) { 10507 suggestElements.zipCode.value = tempValue.zipcode; 10508 win.suz_callRegValidator(suggestElements.zipCode.name, suggestElements.zipCode.value); 10509 } 10510 10511 if (suggestElements.cityId) { 10512 citySelector = suggestElements.cityId.options; 10513 10514 if (tempValue.cityLevel2) { 10515 if (currentCountryObject.replaceName.target === 'cityId') { 10516 tempValue.cityLevel2 = currentCountryObject.replaceName.replaceValue(tempValue.cityLevel2); 10517 } 10518 10519 for (i = 0; i < citySelector.length; i++) { 10520 if (citySelector[i].text === tempValue.cityLevel2) { 10521 citySelector[i].selected = true; 10522 10523 win.suz_callRegValidator(suggestElements.cityId.name, suggestElements.cityId.value); 10524 10525 isMatchCity = true; 10526 break; 10527 } 10528 } 10529 10530 if (!isMatchCity) { 10531 for (i = 0; i < citySelector.length; i++) { 10532 if (citySelector[i].text === tempValue.cityLevel2) { 10533 citySelector[i].selected = true; 10534 10535 win.suz_callRegValidator(suggestElements.cityId.name, suggestElements.cityId.value); 10536 10537 break; 10538 } 10539 } 10540 } 10541 } else if (tempValue.cityLevel3) { 10542 if (currentCountryObject.replaceName.target === 'cityId') { 10543 tempValue.cityLevel3 = currentCountryObject.replaceName.replaceValue(tempValue.cityLevel3); 10544 } 10545 10546 for (i = 0; i < citySelector.length; i++) { 10547 if (citySelector[i].text === tempValue.cityLevel3) { 10548 citySelector[i].selected = true; 10549 10550 win.suz_callRegValidator(suggestElements.cityId.name, suggestElements.cityId.value); 10551 10552 isMatchCity = true; 10553 break; 10554 } 10555 } 10556 10557 if (!isMatchCity) { 10558 for (i = 0; i < citySelector.length; i++) { 10559 if (citySelector[i].text === tempValue.cityLevel3) { 10560 citySelector[i].selected = true; 10561 10562 win.suz_callRegValidator(suggestElements.cityId.name, suggestElements.cityId.value); 10563 10564 break; 10565 } 10566 } 10567 } 10568 } else if (tempValue.city) { 10569 if (currentCountryObject.replaceName.target === 'cityId') { 10570 tempValue.city = currentCountryObject.replaceName.replaceValue(tempValue.city); 10571 } 10572 10573 for (i = 0; i < citySelector.length; i++) { 10574 if (citySelector[i].text === tempValue.city) { 10575 citySelector[i].selected = true; 10576 10577 win.suz_callRegValidator(suggestElements.cityId.name, suggestElements.cityId.value); 10578 10579 isMatchCity = true; 10580 break; 10581 } 10582 } 10583 10584 if (!isMatchCity) { 10585 for (i = 0; i < citySelector.length; i++) { 10586 if (citySelector[i].text === tempValue.city) { 10587 citySelector[i].selected = true; 10588 10589 win.suz_callRegValidator(suggestElements.cityId.name, suggestElements.cityId.value); 10590 10591 break; 10592 } 10593 } 10594 } 10595 } 10596 } 10597 }; 10598 10599 Register.checkSortOrderItem = function (currentCountryObject, placeObject) { 10600 var orderObject = currentCountryObject.addressOrder; 10601 10602 if (!orderObject) { 10603 return; 10604 } 10605 10606 Object.keys(placeObject).forEach(function (number) { 10607 if (placeObject[number] && placeObject[number].types[0] && orderObject[placeObject[number].types[0]]) { 10608 orderObject[placeObject[number].types[0]]['isValue'] = true; 10609 } 10610 }); 10611 }; 10612 10613 Register.initOrderAddressList = function (orderList) { 10614 if (orderList) { 10615 Object.keys(orderList).forEach(function (target) { 10616 orderList[target]['isValue'] = false; 10617 orderList[target].value = ''; 10618 }); 10619 } 10620 }; 10621 10622 Register.getSelectedSuggestText = function (companyName) { 10623 var targetItem = null; 10624 10625 if (googleAutocomplete.selectedSuggestItem) { 10626 targetItem = googleAutocomplete.selectedSuggestItem.querySelector('.' + googleAutocomplete.classNames.suggestMainText); 10627 10628 if (targetItem) { 10629 googleAutocomplete.config.selectedSuggestMainText = targetItem.innerText; 10630 } 10631 } 10632 10633 if (googleAutocomplete.config.selectedSuggestMainText) { 10634 return googleAutocomplete.config.selectedSuggestMainText; 10635 } else if (companyName) { 10636 return companyName; 10637 } 10638 10639 return googleAutocomplete.config.selectedSuggestMainText; 10640 }; 10641 10642 return Register; 10643 }()); 10644 10645 Form.SendEmail = (function () { 10646 var idNames = { 10647 root: 'js-multiStepForm-sendEmail', 10648 btnBackToSignin: 'js-sendEmail-btnBackToSignin', 10649 btnBackToAutoSignup: 'js-sendEmail-btnBackToAutoSignup', 10650 }; 10651 10652 var classNames = { 10653 enterEmailAddress: 'js-enterEmailAddress', 10654 verificationEmailTarget: 'js-showVerificationEmail-target', 10655 isVerificationEmailActive: 'is-sendVerificationEmail-active', 10656 isHide: 'is-hide', 10657 }; 10658 10659 var config = { 10660 api: { 10661 signin: { 10662 url: '/ajax/userAjax/publishLoginUrl/', 10663 }, 10664 autoSignup: { 10665 url: '/ajax/userAjax/publishAutoSignupUrl/', 10666 } 10667 } 10668 } 10669 10670 var SendEmail = { 10671 idNames: idNames, 10672 classNames: classNames, 10673 config: config, 10674 root: doc.getElementById(idNames.root), 10675 btnBackToSignin: doc.getElementById(idNames.btnBackToSignin), 10676 enterEmailAddressTargets: doc.querySelectorAll('.' + classNames.enterEmailAddress), 10677 verificationEmailTarget: doc.querySelectorAll('.' + classNames.verificationEmailTarget), 10678 btnBackToAutoSignup: doc.getElementById(idNames.btnBackToAutoSignup), 10679 }; 10680 10681 SendEmail.init = function () { 10682 if (!this.root) { 10683 return; 10684 } 10685 10686 if (Form.PreForm.$multiStepFormTrigger.hasClass(this.classNames.isVerificationEmailActive)) { 10687 this.showTarget(this.verificationEmailTarget); 10688 } 10689 10690 SendEmail.addClickBackButton(); 10691 }; 10692 10693 SendEmail.showTarget = function (targets) { 10694 if (typeof targets === 'object' && targets.length) {
10695 targets.forEach(function (target) { 10696 target.classList.remove(SendEmail.classNames.isHide); 10697 }); 10698 } 10699 }; 10700 10701 SendEmail.attachClickSendEmailButton = function ($trigger) { 10702 if ($trigger.length) { 10703 $trigger.on('click', this.showResultView.bind(this)); 10704 } 10705 }; 10706 10707 SendEmail.showResultView = function (e) { 10708 var triggerId = e.currentTarget.id; 10709 10710 if (!this.root || !triggerId) { 10711 return; 10712 } 10713 10714 if (triggerId === Form.SignIn.idNames.btnCheckSendEmail) { 10715 this.sendVerificationEmail(this.config.api.signin.url).done(function () { 10716 SendEmail.enterEmailAddress(); 10717 KEYENCE.Form.FormFilter.SendEmail.changeFilterClass(triggerId); 10718 Form.show($(Form.SendEmail.root)); 10719 Form.hide(Form.SignIn.$root); 10720 10721 Form.changeCurrentScreenName(Form.screenNames.OneClickLoginSendEmail); 10722 }).fail(function () { 10723 console.log('error'); 10724 }); 10725 } else if (triggerId === Form.SignIn.idNames.asuSendMailButton) { 10726 this.sendVerificationEmail(this.config.api.autoSignup.url).done(function () { 10727 KEYENCE.Form.FormFilter.SendEmail.changeFilterClass(triggerId); 10728 Form.show($(Form.SendEmail.root)); 10729 Form.hide(Form.SignIn.$root); 10730 10731 Form.changeCurrentScreenName(Form.screenNames.hospitalitySignUpSendEmail); 10732 }).fail(function () { 10733 console.log('error'); 10734 }); 10735 } 10736 }; 10737 10738 SendEmail.sendVerificationEmail = function (apiUrl) { 10739 var deferred = new $.Deferred(); 10740 var options; 10741 var $triggerField = Form.PreForm.$formCheckEmail; 10742 var $targetForm = null; 10743 var formData = ''; 10744 10745 if ($triggerField.length) { 10746 $targetForm = $triggerField.closest('form'); 10747 } 10748 10749 if ($targetForm.length) { 10750 formData = $targetForm.serialize(); 10751 } 10752 10753 if (!formData.length || !apiUrl) { 10754 return deferred.resolve(); 10755 } 10756 10757 options = { 10758 url: win.suz_getCurrentDomain() + apiUrl, 10759 type: 'post', 10760 data: { 10761 formData: formData 10762 }, 10763 dataType: 'jsonp', 10764 jsonp: 'callback', 10765 scriptCharset: 'UTF-8', 10766 timeout: 10000, 10767 }; 10768 10769 $.ajax(options).done(function () { 10770 deferred.resolve(); 10771 }).fail(function () { 10772 // Treat failure as success 10773 deferred.resolve(); 10774 }); 10775 10776 return deferred.promise(); 10777 }; 10778 10779 SendEmail.enterEmailAddress = function () { 10780 var emailAddressField = Form.PreForm.$formCheckEmail; 10781 10782 if (emailAddressField.length && this.enterEmailAddressTargets.length) { 10783 this.enterEmailAddressTargets.forEach(function (target) { 10784 target.textContent = emailAddressField.val(); 10785 }); 10786 } 10787 }; 10788 10789 SendEmail.addClickBackButton = function () { 10790 if (this.btnBackToSignin) { 10791 this.btnBackToSignin.addEventListener('click', this.changeDisplayForm.bind(this)); 10792 } 10793 10794 if (this.btnBackToAutoSignup) { 10795 this.btnBackToAutoSignup.addEventListener('click', this.changeDisplayForm.bind(this)); 10796 } 10797 }; 10798 10799 SendEmail.changeDisplayForm = function (event) { 10800 Form.show(Form.SignIn.$root); 10801 Form.hide($(this.root)); 10802 10803 if (event.currentTarget.id === 'js-sendEmail-btnBackToSignin') { 10804 Form.changeCurrentScreenName(Form.screenNames.login); 10805 } else { 10806 Form.changeCurrentScreenName(Form.screenNames.hospital
10806itySignUp); 10807 } 10808 }; 10809 10810 return SendEmail; 10811 }()); 10812 10813 Form.Modal = (function () { 10814 var idNames = { 10815 colorbox: 'colorbox', 10816 content: 'cboxContent', 10817 loadedContent: 'cboxLoadedContent', 10818 overlay: 'cboxOverlay', 10819 modalbox: 'kpi_modalbox', 10820 title: 'cboxTitle', 10821 btnClose: 'cboxClose', 10822 wrapper: 'cboxWrapper', 10823 root: 'js-multiStepForm-modal', 10824 lowerMargin: 'js-multiStepForm-modalLowerMargin' 10825 }; 10826 10827 var classNames = { 10828 extension: 'of-multiStepForm', 10829 lowerMargin: 'formMultiStep-lowerMargin' 10830 }; 10831 10832 var Modal = { 10833 idNames: idNames 10834 }; 10835 10836 var elements= null; 10837 10838 Modal.open = function () { 10839 if (!Form.isModalContent()) { 10840 return; 10841 } 10842 10843 Form.$modal = $.colorbox({ 10844 width: 840, 10845 inline: true, 10846 href: $('#' + idNames.root), 10847 onOpen: Modal.onOpen, 10848 onComplete: Modal.onComplete, 10849 onCleanup: Modal.onCleanup, 10850 onClosed: Form.onClosed 10851 }) 10852 }; 10853 10854 Modal.getModalElementsAll = function () { 10855 var $root = $('#' + Modal.idNames.colorbox); 10856 10857 if (!$root.length) { 10858 return null; 10859 } 10860 10861 return { 10862 $root: $root, 10863 $content: $root.find('#' + idNames.content), 10864 $loadedContent: $root.find('#' + idNames.loadedContent), 10865 $title: $root.find('#' + idNames.title), 10866 $overlay: $('#' + Modal.idNames.overlay), 10867 $wrapper: $('#' + Modal.idNames.wrapper), 10868 }; 10869 }; 10870 10871 Modal.onOpen = function () { 10872 $('#' + Modal.idNames.overlay).addClass('of-multiStepForm'); 10873 $('#' + Modal.idNames.modalbox).removeClass('ModalLarge'); 10874 }; 10875 10876 Modal.onComplete = function () { 10877 elements = Modal.getModalElementsAll(); 10878 10879 if (elements === null) { 10880 return; 10881 } 10882 10883 Modal.addAttributes(); 10884 Modal.addCLoseButton(); 10885 Modal.stopBubbling(elements.$title); 10886 Modal.clickCloseButton(); 10887 Modal.appendLowerMargin(); 10888 Form.focusFirstInputElement($('#' + Form.Register.idNames.regForm)); 10889 }; 10890 10891 Modal.onCleanup = function () { 10892 Form.show(Form.PreForm.$root); 10893 Form.hide(Form.SignIn.$root); 10894 Form.hide(Form.Register.$root); 10895 Form.hide($(Form.SendEmail.root)); 10896 }; 10897 10898 Modal.onClosed = function () { 10899 if (elements === null) { 10900 return; 10901 } 10902 10903 Modal.removeAttributes(); 10904 10905 elements = null; 10906 Main.$modal = null; 10907 }; 10908 10909 Modal.addAttributes = function () { 10910 if (elements === null) { 10911 return; 10912 } 10913 10914 elements.$root.addClass(classNames.extension); 10915 elements.$title.addClass(classNames.extension); 10916 elements.$content.addClass(classNames.extension); 10917 elements.$loadedContent.addClass(classNames.extension); 10918 }; 10919 10920 Modal.removeAttributes = function () { 10921 if (elements === null) { 10922 return; 10923 } 10924 10925 elements.$root.removeClass(classNames.extension); 10926 elements.$title.removeClass(classNames.extension); 10927 elements.$content.removeClass(classNames.extension); 10928 elements.$loadedContent.removeClass(classNames.extension); 10929 elements.$overlay.removeClass(classNames.extension); 10930 }; 10931 10932 Modal.addCLoseButton = function () { 10933 if (elements && elements.$loadedContent.length) {
10934 elements.$loadedContent.prepend('<button id="' + idNames.btnClose + '"><span>' + kpi_translation.Close + '</span></button>'); 10935 } 10936 }; 10937 10938 Modal.stopBubbling = function ($target) { 10939 if ($target && $target.length) { 10940 $target.off('click').on('click', function (event) { 10941 event.stopPropagation(); 10942 }); 10943 } 10944 }; 10945 10946 Modal.clickCloseButton = function () { 10947 $('#idNames.btnClose').off('click').on('click', function () { 10948 $.colorbox.close(); 10949 }); 10950 }; 10951 10952 Modal.appendLowerMargin = function () { 10953 var $lowerMargin = $('#' + idNames.lowerMargin); 10954 10955 if (!elements || !elements.$wrapper.length || $lowerMargin.length) { 10956 return; 10957 } 10958 10959 elements.$wrapper.append( 10960 '<div id="' + idNames.lowerMargin + '"' + ' class="' + classNames.lowerMargin + '"></div>' 10961 ); 10962 10963 $lowerMargin = $('#' + idNames.lowerMargin); 10964 10965 $lowerMargin.on('click', function () { 10966 $.colorbox.close(); 10967 }); 10968 }; 10969 10970 return Modal; 10971 }()); 10972 10973 win.MultiStepForm = Form; 10974 }()); 10975 10976 KEYENCE.setCurrentPageNavi = function () { 10977 var fn = {}; 10978 10979 fn.init = function () { 10980 var self = this; 10981 var categoryValue = null; 10982 var items = self.getItems(); 10983 10984 if (!items.pageCategory || !items.navigationLinks.length) { 10985 return; 10986 } 10987 10988 categoryValue = self.getCategoryValue(items.pageCategory); 10989 self.addCurrentAttribute(categoryValue); 10990 }; 10991 10992 fn.getItems = function () { 10993 var items = { 10994 pageCategory: doc.querySelector('[data-page-category]'), 10995 navigationLinks: doc.querySelectorAll('[data-navigation-link]') 10996 }; 10997 10998 return items; 10999 }; 11000 11001 fn.getCategoryValue = function (item) { 11002 var categoryValue = null; 11003 11004 if (!item || item.nodeType !== 1) { 11005 return false; 11006 } 11007 11008 categoryValue = item.dataset.pageCategory; 11009 11010 return categoryValue; 11011 }; 11012 11013 fn.addCurrentAttribute = function (categoryValue) { 11014 var self = this; 11015 var linkValue = null; 11016 var items = self.getItems(); 11017 11018 if (!categoryValue || typeof categoryValue !== 'string') { 11019 return; 11020 } 11021 11022 Array.prototype.forEach.call(items.navigationLinks, function (link) { 11023 linkValue = self.getLinkValue(link); 11024 11025 if (!linkValue || typeof linkValue !== 'string') { 11026 return; 11027 } 11028 11029 if (categoryValue === linkValue) { 11030 link.setAttribute('aria-current', 'page'); 11031 } 11032 }); 11033 }; 11034 11035 fn.getLinkValue = function (item) { 11036 var linkValue = null; 11037 11038 if (!item || item.nodeType !== 1) { 11039 return false; 11040 } 11041 11042 linkValue = item.dataset.navigationLink; 11043 11044 return linkValue; 11045 }; 11046 11047 fn.init(); 11048 }; 11049 11050 KEYENCE.setMenuConversion = function () { 11051 var self = this; 11052 var root = null; 11053 var settingObj = win.kg_cp; 11054 var links = null; 11055 var removeButton = null; 11056 var openButton = null; 11057 var closeButton = null; 11058 var list = null; 11059 var displayPreventTrigger = null; 11060 var isFirstDisplayed = false; 11061 var app = null; 11062 var appOpenButton = null; 11063 var appCloseButton = null; 11064 var appButton = null; 11065 var appLinkOuter = null; 11066 var header = null; 11067 var seriesHeader = null; 11068 var resizeTimer = null; 11069 var closeTimer = null; 11070 var delayVal = 200; 11071 var fn = {}; 11072 var handlers = {}; 11073 var dataLayer = win.dataLayer ? win.dataLayer : []; 11074 var displayPreventTriggerobserver = null; 11075 11076 var config = { 11077 originalDomain: win.kpi_originalDomain ? win.kpi_originalDomain : '' 11078 }; 11079 11080 var apiPath = { 11081 sunCode: `${config.originalDomain}/ajax/userAjax/sunCodeImage/` 11082 }; 11083 11084 var classNames = { 11085 body: 'js-menuConversion-body', 11086 list: 'js-menuConversion-list', 11087 listItemChild: 'js-menuConversion-listItemChild', 11088 link: 'js-menuConversion-link', 11089 linkText: 'js-menuConversion-linkText', 11090 removeButton: 'js-menuConversion-removeButton', 11091 openButton: 'js-menuConversion-openButton', 11092 closeButton: 'js-menuConversion-closeButton',
11093 displayPreventTrigger: 'js-menuConversion-displayPreventTrigger', 11094 app: 'js-menuConversion-app', 11095 appOpenButton: 'js-menuConversion-appOpenButton', 11096 appCloseButton: 'js-menuConversion-appCloseButton', 11097 appText: 'js-menuConversion-appText', 11098 appImage: 'js-menuConversion-appImage', 11099 appButton: 'js-menuConversion-appButton', 11100 appLinkOuter: 'js-menuConversion-appLinkOuter', 11101 appLink: 'js-menuConversion-appLink', 11102 sunCode: 'js-menuConversion-sunCode', 11103 isShow: self.CONFIG.SHOW_CLASS, 11104 isHide: self.CONFIG.HIDE_CLASS, 11105 isVisible: 'is-visible', 11106 isHidden: 'is-hidden', 11107 isClose: 'is-close', 11108 }; 11109 11110 var idNames = { 11111 template: 'js-menuConversion-template', 11112 appTemplate: 'js-menuConversion-appTemplate', 11113 appButtonTemplate: 'js-menuConversion-appButtonTemplate', 11114 appLinkTemplate: 'js-menuConversion-appLinkTemplate', 11115 appListItemTemplate: 'js-menuConversion-appListItemTemplate', 11116 header: 'js-controlHeader' 11117 }; 11118 11119 var cookies = { 11120 closed: 'kpi_has_menuConversionClosed', 11121 appClosed: 'kpi_has_menuConversionAppClosed' 11122 }; 11123 11124 if (!self.getElem.menuConversion || !settingObj || !win.kpi_menu_conversion) { 11125 return; 11126 } 11127 11128 root = self.getElem.menuConversion; 11129 displayPreventTrigger = doc.querySelector(`.${classNames.displayPreventTrigger}`); 11130 11131 fn.init = function () { 11132 if (!fn.isShow()) { 11133 return; 11134 } 11135 11136 fn.setHtml(); 11137 fn.getSelector(); 11138 fn.setApp(); 11139 fn.ctrlTelLink(); 11140 fn.onClickForRemoveButton(); 11141 fn.onKeydownForEscape(); 11142 fn.runForEachScreen(); 11143 smallScreenMql.addListener(fn.runForEachScreen); 11144 }; 11145 11146 fn.runForEachScreen = function () { 11147 fn.observeDisplayTrigger(); 11148 11149 if (smallScreenMql.matches) { 11150 fn.onClickForOpenButton(); 11151 fn.onClickForCloseButton(); 11152 } else { 11153 if (list) { 11154 list.removeEventListener('transitionend', handlers.onTransitionendList, false); 11155 } 11156 11157 if (!displayPreventTrigger) { 11158 fn.openMenu(); 11159 } 11160 11161 if (!fn.isAlwaysOpened()) { 11162 fn.onMouseenterForListItem(); 11163 fn.onFocusinForLink(); 11164 fn.onMouseleaveForListItem(); 11165 fn.onFocusoutForListItem(); 11166 } 11167 } 11168 11169 fn.setTopPosition(); 11170 fn.onResizeWindow(); 11171 fn.onScrollWindow(); 11172 }; 11173 11174 fn.isShow = function () { 11175 if (!win.kpi_menu_conversion.isShow || fn.isExcludedUrl() || fn.hasCookie(cookies.closed)) { 11176 return false; 11177 } 11178 11179 return true; 11180 }; 11181 11182 fn.isTelShow = function () { 11183 if (!win.kpi_menu_conversion.isTelShow) { 11184 return false; 11185 } 11186 11187 return true; 11188 }; 11189 11190 fn.isAlwaysOpened = function () { 11191 var currentURL = win.location.pathname; 11192 var pattern = new RegExp('^' + win.suz_LanguagePath + '\/landing\/lpc\/'); 11193 11194 if (pattern.test(currentURL)) { 11195 return true; 11196 } 11197 11198 return false; 11199 }; 11200 11201 fn.openMenu = function () { 11202 var delay; 11203 11204 if (!win.kpi_menu_conversion.openDelay || !list || isFirstDisplayed) { 11205 return; 11206 } 11207 11208 isFirstDisplayed = true; 11209 11210 delay = Number(win.kpi_menu_conversion.openDelay) >= 0 ? Number(win.kpi_menu_conversion.openDelay) : 3000; 11211 11212 list.classList.add(classNames.isShow); 11213 11214 if (closeTimer !== null) { 11215 clearTimeout(closeTimer); 11216 } 11217 11218 if (!fn.isAlwaysOpened()) { 11219 closeTimer = setTimeout(function () { 11220 list.classList.remove(classNames.isShow); 11221 }, delay); 11222 } 11223 }; 11224 11225 fn.setHtml = function () { 11226 var template = doc.getElementById(idNames.template); 11227 var clone; 11228 var list; 11229 11230 if (template) { 11231 clone = fn.createNodeClone(template); 11232 11233 if (displayPreventTrigger) { 11234 list = clone.querySelector(`.${classNames.list}`); 11235 11236 if (list) { 11237 list.classList.add(classNames.isHidden); 11238 } 11239 } 11240 11241 fn.setUrl(clone); 11242 fn.setAppHtml(clone); 11243 fn.setA11y(clone); 11244 root.appendChild(clone); 11245 } 11246 }; 11247 11248 fn.setAppHtml = function (clone) { 11249 var menuConversionGroup = self.getElem.menuConversionGroup; 11250 var appTemplate = doc.getElementById(idNames.appTemplate); 11251 var appButtonTemplate = doc.getElementById(idNames.appButtonTemplate); 11252 var appLinkTemplate = doc.getElementById(idNames.appLinkTemplate); 11253 var appListItemTemplate = doc.getElementById(idNames.appListItemTemplate); 11254 var openButton = clone.querySelector(`.${classNames.openButton}`); 11255 var list = clone.querySelector(`.${classNames.list}`); 11256 var listLastElement; 11257 var appClone; 11258 var appButtonClone; 11259 var appLinkClone; 11260 var appListItemClone; 11261 11262 if (menuConversionGroup && appTemplate) { 11263 appClone = fn.createNodeClone(appTemplate); 11264 menuConversionGroup.appendChild(appClone); 11265 } 11266 11267 if (openButton && appButtonTemplate) { 11268 appButtonClone = fn.createNodeClone(appButtonTemplate); 11269 openButton.parentNode.insertBefore(appButtonClone, openButton.nextElementSibling); 11270 } 11271 11272 if (list && appLinkTemplate) { 11273 appLinkClone = fn.createNodeClone(appLinkTemplate); 11274 list.parentNode.insertBefore(appLinkClone, list.nextElementSibling); 11275 } 11276 11277 if (list && appListItemTemplate) { 11278 listLastElement = list.lastElementChild; 11279 appListItemClone = fn.createNodeClone(appListItemTemplate); 11280 11281 if (listLastElement?.querySelector('[data-menu-conversion-url="aiAssistant"]')) { 11282 list.insertBefore(appListItemClone, listLastElement); 11283 } else { 11284 list.appendChild(appListItemClone); 11285 } 11286 } 11287 }; 11288 11289 fn.setA11y = function (clone) { 11290 var list = clone.querySelector(`.${classNames.list}`); 11291 var listItems = list?.children; 11292 11293 if (!listItems?.length) { 11294 return; 11295 } 11296
11297 [...listItems].forEach((item) => { 11298 var childContent = item.querySelector(`.${classNames.listItemChild}`); 11299 var link = null; 11300 11301 11302 if (childContent) { 11303 link = item.querySelector(`:scope > .${classNames.link}`); 11304 link?.setAttribute('aria-expanded', false); 11305 } 11306 }) 11307 } 11308 11309 fn.setApp = function () { 11310 var sunCode = doc.querySelector('.' + classNames.sunCode); 11311 11312 if (!app) { 11313 return; 11314 } 11315 11316 fn.onClickForAppOpenButton(); 11317 fn.onClickForAppCloseButton(); 11318 11319 if (util.getCookie(cookies.appClosed) === 'true') { 11320 fn.closedApp(); 11321 } else { 11322 fn.openedApp(); 11323 } 11324 11325 if (sunCode) { 11326 fn.setSunCode(); 11327 } 11328 }; 11329 11330 fn.setSunCode = function () { 11331 var signinStat = dataLayer[1].signinStat ? dataLayer[1].signinStat : ''; 11332 var savedSunCodeImage = null; 11333 var expireDate = null; 11334 11335 if (signinStat !== 'signin') { 11336 return; 11337 } 11338 11339 savedSunCodeImage = localStorage.getItem("sunCodeImage") ? JSON.parse(localStorage.getItem("sunCodeImage")) : null; 11340 expireDate = savedSunCodeImage && savedSunCodeImage.expireDate ? savedSunCodeImage.expireDate : null; 11341 11342 if (savedSunCodeImage && (expireDate && fn.isWithinDeadline(expireDate))) { 11343 fn.setSunCodeText(savedSunCodeImage); 11344 fn.setSunCodePath(savedSunCodeImage); 11345 } else { 11346 fn.loadSunCodeApi(); 11347 } 11348 }; 11349 11350 fn.setSunCodeText = function (sunCodeImageData) { 11351 var status = sunCodeImageData.status ? sunCodeImageData.status : false; 11352 var appText = doc.querySelector('.' + classNames.appText); 11353 var successedText = appText ? appText.dataset.textSuccessed : ""; 11354 11355 if (!status) { 11356 return; 11357 } 11358 11359 if (appText && (successedText && successedText !== "")) { 11360 appText.innerText = successedText; 11361 } 11362 }; 11363 11364 fn.setSunCodePath = function (sunCodeImageData) { 11365 var sunCodeImage = sunCodeImageData.sunCodeImage ? sunCodeImageData.sunCodeImage : null; 11366 var wechatLoginUrl = sunCodeImageData.wechatLoginUrl ? sunCodeImageData.wechatLoginUrl : null; 11367 var appImage = doc.querySelector('.' + classNames.appImage); 11368 var appButton = doc.querySelector('.' + classNames.appButton); 11369 var appLinks = doc.querySelectorAll('.' + classNames.appLink); 11370 11371 if (sunCodeImage && appImage) { 11372 appImage.src = `data:image/png;base64, ${sunCodeImage}`; 11373 } 11374 11375 if (wechatLoginUrl) { 11376 if (appButton) { 11377 appButton.href = wechatLoginUrl; 11378 } 11379 11380 if (appLinks.length) { 11381 appLinks.forEach((appLink) => { 11382 appLink.href = wechatLoginUrl; 11383 }) 11384 } 11385 } 11386 }; 11387 11388 fn.loadSunCodeApi = function () { 11389 fetch(apiPath.sunCode, { 11390 method: 'GET' 11391 }).then((response) => { 11392 if (response.ok) { 11393 return response.json(); 11394 } 11395 throw new Error('Network response was not OK'); 11396 }).then((result) => { 11397 localStorage.setItem("sunCodeImage", JSON.stringify(result)); 11398 fn.setSunCodeText(result); 11399 fn.setSunCodePath(result); 11400 }).catch((error) => { 11401 console.error(error); 11402 }); 11403 }; 11404 11405 fn.isWithinDeadline = function (expireDate) { 11406 var date = new Date(); 11407 var year = date.getFullYear(); 11408 var month = (date.getMonth() + 1).toString().padStart(2, 0); 11409 var day = date.getDate().toString().padStart(2, 0); 11410 var isWithinDeadline = false; 11411 11412 if (Number(expireDate) > Number(`${year}${month}${day}`)) { 11413 isWithinDeadline = true; 11414 } 11415 11416 return isWithinDeadline; 11417 }; 11418 11419 fn.setUrl = function (clone) { 11420 var links; 11421 var linkText; 11422 var urlObj = settingObj.url ? settingObj.url: settingObj; 11423 var phoneKeys = []; 11424 const fragment = doc.createDocumentFragment(); 11425 11426 links = clone ? clone.querySelectorAll('.' + classNames.link) : null; 11427 11428 if (!urlObj || !links) { 11429 return; 11430 } 11431 11432 phoneKeys = Object.keys(urlObj).filter(x => x.match(/^phone(\d)*$/g)); 11433 11434 Array.prototype.forEach.call(links, function (link) { 11435 var data = link.dataset.menuConversionUrl; 11436 11437 if (data === 'phone' && !fn.isTelShow()) { 11438 link.parentNode.remove(); 11439 } else { 11440 if (data && urlObj[data] && urlObj[data] !== "") { 11441 if (data === 'phone') { 11442 linkText = link.querySelector('.' + classNames.linkText); 11443 11444 if (link.hasAttribute('href')) { 11445 link.href = 'tel:' + urlObj[data]; 11446 } 11447 11448 if (phoneKeys.length) { 11449 phoneKeys.forEach((key) => { 11450 if (urlObj[key] && urlObj[key] !== "") { 11451 var body = doc.createElement('span'); 11452 body.classList.add('prd-menuConversion-linkTextBody'); 11453 body.textContent = urlObj[key]; 11454 fragment.appendChild(body); 11455 } 11456 }); 11457 } 11458 11459 if (linkText) { 11460 linkText.appendChild(fragment); 11461 } 11462 } else { 11463 link.href = urlObj[data]; 11464 } 11465 } else if (!urlObj[data] || urlObj[data] === "") { 11466 link.parentNode.remove(); 11467 } 11468 } 11469 }); 11470 }; 11471 11472 fn.getSelector = function () { 11473 links = root.querySelectorAll('.' + classNames.link); 11474 removeButton = root.querySelector('.' + classNames.removeButton); 11475 openButton = root.querySelector('.' + classNames.openButton); 11476 closeButton = root.querySelector('.' + classNames.closeButton); 11477 list = root.querySelector('.' + classNames.list); 11478 app = doc.querySelector('.' + classNames.app); 11479 appOpenButton = doc.querySelector('.' + classNames.appOpenButton); 11480 appCloseButton = doc.querySelector('.' + classNames.appCloseButton); 11481 appButton = root.querySelector('.' + classNames.appButton); 11482 appLinkOuter = root.querySelector('.' + classNames.appLinkOuter); 11483 header = doc.getElementById(idNames.header); 11484 seriesHeader = doc.querySelector('[data-series-header-target="sticky"]'); 11485 }; 11486 11487 fn.setTopPosition = function () { 11488 var rootTop; 11489 var headerBottom; 11490 var seriesHeaderBottom; 11491 var topVal; 11492 var transformVal; 11493 var buffer = 5; 11494 11495 root.style.top = '50%'; 11496 root.style.transform = 'translateY(-50%)'; 11497 11498 rootTop = root.getBoundingClientRect().top; 11499 11500 if (seriesHeader) { 11501 seriesHeaderBottom = seriesHeader.getBoundingClientRect().bottom; 11502 topVal = seriesHeaderBottom > rootTop ? (seriesHeaderBottom + buffer) + 'px' : '50%'; 11503 transformVal = seriesHeaderBottom > rootTop ? 'inherit' : 'translateY(-50%)'; 11504 } else if (header) { 11505 headerBottom = header.getBoundingClientRect().bottom; 11506 topVal = headerBottom > rootTop ? (headerBottom + buffer) + 'px' : '50%'; 11507 transformVal = headerBottom > rootTop ? 'inherit' : 'translateY(-50%)'; 11508 } else { 11509 topVal = '50%'; 11510 transformVal = 'translateY(-50%)'; 11511 } 11512 11513 root.style.top = topVal; 11514 root.style.transform = transformVal; 11515 }; 11516 11517 fn.observeDisplayTrigger = function () { 11518 if (!displayPreventTrigger) { 11519 return; 11520 } 11521 11522 if (smallScreenMql.matches) { 11523 if (displayPreventTriggerobserver) { 11524 displayPreventTriggerobserver.disconnect(); 11525 } 11526 list.classList.remove(classNames.isClose); 11527 list.classList.remove(classNames.isHidden); 11528 } else { 11529 displayPreventTriggerobserver = new IntersectionObserver(fn.toggleDisplayForDisplayTrigger, {root: null, threshold: 0}) 11530 displayPreventTriggerobserver.observe(displayPreventTrigger); 11531 } 11532 }; 11533 11534 fn.toggleDisplayForDisplayTrigger = function (entries) {
11535 entries.forEach((entry)=>{ 11536 if (entry.isIntersecting) { 11537 if (closeTimer !== null) { 11538 clearTimeout(closeTimer); 11539 list.classList.remove(classNames.isShow); 11540 } 11541 list.classList.add(classNames.isClose); 11542 } else { 11543 list.classList.remove(classNames.isHidden); 11544 list.classList.remove(classNames.isClose); 11545 fn.openMenu(); 11546 } 11547 }); 11548 }; 11549 11550 fn.openedApp = function () { 11551 if (app) { 11552 app.classList.add(classNames.isShow); 11553 } 11554 11555 if (appOpenButton) { 11556 appOpenButton.classList.remove(classNames.isShow); 11557 } 11558 }; 11559 11560 fn.closedApp = function () { 11561 if (app) { 11562 app.classList.remove(classNames.isShow); 11563 } 11564 11565 if (appOpenButton) { 11566 appOpenButton.classList.add(classNames.isShow); 11567 } 11568 }; 11569 11570 fn.toggleListItem = function (listItem, isOpen) { 11571 if (!list || !listItem) { 11572 return; 11573 } 11574 11575 const link = listItem.querySelector(`:scope > .${classNames.link}`); 11576 const childContent = listItem.querySelector(`.${classNames.listItemChild}`); 11577 11578 if (!link) { 11579 return; 11580 } 11581 11582 const isExpandable = !!childContent; 11583 11584 if (isOpen) { 11585 if (closeTimer !== null) { 11586 clearTimeout(closeTimer); 11587 closeTimer = null; 11588 } 11589 11590 list.classList.add(classNames.isShow); 11591 11592 if (isExpandable) { 11593 link.setAttribute('aria-expanded', 'true'); 11594 childContent.setAttribute('aria-hidden', 'false'); 11595 } 11596 } else { 11597 list.classList.remove(classNames.isShow); 11598 11599 if (isExpandable) { 11600 link.setAttribute('aria-expanded', 'false'); 11601 childContent.setAttribute('aria-hidden', 'true'); 11602 } 11603 } 11604 11605 }; 11606 11607 11608 fn.closeAllMenu = function () { 11609 var openedLinks = null; 11610 11611 if (!list) { 11612 return; 11613 } 11614 11615 if (closeTimer !== null) { 11616 clearTimeout(closeTimer); 11617 closeTimer = null; 11618 } 11619 11620 openedLinks = list.querySelectorAll(`.${classNames.link}[aria-expanded="true"]`); 11621 11622 openedLinks.forEach((link) => { 11623 var listItem = link.closest('li'); 11624 fn.toggleListItem(listItem, false); 11625 }); 11626 11627 list.classList.remove(classNames.isShow); 11628 }; 11629 11630 11631 fn.onMouseenterForListItem = function () { 11632 var listItems = list?.children; 11633 11634 if (!listItems?.length) { 11635 return; 11636 } 11637 11638 [...listItems].forEach((item) => { 11639 item.addEventListener('mouseenter', handlers.onMouseenterForListItem, false); 11640 }); 11641 }; 11642 11643 fn.onFocusinForLink = function () { 11644 if (!links.length) { 11645 return; 11646 } 11647 11648 links.forEach(function(link) { 11649 link.addEventListener('focusin', handlers.onFocusinForLink, false); 11650 }); 11651 }; 11652 11653 fn.onMouseleaveForListItem = function () { 11654 const listItems = list?.children; 11655 11656 if (!listItems?.length) { 11657 return; 11658 } 11659 11660 [...listItems].forEach((item) => { 11661 item.addEventListener('mouseleave', handlers.onMouseleaveForListItem, false); 11662 }); 11663 }; 11664 11665 fn.onFocusoutForListItem = function () { 11666 const listItems = list?.children; 11667 11668 if (!listItems?.length) { 11669 return; 11670 } 11671
11672 [...listItems].forEach((item) => { 11673 item.addEventListener('focusout', handlers.onFocusoutForListItem, false); 11674 }); 11675 }; 11676 11677 fn.onKeydownForEscape = function () { 11678 doc.addEventListener('keydown', handlers.onKeydownForEscape, false); 11679 }; 11680 11681 fn.onClickForRemoveButton = function () { 11682 if (!removeButton) { 11683 return; 11684 } 11685 11686 removeButton.addEventListener('click', handlers.onClickForRemoveButton, false); 11687 }; 11688 11689 fn.onClickForOpenButton = function () { 11690 if (!openButton) { 11691 return; 11692 } 11693 11694 openButton.addEventListener('click', handlers.onClickForOpenButton, false); 11695 }; 11696 11697 fn.onClickForCloseButton = function () { 11698 if (!closeButton) { 11699 return; 11700 } 11701 11702 closeButton.addEventListener('click', handlers.onClickForCloseButton, false); 11703 }; 11704 11705 fn.onClickForAppOpenButton = function () { 11706 if (!appOpenButton) { 11707 return; 11708 } 11709 11710 appOpenButton.addEventListener('click', handlers.onClickForAppOpenButton, false); 11711 }; 11712 11713 fn.onClickForAppCloseButton = function () { 11714 if (!appCloseButton) { 11715 return; 11716 } 11717 11718 appCloseButton.addEventListener('click', handlers.onClickForAppCloseButton, false); 11719 }; 11720 11721 fn.onResizeWindow = function () { 11722 win.addEventListener('resize', handlers.onResizeWindow); 11723 }; 11724 11725 fn.onScrollWindow = function () { 11726 win.addEventListener('scroll', handlers.onScrollWindow); 11727 }; 11728 11729 fn.isExcludedUrl = function () { 11730 var currentURL = win.location.pathname; 11731 var pattern = win.kpi_menu_conversion.excludedUrl; 11732 11733 if (pattern.test(currentURL)) { 11734 return true; 11735 } 11736 11737 return false; 11738 }; 11739 11740 fn.setCookie = function (name, value) { 11741 var path; 11742 11743 if (win.suz_LanguagePath) { 11744 path = win.suz_LanguagePath + '/'; 11745 } else { 11746 path = '/'; 11747 } 11748 11749 doc.cookie = name + '=' + value + '; path=' + path; 11750 }; 11751 11752 fn.hasCookie = function (name) { 11753 var cookieArray = doc.cookie.split(';'); 11754 var flag = false; 11755 11756 Array.prototype.forEach.call(cookieArray, function (item) { 11757 if (item.indexOf(name + '=') > -1) { 11758 flag = true; 11759 } 11760 }); 11761 11762 return flag; 11763 }; 11764 11765 fn.ctrlTelLink = function () { 11766 var telLink = list.querySelectorAll('a[href^="tel:"]'); 11767 var hasTouchScreen = false; 11768 var mQ = null; 11769 var ua = win.navigator.userAgent; 11770 var cancelLink = null; 11771 11772 if (!telLink.length) { 11773 return; 11774 } 11775 11776 cancelLink = function (e) { 11777 e.preventDefault(); 11778 }; 11779 11780 if ('maxTouchPoints' in navigator) { 11781 hasTouchScreen = win.navigator.maxTouchPoints > 0; 11782 if (ua.indexOf('Edge') !== -1) { 11783 if (ua.indexOf('Windows Phone') === -1 && ua.indexOf('IEMobile') === -1) { 11784 hasTouchScreen = false; 11785 } 11786 } 11787 } else if ('msMaxTouchPoints' in navigator) { 11788 hasTouchScreen = win.navigator.msMaxTouchPoints > 0; 11789 } else { 11790 mQ = win.matchMedia && matchMedia('(pointer:coarse)'); 11791 11792 if (mQ && mQ.media === '(pointer:coarse)') { 11793 hasTouchScreen = Boolean(mQ.matches); 11794 } else if ('orientation' in win) { 11795 hasTouchScreen = true; 11796 } else { 11797 hasTouchScreen = ( 11798 /\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(ua) || 11799 /\b(Android|Windows Phone|iPad|iPod)\b/i.test(ua) 11800 ); 11801 } 11802 } 11803 11804 if (!hasTouchScreen) { 11805 telLink.forEach(function (item) { 11806 item.addEventListener('click', cancelLink, false); 11807 }); 11808 } 11809 }; 11810 11811 fn.createNodeClone = function (template) { 11812 return doc.importNode(template.content, true); 11813 }; 11814 11815 handlers.onMouseenterForListItem = function (e) { 11816 fn.toggleListItem(e.currentTarget, true); 11817 } 11818 11819 handlers.onFocusinForLink = function (e) { 11820 var listItem = e.currentTarget.closest('li'); 11821 fn.toggleListItem(listItem, true); 11822 11823 }; 11824 11825 handlers.onMouseleaveForListItem = function (e) { 11826 fn.toggleListItem(e.currentTarget, false); 11827 }; 11828 11829 handlers.onFocusoutForListItem = function (e) { 11830 var listItem = e.currentTarget; 11831 var relatedTarget = e.relatedTarget; 11832 11833 if (relatedTarget && listItem.contains(relatedTarget)) { 11834 return; 11835 } 11836 11837 fn.toggleListItem(listItem, false); 11838 }; 11839 11840 handlers.onKeydownForEscape = function (e) { 11841 if (e.key === 'Esc' || e.key === 'Escape') { 11842 if (!list || !list.classList.contains(classNames.isShow)) { 11843 return; 11844 } 11845 11846 e.preventDefault(); 11847 fn.closeAllMenu(); 11848 } 11849 }; 11850 11851 handlers.onClickForRemoveButton = function () { 11852 root.addEventListener('transitionend', handlers.onTransitionendRoot, false); 11853 root.classList.add(classNames.isClose);
11854 fn.setCookie(cookies.closed, '1'); 11855 }; 11856 11857 handlers.onTransitionendList = function () { 11858 if (!list || !links.length) { 11859 return; 11860 } 11861 11862 if (list.classList.contains(classNames.isVisible)) { 11863 list.focus(); 11864 } 11865 }; 11866 11867 handlers.onTransitionendRoot = function () { 11868 root.remove(); 11869 }; 11870 11871 handlers.onClickForOpenButton = function () { 11872 if (list) { 11873 list.classList.add(classNames.isVisible); 11874 list.tabIndex = 0; 11875 list.addEventListener('transitionend', handlers.onTransitionendList, false); 11876 } 11877 11878 if (openButton) { 11879 openButton.classList.add(classNames.isHidden); 11880 } 11881 11882 if (removeButton) { 11883 removeButton.classList.add(classNames.isHide); 11884 } 11885 11886 if (closeButton) { 11887 closeButton.classList.add(classNames.isShow); 11888 } 11889 11890 if (appButton) { 11891 appButton.classList.add(classNames.isHidden); 11892 } 11893 11894 if (appLinkOuter) { 11895 appLinkOuter.classList.add(classNames.isVisible); 11896 } 11897 }; 11898 11899 handlers.onClickForCloseButton = function () { 11900 if (list) { 11901 list.classList.remove(classNames.isVisible); 11902 list.removeEventListener('transitionend', handlers.onTransitionendList, false); 11903 } 11904 11905 if (openButton) { 11906 openButton.classList.remove(classNames.isHidden); 11907 } 11908 11909 if (removeButton) { 11910 removeButton.classList.remove(classNames.isHide); 11911 } 11912 11913 if (closeButton) { 11914 closeButton.classList.remove(classNames.isShow); 11915 } 11916 11917 if (appButton) { 11918 appButton.classList.remove(classNames.isHidden); 11919 } 11920 11921 if (appLinkOuter) { 11922 appLinkOuter.classList.remove(classNames.isVisible); 11923 } 11924 }; 11925 11926 handlers.onClickForAppOpenButton = function () { 11927 fn.openedApp(); 11928 fn.setCookie(cookies.appClosed, 'false'); 11929 }; 11930 11931 handlers.onClickForAppCloseButton = function () { 11932 if (app) { 11933 app.classList.remove(classNames.isShow); 11934 } 11935 11936 if (appOpenButton) { 11937 appOpenButton.classList.add(classNames.isShow); 11938 } 11939 11940 fn.setCookie(cookies.appClosed, 'true'); 11941 }; 11942 11943 handlers.onResizeWindow = function () { 11944 if (resizeTimer !== null) { 11945 clearTimeout(resizeTimer); 11946 } 11947 11948 resizeTimer = setTimeout(function () { 11949 fn.setTopPosition(); 11950 }, delayVal); 11951 }; 11952 11953 handlers.onScrollWindow = function () { 11954 fn.setTopPosition(); 11955 }; 11956 11957 fn.init(); 11958 }; 11959 11960 KEYENCE.ctrlHeaderForDynamicJumbotron = () => { 11961 class CtrlHeaderForDynamicJumbotron { 11962 constructor(){ 11963 this.classNames = { 11964 target: "js-ctrlHeaderForDynamicJumbotron", 11965 trigger: "js-ctrlHeaderForDynamicJumbotron-trigger", 11966 isShown: "is-shown", 11967 } 11968 11969 this.target = doc.querySelector(`.${this.classNames.target}`); 11970 this.trigger = doc.querySelector(`.${this.classNames.trigger}`); 11971 this.observer = null; 11972 } 11973 11974 init() { 11975 if (!this.target || !this.trigger) { 11976 return; 11977 } 11978 11979 this.runForEachScreen(); 11980 smallScreenMql.addEventListener("change", this.runForEachScreen.bind(this)); 11981 } 11982 11983 runForEachScreen() { 11984 if (smallScreenMql.matches) { 11985 if (this.observer) { 11986 this.observer.disconnect(); 11987 } 11988 } else { 11989 this.observer = new IntersectionObserver(this.toggleIsShownClass.bind(this), {root: null, threshold: 0}); 11990 this.observer.observe(this.trigger); 11991 } 11992 } 11993 11994 toggleIsShownClass(entries) {
11995 entries.forEach((entry) => { 11996 if (entry.isIntersecting) { 11997 this.target.classList.remove(this.classNames.isShown); 11998 } else { 11999 this.target.classList.add(this.classNames.isShown); 12000 } 12001 }); 12002 } 12003 } 12004 const ctrlHeaderForDynamicJumbotron = new CtrlHeaderForDynamicJumbotron(); 12005 ctrlHeaderForDynamicJumbotron.init(); 12006 }; 12007 12008 KEYENCE.ctrlDynamicJumbotronVideo = () => { 12009 class CtrlDynamicJumbotronVideo { 12010 constructor(){ 12011 this.idNames = { 12012 root: "js-controlDynamicJumbotronVideo", 12013 target: "js-controlDynamicJumbotronVideo-target", 12014 controllerTemplate: "js-controlDynamicJumbotronVideo-controllerTemplate", 12015 triggerOuter: "js-controlDynamicJumbotronVideo-triggerOuter", 12016 trigger: "js-controlDynamicJumbotronVideo-trigger", 12017 triggerText: "js-controlDynamicJumbotronVideo-triggerText" 12018 }; 12019 12020 this.root = doc.getElementById(this.idNames.root); 12021 this.target = win.videojs ? win.videojs.getPlayer(`${this.idNames.target}`) : null; 12022 this.trigger = null; 12023 this.triggerText = null; 12024 this.controllerTemplate = doc.getElementById(this.idNames.controllerTemplate); 12025 this.isPausedClass = "is-paused"; 12026 } 12027 init() { 12028 if (!this.root || !this.target || !this.controllerTemplate) { 12029 return; 12030 } 12031 12032 this.createController(); 12033 this.controlVideo(); 12034 } 12035 createController() { 12036 const controllerClone = this.controllerTemplate.content ? this.controllerTemplate.content.cloneNode(true): null; 12037 12038 if (!controllerClone) { 12039 return; 12040 } 12041 12042 const triggerText = controllerClone.getElementById(this.idNames.triggerText); 12043 12044 if (triggerText) { 12045 triggerText.textContent = triggerText.dataset.pauselabel; 12046 } 12047 12048 this.root.parentNode.insertBefore(controllerClone, this.root.nextElementSibling); 12049 this.trigger = doc.getElementById(this.idNames.trigger); 12050 this.triggerText = doc.getElementById(this.idNames.triggerText); 12051 } 12052 controlVideo() { 12053 this.target.ready(()=>{ 12054 this.addEndedEvent(); 12055 this.addClickEvent(); 12056 }); 12057 } 12058 addEndedEvent() { 12059 if (!this.trigger || !this.triggerText) { 12060 return; 12061 } 12062 12063 this.target.on("ended", ()=>{ 12064 this.trigger.classList.add(this.isPausedClass); 12065 this.triggerText.textContent = this.triggerText.dataset.playlabel; 12066 }); 12067 } 12068 addClickEvent() { 12069 if (!this.trigger || !this.triggerText) { 12070 return; 12071 } 12072 12073 this.trigger.addEventListener("click", ()=>{ 12074 if (this.trigger.classList.contains(this.isPausedClass)) { 12075 this.trigger.classList.remove(this.isPausedClass); 12076 this.target.play(); 12077 this.triggerText.textContent = this.triggerText.dataset.pauselabel; 12078 } else { 12079 this.trigger.classList.add(this.isPausedClass); 12080 this.target.pause(); 12081 this.triggerText.textContent = this.triggerText.dataset.playlabel; 12082 } 12083 }); 12084 } 12085 } 12086 12087 const ctrlDynamicJumbotronVideo = new CtrlDynamicJumbotronVideo(); 12088 ctrlDynamicJumbotronVideo.init(); 12089 }; 12090 12091 KEYENCE.setZaloChatBanner = () => { 12092 class ZaloChatBanner { 12093 constructor() { 12094 this.idNames = { 12095 zaloChatBanner: 'js-zaloChatBanner' 12096 } 12097 12098 this.classNames = { 12099 zaloChatBanner: 'prd-zaloChatBanner', 12100 isHidden: 'is-hidden' 12101 } 12102 12103 this.config = { 12104 imgSrc: win.kpi_zalo_chat_banner.imgSrc, 12105 imgAlt: win.kpi_zalo_chat_banner.imgAlt 12106 } 12107 12108 this.observerConfig = { 12109 subtree: true, 12110 attributes: true, 12111 } 12112 12113 this.banner = null; 12114 } 12115 12116 init() { 12117 this.observeZaloChat(); 12118 } 12119 12120 observeZaloChat() { 12121 const observer = new MutationObserver((mutationsList) => { 12122 const zaloChat = mutationsList[0].target.classList.contains('zalo-chat-widget') ? mutationsList[0].target : null; 12123 const iframe = zaloChat ? zaloChat.querySelector('iframe') : null; 12124 12125 if (!zaloChat || !iframe) { 12126 return; 12127 } 12128 12129 iframe.addEventListener('load', () => { 12130 this.banner = doc.getElementById(this.idNames.zaloChatBanner); 12131 12132 if (!this.banner) { 12133 const banner = this.createBanner(); 12134 12135 zaloChat.appendChild(banner); 12136 this.banner = doc.getElementById(this.idNames.zaloChatBanner); 12137 } 12138 }); 12139 12140 if (this.banner) { 12141 if (iframe.style.minHeight) { 12142 this.banner.classList.add(this.classNames.isHidden); 12143 } else { 12144 this.banner.classList.remove(this.classNames.isHidden); 12145 } 12146 } 12147 }); 12148 12149 observer.observe(doc.body, this.observerConfig); 12150 } 12151 12152 createBanner() { 12153 const banner = doc.createElement('div'); 12154 const img = doc.createElement('img'); 12155 12156 banner.id = this.idNames.zaloChatBanner; 12157 banner.classList.add(this.classNames.zaloChatBanner); 12158 img.src = this.config.imgSrc; 12159 img.alt = this.config.imgAlt; 12160 12161 banner.appendChild(img); 12162 12163 return banner; 12164 } 12165 } 12166 12167 if (win.kpi_zalo_chat_banner && win.kpi_zalo_chat_banner.isShow) { 12168 const zaloChatBanner = new ZaloChatBanner(); 12169 12170 zaloChatBanner.init(); 12171 } 12172 }; 12173 12174 KEYENCE.setSuggestHigherSeriesModal = () => { 12175 class OpenModal { 12176 constructor() { 12177 this.idName = {
12178 trigger: 'js-suggestHigherSeriesModal-trigger' 12179 } 12180 12181 this.cookieConfig = { 12182 cookieName: 'suggestHigherSeriesCookie', 12183 session_limit: 1, 12184 maxAge: 60 * 60 / 2 12185 } 12186 12187 this.trigger = doc.getElementById(this.idName.trigger); 12188 } 12189 12190 init() { 12191 if (win.suggestHigherSeriesModalComplete === true) { 12192 return; 12193 } 12194 12195 this.controlSuggestHigherSeriesCookie(); 12196 win.suggestHigherSeriesModalComplete = true; 12197 } 12198 12199 run() { 12200 this.trigger.click(); 12201 } 12202 12203 controlSuggestHigherSeriesCookie() { 12204 if (!this.trigger) { 12205 return; 12206 } 12207 12208 this.bySession(); 12209 } 12210 12211 bySession() { 12212 const cookieName = this.cookieConfig.cookieName; 12213 const sameSessionDisplayCount = this.cookieConfig.session_limit; 12214 const cookieValue = Number(OpenModal.getCookieValue(cookieName)); 12215 12216 if (cookieValue < sameSessionDisplayCount) { 12217 OpenModal.setCookie(cookieName, cookieValue + 1, this.cookieConfig.maxAge); 12218 this.run(); 12219 } 12220 } 12221 12222 static setCookie(name, value, maxAge) { 12223 let path; 12224 12225 if (win.suz_LanguagePath) { 12226 path = `${win.suz_LanguagePath}/`; 12227 } else { 12228 path = '/'; 12229 } 12230 12231 doc.cookie = `${name}=${value}; max-age=${maxAge}; path=${path}`; 12232 } 12233 12234 static getCookieValue(name) { 12235 const cookies = doc.cookie.split(';'); 12236 12237 if (!name) { 12238 return false; 12239 } 12240 12241 if (!cookies.some((item) => item.trim().startsWith(`${name}=`))) { 12242 return false; 12243 } 12244 12245 const targetCookie = cookies.find((item) => item.trim().startsWith(`${name}=`)); 12246 12247 return targetCookie.split('=')[1]; 12248 } 12249 12250 static get hasCookiebot() { 12251 const cookieBotScript = doc.getElementById('Cookiebot'); 12252 const consentCookie = OpenModal.getCookieValue('CookieConsent'); 12253 12254 if (!cookieBotScript || (cookieBotScript && consentCookie)) { 12255 return false; 12256 } 12257 12258 return true; 12259 } 12260 12261 static afterCookiebotClosed(callback) { 12262 const config = { 12263 subtree: true, 12264 attributeFilter: ['class'] 12265 }; 12266 let isExecuted = false; 12267 const targetId = 'CybotCookiebotDialog'; 12268 const targetClass = 'CybotCookiebotDialogActive'; 12269 12270 const observer = new MutationObserver((record) => { 12271 if (record[0].target.id === targetId) { 12272 if (!doc.getElementById(record[0].target.id).classList.contains(targetClass) && !isExecuted) { 12273 if (callback) { 12274 callback.init(); 12275 12276 isExecuted = true; 12277 observer.disconnect(); 12278 } 12279 } 12280 } 12281 }); 12282 12283 observer.observe(doc.body, config); 12284 } 12285 } 12286 12287 const openModal = new OpenModal(); 12288 12289 if (OpenModal.hasCookiebot) { 12290 OpenModal.afterCookiebotClosed(openModal); 12291 } else { 12292 openModal.init(); 12293 } 12294 } 12295 12296 KEYENCE.setCopyMovieUrl = function () { 12297 class CopyMovieUrl { 12298 constructor() { 12299 this.classNames = { 12300 trigger: 'js-copyMovieUrl-trigger', 12301 triggerBody: 'js-copyMovieUrl-triggerBody', 12302 isCopied: 'is-copied' 12303 } 12304 12305 this.triggers = doc.querySelectorAll(`.${this.classNames.trigger}`); 12306 this.originalDomain = win.kpi_originalDomain ? win.kpi_originalDomain : ''; 12307 this.pathName = win.copyMovieUrlPathName ? win.copyMovieUrlPathName : ''; 12308 12309 this.url = this.originalDomain + this.pathName; 12310 } 12311 12312 init () { 12313 if (!this.triggers.length) { 12314 return; 12315 } 12316 12317 this.set(); 12318 } 12319 12320 set () {
12321 this.triggers.forEach((trigger) => { 12322 const videoID = trigger.dataset.videoId ? trigger.dataset.videoId : ''; 12323 const triggerBody = trigger.querySelector(`.${this.classNames.triggerBody}`); 12324 12325 if (videoID) { 12326 const searchParams = new URLSearchParams(); 12327 searchParams.set("id", videoID); 12328 const copyUrl = `${this.url}?${searchParams.toString()}`; 12329 12330 trigger.dataset.copyMovieUrl = copyUrl; 12331 } 12332 12333 if (triggerBody) { 12334 triggerBody.dataset.copyLabel = triggerBody.textContent; 12335 } 12336 12337 trigger.addEventListener('click', this.copyUrl.bind(this)); 12338 }); 12339 } 12340 12341 copyUrl(e) { 12342 const trigger = e.currentTarget; 12343 const copyUrl = trigger.dataset.copyMovieUrl; 12344 12345 if (copyUrl) { 12346 navigator.clipboard.writeText(copyUrl).then( 12347 () => { 12348 this.changeLabel(trigger); 12349 } 12350 ); 12351 } 12352 } 12353 12354 changeLabel(trigger) { 12355 const triggerBody = trigger.querySelector(`.${this.classNames.triggerBody}`); 12356 12357 if (!triggerBody) { 12358 return; 12359 } 12360 12361 trigger.classList.add(this.classNames.isCopied); 12362 triggerBody.textContent = triggerBody.dataset.copiedLabel; 12363 12364 setTimeout(() => { 12365 trigger.classList.remove(this.classNames.isCopied); 12366 triggerBody.textContent = triggerBody.dataset.copyLabel; 12367 }, 1000) 12368 } 12369 } 12370 12371 const copyMovieUrl = new CopyMovieUrl(); 12372 copyMovieUrl.init(); 12373 }; 12374 12375 KEYENCE.resetAgreementCheck = function (event) { 12376 class ResetAgreementCheck { 12377 constructor() { 12378 this.classNames = { 12379 target: 'js-changeButtonStateByAgreement-checkbox', 12380 }; 12381 this.targets = doc.querySelectorAll(`.${this.classNames.target}`); 12382 } 12383 12384 init (event) { 12385 if (!this.targets.length) { 12386 return; 12387 } 12388 12389 this.run(event); 12390 } 12391 12392 run (event) { 12393 if (event.persisted) { 12394 this.uncheckAll(); 12395 12396 return; 12397 } 12398 12399 const entries = performance.getEntriesByType('navigation'); 12400 12401 if (!entries.length) { 12402 return; 12403 } 12404 12405 entries.forEach((entry) => { 12406 if (entry.type === 'back_forward') { 12407 this.uncheckAll(); 12408 } 12409 }); 12410 } 12411 12412 uncheckAll () { 12413 this.targets.forEach((target) => { 12414 target.checked = false; 12415 }); 12416 } 12417 } 12418 12419 const resetAgreementCheck = new ResetAgreementCheck(); 12420 resetAgreementCheck.init(event); 12421 }; 12422 12423 KEYENCE.Form = {}; 12424 12425 KEYENCE.Form.TogglePassword = (function () { 12426 var classNames = { 12427 trigger: 'js-togglePassword', 12428 text: 'js-togglePassword-text' 12429 }; 12430 12431 var TogglePassword = {}; 12432 12433 TogglePassword = { 12434 classNames: classNames 12435 }; 12436 12437 TogglePassword.init = function () { 12438 var $button = $('.' + classNames.trigger); 12439 12440 if ($button.length) { 12441 $(doc).on('click', '.' + classNames.trigger, this.onClickButton); 12442 } 12443 }; 12444 12445 TogglePassword.onClickButton = function () { 12446 var targetId = this.dataset.togglePasswordTarget; 12447 var textShow = this.dataset.togglePasswordTextShow; 12448 var textHide = this.dataset.togglePasswordTextHide; 12449 var pwdField; 12450 var textElement; 12451 12452 if (typeof targetId !== 'string' || typeof textShow !== 'string' || typeof textHide !== 'string') { 12453 return; 12454 } 12455 12456 pwdField = doc.getElementById(targetId); 12457 textElement = this.querySelector('.' + classNames.text); 12458 12459 if (!pwdField || !textElement) { 12460 return; 12461 } 12462 12463 if (pwdField.type === 'password') { 12464 pwdField.type = 'text'; 12465 textElement.textContent = textHide; 12466 } else { 12467 pwdField.type = 'password'; 12468 textElement.textContent = textShow; 12469 } 12470 }; 12471 12472 return TogglePassword; 12473 }()); 12474 12475 KEYENCE.Form.SelectCountryNumber = (function () { 12476 var classNames = {
12477 trigger: 'js-selectCountryNumber', 12478 target: 'js-selectCountryNumber-target', 12479 }; 12480 12481 var SelectCountryNumber = { 12482 classNames: classNames, 12483 triggers: null 12484 }; 12485 12486 SelectCountryNumber.init = function () { 12487 var html = doc.querySelector('html'); 12488 12489 this.triggers = doc.querySelectorAll('.' + classNames.trigger); 12490 12491 if (!this.triggers.length || html.classList.contains('gtie9')) { 12492 return; 12493 } 12494 12495 this.attachClickSelectEvent(); 12496 }; 12497 12498 SelectCountryNumber.changeOverrideText = function (trigger) { 12499 var select = trigger.querySelector('.' + classNames.target); 12500 var selectedOption; 12501 12502 if (!select) { 12503 return; 12504 } 12505 12506 selectedOption = select.options[select.selectedIndex]; 12507 12508 if (selectedOption && typeof selectedOption.textContent === 'string') { 12509 trigger.dataset.content = selectedOption.textContent; 12510 } 12511 }; 12512 12513 SelectCountryNumber.attachClickSelectEvent = function () { 12514 var self = this; 12515 12516 Array.prototype.forEach.call(this.triggers, function (trigger) { 12517 self.changeOverrideText(trigger); 12518 12519 trigger.addEventListener('change', function () { 12520 self.changeOverrideText(trigger); 12521 }); 12522 }); 12523 }; 12524 12525 return SelectCountryNumber; 12526 }()); 12527 12528 KEYENCE.Form.FormFilter = (function () { 12529 var FormFilter = {}; 12530 12531 FormFilter.init = function () { 12532 FormFilter.General.init(); 12533 FormFilter.SignIn.init(); 12534 FormFilter.SendEmail.init(); 12535 }; 12536 12537 FormFilter.General = (function () { 12538 var idNames = { 12539 mobileNumberTrigger: 'js-formFilterGeneral-mobileNumber', 12540 emailTtrigger: 'js-formFilterGeneral-email', 12541 wechatTtrigger: 'js-formFilterGeneral-wechat' 12542 }; 12543 12544 var classNames = { 12545 root: 'js-formFilterGeneral', 12546 trigger: 'js-formFilterGeneral-trigger', 12547 isFilterMobilenumber: 'is-filter-mobileNumber', 12548 isFilterEmail: 'is-filter-email', 12549 isFilterWechat: 'is-filter-wechat', 12550 itemMobileNumber: 'js-formFilterGeneralItem-mobileNumber', 12551 itemEmail: 'js-formFilterGeneralItem-email', 12552 itemFilterEmal: 'js-formFilter-registEmail', 12553 runFilterEmail: 'js-runFilter-email', 12554 runFilterMobileNumber: 'js-runFilter-mobileNumber', 12555 isMobileLoginWithPasswordActive: 'is-mobileLoginWithPassword-active', 12556 }; 12557 12558 var urls = { 12559 updateFormElement: '/ajax/registrationAjax/getFormListForMobileNumber/', 12560 }; 12561 12562 var General = { 12563 idNames: idNames, 12564 classNames: classNames, 12565 rootElement: null, 12566 triggerElements: null, 12567 disabledIds: [], 12568 urls: urls, 12569 reloginActionFormName: 'user_reloginActionForm', 12570 mobileInterLockIdList: [], 12571 emailInterLockIdList: [], 12572 }; 12573 12574 var generalMessageEvent = { 12575 handleEvent: null, 12576 target: null, 12577 }; 12578 12579 General.FORM_TYPE = { 12580 EMAIL: 'email', 12581 MOBILE_NUMBER: 'mobileNumber', 12582 WECHAT: 'wechat', 12583 DEFAULT: 'default', 12584 }; 12585 12586 General.init = function () { 12587 this.rootElement = doc.querySelector('.' + classNames.root); 12588 this.triggerElements = doc.querySelectorAll('.' + classNames.trigger); 12589 this.mobileLoginWithPasswordActiveTrigger = doc.querySelector('.' + classNames.isMobileLoginWithPasswordActive); 12590 12591 if (!this.rootElement || !this.triggerElements.length) { 12592 return; 12593 } 12594 12595 this.getDisalbedIds(); 12596 12597 if (this.getFormType() === this.FORM_TYPE.MOBILE_NUMBER) { 12598 FormFilter.General.disableFields('email'); 12599 } else if (this.getFormType() === this.FORM_TYPE.WECHAT) { 12600 FormFilter.General.disableFields('mobileNumber'); 12601 FormFilter.General.disableFields('email'); 12602 } else { 12603 FormFilter.General.disableFields('mobileNumber'); 12604 } 12605 12606 if (doc.querySelector('form[name="' + this.reloginActionFormName + '"]') 12607 && !this.mobileLoginWithPasswordActiveTrigger 12608 && this.getFormType() === this.FORM_TYPE.MOBILE_NUMBER) { 12609 $('#' + win.MultiStepForm.SignIn.idNames.loginPassword).prop('disabled', true); 12610 } 12611 12612 this.setInterlockItems();
12613 this.attachClickFilterEvent(); 12614 this.attachClickShowEmailFormButton(); 12615 this.onMessageAction(); 12616 }; 12617 12618 General.getFormType = function () { 12619 var formType = this.FORM_TYPE.DEFAULT; 12620 12621 if (!this.rootElement) { 12622 return this.FORM_TYPE.DEFAULT; 12623 } 12624 12625 if (this.rootElement.classList.contains(classNames.isFilterEmail)) { 12626 formType = this.FORM_TYPE.EMAIL; 12627 } else if (this.rootElement.classList.contains(classNames.isFilterMobilenumber)) { 12628 formType = this.FORM_TYPE.MOBILE_NUMBER; 12629 } else if (this.rootElement.classList.contains(classNames.isFilterWechat)) { 12630 formType = this.FORM_TYPE.WECHAT; 12631 } 12632 12633 return formType; 12634 }; 12635 12636 General.setInterlockItems = function () { 12637 var InputInterlock = KEYENCE.Form.InputInterlock; 12638 var interLockItems = null; 12639 12640 if (InputInterlock) { 12641 interLockItems = document.querySelectorAll('.' + InputInterlock.classNames.trigger); 12642 } 12643 12644 if (!interLockItems.length) { 12645 return; 12646 } 12647 12648 interLockItems.forEach(function (item) { 12649 if (item.id === 'loginPassword') { 12650 General.mobileInterLockIdList = InputInterlock.getTargetIdListFromTrigger(item); 12651 } else { 12652 General.emailInterLockIdList = InputInterlock.getTargetIdListFromTrigger(item); 12653 } 12654 }); 12655 }; 12656 12657 General.attachClickFilterEvent = function () { 12658 var self = this; 12659 12660 Array.prototype.forEach.call(this.triggerElements, function (trigger) { 12661 trigger.addEventListener('click', self.onClickFilter.bind(this)); 12662 }); 12663 }; 12664 12665 General.getDisalbedIds = function () { 12666 var items = document.querySelectorAll('.' + classNames.itemMobileNumber + ', .' + classNames.itemEmail); 12667 12668 Array.prototype.forEach.call(items, function (item) { 12669 var disabledFormElements = item.querySelectorAll('input:disabled, select:disabled, textarea:disabled'); 12670 12671 Array.prototype.forEach.call(disabledFormElements, function (disabledFormElement) { 12672 General.disabledIds.push(disabledFormElement.id); 12673 }); 12674 }); 12675 }; 12676 12677 General.getFilterFields = function (type) { 12678 var fields; 12679 12680 switch (type) { 12681 case 'mobileNumber': 12682 fields = document.querySelectorAll('.' + classNames.itemMobileNumber); 12683 break; 12684 case 'email': 12685 default: 12686 fields = document.querySelectorAll('.' + classNames.itemEmail); 12687 break; 12688 } 12689 12690 return fields; 12691 }; 12692 12693 General.disableFields = function (type) { 12694 var fields = this.getFilterFields(type); 12695 12696 if (!fields.length) { 12697 return; 12698 } 12699 12700 Array.prototype.forEach.call(fields, function (item) { 12701 var formElements = item.querySelectorAll('input, select, textarea'); 12702 12703 Array.prototype.forEach.call(formElements, function (formElement) { 12704 formElement.disabled = true; 12705 }); 12706 }); 12707 12708 if (!this.mobileLoginWithPasswordActiveTrigger 12709 && (type === 'email' || type === 'asu')) { 12710 $('#' + win.MultiStepForm.SignIn.idNames.registerLoginPassword).prop('disabled', true); 12711 $('#' + win.MultiStepForm.SignIn.idNames.loginPassword).prop('disabled', true); 12712 } 12713 }; 12714 12715 General.enableFields = function (type, isAll) { 12716 var items = this.getFilterFields(type); 12717 12718 Array.prototype.forEach.call(items, function (item) { 12719 var formElements = item.querySelectorAll('input, select, textarea'); 12720 12721 Array.prototype.forEach.call(formElements, function (formElement) { 12722 12723 if (isAll) { 12724 formElement.disabled = false; 12725 } else if (General.disabledIds.indexOf(formElement.id) === -1) { 12726 formElement.disabled = false; 12727 } 12728 }); 12729 }); 12730 12731 if (!this.mobileLoginWithPasswordActiveTrigger 12732 && (type === 'mobile' || type === 'asu')) { 12733 $('#' + win.MultiStepForm.SignIn.idNames.registerLoginPassword).prop('disabled', true); 12734 $('#' + win.MultiStepForm.SignIn.idNames.loginPassword).prop('disabled', true); 12735 } 12736 }; 12737 12738 General.onClickFilter = function (event) { 12739 var self = General; 12740 var currentTarget = event.currentTarget; 12741 var $regArea = null; 12742 var isWechatPreviousCurrent = self.rootElement.classList.contains(classNames.isFilterWechat); 12743 12744 generalMessageEvent.target = currentTarget; 12745 12746 Array.prototype.forEach.call(self.triggerElements, function (trigger) { 12747 trigger.removeAttribute('aria-current'); 12748 }); 12749 12750 currentTarget.setAttribute('aria-current', 'page'); 12751 12752 if (currentTarget.id === self.idNames.wechatTtrigger) { 12753 $('.' + KEYENCE.Form.InputInterlock.classNames.trigger + ':visible').each(function () { 12754 this.value = ''; 12755 }); 12756 } else if (isWechatPreviousCurrent) { 12757 if (currentTarget.id === self.idNames.mobileNumberTrigger) { 12758 self.changeInterLockItemStatus(self.mobileInterLockIdList); 12759 } else { 12760 self.changeInterLockItemStatus(self.emailInterLockIdList); 12761 } 12762 } else { 12763 $('.' + KEYENCE.Form.InputInterlock.classNames.trigger + ':visible').each(function () { 12764 var targetIdList = KEYENCE.Form.InputInterlock.getTargetIdListFromTrigger(this); 12765 12766 this.value = ''; 12767 12768 self.changeInterLockItemStatus(targetIdList); 12769 }); 12770 } 12771 12772 if (!win.AnalyticsViews || !win.MultiStepForm.PreForm.checkMessageTargetForm()) { 12773 $regArea = $('#suz_regArea'); 12774 12775 if (currentTarget.id === idNames.mobileNumberTrigger) { 12776 self.rootElement.classList.remove(classNames.isFilterEmail); 12777 self.rootElement.classList.remove(classNames.isFilterWechat); 12778 self.rootElement.classList.add(classNames.isFilterMobilenumber); 12779 12780 if ($regArea.length) { 12781 self.updateFormElement(true).done(function (data) { 12782 $regArea.html(data); 12783 KeyenceForm.SelectCountryNumber.init(); 12784 self.updateDisabledId(); 12785 self.enableFields('mobileNumber'); 12786 self.disableFields('email'); 12787 }).fail(function () { 12788 self.updateDisabledId(); 12789 self.enableFields('mobileNumber'); 12790 self.disableFields('email'); 12791 }); 12792 } else { 12793 self.enableFields('mobileNumber'); 12794 self.disableFields('email'); 12795 } 12796 12797 win.KeyenceForm.ModalPasswordError.resetErrorCount(); 12798 } else if (currentTarget.id === idNames.wechatTtrigger) { 12799 self.rootElement.classList.remove(classNames.isFilterMobilenumber); 12800 self.rootElement.classList.remove(classNames.isFilterEmail); 12801 self.rootElement.classList.add(classNames.isFilterWechat); 12802 12803 self.disableFields('email'); 12804 self.disableFields('mobileNumber'); 12805 12806 KEYENCE.Form.WechatLoginFlow.run(); 12807 } else { 12808 self.rootElement.classList.remove(classNames.isFilterMobilenumber); 12809 self.rootElement.classList.remove(classNames.isFilterWechat); 12810 self.rootElement.classList.add(classNames.isFilterEmail); 12811 KEYENCE.Form.WechatLoginFlow.resetLoginFlow(); 12812 12813 if ($regArea.length) { 12814 self.updateFormElement(false).done(function (data) { 12815 $regArea.html(data); 12816 KeyenceForm.SelectCountryNumber.init(); 12817 self.updateDisabledId(); 12818 self.enableFields('email'); 12819 self.disableFields('mobileNumber'); 12820 }).fail(function () { 12821 self.updateDisabledId(); 12822 self.enableFields('email'); 12823 self.disableFields('mobileNumber'); 12824 }); 12825 } else { 12826 self.enableFields('email'); 12827 self.disableFields('mobileNumber'); 12828 } 12829 } 12830 } 12831 }; 12832 12833 General.changeInterLockItemStatus = function (idList) { 12834 if (!Array.isArray(idList) || !idList.length) { 12835 return; 12836 } 12837 12838 idList.forEach(function (id) { 12839 var target = doc.getElementById(id); 12840 12841 if (target && target.tagName.toLowerCase() === 'input') { 12842 target.value = ''; 12843 } 12844 12845 KEYENCE.Form.InputInterlock.changeRelatedInputStatus(target, 'enable'); 12846 }); 12847 } 12848 12849 General.attachClickShowEmailFormButton = function () { 12850 var filterEmailButton = doc.querySelector('#' + idNames.emailTtrigger); 12851 12852 $(doc).on('click', '.' + classNames.runFilterEmail, function () { 12853 if (filterEmailButton) { 12854 filterEmailButton.click(); 12855 } 12856 }); 12857 }; 12858 12859 General.onMessageAction = function () { 12860 generalMessageEvent.handleEvent = General.changeGeneralFilterClass; 12861 12862 win.addEventListener('message', generalMessageEvent, false); 12863 }; 12864 12865 General.changeGeneralFilterClass = function (e) { 12866 var $regArea = $('#suz_regArea'); 12867 var WechatLoginFlow = KEYENCE.Form.WechatLoginFlow; 12868 12869 if (e.data === AnalyticsViews.Utility.messageNames.generalForm) { 12870 if (this.target.id === idNames.mobileNumberTrigger) { 12871 General.rootElement.classList.remove(classNames.isFilterEmail); 12872 General.rootElement.classList.remove(classNames.isFilterWechat); 12873 General.rootElement.classList.add(classNames.isFilterMobilenumber); 12874 12875 if ($regArea.length) { 12876 General.updateFormElement(true).done(function (data) { 12877 $regArea.html(data); 12878 KeyenceForm.SelectCountryNumber.init(); 12879 General.updateDisabledId(); 12880 General.enableFields('mobileNumber'); 12881 General.disableFields('email'); 12882 }).fail(function () { 12883 General.updateDisabledId(); 12884 General.enableFields('mobileNumber'); 12885 General.disableFields('email'); 12886 }); 12887 } else { 12888 General.enableFields('mobileNumber'); 12889 General.disableFields('email'); 12890 } 12891 12892 win.KeyenceForm.ModalPasswordError.resetErrorCount(); 12893 } else if (this.target.id === idNames.wechatTtrigger) { 12894 General.rootElement.classList.remove(classNames.isFilterMobilenumber); 12895 General.rootElement.classList.remove(classNames.isFilterEmail); 12896 General.rootElement.classList.add(classNames.isFilterWechat); 12897 12898 General.disableFields('email'); 12899 General.disableFields('mobileNumber'); 12900 12901 WechatLoginFlow.run(); 12902 } else { 12903 General.rootElement.classList.remove(classNames.isFilterMobilenumber); 12904 General.rootElement.classList.remove(classNames.isFilterWechat); 12905 General.rootElement.classList.add(classNames.isFilterEmail); 12906 WechatLoginFlow.resetLoginFlow(); 12907 12908 if ($regArea.length) { 12909 General.updateFormElement(false).done(function (data) { 12910 $regArea.html(data); 12911 KeyenceForm.SelectCountryNumber.init(); 12912 General.updateDisabledId(); 12913 General.enableFields('email'); 12914 General.disableFields('mobileNumber'); 12915 }).fail(function () { 12916 General.updateDisabledId(); 12917 General.enableFields('email'); 12918 General.disableFields('mobileNumber'); 12919 }); 12920 } else { 12921 General.enableFields('email'); 12922 General.disableFields('mobileNumber'); 12923 } 12924 } 12925 12926 if (this.target.id === idNames.mobileNumberTrigger && 12927 WechatLoginFlow.STATE_CODE.current === WechatLoginFlow.STATE_CODE.R10 12928 ) { 12929 win.MultiStepForm.changeCurrentScreenName(win.MultiStepForm.screenNames.checkReg
12929istered); 12930 } else if (this.target.id === idNames.mobileNumberTrigger && 12931 WechatLoginFlow.STATE_CODE.current !== WechatLoginFlow.STATE_CODE.R10 12932 ) { 12933 return; 12934 } else { 12935 win.MultiStepForm.changeCurrentScreenName(win.MultiStepForm.screenNames.initial); 12936 } 12937 } 12938 }; 12939 12940 General.checkRootElement = function () { 12941 if (!this.rootElement) { 12942 return false; 12943 } 12944 12945 return true; 12946 }; 12947 12948 General.updateFormElement = function (isFilterMobileNumber) { 12949 var deferred = new $.Deferred(); 12950 var options; 12951 var url; 12952 12953 url = win.suz_getCurrentDomain() + this.urls.updateFormElement; 12954 12955 options = { 12956 url: url, 12957 type: 'POST', 12958 data: { 12959 mobileNumberTabFlag: isFilterMobileNumber 12960 }, 12961 dataType: 'html', 12962 scriptCharset: 'UTF-8', 12963 }; 12964 12965 $.ajax(options).done(function (data) { 12966 deferred.resolve(data); 12967 $('#js-formStep-totalNum').text($('#hidMaxStepCount').val()); 12968 }).fail(function (jqXHR, textStatus, errorThrown) { 12969 deferred.reject(jqXHR, textStatus, errorThrown); 12970 }); 12971 12972 return deferred.promise(); 12973 }; 12974 12975 General.updateDisabledId = function () { 12976 var regArea = document.getElementById('suz_regArea'); 12977 var items = null; 12978 12979 if (!regArea) { 12980 return; 12981 } 12982 12983 items = regArea.querySelectorAll('.' + classNames.itemMobileNumber + ', .' + classNames.itemEmail); 12984 12985 Array.prototype.forEach.call(items, function (item) { 12986 var disabledFormElements = item.querySelectorAll('input:disabled, select:disabled, textarea:disabled'); 12987 12988 Array.prototype.forEach.call(disabledFormElements, function (disabledFormElement) { 12989 if (!General.disabledIds.includes(disabledFormElement.id)) { 12990 General.disabledIds.push(disabledFormElement.id); 12991 } 12992 }); 12993 }); 12994 }; 12995 12996 return General; 12997 }()); 12998 12999 FormFilter.SignIn = (function () { 13000 var idNames = { 13001 passwordTrigger: 'js-formFilterLogin-password', 13002 smscode: 'js-formFilterLogin-smscode', 13003 loginCountryNumber: 'loginCountryNumber', 13004 }; 13005 13006 var classNames = { 13007 root: 'js-formFilterLogin', 13008 trigger: 'js-formFilterLogin-trigger', 13009 isFilterPassword: 'is-filter-password', 13010 isFilterSmscode: 'is-filter-smscode', 13011 isFilterPasswordItem: 'js-formFilter-loginPassword', 13012 isFilterSMSCodeItem: 'js-formFilter-loginSMSCode', 13013 isFilterEmailItem: 'js-formFilter-loginEmail', 13014 itemPassword: 'js-formFilterLoginItem-password', 13015 itemSMSCode: 'js-formFilterLoginItem-smscode', 13016 isFilterAutoSignUp: 'is-filter-autoSignUp', 13017 itemAutoSignUp: 'js-formFilterLoginItem-autoSignUp', 13018 }; 13019 13020 var SignIn = { 13021 idNames: idNames, 13022 classNames: classNames, 13023 rootElement: null, 13024 triggerElements: null, 13025 disabledIds: [], 13026 $passwordTrigger: $('#' + idNames.passwordTrigger), 13027 $loginCountryNumber: $('#' + idNames.loginCountryNumber), 13028 }; 13029 13030 var asuMessageEvent = { 13031 handleEvent: null, 13032 }; 13033 13034 SignIn.FORM_TYPE = { 13035 EMAIL: 'email', 13036 PASSWORD: 'password', 13037 SMS_CODE: 'smscode', 13038 DEFAULT: 'default', 13039 ASU: 'asu', 13040 }; 13041 13042 SignIn.init = function () { 13043 this.rootElement = doc.querySelector('.' + classNames.root); 13044 this.triggerElements = doc.querySelectorAll('.' + classNames.trigger); 13045 13046 if (!this.rootElement || !this.triggerElements.length) { 13047 return; 13048 } 13049 13050 this.getDisalbedIds(); 13051 13052 if (this.getFormType() === this.FORM_TYPE.PASSWORD) { 13053 FormFilter.SignIn.disableFields('smscode'); 13054 FormFilter.SignIn.disableFields('asu'); 13055 FormFilter.SignIn.enableFields('password', true); 13056 } else if (this.getFormType() === this.FORM_TYPE.SMS_CODE) { 13057 FormFilter.SignIn.disableFields('password'); 13058 FormFilter.SignIn.disableFields('asu'); 13059 FormFilter.SignIn.enableFields('smscode', true); 13060 } else if (this.getFormType() === this.FORM_TYPE.ASU) { 13061 FormFilter.SignIn.disableFields('password'); 13062 FormFilter.SignIn.disableFields('smscode'); 13063 FormFilter.SignIn.enableFields('asu', true); 13064 } 13065 13066 FormFilter.SignIn.$loginCountryNumber.prop('disabled', true); 13067 win.MultiStepForm.SignIn.$loginMobileNumber.prop('disabled', true); 13068 13069 this.attachClickFilterEvent(); 13070 // this.onMessageAction(); 13071 }; 13072 13073 SignIn.attachClickFilterEvent = function () { 13074 var self = this; 13075 13076 Array.prototype.forEach.call(this.triggerElements, function (trigger) { 13077 trigger.addEventListener('click', self.onClickFilter.b
13077ind(this)); 13078 }); 13079 }; 13080 13081 SignIn.onClickFilter = function (event) { 13082 Array.prototype.forEach.call(SignIn.triggerElements, function (trigger) { 13083 trigger.removeAttribute('aria-current'); 13084 }); 13085 13086 event.currentTarget.setAttribute('aria-current', 'page'); 13087 13088 if (event.currentTarget.id === idNames.smscode) { 13089 SignIn.rootElement.classList.remove(classNames.isFilterPassword); 13090 SignIn.rootElement.classList.remove(classNames.isFilterAutoSignUp); 13091 SignIn.rootElement.classList.add(classNames.isFilterSmscode); 13092 $('#' + win.MultiStepForm.SignIn.idNames.loginPassword).prop('disabled', true); 13093 $('#' + win.MultiStepForm.SignIn.idNames.loginVerificationCode).prop('disabled', false); 13094 $('#' + win.MultiStepForm.SignIn.idNames.registerLoginPassword).prop('disabled', true); 13095 13096 win.MultiStepForm.changeCurrentScreenName(win.MultiStepForm.screenNames.loginSMSCode); 13097 } else { 13098 SignIn.rootElement.classList.remove(classNames.isFilterSmscode); 13099 SignIn.rootElement.classList.remove(classNames.isFilterAutoSignUp); 13100 SignIn.rootElement.classList.add(classNames.isFilterPassword); 13101 $('#' + win.MultiStepForm.SignIn.idNames.loginPassword).prop('disabled', false); 13102 $('#' + win.MultiStepForm.SignIn.idNames.loginVerificationCode).prop('disabled', true); 13103 $('#' + win.MultiStepForm.SignIn.idNames.registerLoginPassword).prop('disabled', true); 13104 13105 win.MultiStepForm.changeCurrentScreenName(win.MultiStepForm.screenNames.loginPassword); 13106 } 13107 }; 13108 13109 SignIn.onMessageAction = function () { 13110 asuMessageEvent.handleEvent = SignIn.runValidation; 13111 13112 win.addEventListener('message', asuMessageEvent, false); 13113 }; 13114 13115 SignIn.changeAutoSignUp = function (isAutoSignup, formType) { 13116 if (!isAutoSignup) { 13117 return; 13118 } 13119 13120 SignIn.rootElement.classList.add(classNames.isFilterAutoSignUp); 13121 SignIn.rootElement.classList.remove(classNames.isFilterPassword); 13122 SignIn.rootElement.classList.remove(classNames.isFilterSmscode); 13123 $('#' + win.MultiStepForm.SignIn.idNames.loginPassword).prop('disabled', true); 13124 13125 if (formType === FormFilter.General.FORM_TYPE.MOBILE_NUMBER) { 13126 $('#' + win.MultiStepForm.SignIn.idNames.loginVerificationCode).prop('disabled', false); 13127 } 13128 13129 if (formType === FormFilter.General.FORM_TYPE.MOBILE_NUMBER 13130 && this.mobileLoginWithPasswordActiveTrigger) { 13131 $('#' + win.MultiStepForm.SignIn.idNames.registerLoginPassword).prop('disabled', false); 13132 } 13133 }; 13134 13135 SignIn.clickLoginPasswordTrigger = function () { 13136 if (SignIn.rootElement.classList.contains(classNames.isFilterAutoSignUp) && this.$passwordTrigger.length) { 13137 this.$passwordTrigger.trigger('click'); 13138 } 13139 }; 13140 13141 SignIn.getFormType = function () { 13142 var formType = this.FORM_TYPE.DEFAULT; 13143 13144 if (!this.rootElement) { 13145 return this.FORM_TYPE.DEFAULT; 13146 } 13147 13148 if (this.rootElement.classList.contains(classNames.isFilterPassword)) { 13149 formType = this.FORM_TYPE.PASSWORD; 13150 } else if (this.rootElement.classList.contains(classNames.isFilterSmscode)) { 13151 formType = this.FORM_TYPE.SMS_CODE; 13152 } else if (this.rootElement.classList.contains(classNames.isFilterAutoSignUp)) { 13153 formType = this.FORM_TYPE.ASU; 13154 } 13155 13156 return formType; 13157 }; 13158 13159 SignIn.getDisalbedIds = function () { 13160 var items = document.querySelectorAll('.' + classNames.itemPassword + ', .' + classNames.itemSMSCode); 13161 13162 Array.prototype.forEach.call(items, function (item) { 13163 var disabledFormElements = item.querySelectorAll('input:disabled, select:disabled, textarea:disabled'); 13164 13165 Array.prototype.forEach.call(disabledFormElements, function (disabledFormElement) { 13166 SignIn.disabledIds.push(disabledFormElement.id); 13167 }); 13168 }); 13169 }; 13170 13171 SignIn.getFilterFields = function (type) { 13172 var fields = []; 13173 13174 switch (type) { 13175 case 'password': 13176 fields = document.querySelectorAll('.' + classNames.itemPassword); 13177 break; 13178 case 'smscode': 13179 fields = document.querySelectorAll('.' + classNames.itemSMSCode); 13180 break; 13181 case 'asu': 13182 fields = document.querySelectorAll('.' + classNames.itemAutoSignUp
13182); 13183 break; 13184 default: 13185 break; 13186 } 13187 13188 return fields; 13189 }; 13190 13191 SignIn.disableFields = function (type) { 13192 var fields = this.getFilterFields(type); 13193 13194 if (!fields.length) { 13195 return; 13196 } 13197 13198 Array.prototype.forEach.call(fields, function (item) { 13199 var formElements = item.querySelectorAll('input, select, textarea'); 13200 13201 Array.prototype.forEach.call(formElements, function (formElement) { 13202 formElement.disabled = true; 13203 }); 13204 }); 13205 }; 13206 13207 SignIn.enableFields = function (type, isAll) { 13208 var fields = this.getFilterFields(type); 13209 13210 Array.prototype.forEach.call(fields, function (field) { 13211 var formElements = field.querySelectorAll('input, select, textarea'); 13212 13213 Array.prototype.forEach.call(formElements, function (formElement) { 13214 if (isAll) { 13215 if (formElement.id === win.KeyenceForm.ModalPasswordError.idNames.passwordErrorCountUpField) { 13216 return; 13217 } 13218 13219 formElement.disabled = false; 13220 } else if (SignIn.disabledIds.indexOf(formElement.id) === -1) { 13221 formElement.disabled = false; 13222 } 13223 }); 13224 }); 13225 }; 13226 13227 SignIn.runValidation = function (e) { 13228 var BlankFieldValidator = win.KeyenceForm.BlankFieldValidator; 13229 var preForm = win.MultiStepForm.PreForm; 13230 var formInfo = preForm.getFormInfo(); 13231 var formType = KEYENCE.Form.FormFilter.General.getFormType(); 13232 var targetInput = doc.querySelector('input[name="' + formInfo.name + '"]'); 13233 13234 if (e.data === AnalyticsViews.Utility.messageNames.nextForm) { 13235 if (targetInput) { 13236 if (targetInput.classList.contains('js-check-blank') && BlankFieldValidator.isBlank(targetInput)) { 13237 return; 13238 } 13239 } 13240 13241 if (formType === KEYENCE.Form.FormFilter.General.FORM_TYPE.MOBILE_NUMBER) { 13242 if (preForm.$formCheckMobileNumber.hasClass('js-checkMobileNumberFormat')) { 13243 KeyenceForm.MobileNumberValidator.checkFormat(formInfo.countryCode, formInfo.mobileNumber ).done(function (status) { 13244 if (!status.message) { 13245 win.MultiStepForm.getMobileNumberStatus(formInfo.countryCode, formInfo.mobileNumber).done(function (status) { 13246 if (!status.message) { 13247 SignIn.changeAsuFilterClass(status.isRegistered, formInfo, preForm.isAutoSignupUser(status)); 13248 } 13249 }); 13250 } 13251 }); 13252 } else { 13253 win.MultiStepForm.getMobileNumberStatus(formInfo.countryCode, formInfo.mobileNumber).done(function (status) { 13254 if (!status.message) { 13255 SignIn.changeAsuFilterClass(status.isRegistered, formInfo, PreForm.isAutoSignupUser(status)); 13256 } 13257 }); 13258 } 13259 } 13260 } 13261 }; 13262 13263 SignIn.changeAsuFilterClass = function (isRegistered, formInfo, isAutoSignup) { 13264 if (typeof isRegistered !== 'boolean' || !formInfo) { 13265 return; 13266 } 13267 13268 if (isAutoSignup) { 13269 SignIn.rootElement.classList.add(classNames.isFilterAutoSignUp
13269); 13270 SignIn.rootElement.classList.remove(classNames.isFilterPassword); 13271 SignIn.rootElement.classList.remove(classNames.isFilterSmscode); 13272 $('#' + win.MultiStepForm.SignIn.idNames.loginPassword).prop('disabled', true); 13273 $('#' + win.MultiStepForm.SignIn.idNames.loginVerificationCode).prop('disabled', false); 13274 13275 if (this.mobileLoginWithPasswordActiveTrigger) { 13276 $('#' + win.MultiStepForm.SignIn.idNames.registerLoginPassword).prop('disabled', false); 13277 } 13278 } 13279 }; 13280 13281 return SignIn; 13282 }()); 13283 13284 FormFilter.SendEmail = (function () { 13285 var classNames = { 13286 root: 'js-formFilterSendEmail', 13287 isFilterSignin: 'is-filter-signin', 13288 isFilterAutoSignup: 'is-filter-autoSignUp', 13289 isFilterRelogin: 'is-filter-relogin', 13290 }; 13291 13292 var SendEmail = { 13293 classNames: classNames, 13294 rootElement: null, 13295 }; 13296 13297 SendEmail.FORM_TYPE = { 13298 SIGNIN: 'signin', 13299 ASU: 'autoSignup', 13300 }; 13301 13302 SendEmail.init = function () { 13303 this.root = doc.querySelector(this.classNames.root); 13304 } 13305 13306 SendEmail.changeFilterClass = function (triggerId) { 13307 var multiStepForm = win.MultiStepForm; 13308 13309 if (typeof triggerId !== 'string' || !triggerId) { 13310 return; 13311 } 13312 13313 if (triggerId === multiStepForm.SignIn.idNames.btnCheckSendEmail) { 13314 if (KEYENCE.Form.commonSendVerificationEmail.config.isSendEmailActive) { 13315 multiStepForm.SendEmail.root.classList.add(classNames.isFilterRelogin); 13316 multiStepForm.SendEmail.root.classList.remove(classNames.isFilterSignin); 13317 multiStepForm.SendEmail.root.classList.remove(classNames.isFilterAutoSignup); 13318 13319 return; 13320 } 13321 13322 multiStepForm.SendEmail.root.classList.add(classNames.isFilterSignin); 13323 multiStepForm.SendEmail.root.classList.remove(classNames.isFilterAutoSignup); 13324 multiStepForm.SendEmail.root.classList.remove(classNames.isFilterRelogin); 13325 } else if (triggerId === multiStepForm.SignIn.idNames.asuSendMailButton) { 13326 multiStepForm.SendEmail.root.classList.add(classNames.isFilterAutoSignup); 13327 multiStepForm.SendEmail.root.classList.remove(classNames.isFilterSignin); 13328 multiStepForm.SendEmail.root.classList.remove(classNames.isFilterRelogin); 13329 } 13330 }; 13331 13332 return SendEmail; 13333 }()); 13334 13335 return FormFilter; 13336 }()); 13337 13338 KEYENCE.Form.WechatLoginFlow = (function () { 13339 class WechatLoginFlow { 13340 constructor() { 13341 this.idNames = { 13342 formRoot: 'js-multiStepForm', 13343 } 13344 13345 this.classNames = { 13346 root: 'js-displayLoginFormWechatCode', 13347 sunCodeImage: 'js-displayLoginFormWechatCode-target', 13348 reloadButton: 'js-displayLoginFormWechatCode-reloadTrigger', 13349 loadingIndicator: 'js-displayLoginFormWechatCode-loadingIndicator', 13350 errorText: 'js-displayLoginFormWechatCode-errorText', 13351 isLoginActive: 'is-wechatLoginFlow-active', 13352 filterRoot: 'js-formFilterGeneral', 13353 }; 13354 13355 this.ajaxUrl = { 13356 createSunCode: '/ajax/userAjax/wechatSunCodeImage', 13357 observeState: '/ajax/userAjax/wechatLoginState', 13358 getStatus: '/ajax/userAjax/getStatusForWechat', 13359 checkVerificationCode: '/ajax/registrationAjax/checkVerificationCode/' 13360 }; 13361 13362 this.STATE_CODE = { 13363 NA: 'NA', 13364 R10: 'R10', 13365 R20: 'R20', 13366 A10: 'A10', 13367 L10: 'L10', 13368 L20: 'L20', 13369 current: '', 13370 }; 13371 13372 this.config = { 13373 isObserveStopped: false, 13374 timeoutMs: 10000, 13375 observeTimeLimit: 900000, 13376 observeResendInterval: 5000, 13377 currentCreateCodeToken: null, 13378 currentObserveToken: null, 13379 } 13380 13381 this.originalDomain = win.kpi_originalDomain ?? location.origin; 13382 this.MultiStepForm = null; 13383 this.Filter = null; 13384 this.SMSCodeButton = null; 13385 this.CommonSubmitValidator = null; 13386 13387 this.formRoot = doc.getElementById(this.idNames.formRoot); 13388 this.root = doc.querySelector(`.${this.classNames.root}`); 13389 this.sunCodeImage = doc.querySelector(`.${this.classNames.sunCodeImage}`); 13390 this.reloadButton = doc.querySelector(`.${this.classNames.reloadButton}`); 13391 this.loadingIndicator = doc.querySelector(`.${this.classNames.loadingIndicator}`); 13392 this.errorText = doc.querySelector(`.${this.classNames.errorText}`); 13393 this.filterRoot = doc.querySelector(`.${this.classNames.filterRoot}`); 13394 this.cacheId = doc.getElementById('wechatCacheId'); 13395 this.filterMobileButton = null; 13396 this.filterWechatButton = null; 13397 this.filterTarget = null; 13398 this.loginCountryCode = null; 13399 this.loginMobileNumber = null; 13400 } 13401 13402 init() { 13403 if ((!this.formRoot && !this.filterRoot) || 13404 !this.root || 13405 !this.cacheId 13406 ) { 13407 return; 13408 } 13409 13410 this.MultiStepForm = win.MultiStepForm; 13411 this.Filter = KEYENCE.Form.FormFilter; 13412 this.SMSCodeButton = KEYENCE.Form.SMSCodeButton; 13413 13414 if (!this.MultiStepForm || 13415 !this.Filter || 13416 !this.SMSCodeButton 13417 ) { 13418 return; 13419 } 13420 13421 this.attachEvent(); 13422 this.setObserverConfig(); 13423 this.filterMobileButton = doc.querySelector(`#${this.Filter.General.idNames.mobileNumberTrigger}`); 13424 this.filterWechatButton = doc.querySelector(`#${this.Filter.General.idNames.wechatTtrigger}`); 13425 this.filterTarget = this.formRoot ?? this.filterRoot; 13426 13427 if (this.filterTarget.classList.contains(this.Filter.General.classNames.isFilterWechat)) { 13428 this.run(); 13429 } 13430 } 13431 13432 attachEvent() { 13433 if (this.reloadButton) { 13434 this.reloadButton.addEventListener('click', this.onClickReload.bind(this), false); 13435 } 13436 } 13437 13438 onClickReload(event) { 13439 event.preventDefault(); 13440 this.run(); 13441 } 13442 13443 setObserverConfig() { 13444 const timeLimit = this.config.observeTimeLimit; 13445 13446 if (typeof win.wechatOperationSettings?.timeLimit === 'number') { 13447 this.config.observeTimeLimit = win.wechatOperationSettings.timeLimit; 13448 13449 if (this.config.observeTimeLimit > timeLimit) { 13450 this.config.observeTimeLimit = timeLimit; 13451 } 13452 } 13453 13454 if (typeof win.wechatOperationSettings?.resendInterval === 'number') { 13455 this.config.resendInterval = win.wechatOperationSettings.resendInterval; 13456 } 13457 } 13458 13459 async run() { 13460 if (!this.sunCodeImage || 13461 !this.reloadButton || 13462 !this.loadingIndicator || 13463 !this.errorText 13464 ) { 13465 return; 13466 } 13467 13468 const token = Symbol(); 13469 this.config.currentCreateCodeToken = token; 13470 this.showLoadingIndicator(); 13471 13472 try { 13473 const result = await this.createSunCode(); 13474 13475 if (token !== this.config.currentCreateCodeToken) { 13476 return; 13477 } 13478 13479 if (result.status === true) { 13480 if (result.sunCodeImage) { 13481 this.sunCodeImage.setAttribute('src', `data:image/jpeg;base64,${result.sunCodeImage}`); 13482 } 13483 13484 this.loadingIndicator.classList.add(this.MultiStepForm.classNames.isHide); 13485 13486 await this.retry(this.config.observeResendInterval); 13487 13488 if (token !== this.config.currentCreateCodeToken || 13489 !this.filterTarget.classList.contains(this.Filter.General.classNames.isFilterWechat) 13490 ) { 13491 return; 13492 } 13493 13494 await this.observeStatus(result.wechatCacheId, token); 13495 } else { 13496 this.showReloadButton(); 13497 } 13498 } catch (error) { 13499 if (token !== this.config.currentCreateCodeToken) { 13500 return; 13501 } 13502 13503 this.showReloadButton(); 13504 } 13505 } 13506 13507 async createSunCode() { 13508 const url = this.originalDomain + this.ajaxUrl.createSunCode; 13509 13510 return await this.fetchJson(url, { 13511 method: 'GET', 13512 headers: { 13513 'Accept': 'application/json' 13514 } 13515 }, this.config.timeoutMs); 13516 } 13517 13518 async observeStatus(cacheId, createCodeToken) { 13519 if (!cacheId || !createCodeToken) { 13520 return; 13521 } 13522 13523 this.config.isObserveStopped = false; 13524 13525 const duration = Date.now() + this.config.observeTimeLimit; 13526 const url = this.originalDomain + this.ajaxUrl.observeState; 13527 const formData = new FormData(); 13528 const token = Symbol(); 13529 13530 formData.append('wechatCacheId', cacheId); 13531 this.config.currentObserveToken = token; 13532 13533 const requestOptions = { 13534 method: 'POST', 13535 body: formData, 13536 }; 13537 13538 while (Date.now() < duration && 13539 !this.config.isObserveStopped && 13540 this.filterTarget.classList.contains(this.Filter.General.classNames.isFilterWechat) && 13541 token === this.config.currentObserveToken && 13542 createCodeToken === this.config.currentCreateCodeToken 13543 ) { 13544 let result = null; 13545 13546 try { 13547 result = await this.fetchJson(url, requestOptions, this.config.timeoutMs); 13548 } catch (error) { 13549 if (token !== this.config.currentObserveToken || 13550 createCodeToken !== this.config.currentCreateCodeToken 13551 ) { 13552 return; 13553 } 13554 13555 this.showReloadButton(); 13556 this.config.isObserveStopped = true; 13557 13558 return; 13559 } 13560 13561 if (token !== this.config.currentObserveToken || 13562 createCodeToken !== this.config.currentCreateCodeToken 13563 ) { 13564 return; 13565 } 13566 13567 if (this.config.isObserveStopped) { 13568 return; 13569 } 13570 13571 if (result.message && 13572 (this.SMSCodeButton.maxCountOver.errorFlag === result.maxCntOverFlg) 13573 ) { 13574 this.showErrorText(result.message); 13575 this.config.isObserveStopped = true; 13576 13577 return; 13578 } 13579 13580 if (!result.status || !result.wechatStateCode) { 13581 this.showReloadButton(); 13582 this.config.isObserveStopped = true; 13583 13584 return; 13585 } 13586 13587 const code = result.wechatStateCode; 13588 13589 if (code === this.STATE_CODE.NA) { 13590 if (this.config.isObserveStopped) { 13591 return; 13592 } 13593 13594 await this.retry(this.config.observeResendInterval); 13595 13596 continue; 13597 } 13598 13599 this.CommonSubmitValidator = KEYENCE.Form.CommonSubmitValidator; 13600 13601 if (code === this.STATE_CODE.R10) { 13602 if (this.CommonSubmitValidator?.isLoginActionForm()) { 13603 this.showErrorText(); 13604 13605 return; 13606 } 13607 13608 this.STATE_CODE.current = code; 13609 13610 if (this.filterMobileButton) { 13611 this.filterMobileButton.click(); 13612 } 13613 13614 this.filterTarget.classList.add(this.classNames.isLoginActive); 13615 this.cacheId.value = cacheId; 13616 13617 return; 13618 } 13619 13620 if (code === this.STATE_CODE.L20 || code === this.STATE_CODE.A10) { 13621 this.STATE_CODE.current = code; 13622 this.showLoginForm(code, result.mobileCountryId, result.mobileNumber); 13623 this.cacheId.value = cacheId; 13624 13625 return; 13626 } 13627 13628 if (code === this.STATE_CODE.R20) { 13629 if (this.CommonSubmitValidator?.isLoginActionForm() && 13630 code === this.STATE_CODE.R20 13631 ) { 13632 this.showErrorText(); 13633 13634 return; 13635 } 13636 13637 this.STATE_CODE.current = code; 13638 this.showRegisterForm(code, result.mobileCountryId, result.mobileNumber); 13639 this.cacheId.value = cacheId; 13640 13641 return; 13642 } 13643 13644 if (code === this.STATE_CODE.L10) { 13645 this.STATE_CODE.current = code; 13646 this.submitLoginForm(cacheId, result.mobileCountryId, result.mobileNumber); 13647 13648 return; 13649 } 13650 13651 this.showReloadButton(); 13652 return; 13653 } 13654 13655 if (token === this.config.currentObserveToken && 13656 createCodeToken === this.config.currentCreateCodeToken 13657 ) { 13658 this.showReloadButton(); 13659 } 13660 } 13661 13662 async getStatus(cacheId, mobileCountryId, mobileNumber) { 13663 if (!cacheId || 13664 !mobileCountryId || 13665 !mobileNumber 13666 ) { 13667 return; 13668 } 13669 13670 const url = this.originalDomain + this.ajaxUrl.getStatus; 13671 const formData = new FormData(); 13672 13673 formData.append('wechatCacheId', cacheId); 13674 formData.append('mobileCountryId', mobileCountryId); 13675 formData.append('mobileNumber', mobileNumber); 13676 13677 const requestOptions = { 13678 method: 'POST', 13679 body: formData, 13680 }; 13681 13682 try { 13683
13683const result = await this.fetchJson(url, requestOptions, this.config.timeoutMs); 13684 13685 return result; 13686 } catch (error) { 13687 throw new Error('status: false'); 13688 } 13689 } 13690 13691 async fetchJson(url, requestOptions, timeOutLimit = this.config.timeoutMs) { 13692 const controller = new AbortController(); 13693 const timeOutTimer = setTimeout(() => { 13694 controller.abort(); 13695 }, timeOutLimit); 13696 13697 try { 13698 const response = await fetch(url, { 13699 ...requestOptions, 13700 signal: controller.signal, 13701 }); 13702 13703 if (!response.ok) { 13704 throw new Error('Network response was not OK'); 13705 } 13706 13707 return await response.json(); 13708 } finally { 13709 clearTimeout(timeOutTimer); 13710 } 13711 } 13712 13713 async checkVerificationCode(mobileCountryId, mobileNumber, verificationCode) { 13714 if (!mobileCountryId || 13715 !mobileNumber || 13716 !verificationCode 13717 ) { 13718 return; 13719 } 13720 13721 const url = this.originalDomain + this.ajaxUrl.checkVerificationCode; 13722 const formData = new FormData(); 13723 13724 formData.append('mobileCountryId', mobileCountryId); 13725 formData.append('mobileNumber', mobileNumber); 13726 formData.append('verificationCode', verificationCode); 13727 13728 const requestOptions = { 13729 method: 'POST', 13730 body: formData, 13731 }; 13732 13733 try { 13734 const result = await this.fetchJson(url, requestOptions, this.config.timeoutMs); 13735 13736 return result; 13737 } catch (error) { 13738 throw new Error('status: false'); 13739 } 13740 } 13741 13742 retry(interval) { 13743 return new Promise((resolve) => { 13744 setTimeout(() => { 13745 resolve(); 13746 }, interval); 13747 }); 13748 } 13749 13750 showLoadingIndicator() { 13751 this.loadingIndicator.classList.remove(this.MultiStepForm.classNames.isHide); 13752 this.errorText.classList.add(this.MultiStepForm.classNames.isHide); 13753 this.reloadButton.classList.add(this.MultiStepForm.classNames.isHide); 13754 } 13755 13756 showReloadButton() { 13757 this.reloadButton.classList.remove(this.MultiStepForm.classNames.isHide); 13758 this.loadingIndicator.classList.add(this.MultiStepForm.classNames.isHide); 13759 } 13760 13761 showErrorText(text) { 13762 this.reloadButton.classList.remove(this.MultiStepForm.classNames.isHide); 13763 this.loadingIndicator.classList.add(this.MultiStepForm.classNames.isHide); 13764 13765 const errorMessage = text || 13766 this.errorText.dataset.messageMobileNumberRegistration || 13767 ''; 13768 13769 if (errorMessage) { 13770 this.errorText.textContent = errorMessage; 13771 this.errorText.classList.remove(this.MultiStepForm.classNames.isHide); 13772 } 13773 } 13774 13775 showLoginForm(statusCode, mobileCountryId, mobileNumber, formInfo) { 13776 if (!statusCode) { 13777 return; 13778 } 13779 13780 const CommonSubmitValidator = KEYENCE.Form.CommonSubmitValidator; 13781 13782 if (this.filterMobileButton) { 13783 this.filterMobileButton.click(); 13784 } 13785 13786 this.filterTarget.classList.add(this.classNames.isLoginActive); 13787 13788 if (statusCode === this.STATE_CODE.A10 && !CommonSubmitValidator?.isLoginActionForm()) { 13789 this.Filter.SignIn.changeAutoSignUp(true, this.Filter.General.FORM_TYPE.MOBILE_NUMBER); 13790 13791 this.MultiStepForm.changeCurrentScreenName('asu'); 13792 } else { 13793 this.MultiStepForm.changeCurrentScreenName('login-smsCode'); 13794 } 13795 13796 this.setLoginMobileNumber(mobileCountryId, mobileNumber, formInfo); 13797 13798 this.MultiStepForm.show(this.MultiStepForm.SignIn.$root); 13799 this.MultiStepForm.hide(this.MultiStepForm.PreForm.$root); 13800 13801 if (CommonSubmitValidator?.isLoginActionForm()) { 13802 this.loginCountryCode?.setAttribute('disabled', true); 13803 this.loginMobileNumber?.setAttribute('disabled', true); 13804 } 13805 13806 let verificationCodeCreateButton = null; 13807 13808 if (!this.MultiStepForm || !this.SMSCodeButton) { 13809 return; 13810 } 13811
13812 const signInForm = doc.getElementById(this.MultiStepForm.SignIn.idNames.signinForm); 13813 13814 if (signInForm) { 13815 verificationCodeCreateButton = signInForm.querySelector(`.${this.SMSCodeButton.classNames.trigger}`); 13816 } else { 13817 verificationCodeCreateButton = doc.querySelector(`.${this.SMSCodeButton.classNames.trigger}`); 13818 } 13819 13820 if (verificationCodeCreateButton) { 13821 this.startVerificationCountDown(verificationCodeCreateButton, statusCode); 13822 } 13823 } 13824 13825 showRegisterForm(statusCode, mobileCountryId, mobileNumber, formInfo) { 13826 if (!statusCode) { 13827 return; 13828 } 13829 13830 this.filterTarget.classList.add(this.classNames.isLoginActive); 13831 13832 if (formInfo) { 13833 this.setRegisterForm(statusCode, mobileCountryId, mobileNumber, formInfo); 13834 } else { 13835 this.Filter.General.rootElement.classList.remove(this.Filter.General.classNames.isFilterEmail); 13836 this.Filter.General.rootElement.classList.remove(this.Filter.General.classNames.isFilterWechat); 13837 this.Filter.General.rootElement.classList.add(this.Filter.General.classNames.isFilterMobilenumber); 13838 13839 this.filterMobileButton?.setAttribute('aria-current', 'page'); 13840 this.filterWechatButton?.removeAttribute('aria-current'); 13841 13842 const registerArea = doc.getElementById('suz_regArea'); 13843 13844 if (!registerArea) { 13845 return; 13846 } 13847 13848 this.Filter.General.updateFormElement(true).done(function (data) { 13849 $(registerArea).html(data); 13850 KEYENCE.Form.SelectCountryNumber?.init(); 13851 KEYENCE.Form.FormFilter.General.updateDisabledId(); 13852 KEYENCE.Form.FormFilter.General.enableFields('mobileNumber'); 13853 KEYENCE.Form.FormFilter.General.disableFields('email'); 13854 KEYENCE.Form.WechatLoginFlow.setRegisterForm(statusCode, mobileCountryId, mobileNumber, formInfo); 13855 }).fail(function () { 13856 KEYENCE.Form.FormFilter.General.updateDisabledId(); 13857 KEYENCE.Form.FormFilter.General.enableFields('mobileNumber'); 13858 KEYENCE.Form.FormFilter.General.disableFields('email'); 13859 }); 13860 } 13861 } 13862 13863 setRegisterForm(statusCode, mobileCountryId, mobileNumber, formInfo) { 13864 if (!this.MultiStepForm || !this.SMSCodeButton) { 13865 return; 13866 } 13867 13868 const multiStepForm = this.MultiStepForm; 13869 13870 this.setRegisterMobileNumber(mobileCountryId, mobileNumber, formInfo); 13871 13872 multiStepForm.Register.showPanelByIndex(0); 13873 multiStepForm.show(multiStepForm.Register.$root); 13874 multiStepForm.hide(multiStepForm.PreForm.$root); 13875 multiStepForm.changeCurrentScreenName(multiStepForm.screenNames.step1); 13876 13877 let verificationCodeCreateButton = null; 13878 13879 const RegisterForm = doc.getElementById(multiStepForm.Register.idNames.regForm); 13880 13881 if (RegisterForm) { 13882 verificationCodeCreateButton = RegisterForm.querySelector(`.${this.SMSCodeButton.classNames.trigger}`); 13883 } 13884 13885 if (verificationCodeCreateButton) { 13886 this.startVerificationCountDown(verificationCodeCreateButton, statusCode); 13887 } 13888 } 13889 13890 setRegisterMobileNumber(mobileCountryId, mobileNumber, formInfo) { 13891 if (!mobileCountryId || !mobileNumber) { 13892 return; 13893 } 13894 13895 this.registerCountryCode = null; 13896 this.registerMobileNumber = null; 13897 this.checkMobileNumber = null; 13898 13899 this.registerCountryCode = doc.getElementById('suz_mobileCountryNumber'); 13900 this.registerMobileNumber = doc.getElementById('suz_mobileNumber'); 13901 const mobileCountrySelector = doc.getElementById('checkCountryNumber'); 13902 this.checkMobileNumber = doc.getElementById('checkMobileNumber'); 13903 let countryCode = ''; 13904 13905 if (!this.registerCountryCode 13906 || !this.registerMobileNumber 13907 || !this.checkMobileNumber) { 13908 return; 13909 } 13910 13911 if (formInfo) { 13912 this.MultiStepForm.clearInputError(formInfo.name, false); 13913 countryCode = formInfo.mobileNumberCode; 13914 } else { 13915 const targetOption = mobileCountrySelector?.querySelector(`option[value="${mobileCountryId}"]`); 13916 13917 if (targetOption) { 13918 countryCode = targetOption.dataset.code; 13919 } 13920 } 13921 13922 this.registerCountryCode.value = countryCode; 13923 this.registerCountryCode.disabled = true; 13924 this.registerMobileNumber.value = mobileNumber; 13925 this.registerMobileNumber.disabled = true; 13926 this.checkMobileNumber.value = mobileNumber; 13927 } 13928 13929 startVerificationCountDown(button, statusCode) { 13930 if (!button) { 13931 return; 13932 } 13933 13934 if (this.SMSCodeButton.timeIds[button.id]?.timeId) { 13935 win.clearInterval(this.SMSCodeButton.timeIds[button.id].timeId); 13936 delete this.SMSCodeButton.timeIds[button.id]; 13937 } 13938 13939 this.SMSCodeButton.disableButton(button); 13940 this.SMSCodeButton.replaceButtonText(button, button.getAttribute('data-resend-text'));
13941 this.SMSCodeButton.toggleResendCount(button, 'show'); 13942 this.SMSCodeButton.countResendTime(button); 13943 13944 if (statusCode === this.STATE_CODE.R10) { 13945 return; 13946 } 13947 13948 if (this.MultiStepForm.PreForm.$btnMobileContinue[0]) { 13949 const mobileContinueButton = this.MultiStepForm.PreForm.$btnMobileContinue[0]; 13950 13951 if (mobileContinueButton && this.SMSCodeButton.timeIds[mobileContinueButton.id]?.timeId) { 13952 win.clearInterval(this.SMSCodeButton.timeIds[mobileContinueButton.id].timeId); 13953 delete this.SMSCodeButton.timeIds[mobileContinueButton.id]; 13954 } 13955 13956 this.SMSCodeButton.disableButton(mobileContinueButton); 13957 this.SMSCodeButton.replaceButtonText(mobileContinueButton, mobileContinueButton.getAttribute('data-resend-text')); 13958 this.SMSCodeButton.toggleResendCount(mobileContinueButton, 'show'); 13959 this.SMSCodeButton.countResendTime(mobileContinueButton); 13960 } 13961 } 13962 13963 submitLoginForm(cacheId, mobileCountryId, mobileNumber, formInfo) { 13964 if (!cacheId) { 13965 return; 13966 } 13967 13968 const CommonSubmitValidator = KEYENCE.Form.CommonSubmitValidator; 13969 13970 this.cacheId.value = cacheId; 13971 this.filterTarget.classList.add(this.classNames.isLoginActive); 13972 13973 if (!this.MultiStepForm) { 13974 return; 13975 } 13976 13977 const formTypeSignIn = this.Filter.SignIn.getFormType(); 13978 const loginButton = doc.getElementById('js-form-regBtnSignin'); 13979 const MyKeyenceReloginButton = doc.querySelector('input[type="submit"]'); 13980 13981 if (formTypeSignIn === this.Filter.SignIn.FORM_TYPE.SMS_CODE) { 13982 this.Filter.SignIn.enableFields('smscode', true); 13983 this.MultiStepForm.SignIn.$loginVerificationCode.prop('disable', true); 13984 } 13985 13986 this.setLoginMobileNumber(mobileCountryId, mobileNumber, formInfo); 13987 13988 if (CommonSubmitValidator?.isLoginActionForm() && this.filterMobileButton) { 13989 this.filterMobileButton.click(); 13990 } 13991 13992 if (loginButton) { 13993 loginButton.click(); 13994 } else if (MyKeyenceReloginButton) { 13995 CommonSubmitValidator?.$targetForm[0]?.requestSubmit(MyKeyenceReloginButton); 13996 } 13997 13998 return; 13999 } 14000 14001 setLoginMobileNumber(mobileCountryId, mobileNumber, formInfo) { 14002 if (!mobileCountryId || !mobileNumber) { 14003 return; 14004 } 14005 14006 this.loginCountryCode = null; 14007 this.loginMobileNumber = null; 14008 14009 this.loginCountryCode = doc.getElementById('loginCountryNumber'); 14010 this.loginMobileNumber = doc.getElementById('loginMobileNumber'); 14011 const mobileCountrySelector = doc.getElementById('checkCountryNumber'); 14012 const loginFullMobileNumber = doc.getElementById('loginFullMobileNumber'); 14013 let countryCode = ''; 14014 14015 if (!this.loginCountryCode || !this.loginMobileNumber) { 14016 return; 14017 } 14018 14019 if (formInfo) { 14020 this.MultiStepForm.clearInputError(formInfo.name, false); 14021 countryCode = formInfo.mobileNumberCode; 14022 } else { 14023 const targetOption = mobileCountrySelector?.querySelector(`option[value="${mobileCountryId}"]`); 14024 14025 if (targetOption) { 14026 countryCode = targetOption.dataset.code; 14027 } 14028 } 14029 14030 this.loginCountryCode.value = countryCode; 14031 this.loginMobileNumber.value = mobileNumber; 14032 14033 if (loginFullMobileNumber) { 14034 loginFullMobileNumber.value = countryCode + mobileNumber; 14035 } 14036 } 14037 14038 getMobileCountryId(mobileCountryCode) { 14039 if (!mobileCountryCode) { 14040 return; 14041 } 14042 14043 const mobileCountrySelector = doc.getElementById('checkCountryNumber'); 14044 let mobileCountryId = ''; 14045 14046 if (mobileCountrySelector) { 14047 mobileCountryId = mobileCountrySelector.querySelector(`option[data-code="${mobileCountryCode}"]`); 14048 } 14049 14050 return mobileCountryId.value; 14051 } 14052 14053 isLoginActive() { 14054 return this.filterTarget?.classList.contains(this.classNames.isLoginActive); 14055 } 14056 14057 resetLoginFlow() { 14058 if (!this.isLoginActive()) { 14059 return; 14060 } 14061 14062 this.cacheId.value = ''; 14063 this.filterTarget.classList.remove(this.classNames.isLoginActive); 14064 this.STATE_CODE.current = ''; 14065 } 14066 } 14067 14068 return new WechatLoginFlow(); 14069 })(); 14070 14071 KEYENCE.Form.InputInterlock = (function () { 14072 var classNames = {
14073 trigger: 'js-input-interlock', 14074 group: 'js-input-interlockGroup', 14075 item: 'js-input-interlockItem', 14076 isHide: 'is-hide' 14077 }; 14078 14079 var InputInterlock = { 14080 triggerElements: null, 14081 classNames: classNames 14082 }; 14083 14084 InputInterlock.init = function () { 14085 var self = this; 14086 var $triggers = $('.' + classNames.trigger); 14087 var $targetForm = $('form[name="user_reloginActionForm"], form[name="user_profile_withdrawActionForm"]'); 14088 14089 $(doc).off('input.formInterlock').on('input.formInterlock', '.' + classNames.trigger, this.onInput.bind(self)); 14090 14091 if ($triggers.length && $targetForm.length) { 14092 $triggers.each(function (index, item) { 14093 var style = getComputedStyle(item); 14094 14095 if ($(item).val() !== "") { 14096 if (style && 14097 (item.offsetParent === null || 14098 style.visibility === 'hidden' || 14099 style.opacity === '0') 14100 ) { 14101 return; 14102 } 14103 14104 $(item).trigger('input'); 14105 14106 return false; 14107 } 14108 }); 14109 } 14110 }; 14111 14112 InputInterlock.onInput = function (event) { 14113 var target = event.currentTarget; 14114 var targetIdList = this.getTargetIdListFromTrigger(target); 14115 14116 if (!targetIdList.length) { 14117 return; 14118 } 14119 14120 if (target.value.length > 0) { 14121 targetIdList.forEach(function (id) { 14122 InputInterlock.changeRelatedInputStatus(document.getElementById(id), 'disable'); 14123 }); 14124 } else if (target.value.length === 0) { 14125 targetIdList.forEach(function (id) { 14126 InputInterlock.changeRelatedInputStatus(document.getElementById(id), 'enable'); 14127 }); 14128 } 14129 }; 14130 14131 InputInterlock.changeRelatedInputStatus = function (targetElement, status) { 14132 if (!targetElement || typeof status !== 'string') { 14133 return; 14134 } 14135 14136 if (status === 'enable') { 14137 targetElement.disabled = false; 14138 14139 if (targetElement.tagName.toLowerCase() === 'button') { 14140 targetElement.removeAttribute('aria-disabled'); 14141 } 14142 14143 InputInterlock.toggleItems(targetElement, 'show'); 14144 } else if (status === 'disable') { 14145 targetElement.disabled = true; 14146 14147 if (targetElement.name) { 14148 win.MultiStepForm.clearInputError(targetElement.name, true); 14149 } 14150 14151 if (targetElement.tagName.toLowerCase() === 'button') { 14152 targetElement.setAttribute('aria-disabled', true); 14153 } 14154 14155 InputInterlock.toggleItems(targetElement, 'hide'); 14156 } 14157 }; 14158 14159 InputInterlock.getTargetIdListFromTrigger = function (target) { 14160 var idList = []; 14161 14162 if (target && target.dataset.interlock) { 14163 idList = target.dataset.interlock.split(','); 14164 } 14165 14166 return idList; 14167 }; 14168 14169 InputInterlock.toggleItems = function (targetInputItem, status) { 14170 var $interlockGroup; 14171 var $targetItems; 14172 14173 if (!targetInputItem || typeof status !== 'string') { 14174 return; 14175 } 14176 14177 $interlockGroup = $(targetInputItem).closest('.' + classNames.group); 14178 14179 if ($interlockGroup.length) { 14180 $targetItems = $interlockGroup.find('.' + classNames.item); 14181 } 14182 14183 if (!$targetItems || !$targetItems.length) { 14184 return 14185 } 14186 14187 if (status === 'hide') { 14188 $targetItems.addClass(classNames.isHide); 14189 } else if (status === 'show') { 14190 $targetItems.removeClass(classNames.isHide); 14191 } 14192 }; 14193 14194 return InputInterlock; 14195 }()); 14196 14197 KEYENCE.Form.SMSCodeButton = (function () { 14198 var classNames = {
14199 trigger: 'js-sendSMSCode', 14200 text: 'js-sendSMSCode-text', 14201 resendCount: 'js-sendSMSCode-resendCount', 14202 resendCountNumber: 'js-sendSMSCode-resendCountNumber', 14203 isHide: 'is-hide' 14204 }; 14205 14206 var urls = { 14207 createVerificationCode: '/ajax/registrationAjax/createVerificationCode/', 14208 getVerificationCodeRemainingTime: '/ajax/registrationAjax/getVerificationCodeRemainingTime/', 14209 }; 14210 14211 var SMSCodeButton = { 14212 urls: urls, 14213 classNames: classNames, 14214 defaultResendTime: 10, 14215 timeIds: {}, 14216 targetButtons: { 14217 preformMobile: 'js-form-btnCheckMobileRegistered', 14218 mobile: 'getCode', 14219 email: 'getEmailCode', 14220 }, 14221 maxCountOver: { 14222 errorFlag: '1', 14223 mobileNumberInputIds: { 14224 multiStep: 'checkMobileNumber', 14225 relogin: 'loginMobileNumber', 14226 profile: 'suz_mobileNumber', 14227 }, 14228 isLimitOver: false, 14229 targetIds: [], 14230 limitedMobileNumber: '', 14231 }, 14232 }; 14233 14234 SMSCodeButton.init = function () { 14235 var self = this; 14236 14237 $(doc).off('click.formSMSCodeButton').on('click.formSMSCodeButton', '.' + classNames.trigger, self.onclick.bind(self)); 14238 this.showResendRemainingTime(); 14239 this.restoreMaxCountOver(); 14240 }; 14241 14242 SMSCodeButton.replaceButtonText = function (button, text) { 14243 var textElement; 14244 14245 if (!button || typeof text !== 'string') { 14246 return; 14247 } 14248 14249 textElement = button.querySelector('.' + classNames.text); 14250 14251 if (!textElement) { 14252 return; 14253 } 14254 14255 textElement.textContent = text; 14256 }; 14257 14258 SMSCodeButton.toggleResendCount = function (button, status) { 14259 var countContent; 14260 14261 if (!button || typeof status !== 'string') { 14262 return; 14263 } 14264 14265 countContent = button.querySelector('.' + classNames.resendCount); 14266 14267 if (!countContent) { 14268 return; 14269 } 14270 14271 if (status === 'show') { 14272 countContent.classList.remove(classNames.isHide); 14273 } else if (status === 'hide') { 14274 countContent.classList.add(classNames.isHide); 14275 } 14276 }; 14277 14278 SMSCodeButton.insertResetCountNumber = function (button, number) { 14279 var numberElement; 14280 14281 if (!button || typeof number !== 'number') { 14282 return; 14283 } 14284 14285 numberElement = button.querySelector('.' + classNames.resendCountNumber); 14286 14287 if (!numberElement) { 14288 return; 14289 } 14290 14291 numberElement.textContent = number; 14292 }; 14293 14294 SMSCodeButton.removeResetCountNumber = function (button) { 14295 var numberElement; 14296 14297 if (!button) { 14298 return; 14299 } 14300 14301 numberElement = button.querySelector('.' + classNames.resendCountNumber); 14302 14303 if (!numberElement) { 14304 return; 14305 } 14306 14307 numberElement.textContent = ''; 14308 }; 14309 14310 SMSCodeButton.onclick = function (event, targetElement) { 14311 var promise = SMSCodeButton.sendVerificationCode(event, targetElement); 14312 14313 promise.catch(function () { 14314 console.error('Create VerificationCode Error'); 14315 }); 14316 14317 return promise; 14318 }; 14319 14320 SMSCodeButton.sendVerificationCode = function (event, targetElement) { 14321 return new Promise(function (resolve, reject) { 14322 var button = null; 14323 var MultiStepForm = window.MultiStepForm; 14324 var input = null; 14325 var mobileNumberInfo = {}; 14326 var $mobileContinueButton = null; 14327 var wechatCacheId = null; 14328 var wechatLoginFlow = KEYENCE.Form.WechatLoginFlow; 14329 14330 if (event && event.currentTarget) { 14331 button = event.currentTarget; 14332 } else if (targetElement) { 14333 button = targetElement; 14334 } 14335 14336 input = SMSCodeButton.getInput(button); 14337 mobileNumberInfo = SMSCodeButton.getMobileNumberInfo(button); 14338 14339 if ( 14340 !input || 14341 ( 14342 typeof mobileNumberInfo.number !== 'string' || 14343 typeof mobileNumberInfo.countryId !== 'string' 14344 ) || 14345 button.disabled 14346 ) { 14347 resolve(null); 14348 return; 14349 } 14350 14351 if ( 14352 wechatLoginFlow.cacheId && 14353 ( 14354 wechatLoginFlow.STATE_CODE.current === wechatLoginFlow.STATE_CODE.R20 || 14355 wechatLoginFlow.STATE_CODE.current === wechatLoginFlow.STATE_CODE.L20 || 14356 wechatLoginFlow.STATE_CODE.current === wechatLoginFlow.STATE_CODE.A10 14357 ) 14358 ) { 14359 wechatCacheId = wechatLoginFlow.cacheId.value; 14360 } 14361 14362 SMSCodeButton.createVerificationCode( 14363 mobileNumberInfo.countryId, 14364 mobileNumberInfo.number, 14365 wechatCacheId 14366 ).done(function (status) { 14367 if (status.message && (MultiStepForm && MultiStepForm.insertErrorText)) { 14368 if (targetElement) { 14369 resolve(status); 14370 14371 return; 14372 } 14373 14374 if (SMSCodeButton.maxCountOver.errorFlag === status.maxCntOverFlg) { 14375 SMSCodeButton.setMaxCountOverDisabled(button, mobileNumberInfo.number); 14376 } 14377 14378 MultiStepForm.insertErrorText(input.name, status.message); 14379 } else { 14380 MultiStepForm.clearInputError(input.name, true); 14381 14382 SMSCodeButton.disableButton(button); 14383 SMSCodeButton.replaceButtonText(button, button.getAttribute('data-resend-text'));
14384 SMSCodeButton.toggleResendCount(button, 'show'); 14385 SMSCodeButton.countResendTime(button); 14386 14387 if (MultiStepForm && MultiStepForm.PreForm.$btnMobileContinue.length) { 14388 $mobileContinueButton = MultiStepForm.PreForm.$btnMobileContinue; 14389 14390 SMSCodeButton.disableButton($mobileContinueButton[0]); 14391 SMSCodeButton.replaceButtonText($mobileContinueButton[0], $mobileContinueButton[0].getAttribute('data-resend-text')); 14392 SMSCodeButton.toggleResendCount($mobileContinueButton[0], 'show'); 14393 SMSCodeButton.countResendTime($mobileContinueButton[0]); 14394 } 14395 } 14396 14397 resolve(status); 14398 }).fail(function (jqXHR, textStatus, errorThrown) { 14399 if (jqXHR.status !== 200) { 14400 if (!targetElement) { 14401 MultiStepForm.insertErrorText(input.name, kpi_translation.ServerConnectErrorMessage); 14402 } 14403 14404 reject({ 14405 jqXHR: jqXHR, 14406 textStatus: textStatus, 14407 errorThrown: errorThrown, 14408 errorMessage: kpi_translation.ServerConnectErrorMessage, 14409 }); 14410 14411 return; 14412 } 14413 14414 MultiStepForm.asyncErrorHundler(jqXHR.status, textStatus); 14415 14416 reject({ 14417 jqXHR: jqXHR, 14418 textStatus: textStatus, 14419 errorThrown: errorThrown 14420 }); 14421 }); 14422 }); 14423 }; 14424 14425 SMSCodeButton.countResendTime = function (button, argCount) { 14426 var countNum = typeof argCount === 'number' ? argCount : this.getResendTime(button); 14427 var MultiStepForm = win.MultiStepForm; 14428 var $mobileContinueButton = null; 14429 14430 if (MultiStepForm) { 14431 $mobileContinueButton = win.MultiStepForm.PreForm.$btnMobileContinue; 14432 } 14433 14434 SMSCodeButton.insertResetCountNumber(button, countNum); 14435 14436 SMSCodeButton.timeIds[button.id] = {}; 14437 14438 SMSCodeButton.timeIds[button.id].timeId = win.setInterval(function () { 14439 countNum--; 14440 SMSCodeButton.timeIds[button.id].timerCount = countNum; 14441 14442 if (countNum === 0) { 14443 SMSCodeButton.enableButton(button); 14444 SMSCodeButton.toggleResendCount(button, 'hide'); 14445 SMSCodeButton.removeResetCountNumber(button); 14446 14447 if (SMSCodeButton.timeIds[button.id] && typeof SMSCodeButton.timeIds[button.id].timeId === 'number') { 14448 win.clearInterval(SMSCodeButton.timeIds[button.id].timeId); 14449 } 14450 14451 delete SMSCodeButton.timeIds[button.id]; 14452 14453 if ($mobileContinueButton.length 14454 && button.id === $mobileContinueButton.attr('id')) { 14455 SMSCodeButton.replaceButtonText(button, button.getAttribute('data-send-text'));
14456 } 14457 14458 return; 14459 } 14460 14461 SMSCodeButton.insertResetCountNumber(button, countNum); 14462 }, 1000); 14463 14464 if (typeof argCount !== 'number' || !$mobileContinueButton.length) { 14465 return; 14466 } 14467 14468 if (button.id !== $mobileContinueButton.attr('id') 14469 && SMSCodeButton.timeIds[$mobileContinueButton.attr('id')]) { 14470 win.clearInterval(SMSCodeButton.timeIds[$mobileContinueButton.attr('id')].timeId); 14471 SMSCodeButton.countResendTime($mobileContinueButton[0], argCount); 14472 } 14473 }; 14474 14475 SMSCodeButton.getMobileNumberInfo = function (button) { 14476 var id; 14477 var mobileCountrySelectId; 14478 var mobileCountrySelectElem; 14479 var mobileNumberInputId; 14480 var mobileNumberInputElem; 14481 var info = {}; 14482 var currentOption = null; 14483 14484 if (!button) { 14485 return ''; 14486 } 14487 14488 id = button.id; 14489 14490 if (id === 'loginVerificationCode-getCode') { 14491 mobileNumberInputId = 'loginMobileNumber'; 14492 14493 if (doc.getElementById('checkCountryNumber')) { 14494 mobileCountrySelectId = 'checkCountryNumber'; 14495 } else { 14496 mobileCountrySelectId = 'loginCountryNumber'; 14497 } 14498 } else if (button.id === 'suz_verificationCode-getCode') { 14499 mobileNumberInputId = 'suz_mobileNumber'; 14500 14501 if (doc.getElementById('suz_mobileCountryID')) { 14502 mobileCountrySelectId = 'suz_mobileCountryID'; 14503 } else { 14504 mobileCountrySelectId = 'checkCountryNumber'; 14505 } 14506 } else if (id === 'remindVerificationCode-getCode') { 14507 mobileCountrySelectId = 'remindCountryNumber'; 14508 mobileNumberInputId = 'remindMobileNumber'; 14509 } 14510 14511 mobileCountrySelectElem = doc.getElementById(mobileCountrySelectId); 14512 mobileNumberInputElem = doc.getElementById(mobileNumberInputId); 14513 14514 if (mobileCountrySelectElem && mobileNumberInputElem) { 14515 info.number = mobileNumberInputElem.value; 14516 14517 if (mobileCountrySelectElem.value) { 14518 info.countryId = mobileCountrySelectElem.value; 14519 } else { 14520 currentOption = mobileCountrySelectElem.querySelector("option[selected]"); 14521 info.countryId = currentOption?.value ? currentOption?.value : ''; 14522 } 14523 } 14524 14525 return info; 14526 }; 14527 14528 SMSCodeButton.getInput = function (button) { 14529 var $group; 14530 var $input; 14531 var group; 14532 var MultiStepForm = win.MultiStepForm; 14533 14534 if (button) { 14535 if (KEYENCE.Form.CommonSubmitValidator.isReloginActionForm()) { 14536 $group = $(button).closest('.prd-inputGroup'); 14537 } else if (MultiStepForm.isShow(MultiStepForm.SignIn.$root)) { 14538 $group = $('#suz_div_loginVerificationCode'); 14539 } else if (MultiStepForm.isShow(MultiStepForm.Register.$root)) { 14540 $group = $('#suz_div_verificationCode'); 14541 } else { 14542 group = button.closest('.prd-inputGroup')?.nextElementSibling; 14543 $group = $(group).hasClass('prd-inputGroup') ? $(group) : $(button).closest('.prd-inputGroup'); 14544 } 14545 14546 if ($group && $group.length) { 14547 $input = $group.find('input'); 14548 } 14549 14550 if ($input && $input.length) { 14551 return $input.get(0); 14552 } 14553 } 14554 14555 return null; 14556 }; 14557 14558 SMSCodeButton.getResendTime = function (buttonElement) { 14559 var resendTime = ''; 14560 14561 if (buttonElement) { 14562 resendTime = buttonElement.getAttribute('data-timeout'); 14563 14564 if (typeof resendTime === 'string') { 14565 resendTime = win.parseInt(resendTime, 10); 14566 } else { 14567 resendTime = SMSCodeButton.defaultResendTime; 14568 } 14569 } 14570 14571 return resendTime; 14572 }; 14573 14574 SMSCodeButton.createVerificationCode = function (mobileCountryId, mobileNumber, wechatCacheId) { 14575 var deferred = new $.Deferred(); 14576 var options; 14577 var url; 14578 14579 if (typeof mobileCountryId !== 'string' || typeof mobileNumber !== 'string') { 14580 return deferred.reject(); 14581 } 14582 14583 url = win.suz_getCurrentDomain() + this.urls.createVerificationCode; 14584 14585 options = { 14586 url: url, 14587 data: { 14588 mobileCountryId: mobileCountryId, 14589 mobileNumber: mobileNumber, 14590 wechatCacheId: wechatCacheId 14591 }, 14592 dataType: 'jsonp', 14593 jsonp: 'callback', 14594 scriptCharset: 'UTF-8', 14595 }; 14596 14597 $.ajax(options).done(function (data) { 14598 deferred.resolve(data); 14599 }).fail(function (jqXHR, textStatus, errorThrown) { 14600 deferred.reject(jqXHR, textStatus, errorThrown); 14601 }); 14602 14603 return deferred.promise(); 14604 }; 14605 14606 SMSCodeButton.enableButton = function (button) { 14607 var $DownloadListLicenseSoftwareJObj = $('#DownloadListLicenseSoftware'); 14608 var $DownloadListLicenseCadJObj = $('#DownloadListLicenseCad'); 14609 14610 if (button) { 14611 if (button.id === 'js-form-btnCheckMobileRegistered' && 14612 ($DownloadListLicenseSoftwareJObj.length || $DownloadListLicenseCadJObj.length) 14613 ) { 14614 if (kpi_cartObj._isDownloadLicenseAgreed($DownloadListLicenseSoftwareJObj, $DownloadListLicenseCadJObj)) { 14615 button.disabled = false; 14616 button.setAttribute('aria-disabled', false); 14617 } 14618 } else { 14619 button.disabled = false; 14620 button.setAttribute('aria-disabled', false); 14621 } 14622 } 14623 }; 14624 14625 SMSCodeButton.disableButton = function (button) { 14626 if (button) { 14627 button.disabled = true; 14628 button.setAttribute('aria-disabled', true); 14629 } 14630 }; 14631 14632 SMSCodeButton.showResendRemainingTime = function () { 14633 var self = this; 14634 var mobileVerificationButtons = null; 14635 var emailVerificationButtons = null 14636 14637 if (!document.querySelectorAll('.' + classNames.trigger).length) { 14638 return; 14639 } 14640 14641 mobileVerificationButtons = document.querySelectorAll(`button[id$='-${this.targetButtons.mobile}'], #${this.targetButtons.preformMobile}`); 14642 emailVerificationButtons = document.querySelectorAll(`button[id$='-${this.targetButtons.email}']`); 14643 14644 SMSCodeButton.getVerificationCodeRemainingTime().done(function (status) { 14645 if (status.errorFlg === '1' 14646 || (status.smsRemainingTime === 0 14647 && status.mailRemainingTime === 0) 14648 ) { 14649 return; 14650 } else { 14651 if (status.smsRemainingTime !== 0 14652 && mobileVerificationButtons.length) { 14653 mobileVerificationButtons.forEach(function (button) { 14654 self.setResendRemainingTime(button, status.smsRemainingTime); 14655 }); 14656 } 14657 14658 if (status.mailRemainingTime !== 0 14659 && emailVerificationButtons.length) { 14660 emailVerificationButtons.forEach(function (button) { 14661 self.setResendRemainingTime(button, status.mailRemainingTime); 14662 }); 14663 } 14664 } 14665 }).fail(function (jqXHR, textStatus, errorThrown) { 14666 console.error('Get Verification Code Remaining Time Error'); 14667 }); 14668 }; 14669 14670 SMSCodeButton.getVerificationCodeRemainingTime = function () { 14671 var deferred = new $.Deferred(); 14672 var options = {}; 14673 var url = ''; 14674 14675 url = win.suz_getCurrentDomain() + this.urls.getVerificationCodeRemainingTime; 14676 14677 options = { 14678 url: url, 14679 }; 14680 14681 $.ajax(options).done(function (data) { 14682 deferred.resolve(data); 14683 }).fail(function (jqXHR, textStatus, errorThrown) { 14684 deferred.reject(jqXHR, textStatus, errorThrown); 14685 }); 14686 14687 return deferred.promise(); 14688 }; 14689 14690 SMSCodeButton.setResendRemainingTime = function (button, remainingTime) { 14691 if ((typeof button !== 'object' || !button) 14692 || (typeof remainingTime !== 'number' || remainingTime <= 0)) { 14693 return; 14694 } 14695 14696 if (button.id) { 14697 this.disableButton(button); 14698 this.replaceButtonText(button, button.getAttribute('data-resend-text'));
14699 this.toggleResendCount(button, 'show'); 14700 this.countResendTime(button, remainingTime); 14701 } 14702 }; 14703 14704 SMSCodeButton.enableLimitedButton = function (event) { 14705 var mobileNumberInput = event.currentTarget; 14706 var $DownloadListLicenseSoftwareJObj = $('#DownloadListLicenseSoftware'); 14707 var $DownloadListLicenseCadJObj = $('#DownloadListLicenseCad'); 14708 var button = null; 14709 14710 if (SMSCodeButton.maxCountOver.isLimitOver && 14711 SMSCodeButton.maxCountOver.limitedMobileNumber !== mobileNumberInput.value 14712 ) { 14713 SMSCodeButton.maxCountOver.targetIds.forEach((id) => { 14714 button = doc.getElementById(id); 14715 14716 SMSCodeButton.maxCountOver.targetIds = SMSCodeButton.maxCountOver.targetIds.filter( 14717 targetId => targetId !== id 14718 ); 14719 14720 if (!button) { 14721 return; 14722 } 14723 14724 if (SMSCodeButton.timeIds[button.id] && 14725 typeof SMSCodeButton.timeIds[button.id].timeId === 'number' 14726 ) { 14727 SMSCodeButton.toggleResendCount(button, 'show'); 14728 14729 return; 14730 } 14731 14732 if (button.id === 'js-form-btnCheckMobileRegistered' && 14733 ($DownloadListLicenseSoftwareJObj.length || $DownloadListLicenseCadJObj.length) 14734 ) { 14735 if (kpi_cartObj._isDownloadLicenseAgreed($DownloadListLicenseSoftwareJObj, $DownloadListLicenseCadJObj)) { 14736 button.disabled = false; 14737 button.setAttribute('aria-disabled', false); 14738 } 14739 } else { 14740 button.disabled = false; 14741 button.setAttribute('aria-disabled', false); 14742 } 14743 }); 14744 14745 SMSCodeButton.maxCountOver.isLimitOver = false; 14746 SMSCodeButton.maxCountOver.limitedMobileNumber = ''; 14747 14748 if (mobileNumberInput.id === SMSCodeButton.maxCountOver.mobileNumberInputIds.profile) { 14749 this.MultiStepForm.clearInputError(mobileNumberInput.name, true); 14750 } 14751 } 14752 }; 14753 14754 SMSCodeButton.restoreMaxCountOver = function () { 14755 var multiStepMobileNumberInput = doc.getElementById(SMSCodeButton.maxCountOver.mobileNumberInputIds.multiStep); 14756 var reloginMobileNumberInput = doc.getElementById(SMSCodeButton.maxCountOver.mobileNumberInputIds.relogin); 14757 var profileMobileNumberInput = doc.getElementById(SMSCodeButton.maxCountOver.mobileNumberInputIds.profile); 14758 var input = null; 14759 14760 if (multiStepMobileNumberInput) { 14761 input = multiStepMobileNumberInput; 14762 } else if (reloginMobileNumberInput) { 14763 input = reloginMobileNumberInput; 14764 } else if (profileMobileNumberInput) { 14765 input = profileMobileNumberInput; 14766 } 14767 14768 if (input) { 14769 input.addEventListener('input', SMSCodeButton.enableLimitedButton.bind(this)); 14770 } 14771 }; 14772 14773 SMSCodeButton.setMaxCountOverDisabled = function (button, mobileNumber) { 14774 if (!button || !mobileNumber) { 14775 return; 14776 } 14777 14778 SMSCodeButton.maxCountOver.isLimitOver = true; 14779 SMSCodeButton.maxCountOver.targetIds.push(button.id); 14780 SMSCodeButton.maxCountOver.limitedMobileNumber = mobileNumber; 14781 14782 SMSCodeButton.toggleResendCount(button, 'hide'); 14783 SMSCodeButton.disableButton(button); 14784 }; 14785 14786 SMSCodeButton.removeMaxCountOverDisabledInScreen = function (screen) { 14787 var triggerButton = null; 14788 14789 if (!screen) { 14790 return; 14791 } 14792 14793 triggerButton = screen.querySelector(`.${SMSCodeButton.classNames.trigger}`); 14794 14795 if (triggerButton && triggerButton.disabled) { 14796 triggerButton.disabled = false; 14797 triggerButton.setAttribute('aria-disabled', false); 14798 } 14799 }; 14800 14801 return SMSCodeButton; 14802 }()); 14803 14804 KEYENCE.Form.MobileNumberEdit = (function () { 14805 var idNames = { 14806 beforeMobileCountryID: 'suz_beforeMobileCountryID', 14807 beforeMobileNumberValue: 'suz_beforeMobileNumberValue', 14808 inputVerificationCode: 'suz_verificationCode', 14809 buttonGetVerificationCode: 'suz_verificationCode-getCode' 14810 }; 14811 14812 var MobileNumberEdit = { 14813 inputVerificationCode: null, 14814 buttonGetVerificationCode: null 14815 }; 14816 14817 MobileNumberEdit.init = function () { 14818 // This step is no longer necessary due to changes in the authentication procedure and has therefore been commented out. 14819 // if (this.isEditProfilePage()) { 14820 // this.attachInputMobileNumberEvent(); 14821 // this.attachChangeCountryID(); 14822 // this.toggleStatus();
14823 // } 14824 }; 14825 14826 MobileNumberEdit.isEditProfilePage = function () { 14827 var beforeMobileCountryInput = document.getElementById(idNames.beforeMobileCountryID); 14828 var beforeMobileNumberValue = document.getElementById(idNames.beforeMobileNumberValue); 14829 14830 if (beforeMobileCountryInput || beforeMobileNumberValue) { 14831 return true; 14832 } 14833 14834 return false; 14835 }; 14836 14837 MobileNumberEdit.attachInputMobileNumberEvent = function () { 14838 var input = document.getElementById('suz_mobileNumber'); 14839 14840 input.addEventListener('input', function () { 14841 MobileNumberEdit.toggleStatus(); 14842 }); 14843 }; 14844 14845 MobileNumberEdit.attachChangeCountryID = function () { 14846 var select = document.getElementById('suz_mobileCountryID'); 14847 14848 select.addEventListener('change', function () { 14849 MobileNumberEdit.toggleStatus(); 14850 }); 14851 }; 14852 14853 MobileNumberEdit.toggleStatus = function (event) { 14854 var verificationCodeInput = document.getElementById('suz_verificationCode'); 14855 var verificationCodeButton = document.getElementById('suz_verificationCode-getCode'); 14856 var afterValues; 14857 var beforeValues; 14858 var SMSCodeButton = win.KeyenceForm.SMSCodeButton; 14859 var SMSCodeButtonId = 'suz_verificationCode-getCode'; 14860 14861 if (!verificationCodeInput || !verificationCodeButton) { 14862 return; 14863 } 14864 14865 afterValues = this.getAfterValues(); 14866 beforeValues = this.getBeforeValues(); 14867 14868 if ( 14869 (afterValues.mobileNumber === beforeValues.mobileNumber) && 14870 (afterValues.countryId === beforeValues.countryId) 14871 ) { 14872 verificationCodeInput.disabled = true; 14873 verificationCodeButton.disabled = true; 14874 verificationCodeButton.setAttribute('aria-disabled', true); 14875 } else { 14876 verificationCodeInput.disabled = false; 14877 verificationCodeButton.disabled = false; 14878 verificationCodeButton.setAttribute('aria-disabled', false); 14879 } 14880 }; 14881 14882 MobileNumberEdit.getBeforeValues = function () { 14883 var values = { 14884 mobileNumber: null, 14885 countryId: null 14886 }; 14887 var beforeMobileNumberElem = doc.getElementById('suz_beforeMobileNumber'); 14888 var beforeCountryElem = doc.getElementById('suz_beforeMobileCountryID'); 14889 14890 if (beforeMobileNumberElem && beforeCountryElem) { 14891 values.mobileNumber = beforeMobileNumberElem.value; 14892 values.countryId = beforeCountryElem.value; 14893 } 14894 14895 return values; 14896 }; 14897 14898 MobileNumberEdit.getAfterValues = function () { 14899 var values = { 14900 mobileNumber: null, 14901 countryId: null 14902 }; 14903 var mobileNumberElem = doc.getElementById('suz_mobileNumber'); 14904 var countryElem = doc.getElementById('suz_mobileCountryID'); 14905 14906 if (mobileNumberElem && countryElem) { 14907 values.mobileNumber = mobileNumberElem.value; 14908 values.countryId = countryElem.value; 14909 } 14910 14911 return values; 14912 }; 14913 14914 return MobileNumberEdit; 14915 }()); 14916 14917 KEYENCE.Form.BlankFieldValidator = (function () { 14918 var MultiStepForm = null; 14919 14920 var PatternValidator = null; 14921 var AvailableValidator = null; 14922 var SMSCodeButton = null; 14923 14924 var names = { 14925 passwordAssistanceActionForm: 'user_passwordAssistanceActionForm', 14926 passwordAssistanceResetForm: 'user_passwordAssistance_resetPasswordActionForm', 14927 withdrawActionForm: 'user_profile_withdrawActionForm', 14928 reloginActionForm: 'user_reloginActionForm', 14929 loginActionForm: 'user_loginActionForm', 14930 unsubscribeConfirmActionForm: 'enews_unsubscribeConfirmActionForm', 14931 }; 14932 14933 var classNames = {
14934 trigger: 'js-check-blank', 14935 status: 'is-error-blank' 14936 }; 14937 14938 var config = { 14939 isClickedContinueButton: false, 14940 }; 14941 14942 var BlankFieldValidator = { 14943 targetForm: null, 14944 formSelector: 'form[name="' + names.passwordAssistanceActionForm + '"], ' + 14945 'form[name="' + names.passwordAssistanceResetForm + '"], ' + 14946 'form[name="' + names.withdrawActionForm + '"], ' + 14947 'form[name="' + names.reloginActionForm + '"], ' + 14948 'form[name="' + names.loginActionForm + '"], ' + 14949 'form[name="' + names.unsubscribeConfirmActionForm + '"]', 14950 fields: null, 14951 classNames: classNames, 14952 config: config, 14953 }; 14954 14955 BlankFieldValidator.init = function () { 14956 var fields; 14957 14958 MultiStepForm = window.MultiStepForm; 14959 this.targetForm = doc.querySelector(this.formSelector); 14960 this.multiStepForm = doc.querySelector('#' + MultiStepForm.idNames.trigger); 14961 fields = doc.querySelectorAll('.' + classNames.trigger); 14962 PatternValidator = win.KeyenceForm.PatternMatchValidator; 14963 AvailableValidator = win.KeyenceForm.AvailableValidator; 14964 SMSCodeButton = win.KeyenceForm.SMSCodeButton; 14965 14966 if ( 14967 (this.targetForm && fields.length) || 14968 (this.multiStepForm && fields.length) 14969 ) { 14970 this.attachBlurEvent(); 14971 } 14972 }; 14973 14974 BlankFieldValidator.isActionPwdAssistance = function () { 14975 var actionValue = $(this.targetForm).attr('action'); 14976 14977 if (new RegExp(MultiStepForm.urls.actionPwdAssistance).test(actionValue)) { 14978 return true; 14979 } 14980 14981 return false; 14982 }; 14983 14984 BlankFieldValidator.attachBlurEvent = function () { 14985 $(this.formSelector + ', #' + MultiStepForm.idNames.trigger).on('blur', '.' + classNames.trigger, function () { 14986 var MobileNumberValidator = win.KeyenceForm.MobileNumberValidator; 14987 var ControlErrorDisplay = KeyenceForm.ControlErrorDisplay; 14988 var field = this; 14989 14990 if (SMSCodeButton.maxCountOver.isLimitOver && 14991 Object.values(SMSCodeButton.maxCountOver.mobileNumberInputIds).includes(field.id) 14992 ) { 14993 return; 14994 } 14995 14996 if (!ControlErrorDisplay.isTriggerClicked(field)) { 14997 return; 14998 } 14999 15000 if (((field.id === 'checkRegistered') || (field.id === 'checkMobileNumber')) 15001 && !config.isClickedContinueButton) { 15002 15003 if (BlankFieldValidator.isBlank(field)) { 15004 MultiStepForm.clearInputError(field.name, true); 15005 field.classList.add(classNames.status); 15006 field.classList.remove(MobileNumberValidator.classNames.status); 15007 field.classList.remove(PatternValidator.classNames.status); 15008 AvailableValidator.removeUnavailableStatus(field.name); 15009 } else if (!field.classList.contains(PatternValidator.classNames.status) 15010 && !field.classList.contains(MobileNumberValidator.classNames.status)) { 15011 MultiStepForm.clearInputError(field.name, true); 15012 field.classList.remove(classNames.status); 15013 } 15014 15015 return; 15016 } 15017 15018 if (BlankFieldValidator.isBlank(field)) { 15019 MultiStepForm.insertErrorText(field.name, 'data-message-required'); 15020 field.classList.add(classNames.status); 15021 field.classList.remove(MobileNumberValidator.classNames.status); 15022 field.classList.remove(PatternValidator.classNames.status); 15023 AvailableValidator.removeUnavailableStatus(field.name); 15024 } else if (!field.classList.contains(PatternValidator.classNames.status) 15025 && !field.classList.contains(MobileNumberValidator.classNames.status)) { 15026 MultiStepForm.clearInputError(field.name, true); 15027 field.classList.remove(classNames.status); 15028 } 15029 }); 15030 }; 15031 15032 BlankFieldValidator.isBlank = function (field) { 15033 if (field.value === '' && !field.disabled) { 15034 return true; 15035 } 15036 15037 return false; 15038 }; 15039 15040 BlankFieldValidator.validateFieldAll = function (fieldList) { 15041 var hasError = false; 15042 15043 if (!fieldList || !fieldList.length) { 15044 return hasError; 15045 } 15046 15047 Array.prototype.forEach.call(fieldList, function (field, index) { 15048 if ($(field).is(':visible')) { 15049 if (BlankFieldValidator.isBlank(field)) { 15050 MultiStepForm.insertErrorText(field.name, 'data-message-required'); 15051 field.classList.add(classNames.status); 15052 15053 hasError = true; 15054 } else { 15055 MultiStepForm.clearInputError(field.name, true); 15056 field.classList.remove(classNames.status); 15057 } 15058 } 15059 }); 15060 15061 return hasError; 15062 }; 15063 15064 BlankFieldValidator.asyncValidateFieldAll = function (fieldList) { 15065 var deferred = new $.Deferred(); 15066 var hasError = false; 15067 var lastIndex; 15068 15069 if (!fieldList || !fieldList.length) { 15070 return deferred.resolve(hasError); 15071 } 15072 15073 lastIndex = fieldList.length - 1; 15074 15075 Array.prototype.forEach.call(fieldList, function (field, index) { 15076 if ($(field).is(':visible')) { 15077 if (BlankFieldValidator.isBlank(field)) { 15078 MultiStepForm.insertErrorText(field.name, 'data-message-required'); 15079 field.classList.add(classNames.status); 15080 15081 hasError = true; 15082 } else { 15083 MultiStepForm.clearInputError(field.name, true); 15084 field.classList.remove(classNames.status); 15085 } 15086 } 15087 15088 if (lastIndex === index) { 15089 deferred.resolve(hasError); 15090 } 15091 }); 15092 15093 return deferred.promise(); 15094 }; 15095
15096 return BlankFieldValidator; 15097 }()); 15098 15099 KEYENCE.Form.PatternMatchValidator = (function () { 15100 var MultiStepForm = null; 15101 15102 var BlankFieldValidator = null; 15103 var AvailableValidator = null; 15104 var SMSCodeButton = null; 15105 15106 var names = { 15107 passwordAssistanceActionForm: 'user_passwordAssistanceActionForm', 15108 passwordAssistanceResetForm: 'user_passwordAssistance_resetPasswordActionForm', 15109 withdrawActionForm: 'user_profile_withdrawActionForm', 15110 reloginActionForm: 'user_reloginActionForm', 15111 loginActionForm: 'user_loginActionForm', 15112 }; 15113 15114 var classNames = { 15115 trigger: 'js-check-pattern', 15116 status: 'is-error-pattern', 15117 replaceValueTrigger: 'js-replaceValueWithCorrect', 15118 }; 15119 15120 var PatternMatchValidator = { 15121 targetForm: null, 15122 formSelector: 'form[name="' + names.passwordAssistanceActionForm + '"], ' + 15123 'form[name="' + names.passwordAssistanceResetForm + '"], ' + 15124 'form[name="' + names.withdrawActionForm + '"], ' + 15125 'form[name="' + names.reloginActionForm + '"], ' + 15126 'form[name="' + names.loginActionForm + '"]', 15127 classNames: classNames, 15128 }; 15129 15130 PatternMatchValidator.init = function () { 15131 var fields; 15132 15133 MultiStepForm = win.MultiStepForm; 15134 this.targetForm = doc.querySelector(this.formSelector); 15135 this.multiStepForm = doc.querySelector('#' + MultiStepForm.idNames.trigger); 15136 fields = doc.querySelectorAll('.' + classNames.trigger); 15137 BlankFieldValidator = win.KeyenceForm.BlankFieldValidator; 15138 AvailableValidator = win.KeyenceForm.AvailableValidator; 15139 SMSCodeButton = win.KeyenceForm.SMSCodeButton; 15140 15141 if ( 15142 (this.targetForm && fields.length) || 15143 (this.multiStepForm && fields.length) 15144 ) { 15145 this.attachBlurEvent(); 15146 } 15147 }; 15148 15149 PatternMatchValidator.attachBlurEvent = function () { 15150 $(this.formSelector + ', #' + MultiStepForm.idNames.trigger).on('blur', '.' + classNames.trigger, function () { 15151 var field = this; 15152 var fieldWrapper = null; 15153 var ControlErrorDisplay = KeyenceForm.ControlErrorDisplay; 15154 15155 if (SMSCodeButton.maxCountOver.isLimitOver && 15156 Object.values(SMSCodeButton.maxCountOver.mobileNumberInputIds).includes(field.id) 15157 ) { 15158 return; 15159 } 15160 15161 if (!ControlErrorDisplay.isTriggerClicked(field)) { 15162 if (BlankFieldValidator.isBlank(field)) { 15163 AvailableValidator.runValidate(field.name, false); 15164 15165 return; 15166 } else { 15167 field.classList.remove(BlankFieldValidator.classNames.status); 15168 } 15169 15170 AvailableValidator.runValidate(field.name, true).always(function (field) { 15171 if (field) { 15172 fieldWrapper = AvailableValidator.getFieldWrapper(field.name); 15173 } 15174 15175 if (fieldWrapper && 15176 MultiStepForm.PreForm.isClickContinueRunning && 15177 (field.classList.contains('is-error-pattern') || 15178 field.classList.contains('is-error-format'))) { 15179 delete fieldWrapper.dataset.unavailable; 15180 } else if (fieldWrapper && 15181 fieldWrapper.classList.contains('is-error') && 15182 fieldWrapper.dataset.unavailable) { 15183 fieldWrapper.classList.remove('is-error') 15184 AvailableValidator.changeDisplayNoteText(field.name); 15185 } else { 15186 AvailableValidator.changeDisplayNoteText(field.name); 15187 } 15188 15189 MultiStepForm.PreForm.isClickContinueRunning = false; 15190 }); 15191 } else { 15192 if (BlankFieldValidator.isBlank(field)) { 15193 return; 15194 } else { 15195 field.classList.remove(BlankFieldValidator.classNames.status); 15196 } 15197 15198 AvailableValidator.runValidate(field.name, true).always(function (field) { 15199 PatternMatchValidator.updateFieldStatus(field); 15200 AvailableValidator.changeDisplayNoteText(field.name); 15201 }); 15202 } 15203 }); 15204 }; 15205 15206 PatternMatchValidator.validateFieldAll = function (fieldList) { 15207 var deferred = new $.Deferred(); 15208 var hasError = false; 15209 var lastIndex = 0; 15210 15211 if (!fieldList || !fieldList.length) { 15212 return deferred.resolve(hasError); 15213 } 15214 15215 lastIndex = fieldList.length - 1; 15216 15217 Array.prototype.forEach.call(fieldList, function (field, index) { 15218 if ($(field).is(':hidden') || BlankFieldValidator.isBlank(field)) { 15219 if (lastIndex === index) { 15220 deferred.resolve(hasError); 15221 } 15222 15223 return false; 15224 } 15225 15226 if (field.dataset.formatPattern !== 'new-password') { 15227 PatternMatchValidator.updateFieldStatus(field); 15228 15229 if (field.classList.contains(classNames.status)) { 15230 hasError = true; 15231 } 15232 15233 if (lastIndex === index) { 15234 deferred.resolve(hasError); 15235 } 15236 15237 return false; 15238 } else { 15239 PatternMatchValidator.checkPasswordErrorMessage($(field)).done(function (status) { 15240 if (status.message) { 15241 MultiStepForm.insertErrorText(field.name, status.message); 15242 field.classList.add(classNames.status); 15243 15244 hasError = true; 15245 } else { 15246 MultiStepForm.clearInputError(field.name, true); 15247 field.classList.remove(classNames.status); 15248 } 15249 15250 if (lastIndex === index) { 15251 deferred.resolve(hasError); 15252 } 15253 }).fail(function (err) { 15254 deferred.resolve(hasError); 15255 }); 15256 } 15257 }); 15258 15259 return deferred.promise(); 15260 }; 15261 15262 PatternMatchValidator.updateFieldStatus = function (field) { 15263 var formatPattarn = field.dataset.formatPattern; 15264 15265 if (typeof field !== 'object' || !field) { 15266 return; 15267 } 15268 15269 switch (formatPattarn) { 15270 case 'tel': 15271 PatternMatchValidator.updateTelField(field); 15272 break; 15273 case 'email': 15274 PatternMatchValidator.updateMailField(field); 15275 break; 15276 case 'smscode': 15277 PatternMatchValidator.updateSmsCodeField(field); 15278 break; 15279 case 'new-password': 15280 PatternMatchValidator.updateNewPasswordField(field); 15281 break; 15282 case 'zipCode': 15283 PatternMatchValidator.updateZipcodeField(field); 15284 break; 15285 default: 15286 break; 15287 } 15288 }; 15289 15290 PatternMatchValidator.updateTelField = function (field) { 15291 var countryID = KeyenceForm.MobileNumberValidator.getCountryIdByInput(field); 15292 var isError = false; 15293 15294 if (field.value.length === 0 || !$(field).is(':visible')) { 15295 return; 15296 } 15297 15298 if (countryID === 'CN') { 15299 if (/^[1][0-9]{10}/.test(field.value) && field.value.length <= 32) { 15300 MultiStepForm.clearInputError(field.name, true); 15301 field.classList.remove(KeyenceForm.MobileNumberValidator.classNames.status); 15302 } else { 15303 isError = true; 15304 } 15305 } 15306 15307 if (countryID === 'KR') { 15308 if (/^[0-9]{11}$/.test(field.value)) { 15309 MultiStepForm.clearInputError(field.name, true); 15310 field.classList.remove(KeyenceForm.MobileNumberValidator.classNames.status); 15311 } else { 15312 isError = true; 15313 } 15314 } 15315 15316 if (isError) { 15317 MultiStepForm.insertErrorText(field.name, 'data-message-mobile-number-format'); 15318 field.classList.add(KeyenceForm.MobileNumberValidator.classNames.status); 15319 } 15320 }; 15321 15322 PatternMatchValidator.updateMailField = function (field) { 15323 if (/^[a-zA-Z0-9\.!#$%&'*+\/=?^_`{|}~\-]+@[a-zA-Z0-9\-]+(\.[A-Za-z0-9\-]+)+$/.test(field.value)) { 15324 MultiStepForm.clearInputError(field.name, true); 15325 field.classList.remove(classNames.status); 15326 } else { 15327 MultiStepForm.insertErrorText(field.name, 'data-message-email-address-format'); 15328 field.classList.add(classNames.status); 15329 } 15330 }; 15331 15332 PatternMatchValidator.updateSmsCodeField = function (field) { 15333 if (/^[0-9]+$/.test(field.value)) { 15334 MultiStepForm.clearInputError(field.name, true); 15335 field.classList.remove(classNames.status); 15336 } else { 15337 MultiStepForm.insertErrorText(field.name, 'data-message-verification-code-format'); 15338 field.classList.add(classNames.status); 15339 } 15340 }; 15341 15342 PatternMatchValidator.updateNewPasswordField = function (field) { 15343 PatternMatchValidator.checkPasswordErrorMessage($(field)).done(function (status) { 15344 if (status.message) { 15345 MultiStepForm.insertErrorText(field.name, status.message); 15346 field.classList.add(classNames.status); 15347 } else { 15348 MultiStepForm.clearInputError(field.name, true); 15349 field.classList.remove(classNames.status); 15350 } 15351 }).fail(function (err) { 15352 console.log(err); 15353 }); 15354 }; 15355 15356 PatternMatchValidator.updateZipcodeField = function (field) { 15357 var countryIdElement = this.getCountryValue(); 15358 var zipCodeValue = ''; 15359 15360 if (!countryIdElement) { 15361 return; 15362 } 15363 15364 if (countryIdElement === 'CA' && field.value.length !== 0 && $(field).is(':visible')) { 15365 if (/^[a-zA-Z][0-9][a-zA-Z][^a-zA-Z0-9]?[0-9][a-zA-Z][0-9]$/.test(field.value)) { 15366 zipCodeValue = field.value.slice(0, 3) + ' ' + field.value.slice(-3); 15367 } 15368 15369 if (zipCodeValue) { 15370 field.value = zipCodeValue.toUpperCase(); 15371 field.classList.remove(classNames.status); 15372 } else { 15373 if (KeyenceForm.ControlErrorDisplay.isTriggerClicked(field)) { 15374 MultiStepForm.insertErrorText(field.name, 'data-message-zipcode-format'); 15375 field.classList.add(classNames.status); 15376 } 15377 } 15378 } else if (countryIdElement === 'CA' && field.value.length === 0 && field.classList.contains(classNames.status)) { 15379 field.classList.remove(classNames.status); 15380 } 15381 }; 15382 15383 PatternMatchValidator.checkPasswordErrorMessage = function (field) { 15384 var deferred = new $.Deferred();
15385 var val = field.val(); 15386 var requestURL = win.suz_getCurrentDomain() + '/ajax/validationAjax/customerRegistrationFieldValidator/'; 15387 15388 if (field.attr('type')==='checkbox') { 15389 if (!field.prop('checked')) { 15390 val = ""; 15391 } 15392 } 15393 15394 $.ajax({ 15395 url: requestURL, 15396 data: { 15397 fieldName : 'password', 15398 fieldValue : encodeURIComponent(val), 15399 token : $("input[name='org.apache.struts.taglib.html.TOKEN']").attr("value") 15400 }, 15401 dataType: "jsonp", 15402 jsonp: "callback", 15403 scriptCharset: "UTF-8" 15404 }).then(function (data) { 15405 deferred.resolve(data); 15406 }, 15407 function (req, stat, err) { 15408 if (req.status == 401) { 15409 win.location.href = win.suz_getCurrentDomain() + "/error/tokenError.jsp"; 15410 15411 return false; 15412 } 15413 deferred.reject(err); 15414 return false; 15415 }); 15416 15417 return deferred.promise(); 15418 }; 15419 15420 PatternMatchValidator.getCountryValue = function () { 15421 var country = doc.getElementById('suz_countryID'); 15422 var optionElements = null; 15423 var CountryValue = null; 15424 15425 if(!country) { 15426 return; 15427 } 15428 15429 optionElements = country.options; 15430 CountryValue = optionElements[country.selectedIndex].value; 15431 15432 return CountryValue; 15433 }; 15434 15435 return PatternMatchValidator; 15436 }()); 15437 15438 KEYENCE.Form.MobileNumberValidator = (function () { 15439 var MultiStepForm = null; 15440 15441 var classNames = { 15442 trigger: 'js-checkMobileNumberFormat', 15443 status: 'is-error-format' 15444 }; 15445 15446 var names = { 15447 passwordAssistanceActionForm: 'user_passwordAssistanceActionForm', 15448 passwordAssistanceResetForm: 'user_passwordAssistance_resetPasswordActionForm', 15449 withdrawActionForm: 'user_profile_withdrawActionForm', 15450 reloginActionForm: 'user_reloginActionForm', 15451 loginActionForm: 'user_loginActionForm', 15452 }; 15453 15454 var MobileNumberValidator = { 15455 targetForm: null, 15456 formSelector: 'form[name="' + names.passwordAssistanceActionForm + '"], ' + 15457 'form[name="' + names.user_passwordAssistance_resetPasswordActionForm + '"], ' + 15458 'form[name="' + names.withdrawActionForm + '"], ' + 15459 'form[name="' + names.reloginActionForm + '"], ' + 15460 'form[name="' + names.loginActionForm + '"]', 15461 classNames: classNames, 15462 multiStepForm: null 15463 }; 15464 15465 MobileNumberValidator.init = function () { 15466 var targets = doc.querySelectorAll('.' + classNames.trigger); 15467 15468 MultiStepForm = window.MultiStepForm; 15469 this.targetForm = doc.querySelector(win.KeyenceForm.CommonSubmitValidator.formSelector); 15470 this.multiStepForm = doc.querySelector('#' + MultiStepForm.idNames.trigger); 15471 15472 if ((this.targetForm && targets.length) || (this.multiStepForm && targets.length)) { 15473 // Removed input event. To change to Lost Focus. 15474 // this.attachInputEvent(); 15475 } 15476 }; 15477 15478 MobileNumberValidator.validateFieldAll = function (fields) { 15479 var deferred = new $.Deferred(); 15480 var hasError = false; 15481 var lastIndex; 15482 15483 if (!fields) { 15484 return deferred.resolve(hasError); 15485 } 15486 15487 lastIndex = fields.length - 1; 15488 15489 Array.prototype.forEach.call(fields, function (field, index) { 15490 var value = field.value; 15491 var name = field.name; 15492 var countryID = MobileNumberValidator.getCountryIdByInput(field); 15493 15494 if ((countryID !== 'CN' && countryID !== 'KR') || field.value.length === 0 || !$(field).is(':visible')) { 15495 if (lastIndex === index) { 15496 deferred.resolve(hasError); 15497 } 15498 15499 return false; 15500 } 15501 15502 MobileNumberValidator.checkFormat(countryID, value).done(function (data) { 15503 if (data.message) { 15504 MultiStepForm.insertErrorText(name, data.message); 15505 field.classList.add(classNames.status); 15506 15507 hasError = true; 15508 } else { 15509 MultiStepForm.clearInputError(name, true); 15510 field.classList.remove(classNames.status); 15511 } 15512 15513 if (lastIndex === index) { 15514 deferred.resolve(hasError); 15515 } 15516 }); 15517 }); 15518 15519 return deferred.promise(); 15520 }; 15521 15522 15523 MobileNumberValidator.checkFormat = function (mobileCountryId, mobileNumber) { 15524 var options; 15525 var deferred = new $.Deferred(); 15526 var url; 15527 15528 url = win.suz_getCurrentDomain() + '/ajax/registrationAjax/mobileNumberValidator/'; 15529 15530 options = { 15531 url: url, 15532 data: { 15533 mobileCountryId: mobileCountryId, 15534 mobileNumber: mobileNumber 15535 }, 15536 dataType: 'jsonp', 15537 jsonp: 'callback', 15538 scriptCharset: 'UTF-8' 15539 }; 15540 15541 $.ajax(options).done(function (data) { 15542 deferred.resolve(data); 15543 }).fail(function (jqXHR, textStatus, errorThrown) { 15544 MultiStepForm.asyncErrorHundler(jqXHR.status, textStatus); 15545 deferred.reject(jqXHR, textStatus, errorThrown); 15546 }); 15547 15548 return deferred.promise(); 15549 }; 15550 15551 MobileNumberValidator.getCountryIdByInput = function (input) { 15552 var $select = $(input).prev('.js-selectCountryNumber').find('.js-selectCountryNumber-target'); 15553 var countryId = ''; 15554 15555 if ($select.length) { 15556 countryId = $select.val(); 15557 } 15558 15559 return countryId; 15560 }; 15561 15562 MobileNumberValidator.attachInputEvent = function () { 15563 $(this.formSelector + ', #' + MultiStepForm.idNames.trigger).on('input', '.' + classNames.trigger, function () { 15564 var field = this; 15565 var countryID = MobileNumberValidator.getCountryIdByInput(field); 15566 15567 if (field.value.length === 0) { 15568 return; 15569 } 15570 15571 MobileNumberValidator.checkFormat(countryID, field.value).done(function (data) { 15572 if (!data.message) { 15573 MultiStepForm.clearInputError(field.name, true); 15574 } 15575 }); 15576 }); 15577 }; 15578 15579 return MobileNumberValidator; 15580 }()); 15581 15582 KEYENCE.Form.CommonSubmitValidator = (function () { 15583 var MultiStepForm = null; 15584 15585 var canSubmit = false; 15586 15587 var names = { 15588 passwordAssistanceActionForm: 'user_passwordAssistanceActionForm', 15589 passwordAssistanceResetForm: 'user_passwordAssistance_resetPasswordActionForm', 15590 withdrawActionForm: 'user_profile_withdrawActionForm', 15591 reloginActionForm: 'user_reloginActionForm', 15592 loginActionForm: 'user_loginActionForm', 15593 unsubscribeConfirmActionForm: 'enews_unsubscribeConfirmActionForm', 15594 }; 15595 15596 var idNames = { 15597 mobileCountryNumber: 'loginCountryNumber', 15598 mobileNumber: 'loginMobileNumber', 15599 verificationCode: 'loginVerificationCode', 15600 } 15601 15602 var CommonSubmitValidator = { 15603 idNames: idNames, 15604 $targetForm: null, 15605 formSelector: 'form[name="' + names.passwordAssistanceActionForm + '"], ' + 15606 'form[name="' + names.passwordAssistanceResetForm + '"], ' + 15607 'form[name="' + names.withdrawActionForm + '"], ' + 15608 'form[name="' + names.reloginActionForm + '"], ' + 15609 'form[name="' + names.loginActionForm + '"], ' + 15610 'form[name="' + names.unsubscribeConfirmActionForm + '"]', 15611 mobileNumberFields: { 15612 countryNumber: null, 15613 countryNumberSelectedOption: null, 15614 number: null, 15615 }, 15616 isMobileNumberFields: false, 15617 }; 15618 15619 CommonSubmitValidator.init = function () { 15620 MultiStepForm = window.MultiStepForm; 15621 this.$targetForm = $(this.formSelector); 15622 15623 if (this.$targetForm.length) { 15624 MultiStepForm.focusFirstErrorItem(this.$targetForm); 15625 this.attachSubmitEvent(); 15626 this.setMobileNumberField(); 15627 } 15628 }; 15629 15630 CommonSubmitValidator.attachSubmitEvent = function () { 15631 this.$targetForm.on('submit', this.onSubmit); 15632 }; 15633 15634 CommonSubmitValidator.setMobileNumberField = function () { 15635 if (!this.isLoginActionForm()) { 15636 return false; 15637 } 15638 15639 this.mobileNumberFields.countryNumber = doc.getElementById(this.idNames.mobileCountryNumber); 15640 this.mobileNumberFields.number = doc.getElementById(this.idNames.mobileNumber); 15641 15642 if (this.mobileNumberFields.countryNumber && this.mobileNumberFields.number) { 15643 this.isMobileNumberFields = true; 15644 this.mobileNumberFields.countryNumberSelectedOption = this.mobileNumberFields.countryNumber.selectedOptions[0]; 15645 } 15646 } 15647 15648 CommonSubmitValidator.onSubmit = function (event) { 15649 var FormFilter = KEYENCE.Form.FormFilter; 15650 var commonSendVerificationEmail = KEYENCE.Form.commonSendVerificationEmail; 15651 var BlankFieldValidator = win.KeyenceForm.BlankFieldValidator; 15652 var PatternValidator = win.KeyenceForm.PatternMatchValidator; 15653 var MobileNumberValidator = win.KeyenceForm.MobileNumberValidator; 15654 var ControlErrorDisplay = win.KeyenceForm.ControlErrorDisplay; 15655 var WechatLoginFlow = win.KeyenceForm.WechatLoginFlow; 15656 var mobileNumberFields = doc.querySelectorAll('.' +MobileNumberValidator.classNames.trigger); 15657 var requiredFields = doc.querySelectorAll('.' + Blank
15657FieldValidator.classNames.trigger); 15658 var patternCheckedFields = doc.querySelectorAll('.' + PatternValidator.classNames.trigger); 15659 var SMSCodeField = doc.getElementById('loginVerificationCode'); 15660 var deferred1 = new $.Deferred(); 15661 var formType = FormFilter.General.getFormType(); 15662 var hasBlankError = false; 15663 var ModalPasswordError = win.KeyenceForm.ModalPasswordError; 15664 var controlErrorDispalyTrigger = null; 15665 var wechatLoginActiveTrigger = doc.querySelector(`.${WechatLoginFlow.classNames.isLoginActive}`); 15666 var isWechatLoginL10 = false; 15667 15668 if ( 15669 win.KeyenceForm.BlankFieldValidator.isActionPwdAssistance() && 15670 !doc.querySelector('form[name="' + names.passwordAssistanceActionForm + '"]') && 15671 !doc.querySelector('form[name="' + names.passwordAssistanceResetForm + '"]') 15672 ) { 15673 return true; 15674 } 15675 15676 if (canSubmit) { 15677 return true; 15678 } 15679 15680 canSubmit = true; 15681 15682 controlErrorDispalyTrigger = event.originalEvent.submitter ? event.originalEvent.submitter : ControlErrorDisplay.browserValidaterTarget; 15683 15684 if ( 15685 formType === FormFilter.General.FORM_TYPE.EMAIL || 15686 formType === FormFilter.General.FORM_TYPE.DEFAULT || 15687 doc.querySelector('form[name="' + names.passwordAssistanceResetForm + '"]') 15688 ) { 15689 ControlErrorDisplay.setTriggerClickedData(controlErrorDispalyTrigger); 15690 15691 if (requiredFields) { 15692 hasBlankError = BlankFieldValidator.validateFieldAll(requiredFields); 15693 15694 if (hasBlankError) { 15695 canSubmit = false; 15696 } 15697 } 15698 15699 if (patternCheckedFields) { 15700 PatternValidator.validateFieldAll(patternCheckedFields).done(function (hasFormatError) { 15701 if (hasFormatError) { 15702 MultiStepForm.focusFirstErrorItem(CommonSubmitValidator.$targetForm); 15703 15704 canSubmit = false; 15705 } 15706 15707 deferred1.resolve(); 15708 }); 15709 } else { 15710 deferred1.resolve(); 15711 } 15712 } else if (formType === FormFilter.General.FORM_TYPE.MOBILE_NUMBER) { 15713 if (wechatLoginActiveTrigger && 15714 WechatLoginFlow.STATE_CODE.current === WechatLoginFlow.STATE_CODE.L10 && 15715 CommonSubmitValidator.isLoginActionForm() 15716 ) { 15717 deferred1.resolve(); 15718 isWechatLoginL10 = true; 15719 } 15720 15721 if (requiredFields && !isWechatLoginL10) { 15722 hasBlankError = BlankFieldValidator.validateFieldAll(requiredFields); 15723 15724 if (hasBlankError) { 15725 canSubmit = false; 15726 } 15727 } 15728 15729 if (SMSCodeField && 15730 !ControlErrorDisplay.isTriggerClicked(SMSCodeField) && 15731 !SMSCodeField.classList.contains(BlankFieldValidator.classNames.status) && 15732 !isWechatLoginL10 15733 ) { 15734 PatternValidator.updateFieldStatus(SMSCodeField); 15735 15736 if (SMSCodeField.classList.contains(PatternValidator.classNames.status)) { 15737 canSubmit = false; 15738 } 15739 } 15740 15741 ControlErrorDisplay.setTriggerClickedData(controlErrorDispalyTrigger); 15742 15743 if (mobileNumberFields.length && !isWechatLoginL10) { 15744 MobileNumberValidator.validateFieldAll(mobileNumberFields).done(function (hasFormatError) { 15745 if (hasFormatError) { 15746 MultiStepForm.focusFirstErrorItem(CommonSubmitValidator.$targetForm); 15747 15748 canSubmit = false; 15749 } 15750 15751 if (!wechatLoginActiveTrigger) { 15752 deferred1.resolve(); 15753 } 15754 }); 15755 } else if (!wechatLoginActiveTrigger && 15756 !isWechatLoginL10 15757 ) { 15758 deferred1.resolve(); 15759 } 15760 15761 if (wechatLoginActiveTrigger && 15762 CommonSubmitValidator.isMobileNumberFields && 15763 !SMSCodeField.classList.contains(BlankFieldValidator.classNames.status) && 15764 !SMSCodeField.classList.contains(PatternValidator.classNames.status) && 15765 !isWechatLoginL10 15766 ) { 15767 WechatLoginFlow.checkVerificationCode( 15768 CommonSubmitValidator.mobileNumberFields.countryNumberSelectedOption.value, 15769 CommonSubmitValidator.mobileNumberFields.number.value, 15770 SMSCodeField.value 15771 ).then((result) => { 15772 if (result.message) { 15773 MultiStepForm.insertErrorText(SMSCodeField.name, result.message); 15774 MultiStepForm.focusFirstErrorItem(CommonSubmitValidator.$targetForm); 15775 canSubmit = false; 15776 } 15777 15778 deferred1.resolve(); 15779 }).catch((error) => { 15780 deferred1.resolve(); 15781 }); 15782 } else if (wechatLoginActiveTrigger && 15783 !isWechatLoginL10 15784 ) { 15785 deferred1.resolve(); 15786 } 15787 } 15788 15789 deferred1.promise().done(function () { 15790 if (canSubmit) { 15791 commonSendVerificationEmail.enableEmailAddress(formType); 15792 ModalPasswordError.enableErrorCount(formType); 15793 15794 if (CommonSubmitValidator.isLoginActionForm() && wechatLoginActiveTrigger) { 15795 WechatLoginFlow?.loginCountryCode.removeAttribute('disabled'); 15796 WechatLoginFlow?.loginMobileNumber.removeAttribute('disabled'); 15797 } 15798 15799 setTimeout(function () { 15800 $(CommonSubmitValidator.formSelector).find('input[type="submit"]').trigger('click'); 15801 }, 0); 15802 } else { 15803 MultiStepForm.focusFirstErrorItem(CommonSubmitValidator.$targetForm); 15804 } 15805 }); 15806 15807 return false; 15808 }; 15809 15810 CommonSubmitValidator.isLoginActionForm = function () { 15811 if(doc.querySelector('form[name="' + names.loginActionForm + '"]')) { 15812 return true; 15813 } 15814 15815 return false; 15816 }; 15817 15818 CommonSubmitValidator.isReloginActionForm = function () { 15819 if(doc.querySelector('form[name="' + names.reloginActionForm + '"]') || 15820 doc.querySelector('form[name="' + names.withdrawActionForm + '"]') 15821 ) { 15822 return true; 15823 } 15824 15825 return false; 15826 }; 15827 15828 return CommonSubmitValidator; 15829 }()); 15830 15831 KEYENCE.Form.AvailableValidator = (function () { 15832 var MultiStepForm = null; 15833 var BlankFieldValidator = null; 15834 var PatternMatchValidator = null; 15835 var MultiFactorAuthentication = null; 15836 15837 var AvailableValidator = { 15838 multiStepForm: null, 15839 preform: null, 15840 RegisterForm: null, 15841 targetWrapperClass: { 15842 email: 'js-validateEmailAvailable',
15843 phone: 'js-validatePhoneAvailable', 15844 mobile: 'js-validateMobileAvailable' 15845 }, 15846 targetClass: { 15847 emailAddress: 'js-validateEmailAvailable-target', 15848 phoneCountryId: 'js-validatePhoneAvailable-countryId', 15849 phoneNumber: 'js-validatePhoneAvailable-number', 15850 mobileCountryId: 'js-validateMobileAvailable-countryId', 15851 mobileNumber: 'js-validateMobileAvailable-number', 15852 status: 'is-unavailable' 15853 }, 15854 targetElements: { 15855 phoneNumber: null, 15856 mobileNumber: null, 15857 registerEmailAddress: null, 15858 }, 15859 targetKey: { 15860 email: 'email', 15861 mobile: 'mobile', 15862 phone: 'phone' 15863 }, 15864 targetData: { 15865 targetWrapper: null, 15866 emailAddressElement: null, 15867 numberElement: null, 15868 countryIdElement: null, 15869 emailAddressValue: '', 15870 numberValue: '', 15871 countryIdValue: '', 15872 url: '', 15873 type: '' 15874 }, 15875 apiUrl: { 15876 email: 'https://emailvalidation.abstractapi.com/v1/?email=', 15877 phone: 'https://phonevalidation.abstractapi.com/v1/?phone=' 15878 }, 15879 apiKey: { 15880 email: { 15881 KA: 'api_key=f9e036567bfc45faaa30f137cd49dbe2', 15882 KC: 'api_key=20a1603bfb44481482fddfa0083c84a8', 15883 KD: 'api_key=a4dd7af167794df9854b6d1a43d149ca', 15884 other: 'api_key=d295ade92f5441ef8dfba512e251ff40' 15885 }, 15886 phone: { 15887 KA: 'api_key=0f96bf50834f431aaa97290c4df8d12d', 15888 KC: 'api_key=ac2859436219450493b185a70c9bdfa4', 15889 KD: 'api_key=bf72f74f189f4c858e2b10e0237592ec', 15890 other: 'api_key=73202111e94747509ade48cfa214f8b3' 15891 }, 15892 current: { 15893 email: '', 15894 phone: '' 15895 } 15896 }, 15897 config: { 15898 registerTargets: null, 15899 registerTargetsLength: 0, 15900 isRunningVerification: false, 15901 isUnavailable: false, 15902 preFormProcessingEventObject: null, 15903 registerProcessingEventObject: null, 15904 registerCurrentPanelType: '', 15905 currentArea: null, 15906 currentTarget: null, 15907 isReturnFirstTimePreForm: false, 15908 isPreFormContinueBlocked: false, 15909 isRegisterContinueBlocked: false, 15910 isStoppingPhoneNumberCopy: false, 15911 isPressedEnterOnEditProfileForm: false 15912 }, 15913 processingUnblocked: { 15914 email: false, 15915 signInMobile: false 15916 }, 15917 validateCancel: { 15918 country: { 15919 email: [], 15920 mobile: ['KC'], 15921 phone: ['KC'] 15922 }, 15923 regularExpression: { 15924 /* ALL: [ 15925 ['email', '^[a-zA-Z0-9\\.!#$%&\'*+\/=?^_`{|}~\-]+@([a-zA-Z0-9\-]+\\.){2,}com$'] 15926 ], 15927 KA: [ 15928 ['mobile', '^\\+1[0-9]{11}$'], 15929 ['phone', '^\\+1[0-9]{11}$'] 15930 ] */ 15931 }, 15932 cancelData: { 15933 email: false, 15934 mobile: false, 15935 phone: false, 15936 regularExpression: { 15937 email: [], 15938 mobile: [], 15939 phone: [] 15940 } 15941 } 15942 } 15943 }; 15944 15945 AvailableValidator.init = function () { 15946 MultiStepForm = win.MultiStepForm; 15947 this.multiStepForm = doc.getElementById(MultiStepForm.idNames.trigger); 15948 this.preform = doc.getElementById(MultiStepForm.PreForm.idNames.root); 15949 this.RegisterForm = doc.getElementById(MultiStepForm.Register.idNames.regForm); 15950 15951 BlankFieldValidator = win.KeyenceForm.BlankFieldValidator; 15952 PatternMatchValidator = win.KeyenceForm.PatternMatchValidator; 15953 MultiFactorAuthentication = win.KeyenceForm.MultiFactorAuthentication 15954 15955 if(!this.multiStepForm) { 15956 return; 15957 } 15958 15959 this.setCancelData(); 15960 this.setCurrentApiKey(); 15961 15962 if (this.preform) { 15963 this.setTriggerElements(this.preform); 15964 } 15965 15966 if (this.RegisterForm) { 15967 this.setTriggerElements(this.RegisterForm); 15968 this.setRegisterElements(); 15969 this.setTargetBlockStatus();
15970 this.setMutationObserver(); 15971 } 15972 15973 if (MultiStepForm.isEditProfileForm()) { 15974 this.isStoppingPhoneNumberCopy = true; 15975 this.checkAvailableAllTargets(); 15976 } 15977 }; 15978 15979 AvailableValidator.setCancelData = function () { 15980 var self = this; 15981 var siteName = self.getSiteData(); 15982 15983 if (!siteName) { 15984 return; 15985 } 15986 15987 Object.keys(self.validateCancel.country).forEach(function (type) { 15988 if (self.validateCancel.country[type].indexOf('ALL') !== -1 15989 || self.validateCancel.country[type].indexOf(siteName) !== -1) { 15990 self.validateCancel.cancelData[type] = true; 15991 } else { 15992 self.validateCancel.cancelData[type] = false; 15993 } 15994 }); 15995 15996 Object.keys(self.validateCancel.regularExpression).forEach(function (country) { 15997 if (country === 'ALL' || country === siteName) { 15998 self.validateCancel.regularExpression[country].forEach(function (data) { 15999 self.validateCancel.cancelData.regularExpression[data[0]].push(data[1]); 16000 }); 16001 } 16002 }); 16003 }; 16004 16005 AvailableValidator.getSiteData = function () { 16006 var siteId = win.kpi_siteSettings.siteId; 16007 var siteLanguage = win.kpi_siteSettings.siteLang; 16008 var siteName = ''; 16009 var targetSite = ''; 16010 16011 for (targetSite in MultiStepForm.siteData) { 16012 if (MultiStepForm.siteData[targetSite].id === siteId 16013 && MultiStepForm.siteData[targetSite].lang === siteLanguage) { 16014 siteName = targetSite; 16015 16016 break; 16017 } 16018 } 16019 16020 return siteName; 16021 }; 16022 16023 AvailableValidator.setCurrentApiKey = function () { 16024 var siteName = this.getSiteData(); 16025 16026 if (!siteName) { 16027 return; 16028 } 16029 16030 if (this.apiKey.email[siteName]) { 16031 this.apiKey.current.email = this.apiKey.email[siteName]; 16032 } else { 16033 this.apiKey.current.email = this.apiKey.email.other; 16034 } 16035 16036 if (this.apiKey.phone[siteName]) { 16037 this.apiKey.current.phone = this.apiKey.phone[siteName]; 16038 } else { 16039 this.apiKey.current.phone = this.apiKey.phone.other; 16040 } 16041 }; 16042 16043 AvailableValidator.setTriggerElements = function (targetForm) { 16044 var targetWrapperElements = null; 16045 16046 Object.keys(this.targetWrapperClass).forEach(function (key) { 16047 targetWrapperElements = targetForm.querySelectorAll('.' + AvailableValidator.targetWrapperClass[key]); 16048 16049 if (targetWrapperElements.length) { 16050 targetWrapperElements.forEach(function (WrapperElement) { 16051 AvailableValidator.setValidateEvent(WrapperElement, key, targetForm); 16052 }); 16053 } 16054 }); 16055 }; 16056 16057 AvailableValidator.setRegisterElements = function () { 16058 this.targetElements.mobileNumber = this.RegisterForm.querySelector('.' + this.targetClass.mobileNumber); 16059 this.targetElements.phoneNumber = this.RegisterForm.querySelector('.' + this.targetClass.phoneNumber); 16060 this.targetElements.registerEmailAddress = this.RegisterForm.querySelector('.' + this.targetClass.emailAddress); 16061 this.config.registerTargets = this.RegisterForm.querySelectorAll('.' + this.targetClass.mobileNumber + ', .' + this.targetClass.phoneNumber + ', .' + this.targetClass.emailAddress); 16062 this.config.registerTargetsLength = this.config.registerTargets.length; 16063 }; 16064 16065 AvailableValidator.setTargetBlockStatus = function () { 16066 if (this.targetElements.mobileNumber) { 16067 if (this.isCountryId(this.targetElements.mobileNumber, 'mobile')) { 16068 this.processingUnblocked.mobile = false; 16069 } 16070 } 16071 16072 if (this.targetElements.phoneNumber) { 16073 if (this.isCountryId(this.targetElements.phoneNumber, 'phone')) { 16074 this.processingUnblocked.phone = false; 16075 } 16076 } 16077 16078 if (this.targetElements.registerEmailAddress) { 16079 if (!this.targetElements.registerEmailAddress.hasAttribute('hidden')) { 16080 this.processingUnblocked.registerEmail = false; 16081 } 16082 } 16083 }; 16084 16085 AvailableValidator.setValidateEvent = function (targetWrapper, type, targetForm) { 16086 var target = null; 16087 var countryNumber = null; 16088 16089 switch (type) { 16090 case this.targetKey.email: 16091 target = targetWrapper.querySelector('.' + this.targetClass.emailAddress); 16092 16093 if (!target) { 16094 break; 16095 } 16096 16097 if (target.hasAttribute('hidden')) { 16098 break; 16099 } 16100 16101 if (this.isCancelTarget(type)) { 16102 this.setProcessingUnblock(type, targetForm); 16103 16104 break; 16105 } 16106 16107 if (targetForm !== this.RegisterForm 16108 && !target.classList.contains(PatternMatchValidator.classNames.trigger)) { 16109 target.addEventListener('blur', this.runEmailValidate.bind(this), false); 16110 } 16111 16112 target.addEventListener('blur', this.changeRunningStatus, false); 16113 target.addEventListener('input', this.changeBlockStatus, false); 16114 16115 if (targetForm === this.RegisterForm) { 16116 target.addEventListener('input', this.setCurrentTarget, false); 16117 target.addEventListener('focus', this.setCurrentTarget, false); 16118 } 16119 16120 break; 16121 16122 case this.targetKey.mobile: 16123 target = targetWrapper.querySelector('.' + this.targetClass.mobileNumber); 16124 countryNumber = targetWrapper.querySelector('.' + this.targetClass.mobileCountryId); 16125 16126 if (!target || !countryNumber) { 16127 break; 16128 } 16129 16130 if (this.isCancelTarget(type)) { 16131 this.setProcessingUnblock(type, targetForm); 16132 16133 break; 16134 } 16135 16136 if (target) { 16137 if (targetForm !== this.RegisterForm 16138 && !target.classList.contains(PatternMatchValidator.classNames.trigger)) { 16139 target.addEventListener('blur', this.runMobileValidate.bind(this), false); 16140 } 16141 16142 target.addEventListener('blur', this.changeRunningStatus, false); 16143 target.addEventListener('input', this.changeBlockStatus, false); 16144 16145 if (targetForm === this.RegisterForm) { 16146 target.addEventListener('input', this.setCurrentTarget, false); 16147 target.addEventListener('focus', this.setCurrentTarget, false); 16148 } 16149 } 16150 16151 if (countryNumber) { 16152 countryNumber.addEventListener('change', this.runMobileValidate.bind(this), false); 16153 } 16154 16155 break; 16156 16157 case this.targetKey.phone: 16158 target = targetWrapper.querySelector('.' + this.targetClass.phoneNumber); 16159 countryNumber = targetWrapper.querySelector('.' + this.targetClass.phoneCountryId); 16160 16161 if (!target || !countryNumber) { 16162 break; 16163 } 16164 16165 if (this.isCancelTarget(type)) { 16166 this.setProcessingUnblock(type, targetForm); 16167 16168 break; 16169 } 16170 16171 if (target) { 16172 if (targetForm !== this.RegisterForm 16173 && !target.classList.contains(PatternMatchValidator.classNames.trigger)) { 16174 target.addEventListener('blur', this.runPhoneValidate.bind(this), false); 16175 } 16176 16177 target.addEventListener('blur', this.changeRunningStatus, false); 16178 target.addEventListener('input', this.changeBlockStatus, false); 16179 16180 if (targetForm === this.RegisterForm) { 16181 target.addEventListener('input', this.setCurrentTarget, false); 16182 target.addEventListener('focus', this.setCurrentTarget, false); 16183 } 16184 } 16185 16186 if (countryNumber) { 16187 countryNumber.addEventListener('change', this.runPhoneValidate.bind(this), false); 16188 } 16189 16190 break; 16191 16192 default: 16193 break; 16194 } 16195 }; 16196 16197 AvailableValidator.isCancelTarget = function (type) { 16198 if (this.validateCancel.cancelData[type]) { 16199 return true; 16200 } 16201 16202 return false; 16203 }; 16204 16205 AvailableValidator.setProcessingUnblock = function (type, targetForm) { 16206 if (targetForm === this.preform) { 16207 if (type === 'email') { 16208 this.processingUnblocked.email = true; 16209 } else if (type === 'mobile') { 16210 this.processingUnblocked.signInMobile = true; 16211 } 16212 } else if (targetForm === this.RegisterForm) { 16213 if (type === 'email') { 16214 this.processingUnblocked.registerEmail = true; 16215 } else if (type === 'mobile') { 16216 AvailableValidator.processingUnblocked.mobile = true; 16217 } else if (type === 'phone') { 16218 AvailableValidator.processingUnblocked.phone = true; 16219 } 16220 } 16221 }; 16222 16223 AvailableValidator.changeRunningStatus = function (event) { 16224 AvailableValidator.config.isRunningVerification = true; 16225 }; 16226 16227 AvailableValidator.changeBlockStatus = function (event) { 16228 var targetElement = event.currentTarget; 16229 16230 if (targetElement.closest('.' + MultiStepForm.Register.classNames.formPanel) 16231 && targetElement.classList.contains(AvailableValidator.targetClass.emailAddress)) { 16232 AvailableValidator.processingUnblocked.registerEmail = false; 16233 } else if (targetElement.classList.contains(AvailableValidator.targetClass.emailAddress)) { 16234 AvailableValidator.processingUnblocked.email = false; 16235 } else if (targetElement.closest('#' + MultiStepForm.PreForm.idNames.root) 16236 && targetElement.classList.contains(AvailableValidator.targetClass.mobileNumber)) { 16237 AvailableValidator.processingUnblocked.signInMobile = false; 16238 } else if (targetElement.closest('.' + MultiStepForm.Register.classNames.formPanel) 16239 && targetElement.classList.contains(AvailableValidator.targetClass.mobileNumber)) { 16240 AvailableValidator.processingUnblocked.mobile = false; 16241 } else if (targetElement.closest('.' + MultiStepForm.Register.classNames.formPanel) 16242 && targetElement.classList.contains(AvailableValidator.targetClass.phoneNumber)) { 16243 AvailableValidator.processingUnblocked.phone = false; 16244 } 16245 }; 16246 16247 AvailableValidator.setCurrentTarget = function (event) { 16248 AvailableValidator.config.currentTarget = event.currentTarget; 16249 }; 16250 16251 AvailableValidator.runEmailValidate = function (target, $deferred, isErrorCheck) { 16252 var requireElementObject = this.getRequireElements(target, this.targetKey.email); 16253 16254 if (this.isCancelTarget(this.targetKey.email)) { 16255 if ($deferred) { 16256 $deferred.resolve(target); 16257 } 16258 16259 return; 16260 } 16261 16262 if (!requireElementObject) { 16263 if ($deferred) { 16264 $deferred.resolve(target); 16265 } 16266 16267 return; 16268 } 16269 16270 if (BlankFieldValidator.isBlank(requireElementObject.target)) { 16271 this.clearNoteText(requireElementObject.targetWrapper); 16272 16273 if ($deferred) { 16274 $deferred.resolve(target); 16275 } 16276 16277 return; 16278 } 16279 16280 this.initTargetData(); 16281 this.setTargetData(requireElementObject.target, requireElementObject.targetWrapper, this.apiKey.current.email, this.targetKey.email); 16282 16283 if (this.isMatchCancelRegularExpression(this.targetData.emailAddressElement.value, this.targetKey.email)) { 16284 this.clearNoteText(requireElementObject.targetWrapper); 16285 16286 if (requireElementObject.target.closest('#' + MultiStepForm.PreForm.idNames.root)) { 16287 this.processingUnblocked.email = true; 16288 } else if (requireElementObject.target.closest('#' + MultiStepForm.Register.idNames.regForm)) { 16289 this.processingUnblocked.registerEmail = true; 16290 } 16291 16292 if ($deferred) { 16293 $deferred.resolve(target); 16294 } 16295 } 16296 16297 this.runAvailableValidate(this.targetData).done(function (resultData) { 16298 if(!resultData) { 16299 if ($deferred) { 16300 $deferred.resolve(target); 16301 } 16302 16303 return; 16304 } 16305 16306 AvailableValidator.updateEmailStatus(resultData, isErrorCheck); 16307 16308 if ($deferred) { 16309 $deferred.resolve(target); 16310 } 16311 }).fail(function () { 16312 AvailableValidator.clearNoteText(requireElementObject.targetWrapper); 16313 16314 if ($deferred) { 16315 $deferred.resolve(target); 16316 } 16317 }); 16318 }; 16319 16320 AvailableValidator.runMobileValidate = function (target, $deferred, isErrorCheck) { 16321 var requireElementObject = this.getRequireElements(target, this.targetKey.mobile); 16322 16323 if (this.isCancelTarget(this.targetKey.mobile)) { 16324 if ($deferred) { 16325 $deferred.resolve(target); 16326 } 16327 16328 return; 16329 } 16330 16331 if (!requireElementObject) { 16332 if ($deferred) { 16333 $deferred.resolve(target); 16334 } 16335 16336 return; 16337 } 16338 16339 if (this.isBlankNumber(requireElementObject, this.targetKey.mobile)) { 16340 this.clearNoteText(requireElementObject.targetWrapper); 16341 16342 if ($deferred) { 16343 $deferred.resolve(target); 16344 } 16345 16346 return; 16347 } 16348 16349 this.initTargetData(); 16350 this.setTargetData(requireElementObject.target, requireElementObject.targetWrapper, this.apiKey.current.phone, this.targetKey.mobile); 16351 16352 if (!this.targetData.numberElement || !this.targetData.countryIdElement ) { 16353 if ($deferred) { 16354 $deferred.resolve(target); 16355 } 16356 16357 return; 16358 } 16359 16360 if (this.isMatchCancelRegularExpression(this.targetData.countryIdValue + this.targetData.numberValue, this.targetKey.mobile)) { 16361 this.clearNoteText(requireElementObject.targetWrapper); 16362 16363 if (requireElementObject.target.closest('#' + MultiStepForm.PreForm.idNames.root)) { 16364 this.processingUnblocked.signInMobile = true; 16365 } else if (requireElementObject.t
16365arget.closest('#' + MultiStepForm.Register.idNames.regForm)) { 16366 this.processingUnblocked.mobile = true; 16367 } 16368 16369 if ($deferred) { 16370 $deferred.resolve(target); 16371 } 16372 } 16373 16374 this.runAvailableValidate(this.targetData).done(function (resultData) { 16375 if(!resultData) { 16376 if ($deferred) { 16377 $deferred.resolve(target); 16378 } 16379 16380 return; 16381 } 16382 16383 AvailableValidator.updateNumberStatus(resultData, isErrorCheck, target); 16384 16385 if ($deferred) { 16386 $deferred.resolve(target); 16387 } 16388 }).fail(function () { 16389 AvailableValidator.clearNoteText(requireElementObject.targetWrapper); 16390 16391 if ($deferred) { 16392 $deferred.resolve(target); 16393 } 16394 }); 16395 }; 16396 16397 AvailableValidator.runPhoneValidate = function (target, $deferred, isErrorCheck) { 16398 var requireElementObject = this.getRequireElements(target, this.targetKey.phone); 16399 16400 if (this.isCancelTarget(this.targetKey.phone)) { 16401 if ($deferred) { 16402 $deferred.resolve(target); 16403 } 16404 16405 return; 16406 } 16407 16408 if (!requireElementObject) { 16409 if ($deferred) { 16410 $deferred.resolve(target); 16411 } 16412 16413 return; 16414 } 16415 16416 if (this.isBlankNumber(requireElementObject, this.targetKey.phone)) { 16417 this.clearNoteText(requireElementObject.targetWrapper); 16418 16419 if ($deferred) { 16420 $deferred.resolve(target); 16421 } 16422 16423 return; 16424 } 16425 16426 this.initTargetData(); 16427 this.setTargetData(requireElementObject.target, requireElementObject.targetWrapper, this.apiKey.current.phone, this.targetKey.phone); 16428 16429 if (!this.targetData.numberElement || !this.targetData.countryIdElement ) { 16430 if ($deferred) { 16431 $deferred.resolve(target); 16432 } 16433 16434 return; 16435 } 16436 16437 if (this.isMatchCancelRegularExpression(this.targetData.countryIdValue + this.targetData.numberValue, this.targetKey.phone)) { 16438 this.clearNoteText(requireElementObject.targetWrapper); 16439 this.processingUnblocked.phone = true; 16440 16441 if ($deferred) { 16442 $deferred.resolve(target); 16443 } 16444 } 16445 16446 this.runAvailableValidate(this.targetData).done(function (resultData) { 16447 if(!resultData) { 16448 if ($deferred) { 16449 $deferred.resolve(target); 16450 } 16451 16452 return; 16453 } 16454 16455 AvailableValidator.updateNumberStatus(resultData, isErrorCheck); 16456 16457 if ($deferred) { 16458 $deferred.resolve(target); 16459 } 16460 }).fail(function () { 16461 AvailableValidator.clearNoteText(requireElementObject.targetWrapper); 16462 16463 if ($deferred) { 16464 $deferred.resolve(target); 16465 } 16466 }); 16467 }; 16468 16469 AvailableValidator.getRequireElements = function (target, type) { 16470 var targetElement = null; 16471 var requireElements = null; 16472 var targetWrapper = null; 16473 16474 if (target.currentTarget) { 16475 targetElement = target.currentTarget; 16476 } else { 16477 targetElement = target; 16478 } 16479 16480 if (!targetElement || !type) { 16481 return requireElements; 16482 } 16483 16484 targetWrapper = targetElement.closest('.' + this.targetWrapperClass[type]); 16485 16486 if (!targetWrapper) { 16487 return requireElements; 16488 } 16489 16490 return requireElements = { 16491 target: targetElement, 16492 targetWrapper: targetWrapper 16493 }; 16494 } 16495 16496 AvailableValidator.hasError = function (targetWrapper) { 16497 if (targetWrapper.classList.contains(MultiStepForm.classNames.isError)) { 16498 return true; 16499 } 16500 16501 return false; 16502 } 16503 16504 AvailableValidator.isBlankNumber = function (requireElementObject, type) { 16505 var isBlank = true; 16506 var numberInput = null; 16507 16508 if (requireElementObject.target.tagName === 'INPUT') { 16509 if (requireElementObject.target.value === '') { 16510 return isBlank; 16511 } else { 16512 isBlank = false; 16513 } 16514 } else { 16515 if (type === this.targetKey.mobile) { 16516 numberInput = requireElementObject.targetWrapper.querySelector('.' + this.targetClass.mobileNumber); 16517 } else { 16518 numberInput = requireElementObject.targetWrapper.querySelector('.' + this.targetClass.phoneNumber); 16519 } 16520 16521 if (numberInput && numberInput.value === '') { 16522 return isBlank; 16523 } else { 16524 isBlank = false; 16525 } 16526 } 16527 16528 return isBlank; 16529 }; 16530 16531 AvailableValidator.runAvailableValidate = function (targetData) { 16532 var $deferred = new $.Deferred(); 16533 var resultData = {}; 16534 16535 if (targetData.url === '') { 16536 $deferred.reject(); 16537 16538 return $deferred.reject(); 16539 } 16540 16541 $.ajax({
16542 url: targetData.url, 16543 type: 'GET', 16544 dataType: 'json', 16545 timeout: 10000 16546 }).done(function (data) { 16547 if (targetData.type !== AvailableValidator.targetKey.email) { 16548 resultData = { 16549 apiData: data, 16550 targetData: targetData, 16551 targetType: targetData.type 16552 } 16553 } else { 16554 resultData = { 16555 apiData: data, 16556 targetData: targetData 16557 } 16558 } 16559 16560 $deferred.resolve(resultData); 16561 }).fail(function () { 16562 $deferred.reject(); 16563 }); 16564 16565 return $deferred.promise(); 16566 }; 16567 16568 AvailableValidator.initTargetData = function () { 16569 this.targetData = { 16570 targetWrapper: null, 16571 emailAddressElement: null, 16572 numberElement: null, 16573 countryIdElement: null, 16574 emailAddressValue: '', 16575 numberValue: '', 16576 countryIdValue: '', 16577 url: '', 16578 type: '' 16579 }; 16580 }; 16581 16582 AvailableValidator.setTargetData = function (target, targetWrapper, apiKey, type) { 16583 var data = this.targetData; 16584 var optionElements = null; 16585 var reg = null; 16586 var inputValue = ''; 16587 16588 data.targetWrapper = targetWrapper; 16589 data.type = type; 16590 16591 if (type === this.targetKey.email) { 16592 data.emailAddressElement = target; 16593 data.url = this.apiUrl.email + target.value + '&' + apiKey; 16594 16595 return; 16596 } else if (type === this.targetKey.mobile) { 16597 data.numberElement = targetWrapper.querySelector('.' + this.targetClass.mobileNumber); 16598 data.countryIdElement = targetWrapper.querySelector('.' + this.targetClass.mobileCountryId); 16599 } else if (type === this.targetKey.phone) { 16600 data.numberElement = targetWrapper.querySelector('.' + this.targetClass.phoneNumber); 16601 data.countryIdElement = targetWrapper.querySelector('.' + this.targetClass.phoneCountryId); 16602 } 16603 16604 if (data.numberElement && data.countryIdElement) { 16605 data.numberValue = data.numberElement.value; 16606 optionElements = data.countryIdElement.options; 16607 data.countryIdValue = optionElements[data.countryIdElement.selectedIndex].dataset.code; 16608 } 16609 16610 if (!data.numberValue || !data.countryIdValue) { 16611 return; 16612 } 16613 16614 if (data.numberValue.indexOf(data.countryIdValue) === 0) { 16615 inputValue = data.numberValue; 16616 reg = new RegExp('\\' + data.countryIdValue); 16617 16618 data.numberValue = inputValue.replace(reg, ''); 16619 } 16620 16621 data.url = this.apiUrl.phone + encodeURIComponent(data.countryIdValue + data.numberValue) + '&' + apiKey; 16622 }; 16623 16624 AvailableValidator.updateEmailStatus = function (resultData, isErrorCheck) { 16625 var apiData = resultData.apiData; 16626 var targetData = resultData.targetData; 16627 16628 if (apiData.deliverability !== 'DELIVERABLE' 16629 || !apiData.is_valid_format.value) { 16630 this.insertNoteText(targetData.targetWrapper, 'data-message-email-address-available', isErrorCheck); 16631 16632 if (isErrorCheck) { 16633 targetData.targetWrapper.dataset.unavailable = 'true'; 16634 } else { 16635 this.showNoteText(targetData.targetWrapper); 16636 } 16637 16638 return; 16639 } 16640 16641 this.clearNoteText(targetData.targetWrapper); 16642 }; 16643 16644 AvailableValidator.updateNumberStatus = function (resultData, isErrorCheck, targetEvent) { 16645 var apiData = resultData.apiData; 16646 var targetData = resultData.targetData; 16647 var optionElements = null; 16648 var countryCode = ''; 16649 var mobileNumberId = win.KeyenceForm.SetMobileNumberToPhoneField.idNames.mobileNumber; 16650 16651 switch (resultData.targetType) { 16652 case this.targetKey.mobile: 16653 if (!apiData.valid) { 16654 this.insertNoteText(targetData.targetWrapper, 'data-message-mobile-number-available', isErrorCheck); 16655 16656 if (isErrorCheck) { 16657 targetData.targetWrapper.dataset.unavailable = 'true'; 16658 } else { 16659 this.showNoteText(targetData.targetWrapper); 16660 } 16661 16662 break; 16663 } 16664
16665 // Do not overwrite the authentication code target value when edit cancel button is pressed 16666 if (!(targetData.numberElement.disabled 16667 && targetData.numberElement.classList.contains('js-controlVerificationTargetValue-mobileNumber'))) { 16668 targetData.numberElement.value = this.getLocalNumber(apiData.country.prefix, apiData.format.international, apiData.format.local, targetData.numberValue); 16669 } 16670 16671 if (apiData.type !== this.targetKey.mobile && apiData.type !== 'unknown') { 16672 this.insertNoteText(targetData.targetWrapper, 'data-message-mobile-number-available', isErrorCheck); 16673 16674 if (isErrorCheck) { 16675 targetData.targetWrapper.dataset.unavailable = 'true'; 16676 } else { 16677 this.showNoteText(targetData.targetWrapper); 16678 } 16679 16680 break; 16681 } 16682 16683 this.clearNoteText(targetData.targetWrapper); 16684 16685 if ((targetEvent && targetEvent.type === 'change') || 16686 (targetData.numberElement.id === mobileNumberId && !isErrorCheck)) { 16687 win.KeyenceForm.SetMobileNumberToPhoneField.run(targetEvent.target.name); 16688 } else if (targetData.numberElement.id === mobileNumberId && isErrorCheck) { 16689 targetData.targetWrapper.dataset.available = 'true'; 16690 } 16691 16692 break; 16693 16694 case this.targetKey.phone: 16695 if (!apiData.valid) { 16696 this.insertNoteText(targetData.targetWrapper, 'data-message-phone-number-available', isErrorCheck); 16697 16698 if (isErrorCheck) { 16699 targetData.targetWrapper.dataset.unavailable = 'true'; 16700 } else { 16701 this.showNoteText(targetData.targetWrapper); 16702 } 16703 16704 break; 16705 } 16706 16707 targetData.numberElement.value = this.getLocalNumber(apiData.country.prefix, apiData.format.international, apiData.format.local, targetData.numberValue); 16708 16709 this.clearNoteText(targetData.targetWrapper); 16710 16711 if (apiData.type === this.targetKey.mobile && 16712 !this.isStoppingPhoneNumberCopy && 16713 !win.KeyenceForm.SetMobileNumberToPhoneField.config.isNumberCopyRunning) { 16714 optionElements = targetData.countryIdElement.options; 16715 countryCode = optionElements[targetData.countryIdElement.selectedIndex].value; 16716 16717 this.inputMobileValue(targetData.numberElement.value, targetData.countryIdValue, countryCode); 16718 } 16719 16720 break; 16721 16722 default: 16723 return; 16724 } 16725 }; 16726 16727 AvailableValidator.getLocalNumber = function (countryCode, internationalValue, localValue, inputValue) { 16728 var reg = new RegExp('\\' + countryCode); 16729 var internationalFormatValue = internationalValue.replace(reg, ''); 16730 var localFormatValue = ''; 16731 var localFormatRemovedFirstValue = ''; 16732 var firstValueLocalFormat = ''; 16733 var formattedValue = inputValue.replace(/[^0-9]/g, ''); 16734 16735 if (localValue) { 16736 localFormatValue = localValue.replace(/[^0-9]/g, ''); 16737 } 16738 16739 if ((internationalFormatValue && localFormatValue) 16740 && internationalFormatValue !== localFormatValue) { 16741 localFormatRemovedFirstValue = localFormatValue.slice(1); 16742 firstValueLocalFormat = localFormatValue.charAt(0);
16743 16744 if (internationalFormatValue === localFormatRemovedFirstValue) { 16745 formattedValue = firstValueLocalFormat + internationalFormatValue; 16746 } 16747 } else { 16748 return internationalFormatValue; 16749 } 16750 16751 return formattedValue; 16752 }; 16753 16754 AvailableValidator.inputMobileValue = function (numberValue, countryIdValue, countryCode) { 16755 var mobileTriggers = this.RegisterForm.querySelectorAll('.' + this.targetWrapperClass.mobile); 16756 var mobileElement = null; 16757 var mobileCountryNumber = null; 16758 var mobileOption = null; 16759 var blurEvent = new Event('blur'); 16760 var changeEvent = new Event('change'); 16761 16762 if (!mobileTriggers.length) { 16763 return; 16764 } 16765 16766 mobileTriggers.forEach(function (trigger) { 16767 mobileElement = trigger.querySelector('.' + AvailableValidator.targetClass.mobileNumber); 16768 mobileCountryNumber = trigger.querySelector('.' + AvailableValidator.targetClass.mobileCountryId); 16769 16770 if (mobileElement.id === 'suz_mobileNumber') { 16771 return; 16772 } 16773 16774 if (mobileElement && mobileCountryNumber && countryCode) { 16775 mobileOption = mobileCountryNumber.querySelector('option[data-code="' + countryIdValue + '"][value="' + countryCode + '"]'); 16776 16777 if (mobileOption) { 16778 mobileElement.value = numberValue; 16779 mobileOption.selected = true; 16780 16781 AvailableValidator.clearNoteText(trigger); 16782 mobileCountryNumber.closest('.js-selectCountryNumber').dispatchEvent(changeEvent); 16783 mobileElement.dispatchEvent(blurEvent); 16784 } 16785 } 16786 }); 16787 }; 16788 16789 AvailableValidator.insertNoteText = function (targetWrapper, dataName, isErrorCheck) { 16790 var errorTextElement = ''; 16791 var errorText = ''; 16792 16793 if (!targetWrapper 16794 || (targetWrapper.classList.contains(MultiStepForm.classNames.isError) && !isErrorCheck)) { 16795 return; 16796 } 16797 16798 errorTextElement = targetWrapper.querySelector('.' + MultiStepForm.classNames.errText); 16799 16800 if (!errorTextElement) { 16801 return; 16802 } 16803 16804 if (dataName === 'data-message-email-address-format' 16805 && typeof errorTextElement.dataset.messageEmailAddressFormat === 'string') { 16806 errorText = errorTextElement.dataset.messageEmailAddressFormat; 16807 } else if (dataName === 'data-message-email-address-available' 16808 && typeof errorTextElement.dataset.messageEmailAddressAvailable === 'string') { 16809 errorText = errorTextElement.dataset.messageEmailAddressAvailable; 16810 } else if (dataName === 'data-message-phone-number-available' 16811 && typeof errorTextElement.dataset.messagePhoneNumberAvailable === 'string') { 16812 errorText = errorTextElement.dataset.messagePhoneNumberAvailable; 16813 } else if (dataName === 'data-message-mobile-number-available' 16814 && typeof errorTextElement.dataset.messageMobileNumberAvailable === 'string') { 16815 errorText = errorTextElement.dataset.messageMobileNumberAvailable; 16816 } 16817 16818 if (isErrorCheck) { 16819 errorTextElement.dataset.unavailableText = errorText; 16820 } else { 16821 errorTextElement.textContent = errorText; 16822 } 16823 }; 16824 16825 AvailableValidator.clearNoteText = function (targetWrapper) { 16826 var errorTextElement = ''; 16827 16828 if (!targetWrapper) { 16829 return; 16830 } 16831 16832 targetWrapper.classList.remove(this.targetClass.status); 16833 delete targetWrapper.dataset.unavailable; 16834 delete targetWrapper.dataset.unavailableText; 16835 errorTextElement = targetWrapper.querySelector('.' + MultiStepForm.classNames.errText); 16836 16837 if (targetWrapper.classList.contains(MultiStepForm.classNames.isError) 16838 || !errorTextElement) { 16839 return; 16840 } 16841 16842 if (typeof errorTextElement.getAttribute('style') === 'string') { 16843 errorTextElement.style.display = 'none'; 16844 } else { 16845 errorTextElement.classList.add('is-hide'); 16846 } 16847 16848 errorTextElement.textContent = ''; 16849 }; 16850 16851 AvailableValidator.setMutationObserver = function () { 16852 var registerFormArea = doc.getElementById(MultiStepForm.Register.idNames.suzRegArea); 16853 var observer = null; 16854 var observersuggestConfig = { 16855 attributeFilter: ['id'], 16856 childList: true 16857 }; 16858 var $currentPanel = null; 16859 var $panels = null; 16860 var $state = null; 16861 var formType = null; 16862 var FormFilter = KEYENCE.Form.FormFilter; 16863 16864 if (!registerFormArea) { 16865 return; 16866 } 16867 16868 observer = new MutationObserver(function (record) { 16869 if (record[0].target.id === MultiStepForm.Register.idNames.suzRegArea) { 16870 AvailableValidator.setTriggerElements(AvailableValidator.RegisterForm); 16871 AvailableValidator.setRegisterElements(AvailableValidator.RegisterForm); 16872 16873 $panels = MultiStepForm.Register.getPanels(); 16874 16875 if ($panels.length) { 16876 $currentPanel = $panels.filter('.' + MultiStepForm.classNames.isCurrent); 16877 16878 if ($currentPanel.length) { 16879 $state = $currentPanel.find('#' + MultiStepForm.Register.idNames.state); 16880 } 16881 } 16882 16883 if (($state === null || !$state.length)) { 16884 AvailableValidator.processingUnblocked = { 16885 email: false, 16886 signInMobile: false 16887 } 16888 16889 formType = KEYENCE.Form.FormFilter.General.getFormType(); 16890 16891 if (AvailableValidator.isCancelTarget(AvailableValidator.targetKey.email)) { 16892 if (formType === FormFilter.General.FORM_TYPE.E
16892MAIL) { 16893 AvailableValidator.processingUnblocked.email = true; 16894 } 16895 } else if (AvailableValidator.isCancelTarget(AvailableValidator.targetKey.mobile)) { 16896 if (formType === FormFilter.General.FORM_TYPE.MOBILE_NUMBER) { 16897 AvailableValidator.processingUnblocked.signInMobile = true; 16898 } 16899 } 16900 16901 AvailableValidator.setTargetBlockStatus(); 16902 } 16903 16904 if (MultiStepForm.isEditProfileForm()) { 16905 AvailableValidator.isStoppingPhoneNumberCopy = true; 16906 AvailableValidator.checkAvailableAllTargets(); 16907 } 16908 } 16909 }); 16910 16911 observer.observe(registerFormArea, observersuggestConfig); 16912 }; 16913 16914 AvailableValidator.runValidate = function (fieldName, isErrorCheck) { 16915 var $deferred = new $.Deferred(); 16916 var field = null; 16917 16918 if (typeof fieldName === 'string' || fieldName) { 16919 field = doc.querySelector('[name="' + fieldName + '"]'); 16920 } 16921 16922 if (!field) { 16923 return $deferred.resolve(field); 16924 } 16925 16926 if (field.classList.contains(this.targetClass.emailAddress)) { 16927 this.runEmailValidate(field, $deferred, isErrorCheck); 16928 } else if (field.classList.contains(this.targetClass.mobileNumber)) { 16929 this.runMobileValidate(field, $deferred, isErrorCheck); 16930 } else if (field.classList.contains(this.targetClass.phoneNumber)) { 16931 this.runPhoneValidate(field, $deferred, isErrorCheck); 16932 } else { 16933 $deferred.resolve(field); 16934 } 16935 16936 return $deferred.promise(); 16937 }; 16938 16939 AvailableValidator.showNoteText = function (targetWrapper) { 16940 var errorTextElement = targetWrapper.querySelector('.' + MultiStepForm.classNames.errText); 16941 16942 if (!errorTextElement || this.hasError(targetWrapper)) { 16943 return; 16944 } 16945 16946 targetWrapper.classList.add(this.targetClass.status); 16947 16948 if (errorTextElement.dataset.unavailableText) { 16949 errorTextElement.textContent = errorTextElement.dataset.unavailableText; 16950 delete targetWrapper.dataset.unavailableText; 16951 } 16952 16953 if (typeof errorTextElement.getAttribute('style') === 'string') { 16954 errorTextElement.style.display = 'block'; 16955 } else { 16956 errorTextElement.classList.remove('is-hide'); 16957 } 16958 }; 16959 16960 AvailableValidator.hideNoteText = function ($targetArea) { 16961 var $targets = null; 16962 16963 $targets = $targetArea.find('.' + this.targetClass.status); 16964 16965 if (!$targets.length) { 16966 return; 16967 } 16968 16969 $targets.each(function () { 16970 AvailableValidator.clearNoteText(this); 16971 }) 16972 }; 16973 16974 AvailableValidator.removeUnavailableStatus = function (fieldName) { 16975 var fieldWrapper = null; 16976 16977 if (typeof fieldName === 'string' || fieldName) { 16978 fieldWrapper = this.getFieldWrapper(fieldName); 16979 } 16980 16981 if (fieldWrapper) { 16982 delete fieldWrapper.dataset.unavailable; 16983 delete fieldWrapper.dataset.unavailableText; 16984 fieldWrapper.classList.remove(this.targetClass.status); 16985 } 16986 16987 if (this.config.isRunningVerification) { 16988 this.showNextArea('normal'); 16989 } 16990 16991 this.config.isRunningVerification = false; 16992 }; 16993 16994 AvailableValidator.changeDisplayNoteText = function (fieldName) { 16995 var fieldWrapper = null; 16996 16997 if (typeof fieldName === 'string' || fieldName) { 16998 fieldWrapper = this.getFieldWrapper(fieldName); 16999 } 17000 17001 win.KeyenceForm.SetMobileNumberToPhoneField.config.isNumberCopyRunning = false; 17002 17003 if (!fieldWrapper) { 17004 return; 17005 } 17006 17007 if (fieldWrapper.dataset.unavailable 17008 && !fieldWrapper.classList.contains(MultiStepForm.classNames.isError) 17009 ) { 17010 if (!MultiFactorAuthentication || 17011 (!MultiFactorAuthentication.isSendingVerificationCode && 17012 !MultiFactorAuthentication.activeNoteTextHideFlag) 17013 ) { 17014 this.showNoteText(fieldWrapper); 17015 this.showNextArea('note'); 17016 } else { 17017 this.clearNoteText(fieldWrapper); 17018 this.showNextArea('normal'); 17019 } 17020 17021 delete fieldWrapper.dataset.unavailable; 17022 } else if (fieldWrapper.classList.contains(MultiStepForm.classNames.isError)) { 17023 this.clearNoteText(fieldWrapper); 17024 17025 if (this.config.isRunningVerification) { 17026 this.showNextArea('error'); 17027 } 17028 } else if (!fieldWrapper.dataset.unavailable 17029 || !fieldWrapper.classList.contains(MultiStepForm.classNames.isError)) { 17030 this.clearNoteText(fieldWrapper); 17031 17032 if (this.config.isRunningVerification) { 17033 this.showNextArea('normal'); 17034 } 17035 17036 if (fieldWrapper.dataset.available) { 17037 win.KeyenceForm.SetMobileNumberToPhoneField.run(fieldName); 17038 } 17039 } 17040 17041 if (fieldWrapper.dataset.available) { 17042 delete fieldWrapper.dataset.available; 17043 } 17044 17045 this.config.isRunningVerification = false; 17046 MultiFactorAuthentication.activeNoteTextHideFlag = false; 17047 }; 17048 17049 AvailableValidator.showNextArea = function (type) { 17050 var formType = KEYENCE.Form.FormFilter.General.getFormType(); 17051 var FormFilter = KEYENCE.Form.FormFilter; 17052 var isUnavailableValue = false; 17053 17054 if (!this.processingUnblocked.email && !this.processingUnblocked.signInMobile) { 17055 if (this.config.preFormProcessingEventObject) { 17056 if (formType === FormFilter.General.FORM_TYPE.MOBILE_NUMBER) { 17057 if (type === 'note' && !this.processingUnblocked.signInMobile) { 17058 this.processingUnblocked.signInMobile = true; 17059 this.config.isReturnFirstTimePreForm = false; 17060 this.focusFirstTargetItem(this.config.currentArea); 17061 } else { 17062 MultiStepForm.PreForm.onClickContinue(this.config.preFormProcessingEventObject); 17063 } 17064 } else { 17065 if (type === 'note' && !this.processingUnblocked.email) { 17066 this.processingUnblocked.email = true; 17067 this.config.isReturnFirstTimePreForm = false; 17068 this.focusFirstTargetItem(this.config.currentArea); 17069 } else { 17070 MultiStepForm.PreForm.onClickContinue(this.config.preFormProcessingEventObject); 17071 } 17072 } 17073 17074 this.config.preFormProcessingEventObject = null; 17075 17076 return; 17077 } 17078 } 17079 17080 if (this.config.registerTargetsLength) { 17081 if (!this.config.registerProcessingEventObject) { 17082 this.config.currentTarget = null; 17083 17084 return; 17085 } 17086 17087 isUnavailableValue = this.checkUnavailableValue(this.config.currentArea); 17088 17089 if (isUnavailableValue) { 17090 this.focusFirstTargetItem(this.config.currentArea); 17091 17092 this.config.registerCurrentPanelType === ''; 17093 this.config.registerProcessingEventObject = null; 17094 } else { 17095 this.runRegisterVerification(); 17096 } 17097 } 17098 }; 17099 17100 AvailableValidator.focusFirstTargetItem = function ($currentArea) { 17101 var $targetElements = null; 17102 var $targetElement = null; 17103 17104 if (!$currentArea.length) { 17105 return; 17106 } 17107 17108 $targetElements = $currentArea.find('[id^="suz_div_"].' + MultiStepForm.classNames.isError + ':visible , [id^="suz_div_"].' + this.targetClass.status + ':visible'); 17109 17110 if ($targetElements.length) { 17111 $targetElement = $targetElements.eq(0).find(MultiStepForm.selectors.focusableInputElements); 17112 17113 if ($targetElement.length) { 17114 if ($targetElement.length >= 2) { 17115 if ( 17116 $targetElement.get(0).tagName.toLowerCase() === 'select' && 17117 $targetElement.get(1).tagName.toLowerCase() === 'input' 17118 ) { 17119 $targetElement.get(1).focus(); 17120 } 17121 } else { 17122 $targetElement.get(0).focus(); 17123 } 17124 } 17125 } 17126 }; 17127 17128 AvailableValidator.getFieldWrapper = function (fieldName) { 17129 var field = doc.querySelector('[name="' + fieldName + '"]'); 17130 17131 if (!field) { 17132 return null; 17133 } 17134 17135 if (field.classList.contains(this.targetClass.emailAddress)) { 17136 return field.closest('.' + this.targetWrapperClass.email); 17137 } else if (field.classList.contains(this.targetClass.mobileNumber)) { 17138 return field.closest('.' + this.targetWrapperClass.mobile); 17139 } else if (field.classList.contains(this.targetClass.phoneNumber)) { 17140 return field.closest('.' + this.targetWrapperClass.phone); 17141 } else { 17142 return null; 17143 } 17144 }; 17145 17146 AvailableValidator.hasTargetClass = function (field) { 17147 if (field.classList.contains(this.targetClass.emailAddress) 17148 || field.classList.contains(this.targetClass.mobileNumber) 17149 || field.classList.contains(this.targetClass.phoneNumber)) { 17150 return true; 17151 } 17152 17153 return false; 17154 }; 17155 17156 AvailableValidator.isProgressStatus = function ($targetArea) { 17157 var $errorElements = $targetArea.find('.' + MultiStepForm.classNames.isError); 17158 17159 if ($errorElements.length) { 17160 return true; 17161 } 17162 17163 if ($targetArea.find('.' + this.targetClass.status).length) { 17164 return false; 17165 } 17166 17167 return true; 17168 }; 17169 17170 AvailableValidator.updatePreFormBlockStatus = function (formType, formFilter, preFormObject, event) { 17171 if (this.config.isRunningVerification) { 17172 if (formType === formFilter.General.FORM_TYPE.MOBILE_NUMBER) { 17173 if (!this.processingUnblocked.signInMobile 17174 && !this.config.isReturnFirstTimePreForm) { 17175 this.setPreFormContinueDate(preFormObject.$root, event); 17176 this.config.isPreFormContinueBlocked = true; 17177 17178 return; 17179 } 17180 } else { 17181 if (!this.processingUnblocked.email 17182 && !this.config.isReturnFirstTimePreForm) { 17183 this.setPreFormContinueDate(preFormObject.$root, event); 17184 this.config.isPreFormContinueBlocked = true; 17185 17186 return; 17187 } 17188 } 17189 } else { 17190 if (!this.isProgressStatus(preFormObject.$root)) { 17191 if (formType === formFilter.General.FORM_TYPE.MOBILE_NUMBER) { 17192 if (!this.processingUnblocked.signInMobile 17193 && preFormObject.$formCheckMobileNumber.val() !== '') { 17194 this.processingUnblocked.signInMobile = true; 17195 this.config.isPreFormContinueBlocked = true; 17196 17197 return; 17198 } 17199 } else { 17200 if (!this.processingUnblocked.email 17201 && preFormObject.$formCheckEmail.val() !== '') { 17202 this.processingUnblocked.email = true; 17203 this.config.isPreFormContinueBlocked = true; 17204 17205 return; 17206 } 17207 } 17208 } 17209 } 17210 17211 this.config.isReturnFirstTimePreForm = false; 17212 this.config.isPreFormContinueBlocked = false; 17213 }; 17214 17215 AvailableValidator.setPreFormContinueDate = function ($root, event) { 17216 this.config.currentArea = $root; 17217 this.config.preFormProcessingEventObject = event; 17218 this.config.isReturnFirstTimePreForm = true; 17219 }; 17220 17221 AvailableValidator.updateRegisterBlockStatus = function ($currentPanel, event, currentPanel) { 17222 var isUnavailableValue = false; 17223
17224 if (this.checkRegisterTargetElements($currentPanel)) { 17225 this.config.isRegisterContinueBlocked = false; 17226 17227 return; 17228 } 17229 17230 if (this.isBlankRequiredField($currentPanel) 17231 && !MultiStepForm.isEditProfileForm()) { 17232 this.config.isRegisterContinueBlocked = false; 17233 17234 if (typeof this.processingUnblocked.mobile !== 'undefined') { 17235 if (this.isVerificationTarget('mobile', this.targetElements.mobileNumber)) { 17236 this.processingUnblocked.mobile = true; 17237 } 17238 } 17239 17240 if (typeof this.processingUnblocked.phone !== 'undefined') { 17241 if (this.isVerificationTarget('phone', this.targetElements.phoneNumber)) { 17242 this.processingUnblocked.phone = true; 17243 } 17244 } 17245 17246 if (typeof this.processingUnblocked.registerEmail !== 'undefined') { 17247 if (this.isVerificationTarget('registerEmail', this.targetElements.registerEmailAddress)) { 17248 this.processingUnblocked.registerEmail = true; 17249 } 17250 } 17251 17252 return; 17253 } 17254 17255 if (this.config.currentTarget) { 17256 this.setRegisterContinueDate($currentPanel, event, currentPanel); 17257 this.config.isRegisterContinueBlocked = true; 17258 17259 return; 17260 } 17261 17262 if (MultiStepForm.isEditProfileForm() && this.isErrorField($currentPanel)) { 17263 this.config.isRegisterContinueBlocked = false; 17264 17265 return; 17266 } 17267 17268 isUnavailableValue = this.checkUnavailableValue($currentPanel); 17269 17270 if (isUnavailableValue) { 17271 this.config.isRegisterContinueBlocked = true; 17272 this.focusFirstTargetItem($currentPanel); 17273 17274 return; 17275 } 17276 17277 this.config.isRegisterContinueBlocked = false; 17278 }; 17279 17280 AvailableValidator.checkRegisterTargetElements = function ($targetArea) { 17281 var $targetElements = null; 17282 17283 $targetElements = $targetArea.find('.' + this.targetWrapperClass.mobile + ', .' + this.targetWrapperClass.phone + ', .' + this.targetWrapperClass.email); 17284 17285 if (!$targetElements.length) { 17286 return true; 17287 } 17288 17289 return false; 17290 }; 17291 17292 AvailableValidator.isVerificationTarget = function (keyName, field) { 17293 if (!this.processingUnblocked[keyName] && !BlankFieldValidator.isBlank(field)) { 17294 return true; 17295 } 17296 17297 return false; 17298 }; 17299 17300 AvailableValidator.setRegisterContinueDate = function ($currentPanel, event, currentPanel) { 17301 this.config.currentArea = $currentPanel; 17302 this.config.registerProcessingEventObject = event; 17303 this.config.registerCurrentPanelType = currentPanel; 17304 }; 17305 17306 AvailableValidator.changeDuringValificationStatus = function (event) { 17307 var blurEvent = new Event('blur'); 17308 17309 this.config.registerProcessingEventObject = event; 17310 this.config.currentTarget.dispatchEvent(blurEvent); 17311 }; 17312 17313 AvailableValidator.isBlankRequiredField = function ($currentPanel) { 17314 var $RequiredFields = $currentPanel.find('.' + MultiStepForm.Register.classNames.required + ':visible'); 17315 var isBlank = false; 17316 17317 if (!$RequiredFields.length) { 17318 return isBlank; 17319 } 17320 17321 $RequiredFields.each(function () { 17322 if (BlankFieldValidator.isBlank(this)) { 17323 isBlank = true; 17324 17325 return false 17326 } 17327 }); 17328 17329 return isBlank; 17330 }; 17331 17332 AvailableValidator.runRegisterVerification = function () { 17333 if (this.config.currentTarget && this.config.registerProcessingEventObject) { 17334 this.config.currentTarget = null; 17335 17336 if (this.config.registerCurrentPanelType === 'lastPanel') { 17337 this.config.registerCurrentPanelType === ''; 17338 this.config.registerProcessingEventObject = null; 17339 17340 $('#submit2').trigger('click'); 17341 } else { 17342 if (this.config.registerProcessingEventObject.handleObj.type === 'mousedown') { 17343 this.config.registerCurrentPanelType === ''; 17344 17345 MultiStepForm.Register.showNext(this.config.registerProcessingEventObject, true); 17346 } else { 17347 this.config.registerCurrentPanelType === ''; 17348 17349 MultiStepForm.Register.showNext(this.config.registerProcessingEventObject); 17350 } 17351 17352 this.config.registerProcessingEventObject = null; 17353 } 17354 } 17355 }; 17356 17357 AvailableValidator.isErrorField = function ($targetArea) { 17358 if ($targetArea.find('.' + MultiStepForm.classNames.isError).length) { 17359 return true; 17360 } 17361 17362 return false 17363 }; 17364 17365 AvailableValidator.checkAvailableAllTargets = function () { 17366 var wrapperElement = null; 17367 17368 if (this.targetElements.mobileNumber) { 17369 this.runValidate(this.targetElements.mobileNumber.name, true).always(function (target) { 17370 wrapperElement = target.closest('.' + AvailableValidator.targetWrapperClass.mobile); 17371 17372 if (!wrapperElement) { 17373 return; 17374 } 17375 17376 if (wrapperElement.dataset.unavailable) { 17377 AvailableValidator.changeDisplayNoteText(target.name); 17378 wrapperElement.dataset.unavailable = 'true'; 17379 } 17380 }); 17381 } 17382 17383 if (this.targetElements.phoneNumber) { 17384 this.runValidate(this.targetElements.phoneNumber.name, true).always(function (target) { 17385 AvailableValidator.isStoppingPhoneNumberCopy = false; 17386 wrapperElement = target.closest('.' + AvailableValidator.targetWrapperClass.phone); 17387 17388 if (!wrapperElement) { 17389 return; 17390 } 17391 17392 if (wrapperElement.dataset.unavailable) { 17393 AvailableValidator.changeDisplayNoteText(target.name); 17394 wrapperElement.dataset.unavailable = 'true'; 17395 } 17396 }); 17397 } else { 17398 this.isStoppingPhoneNumberCopy = false; 17399 } 17400 17401 if (this.targetElements.registerEmailAddress) { 17402 this.runValidate(this.targetElements.registerEmailAddress.name, true).always(function (target) { 17403 wrapperElement = target.closest('.' + AvailableValidator.targetWrapperClass.email); 17404 17405 if (!wrapperElement) { 17406 return; 17407 } 17408 17409 if (wrapperElement.dataset.unavailable) { 17410 AvailableValidator.changeDisplayNoteText(target.name); 17411 wrapperElement.dataset.unavailable = 'true'; 17412 } 17413 }); 17414 } 17415 }; 17416 17417 AvailableValidator.isBlockedProcessingStatus = function ($currentPanel) { 17418 var isBlocked = false; 17419 var unavailableItems = null; 17420
17421 if (this.checkRegisterTargetElements($currentPanel)) { 17422 return isBlocked; 17423 } 17424 17425 unavailableItems = $currentPanel.find('.' + this.targetClass.status); 17426 17427 if (!unavailableItems.length) { 17428 if (typeof this.processingUnblocked.mobile !== 'undefined') { 17429 this.processingUnblocked.mobile = true; 17430 } 17431 17432 if (typeof this.processingUnblocked.phone !== 'undefined') { 17433 this.processingUnblocked.phone = true; 17434 } 17435 17436 if (typeof this.processingUnblocked.registerEmail !== 'undefined') { 17437 this.processingUnblocked.registerEmail = true; 17438 } 17439 17440 return isBlocked; 17441 } 17442 17443 if (typeof this.processingUnblocked.mobile !== 'undefined') { 17444 if (this.isVerificationTarget('mobile', this.targetElements.mobileNumber)) { 17445 this.processingUnblocked.mobile = true; 17446 isBlocked = true; 17447 } 17448 } 17449 17450 if (typeof this.processingUnblocked.phone !== 'undefined') { 17451 if (this.isVerificationTarget('phone', this.targetElements.phoneNumber)) { 17452 this.processingUnblocked.phone = true; 17453 isBlocked = true; 17454 } 17455 } 17456 17457 if (typeof this.processingUnblocked.registerEmail !== 'undefined') { 17458 if (this.isVerificationTarget('registerEmail', this.targetElements.registerEmailAddress)) { 17459 this.processingUnblocked.registerEmail = true; 17460 isBlocked = true; 17461 } 17462 } 17463 17464 return isBlocked; 17465 }; 17466 17467 AvailableValidator.isCountryId = function (inputElement, type) { 17468 var wrapperElement = null; 17469 var CountryId = null; 17470 17471 if (type === 'mobile') { 17472 wrapperElement = inputElement.closest('.' + this.targetWrapperClass.mobile); 17473 17474 if (wrapperElement) { 17475 CountryId = wrapperElement.querySelector('.' + this.targetClass.mobileCountryId); 17476 } 17477 17478 if (CountryId) { 17479 return true; 17480 } 17481 } else if (type === 'phone') { 17482 wrapperElement = inputElement.closest('.' + this.targetWrapperClass.phone); 17483 17484 if (wrapperElement) { 17485 CountryId = wrapperElement.querySelector('.' + this.targetClass.phoneCountryId); 17486 } 17487 17488 if (CountryId) { 17489 return true; 17490 } 17491 } 17492 17493 return false; 17494 }; 17495 17496 AvailableValidator.checkUnavailableValue = function ($currentArea, type) { 17497 var unavailableItems = null; 17498 var isUnavailableValue = false; 17499 17500 unavailableItems = $currentArea.find('.' + this.targetClass.status); 17501 17502 if (!unavailableItems.length) { 17503 if (typeof this.processingUnblocked.mobile !== 'undefined') { 17504 this.processingUnblocked.mobile = true; 17505 } 17506 17507 if (typeof this.processingUnblocked.phone !== 'undefined') { 17508 this.processingUnblocked.phone = true; 17509 } 17510 17511 if (typeof this.processingUnblocked.registerEmail !== 'undefined') { 17512 this.processingUnblocked.registerEmail = true; 17513 } 17514 17515 return isUnavailableValue; 17516 } 17517 17518 if (typeof type === 'string') { 17519 if (typeof this.processingUnblocked.mobile !== 'undefined') { 17520 if (type === 'note' 17521 && this.isVerificationTarget('mobile', this.targetElements.mobileNumber)) { 17522 this.processingUnblocked.mobile = true; 17523 isUnavailableValue = true; 17524 } 17525 } 17526 17527 if (typeof this.processingUnblocked.phone !== 'undefined') { 17528 if (type === 'note' 17529 && this.isVerificationTarget('phone', this.targetElements.phoneNumber)) { 17530 this.processingUnblocked.phone = true; 17531 isUnavailableValue = true; 17532 } 17533 } 17534 17535 if (typeof this.processingUnblocked.registerEmail !== 'undefined') { 17536 if (type === 'note' 17537 && this.isVerificationTarget('registerEmail', this.targetElements.registerEmailAddress)) { 17538 this.processingUnblocked.registerEmail = true; 17539 isUnavailableValue = true; 17540 } 17541 } 17542 } else { 17543 if (typeof this.processingUnblocked.mobile !== 'undefined') { 17544 if (this.isVerificationTarget('mobile', this.targetElements.mobileNumber)) { 17545 this.processingUnblocked.mobile = true; 17546 isUnavailableValue = true; 17547 } 17548 } 17549 17550 if (typeof this.processingUnblocked.phone !== 'undefined') { 17551 if (this.isVerificationTarget('phone', this.targetElements.phoneNumber)) { 17552 this.processingUnblocked.phone = true; 17553 isUnavailableValue = true; 17554 } 17555 } 17556 17557 if (typeof this.processingUnblocked.registerEmail !== 'undefined') { 17558 if (this.isVerificationTarget('registerEmail', this.targetElements.registerEmailAddress)) { 17559 this.processingUnblocked.registerEmail = true; 17560 isUnavailableValue = true; 17561 } 17562 } 17563 } 17564 17565 return isUnavailableValue; 17566 }; 17567 17568 AvailableValidator.setUnavailableData = function ($target) { 17569 if ($target.hasClass(this.targetClass.status)) { 17570 $target.attr('data-unavailable', 'true'); 17571 } 17572 }; 17573 17574 AvailableValidator.isMatchCancelRegularExpression = function (value, type) { 17575 var isMatch = false; 17576 17577 if (value === '' || !type) { 17578 return isMatch; 17579 } 17580 17581 this.validateCancel.cancelData.regularExpression[type].forEach(function (matchData) { 17582 if (new RegExp(matchData).test(value)) { 17583 isMatch = true; 17584 } 17585 }); 17586 17587 return isMatch; 17588 }; 17589 17590 return AvailableValidator; 17591 }()); 17592 17593 KEYENCE.Form.RegisteredValidator = (function () { 17594 var MultiStepForm = null; 17595 var BlankFieldValidator = null; 17596 var AvailableValidator = null; 17597 17598 var RegisteredValidator = { 17599 multiStepForm: null, 17600 signInForm: null, 17601 registerForm: null, 17602 triggerClass: { 17603 emailAddress: 'js-validateEmailRegistered' 17604 }, 17605 targetClass: { 17606 emailAddress: 'js-validateEmailRegistered-target', 17607 emailLoginLinkWrapper: 'js-validateEmailRegistered-linkWrapper', 17608 emailLoginLink: 'js-validateEmailRegistered-link', 17609 status: 'is-registered' 17610 }, 17611 targetElements: { 17612 emailAddressWrappers: null, 17613 emailLoginLinkWrapper: null, 17614 clickTarget: null 17615 } 17616 }; 17617 17618 RegisteredValidator.init = function () { 17619 MultiStepForm = win.MultiStepForm; 17620 this.multiStepForm = doc.getElementById(MultiStepForm.idNames.trigger); 17621 this.preForm = doc.getElementById(MultiStepForm.PreForm.idNames.root); 17622 this.signInForm = doc.getElementById(MultiStepForm.SignIn.idNames.signinForm); 17623 this.registerForm = doc.getElementById(MultiStepForm.Register.idNames.regForm); 17624 BlankFieldValidator = win.KeyenceForm.BlankFieldValidator; 17625 AvailableValidator = win.KeyenceForm.AvailableValidator; 17626 17627 if (this.multiStepForm && this.preForm && this.signInForm && this.registerForm) { 17628 this.setTriggerElements(); 17629 this.setEmailLoginEvent(); 17630 this.setMutationObserver(); 17631 this.onMessageAction(); 17632 } 17633 }; 17634 17635 RegisteredValidator.setTriggerElements = function () { 17636 this.targetElements.emailAddressWrappers = doc.querySelectorAll('.' + this.triggerClass.emailAddress); 17637 }; 17638 17639 RegisteredValidator.setEmailLoginEvent = function () { 17640 var self = this; 17641 var triggers = self.targetElements.emailAddressWrappers; 17642 var emailAddressTarget = null; 17643 var emailLink = null; 17644 17645 if (!triggers.length) { 17646 return; 17647 } 17648
17649 triggers.forEach(function (wrapper) { 17650 emailAddressTarget = wrapper.querySelector('.' + self.targetClass.emailAddress); 17651 emailLink = wrapper.querySelector('.' + self.targetClass.emailLoginLink); 17652 17653 if (emailAddressTarget && emailLink) { 17654 emailLink.addEventListener('click', self.showEmailLoginForm, false); 17655 } 17656 }); 17657 }; 17658 17659 RegisteredValidator.setMutationObserver = function () { 17660 var registerFormArea = doc.getElementById(MultiStepForm.Register.idNames.suzRegArea); 17661 var observer = null; 17662 var observersuggestConfig = { 17663 attributeFilter: ['id'], 17664 childList: true 17665 }; 17666 17667 if (!registerFormArea) { 17668 return; 17669 } 17670 17671 observer = new MutationObserver(function (record) { 17672 if (record[0].target.id === MultiStepForm.Register.idNames.suzRegArea) { 17673 RegisteredValidator.setTriggerElements(); 17674 RegisteredValidator.setEmailLoginEvent(); 17675 } 17676 }); 17677 17678 observer.observe(registerFormArea, observersuggestConfig); 17679 }; 17680 17681 RegisteredValidator.onMessageAction = function () { 17682 win.addEventListener('message', this.showEmailLoginForm, false); 17683 }; 17684 17685 RegisteredValidator.showEmailLoginForm = function (event) { 17686 var self = RegisteredValidator; 17687 var FormFilter = KEYENCE.Form.FormFilter; 17688 var fieldWrapper = null; 17689 var field = null; 17690 var filterEmailButton = null; 17691 17692 event.preventDefault(); 17693 17694 if (event.type === 'click') { 17695 self.targetElements.clickTarget = event.currentTarget; 17696 } 17697 17698 if (event.type === 'click' && win.AnalyticsViews) { 17699 return; 17700 } 17701 17702 if (event.type === 'message' 17703 && event.data !== win.AnalyticsViews.Utility.messageNames.forwardSignInLink) { 17704 return; 17705 } 17706 17707 if (!self.targetElements.clickTarget) { 17708 return; 17709 } 17710 17711 fieldWrapper = self.targetElements.clickTarget.closest('.' + self.triggerClass.emailAddress); 17712 17713 if (fieldWrapper) { 17714 field = fieldWrapper.querySelector('.' + self.targetClass.emailAddress); 17715 } 17716 17717 if (field && !BlankFieldValidator.isBlank(field)) { 17718 filterEmailButton = doc.querySelector('#' + FormFilter.General.idNames.emailTtrigger); 17719 17720 if (!filterEmailButton) { 17721 return; 17722 } 17723 17724 filterEmailButton.click(); 17725 17726 if (win.AnalyticsViews) { 17727 win.postMessage(win.AnalyticsViews.Utility.messageNames.generalForm, win.AnalyticsViews.Utility.Location.getDomain()); 17728 } 17729 17730 setTimeout(function () { 17731 MultiStepForm.PreForm.$formCheckEmail.val(field.value); 17732 MultiStepForm.SignIn.$loginUserName.val(field.value); 17733 MultiStepForm.SignIn.$loginPassword.each(function () { 17734 this.removeAttribute('disabled'); 17735 }); 17736 17737 MultiStepForm.changeCurrentScreenName(MultiStepForm.screenNames.login); 17738 MultiStepForm.clearInputError(field.name, false); 17739 self.changeDisplayLoginLink(field, 'hide'); 17740 17741 MultiStepForm.show(MultiStepForm.SignIn.$root); 17742 MultiStepForm.hide(MultiStepForm.Register.$root); 17743 }, 0); 17744 } 17745 }; 17746 17747 RegisteredValidator.hasRegisteredCheckClass = function (field) { 17748 if (field.classList.contains(this.targetClass.emailAddress)) { 17749 return true; 17750 } 17751 17752 return false; 17753 }; 17754 17755 RegisteredValidator.run = function (target) { 17756 var ControlErrorDisplay = win.KeyenceForm.ControlErrorDisplay; 17757 17758 if (target.value === '') { 17759 RegisteredValidator.changeDisplayLoginLink(target, 'hide'); 17760 17761 if (!ControlErrorDisplay.isTriggerClicked(target)) { 17762 MultiStepForm.clearInputError(target.name); 17763 AvailableValidator.runValidate(target.name, false); 17764 } 17765 17766 window.suz_callRegValidator(target.name, target.value); 17767 17768 return; 17769 } 17770 17771 MultiStepForm.checkRegularMember(target.value).always(function (status) { 17772 if (status && status.isRegularMember) { 17773 window.suz_callRegValidator(target.name, target.value).done(function () { 17774 RegisteredValidator.showRegisteredError(target); 17775 }).fail(function () { 17776 console.error('Reg validator error'); 17777 }); 17778 } else { 17779 RegisteredValidator.changeDisplayLoginLink(target, 'hide'); 17780 17781 if (!ControlErrorDisplay.isTriggerClicked(target)) { 17782 MultiStepForm.clearInputError(target.name); 17783 } 17784 17785 if (AvailableValidator.hasTargetClass(target)) { 17786 AvailableValidator.runValidate(target.name, true).always(function (field) { 17787 window.suz_callRegValidator(field.name, field.value); 17788 }); 17789 } else if ($(target).hasClass(patternMatchValidator.classNames.replaceValueTrigger)) { 17790 if (ControlErrorDisplay.isTriggerClicked(field)) { 17791 patternMatchValidator.updateFieldStatus(target); 17792 } 17793 17794 if (!$(target).hasClass(patternMatchValidator.classNames.status)) { 17795 window.suz_callRegValidator(target.name, target.value); 17796 } 17797 } else { 17798 window.suz_callRegValidator(target.name, target.value); 17799 } 17800 } 17801 }); 17802 }; 17803 17804 RegisteredValidator.showRegisteredError = function (field) { 17805 this.changeDisplayLoginLink(field, 'show'); 17806 MultiStepForm.insertErrorText(field.name, 'data-message-email-address-registered'); 17807 }; 17808 17809 RegisteredValidator.changeDisplayLoginLink = function (field, changeDisplay) { 17810 var fieldWrapper = field.closest('.' + this.triggerClass.emailAddress); 17811 var linkWrapper = null; 17812 17813 if (!fieldWrapper || typeof changeDisplay !== 'string' || !changeDisplay) { 17814 return; 17815 } 17816 17817 linkWrapper = fieldWrapper.querySelector('.' + this.targetClass.emailLoginLinkWrapper); 17818 17819 if (!linkWrapper) { 17820 return; 17821 } 17822 17823 if (changeDisplay === 'show') { 17824 linkWrapper.hidden = false; 17825 field.classList.add(this.targetClass.status); 17826 } else if (changeDisplay === 'hide') { 17827 linkWrapper.hidden = true; 17828 field.classList.remove(this.targetClass.status); 17829 } 17830 }; 17831 17832 return RegisteredValidator; 17833 }()); 17834 17835 KEYENCE.Form.ControlErrorDisplay = (function () { 17836 var MultiStepForm = null; 17837 17838 var targetFormName = { 17839 passwordAssistanceActionForm: 'user_passwordAssistanceActionForm', 17840 passwordAssistanceResetForm: 'user_passwordAssistance_resetPasswordActionForm', 17841 withdrawActionForm: 'user_profile_withdrawActionForm', 17842 reloginActionForm: 'user_reloginActionForm', 17843 loginActionForm: 'user_loginActionForm', 17844 }; 17845 17846 var ControlErrorDisplay = { 17847 idNames: { 17848 multiStepForm: 'js-multiStepForm', 17849 }, 17850 classNames: { 17851 target: 'js-multiStep-targetWrapper', 17852 }, 17853 config: { 17854 isRegisterFlatForm: false,
17855 isMobileRegisterFlatFormSubmitClicked: false, 17856 isEmailRegisterFlatFormSubmitClicked: false, 17857 }, 17858 formSelector: 'form[name="' + targetFormName.passwordAssistanceActionForm + '"], ' + 17859 'form[name="' + targetFormName.passwordAssistanceResetForm + '"], ' + 17860 'form[name="' + targetFormName.withdrawActionForm + '"], ' + 17861 'form[name="' + targetFormName.reloginActionForm + '"], ' + 17862 'form[name="' + targetFormName.loginActionForm + '"]', 17863 targetForm: null, 17864 browserValidaterTarget: null, 17865 }; 17866 17867 ControlErrorDisplay.init = function () { 17868 var multiStepForm = null; 17869 var targetForms = null; 17870 var errorItems = null; 17871 var visibleErrorItem = null; 17872 var isError = false; 17873 17874 MultiStepForm = win.MultiStepForm; 17875 multiStepForm = doc.getElementById(this.idNames.multiStepForm); 17876 17877 if (multiStepForm) { 17878 this.targetForm = multiStepForm.querySelector('form'); 17879 17880 if (!this.targetForm) { 17881 this.targetForm = multiStepForm.closest('form'); 17882 } 17883 } else { 17884 targetForms = doc.querySelectorAll(this.formSelector); 17885 17886 if (targetForms.length) { 17887 this.targetForm = targetForms[0]; 17888 } 17889 } 17890 17891 if (!MultiStepForm || !this.targetForm) { 17892 return; 17893 } 17894 17895 this.config.isRegisterFlatForm = MultiStepForm.Register.isRegFlat(); 17896 this.addInvalidEvent(); 17897 17898 errorItems = this.targetForm.querySelectorAll('.is-error[id^="suz_div_"]'); 17899 17900 if (errorItems.length) { 17901 errorItems.forEach(function (errorItem) { 17902 var style = null; 17903 17904 if (isError) { 17905 return; 17906 } 17907 17908 style = getComputedStyle(errorItem); 17909 17910 if (style && 17911 style.display !== 'none' && 17912 style.visibility !== 'hidden' && 17913 style.opacity !== '0' 17914 ) { 17915 visibleErrorItem = errorItem; 17916 isError = true; 17917 } 17918 }); 17919 } 17920 17921 if (isError) { 17922 this.setTriggerClickedData(visibleErrorItem, MultiStepForm.isShow(MultiStepForm.Register.$root) ? 'register' : ''); 17923 } 17924 }; 17925 17926 ControlErrorDisplay.addInvalidEvent = function () { 17927 var formValidaterTargets = this.targetForm.querySelectorAll('input[type="email"], input[pattern]'); 17928 17929 if (formValidaterTargets.length) { 17930 formValidaterTargets.forEach(function (target) { 17931 target.addEventListener('invalid', ControlErrorDisplay.cancelBrowserValidation.bind(ControlErrorDisplay)); 17932 }); 17933 } 17934 }; 17935 17936 ControlErrorDisplay.cancelBrowserValidation = function (event) { 17937 var target = event.currentTarget; 17938 var isVisible = false; 17939 var submitEvent = new Event('submit', {cancelable: true}); 17940 17941 if (target && 17942 target.checkVisibility({ 17943 opacityProperty: true, 17944 contentVisibilityAuto: true, 17945 })) { 17946 this.browserValidaterTarget = target; 17947 isVisible = true; 17948 } 17949 17950 if (!isVisible) { 17951 this.browserValidaterTarget = null; 17952 17953 return; 17954 } 17955 17956 if (!this.isTriggerClicked(target)) { 17957 event.preventDefault(); 17958 this.targetForm.dispatchEvent(submitEvent); 17959 } 17960 }; 17961 17962 ControlErrorDisplay.setTriggerClickedData = function (trigger, currentScreen) { 17963 var formType = KEYENCE.Form.FormFilter.General.getFormType(); 17964 var target = null; 17965 17966 if (typeof trigger !== 'object' || !trigger) { 17967 return; 17968 } 17969 17970 target = trigger.closest('.' + this.classNames.target); 17971 17972 if (currentScreen === 'register' && this.config.isRegisterFlatForm) { 17973 if (formType === 'mobileNumber') { 17974 this.config.isMobileRegisterFlatFormSubmitClicked = true; 17975 } else { 17976 this.config.isEmailRegisterFlatFormSubmitClicked = true; 17977 } 17978 17979 return; 17980 } else if (!target) { 17981 return; 17982 } 17983 17984 if (currentScreen === 'register') { 17985 if (formType === 'mobileNumber') { 17986 target.dataset.mobileTriggerButtonClicked = this.getPanelProgressData(trigger); 17987 } else { 17988 target.dataset.emailTriggerButtonClicked = this.getPanelProgressData(trigger); 17989 } 17990 } else { 17991 if (formType === 'mobileNumber') { 17992 target.dataset.mobileTriggerButtonClicked = 'true'; 17993 } else { 17994 target.dataset.emailTriggerButtonClicked = 'true'; 17995 } 17996 } 17997 }; 17998 17999 ControlErrorDisplay.getPanelProgressData = function (trigger) { 18000 var currentPanel = null; 18001 var currentPanelIndex = ''; 18002 var panelIndexDataArray = []; 18003 18004 currentPanel = trigger.closest('[data-panel-index]'); 18005 18006 if (!currentPanel) { 18007 return ''; 18008 } 18009 18010 currentPanelIndex = currentPanel.dataset.panelIndex; 18011 18012 if (currentPanelIndex) { 18013 panelIndexDataArray = this.getPanelProgressDataArray(Number(currentPanelIndex)); 18014 18015 return panelIndexDataArray.join(); 18016 } 18017 18018 return ''; 18019 }; 18020 18021 ControlErrorDisplay.getPanelProgressDataArray = function (currentPanelIndex) { 18022 var panelIndexDataArray = []; 18023 var i = 0; 18024 18025 if (currentPanelIndex) { 18026 for (i = 0; i < currentPanelIndex; i++) { 18027 panelIndexDataArray.push('panel' + (i + 1)); 18028 } 18029 } 18030 18031 return panelIndexDataArray; 18032 }; 18033 18034 ControlErrorDisplay.resetPanelProgressData = function (triggerId) { 18035 var formType = KEYENCE.Form.FormFilter.General.getFormType(); 18036 var trigger = null; 18037 var currentPanel = null; 18038 var currentPanelIndex = ''; 18039 var triggerWrapper = null; 18040 var triggerClickedData = ''; 18041 var panelIndexDataArray = []; 18042 18043 if (this.config.isRegisterFlatForm) { 18044 return; 18045 } 18046 18047 trigger = doc.getElementById(triggerId); 18048 18049 if (!trigger) { 18050 return; 18051 } 18052 18053 currentPanel = trigger.closest('[data-panel-index]'); 18054 18055 if (!currentPanel) { 18056 return; 18057 } 18058 18059 currentPanelIndex = currentPanel.dataset.panelIndex; 18060 triggerWrapper = trigger.closest('.' + this.classNames.target); 18061 18062 if (triggerWrapper) { 18063 if (formType === 'mobileNumber') { 18064 triggerClickedData = triggerWrapper.dataset.mobileTriggerButtonClicked; 18065 } else { 18066 triggerClickedData = triggerWrapper.dataset.emailTriggerButtonClicked; 18067 } 18068 } 18069 18070 if (!triggerClickedData) { 18071 return; 18072 } 18073 18074 if (triggerClickedData.includes('panel' + currentPanelIndex)) { 18075 panelIndexDataArray = this.getPanelProgressDataArray(Number(currentPanelIndex)); 18076 } else { 18077 panelIndexDataArray = this.getPanelProgressDataArray(Number(currentPanelIndex) - 1); 18078 } 18079 18080 if (panelIndexDataArray.length) { 18081 if (formType === 'mobileNumber') { 18082 triggerWrapper.dataset.mobileTriggerButtonClicked = panelIndexDataArray.join(); 18083 triggerWrapper.removeAttribute('data-email-Trigger-Button-clicked'); 18084 } else { 18085 triggerWrapper.dataset.emailTriggerButtonClicked = panelIndexDataArray.join(); 18086 triggerWrapper.removeAttribute('data-mobile-Trigger-Button-clicked'); 18087 } 18088 } 18089 }; 18090 18091 ControlErrorDisplay.isTriggerClicked = function (trigger) { 18092 var formType = KEYENCE.Form.FormFilter.General.getFormType();
18093 var isClicked = false; 18094 18095 if (typeof trigger !== 'object' || !trigger) { 18096 return isClicked; 18097 } 18098 18099 if (MultiStepForm.isShow(MultiStepForm.Register.$root)) { 18100 if (this.isFlatFormTriggerClicked(formType) || this.matchClickedData(trigger, formType)) { 18101 isClicked = true; 18102 } 18103 } else { 18104 if (formType === 'mobileNumber' && trigger.closest('[data-mobile-trigger-button-clicked="true"]')) { 18105 isClicked = true; 18106 } else if (formType !== 'mobileNumber' && trigger.closest('[data-email-trigger-button-clicked="true"]')) { 18107 isClicked = true; 18108 } 18109 } 18110 18111 return isClicked; 18112 }; 18113 18114 ControlErrorDisplay.isFlatFormTriggerClicked = function (formType) { 18115 if (!this.config.isRegisterFlatForm) { 18116 return false; 18117 } 18118 18119 if ((formType === 'mobileNumber' && this.config.isMobileRegisterFlatFormSubmitClicked) || 18120 (formType !== 'mobileNumber' && this.config.isEmailRegisterFlatFormSubmitClicked)) { 18121 return true; 18122 } 18123 18124 return false; 18125 }; 18126 18127 ControlErrorDisplay.matchClickedData = function (trigger, formType) { 18128 var target = null; 18129 var isClicked = false; 18130 var currentPanel = null; 18131 var currentPanelIndex = ''; 18132 var clickedDataValue = ''; 18133 18134 if (typeof trigger !== 'object' || !trigger) { 18135 return isClicked; 18136 } 18137 18138 target = trigger.closest('.' + this.classNames.target); 18139 currentPanel = trigger.closest('[data-panel-index]'); 18140 18141 if (!target || !currentPanel) { 18142 return isClicked; 18143 } 18144 18145 if (formType === 'mobileNumber') { 18146 clickedDataValue = target.dataset.mobileTriggerButtonClicked; 18147 } else { 18148 clickedDataValue = target.dataset.emailTriggerButtonClicked; 18149 } 18150 18151 currentPanelIndex = currentPanel.dataset.panelIndex; 18152 18153 if (!clickedDataValue || !currentPanelIndex) { 18154 return isClicked; 18155 } 18156 18157 if (clickedDataValue.includes('panel' + currentPanelIndex)) { 18158 isClicked = true; 18159 } 18160 18161 return isClicked; 18162 }; 18163 18164 ControlErrorDisplay.validateInactivePanel = function (triggerId) { 18165 var trigger = null; 18166 var registerFormWrapper = null; 18167 var currentPanel = null; 18168 var currentPanelIndex = ''; 18169 var inactivePanels = null; 18170 var validateTargets = null; 18171 18172 if (typeof triggerId !== 'string' || !triggerId || !this.config.isRegisterFlatForm) { 18173 return; 18174 } 18175 18176 trigger = doc.getElementById(triggerId); 18177 18178 if (!trigger) { 18179 return; 18180 } 18181 18182 registerFormWrapper = trigger.closest('.' + this.classNames.target); 18183 currentPanel = trigger.closest('[data-panel-index]'); 18184 18185 if (!registerFormWrapper || !currentPanel) { 18186 return; 18187 } 18188 18189 currentPanelIndex = currentPanel.dataset.panelIndex; 18190 18191 if (!currentPanelIndex) { 18192 return; 18193 } 18194 18195 inactivePanels = registerFormWrapper.querySelectorAll('[data-panel-index]:not([data-panel-index="'+ currentPanelIndex +'"])'); 18196 18197 if (inactivePanels.length) { 18198 inactivePanels.forEach(function (panel) { 18199 validateTargets = panel.querySelectorAll('.suz_rr'); 18200 18201 if (validateTargets.length) { 18202 validateTargets.forEach(function (target) { 18203 suz_checkEntryItem($(target)); 18204 }); 18205 } 18206 }); 18207 } 18208 }; 18209 18210 return ControlErrorDisplay; 18211 }()); 18212 18213 win.KeyenceForm = KEYENCE.Form; 18214 18215 KEYENCE.Form.OTPControl = (function () { 18216 var OTPControl = {}; 18217 18218 OTPControl.init = function () { 18219 if ('OTPCredential' in window) { 18220 var input = document.querySelector('input[autocomplete="one-time-code"]'); 18221 var ac; 18222 var form; 18223 18224 if (!input) return; 18225 18226 ac = new AbortController(); 18227 form = input.closest('form'); 18228 18229 if (ac && form) { 18230 form.addEventListener('submit', function() { 18231 ac.abort(); 18232 }); 18233 } 18234 18235 navigator.credentials.get({ 18236 otp: {transport:['sms']} 18237 }).then(function(otp){ 18238 var $otpInput = $(form).find('input[autocomplete="one-time-code"]:visible'); 18239 18240 if ($otpInput.length === 1) { 18241 $otpInput.val(otp.code); 18242 $otpInput.get(0).dispatchEvent(new Event('change'));
18243 } 18244 }).catch(function(err){ 18245 console.log(err); 18246 }); 18247 } 18248 }; 18249 18250 return OTPControl; 18251 }()); 18252 18253 KEYENCE.Form.ToggleDisabled = (function () { 18254 var ToggleDisabled = {}; 18255 18256 var classNames = { 18257 root: 'js-toggleDisabled-root', 18258 trigger: 'js-toggleDisabled-trigger', 18259 target: 'js-toggleDisabled-target' 18260 }; 18261 18262 ToggleDisabled.init = function () { 18263 var self = this; 18264 var roots = doc.querySelectorAll('.' + classNames.root); 18265 18266 if (!roots.length) { 18267 return; 18268 } 18269 18270 roots.forEach(function (root) { 18271 var trigger = root.querySelector('.' + classNames.trigger); 18272 var target = root.querySelector('.' + classNames.target); 18273 18274 if (!trigger || !target) { 18275 return; 18276 } 18277 18278 self.default(target); 18279 self.onClick(root, trigger, target); 18280 self.onChange(trigger, target); 18281 }); 18282 }; 18283 18284 ToggleDisabled.default = function (target) { 18285 if (target) { 18286 target.disabled = true; 18287 target.style.pointerEvents = 'none'; 18288 } 18289 }; 18290 18291 ToggleDisabled.onClick = function (root, trigger, target) { 18292 root.addEventListener('click', function () { 18293 if (trigger.checked === false) { 18294 trigger.checked = true; 18295 target.style.pointerEvents = 'auto'; 18296 target.disabled = false; 18297 win.setTimeout(function() { 18298 target.focus(); 18299 }, 0); 18300 } 18301 }); 18302 18303 trigger.addEventListener('focus', function () { 18304 if (trigger.checked === false) { 18305 trigger.checked = true; 18306 target.disabled = false; 18307 } 18308 }); 18309 }; 18310 18311 ToggleDisabled.onChange = function (trigger, target) { 18312 var triggerName = trigger.name; 18313 var radioElements = doc.querySelectorAll(`[name="${triggerName}"]`); 18314 18315 if (!triggerName) { 18316 return; 18317 } 18318 18319 radioElements.forEach(function (radioElement) { 18320 radioElement.addEventListener('change', function (event) { 18321 if (!event.target.classList.contains('.' + classNames.trigger)) { 18322 target.disabled = true; 18323 target.style.pointerEvents = 'none'; 18324 } 18325 }); 18326 }); 18327 }; 18328 18329 return ToggleDisabled; 18330 })(); 18331 18332 KEYENCE.Form.commonSendVerificationEmail = (function () { 18333 var MultiStepForm = win.MultiStepForm; 18334 var FormFilter = KEYENCE.Form.FormFilter; 18335 18336 var idNames = { 18337 initialScreen : { 18338 relogin: 'js-multiStepForm-relogin', 18339 }, 18340 sendEmailScreen: 'js-multiStepForm-sendEmail', 18341 btnCheckSendEmail: 'js-form-btnCheckSendMail', 18342 btnBackToRelogin: 'js-sendEmail-btnBackToRelogin', 18343 emailAddressField: 'loginUserName', 18344 }; 18345 18346 var classNames = { 18347 isVerificationEmailActive: 'is-sendVerificationEmail-active', 18348 verificationEmailTarget: 'js-showVerificationEmail-target', 18349 enterEmailAddress: 'js-enterEmailAddress', 18350 isHide: 'is-hide', 18351 isSignin: 'is-signin', 18352 }; 18353 18354 var config = { 18355 api: { 18356 sendEmail: { 18357 url: '/ajax/userAjax/publishLoginUrl/', 18358 }, 18359 checkEmailAddress: { 18360 url: '/ajax/registrationAjax/setEmailAddress/', 18361 }, 18362 }, 18363 isSendEmailActive: false, 18364 } 18365 18366 var commonSendVerificationEmail = { 18367 idNames: idNames, 18368 classNames: classNames, 18369 config: config, 18370 targetForms: { 18371 withdrawActionForm: doc.querySelector('form[name="user_profile_withdrawActionForm"]'), 18372 reloginActionForm: doc.querySelector('form[name="user_reloginActionForm"]'), 18373 }, 18374 currentTargetForm: null, 18375 formRoot: doc.querySelector('.' + classNames.isVerificationEmailActive), 18376 initialScreen: null, 18377 sendEmailScreen: doc.getElementById(idNames.sendEmailScreen), 18378 btnCheckSendEmail: doc.getElementById(idNames.btnCheckSendEmail), 18379 verificationEmailTargets: doc.querySelectorAll('.' + classNames.verificationEmailTarget), 18380 enterEmailAddressTargets: doc.querySelectorAll('.' + classNames.enterEmailAddress), 18381 btnBackToRelogin: doc.getElementById(idNames.btnBackToRelogin), 18382 emailAddressField: doc.getElementById(idNames.emailAddressField) 18383 }; 18384 18385 commonSendVerificationEmail.init = function () { 18386 if (!this.isTargetForm() || !this.btnCheckSendEmail) { 18387 return; 18388 } 18389 18390 if (this.formRoot && this.isSignin()) {
18391 this.config.isSendEmailActive = true; 18392 18393 this.showVerificationEmailArea(); 18394 this.setInitialScreen(); 18395 this.addClickSendEmailButton(); 18396 this.addClickBackButton(); 18397 } 18398 }; 18399 18400 commonSendVerificationEmail.isTargetForm = function () { 18401 var self = this; 18402 var isTarget = false; 18403 18404 Object.keys(self.targetForms).forEach(function (key) { 18405 if (self.targetForms[key]) { 18406 self.currentTargetForm = self.targetForms[key]; 18407 isTarget = true; 18408 } 18409 }); 18410 18411 return isTarget; 18412 }; 18413 18414 commonSendVerificationEmail.isSignin = function () { 18415 if (this.formRoot.classList.contains(this.classNames.isSignin)) { 18416 return true; 18417 } 18418 18419 return false; 18420 }; 18421 18422 commonSendVerificationEmail.showVerificationEmailArea = function () { 18423 var self = this; 18424 18425 if (self.verificationEmailTargets.length) { 18426 self.verificationEmailTargets.forEach(function (target) { 18427 target.classList.remove(self.classNames.isHide); 18428 }); 18429 } 18430 }; 18431 18432 commonSendVerificationEmail.setInitialScreen = function () { 18433 var self = this; 18434 18435 Object.keys(self.idNames.initialScreen).forEach(function (key) { 18436 if (doc.getElementById(self.idNames.initialScreen[key])) { 18437 self.initialScreen = doc.getElementById(self.idNames.initialScreen[key]); 18438 } 18439 }); 18440 }; 18441 18442 commonSendVerificationEmail.addClickSendEmailButton = function () { 18443 this.btnCheckSendEmail.addEventListener('click', this.showResultView.bind(this)); 18444 }; 18445 18446 commonSendVerificationEmail.addClickBackButton = function () { 18447 if (this.btnBackToRelogin) { 18448 this.btnBackToRelogin.addEventListener('click', this.changeDisplayScreen.bind(this)); 18449 } 18450 }; 18451 18452 commonSendVerificationEmail.showResultView = function (event) { 18453 var triggerId = event.currentTarget.id; 18454 var self = this; 18455 18456 if (!this.config.isSendEmailActive || !triggerId) { 18457 return; 18458 } 18459 18460 if (triggerId === this.idNames.btnCheckSendEmail) { 18461 this.validateEmailAddress(this.config.api.checkEmailAddress.url).done(function () { 18462 self.sendVerificationEmail(self.config.api.sendEmail.url).always(function () { 18463 self.showSendEmailScreen(triggerId); 18464 }); 18465 }).fail(function () { 18466 self.showSendEmailScreen(triggerId); 18467 }); 18468 } 18469 }; 18470 18471 commonSendVerificationEmail.validateEmailAddress = function (apiUrl) { 18472 var deferred = new $.Deferred(); 18473 var options = {}; 18474 18475 if (!apiUrl) { 18476 return deferred.reject(); 18477 } 18478 18479 options = { 18480 url: win.suz_getCurrentDomain() + apiUrl, 18481 type: 'post', 18482 data: { 18483 token : $("input[name='org.apache.struts.taglib.html.TOKEN']").attr("value"), 18484 }, 18485 dataType: 'html', 18486 scriptCharset: 'UTF-8', 18487 timeout: 10000, 18488 }; 18489 18490 $.ajax(options).done(function () { 18491 deferred.resolve(); 18492 }).fail(function () { 18493 deferred.reject(); 18494 }); 18495 18496 return deferred.promise(); 18497 }; 18498 18499 commonSendVerificationEmail.sendVerificationEmail = function (apiUrl) { 18500 var deferred = new $.Deferred(); 18501 var options = {}; 18502 var formData = ''; 18503 18504 if (this.currentTargetForm) { 18505 formData = $(this.currentTargetForm).serialize(); 18506 } 18507 18508 if (!formData || !apiUrl) { 18509 return deferred.resolve(); 18510 } 18511 18512 options = { 18513 url: win.suz_getCurrentDomain() + apiUrl, 18514 type: 'post', 18515 data: { 18516 formData: formData 18517 }, 18518 dataType: 'jsonp', 18519 jsonp: 'callback', 18520 scriptCharset: 'UTF-8', 18521 timeout: 10000, 18522 }; 18523 18524 $.ajax(options).done(function () { 18525 deferred.resolve(); 18526 }).fail(function () { 18527 // Treat failure as success 18528 deferred.resolve(); 18529 }); 18530 18531 return deferred.promise(); 18532 }; 18533 18534 commonSendVerificationEmail.showSendEmailScreen = function (triggerId) { 18535 if (triggerId) { 18536 this.enterEmailAddress(); 18537 FormFilter.SendEmail.changeFilterClass(triggerId); 18538 this.hideScreen(this.initialScreen); 18539 this.showScreen(this.sendEmailScreen); 18540 } 18541 }; 18542 18543 commonSendVerificationEmail.enterEmailAddress = function () { 18544 var self = this; 18545 18546 if (self.emailAddressField && self.enterEmailAddressTargets.length) {
18547 self.enterEmailAddressTargets.forEach(function (target) { 18548 target.textContent = self.emailAddressField.value; 18549 }); 18550 } 18551 }; 18552 18553 commonSendVerificationEmail.showScreen = function (screen) { 18554 if (!screen) { 18555 return; 18556 } 18557 18558 screen.classList.remove(this.classNames.isHide); 18559 18560 if (MultiStepForm) { 18561 MultiStepForm.scrollToElement(screen.id); 18562 } 18563 }; 18564 18565 commonSendVerificationEmail.hideScreen = function (screen) { 18566 if (!screen) { 18567 return; 18568 } 18569 18570 screen.classList.add(this.classNames.isHide); 18571 18572 if (screen === this.initialScreen) { 18573 KEYENCE.Form.ModalPasswordError.resetErrorCount(); 18574 } 18575 }; 18576 18577 commonSendVerificationEmail.changeDisplayScreen = function (event) { 18578 if (event.currentTarget.id === this.idNames.btnBackToRelogin) { 18579 this.hideScreen(this.sendEmailScreen); 18580 this.showScreen(this.initialScreen); 18581 } 18582 }; 18583 18584 commonSendVerificationEmail.enableEmailAddress = function (formType) { 18585 if (this.config.isSendEmailActive 18586 && this.emailAddressField 18587 && (formType === FormFilter.General.FORM_TYPE.EMAIL 18588 || formType === FormFilter.General.FORM_TYPE.DEFAULT)) { 18589 this.emailAddressField.disabled = false; 18590 } 18591 }; 18592 18593 return commonSendVerificationEmail; 18594 }()); 18595 18596 KEYENCE.Form.SetMobileNumberToPhoneField = (function () { 18597 var MultiStepForm = null; 18598 var AvailableValidator = null; 18599 18600 var SetMobileNumberToPhoneField = { 18601 registerForm: null, 18602 idNames: { 18603 phoneNumber: 'suz_phoneNumber', 18604 phoneCountryId: 'suz_phoneCountryID', 18605 mobileNumber: 'suz_mobilePhoneNumber', 18606 mobileCountryId: 'suz_mobilePhoneCountryID', 18607 mobileNumberWrapper: 'suz_div_mobilePhoneNumber', 18608 }, 18609 config: { 18610 isTargetElementsExist: true, 18611 isScreenValidateRunning: false, 18612 isNumberCopyRunning: false, 18613 }, 18614 targetElements: { 18615 phoneNumber: null, 18616 phoneCountryCode: null, 18617 mobileNumber: null, 18618 mobileCountryCode: null, 18619 } 18620 }; 18621 18622 SetMobileNumberToPhoneField.init = function () { 18623 MultiStepForm = win.MultiStepForm; 18624 AvailableValidator = win.KeyenceForm.AvailableValidator; 18625 this.multiStepForm = doc.getElementById(MultiStepForm.idNames.trigger); 18626 this.registerForm = doc.getElementById(MultiStepForm.Register.idNames.regForm); 18627 18628 if (this.multiStepForm && this.registerForm) { 18629 this.setTargetElements(); 18630 this.checkTargetsExist(); 18631 this.setMutationObserver(); 18632 } 18633 }; 18634 18635 SetMobileNumberToPhoneField.setTargetElements = function () { 18636 this.targetElements = { 18637 phoneNumber: doc.getElementById(this.idNames.phoneNumber), 18638 phoneCountryCode: doc.getElementById(this.idNames.phoneCountryId), 18639 mobileNumber: doc.getElementById(this.idNames.mobileNumber), 18640 mobileCountryCode: doc.getElementById(this.idNames.mobileCountryId), 18641 } 18642 }; 18643 18644 SetMobileNumberToPhoneField.checkTargetsExist = function () { 18645 var self = this; 18646 18647 Object.keys(this.targetElements).forEach(function (key) { 18648 if (!self.targetElements[key]) { 18649 self.config.isTargetElementsExist = false; 18650 } 18651 }); 18652 }; 18653 18654 SetMobileNumberToPhoneField.setMutationObserver = function () { 18655 var registerFormArea = doc.getElementById(MultiStepForm.Register.idNames.suzRegArea); 18656 var observer = null; 18657 var observerConfig = { 18658 attributeFilter: ['id'], 18659 childList: true 18660 }; 18661 18662 if (!registerFormArea) { 18663 return; 18664 } 18665 18666 observer = new MutationObserver(function (record) { 18667 if (record[0].target.id === MultiStepForm.Register.idNames.suzRegArea) { 18668 SetMobileNumberToPhoneField.config.isTargetElementsExist = true; 18669 18670 SetMobileNumberToPhoneField.setTargetElements(); 18671 SetMobileNumberToPhoneField.checkTargetsExist(); 18672 } 18673 }); 18674 18675 observer.observe(registerFormArea, observerConfig); 18676 }; 18677 18678 SetMobileNumberToPhoneField.run = function (fieldName) { 18679 var targets = this.targetElements; 18680 var NumberData = {} 18681 var targetCountryCodeOption = null; 18682 var phoneCountryCodeWrapper = null; 18683 var blurEvent = new Event('blur'); 18684 var changeEvent = new Event('change'); 18685 18686 if ((fieldName !== 'mobilePhoneNumber' && fieldName !== 'mobilePhoneCountryID') || 18687 this.config.isScreenValidateRunning || 18688 !this.config.isTargetElementsExist || 18689 targets.phoneNumber.value !== '' || 18690 AvailableValidator.isCancelTarget('mobile')) { 18691 return; 18692 } 18693 18694 NumberData = this.getPhoneNumberData(targets.mobileNumber, targets.mobileCountryCode); 18695 18696 if (NumberData.number && NumberData.countryCode && NumberData.countryValue) { 18697 this.config.isNumberCopyRunning = true; 18698 18699 targetCountryCodeOption = targets.phoneCountryCode.querySelector('option[data-code="' + NumberData.countryCode + '"][value="' +
18699NumberData.countryValue + '"]'); 18700 18701 targets.phoneNumber.value = NumberData.number; 18702 targetCountryCodeOption.selected = true; 18703 18704 phoneCountryCodeWrapper = targets.phoneCountryCode.closest('.js-selectCountryNumber'); 18705 18706 if (phoneCountryCodeWrapper) { 18707 phoneCountryCodeWrapper.dispatchEvent(changeEvent); 18708 } 18709 18710 targets.phoneNumber.dispatchEvent(blurEvent); 18711 } 18712 }; 18713 18714 SetMobileNumberToPhoneField.getPhoneNumberData = function (numberField, countryCodeField) { 18715 var PhoneNumberData = { 18716 number: '', 18717 currentCountryCodeOption: null, 18718 countryCode: '', 18719 countryValue: '' 18720 } 18721 18722 if (!numberField || !countryCodeField) { 18723 return PhoneNumberData; 18724 } 18725 18726 PhoneNumberData.number = numberField.value; 18727 PhoneNumberData.currentCountryCodeOption = countryCodeField.options[countryCodeField.selectedIndex]; 18728 18729 PhoneNumberData.countryCode = PhoneNumberData.currentCountryCodeOption.dataset.code; 18730 PhoneNumberData.countryValue = PhoneNumberData.currentCountryCodeOption.value; 18731 18732 return PhoneNumberData; 18733 }; 18734 18735 return SetMobileNumberToPhoneField; 18736 }()); 18737 18738 KEYENCE.Form.ModalPasswordError = (function () { 18739 var MultiStepForm = win.MultiStepForm; 18740 var CommonSendVerificationEmail = KEYENCE.Form.commonSendVerificationEmail; 18741 18742 var idNames = { 18743 passwordErrorCountUpField :'passwordErrorCount', 18744 signinScreen: 'js-multiStepForm-signin', 18745 reLoginInitialScreen: 'js-multiStepForm-relogin', 18746 sendMailButton: 'js-form-btnCheckSendMail', 18747 resetPasswordButton: 'suz-pwdAssistanceLink', 18748 backToEmailButton: 'js-signinForm-btnBackToEmail', 18749 cloneSendMailButton: 'js-modalPasswordErrorReachedLimit-sendMailButton', 18750 cloneResetPasswordButton: 'js-modalPasswordErrorReachedLimit-resetPasswordButton', 18751 cloneBackToEmailButton: 'js-modalPasswordErrorReachedLimit-backToEmailButton', 18752 colorbox: 'colorbox', 18753 colorboxContent: 'cboxContent', 18754 colorboxLoadedContent: 'cboxLoadedContent', 18755 colorboxOverlay: 'cboxOverlay', 18756 modalbox: 'kpi_modalbox', 18757 colorboxTitle: 'cboxTitle',
18758 colorboxCloseButton: 'cboxClose', 18759 colorboxWrapper: 'cboxWrapper', 18760 modalLowerMargin: 'js-multiStepForm-modalLowerMargin', 18761 }; 18762 18763 var classNames = { 18764 passwordErrorModalTrigger: 'js-modalPasswordErrorReachedLimit', 18765 modalExtension: 'of-multiStepFormErrorCount', 18766 lowerMargin: 'formMultiStep-lowerMargin', 18767 isLargeModal: 'ModalLarge', 18768 isSendVerificationEmailActive: 'is-sendVerificationEmail-active', 18769 isPasswordErrorModalShow: 'is-passwordErrorModal-show', 18770 isHide: 'is-hide' 18771 }; 18772 18773 var config = { 18774 isReloginForm: false, 18775 errorLimitNumber: 0, 18776 } 18777 18778 var ModalPasswordError = { 18779 idNames: idNames, 18780 classNames: classNames, 18781 config: config, 18782 passwordErrorCountUpField: doc.getElementById(idNames.passwordErrorCountUpField), 18783 signinScreen: doc.getElementById(idNames.signinScreen), 18784 reLoginInitialScreen: doc.getElementById(idNames.reLoginInitialScreen), 18785 formRoot: doc.querySelector('.' + classNames.isSendVerificationEmailActive), 18786 cloneTarget: null, 18787 cloneScreen: null, 18788 modalElements: null, 18789 $modal: null, 18790 $cloneSendMailButton: null, 18791 $cloneResetPasswordButton: null, 18792 $cloneBackToEmailButton: null, 18793 }; 18794 18795 ModalPasswordError.init = function () { 18796 var performanceNavigationEntries = null; 18797 var accessType = ''; 18798 18799 if (!this.isTargetForm() || !this.formRoot || MultiStepForm.isModalContent()) { 18800 return; 18801 } 18802 18803 if (this.config.isReloginForm && !this.checkSignIn()) { 18804 return; 18805 } 18806 18807 performanceNavigationEntries = win.performance.getEntriesByType('navigation'); 18808 18809 performanceNavigationEntries.forEach(function (entry) { 18810 accessType = entry.type; 18811 }); 18812 18813 if (this.isReachedErrorCountLimit() && this.isPasswordErrorShow()) { 18814 if (accessType === 'reload') { 18815 this.resetErrorCount(); 18816 18817 return; 18818 } 18819 18820 this.createCloneScreen(); 18821 this.openModal(); 18822 } 18823 }; 18824 18825 ModalPasswordError.isTargetForm = function () { 18826 if (this.signinScreen) { 18827 this.cloneTarget = this.signinScreen; 18828 return true; 18829 } else if (this.reLoginInitialScreen) { 18830 this.cloneTarget = this.reLoginInitialScreen; 18831 this.config.isReloginForm = true; 18832 return true; 18833 } 18834 18835 return false; 18836 }; 18837 18838 ModalPasswordError.checkSignIn = function () { 18839 if (CommonSendVerificationEmail.isSignin()) { 18840 return true; 18841 } 18842 18843 return false; 18844 }; 18845 18846 ModalPasswordError.isReachedErrorCountLimit = function () { 18847 var errorCountValue = ''; 18848 18849 if (!this.passwordErrorCountUpField) { 18850 return false; 18851 } 18852 18853 errorCountValue = this.passwordErrorCountUpField.value; 18854 18855 if (errorCountValue && 18856 Number(errorCountValue) === win.passwordErrorCountMax) { 18857 return true; 18858 } 18859 18860 return false; 18861 }; 18862 18863 ModalPasswordError.isPasswordErrorShow = function () { 18864 var passwordErrorModalTriggers = doc.querySelectorAll('.' + this.classNames.passwordErrorModalTrigger); 18865 var isVisibility = false; 18866 18867 if (passwordErrorModalTriggers.length) { 18868 passwordErrorModalTriggers.forEach(function (trigger) { 18869 if (!trigger.classList.contains(ModalPasswordError.classNames.isHide)) { 18870 isVisibility = true; 18871 } 18872 }); 18873 } 18874 18875 return isVisibility; 18876 }; 18877 18878 ModalPasswordError.createCloneScreen = function () { 18879 this.cloneScreen = this.cloneTarget.cloneNode(true); 18880 18881 if (!this.cloneScreen) { 18882 return; 18883 } 18884 18885 this.cloneScreen.classList.add(this.classNames.isPasswordErrorModalShow); 18886 this.replaceCloneIdName(); 18887 }; 18888 18889 ModalPasswordError.replaceCloneIdName = function () { 18890 var hasIdElements = this.cloneScreen.querySelectorAll('[id]'); 18891 var sendMailButton = this.cloneScreen.querySelector('#' + this.idNames.sendMailButton); 18892 var resetPasswordButton = this.cloneScreen.querySelector('#' + this.idNames.resetPasswordButton); 18893 var backToEmailButton = this.cloneScreen.querySelector('#' + this.idNames.backToEmailButton); 18894 18895 this.cloneScreen.removeAttribute('id');
18896 hasIdElements.forEach(function (element) { 18897 element.removeAttribute('id'); 18898 }); 18899 18900 if (sendMailButton) { 18901 sendMailButton.id = this.idNames.cloneSendMailButton; 18902 } 18903 18904 if (resetPasswordButton) { 18905 resetPasswordButton.id = this.idNames.cloneResetPasswordButton; 18906 } 18907 18908 if (backToEmailButton) { 18909 backToEmailButton.id = this.idNames.cloneBackToEmailButton; 18910 } 18911 }; 18912 18913 ModalPasswordError.openModal = function () { 18914 var self = this; 18915 18916 this.$modal = $.colorbox({ 18917 width: 840, 18918 inline: true, 18919 href: $(self.cloneScreen), 18920 onOpen: self.onOpen, 18921 onComplete: self.onComplete, 18922 onClosed: self.onClosed 18923 }); 18924 }; 18925 18926 ModalPasswordError.onOpen = function () { 18927 var self = ModalPasswordError; 18928 18929 $('#' + self.idNames.colorbox).addClass(self.classNames.modalExtension); 18930 $('#' + self.idNames.overlay).addClass(self.classNames.modalExtension); 18931 $('#' + self.idNames.modalbox).removeClass(self.classNames.isLargeModal); 18932 }; 18933 18934 ModalPasswordError.onComplete = function () { 18935 var self = ModalPasswordError; 18936 18937 self.modalElements = self.getModalElementsAll(); 18938 18939 if (!self.modalElements) { 18940 return; 18941 } 18942 18943 self.setActionTriggers(); 18944 self.addClickActionTrigger(); 18945 self.addAttributes(); 18946 self.addCloseButton(); 18947 self.stopBubbling(self.modalElements.$title); 18948 self.addClickCloseButton(); 18949 self.appendLowerMargin(); 18950 18951 if (self.signinScreen) { 18952 self.pushTrackingData('js-modalPasswordErrorReachedLimit', 'open', 'signin'); 18953 } 18954 }; 18955 18956 ModalPasswordError.getModalElementsAll = function () { 18957 var $colorBoxRoot = $('#' + this.idNames.colorbox); 18958 18959 if (!$colorBoxRoot.length) { 18960 return null; 18961 } 18962 18963 return { 18964 $root: $colorBoxRoot, 18965 $content: $colorBoxRoot.find('#' + this.idNames.colorboxContent), 18966 $loadedContent: $colorBoxRoot.find('#' + this.idNames.colorboxLoadedContent), 18967 $title: $colorBoxRoot.find('#' + this.idNames.colorboxTitle), 18968 $overlay: $('#' + this.idNames.colorboxOverlay), 18969 $wrapper: $('#' + this.idNames.colorboxWrapper), 18970 }; 18971 }; 18972 18973 ModalPasswordError.setActionTriggers = function () { 18974 if (this.modalElements.$root.length) { 18975 this.$cloneSendMailButton = this.modalElements.$root.find('#' + this.idNames.cloneSendMailButton); 18976 this.$cloneResetPasswordButton = this.modalElements.$root.find('#' + this.idNames.cloneResetPasswordButton); 18977 this.$cloneBackToEmailButton = this.modalElements.$root.find('#' + this.idNames.cloneBackToEmailButton); 18978 } 18979 }; 18980 18981 ModalPasswordError.addClickActionTrigger = function () { 18982 if (this.$cloneSendMailButton.length) { 18983 this.$cloneSendMailButton.on('click', this.onClickSendMailButton.bind(this)); 18984 } 18985 18986 if (this.$cloneResetPasswordButton.length) { 18987 this.$cloneResetPasswordButton.on('click', this.onClickResetPasswordButton.bind(this)); 18988 } 18989 18990 if (this.$cloneBackToEmailButton.length) { 18991 this.$cloneBackToEmailButton.on('click', this.onClickBackToEmailButton.bind(this)); 18992 } 18993 }; 18994 18995 ModalPasswordError.onClickSendMailButton = function () { 18996 var sendMailButton = doc.getElementById(this.idNames.sendMailButton); 18997 18998 if (sendMailButton) { 18999 sendMailButton.click(); 19000 $.colorbox.close(); 19001 } 19002 }; 19003 19004 ModalPasswordError.onClickResetPasswordButton = function (event) { 19005 var resetPasswordButton = doc.getElementById(this.idNames.resetPasswordButton); 19006 19007 event.preventDefault(); 19008 19009 if (resetPasswordButton) { 19010 resetPasswordButton.click(); 19011 } 19012 }; 19013 19014 ModalPasswordError.onClickBackToEmailButton = function () { 19015 var backToEmailButton = doc.getElementById(this.idNames.backToEmailButton); 19016 19017 if (backToEmailButton) { 19018 backToEmailButton.click(); 19019 $.colorbox.close(); 19020 } 19021 }; 19022 19023 ModalPasswordError.addAttributes = function () { 19024 if (!this.modalElements) { 19025 return; 19026 } 19027 19028 this.modalElements.$title.addClass(this.classNames.modalExtension); 19029 this.modalElements.$content.addClass(this.classNames.modalExtension); 19030 this.modalElements.$loadedContent.addClass(this.classNames.modalExtension); 19031 }; 19032 19033 ModalPasswordError.addCloseButton = function () { 19034 if (this.modalElements && this.modalElements.$loadedContent.length) {
19035 this.modalElements.$loadedContent.prepend('<button id="' + idNames.colorboxCloseButton + '"><span>' + kpi_translation.Close + '</span></button>'); 19036 } 19037 }; 19038 19039 ModalPasswordError.stopBubbling = function ($target) { 19040 if ($target.length) { 19041 $target.off('click').on('click', function (event) { 19042 event.stopPropagation(); 19043 }); 19044 } 19045 }; 19046 19047 ModalPasswordError.addClickCloseButton = function () { 19048 $('#' + this.idNames.colorboxCloseButton).off('click').on('click', function () { 19049 $.colorbox.close(); 19050 }); 19051 }; 19052 19053 ModalPasswordError.appendLowerMargin = function () { 19054 var $lowerMargin = $('#' + this.idNames.modalLowerMargin); 19055 19056 if (!this.modalElements || !this.modalElements.$wrapper.length || $lowerMargin.length) { 19057 return; 19058 } 19059 19060 this.modalElements.$wrapper.append( 19061 '<div id="' + idNames.modalLowerMargin + '"' + ' class="' + classNames.lowerMargin + '"></div>' 19062 ); 19063 19064 $lowerMargin = $('#' + this.idNames.modalLowerMargin); 19065 19066 $lowerMargin.on('click', function () { 19067 $.colorbox.close(); 19068 }); 19069 }; 19070 19071 ModalPasswordError.onClosed = function () { 19072 var self = ModalPasswordError; 19073 19074 if (!self.modalElements) { 19075 return; 19076 } 19077 19078 self.removeAttributes(); 19079 self.resetErrorCount(); 19080 19081 if (self.signinScreen) { 19082 self.pushTrackingData('js-modalPasswordErrorReachedLimit', 'close', 'signin'); 19083 } 19084 19085 self.$modal = null; 19086 }; 19087 19088 ModalPasswordError.removeAttributes = function () { 19089 if (!this.modalElements) { 19090 return; 19091 } 19092 19093 this.modalElements.$root.removeClass(this.classNames.modalExtension); 19094 this.modalElements.$title.removeClass(this.classNames.modalExtension); 19095 this.modalElements.$content.removeClass(this.classNames.modalExtension); 19096 this.modalElements.$loadedContent.removeClass(this.classNames.modalExtension); 19097 this.modalElements.$overlay.removeClass(this.classNames.modalExtension); 19098 }; 19099 19100 ModalPasswordError.resetErrorCount = function () { 19101 if (!MultiStepForm.isModalContent() && this.passwordErrorCountUpField) { 19102 this.passwordErrorCountUpField.value = '0'; 19103 } 19104 }; 19105 19106 ModalPasswordError.enableErrorCount = function (formType) { 19107 var FormFilter = KEYENCE.Form.FormFilter; 19108 19109 if (!MultiStepForm.isModalContent() && this.passwordErrorCountUpField && formType) { 19110 if ((formType === FormFilter.General.FORM_TYPE.EMAIL || 19111 formType === FormFilter.General.FORM_TYPE.DEFAULT)) { 19112 this.passwordErrorCountUpField.disabled = false; 19113 } 19114 } 19115 }; 19116 19117 ModalPasswordError.pushTrackingData = function (idName, actionName, formCategory) { 19118 if (!win.AnalyticsViews) { 19119 return; 19120 } 19121 19122 win.AnalyticsViews.MultiStepForm.prototype.trackModalControl(idName, actionName, formCategory); 19123 }; 19124 19125 return ModalPasswordError; 19126 }()); 19127 19128 KEYENCE.Form.MultiFactorAuthentication = (function () { 19129 var MultiFactorAuthentication = {}; 19130 var MultiStepForm = null; 19131 var AvailableValidator = null; 19132 19133 var classNames = { 19134 isHide: 'is-hide', 19135 root: 'js-controlVerificationTargetValue', 19136 mobileNumber: 'js-controlVerificationTargetValue-mobileNumber', 19137 countryId: 'js-controlVerificationTargetValue-countryId', 19138 sendCode: 'js-controlVerificationTargetValue-sendCode', 19139 sendCodeTrigger: 'js-controlVerificationTargetValue-sendCodeTrigger', 19140 edit: 'js-controlVerificationTargetValue-edit',
19141 editTrigger: 'js-controlVerificationTargetValue-editTrigger', 19142 deleteDialog: 'js-controlVerificationTargetValue-deleteDialog', 19143 deleteDialogTrigger: 'js-controlVerificationTargetValue-deleteDialogTrigger', 19144 editEnded: 'js-controlVerificationTargetValue-editEnded', 19145 editEndedTrigger: 'js-controlVerificationTargetValue-editEndedTrigger', 19146 email: 'js-controlVerificationTargetValue-email', 19147 dialogCloseButton: 'js-dialog__closeButton', 19148 checkSMSCodeValidTrigger: 'js-checkSMSCodeValid-trigger', 19149 checkSMSCodeValidTarget: 'js-checkSMSCodeValid-target', 19150 checkSMSCodeValidLoadingIndicator: 'js-checkSMSCodeValid-loadingIndicator', 19151 formSuccessTextOuter: 'js-form-successTextOuter', 19152 formErrText: 'js-formErrText', 19153 isError: 'is-error', 19154 }; 19155 19156 var idNames = { 19157 verificationEmailCodeDiv: 'suz_div_verificationEmailCode', 19158 verificationCodeDiv: 'suz_div_verificationCode', 19159 editProfileSubmitButton: 'submit2' 19160 }; 19161 19162 var elements = { 19163 roots: [], 19164 editProfileSubmitButton: doc.getElementById(idNames.editProfileSubmitButton) 19165 }; 19166 19167 var selectors = { 19168 dialogCancelButton: '#js-controlVerificationTargetValue-emailCancel, #js-controlVerificationTargetValue-mobileNumberCancel', 19169 dialogDeleteButton: '#js-controlVerificationTargetValue-emailDelete, #js-controlVerificationTargetValue-mobileNumberDelete', 19170 deleteDialogTriggerFallback: '.js-controlVerificationTargetValue-deleteDialog a[href^="#"], .js-controlVerificationTargetValue-deleteDialog [aria-controls]' 19171 }; 19172 19173 var rootStates = new WeakMap(); 19174 var dialogButtonsWithEvents = new WeakSet(); 19175 var attachedRoots = new WeakSet(); 19176 // Managed with string keys separately from WeakMap to persist the deleted state even when DOM nodes are recreated 19177 var deletedRootKeys = new Set(); 19178 // String key management to persist the editing state across full DOM node replacements 19179 var editingRootKeys = new Set(); 19180 // Stores confirmed values at the time editing began, keyed by string (managed separately from WeakMap) 19181 var savedValuesByKey = new Map(); 19182 // Key management to restore confirmed values even when the framework restores the DOM after editEndedTrigger (cancel) is clicked 19183 var cancelledRootKeys = new Set(); 19184 19185 var urls = { 19186 createVerificationCode: '/ajax/registrationAjax/createVerificationCode/', 19187 createVerificationCodeForEmail: '/ajax/registrationAjax/createVerificationCodeForEmail/', 19188 checkVerificationCode: '/ajax/registrationAjax/checkVerificationCode/', 19189 checkVerificationCodeForEmail: '/ajax/registrationAjax/checkVerificationCodeForEmail/' 19190 }; 19191 19192 MultiFactorAuthentication = { 19193 initialClickedEditButtonArray: [], 19194 initialErrorItemRootArray: [], 19195 activeNoteTextHideFlag: false 19196 } 19197 19198 /** 19199 * Returns a stable string key based on the input type of the root element. 19200 * The same key is maintained even when the DOM node is replaced. 19201 */ 19202 function getRootKey(root) { 19203 if (root.querySelector('.' + classNames.email)) { 19204 return 'email'; 19205 } 19206 if (root.querySelector('.' + classNames.mobileNumber)) { 19207 return 'mobileNumber'; 19208 } 19209 // If neither of the above, fall back to the order of appearance in the DOM 19210 var allRoots = doc.querySelectorAll('.' + classNames.root); 19211 return 'index-' + Array.prototype.indexOf.call(allRoots, root); 19212 } 19213 19214 MultiFactorAuthentication.init = function () { 19215 elements.roots = doc.querySelectorAll('.' + classNames.root); 19216 19217 if (!elements.roots.length) { 19218 return; 19219 } 19220 19221 // Turn off the SMSCodeButton event to avoid duplicate firing with click.formSMSCodeButton when root elements exist 19222 $(doc).off('click.formSMSCodeButton'); 19223 19224 MultiStepForm = win.MultiStepForm; 19225 AvailableValidator = win.KeyenceForm.AvailableValidator; 19226 19227 this.setupRoots(); 19228 this.restoreErrorState(); 19229 19230 // Register events if dialog buttons are already in the DOM (applies to all roots) 19231 this.attachDialogButtonEvents(); 19232 19233 // Start MutationObserver only once on the first init() call 19234 if (!MultiFactorAuthentication._observer) { 19235 MultiFactorAuthentication._observer = this.observe(); 19236 } 19237 }; 19238 19239 MultiFactorAuthentication.setupRoots = function () { 19240 var self = this; 19241
19242 elements.roots.forEach(function (root) { 19243 var scope = self.getRootScope(root); 19244 var state = self.getRootState(root); 19245 var rootKey = getRootKey(root); 19246 19247 if (state.isDeleted || deletedRootKeys.has(rootKey)) { 19248 // If deleted, cancel the framework's DOM value restoration and save the state 19249 self.clearValues(scope); 19250 state.isDeleted = true; 19251 } else if (editingRootKeys.has(rootKey)) { 19252 // If a markup change occurs during editing: write back the confirmed values from before editing started and cancel the editing state 19253 var preEditValues = savedValuesByKey.get(rootKey); 19254 if (preEditValues) { 19255 if (scope.emailInput) scope.emailInput.value = preEditValues.email; 19256 if (scope.mobileNumberInput) scope.mobileNumberInput.value = preEditValues.mobileNumber; 19257 if (scope.countryId) scope.countryId.value = preEditValues.countryId; 19258 } 19259 editingRootKeys.delete(rootKey); 19260 savedValuesByKey.delete(rootKey); 19261 cancelledRootKeys.delete(rootKey); 19262 // Restore the UI to the display state before editing 19263 self.setDefaultDisplay(scope); 19264 } else if (cancelledRootKeys.has(rootKey)) { 19265 // If the framework restores unverified values to the DOM after editEndedTrigger (cancel): write back the confirmed values 19266 // Since the framework may keep injecting the same unverified value through multiple re-renders, 19267 // do not remove the key until the user takes the next action (re-edit, verification success, or deletion) 19268 var cancelledValues = savedValuesByKey.get(rootKey); 19269 if (cancelledValues) { 19270 if (scope.emailInput) scope.emailInput.value = cancelledValues.email; 19271 if (scope.mobileNumberInput) scope.mobileNumberInput.value = cancelledValues.mobileNumber; 19272 if (scope.countryId) scope.countryId.value = cancelledValues.countryId; 19273 } 19274 } 19275 19276 self.saveCurrentValues(root, scope); 19277 self.saveConfirmedValues(root, scope); 19278 self.disableInputs(scope); 19279 self.initCheckSMSCodeValidButton(scope); 19280 self.initDeleteDialogTrigger(scope); 19281 19282 if (!attachedRoots.has(root)) { 19283 attachedRoots.add(root); 19284 self.attachEvents(root, scope); 19285 } 19286 }); 19287 19288 self.onFocusResetActiveNoteTextHideFlag(); 19289 }; 19290 19291 /** 19292 * Restores the UI state for elements that have validation errors on init. 19293 * - If a root element (.js-controlVerificationTargetValue) has is-error, 19294 * click its editTrigger to re-enter editing mode. 19295 * - If the phone number verification code div (#suz_div_verificationCode) has is-error, 19296 * show the div and enable the verification code input. 19297 * - If the email verification code div (#suz_div_verificationEmailCode) has is-error, 19298 * show the div and enable the verification code input. 19299 */ 19300 MultiFactorAuthentication.restoreErrorState = function () { 19301 var self = this; 19302 19303 // Click editTrigger for any root that has an error state 19304 elements.roots.forEach(function (root) { 19305 if (root.classList.contains(classNames.isError)) { 19306 var editTrigger = root.querySelector('button.' + classNames.editTrigger); 19307 self.initialErrorItemRootArray.push(root); 19308 if (editTrigger) { 19309 self.initialClickedEditButtonArray.push(editTrigger); 19310 editTrigger.click(); 19311 } 19312 } 19313 }); 19314 19315 // For each verification code div with is-error: 19316 // show the div, enable the input, click editTrigger if not already clicked, attach events, and update the submit button state 19317 [idNames.verificationCodeDiv, idNames.verificationEmailCodeDiv].forEach(function (divId) { 19318 var div = doc.getElementById(divId); 19319 if (!div || !div.classList.contains(classNames.isError)) { 19320 return; 19321 } 19322 19323 div.classList.remove(classNames.isHide); 19324 19325 var input = div.querySelector('input.' + classNames.checkSMSCodeValidTarget); 19326 if (input) { 19327 input.removeAttribute('disabled'); 19328 } 19329 19330 // Find the root whose scope is associated with this div, then attach events
19331 elements.roots.forEach(function (root) { 19332 var scope = self.getRootScope(root); 19333 if (scope.verificationCodeDiv !== div) { 19334 return; 19335 } 19336 // Click editTrigger if the root itself does not have is-error (already handled above) 19337 if (!root.classList.contains(classNames.isError)) { 19338 var editTrigger = root.querySelector('button.' + classNames.editTrigger); 19339 if (editTrigger) { 19340 self.initialClickedEditButtonArray.push(editTrigger); 19341 editTrigger.click(); 19342 } 19343 } 19344 // Attach input/click events to checkSMSCodeValidTarget and checkSMSCodeValidTrigger 19345 // (attachSMSCodeValidEvents uses handler tracking to prevent duplicate registration) 19346 self.attachSMSCodeValidEvents(root, scope); 19347 // Reflect the current input value in the submit button's disabled state 19348 if (scope.checkSMSCodeValidTrigger && scope.checkSMSCodeValidTarget) { 19349 scope.checkSMSCodeValidTrigger.disabled = scope.checkSMSCodeValidTarget.value.length === 0; 19350 } 19351 }); 19352 }); 19353 }; 19354 19355 MultiFactorAuthentication.resolveDialogFromTrigger = function (trigger) { 19356 var dialogId = trigger.getAttribute('aria-controls') || ''; 19357 var href = trigger.href || ''; 19358 19359 if (!dialogId && href.indexOf('#') === 0) { 19360 dialogId = href.replace('#', ''); 19361 } 19362 19363 return dialogId ? doc.getElementById(dialogId) : null; 19364 }; 19365 19366 MultiFactorAuthentication.getRootScope = function (root) { 19367 var deleteDialogTrigger = root.querySelector('.' + classNames.deleteDialogTrigger); 19368 var dialog = null; 19369 var verificationCodeDiv = null; 19370 19371 if (!deleteDialogTrigger) { 19372 deleteDialogTrigger = root.querySelector(selectors.deleteDialogTriggerFallback); 19373 } 19374 19375 if (deleteDialogTrigger) { 19376 dialog = MultiFactorAuthentication.resolveDialogFromTrigger(deleteDialogTrigger); 19377 } 19378 19379 if (!dialog) { 19380 dialog = root.querySelector('dialog'); 19381 } 19382 19383 if (root.querySelector('.' + classNames.email)) { 19384 verificationCodeDiv = doc.getElementById(idNames.verificationEmailCodeDiv); 19385 } else { 19386 verificationCodeDiv = doc.getElementById(idNames.verificationCodeDiv); 19387 } 19388 19389 return { 19390 root: root, 19391 emailInput: root.querySelector('.' + classNames.email), 19392 mobileNumberInput: root.querySelector('.' + classNames.mobileNumber), 19393 countryId: root.querySelector('.' + classNames.countryId), 19394 sendCode: root.querySelector('.' + classNames.sendCode), 19395 sendCodeTrigger: root.querySelector('.' + classNames.sendCodeTrigger), 19396 edit: root.querySelector('.' + classNames.edit), 19397 editTrigger: root.querySelector('.' + classNames.editTrigger), 19398 deleteDialog: root.querySelector('.' + classNames.deleteDialog), 19399 deleteDialogTrigger: deleteDialogTrigger, 19400 editEnded: root.querySelector('.' + classNames.editEnded), 19401 editEndedTrigger: root.querySelector('.' + classNames.editEndedTrigger), 19402 dialog: dialog, 19403 dialogCloseButton: dialog?.querySelector('.' + classNames.dialogCloseButton), 19404 dialogCancelButton: dialog?.querySelector(selectors.dialogCancelButton), 19405 dialogDeleteButton: dialog?.querySelector(selectors.dialogDeleteButton), 19406 verificationCodeDiv: verificationCodeDiv, 19407 checkSMSCodeValidTrigger: verificationCodeDiv?.querySelector('.' + classNames.checkSMSCodeValidTrigger), 19408 checkSMSCodeValidTarget: verificationCodeDiv?.querySelector('.' + classNames.checkSMSCodeValidTarget), 19409 checkSMSCodeValidLoadingIndicator: verificationCodeDiv?.querySelector('.' + classNames.checkSMSCodeValidLoadingIndicator), 19410 }; 19411 }; 19412 19413 MultiFactorAuthentication.getRootState = function (root) { 19414 if (!rootStates.has(root)) { 19415 rootStates.set(root, { 19416 savedValues: { 19417 email: '', 19418 mobileNumber: '', 19419 countryId: '' 19420 }, 19421 confirmedValues: { 19422 email: '', 19423 mobileNumber: '' 19424 }, 19425 isVerified: false, 19426 isDeleted: false 19427 }); 19428 } 19429 19430 return rootStates.get(root); 19431 }; 19432 19433 MultiFactorAuthentication.saveCurrentValues = function (root, scope) { 19434 var state = this.getRootState(root); 19435 19436 state.savedValues.email = scope.emailInput?.value ?? ''; 19437 state.savedValues.mobileNumber = scope.mobileNumberInput?.value ?? ''; 19438 state.savedValues.countryId = scope.countryId?.value ?? ''; 19439 }; 19440 19441 MultiFactorAuthentication.saveConfirmedValues = function (root, scope) { 19442 var state = this.getRootState(root); 19443 state.confirmedValues.email = scope.emailInput?.value ?? ''; 19444 state.confirmedValues.mobileNumber = scope.mobileNumberInput?.value ?? ''; 19445 }; 19446 19447 MultiFactorAuthentication.disableInputs = function (scope) { 19448 if (scope.emailInput) { 19449 scope.emailInput.disabled = true; 19450 } 19451 if (scope.mobileNumberInput) { 19452 scope.mobileNumberInput.disabled = true; 19453 } 19454 if (scope.countryId) { 19455 scope.countryId.disabled = true; 19456 } 19457 }; 19458 19459 MultiFactorAuthentication.enableInputs = function (scope) { 19460 if (scope.emailInput) { 19461 scope.emailInput.disabled = false; 19462 } 19463 if (scope.mobileNumberInput) { 19464 scope.mobileNumberInput.disabled = false; 19465 } 19466 if (scope.countryId) { 19467 scope.countryId.disabled = false; 19468 } 19469 }; 19470 19471 MultiFactorAuthentication.enableAllInputs = function () { 19472 var self = this;
19473 elements.roots.forEach(function (root) { 19474 var scope = self.getRootScope(root); 19475 self.enableInputs(scope); 19476 }); 19477 }; 19478 19479 MultiFactorAuthentication.attachEvents = function (root, scope) { 19480 var self = this; 19481 19482 if (scope.editTrigger) { 19483 scope.editTrigger.addEventListener('click', function (event) { 19484 self.onClickEditTrigger(event, root, scope); 19485 }); 19486 } 19487 19488 if (scope.editEndedTrigger) { 19489 scope.editEndedTrigger.addEventListener('click', function (event) { 19490 self.onClickEditEndedTrigger(event, root, scope); 19491 }); 19492 } 19493 19494 if (scope.sendCodeTrigger) { 19495 scope.sendCodeTrigger.addEventListener('click', function (event) { 19496 self.onClickSendCodeTrigger(event, root, scope); 19497 }); 19498 } 19499 19500 if (scope.deleteDialogTrigger) { 19501 scope.deleteDialogTrigger.addEventListener('click', function (event) { 19502 self.onClickDeleteDialogTrigger(event, root, scope); 19503 }); 19504 } 19505 19506 self.attachSMSCodeValidEvents(root, scope); 19507 19508 var attachVerifiedBlurEvent = function (input, savedValueKey) { 19509 input.addEventListener('blur', function () { 19510 var state = self.getRootState(root); 19511 if (state.isVerified && input.value !== state.savedValues[savedValueKey]) { 19512 root.querySelectorAll('.' + classNames.formSuccessTextOuter).forEach(function (el) { 19513 el.classList.add(classNames.isHide); 19514 }); 19515 } 19516 }); 19517 }; 19518 19519 if (scope.emailInput) { 19520 scope.emailInput.addEventListener('change', function () { 19521 self.updateDeleteDialogTriggerState(scope); 19522 }); 19523 attachVerifiedBlurEvent(scope.emailInput, 'email'); 19524 } 19525 19526 if (scope.mobileNumberInput) { 19527 scope.mobileNumberInput.addEventListener('change', function () { 19528 self.updateDeleteDialogTriggerState(scope); 19529 }); 19530 attachVerifiedBlurEvent(scope.mobileNumberInput, 'mobileNumber'); 19531 } 19532 }; 19533 19534 /** 19535 * Attaches input and click events to the SMS/email verification code input and submit button. 19536 * Stores handlers on the element to prevent duplicate attachment across multiple calls 19537 * (e.g., from attachEvents during init and from restoreErrorState on error page reload). 19538 */ 19539 MultiFactorAuthentication.attachSMSCodeValidEvents = function (root, scope) { 19540 var self = this; 19541 19542 if (scope.checkSMSCodeValidTarget && !scope.checkSMSCodeValidTarget._mfaInputHandler) { 19543 scope.checkSMSCodeValidTarget._mfaInputHandler = function () { 19544 self.onInputCheckSMSCodeValid(scope); 19545 }; 19546 scope.checkSMSCodeValidTarget.addEventListener('input', scope.checkSMSCodeValidTarget._mfaInputHandler); 19547 } 19548 19549 if (scope.checkSMSCodeValidTarget && !scope.checkSMSCodeValidTarget._mfaFocusHandler) { 19550 scope.checkSMSCodeValidTarget._mfaFocusHandler = function () { 19551 self.onFocusRemoveRootNoteText(scope, root); 19552 }; 19553 scope.checkSMSCodeValidTarget.addEventListener('focus', scope.checkSMSCodeValidTarget._mfaFocusHandler); 19554 } 19555 19556 if (scope.checkSMSCodeValidTrigger && !scope.checkSMSCodeValidTrigger._mfaClickHandler) { 19557 scope.checkSMSCodeValidTrigger._mfaClickHandler = function (event) { 19558 self.onClickCheckSMSCodeValid(event, root, scope); 19559 }; 19560 scope.checkSMSCodeValidTrigger.addEventListener('click', scope.checkSMSCodeValidTrigger._mfaClickHandler); 19561 } 19562 }; 19563 19564 MultiFactorAuthentication.initCheckSMSCodeValidButton = function (scope) { 19565 if (!scope.checkSMSCodeValidTrigger) { 19566 return; 19567 } 19568 scope.checkSMSCodeValidTrigger.disabled = true; 19569 }; 19570 19571 MultiFactorAuthentication.onInputCheckSMSCodeValid = function (scope) { 19572 if (!scope.checkSMSCodeValidTrigger || !scope.checkSMSCodeValidTarget) { 19573 return; 19574 } 19575 scope.checkSMSCodeValidTrigger.disabled = scope.checkSMSCodeValidTarget.value.length === 0; 19576 }; 19577 19578 MultiFactorAuthentication.onFocusRemoveRootNoteText = function (scope, root) { 19579 if (!scope.checkSMSCodeValidTrigger || 19580 !scope.checkSMSCodeValidTarget || 19581 !root 19582 ) { 19583 return; 19584 } 19585 19586 if (root.classList.contains(AvailableValidator?.targetClass.status)) { 19587 AvailableValidator.clearNoteText(root); 19588 } 19589 }; 19590 19591 MultiFactorAuthentication.onClickCheckSMSCodeValid = function (event, root, scope) { 19592 var self = this; 19593 var MultiStepForm = win.MultiStepForm; 19594 var verificationCode = scope.checkSMSCodeValidTarget?.value ?? ''; 19595 var inputName = scope.checkSMSCodeValidTarget?.name ?? ''; 19596 19597 if (!verificationCode) { 19598 return; 19599 } 19600 19601 if (scope.checkSMSCodeValidTrigger) { 19602 scope.checkSMSCodeValidTrigger.disabled = true; 19603 } 19604 if (scope.checkSMSCodeValidLoadingIndicator) { 19605 scope.checkSMSCodeValidLoadingIndicator.classList.remove(classNames.isHide); 19606 } 19607 19608 var restoreUI = function () { 19609 if (scope.checkSMSCodeValidTrigger) { 19610 scope.checkSMSCodeValidTrigger.disabled = false; 19611 } 19612 if (scope.checkSMSCodeValidLoadingIndicator) { 19613 scope.checkSMSCodeValidLoadingIndicator.classList.add(classNames.isHide); 19614 } 19615 }; 19616 19617 if (scope.emailInput) { 19618 var emailAddress = scope.emailInput.value; 19619 19620 self.checkVerificationCodeForEmail(emailAddress, verificationCode).done(function (data) { 19621 if (data?.message) { 19622 if (MultiStepForm?.insertErrorText) { 19623 MultiStepForm.insertErrorText(inputName, data.message); 19624 } 19625 } else { 19626 if (MultiStepForm?.clearInputError) { 19627 MultiStepForm.clearInputError(inputName, true); 19628 } 19629 self.onVerificationSuccess(root, scope); 19630 } 19631 }).fail(function (jqXHR, textStatus) { 19632 if (jqXHR && jqXHR.status !== 200) { 19633 if (MultiStepForm?.insertErrorText) { 19634 MultiStepForm.insertErrorText(inputName, kpi_translation.ServerConnectErrorMessage); 19635 } 19636 return; 19637 } 19638 if (MultiStepForm?.asyncErrorHundler) { 19639 MultiStepForm.asyncErrorHundler(jqXHR?.status ?? 0, textStatus); 19640 } 19641 }).always(function () { 19642 restoreUI(); 19643 19644 if (root.classList.contains(AvailableValidator?.targetClass.status)) { 19645 AvailableValidator.clearNoteText(root); 19646 } 19647 19648 self.activeNoteTextHideFlag = true; 19649 }); 19650 } else if (scope.mobileNumberInput && scope.countryId) { 19651 var mobileNumber = scope.mobileNumberInput.value; 19652 var mobileCountryId = scope.countryId.value; 19653 19654 self.checkVerificationCodeForPhone(mobileCountryId, mobileNumber, verificationCode).done(function (data) { 19655 if (data?.message) { 19656 if (MultiStepForm?.insertErrorText) { 19657 MultiStepForm.insertErrorText(inputName, data.message); 19658 } 19659 } else { 19660 if (MultiStepForm?.clearInputError) { 19661 MultiStepForm.clearInputError(inputName, true); 19662 } 19663 self.onVerificationSuccess(root, scope); 19664 } 19665 }).fail(function (jqXHR, textStatus) { 19666 if (jqXHR && jqXHR.status !== 200) { 19667 if (MultiStepForm?.insertErrorText) { 19668 MultiStepForm.insertErrorText(inputName, kpi_translation.ServerConnectErrorMessage); 19669 } 19670 return; 19671 } 19672 if (MultiStepForm?.asyncErrorHundler) { 19673 MultiStepForm.asyncErrorHundler(jqXHR?.status ?? 0, textStatus); 19674 } 19675 }).always(function () { 19676 restoreUI(); 19677 19678 if (root.classList.contains(AvailableValidator?.targetClass.status)) { 19679 AvailableValidator.clearNoteText(root); 19680 } 19681 19682 self.activeNoteTextHideFlag = true; 19683 }); 19684 } 19685 }; 19686 19687 MultiFactorAuthentication.onVerificationSuccess = function (root, scope) { 19688 var state = this.getRootState(root); 19689 state.isVerified = true; 19690 state.isDeleted = false; 19691 deletedRootKeys.delete(getRootKey(root)); 19692 editingRootKeys.delete(getRootKey(root));
19693 cancelledRootKeys.delete(getRootKey(root)); 19694 savedValuesByKey.delete(getRootKey(root)); 19695 root.querySelectorAll('.' + classNames.formSuccessTextOuter).forEach(function (el) { 19696 el.classList.remove(classNames.isHide); 19697 }); 19698 this.saveConfirmedValues(root, scope); 19699 this.disableInputs(scope); 19700 this.setDefaultDisplay(scope); 19701 this.updateDeleteDialogTriggerState(); 19702 if (MultiStepForm.isEditProfileForm()) { 19703 this.removeSubmitTriggerDisabled(); 19704 } 19705 }; 19706 19707 MultiFactorAuthentication.initDeleteDialogTrigger = function (scope) { 19708 this.updateDeleteDialogTriggerState(scope); 19709 }; 19710 19711 MultiFactorAuthentication.updateDeleteDialogTriggerState = function () { 19712 var self = this; 19713 19714 // Check the values of all scopes 19715 var allScopeData = []; 19716 elements.roots.forEach(function (root) { 19717 var scope = self.getRootScope(root); 19718 var state = self.getRootState(root); 19719 var emailValue = scope.emailInput?.value ?? ''; 19720 var mobileValue = scope.mobileNumberInput?.value ?? ''; 19721 var hasValue = emailValue.length > 0 || mobileValue.length > 0; 19722 19723 // Consider a scope confirmed only if the current input value matches confirmedValues (the correct registered or verified value) 19724 var isConfirmed = hasValue && 19725 emailValue === state.confirmedValues.email && 19726 mobileValue === state.confirmedValues.mobileNumber; 19727 19728 allScopeData.push({ 19729 scope: scope, 19730 hasValue: hasValue, 19731 isConfirmed: isConfirmed 19732 }); 19733 }); 19734 19735 // Number of confirmed scopes 19736 var confirmedScopesCount = allScopeData.filter(function (item) { 19737 return item.isConfirmed; 19738 }).length; 19739 19740 // Whether any scope has a value 19741 var anyHasValue = allScopeData.some(function (item) { 19742 return item.hasValue; 19743 }); 19744 19745 // Always disable the delete button when there is only one root 19746 var isSingleRoot = allScopeData.length <= 1; 19747 19748 // Enable only when all scopes are confirmed and at least one has a value (disable otherwise) 19749 allScopeData.forEach(function (item) { 19750 if (!item.scope.deleteDialogTrigger) { 19751 return; 19752 } 19753 var shouldDisable = isSingleRoot || confirmedScopesCount !== allScopeData.length || !anyHasValue; 19754 item.scope.deleteDialogTrigger.disabled = shouldDisable; 19755 item.scope.deleteDialogTrigger.setAttribute('aria-disabled', shouldDisable ? 'true' : 'false'); 19756 }); 19757 }; 19758 19759 MultiFactorAuthentication.createVerificationCodeForPhone = function (mobileCountryId, mobileNumber) { 19760 var deferred = new $.Deferred(); 19761 19762 if (typeof mobileCountryId !== 'string' || 19763 typeof mobileNumber !== 'string' 19764 ) { 19765 return deferred.reject(); 19766 } 19767 19768 $.ajax({
19769 url: win.suz_getCurrentDomain() + urls.createVerificationCode, 19770 data: { 19771 mobileCountryId: mobileCountryId, 19772 mobileNumber: mobileNumber 19773 }, 19774 dataType: 'jsonp', 19775 jsonp: 'callback', 19776 scriptCharset: 'UTF-8' 19777 }).done(function (data) { 19778 deferred.resolve(data); 19779 }).fail(function (jqXHR, textStatus, errorThrown) { 19780 deferred.reject(jqXHR, textStatus, errorThrown); 19781 }); 19782 19783 return deferred.promise(); 19784 }; 19785 19786 MultiFactorAuthentication.createVerificationCodeForEmail = function (emailAddress) { 19787 var deferred = new $.Deferred(); 19788 19789 if (typeof emailAddress !== 'string') { 19790 return deferred.reject(); 19791 } 19792 19793 $.ajax({ 19794 url: win.suz_getCurrentDomain() + urls.createVerificationCodeForEmail, 19795 data: { 19796 emailAddress: emailAddress 19797 }, 19798 dataType: 'jsonp', 19799 jsonp: 'callback', 19800 scriptCharset: 'UTF-8' 19801 }).done(function (data) { 19802 deferred.resolve(data); 19803 }).fail(function (jqXHR, textStatus, errorThrown) { 19804 deferred.reject(jqXHR, textStatus, errorThrown); 19805 }); 19806 19807 return deferred.promise(); 19808 }; 19809 19810 MultiFactorAuthentication.checkVerificationCodeForPhone = function (mobileCountryId, mobileNumber, verificationCode) { 19811 var deferred = new $.Deferred(); 19812 19813 if (typeof mobileCountryId !== 'string' || 19814 typeof mobileNumber !== 'string' || 19815 typeof verificationCode !== 'string' 19816 ) { 19817 return deferred.reject(); 19818 } 19819 19820 $.ajax({
19821 url: win.suz_getCurrentDomain() + urls.checkVerificationCode, 19822 data: { 19823 mobileCountryId: mobileCountryId, 19824 mobileNumber: mobileNumber, 19825 verificationCode: verificationCode 19826 }, 19827 dataType: 'jsonp', 19828 jsonp: 'callback', 19829 scriptCharset: 'UTF-8' 19830 }).done(function (data) { 19831 deferred.resolve(data); 19832 }).fail(function (jqXHR, textStatus, errorThrown) { 19833 deferred.reject(jqXHR, textStatus, errorThrown); 19834 }); 19835 19836 return deferred.promise(); 19837 }; 19838 19839 MultiFactorAuthentication.checkVerificationCodeForEmail = function (emailAddress, verificationCode) { 19840 var deferred = new $.Deferred(); 19841 19842 if (typeof emailAddress !== 'string' || 19843 typeof verificationCode !== 'string' 19844 ) { 19845 return deferred.reject(); 19846 } 19847 19848 $.ajax({
19849 url: win.suz_getCurrentDomain() + urls.checkVerificationCodeForEmail, 19850 data: { 19851 emailAddress: emailAddress, 19852 verificationCode: verificationCode 19853 }, 19854 dataType: 'jsonp', 19855 jsonp: 'callback', 19856 scriptCharset: 'UTF-8' 19857 }).done(function (data) { 19858 deferred.resolve(data); 19859 }).fail(function (jqXHR, textStatus, errorThrown) { 19860 deferred.reject(jqXHR, textStatus, errorThrown); 19861 }); 19862 19863 return deferred.promise(); 19864 }; 19865 19866 MultiFactorAuthentication.onClickSendCodeTrigger = function (event, root, scope) { 19867 var SMSCodeButton = win.KeyenceForm.SMSCodeButton; 19868 var AvailableValidator = win.KeyenceForm.AvailableValidator; 19869 var MultiStepForm = win.MultiStepForm; 19870 var button = event.currentTarget; 19871 var self = this; 19872 var wrapper = null; 19873 19874 // Defer SMSCodeButton UI updates until after the async response so that GTM event tracking runs first 19875 var activateSMSCodeButton = function () { 19876 // Clear any existing timer first to prevent a stale timer from mistakenly clearing the new timer 19877 if (SMSCodeButton.timeIds[button.id] && typeof SMSCodeButton.timeIds[button.id].timeId === 'number') { 19878 win.clearInterval(SMSCodeButton.timeIds[button.id].timeId); 19879 delete SMSCodeButton.timeIds[button.id]; 19880 } 19881 SMSCodeButton.disableButton(button); 19882 SMSCodeButton.replaceButtonText(button, button.getAttribute('data-resend-text'));
19883 SMSCodeButton.toggleResendCount(button, 'show'); 19884 SMSCodeButton.countResendTime(button); 19885 }; 19886 19887 if (scope.emailInput) { 19888 var emailAddress = scope.emailInput.value; 19889 self.isSendingVerificationCode = true; 19890 19891 win.suz_callRegValidator(scope.emailInput.name, emailAddress, true).done(function (result) { 19892 if (!result['message']) { 19893 self.createVerificationCodeForEmail(emailAddress).done(function (status) { 19894 if (status.message && MultiStepForm?.insertErrorText) { 19895 MultiStepForm.insertErrorText(scope.emailInput.name, status.message); 19896 } else { 19897 if (MultiStepForm?.clearInputError) { 19898 MultiStepForm.clearInputError(scope.emailInput.name, true); 19899 19900 wrapper = scope.emailInput.closest(`.${AvailableValidator?.targetClass.status}`); 19901 if (wrapper) { 19902 AvailableValidator.clearNoteText(wrapper); 19903 } 19904 } 19905 if (scope.verificationCodeDiv) { 19906 scope.verificationCodeDiv.classList.remove(classNames.isHide); 19907 } 19908 if (scope.checkSMSCodeValidTarget) { 19909 scope.checkSMSCodeValidTarget.focus(); 19910 } 19911 activateSMSCodeButton(); 19912 } 19913 }).fail(function (jqXHR, textStatus, errorThrown) { 19914 if (jqXHR && jqXHR.status !== 200) { 19915 if (MultiStepForm?.insertErrorText) { 19916 MultiStepForm.insertErrorText(scope.emailInput.name, kpi_translation.ServerConnectErrorMessage); 19917 } 19918 return; 19919 } 19920 if (MultiStepForm?.asyncErrorHundler) { 19921 MultiStepForm.asyncErrorHundler(jqXHR?.status ?? 0, textStatus); 19922 } 19923 self.isSendingVerificationCode = false; 19924 }).always(function () { 19925 if (root.classList.contains(AvailableValidator?.targetClass.status)) { 19926 AvailableValidator.clearNoteText(root); 19927 } 19928 19929 self.isSendingVerificationCode = false; 19930 self.activeNoteTextHideFlag = true; 19931 }); 19932 } else { 19933 self.isSendingVerificationCode = false; 19934 } 19935 }).fail(function () { 19936 console.error('Reg validator error'); 19937 self.isSendingVerificationCode = false; 19938 }); 19939 } else if (scope.mobileNumberInput && scope.countryId) { 19940 var mobileNumber = scope.mobileNumberInput.value; 19941 var mobileCountryId = scope.countryId.value; 19942 self.isSendingVerificationCode = true; 19943 19944 win.suz_callRegValidator(scope.mobileNumberInput.name, mobileNumber, true).done(function (result) { 19945 if (!result['message']) { 19946 self.createVerificationCodeForPhone(mobileCountryId, mobileNumber).done(function (status) { 19947 if (status.message && MultiStepForm?.insertErrorText) { 19948 if (SMSCodeButton.maxCountOver.errorFlag === status.maxCntOverFlg) { 19949 SMSCodeButton.setMaxCountOverDisabled(button, mobileNumber); 19950 } 19951 MultiStepForm.insertErrorText(scope.mobileNumberInput.name, status.message); 19952 } else { 19953 if (MultiStepForm?.clearInputError) { 19954 MultiStepForm.clearInputError(scope.mobileNumberInput.name, true); 19955 19956 wrapper = scope.mobileNumberInput.closest(`.${AvailableValidator?.targetClass.status}`); 19957 if (wrapper) { 19958 AvailableValidator.clearNoteText(wrapper); 19959 } 19960 } 19961 if (scope.verificationCodeDiv) { 19962 scope.verificationCodeDiv.classList.remove(classNames.isHide); 19963 } 19964 if (scope.checkSMSCodeValidTarget) { 19965 scope.checkSMSCodeValidTarget.focu
19965s(); 19966 } 19967 activateSMSCodeButton(); 19968 } 19969 }).fail(function (jqXHR, textStatus, errorThrown) { 19970 if (jqXHR && jqXHR.status !== 200) { 19971 if (MultiStepForm?.insertErrorText) { 19972 MultiStepForm.insertErrorText(scope.mobileNumberInput.name, kpi_translation.ServerConnectErrorMessage); 19973 } 19974 return; 19975 } 19976 if (MultiStepForm?.asyncErrorHundler) { 19977 MultiStepForm.asyncErrorHundler(jqXHR?.status ?? 0, textStatus); 19978 } 19979 }).always(function () { 19980 if (root.classList.contains(AvailableValidator?.targetClass.status)) { 19981 AvailableValidator.clearNoteText(root); 19982 } 19983 19984 self.isSendingVerificationCode = false; 19985 self.activeNoteTextHideFlag = true; 19986 }); 19987 } else { 19988 self.isSendingVerificationCode = false; 19989 } 19990 }).fail(function () { 19991 console.error('Reg validator error'); 19992 self.isSendingVerificationCode = false; 19993 }); 19994 } 19995 }; 19996 19997 MultiFactorAuthentication.onClickEditTrigger = function (event, root, scope) { 19998 var trigger = event.currentTarget; 19999 var autoClickTriggerIndex = 0; 20000 var targetField = scope.emailInput ? scope.emailInput : scope.mobileNumberInput; 20001 var errorFieldWrapper = null; 20002 20003 event.preventDefault(); 20004 this.saveCurrentValues(root, scope); 20005 20006 // Persistently store the confirmed values at the time editing starts with a string key (to restore after DOM replacement) 20007 var rootKey = getRootKey(root); 20008 var state = this.getRootState(root); 20009 editingRootKeys.add(rootKey); 20010 cancelledRootKeys.delete(rootKey); // Clear the cancel-pending state when re-editing begins 20011 savedValuesByKey.set(rootKey, { 20012 email: state.savedValues.email, 20013 mobileNumber: state.savedValues.mobileNumber, 20014 countryId: state.savedValues.countryId 20015 }); 20016 20017 this.enableInputs(scope); 20018 20019 if (scope.deleteDialog) { 20020 scope.deleteDialog.classList.add(classNames.isHide); 20021 } 20022 if (scope.editEnded) { 20023 scope.editEnded.classList.remove(classNames.isHide); 20024 } 20025 if (scope.edit) { 20026 scope.edit.classList.add(classNames.isHide); 20027 } 20028 if (scope.sendCode) { 20029 scope.sendCode.classList.remove(classNames.isHide); 20030 if (scope.sendCodeTrigger) { 20031 var SMSCodeButton = win.KeyenceForm.SMSCodeButton; 20032 var isCountingDown = SMSCodeButton?.timeIds?.[scope.sendCodeTrigger.id]; 20033 if (!isCountingDown) { 20034 scope.sendCodeTrigger.removeAttribute('disabled'); 20035 scope.sendCodeTrigger.setAttribute('aria-disabled', 'false'); 20036 } 20037 } 20038 } 20039 20040 if (MultiStepForm.isEditProfileForm()) { 20041 this.addSubmitTriggerDisabled(); 20042 } 20043 20044 if (this.initialClickedEditButtonArray.length) { 20045 autoClickTriggerIndex = this.initialClickedEditButtonArray.indexOf(trigger); 20046 20047 if (autoClickTriggerIndex !== -1) { 20048 this.initialClickedEditButtonArray.splice(autoClickTriggerIndex, 1); 20049 20050 return; 20051 } 20052 } 20053 20054 if (this.initialErrorItemRootArray.length) { 20055 errorFieldWrapper = targetField.closest(`.${classNames.root}`); 20056 20057 if (this.isMatchedInitialErrorField(errorFieldWrapper)) { 20058 this.removeInitialErrorArray(errorFieldWrapper); 20059 } 20060 } 20061 20062 if (scope.emailInput) { 20063 scope.emailInput.focus(); 20064 } else if (scope.mobileNumberInput) { 20065 scope.mobileNumberInput.focus(); 20066 } 20067 }; 20068 20069 MultiFactorAuthentication.restoreValues = function (root, scope) { 20070 var state = this.getRootState(root); 20071 20072 if (scope.emailInput) { 20073 scope.emailInput.value = state.savedValues.email; 20074 } 20075 if (scope.mobileNumberInput) { 20076 scope.mobileNumberInput.value = state.savedValues.mobileNumber; 20077 } 20078 if (scope.countryId) { 20079 scope.countryId.value = state.savedValues.countryId; 20080 } 20081 }; 20082 20083 MultiFactorAuthentication.clearValues = function (scope) { 20084 if (scope.emailInput) { 20085 scope.emailInput.value = ''; 20086 } 20087 if (scope.mobileNumberInput) { 20088 scope.mobileNumberInput.value = ''; 20089 } 20090 }; 20091 20092 MultiFactorAuthentication.setDefaultDisplay = function (scope) { 20093 if (scope.edit) { 20094 scope.edit.classList.remove(classNames.isHide); 20095 } 20096 if (scope.deleteDialog) { 20097 scope.deleteDialog.classList.remove(classNames.isHide); 20098 } 20099 if (scope.editEnded) { 20100 scope.editEnded.classList.add(classNames.isHide); 20101 } 20102 if (scope.sendCode) { 20103 scope.sendCode.classList.add(classNames.isHide); 20104 } 20105 if (scope.verificationCodeDiv) { 20106 scope.verificationCodeDiv.classList.add(classNames.isHide); 20107 } 20108 }; 20109 20110 MultiFactorAuthentication.closeDialog = function (scope, event) { 20111 if (scope.dialogCloseButton) { 20112 scope.dialogCloseButton.click(); 20113 20114 return; 20115 } 20116 20117 if (scope.dialog && typeof scope.dialog.close === 'function') { 20118 scope.dialog.close(); 20119 20120 return; 20121 } 20122 20123 // prd-modalDialog pattern: traverse up from the clicked element to .prd-modalDialog-container and click .prd-modalDialog-closeButton 20124 var clickedElement = event?.currentTarget ?? null; 20125 var modalContainer = clickedElement ? clickedElement.closest('.prd-modalDialog-container') : null; 20126 var prdCloseButton = modalContainer ? modalContainer.querySelector('.prd-modalDialog-closeButton') : null; 20127 20128 if (prdCloseButton) { 20129 prdCloseButton.click(); 20130 } 20131 }; 20132 20133 MultiFactorAuthentication.onClickEditEndedTrigger = function (event, root, scope) { 20134 var self = this; 20135 var state = this.getRootState(root); 20136 var rootKey = getRootKey(root); 20137 var targetField = scope.emailInput ? scope.emailInput : scope.mobileNumberInput; 20138 event.preventDefault(); 20139 editingRootKeys.delete(rootKey);
20140 // Do not delete savedValuesByKey here: 20141 // It is managed via cancelledRootKeys so that setupRoots() can write back 20142 // the confirmed values if the framework re-renders the DOM and restores unverified values 20143 cancelledRootKeys.add(rootKey); 20144 20145 this.restoreValues(root, scope); 20146 20147 win.suz_callRegValidator(targetField.name, targetField.value).done(function (result) { 20148 if (root.classList.contains(classNames.isError)) { 20149 MultiStepForm?.clearInputError(targetField?.name, true); 20150 } else if (root.classList.contains(AvailableValidator?.targetClass.status)) { 20151 AvailableValidator.clearNoteText(root); 20152 } 20153 // Restore the value to prevent it from being overwritten by the Abstract API 20154 self.restoreValues(root, scope); 20155 self.disableInputs(scope); 20156 self.setDefaultDisplay(scope); 20157 if (state.isVerified) { 20158 root.querySelectorAll('.' + classNames.formSuccessTextOuter).forEach(function (el) { 20159 el.classList.remove(classNames.isHide); 20160 }); 20161 } 20162 self.updateDeleteDialogTriggerState(); 20163 if (MultiStepForm?.isEditProfileForm()) { 20164 self.removeSubmitTriggerDisabled(); 20165 } 20166 self.deleteVerificationErrorCode(scope); 20167 }).fail(function () { 20168 console.error('Reg validator error'); 20169 }); 20170 }; 20171 20172 MultiFactorAuthentication.onClickDeleteDialogTrigger = function (event, root, scope) { 20173 // Do not call event.preventDefault() because the Stimulus modal-dialog-opener controller 20174 // also opens the dialog on the same click event. 20175 // Only prevent Stimulus from processing when aria-disabled is set. 20176 if (scope.deleteDialogTrigger?.getAttribute('aria-disabled') === 'true') { 20177 event.preventDefault(); 20178 return; 20179 } 20180 20181 this.saveCurrentValues(root, scope); 20182 20183 if (scope.verificationCodeDiv) { 20184 scope.verificationCodeDiv.classList.add(classNames.isHide); 20185 } 20186 20187 // Keep DialogOpenEvent as it is required on other pages (no-op on this page) 20188 const open = new CustomEvent('DialogOpenEvent', { 20189 detail: { 20190 href: '#js-verificationTargetValue-dialogEmailValueDelete', 20191 }, 20192 }); 20193 window.dispatchEvent(open); 20194 20195 // On this page, the Stimulus modal-dialog-opener controller responds to the same click event 20196 // and generates the dialog DOM from a template. 20197 // Since the Stimulus handler runs after this handler, 20198 // defer event registration on the dialog buttons to the next task. 20199 // The global MutationObserver inside observe() also serves as an additional fallback. 20200 var self = this; 20201 setTimeout(function () { 20202 self.attachDialogButtonEvents(root, scope); 20203 20204 // Remove dialogs that remain with aria-hidden="true" after being closed via the Esc key. 20205 // Target cancel buttons for both email and mobileNumber 20206 // so that whichever dialog is opened, the one left from the previous Esc close can be removed. 20207 // Only do this when there are two or more buttons with the same ID (if only one exists, it is the first open, so leave it alone) 20208 var allCancelBtns = doc.querySelectorAll( 20209 '#js-controlVerificationTargetValue-emailCancel, ' + 20210 '#js-controlVerificationTargetValue-mobileNumberCancel' 20211 ); 20212 if (allCancelBtns.length >= 2) { 20213 for (var i = 0; i < allCancelBtns.length; i++) { 20214 var dialog = allCancelBtns[i].closest('.prd-modalDialog'); 20215 if (dialog && dialog.getAttribute('aria-hidden') === 'true') { 20216 dialog.remove(); 20217 break; 20218 } 20219 } 20220 } 20221 }, 0); 20222 }; 20223 20224 MultiFactorAuthentication.attachDialogButtonEvents = function (root, scope) { 20225 var self = this; 20226 20227 // If root is not specified, execute for all roots (used when called from init()) 20228 if (!root) {
20229 elements.roots.forEach(function (r) { 20230 var s = self.getRootScope(r); 20231 self.attachDialogButtonEvents(r, s); 20232 }); 20233 return; 20234 } 20235 20236 // Determine the unique button ID based on the root type (email / mobileNumber) 20237 // and retrieve only the correct button directly via doc.getElementById. 20238 var isEmailRoot = !!root.querySelector('.' + classNames.email); 20239 var cancelButtonId = isEmailRoot 20240 ? 'js-controlVerificationTargetValue-emailCancel' 20241 : 'js-controlVerificationTargetValue-mobileNumberCancel'; 20242 var deleteButtonId = isEmailRoot 20243 ? 'js-controlVerificationTargetValue-emailDelete' 20244 : 'js-controlVerificationTargetValue-mobileNumberDelete'; 20245 20246 // When the dialog is closed with the Esc key, DOM elements with aria-hidden="true" may remain, 20247 // resulting in multiple buttons with the same ID when the dialog is opened again. 20248 // Since getElementById returns the first (old) element, use querySelectorAll 20249 // to get the last (newest = visible) element. 20250 var cancelButtons = doc.querySelectorAll('#' + cancelButtonId); 20251 var dialogCancelButton = cancelButtons.length ? cancelButtons[cancelButtons.length - 1] : null; 20252 var deleteButtons = doc.querySelectorAll('#' + deleteButtonId); 20253 var dialogDeleteButton = deleteButtons.length ? deleteButtons[deleteButtons.length - 1] : null; 20254 20255 // Re-attach events every time using remove â add. 20256 // If the node has been replaced due to DOM reconstruction, the old handler no longer exists, 20257 // so addEventListener runs directly. For the same node, remove first before re-registering. 20258 if (dialogCancelButton) { 20259 if (dialogCancelButton._mfaCancelHandler) { 20260 dialogCancelButton.removeEventListener('click', dialogCancelButton._mfaCancelHandler); 20261 } 20262 dialogCancelButton._mfaCancelHandler = function (event) { 20263 self.onClickDialogCancel(event, root, scope); 20264 }; 20265 dialogCancelButton.addEventListener('click', dialogCancelButton._mfaCancelHandler); 20266 } 20267 20268 if (dialogDeleteButton) { 20269 if (dialogDeleteButton._mfaDeleteHandler) { 20270 dialogDeleteButton.removeEventListener('click', dialogDeleteButton._mfaDeleteHandler); 20271 } 20272 dialogDeleteButton._mfaDeleteHandler = function (event) { 20273 self.onClickDialogDelete(event, root, scope); 20274 }; 20275 dialogDeleteButton.addEventListener('click', dialogDeleteButton._mfaDeleteHandler); 20276 } 20277 }; 20278 20279 MultiFactorAuthentication.onClickDialogCancel = function (event, root, scope) { 20280 event.preventDefault(); 20281 this.restoreValues(root, scope); 20282 this.disableInputs(scope); 20283 this.setDefaultDisplay(scope); 20284 this.closeDialog(scope, event); 20285 this.updateDeleteDialogTriggerState(scope); 20286 }; 20287 20288 MultiFactorAuthentication.onClickDialogDelete = function (event, root, scope) { 20289 var state = this.getRootState(root); 20290 event.preventDefault(); 20291 this.clearValues(scope); 20292 this.disableInputs(scope); 20293 this.setDefaultDisplay(scope); 20294 this.saveCurrentValues(root, scope); 20295 this.saveConfirmedValues(root, scope); 20296 this.closeDialog(scope, event); 20297 this.updateDeleteDialogTriggerState(scope); 20298 state.isVerified = false; 20299 state.isDeleted = true; 20300 deletedRootKeys.add(getRootKey(root)); 20301 root.querySelectorAll('.' + classNames.formSuccessTextOuter).forEach(function (el) { 20302 el.classList.add(classNames.isHide); 20303 }); 20304 }; 20305 20306 /** 20307 * Monitors dynamic DOM changes using MutationObserver.
20308 * - When a new root element is added: re-run init() to set up the new root 20309 * - When a dialog button is newly added or replaced: re-run attachDialogButtonEvents() to 20310 * re-attach events to the new button element (duplicates are prevented by the dialogButtonsWithEvents WeakSet) 20311 * @returns {MutationObserver} 20312 */ 20313 MultiFactorAuthentication.observe = function () { 20314 var self = this; 20315 var observerTimer = null; 20316 20317 var observer = new MutationObserver(function (mutations) { 20318 var hasNewRoots = false; 20319 var hasNewDialogButtons = false; 20320 20321 mutations.forEach(function (mutation) { 20322 mutation.addedNodes.forEach(function (node) { 20323 if (node.nodeType !== 1) { 20324 return; 20325 } 20326 // Detect addition of new root elements 20327 if ( 20328 (node.classList && node.classList.contains(classNames.root)) || 20329 (node.querySelector && node.querySelector('.' + classNames.root)) 20330 ) { 20331 hasNewRoots = true; 20332 } 20333 // Detect addition or replacement of dialog buttons 20334 if ( 20335 (node.matches && ( 20336 node.matches(selectors.dialogCancelButton) || 20337 node.matches(selectors.dialogDeleteButton) 20338 )) || 20339 (node.querySelector && ( 20340 node.querySelector(selectors.dialogCancelButton) || 20341 node.querySelector(selectors.dialogDeleteButton) 20342 )) 20343 ) { 20344 hasNewDialogButtons = true; 20345 } 20346 }); 20347 }); 20348 20349 if (!hasNewRoots && !hasNewDialogButtons) { 20350 return; 20351 } 20352 20353 // Batch processing when fired consecutively within a short interval 20354 clearTimeout(observerTimer); 20355 observerTimer = setTimeout(function () { 20356 if (hasNewRoots) { 20357 // Re-initialize including the new root (duplicate registration to existing roots is prevented by the attachedRoots WeakSet) 20358 self.init(); 20359 } 20360 if (hasNewDialogButtons) { 20361 // When dialog buttons have been replaced, re-attach events for all scopes 20362 // (only new elements receive events due to the dialogButtonsWithEvents WeakSet) 20363 elements.roots.forEach(function (root) { 20364 var scope = self.getRootScope(root); 20365 self.attachDialogButtonEvents(root, scope); 20366 }); 20367 } 20368 }, 50); 20369 }); 20370 20371 observer.observe(doc.body, { 20372 childList: true, 20373 subtree: true 20374 }); 20375 20376 return observer; 20377 }; 20378 20379 MultiFactorAuthentication.getInitialInputValue = function (target) { 20380 var self = this; 20381 var inputValue = ''; 20382 20383 if (typeof target !== 'object' || !target) { 20384 return; 20385 } 20386 20387 elements.roots.forEach(function (root) { 20388 var scope = self.getRootScope(root); 20389 var state = self.getRootState(root); 20390 20391 if (scope.emailInput === target) { 20392 inputValue = state.savedValues.email; 20393 } else if (scope.mobileNumberInput === target) { 20394 inputValue = state.savedValues.mobileNumber; 20395 } 20396 }); 20397 20398 return inputValue; 20399 }; 20400 20401 MultiFactorAuthentication.isMatchedInitialErrorField = function (target) { 20402 var isInitialError = false; 20403 20404 if (typeof target !== 'object' || !target) { 20405 return false; 20406 } 20407 20408 if (this.initialErrorItemRootArray.length) { 20409 this.initialErrorItemRootArray.forEach(function (root) { 20410 if (target === root) { 20411 isInitialError = true; 20412 } 20413 }); 20414 } 20415 20416 return isInitialError; 20417 }; 20418 20419 MultiFactorAuthentication.removeInitialErrorArray = function (target) { 20420 var errorFieldWrapperIndex = 0; 20421 20422 if (typeof target !== 'object' || !target) { 20423 return; 20424 } 20425 20426 errorFieldWrapperIndex = this.initialErrorItemRootArray.indexOf(target); 20427 if (errorFieldWrapperIndex !== -1) { 20428 this.initialErrorItemRootArray.splice(errorFieldWrapperIndex, 1); 20429 } 20430 }; 20431 20432 MultiFactorAuthentication.isDisabledTarget = function (target) { 20433 var self = this; 20434 var isDisabled = false; 20435 20436 if (typeof target !== 'object' || !target) { 20437 return isDisabled; 20438 } 20439 20440 if (!elements.roots.length) { 20441 return isDisabled; 20442 } 20443
20444 elements.roots.forEach(function (root) { 20445 var scope = self.getRootScope(root); 20446 var state = self.getRootState(root); 20447 20448 if ((scope.root === target && 20449 scope.emailInput?.disabled) || 20450 (scope.root === target && 20451 scope.mobileNumberInput?.disabled) 20452 ) { 20453 isDisabled = true; 20454 } 20455 }); 20456 20457 return isDisabled; 20458 }; 20459 20460 MultiFactorAuthentication.addSubmitTriggerDisabled = function () { 20461 if (elements.editProfileSubmitButton) { 20462 elements.editProfileSubmitButton.disabled = true; 20463 } 20464 }; 20465 20466 MultiFactorAuthentication.removeSubmitTriggerDisabled = function () { 20467 var isEditing = false; 20468 20469 if (elements.editProfileSubmitButton) { 20470 elements.roots.forEach(function (root) { 20471 var rootKey = getRootKey(root); 20472 20473 if (editingRootKeys.has(rootKey)) { 20474 isEditing = true; 20475 } 20476 }); 20477 20478 if (!isEditing) { 20479 elements.editProfileSubmitButton.disabled = false; 20480 } 20481 } 20482 }; 20483 20484 MultiFactorAuthentication.onFocusResetActiveNoteTextHideFlag = function () { 20485 var self = this; 20486 var AvailableValidator = win.KeyenceForm.AvailableValidator; 20487 var availableValidatorTarget = null; 20488 20489 if (!AvailableValidator) { 20490 return; 20491 } 20492 20493 Object.values(AvailableValidator.targetClass).forEach(function (className) { 20494 if (className === 'is-unavailable') { 20495 return; 20496 } 20497 20498 availableValidatorTarget = doc.querySelector(`.${className}`); 20499 20500 if (availableValidatorTarget) { 20501 availableValidatorTarget.addEventListener('focus', function () { 20502 self.activeNoteTextHideFlag = false; 20503 }); 20504 } 20505 }); 20506 }; 20507 20508 MultiFactorAuthentication.deleteVerificationErrorCode = function (scope) { 20509 if (scope.checkSMSCodeValidTarget && 20510 !/^[0-9]+$/.test(scope.checkSMSCodeValidTarget.value) 20511 ) { 20512 scope.checkSMSCodeValidTarget.value = ''; 20513 MultiStepForm.clearInputError(scope.checkSMSCodeValidTarget.name, true); 20514 } 20515 }; 20516 20517 return MultiFactorAuthentication; 20518 })(); 20519 20520 KEYENCE.DownloadedPopup = (function () { 20521 var idNames = { 20522 cboxLoadedContent: 'cboxLoadedContent', 20523 cbox: 'colorbox', 20524 overlay: 'cboxOverlay', 20525 recommendTemplate: 'js-myKeyenceModalRecommend-template', 20526 recommendAssetListTemplate: 'js-myKeyenceModalRecommend-assetListTemplate', 20527 recommendAssetList: 'js-myKeyenceModalRecommend-assetList', 20528 }; 20529 20530 var classNames = { 20531 trigger: 'js-myKeyence-enqueteModal', 20532 headingTrigger: 'js-myKeyence-enqHeading', 20533 headingBefore: 'js-myKeyence-enqHeadingBefore', 20534 headingAfter: 'js-myKeyence-enqHeadingAfter', 20535 thumbnail: 'js-myKeyenceModalRecommend-thumbnail', 20536 assetLink: 'js-myKeyenceModalRecommend-assetLink', 20537 assetTitle: 'js-myKeyenceModalRecommend-assetTitle', 20538 isHide: 'is-hide', 20539 isOpened: 'is-opened' 20540 }; 20541 20542 var names = { 20543 mykeyenceActionForm: 'mykeyenceActionForm' 20544 }; 20545 20546 var Popup = { 20547 idNames: idNames, 20548 classNames: classNames, 20549 colorbox: null, 20550 modalType: null, 20551 messageObj: {}, 20552 recommendOpenedLimit: typeof kpi_usersettings.RecommendPopupOpenedCountLimit === 'number' ? kpi_usersettings.RecommendPopupOpenedCountLimit : 3 20553 }; 20554 20555 var cookie = { 20556 enqueteName: 'kpi_has_downloadPopupOpened', 20557 enqueteValue: 1, 20558 recommendName: 'kpi_has_downloadRecommendPopupOpened', 20559 recommendValue: 1, 20560 }; 20561 20562 var isRecommendModalOpenedOnce = false; 20563 20564 Popup.init = function () { 20565 this.addSubmitEvent(); 20566 20567 if (this.hasEnqueteError()) { 20568 Popup.modalType = 'enquete'; 20569 this.open(); 20570 } 20571 }; 20572 20573 Popup.canLaunch = function () { 20574 var enqueteOuter = document.querySelector('.' + classNames.trigger); 20575 var dlList = doc.querySelectorAll('.buttonConversion.dlLink, .prd-button.dlLink') 20576 var dlInfo = this.getDownloadInfo(); 20577 var dlAssetObjectTypeFlag = false; 20578 var catalogArray = []; 20579 20580 if (dlInfo.dlAssetObjectTypeList.indexOf('3dcad') > -1 || 20581 dlInfo.dlAssetObjectTypeList.indexOf('2dcad') > -1 || 20582 dlInfo.dlAssetObjectTypeList.indexOf('Manual') > -1 || 20583 dlInfo.dlAssetObjectTypeList.indexOf('Software') > -1) { 20584 dlAssetObjectTypeFlag = true; 20585 } 20586 20587 if ( 20588 enqueteOuter && 20589 dlList.length && 20590 (dlInfo.asseIdList && dlInfo.asseIdList.length === 1) && 20591 (dlInfo.dlAssetObjectTypeList && dlInfo.dlAssetObjectTypeList.length === 1 && dlInfo.dlAssetObjectTypeList[0] === 'Catalog') && 20592 typeof kpi_translation.MyKeyenceEnqPopupHeading === 'string' 20593 ) { 20594 Popup.modalType = 'enquete'; 20595 20596 return true; 20597 } else if ( 20598 dlList.length && dlInfo.asseIdList && 20599 (dlInfo.dlAssetObjectTypeList && dlAssetObjectTypeFlag === true) 20600 ) { 20601 dlInfo.dlAssetObjectTypeList.forEach((item) => { 20602 if (item === 'Catalog') { 20603 catalogArray.push(item); 20604 } 20605 }); 20606 20607 if (catalogArray.length === 1) { 20608 Popup.modalType = 'enquete'; 20609 } 20610 20611 if (catalogArray.length === 0) { 20612 Popup.modalType = 'recommend'; 20613 } 20614 20615 return true; 20616 } 20617 20618 return false; 20619 }; 20620 20621 Popup.hasEnqueteError = function () { 20622 var enqueteOuter = document.querySelector('.' + classNames.trigger); 20623 var serchQueries = this.getQueryString(); 20624 20625 if (serchQueries['action'] === 'enquete' && enqueteOuter) { 20626 return true; 20627 } 20628 20629 return false; 20630 }; 20631 20632 Popup.getDownloadInfo = function () { 20633 var dataLayer = window.dataLayer; 20634 var i; 20635 var len; 20636 var info = {}; 20637 20638 if (!Array.isArray(dataLayer)) { 20639 return {}; 20640 } 20641 20642 len = dataLayer.length; 20643 20644 for (i = 0; i < len; i++) { 20645 if (dataLayer[i].dlAssetId) { 20646 info.asseIdList = dataLayer[i].dlAssetId.split(','); 20647 } 20648 20649 if (dataLayer[i].dlAssetObjectType) { 20650 info.dlAssetObjectTypeList = dataLayer[i].dlAssetObjectType.split(','); 20651 } 20652 20653 if (info.asseIdList && info.dlAssetObjectTypeList) { 20654 break; 20655 } 20656 } 20657 20658 return info; 20659 }; 20660 20661 Popup.open = function () { 20662 var enqueteOuter = document.querySelector('.' + classNames.trigger);
20663 var delay = 0; 20664 20665 if (Popup.modalType === 'recommend') { 20666 Popup.recommendModalOpen(); 20667 } else if (Popup.modalType === 'enquete') { 20668 if (!enqueteOuter || (enqueteOuter && enqueteOuter.classList.contains(classNames.isOpened))) { 20669 return; 20670 } 20671 20672 if (Popup.hasCookie(cookie.enqueteName) && !Popup.hasEnqueteError()) { 20673 return; 20674 } 20675 20676 delay = Number(kpi_usersettings.DownloadPopupOpenDelay) > 0 ? 20677 Number(kpi_usersettings.DownloadPopupOpenDelay) : 3000; 20678 20679 if (Popup.hasEnqueteError()) { 20680 $.colorbox({ 20681 html: enqueteOuter.children, 20682 speed: kpi_usersettings.ModalOpenSpd, 20683 initialWidth: "640px", 20684 width: '640px', 20685 height: 'auto', 20686 opacity: 0.6, 20687 onOpen: Popup.onOpen, 20688 onCleanup: Popup.onCleanup, 20689 }); 20690 } else { 20691 window.setTimeout(function () { 20692 $.colorbox({ 20693 html: enqueteOuter.children, 20694 speed: kpi_usersettings.ModalOpenSpd, 20695 initialWidth: "640px", 20696 width: '640px', 20697 height: 'auto', 20698 opacity: 0.6, 20699 onOpen: Popup.onOpen, 20700 onCleanup: Popup.onCleanup, 20701 }); 20702 }, delay); 20703 } 20704 } 20705 }; 20706 20707 Popup.recommendModalOpen = function () { 20708 const settingObj = win.myk_modal_deqwas; 20709 const relatedObj = settingObj ? settingObj.related : []; 20710 const recommendModalHtml = Popup.setRecommendModalContent(relatedObj); 20711 const cookieValue = Number(Popup.getCookieValue(cookie.recommendName)); 20712 let delay = 0; 20713 20714 if (!recommendModalHtml || 20715 !Array.isArray(relatedObj) || 20716 !relatedObj.length || 20717 isNaN(Popup.recommendOpenedLimit) || 20718 (cookieValue >= Popup.recommendOpenedLimit && Popup.recommendOpenedLimit !== 0) || 20719 isRecommendModalOpenedOnce) { 20720 return; 20721 } 20722 20723 delay = Number(kpi_usersettings.DownloadRecommendPopupOpenDelay) > 0 ? 20724 Number(kpi_usersettings.DownloadRecommendPopupOpenDelay) : 1000; 20725 20726 window.setTimeout(function () { 20727 $.colorbox({ 20728 html: recommendModalHtml, 20729 speed: kpi_usersettings.ModalOpenSpd, 20730 initialWidth: "640px", 20731 width: '640px', 20732 height: 'auto', 20733 opacity: 0.6, 20734 onOpen: Popup.recommendModalOnOpen, 20735 onComplete: Popup.recommendModalOnComplete, 20736 onCleanup: Popup.recommendModalOnCleanup, 20737 onClosed: Popup.recommendModalOnClosed, 20738 }); 20739 }, delay); 20740 }; 20741 20742 Popup.onOpen = function () { 20743 var enqueteOuter = document.querySelector('.' + classNames.trigger); 20744 var headingElement; 20745 20746 $('#colorbox').addClass('of-myKeyenceEnquete'); 20747 $('#cboxOverlay').addClass('of-myKeyenceEnquete'); 20748 20749 if (enqueteOuter) { 20750 headingElement = enqueteOuter.querySelector('.' + classNames.headingTrigger); 20751 20752 if (headingElement) { 20753 Popup.switchHeading(headingElement, 'show-after'); 20754 } 20755 20756 enqueteOuter.classList.add(classNames.isOpened); 20757 Popup.toggleFirstQuestion('hide'); 20758 Popup.setCookie(cookie.enqueteName, cookie.enqueteValue); 20759 } 20760 }; 20761
20762 Popup.recommendModalOnOpen = function () { 20763 const cookieValue = Number(Popup.getCookieValue(cookie.recommendName)); 20764 20765 $('#colorbox').addClass('of-myKeyenceRecommend'); 20766 $('#cboxOverlay').addClass('of-myKeyenceRecommend'); 20767 20768 if (cookieValue < Popup.recommendOpenedLimit && Popup.recommendOpenedLimit !== 0) { 20769 Popup.setCookie(cookie.recommendName, cookieValue + 1); 20770 } 20771 }; 20772 20773 Popup.recommendModalOnComplete = function () { 20774 const assetLinks = doc.querySelectorAll('.js-myKeyenceModalRecommend-assetLink'); 20775 const assetIdArray = []; 20776 let assetLinkUrl; 20777 let params; 20778 let dlAssetId; 20779 20780 if (assetLinks.length) { 20781 assetLinks.forEach((assetLink) => { 20782 assetLinkUrl = new URL(assetLink.href); 20783 params = assetLinkUrl.searchParams; 20784 dlAssetId = params.get('dlAssetId'); 20785 20786 assetIdArray.push(dlAssetId); 20787 }); 20788 20789 doc.body.dataset.recommendModalAsset = assetIdArray.join('/'); 20790 }; 20791 20792 isRecommendModalOpenedOnce = true; 20793 Popup.messageObj.myKDeqwasModalState = 'show'; 20794 win.postMessage(Popup.messageObj, win.location.origin); 20795 }; 20796 20797 Popup.onCleanup = function () { 20798 var enqueteOuter = document.querySelector('.' + classNames.trigger); 20799 var modalContent = document.getElementById(idNames.cboxLoadedContent); 20800 var headingElement; 20801 20802 $('#colorbox').removeClass('of-myKeyenceEnquete'); 20803 $('#cboxOverlay').removeClass('of-myKeyenceEnquete'); 20804 20805 if (enqueteOuter && modalContent) { 20806 enqueteOuter.innerHTML = modalContent.innerHTML; 20807 headingElement = enqueteOuter.querySelector('.' + classNames.headingTrigger); 20808 20809 if (headingElement) { 20810 Popup.switchHeading(headingElement, 'show-before'); 20811 } 20812 20813 Popup.toggleFirstQuestion('show'); 20814 Popup.addSubmitEvent(); 20815 } 20816 }; 20817 20818 Popup.recommendModalOnCleanup = function () { 20819 $('#colorbox').removeClass('of-myKeyenceRecommend'); 20820 $('#cboxOverlay').removeClass('of-myKeyenceRecommend'); 20821 20822 Popup.messageObj.myKDeqwasModalState = 'close'; 20823 win.postMessage(Popup.messageObj, win.location.origin); 20824 }; 20825 20826 Popup.recommendModalOnClosed = function () { 20827 if (doc.body.dataset.recommendModalAsset) { 20828 delete doc.body.dataset.recommendModalAsset; 20829 } 20830 }; 20831 20832 Popup.toggleFirstQuestion = function (status) { 20833 var form; 20834 var noteText; 20835 var enqueteOuter = document.querySelector('.' + classNames.trigger); 20836 var groups; 20837 20838 if (enqueteOuter) { 20839 groups = enqueteOuter.querySelectorAll('.form-group, .prd-inputGroup'); 20840 20841 form = enqueteOuter.querySelector('form'); 20842 20843 if (form) { 20844 noteText = form.firstElementChild; 20845 } 20846 20847 if (noteText.tagName.toLowerCase() === 'p') { 20848 if (status === 'show') { 20849 noteText.hidden = false; 20850 } else if (status === 'hide') { 20851 noteText.hidden = true; 20852 } 20853 } 20854 } 20855 20856 if (groups.length) { 20857 if (status === 'show') { 20858 groups[0].hidden = false; 20859 } else if (status === 'hide') { 20860 groups[0].hidden = true; 20861 } 20862 } 20863 }; 20864 20865 Popup.switchHeading = function (headingElement, status) { 20866 var headingBefore; 20867 var headingAfter; 20868 20869 if (!headingElement) { 20870 return; 20871 } 20872 20873 if (headingElement) { 20874 headingBefore = headingElement.querySelector('.' + classNames.headingBefore); 20875 headingAfter = headingElement.querySelector('.' + classNames.headingAfter); 20876 headingAfter.innerHTML = kpi_translation.MyKeyenceEnqPopupHeading; 20877 } 20878 20879 if (status === 'show-before') { 20880 headingBefore.classList.remove(classNames.isHide); 20881 headingBefore.hidden = false; 20882 headingAfter.classList.add(classNames.isHide); 20883 headingAfter.hidden = true; 20884 } else if (status === 'show-after') { 20885 headingBefore.classList.add(classNames.isHide); 20886 headingBefore.hidden = true; 20887 headingAfter.classList.remove(classNames.isHide); 20888 headingAfter.hidden = false; 20889 } 20890 }; 20891 20892 Popup.setRecommendModalContent = function (relatedObj) { 20893 const contentTemplate = document.getElementById(idNames.recommendTemplate); 20894 const assetListTemplate = document.getElementById(idNames.recommendAssetListTemplate); 20895 const fragment = document.createDocumentFragment(); 20896 const assetLinkParam = win.myk_modal_deqwas_link_parameter; 20897 let content = null; 20898 let assetList = null; 20899 20900 if(!contentTemplate || !assetListTemplate || !Array.isArray(relatedObj)) { 20901 return 20902 } 20903
20904 relatedObj.forEach((data) => { 20905 const nodeClone = assetListTemplate.content.cloneNode(true); 20906 const thumbnail = nodeClone.querySelector('.' + classNames.thumbnail); 20907 const assetLink = nodeClone.querySelector('.' + classNames.assetLink); 20908 const assetTitle = nodeClone.querySelector('.' + classNames.assetTitle); 20909 const assetIDList = data.assetID ? data.assetID.split(',') : []; 20910 const assetLinkUrl = data.assetUrl; 20911 20912 if (assetIDList.length && window.kpi_domainSettings.originalDomain) { 20913 if (thumbnail) { 20914 thumbnail.src = 20915 `${window.kpi_domainSettings.originalDomain}/img/asset/${assetIDList[0]}.jpg`; 20916 } 20917 20918 if (assetLink && assetLinkUrl && assetLinkParam) { 20919 assetLink.href = 20920 `${assetLinkUrl}&${assetLinkParam}`; 20921 } 20922 } 20923 20924 if (assetTitle && data.assetTitle) { 20925 assetTitle.textContent = data.assetTitle; 20926 } 20927 20928 fragment.appendChild(nodeClone); 20929 }); 20930 20931 content = contentTemplate.content.cloneNode(true); 20932 assetList = content.getElementById(idNames.recommendAssetList); 20933 20934 if (assetList) { 20935 if (relatedObj.length > 0 && relatedObj.length <= 5) { 20936 assetList.classList.remove('largeScreen-column-5'); 20937 assetList.classList.add(`largeScreen-column-${relatedObj.length}`); 20938 } 20939 20940 assetList.appendChild(fragment); 20941 } 20942 20943 return content; 20944 }; 20945 20946 Popup.addSubmitEvent = function () { 20947 var enqueteOuter = document.querySelector('.' + classNames.trigger); 20948 var form; 20949 20950 if (!enqueteOuter) { 20951 return; 20952 } 20953 20954 form = enqueteOuter.querySelector('form[name="' + names.mykeyenceActionForm + '"]'); 20955 20956 if (!form) { 20957 return; 20958 } 20959 20960 form.addEventListener('submit', function () { 20961 var actionVal = form.getAttribute('action'); 20962 20963 if (typeof actionVal === 'string' && $('#colorbox').hasClass('of-myKeyenceEnquete')) { 20964 form.setAttribute('action', actionVal + '?action=enquete'); 20965 } 20966 }); 20967 }; 20968 20969 Popup.getQueryString = function () { 20970 var searchStr; 20971 var queries = {}; 20972 20973 if (win.location.search.length === 0) { 20974 return queries; 20975 } 20976 20977 searchStr = win.location.search.slice(1); 20978 20979 searchStr.split('&').forEach(function (queryStr) { 20980 var queryArr = queryStr.split('='); 20981 20982 queries[queryArr[0]] = queryArr[1]; 20983 }); 20984 20985 return queries; 20986 }; 20987 20988 Popup.setCookie = function (name, value) { 20989 var path; 20990 20991 if (window.suz_LanguagePath) { 20992 path = window.suz_LanguagePath + '/'; 20993 } else { 20994 path = '/'; 20995 } 20996 20997 document.cookie = name + '=' + value + '; path=' + path; 20998 }; 20999 21000 Popup.hasCookie = function (cookieName) { 21001 var cookies = document.cookie.split(';'); 21002 var flag = false; 21003 21004 Array.prototype.forEach.call(cookies, function (item) { 21005 if (item.indexOf(cookieName + '=') > -1) { 21006 flag = true; 21007 } 21008 }); 21009 21010 return flag; 21011 }; 21012 21013 Popup.getCookieValue = function (cookieName) { 21014 const cookies = doc.cookie.split(';'); 21015 21016 if (!cookieName) { 21017 return false; 21018 } 21019 21020 if (!cookies.some((item) => item.trim().startsWith(`${cookieName}=`))) { 21021 return false; 21022 } 21023 21024 const targetCookie = cookies.find((item) => item.trim().startsWith(`${cookieName}=`)); 21025 21026 return targetCookie.split('=')[1]; 21027 }; 21028 21029 return Popup; 21030 }()); 21031 21032 KEYENCE.oneMorePR = function () { 21033 var idNames = { 21034 root: 'js-myKeyenceOneMorePR', 21035 modalCloseButton: 'cboxClose', 21036 modalOverlay: 'cboxOverlay' 21037 }; 21038 21039 var classNames = { 21040 video: 'js-myKeyenceOneMorePR-video', 21041 videoController: 'js-myKeyenceOneMorePR-videoController', 21042 videoControllerLabel: 'js-myKeyenceOneMorePR-videoControllerLabel',
21043 downloadButton: 'js-myKeyenceDownload-button', 21044 enqueteModal: 'js-myKeyence-enqueteModal', 21045 isHide: 'is-hide', 21046 isOpened: 'is-opened', 21047 isPaused: 'is-paused', 21048 }; 21049 21050 var cookie = { 21051 enqueteName: 'kpi_has_downloadPopupOpened', 21052 recommendName: 'kpi_has_downloadRecommendPopupOpened' 21053 }; 21054 21055 var root = doc.getElementById(idNames.root); 21056 var video = root ? root.querySelector(`.${classNames.video}`) : null; 21057 var videoController = root ? root.querySelector(`.${classNames.videoController}`) : null; 21058 var videoControllerLabel = videoController ? videoController.querySelector(`.${classNames.videoControllerLabel}`) : null; 21059 var downloadButton = doc.querySelector(`.${classNames.downloadButton}`); 21060 var enqueteModal = doc.querySelector(`.${classNames.enqueteModal}`); 21061 var dataLayer = win.dataLayer ? win.dataLayer : []; 21062 21063 var fn = {}; 21064 var handlers = {}; 21065 var messageObj = {}; 21066 21067 if (!root) { 21068 return; 21069 } 21070 21071 fn.init = function () { 21072 if (!smallScreenMql.matches) { 21073 if (!fn.canLaunch()) { 21074 return; 21075 } 21076 21077 fn.changeRootPosition(); 21078 fn.controlRoot(); 21079 21080 if (video) { 21081 fn.setVideo(); 21082 } 21083 } 21084 }; 21085 21086 fn.canLaunch = function () { 21087 var canLaunch = true; 21088 var dlAssetId = dataLayer[1].dlAssetId ? dataLayer[1].dlAssetId.split('.') : []; 21089 21090 if (dlAssetId.length > 1) { 21091 canLaunch = false; 21092 } 21093 21094 return canLaunch; 21095 }; 21096 21097 fn.getModalType = function () { 21098 var modaltype = ''; 21099 var dlAssetObjectType = dataLayer[1].dlAssetObjectType; 21100 21101 if (dlAssetObjectType === 'Catalog') { 21102 modaltype = 'enquete' 21103 } else if ( 21104 dlAssetObjectType === '3dcad' || 21105 dlAssetObjectType === '2dcad' || 21106 dlAssetObjectType === 'Manual' || 21107 dlAssetObjectType === 'Software') { 21108 modaltype = 'recommend' 21109 } 21110 21111 return modaltype; 21112 }; 21113 21114 fn.changeRootPosition = function () { 21115 var targetOuter = doc.querySelector('.prd-layout-grid.of-general'); 21116 var target = targetOuter ? targetOuter.firstElementChild : null; 21117 21118 if (!target) { 21119 return; 21120 } 21121 21122 target.prepend(root); 21123 }; 21124 21125 fn.setVideo = function () { 21126 fn.clickVideoController(); 21127 fn.endedVideo(); 21128 }; 21129 21130 fn.controlRoot = function () { 21131 if (fn.getModalType() === 'enquete') { 21132 if ((fn.hasCookie(cookie.enqueteName) && !fn.hasEnqueteError()) || !enqueteModal) { 21133 fn.clickDownloadButton(); 21134 } else { 21135 fn.observeEnqueteModal(); 21136 } 21137 } else if (fn.getModalType() === 'recommend') { 21138 const recommendOpenedLimit = Number(window.DownloadedPopup.recommendOpenedLimit); 21139 const cookieValue = Number(fn.getCookieValue(cookie.recommendName)); 21140 21141 if (!isNaN(recommendOpenedLimit) && 21142 cookieValue >= recommendOpenedLimit && recommendOpenedLimit !== 0) { 21143 fn.clickDownloadButton(); 21144 } else { 21145 fn.observeRecommendModal(); 21146 } 21147 } else { 21148 fn.clickDownloadButton(); 21149 } 21150 }; 21151 21152 fn.observeEnqueteModal = function () { 21153 var config = { 21154 childList: true 21155 }; 21156 21157 if (!enqueteModal) { 21158 return; 21159 } 21160 21161 var observer = new MutationObserver(() => { 21162 fn.closeModal(); 21163 observer.disconnect(); 21164 }); 21165 21166 observer.observe(enqueteModal, config); 21167 21168 if (enqueteModal.classList.contains(classNames.isOpened)) { 21169 fn.closeModal(); 21170 observer.disconnect(); 21171 } 21172 }; 21173 21174 fn.observeRecommendModal = function () { 21175 var body = doc.body; 21176 var config = { 21177 attributes: true 21178 }; 21179 21180 var observer = new MutationObserver(() => { 21181 if (body.dataset.recommendModalAsset) { 21182 fn.closeModal(); 21183 observer.disconnect(); 21184 } 21185 }); 21186 21187 observer.observe(body, config); 21188 21189 if (body.dataset.recommendModalAsset) { 21190 fn.closeModal(); 21191 observer.disconnect(); 21192 } 21193 }; 21194 21195 fn.clickDownloadButton = function () { 21196 if (!downloadButton) { 21197 return; 21198 } 21199 21200 downloadButton.addEventListener('click', handlers.onClickDownloadButton); 21201 }; 21202 21203 fn.clickVideoController = function () { 21204 if (!videoController) { 21205 return; 21206 } 21207 21208 videoController.addEventListener('click', handlers.onClickVideoController); 21209 }; 21210 21211 fn.endedVideo = function () { 21212 video.addEventListener('ended', handlers.onEndedVideo); 21213 }; 21214 21215 fn.closeModal = function () { 21216 var closeTrigger = doc.querySelectorAll(`#${idNames.modalCloseButton}, #${idNames.modalOverlay}`); 21217 21218 if (closeTrigger.length) { 21219 closeTrigger.forEach(trigger => { 21220 trigger.addEventListener('click', handlers.onClickCloseModalTrigger); 21221 }) 21222 } 21223 }; 21224 21225 fn.showRoot = function () { 21226 root.classList.remove(classNames.isHide); 21227 21228 messageObj.mykOneMorePRBannerState = 'show'; 21229 win.postMessage(messageObj, win.location.origin); 21230 }; 21231 21232 fn.playVideo = function () { 21233 video.play(); 21234 21235 if (videoController) { 21236 videoController.classList.remove(classNames.isPaused); 21237 } 21238 21239 if (videoControllerLabel && videoControllerLabel.dataset.pauseLabel) { 21240 videoControllerLabel.textContent = videoControllerLabel.dataset.pauseLabel; 21241 } 21242 }; 21243 21244 fn.pauseVideo = function () { 21245 video.pause(); 21246 21247 if (videoController) { 21248 videoController.classList.add(classNames.isPaused); 21249 } 21250 21251 if (videoControllerLabel && videoControllerLabel.dataset.playLabel) { 21252 videoControllerLabel.textContent = videoControllerLabel.dataset.playLabel; 21253 } 21254 }; 21255 21256 fn.hasCookie = function (cookieName) { 21257 var hasCookie = false; 21258 21259 if (util.getCookie(cookieName)) { 21260 hasCookie = true; 21261 } 21262 21263 return hasCookie; 21264 }; 21265 21266 fn.getCookieValue = function (cookieName) { 21267 const cookies = doc.cookie.split(';'); 21268 21269 if (!cookieName) { 21270 return false; 21271 } 21272 21273 if (!cookies.some((item) => item.trim().startsWith(`${cookieName}=`))) { 21274 return false; 21275 } 21276 21277 const targetCookie = cookies.find((item) => item.trim().startsWith(`${cookieName}=`)); 21278 21279 return targetCookie.split('=')[1]; 21280 }; 21281 21282 fn.hasEnqueteError = function () { 21283 var hasEnqueteError = false; 21284 var searchParams = new URLSearchParams(location.search); 21285 21286 if (searchParams.get('action') === 'enquete' && enqueteModal) { 21287 hasEnqueteError = true; 21288 } 21289 21290 return hasEnqueteError; 21291 }; 21292 21293 handlers.onClickDownloadButton = function () { 21294 setTimeout(() => { 21295 fn.showRoot(); 21296 if (video) { 21297 fn.playVideo(); 21298 } 21299 }, 3000); 21300 }; 21301 21302 handlers.onClickCloseModalTrigger = function () { 21303 fn.showRoot(); 21304 if (video) { 21305 fn.playVideo(); 21306 } 21307 }; 21308 21309 handlers.onClickVideoController = function () { 21310 if (!videoController) { 21311 return; 21312 } 21313 21314 if (videoController.classList.contains(classNames.isPaused)) { 21315 fn.playVideo(); 21316 } else { 21317 fn.pauseVideo(); 21318 } 21319 }; 21320 21321 handlers.onEndedVideo = function () { 21322 fn.pauseVideo(); 21323 }; 21324 21325 fn.init(); 21326 smallScreenMql.addListener(fn.init); 21327 }; 21328 21329 window.DownloadedPopup = KEYENCE.DownloadedPopup; 21330 21331 KEYENCE.omitText = function () { 21332 const fn = {}; 21333 const targets = doc.querySelectorAll('.js-omitText-target'); 21334 const maxChars = 50; 21335 21336 if (!targets.length) { 21337 return; 21338 } 21339 21340 fn.run = function () {
21341 targets.forEach((target) => { 21342 const root = target.closest('.js-omitText-root'); 21343 let charsLimit = maxChars; 21344 21345 if (!isNaN(target.dataset.maxChars) && target.dataset.maxChars !== '') { 21346 charsLimit = parseFloat(target.dataset.maxChars); 21347 } else if (root && !isNaN(root.dataset.maxChars) && root.dataset.maxChars !== '') { 21348 charsLimit = parseFloat(root.dataset.maxChars); 21349 } else { 21350 charsLimit = maxChars; 21351 }; 21352 21353 if (this.isMultiByteLang()) { 21354 charsLimit = Math.floor(charsLimit / 2); 21355 } 21356 21357 const targetStr = target.innerHTML.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gm, ''); 21358 21359 if (targetStr.length > charsLimit) { 21360 target.textContent = `${targetStr.substring(0, charsLimit)}...`; 21361 } 21362 }); 21363 } 21364 21365 fn.isMultiByteLang = function () { 21366 let siteLang = ''; 21367 21368 if (win.kpi_siteSettings) { 21369 siteLang = win.kpi_siteSettings.siteLang ? win.kpi_siteSettings.siteLang : ''; 21370 } 21371 21372 return /^zh-|^ko-/.test(siteLang); 21373 } 21374 21375 fn.run(); 21376 }; 21377 21378 KEYENCE.displayRelatedSeoArticleList = function () { 21379 const fn = {}; 21380 const idNames = { 21381 target: 'js-displayRelatedSeoArticleList', 21382 pageIdTarget: 'suz_pageId' 21383 }; 21384 const classNames = { 21385 articleCard: 'prd-articleCard' 21386 }; 21387 const config = { 21388 keywordIdParam: 'keywordID', 21389 pageIdParam: 'pageID', 21390 tagsKeywordId: win.tkt_tags ? win.tkt_tags : '', 21391 originalDomain: win.kpi_originalDomain ? win.kpi_originalDomain : '' 21392 }; 21393 const apiPath = { 21394 relatedContentsUrl: config.originalDomain ? `${config.originalDomain}/data/related-contents.jsp` : '' 21395 }; 21396 const target = doc.getElementById(idNames.target); 21397 const pageIdTarget = doc.getElementById(idNames.pageIdTarget); 21398 const pageId = pageIdTarget ? pageIdTarget.textContent : ''; 21399 21400 fn.init = function () { 21401 if (!config.tagsKeywordId || !apiPath.relatedContentsUrl || !target) { 21402 return; 21403 } 21404 21405 fn.displayApiData(); 21406 }; 21407 21408 fn.setApiUrl = function () { 21409 const newParam = new URLSearchParams(); 21410 newParam.set(config.keywordIdParam, config.tagsKeywordId); 21411 if (pageId) { 21412 newParam.set(config.pageIdParam, pageId); 21413 } 21414 const newApiUrl = `${apiPath.relatedContentsUrl}?${newParam.toString()}`; 21415 21416 return newApiUrl; 21417 }; 21418 21419 fn.displayApiData = function () { 21420 const apiUrl = fn.setApiUrl(); 21421 21422 async function getApiData() { 21423 try { 21424 const response = await fetch(apiUrl); 21425 21426 if (!response.ok) { 21427 throw new Error('Response was not OK'); 21428 } 21429 21430 const apiData = await response.text(); 21431 21432 return apiData; 21433 } catch (error) { 21434 console.error(error); 21435 } 21436 } 21437 21438 getApiData().then(apiData => { 21439 const checkedItem = apiData.indexOf(classNames.articleCard); 21440 21441 if (checkedItem !== -1) { 21442 target.innerHTML = fn.formatApiData(apiData); 21443 } 21444 }); 21445 }; 21446 21447 fn.formatApiData = function (apiData) { 21448 const regexTitle = /<span\s+class="[^"]*"\s+data-articles="title"[\s\S]*?<\/span>/gi; 21449 const regexDescription = /<p\s+class="[^"]*"\s+data-articles="description"[\s\S]*?<\/p>/gi; 21450 const matchedTitleItems = fn.getMatchedString(apiData, regexTitle); 21451 const matchedDescriptionItems = fn.getMatchedString(apiData, regexDescription); 21452 21453 let formattedApiData = fn.removeUnnecessaryTag(apiData, matchedTitleItems); 21454 if (matchedDescriptionItems) { 21455 formattedApiData = fn.removeUnnecessaryTag(formattedApiData, matchedDescriptionItems); 21456 } 21457 21458 return formattedApiData; 21459 } 21460 21461 fn.removeUnnecessaryTag = function (targetData, targetItems) { 21462 if (!targetItems.length) { 21463 return targetData; 21464 } 21465
21466 targetItems.forEach(function (item) { 21467 const convertedItem = fn.convertToHtmlElement(item); 21468 21469 convertedItem.textContent = convertedItem.textContent; 21470 targetData = targetData.replace(item, convertedItem.outerHTML); 21471 }); 21472 21473 return targetData; 21474 } 21475 21476 fn.getMatchedString = function (data, regex) { 21477 return data.match(regex); 21478 } 21479 21480 fn.convertToHtmlElement = function (stringData) { 21481 return new DOMParser().parseFromString(stringData, "text/html").body.firstElementChild; 21482 }; 21483 21484 fn.init(); 21485 }; 21486 21487 KEYENCE.setBasicTooltip = function () { 21488 const classNames = { 21489 root: 'js-basicTooltip', 21490 trigger: 'js-basicTooltip-trigger', 21491 target: 'js-basicTooltip-target', 21492 isActive: 'is-tooltip-active', 21493 }; 21494 21495 class BasicTooltip { 21496 constructor() { 21497 this.tooltips = new Set(); 21498 this.viewportPadding = 8; 21499 } 21500 21501 init() { 21502 doc.querySelectorAll(`.${classNames.root}`).forEach((elem) => { 21503 this.register(elem); 21504 }); 21505 this.observeMutations(); 21506 this.bindGlobalEvents(); 21507 } 21508 21509 observeMutations() { 21510 const observer = new MutationObserver((mutations) => { 21511 mutations.forEach((m) => { 21512 m.addedNodes.forEach((node) => { 21513 if (!(node instanceof HTMLElement)) { 21514 return; 21515 } 21516 if (node.classList?.contains(classNames.root)) { 21517 this.register(node); 21518 } 21519 node.querySelectorAll?.(`.${classNames.root}`).forEach((elem) => { 21520 this.register(elem); 21521 }); 21522 }); 21523 }); 21524 }); 21525 observer.observe(doc.body, { childList: true, subtree: true }); 21526 } 21527 21528 register(root) { 21529 const trigger = root.querySelector(`.${classNames.trigger}`); 21530 const target = root.querySelector(`.${classNames.target}`); 21531 21532 if (!trigger || !target) { 21533 return; 21534 } 21535 21536 if (!target.id) { 21537 target.id = `tooltip-${Math.random().toString(36).slice(2)}`; 21538 } 21539 21540 trigger.setAttribute('aria-describedby', target.id); 21541 trigger.setAttribute('aria-expanded', 'false'); 21542 21543 root.dataset.tooltipDirection = 'top'; 21544 21545 const data = { root, trigger, target }; 21546 this.tooltips.add(data); 21547 this.bindTriggerEvents(data); 21548 } 21549 21550 bindTriggerEvents(data) { 21551 const { trigger } = data; 21552 21553 trigger.addEventListener('mouseenter', () => { 21554 this.show(data); 21555 }); 21556 21557 trigger.addEventListener('focus', (e) => { 21558 if (!e.target.matches(':focus-visible')) { 21559 return; 21560 } 21561 this.show(data); 21562 }); 21563 21564 trigger.addEventListener('mouseleave', () => { 21565 this.hide(data); 21566 }); 21567 21568 trigger.addEventListener('blur', () => { 21569 this.hide(data); 21570 }); 21571 } 21572 21573 bindGlobalEvents() { 21574 win.addEventListener('scroll', () => { 21575 this.tooltips.forEach((data) => { 21576 this.hide(data); 21577 }); 21578 }, { passive: true }); 21579 21580 win.addEventListener('resize', () => { 21581 this.tooltips.forEach((data) => { 21582 this.hide(data); 21583 }); 21584 }, { passive: true });
21585 21586 doc.addEventListener('keydown', (e) => { 21587 if (e.key === 'Escape') { 21588 this.tooltips.forEach((data) => { 21589 this.hide(data) 21590 }); 21591 } 21592 }); 21593 } 21594 21595 show(data) { 21596 const { trigger, target, root } = data; 21597 21598 target.style.left = ''; 21599 target.style.top = ''; 21600 target.classList.add(classNames.isActive); 21601 trigger.setAttribute('aria-expanded', 'true'); 21602 21603 const direction = this.chooseDirection(trigger, target); 21604 root.dataset.tooltipDirection = direction; 21605 21606 const rect = trigger.getBoundingClientRect(); 21607 const triggerGap = Number(trigger.dataset.tooltipMargin) || 0; 21608 const vw = document.documentElement.clientWidth; 21609 let x = rect.left + rect.width / 2 - target.offsetWidth / 2; 21610 x = Math.max( 21611 this.viewportPadding, 21612 Math.min( 21613 x, 21614 vw - target.offsetWidth - this.viewportPadding 21615 ) 21616 ); 21617 21618 target.style.position = 'fixed'; 21619 target.style.left = `${x}px`; 21620 21621 if (direction === 'top') { 21622 target.style.top = `${rect.top - target.offsetHeight - triggerGap}px`; 21623 } else { 21624 target.style.top = `${rect.bottom + triggerGap}px`; 21625 } 21626 21627 return; 21628 } 21629 21630 hide(data) { 21631 const { trigger, target } = data; 21632 target.classList.remove(classNames.isActive); 21633 trigger.setAttribute('aria-expanded', 'false'); 21634 } 21635 21636 chooseDirection(trigger, target) { 21637 const rect = trigger.getBoundingClientRect(); 21638 const vh = window.innerHeight; 21639 const spaceTop = rect.top; 21640 const spaceBottom = vh - rect.bottom; 21641 const tH = target.offsetHeight; 21642 21643 if (spaceTop >= tH + this.viewportPadding) { 21644 return 'top'; 21645 } 21646 if (spaceBottom >= tH + this.viewportPadding) { 21647 return 'bottom'; 21648 } 21649 21650 return 'bottom'; // fallback 21651 } 21652 } 21653 21654 const basicTooltip = new BasicTooltip(); 21655 basicTooltip.init(); 21656 }; 21657 21658 KEYENCE.setSideNavigation = () => { 21659 class SideNavigation { 21660 constructor() { 21661 this.classNames = { 21662 root: 'js-sideNavigation', 21663 list: 'js-sideNavigation-list', 21664 trigger: 'js-sideNavigation-trigger', 21665 target: 'js-sideNavigation-target', 21666 isCurrent: 'is-current', 21667 isOverflowing: 'is-overflowing', 21668 isScrollBottom: 'is-scroll-bottom', 21669 }; 21670 21671 this.root = doc.querySelector(`.${this.classNames.root}`); 21672 this.list = this.root ? this.root.querySelector(`.${this.classNames.list}`) : null; 21673 this.triggers = this.root ? this.root.querySelectorAll(`.${this.classNames.trigger}`) : []; 21674 this.targets = this.root ? this.root.querySelectorAll(`.${this.classNames.target}`) : []; 21675 21676 this.currentTarget = null; 21677 this.clickedTriggerHref = null; 21678 21679 this.isScrollUpdating = false; 21680 21681 this.handleScreenChange = this.handleScreenChange.bind(this); 21682 this.handleScroll = this.handleScroll.bind(this); 21683 this.handleResize = this.handleResize.bind(this); 21684 this.updateCurrentNavigation = this.updateCurrentNavigation.bind(this); 21685 this.handleTargetClick = this.handleTargetClick.bind(this); 21686 this.setScrollOptionClass = this.setScrollOptionClass.bind(this); 21687 } 21688 21689 init() { 21690 if (!this.root || !this.list || !this.triggers.length || !this.targets.length) { 21691 return; 21692 } 21693
21694 this.triggers.forEach((trigger) => { 21695 trigger.addEventListener('click', this.handleTargetClick); 21696 }); 21697 21698 this.handleScreenChange(); 21699 smallScreenMql.addEventListener("change", this.handleScreenChange); 21700 } 21701 21702 handleScreenChange() { 21703 win.removeEventListener('scroll', this.handleScroll); 21704 win.removeEventListener('resize', this.handleResize); 21705 this.list.removeEventListener('scroll', this.setScrollOptionClass); 21706 21707 if (smallScreenMql.matches) { 21708 this.clearNavigationCurrent(); 21709 } else { 21710 this.updateCurrentNavigation(); 21711 this.setScrollOptionClass(); 21712 21713 win.addEventListener('scroll', this.handleScroll, { passive: true }); 21714 win.addEventListener('resize', this.handleResize); 21715 this.list.addEventListener('scroll', this.setScrollOptionClass, { passive: true }); 21716 } 21717 } 21718 21719 handleScroll() { 21720 if (this.isScrollUpdating) { 21721 return; 21722 } 21723 21724 this.isScrollUpdating = true; 21725 21726 win.requestAnimationFrame(() => { 21727 this.updateCurrentNavigation(); 21728 this.isScrollUpdating = false; 21729 }); 21730 } 21731 21732 handleResize() { 21733 this.updateCurrentNavigation(); 21734 this.setScrollOptionClass(); 21735 } 21736 21737 handleTargetClick(event) { 21738 const href = event.currentTarget.getAttribute('href'); 21739 21740 if (!href || !href.startsWith('#')) { 21741 return; 21742 } 21743 21744 if (this.currentTarget?.getAttribute('href') === href) { 21745 event.preventDefault(); 21746 return; 21747 } 21748 21749 const scrollTarget = doc.querySelector(href); 21750 21751 if (!scrollTarget) { 21752 return; 21753 } 21754 21755 this.clickedTriggerHref = href; 21756 this.setNavigationCurrentByHref(href); 21757 21758 const checkScrollEnd = () => { 21759 const rect = scrollTarget.getBoundingClientRect(); 21760 21761 if (Math.abs(rect.top - 63) < 10) { 21762 this.clickedTriggerHref = null; 21763 } else { 21764 win.requestAnimationFrame(checkScrollEnd); 21765 } 21766 }; 21767 21768 win.requestAnimationFrame(checkScrollEnd); 21769 } 21770 21771 updateCurrentNavigation() { 21772 let activeHref = null; 21773 21774 if (this.clickedTriggerHref) { 21775 activeHref = this.clickedTriggerHref; 21776 } else { 21777 activeHref = this.getActiveHrefFromScroll(); 21778 } 21779 21780 if (!activeHref) { 21781 this.clearNavigationCurrent(); 21782 return; 21783 } 21784 21785 this.setNavigationCurrentByHref(activeHref); 21786 } 21787 21788 getActiveHrefFromScroll() { 21789 const triggerLine = win.innerHeight * 0.2; 21790 21791 let activeId = null; 21792 21793 this.targets.forEach((target) => { 21794 const rect = target.getBoundingClientRect(); 21795 21796 if (rect.top <= triggerLine) { 21797 activeId = target.id; 21798 } 21799 }); 21800 21801 if (!activeId && this.targets.length) { 21802 activeId = this.targets[0].id; 21803 } 21804 21805 return activeId ? `#${activeId}` : null; 21806 } 21807 21808 setNavigationCurrentByHref(href) { 21809 const nextTarget = Array.from(this.triggers).find((trigger) => { 21810 return trigger.getAttribute('href') === href; 21811 }); 21812 21813 if (!nextTarget) { 21814 this.clearNavigationCurrent(); 21815 return; 21816 } 21817 21818 if (this.currentTarget === nextTarget) { 21819 return; 21820 } 21821 21822 this.clearNavigationCurrent(); 21823 21824 nextTarget.classList.add(this.classNames.isCurrent); 21825 nextTarget.setAttribute('aria-current', 'location'); 21826 21827 this.currentTarget = nextTarget; 21828 21829 this.scrollCurrentIntoView(nextTarget); 21830 } 21831 21832 clearNavigationCurrent() { 21833 if (!this.currentTarget) { 21834 return; 21835 } 21836 21837 this.currentTarget.classList.remove(this.classNames.isCurrent); 21838 this.currentTarget.removeAttribute('aria-current'); 21839 this.currentTarget = null; 21840 } 21841 21842 scrollCurrentIntoView(target) { 21843 if (!this.list || !target) { 21844 return; 21845 } 21846 21847 const nextScrollTop = 21848 target.offsetTop - 21849 (this.list.clientHeight / 2) + 21850 (target.offsetHeight / 2); 21851 21852 this.list.scrollTo({ 21853 top: Math.max(0, nextScrollTop), 21854 behavior: 'smooth' 21855 }); 21856 } 21857 21858 setScrollOptionClass() { 21859 if (!this.list) { 21860 return; 21861 } 21862 21863 const scrollTop = this.list.scrollTop; 21864 const clientHeight = this.list.clientHeight; 21865 const scrollHeight = this.list.scrollHeight; 21866 const maxScrollTop = scrollHeight - clientHeight; 21867 const threshold = 1; 21868 21869 const isScrollable = scrollHeight > clientHeight + threshold; 21870 const isScrollBottom = scrollTop >= maxScrollTop - threshold; 21871 21872 const isOverflowing = isScrollable && !isScrollBottom; 21873 21874 this.list.classList.toggle(this.classNames.isOverflowing, isOverflowing); 21875 this.list.classList.toggle(this.classNames.isScrollBottom, isScrollable && isScrollBottom); 21876 } 21877 } 21878 21879 const sideNavigation = new SideNavigation(); 21880 sideNavigation.init(); 21881 }; 21882 21883 /* deqwas.js 21884 -------------------------------------------------------- */ 21885 21886 // ----------------------------------------- 21887 // Vertical Recommendation 21888 // ----------------------------------------- 21889 $.fn.recommend02 = function (options) { 21890 var o; 21891 21892 if (!this.length) { 21893 return this; 21894 } 21895 21896 o = $.extend({ 21897 ajaxPath: '', 21898 type: '', 21899 noSlider: null 21900 }, options); 21901 21902 this.each(function () { 21903 var $this = $(this); 21904 var $recommend; 21905 var $content; 21906 var $contentUl; 21907 var $contentLi; 21908 var contentNum; 21909 var contentHei; 21910 var $slide; 21911 var $next; 21912 var $prev; 21913 var num; 21914 var speed; 21915 var boxHei; 21916 var moveFlg; 21917 var prevReset; 21918 var nextReset; 21919 21920 $.ajax({
21921 url: o.ajaxPath, 21922 type: 'POST', 21923 dataType: 'html', 21924 data: win.tkt_deqwas 21925 }).done(function (data) { 21926 $this.html(data); 21927 21928 if (o.noSlider) { 21929 o.noSlider(); 21930 21931 return; 21932 } 21933 21934 $this.find('.jcarousel-skin-basic ul').wrapAll('<div class="js-recommend_02 type_' + o.type + '"><div class="js-recommend-item link_box_01">'); 21935 $recommend = $('.js-recommend_02.type_' + o.type); 21936 $content = $this.find('.js-recommend-item'); 21937 $contentUl = $content.find('ul'); 21938 $contentLi = $contentUl.find('li'); 21939 contentNum = $contentLi.length; 21940 contentHei = 113; 21941 21942 $recommend.append('<div class="js-recommend-slide"><p class="prev"><button><span>Prev</span></button></p><p class="next"><button><span>Next</span></button></p></div>'); 21943 $slide = $this.find('.js-recommend-slide'); 21944 $next = $slide.find('.next button'); 21945 $prev = $slide.find('.prev button'); 21946 num = contentHei * 5; 21947 speed = 200; 21948 boxHei = -((contentHei * contentNum) - num); 21949 moveFlg = true; 21950 21951 $content.css({ 21952 overflow: 'hidden', 21953 position: 'relative', 21954 top: '0', 21955 height: num + 'px' 21956 }); 21957 $contentUl.css({ 21958 position: 'relative', 21959 top: '0' 21960 }); 21961 21962 prevReset = function () { 21963 var boxTop; 21964 21965 if (!moveFlg) { 21966 return; 21967 } 21968 21969 if (moveFlg) { 21970 moveFlg = false; 21971 boxTop = parseInt($contentUl.css('top'), 10); 21972 21973 if (boxTop >= 0) { 21974 $contentUl.animate({ 21975 top: boxHei + 'px' 21976 }, speed, function () { 21977 moveFlg = true; 21978 }); 21979 } else { 21980 $contentUl.animate({ 21981 top: '+=' + num + 'px' 21982 }, speed, function () { 21983 moveFlg = true; 21984 }); 21985 } 21986 } 21987 }; 21988 21989 nextReset = function () { 21990 var boxTop; 21991 21992 if (!moveFlg) { 21993 return; 21994 } 21995 21996 if (moveFlg) { 21997 moveFlg = false; 21998 boxTop = parseInt($contentUl.css('top'), 10); 21999 22000 if (boxTop <= boxHei) { 22001 $contentUl.animate({ 22002 top: '0' 22003 }, speed, function () { 22004 moveFlg = true; 22005 }); 22006 } else { 22007 $contentUl.animate({ 22008 top: '-=' + num + 'px' 22009 }, speed, function () { 22010 moveFlg = true; 22011 }); 22012 } 22013 } 22014 }; 22015 22016 $next.on('click', function () { 22017 nextReset(); 22018 }); 22019 22020 $prev.on('click', function () { 22021 prevReset(); 22022 }); 22023 }); 22024 }); 22025 22026 return this; 22027 }; 22028 22029 // ----------------------------------------- 22030 // Horizontal Recommendation 22031 // ----------------------------------------- 22032 $.fn.recommend01 = function (options) { 22033 var o; 22034 var setPager; 22035 22036 if (!this.length) { 22037 return this; 22038 } 22039 22040 o = $.extend({ 22041 ajaxPath: '', 22042 type: '', 22043 bxSliderOption: {}, 22044 assetSize: 'M' 22045 }, options); 22046 22047 setPager = function ($pager, $hozRecSlider) { 22048 if ($pager.length) { 22049 $pager.off('mouseover'); 22050 22051 $pager.on('click', 'a', function (e) { 22052 var currentIndex; 22053 var targetIndex; 22054 22055 if ($hozRecSlider.length) { 22056 e.preventDefault(); 22057 currentIndex = $hozRecSlider.getCurrentSlide();
22058 targetIndex = $(this).attr('data-slide-index'); 22059 22060 targetIndex = parseInt(targetIndex, 10); 22061 if (currentIndex !== targetIndex) { 22062 $hozRecSlider.goToSlide(targetIndex); 22063 } 22064 } 22065 }); 22066 } 22067 }; 22068 22069 this.each(function () { 22070 var $this = $(this); 22071 var $hozRecSlider; 22072 var $targetWrapper; 22073 var $target; 22074 var $tab; 22075 var $tabHook; 22076 22077 win.tkt_deqwas.bottom = $.extend({ 22078 assetSize: o.assetSize 22079 }, win.tkt_deqwas.bottom); 22080 22081 $.ajax({ 22082 url: o.ajaxPath, 22083 type: 'POST', 22084 dataType: 'html', 22085 data: win.tkt_deqwas 22086 }).done(function (data) { 22087 $this.html(data); 22088 $this.find('.Section').wrapAll('<div class="js-recommend_01 type_' + o.type + '"><div class="js-recommend-item">'); 22089 $targetWrapper = $('.js-recommend_01.type_' + o.type); 22090 if ($targetWrapper.length) { 22091 $target = $targetWrapper.find('.js-recommend-item ul'); 22092 $tab = $this.closest('.js-tab'); 22093 22094 if ($tab.length && $this.is(':hidden')) { 22095 $tab.find('.js-tab-btn > li').eq($this.closest('.content').index()).find('a').on('click', function (e) { 22096 $tabHook = $(this); 22097 22098 e.preventDefault(); 22099 22100 if (!$tabHook.hasClass('bxSliderDone')) { 22101 $hozRecSlider = $target.bxSlider(o.bxSliderOption); 22102 $tabHook.addClass('bxSliderDone'); 22103 setPager($('.bx-default-pager'), $hozRecSlider); 22104 } 22105 }); 22106 } else { 22107 $hozRecSlider = $target.bxSlider(o.bxSliderOption); 22108 setPager($('.bx-default-pager'), $hozRecSlider); 22109 } 22110 } 22111 }); 22112 }); 22113 22114 return this; 22115 }; 22116 22117 // ----------------------------------------- 22118 // Toggle 22119 // ----------------------------------------- 22120 $.fn.setToggleCnt = function (options) { 22121 var o; 22122 22123 if (!this.length) { 22124 return this; 22125 } 22126 22127 o = $.extend({ 22128 currentClass: 'current', 22129 btnClass: 'toggleBtn', 22130 target: '.toggleCnt > li:gt(3)', 22131 btnWrapper: '.toggleBtnWrapper' 22132 }, options); 22133 22134 this.each(function () { 22135 var $area = $(this); 22136 var $target = $area.find(o.target); 22137 var $btnWrapper = $area.find(o.btnWrapper); 22138 var $btn; 22139 22140 $btnWrapper.append('<button type="button" class="' + o.btnClass + '" style="display:block;width:100%;height:100%;"></button>'); 22141 $btn = $area.find('.' + o.btnClass); 22142 22143 if (!$btn.hasClass(o.currentClass)) { 22144 $target.hide(); 22145 } 22146 22147 $btn.on('click', function (e) { 22148 var $this = $(this); 22149 var $parent = $this.closest($btnWrapper); 22150 22151 e.preventDefault(); 22152 22153 if ($parent.hasClass(o.currentClass)) { 22154 $parent.removeClass(o.currentClass); 22155 $target.hide(); 22156 } else { 22157 $parent.addClass(o.currentClass); 22158 $target.show(); 22159 } 22160 }); 22161 }); 22162 22163 return this; 22164 }; 22165 22166 // ----------------------------------------- 22167 // Execution 22168 // ----------------------------------------- 22169 $(function () { 22170 var DEQWAS = {}; 22171 22172 if (typeof win.tkt_deqwas === 'undefined') { 22173 return; 22174 } 22175 22176 DEQWAS.elem = { 22177 $boxRecommendVertical: $('.box_recommend_vertical'), 22178 $boxRecommendHorizon: $('.box_recommend_horizon') 22179 }; 22180 22181 DEQWAS.type = { 22182 $verticalDefault: DEQWAS.elem.$boxRecommendVertical.filter('.default'), 22183 $verticalMyKeyence: DEQWAS.elem.$boxRecommendVertical.filter('.myKeyence'), 22184 $horizonM_L: DEQWAS.elem.$boxRecommendHorizon.filter('.medium.long'), 22185 $horizonM_S: DEQWAS.elem.$boxRecommendHorizon.filter('.medium.short'), 22186 $horizonL_L: DEQWAS.elem.$boxRecommendHorizon.filter('.large.long'), 22187 $horizonMyKeyence: DEQWAS.elem.$boxRecommendHorizon.filter('.myKeyence') 22188 }; 22189 22190 DEQWAS.type.$verticalDefault.recommend02({ 22191 ajaxPath: suz_LanguagePath + '/data/recommend-side.jsp', 22192 type: 'default' 22193 }); 22194 22195 DEQWAS.type.$verticalMyKeyence.recommend02({ 22196 ajaxPath: suz_LanguagePath + '/data/deqwas-myk-asset-recommend.jsp', 22197 type: 'myKeyence', 22198 assetSize: 'M', 22199 noSlider: function () { 22200 DEQWAS.type.$verticalMyKeyence.setToggleCnt({ 22201 target: '.ThumbList > li:gt(3)', 22202 btnWrapper: '.ShowList' 22203 }); 22204 } 22205 }); 22206 22207 DEQWAS.type.$horizonM_L.recommend01({ 22208 ajaxPath: suz_LanguagePath + '/data/recommend-bottom.jsp', 22209 type: 'medium_long',
22210 bxSliderOption: { 22211 slideWidth: 125, 22212 minSlides: 6, 22213 maxSlides: 6, 22214 slideMargin: 20 22215 } 22216 }); 22217 22218 DEQWAS.type.$horizonM_S.recommend01({ 22219 ajaxPath: suz_LanguagePath + '/data/recommend-bottom.jsp', 22220 type: 'medium_short', 22221 bxSliderOption: { 22222 slideWidth: 140, 22223 minSlides: 4, 22224 maxSlides: 4, 22225 slideMargin: 20 22226 } 22227 }); 22228 22229 DEQWAS.type.$horizonL_L.recommend01({ 22230 ajaxPath: suz_LanguagePath + '/data/recommend-bottom.jsp', 22231 type: 'large_long', 22232 bxSliderOption: { 22233 slideWidth: 200, 22234 minSlides: 4, 22235 maxSlides: 4, 22236 slideMargin: 30 22237 }, 22238 assetSize: 'L' 22239 }); 22240 22241 DEQWAS.type.$horizonMyKeyence.recommend01({ 22242 ajaxPath: suz_LanguagePath + '/data/deqwas-myk-asset-recommend-p.jsp', 22243 type: 'myKeyence', 22244 bxSliderOption: { 22245 slideWidth: 200, 22246 minSlides: 5, 22247 maxSlides: 5, 22248 slideMargin: 30, 22249 pager: false, 22250 responsive: true 22251 }, 22252 assetSize: 'L' 22253 }); 22254 22255 if ($('#js-deqwasAssets').length) { 22256 $.ajax({
22257 url: suz_LanguagePath + '/data/deqwas-assets-recommend2021.jsp', 22258 type: 'POST', 22259 dataType: 'html', 22260 data: win.tkt_deqwas, 22261 success: function (data) { 22262 $('#js-deqwasAssets').html(data); 22263 } 22264 }); 22265 } 22266 22267 // mykeyence Related Downloads 22268 if ($('#js-deqwasAssets-relatedMyKeyence').length) { 22269 $.ajax({ 22270 url: suz_LanguagePath + '/data/deqwas-myk-asset-recommend-2022.jsp', 22271 type: 'POST', 22272 dataType: 'html', 22273 data: win.tkt_deqwas, 22274 success: function (data) { 22275 $('#js-deqwasAssets-relatedMyKeyence').html(data); 22276 } 22277 }); 22278 } 22279 22280 // mykeyence Recommended Downloads 22281 if ($('#js-deqwasAssets-recommendMyKeyence').length) { 22282 $.ajax({ 22283 url: suz_LanguagePath + '/data/deqwas-myk-asset-recommend-p-2022.jsp', 22284 type: 'POST', 22285 dataType: 'html', 22286 data: win.tkt_deqwas, 22287 success: function (data) { 22288 $('#js-deqwasAssets-recommendMyKeyence').html(data); 22289 } 22290 }); 22291 } 22292 }); 22293 22294 $(function () { 22295 var alertText; 22296 var cookieValue; 22297 22298 if (!win.kpi_cookie_alert.flag) { 22299 return; 22300 } 22301 22302 alertText = $( 22303 '<div class="js-setDialogCookie dialogCookie">' 22304 + '<div class="dialogCookie-body">' 22305 + '<div class="dialogCookie-textGroup">' 22306 + '<p class="dialogCookie-text">' 22307 + win.kpi_cookie_alert.text 22308 + '</p>' 22309 + '<div class="dialogCookie-link">' 22310 + '<a href="' + win.kpi_cookie_alert.link + '">' 22311 + '<span class="dialogCookie-linkText">' + win.kpi_cookie_alert.privacyText + '</span>' 22312 + '</a>' 22313 + '</div>' 22314 + '</div>' 22315 + '<div class="dialogCookie-button">' 22316 + '<button type="button" class="js-setDialogCookie-button buttonClose" aria-label="close"></button>' 22317 + '</div>' 22318 + '</div>' 22319 + '</div>' 22320 ); 22321 cookieValue = util.getCookie('kpi_cookie_count'); 22322 22323 if (!cookieValue) { 22324 cookieValue = 0; 22325 } 22326 22327 if (cookieValue === 0) { 22328 $('.layout-header').before(alertText); 22329 22330 alertText.ready(function () { 22331 var alertTextHeight = alertText.height(); 22332 22333 $('#MegaMenu').css('margin-top', alertTextHeight + 'px'); 22334 }); 22335 22336 $(document).on('click', '.js-setDialogCookie-button', function () { 22337 $('.js-setDialogCookie').hide(); 22338 $('#MegaMenu').css('margin-top', '0'); 22339 cookieValue++; 22340 // $.cookie('kpi_cookie_count',cookieValue,{expires:365,path:'/',domain:kpi_cookiesettings.cookieDomain}); 22341 util.setCookie('kpi_cookie_count', cookieValue); 22342 }); 22343 } 22344 }); 22345 22346 $(win).on('load', function () { 22347 var cookieValue = util.getCookie('kpi_cookie_count'); 22348 22349 if (!cookieValue) { 22350 cookieValue = 0; 22351 } 22352 22353 win.setTimeout(function () { 22354 $('#userlike-tab').on('transitionend', function () { 22355 if (cookieValue === 0) { 22356 $('.js-setDialogCookie').attr('data-chat', 'true'); 22357 } 22358 }); 22359 }, 1500); 22360 }); 22361 22362 /* end deqwas.js 22363 -------------------------------------------------------- */ 22364 22365 /* Modal and Light Box 22366 -------------------------------------------------------- */ 22367 /* Ajax Modal */ 22368 $(doc).on('click', '.js-modalAjax', function (e) { 22369 var $this = $(this); 22370 22371 e.preventDefault(); 22372 kpi_openedModalWindow = $this.attr('href'); 22373 22374 $.ajax({
22375 type: 'GET', 22376 url: kpi_openedModalWindow, 22377 dataType: 'html', 22378 success: function (data) { 22379 var modalCntHtml = $($.parseHTML(data)); 22380 var modalCnt = modalCntHtml; 22381 var modalTtl = $(data).find('#PageTitle h1').html(); 22382 22383 $.colorbox({ 22384 speed: kpi_usersettings.ModalOpenSpd, 22385 innerWidth: '100%', 22386 closeButton: false, 22387 html: modalCnt, 22388 scrolling: false, 22389 onOpen: function () { 22390 $('#kpi_modalbox').removeClass('ModalLarge'); 22391 $('#cboxPrevious').remove(); 22392 $('#cboxNext').remove(); 22393 $('#cboxSlideshow').remove(); 22394 $('#cboxCurrent').remove(); 22395 }, 22396 onComplete: function () { 22397 var root = $('#colorbox'); 22398 var modalWrap = root.find('#cboxWrapper'); 22399 var modalCont = root.find('#cboxContent'); 22400 var modalLoaded = root.find('#cboxLoadedContent'); 22401 var modalInner = modalLoaded.find('#ModalContent').length ? modalLoaded.find('#ModalContent') : modalLoaded.find('#Container'); 22402 var modalCloseId = 'cboxClose'; 22403 var modalVisClass = 'cboxVisible'; 22404 var escTxt = win.kpi_translation.Close; 22405 var $modalClose; 22406 22407 modalInner.addClass(modalVisClass); 22408 if (!$('#' + modalCloseId).length) { 22409 modalInner.prepend('<button id="' + modalCloseId + '"><span>' + escTxt + '</span></button>'); 22410 } 22411 $modalClose = modalInner.find('#' + modalCloseId); 22412 22413 if ($modalClose.length) { 22414 $modalClose.show(); 22415 $modalClose[0].focus(); 22416 } 22417 22418 modalCntHtml.filter('meta, title, link').remove(); 22419 22420 if ($('#cboxTitle').text().length === 0) { 22421 $('#ModalContent #PageTitle h1').remove(); 22422 22423 if (modalTtl) { 22424 $('#cboxTitle').append(modalTtl); 22425 } else { 22426 $('#cboxTitle').append($this.attr('title')); 22427 } 22428 } 22429 22430 if (modalCntHtml.find('.CloseWindow').length) { 22431 modalCntHtml.find('#ContentsArea').addClass('Popup'); 22432 modalCntHtml.find('.CloseWindow').remove(); 22433 } 22434 22435 if ($('#DownloadList').length || ($('#DownloadListLicenseSoftware').length || $('#DownloadListLicenseCad').length)) { 22436 kpi_cartObj.callbackFromModalWindow($this.prev().attr('id')); 22437 } 22438 22439 function stopBubbling(target) { 22440 target.off('click').on('click', function (e) { 22441 e.stopPropagation(); 22442 }); 22443 } 22444 22445 function modalClose(target) { 22446 target.off('click').on('click', function () { 22447 $.colorbox.close(); 22448 }); 22449 } 22450 22451 stopBubbling(modalInner); 22452 modalClose(modalWrap); 22453 modalClose(modalCont); 22454 modalClose($modalClose); 22455 22456 modalInner.find('.MordalWindowCloseBtn').on('click', function (e) { 22457 e.preventDefault(); 22458 $.colorbox.close(); 22459 }); 22460 } 22461 }); 22462 } 22463 }); 22464 22465 return false; 22466 });
22467 /* end Modal and Light Box 22468 -------------------------------------------------------- */ 22469 22470 // Run: DOMContentLoaded 22471 doc.addEventListener('DOMContentLoaded', function () { 22472 KEYENCE.runDomReady(); 22473 }, false); 22474 22475 // Run: load 22476 win.addEventListener('load', function () { 22477 KEYENCE.runLoad(); 22478 }, false); 22479 22480 // Run: Pageshow 22481 win.addEventListener("pageshow", function (event) { 22482 KEYENCE.runPageShow(event); 22483 }, false); 22484 22485 KEYENCE.runDomReady = function () { 22486 KEYENCE.scrollTransitionToAnchor(); 22487 }; 22488 22489 KEYENCE.runLoad = function () { 22490 // do nothing. 22491 }; 22492 22493 KEYENCE.runPageShow = function (event) { 22494 KEYENCE.resetAgreementCheck(event); 22495 }; 22496 22497 $(function () { 22498 KEYENCE.init(); 22499 KEYENCE.ctrlHeader(); 22500 KEYENCE.setMenu(); 22501 KEYENCE.setLoginHeaderMenu(); 22502 KEYENCE.setHeaderMypageUserName(); 22503 KEYENCE.setPhoneMenu(); 22504 KEYENCE.setMegaMenu(); 22505 KEYENCE.divideMenu(); 22506 KEYENCE.setCategoryHeader(); 22507 KEYENCE.setChangeLanguage(); 22508 KEYENCE.setHomeCarousel(); 22509 KEYENCE.setHomeChangeCategory(); 22510 KEYENCE.setHomeAdjustHeight(); 22511 KEYENCE.setToggleCart(); 22512 KEYENCE.setCurrentNav(); 22513 KEYENCE.ctrlTelLink(); 22514 KEYENCE.ctrlFocusOrder(); 22515 if (doc.documentElement.classList.contains('theme-extendedSurvey')) { 22516 KEYENCE.setRichSurvey(); 22517 } 22518 KEYENCE.setStepRegistrationForm(); 22519 KEYENCE.setMultiStepForm(); 22520 KEYENCE.setCurrentPageNavi(); 22521 KEYENCE.setMenuConversion(); 22522 KEYENCE.ctrlHeaderForDynamicJumbotron(); 22523 KEYENCE.ctrlDynamicJumbotronVideo(); 22524 KEYENCE.setZaloChatBanner(); 22525 KEYENCE.setSuggestHigherSeriesModal(); 22526 KEYENCE.setCopyMovieUrl(); 22527 KEYENCE.Form.FormFilter.init(); 22528 KEYENCE.Form.TogglePassword.init(); 22529 KEYENCE.Form.InputInterlock.init(); 22530 KEYENCE.Form.SelectCountryNumber.init(); 22531 KEYENCE.Form.SMSCodeButton.init(); 22532 KEYENCE.Form.MobileNumberEdit.init(); 22533 KEYENCE.Form.BlankFieldValidator.init(); 22534 KEYENCE.Form.PatternMatchValidator.init(); 22535 KEYENCE.Form.MobileNumberValidator.init(); 22536 KEYENCE.Form.CommonSubmitValidator.init(); 22537 KEYENCE.Form.AvailableValidator.init(); 22538 KEYENCE.Form.RegisteredValidator.init(); 22539 KEYENCE.Form.ControlErrorDisplay.init(); 22540 KEYENCE.Form.OTPControl.init(); 22541 KEYENCE.Form.ToggleDisabled.init(); 22542 KEYENCE.Form.commonSendVerificationEmail.init(); 22543 KEYENCE.Form.SetMobileNumberToPhoneField.init(); 22544 KEYENCE.Form.ModalPasswordError.init(); 22545 KEYENCE.Form.MultiFactorAuthentication.init(); 22546 KEYENCE.DownloadedPopup.init(); 22547 KEYENCE.oneMorePR(); 22548 KEYENCE.omitText(); 22549 KEYENCE.displayRelatedSeoArticleList(); 22550 KEYENCE.setBasicTooltip(); 22551 KEYENCE.setSideNavigation(); 22552 const wechatLoginFlow = KEYENCE.Form.WechatLoginFlow; 22553 wechatLoginFlow.init(); 22554 }); 22555 22556 KEYENCE.polyfill = { 22557 setChildNodeRemove: function () { 22558 var arr = [Element.prototype, CharacterData.prototype, DocumentType.prototype]; 22559 22560 arr.forEach(function (item) { 22561 item.remove = item.remove || function () { 22562 this.parentNode.removeChild(this); 22563 }; 22564 }); 22565 }, 22566 setNodeListForEach: function () { 22567 if (win.NodeList && !NodeList.prototype.forEach) { 22568 NodeList.prototype.forEach = Array.prototype.forEach; 22569 } 22570 }, 22571 setElemClosest: function () { 22572 if (!Element.prototype.matches) { 22573 Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; 22574 } 22575 22576 if (!Element.prototype.closest) { 22577 Element.prototype.closest = function (s) { 22578 var el = this; 22579 22580 if (!doc.documentElement.contains(el)) { 22581 return null; 22582 } 22583 do { 22584 if (el.matches(s)) { 22585 return el; 22586 } 22587 el = el.parentElement || el.parentNode; 22588 } while (el !== null && el.nodeType === 1); 22589 22590 return null; 22591 }; 22592 } 22593 } 22594 }; 22595 22596 $.fn.tabChange = function (options) { 22597 options = $.extend({ 22598 selected: 0 22599 }, options); 22600 22601 var b = $(this).children('dl').attr('class'); 22602 22603 return this.each(function (e) { 22604 var $this = $(this); 22605 var $tab = $this.find('ul.' + b); 22606 var h; 22607 22608 if ($tab.length === 0) { 22609 $(this).prepend('<div class="TabNavigation"><ul class="' + b + '"></ul></div>'); 22610 22611 var g = $(this).children('dl').children('dt').length; 22612 22613 for (h = 0; h < g; h++) { 22614 var i = $(this).children('dl').children('dt').attr('class'); 22615 22616 $this.find('ul.' + b).append('<li class="' + i + '"><a href="javascript:void(0);">' + $(this).children('dl.' + b).children('dt').eq(h).html() + '</a></li>'); 22617 } 22618 } 22619 22620 $(this).children('dl.' + b).children('dd').css('display', 'none'); 22621 $(this).attr({ 22622 id: 'tabSwitching' + ++e 22623 }); 22624 22625 var d = $('#tabSwitching' + e).find('ul.' + b).children('li'); 22626 var f = $('#tabSwitching' + e).find('dl.' + b).children('dd'); 22627 22628 d.eq(options.selected).addClass('Current'); 22629 f.eq(options.selected).addClass('Current').css('display', 'block'); 22630 22631 d.on('click', function () { 22632 var b = d.index(this); 22633 22634 d.removeClass('Current'); 22635 $(this).addClass('Current'); 22636 f.removeClass('Current').css('display', 'none'); 22637 f.eq(b).addClass('Current').css('display', 'block'); 22638 }); 22639 }); 22640 }; 22641 22642 $.fn.stimulusTabChange = function (options) { 22643 var options = $.extend({}, options); 22644 22645 return this.each(function () { 22646 var tabs = this.querySelectorAll('[role="tab"]'); 22647 var tabpanels = this.querySelectorAll('[role="tabpanel"]'); 22648 22649 Array.prototype.forEach.call(tabs, function (tab, index) { 22650 var hiddenItems; 22651 22652 if (index === options.targetIndex) { 22653 tab.setAttribute('aria-selected', true); 22654 22655 hiddenItems = tab.querySelectorAll('[aria-hidden="false"]'); 22656 22657 Array.prototype.forEach.call(hiddenItems, function (hiddenItem) { 22658 hiddenItem.setAttribute('aria-hidden', true); 22659 }); 22660 } else { 22661 tab.setAttribute('aria-selected', false); 22662 22663 hiddenItems = tab.querySelectorAll('[aria-hidden="true"]'); 22664 22665 Array.prototype.forEach.call(hiddenItems, function (hiddenItem) { 22666 hiddenItem.setAttribute('aria-hidden', false); 22667 }); 22668 } 22669 }); 22670 22671 Array.prototype.forEach.call(tabpanels, function (panel, index) { 22672 if (index === options.targetIndex) { 22673 panel.setAttribute('aria-hidden', false); 22674 } else { 22675 panel.setAttribute('aria-hidden', true); 22676 } 22677 }); 22678 }); 22679 }; 22680 22681 $.fn.setRepairSuggestBox = function (options) { 22682 if (!this.length) { 22683 return this; 22684 } 22685 22686 var options = $.extend({ 22687 title: kpi_repair_page_suggest.title, 22688 readText: kpi_repair_page_suggest.leadText, 22689 btnText01: kpi_repair_page_suggest.btnText01, 22690 btnText02: kpi_repair_page_suggest.btnText02, 22691 limit: kpi_repair_page_suggest.limit, 22692 }, options); 22693 22694 return this.each(function () { 22695 var title = options.title; 22696 var text = options.readText; 22697 var btnText01 = options.btnText01; 22698 var btnText02 = options.btnText02; 22699 var limit = options.limit; 22700 var visitedCountCookie = $.cookie('visitedCount'); 22701 var urlPath = location.pathname; 22702 var items = {}; 22703 22704 if (!visitedCountCookie) { 22705 run(this); 22706 } 22707 22708 function run(trigger) { 22709 var consentCookie = $.cookie('CookieConsent'); 22710 22711 if (!trigger) { 22712 return; 22713 } 22714 22715 items.$cookieBotScript = $('#Cookiebot'); 22716 22717 if (!items.$cookieBotScript.length || (items.$cookieBotScript.length && consentCookie)) { 22718 trigger.click(); 22719 22720 setItems();
22721 updateText(); 22722 setCookie(); 22723 } else if (items.$cookieBotScript.length && !consentCookie) { 22724 setMutationObserver(trigger); 22725 } 22726 }; 22727 22728 function setItems() { 22729 items = { 22730 $title: $('#js-repairSuggest-titleTarget'), 22731 $text: $('#js-repairSuggest-textTarget'), 22732 $continueButton: $('#js-repairSuggest-continueTextTarget'), 22733 $selectButton: $('#js-repairSuggest-selectTextTarget'), 22734 $cookieTrigger: $('#js-suggestCookie-trigger'), 22735 }; 22736 }; 22737 22738 function updateText() { 22739 if (!items.$text.length || 22740 !items.$continueButton.length || 22741 !items.$selectButton.length) { 22742 return; 22743 } 22744 22745 if (items.$title.length) { 22746 items.$title.text(title); 22747 } 22748 22749 items.$text.text(text); 22750 items.$continueButton.text(btnText01); 22751 items.$selectButton.text(btnText02); 22752 }; 22753 22754 function setCookie() { 22755 if (!items.$cookieTrigger.length) { 22756 return; 22757 } 22758 22759 items.$cookieTrigger.on('click', function () { 22760 $.cookie('visitedCount', '1', { 22761 expires: limit, 22762 path: urlPath, 22763 domain: kpi_cookiesettings.cookieDomain, 22764 }); 22765 }); 22766 }; 22767 22768 function setMutationObserver(trigger) { 22769 var mutation = null; 22770 var config = { 22771 subtree: true, 22772 attributeFilter: ['class'], 22773 }; 22774 var suggestOpened = false; 22775 var targetId = 'CybotCookiebotDialog'; 22776 var targetClass = 'CybotCookiebotDialogActive'; 22777 22778 function showSuggest(record) { 22779 if (record[0].target.id === targetId) { 22780 if (!$('#' + record[0].target.id).hasClass(targetClass) && !suggestOpened) { 22781 $(trigger).trigger('click'); 22782 22783 setItems(); 22784 updateText(); 22785 setCookie(); 22786 22787 suggestOpened = true; 22788 mutation.disconnect(); 22789 } 22790 } 22791 }; 22792 22793 mutation = new MutationObserver(showSuggest); 22794 22795 mutation.observe(doc.body, config); 22796 }; 22797 }); 22798 }; 22799 22800 /* Tab Layout 22801 ---------------------------------------------------------------- */ 22802 $(function () { 22803 var kpi_tabSwitchingClass = $('.TabSwitching'); 22804 var $suz_downloadHistoryTab = $("#suz_downloadHistoryTab"); 22805 var suz_downloadHistoryTabVal; 22806 var currentTabIndex = 0; 22807 22808 if (kpi_tabSwitchingClass.length) { 22809 kpi_tabSwitchingClass.tabChange(); 22810 } 22811 22812 if ($suz_downloadHistoryTab.length) { 22813 suz_downloadHistoryTabVal = $suz_downloadHistoryTab.val(); 22814 22815 $('.js-downloadHistoryTabButton').each(function (index) { 22816 if ($(this).find(':contains(' + suz_downloadHistoryTabVal + ')').length) { 22817 currentTabIndex = index; 22818 22819 return false; 22820 } 22821 22822 return true; 22823 }); 22824 22825 $('#tabSwitching1').stimulusTabChange({ 22826 targetIndex: currentTabIndex 22827 }); 22828 } 22829 }); 22830 22831 22832 /* end Tab Layout 22833 ---------------------------------------------------------------- */ 22834 22835 /* Language Selecter 22836 ---------------------------------------------------------------- */ 22837 $(function () { 22838 var kpi_changeLanguageDomain = { 22839 defaultPath: location.href.split('/') 22840 ,pagePath:'' 22841 ,topFlg:false 22842 ,init: function() { 22843 $('.TabSwitching').tabChange(); 22844 // $('table.Stripe tbody').find('tr:odd').addClass('EvenRow'); 22845 if(kpi_domainSettings.isDomain) {// After Delete
22846 var _pagePath = this.pagePath; 22847 if(this.topFlg==false) { 22848 $('.js-changeRegionPath a').each(function() { 22849 var href = $(this).attr('href').split('/'); 22850 var newHref = href[0] + '/' + href[1] + '/' + href[2]; 22851 22852 if( suz_search_Path.is_subLangPath(href[3]) ){ 22853 newHref += '/' + href[3]; 22854 } 22855 newHref = newHref + _pagePath; 22856 $(this).attr('href', newHref); 22857 }) 22858 } 22859 } 22860 } 22861 ,initLanguageList: function() { 22862 if(kpi_domainSettings.isDomain) {// After Delete 22863 var _pagePath = this.pagePath; 22864 if(this.topFlg==false) { 22865 $('#js-changeLanguage a').each(function() { 22866 var href = $(this).attr('href').split('/'); 22867 var newHref = ''; 22868 22869 if( suz_search_Path.is_subLangPath(href[1]) ){ 22870 newHref += '/' + href[1]; 22871 } 22872 newHref = newHref + _pagePath; 22873 $(this).attr('href', newHref); 22874 }) 22875 } 22876 } 22877 } 22878 ,setup: function() { 22879 if(kpi_domainSettings.isDomain) {// After Delete 22880 this.pagePath = ''; 22881 for(var i=0;i<this.defaultPath.length;i++) { 22882 if(i > 2) { 22883 if( !( i==3 && suz_search_Path.is_subLangPath(this.defaultPath[i]) == true ) ){ 22884 this.pagePath += '/' + this.defaultPath[i]; 22885 } 22886 } 22887 } 22888 var tempPath = this.pagePath.split('/'); 22889 this.topFlg = false; 22890 if(tempPath[1] == ''){ 22891 this.topFlg = true; 22892 } 22893 for(i=0;i<suz_search_Path.topPageDecision.length;i++){ 22894 if(tempPath[1].indexOf(suz_search_Path.topPageDecision[i],0)>=0){ 22895 this.topFlg = true; 22896 break; 22897 } 22898 } 22899 } 22900 this.initLanguageList(); 22901 } 22902 }; 22903 kpi_changeLanguageDomain.setup(); 22904 22905 var kpi_languageSerecter = 22906 win.kpi_originalDomain.indexOf(window.location.host) > -1 ? 22907 kpi_domainSettings.searchDomain + kpi_loadingfiles.RegionSelectHtml + ' #ModalContent' : 22908 '/modal/region_selector.html' + ' #ModalContent'; 22909 $('#js-changeRegion-trigger').colorbox({ 22910 speed: kpi_usersettings.ModalOpenSpd, 22911 initialWidth: "450px", 22912 height: "600px", 22913 href: kpi_languageSerecter, 22914 title: kpi_translation.SelectRegionMsg, 22915 closeButton: false, 22916 onOpen:function(){ 22917 $('#kpi_modalbox').removeClass('ModalLarge'); 22918 $('#cboxOverlay').addClass('of-regionSelector'); 22919 }, 22920 onComplete:function(){ 22921 var root = $('#colorbox'); 22922 var modalWrap = root.find('#cboxWrapper'); 22923 var modalCont = root.find('#cboxContent'); 22924 var modalLoaded = root.find('#cboxLoadedContent'); 22925 var modalInner = modalLoaded.find('#ModalContent'); 22926 var tabPanel = modalInner.find('dl.Tab dd'); 22927 var modalCloseId = 'cboxClose'; 22928 var escTxt = kpi_translation.Close; 22929 var originalDomainRegExp = new RegExp('^' + win.kpi_originalDomain + '\/'); 22930 var $modalClose; 22931 var tab; 22932 22933 if (modalInner.hasClass('of-regionSelector')) { 22934 $('#cboxTitle').addClass('of-regionSelector'); 22935 root.addClass('of-regionSelector'); 22936 } 22937 22938 if (!$('#' + modalCloseId).length) { 22939 modalInner.prepend('<button id="' + modalCloseId + '"><span>' + escTxt + '</span></button>'); 22940 } 22941 22942 $modalClose = modalInner.find('#' + modalCloseId); 22943 22944 if ($modalClose.length) { 22945 $modalClose.show(); 22946 $modalClose[0].focus(); 22947 } 22948 22949 function stopBubbling(target) { 22950 target.off('click').on('click', function (e) { 22951 e.stopPropagation(); 22952 }); 22953 } 22954 22955 function modalClose(target) { 22956 target.off('click').on('click', function () { 22957 $.colorbox.close(); 22958 }); 22959 } 22960 22961 stopBubbling(modalInner); 22962 stopBubbling($('#cboxTitle'));
22963 modalClose(modalWrap); 22964 modalClose(modalCont); 22965 modalClose($modalClose); 22966 22967 modalInner.find('.MordalWindowCloseBtn').on('click', function (e) { 22968 e.preventDefault(); 22969 $.colorbox.close(); 22970 }); 22971 22972 kpi_changeLanguageDomain.init(); 22973 22974 tab = modalInner.find('ul.Tab li'); 22975 22976 tabPanel.find('a').each(function () { 22977 var $this = $(this); 22978 var href = $this.attr('href'); 22979 var closestTabPanel = $this.closest(tabPanel); 22980 22981 if (originalDomainRegExp.test(href)) { 22982 tab.removeClass('Current'); 22983 tab.eq((closestTabPanel.index() + 1) / 2 - 1).addClass('Current'); 22984 tabPanel.removeClass('Current').hide(); 22985 closestTabPanel.addClass('Current').show(); 22986 } 22987 }); 22988 }, 22989 onClosed:function(){ 22990 $('#cboxTitle').removeClass('of-regionSelector'); 22991 $('#cboxOverlay').removeClass('of-regionSelector'); 22992 $('#colorbox').removeClass('of-regionSelector'); 22993 } 22994 }); 22995 }); 22996 /* end Language Selecter 22997 ---------------------------------------------------------------- */ 22998 22999 /* View More 23000 ---------------------------------------------------------------- */ 23001 $(function () { 23002 var kpi_threadLoading = $('.ThreadLoading'); 23003 23004 if (kpi_threadLoading.length) { 23005 var kpi_threadLoadingSetting = { 23006 tableNum: kpi_threadLoading.length, 23007 threadLoadingTable: $('table.ListViewTable', kpi_threadLoading), 23008 init: function () { 23009 for (var k = 0; k < this.tableNum; k++) { 23010 for (var i = 0; i < kpi_usersettings.MoreViewNum; i++) { 23011 this.threadLoadingTable.eq(k).children('tbody').children('tr').eq(i).removeClass('Hide').addClass('Check'); 23012 } 23013 23014 var trNum = this.threadLoadingTable.eq(k).children('tbody').children('tr').length; 23015 23016 if (trNum <= kpi_usersettings.MoreViewNum) { 23017 this.threadLoadingTable.eq(k).next('p.ViewMore').hide(); 23018 } else { 23019 this.threadLoadingTable.eq(k).next('p.ViewMore').children('a').on('click', function (e) { 23020 e.preventDefault(); 23021 var selfWrap = $(this).parent('p'); 23022 var showNum = selfWrap.prev('table').children('tbody').find('.Check').length; 23023 var nextShow = showNum + kpi_usersettings.MoreViewNum; 23024 23025 for (var j = showNum; j < nextShow; j++) { 23026 selfWrap.prev('table').children('tbody').children('tr').eq(j).fadeIn(kpi_usersettings.ViewMoreFadeInSpd, function () { 23027 var trHideNum = selfWrap.prev('table').children('tbody').find('.Hide').length; 23028 23029 if (trHideNum <= 0) { 23030 selfWrap.fadeOut(kpi_usersettings.ViewMoreFadeOutSpd).hide(); 23031 } 23032 }).removeClass('Hide').addClass('Check'); 23033 } 23034 }); 23035 } 23036 } 23037 } 23038 }; 23039 23040 kpi_threadLoadingSetting.init(); 23041 } 23042 }); 23043 /* end View More 23044 ---------------------------------------------------------------- */ 23045 23046 /* Downloadlist 23047 ---------------------------------------------------------------- */ 23048 $(function () { 23049 var kpi_downloadlistScript = { 23050 downloadListLinks: $('#DownloadListLinks'), 23051 downloadList: $('.js-downloadList'), 23052 downloadListTable: $('#DownloadListLinks table.DefaultViewTable'), 23053 listTableTr: $('.js-downloadList > li'), 23054 recentlyObject: $('#RecentlyDownloadedItems'), 23055 batchDownloadButton: $('input#BatchDownloadButton'), 23056 fileSizeObj: $('#DownloadListTotalFileSize'), 23057 batchLink: $('#DownloadListLinks form').attr('action'), 23058 errorMsg: $('.js-downloadErrorMessage'), 23059 listNum: 0, 23060 downloadObjNum: 0, 23061 checkedObjNum: 0, 23062 totalFileSize: 0, 23063 limitFileSize: 50, 23064 singleFileSizes: [], 23065 downloadItems: [], 23066 assetIds: [], 23067 severErrorMsg: '', 23068 scrollingElement: null, 23069 init: function () { 23070 this._initAjaxSetup(); 23071 23072 /* Download List related */ 23073 if (this.downloadList.length) { 23074 this.listNum = this.listTableTr.length; 23075 this.downloadObjNum = this.listNum;
23076 this.scrollingElement = this.getScrollingElement(); 23077 this.errorMsg.hide(); 23078 this.hideRecentlyObject(); 23079 this.limitFileSize = Number($('#DownloadListLimitFileSize').text()); 23080 // this.bindClickCheckBox(); 23081 this.bindClickDownloadButton(); 23082 this.updateTotalFileSize(); 23083 this.checkedObjNum = this.listNum; 23084 kpi_downloadlistScript.sizeErrorHandling(); 23085 23086 if (kpi_downloadlistScript.totalFileSize < kpi_downloadlistScript.limitFileSize) { 23087 kpi_downloadlistScript.enableBatchDownloadButton(); 23088 kpi_downloadlistScript.bindClickBatchDownloadButton(); 23089 } 23090 } 23091 }, 23092 hideRecentlyObject: function () { 23093 $('tbody', this.recentlyObject).children('tr').hide(); 23094 }, 23095 updateTotalFileSize: function () { 23096 var i; 23097 var asset; 23098 var fileSizeText; 23099 23100 for (i = 0; i < this.listNum; i++) { 23101 fileSizeText = this.downloadList.find('li').eq(i).find('.js-downloadSingleSize').text(); 23102 this.singleFileSizes[i] = Number(fileSizeText); 23103 this.totalFileSize += this.singleFileSizes[i]; 23104 asset = this.listTableTr.eq(i).attr('class'); 23105 asset = asset.split(/\s+/); 23106 this.assetIds[i] = asset[0]; 23107 this.downloadItems[i] = 1; 23108 } 23109 23110 this.fileSizeObj.text(this.totalFileSize.toFixed(2)); 23111 }, 23112 bindClickCheckBox: function () { 23113 this.downloadListTable.find('input.CustomCheckbox').on('click', function () { 23114 var num = $(this).closest('tr').index(); 23115 var isChecked = $(this).next('span').hasClass('checked'); 23116 23117 if (isChecked) { 23118 kpi_downloadlistScript.downloadItems[num] = 1; 23119 } else { 23120 kpi_downloadlistScript.downloadItems[num] = 0; 23121 } 23122 23123 kpi_downloadlistScript.fileSizeChange(); 23124 }); 23125 }, 23126 bindClickDownloadButton: function () { 23127 this.downloadList.find('a.js-myKeyenceDownload-button').on('click', function (e) { 23128 var thisNum = $(this).closest('li').index(); 23129 23130 if ($('#RecentlyDownloadedItems table:hidden').length) { 23131 kpi_downloadlistScript.recentlyObject.show(); 23132 } 23133 23134 $('tbody tr', kpi_downloadlistScript.recentlyObject).eq(thisNum).show(); 23135 kpi_downloadlistScript.removeList(kpi_downloadlistScript.assetIds[thisNum]); 23136 kpi_downloadlistScript.itemDelete(this); 23137 }); 23138 }, 23139 bindClickBatchDownloadButton: function () { 23140 var self = this; 23141 23142 kpi_downloadlistScript.batchDownloadButton.on('click', function (e) { 23143 var ids = []; 23144 var arrayNum = 0; 23145 var i; 23146 var checkcheck; 23147 var targetTop; 23148 23149 if ($('table:hidden', self.recentlyObject).length) { 23150 self.recentlyObject.show(); 23151 } 23152 23153 for (i = 0; i < self.listNum; i++) { 23154 checkcheck = self.downloadItems[i]; 23155 23156 if (checkcheck > 0) { 23157 ids[arrayNum] = self.assetIds[i]; 23158 arrayNum += 1; 23159 $('tbody tr', self.recentlyObject).eq(i).show(); 23160 self.downloadList.children('li').eq(i).hide(); 23161 self.downloadItems[i] = 0; 23162 self.fileSizeChange(); 23163 self.downloadObjNum -= 1;
23164 23165 if (self.downloadObjNum < 1) { 23166 self.downloadList.fadeOut(kpi_usersettings.DeleteBtnFadeOutSpd); 23167 $('.js-batchDownload').fadeOut(kpi_usersettings.DeleteBtnFadeOutSpd); 23168 } 23169 } 23170 } 23171 23172 if (self.downloadList.length) { 23173 targetTop = self.downloadListLinks.offset().top; 23174 $(self.scrollingElement).animate({scrollTop: targetTop}, kpi_usersettings.SmoothScrollSpd, 'swing'); 23175 } 23176 23177 self.removeList(ids.join()); 23178 e.preventDefault(); 23179 23180 $('form', self.downloadListLinks).each(function () { 23181 this.submit(); 23182 }); 23183 }); 23184 }, 23185 itemDelete: function (item) { 23186 var $item = $(item); 23187 var closest = $item.closest('li'); 23188 23189 closest.fadeOut(kpi_usersettings.DeleteBtnFadeOutSpd, function () { 23190 var thisTrNum = closest.index(); 23191 23192 kpi_downloadlistScript.downloadItems[thisTrNum] = 0; 23193 kpi_downloadlistScript.downloadObjNum -= 1;
23194 kpi_downloadlistScript.fileSizeChange(); 23195 23196 if (kpi_downloadlistScript.downloadObjNum < 1) { 23197 kpi_downloadlistScript.downloadList.fadeOut(kpi_usersettings.DeleteBtnFadeOutSpd); 23198 kpi_downloadlistScript.batchDownloadButton.closest('.js-batchDownload').fadeOut(kpi_usersettings.DeleteBtnFadeOutSpd); 23199 } 23200 }); 23201 closest.children('td').fadeOut(kpi_usersettings.DeleteBtnFadeOutSpd); 23202 }, 23203 fileSizeChange: function () { 23204 var i; 23205 var checkcheck; 23206 23207 kpi_downloadlistScript.totalFileSize = 0; 23208 kpi_downloadlistScript.checkedObjNum = 0; 23209 23210 for (i = 0; i < kpi_downloadlistScript.listNum; i++) { 23211 checkcheck = kpi_downloadlistScript.downloadItems[i]; 23212 23213 if (checkcheck > 0) { 23214 kpi_downloadlistScript.totalFileSize += kpi_downloadlistScript.singleFileSizes[i]; 23215 kpi_downloadlistScript.checkedObjNum += 1; 23216 } 23217 } 23218 23219 kpi_downloadlistScript.fileSizeObj.text(kpi_downloadlistScript.totalFileSize.toFixed(2)); 23220 kpi_downloadlistScript.sizeErrorHandling(); 23221 }, 23222 sizeErrorHandling: function () { 23223 var self = this; 23224 23225 if (self.checkedObjNum > 1 && self.totalFileSize >= self.limitFileSize) { 23226 self.errorMsg.show(); 23227 self.disableBatchDownloadButton(); 23228 } else if (self.totalFileSize >= self.limitFileSize) { 23229 self.errorMsg.show(); 23230 self.disableBatchDownloadButton(); 23231 } else if (self.totalFileSize <= 0) { 23232 self.errorMsg.hide(); 23233 self.disableBatchDownloadButton(); 23234 } else if (self.batchDownloadButton.closest('.prd-button').attr('aria-disabled') === 'true') { 23235 self.errorMsg.hide(); 23236 self.enableBatchDownloadButton(); 23237 self.bindClickBatchDownloadButton(); 23238 } 23239 }, 23240 enableBatchDownloadButton: function () { 23241 var self = this; 23242 23243 self.batchDownloadButton.closest('.prd-button').attr('aria-disabled', false); 23244 self.batchDownloadButton.prop('disabled', false); 23245 }, 23246 disableBatchDownloadButton: function () { 23247 var self = this; 23248 23249 self.batchDownloadButton.closest('.prd-button').attr('aria-disabled', true); 23250 self.batchDownloadButton.off().prop('disabled', true); 23251 }, 23252 removeList: function (assetId) { 23253 $.ajax({
23254 url: kpi_downloadListSettings.listApiUrl + kpi_downloadListSettings.listApiMethodRemoveList, 23255 data: { 23256 'assetId': assetId 23257 }, 23258 async: false, 23259 timeout: kpi_usersettings.AjaxTimeoutSeconds, 23260 success: function (data) { 23261 if (data.errorFlg) { 23262 // no error 23263 } else { 23264 kpi_downloadlistScript.displayErrorMsg(); 23265 } 23266 }, 23267 complete: function (data) {} 23268 }); 23269 }, 23270 _initAjaxSetup: function () { 23271 $.ajaxSetup({ 23272 type: 'GET', 23273 dataType: 'json', 23274 timeout: kpi_usersettings.AjaxTimeoutSeconds 23275 }); 23276 }, 23277 displayErrorMsg: function () { 23278 kpi_downloadlistScript.errorMsg.children('p').text(kpi_downloadlistScript.severErrorMsg); 23279 kpi_downloadlistScript.errorMsg.show(); 23280 }, 23281 getScrollingElement: function () { 23282 if ('scrollingElement' in document) { 23283 return document.scrollingElement; 23284 } 23285 if (navigator.userAgent.indexOf('WebKit') !== -1) { 23286 return document.body; 23287 } 23288 23289 return document.documentElement; 23290 }, 23291 getItemCount: function () { 23292 var count = this.downloadTargets.length; 23293 23294 if (count === 0) { 23295 count = this.downloadList.children('li').length; 23296 } 23297 23298 return count; 23299 } 23300 }; 23301 23302 if ($('#DownloadListLinks').length) { 23303 kpi_downloadlistScript.init(); 23304 } 23305 }); 23306 /* end Downloadlist 23307 ---------------------------------------------------------------- */ 23308 23309 /* Series Toggle 23310 ---------------------------------------------------------------- */ 23311 $(function () { 23312 var seriesToggle = {}; 23313 23314 seriesToggle.init = function () { 23315 var self = this; 23316 23317 self.classNames = { 23318 hide: 'is-hide', 23319 open: 'is-open', 23320 text: 'Inner', 23321 toggle: 'js-setSeriesToggle', 23322 toggleTrigger: 'js-setSeriesToggle-trigger', 23323 toggleTarget: 'js-setSeriesToggle-target' 23324 }; 23325 23326 self.idNames = { 23327 ariaControls: 'js-setSeriesToggle-item' 23328 }; 23329 23330 self.elemNames = { 23331 button: 'BUTTON' 23332 }; 23333 23334 self.attributeNames = { 23335 ariaExpanded: 'aria-expanded', 23336 ariaControls: 'aria-controls', 23337 dataOpen: 'open-label', 23338 dataClose: 'close-label', 23339 roleButton: 'button' 23340 }; 23341 23342 self.elems = { 23343 $toggle: $('.' + self.classNames.toggle), 23344 $toggleTrigger: $('.' + self.classNames.toggleTrigger), 23345 $toggleTarget: $('.' + self.classNames.toggleTarget) 23346 }; 23347 }; 23348 23349 seriesToggle.fn = {}; 23350 23351 seriesToggle.fn.init = function () { 23352 var self = this; 23353 23354 if (!seriesToggle.elems.$toggle.length) { 23355 return; 23356 } 23357 23358 self.setClass(); 23359 self.setAttribute(); 23360 }; 23361 23362 seriesToggle.fn.setClass = function () { 23363 var $target = null; 23364 23365 if (!seriesToggle.elems.$toggleTrigger.length || !seriesToggle.elems.$toggleTarget.length) { 23366 return; 23367 } 23368 23369 seriesToggle.elems.$toggle.each(function () { 23370 var $this = $(this); 23371 23372 $target = $this.find('.' + seriesToggle.classNames.toggleTarget).first(); 23373 23374 if (!$this.hasClass(seriesToggle.classNames.open)) { 23375 $target.addClass(seriesToggle.classNames.hide); 23376 } 23377 }); 23378 }; 23379 23380 seriesToggle.fn.setAttribute = function () { 23381 var $trigger = null; 23382 var $target = null; 23383 23384 seriesToggle.elems.$toggle.each(function (i) { 23385 var $this = $(this); 23386 23387 $trigger = $this.find('.' + seriesToggle.classNames.toggleTrigger).first(); 23388 $target = $this.find('.' + seriesToggle.classNames.toggleTarget).first(); 23389 23390 if (!$trigger.length || !$target.length) { 23391 return; 23392 } 23393 23394 seriesToggle.fn.setAria($this, $trigger, $target, i); 23395 seriesToggle.fn.setRole($trigger); 23396 seriesToggle.fn.changeClass($this, $trigger, $target); 23397 }); 23398 }; 23399 23400 seriesToggle.fn.changeClass = function ($toggle, $trigger, $target) { 23401 $trigger.on('click', function (e) { 23402 var $self = $(this); 23403 23404 e.preventDefault(); 23405 23406 if ($target.length) { 23407 seriesToggle.fn.setLabel($toggle, $self); 23408 23409 if ($toggle.hasClass(seriesToggle.classNames.open)) { 23410 $toggle.removeClass(seriesToggle.classNames.open); 23411 $target.addClass(seriesToggle.classNames.hide); 23412 } else { 23413 $toggle.addClass(seriesToggle.classNames.open); 23414 $target.removeClass(seriesToggle.classNames.hide); 23415 } 23416 23417 seriesToggle.fn.changeAria($toggle, $self); 23418 } 23419 }); 23420 }; 23421 23422 seriesToggle.fn.setAria = function ($toggle, $trigger, $target, i) { 23423 if ($toggle.hasClass(seriesToggle.classNames.open)) { 23424 $trigger.attr(seriesToggle.attributeNames.ariaExpanded, true); 23425 } else { 23426 $trigger.attr(seriesToggle.attributeNames.ariaExpanded, false); 23427 } 23428 23429 $trigger.attr(seriesToggle.attributeNames.ariaControl
23429s, seriesToggle.idNames.ariaControls + (i + 1)); 23430 $target.attr('id', seriesToggle.idNames.ariaControls + (i + 1)); 23431 }; 23432 23433 seriesToggle.fn.setRole = function ($trigger) { 23434 var elemName = $trigger.prop("tagName"); 23435 23436 if (elemName !== seriesToggle.elemNames.button) { 23437 $trigger.attr('role', seriesToggle.attributeNames.roleButton); 23438 } 23439 }; 23440 23441 seriesToggle.fn.setLabel = function ($toggle, $trigger) { 23442 var label = null; 23443 var $targetLabel = $trigger.find('.' + seriesToggle.classNames.text); 23444 23445 if ($toggle.hasClass(seriesToggle.classNames.open)) { 23446 label = $trigger.data(seriesToggle.attributeNames.dataOpen); 23447 } else { 23448 label = $trigger.data(seriesToggle.attributeNames.dataClose); 23449 } 23450 23451 $targetLabel.text(label); 23452 }; 23453 23454 seriesToggle.fn.changeAria = function ($toggle, $trigger) { 23455 if ($toggle.hasClass(seriesToggle.classNames.open)) { 23456 $trigger.attr(seriesToggle.attributeNames.ariaExpanded, true); 23457 } else { 23458 $trigger.attr(seriesToggle.attributeNames.ariaExpanded, false); 23459 } 23460 }; 23461 23462 seriesToggle.init(); 23463 seriesToggle.fn.init(); 23464 }); 23465 /* end Series Toggle 23466 ---------------------------------------------------------------- */ 23467 23468 /* Discontinue Models Show or Hide Change 23469 ---------------------------------------------------------------- */ 23470 $(function () { 23471 var kpi_includeDiscontinuedProducts = $('#IncludeDiscontinuedProducts'); 23472 if(kpi_includeDiscontinuedProducts.length) { 23473 var kpi_discontinuedProductsCheck = { 23474 init: function () { 23475 var customCheckboxObj = $('input[id="IncludeDiscontinuedProducts"]').parent('label'); 23476 customCheckboxObj.on({ 23477 'check:on':function (ev, data) { 23478 $.cookie('kpi_discon', 1,{ path: '/', domain: kpi_cookiesettings.cookieDomain }); 23479 }, 23480 'check:off':function (ev, data) { 23481 $.cookie('kpi_discon', 0,{ path: '/', domain: kpi_cookiesettings.cookieDomain }); 23482 } 23483 }); 23484 if ($.cookie('kpi_discon') == 1) { 23485 $('input[id="IncludeDiscontinuedProducts"]').checkbox('checkOn', $('input[id="IncludeDiscontinuedProducts"]').attr('id')); 23486 } 23487 } 23488 }; 23489 kpi_discontinuedProductsCheck.init(); 23490 } 23491 var kpi_switchDiscontinuedModels = $('#SwitchDiscontinuedModels'); 23492 var kpi_discontinuedDisplaySwitching = $('.DiscontinuedDisplaySwitching'); 23493 if(kpi_switchDiscontinuedModels.length) { 23494 var kpi_discontinuedModelsCheck = { 23495 init: function() { 23496 if($.cookie('kpi_discon') == 1) { 23497 $('li', kpi_discontinuedDisplaySwitching).eq(0).addClass('Current'); 23498 $('li', kpi_discontinuedDisplaySwitching).eq(1).removeClass('Current'); 23499 $('.DiscontinuedTarget').each(function() { $(this).addClass('Show'); }); 23500 $('.DisconCountMessage').toggleClass('Show').toggleClass('Hide'); 23501 } 23502 } 23503 }; 23504 kpi_discontinuedModelsCheck.init(); 23505 } 23506 if(kpi_discontinuedDisplaySwitching.length) { 23507 $('a', kpi_discontinuedDisplaySwitching).on('click', function(e) { 23508 e.preventDefault(); 23509 if(!$(this).parent('li').hasClass('Current')) { 23510 var num = $('a', kpi_discontinuedDisplaySwitching).index(this); 23511 if(num == 0) { 23512 $.cookie('kpi_discon', 1,{ path: '/', domain: kpi_cookiesettings.cookieDomain }); 23513 } else { 23514 $.cookie('kpi_discon', 0,{ path: '/', domain: kpi_cookiesettings.cookieDomain }); 23515 } 23516 $('li', kpi_discontinuedDisplaySwitching).removeClass('Current'); 23517 $(this).parent('li').addClass('Current'); 23518 $('.DiscontinuedTarget').each(function() { $(this).toggleClass('Show'); }); 23519 $('.DisconCountMessage').toggleClass('Show').toggleClass('Hide'); 23520 } 23521 }); 23522 } 23523 });
23524 /* end Discontinue Models Show or Hide Change 23525 ---------------------------------------------------------------- */ 23526 23527 /* ProductsTabNav 23528 ---------------------------------------------------------------- */ 23529 $(function () { 23530 var $root = $('.JSSetTab'); 23531 var activeClass = 'IsActive'; 23532 var dataTrigger = 'data-tab-trigger'; 23533 var dataTarget = 'data-tab-target'; 23534 var $tabTarget = null; 23535 var $tabPanel = null; 23536 var $tabTrigger = null; 23537 var $this = null; 23538 var targetName = null; 23539 var $trigger = null; 23540 var $triggerRoot = null; 23541 23542 if (!$root[0]) { 23543 return; 23544 } 23545 23546 $root.each(function () { 23547 $this = $(this); 23548 $tabTrigger = $this.find('[' + dataTrigger + ']'); 23549 $tabPanel = $this.find('[' + dataTarget + ']'); 23550 23551 $tabPanel.hide(); 23552 $tabPanel.eq(0).show(); 23553 $tabTrigger.eq(0).addClass(activeClass); 23554 23555 $tabTrigger.on('click', function (e) { 23556 e.preventDefault(); 23557 23558 $trigger = $(this); 23559 $triggerRoot = $trigger.closest($root); 23560 23561 if ($trigger.hasClass(activeClass)) { 23562 return; 23563 } 23564 23565 targetName = $trigger.attr(dataTrigger); 23566 $tabTarget = $triggerRoot.find('[' + dataTarget + '="' + targetName + '"]'); 23567 $triggerRoot.find('.' + activeClass).removeClass(activeClass); 23568 23569 if (!$trigger.hasClass(activeClass)) { 23570 $trigger.addClass(activeClass); 23571 $triggerRoot.find('[' + dataTarget + ']').hide(); 23572 23573 if (!$tabTarget.is(':animated')) { 23574 $tabTarget.fadeIn(200); 23575 } 23576 } 23577 }); 23578 }); 23579 }); 23580 /* end ProductsTabNav 23581 ---------------------------------------------------------------- */ 23582 23583}(window, window.document, window.jQuery, (function (win, doc) { 23584 'use strict'; 23585 23586 var SetUtility = function () { 23587 // do nothing. 23588 }; 23589 23590 SetUtility.prototype = { 23591 getJSON: function (loadPath) { 23592 return new Promise(function (resolve, reject) { 23593 var xhr = new XMLHttpRequest(); 23594 23595 xhr.open('GET', loadPath); 23596 xhr.onload = function () { 23597 if (xhr.status === 200) { 23598 resolve(JSON.parse(xhr.response)); 23599 } else { 23600 reject(new Error(xhr.statusText)); 23601 } 23602 }; 23603 xhr.onerror = function () { 23604 reject(new Error('Network Error')); 23605 }; 23606 xhr.send(null); 23607 }); 23608 }, 23609 getCookie: function (name) { 23610 var cookies = doc.cookie.split('; '); 23611 var i; 23612 var l; 23613 var arr = []; 23614 23615 for (i = 0, l = cookies.length; i < l; i++) { 23616 if (cookies[i].indexOf(name + '=') === 0) { 23617 arr.push(cookies[i].substring(name.length + 1)); 23618 } 23619 } 23620 23621 return arr[0]; 23622 }, 23623 setCookie: function (name, value) { 23624 var date = new Date(); 23625 // var pathname = win.location.pathname; 23626 var path = '/'; 23627 23628 // if (/^\/frfr\//.test(pathname)) { 23629 // path = '/frfr/'; 23630 // } else if (/^\/nlnl\//.test(pathname)) { 23631 // path = '/nlnl/'; 23632 // } else if (/^\/dede\//.test(pathname)) { 23633 // path = '/dede/'; 23634 // } else { 23635 // path = '/'; 23636 // } 23637 23638 date.setDate(date.getDate() + 90); 23639 doc.cookie = name + '=' + value + '; expires=' + date.toUTCString() + '; path=' + path; 23640 }, 23641 removeOverlapArr: function (array) { 23642 return array.filter(function (x, i, self) { 23643 return self.indexOf(x) === i; 23644 }); 23645 }, 23646 removeEmptyArr: function (array) { 23647 return array.filter(function (x) { 23648 return !(x === null || x === undefined || x === ''); 23649 }); 23650 } 23651 }; 23652 23653 return new SetUtility(); 23654}(window, window.document)))); 23655 23656function newFunction($) { 23657 $(this).colorbox.resize(); 23658} 23659 23660/* Enquete Common 23661 ---------------------------------------------------------------- */ 23662(function (win, doc, $, util) { 23663 'use strict'; 23664 23665 var ENQUETE = {}; 23666 23667 var idNames = { 23668 survey: 'SurveyForm', 23669 richSurvey: 'js-setRichSurvey', 23670 form: 'suz_registrationForm', 23671 header: 'js-controlHeader', 23672 enqueteId: 'enqueteId', 23673 }; 23674 23675 var classNames = { 23676 isRequired: 'IsRequired', 23677 isHide: 'IsHide', 23678 titleAndText: 'TitleAndText', 23679 customCheckbox: 'CustomCheckbox', 23680 customRadio: 'CustomRadio', 23681 customText: 'CustomText',
23682 customTextArea: 'CustomTextArea', 23683 title: 'Title', 23684 title02: 'EnqTitle02', 23685 errorMessage: 'ErrorMessage', 23686 isError: 'is-error', 23687 inputGroup: 'prd-inputGroup', 23688 enquete2019: 'enquete2019' 23689 }; 23690 23691 var options = { 23692 errorText: '<div class="ErrorMessage"><p>{0}</p></div>', 23693 errorText2019: '<div class="prd-form-errorTextOuter"><p class="prd-form-errorText of-primary prd-utility-marginBottom-0 ErrorMessage suz_errorMsg js-formErrText">{0}</p></div>' 23694 }; 23695 23696 if ($ === undefined) { 23697 return; 23698 } 23699 23700 ENQUETE = (function (enquate) { 23701 enquate.VERSION = { 23702 NONE: -1, 23703 SURVEY_2014: 0, 23704 SURVEY_2019: 1, 23705 SURVEY_2020: 2 23706 }; 23707 23708 enquate.init = function () { 23709 enquate.checkErrorText(); 23710 if (win.enqueteMessage) { 23711 options.errorText = options.errorText.replace(/\{0\}/g, win.enqueteMessage.required); 23712 } 23713 23714 enquate.extendIdNames(win.enqueteIdNames); 23715 enquate.extendClassNames(win.enqueteClassNames); 23716 enquate.extendOptions(win.enqueteOptions); 23717 enquate.removeCustomCheckBox(win.shouldRemove); 23718 23719 if (enquate.hasError()) { 23720 enquate.scrollToEnquateTop(); 23721 } 23722 }; 23723 23724 enquate.checkErrorText = function () { 23725 var version = this.getVersion(); 23726 var surveyContainer = doc.getElementById(idNames.survey); 23727 23728 if (!surveyContainer) { 23729 return; 23730 } 23731 23732 if (version === this.VERSION.SURVEY_2019 && surveyContainer.classList.contains(classNames.enquete2019)) { 23733 options.errorText = options.errorText2019; 23734 } 23735 23736 return; 23737 }; 23738 23739 enquate.extendIdNames = function (obj) { 23740 if (obj) { 23741 $.extend(idNames, obj); 23742 } 23743 }; 23744 23745 enquate.extendClassNames = function (obj) { 23746 if (obj) { 23747 $.extend(classNames, obj); 23748 } 23749 }; 23750 23751 enquate.extendOptions = function (obj) { 23752 if (obj) { 23753 $.extend(options, obj); 23754 } 23755 }; 23756 23757 enquate.removeCustomCheckBox = function (shouldRemove) { 23758 var $customCheckbox; 23759 23760 shouldRemove = shouldRemove || true; 23761 23762 if (shouldRemove) { 23763 $customCheckbox = $('.' + classNames.customCheckbox); 23764 23765 if ($customCheckbox.length) { 23766 $customCheckbox.each(function () { 23767 $(this).checkbox('destroy'); 23768 }); 23769 } 23770 } 23771 }; 23772 23773 enquate.checkbox = { 23774 disable: function ($checkbox) { 23775 $checkbox.prop('disabled', true); 23776 }, 23777 enable: function ($checkbox) { 23778 $checkbox.prop('disabled', false); 23779 } 23780 }; 23781 23782 enquate.textbox = { 23783 disable: function ($textbox) { 23784 $textbox.prop('disabled', true); 23785 }, 23786 enable: function ($textbox) { 23787 $textbox.prop('disabled', false); 23788 } 23789 }; 23790 23791 enquate.textarea = { 23792 disable: function ($textarea) { 23793 $textarea.prop('disabled', true); 23794 }, 23795 enable: function ($textarea) { 23796 $textarea.prop('disabled', false); 23797 } 23798 }; 23799 23800 enquate.getVersion = function () { 23801 var version = this.VERSION.NONE; 23802 23803 if (doc.getElementById(idNames.enqueteId)) { 23804 if (doc.getElementById(idNames.richSurvey)) { 23805 version = idNames.SURVEY_2020; 23806 } else if (doc.getElementById(idNames.survey)) { 23807 version = this.VERSION.SURVEY_2019; 23808 } else { 23809 version = this.VERSION.SURVEY_2014; 23810 } 23811 } 23812 23813 return version; 23814 }; 23815 23816 enquate.hasError = function () { 23817 var version = this.getVersion(); 23818 var errorMessage; 23819 23820 if (version === this.VERSION.SURVEY_2019 || version === this.VERSION.SURVEY_2014) { 23821 errorMessage = doc.querySelectorAll('#' + idNames.form
23821+ ' .' + classNames.errorMessage); 23822 23823 if (errorMessage.length) { 23824 return true; 23825 } 23826 } 23827 23828 return false; 23829 }; 23830 23831 enquate.scrollToEnquateTop = function () { 23832 var target = document.querySelector('a[name="enqueteTop"]'); 23833 var position = 0; 23834 23835 if (target) { 23836 position = (target.getBoundingClientRect().top + win.scrollY); 23837 23838 win.scrollTo(0, position); 23839 } 23840 }; 23841 23842 return enquate; 23843 }(ENQUETE)); 23844 23845 ENQUETE.toggleDisplay = (function () { 23846 var _prevTarget = ''; 23847 var _prevName = ''; 23848 23849 var ToggleDisplay = function () { 23850 this.data = []; 23851 }; 23852 23853 ToggleDisplay.prototype.init = function (data) { 23854 this.data = data || []; 23855 this._rebuildConnectingData(); 23856 this._bindEvents(); 23857 }; 23858 23859 ToggleDisplay.prototype._rebuildConnectingData = function () { 23860 var self = this; 23861 var data = self.data; 23862 var i; 23863 var len = data.length; 23864 var lastIndex = len - 1; 23865 var prevName; 23866 var prevSource; 23867 var prevTarget; 23868 var list = []; 23869 23870 for (i = 0; i < len; i++) { 23871 $(data[i].source).attr('data-target', data[i].target); 23872 23873 if (i === 0) { 23874 prevName = data[i].name; 23875 prevSource = data[i].source; 23876 prevTarget = data[i].target; 23877 } else if (data[i].name === prevName && data[i].target === prevTarget) { 23878 prevSource += ', ' + data[i].source; 23879 23880 if (i === lastIndex) { 23881 list.push({ 23882 name: data[i].name, 23883 source: prevSource, 23884 target: data[i].target 23885 }); 23886 } 23887 } else { 23888 list.push({ 23889 name: prevName, 23890 source: prevSource, 23891 target: prevTarget 23892 }); 23893 23894 if (i === lastIndex) { 23895 list.push({ 23896 name: data[i].name, 23897 source: data[i].source, 23898 target: data[i].target 23899 }); 23900 } else { 23901 prevName = data[i].name; 23902 prevSource = data[i].source; 23903 prevTarget = data[i].target; 23904 } 23905 } 23906 } 23907 23908 this.data = list.reverse(); 23909 }; 23910 23911 ToggleDisplay.prototype._bindEvents = function () { 23912 this._onChange(); 23913 }; 23914 23915 ToggleDisplay.prototype._onChange = function () { 23916 var self = this; 23917 var data = self.data; 23918 var i; 23919 var j; 23920 var len = data.length; 23921 var $input; 23922 var $source; 23923 var $target; 23924 var list = []; 23925 23926 for (i = 0; i < len; i++) { 23927 $input = $(data[i].name); 23928 $source = $(data[i].source); 23929 $target = $('.' + data[i].target); 23930 23931 $input.on( 23932 'change', 23933 { 23934 $input: $input, 23935 $source: $source, 23936 $target: $target, 23937 $checked: $(this).filter(':checked'), 23938 selector: data[i].target 23939 }, 23940 self._toggle 23941 ); 23942 23943 $target.addClass(classNames.isHide); 23944 23945 if ($source.is(':checked')) { 23946 list.push({ 23947 name: data[i].name, 23948 source: data[i].source, 23949 target: data[i].target 23950 }); 23951 } 23952 } 23953 23954 for (j = 0; j < list.length; j++) { 23955 $('.' + list[j].target).removeClass(classNames.isHide); 23956 } 23957 }; 23958 23959 ToggleDisplay.prototype._toggle = function (e) { 23960 var self = this; 23961 var $source = e.data.$source; 23962 var $target = e.data.$target; 23963 var selector = e.data.selector; 23964 var promise = Promise.resolve(); 23965 23966 var setHidden = function () { 23967 if (!$source.is(':checked')) { 23968 if (self.name !== _prevName) { 23969 _prevTarget = ''; 23970 } 23971 _prevName = self.name; 23972 $target.addClass(classNames.isHide); 23973 23974 $target.find('textarea, :text, select, checkbox, radio'). 23975 val(''). 23976 end(). 23977 find(':checked'). 23978 prop('checked', false). 23979 filter(function () { 23980 return $(this).attr('data-target') !== _prevTarget; 23981 }). 23982 trigger('change'); 23983 } 23984 }; 23985 23986 var setVisible = function () { 23987 if ($source.is(':checked')) { 23988 _prevName = self.name; 23989 _prevTarget = selector; 23990 $target.removeClass(classNames.isHide); 23991 } 23992 }; 23993 23994 promise.then(function () { 23995 setHidden(); 23996 }).then(function () { 23997 setVisible(); 23998 }); 23999 }; 24000 24001 return new ToggleDisplay(); 24002 }()); 24003 24004 ENQUETE.ctrlTxtBox = (function (enquete) { 24005 var CtrlTxtBox = function () { 24006 this.data = []; 24007 }; 24008 24009 CtrlTxtBox.prototype.init = function (data) { 24010 this.data = data || []; 24011 this._bindEvents(); 24012 }; 24013 24014 CtrlTxtBox.prototype._bindEvents = function () { 24015 this._onChange(); 24016 }; 24017 24018 CtrlTxtBox.prototype._onChange = function () { 24019 var self = this; 24020 var data = self.data; 24021 var i; 24022 var len = data.length; 24023 var $input; 24024 var $source; 24025 var $target; 24026 24027 for (i = 0; i < len; i++) { 24028 $input = $(data[i].name); 24029 $source = $(data[i].source); 24030 $target = $(data[i].target); 24031 24032 $input.on( 24033 'change', 24034 { 24035 $input: $input, 24036 $source: $source, 24037 $target: $target 24038 }, 24039 self._toggle 24040 ); 24041 24042 $input.trigger('change'); 24043 } 24044 }; 24045 24046 CtrlTxtBox.prototype._toggle = function (e) { 24047 var $source = e.data.$source; 24048 var $target = e.data.$target; 24049 24050 if ($source.is(':checked')) { 24051 enquete.textbox.enable($target); 24052 } else { 24053 enquete.textbox.disable($target); 24054 } 24055 }; 24056 24057 return new CtrlTxtBox(); 24058 }(ENQUETE)); 24059 24060 ENQUETE.checkMaxLimit = (function (enquete) { 24061 var CheckMaxLimit = function () { 24062 this.data = []; 24063 }; 24064 24065 CheckMaxLimit.prototype.init = function (data) { 24066 this.data = data || []; 24067 this._bindEvents(); 24068 }; 24069 24070 CheckMaxLimit.prototype._bindEvents = function () { 24071 this._onChange(); 24072 }; 24073 24074 CheckMaxLimit.prototype._onChange = function () { 24075 var self = this; 24076 var data = self.data; 24077 var i; 24078 var len = data.length; 24079 var $checkbox; 24080 24081 for (i = 0; i < len; i++) { 24082 $checkbox = $(data[i].name); 24083 $checkbox.on( 24084 'change', 24085 { 24086 $checkbox: $checkbox, 24087 max: data[i].max 24088 }, 24089 self._toggle 24090 ); 24091 24092 $checkbox.trigger('change'); 24093 } 24094 }; 24095 24096 CheckMaxLimit.prototype._toggle = function (e) { 24097 var $checkbox = e.data.$checkbox; 24098 var $notChecked = $checkbox.not(':checked'); 24099 var max = e.data.max;
24100 var count = $checkbox.filter(':checked').length; 24101 24102 if (count === max) { 24103 enquete.checkbox.disable($notChecked); 24104 } else { 24105 enquete.checkbox.enable($checkbox); 24106 } 24107 }; 24108 24109 return new CheckMaxLimit(); 24110 }(ENQUETE)); 24111 24112 ENQUETE.required = (function () { 24113 var Required = function () { 24114 this.data = []; 24115 }; 24116 24117 Required.prototype.init = function (data) { 24118 this.data = data || []; 24119 this._rebuildRequiredData(this.data); 24120 }; 24121 24122 Required.prototype._rebuildRequiredData = function (data) { 24123 var i; 24124 var len = data.length; 24125 var list = []; 24126 24127 for (i = 0; i < len; i++) { 24128 list.push(data[i].name); 24129 } 24130 24131 this.data = list; 24132 }; 24133 24134 Required.prototype.getItemList = function () { 24135 var self = this; 24136 var data = self.data; 24137 var i; 24138 var len; 24139 var $input; 24140 var itemList = []; 24141 24142 len = data.length; 24143 24144 for (i = 0; i < len; i++) { 24145 $input = $(data[i]); 24146 24147 if ($input.length && $input.is(':visible')) { 24148 itemList.push($input); 24149 } 24150 } 24151 24152 itemList = self._supplementItemList(itemList); 24153 24154 return itemList; 24155 }; 24156 24157 Required.prototype._supplementItemList = function (itemList) { 24158 var self = this; 24159 var $extra = $('.' + classNames.isRequired); 24160 24161 if ($extra.length) { 24162 $extra.each(function () { 24163 var $this = $(this); 24164 var name = $this.prop('name'); 24165 var tagName = $this.prop('tagName').toLowerCase(); 24166 24167 if (name === '' || tagName !== 'input') { 24168 return; 24169 } 24170 24171 if ($this.is(':visible') && $this.prop('disabled') === false) { 24172 itemList = self.addToItemList($this, itemList); 24173 } 24174 }); 24175 } 24176 24177 return itemList; 24178 }; 24179 24180 24181 Required.prototype.addToItemList = function (value, itemList) { 24182 var i; 24183 var len; 24184 var arrAdd; 24185 24186 if (util.isArray(value)) { 24187 arrAdd = value; 24188 } else { 24189 arrAdd = [value]; 24190 } 24191 24192 len = arrAdd.length; 24193 24194 for (i = 0; i < len; i++) { 24195 if (this._getIndexOfTargtItem(arrAdd[i], itemList) < 0) { 24196 itemList.push(arrAdd[i]); 24197 } 24198 } 24199 24200 return itemList; 24201 }; 24202 24203 Required.prototype.removeFromItemList = function (value, itemList) { 24204 var i; 24205 var len; 24206 var arrRemove; 24207 var dataIndex; 24208 24209 if (util.isArray(value)) { 24210 arrRemove = value; 24211 } else { 24212 arrRemove = [value]; 24213 } 24214 24215 len = arrRemove.length; 24216 24217 for (i = 0; i < len; i++) { 24218 dataIndex = this._getIndexOfTargtItem(arrRemove[i], itemList); 24219 itemList.splice(dataIndex, 1); 24220 } 24221 24222 return itemList; 24223 }; 24224 24225 Required.prototype._getIndexOfTargtItem = function ($input, itemList) { 24226 var i; 24227 var len = itemList.length; 24228 var index = -1; 24229 24230 for (i = 0; i < len; i++) { 24231 if (itemList[i].prop('name') === $input.prop('name')) { 24232 index = i; 24233 break; 24234 } 24235 } 24236 24237 return index; 24238 }; 24239 24240 return new Required(); 24241 }()); 24242 24243 ENQUETE.form = (function (enquete) { 24244 var Form = function () { 24245 // nothing else 24246 }; 24247 24248 Form.prototype.init = function () { 24249 this._bindEvents(); 24250 }; 24251 24252 Form.prototype._bindEvents = function () { 24253 this._onBlurFromTextInput(); 24254 this._onSubmit(); 24255 }; 24256 24257 Form.prototype._onSubmit = function () { 24258 var self = this; 24259 24260 $('#' + idNames.form).on('submit', function () { 24261 var list = enquete.required.getItemList(); 24262 24263 $('.' + classNames.errorMessage).remove(); 24264 24265 if (self._validateForm(list)) { 24266 self._clearHideValues();
24267 24268 return true; 24269 } 24270 24271 return false; 24272 }); 24273 }; 24274 24275 Form.prototype._onBlurFromTextInput = function () { 24276 var selector = '.' + classNames.customText + ', .' + classNames.customTextArea; 24277 24278 $(selector).on('blur', function () { 24279 this.value = this.value.trim(); 24280 }); 24281 }; 24282 24283 Form.prototype._clearHideValues = function () { 24284 var $area = $('.' + classNames.titleAndText); 24285 24286 if ($area.length) { 24287 $area.each(function () { 24288 var $this = $(this); 24289 24290 if ($this.is(':hidden')) { 24291 $this.find('textarea, :text, select, checkbox, radio'). 24292 val(''). 24293 end(). 24294 find(':checked'). 24295 prop('checked', false); 24296 } 24297 }); 24298 } 24299 }; 24300 24301 Form.prototype._validateForm = function (requiredList) { 24302 var result = true; 24303 var scrollPos = null; 24304 24305 $.each(requiredList, function (idx, $el) { 24306 var errorPosition; 24307 var errText = options.errorText; 24308 var $errMsg; 24309 var isEntered = false; 24310 var currentPos = null; 24311 var $titleAndText; 24312 var $title; 24313 var version = enquete.getVersion(); 24314 24315 if ($el.filter(':checkbox, :radio').length > 0) { 24316 isEntered = $el.filter(':checked').length > 0; 24317 } else { 24318 $el.each(function () { 24319 isEntered = isEntered || ($(this).val() !== null && $(this).val() !== ''); 24320 }); 24321 } 24322 if (!isEntered) { 24323 result = false; 24324 errorPosition = '.' + classNames.titleAndText; 24325 24326 $titleAndText = $el.eq(0).closest(errorPosition); 24327 24328 if (!$titleAndText.length) { 24329 return; 24330 } 24331 24332 $title = $titleAndText.children('.' + classNames.title); 24333 $title = $title.length ? $title : $titleAndText.children('.' + classNames.title02); 24334 24335 if (!$title.length) { 24336 return; 24337 } 24338 24339 if (version === enquete.VERSION.SURVEY_2019 && $titleAndText.hasClass(classNames.inputGroup)) { 24340 $titleAndText.addClass(classNames.isError); 24341 $errMsg = $titleAndText.append(errText); 24342 currentPos = $errMsg.closest(errorPosition).offset().top; 24343 } else { 24344 $errMsg = $title.after(errText); 24345 currentPos = $errMsg.closest(errorPosition).offset().top; 24346 } 24347 24348 if (scrollPos === null || scrollPos > currentPos) { 24349 scrollPos = currentPos; 24350 } 24351 } 24352 }); 24353 24354 if (scrollPos !== null) { 24355 $('html, body').animate({scrollTop: scrollPos}, 'fast'); 24356 } 24357 24358 return result; 24359 }; 24360 24361 return new Form(); 24362 }(ENQUETE)); 24363 24364 ENQUETE.checkboxGroup = (function (enquete) { 24365 var CheckboxGroup = function () { 24366 this.data = []; 24367 }; 24368 24369 CheckboxGroup.prototype.init = function (data) { 24370 this.data = data || []; 24371 this._bindEvents(); 24372 }; 24373 24374 24375 CheckboxGroup.prototype._bindEvents = function () { 24376 this._onChange(); 24377 }; 24378 24379 CheckboxGroup.prototype._onChange = function () { 24380 var self = this; 24381 var data = self.data; 24382 var i; 24383 var len = data.length; 24384 var $checkbox; 24385 24386 for (i = 0; i < len; i++) { 24387 $checkbox = $(data[i].name); 24388 24389 if ($checkbox.length <= 0 || $checkbox.get(0).type !== 'checkbox') { 24390 continue; 24391 } 24392 24393 $checkbox.on( 24394 'change', { 24395 $checkbox: $checkbox, 24396 outsiders: data[i].outsider 24397 }, 24398 self._toggle 24399 ); 24400 24401 $checkbox.trigger('change'); 24402 } 24403 }; 24404 24405 CheckboxGroup.prototype._toggle = function (e) { 24406 var outsiders = e.data.outsiders; 24407 var $checkbox = e.data.$checkbox;
24408 var $outsiders = $checkbox.filter(outsiders); 24409 var $base = $checkbox.not(outsiders); 24410 24411 if ($base.filter(':checked').length) { 24412 enquete.checkbox.disable($outsiders); 24413 } else if ($outsiders.filter(':checked').length) { 24414 enquete.checkbox.disable($base); 24415 } else { 24416 enquete.checkbox.enable($checkbox); 24417 } 24418 }; 24419 24420 return new CheckboxGroup(); 24421 }(ENQUETE)); 24422 24423 $(function () { 24424 var enqueteData = win.enqueteData || {}; 24425 24426 if (doc.documentElement.classList.contains('theme-extendedSurvey') && document.getElementById(idNames.richSurvey)) { 24427 ENQUETE.toggleDisplay.init(enqueteData.displaySwitch); 24428 ENQUETE.ctrlTxtBox.init(enqueteData.otherPlusText); 24429 ENQUETE.checkMaxLimit.init(enqueteData.maxChecked); 24430 ENQUETE.checkboxGroup.init(enqueteData.outsider); 24431 } else if (document.getElementById(idNames.richSurvey) || document.getElementById(idNames.survey)) { 24432 ENQUETE.init(); 24433 ENQUETE.required.init(enqueteData.required); 24434 ENQUETE.toggleDisplay.init(enqueteData.displaySwitch); 24435 ENQUETE.ctrlTxtBox.init(enqueteData.otherPlusText); 24436 ENQUETE.checkMaxLimit.init(enqueteData.maxChecked); 24437 ENQUETE.checkboxGroup.init(enqueteData.outsider); 24438 ENQUETE.form.init(); 24439 } else { 24440 return; 24441 } 24442 }); 24443 24444 win.KeyenceEnquete = ENQUETE; 24445}(this, this.document, this.jQuery, (function () { 24446 'use strict'; 24447 24448 return { 24449 isArray: function (value) { 24450 return Object.prototype.toString.call(value) === '[object Array]'; 24451 } 24452 }; 24453}()))); 24454/* end Enquete Common-------------------------------------------------------- */ 24455 24456/* cartscript.js 24457-------------------------------------------------------- */ 24458 24459function kpi_consoleLog(arg) { 24460 if (kpi_debug) { 24461 if (kpi_ua.Webkit) { 24462 console.log(arg); 24463 } 24464 } 24465} 24466 24467function kpi_setCrossDomainCookie(key, value, expire, isSecure) { 24468 var path = '/'; 24469 var domain = kpi_cookiesettings.cookieDomain; 24470 24471 $.cookie('kpi_' + key, value, { 24472 expire: expire, 24473 path: path, 24474 domain: domain, 24475 secure: isSecure 24476 } 24477 ); 24478} 24479 24480function kpi_getCrossDomainCookie(key) { 24481 return $.cookie('kpi_' + key); 24482} 24483 24484/** 24485 * cartObject 24486 * @type {Object} 24487 */ 24488var kpi_cartObj = { 24489 DEFINE_CART_MODE_NOTHING: 0, 24490 DEFINE_CART_MODE_MINIMUM: 1, 24491 DEFINE_CART_MODE_MAXIMUM: 2, 24492 cartStatus: 0, 24493 initFlg: true, 24494 initMaxDisplayOfCart: false, 24495 initCartMode: 0, 24496 warning: false, 24497 amount: 0, 24498 maxNum: 0, 24499 fileSize: 0, 24500 isSoftware: false, 24501 isCad: false, 24502 severErrorMsg: kpi_translation.ServerConnectErrorMessage, 24503 cartAssetInfo: [], 24504 $body: null, 24505 $addToListJObj: null, 24506 $downloadListJObj: null, 24507 $downloadListOpenerJObj: null, 24508 $downloadListContentJObj: null, 24509 $downloadWindowOpenButtonJObj: null, 24510 $downloadListErrorMessageJObj: null, 24511 $DownloadListAmountCountJObj: null, 24512 $DownloadListAmountLimitJObj: null, 24513 $DownloadListTotalFileSizeJObj: null, 24514 $DownloadListTitleButtonJObj: null, 24515 $DownloadListLicenseSoftwareJObj: null, 24516 $DownloadListLicenseCadJObj: null, 24517 $DownloadListProgressButtonJObj: null, 24518 downloadListCartObjects: [], 24519 downloadListCarousel: null, 24520 viewListObjects: ['table.DefaultViewTable', 'table.ListViewTable', 'table.ThumbnailViewTable'], 24521 hasAddToList: 0, 24522 init: function () { 24523 this._initAjaxSetup(); 24524 24525 // cacheing $ object 24526 this.$body = $('body'); 24527 this.$addToListJObj = $('.AddToList'); 24528 this.$downloadListJObj = ($('#DownloadList').length && $('#js-downloadListPanel-wrapper').length) ? 24529 $('#js-downloadListPanel-wrapper') : 24530 $('#DownloadList'); 24531 this._initLegacyHtml(); 24532 this._initHtml(); 24533 this.$downloadListOpenerJObj = $('#DownloadListOpenerWrapper'); 24534 this.$downloadListContentJObj = $('#DownloadListContent'); 24535 this.$downloadListErrorMessageJObj = $('#DownloadListErrorMessage'); 24536 this.$DownloadListAmountCountJObj = $('#DownloadListAmountCount, .js-downloadListPanel-amountCount'); 24537 this.$DownloadListAmountLimitJObj = $('#DownloadListAmountLimit'); 24538 this.$DownloadListTotalFileSizeJObj = $('#DownloadListTotalFileSize, .js-downloadListPanel-totalFileSize'); 24539 this.$DownloadListTitleButtonJObj = $('#DownloadListTitleButton'); 24540 this.$DownloadListLicenseSoftwareJObj = $('#DownloadListLicenseSoftware'); 24541 this.$DownloadListLicenseCadJObj = $('#DownloadListLicenseCad'); 24542 this.$DownloadListProgressButtonJObj = $('#DownloadListProgressButton'); 24543 this.downloadListCartObjects = []; 24544 24545 if (!this.$downloadListJObj.length) { 24546 this.$DownloadListLicenseSoftwareJObj.checkbox({ 24547 // view: true 24548 uiClass: 'CustomCheckbox', 24549 labelClass: 'UIElm-check-label', 24550 checkedClass: 'checked', 24551 disabledClass: 'disabled' 24552 }); 24553 this.$DownloadListLicenseSoftwareJObj.checkbox('checkOn', this.$DownloadListLicenseSoftwareJObj.attr('id')); 24554 this.$DownloadListLicenseCadJObj.checkbox({ 24555 // view: true 24556 uiClass: 'CustomCheckbox', 24557 labelClass: 'UIElm-check-label', 24558 checkedClass: 'checked', 24559 disabledClass: 'disabled' 24560 }); 24561 this.$DownloadListLicenseCadJObj.checkbox('checkOn', this.$DownloadListLicenseCadJObj.attr('id')); 24562 } 24563 24564 this._addCssEffect(); 24565 24566 this.initMaxDisplayOfCart = this._isInitOfAddToList(); 24567 this.initCartMode = this.cookieCtrl().getCartMode(); 24568 }, 24569 /** 24570 * 24571 * @return {Boolean} Move to AddToList. 24572 * @private 24573 */ 24574 _isInitOfAddToList: function () { 24575 var h = this.cookieCtrl().getHasAddToList(); 24576 var downloadList = document.getElementById('JSSearchDownloadList') ? 24577 document.getElementById('JSSearchDownloadList') : 24578 document.getElementById('js-loadAssets'); 24579 24580 if (downloadList) { 24581 this.cookieCtrl().setHasAddToList('1'); 24582 24583 if (h === '0') { 24584 return true; 24585 } 24586 } else { 24587 this.cookieCtrl().setHasAddToList('0'); 24588 } 24589 24590 return false; 24591 }, 24592 addCart: function (assetId, seriesId, productId, addButtonId) { 24593 $.ajax({
24594 url: kpi_cartsettings.cartApiUrl + kpi_cartsettings.cartApiMethodAddCart, 24595 data: { 24596 assetId: assetId, 24597 seriesId: seriesId, 24598 productId: productId 24599 }, 24600 timeout: 10000, 24601 success: function (data) { 24602 if (data.errorFlg === '0') { 24603 var d = { 24604 assetId: data.assetId, 24605 assetName: data.assetName, 24606 assetSize: data.assetSize, 24607 assetType: data.assetType, 24608 thumbnail: data.thumbnail 24609 }; 24610 var tmpObj = [d]; 24611 24612 $.each(kpi_cartObj.cartAssetInfo, function (i, item) { 24613 tmpObj.push(item); 24614 }); 24615 kpi_cartObj.cartAssetInfo = tmpObj; 24616 kpi_cartObj.amount++; 24617 24618 kpi_cartObj.fileSize = parseInt(kpi_cartObj.fileSize) + parseInt(data.assetSize); 24619 24620 kpi_cartObj._updateInfo(); 24621 kpi_cartObj.$downloadListContentJObj.find('.BasicCarousel').find('li').eq(0).css('display', 'none').fadeIn(300); 24622 $('.AddToList').removeClass('IsWaiting'); 24623 } else { 24624 kpi_cartObj.removeCart(addButtonId); 24625 $('.AddToList').removeClass('IsWaiting'); 24626 } 24627 24628 // debug
24629 var kpi_assetElementLength = 0; 24630 24631 kpi_assetElementLength = data.length; 24632 $.each(data, function (i, key) { 24633 }); 24634 }, 24635 complete: function (data) { 24636 }, 24637 error: function () { 24638 } 24639 }); 24640 }, 24641 removeCart: function (assetId) { 24642 var that = this; 24643 24644 $.ajax({ 24645 url: kpi_cartsettings.cartApiUrl + kpi_cartsettings.cartApiMethodRemoveCart, 24646 data: {'assetId': assetId 24647 }, 24648 success: function (data) { 24649 if (data.errorFlg === '0') { 24650 // delete cartAssetInfo 24651 $.each(kpi_cartObj.cartAssetInfo, function (i) { 24652 if (this.assetId == assetId) { 24653 that.fileSize -= this.assetSize; 24654 kpi_cartObj.amount--; 24655 delete kpi_cartObj.cartAssetInfo[i]; 24656 kpi_cartObj.cartAssetInfo.splice([i], 1); 24657 $('#' + assetId).removeClass('Disabled').attr('disabled', false); 24658 24659 return false; 24660 } 24661 }); 24662 } else { 24663 } 24664 }, 24665 complete: function (data) { 24666 kpi_cartObj._updateInfo(); 24667 }, 24668 error: function () { 24669 } 24670 }); 24671 }, 24672 removeAllCart: function () { 24673 $.ajax({
24674 url: kpi_cartsettings.cartApiUrl + kpi_cartsettings.cartApiMethodRemoveAllCart, 24675 success: function (data) { 24676 if (data.errorFlg === '0') { 24677 kpi_cartObj.amount = 0; 24678 kpi_cartObj.cartAssetInfo = []; 24679 } else { 24680 kpi_cartObj.displayErrorMsg(); 24681 } 24682 }, 24683 complete: function (data) { 24684 kpi_cartObj._updateInfo(); 24685 }, 24686 error: function () { 24687 kpi_cartObj.displayErrorMsg(); 24688 } 24689 }); 24690 }, 24691 getAllAssetInfo: function () { 24692 $.ajax({ 24693 url: kpi_cartsettings.cartApiUrl + kpi_cartsettings.cartApiMethodAllAssetInfo, 24694 timeout: 30000, 24695 cache: false, 24696 success: function (data) { 24697 var kpi_assetElementLength = 0; 24698 24699 kpi_assetElementLength = data.length; 24700 24701 var count = data['count']; 24702 var maxNum = parseInt(data['maxCount']); 24703 var hasSoft = data['hasSoft']; 24704 var hasCad = data['hasCad']; 24705 var totalSize = data['totalSize']; 24706 24707 kpi_cartObj.maxNum = maxNum; 24708 kpi_cartObj.amount = parseInt(count); 24709 kpi_cartObj.isSoftware = hasSoft; 24710 kpi_cartObj.isCad = hasCad; 24711 kpi_cartObj.fileSize = totalSize; 24712 24713 24714 kpi_cartObj._displayAlertCtrl().off(); 24715 24716 if (0 < count) { 24717 // asset list 24718 $.each(data['assetInfo'], function (i, key) { 24719 var d = { 24720 assetId: key.assetId, 24721 assetName: key.assetName, 24722 assetSize: key.assetSize, 24723 assetType: key.assetType, 24724 thumbnail: key.thumbnail, 24725 seriesId: key.seriesId, 24726 modelId: key.modelId 24727 }; 24728 24729 kpi_cartObj.cartAssetInfo.unshift(d); 24730 }); 24731 } 24732 }, 24733 complete: function (data) { 24734 kpi_cartObj._updateInfo(); 24735 }, 24736 error: function () { 24737 } 24738 }); 24739 }, 24740 getServerErrorMsg: function () { 24741 // Error Msg 24742 $.ajax({
24743 url: kpi_cartsettings.cartApiUrl + kpi_cartsettings.cartApiMethodServerErrorMsg, 24744 cache: true, 24745 success: function (data) { 24746 if (data.errorFlg === '0') { 24747 kpi_cartObj.severErrorMsg = data['errorMsg']; 24748 } 24749 }, 24750 error: function () { 24751 } 24752 24753 }); 24754 }, 24755 displayErrorMsg: function () { 24756 alert(kpi_cartObj.severErrorMsg); 24757 }, 24758 _initAjaxSetup: function () { 24759 $.ajaxSetup({ 24760 type: 'GET', 24761 dataType: 'json', 24762 timeout: kpi_usersettings.AjaxTimeoutSeconds 24763 }); 24764 }, 24765 _displayAlertCtrl: function () { 24766 var that = this; 24767 24768 return { 24769 on: function () { 24770 that.$downloadListErrorMessageJObj.html('<div id="DownloadListErrorMessageInner"><p><span class="Asterrisk">*</span>' + kpi_translation.CartLimitErrorMsg + '</p></div>').slideDown(kpi_usersettings.CartOCSpd, kpi_usersettings.CartSlideEasing); 24771 that._changGroupDisabled(true); 24772 that.warning = true; 24773 }, 24774 off: function () { 24775 that.$downloadListErrorMessageJObj.slideUp(kpi_usersettings.CartOCSpd, kpi_usersettings.CartSlideEasing); 24776 that._changGroupDisabled(false); 24777 that.warning = false; 24778 } 24779 }; 24780 }, 24781 callbackFromLicenseModal: function () { 24782 var $softAgree = $('.js-downloadListPanel-softwareAgree input'); 24783 var $cadAgree = $('.js-downloadListPanel-cadAgree input'); 24784 var fn = {}; 24785 24786 if (!$('#js-downloadListPanel-wrapper').length) { 24787 return; 24788 } 24789 24790 fn.closeModal = function () { 24791 $('.js-downloadListPanel-modalCloseButton').trigger('click'); 24792 kpi_cartObj._initAjaxSetup(); 24793 }; 24794 24795 fn.clickAgree = function () { 24796 $(document).on('click', '.js-agreeLicense-button', function () { 24797 if ($('.js-downloadListPanel-softwareModal').length) { 24798 $softAgree.prop('checked', true); 24799 } else if ($('.js-downloadListPanel-cadModal').length) { 24800 $cadAgree.prop('checked', true); 24801 } 24802 kpi_cartObj._changeProgressButton(); 24803 kpi_cartObj._setLicenseCookie(); 24804 fn.closeModal(); 24805 }); 24806 }; 24807 24808 fn.clickDisagree = function () { 24809 $(document).on('click', '.js-disagreeLicense-button', function () { 24810 if ($('.js-downloadListPanel-softwareModal').length) { 24811 $softAgree.prop('checked', false); 24812 } else if ($('.js-downloadListPanel-cadModal').length) { 24813 $cadAgree.prop('checked', false); 24814 } 24815 kpi_cartObj._changeProgressButton(); 24816 kpi_cartObj._setLicenseCookie(); 24817 fn.closeModal(); 24818 }); 24819 }; 24820 24821 fn.clickAgree(); 24822 fn.clickDisagree(); 24823 }, 24824 callbackFromDLProcessLicenseModal: function () { 24825 var $softAgree = $('.js-downloadList-softwareAgree input'); 24826 var $cadAgree = $('.js-downloadList-cadAgree input'); 24827 var fn = {}; 24828 24829 fn.closeModal = function () { 24830 $('.js-downloadListPanel-modalCloseButton').trigger('click'); 24831 kpi_cartObj._initAjaxSetup(); 24832 }; 24833 24834 fn.clickAgree = function () { 24835 $(document).on('click', '.js-agreeLicense-button', function () { 24836 if ($('.js-downloadListPanel-softwareModal').length) { 24837 $softAgree.prop('checked', true); 24838 } else if ($('.js-downloadListPanel-cadModal').length){ 24839 $cadAgree.prop('checked', true); 24840 } 24841 24842 kpi_cartObj._changeUserRegistProgressButton(); 24843 fn.closeModal(); 24844 }); 24845 }; 24846 24847 fn.clickDisagree = function () { 24848 $(document).on('click', '.js-disagreeLicense-button', function () { 24849 if ($('.js-downloadListPanel-softwareModal').length) { 24850 $softAgree.prop('checked', false); 24851 } else if ($('.js-downloadListPanel-cadModal').length) { 24852 $cadAgree.prop('checked', false); 24853 } 24854 kpi_cartObj._changeUserRegistProgressButton(); 24855 fn.closeModal(); 24856 }); 24857 }; 24858 24859 fn.clickAgree(); 24860 fn.clickDisagree(); 24861 }, 24862 callbackFromModalWindow: function (id) { 24863 if (typeof id !== 'undefined' && id.length) { 24864 var $agree = $('#LicenseAgree'); 24865 var $disagree = $('#LicenseDisagree'); 24866 var $close = $('#cboxClose'); 24867 var $target = null; 24868 24869 switch (id) { 24870 case 'DownloadListLicenseSoftware': 24871 var $target = this.$DownloadListLicenseSoftwareJObj; 24872 24873 break; 24874 case 'DownloadListLicenseCad': 24875 var $target = this.$DownloadListLicenseCadJObj; 24876 24877 break; 24878 24879 default: 24880 } 24881 24882 $agree.on('click', function () { 24883 if (!$target.prop('checked')) { 24884 if (kpi_cartObj.$downloadListJObj.length) { 24885 $target.prop('checked', true); 24886 kpi_cartObj._changeProgressButton(); 24887 } else { 24888 $target.checkbox('checkOn', $target.attr('id')); 24889 kpi_cartObj._changeUserRegistProgressButton(); 24890 } 24891 } 24892 24893 $close.trigger('click'); 24894 kpi_cartObj._initAjaxSetup(); 24895 24896 return false; 24897 }); 24898 $disagree.on('click', function () { 24899 if ($target.prop('checked')) { 24900 if (kpi_cartObj.$downloadListJObj.length) { 24901 $target.prop('checked', false); 24902 kpi_cartObj._changeProgressButton(); 24903 } else { 24904 $target.checkbox('checkOff', $target.attr('id')); 24905 kpi_cartObj._changeUserRegistProgressButton(); 24906 } 24907 } 24908 24909 $('#cboxClose').trigger('click'); 24910 kpi_cartObj._initAjaxSetup(); 24911 24912 return false; 24913 }); 24914 } 24915 }, 24916 _changGroupDisabled: function (isForce) { 24917 $.each(this.viewListObjects, function () { 24918 var $t = $(this.toString()); 24919 24920 if ($t.length) { 24921 if (isForce) { 24922 $t.addClass('DisabledAllButton'); 24923 } else { 24924 $t.removeClass('DisabledAllButton'); 24925 } 24926 } 24927 }); 24928 }, 24929 _isGroupDisabled: function () { 24930 var that = this; 24931 var ret = false; 24932 24933 $.each(that.viewListObjects, function () { 24934 var $t = $(this.toString()); 24935 24936 if ($t.length) { 24937 if ($t.hasClass('DisabledAllButton')) { 24938 ret = true; 24939 24940 return false; 24941 } 24942 } 24943 }); 24944 that = null; 24945 24946 return ret; 24947 }, 24948 24949 _deleteAddToListDisabled: function () { 24950 this._changGroupDisabled(false); 24951 $('.AddToList[id^="AS_"]').removeClass('Disabled'); 24952 $('.AddToList[id^="AS_"]:not(.is-locked)').attr('disabled', false); 24953 }, 24954 24955 _updateInfo: function () { 24956 var cookieSoft, cookieCad; 24957 24958 this.$DownloadListAmountCountJObj.text(this.amount); 24959 this.$DownloadListAmountLimitJObj.text(this.maxNum); 24960 this.$DownloadListTotalFileSizeJObj.text(this._getFilesize()); 24961 // alert 24962 if (this.amount >= this.maxNum) { 24963 this._displayAlertCtrl().on(); 24964 } else { 24965 this._displayAlertCtrl().off(); 24966 } 24967 24968 var isSoftware = false; 24969 var isCad = false; 24970 24971 $.each(this.cartAssetInfo, function () { 24972 var $t = $('#' + this.assetId); 24973 24974 if ($t.length && !$t.hasClass('Disabled')) { 24975 $t.addClass('Disabled').attr('disabled', true); 24976 } 24977 24978 switch (this.assetType) { 24979 case '1':isSoftware = true; break; 24980 case '2':isCad = true; break; 24981 default: 24982 } 24983 }); 24984 24985 this.isSoftware = isSoftware; 24986 this.isCad = isCad; 24987 24988 if (!this.isSoftware) { 24989 this.$DownloadListLicenseSoftwareJObj.parents('li').hide(); 24990 $('.js-downloadListPanel-softwareAgree').hide(); 24991 } else { 24992 this.$DownloadListLicenseSoftwareJObj.parents('li').show(); 24993 $('.js-downloadListPanel-softwareAgree').show(); 24994 } 24995 if (!this.isCad) { 24996 this.$DownloadListLicenseCadJObj.parents('li').hide(); 24997 $('.js-downloadListPanel-cadAgree').hide(); 24998 } else { 24999 this.$DownloadListLicenseCadJObj.parents('li').show(); 25000 $('.js-downloadListPanel-cadAgree').show(); 25001 } 25002 if (this.isSoftware || this.isCad) { 25003 this.$DownloadListProgressButtonJObj.closest('div.OperationCol').children('dl').show(); 25004 $('.js-downloadListPanel-license').show(); 25005 } else { 25006 this.$DownloadListProgressButtonJObj.closest('div.OperationCol').children('dl').hide(); 25007 $('.js-downloadListPanel-license').hide(); 25008 } 25009 25010 if (this.initFlg) { 25011 var w = this.cookieCtrl().getAgreement(); 25012 25013 cookieSoft = w.charAt(0);
25014 cookieCad = w.charAt(2); 25015 25016 if (cookieSoft === '1') { 25017 this.$DownloadListLicenseSoftwareJObj.attr('checked', true); 25018 $('.js-downloadListPanel-softwareAgree input').attr('checked', true); 25019 $('.js-downloadListPanel-downloadButton').attr('aria-disabled', false); 25020 $('.js-downloadListPanel-downloadButton').attr('tabindex', 0); 25021 } 25022 25023 if (cookieCad === '1') { 25024 this.$DownloadListLicenseCadJObj.attr('checked', true); 25025 $('.js-downloadListPanel-cadAgree input').attr('checked', true); 25026 $('.js-downloadListPanel-downloadButton').attr('aria-disabled', false); 25027 $('.js-downloadListPanel-downloadButton').attr('tabindex', 0); 25028 } 25029 25030 if (!isSoftware) { 25031 cookieSoft = '1'; 25032 } 25033 25034 if (!isCad) { 25035 cookieCad = '1'; 25036 } 25037 25038 this.cookieCtrl().setAgreement(cookieSoft, cookieCad); 25039 } 25040 25041 // cart status 25042 if (this.amount < 1) { 25043 this.fileSize = 0; 25044 this._changeCartMode(this.DEFINE_CART_MODE_NOTHING); 25045 this._deleteAddToListDisabled(); 25046 } 25047 25048 if (0 < this.amount) { 25049 if (this.initFlg) { 25050 if (this.initMaxDisplayOfCart || this.initCartMode == this.DEFINE_CART_MODE_NOTHING) { 25051 if (this.initCartMode > 0) { 25052 this._changeCartMode(this.initCartMode); 25053 } else { 25054 this._changeCartMode(this.DEFINE_CART_MODE_MAXIMUM); 25055 } 25056 } else { 25057 this._changeCartMode(this.initCartMode); 25058 } 25059 } else { 25060 this._changeCartMode(this.DEFINE_CART_MODE_MAXIMUM); 25061 } 25062 } 25063 25064 var kpi_balloon = $('.Balloon'); 25065 25066 if (kpi_balloon.is(':visible')) { 25067 kpi_balloon.stop(true, true).fadeOut(kpi_usersettings.DeleteBtnFadeOutSpd); 25068 } 25069 25070 this._changeProgressButton(); 25071 25072 if (this.initFlg) { 25073 if (cookieSoft == '0' || cookieCad == '0') { 25074 if (!this.$DownloadListProgressButtonJObj.hasClass('Disabled')) { 25075 this.$DownloadListProgressButtonJObj.addClass('Disabled'); 25076 } 25077 if ($('.js-downloadListPanel-downloadButton').attr('aria-disabled') === 'false') { 25078 $('.js-downloadListPanel-downloadButton').attr('aria-disabled', true); 25079 $('.js-downloadListPanel-downloadButton').attr('tabindex', -1); 25080 } 25081 } 25082 } 25083 25084 this.initFlg = false; 25085 }, 25086 _changeCartMode: function (mode) { 25087 var that = this; 25088 var legacyId = 'DownloadList'; 25089 var legacyFlag = null; 25090 var $largePanel = $('#js-downloadListPanel-largeGroup'); 25091 var $smallPanel = $('#js-downloadListPanel-smallGroup'); 25092 25093 if (this.$downloadListJObj.attr('id') === legacyId) { 25094 legacyFlag = true; 25095 } 25096 25097 this.$body.removeClass('DownloadListClose').removeClass('DownloadListOpen'); 25098 25099 switch (mode) { 25100 case this.DEFINE_CART_MODE_NOTHING: // nothing 25101 this.cartStatus = this.DEFINE_CART_MODE_NOTHING; 25102 25103 if (legacyFlag) { 25104 if (this.$downloadListContentJObj.is(':visible')) { 25105 this.$downloadListContentJObj.hide(); 25106 } 25107 25108 this.$downloadListJObj.slideUp(kpi_usersettings.CartOCSpd, kpi_usersettings.CartSlideEasing, function () { 25109 that.cookieCtrl().setCartMode(this.DEFINE_CART_MODE_NOTHING); 25110 }); 25111 } else { 25112 $smallPanel.attr('aria-hidden', true); 25113 $largePanel.attr('aria-hidden', true); 25114 that.cookieCtrl().setCartMode(this.DEFINE_CART_MODE_NOTHING); 25115 } 25116 25117 break; 25118 case this.DEFINE_CART_MODE_MINIMUM: // Min 25119 this.cartStatus = this.DEFINE_CART_MODE_MINIMUM;
25120 25121 if (legacyFlag) { 25122 // 0â1 25123 if (this.$downloadListJObj.is(':hidden')) { 25124 this.$downloadListOpenerJObj.hide().find('#DownloadListOpenerAmountCount em').text(this.$DownloadListAmountCountJObj.text()); 25125 this.$downloadListJObj.hide(); 25126 this.$downloadListOpenerJObj.slideDown(kpi_usersettings.CartOCSpd, kpi_usersettings.CartSlideEasing, function () { 25127 that.cookieCtrl().setCartMode(that.DEFINE_CART_MODE_MINIMUM); 25128 that.$body.addClass('DownloadListClose'); 25129 }); 25130 } else { 25131 // 2â1 25132 this.$downloadListOpenerJObj.hide().find('#DownloadListOpenerAmountCount em').text(this.$DownloadListAmountCountJObj.text()); 25133 this.$downloadListJObj.slideUp(kpi_usersettings.CartOCSpd, kpi_usersettings.CartSlideEasing, function () { 25134 that.cookieCtrl().setCartMode(that.DEFINE_CART_MODE_MINIMUM); 25135 that.$body.addClass('DownloadListClose'); 25136 }); 25137 this.$downloadListOpenerJObj.slideDown(kpi_usersettings.CartOCSpd, kpi_usersettings.CartSlideEasing, function () { 25138 that.cookieCtrl().setCartMode(that.DEFINE_CART_MODE_MINIMUM); 25139 that.$body.addClass('DownloadListClose'); 25140 }); 25141 } 25142 } else { 25143 $smallPanel.removeAttr('aria-hidden'); 25144 $largePanel.attr('aria-hidden', true); 25145 that.cookieCtrl().setCartMode(that.DEFINE_CART_MODE_MINIMUM); 25146 } 25147 25148 break; 25149 case this.DEFINE_CART_MODE_MAXIMUM: // Max 25150 this.cartStatus = this.DEFINE_CART_MODE_MAXIMUM; 25151 25152 // 0â2 25153 if (legacyFlag) { 25154 if (this.$downloadListJObj.is(':hidden')) { 25155 this.$downloadListOpenerJObj.hide().find('#DownloadListOpenerAmountCount em').text(this.$DownloadListAmountCountJObj.text()); 25156 this.$downloadListContentJObj.show(); 25157 this.$downloadListJObj.slideDown(kpi_usersettings.CartOCSpd, kpi_usersettings.CartSlideEasing, function () { 25158 that.$body.addClass('DownloadListOpen'); 25159 that.$DownloadListTitleButtonJObj.find('a').html(kpi_translation.Close); 25160 }); 25161 } else { 25162 // 1â2 25163 this.$downloadListContentJObj.slideDown(kpi_usersettings.CartOCSpd, kpi_usersettings.CartSlideEasing, function () { 25164 that.$body.addClass('DownloadListOpen'); 25165 that.$DownloadListTitleButtonJObj.find('a').html(kpi_translation.Close); 25166 }); 25167 } 25168 } else { 25169 $largePanel.removeAttr('aria-hidden'); 25170 $smallPanel.attr('aria-hidden', true); 25171 } 25172 25173 this.cookieCtrl().setCartMode(this.DEFINE_CART_MODE_MAXIMUM); 25174 25175 break; 25176 default: 25177 } 25178 25179 $('.box_utility_02').hide(); 25180 25181 this._updateCartCarousel(); 25182 this._updateCartList(); 25183 }, 25184 25185 cookieCtrl: function () { 25186 var that = this; 25187 25188 return { 25189 getAgreement: function () { 25190 var v = kpi_getCrossDomainCookie(kpi_cookiesettings.cookieNameDownloadAgreement); 25191 25192 if (v === null) { 25193 that.cookieCtrl().setAgreement(1, 1); 25194 } 25195 25196 return kpi_getCrossDomainCookie(kpi_cookiesettings.cookieNameDownloadAgreement); 25197 }, 25198 setAgreement: function (isSoftAgree, isCadAgree) { 25199 var value = (isSoftAgree) ? isSoftAgree : '0'; 25200 25201 value += ','; 25202 value += (isCadAgree) ? isCadAgree : '0'; 25203 kpi_setCrossDomainCookie(kpi_cookiesettings.cookieNameDownloadAgreement, value, 0, false); 25204 }, 25205 getCartMode: function () { 25206 var v = kpi_getCrossDomainCookie(kpi_cookiesettings.cookieNameCartMode); 25207 25208 if (v === null) { 25209 that.cookieCtrl().setCartMode(that.DEFINE_CART_MODE_MINIMUM); 25210 } 25211 25212 return parseInt(kpi_getCrossDomainCookie(kpi_cookiesettings.cookieNameCartMode));
25213 }, 25214 setCartMode: function (cartMode) { 25215 kpi_setCrossDomainCookie(kpi_cookiesettings.cookieNameCartMode, cartMode, 0, false); 25216 }, 25217 getHasAddToList: function () { 25218 var v = kpi_getCrossDomainCookie(kpi_cookiesettings.cookieNameHasAddToList); 25219 25220 if (v === null) { 25221 that.cookieCtrl().setHasAddToList('0'); 25222 } 25223 25224 return kpi_getCrossDomainCookie(kpi_cookiesettings.cookieNameHasAddToList); 25225 }, 25226 setHasAddToList: function (val) { 25227 kpi_setCrossDomainCookie(kpi_cookiesettings.cookieNameHasAddToList, val, 0, false); 25228 } 25229 }; 25230 }, 25231 25232 _checkSupportsTemp: function () { 25233 return 'content' in document.createElement('template'); 25234 }, 25235 25236 _createNodeClone: function (template, selectorForIE) { 25237 if (this._checkSupportsTemp() === true) { 25238 return document.importNode(template.content, true); 25239 } 25240 25241 return document.importNode(template.querySelector(selectorForIE), true); // For IE 25242 }, 25243 25244 _updateCartList: function () { 25245 var fragment = document.createDocumentFragment(); 25246 var cartListTemp = document.getElementById('JSCartAssetsTemplate'); 25247 var cartList = document.getElementById('js-downloadListPanel-cartList'); 25248 var self = this; 25249 25250 if (!cartListTemp || !cartList) { 25251 return; 25252 } 25253 25254 $(cartList).empty(); 25255 kpi_cartObj.cartAssetInfo.forEach(function (items) { 25256 var cartListNodeClone = self._createNodeClone(cartListTemp, 'li'); 25257 var assetImage = cartListNodeClone.querySelector('.js-downloadListPanel-assetImage'); 25258 var deleteButton = cartListNodeClone.querySelector('.js-downloadListPanel-deleteButton'); 25259 var assetName = cartListNodeClone.querySelector('.js-downloadListPanel-assetName'); 25260 25261 if (assetImage) { 25262 assetImage.src = window.kpi_domainSettings.originalDomain + window.kpi_cartsettings.thumbnailPath + items.thumbnail; 25263 } 25264 25265 if (deleteButton) { 25266 deleteButton.id = 'delete-' + items.assetId; 25267 25268 $(deleteButton).on('click', function () { 25269 var id = $(this).attr('id'); 25270 25271 $('#' + id).parents('li').fadeOut(window.kpi_usersettings.CartItemFadeOutSpd, function () { 25272 kpi_cartObj.removeCart(id.replace('delete-', '')); 25273 }); 25274 }); 25275 } 25276 25277 if (assetName) { 25278 assetName.textContent = items.assetName; 25279 } 25280 25281 fragment.appendChild(cartListNodeClone); 25282 }); 25283 25284 cartList.append(fragment); 25285 $('.js-downloadListPanel-minimumImage').attr({ 25286 src: $('.js-downloadListPanel-assetImage').eq(0).attr('src') 25287 }); 25288 }, 25289 25290 _updateCartCarousel: function () { 25291 var $carousel = $('#DownloadListContent').find('.BasicCarousel'); 25292 25293 if (!$carousel.length) { 25294 return; 25295 } 25296 25297 $(window).on('resize', function () { 25298 $carousel.data('jcarousel').reset(); 25299 }); 25300 25301 $carousel.jcarousel({ 25302 scroll: 10, 25303 size: kpi_cartObj.amount, 25304 animation: kpi_usersettings.FrameCarouselMvSpd, 25305 rtl: false, 25306 itemFallbackDimension: 300, 25307 initCallback: function (carousel) { 25308 if (!this.downloadListCarousel) { 25309 this.downloadListCarousel = carousel; 25310 } 25311 }, 25312 itemLoadCallback: { 25313 onBeforeAnimation: function (carousel, state) { 25314 if (0 < kpi_cartObj.cartAssetInfo.length && state == 'init') { 25315 for (var i = carousel.first; i <= kpi_cartObj.amount; i++) { 25316 if (carousel.has(i)) { 25317 continue; 25318 } 25319 25320 if (i > kpi_cartObj.maxNum) { 25321 break; 25322 } 25323 var itemHtml = '<span class="DeleteButtonWrap">' + 25324 '<img src="' + kpi_domainSettings.originalDomain + kpi_cartsettings.thumbnailPath + kpi_cartObj.cartAssetInfo[i - 1].thumbnail + '" alt="" data-balloonlabel="' + kpi_cartObj.cartAssetInfo[i - 1].assetName + '">' + 25325 '<a href="#" class="DeleteButton" id="delete-' + kpi_cartObj.cartAssetInfo[i - 1].assetId + '">' + 25326 '<img src="' + kpi_domainSettings.originalDomain + '/img/common/btn_delete_s.png" alt="" class="RollOver"></a></span>'; 25327 25328 carousel.add(i, itemHtml); 25329 } 25330 25331 // Delete 25332 $('.DeleteButton', '#DownloadListContent').on('click', function () { 25333 var id = $(this).attr('id'); 25334 25335 $('#' + id).parents('li').fadeOut(kpi_usersettings.CartItemFadeOutSpd, function () { 25336 kpi_cartObj.removeCart(id.replace('delete-', '')); 25337 }); 25338 25339 return false; 25340 }); 25341 } 25342 },
25343 onAfterAnimation: function (carousel, state) { 25344 if (state === 'next') { 25345 $('.jcarousel-next').addClass('jcarousel-next-disabled jcarousel-next-disabled-horizontal').attr('disabled', 'disabled'); 25346 } 25347 } 25348 }, 25349 reloadCallback: function (carousel) { 25350 } 25351 }); 25352 $carousel.data('jcarousel').reset(); 25353 }, 25354 _getFilesize: function () { 25355 var d = this.fileSize / 1048576; 25356 25357 return d.toFixed(2); 25358 }, 25359 _changeProgressButton: function () { 25360 var _hasSoft; 25361 var _hasCad; 25362 var $legacySoftAgree = this.$DownloadListLicenseSoftwareJObj; 25363 var $legacyCadAgree = this.$DownloadListLicenseCadJObj; 25364 25365 switch (this.cartStatus) { 25366 case this.DEFINE_CART_MODE_MINIMUM: 25367 _hasSoft = $('.js-downloadListPanel-softwareAgree input').prop('checked'); 25368 _hasCad = $('.js-downloadListPanel-cadAgree input').prop('checked'); 25369 break; 25370 25371 case this.DEFINE_CART_MODE_MAXIMUM: 25372 _hasSoft = $legacySoftAgree.length ? 25373 $legacySoftAgree.prop('checked') : 25374 $('.js-downloadListPanel-softwareAgree input').prop('checked'); 25375 _hasCad = $legacyCadAgree.length ? 25376 $legacyCadAgree.prop('checked') : 25377 $('.js-downloadListPanel-cadAgree input').prop('checked'); 25378 25379 if ($legacySoftAgree.parents('li:hidden').length) { 25380 _hasSoft = true; 25381 } 25382 25383 if ($legacyCadAgree.parents('li:hidden').length) { 25384 _hasCad = true; 25385 } 25386 break; 25387 default: 25388 } 25389 25390 if (_hasSoft && _hasCad || !(this.$DownloadListLicenseCadJObj.parents('dl').is(':visible'))) { 25391 if (this.$DownloadListProgressButtonJObj.hasClass('Disabled')) { 25392 this.$DownloadListProgressButtonJObj.removeClass('Disabled'); 25393 } 25394 } else { 25395 if (!this.$DownloadListProgressButtonJObj.hasClass('Disabled')) { 25396 this.$DownloadListProgressButtonJObj.addClass('Disabled'); 25397 } 25398 } 25399 25400 if (_hasSoft && _hasCad || !($('.js-downloadListPanel-license').is(':visible'))) { 25401 if ($('.js-downloadListPanel-downloadButton').attr('aria-disabled') === 'true') { 25402 $('.js-downloadListPanel-downloadButton').attr('aria-disabled', false); 25403 $('.js-downloadListPanel-downloadButton').attr('tabindex', 0); 25404 } 25405 } else { 25406 $('.js-downloadListPanel-downloadButton').attr('aria-disabled', true); 25407 $('.js-downloadListPanel-downloadButton').attr('tabindex', -1); 25408 } 25409 }, 25410 _changeUserRegistProgressButton: function () { 25411 if (this._isDownloadLicenseAgreed(this.$DownloadListLicenseSoftwareJObj, this.$DownloadListLicenseCadJObj)) { 25412 this._changeUserRegistButton().on(); 25413 } else { 25414 this._changeUserRegistButton().off(); 25415 } 25416 }, 25417 _isDownloadLicenseAgreed: function ($SoftwareJObj, $CadJObj) { 25418 var isSoftAgree = true; 25419 var isCadAgree = true; 25420 var c = this.cookieCtrl().getAgreement(); 25421 25422 if (c.charAt(0) != '1') { 25423 isSoftAgree = false; 25424 } 25425 25426 if (c.charAt(2) != '1') { 25427 isCadAgree = false; 25428 } 25429 25430 if ($SoftwareJObj && $SoftwareJObj.parent().is(':visible')) { 25431 if ($SoftwareJObj.prop('checked')) { 25432 isSoftAgree = true; 25433 } else { 25434 isSoftAgree = false; 25435 } 25436 } else { 25437 isSoftAgree = true; 25438 } 25439 25440 if ($('.js-downloadList-softwareAgree').is(':visible')) { 25441 if ($('.js-downloadList-softwareAgree input').prop('checked')) { 25442 isSoftAgree = true; 25443 } else { 25444 isSoftAgree = false; 25445 } 25446 } else { 25447 isSoftAgree = true; 25448 } 25449 25450 if ($CadJObj && $CadJObj.parent().is(':visible')) { 25451 if ($CadJObj.prop('checked')) { 25452 isCadAgree = true; 25453 } else { 25454 isCadAgree = false; 25455 } 25456 } else { 25457 isCadAgree = true; 25458 } 25459 25460 if ($('.js-downloadList-cadAgree').is(':visible')) { 25461 if ($('.js-downloadList-cadAgree input').prop('checked')) { 25462 isCadAgree = true; 25463 } else { 25464 isCadAgree = false; 25465 } 25466 } else { 25467 isCadAgree = true; 25468 } 25469 25470 if (isSoftAgree && isCadAgree) { 25471 return true; 25472 } else { 25473 return false; 25474 } 25475 }, 25476 _changeUserRegistButton: function () { 25477 var $target = $("[name='login'], [name='directSubmit'], [name='next'], #submit2[name='confirm'], #js-form-btnCheckRegistered, .js-regForm-btnNext, #js-form-autoSignupSwitch, #js-form-autoLoginSwitch, [name='simple
254776'], #js-form-btnCheckMobileRegistered"); 25478 var $targetsExcludingRegisterScreenButton = null; 25479 var privacyPolicyAgreementBox = document.querySelector('#as_agreeBoxCheked #agreeAll'); 25480 25481 return { 25482 on: function () { 25483 if (!MultiStepForm.isShow(MultiStepForm.Register.$root)) { 25484 kpi_cartObj._changeUserRegisterButtonActive($target); 25485 25486 return; 25487 } 25488 25489 if (privacyPolicyAgreementBox) { 25490 if (privacyPolicyAgreementBox.checked && 25491 privacyPolicyAgreementBox.checkVisibility({ 25492 opacityProperty: true, 25493 contentVisibilityAuto: true, 25494 }) 25495 ) { 25496 kpi_cartObj._changeUserRegisterButtonActive($target, true); 25497 window.changeRegisterProgressButtonActive(); 25498 } else if (privacyPolicyAgreementBox.checked) { 25499 kpi_cartObj._changeUserRegisterButtonActive($target, true); 25500 } else { 25501 $targetsExcludingRegisterScreenButton = $target.filter(function (index, item) { 25502 if ($(item).hasClass('js-regForm-btnNext') || $(item).hasClass('js-regForm-btnSubmit')) { 25503 return false; 25504 } 25505 25506 return true; 25507 }); 25508 25509 kpi_cartObj._changeUserRegisterButtonActive($targetsExcludingRegisterScreenButton); 25510 } 25511 } else { 25512 kpi_cartObj._changeUserRegisterButtonActive($target); 25513 } 25514 }, 25515 off: function () { 25516 $target.closest('.buttonConversion').addClass('is-disabled'); 25517 $target.prop('disabled', 'disabled'); 25518 $target.attr('data-disabled', true); 25519 25520 $target.each(function () { 25521 var $wrapper = $(this).parent('.of-inputElement'); 25522 25523 if ($wrapper.length) { 25524 $wrapper.attr('aria-disabled', true); 25525 } 25526 }); 25527 } 25528 }; 25529 }, 25530 _changeUserRegisterButtonActive: function ($target, isPrivacyPolicyAgreementBox) { 25531 $target.closest('.buttonConversion').removeClass('is-disabled'); 25532 $target.each(function () { 25533 this.removeAttribute('disabled'); 25534 }); 25535 $target.attr('data-disabled', false); 25536 25537 $target.each(function () { 25538 var $wrapper = $(this).parent('.of-inputElement'); 25539 25540 if ($wrapper.length) { 25541 $wrapper.attr('aria-disabled', false); 25542 } 25543 25544 if (($(this).attr('id') === 'js-form-btnCheckMobileRegistered') && 25545 !window.KeyenceForm.SMSCodeButton.timeIds['js-form-btnCheckMobileRegistered'] 25546 ) { 25547 $(this).attr('aria-disabled', false); 25548 } 25549 25550 if (($(this).hasClass('js-regForm-btnNext') || $(this).hasClass('js-regForm-btnSubmit')) && 25551 !isPrivacyPolicyAgreementBox 25552 ) { 25553 $(this).attr('aria-disabled', false); 25554 } 25555 }); 25556 }, 25557 _setLicenseCookie: function () { 25558 var isSoftAgree = 0; 25559 var isCadAgree = 0; 25560 25561 // cookie 25562 if (this.$DownloadListLicenseSoftwareJObj.prop('checked')) { 25563 isSoftAgree = 1; 25564 } 25565 25566 if ($('.js-downloadListPanel-softwareAgree input').prop('checked')) { 25567 isSoftAgree = 1; 25568 } 25569 25570 if (this.$DownloadListLicenseCadJObj.prop('checked')) { 25571 isCadAgree = 1; 25572 } 25573 25574 if ($('.js-downloadListPanel-cadAgree input').prop('checked')) { 25575 isCadAgree = 1; 25576 } 25577 25578 this.cookieCtrl().setAgreement(isSoftAgree, isCadAgree); 25579 }, 25580 _initHtml: function () { 25581 var fragment = document.createDocumentFragment(); 25582 var cartTemp = document.getElementById('JSCartTemplate'); 25583 var cartNodeClone = null; 25584 var elems = {}; 25585 25586 if (!cartTemp || !($('#DownloadList').length && $('#js-downloadListPanel-wrapper').length)) { 25587 return; 25588 } 25589 25590 cartNodeClone = this._createNodeClone(cartTemp, 'div'); 25591 elems.cartTitle = cartNodeClone.querySelectorAll('.js-downloadListPanel-title'); 25592 elems.totalLabel = cartNodeClone.querySelectorAll('.js-downloadListPanel-totalLabel'); 25593 elems.totalUnit = cartNodeClone.querySelectorAll('.js-downloadListPanel-totalUnit'); 25594 elems.license = cartNodeClone.querySelector('.js-downloadListPanel-license'); 25595 elems.allRemoveLabel = cartNodeClone.querySelector('.js-downloadListPanel-allRemoveLabel'); 25596 elems.cadLabel = cartNodeClone.querySelector('.js-downloadListPanel-cadLabel'); 25597 elems.cadModal = cartNodeClone.querySelector('.js-downloadListPanel-cadModal'); 25598 elems.cadModalLink = cartNodeClone.querySelector('.js-downloadListPanel-cadModalLink'); 25599 elems.softLabel = cartNodeClone.querySelector('.js-downloadListPanel-softwareLabel'); 25600 elems.softModal = cartNodeClone.querySelector('.js-downloadListPanel-softwareModal'); 25601 elems.softModalLink = cartNodeClone.querySelector('.js-downloadListPanel-softwareModalLink'); 25602 elems.downloadLabel = cartNodeClone.querySelector('.js-downloadListPanel-downloadLabel'); 25603 elems.downloadButton = cartNodeClone.querySelectorAll('.js-downloadListPanel-downloadButton'); 25604 elems.modalCloseButton = cartNodeClone.querySelectorAll('.js-downloadListPanel-modalCloseButton'); 25605 25606 if (elems.cartTitle.length) { 25607 elems.cartTitle.forEach(function (items) { 25608 items.textContent = window.kpi_translation.DownloadList + ' '; 25609 }); 25610 } 25611 25612 if (elems.totalLabel.length) { 25613 elems.totalLabel.forEach(function (items) { 25614 items.textContent = window.kpi_translation.Total + ' '; 25615 }); 25616 } 25617 25618 if (elems.totalUnit.length) { 25619 elems.totalUnit.forEach(function (items) { 25620 items.textContent = window.kpi_translation.MB; 25621 }); 25622 } 25623 25624 if (elems.license) { 25625 elems.license.textContent = window.kpi_translation.LicenseAgreement; 25626 } 25627 25628 if (elems.allRemoveLabel) { 25629 elems.allRemoveLabel.textContent = window.kpi_translation.DeleteAllItem; 25630 } 25631 25632 if (elems.cadLabel) { 25633 elems.cadLabel.textContent = window.kpi_translation.CadLicenseAgreementTitle; 25634 } 25635 25636 if (elems.cadModal) { 25637 elems.cadModal.setAttribute('aria-label', window.kpi_translation.CadLicenseAgreementTitle + ' ' + window.kpi_translation.LicenseAgreement); 25638 } 25639 25640 if (elems.softLabel) { 25641 elems.softLabel.textContent = window.kpi_translation.SoftwareLicenseAgreementTitle; 25642 } 25643 25644 if (elems.softModal) { 25645 elems.softModal.setAttribute('aria-label', window.kpi_translation.SoftwareLicenseAgreementTitle + ' ' + window.kpi_translation.LicenseAgreement); 25646 } 25647 25648 if (elems.downloadLabel) { 25649 elems.downloadLabel.textContent = window.kpi_translation.ProgressToDownload; 25650 } 25651 25652 if (elems.downloadButton.length) { 25653 elems.downloadButton.forEach(function (items) { 25654 items.href = window.kpi_domainSettings.originalDomain + window.kpi_cartsettings.downloadUrl; 25655 }); 25656 } 25657 25658 if (elems.modalCloseButton.length) { 25659 elems.modalCloseButton.forEach(function (items) { 25660 items.setAttribute('aria-label', window.kpi_translation.Close); 25661 }); 25662 } 25663 25664 fragment.appendChild(cartNodeClone); 25665 // this.$downloadListJObj.wrap('<div id="DownloadListWrapper" class="TypeGlobal" />'); 25666 this.$downloadListJObj.append(fragment); 25667 }, 25668 _initLegacyHtml: function () { 25669 var downloadHtml = []; 25670 25671 if ($('#js-downloadListPanel-wrapper').length) { 25672 return; 25673 } 25674 25675 this.$downloadListJObj.hide().wrap('<div id="DownloadListWrapper" class="TypeGlobal" />'); 25676 this.$downloadListJObj.before('<div id="DownloadListOpenerWrapper"><button id="DownloadListOpener" type="button"><span id="DownloadListOpenerAmountCount"><em>-</em>' + kpi_translation.Amount + '</span><span id="DownloadListOpenerSelectedText">' + kpi_translation.Selected + '</span><span id ="DownloadListOpenerText">' + kpi_translation.Open + '</span></button></div>'); 25677 25678 downloadHtml.push('<div id="DownloadListTitleWrap">'); 25679 downloadHtml.push('<div id="DownloadListTitle">'); 25680 downloadHtml.push('<div id="DownloadListTitleInner">'); 25681 downloadHtml.push('<p class="Title">' + kpi_translation.DownloadList + '</p>'); 25682 downloadHtml.push('<div class="InformationCol">'); 25683 downloadHtml.push('<ul class="DownloadItemInformation">'); 25684 downloadHtml.push('<li>' + kpi_translation.Amount + '<em><span id="DownloadListAmountCount">12</span> / <span id="DownloadListAmountLimit">20</span> ' + kpi_translation.Selected + '</em></li>'); 25685 downloadHtml.push('<li>' + kpi_translation.Total + '<em><span id="DownloadListTotalFileSize">8.88</span> ' + kpi_translation.MB + '</em></li>'); 25686 downloadHtml.push('</ul>'); 25687 downloadHtml.push('<div id="DownloadListTitleButton" class="Button"><a href="#">
25687' + kpi_translation.Open + '</a></div>'); 25688 downloadHtml.push('</div>'); 25689 downloadHtml.push('<!-- /div#DownloadListTitleInner --></div>'); 25690 downloadHtml.push('<!-- /div#DownloadListTitle --></div>'); 25691 25692 downloadHtml.push('<div id="DownloadListErrorMessage" style="display: none;">'); 25693 downloadHtml.push('<!-- /div#DownloadListErrorMessage --></div>'); 25694 25695 downloadHtml.push('<!-- /div#DownloadListTitleWrap --></div>'); 25696 25697 downloadHtml.push('<div id="DownloadListContent" style="display: none;">'); 25698 downloadHtml.push('<div id="DownloadListContentInner">'); 25699 downloadHtml.push('<div class="ItemCol">'); 25700 downloadHtml.push('<ul class="BasicCarousel ImageList Download Horizontal jcarousel-skin-basic">'); 25701 downloadHtml.push('</ul>'); 25702 downloadHtml.push('<ul class="DeleteAllItem">'); 25703 downloadHtml.push('<li class="Link"><a href="#">' + kpi_translation.DeleteAllItem + '</a></li>'); 25704 downloadHtml.push('</ul>'); 25705 downloadHtml.push('<!-- /div.ItemCol --></div>'); 25706 downloadHtml.push('<div class="OperationCol">'); 25707 downloadHtml.push('<dl>'); 25708 downloadHtml.push('<dt>' + kpi_translation.LicenseAgreement + '</dt>'); 25709 downloadHtml.push('<dd>'); 25710 25711 downloadHtml.push('<ul>'); 25712 downloadHtml.push('<li><label for="DownloadListLicenseCad"><input type="checkbox" value="1" name="CadLicense" id="DownloadListLicenseCad" class="" ><span><a href="' + kpi_domainSettings.searchDomain + kpi_cartsettings.downloadLicenseCad + '" target="_blank" class="Modal" title="Cad License Agreement" id="DownloadListLicenseCadAnchor">' + kpi_translation.CadLicenseAgreementTitle + '</a></span></label></li>'); 25713 downloadHtml.push('<li><label for="DownloadListLicenseSoftware"><input type="checkbox" value="1" name="SoftwareLicense" id="DownloadListLicenseSoftware" class="" ><span><a href="' + kpi_domainSettings.searchDomain + kpi_cartsettings.downloadLicenseSoft + '" target="_blank" class="Modal" title="Software License Agreement" id="DownloadListLicenseSoftwareAnchor">' + kpi_translation.SoftwareLicenseAgreementTitle + '</a></span></label></li>'); 25714 downloadHtml.push('</ul>'); 25715 25716 downloadHtml.push('</dd>'); 25717 downloadHtml.push('</dl>'); 25718 downloadHtml.push('<div><a href="' + kpi_domainSettings.originalDomain + kpi_cartsettings.downloadUrl + '" class="TextButton Download" id="DownloadListProgressButton"><span class="Inner">' + kpi_translation.ProgressToDownload + '</span></a></div>'); 25719 downloadHtml.push('</div>'); 25720 downloadHtml.push('<!-- /div#DownloadListContentInner --></div>'); 25721 downloadHtml.push('<!-- /div#DownloadListContent --></div>'); 25722 25723 this.$downloadListJObj.html(downloadHtml.join('')); 25724 }, 25725 _addCssEffect: function () { 25726 var kpi_RollOverSuffix = '_on'; 25727 25728 $('body').append('<div class="Balloon"><div class="BalloonInner"><p></p></div><div class="BalloonChip"></div></div>'); 25729 var kpi_balloon = $('body').children('.Balloon'); 25730 25731 // Close Button Hover 25732 $('.DeleteButton', target).off().on({ 25733 mouseenter: function () { 25734 var imgout = $(this).children('img').attr('src'); 25735 var imgovr = imgout.replace('.png', kpi_RollOverSuffix + '.png'); 25736 25737 $(this).children('img').attr('src', imgovr); 25738 }, 25739 mouseleave: function () { 25740 var imgover = $(this).children('img').attr('src'); 25741 var imgout = imgover.replace(kpi_RollOverSuffix + '.png', '.png'); 25742 25743 $(this).children('img').attr('src', imgout); 25744 } 25745 }); 25746 25747 var target = $('#DownloadListContent ul.ImageList'); 25748 25749 // Speach Bubble 25750 $('li .DeleteButtonWrap', target).off().on({ 25751 'mouseenter': function () { 25752 var balloonlabel = $(this).children().attr('data-balloonlabel'); 25753 25754 $('p', kpi_balloon).text(balloonlabel); 25755 var thisoffset = $(this).offset(); 25756 var ballontop = thisoffset.top - kpi_balloon.height() - 7; 25757 var ballonleft = thisoffset.left + $(this).width() / 2 - kpi_balloon.width() / 2; 25758 25759 kpi_balloon.css({'top': ballontop, 'left': ballonleft, 'zIndex': '501'}); 25760 kpi_balloon.stop(true, true).fadeIn(kpi_usersettings.DeleteBtnFadeInSpd); 25761 }, 25762 'mouseleave': function () { 25763 kpi_balloon.stop(true, true).fadeOut(kpi_usersettings.DeleteBtnFadeOutSpd); 25764 } 25765 }); 25766 } 25767}; 25768 25769// ready 25770$(function () { 25771 var kpi_downloadListJObj = ($('#DownloadList').length && $('#js-downloadListPanel-wrapper').length) ? 25772 $('#js-downloadListPanel-wrapper') : 25773 $('#DownloadList');
25774 var kpi_userRegistSoftware = $('#DownloadListLicenseSoftware'); 25775 var kpi_userRegistCad = $('#DownloadListLicenseCad'); 25776 25777 var kpi_window = $(window); 25778 var addCartTimer = null; 25779 25780 if (kpi_downloadListJObj.length) { 25781 var kpi_addToListJObj = $('.AddToList'); 25782 var kpi_InactiveAddToListJObj = $('.InactiveAddToList'); 25783 25784 kpi_cartObj.init(); 25785 window.setTimeout(function () { 25786 kpi_cartObj.getAllAssetInfo(); 25787 }, 500); 25788 25789 // click on add to list 25790 $(document).on('click', '.AddToList', function (e) { 25791 e.preventDefault(); 25792 $t = $(this); 25793 25794 if ($t.hasClass('IsWaiting')) { 25795 return; 25796 } 25797 25798 if (kpi_cartObj.amount < kpi_cartObj.maxNum && !$t.hasClass('Disabled') && !kpi_cartObj._isGroupDisabled()) { 25799 if (!kpi_cartObj.$downloadListContentJObj.find('.BasicCarousel').find('li').eq(0).is(':animated')) { 25800 if (addCartTimer !== null) { 25801 clearTimeout(addCartTimer); 25802 } 25803 25804 $('.AddToList').not('.Disabled').addClass('IsWaiting'); 25805 25806 addCartTimer = setTimeout(function () { 25807 kpi_cartObj.addCart($t.attr('id'), $t.attr('data-seriesid'), $t.attr('data-productid'), $t.attr('id')); 25808 }, 200); 25809 } 25810 } 25811 25812 return false; 25813 }); 25814 25815 if (kpi_InactiveAddToListJObj.length) { 25816 kpi_InactiveAddToListJObj.on('click', function () { 25817 return false; 25818 }); 25819 } 25820 25821 kpi_cartObj.$DownloadListTitleButtonJObj.find('a').on('click', function () { 25822 if (kpi_cartObj.$downloadListContentJObj.is(':hidden')) { 25823 kpi_cartObj._changeCartMode(kpi_cartObj.DEFINE_CART_MODE_MAXIMUM); 25824 } else { 25825 kpi_cartObj._changeCartMode(kpi_cartObj.DEFINE_CART_MODE_MINIMUM); 25826 } 25827 25828 return false; 25829 }); 25830 25831 kpi_cartObj.$downloadListOpenerJObj.find('button').on('click', function () { 25832 if (kpi_cartObj.$downloadListJObj.is(':hidden')) { 25833 kpi_cartObj._changeCartMode(kpi_cartObj.DEFINE_CART_MODE_MAXIMUM); 25834 } 25835 25836 return false; 25837 }); 25838 25839 $('.js-downloadListPanel-shrinkButton').on('click', function () { 25840 kpi_cartObj._changeCartMode(kpi_cartObj.DEFINE_CART_MODE_MINIMUM); 25841 }); 25842 25843 $('.js-downloadListPanel-spreadButton').on('click', function () { 25844 kpi_cartObj._changeCartMode(kpi_cartObj.DEFINE_CART_MODE_MAXIMUM); 25845 }); 25846 25847 // All Delete 25848 kpi_downloadListJObj.find('.DeleteAllItem').find('a, button').on('click', function () { 25849 if (confirm(kpi_translation.DeleteAllItemConfirmMessage)) { 25850 kpi_cartObj.removeAllCart(); 25851 } 25852 25853 return false; 25854 }); 25855 // ProgressButton 25856 kpi_cartObj.$DownloadListLicenseSoftwareJObj.on('click', function () { 25857 kpi_cartObj._changeProgressButton(); 25858 kpi_cartObj._setLicenseCookie(); 25859 }); 25860 $('.js-downloadListPanel-softwareAgree input').on('change', function () { 25861 kpi_cartObj._changeProgressButton(); 25862 kpi_cartObj._setLicenseCookie(); 25863 }); 25864 kpi_cartObj.$DownloadListLicenseCadJObj.on('click', function () { 25865 kpi_cartObj._changeProgressButton(); 25866 kpi_cartObj._setLicenseCookie(); 25867 }); 25868 $('.js-downloadListPanel-cadAgree input').on('change', function () { 25869 kpi_cartObj._changeProgressButton(); 25870 kpi_cartObj._setLicenseCookie(); 25871 }); 25872 25873 $('#DownloadListProgressButton').on('click', function () { 25874 if ($(this).hasClass('Disabled')) { 25875 return false; 25876 } 25877 }); 25878 $('.js-downloadListPanel-softwareLabel, .js-downloadListPanel-cadLabel').on('click', function (e) { 25879 e.preventDefault(); 25880 }); 25881 25882 var $modalLink = $('#DownloadListLicenseCadAnchor, #DownloadListLicenseSoftwareAnchor'); 25883 var $kpi_window = $(window); 25884 25885 kpi_cartObj.callbackFromLicenseModal(); 25886 25887 $modalLink.on('click', function (e) { 25888 e.preventDefault(); 25889 kpi_openedModalWindow = $(this).attr('href'); 25890 25891 $(this).colorbox({ 25892 speed: kpi_usersettings.ModalOpenSpd, 25893 initialWidth: '450px', 25894 maxWidth: $kpi_window.width() - 60, 25895 initialHeight: '600px', 25896 maxHeight: $kpi_window.height() - 60, 25897 href: kpi_openedModalWindow + ' #ModalContent', 25898 onOpen: function () { $('#kpi_modalbox').removeClass('ModalLarge'); }, 25899 onComplete: function () { 25900 $('#cboxLoadedContent').find('meta, title, link').remove(); 25901 if ($('#DownloadList').length || 25902 ($('#DownloadListLicenseSoftware').length || $('#DownloadListLicenseCad').length) 25903 ) { 25904 kpi_cartObj.callbackFromModalWindow($(this).closest('label').find('input').attr('id')); // For Cart 25905 if ($('#cboxClose').length) { 25906 $('#cboxClose')[0].focus(); 25907 } 25908 } 25909 } 25910 }); 25911 }); 25912 25913 $($('html')[0]).addClass('cartactive'); 25914 } else { 25915 // user regist
25916 var isSoftwareUR = kpi_userRegistSoftware.length; 25917 var isCadUR = kpi_userRegistCad.length; 25918 25919 if (isSoftwareUR || isCadUR) { 25920 kpi_cartObj.init(); 25921 kpi_cartObj._changeUserRegistProgressButton(); 25922 // ProgressButton 25923 if (isSoftwareUR) { 25924 kpi_cartObj.$DownloadListLicenseSoftwareJObj.on('click', function () { 25925 kpi_cartObj._changeUserRegistProgressButton(); 25926 kpi_cartObj._setLicenseCookie(); 25927 if (kpi_ua.ltIE8 || kpi_ua.ltIE7) { 25928 return false; 25929 } 25930 }); 25931 } 25932 if (isCadUR) { 25933 kpi_cartObj.$DownloadListLicenseCadJObj.on('click', function () { 25934 kpi_cartObj._changeUserRegistProgressButton(); 25935 kpi_cartObj._setLicenseCookie(); 25936 if (kpi_ua.ltIE8 || kpi_ua.ltIE7) { 25937 return false; 25938 } 25939 }); 25940 } 25941 } 25942 } 25943 25944 if ($('.js-downloadList-cadAgree, .js-downloadList-softwareAgree').length) { 25945 kpi_cartObj.callbackFromDLProcessLicenseModal(); 25946 25947 $('.js-downloadList-softwareAgree input, .js-downloadList-cadAgree input').on('change', function () { 25948 kpi_cartObj._changeUserRegistProgressButton(); 25949 }); 25950 } 25951}); 25952 25953/* end cartscript.js 25954-------------------------------------------------------- */ 25955 25956/* Popup 25957-------------------------------------------------------- */ 25958function kpi_popupEvent(self, w, h, name, d, s, m, t, l, sc, r) { 25959 var url = self.getAttribute('href', '2'); 25960 25961 if (w == 'Small') { 25962 w = 540; 25963 h = 405; 25964 } else if (w == 'Normal') { 25965 w = 700; 25966 h = 525; 25967 } 25968 25969 window.open(url, name, 'width=' + w + 'px, height=' + h + 'px, directories=' + d + ', status=' + s + ', menubar=' + m + ', toolbar=' + t + ', location=' + l + ', scrollbars=' + sc + ', resizable=' + r + ''); 25970} 25971/* end Popup 25972-------------------------------------------------------- */ 25973 25974 25975/*! For license information please see master.js.LICENSE.txt */ 25976(()=>{var t={15:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>g});r(8037);var n=r(7431),i=r(2561),o=r(6710),s=r(3008),a=r(3134),c=r(6973),u=r(6192),l=r.n(u),f=r(6782),h="Invariant failed";function p(t,e){if(!t)throw new Error(h)}var d=r(327);function v(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(v=function(){return!!t})()}var g=function(t){function e(){return(0,i.A)(this,e),t=this,r=e,n=arguments,r=(0,a.A)(r),(0,s.A)(t,v()?Reflect.construct(r,n||[],(0,a.A)(t).constructor):r.apply(t,n));var t,r,n}return(0,c.A)(e,t),(0,o.A)(e,[{key:"connect",value:(r=(0,n.A)(l().mark((function t(){var e,r,n,i,o,s,a,c,u,f;return l().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return p(this.rendererTarget.width===this.rendererTarget.height),this.rendererTarget.getContext&&((e=this.rendererTarget.getContext("2d")).shadowOffsetX=10,e.shadowOffsetY=20,e.shadowBlur=20,e.shadowColor="rgb(48, 50, 51, 0.2)"),t.next=4,(0,d.A)(this.imageTarget);case 4:r=this.imageTarget.naturalWidth,n=this.imageTarget.naturalHeight,i=this.contentWidth,o=this.contentHeight,r>n?o=i*(n/r):n>r&&(i=o*(r/n)),s=50+(this.contentWidth-i)/2,a=50+(this.contentHeight-o)/2,this.rendererTarget.getContext&&this.rendererTarget.getContext("2d").drawImage(this.imageTarget,s,a,i,o),c=null,t.prev=13,c=this.overlayTarget,t.next=20;break;case 17:return t.prev=17,t.t0=t.catch(13),t.abrupt("return");case 20:u="".concat(i/this.contentWidth*100,"%"),f="".concat(o/this.contentHeight*100,"%"),c.style.width=u,c.style.height=f,this.rendererTarget.getContext||(this.rendererTarget.style.width=u,this.rendererTarget.style.height=f);case 25:case"end":return t.stop()}}),t,this,[[13,17]])}))),function(){return r.apply(this,arguments)})},{key:"contentWidth",get:function(){return(this.rendererTarget.getContext?this.rendererTarget.width:this.rendererTarget.style.width)-100}},{key:"contentHeight",get:function(){return(this.rendererTarget.getContext?this.rendererTarget.height:this.rendererTarget.style.height)-100}}]);var r}(f.xI);g.targets=["renderer","image","overlay"]},24:t=>{"use strict";
25976t.exports=Function.prototype.apply},34:(t,e,r)=>{"use strict";r(1908)},44:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>h});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973),c=r(6782),u=r(5096),l=r.n(u);function f(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(f=function(){return!!t})()}var h=function(t){function e(){return(0,n.A)(this,e),t=this,r=e,i=arguments,r=(0,s.A)(r),(0,o.A)(t,f()?Reflect.construct(r,i||[],(0,s.A)(t).constructor):r.apply(t,i));var t,r,i}return(0,a.A)(e,t),(0,i.A)(e,[{key:"connect",value:function(){this.msnry=new(l())(this.element,{itemSelector:".js-masonry-item",columnWidth:".js-masonry-sizer",percentPosition:!0})}},{key:"layout",value:function(){this.msnry.layout()}}])}(c.xI)},51:(t,e,r)=>{"use strict";var n=r(2484),i=r(2675),o=r(2748),s=Object,a=n("".split);t.exports=i((function(){return!s("z").propertyIsEnumerable(0)}))?function(t){return"String"===o(t)?a(t,""):s(t)}:s},62:t=>{"use strict";var e,r,n=Function.prototype.toString,i="object"==typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"==typeof i&&"function"==typeof Object.defineProperty)try{e=Object.defineProperty({},"length",{get:function(){throw r}}),r={},i((function(){throw 42}),null,e)}catch(t){t!==r&&(i=null)}else i=null;var o=/^\s*class\b/,s=function(t){try{var e=n.call(t);return o.test(e)}catch(t){return!1}},a=function(t){try{return!s(t)&&(n.call(t),!0)}catch(t){return!1}},c=Object.prototype.toString,u="function"==typeof Symbol&&!!Symbol.toStringTag,l=!(0 in[,]),f=function(){return!1};if("object"==typeof document){var h=document.all;c.call(h)===c.call(document.all)&&(f=function(t){if((l||!t)&&(void 0===t||"object"==typeof t))try{var e=c.call(t);return("[object HTMLAllCollection]"===e||"[object HTML document.all class]"===e||"[object HTMLCollection]"===e||"[object Object]"===e)&&null==t("")}catch(t){}return!1})}t.exports=i?function(t){if(f(t))return!0;if(!t)return!1;if("function"!=typeof t&&"object"!=typeof t)return!1;try{i(t,null,e)}catch(t){if(t!==r)return!1}return!s(t)&&a(t)}:function(t){if(f(t))return!0;if(!t)return!1;if("function"!=typeof t&&"object"!=typeof t)return!1;if(u)return a(t);if(s(t))return!1;var e=c.call(t);return!("[object Function]"!==e&&"[object GeneratorFunction]"!==e&&!/^\[object HTML/.test(e))&&a(t)}},75:(t,e,r)=>{"use strict";var n=r(9997),i=r(9361),o=r(6757),s=r(1233);t.exports=function(t,e,r){if(!t||"object"!=typeof t&&"function"!=typeof t)throw new o("`obj` must be an object or a function`");if("string"!=typeof e&&"symbol"!=typeof e)throw new o("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new o("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new o("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new o("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new o("`loose`, if provided, must be a boolean");var a=arguments.length>3?arguments[3]:null,c=arguments.length>4?arguments[4]:null,u=arguments.length>5?arguments[5]:null,l=arguments.length>6&&arguments[6],f=!!s&&s(t,e);if(n)n(t,e,{configurable:null===u&&f?f.configurable:!u,enumerable:null===a&&f?f.enumerable:!a,value:r,writable:null===c&&f?f.writable:!c});else{if(!l&&(a||c||u))throw new i("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");t[e]=r}}},92:(t,e,r)=>{"use strict";var n=r(6891);t.exports=n&&!!Symbol.for&&!!Symbol.keyFor},133:(t,e,r)=>{"use strict";var n=r(3588),i=Function.prototype,o=i.apply,s=i.call;t.exports="object"==typeof Reflect&&Reflect.apply||(n?s.bind(o):function(){return s.apply(o,arguments)})},155:t=>{"use strict";t.exports=EvalError},244:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>d});r(8037);var n=r(7431),i=r(2561),o=r(6710),s=r(3008),a=r(3134),c=r(6973),u=(r(3348),r(5424),r(1759),r(2901),r(6192)),l=r.n(u),f=r(6782),h=r(327);function p(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(p=function(){return!!t})()}var d=function(t){function e(){return(0,i.A)(this,e),t=this,r=e,n=arguments,r=(0,a.A)(r),(0,s.A)(t,p()?Reflect.construct(r,n||[],(0,a.A)(t).constructor):r.apply(t,n));var t,r,n}
25976return(0,c.A)(e,t),(0,o.A)(e,[{key:"connect",value:(r=(0,n.A)(l().mark((function t(){var e;return l().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return(e=this.element.getContext("2d")).shadowOffsetX=this.xValue,e.shadowOffsetY=this.yValue,e.shadowBlur=this.blurValue,e.shadowColor="rgb(48, 50, 51, 0.2)",t.next=7,(0,h.A)(this.imageTarget);case 7:e.drawImage(this.imageTarget,0,0,this.element.width,this.element.height);case 8:case"end":return t.stop()}}),t,this)}))),function(){return r.apply(this,arguments)})}]);var r}(f.xI);d.targets=["image"],d.values={x:Number,y:Number,blur:Number}},259:(t,e,r)=>{"use strict";var n=r(8810),i=r(8052),o=r(5396)(i.setTimeout,!0);n({global:!0,bind:!0,forced:i.setTimeout!==o},{setTimeout:o})},301:(t,e,r)=>{"use strict";var n=r(2484),i=r(3179),o=r(6327).getWeakData,s=r(5755),a=r(659),c=r(9601),u=r(4102),l=r(1072),f=r(2961),h=r(4461),p=r(6369),d=p.set,v=p.getterFor,g=f.find,m=f.findIndex,y=n([].splice),b=0,w=function(t){return t.frozen||(t.frozen=new x)},x=function(){this.entries=[]},S=function(t,e){return g(t.entries,(function(t){return t[0]===e}))};x.prototype={get:function(t){var e=S(this,t);if(e)return e[1]},has:function(t){return!!S(this,t)},set:function(t,e){var r=S(this,t);r?r[1]=e:this.entries.push([t,e])},delete:function(t){var e=m(this.entries,(function(e){return e[0]===t}));return~e&&y(this.entries,e,1),!!~e}},t.exports={getConstructor:function(t,e,r,n){var f=t((function(t,i){s(t,p),d(t,{type:e,id:b++,frozen:null}),c(i)||l(i,t[n],{that:t,AS_ENTRIES:r})})),p=f.prototype,g=v(e),m=function(t,e,r){var n=g(t),i=o(a(e),!0);return!0===i?w(n).set(e,r):i[n.id]=r,t};return i(p,{delete:function(t){var e=g(this);if(!u(t))return!1;var r=o(t);return!0===r?w(e).delete(t):r&&h(r,e.id)&&delete r[e.id]},has:function(t){var e=g(this);if(!u(t))return!1;var r=o(t);return!0===r?w(e).has(t):r&&h(r,e.id)}}),i(p,r?{get:function(t){var e=g(this);if(u(t)){var r=o(t);if(!0===r)return w(e).get(t);if(r)return r[e.id]}},set:function(t,e){return m(this,t,e)}}:{add:function(t){return m(this,t,!0)}}),f}}},321:t=>{"use strict";var e="object"==typeof document&&document.all;t.exports=void 0===e&&void 0!==e?function(t){return"function"==typeof t||t===e}:function(t){return"function"==typeof t}},327:(t,e,r)=>{"use strict";r.d(e,{A:()=>s});var n=r(7431),i=r(6192),o=r.n(i);r(1759),r(6558);function s(t){return a.apply(this,arguments)}function a(){return(a=(0,n.A)(o().mark((function t(e){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!e.complete){t.next=2;break}return t.abrupt("return");case 2:return t.next=4,new Promise((function(t){e.addEventListener("load",(function(){return t()}))}));case 4:case"end":return t.stop()}}),t)})))).apply(this,arguments)}},341:(t,e,r)=>{"use strict";var n=r(5034),i=r(9976),o=r(7032).CONSTRUCTOR;t.exports=o||!i((function(t){n.all(t).then(void 0,(function(){}))}))},381:t=>{"use strict";t.exports=function(t,e){return{value:t,done:e}}},383:(t,e,r)=>{"use strict";var n=r(8810),i=r(6007),o=r(7032).CONSTRUCTOR,s=r(5034),a=r(3163),c=r(321),u=r(5236),l=s&&s.prototype;if(n({target:"Promise",proto:!0,forced:o,real:!0},{catch:function(t){return this.then(void 0,t)}}),!i&&c(s)){var f=a("Promise").prototype.catch;l.catch!==f&&u(l,"catch",f,{unsafe:!0})}},391:(t,e,r)=>{"use strict";r(4515)("iterator")},461:(t,e,r)=>{"use strict";var n=r(3163),i=r(6038),o=r(4175),s=r(2128),a=o("species");t.exports=function(t){var e=n(t);s&&e&&!e[a]&&i(e,a,{configurable:!0,get:function(){return this}})}},464:t=>{"use strict";var e=TypeError;t.exports=function(t,r){if(t<r)throw new e("Not enough arguments");return t}},469:(t,e,r)=>{"use strict";var n=r(9691);t.exports=Function.prototype.bind||n},517:(t,e,r)=>{"use strict";var n=r(3625),i=r(4334),o=r(659),s=r(779),a=r(1274),c=r(4035),u=a((function(){var t=this.iterator,e=o(n(this.next,t));if(!(this.done=!!e.done))return c(t,this.mapper,[e.value,this.counter++],!0)}));t.exports=function(t){return o(this),i(t),new u(s(this),{mapper:t})}},542:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>d});r(8037);var n=r(7431),i=r(2561),o=r(6710),s=r(3008),a=r(3134),c=r(6973),u=(r(5249),r(6160),r(3376),r(1759),r(3544),r(6192)),l=r.n(u),f=r(6782),h=r(9272);function p(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(p=function(){return!!t})()}var d=function(t){function e(){return(0,i.A)(this,e),t=this,r=e,n=arguments,r=(0,a.A)(r),(0,s.A)(t,p()?Reflect.construct(r,n||[],(0,a.A)(t).constructor):r.apply(t,n));var t,r,n}return(0,c.A)(e,t),(0,o.A)(e,[{key:"toggle",value:(r=(0,n.A)(l().mark((function t(e){var r,n,i;return l().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r="true"===e.currentTarget.getAttribute("aria-expanded"),n=!r,this.expandedTarget.setAttribute("aria-hidden",!n),this.collapsedTarget.setAttribute("aria-hidden",n),i=n?this.expandedTarget:this.collapsedTarget,t.next=7,(0,h.W)(i,"visibility","visible");case 7:i.focus();case 8:case"end":return t.stop()}}),t,this)}))),function(t){return r.apply(this,arguments)})},{key:"changeAgreement",value:function(t){var e=t.currentTarget.checked;
25976this.downloadButtonTargets.forEach((function(t){t.tabIndex=e?0:-1,t.setAttribute("aria-disabled",!e)}))}}]);var r}(f.xI);d.targets=["expanded","collapsed","downloadButton"]},552:(t,e,r)=>{"use strict";var n=r(3291);t.exports=/web0s(?!.*chrome)/i.test(n)},562:(t,e,r)=>{"use strict";var n=r(8810),i=r(2961).map;n({target:"Array",proto:!0,forced:!r(2321)("map")},{map:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},573:(t,e,r)=>{"use strict";var n=r(3625),i=r(4102),o=r(3401),s=r(9538),a=r(5514),c=r(4175),u=TypeError,l=c("toPrimitive");t.exports=function(t,e){if(!i(t)||o(t))return t;var r,c=s(t,l);if(c){if(void 0===e&&(e="default"),r=n(c,t,e),!i(r)||o(r))return r;throw new u("Can't convert object to primitive value")}return void 0===e&&(e="number"),a(t,e)}},593:t=>{"use strict";t.exports=Error},600:(t,e,r)=>{"use strict";var n=r(9004),i=r(3625),o=r(8649),s=r(4035),a=r(3709),c=r(1441),u=r(8770),l=r(4028),f=r(6221),h=r(4951),p=Array;t.exports=function(t){var e=o(t),r=c(this),d=arguments.length,v=d>1?arguments[1]:void 0,g=void 0!==v;g&&(v=n(v,d>2?arguments[2]:void 0));var m,y,b,w,x,S,A=h(e),O=0;if(!A||this===p&&a(A))for(m=u(e),y=r?new this(m):p(m);m>O;O++)S=g?v(e[O],O):e[O],l(y,O,S);else for(y=r?new this:[],x=(w=f(e,A)).next;!(b=i(x,w)).done;O++)S=g?s(w,v,[b.value,O],!0):b.value,l(y,O,S);return y.length=O,y}},659:(t,e,r)=>{"use strict";var n=r(4102),i=String,o=TypeError;t.exports=function(t){if(n(t))return t;throw new o(i(t)+" is not an object")}},671:(t,e,r)=>{"use strict";var n=r(2128),i=r(6005),o=r(5936);t.exports=n?function(t,e,r){return i.f(t,e,o(1,r))}:function(t,e,r){return t[e]=r,t}},706:(t,e,r)=>{"use strict";var n=r(2128),i=r(2675);t.exports=n&&i((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},714:(t,e,r)=>{"use strict";var n,i=r(7196),o=r(1233);try{n=[].__proto__===Array.prototype}catch(t){if(!t||"object"!=typeof t||!("code"in t)||"ERR_PROTO_ACCESS"!==t.code)throw t}var s=!!n&&o&&o(Object.prototype,"__proto__"),a=Object,c=a.getPrototypeOf;t.exports=s&&"function"==typeof s.get?i([s.get]):"function"==typeof c&&function(t){return c(null==t?t:a(t))}},719:(t,e,r)=>{"use strict";var n=r(3291);t.exports=/MSIE|Trident/.test(n)},779:t=>{"use strict";t.exports=function(t){return{iterator:t,next:t.next,done:!1}}},790:(t,e,r)=>{"use strict";var n=r(4690).PROPER,i=r(2675),o=r(4912);t.exports=function(t){return i((function(){return!!o[t]()||"âÂ
á "!=="âÂ
á "[t]()||n&&o[t].name!==t}))}},797:()=>{if(window.MutationObserver){var t=document.createElement("div");t.innerHTML="<div><div></div></div>",new MutationObserver((function(t,e){if(e.disconnect(),t[0]&&"childList"==t[0].type&&0==t[0].removedNodes[0].childNodes.length){var r=HTMLElement.prototype,n=Object.getOwnPropertyDescriptor(r,"innerHTML");n&&n.set&&Object.defineProperty(r,"innerHTML",{set:function(t){for(;this.lastChild;)this.removeChild(this.lastChild);n.set.call(this,t)}})}})).observe(t,{childList:!0,subtree:!0}),t.innerHTML=""}},802:t=>{"use strict";t.exports=Object},810:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>n});const n='<section\r\n class="prd-modelCardSpecs"\r\n {{#if disabled}}\r\n aria-disabled="true"\r\n {{/if}}\r\n {{#if attrs}}\r\n {{{attrs}}}\r\n {{/if}}\r\n>\r\n <h3>\r\n {{#if link}}\r\n <a class="prd-modelCardSpecs-header prd-utility-marginBottom-3" href="{{link}}">\r\n {{else}}\r\n <label class="prd-modelCardSpecs-header prd-utility-marginBottom-3">\r\n <input\r\n class="prd-modelCardSpecs-control prd-utility-focusRing"\r\n type="{{inputType}}"\r\n name="{{inputName}}"\r\n value="{{inputValue}}"\r\n {{#if disabled}}\r\n disabled\r\n {{/if}}\r\n {{#if inputAttrs}}\r\n {{{inputAttrs}}}\r\n {{/if}}\r\n >\r\n {{/if}}\r\n <span class="prd-modelCardSpecs-imageWrapper prd-largeScreen-marginBottom-3">\r\n <img\r\n class="prd-modelCardSpecs-image prd-image"\r\n src="/img/products/model-card-01.jpg"\r\n width="300"\r\n height="300"\r\n alt=""\r\n decoding="async"\r\n loading="lazy"\r\n >\r\n {{#if inputType}}
25976\r\n <span class="prd-modelCardSpecs-controlAppearance">\r\n {{#if (eq inputType "checkbox")}}\r\n <svg class="prd-modelCardSpecs-controlAppearanceIcon" viewBox="0 0 20 20">\r\n <use xlink:href="#icon-checkbox-unchecked"/>\r\n </svg>\r\n <svg class="prd-modelCardSpecs-controlAppearanceIcon of-checked" viewBox="0 0 20 20">\r\n <use xlink:href="#icon-checkbox-checked"/>\r\n </svg>\r\n {{else if (eq inputType "radio")}}\r\n <svg class="prd-modelCardSpecs-controlAppearanceIcon" viewBox="0 0 20 20">\r\n <use xlink:href="#icon-radio-unchecked"/>\r\n </svg>\r\n <svg class="prd-modelCardSpecs-controlAppearanceIcon of-checked" viewBox="0 0 20 20">\r\n <use xlink:href="#icon-radio-checked"/>\r\n </svg>\r\n {{/if}}\r\n </span>\r\n {{/if}}\r\n </span>\r\n <span class="prd-modelCardSpecs-title prd-utility-heading-4 prd-largeScreen-marginBottom-3">\r\n <span class="prd-modelCardSpecs-titleLabel">{{{name}}}</span>\r\n {{~#if link}}\r\n {{~> modules/inline-link-chevron}}\r\n {{/if}}\r\n </span>\r\n <span class="prd-smallScreen-hidden">\r\n {{> modules/divider}}\r\n </span>\r\n {{#if link}}\r\n </a>\r\n {{else}}\r\n </label>\r\n {{/if}}\r\n </h3>\r\n <dl class="prd-layout-stack of-space-3 prd-utility-body-extraSmall">\r\n {{#each specs}}\r\n <div>\r\n <dt class="prd-modelCardSpecs-specName prd-utility-marginBottom-1">{{name}}</dt>\r\n {{#each values}}\r\n <dd>{{{this}}}</dd>\r\n {{/each}}\r\n </div>\r\n {{/each}}\r\n </dl>\r\n</section>\r\n'},863:(t,e,r)=>{"use strict";var n,i,o=r(3625),s=r(2484),a=r(7267),c=r(8303),u=r(2537),l=r(6445),f=r(3844),h=r(6369).get,p=r(991),d=r(5722),v=l("native-string-replace",String.prototype.replace),g=RegExp.prototype.exec,m=g,y=s("".charAt),b=s("".indexOf),w=s("".replace),x=s("".slice),S=(i=/b*/g,o(g,n=/a/,"a"),o(g,i,"a"),0!==n.lastIndex||0!==i.lastIndex),A=u.BROKEN_CARET,O=void 0!==/()??/.exec("")[1];(S||O||A||p||d)&&(m=function(t){var e,r,n,i,s,u,l,p=this,d=h(p),E=a(t),k=d.raw;if(k)return k.lastIndex=p.lastIndex,e=o(m,k,E),p.lastIndex=k.lastIndex,e;var T=d.groups,_=A&&p.sticky,C=o(c,p),P=p.source,I=0,j=E;if(_&&(C=w(C,"y",""),-1===b(C,"g")&&(C+="g"),j=x(E,p.lastIndex),p.lastIndex>0&&(!p.multiline||p.multiline&&"\n"!==y(E,p.lastIndex-1))&&(P="(?: "+P+")",j=" "+j,I++),r=new RegExp("^(?:"+P+")",C)),O&&(r=new RegExp("^"+P+"$(?!\\s)",C)),S&&(n=p.lastIndex),i=o(g,_?r:p,j),_?i?(i.input=x(i.input,I),i[0]=x(i[0],I),i.index=
vendor: 4,114 bytes, line 25976
25976p.lastIndex,p.lastIndex+=i[0].length):p.lastIndex=0:S&&i&&(p.lastIndex=p.global?i.index+i[0].length:n),O&&i&&i.length>1&&o(v,i[0],r,(function(){for(s=1;s<arguments.length-2;s++)void 0===arguments[s]&&(i[s]=void 0)})),i&&T)for(i.groups=u=f(null),s=0;s<T.length;s++)u[(l=T[s])[0]]=i[l[1]];return i}),t.exports=m},878:(t,e,r)=>{"use strict";var n=r(1417),i=String,o=TypeError;t.exports=function(t){if(n(t))return t;throw new o("Can't set "+i(t)+" as a prototype")}},930:(t,e,r)=>{"use strict";var n=r(8810),i=r(3163),o=r(4461),s=r(7267),a=r(6445),c=r(92),u=a("string-to-symbol-registry"),l=a("symbol-to-string-registry");n({target:"Symbol",stat:!0,forced:!c},{for:function(t){var e=s(t);if(o(u,e))return u[e];var r=i("Symbol")(e);return u[e]=r,l[r]=e,r}})},981:t=>{"use strict";t.exports=Number.isNaN||function(t){return t!=t}},982:(t,e,r)=>{"use strict";r.d(e,{K:()=>j});r(7575),r(8740),r(6770),r(4958),r(3299),r(7372),r(5249),r(9872),r(562),r(3838),r(7642),r(1678),r(6160),r(9224),r(8021),r(3376),r(9585),r(9343),r(6805),r(6461),r(9111),r(4802),r(7476),r(1759),r(3544),r(995);var n,i=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],o=i.join(","),s="undefined"==typeof Element,a=s?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,c=!s&&Element.prototype.getRootNode?function(t){var e;return null==t||null===(e=t.getRootNode)||void 0===e?void 0:e.call(t)}:function(t){return null==t?void 0:t.ownerDocument},u=function t(e,r){var n;void 0===r&&(r=!0);var i=null==e||null===(n=e.getAttribute)||void 0===n?void 0:n.call(e,"inert");return""===i||"true"===i||r&&e&&t(e.parentNode)},l=function(t,e,r){if(u(t))return[];var n=Array.prototype.slice.apply(t.querySelectorAll(o));return e&&a.call(t,o)&&n.unshift(t),n=n.filter(r)},f=function t(e,r,n){for(var i=[],s=Array.from(e);s.length;){var c=s.shift();if(!u(c,!1))if("SLOT"===c.tagName){var l=c.assignedElements(),f=t(l.length?l:c.children,!0,n);n.flatten?i.push.apply(i,f):i.push({scopeParent:c,candidates:f})}else{a.call(c,o)&&n.filter(c)&&(r||!e.includes(c))&&i.push(c);var h=c.shadowRoot||"function"==typeof n.getShadowRoot&&n.getShadowRoot(c),p=!u(h,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(c));if(h&&p){var d=t(!0===h?c.children:h.children,!0,n);n.flatten?i.push.apply(i,d):i.push({scopeParent:c,candidates:d})}else s.unshift.apply(s,c.children)}}return i},h=function(t){return!isNaN(parseInt(t.getAttribute("tabindex"),10))},p=function(t){if(!t)throw new Error("No node provided");return t.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(t.tagName)||function(t){var e,r=null==t||null===(e=t.getAttribute)||void 0===e?void 0:e.call(t,"contenteditable");return""===r||"true"===r}(t))&&!h(t)?0:t.tabIndex},d=function(t,e){return t.tabIndex===e.tabIndex?t.documentOrder-e.documentOrder:t.tabIndex-e.tabIndex},v=function(t){return"INPUT"===t.tagName},g=function(t){return function(t){return v(t)&&"radio"===t.type}(t)&&!function(t){if(!t.name)return!0;var e,r=t.form||c(t),n=function(t){return r.querySelectorAll('input[type="radio"][name="'+t+'"]')};if("undefined"!=typeof window&&void 0!==window.CSS&&"function"==typeof window.CSS.escape)e=n(window.CSS.escape(t.name));else try{e=n(t.name)}catch(t){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",t.message),!1}var i=function(t,e){for(var r=0;r<t.length;r++)if(t[r].checked&&t[r].form===e)return t[r]}(e,t.form);return!i||i===t}(t)},m=function(t){var e=t.getBoundingClientRect(),r=e.width,n=e.height;return 0===r&&0===n},y=function(t,e){var r=e.displayCheck,n=e.getShadowRoot;if("hidden"===getComputedStyle(t).visibility)return!0;var i=a.call(t,"details>summary:first-of-type")?t.parentElement:t;if(a.call(i,"details:not([open]) *"))return!0;
25976if(r&&"full"!==r&&"legacy-full"!==r){if("non-zero-area"===r)return m(t)}else{if("function"==typeof n){for(var o=t;t;){var s=t.parentElement,u=c(t);if(s&&!s.shadowRoot&&!0===n(s))return m(t);t=t.assignedSlot?t.assignedSlot:s||u===t.ownerDocument?s:u.host}t=o}if(function(t){var e,r,n,i,o=t&&c(t),s=null===(e=o)||void 0===e?void 0:e.host,a=!1;if(o&&o!==t)for(a=!!(null!==(r=s)&&void 0!==r&&null!==(n=r.ownerDocument)&&void 0!==n&&n.contains(s)||null!=t&&null!==(i=t.ownerDocument)&&void 0!==i&&i.contains(t));!a&&s;){var u,l,f;a=!(null===(l=s=null===(u=o=c(s))||void 0===u?void 0:u.host)||void 0===l||null===(f=l.ownerDocument)||void 0===f||!f.contains(s))}return a}(t))return!t.getClientRects().length;if("legacy-full"!==r)return!0}return!1},b=function(t,e){return!(e.disabled||u(e)||function(t){return v(t)&&"hidden"===t.type}(e)||y(e,t)||function(t){return"DETAILS"===t.tagName&&Array.prototype.slice.apply(t.children).some((function(t){return"SUMMARY"===t.tagName}))}(e)||function(t){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(t.tagName))for(var e=t.parentElement;e;){if("FIELDSET"===e.tagName&&e.disabled){for(var r=0;r<e.children.length;r++){var n=e.children.item(r);if("LEGEND"===n.tagName)return!!a.call(e,"fieldset[disabled] *")||!n.contains(t)}return!0}e=e.parentElement}return!1}(e))},w=function(t,e){return!(g(e)||p(e)<0||!b(t,e))},x=function(t){var e=parseInt(t.getAttribute("tabindex"),10);return!!(isNaN(e)||e>=0)},S=function t(e){var r=[],n=[];return e.forEach((function(e,i){var o=!!e.scopeParent,s=o?e.scopeParent:e,a=function(t,e){var r=p(t);return r<0&&e&&!h(t)?0:r}(s,o),c=o?t(e.candidates):s;0===a?o?r.push.apply(r,c):r.push(s):n.push({documentOrder:i,tabIndex:a,item:e,isScope:o,content:c})})),n.sort(d).reduce((function(t,e){return e.isScope?t.push.apply(t,e.content):t.push(e.content),t}),[]).concat(r)},A=i.concat("iframe").join(","),O=function(t,e){if(e=e||{},!t)throw new Error("No node provided");return!1!==a.call(t,A)&&b(e,t)};function E(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function k(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}var T,_=(T=[],{activateTrap:function(t){if(T.length>0){var e=T[T.length-1];e!==t&&e.pause()}var r=T.indexOf(t);-1===r||T.splice(r,1),T.push(t)},deactivateTrap:function(t){var e=T.indexOf(t);-1!==e&&T.splice(e,1),T.length>0&&T[T.length-1].unpause()}}),C=function(t){return setTimeout(t,0)},P=function(t,e){var r=-1;return t.every((function(t,n){return!e(t)||(r=n,!1)})),r},I=function(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n<e;n++)r[n-1]=arguments[n];return"function"==typeof t?t.apply(void 0,r):t},j=function(t,e){var r,i=document,o=function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?k(Object(r),!0).forEach((function(e){E(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):k(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}({returnFocusOnDeactivate:!0,escapeDeactivates:!0,delayInitialFocus:!0},e),s={containers:[],tabbableGroups:[],nodeFocusedBeforeActivation:null,mostRecentlyFocusedNode:null,active:!1,paused:!1},a=function(t){return s.containers.some((function(e){return e.contains(t)}))},c=function(t){var e=o[t];if(!e)return null;var r=e;if("string"==typeof e&&!(r=i.querySelector(e)))throw new Error("`".concat(t,"` refers to no known node"));if("function"==typeof e&&!(r=e()))throw new Error("`".concat(t,"` did not return a node"));return r},u=function(){var t;if(null!==c("initialFocus"))t=c("initialFocus");else if(a(i.activeElement))t=i.activeElement;else{var e=s.tabbableGroups[0];t=e&&e.firstTabbableNode||c("fallbackFocus")}if(!t)throw new Error("Your focus-trap needs to have at least one focusable element");return t},h=function(){if(s.tabbableGroups=s.containers.map((function(t){var e=function(t,e){var r;return r=(e=e||{}).getShadowRoot?f([t],e.includeContainer,{filter:w.bind(null,e),flatten:!1,getShadowRoot:e.getShadowRoot,shadowRootFilter:x}):l(t,e.includeContainer,w.bind(null,e)),S(r)}(t);if(e.length>0)return{container:t,firstTabbableNode:e[0],lastTabbableNode:e[e.length-1]}})).filter((function(t){return!!t})),s.tabbableGroups.length<=0&&!c("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times")}
25976,p=function t(e){e!==i.activeElement&&(e&&e.focus?(e.focus({preventScroll:!!o.preventScroll}),s.mostRecentlyFocusedNode=e,function(t){return t.tagName&&"input"===t.tagName.toLowerCase()&&"function"==typeof t.select}(e)&&e.select()):t(u()))},d=function(t){a(t.target)||(I(o.clickOutsideDeactivates,t)?r.deactivate({returnFocus:o.returnFocusOnDeactivate&&!O(t.target)}):I(o.allowOutsideClick,t)||t.preventDefault())},v=function(t){var e=a(t.target);e||t.target instanceof Document?e&&(s.mostRecentlyFocusedNode=t.target):(t.stopImmediatePropagation(),p(s.mostRecentlyFocusedNode||u()))},g=function(t){if(!1!==o.escapeDeactivates&&function(t){return"Escape"===t.key||"Esc"===t.key||27===t.keyCode}(t))return t.preventDefault(),void r.deactivate();(function(t){return"Tab"===t.key||9===t.keyCode})(t)&&function(t){h();var e=null;if(s.tabbableGroups.length>0)if(P(s.tabbableGroups,(function(e){return e.container.contains(t.target)}))<0)e=t.shiftKey?s.tabbableGroups[s.tabbableGroups.length-1].lastTabbableNode:s.tabbableGroups[0].firstTabbableNode;else if(t.shiftKey){var r=P(s.tabbableGroups,(function(e){var r=e.firstTabbableNode;return t.target===r}));if(r>=0){var n=0===r?s.tabbableGroups.length-1:r-1;e=s.tabbableGroups[n].lastTabbableNode}}else{var i=P(s.tabbableGroups,(function(e){var r=e.lastTabbableNode;return t.target===r}));if(i>=0){var o=i===s.tabbableGroups.length-1?0:i+1;e=s.tabbableGroups[o].firstTabbableNode}}else e=c("fallbackFocus");e&&(t.preventDefault(),p(e))}(t)},m=function(t){I(o.clickOutsideDeactivates,t)||a(t.target)||I(o.allowOutsideClick,t)||(t.preventDefault(),t.stopImmediatePropagation())},y=function(){if(s.active)return _.activateTrap(r),n=o.delayInitialFocus?C((function(){p(u())})):p(u()),i.addEventListener("focusin",v,!0),i.addEventListener("mousedown",d,{capture:!0,passive:!1}),i.addEventListener("touchstart",d,{capture:!0,passive:!1}),i.addEventListener("click",m,{capture:!0,passive:!1}),i.addEventListener("keydown",g,{capture:!0,passive:!1}),r},b=function(){if(s.active)return i.removeEventListener("focusin",v,!0),i.removeEventListener("mousedown",d,{capture:!0,passive:!1}),i.removeEventListener("touchstart",d,{capture:!0,passive:!1}),i.removeEventListener("click",m,{capture:!0,passive:!1}),i.removeEventListener("keydown",g,{capture:!0,passive:!1}),r};return(r={activate:function(t){if(s.active)return this;h(),s.active=!0,s.paused=!1,s.nodeFocusedBeforeActivation=i.activeElement;var e=t&&t.onActivate?t.onActivate:o.onActivate;return e&&e(),y(),this},deactivate:function(t){if(!s.active)return this;clearTimeout(n),b(),s.active=!1,s.paused=!1,_.deactivateTrap(r);var e=t&&void 0!==t.onDeactivate?t.onDeactivate:o.onDeactivate;return e&&e(),(t&&void 0!==t.returnFocus?t.returnFocus:o.returnFocusOnDeactivate)&&C((function(){var t;p((t=s.nodeFocusedBeforeActivation,c("setReturnFocus")||t))})),this},pause:function(){return s.paused||!s.active||(s.paused=!0,b()),this},unpause:function(){return s.paused&&s.active?(s.paused=!1,h(),y(),this):this},updateContainerElements:function(t){var e=[].concat(t).filter(Boolean);return s.containers=e.map((function(t){return"string"==typeof t?i.querySelector(t):t})),s.active&&h(),this}}).updateContainerElements(t),r}},991:(t,e,r)=>{"use strict";var n=r(2675),i=r(8052).RegExp;t.exports=n((function(){var t=i(".","s");return!(t.dotAll&&t.test("\n")&&"s"===t.flags)}))},995:(t,e,r)=>{"use strict";r(6371),r(259)},998:t=>{function e(r){return t.exports=e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,e(r)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports},1029:(t,e,r)=>{var n=r(7187),i=Object.prototype,o=i.hasOwnProperty,s=i.toString,a=n?n.toStringTag:void 0;t.exports=function(t){var e=o.call(t,a),r=t[a];try{t[a]=void 0;var n=!0}catch(t){}var i=s.call(t);return n&&(e?t[a]=r:delete t[a]),i}},1031:(t,e,r)=>{"use strict";var n=r(4334),i=TypeError,o=function(t){var e,r;this.promise=new t((function(t,n){if(void 0!==e||void 0!==r)throw new i("Bad Promise constructor");e=t,r=n})),this.resolve=n(e),this.reject=n(r)};t.exports.f=function(t){return new o(t)}},1067:t=>{"use strict";
25976t.exports=Object.getOwnPropertyDescriptor},1072:(t,e,r)=>{"use strict";var n=r(9004),i=r(3625),o=r(659),s=r(8379),a=r(3709),c=r(8770),u=r(7837),l=r(6221),f=r(4951),h=r(1151),p=TypeError,d=function(t,e){this.stopped=t,this.result=e},v=d.prototype;t.exports=function(t,e,r){var g,m,y,b,w,x,S,A=r&&r.that,O=!(!r||!r.AS_ENTRIES),E=!(!r||!r.IS_RECORD),k=!(!r||!r.IS_ITERATOR),T=!(!r||!r.INTERRUPTED),_=n(e,A),C=function(t){return g&&h(g,"normal",t),new d(!0,t)},P=function(t){return O?(o(t),T?_(t[0],t[1],C):_(t[0],t[1])):T?_(t,C):_(t)};if(E)g=t.iterator;else if(k)g=t;else{if(!(m=f(t)))throw new p(s(t)+" is not iterable");if(a(m)){for(y=0,b=c(t);b>y;y++)if((w=P(t[y]))&&u(v,w))return w;return new d(!1)}g=l(t,m)}for(x=E?t.next:g.next;!(S=i(x,g)).done;){try{w=P(S.value)}catch(t){h(g,"throw",t)}if("object"==typeof w&&w&&u(v,w))return w}return new d(!1)}},1077:(t,e,r)=>{var n={"./modules/button.hbs":4559,"./modules/divider.hbs":1784,"./modules/modal-dialog.hbs":3703,"./modules/model-card-specs.hbs":810,"./modules/select-button.hbs":1742,"./modules/specs-select-table.hbs":2589};function i(t){var e=o(t);return r(e)}function o(t){if(!r.o(n,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return n[t]}i.keys=function(){return Object.keys(n)},i.resolve=o,t.exports=i,i.id=1077},1135:(t,e,r)=>{var n=r(3184),i=Object.getOwnPropertyDescriptors||function(t){for(var e=Object.keys(t),r={},n=0;n<e.length;n++)r[e[n]]=Object.getOwnPropertyDescriptor(t,e[n]);return r},o=/%[sdj%]/g;e.format=function(t){if(!b(t)){for(var e=[],r=0;r<arguments.length;r++)e.push(u(arguments[r]));return e.join(" ")}r=1;for(var n=arguments,i=n.length,s=String(t).replace(o,(function(t){if("%%"===t)return"%";if(r>=i)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return t}})),a=n[r];r<i;a=n[++r])m(a)||!S(a)?s+=" "+a:s+=" "+u(a);return s},e.deprecate=function(t,r){if(void 0!==n&&!0===n.noDeprecation)return t;if(void 0===n)return function(){return e.deprecate(t,r).apply(this,arguments)};var i=!1;return function(){if(!i){if(n.throwDeprecation)throw new Error(r);n.traceDeprecation?console.trace(r):console.error(r),i=!0}return t.apply(this,arguments)}};var s={},a=/^$/;if(n.env.NODE_DEBUG){var c=n.env.NODE_DEBUG;c=c.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),a=new RegExp("^"+c+"$","i")}function u(t,r){var n={seen:[],stylize:f};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),g(r)?n.showHidden=r:r&&e._extend(n,r),w(n.showHidden)&&(n.showHidden=!1),w(n.depth)&&(n.depth=2),w(n.colors)&&(n.colors=!1),w(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=l),h(n,t,n.depth)}function l(t,e){var r=u.styles[e];return r?"�["+u.colors[r][0]+"m"+t+"�["+u.colors[r][1]+"m":t}function f(t,e){return t}function h(t,r,n){if(t.customInspect&&r&&E(r.inspect)&&r.inspect!==e.inspect&&(!r.constructor||r.constructor.prototype!==r)){var i=r.inspect(n,t);return b(i)||(i=h(t,i,n)),i}var o=function(t,e){if(w(e))return t.stylize("undefined","undefined");if(b(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}if(y(e))return t.stylize(""+e,"number");if(g(e))return t.stylize(""+e,"boolean");if(m(e))return t.stylize("null","null")}(t,r);if(o)return o;var s=Object.keys(r),a=function(t){var e={};return t.forEach((function(t,r){e[t]=!0})),e}(s);if(t.showHidden&&(s=Object.getOwnPropertyNames(r)),O(r)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return p(r);if(0===s.length){if(E(r)){var c=r.name?": "+r.name:"";return t.stylize("[Function"+c+"]","special")}if(x(r))return t.stylize(RegExp.prototype.toString.call(r),"regexp");if(A(r))return t.stylize(Date.prototype.toString.call(r),"date");if(O(r))return p(r)}var u,l="",f=!1,S=["{","}"];(v(r)&&(f=!0,S=["[","]"]),E(r))&&(l=" [Function"+(r.name?": "+r.name:"")+"]");return x(r)&&(l=" "+RegExp.prototype.toString.call(r)),A(r)&&(l=" "+Date.prototype.toUTCString.call(r)),O(r)&&(l=" "+p(r)),0!==s.length||f&&0!=r.length?n<0?x(r)?t.stylize(RegExp.prototype.toString.call(r),"regexp"):t.stylize("[Object]","special"):(t.seen.push(r),u=f?function(t,e,r,n,i){for(var o=[],s=0,a=e.length;s<a;++s)C(e,String(s))?o.push(d(t,e,r,n,String(s),!0)):o.push("");
vendor: 4,134 bytes, line 25976
25976return i.forEach((function(i){i.match(/^\d+$/)||o.push(d(t,e,r,n,i,!0))})),o}(t,r,n,a,s):s.map((function(e){return d(t,r,n,a,e,f)})),t.seen.pop(),function(t,e,r){var n=t.reduce((function(t,e){return e.indexOf("\n")>=0&&0,t+e.replace(/\u001b\[\d\d?m/g,"").length+1}),0);if(n>60)return r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1];return r[0]+e+" "+t.join(", ")+" "+r[1]}(u,l,S)):S[0]+l+S[1]}function p(t){return"["+Error.prototype.toString.call(t)+"]"}function d(t,e,r,n,i,o){var s,a,c;if((c=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]}).get?a=c.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):c.set&&(a=t.stylize("[Setter]","special")),C(n,i)||(s="["+i+"]"),a||(t.seen.indexOf(c.value)<0?(a=m(r)?h(t,c.value,null):h(t,c.value,r-1)).indexOf("\n")>-1&&(a=o?a.split("\n").map((function(t){return" "+t})).join("\n").slice(2):"\n"+a.split("\n").map((function(t){return" "+t})).join("\n")):a=t.stylize("[Circular]","special")),w(s)){if(o&&i.match(/^\d+$/))return a;(s=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.slice(1,-1),s=t.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=t.stylize(s,"string"))}return s+": "+a}function v(t){return Array.isArray(t)}function g(t){return"boolean"==typeof t}function m(t){return null===t}function y(t){return"number"==typeof t}function b(t){return"string"==typeof t}function w(t){return void 0===t}function x(t){return S(t)&&"[object RegExp]"===k(t)}function S(t){return"object"==typeof t&&null!==t}function A(t){return S(t)&&"[object Date]"===k(t)}function O(t){return S(t)&&("[object Error]"===k(t)||t instanceof Error)}function E(t){return"function"==typeof t}function k(t){return Object.prototype.toString.call(t)}function T(t){return t<10?"0"+t.toString(10):t.toString(10)}e.debuglog=function(t){if(t=t.toUpperCase(),!s[t])if(a.test(t)){var r=n.pid;s[t]=function(){var n=e.format.apply(e,arguments);console.error("%s %d: %s",t,r,n)}}else s[t]=function(){};return s[t]},e.inspect=u,u.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},u.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.types=r(6622),e.isArray=v,e.isBoolean=g,e.isNull=m,e.isNullOrUndefined=function(t){return null==t},e.isNumber=y,e.isString=b,e.isSymbol=function(t){return"symbol"==typeof t},e.isUndefined=w,e.isRegExp=x,e.types.isRegExp=x,e.isObject=S,e.isDate=A,e.types.isDate=A,e.isError=O,e.types.isNativeError=O,e.isFunction=E,e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},e.isBuffer=r(9221);var _=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function C(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.log=function(){var t,r;console.log("%s - %s",(t=new Date,r=[T(t.getHours()),T(t.getMinutes()),T(t.getSeconds())].join(":"),[t.getDate(),_[t.getMonth()],r].join(" ")),e.format.apply(e,arguments))},e.inherits=r(9988),e._extend=function(t,e){if(!e||!S(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t};var P="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function I(t,e){if(!t){var r=new Error("Promise was rejected with a falsy value");r.reason=t,t=r}return e(t)}e.promisify=function(t){if("function"!=typeof t)throw new TypeError('The "original" argument must be of type Function');if(P&&t[P]){var e;if("function"!=typeof(e=t[P]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(e,P,{value:e,enumerable:!1,writable:!1,configurable:!0}),e}function e(){for(var e,r,n=new Promise((function(t,n){e=t,r=n})),i=[],o=0;o<arguments.length;o++)i.push(arguments[o]);i.push((function(t,n){t?r(t):e(n)}));try{t.apply(this,i)}catch(t){r(t)}return n}return Object.setPrototypeOf(e,Object.getPrototypeOf(t)),P&&Object.defineProperty(e,P,{value:e,enumerable:!1,writable:!1,
25976configurable:!0}),Object.defineProperties(e,i(t))},e.promisify.custom=P,e.callbackify=function(t){if("function"!=typeof t)throw new TypeError('The "original" argument must be of type Function');function e(){for(var e=[],r=0;r<arguments.length;r++)e.push(arguments[r]);var i=e.pop();if("function"!=typeof i)throw new TypeError("The last argument must be of type Function");var o=this,s=function(){return i.apply(o,arguments)};t.apply(this,e).then((function(t){n.nextTick(s.bind(null,null,t))}),(function(t){n.nextTick(I.bind(null,t,s))}))}return Object.setPrototypeOf(e,Object.getPrototypeOf(t)),Object.defineProperties(e,i(t)),e}},1151:(t,e,r)=>{"use strict";var n=r(3625),i=r(659),o=r(9538);t.exports=function(t,e,r){var s,a;i(t);try{if(!(s=o(t,"return"))){if("throw"===e)throw r;return r}s=n(s,t)}catch(t){a=!0,s=t}if("throw"===e)throw r;if(a)throw s;return i(s),r}},1158:t=>{var e=/\s/;t.exports=function(t){for(var r=t.length;r--&&e.test(t.charAt(r)););return r}},1233:(t,e,r)=>{"use strict";var n=r(1067);if(n)try{n([],"length")}catch(t){n=null}t.exports=n},1261:(t,e,r)=>{"use strict";var n=r(573),i=r(3401);t.exports=function(t){var e=n(t,"string");return i(e)?e:e+""}},1274:(t,e,r)=>{"use strict";var n=r(3625),i=r(3844),o=r(671),s=r(3179),a=r(4175),c=r(6369),u=r(9538),l=r(3597).IteratorPrototype,f=r(381),h=r(1151),p=a("toStringTag"),d="IteratorHelper",v="WrapForValidIterator",g=c.set,m=function(t){var e=c.getterFor(t?v:d);return s(i(l),{next:function(){var r=e(this);if(t)return r.nextHandler();if(r.done)return f(void 0,!0);try{var n=r.nextHandler();return r.returnHandlerResult?n:f(n,r.done)}catch(t){throw r.done=!0,t}},return:function(){var r=e(this),i=r.iterator;if(r.done=!0,t){var o=u(i,"return");return o?n(o,i):f(void 0,!0)}if(r.inner)try{h(r.inner.iterator,"normal")}catch(t){return h(i,"throw",t)}return i&&h(i,"normal"),f(void 0,!0)}})},y=m(!0),b=m(!1);o(b,p,"Iterator Helper"),t.exports=function(t,e,r){var n=function(n,i){i?(i.iterator=n.iterator,i.next=n.next):i=n,i.type=e?v:d,i.returnHandlerResult=!!r,i.nextHandler=t,i.counter=0,i.done=!1,g(this,i)};return n.prototype=e?y:b,n}},1354:t=>{function e(t){return!!t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}t.exports=function(t){return null!=t&&(e(t)||function(t){return"function"==typeof t.readFloatLE&&"function"==typeof t.slice&&e(t.slice(0,0))}(t)||!!t._isBuffer)}},1358:t=>{"use strict";t.exports=Math.pow},1361:t=>{var e=Object.prototype.toString;function r(t){return"function"==typeof t.constructor?t.constructor.name:null}t.exports=function(t){if(void 0===t)return"undefined";if(null===t)return"null";var n=typeof t;if("boolean"===n)return"boolean";if("string"===n)return"string";if("number"===n)return"number";if("symbol"===n)return"symbol";if("function"===n)return"GeneratorFunction"===r(t)?"generatorfunction":"function";if(function(t){return Array.isArray?Array.isArray(t):t instanceof Array}(t))return"array";if(function(t){if(t.constructor&&"function"==typeof t.constructor.isBuffer)return t.constructor.isBuffer(t);return!1}(t))return"buffer";if(function(t){try{if("number"==typeof t.length&&"function"==typeof t.callee)return!0}catch(t){if(-1!==t.message.indexOf("callee"))return!0}return!1}(t))return"arguments";if(function(t){return t instanceof Date||"function"==typeof t.toDateString&&"function"==typeof t.getDate&&"function"==typeof t.setDate}(t))return"date";if(function(t){return t instanceof Error||"string"==typeof t.message&&t.constructor&&"number"==typeof t.constructor.stackTraceLimit}(t))return"error";if(function(t){return t instanceof RegExp||"string"==typeof t.flags&&"boolean"==typeof t.ignoreCase&&"boolean"==typeof t.multiline&&"boolean"==typeof t.global}(t))return"regexp";switch(r(t)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";
25976case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(function(t){return"function"==typeof t.throw&&"function"==typeof t.return&&"function"==typeof t.next}(t))return"generator";switch(n=e.call(t)){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return n.slice(8,-1).toLowerCase().replace(/\s/g,"")}},1417:(t,e,r)=>{"use strict";var n=r(4102);t.exports=function(t){return n(t)||null===t}},1441:(t,e,r)=>{"use strict";var n=r(2484),i=r(2675),o=r(321),s=r(5719),a=r(3163),c=r(2718),u=function(){},l=a("Reflect","construct"),f=/^\s*(?:class|function)\b/,h=n(f.exec),p=!f.test(u),d=function(t){if(!o(t))return!1;try{return l(u,[],t),!0}catch(t){return!1}},v=function(t){if(!o(t))return!1;switch(s(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return p||!!h(f,c(t))}catch(t){return!0}};v.sham=!0,t.exports=!l||i((function(){var t;return d(d.call)||!d(Object)||!d((function(){t=!0}))||t}))?v:d},1530:t=>{"use strict";t.exports=Function.prototype.call},1568:(t,e,r)=>{"use strict";var n=r(8810),i=r(2961).findIndex,o=r(2153),s="findIndex",a=!0;s in[]&&Array(1)[s]((function(){a=!1})),n({target:"Array",proto:!0,forced:a},{findIndex:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),o(s)},1650:(t,e,r)=>{"use strict";var n=r(2484),i=r(8649),o=Math.floor,s=n("".charAt),a=n("".replace),c=n("".slice),u=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,l=/\$([$&'`]|\d{1,2})/g;t.exports=function(t,e,r,n,f,h){var p=r+t.length,d=n.length,v=l;return void 0!==f&&(f=i(f),v=u),a(h,v,(function(i,a){var u;switch(s(a,0)){case"$":return"$";case"&":return t;case"`":return c(e,0,r);case"'":return c(e,p);case"<":u=f[c(a,1,-1)];break;default:var l=+a;if(0===l)return i;if(l>d){var h=o(l/10);return 0===h?i:h<=d?void 0===n[h-1]?s(a,1):n[h-1]+s(a,1):i}u=n[l-1]}return void 0===u?"":u}))}},1661:t=>{"use strict";var e=function(){this.head=null,this.tail=null};e.prototype={add:function(t){var e={item:t,next:null},r=this.tail;r?r.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}},t.exports=e},1678:(t,e,r)=>{"use strict";var n=r(8810),i=r(8649),o=r(6526),s=r(7391),a=r(8770),c=r(4643),u=r(3081),l=r(4929),f=r(4028),h=r(8458),p=r(2321)("splice"),d=Math.max,v=Math.min;n({target:"Array",proto:!0,forced:!p},{splice:function(t,e){var r,n,p,g,m,y,b=i(this),w=a(b),x=o(t,w),S=arguments.length;for(0===S?r=n=0:1===S?(r=0,n=w-x):(r=S-2,n=v(d(s(e),0),w-x)),u(w+r-n),p=l(b,n),g=0;g<n;g++)(m=x+g)in b&&f(p,g,b[m]);if(p.length=n,r<n){for(g=x;g<w-n;g++)y=g+r,(m=g+n)in b?b[y]=b[m]:h(b,y);for(g=w;g>w-n+r;g--)h(b,g-1)}else if(r>n)for(g=w-n;g>x;g--)y=g+r-1,(m=g+n-1)in b?b[y]=b[m]:h(b,y);for(g=0;g<r;g++)b[g+x]=arguments[g+2];return c(b,w-n+r),p}})},1701:(t,e,r)=>{"use strict";var n=r(8187),i=r(9997),o=r(7196),s=r(4983);t.exports=function(t){var e=o(arguments),r=t.length-(arguments.length-1);return n(e,1+(r>0?r:0),!0)},i?i(t.exports,"apply",{value:s}):t.exports.apply=s},1704:(t,e,r)=>{"use strict";var n=r(4461),i=r(9467),o=r(3071),s=r(6005);t.exports=function(t,e,r){for(var a=i(e),c=s.f,u=o.f,l=0;l<a.length;l++){var f=a[l];n(t,f)||r&&n(r,f)||c(t,f,u(e,f))}}},1715:(t,e,r)=>{"use strict";var n=r(6057),i=r(4102),o=r(4834),s=r(878);
25976t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,r={};try{(t=n(Object.prototype,"__proto__","set"))(r,[]),e=r instanceof Array}catch(t){}return function(r,n){return o(r),s(n),i(r)?(e?t(r,n):r.__proto__=n,r):r}}():void 0)},1742:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>n});const n='<button\r\n class="prd-selectButton prd-utility-focusRing"\r\n type="button"\r\n {{#if attrs}}\r\n {{{attrs}}}\r\n {{/if}}\r\n>{{{content}}}</button>\r\n'},1759:(t,e,r)=>{"use strict";var n=r(7928),i=r(5236),o=r(6871);n||i(Object.prototype,"toString",o,{unsafe:!0})},1771:(t,e,r)=>{var n={"./add.js":5875,"./append.js":4706,"./default.js":5969,"./eq.js":2048,"./range.js":2741,"./toString.js":4286};function i(t){var e=o(t);return r(e)}function o(t){if(!r.o(n,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return n[t]}i.keys=function(){return Object.keys(n)},i.resolve=o,t.exports=i,i.id=1771},1784:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>n});const n='<span class="prd-divider"></span>\r\n'},1897:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>f});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973),c=(r(5549),r(5249),r(6160),r(9064),r(3376),r(1759),r(3544),r(6782));function u(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(u=function(){return!!t})()}var l="data-template-id",f=function(t){function e(){return(0,n.A)(this,e),t=this,r=e,i=arguments,r=(0,s.A)(r),(0,o.A)(t,u()?Reflect.construct(r,i||[],(0,s.A)(t).constructor):r.apply(t,i));var t,r,i}return(0,a.A)(e,t),(0,i.A)(e,[{key:"connect",value:function(){var t=this;this.containerTargets.forEach((function(e){var r=e.getAttribute(l);e.outerHTML=t.getTemplateById(r).innerHTML}))}},{key:"getTemplateById",value:function(t){return this.templateTargets.find((function(e){return e.getAttribute(l)===t}))}}])}(c.xI);f.targets=["template","container"]},1904:(t,e,r)=>{"use strict";var n=r(2748),i=r(2484);t.exports=function(t){if("Function"===n(t))return i(t)}},1908:(t,e,r)=>{"use strict";r(9688)("WeakSet",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r(301))},1929:t=>{"use strict";t.exports=function(t,e){try{1===arguments.length?console.error(t):console.error(t,e)}catch(t){}}},1941:(t,e,r)=>{"use strict";var n=r(8052),i=Object.defineProperty;t.exports=function(t,e){try{i(n,t,{value:e,configurable:!0,writable:!0})}catch(r){n[t]=e}return e}},1948:(t,e,r)=>{"use strict";var n=r(2748);t.exports=Array.isArray||function(t){return"Array"===n(t)}},1955:(t,e,r)=>{"use strict";var n=r(2484),i=r(7391),o=r(7267),s=r(4834),a=n("".charAt),c=n("".charCodeAt),u=n("".slice),l=function(t){return function(e,r){var n,l,f=o(s(e)),h=i(r),p=f.length;return h<0||h>=p?t?"":void 0:(n=c(f,h))<55296||n>56319||h+1===p||(l=c(f,h+1))<56320||l>57343?t?a(f,h):n:t?u(f,h,h+2):l-56320+(n-55296<<10)+65536}};t.exports={codeAt:l(!1),charAt:l(!0)}},2006:(t,e,r)=>{"use strict";var n=r(8810),i=r(3625),o=r(2484),s=r(4834),a=r(321),c=r(9601),u=r(4584),l=r(7267),f=r(9538),h=r(3614),p=r(1650),d=r(4175),v=r(6007),g=d("replace"),m=TypeError,y=o("".indexOf),b=o("".replace),w=o("".slice),x=Math.max;n({target:"String",proto:!0},{replaceAll:function(t,e){var r,n,o,d,S,A,O,E,k,T,_=s(this),C=0,P="";if(!c(t)){if((r=u(t))&&(n=l(s(h(t))),!~y(n,"g")))throw new m("`.replaceAll` does not allow non-global regexes");if(o=f(t,g))return i(o,t,_,e);if(v&&r)return b(l(_),t,e)}for(d=l(_),S=l(t),(A=a(e))||(e=l(e)),O=S.length,E=x(1,O),k=y(d,S);-1!==k;)T=A?l(e(S,k,d)):p(S,d,k,[],void 0,e),P+=w(d,C,k)+T,C=k+O,k=k+E>d.length?-1:y(d,S,k+E);return C<d.length&&(P+=w(d,C)),P}})},2035:(t,e,r)=>{"use strict";var n=r(8810),i=r(3625),o=r(4334),s=r(1031),a=r(3443),c=r(1072);n({target:"Promise",stat:!0,forced:r(341)},{race:function(t){var e=this,r=s.f(e),n=r.reject,u=a((function(){var s=o(e.resolve);c(t,(function(t){i(s,e,t).then(r.resolve,n)}))}));return u.error&&n(u.value),r.promise}})},2048:(t,e,r)=>{var n=r(8887);t.exports=function(t,e,r){return 2===arguments.length&&(e=(r=e).hash.compare),n.value(t===e,this,r)}},2082:(t,e,r)=>{"use strict";var n=r(2484),i=r(4334),o=r(4102),s=r(4461),a=r(4540),c=r(3588),u=Function,l=n([].concat),f=n([].join),h={};t.exports=c?u.bind:function(t){var e=i(this),r=e.prototype,n=a(arguments,1
25976),c=function(){var r=l(n,a(arguments));return this instanceof c?function(t,e,r){if(!s(h,e)){for(var n=[],i=0;i<e;i++)n[i]="a["+i+"]";h[e]=u("C,a","return new C("+f(n,",")+")")}return h[e](t,r)}(e,r.length,r):e.apply(t,r)};return o(r)&&(c.prototype=r),c}},2128:(t,e,r)=>{"use strict";var n=r(2675);t.exports=!n((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},2148:(t,e,r)=>{"use strict";var n=r(8810),i=r(3163),o=r(6007),s=r(5034),a=r(7032).CONSTRUCTOR,c=r(6794),u=i("Promise"),l=o&&!a;n({target:"Promise",stat:!0,forced:o||a},{resolve:function(t){return c(l&&this===u?s:this,t)}})},2153:(t,e,r)=>{"use strict";var n=r(4175),i=r(3844),o=r(6005).f,s=n("unscopables"),a=Array.prototype;void 0===a[s]&&o(a,s,{configurable:!0,value:i(null)}),t.exports=function(t){a[s][t]=!0}},2170:(t,e,r)=>{"use strict";var n=r(802);t.exports=n.getPrototypeOf||null},2173:(t,e,r)=>{"use strict";var n=r(8810),i=r(1031);n({target:"Promise",stat:!0,forced:r(7032).CONSTRUCTOR},{reject:function(t){var e=i.f(this);return(0,e.reject)(t),e.promise}})},2304:(t,e,r)=>{"use strict";var n=r(8810),i=r(3555);n({global:!0,forced:parseInt!==i},{parseInt:i})},2321:(t,e,r)=>{"use strict";var n=r(2675),i=r(4175),o=r(2763),s=i("species");t.exports=function(t){return o>=51||!n((function(){var e=[];return(e.constructor={})[s]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},2332:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>u});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973);r(7642),r(6160),r(9343),r(1759);function c(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(c=function(){return!!t})()}var u=function(t){function e(){return(0,n.A)(this,e),t=this,r=e,i=arguments,r=(0,s.A)(r),(0,o.A)(t,c()?Reflect.construct(r,i||[],(0,s.A)(t).constructor):r.apply(t,i));var t,r,i}return(0,a.A)(e,t),(0,i.A)(e,[{key:"addIfOn",value:function(t){this.areDescendantOf(t.target)&&this.element.classList.add(this.hoveringClass)}},{key:"removeIfOff",value:function(t){this.areDescendantOf(t.relatedTarget)||this.element.classList.remove(this.hoveringClass)}},{key:"areDescendantOf",value:function(t){for(;t;){if(this.itemTargets.some((function(e){return e===t})))return!0;t=t.parentElement}return!1}}])}(r(6782).xI);u.targets=["item"],u.classes=["hovering"]},2360:(t,e,r)=>{"use strict";var n=r(2675),i=r(321),o=/#|\.prototype\./,s=function(t,e){var r=c[a(t)];return r===l||r!==u&&(i(e)?n(e):!!e)},a=s.normalize=function(t){return String(t).replace(o,".").toLowerCase()},c=s.data={},u=s.NATIVE="N",l=s.POLYFILL="P";t.exports=s},2396:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>p});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973),c=(r(4958),r(7372),r(5549),r(5249),r(2614),r(4707),r(562),r(3082),r(3078),r(2558),r(6160),r(8021),r(9064),r(3376),r(9585),r(1759),r(7567),r(7560),r(3544),r(6782)),u=r(6596),l=r(3230),f=r(5413);function h(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(h=function(){return!!t})()}var p=function(t){function e(){var t,r,i,a;(0,n.A)(this,e);for(var c=arguments.length,u=new Array(c),l=0;l<c;l++)u[l]=arguments[l];return r=this,i=e,a=[].concat(u),i=(0,s.A)(i),(t=(0,o.A)(r,h()?Reflect.construct(i,a||[],(0,s.A)(r).constructor):i.apply(r,a))).prevState=null,t.modelCardSpecsContainerInnerTemplate=null,t}return(0,a.A)(e,t),(0,i.A)(e,[{key:"connect",value:function(){(0,l.P)(this,u.c,this.render.bind(this)),this.render(this.store.getState())}},{key:"change",value:function(){var t=this.checkedCheckboxes.map((function(t){return t.value}));this.store.setState({selectedModelIds:t})}},{key:"render",value:function(t){var e,r,n;if(t.selectedLineupId!==(null===(e=this.prevState)||void 0===e?void 0:e.selectedLineupId)){var i=t.lineups.find((function(e){return e.id===t.selectedLineupId})),o=t.models.filter((function(e){return e.lineupId===t.selectedLineupId}));this.titleTarget.textContent=i.name,this.totalTarget.textContent=o.length,this.modelCardSpecsContainerInnerTemplate||(this.modelCardSpecsContainerInnerTemplate=f.N.compile('\n {{#each models}}\n <div>\n {{> modules/model-card-specs inputType="checkbox" inputName="model" inputValue=id name=name specs=specs attrs=\'data-specs-select-lineup-group-target="modelCardSpecs"\' inputAttrs=\'data-action="change->specs-select-lineup-group#change"\'}}\n </div>\n {{/each}}\n ')),this.modelCardSpecsContainerTarget.innerHTML=this.modelCardSpecsContainerInnerTemplate({models:o})}if(t.selectedModelIds!==(null===(r=this.prevState)||void 0===r?void 0:r.selectedModelIds)||t.selectableModelCount!==(null===(n=this.prevState)||void 0===n?void 0:n.selectableModelCount)){this.checkedCountTarget.textContent=Math.min(t.selectedModelIds.length,t.selectableModelCount);var s=t.selectedModelIds.slice(0,t.selectableModelCount),a=t.selectableModelCount>s.length;
25976this.modelCardSpecsTargets.forEach((function(t){var e=t.querySelector('input[type="checkbox"]'),r=s.includes(e.value);t.setAttribute("aria-disabled",!r&&!a),e.disabled=!r&&!a,e.checked=r}))}this.prevState=t}},{key:"checkboxes",get:function(){return Array.from(this.element.elements).filter((function(t){return"INPUT"===t.tagName&&"checkbox"===t.type}))}},{key:"checkedCheckboxes",get:function(){return this.checkboxes.filter((function(t){return t.checked}))}},{key:"uncheckedModelCardSpecsTargets",get:function(){return this.modelCardSpecsTargets.filter((function(t){return!t.querySelector('input[type="checkbox"]').checked}))}}])}(c.xI);p.targets=["title","total","checkedCount","modelCardSpecsContainer","modelCardSpecs"]},2407:(t,e,r)=>{"use strict";var n=r(2675);t.exports=!n((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},2484:(t,e,r)=>{"use strict";var n=r(3588),i=Function.prototype,o=i.call,s=n&&i.bind.bind(o,o);t.exports=n?s:function(t){return function(){return o.apply(t,arguments)}}},2492:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});var n=r(6492);function i(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,i,o,s,a=[],c=!0,u=!1;try{if(o=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=o.call(r)).done)&&(a.push(n.value),a.length!==e);c=!0);}catch(t){u=!0,i=t}finally{try{if(!c&&null!=r.return&&(s=r.return(),Object(s)!==s))return}finally{if(u)throw i}}return a}}(t,e)||(0,n.A)(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},2537:(t,e,r)=>{"use strict";var n=r(2675),i=r(8052).RegExp,o=n((function(){var t=i("a","y");return t.lastIndex=2,null!==t.exec("abcd")})),s=o||n((function(){return!i("a","y").sticky})),a=o||n((function(){var t=i("^r","gy");return t.lastIndex=2,null!==t.exec("str")}));t.exports={BROKEN_CARET:a,MISSED_STICKY:s,UNSUPPORTED_Y:o}},2558:(t,e,r)=>{"use strict";var n=r(2128),i=r(4690).EXISTS,o=r(2484),s=r(6038),a=Function.prototype,c=o(a.toString),u=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,l=o(u.exec);n&&!i&&s(a,"name",{configurable:!0,get:function(){try{return l(u,c(this))[1]}catch(t){return""}}})},2561:(t,e,r)=>{"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}r.d(e,{A:()=>n})},2589:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>n});const n='<table class="prd-specsSelectTable">\r\n <thead>\r\n <tr role="row">\r\n <th class="prd-utility-visuallyHidden" scope="row" colspan="2" role="rowheader">Model</th>\r\n {{#each models}}\r\n <th\r\n scope="col"\r\n role="columnheader"\r\n data-controller="modal-dialog-opener"\r\n data-action="series-header:open-model-dialog-{{@index}}@window->modal-dialog-opener#open"\r\n >\r\n <p class="prd-specsSelectTable-modelImageWrapper prd-utility-marginBottom-3">\r\n {{#if this}}\r\n <img\r\n class="prd-specsSelectTable-modelImage"\r\n src="{{imageUrl}}"\r\n width="300"\r\n height="300"\r\n alt=""\r\n decoding="async"\r\n loading="lazy"\r\n >\r\n {{/if}}\r\n </p>\r\n {{> modules/select-button content=(default name "Select a Model") attrs=\'data-action="modal-dialog-opener#open"\'}}\r\n <script type="text/x-template" data-modal-dialog-opener-target="template">\r\n {{#> modules/modal-dialog variant="full" label="Select a Model" attrs=\'data-action="specs-select-model-group:dismiss@window->modal-dialog#close"\'}}\r\n {{> modelModalDialogContent index=@index}}\r\n {{/modules/modal-dialog}}\r\n <\/script>\r\n {{#if @first}}\r\n <div data-controller="specs-header-intersection"></div>\r\n {{/if}}\r\n </th>\r\n {{/each}}\r\n {{#each (range (add models.length -3))}}\r\n <th\r\n scope="col"\r\n role="columnheader"\r\n data-controller="modal-dialog-opener"\r\n data-action="series-header:open-model-dialog-{{add @root.models.length @index}}@window->modal-dialog-opener#open"\r\n >
25976\r\n <p class="prd-specsSelectTable-modelImageWrapper prd-utility-marginBottom-3">\r\n <img\r\n class="prd-specsSelectTable-modelImage"\r\n src="/img/products/specs-select-placeholder.png"\r\n width="300"\r\n height="300"\r\n alt=""\r\n decoding="async"\r\n loading="lazy"\r\n >\r\n </p>\r\n {{> modules/select-button content="Select a Model" attrs=\'data-action="modal-dialog-opener#open"\'}}\r\n <script type="text/x-template" data-modal-dialog-opener-target="template">\r\n {{#> modules/modal-dialog variant="full" label="Select a Model" attrs=\'data-action="specs-select-model-group:dismiss@window->modal-dialog#close"\'}}\r\n {{> modelModalDialogContent index=(add @root.models.length @index)}}\r\n {{/modules/modal-dialog}}\r\n <\/script>\r\n {{#unless models}}\r\n {{#if @first}}\r\n <div data-controller="specs-header-intersection"></div>\r\n {{/if}}\r\n {{/unless}}\r\n </th>\r\n {{/each}}\r\n </tr>\r\n </thead>\r\n <tbody class="prd-layout-stack of-space-7">\r\n {{#each models.[0].rows}}\r\n {{#each rows}}\r\n <tr role="row">\r\n {{#each @root.models}}\r\n {{#if @../first}}\r\n {{#if @first}}\r\n <th\r\n scope="row"\r\n {{#unless ../../rows.[1]}}\r\n colspan="2"\r\n {{/unless}}\r\n rowspan="{{../../rows.length}}"\r\n role="rowheader"\r\n >\r\n <p class="prd-utility-heading-4 prd-smallScreen-marginBottom-3 prd-largeScreen-marginBottom-4">\r\n {{../../heading}}\r\n </p>\r\n {{> modules/divider}}\r\n <div class="prd-utility-marginBottom-3"></div>\r\n </th>\r\n {{/if}}\r\n {{/if}}\r\n {{#if @first}}\r\n {{#if ../heading}}\r\n <th scope="row" role="rowheader">\r\n <p class="prd-utility-visuallyHidden">{{../heading}}</p>\r\n <div class="prd-specsSelectTable-subHeader prd-layout-switcher of-row smallScreen-space-3 largeScreen-space-7">\r\n {{#each @root.models}}\r\n <p\r\n class="prd-utility-heading-5 prd-utility-marginBottom-0"\r\n aria-hidden="true"\r\n >\r\n {{lookup (lookup (lookup (lookup rows @../../../index) "rows") @../../index) "heading"}}\r\n </p>\r\n {{/each}}\r\n {{#each (range (add @root.models.length -3))}}\r\n <p class="prd-utility-marginBottom-0" aria-hidden="true"></p>\r\n {{/each}}\r\n </div>\r\n <div class="prd-utility-marginBottom-1"></div>\r\n </th>\r\n {{/if}}\r\n {{/if}}\r\n <td class="prd-utility-body-small" role="cell">\r\n {{{lookup (lookup (lookup (lookup rows @../../index) "rows") @../index) "body"}}}\r\n </td>\r\n {{/each}}\r\n {{#each (range (add @root.models.length -3))}}\r\n <td role="cell"></td>\r\n {{/each}}\r\n </tr>\r\n {{/each}}\r\n {{/each}}\r\n </tbody>\r\n <tfoot>\r\n <tr>\r\n <td class="prd-utility-visuallyHidden" colspan="2"></td>\r\n {{#each models}}\r\n <td role="cell">\r\n {{#if this}}\r\n {{> modules/button link=url content="More Details"}}\r\n {{/if}}\r\n </td>\r\n {{/each}}\r\n {{#each (range (add models.length -3))}}\r\n <td role="cell"></td>\r\n {{/each}}\r\n </tr>\r\n </tfoot>\r\n</table>\r\n{{#*inline "modelModalDialogContent"}}\r\n<form data-controller="specs-select-model-group" data-specs-select-model-group-index-value="{{index}}">\r\n <section class="prd-layout-container">\r\n <div class="prd-utility-marginBottom-7"></div>\r\n <div class="prd-layout-cluster of-spaceX-5 of-justifyContent-between of-alignItems-center">\r\n <h2 class="prd-utility-heading-2">Select a Models</h2>\r\n <output class="prd-utility-heading-4"><span data-specs-select-model-group-target="selectedCount">0</span> / 1</output>\r\n </div>\r\n <div class="prd-utility-marginBottom-5"></div>\r\n {{> modules/divider}}\r\n <div class="prd-smallScreen-marginBottom-7 prd-largeScreen-marginBottom-9"></div>\r\n <div class="prd-layout-cluster of-alignItems-end smallScreen-spaceX-2 largeScreen-spaceX-3">\r\n <p class="prd-utility-heading-3 prd-utility-marginBottom-0" data-specs-select-model-group-target="title"></p>\r\n <small class="prd-utility-color-gray">(<span data-specs-select-model-group-target="total">0</span> products)</small>\r\n </div>\r\n <div class="prd-smallScreen-marginBottom-3 prd-largeScreen-marginBottom-7"></div>\r\n <div\r\n class="prd-layout-grid smallScreen-column-2 extraSmallScreen-column-1 largeScreen-column-4 of-spaceX-7 of-spaceY-9 smallScreen-spaceY-0"\r\n data-specs-select-model-group-target="modelCardSpecsContainer"\r\n ></div>\r\n <div class="prd-utility-marginBottom-9"></div>\r\n </section>\r\n</form>\r\n{{/inline}}\r\n'},2610:(t,e,r)=>{"use strict";var n=r(4009);t.exports=function(t){return!!n(t)}},2614:(t,e,r)=>{"use strict";var n=r(8810),i=r(600);n({target:"Array",stat:!0,forced:!r(9976)((function(t){Array.from(t)}))},{from:i})},2675:t=>{"use strict";
25976t.exports=function(t){try{return!!t()}catch(t){return!0}}},2718:(t,e,r)=>{"use strict";var n=r(2484),i=r(321),o=r(2921),s=n(Function.toString);i(o.inspectSource)||(o.inspectSource=function(t){return s(t)}),t.exports=o.inspectSource},2741:(t,e,r)=>{var n=r(5355);t.exports=function(){var t=Array.from(arguments).slice(0,-1);return n.apply(null,t)}},2748:(t,e,r)=>{"use strict";var n=r(2484),i=n({}.toString),o=n("".slice);t.exports=function(t){return o(i(t),8,-1)}},2763:(t,e,r)=>{"use strict";var n,i,o=r(8052),s=r(3291),a=o.process,c=o.Deno,u=a&&a.versions||c&&c.version,l=u&&u.v8;l&&(i=(n=l.split("."))[0]>0&&n[0]<4?1:+(n[0]+n[1])),!i&&s&&(!(n=s.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=s.match(/Chrome\/(\d+)/))&&(i=+n[1]),t.exports=i},2848:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>Xt});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973),c=(r(5424),r(6782));const u=t=>t.hasOwnProperty("x")&&t.hasOwnProperty("y"),l=t=>u(t)&&t.hasOwnProperty("z"),f=t=>"number"==typeof t,h=(t,e)=>Math.abs(t-e);function p(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(t);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(t,n[i])&&(r[n[i]]=t[n[i]])}return r}Object.create;Object.create;const d=(t,e,r)=>Math.min(Math.max(r,t),e),v=.001;function g({duration:t=800,bounce:e=.25,velocity:r=0,mass:n=1}){let i,o,s=1-e;s=d(.05,1,s),t=d(.01,10,t/1e3),s<1?(i=e=>{const n=e*s,i=n*t,o=n-r,a=y(e,s),c=Math.exp(-i);return v-o/a*c},o=e=>{const n=e*s*t,o=n*r+r,a=Math.pow(s,2)*Math.pow(e,2)*t,c=Math.exp(-n),u=y(Math.pow(e,2),s);return(-i(e)+v>0?-1:1)*((o-a)*c)/u}):(i=e=>Math.exp(-e*t)*((e-r)*t+1)-.001,o=e=>Math.exp(-e*t)*(t*t*(r-e)));const a=function(t,e,r){let n=r;for(let r=1;r<m;r++)n-=t(n)/e(n);return n}(i,o,5/t);if(t*=1e3,isNaN(a))return{stiffness:100,damping:10,duration:t};{const e=Math.pow(a,2)*n;return{stiffness:e,damping:2*s*Math.sqrt(n*e),duration:t}}}const m=12;function y(t,e){return t*Math.sqrt(1-e*e)}const b=["duration","bounce"],w=["stiffness","damping","mass"];function x(t,e){return e.some((e=>void 0!==t[e]))}function S(t){var{from:e=0,to:r=1,restSpeed:n=2,restDelta:i}=t,o=p(t,["from","to","restSpeed","restDelta"]);const s={done:!1,value:e};let{stiffness:a,damping:c,mass:u,velocity:l,duration:f,isResolvedFromDuration:h}=function(t){let e=Object.assign({velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1},t);if(!x(t,w)&&x(t,b)){const r=g(t);e=Object.assign(Object.assign(Object.assign({},e),r),{velocity:0,mass:1}),e.isResolvedFromDuration=!0}return e}(o),d=A,v=A;function m(){const t=l?-l/1e3:0,n=r-e,o=c/(2*Math.sqrt(a*u)),s=Math.sqrt(a/u)/1e3;if(void 0===i&&(i=Math.min(Math.abs(r-e)/100,.4)),o<1){const e=y(s,o);d=i=>{const a=Math.exp(-o*s*i);return r-a*((t+o*s*n)/e*Math.sin(e*i)+n*Math.cos(e*i))},v=r=>{const i=Math.exp(-o*s*r);return o*s*i*(Math.sin(e*r)*(t+o*s*n)/e+n*Math.cos(e*r))-i*(Math.cos(e*r)*(t+o*s*n)-e*n*Math.sin(e*r))}}else if(1===o)d=e=>r-Math.exp(-s*e)*(n+(t+s*n)*e);else{const e=s*Math.sqrt(o*o-1);d=i=>{const a=Math.exp(-o*s*i),c=Math.min(e*i,300);return r-a*((t+o*s*n)*Math.sinh(c)+e*n*Math.cosh(c))/e}}}return m(),{next:t=>{const e=d(t);if(h)s.done=t>=f;else{const o=1e3*v(t),a=Math.abs(o)<=n,c=Math.abs(r-e)<=i;s.done=a&&c}return s.value=s.done?r:e,s},flipTarget:()=>{l=-l,[e,r]=[r,e],m()}}}S.needsInterpolation=(t,e)=>"string"==typeof t||"string"==typeof e;const A=t=>0,O=(t,e,r)=>{const n=e-t;return 0===n?1:(r-t)/n},E=(t,e,r)=>-r*t+r*e+t,k=(t,e)=>r=>Math.max(Math.min(r,e),t),T=t=>t%1?Number(t.toFixed(5)):t,_=/(-)?([\d]*\.?[\d])+/g,C=/(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))/gi,P=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;function I(t){return"string"==typeof t}const j={test:t=>"number"==typeof t,parse:parseFloat,transform:t=>t},M=Object.assign(Object.assign({},j),{transform:k(0,1)}),L=(Object.assign(Object.assign({},j),{default:1}),(t,e)=>r=>Boolean(I(r)&&P.test(r)&&r.startsWith(t)||e&&Object.prototype.hasOwnProperty.call(r,e))),N=(t,e,r)=>n=>{if(!I(n))return n;const[i,o,s,a]=n.match(_);return{[t]:parseFloat(i),[e]:parseFloat(o),[r]:parseFloat(s),alpha:void 0!==a?parseFloat(a):1}},B=k(0,255),R=Object.assign(Object.assign({},j),{transform:t=>Math.round(B(t))}),D={test:L("rgb","red"),parse:N("red","green","blue"),transform:({red:t,green:e,blue:r,alpha:n=1})=>"rgba("+R.transform(t)+", "+R.transform(e)+", "+R.transform(r)+", "+T(M.transform(n))+")"};const F={test:L("#"),parse:function(t){let e="",r="",n="",i="";return t.length>5?(e=t.substr(1,2),r=t.substr(3,2),n=t.substr(5,2),i=t.substr(7,2)):(e=t.substr(1,1),r=t.substr(2,1),n=t.substr(3,1),i=t.substr(4,1),e+=e,r+=r,n+=n,i+=i),{red:parseInt(e,16),green:parseInt(r,16),blue:parseInt(n,16),alph
25976a:i?parseInt(i,16)/255:1}},transform:D.transform},$=t=>({test:e=>I(e)&&e.endsWith(t)&&1===e.split(" ").length,parse:parseFloat,transform:e=>`${e}${t}`}),H=($("deg"),$("%")),z=($("px"),$("vh"),$("vw"),Object.assign(Object.assign({},H),{parse:t=>H.parse(t)/100,transform:t=>H.transform(100*t)}),{test:L("hsl","hue"),parse:N("hue","saturation","lightness"),transform:({hue:t,saturation:e,lightness:r,alpha:n=1})=>"hsla("+Math.round(t)+", "+H.transform(T(e))+", "+H.transform(T(r))+", "+T(M.transform(n))+")"});function V(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}function U({hue:t,saturation:e,lightness:r,alpha:n}){t/=360,r/=100;let i=0,o=0,s=0;if(e/=100){const n=r<.5?r*(1+e):r+e-r*e,a=2*r-n;i=V(a,n,t+1/3),o=V(a,n,t),s=V(a,n,t-1/3)}else i=o=s=r;return{red:Math.round(255*i),green:Math.round(255*o),blue:Math.round(255*s),alpha:n}}const W=(t,e,r)=>{const n=t*t,i=e*e;return Math.sqrt(Math.max(0,r*(i-n)+n))},K=[F,D,z],G=t=>K.find((e=>e.test(t))),q=t=>`'${t}' is not an animatable color. Use the equivalent color code instead.`,J=(t,e)=>{let r=G(t),n=G(e);q(t),q(e);let i=r.parse(t),o=n.parse(e);r===z&&(i=U(i),r=D),n===z&&(o=U(o),n=D);const s=Object.assign({},i);return t=>{for(const e in s)"alpha"!==e&&(s[e]=W(i[e],o[e],t));return s.alpha=E(i.alpha,o.alpha,t),r.transform(s)}},Y=t=>D.test(t)||F.test(t)||z.test(t),X=t=>D.test(t)?D.parse(t):z.test(t)?z.parse(t):F.parse(t),Q=t=>I(t)?t:t.hasOwnProperty("red")?D.transform(t):z.transform(t),Z="${c}",tt="${n}";function et(t){"number"==typeof t&&(t=`${t}`);const e=[];let r=0;const n=t.match(C);n&&(r=n.length,t=t.replace(C,Z),e.push(...n.map(X)));const i=t.match(_);return i&&(t=t.replace(_,tt),e.push(...i.map(j.parse))),{values:e,numColors:r,tokenised:t}}function rt(t){return et(t).values}function nt(t){const{values:e,numColors:r,tokenised:n}=et(t),i=e.length;return t=>{let e=n;for(let n=0;n<i;n++)e=e.replace(n<r?Z:tt,n<r?Q(t[n]):T(t[n]));return e}}const it=t=>"number"==typeof t?0:t;const ot={test:function(t){var e,r,n,i;return isNaN(t)&&I(t)&&(null!==(r=null===(e=t.match(_))||void 0===e?void 0:e.length)&&void 0!==r?r:0)+(null!==(i=null===(n=t.match(C))||void 0===n?void 0:n.length)&&void 0!==i?i:0)>0},parse:rt,createTransformer:nt,getAnimatableNone:function(t){const e=rt(t);return nt(t)(e.map(it))}},st=(t,e)=>r=>e(t(r)),at=(...t)=>t.reduce(st);function ct(t,e){return f(t)?r=>E(t,e,r):Y(t)?J(t,e):ht(t,e)}const ut=(t,e)=>{const r=[...t],n=r.length,i=t.map(((t,r)=>ct(t,e[r])));return t=>{for(let e=0;e<n;e++)r[e]=i[e](t);return r}},lt=(t,e)=>{const r=Object.assign(Object.assign({},t),e),n={};for(const i in r)void 0!==t[i]&&void 0!==e[i]&&(n[i]=ct(t[i],e[i]));return t=>{for(const e in n)r[e]=n[e](t);return r}};function ft(t){const e=ot.parse(t),r=e.length;let n=0,i=0,o=0;for(let t=0;t<r;t++)n||"number"==typeof e[t]?n++:void 0!==e[t].hue?o++:i++;return{parsed:e,numNumbers:n,numRGB:i,numHSL:o}}const ht=(t,e)=>{const r=ot.createTransformer(e),n=ft(t),i=ft(e);return n.numHSL===i.numHSL&&n.numRGB===i.numRGB&&n.numNumbers>=i.numNumbers?at(ut(n.parsed,i.parsed),r):r=>`${r>0?e:t}`},pt=(t,e)=>r=>E(t,e,r);function dt(t,e,r){const n=[],i=r||("number"==typeof(o=t[0])?pt:"string"==typeof o?Y(o)?J:ht:Array.isArray(o)?ut:"object"==typeof o?lt:void 0);var o;const s=t.length-1;for(let r=0;r<s;r++){let o=i(t[r],t[r+1]);if(e){const t=Array.isArray(e)?e[r]:e;o=at(t,o)}n.push(o)}return n}function vt(t,e,{clamp:r=!0,ease:n,mixer:i}={}){const o=t.length;e.length,!n||!Array.isArray(n)||n.length,t[0]>t[o-1]&&(t=[].concat(t),e=[].concat(e),t.reverse(),e.reverse());const s=dt(e,n,i),a=2===o?function([t,e],[r]){return n=>r(O(t,e,n))}(t,s):function(t,e){const r=t.length,n=r-1;return i=>{let o=0,s=!1;if(i<=t[0]?s=!0:i>=t[n]&&(o=n-1,s=!0),!s){let e=1;for(;e<r&&!(t[e]>i||e===n);e++);o=e-1}const a=O(t[o],t[o+1],i);return e[o](a)}}(t,s);return r?e=>a(d(t[0],t[o-1],e)):a}const gt=t=>e=>1-t(1-e),mt=t=>e=>e<=.5?t(2*e)/2:(2-t(2*(1-e)))/2,yt=t=>e=>e*e*((t+1)*e-t),bt=4/11,wt=8/11,xt=(St=2,t=>Math.pow(t,St));var St;gt(xt);const At=mt(xt),Ot=(mt(gt((t=>1-Math.sin(Math.acos(t))))),yt(1.525)),Et=(gt(Ot),mt(Ot),(t=>{const e=yt(t)}
25976)(1.525),4356/361),kt=35442/1805,Tt=16061/1805,_t=t=>{if(1===t||0===t)return t;const e=t*t;return t<bt?7.5625*e:t<wt?9.075*e-9.9*t+3.4:t<.9?Et*e-kt*t+Tt:10.8*t*t-20.52*t+10.72};gt(_t);function Ct(t,e){return t.map((()=>e||At)).splice(0,t.length-1)}function Pt({from:t=0,to:e=1,ease:r,offset:n,duration:i=300}){const o={done:!1,value:t},s=Array.isArray(e)?e:[t,e],a=function(t,e){return t.map((t=>t*e))}(n&&n.length===s.length?n:function(t){const e=t.length;return t.map(((t,r)=>0!==r?r/(e-1):0))}(s),i);function c(){return vt(a,s,{ease:Array.isArray(r)?r:Ct(s,r)})}let u=c();return{next:t=>(o.value=u(t),o.done=t>=i,o),flipTarget:()=>{s.reverse(),u=c()}}}const It={keyframes:Pt,spring:S,decay:function({velocity:t=0,from:e=0,power:r=.8,timeConstant:n=350,restDelta:i=.5,modifyTarget:o}){const s={done:!1,value:e};let a=r*t;const c=e+a,u=void 0===o?c:o(c);return u!==c&&(a=u-e),{next:t=>{const e=-a*Math.exp(-t/n);return s.done=!(e>i||e<-i),s.value=s.done?u:u+e,s},flipTarget:()=>{}}}};r(5249),r(6108),r(1759),r(6741),r(995);var jt=1/60*1e3,Mt="undefined"!=typeof performance?function(){return performance.now()}:function(){return Date.now()},Lt="undefined"!=typeof window?function(t){return window.requestAnimationFrame(t)}:function(t){return setTimeout((function(){return t(Mt())}),jt)};r(9872),r(3348),r(3838),r(1678),r(7560),r(34),r(2901);var Nt=!0,Bt=!1,Rt=!1,Dt={delta:0,timestamp:0},Ft=["read","update","preRender","render","postRender"],$t=Ft.reduce((function(t,e){return t[e]=function(t){var e=[],r=[],n=0,i=!1,o=!1,s=new WeakSet,a={schedule:function(t){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2]&&i,a=o?e:r;return arguments.length>1&&void 0!==arguments[1]&&arguments[1]&&s.add(t),-1===a.indexOf(t)&&(a.push(t),o&&i&&(n=e.length)),t},cancel:function(t){var e=r.indexOf(t);-1!==e&&r.splice(e,1),s.delete(t)},process:function(c){if(i)o=!0;else{i=!0;var u=[r,e];if(e=u[0],(r=u[1]).length=0,n=e.length)for(var l=0;l<n;l++){var f=e[l];f(c),s.has(f)&&(a.schedule(f),t())}i=!1,o&&(o=!1,a.process(c))}}};return a}((function(){return Bt=!0})),t}),{}),Ht=Ft.reduce((function(t,e){var r=$t[e];return t[e]=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return Bt||Wt(),r.schedule(t,e,n)},t}),{}),zt=Ft.reduce((function(t,e){return t[e]=$t[e].cancel,t}),{}),Vt=(Ft.reduce((function(t,e){return t[e]=function(){return $t[e].process(Dt)},t}),{}),function(t){return $t[t].process(Dt)}),Ut=function(t){Bt=!1,Dt.delta=Nt?jt:Math.max(Math.min(t-Dt.timestamp,40),1),Dt.timestamp=t,Rt=!0,Ft.forEach(Vt),Rt=!1,Bt&&(Nt=!1,Lt(Ut))},Wt=function(){Bt=!0,Nt=!0,Rt||Lt(Ut)};const Kt=Ht;function Gt(t,e,r=0){return t-e-r}const qt=t=>{const e=({delta:e})=>t(e);return{start:()=>Kt.update(e,!0),stop:()=>zt.update(e)}};function Jt(t){var e,r,{from:n,autoplay:i=!0,driver:o=qt,elapsed:s=0,repeat:a=0,repeatType:c="loop",repeatDelay:u=0,onPlay:l,onStop:f,onComplete:h,onRepeat:d,onUpdate:v}
25976=t,g=p(t,["from","autoplay","driver","elapsed","repeat","repeatType","repeatDelay","onPlay","onStop","onComplete","onRepeat","onUpdate"]);let m,y,b,{to:w}=g,x=0,A=g.duration,O=!1,E=!0;const k=function(t){if(Array.isArray(t.to))return Pt;if(It[t.type])return It[t.type];const e=new Set(Object.keys(t));return e.has("ease")||e.has("duration")&&!e.has("dampingRatio")?Pt:e.has("dampingRatio")||e.has("stiffness")||e.has("mass")||e.has("damping")||e.has("restSpeed")||e.has("restDelta")?S:Pt}(g);(null===(r=(e=k).needsInterpolation)||void 0===r?void 0:r.call(e,n,w))&&(b=vt([0,100],[n,w],{clamp:!1}),n=0,w=100);const T=k(Object.assign(Object.assign({},g),{from:n,to:w}));function _(){x++,"reverse"===c?(E=x%2==0,s=function(t,e,r=0,n=!0){return n?Gt(e+-t,e,r):e-(t-e)+r}(s,A,u,E)):(s=Gt(s,A,u),"mirror"===c&&T.flipTarget()),O=!1,d&&d()}function C(t){if(E||(t=-t),s+=t,!O){const t=T.next(Math.max(0,s));y=t.value,b&&(y=b(y)),O=E?t.done:s<=0}null==v||v(y),O&&(0===x&&(null!=A||(A=s)),x<a?function(t,e,r,n){return n?t>=e+r:t<=-r}(s,A,u,E)&&_():(m.stop(),h&&h()))}return i&&(null==l||l(),m=o(C),m.start()),{stop:()=>{null==f||f(),m.stop()}}}function Yt(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Yt=function(){return!!t})()}var Xt=function(t){function e(){return(0,n.A)(this,e),t=this,r=e,i=arguments,r=(0,s.A)(r),(0,o.A)(t,Yt()?Reflect.construct(r,i||[],(0,s.A)(t).constructor):r.apply(t,i));var t,r,i}return(0,a.A)(e,t),(0,i.A)(e,[{key:"run",value:function(t){var e=this,r={x:this.containerTarget.scrollLeft,y:this.containerTarget.scrollTop},n={x:Number(t.currentTarget.getAttribute("data-x-coord")),y:Number(t.currentTarget.getAttribute("data-y-coord"))};Jt({from:r,to:n,duration:1.5*function(t,e){if(f(t)&&f(e))return h(t,e);if(u(t)&&u(e)){const r=h(t.x,e.x),n=h(t.y,e.y),i=l(t)&&l(e)?h(t.z,e.z):0;return Math.sqrt(Math.pow(r,2)+Math.pow(n,2)+Math.pow(i,2))}}(r,n),onUpdate:function(t){var r=t.x,n=t.y;e.containerTarget.scrollLeft=r,e.containerTarget.scrollTop=n}})}}])}(c.xI);Xt.targets=["container"]},2868:(t,e,r)=>{"use strict";var n=r(2484),i=0,o=Math.random(),s=n(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+s(++i+o,36)}},2900:(t,e,r)=>{"use strict";var n=r(3291);
vendor: 3,757 bytes, line 25976
25976t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(n)},2901:(t,e,r)=>{"use strict";var n=r(8052),i=r(5004),o=r(7140),s=r(3348),a=r(671),c=r(8819),u=r(4175)("iterator"),l=s.values,f=function(t,e){if(t){if(t[u]!==l)try{a(t,u,l)}catch(e){t[u]=l}if(c(t,e,!0),i[e])for(var r in s)if(t[r]!==s[r])try{a(t,r,s[r])}catch(e){t[r]=s[r]}}};for(var h in i)f(n[h]&&n[h].prototype,h);f(o,"DOMTokenList")},2921:(t,e,r)=>{"use strict";var n=r(6007),i=r(8052),o=r(1941),s="__core-js_shared__",a=t.exports=i[s]||o(s,{});(a.versions||(a.versions=[])).push({version:"3.41.0",mode:n?"pure":"global",copyright:"© 2014-2025 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.41.0/LICENSE",source:"https://github.com/zloirock/core-js"})},2961:(t,e,r)=>{"use strict";var n=r(9004),i=r(2484),o=r(51),s=r(8649),a=r(8770),c=r(4929),u=i([].push),l=function(t){var e=1===t,r=2===t,i=3===t,l=4===t,f=6===t,h=7===t,p=5===t||f;return function(d,v,g,m){for(var y,b,w=s(d),x=o(w),S=a(x),A=n(v,g),O=0,E=m||c,k=e?E(d,S):r||h?E(d,0):void 0;S>O;O++)if((p||O in x)&&(b=A(y=x[O],O,w),t))if(e)k[O]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return O;case 2:u(k,y)}else switch(t){case 4:return!1;case 7:u(k,y)}return f?-1:i||l?l:k}};t.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6),filterReject:l(7)}},3008:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});var n=r(3224);function i(t,e){if(e&&("object"==(0,n.A)(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}},3026:(t,e,r)=>{"use strict";var n=r(7391),i=Math.min;t.exports=function(t){var e=n(t);return e>0?i(e,9007199254740991):0}},3037:(t,e,r)=>{"use strict";var n=r(2128),i=r(706),o=r(6005),s=r(659),a=r(8969),c=r(4700);e.f=n&&!i?Object.defineProperties:function(t,e){s(t);for(var r,n=a(e),i=c(e),u=i.length,l=0;u>l;)o.f(t,r=i[l++],n[r]);return t}},3049:(t,e,r)=>{"use strict";var n=r(4690).PROPER,i=r(5236),o=r(659),s=r(7267),a=r(2675),c=r(3614),u="toString",l=RegExp.prototype,f=l[u],h=a((function(){return"/a/b"!==f.call({source:"a",flags:"b"})})),p=n&&f.name!==u;(h||p)&&i(l,u,(function(){var t=o(this);return"/"+s(t.source)+"/"+s(c(t))}),{unsafe:!0})},3071:(t,e,r)=>{"use strict";var n=r(2128),i=r(3625),o=r(7769),s=r(5936),a=r(8969),c=r(1261),u=r(4461),l=r(4113),f=Object.getOwnPropertyDescriptor;e.f=n?f:function(t,e){if(t=a(t),e=c(e),l)try{return f(t,e)}catch(t){}if(u(t,e))return s(!i(o.f,t,e),t[e])}},3078:(t,e,r)=>{"use strict";var n=r(8810),i=r(2082);n({target:"Function",proto:!0,forced:Function.bind!==i},{bind:i})},3081:t=>{"use strict";var e=TypeError;t.exports=function(t){if(t>9007199254740991)throw e("Maximum allowed index exceeded");return t}},3082:(t,e,r)=>{"use strict";var n=r(8810),i=r(1948),o=r(1441),s=r(4102),a=r(6526),c=r(8770),u=r(8969),l=r(4028),f=r(4175),h=r(2321),p=r(4540),d=h("slice"),v=f("species"),g=Array,m=Math.max;n({target:"Array",proto:!0,forced:!d},{slice:function(t,e){var r,n,f,h=u(this),d=c(h),y=a(t,d),b=a(void 0===e?d:e,d);if(i(h)&&(r=h.constructor,(o(r)&&(r===g||i(r.prototype))||s(r)&&null===(r=r[v]))&&(r=void 0),r===g||void 0===r))return p(h,y,b);for(n=new(void 0===r?g:r)(m(b-y,0)),f=0;y<b;y++,f++)y in h&&l(n,f,h[y]);return n.length=f,n}})},3087:(t,e,r)=>{"use strict";var n=r(2675),i=r(5936);t.exports=!n((function(){var t=new Error("a");return!("stack"in t)||(Object.defineProperty(t,"stack",i(1,7)),7!==t.stack)}))},3112:(t,e,r)=>{"use strict";var n=r(1441),i=r(8379),o=TypeError;t.exports=function(t){if(n(t))return t;throw new o(i(t)+" is not a constructor")}},3134:(t,e,r)=>{"use strict";
vendor: 3,588 bytes, line 25976
25976function n(t){return n=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},n(t)}r.d(e,{A:()=>n})},3163:(t,e,r)=>{"use strict";var n=r(8052),i=r(321);t.exports=function(t,e){return arguments.length<2?(r=n[t],i(r)?r:void 0):n[t]&&n[t][e];var r}},3179:(t,e,r)=>{"use strict";var n=r(5236);t.exports=function(t,e,r){for(var i in e)n(t,i,e[i],r);return t}},3184:t=>{var e,r,n=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(t){if(e===setTimeout)return setTimeout(t,0);if((e===i||!e)&&setTimeout)return e=setTimeout,setTimeout(t,0);try{return e(t,0)}catch(r){try{return e.call(null,t,0)}catch(r){return e.call(this,t,0)}}}!function(){try{e="function"==typeof setTimeout?setTimeout:i}catch(t){e=i}try{r="function"==typeof clearTimeout?clearTimeout:o}catch(t){r=o}}();var a,c=[],u=!1,l=-1;function f(){u&&a&&(u=!1,a.length?c=a.concat(c):l=-1,c.length&&h())}function h(){if(!u){var t=s(f);u=!0;for(var e=c.length;e;){for(a=c,c=[];++l<e;)a&&a[l].run();l=-1,e=c.length}a=null,u=!1,function(t){if(r===clearTimeout)return clearTimeout(t);if((r===o||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(t);try{return r(t)}catch(e){try{return r.call(null,t)}catch(e){return r.call(this,t)}}}(t)}}function p(t,e){this.fun=t,this.array=e}function d(){}n.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)e[r-1]=arguments[r];c.push(new p(t,e)),1!==c.length||u||s(h)},p.prototype.run=function(){this.fun.apply(null,this.array)},n.title="browser",n.browser=!0,n.env={},n.argv=[],n.version="",n.versions={},n.on=d,n.addListener=d,n.once=d,n.off=d,n.removeListener=d,n.removeAllListeners=d,n.emit=d,n.prependListener=d,n.prependOnceListener=d,n.listeners=function(t){return[]},n.binding=function(t){throw new Error("process.binding is not supported")},n.cwd=function(){return"/"},n.chdir=function(t){throw new Error("process.chdir is not supported")},n.umask=function(){return 0}},3224:(t,e,r)=>{"use strict";function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}r.d(e,{A:()=>n})},3230:(t,e,r)=>{"use strict";r.d(e,{P:()=>n});r(3078),r(4702);function n(t,e,r){e.subscribe(r);var n=t.disconnect.bind(t);Object.assign(t,{store:e,disconnect:function(){e.unsubscribe(r),n()}})}},3259:(t,e,r)=>{"use strict";var n=r(4584),i=TypeError;t.exports=function(t){if(n(t))throw new i("The method doesn't accept regular expressions");return t}},3291:(t,e,r)=>{"use strict";var n=r(8052).navigator,i=n&&n.userAgent;t.exports=i?String(i):""},3299:(t,e,r)=>{"use strict";var n=r(8810),i=r(2961).every;n({target:"Array",proto:!0,forced:!r(8754)("every")},{every:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},3316:(t,e,r)=>{"use strict";var n=r(6891);t.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},3348:(t,e,r)=>{"use strict";var n=r(8969),i=r(2153),o=r(6609),s=r(6369),a=r(6005).f,c=r(8676),u=r(381),l=r(6007),f=r(2128),h="Array Iterator",p=s.set,d=s.getterFor(h);t.exports=c(Array,"Array",(function(t,e){p(this,{type:h,target:n(t),index:0,kind:e})}),(function(){var t=d(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,u(void 0,!0);switch(t.kind){case"keys":return u(r,!1);case"values":return u(e[r],!1)}return u([r,e[r]],!1)}),"values");var v=o.Arguments=o.Array;
25976if(i("keys"),i("values"),i("entries"),!l&&f&&"values"!==v.name)try{a(v,"name",{value:"values"})}catch(t){}},3376:(t,e,r)=>{"use strict";var n=r(8810),i=r(1072),o=r(4334),s=r(659),a=r(779);n({target:"Iterator",proto:!0,real:!0},{forEach:function(t){s(this),o(t);var e=a(this),r=0;i(e,(function(e){t(e,r++)}),{IS_RECORD:!0})}})},3401:(t,e,r)=>{"use strict";var n=r(3163),i=r(321),o=r(7837),s=r(3316),a=Object;t.exports=s?function(t){return"symbol"==typeof t}:function(t){var e=n("Symbol");return i(e)&&o(e.prototype,a(t))}},3406:(t,e,r)=>{"use strict";var n=r(8810),i=r(5150).trim;n({target:"String",proto:!0,forced:r(790)("trim")},{trim:function(){return i(this)}})},3409:(t,e,r)=>{"use strict";var n=r(3291).match(/firefox\/(\d+)/i);t.exports=!!n&&+n[1]},3443:t=>{"use strict";t.exports=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}}},3452:t=>{"use strict";t.exports=Math.min},3515:(t,e,r)=>{"use strict";var n=r(981);t.exports=function(t){return n(t)||0===t?t:t<0?-1:1}},3536:(t,e,r)=>{var n=r(6990),i=r(6184);t.exports=function(t){return"symbol"==typeof t||i(t)&&"[object Symbol]"==n(t)}},3539:(t,e,r)=>{"use strict";var n=r(3291).match(/AppleWebKit\/(\d+)\./);t.exports=!!n&&+n[1]},3544:(t,e,r)=>{"use strict";var n=r(8052),i=r(5004),o=r(7140),s=r(9311),a=r(671),c=function(t){if(t&&t.forEach!==s)try{a(t,"forEach",s)}catch(e){t.forEach=s}};for(var u in i)i[u]&&c(n[u]&&n[u].prototype);c(o)},3555:(t,e,r)=>{"use strict";var n=r(8052),i=r(2675),o=r(2484),s=r(7267),a=r(5150).trim,c=r(4912),u=n.parseInt,l=n.Symbol,f=l&&l.iterator,h=/^[+-]?0x/i,p=o(h.exec),d=8!==u(c+"08")||22!==u(c+"0x16")||f&&!i((function(){u(Object(f))}));t.exports=d?function(t,e){var r=a(s(t));return u(r,e>>>0||(p(h,r)?16:10))}:u},3572:(t,e,r)=>{var n=r(7066),i=r(6015),o=r(3536),s=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,c=/^0o[0-7]+$/i,u=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(o(t))return NaN;if(i(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=i(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=n(t);var r=a.test(t);return r||c.test(t)?u(t.slice(2),r?2:8):s.test(t)?NaN:+t}},3588:(t,e,r)=>{"use strict";var n=r(2675);t.exports=!n((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},3597:(t,e,r)=>{"use strict";var n,i,o,s=r(2675),a=r(321),c=r(4102),u=r(3844),l=r(5927),f=r(5236),h=r(4175),p=r(6007),d=h("iterator"),v=!1;[].keys&&("next"in(o=[].keys())?(i=l(l(o)))!==Object.prototype&&(n=i):v=!0),!c(n)||s((function(){var t={};return n[d].call(t)!==t}))?n={}:p&&(n=u(n)),a(n[d])||f(n,d,(function(){return this})),t.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:v}},3598:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>u});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973);r(5249),r(6160),r(3376),r(1759),r(3544);function c(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(c=function(){return!!t})()}var u=function(t){function e(){return(0,n.A)(this,e),t=this,r=e,i=arguments,r=(0,s.A)(r),(0,o.A)(t,c()?Reflect.construct(r,i||[],(0,s.A)(t).constructor):r.apply(t,i));var t,r,i}return(0,a.A)(e,t),(0,i.A)(e,[{key:"toggle",value:function(t){var e=t.detail.checked;this.itemTargets.forEach((function(t){t.setAttribute("aria-hidden",!e)})),this.onlyVisibleTargets.forEach((function(t){t.setAttribute("aria-hidden",!e)})),this.onlyHiddenTargets.forEach((function(t){t.setAttribute("aria-hidden",e)}))}}])}(r(6782).xI);u.targets=["item","onlyVisible","onlyHidden"]},3613:(t,e,r)=>{"use strict";var n=r(5600),i="undefined"==typeof globalThis?r.g:globalThis;t.exports=function(){for(var t=[],e=0;e<n.length;e++)"function"==typeof i[n[e]]&&(t[t.length]=n[e]);return t}},3614:(t,e,r)=>{"use strict";var n=r(3625),i=r(4461),o=r(7837),s=r(8303),a=RegExp.prototype;t.exports=function(t){var e=t.flags;return void 0!==e||"flags"in a||i(t,"flags")||!o(a,t)?e:n(s,t)}},3625:(t,e,r)=>{"use strict";var n=r(3588),i=Function.prototype.call;t.exports=n?i.bind(i):function(){return i.apply(i,arguments)}},3663:(t,e,r)=>{"use strict";var n=r(8682),i=r(6725),o=n("RegExp.prototype.exec"),s=r(6757);t.exports=function(t){if(!i(t))throw new s("`regex` must be a RegExp");return function(e){return null!==o(t,e)}}},3703:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>n});
vendor: 4,822 bytes, line 25976
25976const n='<div\r\n class="prd-modalDialog{{#if variant}} of-{{variant}}{{/if}}"\r\n role="dialog"\r\n aria-label="{{label}}"\r\n aria-modal="true"\r\n aria-hidden="true"\r\n data-controller="modal-dialog"\r\n {{#if attrs}}\r\n {{{attrs}}}\r\n {{/if}}\r\n>\r\n <div class="prd-modalDialog-backdrop" data-action="click->modal-dialog#close"></div>\r\n <div class="prd-modalDialog-container">\r\n <div>\r\n <div class="prd-layout-container">\r\n <div class="prd-smallScreen-marginBottom-2 prd-largeScreen-marginBottom-3"></div>\r\n <p class="prd-layout-cluster smallScreen-justifyContent-end largeScreen-justifyContent-center prd-utility-marginBottom-0">\r\n <button\r\n class="prd-modalDialog-closeButton prd-utility-focusRing"\r\n type="button"\r\n aria-label="Close"\r\n data-action="modal-dialog#close"\r\n >\r\n <svg class="prd-modalDialog-closeButtonIcon" viewBox="0 0 28 28">\r\n <path d="M19.9227 10.0232L17.9428 8.04334L13.983 12.0031L10.0232 8.04334L8.04334 10.0232L12.0031 13.983L8.04334 17.9428L10.0232 19.9227L13.983 15.9629L17.9428 19.9227L19.9227 17.9428L15.9629 13.983L19.9227 10.0232ZM23.8825 4.08354C18.4378 -1.36118 9.52826 -1.36118 4.08354 4.08354C-1.36118 9.52826 -1.36118 18.4378 4.08354 23.8825C9.52826 29.3273 18.4378 29.3273 23.8825 23.8825C29.3273 18.4378 29.3273 9.52826 23.8825 4.08354ZM6.06344 21.9026C1.70766 17.5469 1.70766 10.4192 6.06344 6.06344C10.4192 1.70766 17.5469 1.70766 21.9026 6.06344C26.2584 10.4192 26.2584 17.5469 21.9026 21.9026C17.5469 26.2584 10.4192 26.2584 6.06344 21.9026Z"/>\r\n </svg>\r\n </button>\r\n </p>\r\n <div class="prd-smallScreen-marginBottom-2 prd-largeScreen-marginBottom-3"></div>\r\n </div>\r\n </div>\r\n <div class="prd-modalDialog-contentWrapper">\r\n <div class="prd-modalDialog-content prd-utility-focusRing prd-utility-maxWidth-extraNarrow" tabindex="0">\r\n <div class="prd-modalDialog-contentInner">\r\n {{> @partial-block }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n'},3709:(t,e,r)=>{"use strict";var n=r(4175),i=r(6609),o=n("iterator"),s=Array.prototype;t.exports=function(t){return void 0!==t&&(i.Array===t||s[o]===t)}},3743:(t,e,r)=>{var n,i;!function(o){n=[r(9324)],i=function(t){return function(t,e){"use strict";var r={extend:function(t,e){for(var r in e)t[r]=e[r];return t},modulo:function(t,e){return(t%e+e)%e}},n=Array.prototype.slice;r.makeArray=function(t){return Array.isArray(t)?t:null==t?[]:"object"==typeof t&&"number"==typeof t.length?n.call(t):[t]},r.removeFrom=function(t,e){var r=t.indexOf(e);-1!=r&&t.splice(r,1)},r.getParent=function(t,r){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,e(t,r))return t},r.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},r.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},r.filterFindElements=function(t,n){t=r.makeArray(t);var i=[];return t.forEach((function(t){if(t instanceof HTMLElement)if(n){e(t,n)&&i.push(t);for(var r=t.querySelectorAll(n),o=0;o<r.length;o++)i.push(r[o])}else i.push(t)})),i},r.debounceMethod=function(t,e,r){r=r||100;var n=t.prototype[e],i=e+"Timeout";t.prototype[e]=function(){var t=this[i];clearTimeout(t);var e=arguments,o=this;this[i]=setTimeout((function(){n.apply(o,e),delete o[i]}),r)}},r.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},r.toDashed=function(t){return t.replace(/(.)([A-Z])/g,(function(t,e,r){return e+"-"+r})).toLowerCase()};var i=t.console;return r.htmlInit=function(e,n){r.docReady((function(){var o=r.toDashed(n),s="data-"+o,a=document.querySelectorAll("["+s+"]"),c=document.querySelectorAll(".js-"+o),u=r.makeArray(a).concat(r.makeArray(c)),l=s+"-options",f=t.jQuery;u.forEach((function(t){var r,o=t.getAttribute(s)||t.getAttribute(l);try{r=o&&JSON.parse(o)}catch(e){return void(i&&i.error("Error parsing "+s+" on "+t.className+": "+e))}var a=new e(t,r);f&&f.data(t,n,a)}))}))},r}(o,t)}.apply(e,n),void 0===i||(t.exports=i)}(window)},3765:(t,e,r)=>{"use strict";var n=r(8810),i=r(8052),o=r(3625),s=r(2484),a=r(6007),c=r(2128),u=r(6891),l=r(2675),f=r(4461),h=r(7837),p=r(659),d=r(8969),v=r(1261),g=r(7267),m=r(5936),y=r(3844),b=r(4700),w=r(4956),x=r(6766),S=r(9073),A=r(3071),O=r(6005),E=r(3037),k=r(7769),T=r(5236),_=r(6038),C=r(6445),P=r(3779),I=r(6617),j=r(2868),M=r(4175),L=r(5672),N=r(4515),B=r(8438),R=r(8819),D=r(6369),F=r(2961).forEac
25976h,$=P("hidden"),H="Symbol",z="prototype",V=D.set,U=D.getterFor(H),W=Object[z],K=i.Symbol,G=K&&K[z],q=i.RangeError,J=i.TypeError,Y=i.QObject,X=A.f,Q=O.f,Z=x.f,tt=k.f,et=s([].push),rt=C("symbols"),nt=C("op-symbols"),it=C("wks"),ot=!Y||!Y[z]||!Y[z].findChild,st=function(t,e,r){var n=X(W,e);n&&delete W[e],Q(t,e,r),n&&t!==W&&Q(W,e,n)},at=c&&l((function(){return 7!==y(Q({},"a",{get:function(){return Q(this,"a",{value:7}).a}})).a}))?st:Q,ct=function(t,e){var r=rt[t]=y(G);return V(r,{type:H,tag:t,description:e}),c||(r.description=e),r},ut=function(t,e,r){t===W&&ut(nt,e,r),p(t);var n=v(e);return p(r),f(rt,n)?(r.enumerable?(f(t,$)&&t[$][n]&&(t[$][n]=!1),r=y(r,{enumerable:m(0,!1)})):(f(t,$)||Q(t,$,m(1,y(null))),t[$][n]=!0),at(t,n,r)):Q(t,n,r)},lt=function(t,e){p(t);var r=d(e),n=b(r).concat(dt(r));return F(n,(function(e){c&&!o(ft,r,e)||ut(t,e,r[e])})),t},ft=function(t){var e=v(t),r=o(tt,this,e);return!(this===W&&f(rt,e)&&!f(nt,e))&&(!(r||!f(this,e)||!f(rt,e)||f(this,$)&&this[$][e])||r)},ht=function(t,e){var r=d(t),n=v(e);if(r!==W||!f(rt,n)||f(nt,n)){var i=X(r,n);return!i||!f(rt,n)||f(r,$)&&r[$][n]||(i.enumerable=!0),i}},pt=function(t){var e=Z(d(t)),r=[];return F(e,(function(t){f(rt,t)||f(I,t)||et(r,t)})),r},dt=function(t){var e=t===W,r=Z(e?nt:d(t)),n=[];return F(r,(function(t){!f(rt,t)||e&&!f(W,t)||et(n,rt[t])})),n};u||(T(G=(K=function(){if(h(G,this))throw new J("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?g(arguments[0]):void 0,e=j(t),r=function(t){var n=void 0===this?i:this;n===W&&o(r,nt,t),f(n,$)&&f(n[$],e)&&(n[$][e]=!1);var s=m(1,t);try{at(n,e,s)}catch(t){if(!(t instanceof q))throw t;st(n,e,s)}};return c&&ot&&at(W,e,{configurable:!0,set:r}),ct(e,t)})[z],"toString",(function(){return U(this).tag})),T(K,"withoutSetter",(function(t){return ct(j(t),t)})),k.f=ft,O.f=ut,E.f=lt,A.f=ht,w.f=x.f=pt,S.f=dt,L.f=function(t){return ct(M(t),t)},c&&(_(G,"description",{configurable:!0,get:function(){return U(this).description}}),a||T(W,"propertyIsEnumerable",ft,{unsafe:!0}))),n({global:!0,constructor:!0,wrap:!0,forced:!u,sham:!u},{Symbol:K}),F(b(it),(function(t){N(t)})),n({target:H,stat:!0,forced:!u},{useSetter:function(){ot=!0},useSimple:function(){ot=!1}}),n({target:"Object",stat:!0,forced:!u,sham:!c},{create:function(t,e){return void 0===e?y(t):lt(y(t),e)},defineProperty:ut,defineProperties:lt,getOwnPropertyDescriptor:ht}),n({target:"Object",stat:!0,forced:!u},{getOwnPropertyNames:pt}),B(),R(K,H),I[$]=!0},3779:(t,e,r)=>{"use strict";var n=r(6445),i=r(2868),o=n("keys");t.exports=function(t){return o[t]||(o[t]=i(t))}},3790:function(t){var e;e=function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={exports:{},id:n,loaded:!1};return t[n].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}return r.m=t,r.c=e,r.p="",r(0)}([function(t,e,r){"use strict";var n=r(1).default;e.__esModule=!0;var i=n(r(2)),o=n(r(84)),s=r(85),a=r(90),c=n(r(91)),u=n(r(88)),l=n(r(83)),f=i.default.create;function h(){var t=f();return t.compile=function(e,r){return a.compile(e,r,t)},t.precompile=function(e,r){return a.precompile(e,r,t)},t.AST=o.default,t.Compiler=a.Compiler,t.JavaScriptCompiler=c.default,t.Parser=s.parser,t.parse=s.parse,t.parseWithoutProcessing=s.parseWithoutProcessing,t}var p=h();p.create=h,l.default(p),p.Visitor=u.default,p.default=p,e.default=p,t.exports=e.default},function(t,e){"use strict";e.default=function(t){return t&&t.__esModule?t:{default:t}},e.__esModule=!0},function(t,e,r){"use strict";var n=r(3).default,i=r(1).default;e.__esModule=!0;var o=n(r(4)),s=i(r(77)),a=i(r(6)),c=n(r(5)),u=n(r(78)),l=i(r(83));function f(){var t=new o.HandlebarsEnvironment;return c.extend(t,o),t.SafeString=s.default,t.Exception=a.default,t.Utils=c,t.escapeExpression=c.escapeExpression,t.VM=u,t.template=function(e){return u.template(e,t)},t}var h=f();h.create=f,l.default(h),h.default=h,e.default=h,t.exports=e.default},function(t,e){"use strict";e.default=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}
vendor: 4,232 bytes, line 25976
25976,e.__esModule=!0},function(t,e,r){"use strict";var n=r(1).default;e.__esModule=!0,e.HandlebarsEnvironment=f;var i=r(5),o=n(r(6)),s=r(10),a=r(70),c=n(r(72)),u=r(73);e.VERSION="4.7.8",e.COMPILER_REVISION=8,e.LAST_COMPATIBLE_COMPILER_REVISION=7,e.REVISION_CHANGES={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0 <4.3.0",8:">= 4.3.0"};var l="[object Object]";function f(t,e,r){this.helpers=t||{},this.partials=e||{},this.decorators=r||{},s.registerDefaultHelpers(this),a.registerDefaultDecorators(this)}f.prototype={constructor:f,logger:c.default,log:c.default.log,registerHelper:function(t,e){if(i.toString.call(t)===l){if(e)throw new o.default("Arg not supported with multiple helpers");i.extend(this.helpers,t)}else this.helpers[t]=e},unregisterHelper:function(t){delete this.helpers[t]},registerPartial:function(t,e){if(i.toString.call(t)===l)i.extend(this.partials,t);else{if(void 0===e)throw new o.default('Attempting to register a partial called "'+t+'" as undefined');this.partials[t]=e}},unregisterPartial:function(t){delete this.partials[t]},registerDecorator:function(t,e){if(i.toString.call(t)===l){if(e)throw new o.default("Arg not supported with multiple decorators");i.extend(this.decorators,t)}else this.decorators[t]=e},unregisterDecorator:function(t){delete this.decorators[t]},resetLoggedPropertyAccesses:function(){u.resetLoggedProperties()}};var h=c.default.log;e.log=h,e.createFrame=i.createFrame,e.logger=c.default},function(t,e){"use strict";e.__esModule=!0,e.extend=s,e.indexOf=function(t,e){for(var r=0,n=t.length;r<n;r++)if(t[r]===e)return r;return-1},e.escapeExpression=function(t){if("string"!=typeof t){if(t&&t.toHTML)return t.toHTML();if(null==t)return"";if(!t)return t+"";t=""+t}return i.test(t)?t.replace(n,o):t},e.isEmpty=function(t){return!t&&0!==t||!(!u(t)||0!==t.length)},e.createFrame=function(t){var e=s({},t);return e._parent=t,e},e.blockParams=function(t,e){return t.path=e,t},e.appendContextPath=function(t,e){return(t?t+".":"")+e};var r={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`","=":"="},n=/[&<>"'`=]/g,i=/[&<>"'`=]/;function o(t){return r[t]}function s(t){for(var e=1;e<arguments.length;e++)for(var r in arguments[e])Object.prototype.hasOwnProperty.call(arguments[e],r)&&(t[r]=arguments[e][r]);return t}var a=Object.prototype.toString;e.toString=a;var c=function(t){return"function"==typeof t};c(/x/)&&(e.isFunction=c=function(t){return"function"==typeof t&&"[object Function]"===a.call(t)}),e.isFunction=c;var u=Array.isArray||function(t){return!(!t||"object"!=typeof t)&&"[object Array]"===a.call(t)};e.isArray=u},function(t,e,r){"use strict";var n=r(7).default;e.__esModule=!0;var i=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function o(t,e){var r=e&&e.loc,s=void 0,a=void 0,c=void 0,u=void 0;r&&(s=r.start.line,a=r.end.line,c=r.start.column,u=r.end.column,t+=" - "+s+":"+c);for(var l=Error.prototype.constructor.call(this,t),f=0;f<i.length;f++)this[i[f]]=l[i[f]];Error.captureStackTrace&&Error.captureStackTrace(this,o);try{r&&(this.lineNumber=s,this.endLineNumber=a,n?(Object.defineProperty(this,"column",{value:c,enumerable:!0}),Object.defineProperty(this,"endColumn",{value:u,enumerable:!0})):(this.column=c,this.endColumn=u))}catch(t){}}o.prototype=new Error,e.default=o,t.exports=e.default},function(t,e,r){t.exports={default:r(8),__esModule:!0}},function(t,e,r){var n=r(9);t.exports=function(t,e,r){return n.setDesc(t,e,r)}},function(t,e){var r=Object;t.exports={create:r.create,getProto:r.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:r.getOwnPropertyDescriptor,setDesc:r.defineProperty,setDescs:r.defineProperties,getKeys:r.keys,getNames:r.getOwnPropertyNames,getSymbols:r.getOwnPropertySymbols,each:[].forEach}},function(t,e,r){"use strict";var n=r(1).default;e.__esModule=!0,e.registerDefaultHelpers=function(t){i.default(t),o.default(t),s.default(t),a.default(t),c.default(t),u.default(t),l.default(t)},e.moveHelperToHooks=function(t,e,r){t.helpers[e]&&(t.hooks[e]=t.helpers[e],r||delete t.helpers[e])};var i=n(r(11)),o=n(r(12)),s=n(r(65)),a=n(r(66)),c=n(r(67)),u=n(r(68)),l=n(r(69))},function(t,e,r){"use strict";
vendor: 12,495 bytes, line 25976
25976e.__esModule=!0;var n=r(5);e.default=function(t){t.registerHelper("blockHelperMissing",(function(e,r){var i=r.inverse,o=r.fn;if(!0===e)return o(this);if(!1===e||null==e)return i(this);if(n.isArray(e))return e.length>0?(r.ids&&(r.ids=[r.name]),t.helpers.each(e,r)):i(this);if(r.data&&r.ids){var s=n.createFrame(r.data);s.contextPath=n.appendContextPath(r.data.contextPath,r.name),r={data:s}}return o(e,r)}))},t.exports=e.default},function(t,e,r){"use strict";var n=r(13).default,i=r(43).default,o=r(55).default,s=r(60).default,a=r(1).default;e.__esModule=!0;var c=r(5),u=a(r(6));e.default=function(t){t.registerHelper("each",(function(t,e){if(!e)throw new u.default("Must pass iterator to #each");var r,a=e.fn,l=e.inverse,f=0,h="",p=void 0,d=void 0;function v(e,r,n){p&&(p.key=e,p.index=r,p.first=0===r,p.last=!!n,d&&(p.contextPath=d+e)),h+=a(t[e],{data:p,blockParams:c.blockParams([t[e],e],[d+e,null])})}if(e.data&&e.ids&&(d=c.appendContextPath(e.data.contextPath,e.ids[0])+"."),c.isFunction(t)&&(t=t.call(this)),e.data&&(p=c.createFrame(e.data)),t&&"object"==typeof t)if(c.isArray(t))for(var g=t.length;f<g;f++)f in t&&v(f,f,f===t.length-1);else if("function"==typeof n&&t[i]){for(var m=[],y=o(t),b=y.next();!b.done;b=y.next())m.push(b.value);for(g=(t=m).length;f<g;f++)v(f,f,f===t.length-1)}else r=void 0,s(t).forEach((function(t){void 0!==r&&v(r,f-1),r=t,f++})),void 0!==r&&v(r,f-1,!0);return 0===f&&(h=l(this)),h}))},t.exports=e.default},function(t,e,r){t.exports={default:r(14),__esModule:!0}},function(t,e,r){r(15),r(42),t.exports=r(21).Symbol},function(t,e,r){"use strict";var n=r(9),i=r(16),o=r(17),s=r(18),a=r(20),c=r(24),u=r(19),l=r(27),f=r(28),h=r(30),p=r(29),d=r(31),v=r(36),g=r(37),m=r(38),y=r(39),b=r(32),w=r(26),x=n.getDesc,S=n.setDesc,A=n.create,O=v.get,E=i.Symbol,k=i.JSON,T=k&&k.stringify,_=!1,C=p("_hidden"),P=n.isEnum,I=l("symbol-registry"),j=l("symbols"),M="function"==typeof E,L=Object.prototype,N=s&&u((function(){return 7!=A(S({},"a",{get:function(){return S(this,"a",{value:7}).a}})).a}))?function(t,e,r){var n=x(L,e);n&&delete L[e],S(t,e,r),n&&t!==L&&S(L,e,n)}:S,B=function(t){var e=j[t]=A(E.prototype);return e._k=t,s&&_&&N(L,t,{configurable:!0,set:function(e){o(this,C)&&o(this[C],t)&&(this[C][t]=!1),N(this,t,w(1,e))}}),e},R=function(t){return"symbol"==typeof t},D=function(t,e,r){return r&&o(j,e)?(r.enumerable?(o(t,C)&&t[C][e]&&(t[C][e]=!1),r=A(r,{enumerable:w(0,!1)})):(o(t,C)||S(t,C,w(1,{})),t[C][e]=!0),N(t,e,r)):S(t,e,r)},F=function(t,e){y(t);for(var r,n=g(e=b(e)),i=0,o=n.length;o>i;)D(t,r=n[i++],e[r]);return t},$=function(t,e){return void 0===e?A(t):F(A(t),e)},H=function(t){var e=P.call(this,t);return!(e||!o(this,t)||!o(j,t)||o(this,C)&&this[C][t])||e},z=function(t,e){var r=x(t=b(t),e);return!r||!o(j,e)||o(t,C)&&t[C][e]||(r.enumerable=!0),r},V=function(t){for(var e,r=O(b(t)),n=[],i=0;r.length>i;)o(j,e=r[i++])||e==C||n.push(e);return n},U=function(t){for(var e,r=O(b(t)),n=[],i=0;r.length>i;)o(j,e=r[i++])&&n.push(j[e]);return n},W=u((function(){var t=E();return"[null]"!=T([t])||"{}"!=T({a:t})||"{}"!=T(Object(t))}));M||(E=function(){if(R(this))throw TypeError("Symbol is not a constructor");return B(h(arguments.length>0?arguments[0]:void 0))},c(E.prototype,"toString",(function(){return this._k})),R=function(t){return t instanceof E},n.create=$,n.isEnum=H,n.getDesc=z,n.setDesc=D,n.setDescs=F,n.getNames=v.get=V,n.getSymbols=U,s&&!r(41)&&c(L,"propertyIsEnumerable",H,!0));var K={for:function(t){return o(I,t+="")?I[t]:I[t]=E(t)},keyFor:function(t){return d(I,t)},useSetter:function(){_=!0},useSimple:function(){_=!1}};n.each.call("hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),(function(t){var e=p(t);K[t]=M?e:B(e)})),_=!0,a(a.G+a.W,{Symbol:E}),a(a.S,"Symbol",K),a(a.S+a.F*!M,"Object",{create:$,defineProperty:D,defineProperties:F,getOwnPropertyDescriptor:z,getOwnPropertyNames:V,getOwnPropertySymbols:U}),k&&a(a.S+a.F*(!M||W),"JSON",{stringify:function(t){if(void 0!==t&&!R(t)){for(var e,r,n=[t],i=1,o=arguments;o.length>i;)n.push(o[i++]);return"function"==typeof(e=n[1])&&(r=e),!r&&m(e)||(e=function(t,e){if(r&&(e=r.call(this,t,e)),!R(e))return e}),n[1]=e,T.apply(k,n)}}}),f(E,"Symbol"),f(Math,"Math",!0),f(i.JSON,"JSON",!0)},function(t,e){var r=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},function(t,e){var r={}.hasOwnProperty;t.exports=function(t,e){return r.call(t,e)}},function(t,e,r){t.exports=!r(19)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,r){var n=r(16),i=r(21),o=r(22),s="prototype",a=function(t,e,r){var c,u,l,f=t&a.F,h=t&a.G,p=t&a.S,d=t&a.P,v=t&a.B,g=t&a.W,m=h?i:i[e]||(i[e]={}),y=h?n:p?n[e]:(n[e]||{})[s];for(c in h&&(r=e),r)(u=!f&&y&&c in y)&&c in m||(l=u?y[c]:r[c],m[c]=h&&"function"!=typeof y[c]?r[c]:v&&u?o(l,n):g&&y[c]==l?function(t){var e=function(e){return this instanceof t?new t(e):t(e)};return e[s]=t[s],e}(l):d&&"function"==typeof l?o(Function.call,l):l,d&&((m[s]||(m[s]={}))[c]=l))};a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,t.exports=a},function(t,e){var r=t.exports={version:"1.2.6"};"number"==typeof __e&&(__e=r)},function(t,e,r){var n=r(23);t.exports=function(t,e,r){if(n(t),void 0===e)return t;switch(r){case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,i){return t.call(e,r,n,i)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,r){t.exports=r(25)},function(t,e,r){var n=r(9),i=r(26);t.exports=r(18)?function(t,e,r){return n.setDesc(t,e,i(1,r))}:function(t,e,r){return t[e]=r,t}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,r){var n=r(16),i="__core-js_shared__",o=n[i]||(n[i]={});t.exports=function(t){return o[t]||(o[t]={})}},function(t,e,r){var n=r(9).setDesc,i=r(17),o=r(29)("toStringTag");t.exports=function(t,e,r){t&&!i(t=r?t:t.prototype,o)&&n(t,o,{configurable:!0,value:e})}},function(t,e,r){var n=r(27)("wks"),i=r(30),o=r(16).Symbol;t.exports=function(t){return n[t]||(n[t]=o&&o[t]||(o||i)("Symbol."+t))}},function(t,e){var r=0,n=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++r+n).toString(36))}},function(t,e,r){var n=r(9),i=r(32);t.exports=function(t,e){for(var r,o=i(t),s=n.getKeys(o),a=s.length,c=0;a>c;)if(o[r=s[c++]]===e)return r}},function(t,e,r){var n=r(33),i=r(35);t.exports=function(t){return n(i(t))}},function(t,e,r){var n=r(34);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==n(t)?t.split(""):Object(t)}},function(t,e){var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,r){var n=r(32),i=r(9).getNames,o={}.toString,s="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.get=function(t){return s&&"[object Window]"==o.call(t)?function(t){try{return i(t)}catch(t){return s.slice()}}(t):i(n(t))}},function(t,e,r){var n=r(9);t.exports=function(t){var e=n.getKeys(t),r=n.getSymbols;if(r)for(var i,o=r(t),s=n.isEnum,a=0;o.length>a;)s.call(t,i=o[a++])&&e.push(i);return e}},function(t,e,r){var n=r(34);t.exports=Array.isArray||function(t){return"Array"==n(t)}},function(t,e,r){var n=r(40);t.exports=function(t){if(!n(t))throw TypeError(t+" is not an object!");return t}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e){t.exports=!0},function(t,e){},function(t,e,r){t.exports={default:r(44),__esModule:!0}},function(t,e,r){r(45),r(51),t.exports=r(29)("iterator")},function(t,e,r){"use strict";var n=r(46)(!0);r(48)(String,"String",(function(t){this._t=String(t),this._i=0}),(function(){var t,e=this._t,r=this._i;return r>=e.length?{value:void 0,done:!0}:(t=n(e,r),this._i+=t.length,{value:t,done:!1})}))},function(t,e,r){var n=r(47),i=r(35);t.exports=function(t){return function(e,r){var o,s,a=String(i(e)),c=n(r),u=a.length;return c<0||c>=u?t?"":void 0:(o=a.charCodeAt(c))<55296||o>56319||c+1===u||(s=a.charCodeAt(c+1))<56320||s>57343?t?a.charAt(c):o:t?a.slice(c,c+2):s-56320+(o-55296<<10)+65536}}},function(t,e){var r=Math.ceil,n=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?n:r)(t)}},function(t,e,r){"use strict";var n=r(41),i=r(20),o=r(24),s=r(25),a=r(17),c=r(49),u=r(50),l=r(28),f=r(9).getProto,h=r(29)("iterator"),p=!([].keys&&"next"in[].keys()),d="@@iterator",v="keys",g="values",m=function(){return this};t.exports=function(t,e,r,y,b,w,x){u(r,e,y);var S,A,O=function(t){if(!p&&t in _)return _[t];switch(t){case v:case g:return function(){return new r(this,t)}}return function(){return new r(this,t)}},E=e+" Iterator",k=b==g,T=!1,_=t.prototype,C=_[h]||_[d]||b&&_[b],P=C||O(b);if(C){var I=f(P.call(new t));l(I,E,!0),!n&&a(_,d)&&s(I,h,m),k&&C.name!==g&&(T=!0,P=function(){return C.call(this)})}if(n&&!x||!p&&!T&&_[h]||s(_,h,P),c[e]=P,c[E]=m,b)if(S={values:k?P:O(g),keys:w?P:O(v),entries:k?O("entries"):P},x)for(A in S)A in _||o(_,A,S[A]);else i(i.P+i.F*(p||T),e,S);return S}},function(t,e){t.exports={}},function(t,e,r){"use strict";var n=r(9),i=r(26),o=r(28),s={};r(25)(s,r(29)("iterator"),(function(){return this})),t.exports=function(t,e,r){t.prototype=n.create(s,{next:i(1,r)}),o(t,e+" Iterator")}},function(t,e,r){r(52);var n=r(49);n.NodeList=n.HTMLCollection=n.Array},function(t,e,r){"use strict";var n=r(53),i=r(54),o=r(49),s=r(32);t.exports=r(48)(Array,"Array",(function(t,e){this._t=s(t),this._i=0,this._k=e}),(function(){var t=this._t,e=this._k,r=this._i++;return!t||r>=t.length?(this._t=void 0,i(1)):i(0,"keys"==e?r:"values"==e?t[r]:[r,t[r]])}),"values"),o.Arguments=o.Array,n("keys"),n("values"),n("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,r){t.exports={default:r(56),__esModule:!0}},function(t,e,r){r(51),r(45),t.exports=r(57)},function(t,e,r){var n=r(39),i=r(58);t.exports=r(21).getIterator=function(t){var e=i(t);if("function"!=typeof e)throw TypeError(t+" is not iterable!");return n(e.call(t))}},function(t,e,r){var n=r(59),i=r(29)("iterator"),o=r(49);t.exports=r(21).getIteratorMethod=function(t){if(null!=t)return t[i]||t["@@iterator"]||o[n(t)]}},function(t,e,r){var n=r(34),i=r(29)("toStringTag"),o="Arguments"==n(function(){return arguments}());t.exports=function(t){var e,r,s;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=(e=Object(t))[i])?r:o?n(e):"Object"==(s=n(e))&&"function"==typeof e.callee?"Arguments":s}},function(t,e,r){t.exports={default:r(61),__esModule:!0}},function(t,e,r){r(62),t.exports=r(21).Object.keys},function(t,e,r){var n=r(63);r(64)("keys",(function(t){return function(e){return t(n(e))}}))},function(t,e,r){var n=r(35);t.exports=function(t){return Object(n(t))}},function(t,e,r){var n=r(20),i=r(21),o=r(19);t.exports=function(t,e){var r=(i.Object||{})[t]||Object[t],s={};s[t]=e(r),n(n.S+n.F*o((function(){r(1)})),"Object",s)}},function(t,e,r){"use strict";var n=r(1).default;e.__esModule=!0;var i=n(r(6));e.default=function(t){t.registerHelper("helperMissing",(function(){if(1!==arguments.length)throw new i.default('Missing helper: "'+arguments[arguments.length-1].name+'"')}))},t.exports=e.default},function(t,e,r){"use strict";var n=r(1).default;e.__esModule=!0;var i=r(5),o=n(r(6));e.default=function(t){t.registerHelper("if",(function(t,e){if(2!=arguments.length)throw new o.default("#if requires exactly one argument");return i.isFunction(t)&&(t=t.call(this)),!e.hash.includeZero&&!t||i.isEmpty(t)?e.inverse(this):e.fn(this)})),t.registerHelper("unless",(function(e,r){if(2!=arguments.length)throw new o.default("#unless requires exactly one argument");return t.helpers.if.call(this,e,{fn:r.inverse,inverse:r.fn,hash:r.hash})}))},t.exports=e.default},function(t,e){"use strict";e.__esModule=!0,e.default=function(t){t.registerHelper("log",(function(){for(var e=[void 0],r=arguments[arguments.length-1],n=0;n<arguments.length-1;n++)e.push(arguments[n]);var i=1;null!=r.hash.level?i=r.hash.level:r.data&&null!=r.data.level&&(i=r.data.level),e[0]=i,t.log.apply(t,e)}))},t.exports=e.default},function(t,e){"use strict";
vendor: 8,158 bytes, line 25976
25976e.__esModule=!0,e.default=function(t){t.registerHelper("lookup",(function(t,e,r){return t?r.lookupProperty(t,e):t}))},t.exports=e.default},function(t,e,r){"use strict";var n=r(1).default;e.__esModule=!0;var i=r(5),o=n(r(6));e.default=function(t){t.registerHelper("with",(function(t,e){if(2!=arguments.length)throw new o.default("#with requires exactly one argument");i.isFunction(t)&&(t=t.call(this));var r=e.fn;if(i.isEmpty(t))return e.inverse(this);var n=e.data;return e.data&&e.ids&&((n=i.createFrame(e.data)).contextPath=i.appendContextPath(e.data.contextPath,e.ids[0])),r(t,{data:n,blockParams:i.blockParams([t],[n&&n.contextPath])})}))},t.exports=e.default},function(t,e,r){"use strict";var n=r(1).default;e.__esModule=!0,e.registerDefaultDecorators=function(t){i.default(t)};var i=n(r(71))},function(t,e,r){"use strict";e.__esModule=!0;var n=r(5);e.default=function(t){t.registerDecorator("inline",(function(t,e,r,i){var o=t;return e.partials||(e.partials={},o=function(i,o){var s=r.partials;r.partials=n.extend({},s,e.partials);var a=t(i,o);return r.partials=s,a}),e.partials[i.args[0]]=i.fn,o}))},t.exports=e.default},function(t,e,r){"use strict";e.__esModule=!0;var n=r(5),i={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(t){if("string"==typeof t){var e=n.indexOf(i.methodMap,t.toLowerCase());t=e>=0?e:parseInt(t,10)}return t},log:function(t){if(t=i.lookupLevel(t),"undefined"!=typeof console&&i.lookupLevel(i.level)<=t){var e=i.methodMap[t];console[e]||(e="log");for(var r=arguments.length,n=Array(r>1?r-1:0),o=1;o<r;o++)n[o-1]=arguments[o];console[e].apply(console,n)}}};e.default=i,t.exports=e.default},function(t,e,r){"use strict";var n=r(74).default,i=r(60).default,o=r(1).default;e.__esModule=!0,e.createProtoAccessControl=function(t){var e=n(null);e.constructor=!1,e.__defineGetter__=!1,e.__defineSetter__=!1,e.__lookupGetter__=!1;var r=n(null);return r.__proto__=!1,{properties:{whitelist:s.createNewLookupObject(r,t.allowedProtoProperties),defaultValue:t.allowProtoPropertiesByDefault},methods:{whitelist:s.createNewLookupObject(e,t.allowedProtoMethods),defaultValue:t.allowProtoMethodsByDefault}}},e.resultIsAllowed=function(t,e,r){return u("function"==typeof t?e.methods:e.properties,r)},e.resetLoggedProperties=function(){i(c).forEach((function(t){delete c[t]}))};var s=r(76),a=o(r(72)),c=n(null);function u(t,e){return void 0!==t.whitelist[e]?!0===t.whitelist[e]:void 0!==t.defaultValue?t.defaultValue:(function(t){!0!==c[t]&&(c[t]=!0,a.default.log("error",'Handlebars: Access has been denied to resolve the property "'+t+'" because it is not an "own property" of its parent.\nYou can add a runtime option to disable the check or this warning:\nSee https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details'))}(e),!1)}},function(t,e,r){t.exports={default:r(75),__esModule:!0}},function(t,e,r){var n=r(9);t.exports=function(t,e){return n.create(t,e)}},function(t,e,r){"use strict";var n=r(74).default;e.__esModule=!0,e.createNewLookupObject=function(){for(var t=arguments.length,e=Array(t),r=0;r<t;r++)e[r]=arguments[r];return i.extend.apply(void 0,[n(null)].concat(e))};var i=r(5)},function(t,e){"use strict";function r(t){this.string=t}e.__esModule=!0,r.prototype.toString=r.prototype.toHTML=function(){return""+this.string},e.default=r,t.exports=e.default},function(t,e,r){"use strict";var n=r(79).default,i=r(60).default,o=r(3).default,s=r(1).default;e.__esModule=!0,e.checkRevision=function(t){var e=t&&t[0]||1,r=u.COMPILER_REVISION;if(!(e>=u.LAST_COMPATIBLE_COMPILER_REVISION&&e<=u.COMPILER_REVISION)){if(e<u.LAST_COMPATIBLE_COMPILER_REVISION){var n=u.REVISION_CHANGES[r],i=u.REVISION_CHANGES[e];throw new c.default("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+n+") or downgrade your runtime to an older version ("+i+").")}throw new c.default("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+t[1]+").")}},e.template=function(t,e){if(!e)throw new c.default("No environment passed to template");if(!t||!t.main)throw new c.default("Unknown template object: "+typeof t);t.main.decorator=t.main_d,e.VM.checkRevision(t.compiler);var r=t.compiler&&7===t.compiler[0],o={strict:function(t,e,r){if(!t||!(e in t))throw new c.default('"'+e+'" not defined in '+t,{loc:r});return o.lookupProperty(t,e)},lookupProperty:function(t,e){var r=t[e];return null==r||Object.prototype.hasOwnProperty.call(t,e)||h.resultIsAllowed(r,o.protoAccessControl,e)?r:void 0},lookup:function(t,e){for(var r=t.length,n=0;n<r;n++)if(null!=(t[n]&&o.lookupProperty(t[n],e)))return t[n][e]},lambda:function(t,e){return"function"==typeof t?t.call(e):t},escapeExpression:a.escapeExpression,invokePartial:function(r,n,i){i.hash&&(n=a.extend({},n,i.hash),i.ids&&(i.ids[0]=!0)),r=e.VM.resolvePartial.call(this,r,n,i);var o=a.extend({},i,{hooks:this.hooks,protoAccessControl:this.protoAccessControl}),s=e.VM.invokePartial.call(this,r,n,o);if(null==s&&e.compile&&(i.partials[i.name]=e.compile(r,t.compilerOptions,e),s=i.partials[i.name](n,o)),null!=s){if(i.indent){for(var u=s.split("\n"),l=0,f=u.length;l<f&&(u[l]||l+1!==f);l++)u[l]=i.indent+u[l];s=u.join("\n")}return s}throw new c.default("The partial "+i.name+" could not be compiled when running in runtime-only mode")},fn:function(e){var r=t[e];return r.decorator=t[e+"_d"],r},programs:[],program:function(t,e,r,n,i){var o=this.programs[t],s=this.fn(t);return e||i||n||r?o=p(this,t,s,e,r,n,i):o||(o=this.programs[t]=p(this,t,s)),o},data:function(t,e){for(;t&&e--;)t=t._parent;return t},mergeIfNeeded:function(t,e){var r=t||e;return t&&e&&t!==e&&(r=a.extend({},e,t)),r},nullContext:n({}),noop:e.VM.noop,compilerInfo:t.compiler};function s(e){var r=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n=r.data;s._setup(r),!r.partial&&t.useData&&(n=function(t,e){return e&&"root"in e||((e=e?u.createFrame(e):{}).root=t),e}(e,n));var i=void 0,a=t.useBlockParams?[]:void 0;function c(e){return""+t.main(o,e,o.helpers,o.partials,n,a,i)}return t.useDepths&&(i=r.depths?e!=r.depths[0]?[e].concat(r.depths):r.depths:[e]),(c=v(t.main,c,o,r.depths||[],n,a))(e,r)}return s.isTop=!0,s._setup=function(n){if(n.partial)o.protoAccessControl=n.protoAccessControl,o.helpers=n.helpers,o.partials=n.partials,o.decorators=n.decorators,o.hooks=n.hooks;else{var s=a.extend({},e.helpers,n.helpers);!function(t,e){i(t).forEach((function(r){var n=t[r];t[r]=function(t,e){var r=e.lookupProperty;return f.wrapHelper(t,(function(t){return a.extend({lookupProperty:r},t)}))}(n,e)}))}(s,o),o.helpers=s,t.usePartial&&(o.partials=o.mergeIfNeeded(n.partials,e.partials)),(t.usePartial||t.useDecorators)&&(o.decorators=a.extend({},e.decorators,n.decorators)),o.hooks={},o.protoAccessControl=h.createProtoAccessControl(n);var c=n.allowCallsToHelperMissing||r;l.moveHelperToHooks(o,"helperMissing",c),l.moveHelperToHooks(o,"blockHelperMissing",c)}},s._child=function(e,r,n,i){if(t.useBlockParams&&!n)throw new c.default("must pass block params");if(t.useDepths&&!i)throw new c.default("must pass parent depths");return p(o,e,t[e],r,0,n,i)},s},e.wrapProgram=p,e.resolvePartial=function(t,e,r){return t?t.call||r.name||(r.name=t,t=r.partials[t]):t="@partial-block"===r.name?r.data["partial-block"]:r.partials[r.name],t},e.invokePartial=function(t,e,r){var n=r.data&&r.data["partial-block"];r.partial=!0,r.ids&&(r.data.contextPath=r.ids[0]||r.data.contextPath);var i=void 0;if(r.fn&&r.fn!==d&&function(){r.data=u.createFrame(r.data);var t=r.fn;i=r.data["partial-block"]=function(e){var r=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return r.data=u.createFrame(r.data),r.data["partial-block"]=n,t(e,r)},t.partials&&(r.partials=a.extend({},r.partials,t.partials))}(),void 0===t&&i&&(t=i),void 0===t)throw new c.default("The partial "+r.name+" could not be found");if(t instanceof Function)return t(e,r)},e.noop=d;var a=o(r(5)),c=s(r(6)),u=r(4),l=r(10),f=r(82),h=r(73);function p(t,e,r,n,i,o,s){function a(e){var i=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],a=s;
25976return!s||e==s[0]||e===t.nullContext&&null===s[0]||(a=[e].concat(s)),r(t,e,t.helpers,t.partials,i.data||n,o&&[i.blockParams].concat(o),a)}return(a=v(r,a,t,s,n,o)).program=e,a.depth=s?s.length:0,a.blockParams=i||0,a}function d(){return""}function v(t,e,r,n,i,o){if(t.decorator){var s={};e=t.decorator(e,s,r,n&&n[0],i,o,n),a.extend(e,s)}return e}},function(t,e,r){t.exports={default:r(80),__esModule:!0}},function(t,e,r){r(81),t.exports=r(21).Object.seal},function(t,e,r){var n=r(40);r(64)("seal",(function(t){return function(e){return t&&n(e)?t(e):e}}))},function(t,e){"use strict";e.__esModule=!0,e.wrapHelper=function(t,e){return"function"!=typeof t?t:function(){return arguments[arguments.length-1]=e(arguments[arguments.length-1]),t.apply(this,arguments)}}},function(t,e){"use strict";e.__esModule=!0,e.default=function(t){"object"!=typeof globalThis&&(Object.prototype.__defineGetter__("__magic__",(function(){return this})),__magic__.globalThis=__magic__,delete Object.prototype.__magic__);var e=globalThis.Handlebars;t.noConflict=function(){return globalThis.Handlebars===t&&(globalThis.Handlebars=e),t}},t.exports=e.default},function(t,e){"use strict";e.__esModule=!0;var r={helpers:{helperExpression:function(t){return"SubExpression"===t.type||("MustacheStatement"===t.type||"BlockStatement"===t.type)&&!!(t.params&&t.params.length||t.hash)},scopedId:function(t){return/^\.|this\b/.test(t.original)},simpleId:function(t){return 1===t.parts.length&&!r.helpers.scopedId(t)&&!t.depth}}};e.default=r,t.exports=e.default},function(t,e,r){"use strict";var n=r(1).default,i=r(3).default;e.__esModule=!0,e.parseWithoutProcessing=l,e.parse=function(t,e){var r=l(t,e);return new s.default(e).accept(r)};var o=n(r(86)),s=n(r(87)),a=i(r(89)),c=r(5);e.parser=o.default;var u={};function l(t,e){return"Program"===t.type?t:(o.default.yy=u,u.locInfo=function(t){return new u.SourceLocation(e&&e.srcName,t)},o.default.parse(t))}c.extend(u,a)},function(t,e){"use strict";e.__esModule=!0;var r=function(){var t={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,partialBlock:12,content:13,COMMENT:14,CONTENT:15,openRawBlock:16,rawBlock_repetition0:17,END_RAW_BLOCK:18,OPEN_RAW_BLOCK:19,helperName:20,openRawBlock_repetition0:21,openRawBlock_option0:22,CLOSE_RAW_BLOCK:23,openBlock:24,block_option0:25,closeBlock:26,openInverse:27,block_option1:28,OPEN_BLOCK:29,openBlock_repetition0:30,openBlock_option0:31,openBlock_option1:32,CLOSE:33,OPEN_INVERSE:34,openInverse_repetition0:35,openInverse_option0:36,openInverse_option1:37,openInverseChain:38,OPEN_INVERSE_CHAIN:39,openInverseChain_repetition0:40,openInverseChain_option0:41,openInverseChain_option1:42,inverseAndProgram:43,INVERSE:44,inverseChain:45,inverseChain_option0:46,OPEN_ENDBLOCK:47,OPEN:48,mustache_repetition0:49,mustache_option0:50,OPEN_UNESCAPED:51,mustache_repetition1:52,mustache_option1:53,CLOSE_UNESCAPED:54,OPEN_PARTIAL:55,partialName:56,partial_repetition0:57,partial_option0:58,openPartialBlock:59,OPEN_PARTIAL_BLOCK:60,openPartialBlock_repetition0:61,openPartialBlock_option0:62,param:63,sexpr:64,OPEN_SEXPR:65,sexpr_repetition0:66,sexpr_option0:67,CLOSE_SEXPR:68,hash:69,hash_repetition_plus0:70,hashSegment:71,ID:72,
vendor: 4,445 bytes, line 25976
25976EQUALS:73,blockParams:74,OPEN_BLOCK_PARAMS:75,blockParams_repetition_plus0:76,CLOSE_BLOCK_PARAMS:77,path:78,dataName:79,STRING:80,NUMBER:81,BOOLEAN:82,UNDEFINED:83,NULL:84,DATA:85,pathSegments:86,SEP:87,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",14:"COMMENT",15:"CONTENT",18:"END_RAW_BLOCK",19:"OPEN_RAW_BLOCK",23:"CLOSE_RAW_BLOCK",29:"OPEN_BLOCK",33:"CLOSE",34:"OPEN_INVERSE",39:"OPEN_INVERSE_CHAIN",44:"INVERSE",47:"OPEN_ENDBLOCK",48:"OPEN",51:"OPEN_UNESCAPED",54:"CLOSE_UNESCAPED",55:"OPEN_PARTIAL",60:"OPEN_PARTIAL_BLOCK",65:"OPEN_SEXPR",68:"CLOSE_SEXPR",72:"ID",73:"EQUALS",75:"OPEN_BLOCK_PARAMS",77:"CLOSE_BLOCK_PARAMS",80:"STRING",81:"NUMBER",82:"BOOLEAN",83:"UNDEFINED",84:"NULL",85:"DATA",87:"SEP"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[13,1],[10,3],[16,5],[9,4],[9,4],[24,6],[27,6],[38,6],[43,2],[45,3],[45,1],[26,3],[8,5],[8,5],[11,5],[12,3],[59,5],[63,1],[63,1],[64,5],[69,1],[71,3],[74,3],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[56,1],[56,1],[79,2],[78,1],[86,3],[86,1],[6,0],[6,2],[17,0],[17,2],[21,0],[21,2],[22,0],[22,1],[25,0],[25,1],[28,0],[28,1],[30,0],[30,2],[31,0],[31,1],[32,0],[32,1],[35,0],[35,2],[36,0],[36,1],[37,0],[37,1],[40,0],[40,2],[41,0],[41,1],[42,0],[42,1],[46,0],[46,1],[49,0],[49,2],[50,0],[50,1],[52,0],[52,2],[53,0],[53,1],[57,0],[57,2],[58,0],[58,1],[61,0],[61,2],[62,0],[62,1],[66,0],[66,2],[67,0],[67,1],[70,1],[70,2],[76,1],[76,2]],performAction:function(t,e,r,n,i,o,s){var a=o.length-1;switch(i){case 1:return o[a-1];case 2:this.$=n.prepareProgram(o[a]);break;case 3:case 4:case 5:case 6:case 7:case 8:case 20:case 27:case 28:case 33:case 34:case 40:case 41:this.$=o[a];break;case 9:this.$={type:"CommentStatement",value:n.stripComment(o[a]),strip:n.stripFlags(o[a],o[a]),loc:n.locInfo(this._$)};break;case 10:this.$={type:"ContentStatement",original:o[a],value:o[a],loc:n.locInfo(this._$)};break;case 11:this.$=n.prepareRawBlock(o[a-2],o[a-1],o[a],this._$);break;case 12:this.$={path:o[a-3],params:o[a-2],hash:o[a-1]};break;case 13:this.$=n.prepareBlock(o[a-3],o[a-2],o[a-1],o[a],!1,this._$);break;case 14:this.$=n.prepareBlock(o[a-3],o[a-2],o[a-1],o[a],!0,this._$);break;case 15:this.$={open:o[a-5],path:o[a-4],params:o[a-3],hash:o[a-2],blockParams:o[a-1],strip:n.stripFlags(o[a-5],o[a])};break;case 16:case 17:this.$={path:o[a-4],params:o[a-3],hash:o[a-2],blockParams:o[a-1],strip:n.stripFlags(o[a-5],o[a])};break;case 18:this.$={strip:n.stripFlags(o[a-1],o[a-1]),program:o[a]};break;case 19:var c=n.prepareBlock(o[a-2],o[a-1],o[a],o[a],!1,this._$),u=n.prepareProgram([c],o[a-1].loc);u.chained=!0,this.$={strip:o[a-2].strip,program:u,chain:!0};break;case 21:this.$={path:o[a-1],strip:n.stripFlags(o[a-2],o[a])};break;case 22:case 23:this.$=n.prepareMustache(o[a-3],o[a-2],o[a-1],o[a-4],n.stripFlags(o[a-4],o[a]),this._$);break;case 24:this.$={type:"PartialStatement",name:o[a-3],params:o[a-2],hash:o[a-1],indent:"",strip:n.stripFlags(o[a-4],o[a]),loc:n.locInfo(this._$)};break;case 25:this.$=n.preparePartialBlock(o[a-2],o[a-1],o[a],this._$);break;case 26:this.$={path:o[a-3],params:o[a-2],hash:o[a-1],strip:n.stripFlags(o[a-4],o[a])};break;case 29:this.$={type:"SubExpression",path:o[a-3],params:o[a-2],hash:o[a-1],loc:n.locInfo(this._$)};break;case 30:this.$={type:"Hash",pairs:o[a],loc:n.locInfo(this._$)};break;case 31:this.$={type:"HashPair",key:n.id(o[a-2]),value:o[a],loc:n.locInfo(this._$)};break;case 32:this.$=n.id(o[a-1]);break;case 35:this.$={type:"StringLiteral",value:o[a],original:o[a],loc:n.locInfo(this._$)};break;case 36:this.$={type:"NumberLiteral",value:Number(o[a]),original:Number(o[a]),loc:n.locInfo(this._$)};break;case 37:this.$={type:"BooleanLiteral",value:"true"===o[a],original:"true"===o[a],loc:n.locInfo(this._$)};break;case 38:this.$={type:"UndefinedLiteral",original:void 0,value:void 0,loc:n.locInfo(this._$)};break;case 39:this.$={type:"NullLiteral",original:null,value:null,loc:n.locInfo(this._$)};break;case 42:this.$=n.preparePath(!0,o[a],this._$);break;case 43:this.$=n.preparePath(!1,o[a],this._$);break;case 44:o[a-2].push({part:n.id(o[a]),original:o[a],separator:o[a-1]}),this.$=o[a-2];break;case 45:this.$=[{part:n.id(o[a]),original:o[a]}];break;case 46:case 48:case 50:case 58:case 64:case 70:case 78:case 82:case 86:case 90:case 94:this.$=[];break;case 47:case 49:case 51:case 59:case 65:case 71:case 79:case 83:case 87:case 91:case 95:case 99:case 101:o[a-1].push(o[a]);break;case 98:case 100:this.$=[o[a]]
vendor: 11,540 bytes, line 25976
25976}},table:[{3:1,4:2,5:[2,46],6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:10,13:11,14:[1,12],15:[1,20],16:17,19:[1,23],24:15,27:16,29:[1,21],34:[1,22],39:[2,2],44:[2,2],47:[2,2],48:[1,13],51:[1,14],55:[1,18],59:19,60:[1,24]},{1:[2,1]},{5:[2,47],14:[2,47],15:[2,47],19:[2,47],29:[2,47],34:[2,47],39:[2,47],44:[2,47],47:[2,47],48:[2,47],51:[2,47],55:[2,47],60:[2,47]},{5:[2,3],14:[2,3],15:[2,3],19:[2,3],29:[2,3],34:[2,3],39:[2,3],44:[2,3],47:[2,3],48:[2,3],51:[2,3],55:[2,3],60:[2,3]},{5:[2,4],14:[2,4],15:[2,4],19:[2,4],29:[2,4],34:[2,4],39:[2,4],44:[2,4],47:[2,4],48:[2,4],51:[2,4],55:[2,4],60:[2,4]},{5:[2,5],14:[2,5],15:[2,5],19:[2,5],29:[2,5],34:[2,5],39:[2,5],44:[2,5],47:[2,5],48:[2,5],51:[2,5],55:[2,5],60:[2,5]},{5:[2,6],14:[2,6],15:[2,6],19:[2,6],29:[2,6],34:[2,6],39:[2,6],44:[2,6],47:[2,6],48:[2,6],51:[2,6],55:[2,6],60:[2,6]},{5:[2,7],14:[2,7],15:[2,7],19:[2,7],29:[2,7],34:[2,7],39:[2,7],44:[2,7],47:[2,7],48:[2,7],51:[2,7],55:[2,7],60:[2,7]},{5:[2,8],14:[2,8],15:[2,8],19:[2,8],29:[2,8],34:[2,8],39:[2,8],44:[2,8],47:[2,8],48:[2,8],51:[2,8],55:[2,8],60:[2,8]},{5:[2,9],14:[2,9],15:[2,9],19:[2,9],29:[2,9],34:[2,9],39:[2,9],44:[2,9],47:[2,9],48:[2,9],51:[2,9],55:[2,9],60:[2,9]},{20:25,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:36,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:37,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{4:38,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{15:[2,48],17:39,18:[2,48]},{20:41,56:40,64:42,65:[1,43],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:44,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{5:[2,10],14:[2,10],15:[2,10],18:[2,10],19:[2,10],29:[2,10],34:[2,10],39:[2,10],44:[2,10],47:[2,10],48:[2,10],51:[2,10],55:[2,10],60:[2,10]},{20:45,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:46,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:47,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:41,56:48,64:42,65:[1,43],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[2,78],49:49,65:[2,78],72:[2,78],80:[2,78],81:[2,78],82:[2,78],83:[2,78],84:[2,78],85:[2,78]},{23:[2,33],33:[2,33],54:[2,33],65:[2,33],68:[2,33],72:[2,33],75:[2,33],80:[2,33],81:[2,33],82:[2,33],83:[2,33],84:[2,33],85:[2,33]},{23:[2,34],33:[2,34],54:[2,34],65:[2,34],68:[2,34],72:[2,34],75:[2,34],80:[2,34],81:[2,34],82:[2,34],83:[2,34],84:[2,34],85:[2,34]},{23:[2,35],33:[2,35],54:[2,35],65:[2,35],68:[2,35],72:[2,35],75:[2,35],80:[2,35],81:[2,35],82:[2,35],83:[2,35],84:[2,35],85:[2,35]},{23:[2,36],33:[2,36],54:[2,36],65:[2,36],68:[2,36],72:[2,36],75:[2,36],80:[2,36],81:[2,36],82:[2,36],83:[2,36],84:[2,36],85:[2,36]},{23:[2,37],33:[2,37],54:[2,37],65:[2,37],68:[2,37],72:[2,37],75:[2,37],80:[2,37],81:[2,37],82:[2,37],83:[2,37],84:[2,37],85:[2,37]},{23:[2,38],33:[2,38],54:[2,38],65:[2,38],68:[2,38],72:[2,38],75:[2,38],80:[2,38],81:[2,38],82:[2,38],83:[2,38],84:[2,38],85:[2,38]},{23:[2,39],33:[2,39],54:[2,39],65:[2,39],68:[2,39],72:[2,39],75:[2,39],80:[2,39],81:[2,39],82:[2,39],83:[2,39],84:[2,39],85:[2,39]},{23:[2,43],33:[2,43],54:[2,43],65:[2,43],68:[2,43],72:[2,43],75:[2,43],80:[2,43],81:[2,43],82:[2,43],83:[2,43],84:[2,43],85:[2,43],87:[1,50]},{72:[1,35],86:51},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{52:52,54:[2,82],65:[2,82],72:[2,82],80:[2,82],81:[2,82],82:[2,82],83:[2,82],84:[2,82],85:[2,82]},{25:53,38:55,39:[1,57],43:56,44:[1,58],45:54,47:[2,54]},{28:59,43:60,44:[1,58],47:[2,56]},{13:62,15:[1,20],18:[1,61]},{33:[2,86],57:63,65:[2,86],72:[2,86],80:[2,86],81:[2,86],82:[2,86],83:[2,86],84:[2,86],85:[2,86]},{33:[2,40],65:[2,40],72:[2,40],80:[2,40],81:[2,40],82:[2,40],83:[2,40],84:[2,40],85:[2,40]},{33:[2,41],65:[2,41],72:[2,41],80:[2,41],81:[2,41],82:[2,41],83:[2,41],84:[2,41],85:[2,41]},{20:64,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:65,47:[1,66]},{30:67,33:[2,58],65:[2,58],72:[2,58],75:[2,58],80:[2,58],81:[2,58],82:[2,58],83:[2,58],84:[2,58],85:[2,58]},{33:[2,64],35:68,65:[2,64],72:[2,64],75:[2,64],80:[2,64],81:[2,64],82:[2,64],83:[2,64],84:[2,64],85:[2,64]},{21:69,23:[2,50],65:[2,50],72:[2,50],80:[2,50],81:[2,50],82:[2,50],83:[2,50],84:[2,50],85:[2,50]},{33:[2,90],61:70,65:[2,90],72:[2,90],80:[2,90],81:[2,90],82:[2,90],83:[2,90],84:[2,90],85:[2,90]},{20:74,33:[2,80],50:71,63:72,64:75,65:[1,43],69:73,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{72:[1,79]},{23:[2,42],33:[2,42],54:[2,42],65:[2,42],68:[2,42],72:[2,42],75:[2,42],80:[2,42],81:[2,42],82:[2,42],83:[2,42],84:[2,42],85:[2,42],87:[1,50]},{20:74,53:80,54:[2,84],63:81,64:75,65:[1,43],69:82,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:83,47:[1,66]},{47:[2,55]},{4:84,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{47:[2,20]},{20:85,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:86,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{26:87,47:[1,66]},{47:[2,57]},{5:[2,11],14:[2,11],15:[2,11],19:[2,11],29:[2,11],34:[2,11],39:[2,11],44:[2,11],47:[2,11],48:[2,11],51:[2,11],55:[2,11],60:[2,11]},{15:[2,49],18:[2,49]},{20:74,33:[2,88],58:88,63:89,64:75,65:[1,43],69:90,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{65:[2,94],66:91,68:[2,94],72:[2,94],80:[2,94],81:[2,94],82:[2,94],83:[2,94],84:[2,94],85:[2,94]},{5:[2,25],14:[2,25],15:[2,25],19:[2,25],29:[2,25],34:[2,25],39:[2,25],44:[2,25],47:[2,25],48:[2,25],51:[2,25],55:[2,25],60:[2,25]},{20:92,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:74,31:93,33:[2,60],63:94,64:75,65:[1,43],69:95,70:76,71:77,72:[1,78],75:[2,60],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:74,33:[2,66],36:96,63:97,64:75,65:[1,43],69:98,70:76,71:77,72:[1,78],75:[2,66],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:74,22:99,23:[2,52],63:100,64:75,65:[1,43],69:101,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:74,33:[2,92],62:102,63:103,64:75,65:[1,43],69:104,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,105]},{33:[2,79],65:[2,79],72:[2,79],80:[2,79],81:[2,79],82:[2,79],83:[2,79],84:[2,79],85:[2,79]},{33:[2,81]},{23:[2,27],33:[2,27],54:[2,27],65:[2,27],68:[2,27],72:[2,27],75:[2,27],80:[2,27],81:[2,27],82:[2,27],83:[2,27],84:[2,27],85:[2,27]},{23:[2,28],33:[2,28],54:[2,28],65:[2,28],68:[2,28],72:[2,28],75:[2,28],80:[2,28],81:[2,28],82:[2,28],83:[2,28],84:[2,28],85:[2,28]},{23:[2,30],33:[2,30],54:[2,30],68:[2,30],71:106,72:[1,107],75:[2,30]},{23:[2,98],33:[2,98],54:[2,98],68:[2,98],72:[2,98],75:[2,98]},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],73:[1,108],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{23:[2,44],33:[2,44],54:[2,44],65:[2,44],68:[2,44],72:[2,44],75:[2,44],80:[2,44],81:[2,44],82:[2,44],83:[2,44],84:[2,44],85:[2,44],87:[2,44]},{54:[1,109]},{54:[2,83],65:[2,83],72:[2,83],80:[2,83],81:[2,83],82:[2,83],83:[2,83],84:[2,83],85:[2,83]},{54:[2,85]},{5:[2,13],14:[2,13],15:[2,13],19:[2,13],29:[2,13],34:[2,13],39:[2,13],44:[2,13],47:[2,13],48:[2,13],51:[2,13],55:[2,13],60:[2,13]},{38:55,39:[1,57],43:56,44:[1,58],45:111,46:110,47:[2,76]},{33:[2,70],40:112,65:[2,70],72:[2,70],75:[2,70],80:[2,70],81:[2,70],82:[2,70],83:[2,70],84:[2,70],85:[2,70]},{47:[2,18]},{5:[2,14],14:[2,14],15:[2,14],19:[2,14],29:[2,14],34:[2,14],39:[2,14],44:[2,14],47:[2,14],48:[2,14],51:[2,14],55:[2,14],60:[2,14]},{33:[1,113]},{33:[2,87],65:[2,87],72:[2,87],80:[2,87],81:[2,87],82:[2,87],83:[2,87],84:[2,87],85:[2,87]},{33:[2,89]},{20:74,63:115,64:75,65:[1,43],67:114,68:[2,96],69:116,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,117]},{32:118,33:[2,62],74:119,75:[1,120]},{33:[2,59],65:[2,59],72:[2,59],75:[2,59],80:[2,59],81:[2,59],82:[2,59],83:[2,59],84:[2,59],85:[2,59]},{33:[2,61],75:[2,61]},{33:[2,68],37:121,74:122,75:[1,120]},{33:[2,65],65:[2,65],72:[2,65],75:[2,65],80:[2,65],81:[2,65],82:[2,65],83:[2,65],84:[2,65],85:[2,65]},{33:[2,67],75:[2,67]},{23:[1,123]},{23:[2,51],65:[2,51],72:[2,51],80:[2,51],81:[2,51],82:[2,51],83:[2,51],84:[2,51],85:[2,51]},{23:[2,53]},{33:[1,124]},{33:[2,91],65:[2,91],72:[2,91],80:[2,91],81:[2,91],82:[2,91],83:[2,91],84:[2,91],85:[2,91]},{33:[2,93]},{5:[2,22],14:[2,22],15:[2,22],19:[2,22],29:[2,22],34:[2,22],39:[2,22],44:[2,22],47:[2,22],48:[2,22],51:[2,22],55:[2,22],60:[2,22]},{23:[2,99],33:[2,99],54:[2,99],68:[2,99],72:[2,99],75:[2,99]},{73:[1,108]},{20:74,63:125,64:75,65:[1,43],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,23],14:[2,23],15:[2,23],19:[2,23],29:[2,23],34:[2,23],39:[2,23],44:[2,23],47:[2,23],48:[2,23],51:[2,23],55:[2,23],60:[2,23]},{47:[2,19]},{47:[2,77]},{20:74,33:[2,72],41:126,63:127,64:75,65:[1,43],69:128,70:76,71:77,72:[1,78],75:[2,72],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,24],14:[2,24],15:[2,24],19:[2,24],29:[2,24],34:[2,24],39:[2,24],44:[2,24],47:[2,24],48:[2,24],51:[2,24],55:[2,24],60:[2,24]},{68:[1,129]},{65:[2,95],68:[2,95],72:[2,95],80:[2,95],81:[2,95],82:[2,95],83:[2,95],84:[2,95],85:[2,95]},{68:[2,97]},{5:[2,21],14:[2,21],15:[2,21],19:[2,21],29:[2,21],34:[2,21],39:[2,21],44:[2,21],47:[2,21],48:[2,21],51:[2,21],55:[2,21],60:[2,21]},{33:[1,130]},{33:[2,63]},{72:[1,132],76:131},{33:[1,133]},{33:[2,69]},{15:[2,12],18:[2,12]},{14:[2,26],15:[2,26],19:[2,26],29:[2,26],34:[2,26],47:[2,26],48:[2,26],51:[2,26],55:[2,26],60:[2,26]},{23:[2,31],33:[2,31],54:[2,31],68:[2,31],72:[2,31],75:[2,31]},{33:[2,74],42:134,74:135,75:[1,120]},{33:[2,71],65:[2,71],72:[2,71],75:[2,71],80:[2,71],81:[2,71],82:[2,71],83:[2,71],84:[2,71],85:[2,71]},{33:[2,73],75:[2,73]},{23:[2,29],33:[2,29],54:[2,29],65:[2,29],68:[2,29],72:[2,29],75:[2,29],80:[2,29],81:[2,29],82:[2,29],83:[2,29],84:[2,29],85:[2,29]},{14:[2,15],15:[2,15],19:[2,15],29:[2,15],34:[2,15],39:[2,15],44:[2,15],47:[2,15],48:[2,15],51:[2,15],55:[2,15],60:[2,15]},{72:[1,137],77:[1,136]},{72:[2,100],77:[2,100]},{14:[2,16],15:[2,16],19:[2,16],29:[2,16],34:[2,16],44:[2,16],47:[2,16],48:[2,16],51:[2,16],55:[2,16],60:[2,16]},{33:[1,138]},{33:[2,75]},{33:[2,32]},{72:[2,101],77:[2,101]},{14:[2,17],15:[2,17],19:[2,17],29:[2,17],34:[2,17],39:[2,17],44:[2,17],47:[2,17],48:[2,17],51:[2,17],55:[2,17],60:[2,17]}],defaultActions:{4:[2,1],54:[2,55],56:[2,20],60:[2,57],73:[2,81],82:[2,85],86:[2,18],90:[2,89],101:[2,53],104:[2,93],110:[2,19],111:[2,77],116:[2,97],119:[2,63],122:[2,69],135:[2,75],136:[2,32]},parseError:function(t,e){throw new Error(t)},parse:function(t){var e=this,r=[0],
vendor: 2,372 bytes, line 25976
25976n=[null],i=[],o=this.table,s="",a=0,c=0,u=0;this.lexer.setInput(t),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,void 0===this.lexer.yylloc&&(this.lexer.yylloc={});var l=this.lexer.yylloc;i.push(l);var f=this.lexer.options&&this.lexer.options.ranges;"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var h,p,d,v,g,m,y,b,w,x,S={};;){if(d=r[r.length-1],this.defaultActions[d]?v=this.defaultActions[d]:(null==h&&(x=void 0,"number"!=typeof(x=e.lexer.lex()||1)&&(x=e.symbols_[x]||x),h=x),v=o[d]&&o[d][h]),void 0===v||!v.length||!v[0]){var A="";if(!u){for(m in w=[],o[d])this.terminals_[m]&&m>2&&w.push("'"+this.terminals_[m]+"'");A=this.lexer.showPosition?"Parse error on line "+(a+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+w.join(", ")+", got '"+(this.terminals_[h]||h)+"'":"Parse error on line "+(a+1)+": Unexpected "+(1==h?"end of input":"'"+(this.terminals_[h]||h)+"'"),this.parseError(A,{text:this.lexer.match,token:this.terminals_[h]||h,line:this.lexer.yylineno,loc:l,expected:w})}}if(v[0]instanceof Array&&v.length>1)throw new Error("Parse Error: multiple actions possible at state: "+d+", token: "+h);switch(v[0]){case 1:r.push(h),n.push(this.lexer.yytext),i.push(this.lexer.yylloc),r.push(v[1]),h=null,p?(h=p,p=null):(c=this.lexer.yyleng,s=this.lexer.yytext,a=this.lexer.yylineno,l=this.lexer.yylloc,u>0&&u--);break;case 2:if(y=this.productions_[v[1]][1],S.$=n[n.length-y],S._$={first_line:i[i.length-(y||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(y||1)].first_column,last_column:i[i.length-1].last_column},f&&(S._$.range=[i[i.length-(y||1)].range[0],i[i.length-1].range[1]]),void 0!==(g=this.performAction.call(S,s,c,a,this.yy,v[1],n,i)))return g;y&&(r=r.slice(0,-1*y*2),n=n.slice(0,-1*y),i=i.slice(0,-1*y)),r.push(this.productions_[v[1]][0]),n.push(S.$),i.push(S._$),b=o[r[r.length-2]][r[r.length-1]],r.push(b);break;case 3:return!0}}return!0}},e=function(){var t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t){return this._input=t,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this}
vendor: 5,898 bytes, line 25976
25976,input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e-1),this.offset-=e;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===n.length?this.yylloc.first_column:0)+n[n.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this},more:function(){return this._more=!0,this},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},next:function(){if(this.done)return this.EOF;var t,e,r,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;s<o.length&&(!(r=this._input.match(this.rules[o[s]]))||e&&!(r[0].length>e[0].length)||(e=r,n=s,this.options.flex));s++);return e?((i=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],t=this.performAction.call(this,this.yy,this,o[n],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),t||void 0):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return void 0!==t?t:this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(t){this.begin(t)},options:{},performAction:function(t,e,r,n){function i(t,r){return e.yytext=e.yytext.substring(t,e.yyleng-r+t)}switch(r){case 0:if("\\\\"===e.yytext.slice(-2)?(i(0,1),this.begin("mu")):"\\"===e.yytext.slice(-1)?(i(0,1),this.begin("emu")):this.begin("mu"),e.yytext)return 15;break;case 1:case 5:return 15;case 2:return this.popState(),15;case 3:return this.begin("raw"),15;case 4:return this.popState(),"raw"===this.conditionStack[this.conditionStack.length-1]?15:(i(5,9),"END_RAW_BLOCK");case 6:case 22:return this.popState(),14;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:case 16:return this.popState(),44;case 17:return 34;case 18:return 39;case 19:return 51;case 20:case 23:return 48;case 21:this.unput(e.yytext),this.popState(),this.begin("com");break;case 24:return 73;case 25:case 26:case 41:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;case 30:return this.popState(),33;case 31:return e.yytext=i(1,2).replace(/\\"/g,'"'),80;case 32:return e.yytext=i(1,2).replace(/\\'/g,"'"),80;case 33:return 85;case 34:case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 42:return e.yytext=e.yytext.replace(/\\([\\\]])/g,"$1"),72;case 43:return"INVALID";case 44:return 5}},rules:[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]+?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],conditions:{mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}}};return t}();function r(){this.yy={}}return t.lexer=e,r.prototype=t,t.Parser=r,new r}();e.default=r,t.exports=e.default},function(t,e,r){"use strict";var n=r(1).default;
vendor: 10,348 bytes, line 25976
25976e.__esModule=!0;var i=n(r(88));function o(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.options=t}function s(t,e,r){void 0===e&&(e=t.length);var n=t[e-1],i=t[e-2];return n?"ContentStatement"===n.type?(i||!r?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(n.original):void 0:r}function a(t,e,r){void 0===e&&(e=-1);var n=t[e+1],i=t[e+2];return n?"ContentStatement"===n.type?(i||!r?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(n.original):void 0:r}function c(t,e,r){var n=t[null==e?0:e+1];if(n&&"ContentStatement"===n.type&&(r||!n.rightStripped)){var i=n.value;n.value=n.value.replace(r?/^\s+/:/^[ \t]*\r?\n?/,""),n.rightStripped=n.value!==i}}function u(t,e,r){var n=t[null==e?t.length-1:e-1];if(n&&"ContentStatement"===n.type&&(r||!n.leftStripped)){var i=n.value;return n.value=n.value.replace(r?/\s+$/:/[ \t]+$/,""),n.leftStripped=n.value!==i,n.leftStripped}}o.prototype=new i.default,o.prototype.Program=function(t){var e=!this.options.ignoreStandalone,r=!this.isRootSeen;this.isRootSeen=!0;for(var n=t.body,i=0,o=n.length;i<o;i++){var l=n[i],f=this.accept(l);if(f){var h=s(n,i,r),p=a(n,i,r),d=f.openStandalone&&h,v=f.closeStandalone&&p,g=f.inlineStandalone&&h&&p;f.close&&c(n,i,!0),f.open&&u(n,i,!0),e&&g&&(c(n,i),u(n,i)&&"PartialStatement"===l.type&&(l.indent=/([ \t]+$)/.exec(n[i-1].original)[1])),e&&d&&(c((l.program||l.inverse).body),u(n,i)),e&&v&&(c(n,i),u((l.inverse||l.program).body))}}return t},o.prototype.BlockStatement=o.prototype.DecoratorBlock=o.prototype.PartialBlockStatement=function(t){this.accept(t.program),this.accept(t.inverse);var e=t.program||t.inverse,r=t.program&&t.inverse,n=r,i=r;if(r&&r.chained)for(n=r.body[0].program;i.chained;)i=i.body[i.body.length-1].program;var o={open:t.openStrip.open,close:t.closeStrip.close,openStandalone:a(e.body),closeStandalone:s((n||e).body)};if(t.openStrip.close&&c(e.body,null,!0),r){var l=t.inverseStrip;l.open&&u(e.body,null,!0),l.close&&c(n.body,null,!0),t.closeStrip.open&&u(i.body,null,!0),!this.options.ignoreStandalone&&s(e.body)&&a(n.body)&&(u(e.body),c(n.body))}else t.closeStrip.open&&u(e.body,null,!0);return o},o.prototype.Decorator=o.prototype.MustacheStatement=function(t){return t.strip},o.prototype.PartialStatement=o.prototype.CommentStatement=function(t){var e=t.strip||{};return{inlineStandalone:!0,open:e.open,close:e.close}},e.default=o,t.exports=e.default},function(t,e,r){"use strict";var n=r(1).default;e.__esModule=!0;var i=n(r(6));function o(){this.parents=[]}function s(t){this.acceptRequired(t,"path"),this.acceptArray(t.params),this.acceptKey(t,"hash")}function a(t){s.call(this,t),this.acceptKey(t,"program"),this.acceptKey(t,"inverse")}function c(t){this.acceptRequired(t,"name"),this.acceptArray(t.params),this.acceptKey(t,"hash")}o.prototype={constructor:o,mutating:!1,acceptKey:function(t,e){var r=this.accept(t[e]);if(this.mutating){if(r&&!o.prototype[r.type])throw new i.default('Unexpected node type "'+r.type+'" found when accepting '+e+" on "+t.type);t[e]=r}},acceptRequired:function(t,e){if(this.acceptKey(t,e),!t[e])throw new i.default(t.type+" requires "+e)},acceptArray:function(t){for(var e=0,r=t.length;e<r;e++)this.acceptKey(t,e),t[e]||(t.splice(e,1),e--,r--)},accept:function(t){if(t){if(!this[t.type])throw new i.default("Unknown type: "+t.type,t);this.current&&this.parents.unshift(this.current),this.current=t;var e=this[t.type](t);return this.current=this.parents.shift(),!this.mutating||e?e:!1!==e?t:void 0}},Program:function(t){this.acceptArray(t.body)},MustacheStatement:s,Decorator:s,BlockStatement:a,DecoratorBlock:a,PartialStatement:c,PartialBlockStatement:function(t){c.call(this,t),this.acceptKey(t,"program")},ContentStatement:function(){},CommentStatement:function(){},SubExpression:s,PathExpression:function(){},StringLiteral:function(){},NumberLiteral:function(){},BooleanLiteral:function(){},UndefinedLiteral:function(){},NullLiteral:function(){},Hash:function(t){this.acceptArray(t.pairs)},HashPair:function(t){this.acceptRequired(t,"value")}},e.default=o,t.exports=e.default},function(t,e,r){"use strict";var n=r(1).default;e.__esModule=!0,e.SourceLocation=function(t,e){this.source=t,this.start={line:e.first_line,column:e.first_column},this.end={line:e.last_line,column:e.last_column}},e.id=function(t){return/^\[.*\]$/.test(t)?t.substring(1,t.length-1):t},e.stripFlags=function(t,e){return{open:"~"===t.charAt(2),close:"~"===e.charAt(e.length-3)}},e.stripComment=function(t){return t.replace(/^\{\{~?!-?-?/,"").replace(/-?-?~?\}\}$/,"")},e.preparePath=function(t,e,r){r=this.locInfo(r);for(var n=t?"@":"",o=[],s=0,a=0,c=e.length;a<c;a++){var u=e[a].part,l=e[a].original!==u;if(n+=(e[a].separator||"")+u,l||".."!==u&&"."!==u&&"this"!==u)o.push(u);else{if(o.length>0)throw new i.default("Invalid path: "+n,{loc:r});".."===u&&s++}}return{type:"PathExpression",data:t,depth:s,parts:o,original:n,loc:r}},e.prepareMustache=function(t,e,r,n,i,o){var s=n.charAt(3)||n.charAt(2),a="{"!==s&&"&"!==s;return{type:/\*/.test(n)?"Decorator":"MustacheStatement",path:t,params:e,hash:r,escaped:a,strip:i,loc:this.locInfo(o)}},e.prepareRawBlock=function(t,e,r,n){o(t,r),n=this.locInfo(n);var i={type:"Program",body:e,strip:{},loc:n};return{type:"BlockStatement",path:t.path,params:t.params,hash:t.hash,program:i,openStrip:{},inverseStrip:{},closeStrip:{},loc:n}},e.prepareBlock=function(t,e,r,n,s,a){n&&n.path&&o(t,n);var c=/\*/.test(t.open);e.blockParams=t.blockParams;var u=void 0,l=void 0;if(r){if(c)throw new i.default("Unexpected inverse block on decorator",r);r.chain&&(r.program.body[0].closeStrip=n.strip),l=r.strip,u=r.program}return s&&(s=u,u=e,e=s),{type:c?"DecoratorBlock":"BlockStatement",path:t.path,params:t.params,hash:t.hash,program:e,inverse:u,openStrip:t.strip,inverseStrip:l,closeStrip:n&&n.strip,loc:this.locInfo(a)}},e.prepareProgram=function(t,e){if(!e&&t.length){var r=t[0].loc,n=t[t.length-1].loc;r&&n&&(e={source:r.source,start:{line:r.start.line,column:r.start.column},end:{line:n.end.line,column:n.end.column}})}return{type:"Program",body:t,strip:{},loc:e}},e.preparePartialBlock=function(t,e,r,n){return o(t,r),{type:"PartialBlockStatement",name:t.path,params:t.params,hash:t.hash,program:e,openStrip:t.strip,closeStrip:r&&r.strip,loc:this.locInfo(n)}};var i=n(r(6));function o(t,e){if(e=e.path?e.path.original:e,t.path.original!==e){var r={loc:t.path.loc};throw new i.default(t.path.original+" doesn't match "+e,r)}}},function(t,e,r){"use strict";var n=r(74).default,i=r(1).default;e.__esModule=!0,e.Compiler=u,e.precompile=function(t,e,r){if(null==t||"string"!=typeof t&&"Program"!==t.type)throw new o.default("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+t);"data"in(e=e||{})||(e.data=!0),e.compat&&(e.useDepths=!0);var n=r.parse(t,e),i=(new r.Compiler).compile(n,e);return(new r.JavaScriptCompiler).compile(i,e)},e.compile=function(t,e,r){if(void 0===e&&(e={}),null==t||"string"!=typeof t&&"Program"!==t.type)throw new o.default("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+t);"data"in(e=s.extend({},e))||(e.data=!0),e.compat&&(e.useDepths=!0);var n=void 0;function i(){var n=r.parse(t,e),i=(new r.Compiler).compile(n,e),o=(new r.JavaScriptCompiler).compile(i,e,void 0,!0);return r.template(o)}function a(t,e){return n||(n=i()),n.call(this,t,e)}return a._setup=function(t){return n||(n=i()),n._setup(t)},a._child=function(t,e,r,o){return n||(n=i()),n._child(t,e,r,o)},a};var o=i(r(6)),s=r(5),a=i(r(84)),c=[].slice;function u(){}function l(t,e){if(t===e)return!0;if(s.isArray(t)&&s.isArray(e)&&t.length===e.length){for(var r=0;r<t.length;r++)if(!l(t[r],e[r]))return!1;return!0}}function f(t){if(!t.path.parts){var e=t.path;t.path={type:"PathExpression",data:!1,depth:0,parts:[e.original+""],original:e.original+"",loc:e.loc}}}u.prototype={compiler:u,equals:function(t){var e=this.opcodes.length;if(t.opcodes.length!==e)return!1;for(var r=0;r<e;r++){var n=this.opcodes[r],i=t.opcodes[r];if(n.opcode!==i.opcode||!l(n.args,i.args))return!1}for(e=this.children.length,r=0;r<e;r++)if(!this.children[r].equals(t.children[r]))return!1;return!0},guid:0,compile:function(t,e){return this.sourceNode=[],this.opcodes=[],this.children=[],this.options=e,this.stringParams=e.stringParams,this.trackIds=e.trackIds,e.blockParams=e.blockParams||[],e.knownHelpers=s.extend(n(null),{helperMissing:!0,blockHelperMissing:!0,each:!0,if:!0,unless:!0,with:!0,log:!0,lookup:!0},e.knownHelpers),this.accept(t)},compileProgram:function(t){var e=(new this.compiler).compile(t,this.options),r=this.guid++;return this.usePartial=this.usePartial||e.usePartial,this.children[r]=e,this.useDepths=this.useDepths||e.useDepths,r},accept:function(t){if(!this[t.type])throw new o.default("Unknown type: "+t.type,t);this.sourceNode.unshift(t);var e=this[t.type](t);return this.sourceNode.shift(),e},Program:function(t){this.options.blockParams.unshift(t.blockParams);for(var e=t.body,r=e.length,n=0;n<r;n++)this.accept(e[n]);return this.options.blockParams.shift(),this.isSimple=1===r,this.blockParams=t.blockParams?t.blockParams.length:0,this},BlockStatement:function(t){f(t);var e=t.program,r=t.inverse;e=e&&this.compileProgram(e),r=r&&this.compileProgram(r);var n=this.classifySexpr(t);"helper"===n?this.helperSexpr(t,e,r):"simple"===n?(this.simpleSexpr(t),this.opcode("pushProgram",e),this.opcode("pushProgram",r),this.opcode("emptyHash"),this.opcode("blockValue",t.path.original)):(this.ambiguousSexpr(t,e,r),this.opcode("pushProgram",e),this.opcode("pushProgram",r),this.opcode("emptyHash"),this.opcode("ambiguousBlockValue")),this.opcode("append")},DecoratorBlock:function(t){var e=t.program&&this.compileProgram(t.program),r=this.setupFullMustacheParams(t,e,void 0),n=t.path;this.useDecorators=!0,this.opcode("registerDecorator",r.length,n.original)},PartialStatement:function(t){this.usePartial=!0;var e=t.program;e&&(e=this.compileProgram(t.program));var r=t.params;if(r.length>1)throw new o.default("Unsupported number of partial arguments: "+r.length,t);r.length||(this.options.explicitPartialContext?this.opcode("pushLiteral","undefined"):r.push({type:"PathExpression",parts:[],depth:0}));var n=t.name.original,i="SubExpression"===t.name.type;i&&this.accept(t.name),this.setupFullMustacheParams(t,e,void 0,!0);var s=t.indent||"";this.options.preventIndent&&s&&(this.opcode("appendContent",s),s=""),this.opcode("invokePartial",i,n,s),this.opcode("append")}
vendor: 4,631 bytes, line 25976
25976,PartialBlockStatement:function(t){this.PartialStatement(t)},MustacheStatement:function(t){this.SubExpression(t),t.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},Decorator:function(t){this.DecoratorBlock(t)},ContentStatement:function(t){t.value&&this.opcode("appendContent",t.value)},CommentStatement:function(){},SubExpression:function(t){f(t);var e=this.classifySexpr(t);"simple"===e?this.simpleSexpr(t):"helper"===e?this.helperSexpr(t):this.ambiguousSexpr(t)},ambiguousSexpr:function(t,e,r){var n=t.path,i=n.parts[0],o=null!=e||null!=r;this.opcode("getContext",n.depth),this.opcode("pushProgram",e),this.opcode("pushProgram",r),n.strict=!0,this.accept(n),this.opcode("invokeAmbiguous",i,o)},simpleSexpr:function(t){var e=t.path;e.strict=!0,this.accept(e),this.opcode("resolvePossibleLambda")},helperSexpr:function(t,e,r){var n=this.setupFullMustacheParams(t,e,r),i=t.path,s=i.parts[0];if(this.options.knownHelpers[s])this.opcode("invokeKnownHelper",n.length,s);else{if(this.options.knownHelpersOnly)throw new o.default("You specified knownHelpersOnly, but used the unknown helper "+s,t);i.strict=!0,i.falsy=!0,this.accept(i),this.opcode("invokeHelper",n.length,i.original,a.default.helpers.simpleId(i))}},PathExpression:function(t){this.addDepth(t.depth),this.opcode("getContext",t.depth);var e=t.parts[0],r=a.default.helpers.scopedId(t),n=!t.depth&&!r&&this.blockParamIndex(e);n?this.opcode("lookupBlockParam",n,t.parts):e?t.data?(this.options.data=!0,this.opcode("lookupData",t.depth,t.parts,t.strict)):this.opcode("lookupOnContext",t.parts,t.falsy,t.strict,r):this.opcode("pushContext")},StringLiteral:function(t){this.opcode("pushString",t.value)},NumberLiteral:function(t){this.opcode("pushLiteral",t.value)},BooleanLiteral:function(t){this.opcode("pushLiteral",t.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(t){var e=t.pairs,r=0,n=e.length;for(this.opcode("pushHash");r<n;r++)this.pushParam(e[r].value);for(;r--;)this.opcode("assignToHash",e[r].key);this.opcode("popHash")},opcode:function(t){this.opcodes.push({opcode:t,args:c.call(arguments,1),loc:this.sourceNode[0].loc})},addDepth:function(t){t&&(this.useDepths=!0)},classifySexpr:function(t){var e=a.default.helpers.simpleId(t.path),r=e&&!!this.blockParamIndex(t.path.parts[0]),n=!r&&a.default.helpers.helperExpression(t),i=!r&&(n||e);if(i&&!n){var o=t.path.parts[0],s=this.options;s.knownHelpers[o]?n=!0:s.knownHelpersOnly&&(i=!1)}return n?"helper":i?"ambiguous":"simple"},pushParams:function(t){for(var e=0,r=t.length;e<r;e++)this.pushParam(t[e])},pushParam:function(t){var e=null!=t.value?t.value:t.original||"";if(this.stringParams)e.replace&&(e=e.replace(/^(\.?\.\/)*/g,"").replace(/\//g,".")),t.depth&&this.addDepth(t.depth),this.opcode("getContext",t.depth||0),this.opcode("pushStringParam",e,t.type),"SubExpression"===t.type&&this.accept(t);else{if(this.trackIds){var r=void 0;if(!t.parts||a.default.helpers.scopedId(t)||t.depth||(r=this.blockParamIndex(t.parts[0])),r){var n=t.parts.slice(1).join(".");this.opcode("pushId","BlockParam",r,n)}else(e=t.original||e).replace&&(e=e.replace(/^this(?:\.|$)/,"").replace(/^\.\//,"").replace(/^\.$/,"")),this.opcode("pushId",t.type,e)}this.accept(t)}},setupFullMustacheParams:function(t,e,r,n){var i=t.params;return this.pushParams(i),this.opcode("pushProgram",e),this.opcode("pushProgram",r),t.hash?this.accept(t.hash):this.opcode("emptyHash",n),i},blockParamIndex:function(t){for(var e=0,r=this.options.blockParams.length;e<r;e++){var n=this.options.blockParams[e],i=n&&s.indexOf(n,t);if(n&&i>=0)return[e,i]}}}},function(t,e,r){"use strict";var n=r(60).default,i=r(1).default;e.__esModule=!0;var o=r(4),s=i(r(6)),a=r(5),c=i(r(92));function u(t){this.value=t}function l(){}l.prototype={nameLookup:function(t,e){return this.internalNameLookup(t,e)},depthedLookup:function(t){return[this.aliasable("container.lookup"),"(depths, ",JSON.stringify(t),")"]},compilerInfo:function(){var t=o.COMPILER_REVISION;return[t,o.REVISION_CHANGES[t]]},appendToBuffer:function(t,e,r){return a.isArray(t)||(t=[t]),t=this.source.wrap(t,e),this.environment.isSimple?["return ",t,";"]:r?["buffer += ",t,";"]:(t.appendToBuffer=!0,t)},initializeBuffer:function(){return this.quotedString("")},internalNameLookup:function(t,e){return this.lookupPropertyFunctionIsUsed=!0,["lookupProperty(",t,",",JSON.stringify(e),")"]},lookupPropertyFunctionIsUsed:!1,compile:function(t,e,r,n){this.environment=t,this.options=e,this.stringParams=this.options.stringParams,this.trackIds=this.options.trackIds,this.prec
vendor: 5,661 bytes, line 25976
25976ompile=!n,this.name=this.environment.name,this.isChild=!!r,this.context=r||{decorators:[],programs:[],environments:[]},this.preamble(),this.stackSlot=0,this.stackVars=[],this.aliases={},this.registers={list:[]},this.hashes=[],this.compileStack=[],this.inlineStack=[],this.blockParams=[],this.compileChildren(t,e),this.useDepths=this.useDepths||t.useDepths||t.useDecorators||this.options.compat,this.useBlockParams=this.useBlockParams||t.useBlockParams;var i=t.opcodes,o=void 0,a=void 0,c=void 0,u=void 0;for(c=0,u=i.length;c<u;c++)o=i[c],this.source.currentLocation=o.loc,a=a||o.loc,this[o.opcode].apply(this,o.args);if(this.source.currentLocation=a,this.pushSource(""),this.stackSlot||this.inlineStack.length||this.compileStack.length)throw new s.default("Compile completed with content left on stack");this.decorators.isEmpty()?this.decorators=void 0:(this.useDecorators=!0,this.decorators.prepend(["var decorators = container.decorators, ",this.lookupPropertyFunctionVarDeclaration(),";\n"]),this.decorators.push("return fn;"),n?this.decorators=Function.apply(this,["fn","props","container","depth0","data","blockParams","depths",this.decorators.merge()]):(this.decorators.prepend("function(fn, props, container, depth0, data, blockParams, depths) {\n"),this.decorators.push("}\n"),this.decorators=this.decorators.merge()));var l=this.createFunctionContext(n);if(this.isChild)return l;var f={compiler:this.compilerInfo(),main:l};this.decorators&&(f.main_d=this.decorators,f.useDecorators=!0);var h=this.context,p=h.programs,d=h.decorators;for(c=0,u=p.length;c<u;c++)p[c]&&(f[c]=p[c],d[c]&&(f[c+"_d"]=d[c],f.useDecorators=!0));return this.environment.usePartial&&(f.usePartial=!0),this.options.data&&(f.useData=!0),this.useDepths&&(f.useDepths=!0),this.useBlockParams&&(f.useBlockParams=!0),this.options.compat&&(f.compat=!0),n?f.compilerOptions=this.options:(f.compiler=JSON.stringify(f.compiler),this.source.currentLocation={start:{line:1,column:0}},f=this.objectLiteral(f),e.srcName?(f=f.toStringWithSourceMap({file:e.destName})).map=f.map&&f.map.toString():f=f.toString()),f},preamble:function(){this.lastContext=0,this.source=new c.default(this.options.srcName),this.decorators=new c.default(this.options.srcName)},createFunctionContext:function(t){var e=this,r="",i=this.stackVars.concat(this.registers.list);i.length>0&&(r+=", "+i.join(", "));var o=0;n(this.aliases).forEach((function(t){var n=e.aliases[t];n.children&&n.referenceCount>1&&(r+=", alias"+ ++o+"="+t,n.children[0]="alias"+o)})),this.lookupPropertyFunctionIsUsed&&(r+=", "+this.lookupPropertyFunctionVarDeclaration());var s=["container","depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&s.push("blockParams"),this.useDepths&&s.push("depths");var a=this.mergeSource(r);return t?(s.push(a),Function.apply(this,s)):this.source.wrap(["function(",s.join(","),") {\n ",a,"}"])},mergeSource:function(t){var e=this.environment.isSimple,r=!this.forceBuffer,n=void 0,i=void 0,o=void 0,s=void 0;return this.source.each((function(t){t.appendToBuffer?(o?t.prepend(" + "):o=t,s=t):(o&&(i?o.prepend("buffer += "):n=!0,s.add(";"),o=s=void 0),i=!0,e||(r=!1))})),r?o?(o.prepend("return "),s.add(";")):i||this.source.push('return "";'):(t+=", buffer = "+(n?"":this.initializeBuffer()),o?(o.prepend("return buffer + "),s.add(";")):this.source.push("return buffer;")),t&&this.source.prepend("var "+t.substring(2)+(n?"":";\n")),this.source.merge()},lookupPropertyFunctionVarDeclaration:function(){return"\n lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n }\n ".trim()},blockValue:function(t){var e=this.aliasable("container.hooks.blockHelperMissing"),r=[this.contextName(0)];this.setupHelperArgs(t,0,r);var n=this.popStack();r.splice(1,0,n),this.push(this.source.functionCall(e,"call",r))},ambiguousBlockValue:function(){var t=this.aliasable("container.hooks.blockHelperMissing"),e=[this.contextName(0)];this.setupHelperArgs("",0,e,!0),this.flushInline();var r=this.topStack();e.splice(1,0,r),this.pushSource(["if (!",this.lastHelper,") { ",r," = ",this.source.functionCall(t,"call",e),"}"])},appendContent:function(t){this.pendingContent?t=this.pendingContent+t:this.pendingLocation=this.source.currentLocation,this.pendingContent=t},append:function(){if(this.isInline())this.replaceStack((function(t){return[" != null ? ",t,' : ""']})),this.pushSource(this.appendToBuffer(this.popStack()));else{var t=this.popStack();this.pushSource(["if (",t," != null) { ",this.appendToBuffer(t,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(t){this.lastContext=t},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(t,e,r,n){var i=0;n||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(t[i++])),this.resolvePath("context",t,i,e,r)},lookupBlockParam:function(t,e){this.useBlockParams=!0,this.push(["blockParams[",t[0],"][",t[1],"]"]),this.resolvePath("context",e,1)},lookupData:function(t,e,r){t?this.pushStackLiteral("container.data(data, "+t+")"):this.pushStackLiteral("data"),this.resolvePath("data",e,0,!0,r)},resolvePath:function(t,e,r,n,i){var o=this;if(this.options.strict||this.options.assumeObjects)this.push(function(t,e,r,n,i){var o=e.popStack(),s=r.length;for(t&&s--;n<s;
vendor: 4,917 bytes, line 25976
25976n++)o=e.nameLookup(o,r[n],i);return t?[e.aliasable("container.strict"),"(",o,", ",e.quotedString(r[n]),", ",JSON.stringify(e.source.currentLocation)," )"]:o}(this.options.strict&&i,this,e,r,t));else for(var s=e.length;r<s;r++)this.replaceStack((function(i){var s=o.nameLookup(i,e[r],t);return n?[" && ",s]:[" != null ? ",s," : ",i]}))},resolvePossibleLambda:function(){this.push([this.aliasable("container.lambda"),"(",this.popStack(),", ",this.contextName(0),")"])},pushStringParam:function(t,e){this.pushContext(),this.pushString(e),"SubExpression"!==e&&("string"==typeof t?this.pushString(t):this.pushStackLiteral(t))},emptyHash:function(t){this.trackIds&&this.push("{}"),this.stringParams&&(this.push("{}"),this.push("{}")),this.pushStackLiteral(t?"undefined":"{}")},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:{},types:[],contexts:[],ids:[]}},popHash:function(){var t=this.hash;this.hash=this.hashes.pop(),this.trackIds&&this.push(this.objectLiteral(t.ids)),this.stringParams&&(this.push(this.objectLiteral(t.contexts)),this.push(this.objectLiteral(t.types))),this.push(this.objectLiteral(t.values))},pushString:function(t){this.pushStackLiteral(this.quotedString(t))},pushLiteral:function(t){this.pushStackLiteral(t)},pushProgram:function(t){null!=t?this.pushStackLiteral(this.programExpression(t)):this.pushStackLiteral(null)},registerDecorator:function(t,e){var r=this.nameLookup("decorators",e,"decorator"),n=this.setupHelperArgs(e,t);this.decorators.push(["fn = ",this.decorators.functionCall(r,"",["fn","props","container",n])," || fn;"])},invokeHelper:function(t,e,r){var n=this.popStack(),i=this.setupHelper(t,e),o=[];r&&o.push(i.name),o.push(n),this.options.strict||o.push(this.aliasable("container.hooks.helperMissing"));var s=["(",this.itemsSeparatedBy(o,"||"),")"],a=this.source.functionCall(s,"call",i.callParams);this.push(a)},itemsSeparatedBy:function(t,e){var r=[];r.push(t[0]);for(var n=1;n<t.length;n++)r.push(e,t[n]);return r},invokeKnownHelper:function(t,e){var r=this.setupHelper(t,e);this.push(this.source.functionCall(r.name,"call",r.callParams))},invokeAmbiguous:function(t,e){this.useRegister("helper");var r=this.popStack();this.emptyHash();var n=this.setupHelper(0,t,e),i=["(","(helper = ",this.lastHelper=this.nameLookup("helpers",t,"helper")," || ",r,")"];this.options.strict||(i[0]="(helper = ",i.push(" != null ? helper : ",this.aliasable("container.hooks.helperMissing"))),this.push(["(",i,n.paramsInit?["),(",n.paramsInit]:[],"),","(typeof helper === ",this.aliasable('"function"')," ? ",this.source.functionCall("helper","call",n.callParams)," : helper))"])},invokePartial:function(t,e,r){var n=[],i=this.setupParams(e,1,n);t&&(e=this.popStack(),delete i.name),r&&(i.indent=JSON.stringify(r)),i.helpers="helpers",i.partials="partials",i.decorators="container.decorators",t?n.unshift(e):n.unshift(this.nameLookup("partials",e,"partial")),this.options.compat&&(i.depths="depths"),i=this.objectLiteral(i),n.push(i),this.push(this.source.functionCall("container.invokePartial","",n))},assignToHash:function(t){var e=this.popStack(),r=void 0,n=void 0,i=void 0;this.trackIds&&(i=this.popStack()),this.stringParams&&(n=this.popStack(),r=this.popStack());var o=this.hash;r&&(o.contexts[t]=r),n&&(o.types[t]=n),i&&(o.ids[t]=i),o.values[t]=e},pushId:function(t,e,r){"BlockParam"===t?this.pushStackLiteral("blockParams["+e[0]+"].path["+e[1]+"]"+(r?" + "+JSON.stringify("."+r):"")):"PathExpression"===t?this.pushString(e):"SubExpression"===t?this.pushStackLiteral("true"):this.pushStackLiteral("null")},compiler:l,compileChildren:function(t,e){for(var r=t.children,n=void 0,i=void 0,o=0,s=r.length;o<s;o++){n=r[o],i=new this.compiler;var a=this.matchExistingProgram(n);if(null==a){this.context.programs.push("");var c=this.context.programs.length;n.index=c,n.name="program"+c,this.context.programs[c]=i.compile(n,e,this.context,!this.precompile),this.context.decorators[c]=i.decorators,this.context.environments[c]=n,this.useDepths=this.useDepths||i.useDepths,this.useBlockParams=this.useBlockParams||i.useBlockParams,n.useDepths=this.useDepths,n.useBlockParams=this.useBlockParams}else n.index=a.index,n.name="program"+a.index,this.useDepths=this.useDepths||a.useDepths,this.useBlockParams=this.useBlockParams||a.useBlockParams}},matchExistingProgram:function(t){for(var e=0,r=this.context.environments.length;e<r;e++){var n=this.context.environments[e];if(n&&n.equals(t))return n}},programExpression:function(t){var e=this.environment.children[t],r=[e.index,"data",e.blockParams];return(this.useBlockParams||this.useDepths)&&r.push("blockParams"),this.useDepths&&r.push("depths"),"container.program("+r.join(", ")+")"},useRegister:function(t){this.registers[t]||(this.registers[t]=!0,this.registers.list.push(t))},push:function(t){return t instanceof u||(t=this.source.wrap(t)),this.inlineStack.push(t),t},pushStackLiteral:function(t){this.push(new u(t))}
vendor: 4,397 bytes, line 25976
25976,pushSource:function(t){this.pendingContent&&(this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent),this.pendingLocation)),this.pendingContent=void 0),t&&this.source.push(t)},replaceStack:function(t){var e=["("],r=void 0,n=void 0,i=void 0;if(!this.isInline())throw new s.default("replaceStack on non-inline");var o=this.popStack(!0);if(o instanceof u)e=["(",r=[o.value]],i=!0;else{n=!0;var a=this.incrStack();e=["((",this.push(a)," = ",o,")"],r=this.topStack()}var c=t.call(this,r);i||this.popStack(),n&&this.stackSlot--,this.push(e.concat(c,")"))},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var t=this.inlineStack;this.inlineStack=[];for(var e=0,r=t.length;e<r;e++){var n=t[e];if(n instanceof u)this.compileStack.push(n);else{var i=this.incrStack();this.pushSource([i," = ",n,";"]),this.compileStack.push(i)}}},isInline:function(){return this.inlineStack.length},popStack:function(t){var e=this.isInline(),r=(e?this.inlineStack:this.compileStack).pop();if(!t&&r instanceof u)return r.value;if(!e){if(!this.stackSlot)throw new s.default("Invalid stack pop");this.stackSlot--}return r},topStack:function(){var t=this.isInline()?this.inlineStack:this.compileStack,e=t[t.length-1];return e instanceof u?e.value:e},contextName:function(t){return this.useDepths&&t?"depths["+t+"]":"depth"+t},quotedString:function(t){return this.source.quotedString(t)},objectLiteral:function(t){return this.source.objectLiteral(t)},aliasable:function(t){var e=this.aliases[t];return e?(e.referenceCount++,e):((e=this.aliases[t]=this.source.wrap(t)).aliasable=!0,e.referenceCount=1,e)},setupHelper:function(t,e,r){var n=[];return{params:n,paramsInit:this.setupHelperArgs(e,t,n,r),name:this.nameLookup("helpers",e,"helper"),callParams:[this.aliasable(this.contextName(0)+" != null ? "+this.contextName(0)+" : (container.nullContext || {})")].concat(n)}},setupParams:function(t,e,r){var n={},i=[],o=[],s=[],a=!r,c=void 0;a&&(r=[]),n.name=this.quotedString(t),n.hash=this.popStack(),this.trackIds&&(n.hashIds=this.popStack()),this.stringParams&&(n.hashTypes=this.popStack(),n.hashContexts=this.popStack());var u=this.popStack(),l=this.popStack();(l||u)&&(n.fn=l||"container.noop",n.inverse=u||"container.noop");for(var f=e;f--;)c=this.popStack(),r[f]=c,this.trackIds&&(s[f]=this.popStack()),this.stringParams&&(o[f]=this.popStack(),i[f]=this.popStack());return a&&(n.args=this.source.generateArray(r)),this.trackIds&&(n.ids=this.source.generateArray(s)),this.stringParams&&(n.types=this.source.generateArray(o),n.contexts=this.source.generateArray(i)),this.options.data&&(n.data="data"),this.useBlockParams&&(n.blockParams="blockParams"),n},setupHelperArgs:function(t,e,r,n){var i=this.setupParams(t,e,r);return i.loc=JSON.stringify(this.source.currentLocation),i=this.objectLiteral(i),n?(this.useRegister("options"),r.push("options"),["options=",i]):r?(r.push(i),""):i}},function(){for(var t="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield await null true false".split(" "),e=l.RESERVED_WORDS={},r=0,n=t.length;r<n;r++)e[t[r]]=!0}(),l.isValidJavaScriptVariableName=function(t){return!l.RESERVED_WORDS[t]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(t)},e.default=l,t.exports=e.default},function(t,e,r){"use strict";var n=r(60).default;e.__esModule=!0;var i=r(5),o=void 0;function s(t,e,r){if(i.isArray(t)){for(var n=[],o=0,s=t.length;o<s;o++)n.push(e.wrap(t[o],r));return n}return"boolean"==typeof t||"number"==typeof t?t+"":t}function a(t){this.srcFile=t,this.source=[]}o||((o=function(t,e,r,n){this.src="",n&&this.add(n)}).prototype={add:function(t){i.isArray(t)&&(t=t.join("")),this.src+=t},prepend:function(t){i.isArray(t)&&(t=t.join("")),this.src=t+this.src},toStringWithSourceMap:function(){return{code:this.toString()}},toString:function(){return this.src}}),a.prototype={isEmpty:function(){return!this.source.length},prepend:function(t,e){this.source.unshift(this.wrap(t,e))}
vendor: 1,194 bytes, line 25976
25976,push:function(t,e){this.source.push(this.wrap(t,e))},merge:function(){var t=this.empty();return this.each((function(e){t.add([" ",e,"\n"])})),t},each:function(t){for(var e=0,r=this.source.length;e<r;e++)t(this.source[e])},empty:function(){var t=this.currentLocation||{start:{}};return new o(t.start.line,t.start.column,this.srcFile)},wrap:function(t){var e=arguments.length<=1||void 0===arguments[1]?this.currentLocation||{start:{}}:arguments[1];return t instanceof o?t:(t=s(t,this,e),new o(e.start.line,e.start.column,this.srcFile,t))},functionCall:function(t,e,r){return r=this.generateList(r),this.wrap([t,e?"."+e+"(":"(",r,")"])},quotedString:function(t){return'"'+(t+"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")+'"'},objectLiteral:function(t){var e=this,r=[];n(t).forEach((function(n){var i=s(t[n],e);"undefined"!==i&&r.push([e.quotedString(n),":",i])}));var i=this.generateList(r);return i.prepend("{"),i.add("}"),i},generateList:function(t){for(var e=this.empty(),r=0,n=t.length;r<n;r++)r&&e.add(","),e.add(s(t[r],this));return e},generateArray:function(t){var e=this.generateList(t);
25976return e.prepend("["),e.add("]"),e}},e.default=a,t.exports=e.default}])},t.exports=e()},3798:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>m});r(8037);var n=r(8134),i=r(2561),o=r(6710),s=r(3008),a=r(3134),c=r(6973),u=(r(4958),r(7372),r(5549),r(5249),r(4707),r(3348),r(3078),r(2558),r(6160),r(8021),r(9064),r(3376),r(5424),r(1759),r(7567),r(3544),r(2901),r(6782)),l=r(5814),f=r(5355),h=r.n(f),p=r(6596),d=r(3230),v=r(5413);function g(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(g=function(){return!!t})()}var m=function(t){function e(){var t,r,n,o;(0,i.A)(this,e);for(var c=arguments.length,u=new Array(c),l=0;l<c;l++)u[l]=arguments[l];return r=this,n=e,o=[].concat(u),n=(0,a.A)(n),(t=(0,s.A)(r,g()?Reflect.construct(n,o||[],(0,a.A)(r).constructor):n.apply(r,o))).prevState=null,t.modelCardSpecsContainerInnerTemplate=null,t}return(0,c.A)(e,t),(0,o.A)(e,[{key:"connect",value:function(){(0,l.wA)(this),(0,d.P)(this,p.c,this.render.bind(this)),this.render(this.store.getState())}},{key:"change",value:function(t){var e=t.currentTarget.value,r=this.store.getState(),i=(0,n.A)(r.selectedModelIds);h()(0,r.selectableModelCount).forEach((function(t){i[t]||(i[t]=null)})),i[this.indexValue]=e,this.store.setState({selectedModelIds:i})}},{key:"render",value:function(t){var e,r,n,i=this;if(t.selectedLineupId!==(null===(e=this.prevState)||void 0===e?void 0:e.selectedLineupId)){var o=t.lineups.find((function(e){return e.id===t.selectedLineupId})),s=t.models.filter((function(e){return e.lineupId===t.selectedLineupId}));this.titleTarget.textContent=o.name,this.totalTarget.textContent=s.length,this.modelCardSpecsContainerInnerTemplate||(this.modelCardSpecsContainerInnerTemplate=v.N.compile('\n {{#each models}}\n <div>\n {{> modules/model-card-specs inputType="radio" inputName="model" inputValue=id name=name specs=specs attrs=\'data-'.concat(this.identifier,'-target="modelCardSpecs"\' inputAttrs=\'data-action="change->').concat(this.identifier,"#change\"'}}\n </div>\n {{/each}}\n "))),this.modelCardSpecsContainerTarget.innerHTML=this.modelCardSpecsContainerInnerTemplate({models:s})}if(t.selectedModelIds!==(null===(r=this.prevState)||void 0===r?void 0:r.selectedModelIds)){var a=Boolean(t.selectedModelIds[this.indexValue]);this.selectedCountTarget.textContent=a?1:0,this.modelCardSpecsTargets.forEach((function(e){var r=e.querySelector('input[type="radio"]'),n=t.selectedModelIds.includes(r.value),o=r.value===t.selectedModelIds[i.indexValue];e.setAttribute("aria-disabled",n&&!o),r.disabled=n&&!o,r.checked=o}))}t.selectableModelCount!==(null===(n=this.prevState)||void 0===n?void 0:n.selectableModelCount)&&this.indexValue+1>t.selectableModelCount&&this.dispatch("dismiss"),this.prevState=t}}])}(u.xI);m.targets=["title","total","selectedCount","modelCardSpecsContainer","modelCardSpecs"],m.values={index:Number}},3838:(t,e,r)=>{"use strict";var n=r(8810),i=r(8649),o=r(8770),s=r(4643),a=r(3081);n({target:"Array",proto:!0,arity:1,forced:r(2675)((function(){return 4294967297!==[].push.call({length:4294967296},1)}))||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(t){return t instanceof TypeError}}()},{push:function(t){var e=i(this),r=o(e),n=arguments.length;a(r+n);for(var c=0;c<n;c++)e[r]=arguments[c],r++;return s(e,r),r}})},3844:(t,e,r)=>{"use strict";var n,i=r(659),o=r(3037),s=r(8563),a=r(6617),c=r(7073),u=r(4451),l=r(3779),f="prototype",h="script",p=l("IE_PROTO"),d=function(){},v=function(t){return"<"+h+">"+t+"</"+h+">"},g=function(t){t.write(v("")),t.close();var e=t.parentWindow.Object;return t=null,e},m=function(){try{n=new ActiveXObject("htmlfile")}catch(t){}var t,e,r;m="undefined"!=typeof document?document.domain&&n?g(n):(e=u("iframe"),r="java"+h+":",e.style.display="none",c.appendChild(e),e.src=String(r),(t=e.contentWindow.document).open(),t.write(v("document.F=Object")),t.close(),t.F):g(n);for(var i=s.length;i--;)delete m[f][s[i]];return m()};
25976a[p]=!0,t.exports=Object.create||function(t,e){var r;return null!==t?(d[f]=i(t),r=new d,d[f]=null,r[p]=t):r=m(),void 0===e?r:o.f(r,e)}},3893:(t,e,r)=>{"use strict";var n=r(3163),i=r(4461),o=r(671),s=r(7837),a=r(1715),c=r(1704),u=r(7132),l=r(9859),f=r(8687),h=r(8580),p=r(4535),d=r(2128),v=r(6007);t.exports=function(t,e,r,g){var m="stackTraceLimit",y=g?2:1,b=t.split("."),w=b[b.length-1],x=n.apply(null,b);if(x){var S=x.prototype;if(!v&&i(S,"cause")&&delete S.cause,!r)return x;var A=n("Error"),O=e((function(t,e){var r=f(g?e:t,void 0),n=g?new x(t):new x;return void 0!==r&&o(n,"message",r),p(n,O,n.stack,2),this&&s(S,this)&&l(n,this,O),arguments.length>y&&h(n,arguments[y]),n}));if(O.prototype=S,"Error"!==w?a?a(O,A):c(O,A,{name:!0}):d&&m in x&&(u(O,x,m),u(O,x,"prepareStackTrace")),c(O,x),!v)try{S.name!==w&&o(S,"name",w),S.constructor=O}catch(t){}return O}}},3982:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>u});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973);r(5249),r(6160),r(3376),r(1759),r(3544);function c(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(c=function(){return!!t})()}var u=function(t){function e(){return(0,n.A)(this,e),t=this,r=e,i=arguments,r=(0,s.A)(r),(0,o.A)(t,c()?Reflect.construct(r,i||[],(0,s.A)(t).constructor):r.apply(t,i));var t,r,i}return(0,a.A)(e,t),(0,i.A)(e,[{key:"connect",value:function(){var t=this.triggerTargets.checked;this.triggerTargets.length&&this.toggleDisabled(t)}},{key:"changeAgreement",value:function(t){var e=t.currentTarget.checked;this.toggleDisabled(e)}},{key:"toggleDisabled",value:function(t){this.buttonTargets.forEach((function(e){var r=e.querySelector('input[type="submit"]');e.ariaDisabled=!t,r?r.disabled=!t:e.tabIndex=t?0:-1}))}}])}(r(6782).xI);u.targets=["trigger","button"]},3985:(t,e,r)=>{"use strict";var n=r(659),i=r(3112),o=r(9601),s=r(4175)("species");t.exports=function(t,e){var r,a=n(t).constructor;return void 0===a||o(r=n(a)[s])?e:i(r)}},4009:(t,e,r)=>{"use strict";var n=r(5952),i=r(3613),o=r(1701),s=r(8682),a=r(1233),c=r(7582),u=s("Object.prototype.toString"),l=r(8118)(),f="undefined"==typeof globalThis?r.g:globalThis,h=i(),p=s("String.prototype.slice"),d=s("Array.prototype.indexOf",!0)||function(t,e){for(var r=0;r<t.length;r+=1)if(t[r]===e)return r;return-1},v={__proto__:null};n(h,l&&a&&c?function(t){var e=new f[t];if(Symbol.toStringTag in e&&c){var r=c(e),n=a(r,Symbol.toStringTag);if(!n&&r){var i=c(r);n=a(i,Symbol.toStringTag)}v["$"+t]=o(n.get)}}:function(t){var e=new f[t],r=e.slice||e.set;r&&(v["$"+t]=o(r))});t.exports=function(t){if(!t||"object"!=typeof t)return!1;if(!l){var e=p(u(t),8,-1);return d(h,e)>-1?e:"Object"===e&&function(t){var e=!1;return n(v,(function(r,n){if(!e)try{r(t),e=p(n,1)}catch(t){}})),e}(t)}return a?function(t){var e=!1;return n(v,(function(r,n){if(!e)try{"$"+r(t)===n&&(e=p(n,1))}catch(t){}})),e}(t):null}},4028:(t,e,r)=>{"use strict";var n=r(2128),i=r(6005),o=r(5936);t.exports=function(t,e,r){n?i.f(t,e,o(0,r)):t[e]=r}},4034:(t,e,r)=>{"use strict";var n=r(8810),i=r(2484),o=r(4334),s=r(8649),a=r(8770),c=r(8458),u=r(7267),l=r(2675),f=r(4492),h=r(8754),p=r(3409),d=r(719),v=r(2763),g=r(3539),m=[],y=i(m.sort),b=i(m.push),w=l((function(){m.sort(void 0)})),x=l((function(){m.sort(null)})),S=h("sort"),A=!l((function(){if(v)return v<70;if(!(p&&p>3)){if(d)return!0;if(g)return g<603;var t,e,r,n,i="";for(t=65;t<76;
25976t++){switch(e=String.fromCharCode(t),t){case 66:case 69:case 70:case 72:r=3;break;case 68:case 71:r=4;break;default:r=2}for(n=0;n<47;n++)m.push({k:e+n,v:r})}for(m.sort((function(t,e){return e.v-t.v})),n=0;n<m.length;n++)e=m[n].k.charAt(0),i.charAt(i.length-1)!==e&&(i+=e);return"DGBEFHACIJK"!==i}}));n({target:"Array",proto:!0,forced:w||!x||!S||!A},{sort:function(t){void 0!==t&&o(t);var e=s(this);if(A)return void 0===t?y(e):y(e,t);var r,n,i=[],l=a(e);for(n=0;n<l;n++)n in e&&b(i,e[n]);for(f(i,function(t){return function(e,r){return void 0===r?-1:void 0===e?1:void 0!==t?+t(e,r)||0:u(e)>u(r)?1:-1}}(t)),r=a(i),n=0;n<r;)e[n]=i[n++];for(;n<l;)c(e,n++);return e}})},4035:(t,e,r)=>{"use strict";var n=r(659),i=r(1151);t.exports=function(t,e,r,o){try{return o?e(n(r)[0],r[1]):e(r)}catch(e){i(t,"throw",e)}}},4049:t=>{"use strict";var e=Math.ceil,r=Math.floor;t.exports=Math.trunc||function(t){var n=+t;return(n>0?r:e)(n)}},4102:(t,e,r)=>{"use strict";var n=r(321);t.exports=function(t){return"object"==typeof t?null!==t:n(t)}},4113:(t,e,r)=>{"use strict";var n=r(2128),i=r(2675),o=r(4451);t.exports=!n&&!i((function(){return 7!==Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},4130:(t,e,r)=>{"use strict";var n=r(4334),i=r(8649),o=r(51),s=r(8770),a=TypeError,c="Reduce of empty array with no initial value",u=function(t){return function(e,r,u,l){var f=i(e),h=o(f),p=s(f);if(n(r),0===p&&u<2)throw new a(c);var d=t?p-1:0,v=t?-1:1;if(u<2)for(;;){if(d in h){l=h[d],d+=v;break}if(d+=v,t?d<0:p<=d)throw new a(c)}for(;t?d>=0:p>d;d+=v)d in h&&(l=r(l,h[d],d,f));return l}};t.exports={left:u(!1),right:u(!0)}},4157:t=>{var e=Math.ceil,r=Math.max;t.exports=function(t,n,i,o){for(var s=-1,a=r(e((n-t)/(i||1)),0),c=Array(a);a--;)c[o?a:++s]=t,t+=i;return c}},4175:(t,e,r)=>{"use strict";var n=r(8052),i=r(6445),o=r(4461),s=r(2868),a=r(6891),c=r(3316),u=n.Symbol,l=i("wks"),f=c?u.for||u:u&&u.withoutSetter||s;t.exports=function(t){return o(l,t)||(l[t]=a&&o(u,t)?u[t]:f("Symbol."+t)),l[t]}},4222:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>u});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973);r(4958);function c(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(c=function(){return!!t})()}var u=function(t){function e(){var t,r,i,a;(0,n.A)(this,e);for(var u=arguments.length,l=new Array(u),f=0;f<u;f++)l[f]=arguments[f];return r=this,i=e,a=[].concat(l),i=(0,s.A)(i),(t=(0,o.A)(r,c()?Reflect.construct(i,a||[],(0,s.A)(r).constructor):i.apply(r,a))).currentX=0,t.startX=0,t.startScrollX=0,t.isDragging=!1,t.afterDragged=!1,t}return(0,a.A)(e,t),(0,i.A)(e,[{key:"startDragging",value:function(t){this.startX=this.currentX,this.startScrollX=this.element.scrollLeft,this.isDragging=!0,t.preventDefault()}},{key:"stopDragging",value:function(){this.isDragging=!1}},{key:"updatePointer",value:function(t){if(this.currentX=t.clientX,this.isDragging){var e=this.currentX-this.startX;this.element.scrollLeft=this.startScrollX-e,this.afterDragged=!0}}},{key:"preventDefault",value:function(t){this.afterDragged&&(this.afterDragged=!1,t.preventDefault())}}])}(r(6782).xI)},4267:(t,e,r)=>{"use strict";var n=r(8810),i=r(863);n({target:"RegExp",proto:!0,forced:/./.exec!==i},{exec:i})},4286:t=>{t.exports=function(t){return String(t)}},4294:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>f});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973),c=r(6782),u=r(5814);r(3078),r(4702);function l(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(l=function(){return!!t})()}var f=function(t){function e(){return(0,n.A)(this,e),t=this,r=e,i=arguments,r=(0,s.A)(r),(0,o.A)(t,l()?Reflect.construct(r,i||[],(0,s.A)(t).constructor):r.apply(t,i));var t,r,i}return(0,a.A)(e,t),(0,i.A)(e,[{key:"connect",value:function(){(0,u.wA)(this),function(t){var e="".concat(t.identifier,"Controller");t.element[e]=t;var r=t.disconnect.bind(t);Object.assign(t,{disconnect:function(){delete t.element[e],r()}})}(this)}},{key:"toggle",value:function(){this.checked=!this.checked}},{key:"checked",get:function(){return"true"===this.element.getAttribute("aria-checked")},set:function(t){this.element.setAttribute("aria-checked",Boolean(t)),this.dispatch("change",{checked:this.checked})}}])}(c.xI)},4295:(t,e,r)=>{"use strict";var n,i=r(802),o=r(593),s=r(155),a=r(7180),c=r(9304),u=r(9361),l=r(6757),f=r(4923),h=r(7256),p=r(5414),d=r(7954),v=r(3452),g=r(1358),m=r(5720),y=r(3515),b=Function,w=function(t){try{return b('"use strict"; return ('+t+").constructor;")()}catch(t){}},x=r(1233),S=r(9997),A=function(){throw new l},O=x?function(){try{return A}catch(t){try{return x(arguments,"callee").get}catch(t){return A}}}
25976():A,E=r(8573)(),k=r(7582),T=r(2170),_=r(9090),C=r(24),P=r(1530),I={},j="undefined"!=typeof Uint8Array&&k?k(Uint8Array):n,M={__proto__:null,"%AggregateError%":"undefined"==typeof AggregateError?n:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?n:ArrayBuffer,"%ArrayIteratorPrototype%":E&&k?k([][Symbol.iterator]()):n,"%AsyncFromSyncIteratorPrototype%":n,"%AsyncFunction%":I,"%AsyncGenerator%":I,"%AsyncGeneratorFunction%":I,"%AsyncIteratorPrototype%":I,"%Atomics%":"undefined"==typeof Atomics?n:Atomics,"%BigInt%":"undefined"==typeof BigInt?n:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?n:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?n:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?n:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":o,"%eval%":eval,"%EvalError%":s,"%Float16Array%":"undefined"==typeof Float16Array?n:Float16Array,"%Float32Array%":"undefined"==typeof Float32Array?n:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?n:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?n:FinalizationRegistry,"%Function%":b,"%GeneratorFunction%":I,"%Int8Array%":"undefined"==typeof Int8Array?n:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?n:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?n:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%
25976IteratorPrototype%":E&&k?k(k([][Symbol.iterator]())):n,"%JSON%":"object"==typeof JSON?JSON:n,"%Map%":"undefined"==typeof Map?n:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&E&&k?k((new Map)[Symbol.iterator]()):n,"%Math%":Math,"%Number%":Number,"%Object%":i,"%Object.getOwnPropertyDescriptor%":x,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?n:Promise,"%Proxy%":"undefined"==typeof Proxy?n:Proxy,"%RangeError%":a,"%ReferenceError%":c,"%Reflect%":"undefined"==typeof Reflect?n:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?n:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&E&&k?k((new Set)[Symbol.iterator]()):n,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?n:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":E&&k?k(""[Symbol.iterator]()):n,"%Symbol%":E?Symbol:n,"%SyntaxError%":u,"%ThrowTypeError%":O,"%TypedArray%":j,"%TypeError%":l,"%Uint8Array%":"undefined"==typeof Uint8Array?n:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?n:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?n:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?n:Uint32Array,"%URIError%":f,"%WeakMap%":"undefined"==typeof WeakMap?n:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?n:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?n:WeakSet,"%Function.prototype.call%":P,"%Function.prototype.apply%":C,"%Object.defineProperty%":S,"%Object.getPrototypeOf%":T,"%Math.abs%":h,"%Math.floor%":p,"%Math.max%":d,"%Math.min%":v,"%Math.pow%":g,"%Math.round%":m,"%Math.sign%":y,"%Reflect.getPrototypeOf%":_};if(k)try{null.error}catch(t){var L=k(k(t));M["%Error.prototype%"]=L}var N=function t(e){var r;if("%AsyncFunction%"===e)r=w("async function () {}");else if("%GeneratorFunction%"===e)r=w("function* () {}");else if("%AsyncGeneratorFunction%"===e)r=w("async function* () {}");else if("%AsyncGenerator%"===e){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if("%AsyncIteratorPrototype%"===e){var i=t("%AsyncGenerator%");i&&k&&(r=k(i.prototype))}return M[e]=r,r},B={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},R=r(469),D=r(9731),F=R.call(P,Array.prototype.concat),$=R.call(C,Array.prototype.splice),H=R.call(P,String.prototype.replace),z=R.call(P,String.prototype.slice),V=R.call(P,RegExp.prototype.exec),U=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,W=/\\(\\)?/g,K=function(t,e){var r,n=t;if(D(B,n)&&(n="%"+(r=B[n])[0]+"%"),D(M,n)){var i=M[n];if(i===I&&(i=N(n)),void 0===i&&!e)throw new l("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:r,name:n,value:i}}throw new u("intrinsic "+t+" does not exist!")};t.exports=function(t,e){if("string"!=typeof t||0===t.length)throw new l("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof e)throw new l('"allowMissing" argument must be a boolean');if(null===V(/^%?[^%]*%?$/,t))throw new u("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=function(t){var e=z(t,0,1),r=z(t,-1);if("%"===e&&"%"!==r)throw new u("invalid intrinsic syntax, expected closing `%`");if("%"===r&&"%"!==e)throw new u("invalid intrinsic syntax, expected opening `%`");var n=[];return H(t,U,(function(t,e,r,i){n[n.length]=r?H(i,W,"$1"):e||t})),n}(t),n=r.length>0?r[0]:"",i=K("%"+n+"%",e),o=i.name,s=i.value,a=!1,c=i.alias;c&&(n=c[0],$(r,F([0,1],c)));for(var f=1,h=!0;f<r.length;f+=1){var p=r[f],d=z(p,0,1),v=z(p,-1);if(('"'===d||"'"===d||"`"===d||'"'===v||"'"===v||"`"===v)&&d!==v)throw new u("property names with quotes must have matching quotes");if("constructor"!==p&&h||(a=!0),D(M,o="%"+(n+="."+p)+"%"))s=M[o];else if(null!=s){if(!(p in s)){if(!e)throw new l("base intrinsic for "+t+" exists, but the property is not available.");return}if(x&&f+1>=r.length){var g=x(s,p);s=(h=!!g)&&"get"in g&&!("originalValue"in g.get)?g.get:s[p]}else h=D(s,p),s=s[p];h&&!a&&(M[o]=s)}}return s}},4299:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>u});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973);function c(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(c=function(){return!!t})()}var u=function(t){function e(){return(0,n.A)(this,e),t=this,r=e,i=arguments,r=(0,s.A)(r),(0,o.A)(t,c()?Reflect.construct(r,i||[],(0,s.A)(t).constructor):r.apply(t,i));var t,r,i}return(0,a.A)(e,t),(0,i.A)(e,[{key:"open",value:function(){document.body.insertAdjacentHTML("beforeend",this.templateTarget.innerHTML)}}])}(r(6782).xI);u.targets=["template"]},4334:(t,e,r)=>{"use strict";var n=r(321),i=r(8379),o=TypeError;t.exports=function(t){if(n(t))return t;throw new o(i(t)+" is not a function")}},4360:(t,e,r)=>
25976{var n=r(6990),i=r(6015);t.exports=function(t){if(!i(t))return!1;var e=n(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},4451:(t,e,r)=>{"use strict";var n=r(8052),i=r(4102),o=n.document,s=i(o)&&i(o.createElement);t.exports=function(t){return s?o.createElement(t):{}}},4461:(t,e,r)=>{"use strict";var n=r(2484),i=r(8649),o=n({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return o(i(t),e)}},4492:(t,e,r)=>{"use strict";var n=r(4540),i=Math.floor,o=function(t,e){var r=t.length;if(r<8)for(var s,a,c=1;c<r;){for(a=c,s=t[c];a&&e(t[a-1],s)>0;)t[a]=t[--a];a!==c++&&(t[a]=s)}else for(var u=i(r/2),l=o(n(t,0,u),e),f=o(n(t,u),e),h=l.length,p=f.length,d=0,v=0;d<h||v<p;)t[d+v]=d<h&&v<p?e(l[d],f[v])<=0?l[d++]:f[v++]:d<h?l[d++]:f[v++];return t};t.exports=o},4506:(t,e,r)=>{var n=r(4157),i=r(6218),o=r(5410);t.exports=function(t){return function(e,r,s){return s&&"number"!=typeof s&&i(e,r,s)&&(r=s=void 0),e=o(e),void 0===r?(r=e,e=0):r=o(r),s=void 0===s?e<r?1:-1:o(s),n(e,r,s,t)}}},4515:(t,e,r)=>{"use strict";var n=r(9747),i=r(4461),o=r(5672),s=r(6005).f;t.exports=function(t){var e=n.Symbol||(n.Symbol={});i(e,t)||s(e,t,{value:o.f(t)})}},4535:(t,e,r)=>{"use strict";var n=r(671),i=r(7389),o=r(3087),s=Error.captureStackTrace;t.exports=function(t,e,r,a){o&&(s?s(t,e):n(t,"stack",i(r,a)))}},4540:(t,e,r)=>{"use strict";var n=r(2484);t.exports=n([].slice)},4559:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>n});const n='<{{#if type}}button{{else}}a{{/if}}\r\n class="prd-button of-{{default variant "default"}}{{#if size}} of-{{size}} prd-extraSmallScreen-width-auto{{/if}}{{#if isNoIcon}}{{#unless isExtraSmall}} of-icon-none{{/unless}}{{/if}}{{#if isExtraSmall}} prd-utility-body-extraSmall{{else}} prd-utility-body-small{{/if}}{{#unless isNoFocusRing}} prd-utility-focusRing{{/unless}}"\r\n {{#if link}}\r\n href="{{link}}"\r\n {{/if}}\r\n {{#if type}}\r\n type="{{type}}"\r\n {{/if}}\r\n {{#if attrs}}\r\n {{{attrs}}}\r\n {{/if}}\r\n>\r\n {{#if content}}\r\n <span class="prd-button-label">{{{content}}}</span>\r\n {{/if}}\r\n {{#unless isNoIcon}}\r\n <svg class="prd-button-icon" viewBox="0 0 30 30">\r\n <use xlink:href="#icon-{{default icon "arrow"}}"/>\r\n </svg>\r\n {{/unless}}\r\n</{{#if type}}button{{else}}a{{/if}}>\r\n'},4584:(t,e,r)=>{"use strict";var n=r(4102),i=r(2748),o=r(4175)("match");t.exports=function(t){var e;return n(t)&&(void 0!==(e=t[o])?!!e:"RegExp"===i(t))}},4643:(t,e,r)=>{"use strict";var n=r(2128),i=r(1948),o=TypeError,s=Object.getOwnPropertyDescriptor,a=n&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();t.exports=a?function(t,e){if(i(t)&&!s(t,"length").writable)throw new o("Cannot set read only .length");return t.length=e}:function(t,e){return t.length=e}},4683:t=>{var e=/^(?:0|[1-9]\d*)$/;t.exports=function(t,r){var n=typeof t;return!!(r=null==r?9007199254740991:r)&&("number"==n||"symbol"!=n&&e.test(t))&&t>-1&&t%1==0&&t<r}},4690:(t,e,r)=>{"use strict";var n=r(2128),i=r(4461),o=Function.prototype,s=n&&Object.getOwnPropertyDescriptor,a=i(o,"name"),c=a&&"something"===function(){}.name,u=a&&(!n||n&&s(o,"name").configurable);t.exports={EXISTS:a,PROPER:c,CONFIGURABLE:u}},4700:(t,e,r)=>{"use strict";var n=r(4792),i=r(8563);t.exports=Object.keys||function(t){return n(t,i)}},4702:(t,e,r)=>{"use strict";var n=r(8810),i=r(5433);n({target:"Object",stat:!0,arity:2,forced:Object.assign!==i},{assign:i})},4706:t=>{t.exports=function(t,e){return"string"==typeof t&&"string"==typeof e?t+e:t}},4707:(t,e,r)=>{"use strict";var n=r(8810),i=r(6749).includes,o=r(2675),s=r(2153);n({target:"Array",proto:!0,forced:o((function(){return!Array(1).includes()}))},{includes:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),s("includes")},4792:(t,e,r)=>{"use strict";var n=r(2484),i=r(4461),o=r(8969),s=r(6749).indexOf,a=r(6617),c=n([].push);t.exports=function(t,e){var r,n=o(t),u=0,l=[];for(r in n)!i(a,r)&&i(n,r)&&c(l,r);for(;e.length>u;
25976)i(n,r=e[u++])&&(~s(l,r)||c(l,r));return l}},4802:(t,e,r)=>{"use strict";var n=r(8810),i=r(2128),o=r(9467),s=r(8969),a=r(3071),c=r(4028);n({target:"Object",stat:!0,sham:!i},{getOwnPropertyDescriptors:function(t){for(var e,r,n=s(t),i=a.f,u=o(n),l={},f=0;u.length>f;)void 0!==(r=i(n,e=u[f++]))&&c(l,e,r);return l}})},4834:(t,e,r)=>{"use strict";var n=r(9601),i=TypeError;t.exports=function(t){if(n(t))throw new i("Can't call method on "+t);return t}},4912:t=>{"use strict";t.exports="\t\n\v\f\r  áââââââ
ââââââ¯âã\u2028\u2029\ufeff"},4923:t=>{"use strict";t.exports=URIError},4929:(t,e,r)=>{"use strict";var n=r(8845);t.exports=function(t,e){return new(n(t))(0===e?0:e)}},4951:(t,e,r)=>{"use strict";var n=r(5719),i=r(9538),o=r(9601),s=r(6609),a=r(4175)("iterator");t.exports=function(t){if(!o(t))return i(t,a)||i(t,"@@iterator")||s[n(t)]}},4956:(t,e,r)=>{"use strict";var n=r(4792),i=r(8563).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return n(t,i)}},4958:(t,e,r)=>{"use strict";var n=r(8810),i=r(2675),o=r(1948),s=r(4102),a=r(8649),c=r(8770),u=r(3081),l=r(4028),f=r(4929),h=r(2321),p=r(4175),d=r(2763),v=p("isConcatSpreadable"),g=d>=51||!i((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),m=function(t){if(!s(t))return!1;var e=t[v];return void 0!==e?!!e:o(t)};n({target:"Array",proto:!0,arity:1,forced:!g||!h("concat")},{concat:function(t){var e,r,n,i,o,s=a(this),h=f(s,0),p=0;for(e=-1,n=arguments.length;e<n;e++)if(m(o=-1===e?s:arguments[e]))for(i=c(o),u(p+i),r=0;r<i;r++,p++)r in o&&l(h,p,o[r]);else u(p+1),l(h,p++,o);return h.length=p,h}})},4983:(t,e,r)=>{"use strict";var n=r(469),i=r(24),o=r(9630);t.exports=function(){return o(n,i,arguments)}},5001:(t,e,r)=>{"use strict";var n=r(2484),i=r(1948),o=r(321),s=r(2748),a=r(7267),c=n([].push);t.exports=function(t){if(o(t))return t;if(i(t)){for(var e=t.length,r=[],n=0;n<e;n++){var u=t[n];"string"==typeof u?c(r,u):"number"!=typeof u&&"Number"!==s(u)&&"String"!==s(u)||c(r,a(u))}var l=r.length,f=!0;return function(t,e){if(f)return f=!1,e;if(i(this))return e;for(var n=0;n<l;n++)if(r[n]===t)return e}}}},5004:t=>{"use strict";t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},5030:(t,e,r)=>{"use strict";r(8810)({target:"Array",stat:!0},{isArray:r(1948)})},5034:(t,e,r)=>{"use strict";var n=r(8052);t.exports=n.Promise},5050:(t,e,r)=>{"use strict";var n=r(8810),i=r(2484),o=r(51),s=r(8969),a=r(8754),c=i([].join);n({target:"Array",proto:!0,forced:o!==Object||!a("join",",")},{join:function(t){return c(s(this),void 0===t?",":t)}})},5096:(t,e,r)=>{var n,i,o;window,i=[r(7453),r(8179)],void 0===(o="function"==typeof(n=function(t,e){"use strict";var r=t.create("masonry");r.compatOptions.fitWidth="isFitWidth";var n=r.prototype;return n._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},n.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],r=t&&t.element;this.columnWidth=r&&e(r).outerWidth||this.containerWidth}var n=this.columnWidth+=this.gutter,i=this.containerWidth+this.gutter,o=i/n,s=n-i%n;o=Math[s&&s<1?"round":"floor"](o),this.cols=Math.max(o,1)},n.getContainerWidth=function(){var t=this._getOption("fitWidth")?this.element.parentNode:this.element,r=e(t);this.containerWidth=r&&r.innerWidth},n._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,r=Math[e&&e<1?"round":"ceil"](t.size.outerWidth/this.columnWidth);r=Math.min(r,this.cols);for(var n=this[this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition"](r,t),i={x:this.columnWidth*n.col,y:n.y},o=n.y+t.size.outerHeight,s=r+n.col,a=n.col;a<s;a++)this.colYs[a]=o;return i},n._getTopColPosition=function(t){var e=this._getTopColGroup(t),r=Math.min.apply(Math,e);return{col:e.indexOf(r),y:r}},n._getTopColGroup=function(t){if(t<2)return this.colYs;for(var e=[],r=this.cols+1-t,n=0;n<r;n++)e[n]=this._getColGroupY(n,t);return e},n._getColGroupY=function(t,e){if(e<2)return this.colYs[t];var r=this.colYs.slice(t,t+e);return Math.max.apply(Math,r)},n._getHorizontalColPosition=function(t,e){var r=this.horizontalColIndex%this.cols;r=t>1&&r+t>this.cols?0:r;var n=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=n?r+t:this.horizontalColIndex,{col:r,y:this._getColGroupY(r,t)}},n._manageStamp=function(t){var r=e(t),n=this._getElementOffset(t),i=this._getOption("originLeft")?
25976n.left:n.right,o=i+r.outerWidth,s=Math.floor(i/this.columnWidth);s=Math.max(0,s);var a=Math.floor(o/this.columnWidth);a-=o%this.columnWidth?0:1,a=Math.min(this.cols-1,a);for(var c=(this._getOption("originTop")?n.top:n.bottom)+r.outerHeight,u=s;u<=a;u++)this.colYs[u]=Math.max(c,this.colYs[u])},n._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},n._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},n.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},r})?n.apply(e,i):n)||(t.exports=o)},5143:(t,e,r)=>{"use strict";var n=r(8810),i=r(3625),o=r(4334),s=r(1031),a=r(3443),c=r(1072);n({target:"Promise",stat:!0,forced:r(341)},{all:function(t){var e=this,r=s.f(e),n=r.resolve,u=r.reject,l=a((function(){var r=o(e.resolve),s=[],a=0,l=1;c(t,(function(t){var o=a++,c=!1;l++,i(r,e,t).then((function(t){c||(c=!0,s[o]=t,--l||n(s))}),u)})),--l||n(s)}));return l.error&&u(l.value),r.promise}})},5150:(t,e,r)=>{"use strict";var n=r(2484),i=r(4834),o=r(7267),s=r(4912),a=n("".replace),c=RegExp("^["+s+"]+"),u=RegExp("(^|[^"+s+"])["+s+"]+$"),l=function(t){return function(e){var r=o(i(e));return 1&t&&(r=a(r,c,"")),2&t&&(r=a(r,u,"$1")),r}};t.exports={start:l(1),end:l(2),trim:l(3)}},5194:(t,e,r)=>{var n="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g;t.exports=n},5236:(t,e,r)=>{"use strict";var n=r(321),i=r(6005),o=r(9455),s=r(1941);t.exports=function(t,e,r,a){a||(a={});var c=a.enumerable,u=void 0!==a.name?a.name:e;if(n(r)&&o(r,u,a),a.global)c?t[e]=r:s(e,r);else{try{a.unsafe?t[e]&&(c=!0):delete t[e]}catch(t){}c?t[e]=r:i.f(t,e,{value:r,enumerable:!1,configurable:!a.nonConfigurable,writable:!a.nonWritable})}return t}},5249:(t,e,r)=>{"use strict";var n=r(8810),i=r(9311);n({target:"Array",proto:!0,forced:[].forEach!==i},{forEach:i})},5267:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>d});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973),c=(r(3348),r(3078),r(5424),r(1759),r(6335),r(4267),r(5734),r(7963),r(2901),r(6782));function u(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(u=function(){return!!t})()}var l=170,f=0,h="is-hide",p="prd-seriesOverviewIntroduction-moreButton",d=function(t){function e(){return(0,n.A)(this,e),t=this,r=e,i=arguments,r=(0,s.A)(r),(0,o.A)(t,u()?Reflect.construct(r,i||[],(0,s.A)(t).constructor):r.apply(t,i));var t,r,i}return(0,a.A)(e,t),(0,i.A)(e,[{key:"connect",value:function(){if(!this.isExcludedLang){var t=this.descriptionTarget.textContent;if(this.maxCharacterCount=this.maxValue,t.length>this.maxCharCount){this.rebuildText();var e=window.matchMedia("(min-width: 60.625em)");e.addListener(this.onMediaChange.bind(this)),this.onMediaChange(e)}}}},{key:"onMediaChange",value:function(t){t.matches?this.showOmittedText():this.hideOmittedText()}},{key:"splitText",value:function(){var t=this.descriptionTarget.textContent;this.notOmittedText=t.substr(0,this.maxCharCount),this.omittedText=t.substr(this.maxCharCount,t.length),this.omittedText=this.wrapText(this.omittedText)}},{key:"wrapText",value:function(t){var e=document.createElement("span");return e.textContent=t,e}},{key:"createSuffix",value:function(){this.suffix=document.createElement("span"),this.suffix.textContent=this.suffixValue}},{key:"createMoreButton",value:function(){this.moreButton=document.createElement("button"),this.moreButton.setAttribute("type","button"),this.moreButton.classList.add(p),this.moreButton.textContent=this.moreValue,this.moreButton.dataset.action="click->series-description-omit#showOmittedText"}},{key:"rebuildText",value:function(){var t=document.createDocumentFragment();this.splitText(),this.createSuffix(),this.createMoreButton(),t.textContent=this.notOmittedText,t.appendChild(this.suffix),t.appendChild(this.moreButton),t.appendChild(this.omittedText),this.descriptionTarget.innerText="",this.descriptionTarget.appendChild(t)}},{key:"showOmittedText",value:function(){this.showItem(this.omittedText),this.hideItem(this.suffix
25976),this.hideItem(this.moreButton)}},{key:"hideOmittedText",value:function(){this.hideItem(this.omittedText),this.showItem(this.suffix),this.showItem(this.moreButton)}},{key:"showItem",value:function(t){t.classList.remove(h)}},{key:"hideItem",value:function(t){t.classList.add(h)}},{key:"maxCharacterCount",set:function(t){t&&"number"==typeof t||(this.maxCharCount=l),this.isNumber&&(parseFloat(t)>f?this.maxCharCount=parseFloat(t):this.maxCharCount=f),this.isMultiByteLang&&(this.maxCharCount=Math.floor(this.maxCharCount/2))}},{key:"isMultiByteLang",get:function(){var t=window.kpi_languageSettings.siteLang?window.kpi_languageSettings.siteLang[0]:"";return/^zh-|^ko-/.test(t)}},{key:"isExcludedLang",get:function(){var t=window.kpi_languageSettings.siteLang?window.kpi_languageSettings.siteLang[0]:"";return/^th-/.test(t)}},{key:"isNumber",get:function(){return!isNaN(parseFloat(this.maxValue))}}])}(c.xI);d.targets=["description"],d.values={max:Number,min:Number,suffix:String,more:String}},5321:(t,e,r)=>{"use strict";var n=r(8810),i=r(1072),o=r(4334),s=r(659),a=r(779),c=TypeError;n({target:"Iterator",proto:!0,real:!0},{reduce:function(t){s(this),o(t);var e=a(this),r=arguments.length<2,n=r?void 0:arguments[1],u=0;if(i(e,(function(e){r?(r=!1,n=e):n=t(n,e,u),u++}),{IS_RECORD:!0}),r)throw new c("Reduce of empty iterator with no initial value");return n}})},5355:(t,e,r)=>{var n=r(4506)();t.exports=n},5382:(t,e,r)=>{"use strict";var n=r(8118)(),i=r(8682)("Object.prototype.toString"),o=function(t){return!(n&&t&&"object"==typeof t&&Symbol.toStringTag in t)&&"[object Arguments]"===i(t)},s=function(t){return!!o(t)||null!==t&&"object"==typeof t&&"length"in t&&"number"==typeof t.length&&t.length>=0&&"[object Array]"!==i(t)&&"callee"in t&&"[object Function]"===i(t.callee)},a=function(){return o(arguments)}();o.isLegacyArguments=s,t.exports=a?o:s},5396:(t,e,r)=>{"use strict";var n,i=r(8052),o=r(133),s=r(321),a=r(6627),c=r(3291),u=r(4540),l=r(464),f=i.Function,h=/MSIE .\./.test(c)||"BUN"===a&&((n=i.Bun.version.split(".")).length<3||"0"===n[0]&&(n[1]<3||"3"===n[1]&&"0"===n[2]));t.exports=function(t,e){var r=e?2:1;return h?function(n,i){var a=l(arguments.length,1)>r,c=s(n)?n:f(n),h=a?u(arguments,r):[],p=a?function(){o(c,this,h)}:c;return e?t(p,i):t(p)}:t}},5410:(t,e,r)=>{var n=r(3572),i=1/0;t.exports=function(t){return t?(t=n(t))===i||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}},5413:(t,e,r)=>{"use strict";r.d(e,{N:()=>n});r(5249),r(3348),r(6160),r(3376),r(1759),r(4267),r(9028),r(3544),r(2901);var n=r(3790).create(),i=r(1077);i.keys().forEach((function(t){var e=t.replace(/^\.\//,"").replace(/\.hbs$/,""),r=i(t).default;n.registerPartial(e,r)}));var o=r(1771);o.keys().forEach((function(t){var e=t.replace(/^\.\//,"").replace(/\.js$/,""),r=o(t);n.registerHelper(e,r)}))},5414:t=>{"use strict";t.exports=Math.floor},5424:(t,e,r)=>{"use strict";var n=r(8810),i=r(6007),o=r(2128),s=r(8052),a=r(9747),c=r(2484),u=r(2360),l=r(4461),f=r(9859),h=r(7837),p=r(3401),d=r(573),v=r(2675),g=r(4956).f,m=r(3071).f,y=r(6005).f,b=r(7156),w=r(5150).trim,x="Number",S=s[x],A=a[x],O=S.prototype,E=s.TypeError,k=c("".slice),T=c("".charCodeAt),_=function(t){var e,r,n,i,o,s,a,c,u=d(t,"number");if(p(u))throw new E("Cannot convert a Symbol value to a number");if("string"==typeof u&&u.length>2)if(u=w(u),43===(e=T(u,0))||45===e){if(88===(r=T(u,2))||120===r)return NaN}else if(48===e){switch(T(u,1)){case 66:case 98:n=2,i=49;break;case 79:case 111:n=8,i=55;break;default:return+u}for(s=(o=k(u,2)).length,a=0;a<s;a++)if((c=T(o,a))<48||c>i)return NaN;return parseInt(o,n)}return+u},C=u(x,!S(" 0o1")||!S("0b1")||S("+0x1")),P=function(t){var e,r=arguments.length<1?0:S(function(t){var e=d(t,"number");return"bigint"==typeof e?e:_(e)}(t));return h(O,e=this)&&v((function(){b(e)}))?f(Object(r),this,P):r};P.prototype=O,C&&!i&&(O.constructor=P),n({global:!0,constructor:!0,wrap:!0,forced:C},{Number:P});var I=function(t,e){for(var r,n=o?g(e):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),i=0;n.length>i;i++)l(e,r=n[i])&&!l(t,r)&&y(t,r,m(e,r))};i&&A&&I(a[x],A),(C||i)&&I(a[x],S)},5428:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>u});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973);r(3348),r(1759),r(2901);function c(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(c=function(){return!!t})()}var u=function(t){function e(){return(0,n.A)(this,e),t=this,r=e,i=arguments,r=(0,s.A)(r),(0,o.A)(t,c()?Reflect.construct(r,i||[],(0,s.A)(t).constructor):r.apply(t,i));var t,r,i}
25976return(0,a.A)(e,t),(0,i.A)(e,[{key:"connect",value:function(){var t,e,r=this;(t=this.urlValue,e=e||{},new Promise((function(r,n){var i=new XMLHttpRequest,o=[],s=[],a={},c=function(){return{ok:2==(i.status/100|0),statusText:i.statusText,status:i.status,url:i.responseURL,text:function(){return Promise.resolve(i.responseText)},json:function(){return Promise.resolve(i.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([i.response]))},clone:c,headers:{keys:function(){return o},entries:function(){return s},get:function(t){return a[t.toLowerCase()]},has:function(t){return t.toLowerCase()in a}}}};for(var u in i.open(e.method||"get",t,!0),i.onload=function(){i.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,(function(t,e,r){o.push(e=e.toLowerCase()),s.push([e,r]),a[e]=a[e]?a[e]+","+r:r})),r(c())},i.onerror=n,i.withCredentials="include"==e.credentials,e.headers)i.setRequestHeader(u,e.headers[u]);i.send(e.body||null)}))).then((function(t){return t.text()})).then((function(t){for(var e=(new DOMParser).parseFromString(t,"text/html").querySelector("#standalone-content");e.firstChild;)r.element.appendChild(e.firstChild)}))}}])}(r(6782).xI);u.values={url:String}},5433:(t,e,r)=>{"use strict";var n=r(2128),i=r(2484),o=r(3625),s=r(2675),a=r(4700),c=r(9073),u=r(7769),l=r(8649),f=r(51),h=Object.assign,p=Object.defineProperty,d=i([].concat);t.exports=!h||s((function(){if(n&&1!==h({b:1},h(p({},"a",{enumerable:!0,get:function(){p(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},r=Symbol("assign detection"),i="abcdefghijklmnopqrst";return t[r]=7,i.split("").forEach((function(t){e[t]=t})),7!==h({},t)[r]||a(h({},e)).join("")!==i}))?function(t,e){for(var r=l(t),i=arguments.length,s=1,h=c.f,p=u.f;i>s;)for(var v,g=f(arguments[s++]),m=h?d(a(g),h(g)):a(g),y=m.length,b=0;y>b;)v=m[b++],n&&!o(p,g,v)||(r[v]=g[v]);return r}:h},5455:function(t,e,r){var n,i;"undefined"!=typeof window&&window,void 0===(i="function"==typeof(n=function(){"use strict";function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var r=this._events=this._events||{},n=r[t]=r[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var r=this._onceEvents=this._onceEvents||{};return(r[t]=r[t]||{})[e]=!0,this}},e.off=function(t,e){var r=this._events&&this._events[t];if(r&&r.length){var n=r.indexOf(e);return-1!=n&&r.splice(n,1),this}},e.emitEvent=function(t,e){var r=this._events&&this._events[t];if(r&&r.length){r=r.slice(0),e=e||[];for(var n=this._onceEvents&&this._onceEvents[t],i=0;i<r.length;i++){var o=r[i];n&&n[o]&&(this.off(t,o),delete n[o]),o.apply(this,e)}return this}},e.allOff=function(){delete this._events,delete this._onceEvents},t})?n.call(e,r,e,t):n)||(t.exports=i)},5511:(t,e,r)=>{var n,i,o;window,i=[r(5455),r(8179)],void 0===(o="function"==typeof(n=function(t,e){"use strict";function r(t){for(var e in t)return!1;return!0}var n=document.documentElement.style,i="string"==typeof n.transition?"transition":"WebkitTransition",o="string"==typeof n.transform?"transform":"WebkitTransform",s={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[i],a={transform:o,transition:i,transitionDuration:i+"Duration",transitionProperty:i+"Property",transitionDelay:i+"Delay"};function c(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}var u=c.prototype=Object.create(t.prototype);function l(t){return t.replace(/([A-Z])/g,(function(t){return"-"+t.toLowerCase()}))}u.constructor=c,u._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},u.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},u.getSize=function(){this.size=e(this.element)},u.css=function(t){var e=this.element.style;for(var r in t)e[a[r]||r]=t[r]},u.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),r=this.layout._getOption("originTop"),n=t[e?"left":"right"],i=t[r?"top":"bottom"],o=parseFloat(n),s=parseFloat(i),a=this.layout.size;-1!=n.indexOf("%")&&(o=o/100*a.width),-1!=i.indexOf("%")&&(s=s/100*a.height),o=isNaN(o)?0:o,s=isNaN(s)?0:s,o-=e?a.paddingLeft:a.paddingRight,s-=r?a.paddingTop:a.paddingBottom,this.position.x=o,this.position.y=s},u.layoutPosition=function(){var t=this.layout.size,e={},r=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop"),i=r?"paddingLeft":"paddingRight",o=r?"left":"right",s=r?"right":"left",a=this.position.x+t[i];e[o]=this.getXValue(a),e[s]="";var c=n?"paddingTop":"paddingBottom",u=n?"top":"bottom",l=n?"bottom":"top",f=this.position.y+t[c];e[u]=this.getYValue(f),e[l]="",this.css(e),this.emitEvent("layout",[this])},u.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},u.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},u._transitionTo=function(t,e){this.getPosition();var r=this.position.x,n=this.position.y,i=t==this.position.x&&e==this.position.y;if(this.setPosition(t,e),!i||this.isTransitioning){var o=t-r,s=e-n,a={};a.transform=this.getTranslate(o,s),this.transition({to:a,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})}else this.layoutPosition()},u.getTranslate=function(t,e){return"translate3d("+(t=this.layout._getOption("originLeft")?t:-t)+"px, "+(e=this.layout._getOption("originTop")?e:-e)+"px, 0)"},u.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},u.moveTo=u._transitionTo,u.setPosition=function(t,e){this.position.x=parseFloat(t),this.position.y=parseFloat(e)},u._nonTransition=function(t){for(var e in this.css(t.to),t.isCleaning&&this._removeStyles(t.to),t.onTransitionEnd)t.onTransitionEnd[e].call(this)},u.transition=function(t){if(parseFloat(this.layout.options.transitionDuration)){var e=this._transn;for(var r in t.onTransitionEnd)e.onEnd[r]=t.onTransitionEnd[r];for(r in t.to)e.ingProperties[r]=!0,t.isCleaning&&(e.clean[r]=!0);t.from&&(this.css(t.from),this.element.offsetHeight),this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0}else this._nonTransition(t)};var f="opacity,"+l(o);u.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:f,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(s,this,!1)}},u.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},u.onotransitionend=function(t){this.ontransitionend(t)};var h={"-webkit-transform":"transform"};u.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,n=h[t.propertyName]||t.propertyName;delete e.ingProperties[n],r(e.ingProperties)&&this.disableTransition(),n in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[n]),n in e.onEnd&&(e.onEnd[n].call(this),delete e.onEnd[n]),this.emitEvent("transitionEnd",[this])}},u.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(s,this,!1),this.isTransitioning=!1},u._removeStyles=function(t){var e={};for(var r in t)e[r]="";this.css(e)};var p={transitionProperty:"",transitionDuration:"",transitionDelay:""};return u.removeTransitionStyles=function(){this.css(p)},u.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},u.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},u.remove=function(){i&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",(function(){this.removeElem()})),this.hide()):this.removeElem()},u.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={};e[this.getHideRevealTransitionEndProperty("visibleStyle")]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},u.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},u.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var r in e)return r},u.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={};e[this.getHideRevealTransitionEndProperty("hiddenStyle")]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},u.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},u.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},c})?n.apply(e,i):n)||(t.exports=o)},5514:(t,e,r)=>{"use strict";var n=r(3625),i=r(321),o=r(4102),s=TypeError;t.exports=function(t,e){var r,a;if("string"===e&&i(r=t.toString)&&!o(a=n(r,t)))return a;
25976if(i(r=t.valueOf)&&!o(a=n(r,t)))return a;if("string"!==e&&i(r=t.toString)&&!o(a=n(r,t)))return a;throw new s("Can't convert object to primitive value")}},5548:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>p});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973),c=(r(3348),r(3078),r(1759),r(2901),r(9070)),u=r(5814),l=r(6782);function f(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(f=function(){return!!t})()}var h="is-collapsing",p=function(t){function e(){return(0,n.A)(this,e),t=this,r=e,i=arguments,r=(0,s.A)(r),(0,o.A)(t,f()?Reflect.construct(r,i||[],(0,s.A)(t).constructor):r.apply(t,i));var t,r,i}return(0,a.A)(e,t),(0,i.A)(e,[{key:"connect",value:function(){(0,u.wA)(this);var t=window.matchMedia(this.mediaQueryValue);t.addListener(this.onMediaChange.bind(this)),this.onMediaChange(t)}},{key:"toggle",value:function(){var t=this;this.rootTarget.classList.add(h),this.isShown?(this.rootTarget.style.height="".concat(this.contentHeight,"px"),(0,c.A)((function(){t.rootTarget.style.height="0px",t.dispatch("close")}))):(this.rootTarget.style.height="0px",(0,c.A)((function(){t.rootTarget.style.height="".concat(t.contentHeight,"px"),t.dispatch("open")}))),this.isShown=!this.isShown}},{key:"postprocess",value:function(){this.rootTarget.classList.remove(h),this.rootTarget.style.height=""}},{key:"onMediaChange",value:function(t){this.mediaQueryValue&&(t.matches?(this.buttonTarget.setAttribute("aria-expanded","false"),this.rootTarget.setAttribute("aria-hidden","true")):(this.buttonTarget.setAttribute("aria-expanded","true"),this.rootTarget.setAttribute("aria-hidden","false")))}},{key:"isShown",get:function(){return"true"!==this.rootTarget.getAttribute("aria-hidden")},set:function(t){this.buttonTarget.setAttribute("aria-expanded",t),this.rootTarget.setAttribute("aria-hidden",!t)}},{key:"contentHeight",get:function(){return this.rootTarget.firstElementChild.offsetHeight}},{key:"mediaQueryValue",get:function(){var t;switch(this.abledScreenValue){case"small":t="(max-width: 60.5625em)";break;case"extraSmall":t="(max-width: 47.9375em)";break;case"large":t="(min-width: 60.625em)";break;case"extraLarge":t="(min-width: 77.5625em)";break;default:t=""}return t}}])}(l.xI);p.targets=["button","root"],p.values={abledScreen:String}},5549:(t,e,r)=>{"use strict";var n=r(8810),i=r(2961).find,o=r(2153),s="find",a=!0;s in[]&&Array(1)[s]((function(){a=!1})),n({target:"Array",proto:!0,forced:a},{find:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),o(s)},5600:t=>{"use strict";t.exports=["Float16Array","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]},5672:(t,e,r)=>{"use strict";var n=r(4175);e.f=n},5712:(t,e,r)=>{"use strict";var n=r(2675),i=r(4102),o=r(2748),s=r(9432),a=Object.isExtensible,c=n((function(){a(1)}));t.exports=c||s?function(t){return!!i(t)&&((!s||"ArrayBuffer"!==o(t))&&(!a||a(t)))}:a},5719:(t,e,r)=>{"use strict";var n=r(7928),i=r(321),o=r(2748),s=r(4175)("toStringTag"),a=Object,c="Arguments"===o(function(){return arguments}());t.exports=n?o:function(t){var e,r,n;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=a(t),s))?r:c?o(e):"Object"===(n=o(e))&&i(e.callee)?"Arguments":n}},5720:t=>{"use strict";t.exports=Math.round},5722:(t,e,r)=>{"use strict";var n=r(2675),i=r(8052).RegExp;t.exports=n((function(){var t=i("(?<a>b)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$<a>c")}))},5734:(t,e,r)=>{"use strict";r(4267);var n,i,o=r(8810),s=r(3625),a=r(321),c=r(659),u=r(7267),l=(n=!1,(i=/[ac]/).exec=function(){return n=!0,/./.exec.apply(this,arguments)},!0===i.test("abc")&&n),f=/./.test;o({target:"RegExp",proto:!0,forced:!l},{test:function(t){var e=c(this),r=u(t),n=e.exec;if(!a(n))return s(f,e,r);var i=s(n,e,r);return null!==i&&(c(i),!0)}})},5755:(t,e,r)=>{"use strict";var n=r(7837),i=TypeError;t.exports=function(t,e){if(n(e,t))return t;throw new i("Incorrect invocation")}},5800:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>d});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973),c=r(6782),u=r(2492);r(7575),r(6315),r(391),r(8740),r(6770),r(7372),r(2614),r(9872),r(5030),r(3348),r(3082),r(4034),r(9892),r(2558),r(6160),r(8021),r(1759),r(4267),r(5734),r(3049),r(7560),r(2901),r(995);function l(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return f(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?f(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,a=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return s=t.done,t},e:function(t){a=!0,o=t}
25976,f:function(){try{s||null==r.return||r.return()}finally{if(a)throw o}}}}function f(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function h(t){var e=!1,r=null;function n(t,e,r){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];e instanceof HTMLInputElement&&(e.indeterminate=n,e.checked!==r&&(e.checked=r,setTimeout((function(){var r=new CustomEvent("change",{bubbles:!0,cancelable:!1,detail:{relatedTarget:t}});e.dispatchEvent(r)}))))}function i(i){var o=i.target;o instanceof Element&&(o.hasAttribute("data-check-all")?function(e){if(e instanceof CustomEvent&&e.detail){var i=e.detail.relatedTarget;if(i&&i.hasAttribute("data-check-all-item"))return}var o=e.target;if(!(o instanceof HTMLInputElement))return;r=null;var a,c=l(t.querySelectorAll("[data-check-all-item]"));try{for(c.s();!(a=c.n()).done;){n(o,a.value,o.checked)}}catch(t){c.e(t)}finally{c.f()}o.indeterminate=!1,s()}(i):o.hasAttribute("data-check-all-item")&&function(i){if(i instanceof CustomEvent&&i.detail){var o=i.detail.relatedTarget;if(o&&(o.hasAttribute("data-check-all")||o.hasAttribute("data-check-all-item")))return}var a=i.target;if(!(a instanceof HTMLInputElement))return;var c=Array.from(t.querySelectorAll("[data-check-all-item]"));if(e&&r){var f,h=[c.indexOf(r),c.indexOf(a)].sort(),p=(0,u.A)(h,2),d=p[0],v=p[1],g=l(c.slice(d,+v+1||9e9));try{for(g.s();!(f=g.n()).done;){n(a,f.value,a.checked)}}catch(t){g.e(t)}finally{g.f()}}e=!1,r=a;var m=t.querySelector("[data-check-all]");if(m){var y=c.length,b=c.filter((function(t){return t instanceof HTMLInputElement&&t.checked})).length;n(a,m,b===y,y>b&&b>0)}s()}(i))}function o(t){t.target instanceof Element&&((t.target instanceof HTMLLabelElement&&t.target.control||t.target).hasAttribute("data-check-all-item")&&(e=t.shiftKey))}function s(){var e=t.querySelector("[data-check-all-count]");if(e){var r=t.querySelectorAll("[data-check-all-item]:checked").length;e.textContent=r.toString()}}return t.addEventListener("mousedown",o),t.addEventListener("change",i),{unsubscribe:function(){t.removeEventListener("mousedown",o),t.removeEventListener("change",i)}}}function p(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(p=function(){return!!t})()}var d=function(t){function e(){return(0,n.A)(this,e),t=this,r=e,i=arguments,r=(0,s.A)(r),(0,o.A)(t,p()?Reflect.construct(r,i||[],(0,s.A)(t).constructor):r.apply(t,i));var t,r,i}return(0,a.A)(e,t),(0,i.A)(e,[{key:"connect",value:function(){h(this.element)}}])}(c.xI)},5814:(t,e,r)=>{"use strict";r.d(e,{wA:()=>$,v1:()=>z});var n=r(2492),i=r(3008),o=r(3134),s=r(6973),a=r(6710),c=r(2561);r(6192),r(7575),r(4958),r(6315),r(391),r(8740),r(6770),r(3299),r(7372),r(5549),r(5249),r(2614),r(4707),r(9872),r(5030),r(3348),r(562),r(3838),r(3082),r(7642),r(9892),r(3078),r(2558),r(6160),r(9224),r(8021),r(9064),r(3376),r(9585),r(9343),r(5424),r(4702),r(6461),r(7476),r(1759),r(2304),r(6558),r(8220),r(6325),r(8037),r(4267),r(6893),r(3049),r(7567),r(5734),r(7560),r(9028),r(7963),r(3406),r(3544),r(2901),r(995);function u(t){return t.replace(/(?:[_-])([a-z0-9])/g,((t,e)=>e.toUpperCase()))}function l(t){return u(t.replace(/--/g,"-").replace(/__/g,"_"))}function f(t){return t.charAt(0).toUpperCase()+t.slice(1)}function h(t){return t.replace(/([A-Z])/g,((t,e)=>`-${e.toLowerCase()}`))}function p(t){return null!=t}function d(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function v(t,e){const r=m(t);return Array.from(r.reduce(((t,r)=>(function(t,e){const r=t[e];return Array.isArray(r)?r:[]}(r,e).forEach((e=>t.add(e))),t)),new Set))}function g(t,e){return m(t).reduce(((t,r)=>(t.push(...function(t,e){const r=t[e];return r?Object.keys(r).map((t=>[t,r[t]])):[]}(r,e)),t)),[])}function m(t){const e=[];for(;t;)e.push(t),t=Object.getPrototypeOf(t);return e.reverse()}"function"==typeof Object.getOwnPropertySymbols||Object.getOwnPropertyNames,(()=>{function t(t){function e(){return Reflect.construct(t,arguments,new.target)}return e.prototype=Object.create(t.prototype,{constructor:{value:e}}),Reflect.setPrototypeOf(e,t),e}try{return function(){const e=t((function(){this.a.call(this)}));e.prototype.a=function(){},new e}(),t}catch(t){return t=>class extends t{}}})();Object.assign(Object.assign({enter:"Enter",tab:"Tab",esc:"Escape",space:" ",up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight",home:"Home",end:"End",page_up:"PageUp",page_down:"PageDown"},y("abcdefghijklmnopqrstuvwxyz".split("").map((t=>[t,t])))),y("0123456789".split("").map((t=>[t,t]))));function y(t){return t.reduce(((t,[e,r])=>Object.assign(Object.assign({},t),{[e]:r})),{})}function b(t,e,r){return t.application.getControllerForElementAndIdentifier(e,r)}function w(t,e,r){let n=b(t,e,r);return n||(t.application.router.proposeToConnectScopeForElementAndIdentifier(e,r),n=b(t,e,r),n||void 0)}function x([t,e],r){return function(t){const{token:e,typeDefinition:r}=t,n=`${h(e)}-value`,i=function(t){const{controller:e,token:r,typeDefinition:n}=t,i={controller:e,token:r,typeObject:n},o=function(t){const{controller:e,token:r,typeObject:n}=t,i=p(n.type),o=p(n.default),s=i&&o,a=i&&!o,c=!i&&o,u=S(n.type),l=A(t.typeObject.default);if(a)return u;if(c)return l;if(u!==l){throw new Error(`The specified default value for the Stimulus Value "${e?`${e}.${r}`:r}" must match the defined type "${u}". The provided default value of "${n.default}" is of type "${l}".`)}if(s)return u}(i),s=A(n),a=S(n),c=o||s||a;if(c)return c;const u=e?`${e}.${n}`:r;throw new Error(`Unknown value type "${u}" for "${r}" value`)}(t);return{type:i,key:n,name:u(n),get defaultValue(){return function(t){const e=S(t);if(e)return O[e];const r=d(t,"default"),n=d(t,"type"),i=t;if(r)return i.default;if(n){const{type:t}=i,e=S(t);if(e)return O[e]}return t}(r)},get hasCustomDefaultValue(){return void 0!==A(r)}
25976,reader:E[i],writer:k[i]||k.default}}({controller:r,token:t,typeDefinition:e})}function S(t){switch(t){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function A(t){switch(typeof t){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}return Array.isArray(t)?"array":"[object Object]"===Object.prototype.toString.call(t)?"object":void 0}const O={get array(){return[]},boolean:!1,number:0,get object(){return{}},string:""},E={array(t){const e=JSON.parse(t);if(!Array.isArray(e))throw new TypeError(`expected value of type "array" but instead got value "${t}" of type "${A(e)}"`);return e},boolean:t=>!("0"==t||"false"==String(t).toLowerCase()),number:t=>Number(t.replace(/_/g,"")),object(t){const e=JSON.parse(t);if(null===e||"object"!=typeof e||Array.isArray(e))throw new TypeError(`expected value of type "object" but instead got value "${t}" of type "${A(e)}"`);return e},string:t=>t},k={default:function(t){return`${t}`},array:T,object:T};function T(t){return JSON.stringify(t)}class _{constructor(t){this.context=t}static get shouldLoad(){return!0}static afterLoad(t,e){}get application(){return this.context.application}get scope(){return this.context.scope}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get targets(){return this.scope.targets}get outlets(){return this.scope.outlets}get classes(){return this.scope.classes}get data(){return this.scope.data}initialize(){}connect(){}disconnect(){}dispatch(t,{target:e=this.element,detail:r={},prefix:n=this.identifier,bubbles:i=!0,cancelable:o=!0}={}){const s=new CustomEvent(n?`${n}:${t}`:t,{detail:r,bubbles:i,cancelable:o});return e.dispatchEvent(s),s}}function C(t,e,r){return e=(0,o.A)(e),(0,i.A)(t,P()?Reflect.construct(e,r||[],(0,o.A)(t).constructor):e.apply(t,r))}function P(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(P=function(){return!!t})()}_.blessings=[function(t){return v(t,"classes").reduce(((t,e)=>{return Object.assign(t,(r=e,{[`${r}Class`]:{get(){const{classes:t}=this;if(t.has(r))return t.get(r);{const e=t.getAttributeName(r);throw new Error(`Missing attribute "${e}"`)}}},[`${r}Classes`]:{get(){return this.classes.getAll(r)}},[`has${f(r)}Class`]:{get(){return this.classes.has(r)}}}));var r}),{})},function(t){return v(t,"targets").reduce(((t,e)=>{return Object.assign(t,(r=e,{[`${r}Target`]:{get(){const t=this.targets.find(r);if(t)return t;throw new Error(`Missing target element "${r}" for "${this.identifier}" controller`)}},[`${r}Targets`]:{get(){return this.targets.findAll(r)}},[`has${f(r)}Target`]:{get(){return this.targets.has(r)}}}));var r}),{})},function(t){const e=g(t,"values"),r={valueDescriptorMap:{get(){return e.reduce(((t,e)=>{const r=x(e,this.identifier),n=this.data.getAttributeNameForKey(r.key);return Object.assign(t,{[n]:r})}),{})}}};return e.reduce(((t,e)=>Object.assign(t,function(t,e){const r=x(t,e),{key:n,name:i,reader:o,writer:s}=r;return{[i]:{get(){const t=this.data.get(n);return null!==t?o(t):r.defaultValue},set(t){void 0===t?this.data.delete(n):this.data.set(n,s(t))}},[`has${f(i)}`]:{get(){return this.data.has(n)||r.hasCustomDefaultValue}}}}(e))),r)},function(t){return v(t,"outlets").reduce(((t,e)=>Object.assign(t,function(t){const e=l(t);return{[`${e}Outlet`]:{get(){const e=this.outlets.find(t),r=this.outlets.getSelectorForOutletName(t);if(e){const r=w(this,e,t);if(r)return r;throw new Error(`The provided outlet element is missing an outlet controller "${t}" instance for host controller "${this.identifier}"`)}throw new Error(`Missing outlet element "${t}" for host controller "${this.identifier}". Stimulus couldn't find a matching outlet element using selector "${r}".`)}},[`${e}Outlets`]:{get(){const e=this.outlets.findAll(t);return e.length>0?e.map((e=>{const r=w(this,e,t);if(r)return r;console.warn(`The provided outlet element is missing an outlet controller "${t}" instance for host controller "${this.identifier}"`,e)})).filter((t=>t)):[]}},[`${e}OutletElement`]:{get(){const e=this.outlets.find(t),r=this.outlets.getSelectorForOutletName(t);if(e)return e;throw new Error(`Missing outlet element "${t}" for host controller "${this.identifier}". Stimulus couldn't find a matching outlet element using selector "${r}".`)}},[`${e}OutletElements`]:{get(){return this.outlets.findAll(t)}},[`has${f(e)}Outlet`]:{get(){return this.outlets.has(t)}}}}(e))),{})}],_.targets=[],_.outlets=[],_.values={};var I=function(t,e){var r=t[e];return"function"==typeof r?r:function(){}},j=function(t,e,r){var n=t;return!0===r?n="".concat(e.identifier,":").concat(t):"string"==typeof r&&(n="".concat(r,":").concat(t)),n},M=function(t,e,r){var n=e||{bubbles:!0,cancelable:!0,composed:!0},i=n.bubbles,o=n.cancelable,s=n.composed;return e&&Object.assign(r,{originalEvent:e}),new CustomEvent(t,{bubbles:i,cancelable:o,composed:s,detail:r})};var L={debug:!1,logger:console,dispatchEvent:!0,eventPrefix:!0},N=(0,a.A)((function t(e){var r,n,i,o=this,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,c.A)(this,t),this.log=function(t,e){o.debug&&(o.logger.groupCollapsed("%c".concat(o.controller.identifier," %c#").concat(t),"color: #3B82F6","color: unset"),o.logger.log(Object.assign({controllerId:o.controllerId},e)),o.logger.groupEnd())},this.warn=function(t){o.logger.warn("%c".concat(o.controller.identifier," %c").concat(t),"color: #3B82F6; font-weight: bold","color: unset")},this.dispatch=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(o.dispatchEvent){var r=e.event,n=function(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(t);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(t,n[i])&&(r[n[i]]=t[n[i]])}return r}(e,["event"]),i=o.extendedEvent(t,r||null,n);o.targetElement.dispatchEvent(i),o.log("dispatchEvent",Object.assign({eventName:i.type},n))}},this.call=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=o.controller[t];if("function"==typeof r)return r.call(o.controller,e)},this.extendedEvent=function(t,e,r){var n=e||{bubbles:!0,cancelable:!0,composed:!0},i=n.bubbles,s=n.cancelable,a=n.composed;return e&&Object.assign(r,{originalEvent:e}),new CustomEvent(o.composeEventName(t),{bubbles:i,cancelable:s,composed:a,detail:r})},this.composeEventName=function(t){var e=t;return!0===o.eventPrefix?e="".concat(o.controller.identifier,":").concat(t):"string"==typeof o.eventPrefix&&(e="".concat(o.eventPrefix,":").concat(t)),e},this.debug=null!==(n=null!==(r=null==s?void 0:s.debug)&&void 0!==r?r:e.application.stimulusUseDebug)&&void 0!==n?n:L.debug,this.logger=null!==(i=null==s?void 0:s.logger)&&void 0!==i?i:L.logger,this.controller=e,this.controllerId=e.element.i
25976d||e.element.dataset.id,this.targetElement=(null==s?void 0:s.element)||e.element;var a=Object.assign({},L,s),u=a.dispatchEvent,l=a.eventPrefix;Object.assign(this,{dispatchEvent:u,eventPrefix:l}),this.controllerInitialize=e.initialize.bind(e),this.controllerConnect=e.connect.bind(e),this.controllerDisconnect=e.disconnect.bind(e)})),B=!0,R=!0,D=!0,F=function(t){function e(t){var r,n,i,o,s,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,c.A)(this,e),(r=C(this,e,[t,a])).dispatch=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=r,i=n.controller,o=n.targetElement,s=n.eventPrefix,a=n.bubbles,c=n.cancelable,u=n.log,l=n.warn;Object.assign(e,{controller:i});var f=j(t,r.controller,s),h=new CustomEvent(f,{detail:e,bubbles:a,cancelable:c});return o.dispatchEvent(h),l("`useDispatch()` is deprecated. Please use the built-in `this.dispatch()` function from Stimulus. You can find more information on how to upgrade at: https://stimulus-use.github.io/stimulus-use/#/use-dispatch"),u("dispatch",{eventName:f,detail:e,bubbles:a,cancelable:c}),h},r.targetElement=null!==(n=a.element)&&void 0!==n?n:t.element,r.eventPrefix=null!==(i=a.eventPrefix)&&void 0!==i?i:B,r.bubbles=null!==(o=a.bubbles)&&void 0!==o?o:R,r.cancelable=null!==(s=a.cancelable)&&void 0!==s?s:D,r.enhanceController(),r}return(0,s.A)(e,t),(0,a.A)(e,[{key:"enhanceController",value:function(){Object.assign(this.controller,{dispatch:this.dispatch})}}])}(N),$=function(t){return new F(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{})};(function(t){function e(){return(0,c.A)(this,e),C(this,e,arguments)}return(0,s.A)(e,t),(0,a.A)(e)}(_)).debounces=[];var H={dispatchEvent:!0,eventPrefix:!0,visibleAttribute:"isVisible"},z=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t,i=Object.assign({},H,e),o=i.dispatchEvent,s=i.eventPrefix,a=i.visibleAttribute,c=(null==e?void 0:e.element)||r.element;r.intersectionElements||(r.intersectionElements=[]),r.intersectionElements.push(c);var u=new IntersectionObserver((function(t){var e=(0,n.A)(t,1)[0];e.isIntersecting?l(e):c.hasAttribute(a)&&f(e)}),e),l=function(t){if(c.setAttribute(a,"true"),I(r,"appear").call(r,t,u),o){var e=j("appear",r,s),n=M(e,null,{controller:r,entry:t,observer:u});c.dispatchEvent(n)}},f=function(t){if(c.removeAttribute(a),I(r,"disappear").call(r,t,u),o){var e=j("disappear",r,s),n=M(e,null,{controller:r,entry:t,observer:u});c.dispatchEvent(n)}},h=r.disconnect.bind(r),p=function(){u.observe(c)},d=function(){u.unobserve(c)},v=function(){return r.intersectionElements.every((function(t){return t.hasAttribute(a)}))},g=v;return Object.assign(r,{isVisible:g,noneVisible:function(){return 0===r.intersectionElements.filter((function(t){return t.hasAttribute(a)})).length},oneVisible:function(){return 1===r.intersectionElements.filter((function(t){return t.hasAttribute(a)})).length},atLeastOneVisible:function(){return r.intersectionElements.some((function(t){return t.hasAttribute(a)}))},allVisible:v,disconnect:function(){d(),h()}}),p(),[p,d]};(function(t){function e(){return(0,c.A)(this,e),C(this,e,arguments)}return(0,s.A)(e,t),(0,a.A)(e)}(_)).throttles=[]},5875:(t,e,r)=>{var n=r(9323);t.exports=function(t,e){return n(t)&&n(e)?Number(t)+Number(e):"string"==typeof t&&"string"==typeof e?t+e:""}},5927:(t,e,r)=>{"use strict";var n=r(4461),i=r(321),o=r(8649),s=r(3779),a=r(2407),c=s("IE_PROTO"),u=Object,l=u.prototype;t.exports=a?u.getPrototypeOf:function(t){var e=o(t);if(n(e,c))return e[c];var r=e.constructor;return i(r)&&e instanceof r?r.prototype:e instanceof u?l:null}},5936:t=>{"use strict";t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},5952:(t,e,r)=>{"use strict";var n=r(62),i=Object.prototype.toString,o=Object.prototype.hasOwnProperty;t.exports=function(t,e,r){if(!n(e))throw new TypeError("iterator must be a function");var s,a;arguments.length>=3&&(s=r),a=t,"[object Array]"===i.call(a)?function(t,e,r){for(var n=0,i=t.length;n<i;n++)o.call(t,n)&&(null==r?e(t[n],n,t):e.call(r,t[n],n,t))}(t,e,s):"string"==typeof t?function(t,e,r){for(var n=0,i=t.length;n<i;n++)null==r?e(t.charAt(n),n,t):e.call(r,t.charAt(n),n,t)}(t,e,s):function(t,e,r){for(var n in t)o.call(t,n)&&(null==r?e(t[n],n,t):e.call(r,t[n],n,t))}(t,e,s)}},5964:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>d});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973),c=r(6782);r(8135),r(7754),r(7476);function u(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)t[n]=r[n]}return t}var l=function t(e,r){function n(t,n,i){if("undefined"!=typeof document){"number"==typeof(i=u({},r,i)).expires&&(i.expires=new Date(Date.now()+864e5*i.expires)),i.expires&&(i.expires=i.expires.toUTCString()),t=encodeURIComponent(t).replace(/%(2[346B]|5E|60|7C)/g,decode
25976URIComponent).replace(/[()]/g,escape);var o="";for(var s in i)i[s]&&(o+="; "+s,!0!==i[s]&&(o+="="+i[s].split(";")[0]));return document.cookie=t+"="+e.write(n,t)+o}}return Object.create({set:n,get:function(t){if("undefined"!=typeof document&&(!arguments.length||t)){for(var r=document.cookie?document.cookie.split("; "):[],n={},i=0;i<r.length;i++){var o=r[i].split("="),s=o.slice(1).join("=");try{var a=decodeURIComponent(o[0]);if(n[a]=e.read(s,a),t===a)break}catch(t){}}return t?n[t]:n}},remove:function(t,e){n(t,"",u({},e,{expires:-1}))},withAttributes:function(e){return t(this.converter,u({},this.attributes,e))},withConverter:function(e){return t(u({},this.converter,e),this.attributes)}},{attributes:{value:Object.freeze(r)},converter:{value:Object.freeze(e)}})}({read:function(t){return'"'===t[0]&&(t=t.slice(1,-1)),t.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(t){return encodeURIComponent(t).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"}),f=window.kpi_cookiesettings.cookieDomain,h="kpi_discon";function p(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(p=function(){return!!t})()}var d=function(t){function e(){return(0,n.A)(this,e),t=this,r=e,i=arguments,r=(0,s.A)(r),(0,o.A)(t,p()?Reflect.construct(r,i||[],(0,s.A)(t).constructor):r.apply(t,i));var t,r,i}return(0,a.A)(e,t),(0,i.A)(e,[{key:"connect",value:function(){this.element.switchController.checked=Boolean(JSON.parse(l.get(h)||"0"))}},{key:"change",value:function(t){var e,r,n=t.detail.checked;e=n,r=JSON.stringify(e?1:0),l.set(h,r,{path:"/",domain:f})}}])}(c.xI)},5966:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>f});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973),c=r(6782);function u(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(u=function(){return!!t})()}var l=11===document.documentMode,f=function(t){function e(){return(0,n.A)(this,e),t=this,r=e,i=arguments,r=(0,s.A)(r),(0,o.A)(t,u()?Reflect.construct(r,i||[],(0,s.A)(t).constructor):r.apply(t,i));var t,r,i}return(0,a.A)(e,t),(0,i.A)(e,[{key:"connect",value:function(){l&&this.element.classList.add(this.ie11Class)}}])}(c.xI);f.classes=["ie11"]},5969:t=>{t.exports=function(){for(var t=0;t<arguments.length-1;t++)if(null!=arguments[t])return arguments[t];return""}},5993:(t,e,r)=>{"use strict";var n,i=r(8682),o=r(3663)(/^\s*(?:function)?\*/),s=r(8118)(),a=r(7582),c=i("Object.prototype.toString"),u=i("Function.prototype.toString");t.exports=function(t){if("function"!=typeof t)return!1;if(o(u(t)))return!0;if(!s)return"[object GeneratorFunction]"===c(t);if(!a)return!1;if(void 0===n){var e=function(){if(!s)return!1;try{return Function("return function*() {}")()}catch(t){}}();n=!!e&&a(e)}return a(t)===n}},6005:(t,e,r)=>{"use strict";var n=r(2128),i=r(4113),o=r(706),s=r(659),a=r(1261),c=TypeError,u=Object.defineProperty,l=Object.getOwnPropertyDescriptor,f="enumerable",h="configurable",p="writable";e.f=n?o?function(t,e,r){if(s(t),e=a(e),s(r),"function"==typeof t&&"prototype"===e&&"value"in r&&p in r&&!r[p]){var n=l(t,e);n&&n[p]&&(t[e]=r.value,r={configurable:h in r?r[h]:n[h],enumerable:f in r?r[f]:n[f],writable:!1})}return u(t,e,r)}:u:function(t,e,r){if(s(t),e=a(e),s(r),i)try{return u(t,e,r)}catch(t){}if("get"in r||"set"in r)throw new c("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},6007:t=>{"use strict";t.exports=!1},6011:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>f});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973),c=r(6782),u=r(5814);function l(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(l=function(){return!!t})()}var f=function(t){function e(){return(0,n.A)(this,e),t=this,r=e,i=arguments,r=(0,s.A)(r),(0,o.A)(t,l()?Reflect.construct(r,i||[],(0,s.A)(t).constructor):r.apply(t,i));var t,r,i}return(0,a.A)(e,t),(0,i.A)(e,[{key:"connect",value:function(){(0,u.v1)(this)}}])}(c.xI)},6015:t=>{t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},6038:(t,e,r)=>{"use strict";var n=r(9455),i=r(6005);t.exports=function(t,e,r){return r.get&&n(r.get,e,{getter:!0}),r.set&&n(r.set,e,{setter:!0}),i.f(t,e,r)}},6057:(t,e,r)=>{"use strict";var n=r(2484),i=r(4334);t.exports=function(t,e,r){try{return n(i(Object.getOwnPropertyDescriptor(t,e)[r]))}catch(t){}}},6099:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>g});r(8037);var n=r(7431),i=r(2561),o=r(6710),s=r(3008),a=r(3134),c=r(6973),u=r(6192),l=r.n(u),f=(r(1759),r(6558),r(6782)),h=r(9070),p=r(9272),d=r(982);function v(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(v=function(){return!!t})()}var g=function(t){function e(){return(0,i.A)(this,e),t=this,r=e,n=arguments,r=(0,a.A)(r),(0,s.A)(t,v
25976()?Reflect.construct(r,n||[],(0,a.A)(t).constructor):r.apply(t,n));var t,r,n}return(0,c.A)(e,t),(0,o.A)(e,[{key:"connect",value:(u=(0,n.A)(l().mark((function t(){var e=this;return l().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.focusTrap=(0,d.K)(this.element,{onActivate:function(){document.body.style.overflow="hidden"},onDeactivate:function(){e.element.setAttribute("aria-hidden","true"),document.body.style.overflow=""}}),t.next=3,new Promise(h.A);case 3:return this.element.removeAttribute("aria-hidden"),t.next=6,(0,p.W)(this.element,"visibility","visible");case 6:this.focusTrap.activate();case 7:case"end":return t.stop()}}),t,this)}))),function(){return u.apply(this,arguments)})},{key:"close",value:(r=(0,n.A)(l().mark((function t(){return l().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.focusTrap.deactivate(),t.next=3,(0,p.W)(this.element,"visibility","hidden");case 3:this.element.remove();case 4:case"end":return t.stop()}}),t,this)}))),function(){return r.apply(this,arguments)})}]);var r,u}(f.xI)},6108:(t,e,r)=>{"use strict";var n=r(8810),i=r(4130).left,o=r(8754),s=r(2763);n({target:"Array",proto:!0,forced:!r(6125)&&s>79&&s<83||!o("reduce")},{reduce:function(t){var e=arguments.length;return i(this,t,e,e>1?arguments[1]:void 0)}})},6125:(t,e,r)=>{"use strict";var n=r(6627);t.exports="NODE"===n},6160:(t,e,r)=>{"use strict";var n=r(8810),i=r(8052),o=r(5755),s=r(659),a=r(321),c=r(5927),u=r(6038),l=r(4028),f=r(2675),h=r(4461),p=r(4175),d=r(3597).IteratorPrototype,v=r(2128),g=r(6007),m="constructor",y="Iterator",b=p("toStringTag"),w=TypeError,x=i[y],S=g||!a(x)||x.prototype!==d||!f((function(){x({})})),A=function(){if(o(this,d),c(this)===d)throw new w("Abstract class Iterator not directly constructable")},O=function(t,e){v?u(d,t,{configurable:!0,get:function(){return e},set:function(e){if(s(this),this===d)throw new w("You can't redefine this property");h(this,t)?this[t]=e:l(this,t,e)}}):d[t]=e};h(d,b)||O(b,y),!S&&h(d,m)&&d[m]!==Object||O(m,A),A.prototype=d,n({global:!0,constructor:!0,forced:S},{Iterator:A})},6184:t=>{t.exports=function(t){return null!=t&&"object"==typeof t}},6192:(t,e,r)=>{var n=r(9541)();t.exports=n;try{regeneratorRuntime=n}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}},6218:(t,e,r)=>{var n=r(9830),i=r(9592),o=r(4683),s=r(6015);t.exports=function(t,e,r){if(!s(r))return!1;var a=typeof e;return!!("number"==a?i(r)&&o(e,r.length):"string"==a&&e in r)&&n(r[e],t)}},6221:(t,e,r)=>{"use strict";var n=r(3625),i=r(4334),o=r(659),s=r(8379),a=r(4951),c=TypeError;t.exports=function(t,e){var r=arguments.length<2?a(t):e;if(i(r))return o(n(r,t));throw new c(s(t)+" is not iterable")}},6248:t=>{t.exports=function(t){var e=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__,r=!1;return e?(t.devtools||(t.devtools=e.connect(),t.devtools.subscribe((function(e){"DISPATCH"===e.type&&e.state&&(r="JUMP_TO_ACTION"===e.payload.type||"JUMP_TO_STATE"===e.payload.type,t.setState(JSON.parse(e.state),!0))})),t.devtools.init(t.getState()),t.subscribe((function(e,n){var i=n&&n.name||"setState";r?r=!1:t.devtools.send(i,e)}))),t):(console.warn("Please install/enable Redux devtools extension"),t.devtools=null,t)}},6315:(t,e,r)=>{"use strict";var n=r(8810),i=r(2128),o=r(8052),s=r(2484),a=r(4461),c=r(321),u=r(7837),l=r(7267),f=r(6038),h=r(1704),p=o.Symbol,d=p&&p.prototype;if(i&&c(p)&&(!("description"in d)||void 0!==p().description)){var v={},g=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:l(arguments[0]),e=u(d,this)?new p(t):void 0===t?p():p(t);return""===t&&(v[e]=!0),e};h(g,p),g.prototype=d,d.constructor=g;var m="Symbol(description detection)"===String(p("description detection")),y=s(d.valueOf),b=s(d.toString),w=/^Symbol\((.*)\)[^)]+$/,x=s("".replace),S=s("".slice);f(d,"description",{configurable:!0,get:function(){var t=y(this);if(a(v,t))return"";var e=b(t),r=m?S(e,7,-1):x(e,w,"$1");return""===r?void 0:r}}),n({global:!0,constructor:!0,forced:!0},{Symbol:g})}},6325:(t,e,r)=>{"use strict";
25976var n=r(2128),i=r(991),o=r(2748),s=r(6038),a=r(6369).get,c=RegExp.prototype,u=TypeError;n&&i&&s(c,"dotAll",{configurable:!0,get:function(){if(this!==c){if("RegExp"===o(this))return!!a(this).dotAll;throw new u("Incompatible receiver, RegExp required")}}})},6327:(t,e,r)=>{"use strict";var n=r(8810),i=r(2484),o=r(6617),s=r(4102),a=r(4461),c=r(6005).f,u=r(4956),l=r(6766),f=r(5712),h=r(2868),p=r(9644),d=!1,v=h("meta"),g=0,m=function(t){c(t,v,{value:{objectID:"O"+g++,weakData:{}}})},y=t.exports={enable:function(){y.enable=function(){},d=!0;var t=u.f,e=i([].splice),r={};r[v]=1,t(r).length&&(u.f=function(r){for(var n=t(r),i=0,o=n.length;i<o;i++)if(n[i]===v){e(n,i,1);break}return n},n({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:l.f}))},fastKey:function(t,e){if(!s(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!a(t,v)){if(!f(t))return"F";if(!e)return"E";m(t)}return t[v].objectID},getWeakData:function(t,e){if(!a(t,v)){if(!f(t))return!0;if(!e)return!1;m(t)}return t[v].weakData},onFreeze:function(t){return p&&d&&f(t)&&!a(t,v)&&m(t),t}};o[v]=!0},6335:(t,e,r)=>{"use strict";var n=r(8810),i=r(8948);n({global:!0,forced:parseFloat!==i},{parseFloat:i})},6356:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>g});r(8037);var n=r(7431),i=r(2561),o=r(6710),s=r(3008),a=r(3134),c=r(6973),u=r(6192),l=r.n(u),f=(r(4958),r(8708),r(7372),r(5549),r(5249),r(562),r(3838),r(3082),r(3078),r(2558),r(6160),r(8021),r(9064),r(3376),r(9585),r(1759),r(6558),r(3544),r(995),r(6782)),h=r(6596),p=r(3230),d=r(5413);function v(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(v=function(){return!!t})()}var g=function(t){function e(){var t,r,n,o;(0,i.A)(this,e);for(var c=arguments.length,u=new Array(c),l=0;l<c;l++)u[l]=arguments[l];return r=this,n=e,o=[].concat(u),n=(0,a.A)(n),(t=(0,s.A)(r,v()?Reflect.construct(n,o||[],(0,a.A)(r).constructor):n.apply(r,o))).prevState=null,t.tableContainerInnerTemplate=null,t}return(0,c.A)(e,t),(0,o.A)(e,[{key:"connect",value:function(){var t=this;(0,p.P)(this,h.c,this.render.bind(this)),function(){return m.apply(this,arguments)}().then((function(e){var r=e.lineups,n=e.models,i=r[0].id,o=n.filter((function(t){return t.lineupId===i})).map((function(t){return t.id})).slice(0,3);t.store.setState({lineups:r,models:n,selectedLineupId:i,selectedModelIds:o}),t.element.hidden=!1}));var e=window.matchMedia("(min-width: 60.625em)");e.addListener(this.onMediaChange.bind(this)),this.onMediaChange(e)}},{key:"changeLineup",value:function(t){this.store.setState({selectedLineupId:t.currentTarget.value,selectedModelIds:[]})}},{key:"render",value:function(t){var e,r,n,i=t.lineups.find((function(e){return e.id===t.selectedLineupId})),o=t.models.filter((function(e){return e.lineupId===t.selectedLineupId})),s=t.selectedModelIds.map((function(t){return o.find((function(e){return e.id===t}))}));t.lineups!==(null===(e=this.prevState)||void 0===e?void 0:e.lineups)&&(this.selectInnerTemplate||(this.selectInnerTemplate=d.N.compile('\n {{#each options}}\n <option\n value="{{value}}"\n {{#if selected}}\n selected\n {{/if}}\n >\n {{content}}\n </option>\n {{/each}}\n ')),this.selectTarget.innerHTML=this.selectInnerTemplate({options:t.lineups.map((function(e){return{value:e.id,selected:e.id===t.selectedLineupId,content:e.name}}))})),t.selectedLineupId!==(null===(r=this.prevState)||void 0===r?void 0:r.selectedLineupId)&&(this.titleTarget.textContent=null==i?void 0:i.name,this.totalTarget.textContent=o.length,this.catalogLinkTarget.href=null==i?void 0:i.catalogUrl),t.selectedModelIds!==(null===(n=this.prevState)||void 0===n?void 0:n.selectedModelIds)&&(this.tableContainerInnerTemplate||(this.tableContainerInnerTemplate=d.N.compile("\n {{> modules/specs-select-table}}\n ")),this.tableContainerTarget.innerHTML=this.tableContainerInnerTemplate({models:s})),this.footnoteTarget,this.prevState=t}},{key:"onMediaChange",value:function(t){this.store.setState({selectableModelCount:t.matches?3:2})}}])}(f.xI);function m(){return(m=(0,n.A)(l().mark((function t(){var e,r;return l().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,y(1e3);case 2:return e=Array(6).fill().map((function(t,e){return{id:"".concat(e+1),name:"".concat(e+1,": Bipolar output: M12 connector 4-pin"),catalogUrl:"#"}}
25976)),r=[],Array(6).fill().forEach((function(t,e){Array(7).fill().forEach((function(t,n){r.push({id:"".concat(e+1,":").concat(n+1),lineupId:"".concat(e+1),name:"".concat(e+1,":").concat(n+1,": LR-ZH490CB<sup>*1</sup>"),url:"#",imageUrl:"/img/products/model-card-01.jpg",rows:[{heading:"Type",rows:[{body:["U.C.D. Function<br />Distance based laser sensor","Distance based laser sensor","Distance based laser sensor"][n%3]}]},{heading:"Appearance",rows:[{body:"M18 Threaded mount"}]},{heading:"Light source",rows:[{heading:"Type",body:"Red laser (660 nm)"},{heading:"Laser class",body:["Class 2 laser product (IEC60825-1)<br>Class II Laser product (FDA(CDRH) Part1040.10)","Class 1 laser product<br>(IEC60825-1, FDA (CDRH) Part1040.10<sup>*5</sup>)","Class 1 laser product<br>(IEC60825-1, FDA (CDRH) Part1040.10<sup>*5</sup>)"][n%3]}]}],specs:[{name:"Detectable distance",values:['25 to 490 mm 0.98" to 19.29" (465 to 0)']},{name:"Standard detectable deviation",values:['25 to 170 mm <span class="prd-utility-color-inch">0.98" to 6.69"</span>: 9 mm <span class="prd-utility-color-inch">0.35"</span>','170 to 290 mm <span class="prd-utility-color-inch">6.69" to 11.42"</span>: 25 mm <span class="prd-utility-color-inch">0.98"</span>','290 to 390 mm <span class="prd-utility-color-inch">11.42" to 15.35"</span>: 40 mm <span class="prd-utility-color-inch">1.57"</span>','390 to 490 mm <span class="prd-utility-color-inch">15.35" to 19.29"</span>: 50 mm <span class="prd-utility-color-inch">1.97"</span>']},{name:"Cable connection",values:["M12 connector, 4-pin"]},{name:"Output",values:["NPN/PNP selectable"]}]})}))})),t.abrupt("return",{lineups:e,models:r});case 6:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function y(t){return new Promise((function(e){return setTimeout(e,t)}))}g.targets=["select","title","total","catalogLink","tableContainer","footnote"]},6369:(t,e,r)=>{"use strict";var n,i,o,s=r(8434),a=r(8052),c=r(4102),u=r(671),l=r(4461),f=r(2921),h=r(3779),p=r(6617),d="Object already initialized",v=a.TypeError,g=a.WeakMap;if(s||f.state){var m=f.state||(f.state=new g);m.get=m.get,m.has=m.has,m.set=m.set,n=function(t,e){if(m.has(t))throw new v(d);return e.facade=t,m.set(t,e),e},i=function(t){return m.get(t)||{}},o=function(t){return m.has(t)}}else{var y=h("state");p[y]=!0,n=function(t,e){if(l(t,y))throw new v(d);return e.facade=t,u(t,y,e),e},i=function(t){return l(t,y)?t[y]:{}},o=function(t){return l(t,y)}}t.exports={set:n,get:i,has:o,enforce:function(t){return o(t)?i(t):n(t,{})},getterFor:function(t){return function(e){var r;if(!c(e)||(r=i(e)).type!==t)throw new v("Incompatible receiver, "+t+" required");return r}}}},6371:(t,e,r)=>{"use strict";var n=r(8810),i=r(8052),o=r(5396)(i.setInterval,!0);n({global:!0,bind:!0,forced:i.setInterval!==o},{setInterval:o})},6445:(t,e,r)=>{"use strict";var n=r(2921);t.exports=function(t,e){return n[t]||(n[t]=e||{})}},6461:(t,e,r)=>{"use strict";var n=r(8810),i=r(2128),o=r(6005).f;n({target:"Object",stat:!0,forced:Object.defineProperty!==o,sham:!i},{defineProperty:o})},6492:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});var n=r(8085);function i(t,e){if(t){if("string"==typeof t)return(0,n.A)(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?(0,n.A)(t,e):void 0}}},6522:function(t){var e;e=function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={exports:{},id:n,loaded:!1};return t[n].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}return r.m=t,r.c=e,r.p="",r(0)}([function(t,e){"use strict";t.exports=function(){if("undefined"==typeof document||"undefined"==typeof window)return{ask:function(){return"initial"},element:function(){return null},ignoreKeys:function(){},specificKeys:function(){},registerOnChange:function(){},unRegisterOnChange:function(){}};var t=document.documentElement,e=null,r="initial",n=r,i=Date.now(),o=!1,s=["button","input","select","textarea"],a=[],c=[16,17,18,91,93],u=[],l={keydown:"keyboard",keyup:"keyboard",mousedown:"mouse",mousemove:"mou
25976se",MSPointerDown:"pointer",MSPointerMove:"pointer",pointerdown:"pointer",pointermove:"pointer",touchstart:"touch",touchend:"touch"},f=!1,h={x:null,y:null},p={2:"touch",3:"touch",4:"mouse"},d=!1;try{var v=Object.defineProperty({},"passive",{get:function(){d=!0}});window.addEventListener("test",null,v)}catch(t){}var g=function(){var t=!d||{passive:!0,capture:!0};document.addEventListener("DOMContentLoaded",m,!0),window.PointerEvent?(window.addEventListener("pointerdown",y,!0),window.addEventListener("pointermove",w,!0)):window.MSPointerEvent?(window.addEventListener("MSPointerDown",y,!0),window.addEventListener("MSPointerMove",w,!0)):(window.addEventListener("mousedown",y,!0),window.addEventListener("mousemove",w,!0),"ontouchstart"in window&&(window.addEventListener("touchstart",y,t),window.addEventListener("touchend",y,!0))),window.addEventListener(k(),w,t),window.addEventListener("keydown",y,!0),window.addEventListener("keyup",y,!0),window.addEventListener("focusin",x,!0),window.addEventListener("focusout",S,!0)},m=function(){if(o=!("false"===t.getAttribute("data-whatpersist")||"false"===document.body.getAttribute("data-whatpersist")))try{window.sessionStorage.getItem("what-input")&&(r=window.sessionStorage.getItem("what-input")),window.sessionStorage.getItem("what-intent")&&(n=window.sessionStorage.getItem("what-intent"))}catch(t){}b("input"),b("intent")},y=function(t){var e=t.which,i=l[t.type];"pointer"===i&&(i=O(t));var o=!u.length&&-1===c.indexOf(e),a=u.length&&-1!==u.indexOf(e),f="keyboard"===i&&e&&(o||a)||"mouse"===i||"touch"===i;if(E(i)&&(f=!1),f&&r!==i&&(A("input",r=i),b("input")),f&&n!==i){var h=document.activeElement;h&&h.nodeName&&(-1===s.indexOf(h.nodeName.toLowerCase())||"button"===h.nodeName.toLowerCase()&&!C(h,"form"))&&(A("intent",n=i),b("intent"))}},b=function(e){t.setAttribute("data-what"+e,"input"===e?r:n),T(e)},w=function(t){var e=l[t.type];"pointer"===e&&(e=O(t)),_(t),(!f&&!E(e)||f&&"wheel"===t.type||"mousewheel"===t.type||"DOMMouseScroll"===t.type)&&n!==e&&(A("intent",n=e),b("intent"))},x=function(r){r.target.nodeName?(e=r.target.nodeName.toLowerCase(),t.setAttribute("data-whatelement",e),r.target.classList&&r.target.classList.length&&t.setAttribute("data-whatclasses",r.target.classList.toString().replace(" ",","))):S()},S=function(){e=null,t.removeAttribute("data-whatelement"),t.removeAttribute("data-whatclasses")},A=function(t,e){if(o)try{window.sessionStorage.setItem("what-"+t,e)}catch(t){}},O=function(t){return"number"==typeof t.pointerType?p[t.pointerType]:"pen"===t.pointerType?"touch":t.pointerType},E=function(t){var e=Date.now(),n="mouse"===t&&"touch"===r&&e-i<200;return i=e,n},k=function(){return"onwheel"in document.createElement("div")?"wheel":void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll"},T=function(t){for(var e=0,i=a.length;e<i;e++)a[e].type===t&&a[e].fn.call(void 0,"input"===t?r:n)},_=function(t){h.x!==t.screenX||h.y!==t.screenY?(f=!1,h.x=t.screenX,h.y=t.screenY):f=!0},C=function(t,e){var r=window.Element.prototype;if(r.matches||(r.matches=r.msMatchesSelector||r.webkitMatchesSelector),r.closest)return t.closest(e);do{if(t.matches(e))return t;t=t.parentElement||t.parentNode}while(null!==t&&1===t.nodeType);return null};return"addEventListener"in window&&Array.prototype.indexOf&&(l[k()]="mouse",g()),{ask:function(t){return"intent"===t?n:r},element:function(){return e},ignoreKeys:function(t){c=t},specificKeys:function(t){u=t},registerOnChange:function(t,e){a.push({fn:t,type:e||"input"})},unRegisterOnChange:function(t){var e=function(t){for(var e=0,r=a.length;e<r;e++)if(a[e].fn===t)return e}(t);(e||0===e)&&a.splice(e,1)},clearStorage:function(){window.sessionStorage.clear()}}}()}])},t.exports=e()},6526:(t,e,r)=>{"use strict";var n=r(7391),i=Math.max,o=Math.min;t.exports=function(t,e){var r=n(t);return r<0?i(r+e,0):o(r,e)}},6534:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>d});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973),c=(r(4958),r(7372),r(5549),r(562),r(3078),r(6160),r(8021),r(9064),r(9585),r(1759),r(6893),r(6782)),u=r(5814),l=r(6596),f=r(3230),h=r(5413);function p(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(p=function(){return!!t})()}var d=function(t){function e(){var t,r,i,a;(0,n.A)(this,e);for(var c=arguments.length,u=new Array(c),l=0;l<c;l++)u[l]=arguments[l];return r=this,i=e,a=[].concat(u),i=(0,s.A)(i),(t=(0,o.A)(r,p()?Reflect.construct(i,a||[],(0,s.A)(r).constructor):i.apply(r,a))).prevState=null,t.tableInnerTemplate=null,t}
25976return(0,a.A)(e,t),(0,i.A)(e,[{key:"connect",value:function(){(0,u.wA)(this),(0,f.P)(this,l.c,this.render.bind(this)),this.render(this.store.getState()),this.layoutContainer(),this.sticky()}},{key:"layoutContainer",value:function(){this.element.style.height="".concat(this.stickyHeight,"px")}},{key:"stickyHeight",get:function(){return this.stickyTarget.offsetHeight}},{key:"sticky",value:function(){this.element.classList.toggle(this.fixedClass,this.shouldFix)}},{key:"shouldFix",get:function(){return this.element.getBoundingClientRect().top<0}},{key:"showSpecs",value:function(){this.element.classList.add("is-specs-open")}},{key:"hideSpecs",value:function(){this.element.classList.remove("is-specs-open")}},{key:"openModelDialog",value:function(t){var e=t.currentTarget.getAttribute("data-index");this.dispatch("open-model-dialog-".concat(e))}},{key:"render",value:function(t){var e;if(t.selectedModelIds!==(null===(e=this.prevState)||void 0===e?void 0:e.selectedModelIds)){var r=t.models.filter((function(e){return e.lineupId===t.selectedLineupId})),n=t.selectedModelIds.map((function(t){return r.find((function(e){return e.id===t}))}));this.tableInnerTemplate||(this.tableInnerTemplate=h.N.compile('\n <thead>\n <tr role="row">\n <th class="prd-utility-visuallyHidden" scope="row" colspan="2" role="rowheader">Model</th>\n {{#each models}}\n <th scope="col" role="columnheader">\n {{> modules/select-button content=(default name "Select a Model") attrs=(append (append \'data-index="\' (toString @index)) \'" data-action="'.concat(this.identifier,'#openModelDialog"\')}}\n </th>\n {{/each}}\n {{#each (range (add models.length -3))}}\n <th scope="col" role="columnheader">\n {{> modules/select-button content="Select a Model" attrs=(append (append \'data-index="\' (toString (add @root.models.length @index))) \'" data-action="').concat(this.identifier,"#openModelDialog\"')}}\n </th>\n {{/each}}\n </tr>\n </thead>\n ")));try{this.specsTableTarget.innerHTML=this.tableInnerTemplate({models:n})}catch(t){}}this.prevState=t}}])}(c.xI);d.targets=["sticky","specsHeader","specsTable"],d.classes=["fixed"]},6558:(t,e,r)=>{"use strict";r(8808),r(5143),r(383),r(2035),r(2173),r(2148)},6559:(t,e,r)=>{"use strict";var n,i,o,s,a,c=r(8052),u=r(6977),l=r(9004),f=r(6781).set,h=r(1661),p=r(2900),d=r(7517),v=r(552),g=r(6125),m=c.MutationObserver||c.WebKitMutationObserver,y=c.document,b=c.process,w=c.Promise,x=u("queueMicrotask");if(!x){var S=new h,A=function(){var t,e;for(g&&(t=b.domain)&&t.exit();e=S.get();)try{e()}catch(t){throw S.head&&n(),t}t&&t.enter()};p||g||v||!m||!y?!d&&w&&w.resolve?((s=w.resolve(void 0)).constructor=w,a=l(s.then,s),n=function(){a(A)}):g?n=function(){b.nextTick(A)}:(f=l(f,c),n=function(){f(A)}):(i=!0,o=y.createTextNode(""),new m(A).observe(o,{characterData:!0}),n=function(){o.data=i=!i}),x=function(t){S.head||n(),S.add(t)}}t.exports=x},6572:(t,e,r)=>{"use strict";var n=r(2128),i=r(2675),o=r(659),s=r(8687),a=Error.prototype.toString,c=i((function(){if(n){var t=Object.create(Object.defineProperty({},"name",{get:function(){return this===t}}));if("true"!==a.call(t))return!0}return"2: 1"!==a.call({message:1,name:2})||"Error"!==a.call({})}));t.exports=c?function(){var t=o(this),e=s(t.name,"Error"),r=s(t.message);return e?r?e+": "+r:e:r}:a},6596:(t,e,r)=>{"use strict";function n(t,e){for(var r in e)t[r]=e[r];return t}r.d(e,{c:()=>i});var i;r(6248);i=function(t){var e=[];function r(t){for(var r=[],n=0;n<e.length;n++)e[n]===t?t=null:r.push(e[n]);e=r}function i(r,i,o){t=i?r:n(n({},t),r);for(var s=e,a=0;a<s.length;a++)s[a](t,o)}return t=t||{},{action:function(e){function r(t){i(t,!1,e)}return function(){for(var n=arguments,i=[t],o=0;o<arguments.length;o++)i.push(n[o]);var s=e.apply(this,i);if(null!=s)return s.then?s.then(r):r(s)}},setState:i,subscribe:function(t){return e.push(t),function(){r(t)}},unsubscribe:r,getState:function(){return t}}}
25976({lineups:[],models:[],selectedLineupId:null,selectedModelIds:[],selectableModelCount:0})},6609:t=>{"use strict";t.exports={}},6617:t=>{"use strict";t.exports={}},6622:(t,e,r)=>{"use strict";var n=r(5382),i=r(5993),o=r(4009),s=r(2610);function a(t){return t.call.bind(t)}var c="undefined"!=typeof BigInt,u="undefined"!=typeof Symbol,l=a(Object.prototype.toString),f=a(Number.prototype.valueOf),h=a(String.prototype.valueOf),p=a(Boolean.prototype.valueOf);if(c)var d=a(BigInt.prototype.valueOf);if(u)var v=a(Symbol.prototype.valueOf);function g(t,e){if("object"!=typeof t)return!1;try{return e(t),!0}catch(t){return!1}}function m(t){return"[object Map]"===l(t)}function y(t){return"[object Set]"===l(t)}function b(t){return"[object WeakMap]"===l(t)}function w(t){return"[object WeakSet]"===l(t)}function x(t){return"[object ArrayBuffer]"===l(t)}function S(t){return"undefined"!=typeof ArrayBuffer&&(x.working?x(t):t instanceof ArrayBuffer)}function A(t){return"[object DataView]"===l(t)}function O(t){return"undefined"!=typeof DataView&&(A.working?A(t):t instanceof DataView)}e.isArgumentsObject=n,e.isGeneratorFunction=i,e.isTypedArray=s,e.isPromise=function(t){return"undefined"!=typeof Promise&&t instanceof Promise||null!==t&&"object"==typeof t&&"function"==typeof t.then&&"function"==typeof t.catch},e.isArrayBufferView=function(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):s(t)||O(t)},e.isUint8Array=function(t){return"Uint8Array"===o(t)},e.isUint8ClampedArray=function(t){return"Uint8ClampedArray"===o(t)},e.isUint16Array=function(t){return"Uint16Array"===o(t)},e.isUint32Array=function(t){return"Uint32Array"===o(t)},e.isInt8Array=function(t){return"Int8Array"===o(t)},e.isInt16Array=function(t){return"Int16Array"===o(t)},e.isInt32Array=function(t){return"Int32Array"===o(t)},e.isFloat32Array=function(t){return"Float32Array"===o(t)},e.isFloat64Array=function(t){return"Float64Array"===o(t)},e.isBigInt64Array=function(t){return"BigInt64Array"===o(t)},e.isBigUint64Array=function(t){return"BigUint64Array"===o(t)},m.working="undefined"!=typeof Map&&m(new Map),e.isMap=function(t){return"undefined"!=typeof Map&&(m.working?m(t):t instanceof Map)},y.working="undefined"!=typeof Set&&y(new Set),e.isSet=function(t){return"undefined"!=typeof Set&&(y.working?y(t):t instanceof Set)},b.working="undefined"!=typeof WeakMap&&b(new WeakMap),e.isWeakMap=function(t){return"undefined"!=typeof WeakMap&&(b.working?b(t):t instanceof WeakMap)},w.working="undefined"!=typeof WeakSet&&w(new WeakSet),e.isWeakSet=function(t){return w(t)},x.working="undefined"!=typeof ArrayBuffer&&x(new ArrayBuffer),e.isArrayBuffer=S,A.working="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView&&A(new DataView(new ArrayBuffer(1),0,1)),e.isDataView=O;var E="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function k(t){return"[object SharedArrayBuffer]"===l(t)}function T(t){return void 0!==E&&(void 0===k.working&&(k.working=k(new E)),k.working?k(t):t instanceof E)}function _(t){return g(t,f)}function C(t){return g(t,h)}function P(t){return g(t,p)}function I(t){return c&&g(t,d)}function j(t){return u&&g(t,v)}e.isSharedArrayBuffer=T,e.isAsyncFunction=function(t){return"[object AsyncFunction]"===l(t)},e.isMapIterator=function(t){return"[object Map Iterator]"===l(t)},e.isSetIterator=function(t){return"[object Set Iterator]"===l(t)},e.isGeneratorObject=function(t){return"[object Generator]"===l(t)},e.isWebAssemblyCompiledModule=function(t){return"[object WebAssembly.Module]"===l(t)},e.isNumberObject=_,e.isStringObject=C,e.isBooleanObject=P,e.isBigIntObject=I,e.isSymbolObject=j,e.isBoxedPrimitive=function(t){return _(t)||C(t)||P(t)||I(t)||j(t)},e.isAnyArrayBuffer=function(t){return"undefined"!=typeof Uint8Array&&(S(t)||T(t))},["isProxy","isExternal","isModuleNamespaceObject"].forEach((function(t){Object.defineProperty(e,t,{enumerable:!1,value:function(){throw new Error(t+" is not supported in userland")}})}))},6627:(t,e,r)=>{"use strict";var n=r(8052),i=r(3291),o=r(2748),s=function(t){return i.slice(0,t.length)===t};t.exports=s("Bun/")?"BUN":s("Cloudflare-Workers")?"CLOUDFLARE":s("Deno/")?"DENO":s("Node.js/")?"NODE":n.Bun&&"string"==typeof Bun.version?"BUN":n.Deno&&"object"==typeof Deno.version?"DENO":"process"===o(n.process)?"NODE":n.window&&n.document?"BROWSER":"REST"},6636:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>v});r(8037);var n=r(7431),i=r(2561),o=r(6710),s=r(3008),a=r(3134),c=r(6973),u=r(6192),l=r.n(u),f=(r(4958),r(995),r(6782)),h=r(9272),p=r(982);function d(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(d=function(){return!!t})()}var v=function(t){function e(){var t,r,n,o;(0,i.A)(this,e);for(var c=arguments.length,u=new Array(c),l=0;l<c;l++)u[l]=arguments[l];return r=this,n=e,o=[].concat(u),n=(0,a.A)(n),(t=(0,s.A)(r,d()?Reflect.construct(n,o||[],(0,a.A)(r).constructor):n.apply(r,o))).isOpen=!1,t}
25976return(0,c.A)(e,t),(0,o.A)(e,[{key:"connect",value:function(){var t=this;this.focusTrap=(0,p.K)(this.rootTarget,{onActivate:function(){t.isOpen=!0},onDeactivate:function(){t.rootTarget.setAttribute("aria-hidden","true"),setTimeout((function(){t.isOpen=!1}),300)},clickOutsideDeactivates:!0})}},{key:"show",value:(r=(0,n.A)(l().mark((function t(){return l().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.isOpen){t.next=2;break}return t.abrupt("return");case 2:return this.rootTarget.removeAttribute("aria-hidden"),t.next=5,(0,h.W)(this.rootTarget,"visibility","visible");case 5:this.focusTrap.activate();case 6:case"end":return t.stop()}}),t,this)}))),function(){return r.apply(this,arguments)})}]);var r}(f.xI);v.targets=["root"]},6661:t=>{"use strict";var e="bfred-it:object-fit-images",r=/(object-fit|object-position)\s*:\s*([-.\w\s%]+)/g,n="undefined"==typeof Image?{style:{"object-position":1}}:new Image,i="object-fit"in n.style,o="object-position"in n.style,s="background-size"in n.style,a="string"==typeof n.currentSrc,c=n.getAttribute,u=n.setAttribute,l=!1;function f(t,e,r){var n="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='"+(e||1)+"' height='"+(r||0)+"'%3E%3C/svg%3E";c.call(t,"src")!==n&&u.call(t,"src",n)}function h(t,e){t.naturalWidth?e(t):setTimeout(h,100,t,e)}function p(t){var n=function(t){for(var e,n=getComputedStyle(t).fontFamily,i={};null!==(e=r.exec(n));)i[e[1]]=e[2];return i}(t),o=t[e];if(n["object-fit"]=n["object-fit"]||"fill",!o.img){if("fill"===n["object-fit"])return;if(!o.skipTest&&i&&!n["object-position"])return}if(!o.img){o.img=new Image(t.width,t.height),o.img.srcset=c.call(t,"data-ofi-srcset")||t.srcset,o.img.src=c.call(t,"data-ofi-src")||t.src,u.call(t,"data-ofi-src",t.src),t.srcset&&u.call(t,"data-ofi-srcset",t.srcset),f(t,t.naturalWidth||t.width,t.naturalHeight||t.height),t.srcset&&(t.srcset="");try{!function(t){var r={get:function(r){return t[e].img[r||"src"]},set:function(r,n){return t[e].img[n||"src"]=r,u.call(t,"data-ofi-"+n,r),p(t),r}};Object.defineProperty(t,"src",r),Object.defineProperty(t,"currentSrc",{get:function(){return r.get("currentSrc")}}),Object.defineProperty(t,"srcset",{get:function(){return r.get("srcset")},set:function(t){return r.set(t,"srcset")}})}(t)}catch(t){window.console&&console.warn("https://bit.ly/ofi-old-browser")}}!function(t){if(t.srcset&&!a&&window.picturefill){var e=window.picturefill._;t[e.ns]&&t[e.ns].evaled||e.fillImg(t,{reselect:!0}),t[e.ns].curSrc||(t[e.ns].supported=!1,e.fillImg(t,{reselect:!0})),t.currentSrc=t[e.ns].curSrc||t.src}}(o.img),t.style.backgroundImage='url("'+(o.img.currentSrc||o.img.src).replace(/"/g,'\\"')+'")',t.style.backgroundPosition=n["object-position"]||"center",t.style.backgroundRepeat="no-repeat",t.style.backgroundOrigin="content-box",/scale-down/.test(n["object-fit"])?h(o.img,(function(){o.img.naturalWidth>t.width||o.img.naturalHeight>t.height?t.style.backgroundSize="contain":t.style.backgroundSize="auto"})):t.style.backgroundSize=n["object-fit"].replace("none","auto").replace("fill","100% 100%"),h(o.img,(function(e){f(t,e.naturalWidth,e.naturalHeight)}))}function d(t,r){var n=!l&&!t;if(r=r||{},t=t||"img",o&&!r.skipTest||!s)return!1;"img"===t?t=document.getElementsByTagName("img"):"string"==typeof t?t=document.querySelectorAll(t):"length"in t||(t=[t]);for(var i=0;i<t.length;i++)t[i][e]=t[i][e]||{skipTest:r.skipTest},p(t[i]);n&&(document.body.addEventListener("load",(function(t){"IMG"===t.target.tagName&&d(t.target,{skipTest:r.skipTest})}),!0),l=!0,t="img"),r.watchMQ&&window.addEventListener("resize",d.bind(null,t,{skipTest:r.skipTest}))}d.supportsObjectFit=i,d.supportsObjectPosition=o,function(){function t(t,r){return t[e]&&t[e].img&&("src"===r||"srcset"===r)?t[e].img:t}o||(HTMLImageElement.prototype.getAttribute=function(e){return c.call(t(this,e),e)},HTMLImageElement.prototype.setAttribute=function(e,r){return u.call(t(this,e),e,String(r))})}(),t.exports=d},6710:(t,e,r)=>{"use strict";r.d(e,{A:()=>s});var n=r(3224);function i(t){var e=function(t,e){if("object"!=(0,n.A)(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var i=r.call(t,e||"default");if("object"!=(0,n.A)(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}
25976(t,"string");return"symbol"==(0,n.A)(e)?e:e+""}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,i(n.key),n)}}function s(t,e,r){return e&&o(t.prototype,e),r&&o(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}},6725:(t,e,r)=>{"use strict";var n,i=r(8682),o=r(8118)(),s=r(9731),a=r(1233);if(o){var c=i("RegExp.prototype.exec"),u={},l=function(){throw u},f={toString:l,valueOf:l};"symbol"==typeof Symbol.toPrimitive&&(f[Symbol.toPrimitive]=l),n=function(t){if(!t||"object"!=typeof t)return!1;var e=a(t,"lastIndex");if(!(e&&s(e,"value")))return!1;try{c(t,f)}catch(t){return t===u}}}else{var h=i("Object.prototype.toString");n=function(t){return!(!t||"object"!=typeof t&&"function"!=typeof t)&&"[object RegExp]"===h(t)}}t.exports=n},6741:(t,e,r)=>{"use strict";var n=r(8810),i=r(2484),o=Date,s=i(o.prototype.getTime);n({target:"Date",stat:!0},{now:function(){return s(new o)}})},6749:(t,e,r)=>{"use strict";var n=r(8969),i=r(6526),o=r(8770),s=function(t){return function(e,r,s){var a=n(e),c=o(a);if(0===c)return!t&&-1;var u,l=i(s,c);if(t&&r!=r){for(;c>l;)if((u=a[l++])!=u)return!0}else for(;c>l;l++)if((t||l in a)&&a[l]===r)return t||l||0;return!t&&-1}};t.exports={includes:s(!0),indexOf:s(!1)}},6757:t=>{"use strict";t.exports=TypeError},6766:(t,e,r)=>{"use strict";var n=r(2748),i=r(8969),o=r(4956).f,s=r(4540),a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&"Window"===n(t)?function(t){try{return o(t)}catch(t){return s(a)}}(t):o(i(t))}},6770:(t,e,r)=>{"use strict";var n=r(5236),i=r(6572),o=Error.prototype;o.toString!==i&&n(o,"toString",i)},6781:(t,e,r)=>{"use strict";var n,i,o,s,a=r(8052),c=r(133),u=r(9004),l=r(321),f=r(4461),h=r(2675),p=r(7073),d=r(4540),v=r(4451),g=r(464),m=r(2900),y=r(6125),b=a.setImmediate,w=a.clearImmediate,x=a.process,S=a.Dispatch,A=a.Function,O=a.MessageChannel,E=a.String,k=0,T={},_="onreadystatechange";h((function(){n=a.location}));var C=function(t){if(f(T,t)){var e=T[t];delete T[t],e()}},P=function(t){return function(){C(t)}},I=function(t){C(t.data)},j=function(t){a.postMessage(E(t),n.protocol+"//"+n.host)};b&&w||(b=function(t){g(arguments.length,1);var e=l(t)?t:A(t),r=d(arguments,1);return T[++k]=function(){c(e,void 0,r)},i(k),k},w=function(t){delete T[t]},y?i=function(t){x.nextTick(P(t))}:S&&S.now?i=function(t){S.now(P(t))}:O&&!m?(s=(o=new O).port2,o.port1.onmessage=I,i=u(s.postMessage,s)):a.addEventListener&&l(a.postMessage)&&!a.importScripts&&n&&"file:"!==n.protocol&&!h(j)?(i=j,a.addEventListener("message",I,!1)):i=_ in v("script")?function(t){p.appendChild(v("script"))[_]=function(){p.removeChild(this),C(t)}}:function(t){setTimeout(P(t),0)}),t.exports={set:b,clear:w}},6782:(t,e,r)=>{"use strict";r.d(e,{lg:()=>Z,xI:()=>ut});class n{constructor(t,e,r){this.eventTarget=t,this.eventName=e,this.eventOptions=r,this.unorderedBindings=new Set}connect(){this.eventTarget.addEventListener(this.eventName,this,this.eventOptions)}disconnect(){this.eventTarget.removeEventListener(this.eventName,this,this.eventOptions)}bindingConnected(t){this.unorderedBindings.add(t)}bindingDisconnected(t){this.unorderedBindings.delete(t)}handleEvent(t){const e=function(t){if("immediatePropagationStopped"in t)return t;{const{stopImmediatePropagation:e}=t;return Object.assign(t,{immediatePropagationStopped:!1,stopImmediatePropagation(){this.immediatePropagationStopped=!0,e.call(this)}})}}(t);for(const t of this.bindings){if(e.immediatePropagationStopped)break;t.handleEvent(e)}}hasBindings(){return this.unorderedBindings.size>0}get bindings(){return Array.from(this.unorderedBindings).sort(((t,e)=>{const r=t.index,n=e.index;return r<n?-1:r>n?1:0}))}}class i{constructor(t){this.application=t,this.eventListenerMaps=new Map,this.started=!1}start(){this.started||(this.started=!0,this.eventListeners.forEach((t=>t.connect())))}stop(){this.started&&(this.started=!1,this.eventListeners.forEach((t=>t.disconnect())))}get eventListeners(){return Array.from(this.eventListenerMaps.values()).reduce(((t,e)=>
25976t.concat(Array.from(e.values()))),[])}bindingConnected(t){this.fetchEventListenerForBinding(t).bindingConnected(t)}bindingDisconnected(t,e=!1){this.fetchEventListenerForBinding(t).bindingDisconnected(t),e&&this.clearEventListenersForBinding(t)}handleError(t,e,r={}){this.application.handleError(t,`Error ${e}`,r)}clearEventListenersForBinding(t){const e=this.fetchEventListenerForBinding(t);e.hasBindings()||(e.disconnect(),this.removeMappedEventListenerFor(t))}removeMappedEventListenerFor(t){const{eventTarget:e,eventName:r,eventOptions:n}=t,i=this.fetchEventListenerMapForEventTarget(e),o=this.cacheKey(r,n);i.delete(o),0==i.size&&this.eventListenerMaps.delete(e)}fetchEventListenerForBinding(t){const{eventTarget:e,eventName:r,eventOptions:n}=t;return this.fetchEventListener(e,r,n)}fetchEventListener(t,e,r){const n=this.fetchEventListenerMapForEventTarget(t),i=this.cacheKey(e,r);let o=n.get(i);return o||(o=this.createEventListener(t,e,r),n.set(i,o)),o}createEventListener(t,e,r){const i=new n(t,e,r);return this.started&&i.connect(),i}fetchEventListenerMapForEventTarget(t){let e=this.eventListenerMaps.get(t);return e||(e=new Map,this.eventListenerMaps.set(t,e)),e}cacheKey(t,e){const r=[t];return Object.keys(e).sort().forEach((t=>{r.push(`${e[t]?"":"!"}${t}`)})),r.join(":")}}const o={stop:({event:t,value:e})=>(e&&t.stopPropagation(),!0),prevent:({event:t,value:e})=>(e&&t.preventDefault(),!0),self:({event:t,value:e,element:r})=>!e||r===t.target},s=/^(?:(?:([^.]+?)\+)?(.+?)(?:\.(.+?))?(?:@(window|document))?->)?(.+?)(?:#([^:]+?))(?::(.+))?$/;function a(t){return"window"==t?window:"document"==t?document:void 0}function c(t){return t.replace(/(?:[_-])([a-z0-9])/g,((t,e)=>e.toUpperCase()))}function u(t){return c(t.replace(/--/g,"-").replace(/__/g,"_"))}function l(t){return t.charAt(0).toUpperCase()+t.slice(1)}function f(t){return t.replace(/([A-Z])/g,((t,e)=>`-${e.toLowerCase()}`))}function h(t){return null!=t}function p(t,e){return Object.prototype.hasOwnProperty.call(t,e)}const d=["meta","ctrl","alt","shift"];class v{constructor(t,e,r,n){this.element=t,this.index=e,this.eventTarget=r.eventTarget||t,this.eventName=r.eventName||function(t){const e=t.tagName.toLowerCase();if(e in g)return g[e](t)}(t)||m("missing event name"),this.eventOptions=r.eventOptions||{},this.identifier=r.identifier||m("missing identifier"),this.methodName=r.methodName||m("missing method name"),this.keyFilter=r.keyFilter||"",this.schema=n}static forToken(t,e){return new this(t.element,t.index,function(t){const e=t.trim().match(s)||[];let r=e[2],n=e[3];return n&&!["keydown","keyup","keypress"].includes(r)&&(r+=`.${n}`,n=""),{eventTarget:a(e[4]),eventName:r,eventOptions:e[7]?(i=e[7],i.split(":").reduce(((t,e)=>Object.assign(t,{[e.replace(/^!/,"")]:!/^!/.test(e)})),{})):{},identifier:e[5],methodName:e[6],keyFilter:e[1]||n};var i}(t.content),e)}toString(){const t=this.keyFilter?`.${this.keyFilter}`:"",e=this.eventTargetName?`@${this.eventTargetName}`:"";return`${this.eventName}${t}${e}->${this.identifier}#${this.methodName}`}shouldIgnoreKeyboardEvent(t){if(!this.keyFilter)return!1;const e=this.keyFilter.split("+");if(this.keyFilterDissatisfied(t,e))return!0;const r=e.filter((t=>!d.includes(t)))[0];return!!r&&(p(this.keyMappings,r)||m(`contains unknown key filter: ${this.keyFilter}`),this.keyMappings[r].toLowerCase()!==t.key.toLowerCase())}shouldIgnoreMouseEvent(t){if(!this.keyFilter)return!1;const e=[this.keyFilter];return!!this.keyFilterDissatisfied(t,e)}get params(){const t={},e=new RegExp(`^data-${this.identifier}-(.+)-param$`,"i");for(const{name:r,value:n}of Array.from(this.element.attributes)){const i=r.match(e),o=i&&i[1];o&&(t[c(o)]=y(n))}return t}get eventTargetName(){return(t=this.eventTarget)==window?"window":t==document?"document":void 0;var t}get keyMappings(){return this.schema.keyMappings}keyFilterDissatisfied(t,e){const[r,n,i,o]=d.map((t=>e.includes(t)));return t.metaKey!==r||t.ctrlKey!==n||t.altKey!==i||t.shiftKey!==o}}const g={a:()=>"click",button:()=>"click",form:()=>"submit",details:()=>"toggle",input:t=>"submit"==t.getAttribute("type")?"click":"input",select:()=>"change",textarea:()=>"input"};function m(t){throw new Error(t)}function y(t){try{return JSON.parse(t)}catch(e){return t}}class b{constructor(t,e){this.context=t,this.action=e}get index(){return this.action.index}get eventTarget(){return this.action.eventTarget}get eventOptions(){return this.action.eventOptions}
vendor: 5,391 bytes, line 25976
25976get identifier(){return this.context.identifier}handleEvent(t){const e=this.prepareActionEvent(t);this.willBeInvokedByEvent(t)&&this.applyEventModifiers(e)&&this.invokeWithEvent(e)}get eventName(){return this.action.eventName}get method(){const t=this.controller[this.methodName];if("function"==typeof t)return t;throw new Error(`Action "${this.action}" references undefined method "${this.methodName}"`)}applyEventModifiers(t){const{element:e}=this.action,{actionDescriptorFilters:r}=this.context.application,{controller:n}=this.context;let i=!0;for(const[o,s]of Object.entries(this.eventOptions))if(o in r){const a=r[o];i=i&&a({name:o,value:s,event:t,element:e,controller:n})}return i}prepareActionEvent(t){return Object.assign(t,{params:this.action.params})}invokeWithEvent(t){const{target:e,currentTarget:r}=t;try{this.method.call(this.controller,t),this.context.logDebugActivity(this.methodName,{event:t,target:e,currentTarget:r,action:this.methodName})}catch(e){const{identifier:r,controller:n,element:i,index:o}=this,s={identifier:r,controller:n,element:i,index:o,event:t};this.context.handleError(e,`invoking action "${this.action}"`,s)}}willBeInvokedByEvent(t){const e=t.target;return!(t instanceof KeyboardEvent&&this.action.shouldIgnoreKeyboardEvent(t))&&(!(t instanceof MouseEvent&&this.action.shouldIgnoreMouseEvent(t))&&(this.element===e||(e instanceof Element&&this.element.contains(e)?this.scope.containsElement(e):this.scope.containsElement(this.action.element))))}get controller(){return this.context.controller}get methodName(){return this.action.methodName}get element(){return this.scope.element}get scope(){return this.context.scope}}class w{constructor(t,e){this.mutationObserverInit={attributes:!0,childList:!0,subtree:!0},this.element=t,this.started=!1,this.delegate=e,this.elements=new Set,this.mutationObserver=new MutationObserver((t=>this.processMutations(t)))}start(){this.started||(this.started=!0,this.mutationObserver.observe(this.element,this.mutationObserverInit),this.refresh())}pause(t){this.started&&(this.mutationObserver.disconnect(),this.started=!1),t(),this.started||(this.mutationObserver.observe(this.element,this.mutationObserverInit),this.started=!0)}stop(){this.started&&(this.mutationObserver.takeRecords(),this.mutationObserver.disconnect(),this.started=!1)}refresh(){if(this.started){const t=new Set(this.matchElementsInTree());for(const e of Array.from(this.elements))t.has(e)||this.removeElement(e);for(const e of Array.from(t))this.addElement(e)}}processMutations(t){if(this.started)for(const e of t)this.processMutation(e)}processMutation(t){"attributes"==t.type?this.processAttributeChange(t.target,t.attributeName):"childList"==t.type&&(this.processRemovedNodes(t.removedNodes),this.processAddedNodes(t.addedNodes))}processAttributeChange(t,e){this.elements.has(t)?this.delegate.elementAttributeChanged&&this.matchElement(t)?this.delegate.elementAttributeChanged(t,e):this.removeElement(t):this.matchElement(t)&&this.addElement(t)}processRemovedNodes(t){for(const e of Array.from(t)){const t=this.elementFromNode(e);t&&this.processTree(t,this.removeElement)}}processAddedNodes(t){for(const e of Array.from(t)){const t=this.elementFromNode(e);t&&this.elementIsActive(t)&&this.processTree(t,this.addElement)}}matchElement(t){return this.delegate.matchElement(t)}matchElementsInTree(t=this.element){return this.delegate.matchElementsInTree(t)}processTree(t,e){for(const r of this.matchElementsInTree(t))e.call(this,r)}elementFromNode(t){if(t.nodeType==Node.ELEMENT_NODE)return t}elementIsActive(t){return t.isConnected==this.element.isConnected&&this.element.contains(t)}addElement(t){this.elements.has(t)||this.elementIsActive(t)&&(this.elements.add(t),this.delegate.elementMatched&&this.delegate.elementMatched(t))}removeElement(t){this.elements.has(t)&&(this.elements.delete(t),this.delegate.elementUnmatched&&this.delegate.elementUnmatched(t))}}class x{constructor(t,e,r){this.attributeName=e,this.delegate=r,this.elementObserver=new w(t,this)}get element(){return this.elementObserver.element}get selector(){return`[${this.attributeName}]`}start(){this.elementObserver.start()}pause(t){this.elementObserver.pause(t)}stop(){this.elementObserver.stop()}refresh(){this.elementObserver.refresh()}get started(){return this.elementObserver.started}matchElement(t){return t.hasAttribute(this.attributeName)}matchElementsInTree(t){const e=this.matchElement(t)?[t]:[],r=Array.from(t.querySelectorAll(this.selector));return e.concat(r)}elementMatched(t){this.delegate.elementMatchedAttribute&&this.delegate.elementMatchedAttribute(t,this.attributeName)}elementUnmatched(t){this.delegate.elementUnmatchedAttribute&&this.delegate.elementUnmatchedAttribute(t,this.attributeName)}elementAttributeChanged(t,e){this.delegate.elementAttributeValueChanged&&this.attributeName==e&&this.delegate.elementAttributeValueChanged(t,e)}}function S(t,e,r){O(t,e).add(r)}function A(t,e,r){O(t,e).delete(r),function(t,e){const r=t.get(e);null!=r&&0==r.size&&t.delete(e)}(t,e)}function O(t,e){let r=t.get(e);return r||(r=new Set,t.set(e,r)),r}class E{constructor(){this.valuesByKey=new Map}get keys(){return Array.from(this.valuesByKey.keys())}get values(){return Array.from(this.valuesByKey.values()).reduce(((t,e)=>t.concat(Array.from(e))),[])}get size(){return Array.from(this.valuesByKey.values()).reduce(((t,e)=>t+e.size),0)}add(t,e){S(this.valuesByKey,t,e)}
25976delete(t,e){A(this.valuesByKey,t,e)}has(t,e){const r=this.valuesByKey.get(t);return null!=r&&r.has(e)}hasKey(t){return this.valuesByKey.has(t)}hasValue(t){return Array.from(this.valuesByKey.values()).some((e=>e.has(t)))}getValuesForKey(t){const e=this.valuesByKey.get(t);return e?Array.from(e):[]}getKeysForValue(t){return Array.from(this.valuesByKey).filter((([e,r])=>r.has(t))).map((([t,e])=>t))}}class k{constructor(t,e,r,n){this._selector=e,this.details=n,this.elementObserver=new w(t,this),this.delegate=r,this.matchesByElement=new E}get started(){return this.elementObserver.started}get selector(){return this._selector}set selector(t){this._selector=t,this.refresh()}start(){this.elementObserver.start()}pause(t){this.elementObserver.pause(t)}stop(){this.elementObserver.stop()}refresh(){this.elementObserver.refresh()}get element(){return this.elementObserver.element}matchElement(t){const{selector:e}=this;if(e){const r=t.matches(e);return this.delegate.selectorMatchElement?r&&this.delegate.selectorMatchElement(t,this.details):r}return!1}matchElementsInTree(t){const{selector:e}=this;if(e){const r=this.matchElement(t)?[t]:[],n=Array.from(t.querySelectorAll(e)).filter((t=>this.matchElement(t)));return r.concat(n)}return[]}elementMatched(t){const{selector:e}=this;e&&this.selectorMatched(t,e)}elementUnmatched(t){const e=this.matchesByElement.getKeysForValue(t);for(const r of e)this.selectorUnmatched(t,r)}elementAttributeChanged(t,e){const{selector:r}=this;if(r){const e=this.matchElement(t),n=this.matchesByElement.has(r,t);e&&!n?this.selectorMatched(t,r):!e&&n&&this.selectorUnmatched(t,r)}}selectorMatched(t,e){this.delegate.selectorMatched(t,e,this.details),this.matchesByElement.add(e,t)}selectorUnmatched(t,e){this.delegate.selectorUnmatched(t,e,this.details),this.matchesByElement.delete(e,t)}}class T{constructor(t,e){this.element=t,this.delegate=e,this.started=!1,this.stringMap=new Map,this.mutationObserver=new MutationObserver((t=>this.processMutations(t)))}start(){this.started||(this.started=!0,this.mutationObserver.observe(this.element,{attributes:!0,attributeOldValue:!0}),this.refresh())}stop(){this.started&&(this.mutationObserver.takeRecords(),this.mutationObserver.disconnect(),this.started=!1)}refresh(){if(this.started)for(const t of this.knownAttributeNames)this.refreshAttribute(t,null)}processMutations(t){if(this.started)for(const e of t)this.processMutation(e)}processMutation(t){const e=t.attributeName;e&&this.refreshAttribute(e,t.oldValue)}refreshAttribute(t,e){const r=this.delegate.getStringMapKeyForAttribute(t);if(null!=r){this.stringMap.has(t)||this.stringMapKeyAdded(r,t);const n=this.element.getAttribute(t);if(this.stringMap.get(t)!=n&&this.stringMapValueChanged(n,r,e),null==n){const e=this.stringMap.get(t);this.stringMap.delete(t),e&&this.stringMapKeyRemoved(r,t,e)}else this.stringMap.set(t,n)}}stringMapKeyAdded(t,e){this.delegate.stringMapKeyAdded&&this.delegate.stringMapKeyAdded(t,e)}stringMapValueChanged(t,e,r){this.delegate.stringMapValueChanged&&this.delegate.stringMapValueChanged(t,e,r)}stringMapKeyRemoved(t,e,r){this.delegate.stringMapKeyRemoved&&this.delegate.stringMapKeyRemoved(t,e,r)}get knownAttributeNames(){return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)))}get currentAttributeNames(){return Array.from(this.element.attributes).map((t=>t.name))}get recordedAttributeNames(){return Array.from(this.stringMap.keys())}}class _{constructor(t,e,r){this.attributeObserver=new x(t,e,this),this.delegate=r,this.tokensByElement=new E}get started(){return this.attributeObserver.started}start(){this.attributeObserver.start()}pause(t){this.attributeObserver.pause(t)}stop(){this.attributeObserver.stop()}refresh(){this.attributeObserver.refresh()}get element(){return this.attributeObserver.element}get attributeName(){return this.attributeObserver.attributeName}elementMatchedAttribute(t){this.tokensMatched(this.readTokensForElement(t))}elementAttributeValueChanged(t){const[e,r]=this.refreshTokensForElement(t);this.tokensUnmatched(e),this.tokensMatched(r)}elementUnmatchedAttribute(t){this.tokensUnmatched(this.tokensByElement.getValuesForKey(t))}tokensMatched(t){t.forEach((t=>this.tokenMatched(t)))}tokensUnmatched(t){t.forEach((t=>this.tokenUnmatched(t)))}tokenMatched(t){this.delegate.tokenMatched(t),this.tokensByElement.add(t.element,t)}tokenUnmatched(t){this.delegate.tokenUnmatched(t),this.tokensByElement.delete(t.element,t)}refreshTokensForElement(t){const e=this.tokensByElement.getValuesForKey(t),r=this.readTokensForElement(t),n=function(t,e){const r=Math.max(t.length,e.length);return Array.from({length:r},((r,n)=>[t[n],e[n]]))}(e,r).findIndex((([t,e])=>{return n=e,!((r=t)&&n&&r.index==n.index&&r.content==n.content);var r,n}));return-1==n?[[],[]]:[e.slice(n),r.slice(n)]}readTokensForElement(t){const e=this.attributeName;return function(t,e,r){return t.trim().split(/\s+/).filter((t=>t.length)).map(((t,n)=>({element:e,attributeName:r,content:t,index:n})))}(t.getAttribute(e)||"",t,e)}}class C{constructor(t,e,r){this.tokenListObserver=new _(t,e,this),this.delegate=r,this.parseResultsByToken=new WeakMap,this.valuesByTokenByElement=new WeakMap}get started(){return this.tokenListObserver.started}start(){this.tokenListObserver.start()}stop(){this.tokenListObserver.stop()}refresh(){this.tokenListObserver.refresh()}
vendor: 1,657 bytes, line 25976
25976get element(){return this.tokenListObserver.element}get attributeName(){return this.tokenListObserver.attributeName}tokenMatched(t){const{element:e}=t,{value:r}=this.fetchParseResultForToken(t);r&&(this.fetchValuesByTokenForElement(e).set(t,r),this.delegate.elementMatchedValue(e,r))}tokenUnmatched(t){const{element:e}=t,{value:r}=this.fetchParseResultForToken(t);r&&(this.fetchValuesByTokenForElement(e).delete(t),this.delegate.elementUnmatchedValue(e,r))}fetchParseResultForToken(t){let e=this.parseResultsByToken.get(t);return e||(e=this.parseToken(t),this.parseResultsByToken.set(t,e)),e}fetchValuesByTokenForElement(t){let e=this.valuesByTokenByElement.get(t);return e||(e=new Map,this.valuesByTokenByElement.set(t,e)),e}parseToken(t){try{return{value:this.delegate.parseValueForToken(t)}}catch(t){return{error:t}}}}class P{constructor(t,e){this.context=t,this.delegate=e,this.bindingsByAction=new Map}start(){this.valueListObserver||(this.valueListObserver=new C(this.element,this.actionAttribute,this),this.valueListObserver.start())}stop(){this.valueListObserver&&(this.valueListObserver.stop(),delete this.valueListObserver,this.disconnectAllActions())}get element(){return this.context.element}get identifier(){return this.context.identifier}get actionAttribute(){return this.schema.actionAttribute}get schema(){return this.context.schema}get bindings(){return Array.from(this.bindingsByAction.values())}connectAction(t){const e=new b(this.context,t);this.bindingsByAction.set(t,e),this.delegate.bindingConnected(e)}disconnectAction(t){const e=this.bindingsByAction.get(t);e&&(this.bindingsByAction.delete(t),this.delegate.bindingDisconnected(e))}
25976disconnectAllActions(){this.bindings.forEach((t=>this.delegate.bindingDisconnected(t,!0))),this.bindingsByAction.clear()}parseValueForToken(t){const e=v.forToken(t,this.schema);if(e.identifier==this.identifier)return e}elementMatchedValue(t,e){this.connectAction(e)}elementUnmatchedValue(t,e){this.disconnectAction(e)}}class I{constructor(t,e){this.context=t,this.receiver=e,this.stringMapObserver=new T(this.element,this),this.valueDescriptorMap=this.controller.valueDescriptorMap}start(){this.stringMapObserver.start(),this.invokeChangedCallbacksForDefaultValues()}stop(){this.stringMapObserver.stop()}get element(){return this.context.element}get controller(){return this.context.controller}getStringMapKeyForAttribute(t){if(t in this.valueDescriptorMap)return this.valueDescriptorMap[t].name}stringMapKeyAdded(t,e){const r=this.valueDescriptorMap[e];this.hasValue(t)||this.invokeChangedCallback(t,r.writer(this.receiver[t]),r.writer(r.defaultValue))}stringMapValueChanged(t,e,r){const n=this.valueDescriptorNameMap[e];null!==t&&(null===r&&(r=n.writer(n.defaultValue)),this.invokeChangedCallback(e,t,r))}stringMapKeyRemoved(t,e,r){const n=this.valueDescriptorNameMap[t];this.hasValue(t)?this.invokeChangedCallback(t,n.writer(this.receiver[t]),r):this.invokeChangedCallback(t,n.writer(n.defaultValue),r)}invokeChangedCallbacksForDefaultValues(){for(const{key:t,name:e,defaultValue:r,writer:n}of this.valueDescriptors)null==r||this.controller.data.has(t)||this.invokeChangedCallback(e,n(r),void 0)}invokeChangedCallback(t,e,r){const n=`${t}Changed`,i=this.receiver[n];if("function"==typeof i){const n=this.valueDescriptorNameMap[t];try{const t=n.reader(e);let o=r;r&&(o=n.reader(r)),i.call(this.receiver,t,o)}catch(t){throw t instanceof TypeError&&(t.message=`Stimulus Value "${this.context.identifier}.${n.name}" - ${t.message}`),t}}}get valueDescriptors(){const{valueDescriptorMap:t}=this;return Object.keys(t).map((e=>t[e]))}get valueDescriptorNameMap(){const t={};return Object.keys(this.valueDescriptorMap).forEach((e=>{const r=this.valueDescriptorMap[e];t[r.name]=r})),t}hasValue(t){const e=`has${l(this.valueDescriptorNameMap[t].name)}`;return this.receiver[e]}}class j{constructor(t,e){this.context=t,this.delegate=e,this.targetsByName=new E}start(){this.tokenListObserver||(this.tokenListObserver=new _(this.element,this.attributeName,this),this.tokenListObserver.start())}stop(){this.tokenListObserver&&(this.disconnectAllTargets(),this.tokenListObserver.stop(),delete this.tokenListObserver)}tokenMatched({element:t,content:e}){this.scope.containsElement(t)&&this.connectTarget(t,e)}tokenUnmatched({element:t,content:e}){this.disconnectTarget(t,e)}connectTarget(t,e){var r;this.targetsByName.has(e,t)||(this.targetsByName.add(e,t),null===(r=this.tokenListObserver)||void 0===r||r.pause((()=>this.delegate.targetConnected(t,e))))}disconnectTarget(t,e){var r;this.targetsByName.has(e,t)&&(this.targetsByName.delete(e,t),null===(r=this.tokenListObserver)||void 0===r||r.pause((()=>this.delegate.targetDisconnected(t,e))))}disconnectAllTargets(){for(const t of this.targetsByName.keys)for(const e of this.targetsByName.getValuesForKey(t))this.disconnectTarget(e,t)}get attributeName(){return`data-${this.context.identifier}-target`}get element(){return this.context.element}get scope(){return this.context.scope}}function M(t,e){const r=N(t);return Array.from(r.reduce(((t,r)=>(function(t,e){const r=t[e];return Array.isArray(r)?r:[]}(r,e).forEach((e=>t.add(e))),t)),new Set))}function L(t,e){return N(t).reduce(((t,r)=>(t.push(...function(t,e){const r=t[e];return r?Object.keys(r).map((t=>[t,r[t]])):[]}(r,e)),t)),[])}function N(t){const e=[];for(;t;)e.push(t),t=Object.getPrototypeOf(t);return e.reverse()}class B{constructor(t,e){this.started=!1,this.context=t,this.delegate=e,this.outletsByName=new E,this.outletElementsByName=new E,this.selectorObserverMap=new Map,this.attributeObserverMap=new Map}start(){this.started||(this.outletDefinitions.forEach((t=>{this.setupSelectorObserverForOutlet(t),this.setupAttributeObserverForOutlet(t)}
25976)),this.started=!0,this.dependentContexts.forEach((t=>t.refresh())))}refresh(){this.selectorObserverMap.forEach((t=>t.refresh())),this.attributeObserverMap.forEach((t=>t.refresh()))}stop(){this.started&&(this.started=!1,this.disconnectAllOutlets(),this.stopSelectorObservers(),this.stopAttributeObservers())}stopSelectorObservers(){this.selectorObserverMap.size>0&&(this.selectorObserverMap.forEach((t=>t.stop())),this.selectorObserverMap.clear())}stopAttributeObservers(){this.attributeObserverMap.size>0&&(this.attributeObserverMap.forEach((t=>t.stop())),this.attributeObserverMap.clear())}selectorMatched(t,e,{outletName:r}){const n=this.getOutlet(t,r);n&&this.connectOutlet(n,t,r)}selectorUnmatched(t,e,{outletName:r}){const n=this.getOutletFromMap(t,r);n&&this.disconnectOutlet(n,t,r)}selectorMatchElement(t,{outletName:e}){const r=this.selector(e),n=this.hasOutlet(t,e),i=t.matches(`[${this.schema.controllerAttribute}~=${e}]`);return!!r&&(n&&i&&t.matches(r))}elementMatchedAttribute(t,e){const r=this.getOutletNameFromOutletAttributeName(e);r&&this.updateSelectorObserverForOutlet(r)}elementAttributeValueChanged(t,e){const r=this.getOutletNameFromOutletAttributeName(e);r&&this.updateSelectorObserverForOutlet(r)}elementUnmatchedAttribute(t,e){const r=this.getOutletNameFromOutletAttributeName(e);r&&this.updateSelectorObserverForOutlet(r)}connectOutlet(t,e,r){var n;this.outletElementsByName.has(r,e)||(this.outletsByName.add(r,t),this.outletElementsByName.add(r,e),null===(n=this.selectorObserverMap.get(r))||void 0===n||n.pause((()=>this.delegate.outletConnected(t,e,r))))}disconnectOutlet(t,e,r){var n;this.outletElementsByName.has(r,e)&&(this.outletsByName.delete(r,t),this.outletElementsByName.delete(r,e),null===(n=this.selectorObserverMap.get(r))||void 0===n||n.pause((()=>this.delegate.outletDisconnected(t,e,r))))}disconnectAllOutlets(){for(const t of this.outletElementsByName.keys)for(const e of this.outletElementsByName.getValuesForKey(t))for(const r of this.outletsByName.getValuesForKey(t))this.disconnectOutlet(r,e,t)}updateSelectorObserverForOutlet(t){const e=this.selectorObserverMap.get(t);e&&(e.selector=this.selector(t))}setupSelectorObserverForOutlet(t){const e=this.selector(t),r=new k(document.body,e,this,{outletName:t});this.selectorObserverMap.set(t,r),r.start()}setupAttributeObserverForOutlet(t){const e=this.attributeNameForOutletName(t),r=new x(this.scope.element,e,this);this.attributeObserverMap.set(t,r),r.start()}selector(t){return this.scope.outlets.getSelectorForOutletName(t)}attributeNameForOutletName(t){return this.scope.schema.outletAttributeForScope(this.identifier,t)}getOutletNameFromOutletAttributeName(t){return this.outletDefinitions.find((e=>this.attributeNameForOutletName(e)===t))}get outletDependencies(){const t=new E;return this.router.modules.forEach((e=>{M(e.definition.controllerConstructor,"outlets").forEach((r=>t.add(r,e.identifier)))})),t}get outletDefinitions(){return this.outletDependencies.getKeysForValue(this.identifier)}get dependentControllerIdentifiers(){return this.outletDependencies.getValuesForKey(this.identifier)}get dependentContexts(){const t=this.dependentControllerIdentifiers;return this.router.contexts.filter((e=>t.includes(e.identifier)))}hasOutlet(t,e){return!!this.getOutlet(t,e)||!!this.getOutletFromMap(t,e)}getOutlet(t,e){return this.application.getControllerForElementAndIdentifier(t,e)}getOutletFromMap(t,e){return this.outletsByName.getValuesForKey(e).find((e=>e.element===t))}get scope(){return this.context.scope}get schema(){return this.context.schema}get identifier(){return this.context.identifier}get application(){return this.context.application}get router(){return this.application.router}}class R{constructor(t,e){this.logDebugActivity=(t,e={})=>{const{identifier:r,controller:n,element:i}=this;e=Object.assign({identifier:r,controller:n,element:i},e),this.application.logDebugActivity(this.identifier,t,e)},this.module=t,this.scope=e,this.controller=new t.controllerConstructor(this),this.bindingObserver=new P(this,this.dispatcher),this.valueObserver=new I(this,this.controller),this.targetObserver=new j(this,this),this.outletObserver=new B(this,this);try{this.controller.initialize(),this.logDebugActivity("initialize")}catch(t){this.handleError(t,"initializing controller")}}connect(){this.bindingObserver.start(),this.valueObserver.start(),this.targetObserver.start(),this.outletObserver.start();try{this.controller.connect(),this.logDebugActivity("connect")}catch(t){this.handleError(t,"connecting controller")}}refresh(){this.outletObserver.refresh()}disconnect(){try{this.controller.disconnect(),this.logDebugActivity("disconnect")}catch(t){this.handleError(t,"disconnecting controller")}this.outletObserver.stop(),this.targetObserver.stop(),this.valueObserver.stop(),this.bindingObserver.stop()}get application(){return this.module.application}get identifier(){return this.module.identifier}get schema(){return this.application.schema}get dispatcher(){return this.application.dispatcher}
25976get element(){return this.scope.element}get parentElement(){return this.element.parentElement}handleError(t,e,r={}){const{identifier:n,controller:i,element:o}=this;r=Object.assign({identifier:n,controller:i,element:o},r),this.application.handleError(t,`Error ${e}`,r)}targetConnected(t,e){this.invokeControllerMethod(`${e}TargetConnected`,t)}targetDisconnected(t,e){this.invokeControllerMethod(`${e}TargetDisconnected`,t)}outletConnected(t,e,r){this.invokeControllerMethod(`${u(r)}OutletConnected`,t,e)}outletDisconnected(t,e,r){this.invokeControllerMethod(`${u(r)}OutletDisconnected`,t,e)}invokeControllerMethod(t,...e){const r=this.controller;"function"==typeof r[t]&&r[t](...e)}}function D(t){return function(t,e){const r=$(t),n=function(t,e){return F(e).reduce(((r,n)=>{const i=function(t,e,r){const n=Object.getOwnPropertyDescriptor(t,r);if(!n||!("value"in n)){const t=Object.getOwnPropertyDescriptor(e,r).value;return n&&(t.get=n.get||t.get,t.set=n.set||t.set),t}}(t,e,n);return i&&Object.assign(r,{[n]:i}),r}),{})}(t.prototype,e);return Object.defineProperties(r.prototype,n),r}(t,function(t){const e=M(t,"blessings");return e.reduce(((e,r)=>{const n=r(t);for(const t in n){const r=e[t]||{};e[t]=Object.assign(r,n[t])}return e}),{})}(t))}const F="function"==typeof Object.getOwnPropertySymbols?t=>[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)]:Object.getOwnPropertyNames,$=(()=>{function t(t){function e(){return Reflect.construct(t,arguments,new.target)}return e.prototype=Object.create(t.prototype,{constructor:{value:e}}),Reflect.setPrototypeOf(e,t),e}try{return function(){const e=t((function(){this.a.call(this)}));e.prototype.a=function(){},new e}(),t}catch(t){return t=>class extends t{}}})();class H{constructor(t,e){this.application=t,this.definition=function(t){return{identifier:t.identifier,controllerConstructor:D(t.controllerConstructor)}}(e),this.contextsByScope=new WeakMap,this.connectedContexts=new Set}get identifier(){return this.definition.identifier}get controllerConstructor(){return this.definition.controllerConstructor}get contexts(){return Array.from(this.connectedContexts)}connectContextForScope(t){const e=this.fetchContextForScope(t);this.connectedContexts.add(e),e.connect()}disconnectContextForScope(t){const e=this.contextsByScope.get(t);e&&(this.connectedContexts.delete(e),e.disconnect())}fetchContextForScope(t){let e=this.contextsByScope.get(t);return e||(e=new R(this,t),this.contextsByScope.set(t,e)),e}}class z{constructor(t){this.scope=t}has(t){return this.data.has(this.getDataKey(t))}get(t){return this.getAll(t)[0]}getAll(t){const e=this.data.get(this.getDataKey(t))||"";return e.match(/[^\s]+/g)||[]}getAttributeName(t){return this.data.getAttributeNameForKey(this.getDataKey(t))}getDataKey(t){return`${t}-class`}get data(){return this.scope.data}}class V{constructor(t){this.scope=t}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get(t){const e=this.getAttributeNameForKey(t);return this.element.getAttribute(e)}set(t,e){const r=this.getAttributeNameForKey(t);return this.element.setAttribute(r,e),this.get(t)}has(t){const e=this.getAttributeNameForKey(t);return this.element.hasAttribute(e)}delete(t){if(this.has(t)){const e=this.getAttributeNameForKey(t);return this.element.removeAttribute(e),!0}return!1}getAttributeNameForKey(t){return`data-${this.identifier}-${f(t)}`}}class U{constructor(t){this.warnedKeysByObject=new WeakMap,this.logger=t}warn(t,e,r){let n=this.warnedKeysByObject.get(t);n||(n=new Set,this.warnedKeysByObject.set(t,n)),n.has(e)||(n.add(e),this.logger.warn(r,t))}}function W(t,e){return`[${t}~="${e}"]`}class K{constructor(t){this.scope=t}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get schema(){return this.scope.schema}has(t){return null!=this.find(t)}find(...t){return t.reduce(((t,e)=>t||this.findTarget(e)||this.findLegacyTarget(e)),void 0)}findAll(...t){return t.reduce(((t,e)=>[...t,...this.findAllTargets(e),...this.findAllLegacyTargets(e)]),[])}findTarget(t){const e=this.getSelectorForTargetName(t);return this.scope.findElement(e)}findAllTargets(t){const e=this.getSelectorForTargetName(t);return this.scope.findAllElements(e)}getSelectorForTargetName(t){return W(this.schema.targetAttributeForScope(this.identifier),t)}findLegacyTarget(t){const e=this.getLegacySelectorForTargetName(t);return this.deprecate(this.scope.findElement(e),t)}findAllLegacyTargets(t){const e=this.getLegacySelectorForTargetName(t);return this.scope.findAllElements(e).map((e=>this.deprecate(e,t)))}getLegacySelectorForTargetName(t){const e=`${this.identifier}.${t}`;return W(this.schema.targetAttribute,e)}deprecate(t,e){if(t){const{identifier:r}=this,n=this.schema.targetAttribute,i=this.schema.targetAttributeForScope(r);this.guide.warn(t,`target:${e}`,`Please replace ${n}="${r}.${e}" with ${i}="${e}". The ${n} attribute is deprecated and will be removed in a future version of Stimulus.`)}return t}get guide(){return this.scope.guide}}class G{constructor(t,e){this.scope=t,this.controllerElement=e}
25976get element(){return this.scope.element}get identifier(){return this.scope.identifier}get schema(){return this.scope.schema}has(t){return null!=this.find(t)}find(...t){return t.reduce(((t,e)=>t||this.findOutlet(e)),void 0)}findAll(...t){return t.reduce(((t,e)=>[...t,...this.findAllOutlets(e)]),[])}getSelectorForOutletName(t){const e=this.schema.outletAttributeForScope(this.identifier,t);return this.controllerElement.getAttribute(e)}findOutlet(t){const e=this.getSelectorForOutletName(t);if(e)return this.findElement(e,t)}findAllOutlets(t){const e=this.getSelectorForOutletName(t);return e?this.findAllElements(e,t):[]}findElement(t,e){return this.scope.queryElements(t).filter((r=>this.matchesElement(r,t,e)))[0]}findAllElements(t,e){return this.scope.queryElements(t).filter((r=>this.matchesElement(r,t,e)))}matchesElement(t,e,r){const n=t.getAttribute(this.scope.schema.controllerAttribute)||"";return t.matches(e)&&n.split(" ").includes(r)}}class q{constructor(t,e,r,n){this.targets=new K(this),this.classes=new z(this),this.data=new V(this),this.containsElement=t=>t.closest(this.controllerSelector)===this.element,this.schema=t,this.element=e,this.identifier=r,this.guide=new U(n),this.outlets=new G(this.documentScope,e)}findElement(t){return this.element.matches(t)?this.element:this.queryElements(t).find(this.containsElement)}findAllElements(t){return[...this.element.matches(t)?[this.element]:[],...this.queryElements(t).filter(this.containsElement)]}queryElements(t){return Array.from(this.element.querySelectorAll(t))}get controllerSelector(){return W(this.schema.controllerAttribute,this.identifier)}get isDocumentScope(){return this.element===document.documentElement}get documentScope(){return this.isDocumentScope?this:new q(this.schema,document.documentElement,this.identifier,this.guide.logger)}}class J{constructor(t,e,r){this.element=t,this.schema=e,this.delegate=r,this.valueListObserver=new C(this.element,this.controllerAttribute,this),this.scopesByIdentifierByElement=new WeakMap,this.scopeReferenceCounts=new WeakMap}start(){this.valueListObserver.start()}stop(){this.valueListObserver.stop()}get controllerAttribute(){return this.schema.controllerAttribute}parseValueForToken(t){const{element:e,content:r}=t;return this.parseValueForElementAndIdentifier(e,r)}parseValueForElementAndIdentifier(t,e){const r=this.fetchScopesByIdentifierForElement(t);let n=r.get(e);return n||(n=this.delegate.createScopeForElementAndIdentifier(t,e),r.set(e,n)),n}elementMatchedValue(t,e){const r=(this.scopeReferenceCounts.get(e)||0)+1;this.scopeReferenceCounts.set(e,r),1==r&&this.delegate.scopeConnected(e)}elementUnmatchedValue(t,e){const r=this.scopeReferenceCounts.get(e);r&&(this.scopeReferenceCounts.set(e,r-1),1==r&&this.delegate.scopeDisconnected(e))}fetchScopesByIdentifierForElement(t){let e=this.scopesByIdentifierByElement.get(t);return e||(e=new Map,this.scopesByIdentifierByElement.set(t,e)),e}}class Y{constructor(t){this.application=t,this.scopeObserver=new J(this.element,this.schema,this),this.scopesByIdentifier=new E,this.modulesByIdentifier=new Map}get element(){return this.application.element}get schema(){return this.application.schema}get logger(){return this.application.logger}get controllerAttribute(){return this.schema.controllerAttribute}get modules(){return Array.from(this.modulesByIdentifier.values())}get contexts(){return this.modules.reduce(((t,e)=>t.concat(e.contexts)),[])}start(){this.scopeObserver.start()}stop(){this.scopeObserver.stop()}loadDefinition(t){this.unloadIdentifier(t.identifier);const e=new H(this.application,t);this.connectModule(e);const r=t.controllerConstructor.afterLoad;r&&r.call(t.controllerConstructor,t.identifier,this.application)}unloadIdentifier(t){const e=this.modulesByIdentifier.get(t);e&&this.disconnectModule(e)}getContextForElementAndIdentifier(t,e){const r=this.modulesByIdentifier.get(e);if(r)return r.contexts.find((e=>e.element==t))}proposeToConnectScopeForElementAndIdentifier(t,e){const r=this.scopeObserver.parseValueForElementAndIdentifier(t,e);r?this.scopeObserver.elementMatchedValue(r.element,r):console.error(`Couldn't find or create scope for identifier: "${e}" and element:`,t)}handleError(t,e,r){this.application.handleError(t,e,r)}createScopeForElementAndIdentifier(t,e){return new q(this.schema,t,e,this.logger)}scopeConnected(t){this.scopesByIdentifier.add(t.identifier,t);const e=this.modulesByIdentifier.get(t.identifier);e&&e.connectContextForScope(t)}scopeDisconnected(t){this.scopesByIdentifier.delete(t.identifier,t);const e=this.modulesByIdentifier.get(t.identifier);e&&e.disconnectContextForScope(t)}
25976connectModule(t){this.modulesByIdentifier.set(t.identifier,t);this.scopesByIdentifier.getValuesForKey(t.identifier).forEach((e=>t.connectContextForScope(e)))}disconnectModule(t){this.modulesByIdentifier.delete(t.identifier);this.scopesByIdentifier.getValuesForKey(t.identifier).forEach((e=>t.disconnectContextForScope(e)))}}const X={controllerAttribute:"data-controller",actionAttribute:"data-action",targetAttribute:"data-target",targetAttributeForScope:t=>`data-${t}-target`,outletAttributeForScope:(t,e)=>`data-${t}-${e}-outlet`,keyMappings:Object.assign(Object.assign({enter:"Enter",tab:"Tab",esc:"Escape",space:" ",up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight",home:"Home",end:"End",page_up:"PageUp",page_down:"PageDown"},Q("abcdefghijklmnopqrstuvwxyz".split("").map((t=>[t,t])))),Q("0123456789".split("").map((t=>[t,t]))))};function Q(t){return t.reduce(((t,[e,r])=>Object.assign(Object.assign({},t),{[e]:r})),{})}class Z{constructor(t=document.documentElement,e=X){this.logger=console,this.debug=!1,this.logDebugActivity=(t,e,r={})=>{this.debug&&this.logFormattedMessage(t,e,r)},this.element=t,this.schema=e,this.dispatcher=new i(this),this.router=new Y(this),this.actionDescriptorFilters=Object.assign({},o)}static start(t,e){const r=new this(t,e);return r.start(),r}async start(){await new Promise((t=>{"loading"==document.readyState?document.addEventListener("DOMContentLoaded",(()=>t())):t()})),this.logDebugActivity("application","starting"),this.dispatcher.start(),this.router.start(),this.logDebugActivity("application","start")}stop(){this.logDebugActivity("application","stopping"),this.dispatcher.stop(),this.router.stop(),this.logDebugActivity("application","stop")}register(t,e){this.load({identifier:t,controllerConstructor:e})}registerActionOption(t,e){this.actionDescriptorFilters[t]=e}load(t,...e){(Array.isArray(t)?t:[t,...e]).forEach((t=>{t.controllerConstructor.shouldLoad&&this.router.loadDefinition(t)}))}unload(t,...e){(Array.isArray(t)?t:[t,...e]).forEach((t=>this.router.unloadIdentifier(t)))}get controllers(){return this.router.contexts.map((t=>t.controller))}getControllerForElementAndIdentifier(t,e){const r=this.router.getContextForElementAndIdentifier(t,e);return r?r.controller:null}handleError(t,e,r){var n;this.logger.error("%s\n\n%o\n\n%o",e,t,r),null===(n=window.onerror)||void 0===n||n.call(window,e,"",0,0,t)}logFormattedMessage(t,e,r={}){r=Object.assign({application:this},r),this.logger.groupCollapsed(`${t} #${e}`),this.logger.log("details:",Object.assign({},r)),this.logger.groupEnd()}}function tt(t,e,r){return t.application.getControllerForElementAndIdentifier(e,r)}function et(t,e,r){let n=tt(t,e,r);return n||(t.application.router.proposeToConnectScopeForElementAndIdentifier(e,r),n=tt(t,e,r),n||void 0)}function rt([t,e],r){return function(t){const{token:e,typeDefinition:r}=t,n=`${f(e)}-value`,i=function(t){const{controller:e,token:r,typeDefinition:n}=t,i={controller:e,token:r,typeObject:n},o=function(t){const{controller:e,token:r,typeObject:n}=t,i=h(n.type),o=h(n.default),s=i&&o,a=i&&!o,c=!i&&o,u=nt(n.type),l=it(t.typeObject.default);if(a)return u;if(c)return l;if(u!==l){throw new Error(`The specified default value for the Stimulus Value "${e?`${e}.${r}`:r}" must match the defined type "${u}". The provided default value of "${n.default}" is of type "${l}".`)}if(s)return u}(i),s=it(n),a=nt(n),c=o||s||a;if(c)return c;const u=e?`${e}.${n}`:r;throw new Error(`Unknown value type "${u}" for "${r}" value`)}(t);return{type:i,key:n,name:c(n),get defaultValue(){return function(t){const e=nt(t);if(e)return ot[e];const r=p(t,"default"),n=p(t,"type"),i=t;if(r)return i.default;if(n){const{type:t}=i,e=nt(t);if(e)return ot[e]}return t}(r)},get hasCustomDefaultValue(){return void 0!==it(r)},reader:st[i],writer:at[i]||at.default}}({controller:r,token:t,typeDefinition:e})}function nt(t){switch(t){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function it(t){switch(typeof t){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}return Array.isArray(t)?"array":"[object Object]"===Object.prototype.toString.call(t)?"object":void 0}const ot={get array(){return[]},boolean:!1,number:0,get object(){return{}},string:""},st={array(t){const e=JSON.parse(t);if(!Array.isArray(e))throw new TypeError(`expected value of type "array" but instead got value "${t}" of type "${it(e)}"`);return e},boolean:t=>!("0"==t||"false"==String(t).toLowerCase()),number:t=>Number(t.replace(/_/g,"")),object(t){const e=JSON.parse(t);if(null===e||"object"!=typeof e||Array.isArray(e))throw new TypeError(`expected value of type "object" but instead got value "${t}" of type "${it(e)}"`);return e},string:t=>t},at={default:function(t){return`${t}`},array:ct,object:ct};function ct(t){return JSON.stringify(t)}class ut{constructor(t){this.context=t}static get shouldLoad(){return!0}static afterLoad(t,e){}get application(){return this.context.application}get scope(){return this.context.scope}
25976get element(){return this.scope.element}get identifier(){return this.scope.identifier}get targets(){return this.scope.targets}get outlets(){return this.scope.outlets}get classes(){return this.scope.classes}get data(){return this.scope.data}initialize(){}connect(){}disconnect(){}dispatch(t,{target:e=this.element,detail:r={},prefix:n=this.identifier,bubbles:i=!0,cancelable:o=!0}={}){const s=new CustomEvent(n?`${n}:${t}`:t,{detail:r,bubbles:i,cancelable:o});return e.dispatchEvent(s),s}}ut.blessings=[function(t){return M(t,"classes").reduce(((t,e)=>{return Object.assign(t,(r=e,{[`${r}Class`]:{get(){const{classes:t}=this;if(t.has(r))return t.get(r);{const e=t.getAttributeName(r);throw new Error(`Missing attribute "${e}"`)}}},[`${r}Classes`]:{get(){return this.classes.getAll(r)}},[`has${l(r)}Class`]:{get(){return this.classes.has(r)}}}));var r}),{})},function(t){return M(t,"targets").reduce(((t,e)=>{return Object.assign(t,(r=e,{[`${r}Target`]:{get(){const t=this.targets.find(r);if(t)return t;throw new Error(`Missing target element "${r}" for "${this.identifier}" controller`)}},[`${r}Targets`]:{get(){return this.targets.findAll(r)}},[`has${l(r)}Target`]:{get(){return this.targets.has(r)}}}));var r}),{})},function(t){const e=L(t,"values"),r={valueDescriptorMap:{get(){return e.reduce(((t,e)=>{const r=rt(e,this.identifier),n=this.data.getAttributeNameForKey(r.key);return Object.assign(t,{[n]:r})}),{})}}};return e.reduce(((t,e)=>Object.assign(t,function(t,e){const r=rt(t,e),{key:n,name:i,reader:o,writer:s}=r;return{[i]:{get(){const t=this.data.get(n);return null!==t?o(t):r.defaultValue},set(t){void 0===t?this.data.delete(n):this.data.set(n,s(t))}},[`has${l(i)}`]:{get(){return this.data.has(n)||r.hasCustomDefaultValue}}}}(e))),r)},function(t){return M(t,"outlets").reduce(((t,e)=>Object.assign(t,function(t){const e=u(t);return{[`${e}Outlet`]:{get(){const e=this.outlets.find(t),r=this.outlets.getSelectorForOutletName(t);if(e){const r=et(this,e,t);if(r)return r;throw new Error(`The provided outlet element is missing an outlet controller "${t}" instance for host controller "${this.identifier}"`)}throw new Error(`Missing outlet element "${t}" for host controller "${this.identifier}". Stimulus couldn't find a matching outlet element using selector "${r}".`)}},[`${e}Outlets`]:{get(){const e=this.outlets.findAll(t);return e.length>0?e.map((e=>{const r=et(this,e,t);if(r)return r;console.warn(`The provided outlet element is missing an outlet controller "${t}" instance for host controller "${this.identifier}"`,e)})).filter((t=>t)):[]}},[`${e}OutletElement`]:{get(){const e=this.outlets.find(t),r=this.outlets.getSelectorForOutletName(t);if(e)return e;throw new Error(`Missing outlet element "${t}" for host controller "${this.identifier}". Stimulus couldn't find a matching outlet element using selector "${r}".`)}},[`${e}OutletElements`]:{get(){return this.outlets.findAll(t)}},[`has${l(e)}Outlet`]:{get(){return this.outlets.has(t)}}}}(e))),{})}],ut.targets=[],ut.outlets=[],ut.values={}},6794:(t,e,r)=>{"use strict";var n=r(659),i=r(4102),o=r(1031);t.exports=function(t,e){if(n(t),i(e)&&e.constructor===t)return e;var r=o.f(t);return(0,r.resolve)(e),r.promise}},6805:(t,e,r)=>{"use strict";var n=r(8810),i=r(2128),o=r(3037).f;n({target:"Object",stat:!0,forced:Object.defineProperties!==o,sham:!i},{defineProperties:o})},6871:(t,e,r)=>{"use strict";var n=r(7928),i=r(5719);t.exports=n?{}.toString:function(){return"[object "+i(this)+"]"}},6891:(t,e,r)=>{"use strict";var n=r(2763),i=r(2675),o=r(8052).String;t.exports=!!Object.getOwnPropertySymbols&&!i((function(){var t=Symbol("symbol detection");return!o(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&n&&n<41}))},6893:(t,e,r)=>{"use strict";var n=r(2128),i=r(2537).MISSED_STICKY,o=r(2748),s=r(6038),a=r(6369).get,c=RegExp.prototype,u=TypeError;n&&i&&s(c,"sticky",{configurable:!0,get:function(){if(this!==c){if("RegExp"===o(this))return!!a(this).sticky;throw new u("Incompatible receiver, RegExp required")}}})},6973:(t,e,r)=>{"use strict";
25976function n(t,e){return n=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},n(t,e)}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&n(t,e)}r.d(e,{A:()=>i})},6977:(t,e,r)=>{"use strict";var n=r(8052),i=r(2128),o=Object.getOwnPropertyDescriptor;t.exports=function(t){if(!i)return n[t];var e=o(n,t);return e&&e.value}},6985:(t,e,r)=>{"use strict";var n=r(8810),i=r(6891),o=r(2675),s=r(9073),a=r(8649);n({target:"Object",stat:!0,forced:!i||o((function(){s.f(1)}))},{getOwnPropertySymbols:function(t){var e=s.f;return e?e(a(t)):[]}})},6990:(t,e,r)=>{var n=r(7187),i=r(1029),o=r(8704),s=n?n.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":s&&s in Object(t)?i(t):o(t)}},7009:t=>{"use strict";t.exports="undefined"!=typeof Reflect&&Reflect&&Reflect.apply},7032:(t,e,r)=>{"use strict";var n=r(8052),i=r(5034),o=r(321),s=r(2360),a=r(2718),c=r(4175),u=r(6627),l=r(6007),f=r(2763),h=i&&i.prototype,p=c("species"),d=!1,v=o(n.PromiseRejectionEvent),g=s("Promise",(function(){var t=a(i),e=t!==String(i);if(!e&&66===f)return!0;if(l&&(!h.catch||!h.finally))return!0;if(!f||f<51||!/native code/.test(t)){var r=new i((function(t){t(1)})),n=function(t){t((function(){}),(function(){}))};if((r.constructor={})[p]=n,!(d=r.then((function(){}))instanceof n))return!0}return!(e||"BROWSER"!==u&&"DENO"!==u||v)}));t.exports={CONSTRUCTOR:g,REJECTION_EVENT:v,SUBCLASSING:d}},7066:(t,e,r)=>{var n=r(1158),i=/^\s+/;t.exports=function(t){return t?t.slice(0,n(t)+1).replace(i,""):t}},7073:(t,e,r)=>{"use strict";var n=r(3163);t.exports=n("document","documentElement")},7132:(t,e,r)=>{"use strict";var n=r(6005).f;t.exports=function(t,e,r){r in t||n(t,r,{configurable:!0,get:function(){return e[r]},set:function(t){e[r]=t}})}},7140:(t,e,r)=>{"use strict";var n=r(4451)("span").classList,i=n&&n.constructor&&n.constructor.prototype;t.exports=i===Object.prototype?void 0:i},7156:(t,e,r)=>{"use strict";var n=r(2484);t.exports=n(1..valueOf)},7180:t=>{"use strict";t.exports=RangeError},7183:(t,e,r)=>{var n=r(5194),i="object"==typeof self&&self&&self.Object===Object&&self,o=n||i||Function("return this")();t.exports=o},7187:(t,e,r)=>{var n=r(7183).Symbol;t.exports=n},7196:(t,e,r)=>{"use strict";var n=r(469),i=r(6757),o=r(1530),s=r(9630);t.exports=function(t){if(t.length<1||"function"!=typeof t[0])throw new i("a function is required");return s(n,o,t)}},7256:t=>{"use strict";t.exports=Math.abs},7267:(t,e,r)=>{"use strict";var n=r(5719),i=String;t.exports=function(t){if("Symbol"===n(t))throw new TypeError("Cannot convert a Symbol value to a string");return i(t)}},7270:(t,e,r)=>{"use strict";var n=r(3597).IteratorPrototype,i=r(3844),o=r(5936),s=r(8819),a=r(6609),c=function(){return this};t.exports=function(t,e,r,u){var l=e+" Iterator";return t.prototype=i(n,{next:o(+!u,r)}),s(t,l,!1,!0),a[l]=c,t}},7372:(t,e,r)=>{"use strict";var n=r(8810),i=r(2961).filter;n({target:"Array",proto:!0,forced:!r(2321)("filter")},{filter:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},7389:(t,e,r)=>{"use strict";var n=r(2484),i=Error,o=n("".replace),s=String(new i("zxcasd").stack),a=/\n\s*at [^:]*:[^\n]*/,c=a.test(s);t.exports=function(t,e){if(c&&"string"==typeof t&&!i.prepareStackTrace)for(;e--;)t=o(t,a,"");return t}},7391:(t,e,r)=>{"use strict";var n=r(4049);t.exports=function(t){var e=+t;return e!=e||0===e?0:n(e)}},7431:(t,e,r)=>{"use strict";function n(t,e,r,n,i,o,s){try{var a=t[o](s),c=a.value}catch(t){return void r(t)}a.done?e(c):Promise.resolve(c).then(n,i)}function i(t){return function(){var e=this,r=arguments;return new Promise((function(i,o){var s=t.apply(e,r);function a(t){n(s,i,o,a,c,"next",t)}function c(t){n(s,i,o,a,c,"throw",t)}a(void 0)}))}}r.d(e,{A:()=>i})},7453:(t,e,r)=>{var n,i;!function(o){"use strict";n=[r(5455),r(8179),r(3743),r(5511)],i=function(t,e,r,n){return function(t,e,r,n,i){var o=t.console,s=t.jQuery,a=function(){},c=0,u={};function l(t,e){var r=n.getQueryElement(t);if(r){this.element=r,s&&(this.$element=s(this.element)),this.options=n.extend({},this.constructor.defaults),this.option(e);var i=++c;this.element.outlayerGUID=i,u[i]=this,this._create(),this._getOption("initLayout")&&this.layout()}else o&&o.error("Bad element for "+this.constructor.namespace+": "+(r||t))}l.namespace="outlayer",l.Item=i,l.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var f=l.prototype;function h(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}n.extend(f,e.prototype),f.option=function(t){n.extend(this.options,t)},f._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},l.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},f._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),n.extend(this.element.style,this.options.containerStyle),this._getOption("resize")&&this.bindResize()},f.reloadItems=function(){this.items=this._itemize(this.element.children)},f._itemize=function(t){for(var e=this._filterFindItemElements(t),r=this.constructor.Item,n=[],i=0;i<e.length;i++){var o=new r(e[i],this);n.push(o)}return n},f._filterFindItemElements=function(t){return n.filterFindElements(t,this.options.itemSelector)},f.getItemElements=function(){return this.items.map((function(t){return t.element}))},f.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0}
vendor: 4,974 bytes, line 25976
25976,f._init=f.layout,f._resetLayout=function(){this.getSize()},f.getSize=function(){this.size=r(this.element)},f._getMeasurement=function(t,e){var n,i=this.options[t];i?("string"==typeof i?n=this.element.querySelector(i):i instanceof HTMLElement&&(n=i),this[t]=n?r(n)[e]:i):this[t]=0},f.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},f._getItemsForLayout=function(t){return t.filter((function(t){return!t.isIgnored}))},f._layoutItems=function(t,e){if(this._emitCompleteOnItems("layout",t),t&&t.length){var r=[];t.forEach((function(t){var n=this._getItemLayoutPosition(t);n.item=t,n.isInstant=e||t.isLayoutInstant,r.push(n)}),this),this._processLayoutQueue(r)}},f._getItemLayoutPosition=function(){return{x:0,y:0}},f._processLayoutQueue=function(t){this.updateStagger(),t.forEach((function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)}),this)},f.updateStagger=function(){var t=this.options.stagger;if(null!=t)return this.stagger=d(t),this.stagger;this.stagger=0},f._positionItem=function(t,e,r,n,i){n?t.goTo(e,r):(t.stagger(i*this.stagger),t.moveTo(e,r))},f._postLayout=function(){this.resizeContainer()},f.resizeContainer=function(){if(this._getOption("resizeContainer")){var t=this._getContainerSize();t&&(this._setContainerMeasure(t.width,!0),this._setContainerMeasure(t.height,!1))}},f._getContainerSize=a,f._setContainerMeasure=function(t,e){if(void 0!==t){var r=this.size;r.isBorderBox&&(t+=e?r.paddingLeft+r.paddingRight+r.borderLeftWidth+r.borderRightWidth:r.paddingBottom+r.paddingTop+r.borderTopWidth+r.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},f._emitCompleteOnItems=function(t,e){var r=this;function n(){r.dispatchEvent(t+"Complete",null,[e])}var i=e.length;if(e&&i){var o=0;e.forEach((function(e){e.once(t,s)}))}else n();function s(){++o==i&&n()}},f.dispatchEvent=function(t,e,r){var n=e?[e].concat(r):r;if(this.emitEvent(t,n),s)if(this.$element=this.$element||s(this.element),e){var i=s.Event(e);i.type=t,this.$element.trigger(i,r)}else this.$element.trigger(t,r)},f.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},f.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},f.stamp=function(t){(t=this._find(t))&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},f.unstamp=function(t){(t=this._find(t))&&t.forEach((function(t){n.removeFrom(this.stamps,t),this.unignore(t)}),this)},f._find=function(t){if(t)return"string"==typeof t&&(t=this.element.querySelectorAll(t)),t=n.makeArray(t)},f._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},f._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},f._manageStamp=a,f._getElementOffset=function(t){var e=t.getBoundingClientRect(),n=this._boundingRect,i=r(t);return{left:e.left-n.left-i.marginLeft,top:e.top-n.top-i.marginTop,right:n.right-e.right-i.marginRight,bottom:n.bottom-e.bottom-i.marginBottom}},f.handleEvent=n.handleEvent,f.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},f.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},f.onresize=function(){this.resize()},n.debounceMethod(l,"onresize",100),f.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},f.needsResizeLayout=function(){var t=r(this.element);return this.size&&t&&t.innerWidth!==this.size.innerWidth},f.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},f.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},f.prepended=function(t){var e=this._itemize(t);if(e.length){var r=this.items.slice(0);this.items=e.concat(r),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(r)}},f.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var e=this.updateStagger();t.forEach((function(t,r){t.stagger(r*e),t.reveal()}))}},f.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var e=this.updateStagger();t.forEach((function(t,r){t.stagger(r*e),t.hide()}))}},f.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},f.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},f.getItem=function(t){for(var e=0;e<this.items.length;e++){var r=this.items[e];if(r.element==t)return r}},f.getItems=function(t){t=n.makeArray(t);var e=[];return t.forEach((function(t){var r=this.getItem(t);r&&e.push(r)}),this),e},f.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach((function(t){t.remove(),n.removeFrom(this.items,t)}),this)},f.destroy=function(){var t=this.element.style;
25976t.height="",t.position="",t.width="",this.items.forEach((function(t){t.destroy()})),this.unbindResize();var e=this.element.outlayerGUID;delete u[e],delete this.element.outlayerGUID,s&&s.removeData(this.element,this.constructor.namespace)},l.data=function(t){var e=(t=n.getQueryElement(t))&&t.outlayerGUID;return e&&u[e]},l.create=function(t,e){var r=h(l);return r.defaults=n.extend({},l.defaults),n.extend(r.defaults,e),r.compatOptions=n.extend({},l.compatOptions),r.namespace=t,r.data=l.data,r.Item=h(i),n.htmlInit(r,t),s&&s.bridget&&s.bridget(t,r),r};var p={ms:1,s:1e3};function d(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),r=e&&e[1],n=e&&e[2];return r.length?(r=parseFloat(r))*(p[n]||1):0}return l.Item=i,l}(o,t,e,r,n)}.apply(e,n),void 0===i||(t.exports=i)}(window)},7476:(t,e,r)=>{"use strict";var n=r(8810),i=r(8649),o=r(4700);n({target:"Object",stat:!0,forced:r(2675)((function(){o(1)}))},{keys:function(t){return o(i(t))}})},7517:(t,e,r)=>{"use strict";var n=r(3291);t.exports=/ipad|iphone|ipod/i.test(n)&&"undefined"!=typeof Pebble},7560:(t,e,r)=>{"use strict";var n=r(1955).charAt,i=r(7267),o=r(6369),s=r(8676),a=r(381),c="String Iterator",u=o.set,l=o.getterFor(c);s(String,"String",(function(t){u(this,{type:c,string:i(t),index:0})}),(function(){var t,e=l(this),r=e.string,i=e.index;return i>=r.length?a(void 0,!0):(t=n(r,i),e.index+=t.length,a(t,!1))}))},7567:(t,e,r)=>{"use strict";var n=r(8810),i=r(2484),o=r(3259),s=r(4834),a=r(7267),c=r(8656),u=i("".indexOf);n({target:"String",proto:!0,forced:!c("includes")},{includes:function(t){return!!~u(a(s(this)),a(o(t)),arguments.length>1?arguments[1]:void 0)}})},7575:(t,e,r)=>{"use strict";r(3765),r(930),r(9200),r(7754),r(6985)},7582:(t,e,r)=>{"use strict";var n=r(9090),i=r(2170),o=r(714);t.exports=n?function(t){return n(t)}:i?function(t){if(!t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("getProto: not an object");return i(t)}:o?function(t){return o(t)}:null},7585:(t,e,r)=>{"use strict";var n=r(9017),i={arguments:"an arguments object",array:"an array",boolean:"a boolean",buffer:"a buffer",date:"a date",error:"an error",float32array:"a float32array",float64array:"a float64array",function:"a function",int16array:"an int16array",int32array:"an int32array",int8array:"an int8array",map:"a Map",null:"null",number:"a number",object:"an object",regexp:"a regular expression",set:"a Set",string:"a string",symbol:"a symbol",uint16array:"an uint16array",uint32array:"an uint32array",uint8array:"an uint8array",uint8clampedarray:"an uint8clampedarray",undefined:"undefined",weakmap:"a WeakMap",weakset:"a WeakSet"};function o(t){return i[n(t)]}o.types=i,o.typeOf=n,t.exports=o},7642:(t,e,r)=>{"use strict";var n=r(8810),i=r(2961).some;n({target:"Array",proto:!0,forced:!r(8754)("some")},{some:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},7652:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>Y});r(8037);var n,i=r(2561),o=r(6710),s=r(3008),a=r(3134),c=r(6973),u=(r(4958),r(7372),r(5249),r(2614),r(4707),r(3348),r(5050),r(562),r(6108),r(6160),r(8021),r(3376),r(9585),r(5321),r(1759),r(7560),r(3406),r(3544),r(2901),r(6782)),l=[],f="ResizeObserver loop completed with undelivered notifications.";!function(t){t.BORDER_BOX="border-box",t.CONTENT_BOX="content-box",t.DEVICE_PIXEL_CONTENT_BOX="device-pixel-content-box"}(n||(n={}));var h,p=function(t){return Object.freeze(t)},d=function(t,e){this.inlineSize=t,this.blockSize=e,p(this)},v=function(){function t(t,e,r,n){return this.x=t,this.y=e,this.width=r,this.height=n,this.top=this.y,this.left=this.x,this.bottom=this.top+this.height,this.right=this.left+this.width,p(this)}return t.prototype.toJSON=function(){var t=this;return{x:t.x,y:t.y,top:t.top,right:t.right,bottom:t.bottom,left:t.left,width:t.width,height:t.height}},t.fromRect=function(e){return new t(e.x,e.y,e.width,e.height)},t}(),g=function(t){return t instanceof SVGElement&&"getBBox"in t},m=function(t){if(g(t)){var e=t.getBBox(),r=e.width,n=e.height;return!r&&!n}var i=t,o=i.offsetWidth,s=i.offsetHeight;return!(o||s||t.getClientRects().length)},y=function(t){var e;if(t instanceof Element)return!0;var r=null===(e=null==t?void 0:t.ownerDocument)||void 0===e?void 0:e.defaultView;return!!(r&&t instanceof r.Element)},b="undefined"!=typeof window?window:{},w=new WeakMap,x=/auto|scroll/,S=/^tb|vertical/,A=/msie|trident/i.test(b.navigator&&b.navigator.userAgent),O=function(t){return parseFloat(t||"0")},E=function(t,e,r){return void 0===t&&(t=0),void 0===e&&(e=0),void 0===r&&(r=!1),new d((r?e:t)||0,(r?t:e)||0)},k=p({devicePixelContentBoxSize:E(),borderBoxSize:E(),contentBoxSize:E(),contentRect:new v(0,0,0,0)}),T=function(t,e){if(void 0===e&&(e=!1),w.has(t)&&!e)return w.get(t);if(m(t))return w.set(t,k),k;var r=getComputedStyle(t),n=g(t)&&t.ownerSVGElement&&t.getBBox(),i=!A&&"border-box"===r.boxSizing,o=S.test(r.writingMode||""),s=!n&&x.test(r.overflowY||""),a=!n&&x.test(r.overflowX||""),c=n?0:O(r.paddingTop),u=n?0:O(r.paddingRight),l=n?0:O(r.paddingBottom),f=n?0:O(r.paddingLeft),h=n?0:O(r.borderTopWidth),d=n?0:O(r.borderRightWidth),y=n?0:O(r.borderBottomWidth),b=f+u,T=c+l,_=(n?0:O(r.borderLeftWidth))+d,C=h+y,P=a?t.offsetHeight-C-t.clientHeight:0,I=s?t.offsetWidth-_-t.clientWidth:0,j=i?b+_:0,M=i?T+C:0,L=n?n.width:O(r.width)-j-I,N=n?n.height:O(r.height)-M-P,B=L+b+I+_,R=N+T+P+C,D=p({devicePixelContentBoxSize:E(Math.round(L*devicePixelRatio),Math.round(N*devicePixelRatio),o),borderBoxSize:E(B,R,o),contentBoxSize:E(L,N,o),contentRect:new v(f,c,L,N)});return w.set(t,D),D},_=function(t,e,r){var i=T(t,r),o=i.borderBoxSize,s=i.contentBoxSize,a=i.devicePixelContentBoxSize;switch(e){case n.DEVICE_PIXEL_CONTENT_BOX:return a;case n.BORDER_BOX:return o;default:return s}},C=function(t){var e=T(t);this.target=t,this.contentRect=e.contentRect,this.borderBoxSize=p([e.borderBoxSize]),this.contentBoxSize=p([e.contentBoxSize]),this.devicePixelContentBoxSize=p([e.devicePixelContentBoxSize])},P=function(t){if(m(t))return 1/0;for(var e=0,r=t.parentNode;r;)e+=1,r=r.parentNode;return e},I=function(){var t=1/0,e=[];l.forEach((function(r){if(0!==r.activeTargets.length){var n=[];
vendor: 5,297 bytes, line 25976
25976r.activeTargets.forEach((function(e){var r=new C(e.target),i=P(e.target);n.push(r),e.lastReportedSize=_(e.target,e.observedBox),i<t&&(t=i)})),e.push((function(){r.callback.call(r.observer,n,r.observer)})),r.activeTargets.splice(0,r.activeTargets.length)}}));for(var r=0,n=e;r<n.length;r++){(0,n[r])()}return t},j=function(t){l.forEach((function(e){e.activeTargets.splice(0,e.activeTargets.length),e.skippedTargets.splice(0,e.skippedTargets.length),e.observationTargets.forEach((function(r){r.isActive()&&(P(r.target)>t?e.activeTargets.push(r):e.skippedTargets.push(r))}))}))},M=function(){var t,e=0;for(j(e);l.some((function(t){return t.activeTargets.length>0}));)e=I(),j(e);return l.some((function(t){return t.skippedTargets.length>0}))&&("function"==typeof ErrorEvent?t=new ErrorEvent("error",{message:f}):((t=document.createEvent("Event")).initEvent("error",!1,!1),t.message=f),window.dispatchEvent(t)),e>0},L=[],N=function(t){if(!h){var e=0,r=document.createTextNode("");new MutationObserver((function(){return L.splice(0).forEach((function(t){return t()}))})).observe(r,{characterData:!0}),h=function(){r.textContent="".concat(e?e--:e++)}}L.push(t),h()},B=0,R={attributes:!0,characterData:!0,childList:!0,subtree:!0},D=["resize","load","transitionend","animationend","animationstart","animationiteration","keyup","keydown","mouseup","mousedown","mouseover","mouseout","blur","focus"],F=function(t){return void 0===t&&(t=0),Date.now()+t},$=!1,H=new(function(){function t(){var t=this;this.stopped=!0,this.listener=function(){return t.schedule()}}return t.prototype.run=function(t){var e=this;if(void 0===t&&(t=250),!$){$=!0;var r,n=F(t);r=function(){var r=!1;try{r=M()}finally{if($=!1,t=n-F(),!B)return;r?e.run(1e3):t>0?e.run(t):e.start()}},N((function(){requestAnimationFrame(r)}))}},t.prototype.schedule=function(){this.stop(),this.run()},t.prototype.observe=function(){var t=this,e=function(){return t.observer&&t.observer.observe(document.body,R)};document.body?e():b.addEventListener("DOMContentLoaded",e)},t.prototype.start=function(){var t=this;this.stopped&&(this.stopped=!1,this.observer=new MutationObserver(this.listener),this.observe(),D.forEach((function(e){return b.addEventListener(e,t.listener,!0)})))},t.prototype.stop=function(){var t=this;this.stopped||(this.observer&&this.observer.disconnect(),D.forEach((function(e){return b.removeEventListener(e,t.listener,!0)})),this.stopped=!0)},t}()),z=function(t){!B&&t>0&&H.start(),!(B+=t)&&H.stop()},V=function(){function t(t,e){this.target=t,this.observedBox=e||n.CONTENT_BOX,this.lastReportedSize={inlineSize:0,blockSize:0}}return t.prototype.isActive=function(){var t,e=_(this.target,this.observedBox,!0);return t=this.target,g(t)||function(t){switch(t.tagName){case"INPUT":if("image"!==t.type)break;case"VIDEO":case"AUDIO":case"EMBED":case"OBJECT":case"CANVAS":case"IFRAME":case"IMG":return!0}return!1}(t)||"inline"!==getComputedStyle(t).display||(this.lastReportedSize=e),this.lastReportedSize.inlineSize!==e.inlineSize||this.lastReportedSize.blockSize!==e.blockSize},t}(),U=function(t,e){this.activeTargets=[],this.skippedTargets=[],this.observationTargets=[],this.observer=t,this.callback=e},W=new WeakMap,K=function(t,e){for(var r=0;r<t.length;r+=1)if(t[r].target===e)return r;return-1},G=function(){function t(){}return t.connect=function(t,e){var r=new U(t,e);W.set(t,r)},t.observe=function(t,e,r){var n=W.get(t),i=0===n.observationTargets.length;K(n.observationTargets,e)<0&&(i&&l.push(n),n.observationTargets.push(new V(e,r&&r.box)),z(1),H.schedule())},t.unobserve=function(t,e){var r=W.get(t),n=K(r.observationTargets,e),i=1===r.observationTargets.length;n>=0&&(i&&l.splice(l.indexOf(r),1),r.observationTargets.splice(n,1),z(-1))},t.disconnect=function(t){var e=this,r=W.get(t);r.observationTargets.slice().forEach((function(r){return e.unobserve(t,r.target)})),r.activeTargets.splice(0,r.activeTargets.length)},t}(),q=function(){function t(t){if(0===arguments.length)throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.");if("function"!=typeof t)throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.");G.connect(this,t)}return t.prototype.observe=function(t,e){if(0===arguments.length)throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!y(t))throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");G.observe(this,t,e)},t.prototype.unobserve=function(t){if(0===arguments.length)throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!y(t))throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");G.unobserve(this,t)},t.prototype.disconnect=function(){G.disconnect(this)},t.toString=function(){return"function ResizeObserver () { [polyfill code] }"},t}();function J(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(J=function(){return!!t})()}var Y=function(t){function e(){return(0,i.A)(this,e),t=this,r=e,n=arguments,r=(0,a.A)(r),(0,s.A)(t,J()?Reflect.construct(r,n||[],(0,a.A)(t).constructor):r.apply(t,n));var t,r,n}
25976return(0,c.A)(e,t),(0,o.A)(e,[{key:"connect",value:function(){var t=this,e=this.element.parentElement;["flex","inline-flex"].includes(getComputedStyle(e).display)&&(this.resizeObserver=new q((function(e){var r=e[0].contentRect.width,n=Array.from(t.element.children).filter((function(e){return e!==t.selectContainerTarget})).map((function(t){return t.offsetWidth})).reduce((function(t,e){return t+e}),0);t.selectContainerTarget.style.width=r-n+"px"})),this.resizeObserver.observe(e))}},{key:"disconnect",value:function(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}},{key:"focusButton",value:function(){this.buttonTarget.focus()}},{key:"toggle",value:function(){this.updateButtonLabel(),this.restrictCheckedCount()}},{key:"updateButtonLabel",value:function(){var t=this.checkedCheckboxTargets.map((function(t){return t.closest("label").textContent.trim()})).join(", "),e=this.checkedCheckboxTargets.length?t:this.unselectedLabelValue;this.buttonTarget.textContent=e;var r=this.checkedCheckboxTargets.length?"".concat(this.unselectedLabelValue,", selected languages: ").concat(t):this.unselectedLabelValue;this.buttonTarget.setAttribute("aria-label",r)}},{key:"restrictCheckedCount",value:function(){var t=this.checkedCheckboxTargets.length<7;this.uncheckedCheckboxTargets.forEach((function(e){e.disabled=!t}))}},{key:"checkedCheckboxTargets",get:function(){return this.checkboxTargets.filter((function(t){return t.checked}))}},{key:"uncheckedCheckboxTargets",get:function(){return this.checkboxTargets.filter((function(t){return!t.checked}))}}])}(u.xI);Y.targets=["selectContainer","button","checkbox"],Y.values={unselectedLabel:String}},7741:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>u});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973);function c(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(c=function(){return!!t})()}var u=function(t){function e(){return(0,n.A)(this,e),t=this,r=e,i=arguments,r=(0,s.A)(r),(0,o.A)(t,c()?Reflect.construct(r,i||[],(0,s.A)(t).constructor):r.apply(t,i));var t,r,i}return(0,a.A)(e,t),(0,i.A)(e,[{key:"connect",value:function(){this.setOverflowing()}},{key:"setOverflowing",value:function(){this.element.classList.toggle(this.overflowingClass,this.isOverflowing)}},{key:"isOverflowing",get:function(){return this.containerTarget.scrollWidth>this.containerTarget.clientWidth}},{key:"setScrolled",value:function(){this.element.classList.add(this.hasScrolledClass)}}])}(r(6782).xI);u.targets=["container"],u.classes=["overflowing","hasScrolled"]},7754:(t,e,r)=>{"use strict";var n=r(8810),i=r(3163),o=r(133),s=r(3625),a=r(2484),c=r(2675),u=r(321),l=r(3401),f=r(4540),h=r(5001),p=r(6891),d=String,v=i("JSON","stringify"),g=a(/./.exec),m=a("".charAt),y=a("".charCodeAt),b=a("".replace),w=a(1..toString),x=/[\uD800-\uDFFF]/g,S=/^[\uD800-\uDBFF]$/,A=/^[\uDC00-\uDFFF]$/,O=!p||c((function(){var t=i("Symbol")("stringify detection");return"[null]"!==v([t])||"{}"!==v({a:t})||"{}"!==v(Object(t))})),E=c((function(){return'"\\udf06\\ud834"'!==v("\udf06\ud834")||'"\\udead"'!==v("\udead")})),k=function(t,e){var r=f(arguments),n=h(e);if(u(n)||void 0!==t&&!l(t))return r[1]=function(t,e){if(u(n)&&(e=s(n,this,d(t),e)),!l(e))return e},o(v,null,r)},T=function(t,e,r){var n=m(r,e-1),i=m(r,e+1);return g(S,t)&&!g(A,i)||g(A,t)&&!g(S,n)?"\\u"+w(y(t,0),16):t};v&&n({target:"JSON",stat:!0,arity:3,forced:O||E},{stringify:function(t,e,r){var n=f(arguments),i=o(O?k:v,null,n);return E&&"string"==typeof i?b(i,x,T):i}})},7769:(t,e)=>{"use strict";var r={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,i=n&&!r.call({1:2},1);e.f=i?function(t){var e=n(this,t);return!!e&&e.enumerable}:r},7808:(t,e,r)=>{"use strict";r(4267);var n=r(3625),i=r(5236),o=r(863),s=r(2675),a=r(4175),c=r(671),u=a("species"),l=RegExp.prototype;t.exports=function(t,e,r,f){var h=a(t),p=!s((function(){var e={};return e[h]=function(){return 7},7!==""[t](e)})),d=p&&!s((function(){var e=!1,r=/a/;return"split"===t&&((r={}).constructor={},r.constructor[u]=function(){return r},r.flags="",r[h]=/./[h]),r.exec=function(){return e=!0,null},r[h](""),!e}));if(!p||!d||r){var v=/./[h],g=e(h,""[t],(function(t,e,r,i,s){var a=e.exec;return a===o||a===l.exec?p&&!s?{done:!0,value:n(v,e,r,i)}:{done:!0,value:n(t,r,e,i)}:{done:!1}}
25976));i(String.prototype,t,g[0]),i(l,h,g[1])}f&&c(l[h],"sham",!0)}},7837:(t,e,r)=>{"use strict";var n=r(2484);t.exports=n({}.isPrototypeOf)},7899:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>l});r(8037);var n=r(8134),i=r(2561),o=r(6710),s=r(3008),a=r(3134),c=r(6973);r(4958),r(7372),r(5249),r(4707),r(3838),r(6160),r(8021),r(3376),r(1759),r(4267),r(7567),r(9028),r(2006),r(3406),r(3544);function u(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(u=function(){return!!t})()}var l=function(t){function e(){return(0,i.A)(this,e),t=this,r=e,n=arguments,r=(0,a.A)(r),(0,s.A)(t,u()?Reflect.construct(r,n||[],(0,a.A)(t).constructor):r.apply(t,n));var t,r,n}return(0,c.A)(e,t),(0,o.A)(e,[{key:"search",value:function(t){t.preventDefault(),this.unhighlight();var e=t.target.elements.q.value.trim();e&&(this.scrollToFirstMatched(e),this.highlight(e))}},{key:"highlight",value:function(t){var e=this;this.getMatchedTextNodes(t).forEach((function(r){var i,o,s,a=r.textContent.replaceAll(t,"<mark data-".concat(e.identifier,'-target="highlight">').concat(t,"</mark>"));i=r,o=a,(s=document.createElement("div")).innerHTML=o,i.replaceWith.apply(i,(0,n.A)(s.childNodes))}))}},{key:"unhighlight",value:function(){this.highlightTargets.forEach((function(t){t.replaceWith.apply(t,(0,n.A)(t.childNodes))}))}},{key:"scrollToFirstMatched",value:function(t){var e,r=null===(e=this.getMatchedTextNodes(t,!0)[0])||void 0===e?void 0:e.parentNode;r&&function(t){var e=969,r=window.matchMedia("only screen and (max-width: "+e+"px)"),n=window.matchMedia("only screen and (max-height: 770px)"),i=document.querySelector('[data-series-header-target="sticky"]'),o=null;o=r.matches||n.matches?i?'[data-series-header-target="sticky"]':null:i?'[data-series-header-target="sticky"]':"#js-controlHeader";new window.SmoothScroll(null,{header:o,speed:400,easing:"easeInOutQuart",updateURL:!1,speedAsDuration:!0}).animateScroll(t)}(r)}},{key:"getMatchedTextNodes",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return function(t){var e=[],r=document.createTreeWalker(t,NodeFilter.SHOW_TEXT,null,!1),n=null;for(;n=r.nextNode();)e.push(n);return e}(this.containerTarget).filter((function(r){var n=r.textContent.includes(t);return e?n&&function(t){var e=t;for(;e;){var r=getComputedStyle(e);if("none"===r.display||"hidden"===r.visibility)return!1;e=e.parentElement}return!0}(r.parentNode):n}))}}])}(r(6782).xI);l.targets=["container","highlight"]},7928:(t,e,r)=>{"use strict";var n={};n[r(4175)("toStringTag")]="z",t.exports="[object z]"===String(n)},7954:t=>{"use strict";t.exports=Math.max},7963:(t,e,r)=>{"use strict";var n=r(8810),i=r(2484),o=r(4834),s=r(7391),a=r(7267),c=i("".slice),u=Math.max,l=Math.min;n({target:"String",proto:!0,forced:!"".substr||"b"!=="ab".substr(-1)},{substr:function(t,e){var r,n,i=a(o(this)),f=i.length,h=s(t);return h===1/0&&(h=0),h<0&&(h=u(f+h,0)),(r=void 0===e?f:s(e))<=0||r===1/0||h>=(n=l(h+r,f))?"":c(i,h,n)}})},8021:(t,e,r)=>{"use strict";var n=r(8810),i=r(3625),o=r(4334),s=r(659),a=r(779),c=r(1274),u=r(4035),l=r(6007),f=c((function(){for(var t,e,r=this.iterator,n=this.predicate,o=this.next;;){if(t=s(i(o,r)),this.done=!!t.done)return;if(e=t.value,u(r,n,[e,this.counter++],!0))return e}}));n({target:"Iterator",proto:!0,real:!0,forced:l},{filter:function(t){return s(this),o(t),new f(a(this),{predicate:t})}})},8037:(t,e,r)=>{"use strict";var n=r(8810),i=r(3163),o=r(133),s=r(2082),a=r(3112),c=r(659),u=r(4102),l=r(3844),f=r(2675),h=i("Reflect","construct"),p=Object.prototype,d=[].push,v=f((function(){function t(){}return!(h((function(){}),[],t)instanceof t)})),g=!f((function(){h((function(){}))})),m=v||g;n({target:"Reflect",stat:!0,forced:m,sham:m},{construct:function(t,e){a(t),c(e);var r=arguments.length<3?t:a(arguments[2]);if(g&&!v)return h(t,e,r);if(t===r){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var n=[null];return o(d,n,e),new(o(s,t,n))}var i=r.prototype,f=l(u(i)?i:p),m=o(t,f,e);return u(m)?m:f}})},8043:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>u});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973);r(1568),r(5249),r(6160),r(3376),r(1759),r(8220),r(6325),r(4267),r(6893),r(5734),r(3049),r(9028),r(3544);function c(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(c=function(){return!!t})()}var u=function(t){function e(){return(0,n.A)(this,e),t=this,r=e,i=arguments,r=(0,s.A)(r),(0,o.A)(t,c()?Reflect.construct(r,i||[],(0,s.A)(t).constructor):r.apply(t,i));var t,r,i}
25976return(0,a.A)(e,t),(0,i.A)(e,[{key:"connect",value:function(){"true"===this.element.dataset.tabpanelLinkCurrent&&this.observeTabPanel()}},{key:"observeTabPanel",value:function(){var t=this,e=new MutationObserver((function(){t.selectCurrentTab(e)}));e.observe(this.element,{childList:!0,subtree:!0})}},{key:"selectCurrentTab",value:function(t){var e=this,r=location.pathname;this.tabPanelLinkTargets.length&&this.tabPanelLinkTargets.forEach((function(t){var n=t.pathname.replace(/^\/(.+)(\/index\.jsp)$/,"/$1/");if(new RegExp("^"+n+"$").test(r)){var i=t.closest('[data-tabs-target="tabPanel"]');if(t.setAttribute("aria-current","page"),i){var o=i.getAttribute("aria-labelledby"),s=o?document.getElementById(o):null;if(s){var a=s.getAttribute("aria-controls");e.tabTargets.forEach((function(t){var e=t===s;t.tabIndex=e?0:-1,t.setAttribute("aria-selected",e)})),e.tabPanelTargets.forEach((function(t){var e=t.id===a;t.setAttribute("aria-hidden",!e)}))}}}})),t.disconnect()}},{key:"selectTab",value:function(t){this.activateTab(t.currentTarget)}},{key:"switchTabForKeyDown",value:function(t){switch(t.key){case"Home":this.activateTab(this.firstTabTarget),t.preventDefault();break;case"End":this.activateTab(this.lastTabTarget),t.preventDefault()}}},{key:"switchTabForKeyUp",value:function(t){switch(t.key){case"ArrowRight":this.activateTab(this.tabTargets[this.selectedTabIndex+1]||this.firstTabTarget);break;case"ArrowLeft":this.activateTab(this.tabTargets[this.selectedTabIndex-1]||this.lastTabTarget)}}},{key:"activateTab",value:function(t){var e=t.getAttribute("aria-controls");this.tabTargets.forEach((function(e){var r=e===t;e.tabIndex=r?0:-1,e.setAttribute("aria-selected",r)})),this.tabPanelTargets.forEach((function(t){var r=t.id===e;t.setAttribute("aria-hidden",!r)})),t.focus()}},{key:"firstTabTarget",get:function(){return this.tabTargets[0]}},{key:"lastTabTarget",get:function(){return this.tabTargets[this.tabTargets.length-1]}},{key:"selectedTabIndex",get:function(){return this.tabTargets.findIndex((function(t){return"true"===t.getAttribute("aria-selected")}))}}])}(r(6782).xI);u.targets=["tab","tabPanel","tabPanelLink"]},8052:function(t,e,r){"use strict";var n=function(t){return t&&t.Math===Math&&t};t.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof r.g&&r.g)||n("object"==typeof this&&this)||function(){return this}()||Function("return this")()},8085:(t,e,r)=>{"use strict";function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}r.d(e,{A:()=>n})},8118:(t,e,r)=>{"use strict";var n=r(9535);t.exports=function(){return n()&&!!Symbol.toStringTag}},8134:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var n=r(8085);var i=r(6492);function o(t){return function(t){if(Array.isArray(t))return(0,n.A)(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||(0,i.A)(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},8135:(t,e,r)=>{"use strict";var n=r(8810),i=r(2675),o=r(8649),s=r(573);n({target:"Date",proto:!0,arity:1,forced:i((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=o(this),r=s(e,"number");return"number"!=typeof r||isFinite(r)?e.toISOString():null}})},8179:(t,e,r)=>{var n,i;window,void 0===(i="function"==typeof(n=function(){"use strict";function t(t){var e=parseFloat(t);return-1==t.indexOf("%")&&!isNaN(e)&&e}function e(){}var r="undefined"==typeof console?e:function(t){console.error(t)},n=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],i=n.length;function o(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;e<i;e++)t[n[e]]=0;return t}function s(t){var e=getComputedStyle(t);return e||r("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}var a,c=!1;function u(){if(!c){c=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var r=document.body||document.documentElement;r.appendChild(e);var n=s(e);a=200==Math.round(t(n.width)),l.isBoxSizeOuter=a,r.removeChild(e)}}function l(e){if(u(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var r=s(e);if("none"==r.display)return o();var c={};c.width=e.offsetWidth,c.height=e.offsetHeight;for(var l=c.isBorderBox="border-box"==r.boxSizing,f=0;f<i;f++){var h=n[f],p=r[h],d=parseFloat(p);c[h]=isNaN(d)?0:d}var v=c.paddingLeft+c.paddingRight,g=c.paddingTop+c.paddingBottom,m=c.marginLeft+c.marginRight,y=c.marginTop+c.marginBottom,b=c.borderLeftWidth+c.borderRightWidth,w=c.borderTopWidth+c.borderBottomWidth,x=l&&a,S=t(r.width);!1!==S&&(c.width=S+(x?0:v+b));var A=t(r.height);return!1!==A&&(c.height=A+(x?0:g+w)),c.innerWidth=c.width-(v+b),c.innerHeight=c.height-(g+w),c.outerWidth=c.width+m,c.outerHeight=c.height+y,c}}return l})?n.call(e,r,e,t):n)||(t.exports=i)},8187:(t,e,r)=>{"use strict";var n=r(4295),i=r(75),o=r(9118)(),s=r(1233),a=r(6757),c=n("%Math.floor%");t.exports=function(t,e){if("function"!=typeof t)throw new a("`fn` is not a function");if("number"!=typeof e||e<0||e>4294967295||c(e)!==e)throw new a("`length` must be a positive 32-bit integer");var r=arguments.length>2&&!!arguments[2],n=!0,u=!0;if("length"in t&&s){var l=s(t,"length");l&&!l.configurable&&(n=!1),l&&!l.writable&&(u=!1)}return(n||u||!r)&&(o?i(t,"length",e,!0,!0):i(t,"length",e)),t}},8220:(t,e,r)=>{"use strict";var n=r(2128),i=r(8052),o=r(2484),s=r(2360),a=r(9859),c=r(671),u=r(3844),l=r(4956).f,f=r(7837),h=r(4584),p=r(7267),d=r(3614),v=r(2537),g=r(7132),m=r(5236),y=r(2675),b=r(4461),w=r(6369).enforce,x=r(461),S=r(4175),A=r(991),O=r(5722),E=S("match"),k=i.RegExp,T=k.prototype,_=i.SyntaxError,C=o(T.exec),P=o("".charAt),I=o("".replace),j=o("".indexOf),M=o("".slice),L=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,N=/a/g,B=/a/g,R=new k(N)!==N,D=v.MISSED_STICKY,F=v.UNSUPPORTED_Y,$=n&&(!R||D||A||O||y((function(){return B[E]=!1,k(N)!==N||k(B)===B||"/a/i"!==String(k(N,"i"))})));if(s("RegExp",$)){for(var H=function(t,e){var r,n,i,o,s,l,v=f(T,this),g=h(t),m=void 0===e,y=[],x=t;if(!v&&g&&m&&t.constructor===H)return t;if((g||f(T,t))&&(t=t.source,m&&(e=d(x))),t=void 0===t?"":p(t),e=void 0===e?"":p(e),x=t,A&&"dotAll"in N&&(n=!!e&&j(e,"s")>-1)&&(e=I(e,/s/g,"")),r=e,D&&"sticky"in N&&(i=!!e&&j(e,"y")>-1)&&F&&(e=I(e,/y/g,"")),O&&(o=function(t){for(var e,r=t.length,n=0,i="",o=[],s=u(null),a=!1,c=!1,l=0,f="";n<=r;n++){if("\\"===(e=P(t,n)))e+=P(t,++n);else if("]"===e)a=!1;else if(!a)switch(!0){case"["===e:a=!0;break;case"("===e:if(i+=e,"?:"===M(t,n+1,n+3))continue;C(L,M(t,n+1))&&(n+=2,c=!0),l++;continue;case">"===e&&c:if(""===f||b(s,f))throw new _("Invalid capture group name");s[f]=!0,o[o.length]=[f,l],c=!1,f="";continue}c?f+=e:i+=e}return[i,o]}(t),t=o[0],y=o[1]),s=a(k(t,e),v?this:T,H),(n||i||y.length)&&(l=w(s),n&&(l.dotAll=!0,l.raw=H(function(t){for(var e,r=t.length,n=0,i="",o=!1;n<=r;n++)"\\"!==(e=P(t,n))?o||"."!==e?("["===e?o=!0:"]"===e&&(o=!1),i+=e):i+="[\\s\\S]":i+=e+P(t,++n);return i}(t),r)),i&&(l.sticky=!0),y.length&&(l.groups=y)),t!==x)try{c(s,"source",""===x?"(?:)":x)}catch(t){}return s},z=l(k),V=0;z.length>V;)g(H,k,z[V++]);T.constructor=H,H.prototype=T,m(i,"RegExp",H,{constructor:!0})}x("RegExp")},8303:(t,e,r)=>{"use strict";var n=r(659);t.exports=function(){var t=n(this),e="";return t.hasIndices&&(e+="d"),t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.unicodeSets&&(e+="v"),t.sticky&&(e+="y"),e}},8374:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>u});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973);r(5549),r(5249),r(3348),r(7642),r(6160),r(9064),r(3376),r(9343),r(1759),r(3544),r(2901);function c(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(c=function(){return!!t})()}var u=function(t){function e(){return(0,n.A)(this,e),t=this,r=e,i=arguments,r=(0,s.A)(r),(0,o.A)(t,c()?Reflect.construct(r,i||[],(0,s.A)(t).constructor):r.apply(t,i));var t,r,i}
25976return(0,a.A)(e,t),(0,i.A)(e,[{key:"connect",value:function(){this.renderUncheckAllButtonState()}},{key:"toggle",value:function(){this.renderButtonLabel(),this.renderBadges(),this.renderUncheckAllButtonState()}},{key:"uncheck",value:function(t){var e=t.currentTarget.value;this.getCheckboxByValue(e).checked=!1,this.renderButtonLabel(),this.renderBadges(),this.renderUncheckAllButtonState()}},{key:"uncheckAll",value:function(){this.checkboxTargets.forEach((function(t){t.checked=!1})),this.renderButtonLabel(),this.renderBadges(),this.renderUncheckAllButtonState()}},{key:"hasChecked",get:function(){return this.checkboxTargets.some((function(t){return t.checked}))}},{key:"getCheckboxByValue",value:function(t){return this.checkboxTargets.find((function(e){return e.value===t}))}},{key:"renderButtonLabel",value:function(){this.buttonTarget.textContent=this.hasChecked?"":this.unselectedLabelValue}},{key:"renderBadges",value:function(){var t=this;this.badgeTargets.forEach((function(e){var r=e.getAttribute("data-value"),n=t.getCheckboxByValue(r).checked;e.hidden=!n}))}},{key:"renderUncheckAllButtonState",value:function(){this.uncheckAllButtonTarget.disabled=!this.hasChecked}}])}(r(6782).xI);u.targets=["button","badge","uncheckAllButton","checkbox"],u.values={unselectedLabel:String}},8379:t=>{"use strict";var e=String;t.exports=function(t){try{return e(t)}catch(t){return"Object"}}},8434:(t,e,r)=>{"use strict";var n=r(8052),i=r(321),o=n.WeakMap;t.exports=i(o)&&/native code/.test(String(o))},8438:(t,e,r)=>{"use strict";var n=r(3625),i=r(3163),o=r(4175),s=r(5236);t.exports=function(){var t=i("Symbol"),e=t&&t.prototype,r=e&&e.valueOf,a=o("toPrimitive");e&&!e[a]&&s(e,a,(function(t){return n(r,this)}),{arity:1})}},8458:(t,e,r)=>{"use strict";var n=r(8379),i=TypeError;t.exports=function(t,e){if(!delete t[e])throw new i("Cannot delete property "+n(e)+" of "+n(t))}},8563:t=>{"use strict";t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},8573:(t,e,r)=>{"use strict";var n="undefined"!=typeof Symbol&&Symbol,i=r(9535);t.exports=function(){return"function"==typeof n&&("function"==typeof Symbol&&("symbol"==typeof n("foo")&&("symbol"==typeof Symbol("bar")&&i())))}},8580:(t,e,r)=>{"use strict";var n=r(4102),i=r(671);t.exports=function(t,e){n(e)&&"cause"in e&&i(t,"cause",e.cause)}},8649:(t,e,r)=>{"use strict";var n=r(4834),i=Object;t.exports=function(t){return i(n(t))}},8656:(t,e,r)=>{"use strict";var n=r(4175)("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(r){try{return e[n]=!1,"/./"[t](e)}catch(t){}}return!1}},8659:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>u});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973);r(3348),r(1759),r(2901);function c(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(c=function(){return!!t})()}var u=function(t){function e(){return(0,n.A)(this,e),t=this,r=e,i=arguments,r=(0,s.A)(r),(0,o.A)(t,c()?Reflect.construct(r,i||[],(0,s.A)(t).constructor):r.apply(t,i));var t,r,i}return(0,a.A)(e,t),(0,i.A)(e,[{key:"connect",value:function(){this.setVideoJs()}},{key:"setVideoJs",value:function(){this.rootTarget.appendChild(this.createVideoJs()),this.setVideoJsScript()}},{key:"createVideoJs",value:function(){var t,e=document.createElement("video-js"),r=this.videoAttrValue;if(e.id=this.idValue?this.idValue:"",e.dataset.account=this.accountValue?this.accountValue:"",e.dataset.player=this.playerValue?this.playerValue:"",e.dataset.embed=this.embedValue?this.embedValue:"",e.dataset.videoId=this.videoIdValue?this.videoIdValue:"",this.videoClassValue&&e.classList.add(this.videoClassValue),void 0!==r)for(t in r){if(r.hasOwnProperty(t)&&r[t]){if("false"===r[t])continue;"true"===r[t]?e.setAttribute(t,Boolean(r[t])):e.setAttribute(t,r[t])}}return e}},{key:"setVideoJsScript",value:function(){var t=document.createElement("script"),e="https://players.brightcove.net/"+this.accountValue+"/"+this.playerValue+"_default/index.min.js";t.src=e,this.rootTarget.appendChild(t)}}])}(r(6782).xI);u.targets=["root"],u.values={id:String,account:String,player:String,embed:String,videoId:String,videoClass:String,videoAttr:Object}},8676:(t,e,r)=>{"use strict";var n=r(8810),i=r(3625),o=r(6007),s=r(4690),a=r(321),c=r(7270),u=r(5927),l=r(1715),f=r(8819),h=r(671),p=r(5236),d=r(4175),v=r(6609),g=r(3597),m=s.PROPER,y=s.CONFIGURABLE,b=g.IteratorPrototype,w=g.BUGGY_SAFARI_ITERATORS,x=d("iterator"),S="keys",A="values",O="entries",E=function(){return this};t.exports=function(t,e,r,s,d,g,k){c(r,e,s);var T,_,C,P=function(t){if(t===d&&N)return N;if(!w&&t&&t in M)return M[t];switch(t){case S:case A:case O:return function(){return new r(this,t)}}return function(){return new r(this)}},I=e+" Iterator",j=!1,M=t.prototype,L=M[x]||M["@@iterator"]||d&&M[d],N=!w&&L||P(d),B="Array"===e&&M.entries||L;
vendor: 4,073 bytes, line 25976
25976if(B&&(T=u(B.call(new t)))!==Object.prototype&&T.next&&(o||u(T)===b||(l?l(T,b):a(T[x])||p(T,x,E)),f(T,I,!0,!0),o&&(v[I]=E)),m&&d===A&&L&&L.name!==A&&(!o&&y?h(M,"name",A):(j=!0,N=function(){return i(L,this)})),d)if(_={values:P(A),keys:g?N:P(S),entries:P(O)},k)for(C in _)(w||j||!(C in M))&&p(M,C,_[C]);else n({target:e,proto:!0,forced:w||j},_);return o&&!k||M[x]===N||p(M,x,N,{name:d}),v[e]=N,_}},8682:(t,e,r)=>{"use strict";var n=r(4295),i=r(7196),o=i([n("%String.prototype.indexOf%")]);t.exports=function(t,e){var r=n(t,!!e);return"function"==typeof r&&o(t,".prototype.")>-1?i([r]):r}},8687:(t,e,r)=>{"use strict";var n=r(7267);t.exports=function(t,e){return void 0===t?arguments.length<2?"":e:n(t)}},8704:t=>{var e=Object.prototype.toString;t.exports=function(t){return e.call(t)}},8708:(t,e,r)=>{"use strict";var n=r(8810),i=r(9249),o=r(2153);n({target:"Array",proto:!0},{fill:i}),o("fill")},8740:(t,e,r)=>{"use strict";var n=r(8810),i=r(8052),o=r(133),s=r(3893),a="WebAssembly",c=i[a],u=7!==new Error("e",{cause:7}).cause,l=function(t,e){var r={};r[t]=s(t,e,u),n({global:!0,constructor:!0,arity:1,forced:u},r)},f=function(t,e){if(c&&c[t]){var r={};r[t]=s(a+"."+t,e,u),n({target:a,stat:!0,constructor:!0,arity:1,forced:u},r)}};l("Error",(function(t){return function(e){return o(t,this,arguments)}})),l("EvalError",(function(t){return function(e){return o(t,this,arguments)}})),l("RangeError",(function(t){return function(e){return o(t,this,arguments)}})),l("ReferenceError",(function(t){return function(e){return o(t,this,arguments)}})),l("SyntaxError",(function(t){return function(e){return o(t,this,arguments)}})),l("TypeError",(function(t){return function(e){return o(t,this,arguments)}})),l("URIError",(function(t){return function(e){return o(t,this,arguments)}})),f("CompileError",(function(t){return function(e){return o(t,this,arguments)}})),f("LinkError",(function(t){return function(e){return o(t,this,arguments)}})),f("RuntimeError",(function(t){return function(e){return o(t,this,arguments)}}))},8754:(t,e,r)=>{"use strict";var n=r(2675);t.exports=function(t,e){var r=[][t];return!!r&&n((function(){r.call(null,e||function(){return 1},1)}))}},8770:(t,e,r)=>{"use strict";var n=r(3026);t.exports=function(t){return n(t.length)}},8785:(t,e,r)=>{"use strict";var n=r(1955).charAt;t.exports=function(t,e,r){return e+(r?n(t,e).length:1)}},8808:(t,e,r)=>{"use strict";var n,i,o,s=r(8810),a=r(6007),c=r(6125),u=r(8052),l=r(3625),f=r(5236),h=r(1715),p=r(8819),d=r(461),v=r(4334),g=r(321),m=r(4102),y=r(5755),b=r(3985),w=r(6781).set,x=r(6559),S=r(1929),A=r(3443),O=r(1661),E=r(6369),k=r(5034),T=r(7032),_=r(1031),C="Promise",P=T.CONSTRUCTOR,I=T.REJECTION_EVENT,j=T.SUBCLASSING,M=E.getterFor(C),L=E.set,N=k&&k.prototype,B=k,R=N,D=u.TypeError,F=u.document,$=u.process,H=_.f,z=H,V=!!(F&&F.createEvent&&u.dispatchEvent),U="unhandledrejection",W=function(t){var e;return!(!m(t)||!g(e=t.then))&&e},K=function(t,e){var r,n,i,o=e.value,s=1===e.state,a=s?t.ok:t.fail,c=t.resolve,u=t.reject,f=t.domain;try{a?(s||(2===e.rejection&&X(e),e.rejection=1),!0===a?r=o:(f&&f.enter(),r=a(o),f&&(f.exit(),i=!0)),r===t.promise?u(new D("Promise-chain cycle")):(n=W(r))?l(n,r,c,u):c(r)):u(o)}catch(t){f&&!i&&f.exit(),u(t)}},G=function(t,e){t.notified||(t.notified=!0,x((function(){for(var r,n=t.reactions;r=n.get();)K(r,t);t.notified=!1,e&&!t.rejection&&J(t)})))},q=function(t,e,r){var n,i;V?((n=F.createEvent("Event")).promise=e,n.reason=r,n.initEvent(t,!1,!0),u.dispatchEvent(n)):n={promise:e,reason:r},!I&&(i=u["on"+t])?i(n):t===U&&S("Unhandled promise rejection",r)},J=function(t){l(w,u,(function(){var e,r=t.facade,n=t.value;if(Y(t)&&(e=A((function(){c?$.emit("unhandledRejection",n,r):q(U,r,n)})),t.rejection=c||Y(t)?2:1,e.error))throw e.value}))},Y=function(t){return 1!==t.rejection&&!t.parent},X=function(t){l(w,u,(function(){var e=t.facade;c?$.emit("rejectionHandled",e):q("rejectionhandled",e,t.value)}))},Q=function(t,e,r){return function(n){t(e,n,r)}},Z=function(t,e,r){t.done||(t.done=!0,r&&(t=r),t.value=e,t.state=2,G(t,!0))},tt=function(t,e,r){if(!t.done){t.done=!0,r&&(t=r);
25976try{if(t.facade===e)throw new D("Promise can't be resolved itself");var n=W(e);n?x((function(){var r={done:!1};try{l(n,e,Q(tt,r,t),Q(Z,r,t))}catch(e){Z(r,e,t)}})):(t.value=e,t.state=1,G(t,!1))}catch(e){Z({done:!1},e,t)}}};if(P&&(R=(B=function(t){y(this,R),v(t),l(n,this);var e=M(this);try{t(Q(tt,e),Q(Z,e))}catch(t){Z(e,t)}}).prototype,(n=function(t){L(this,{type:C,done:!1,notified:!1,parent:!1,reactions:new O,rejection:!1,state:0,value:null})}).prototype=f(R,"then",(function(t,e){var r=M(this),n=H(b(this,B));return r.parent=!0,n.ok=!g(t)||t,n.fail=g(e)&&e,n.domain=c?$.domain:void 0,0===r.state?r.reactions.add(n):x((function(){K(n,r)})),n.promise})),i=function(){var t=new n,e=M(t);this.promise=t,this.resolve=Q(tt,e),this.reject=Q(Z,e)},_.f=H=function(t){return t===B||undefined===t?new i(t):z(t)},!a&&g(k)&&N!==Object.prototype)){o=N.then,j||f(N,"then",(function(t,e){var r=this;return new B((function(t,e){l(o,r,t,e)})).then(t,e)}),{unsafe:!0});try{delete N.constructor}catch(t){}h&&h(N,R)}s({global:!0,constructor:!0,wrap:!0,forced:P},{Promise:B}),p(B,C,!1,!0),d(C)},8810:(t,e,r)=>{"use strict";var n=r(8052),i=r(3071).f,o=r(671),s=r(5236),a=r(1941),c=r(1704),u=r(2360);t.exports=function(t,e){var r,l,f,h,p,d=t.target,v=t.global,g=t.stat;if(r=v?n:g?n[d]||a(d,{}):n[d]&&n[d].prototype)for(l in e){if(h=e[l],f=t.dontCallGetSet?(p=i(r,l))&&p.value:r[l],!u(v?l:d+(g?".":"#")+l,t.forced)&&void 0!==f){if(typeof h==typeof f)continue;c(h,f)}(t.sham||f&&f.sham)&&o(h,"sham",!0),s(r,l,h,t)}}},8819:(t,e,r)=>{"use strict";var n=r(6005).f,i=r(4461),o=r(4175)("toStringTag");t.exports=function(t,e,r){t&&!r&&(t=t.prototype),t&&!i(t,o)&&n(t,o,{configurable:!0,value:e})}},8845:(t,e,r)=>{"use strict";var n=r(1948),i=r(1441),o=r(4102),s=r(4175)("species"),a=Array;t.exports=function(t){var e;return n(t)&&(e=t.constructor,(i(e)&&(e===a||n(e.prototype))||o(e)&&null===(e=e[s]))&&(e=void 0)),void 0===e?a:e}},8887:(t,e,r)=>{"use strict";var n=r(1135),i=r(7585),o=r(1361),s=t.exports;s.extend=f,s.indexOf=function(t,e){for(var r=0,n=t.length;r<n;r++)if(t[r]===e)return r;return-1},s.escapeExpression=function(t){if("string"!=typeof t){if(t&&t.toHTML)return t.toHTML();if(null==t)return"";if(!t)return t+"";t=""+t}if(!u.test(t))return t;return t.replace(c,l)},s.isEmpty=function(t){if(0===t||"boolean"==typeof t)return!1;if(null==t)return!0;s.isObject(t)&&(t=Object.keys(t));if(!t.length)return!0;return!1},s.createFrame=function(t){var e=f({},t);return e._parent=t,e},s.blockParams=function(t,e){return t.path=e,t},s.appendContextPath=function(t,e){return(t?t+".":"")+e};var a={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`","=":"="},c=/[&<>"'`=]/g,u=/[&<>"'`=]/;function l(t){return a[t]}function f(t){for(var e=1;e<arguments.length;e++)for(var r in arguments[e])Object.prototype.hasOwnProperty.call(arguments[e],r)&&(t[r]=arguments[e][r]);return t}var h=Object.prototype.toString;s.toString=h;var p=function(t){return"function"==typeof t};p(/x/)&&(s.isFunction=p=function(t){return"function"==typeof t&&"[object Function]"===h.call(t)}),s.isFunction=p;var d=Array.isArray||function(t){return!(!t||"object"!=typeof t)&&"[object Array]"===h.call(t)};s.isArray=d,s.expectedType=function(t,e,r){var o=i.types[e],s=n.inspect(r);return"expected "+t+" to be "+o+" but received "+i(r)+": "+s},s.isBlock=function(t){return s.isOptions(t)&&"function"==typeof t.fn&&"function"==typeof t.inverse},s.fn=function(t,e,r){return s.isOptions(t)?s.fn("",t,r):s.isOptions(e)?s.fn(t,{},e):s.isBlock(r)?r.fn(e):t},s.inverse=function(t,e,r){return s.isOptions(t)?s.identity("",t,r):s.isOptions(e)?s.inverse(t,{},e):s.isBlock(r)?r.inverse(e):t},s.value=function(t,e,r){return s.isOptions(t)?s.value(null,t,r):s.isOptions(e)?s.value(t,{},e):s.isBlock(r)?t?r.fn(e):r.inverse(e):t},s.isOptions=function(t){return s.isObject(t)&&s.isObject(t.hash)},s.isUndefined=function(t){return null==t||s.isOptions(t)&&null!=t.hash},s.isApp=function(t){return s.isObject(t)&&s.isObject(t.options)&&s.isObject(t.app)},s.options=function(t,e,r){if(s.isOptions(t))return s.options({},e,t);if(s.isOptions(e))return s.options(t,r,e);r=r||{},s.isOptions(r)||(e=Object.assign({},e,r));var n=Object.assign({},e,r.hash);return s.isObject(t)&&(n=Object.assign({},t.options,n)),n[r.name]&&(n=Object.assign({},n[r.name],n)),n},s.context=function(t,e,r){if(s.isOptions(t))return s.context({},e,t);if(s.isOptions(e))return s.context(t,r,e);var n=s.isApp(t)?t.context:{};r=r||{},s.isOptions(r)||(e=Object.assign({},e,r)),s.isOptions(r)&&!0===r.hash.root&&(e=Object.assign({},r.data.root,e));var i=Object.assign({},n,e,r.hash);return s.isApp(t)||(i=Object.assign({},t,i)),s.isApp(t)&&t.view&&t.view.data&&(i=Object.assign({},i,t.view.data)),i},s.isObject=function(t){return"object"===o(t)},s.result=function(t){return"function"==typeof t?t.apply(this,[].slice.call(arguments,1
25976)):t},s.identity=function(t){return t},s.isString=function(t){return"string"==typeof t&&""!==t},s.arrayify=function(t){return null!=t?Array.isArray(t)?t:[t]:[]},s.tryParse=function(t){try{return JSON.parse(t)}catch(t){}return{}}},8948:(t,e,r)=>{"use strict";var n=r(8052),i=r(2675),o=r(2484),s=r(7267),a=r(5150).trim,c=r(4912),u=o("".charAt),l=n.parseFloat,f=n.Symbol,h=f&&f.iterator,p=1/l(c+"-0")!=-1/0||h&&!i((function(){l(Object(h))}));t.exports=p?function(t){var e=a(s(t)),r=l(e);return 0===r&&"-"===u(e,0)?-0:r}:l},8969:(t,e,r)=>{"use strict";var n=r(51),i=r(4834);t.exports=function(t){return n(i(t))}},8994:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>f});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973),c=(r(3348),r(1759),r(2901),r(6782)),u=r(5413);function l(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(l=function(){return!!t})()}var f=function(t){function e(){return(0,n.A)(this,e),t=this,r=e,i=arguments,r=(0,s.A)(r),(0,o.A)(t,l()?Reflect.construct(r,i||[],(0,s.A)(t).constructor):r.apply(t,i));var t,r,i}return(0,a.A)(e,t),(0,i.A)(e,[{key:"connect",value:function(){var t=u.N.compile('\n <script type="text/x-template" data-modal-dialog-opener-target="template">\n {{#> modules/modal-dialog variant="full" label="Dimensions"}}\n <div\n class="prd-root of-standalone prd-utility-body-medium"\n data-controller="standalone-content-loader"\n data-standalone-content-loader-url-value="'.concat(this.urlValue,'"\n >\n </div>\n {{/modules/modal-dialog}}\n <\/script>\n '));this.element.outerHTML=t()}}])}(c.xI);f.values={url:String}},9004:(t,e,r)=>{"use strict";var n=r(1904),i=r(4334),o=r(3588),s=n(n.bind);t.exports=function(t,e){return i(t),void 0===e?t:o?s(t,e):function(){return t.apply(e,arguments)}}},9017:(t,e,r)=>{var n=r(1354),i=Object.prototype.toString;t.exports=function(t){if(void 0===t)return"undefined";if(null===t)return"null";if(!0===t||!1===t||t instanceof Boolean)return"boolean";if("string"==typeof t||t instanceof String)return"string";if("number"==typeof t||t instanceof Number)return"number";if("function"==typeof t||t instanceof Function)return"function";if(void 0!==Array.isArray&&Array.isArray(t))return"array";if(t instanceof RegExp)return"regexp";if(t instanceof Date)return"date";var e=i.call(t);return"[object RegExp]"===e?"regexp":"[object Date]"===e?"date":"[object Arguments]"===e?"arguments":"[object Error]"===e?"error":n(t)?"buffer":"[object Set]"===e?"set":"[object WeakSet]"===e?"weakset":"[object Map]"===e?"map":"[object WeakMap]"===e?"weakmap":"[object Symbol]"===e?"symbol":"[object Int8Array]"===e?"int8array":"[object Uint8Array]"===e?"uint8array":"[object Uint8ClampedArray]"===e?"uint8clampedarray":"[object Int16Array]"===e?"int16array":"[object Uint16Array]"===e?"uint16array":"[object Int32Array]"===e?"int32array":"[object Uint32Array]"===e?"uint32array":"[object Float32Array]"===e?"float32array":"[object Float64Array]"===e?"float64array":"object"}},9028:(t,e,r)=>{"use strict";var n=r(133),i=r(3625),o=r(2484),s=r(7808),a=r(2675),c=r(659),u=r(321),l=r(9601),f=r(7391),h=r(3026),p=r(7267),d=r(4834),v=r(8785),g=r(9538),m=r(1650),y=r(9198),b=r(4175)("replace"),w=Math.max,x=Math.min,S=o([].concat),A=o([].push),O=o("".indexOf),E=o("".slice),k="$0"==="a".replace(/./,"$0"),T=!!/./[b]&&""===/./[b]("a","$0");s("replace",(function(t,e,r){var o=T?"$":"$0";return[function(t,r){var n=d(this),o=l(t)?void 0:g(t,b);return o?i(o,t,n,r):i(e,p(n),t,r)},function(t,i){var s=c(this),a=p(t);if("string"==typeof i&&-1===O(i,o)&&-1===O(i,"$<")){var l=r(e,s,a,i);if(l.done)return l.value}var d=u(i);d||(i=p(i));var g,b=s.global;b&&(g=s.unicode,s.lastIndex=0);for(var k,T=[];null!==(k=y(s,a))&&(A(T,k),b);){""===p(k[0])&&(s.lastIndex=v(a,h(s.lastIndex),g))}for(var _,C="",P=0,I=0;I<T.length;I++){for(var j,M=p((k=T[I])[0]),L=w(x(f(k.index),a.length),0),N=[],B=1;B<k.length;B++)A(N,void 0===(_=k[B])?_:String(_));var R=k.groups;if(d){var D=S([M],N,L,a);void 0!==R&&A(D,R),j=p(n(i,void 0,D))}else j=m(M,a,L,N,R,i);L>=P&&(C+=E(a,P,L)+j,P=L+M.length)}return C+E(a,P)}]}),!!a((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}))||!k||T)},9064:(t,e,r)=>{"use strict";var n=r(8810),i=r(1072),o=r(4334),s=r(659),a=r(779);n({target:"Iterator",proto:!0,real:!0},{find:function(t){s(this),o(t);var e=a(this),r=0;return i(e,(function(e,n){if(t(e,r++))return n(e)}),{IS_RECORD:!0,INTERRUPTED:!0}).result}})},9070:(t,e,r)=>{"use strict";r.d(e,{A:()=>s});var n=[],i=new MessageChannel,o=function(){this.postMessage(void 0)}.bind(i.port2);i.port1.onmessage=function(){var t=n;n=[];for(var e=performance.now(),r=0;r<t.length;r++)t[r](e)},i=null;const s=function(t){1===n.push(t)&&requestAnimationFrame(o)}},9073:(t,e)=>{"use strict";e.f=Object.getOwnPropertySymbols},9090:t=>{"use strict";
25976t.exports="undefined"!=typeof Reflect&&Reflect.getPrototypeOf||null},9111:(t,e,r)=>{"use strict";var n=r(8810),i=r(2675),o=r(8969),s=r(3071).f,a=r(2128);n({target:"Object",stat:!0,forced:!a||i((function(){s(1)})),sham:!a},{getOwnPropertyDescriptor:function(t,e){return s(o(t),e)}})},9118:(t,e,r)=>{"use strict";var n=r(9997),i=function(){return!!n};i.hasArrayLengthDefineBug=function(){if(!n)return null;try{return 1!==n([],"length",{value:1}).length}catch(t){return!0}},t.exports=i},9198:(t,e,r)=>{"use strict";var n=r(3625),i=r(659),o=r(321),s=r(2748),a=r(863),c=TypeError;t.exports=function(t,e){var r=t.exec;if(o(r)){var u=n(r,t,e);return null!==u&&i(u),u}if("RegExp"===s(t))return n(a,t,e);throw new c("RegExp#exec called on incompatible receiver")}},9200:(t,e,r)=>{"use strict";var n=r(8810),i=r(4461),o=r(3401),s=r(8379),a=r(6445),c=r(92),u=a("symbol-to-string-registry");n({target:"Symbol",stat:!0,forced:!c},{keyFor:function(t){if(!o(t))throw new TypeError(s(t)+" is not a symbol");if(i(u,t))return u[t]}})},9221:t=>{t.exports=function(t){return t&&"object"==typeof t&&"function"==typeof t.copy&&"function"==typeof t.fill&&"function"==typeof t.readUInt8}},9224:(t,e,r)=>{"use strict";var n=r(8810),i=r(1072),o=r(4334),s=r(659),a=r(779);n({target:"Iterator",proto:!0,real:!0},{every:function(t){s(this),o(t);var e=a(this),r=0;return!i(e,(function(e,n){if(!t(e,r++))return n()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},9249:(t,e,r)=>{"use strict";var n=r(8649),i=r(6526),o=r(8770);t.exports=function(t){for(var e=n(this),r=o(e),s=arguments.length,a=i(s>1?arguments[1]:void 0,r),c=s>2?arguments[2]:void 0,u=void 0===c?r:i(c,r);u>a;)e[a++]=t;return e}},9272:(t,e,r)=>{"use strict";r.d(e,{W:()=>s});var n=r(7431),i=r(6192),o=r.n(i);r(8740),r(6770),r(1759),r(6558),r(995);function s(t,e,r){return a.apply(this,arguments)}function a(){return a=(0,n.A)(o().mark((function t(e,r,n){var i,s,a=arguments;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:i=!1,s=setTimeout((function(){i=!0}),a.length>3&&void 0!==a[3]?a[3]:3e3);case 3:if(!i){t.next=6;break}throw new Error("Timed out in waitForStyleToBeSet");case 6:if(!(getComputedStyle(e)[r]===n)){t.next=10;break}return clearTimeout(s),t.abrupt("return");case 10:return t.next=12,new Promise(requestAnimationFrame);case 12:t.next=3;break;case 14:case"end":return t.stop()}}),t)}))),a.apply(this,arguments)}},9304:t=>{"use strict";t.exports=ReferenceError},9311:(t,e,r)=>{"use strict";var n=r(2961).forEach,i=r(8754)("forEach");t.exports=i?[].forEach:function(t){return n(this,t,arguments.length>1?arguments[1]:void 0)}},9323:t=>{"use strict";t.exports=function(t){var e=typeof t;if("string"===e||t instanceof String){if(!t.trim())return!1}else if("number"!==e&&!(t instanceof Number))return!1;return t-t+1>=0}},9324:(t,e,r)=>{var n,i;!function(o,s){"use strict";void 0===(i="function"==typeof(n=s)?n.call(e,r,e,t):n)||(t.exports=i)}(window,(function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],r=0;r<e.length;r++){var n=e[r]+"MatchesSelector";if(t[n])return n}}();return function(e,r){return e[t](r)}}))},9343:(t,e,r)=>{"use strict";var n=r(8810),i=r(1072),o=r(4334),s=r(659),a=r(779);n({target:"Iterator",proto:!0,real:!0},{some:function(t){s(this),o(t);var e=a(this),r=0;return i(e,(function(e,n){if(t(e,r++))return n()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},9361:t=>{"use strict";t.exports=SyntaxError},9403:t=>{t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},9432:(t,e,r)=>{"use strict";var n=r(2675);t.exports=n((function(){if("function"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}}))},9455:(t,e,r)=>{"use strict";var n=r(2484),i=r(2675),o=r(321),s=r(4461),a=r(2128),c=r(4690).CONFIGURABLE,u=r(2718),l=r(6369),f=l.enforce,h=l.get,p=String,d=Object.defineProperty,v=n("".slice),g=n("".replace),m=n([].join),y=a&&!i((function(){return 8!==d((function(){}),"length",{value:8}).length})),b=String(String).split("String"),w=t.exports=function(t,e,r){"Symbol("===v(p(e),0,7)&&(e="["+g(p(e),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),r&&r.getter&&(e="get "+e),r&&r.setter&&(e="set "+e),(!s(t,"
25976name")||c&&t.name!==e)&&(a?d(t,"name",{value:e,configurable:!0}):t.name=e),y&&r&&s(r,"arity")&&t.length!==r.arity&&d(t,"length",{value:r.arity});try{r&&s(r,"constructor")&&r.constructor?a&&d(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var n=f(t);return s(n,"source")||(n.source=m(b,"string"==typeof e?e:"")),t};Function.prototype.toString=w((function(){return o(this)&&h(this).source||u(this)}),"toString")},9467:(t,e,r)=>{"use strict";var n=r(3163),i=r(2484),o=r(4956),s=r(9073),a=r(659),c=i([].concat);t.exports=n("Reflect","ownKeys")||function(t){var e=o.f(a(t)),r=s.f;return r?c(e,r(t)):e}},9535:t=>{"use strict";t.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var t={},e=Symbol("test"),r=Object(e);if("string"==typeof e)return!1;if("[object Symbol]"!==Object.prototype.toString.call(e))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(var n in t[e]=42,t)return!1;if("function"==typeof Object.keys&&0!==Object.keys(t).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(t).length)return!1;var i=Object.getOwnPropertySymbols(t);if(1!==i.length||i[0]!==e)return!1;if(!Object.prototype.propertyIsEnumerable.call(t,e))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var o=Object.getOwnPropertyDescriptor(t,e);if(42!==o.value||!0!==o.enumerable)return!1}return!0}},9538:(t,e,r)=>{"use strict";var n=r(4334),i=r(9601);t.exports=function(t,e){var r=t[e];return i(r)?void 0:n(r)}},9541:(t,e,r)=>{var n=r(998).default;function i(){"use strict";t.exports=i=function(){return r},t.exports.__esModule=!0,t.exports.default=t.exports;var e,r={},o=Object.prototype,s=o.hasOwnProperty,a=Object.defineProperty||function(t,e,r){t[e]=r.value},c="function"==typeof Symbol?Symbol:{},u=c.iterator||"@@iterator",l=c.asyncIterator||"@@asyncIterator",f=c.toStringTag||"@@toStringTag";function h(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{h({},"")}catch(e){h=function(t,e,r){return t[e]=r}}function p(t,e,r,n){var i=e&&e.prototype instanceof w?e:w,o=Object.create(i.prototype),s=new M(n||[]);return a(o,"_invoke",{value:C(t,r,s)}),o}function d(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}r.wrap=p;var v="suspendedStart",g="suspendedYield",m="executing",y="completed",b={};function w(){}function x(){}function S(){}var A={};h(A,u,(function(){return this}));var O=Object.getPrototypeOf,E=O&&O(O(L([])));E&&E!==o&&s.call(E,u)&&(A=E);var k=S.prototype=w.prototype=Object.create(A);function T(t){["next","throw","return"].forEach((function(e){h(t,e,(function(t){return this._invoke(e,t)}))}))}function _(t,e){function r(i,o,a,c){var u=d(t[i],t,o);if("throw"!==u.type){var l=u.arg,f=l.value;return f&&"object"==n(f)&&s.call(f,"__await")?e.resolve(f.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(f).then((function(t){l.value=t,a(l)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;a(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,i){r(t,n,e,i)}))}return i=i?i.then(o,o):o()}})}function C(t,r,n){var i=v;return function(o,s){if(i===m)throw Error("Generator is already running");if(i===y){if("throw"===o)throw s;return{value:e,done:!0}}for(n.method=o,n.arg=s;;){var a=n.delegate;if(a){var c=P(a,n);if(c){if(c===b)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===v)throw i=y,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=m;var u=d(t,r,n);if("normal"===u.type){if(i=n.done?y:g,u.arg===b)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(i=y,n.method="throw",n.arg=u.arg)}}}function P(t,r){var n=r.method,i=t.iterator[n];if(i===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,P(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),b;var o=d(i,t.iterator,r.arg);
vendor: 1,742 bytes, line 25976
25976if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,b;var s=o.arg;return s?s.done?(r[t.resultName]=s.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,b):s:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,b)}function I(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function j(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function M(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(I,this),this.reset(!0)}function L(t){if(t||""===t){var r=t[u];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,o=function r(){for(;++i<t.length;)if(s.call(t,i))return r.value=t[i],r.done=!1,r;return r.value=e,r.done=!0,r};return o.next=o}}throw new TypeError(n(t)+" is not iterable")}return x.prototype=S,a(k,"constructor",{value:S,configurable:!0}),a(S,"constructor",{value:x,configurable:!0}),x.displayName=h(S,f,"GeneratorFunction"),r.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===x||"GeneratorFunction"===(e.displayName||e.name))},r.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,S):(t.__proto__=S,h(t,f,"GeneratorFunction")),t.prototype=Object.create(k),t},r.awrap=function(t){return{__await:t}},T(_.prototype),h(_.prototype,l,(function(){return this})),r.AsyncIterator=_,r.async=function(t,e,n,i,o){void 0===o&&(o=Promise);var s=new _(p(t,e,n,i),o);return r.isGeneratorFunction(e)?s:s.next().then((function(t){return t.done?t.value:s.next()}))},T(k),h(k,f,"Generator"),h(k,u,(function(){return this})),h(k,"toString",(function(){return"[object Generator]"}
25976)),r.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},r.values=L,M.prototype={constructor:M,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(j),!t)for(var r in this)"t"===r.charAt(0)&&s.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function n(n,i){return a.type="throw",a.arg=t,r.next=n,i&&(r.method="next",r.arg=e),!!i}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var c=s.call(o,"catchLoc"),u=s.call(o,"finallyLoc");if(c&&u){if(this.prev<o.catchLoc)return n(o.catchLoc,!0);if(this.prev<o.finallyLoc)return n(o.finallyLoc)}else if(c){if(this.prev<o.catchLoc)return n(o.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return n(o.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&s.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var i=n;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var o=i?i.completion:{};return o.type=t,o.arg=e,i?(this.method="next",this.next=i.finallyLoc,b):this.complete(o)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),b},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),j(r),b}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;j(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:L(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),b}},r}t.exports=i,t.exports.__esModule=!0,t.exports.default=t.exports},9585:(t,e,r)=>{"use strict";var n=r(8810),i=r(517);n({target:"Iterator",proto:!0,real:!0,forced:r(6007)},{map:i})},9592:(t,e,r)=>{var n=r(4360),i=r(9403);t.exports=function(t){return null!=t&&i(t.length)&&!n(t)}},9601:t=>{"use strict";t.exports=function(t){return null==t}},9630:(t,e,r)=>{"use strict";var n=r(469),i=r(24),o=r(1530),s=r(7009);t.exports=s||n.call(o,i)},9644:(t,e,r)=>{"use strict";var n=r(2675);t.exports=!n((function(){return Object.isExtensible(Object.preventExtensions({}))}))},9650:()=>{!function(t){"use strict";function e(){return f.createDocumentFragment()}function r(t){return f.createElement(t)}function n(t,e){if(!t)throw new Error("Failed to construct "+e+": 1 argument required, but only 0 present.")}function i(t){if(1===t.length)return o(t[0]);for(var r=e(),n=M.call(t),i=0;i<t.length;i++)r.appendChild(o(n[i]));return r}function o(t){return"object"==typeof t?t:f.createTextNode(t)}for(var s,a,c,u,l,f=t.document,h=Object.prototype.hasOwnProperty,p=Object.defineProperty||function(t,e,r){return h.call(r,"value")?t[e]=r.value:(h.call(r,"get")&&t.__defineGetter__(e,r.get),h.call(r,"set")&&t.__defineSetter__(e,r.set)),t},d=[].indexOf||function(t){for(var e=this.length;e--&&this[e]!==t;);return e},v=function(t){var e=void 0===t.className,r=e?t.getAttribute("class")||"":t.className,n=e||"object"==typeof r,i=(n?e?r:r.baseVal:r).replace(m,"");i.length&&j.push.apply(this,i.split(y)),this._isSVG=n,this._=t},g={get:function(){return new v(this)},set:function(){}},m=/^\s+|\s+$/g,y=/\s+/,b="classList",w=function(t,e){return this.contains(t)?e||this.remove(t):(void 0===e||e)&&(e=!0,this.add(t)),!!e},x=t.DocumentFragment&&DocumentFragment.prototype,S=t.Node,A=(S||Element).prototype,O=t.CharacterData||S,E=O&&O.prototype,k=t.DocumentType,T=k&&k.prototype,_=(t.Element||S||t.HTMLElement).prototype,C=t.HTMLSelectElement||r("select").constructor,P=C.prototype.remove,I=t.SVGElement,j=["matches",_.matchesSelector||_.webkitMatchesSelector||_.khtmlMatchesSelector||_.mozMatchesSelector||_.msMatchesSelector||_.oMatchesSelector||function(t){var e=this.parentNode;return!!e&&-1<d.call(e.querySelectorAll(t),this)},"closest",function(t){for(var e,r=this;(e=r&&r.matches)&&!r.matches(t);)r=r.parentNode;return e?r:null},"prepend",function(){var t=this.firstChild,e=i(arguments);t?this.insertBefore(e,t):this.appendChild(e)},"append",function(){this.appendChild(i(arguments))},"before",function(){var t=this.parentNode;t&&t.insertBefore(i(arguments),this)},"after",function(){var t=this.parentNode,e=this.nextSibling,r=i(arguments);t&&(e?t.insertBefore(r,e):t.appendChild(r))},"toggleAttribute",function(t,e){var r=this.hasAttribute(t);return 1<arguments.length?r&&!e?this.removeAttribute(t):e&&!r&&this.setAttribute(t,""):r?this.removeAttribute(t):this.setAttribute(t,""),this.hasAttribute(t)},"replace",function(){this.replaceWith.apply(this,arguments)},"replaceWith",function(){var t=this.parentNode;t&&t.replaceChild(i(arguments),this)},"remove",function(){var t=this.parentNode;t&&t.removeChild(this)}],M=j.slice,L=j.length;L;L-=2)if((a=j[L-2])in _||(_[a]=j[L-1]),"remove"!==a||P._dom4||((C.prototype[a]=function(){return 0<arguments.length?P.apply(this,arguments):_.remove.call(this)})._dom4=!0),/^(?:before|after|replace|replaceWith|remove)$/.test(a)&&(O&&!(a in E)&&
vendor: 5,307 bytes, line 25976
25976(E[a]=j[L-1]),k&&!(a in T)&&(T[a]=j[L-1])),/^(?:append|prepend)$/.test(a))if(x)a in x||(x[a]=j[L-1]);else try{e().constructor.prototype[a]=j[L-1]}catch(t){}var N;r("a").matches("a")||(_[a]=(N=_[a],function(t){return N.call(this.parentNode?this:e().appendChild(this),t)})),v.prototype={length:0,add:function(){for(var t,e=0;e<arguments.length;e++)t=arguments[e],this.contains(t)||j.push.call(this,a);this._isSVG?this._.setAttribute("class",""+this):this._.className=""+this},contains:function(t){return function(e){return L=t.call(this,a=function(t){if(!t)throw"SyntaxError";if(y.test(t))throw"InvalidCharacterError";return t}(e)),-1<L}}([].indexOf||function(t){for(L=this.length;L--&&this[L]!==t;);return L}),item:function(t){return this[t]||null},remove:function(){for(var t,e=0;e<arguments.length;e++)t=arguments[e],this.contains(t)&&j.splice.call(this,L,1);this._isSVG?this._.setAttribute("class",""+this):this._.className=""+this},toggle:w,toString:function(){return j.join.call(this," ")}},I&&!(b in I.prototype)&&p(I.prototype,b,g),b in f.documentElement?((u=r("div")[b]).add("a","b","a"),"a b"!=u&&("add"in(c=u.constructor.prototype)||(c=t.TemporaryTokenList.prototype),l=function(t){return function(){for(var e=0;e<arguments.length;)t.call(this,arguments[e++])}},c.add=l(c.add),c.remove=l(c.remove),c.toggle=w)):p(_,b,g),"contains"in A||p(A,"contains",{value:function(t){for(;t&&t!==this;)t=t.parentNode;return this===t}}),"head"in f||p(f,"head",{get:function(){return s||(s=f.getElementsByTagName("head")[0])}}),function(){for(var e,r=t.requestAnimationFrame,n=t.cancelAnimationFrame,i=["o","ms","moz","webkit"],o=i.length;!n&&o--;)r=r||t[i[o]+"RequestAnimationFrame"],n=t[i[o]+"CancelAnimationFrame"]||t[i[o]+"CancelRequestAnimationFrame"];n||(r?(e=r,r=function(t){var r=!0;return e((function(){r&&t.apply(this,arguments)})),function(){r=!1}},n=function(t){t()}):(r=function(t){return setTimeout(t,15,15)},n=function(t){clearTimeout(t)})),t.requestAnimationFrame=r,t.cancelAnimationFrame=n}();try{new t.CustomEvent("?")}catch(e){t.CustomEvent=function(t,e){function r(t,e,r,n){this.initEvent(t,e,r),this.detail=n}return function(n,i){var o=f.createEvent(t);if("string"!=typeof n)throw new Error("An event name must be provided");return"Event"==t&&(o.initCustomEvent=r),null==i&&(i=e),o.initCustomEvent(n,i.bubbles,i.cancelable,i.detail),o}}(t.CustomEvent?"CustomEvent":"Event",{bubbles:!1,cancelable:!1,detail:null})}try{new Event("_")}catch(e){e=function(t){function e(t,e){n(arguments.length,"Event");var r=f.createEvent("Event");return e||(e={}),r.initEvent(t,!!e.bubbles,!!e.cancelable),r}return e.prototype=t.prototype,e}(t.Event||function(){}),p(t,"Event",{value:e}),Event!==e&&(Event=e)}try{new KeyboardEvent("_",{})}catch(e){e=function(e){var r,i=0,o={char:"",key:"",location:0,ctrlKey:!1,shiftKey:!1,altKey:!1,metaKey:!1,altGraphKey:!1,repeat:!1,locale:navigator.language,detail:0,bubbles:!1,cancelable:!1,keyCode:0,charCode:0,which:0};try{var s=f.createEvent("KeyboardEvent");s.initKeyboardEvent("keyup",!1,!1,t,"+",3,!0,!1,!0,!1,!1),i="+"==(s.keyIdentifier||s.key)&&3==(s.keyLocation||s.location)&&(s.ctrlKey?s.altKey?1:3:s.shiftKey?2:4)||9}catch(t){}function a(t,e,r){try{e[t]=r[t]}catch(t){}}function c(e,s){n(arguments.length,"KeyboardEvent"),s=function(t,e){for(var r in e)e.hasOwnProperty(r)&&!e.hasOwnProperty.call(t,r)&&(t[r]=e[r]);return t}(s||{},o);var c,u=f.createEvent(r),l=s.ctrlKey,h=s.shiftKey,p=s.altKey,d=s.metaKey,v=s.altGraphKey,g=i>3?function(t){for(var e=[],r=["ctrlKey","Control","shiftKey","Shift","altKey","Alt","metaKey","Meta","altGraphKey","AltGraph"],n=0;n<r.length;n+=2)t[r[n]]&&e.push(r[n+1]);return e.join(" ")}(s):null,m=String(s.key),y=String(s.char),b=s.location,w=s.keyCode||(s.keyCode=m)&&m.charCodeAt(0)||0,x=s.charCode||(s.charCode=y)&&y.charCodeAt(0)||0,S=s.bubbles,A=s.cancelable,O=s.repeat,E=s.locale,k=s.view||t;if(s.which||(s.which=s.keyCode),"initKeyEvent"in u)u.initKeyEvent(e,S,A,k,l,p,h,d,w,x);else if(0<i&&"initKeyboardEvent"in u){switch(c=[e,S,A,k],i){case 1:c.push(m,b,l,h,p,d,v);break;case 2:c.push(l,p,h,d,w,x);break;case 3:c.push(m,b,l,p,h,d,v);break;case 4:c.push(m,b,g,O,E);break;default:c.push(char,m,b,g,O,E)}u.initKeyboardEvent.apply(u,c)}else u.initEvent(e,S,A);for(m in u)o.hasOwnProperty(m)&&u[m]!==s[m]&&a(m,u,s);return u}return r=0<i?"KeyboardEvent":"Event",c.prototype=e.prototype,c}(t.KeyboardEvent||function(){}),p(t,"KeyboardEvent",{value:e}),KeyboardEvent!==e&&(KeyboardEvent=e)}try{new MouseEvent("_",{})}catch(e){e=function(e){function r(e,r){n(arguments.length,"MouseEvent");var i=f.createEvent("MouseEvent");return r||(r={}),i.initMouseEvent(e,!!r.bubbles,!!r.cancelable,r.view||t,r.detail||1,r.screenX||0,r.screenY||0,r.clientX||0,r.clientY||0,!!r.ctrlKey,!!r.altKey,!!r.shiftKey,!!r.metaKey,r.button||0,r.relatedTarget||null),i}return r.prototype=e.prototype,r}(t.MouseEvent||function(){}),p(t,"MouseEvent",{value:e}),MouseEvent!==e&&(MouseEvent=e)}f.querySelectorAll("*").forEach||function(){function t(t){var e=t.querySelectorAll;t.querySelectorAll=function(t){var r=e.call(this,t);return r.forEach=Array.prototype.forEach,r}}t(f),t(Element.prototype)}();try{f.querySelector(":scope *")}catch(t){!function(){var t="data-scope-"+(1e9*Math.random()>>>0),e=Element.prototype,r=e.querySelector,n=e.querySelectorAll;
25976function i(e,r,n){if(e.type!=f.ELEMENT_NODE)return r.call(e,n);e.setAttribute(t,null);var i=r.call(e,String(n).replace(/(^|,\s*)(:scope([ >]|$))/g,(function(e,r,n,i){return r+"["+t+"]"+(i||" ")})));return e.removeAttribute(t),i}e.querySelector=function(t){return i(this,r,t)},e.querySelectorAll=function(t){return i(this,n,t)}}()}}(window),function(t){"use strict";var e=t.WeakMap||function(){var t,e=0,r=!1,n=!1;function i(e,i,o){n=o,r=!1,t=void 0,e.dispatchEvent(i)}function o(t){this.value=t}function a(){e++,this.__ce__=new s("@DOMMap:"+e+Math.random())}return o.prototype.handleEvent=function(e){r=!0,n?e.currentTarget.removeEventListener(e.type,this,!1):t=this.value},a.prototype={constructor:a,delete:function(t){return i(t,this.__ce__,!0),r},get:function(e){i(e,this.__ce__,!1);var r=t;return t=void 0,r},has:function(t){return i(t,this.__ce__,!1),r},set:function(t,e){return i(t,this.__ce__,!0),t.addEventListener(this.__ce__.type,new o(e),!1),this}},a}();function r(){}function n(t,e,r){function i(t){i.once&&(t.currentTarget.removeEventListener(t.type,e,i),i.removed=!0),i.passive&&(t.preventDefault=n.preventDefault),"function"==typeof i.callback?i.callback.call(this,t):i.callback&&i.callback.handleEvent(t),i.passive&&delete t.preventDefault}return i.type=t,i.callback=e,i.capture=!!r.capture,i.passive=!!r.passive,i.once=!!r.once,i.removed=!1,i}r.prototype=(Object.create||Object)(null),n.preventDefault=function(){};var i,o,s=t.CustomEvent,a=t.dispatchEvent,c=t.addEventListener,u=t.removeEventListener,l=0,f=function(){l++},h=[].indexOf||function(t){for(var e=this.length;e--&&this[e]!==t;);return e},p=function(t){return"".concat(t.capture?"1":"0",t.passive?"1":"0",t.once?"1":"0")};try{c("_",f,{once:!0}),a(new s("_")),a(new s("_")),u("_",f,{once:!0})}catch(t){}1!==l&&(o=new e,i=function(t){if(t){var e=t.prototype;e.addEventListener=function(t){return function(e,i,s){if(s&&"boolean"!=typeof s){var a,c,u,l=o.get(this),f=p(s);l||o.set(this,l=new r),e in l||(l[e]={handler:[],wrap:[]}),c=l[e],(a=h.call(c.handler,i))<0?(a=c.handler.push(i)-1,c.wrap[a]=u=new r):u=c.wrap[a],f in u||(u[f]=n(e,i,s),t.call(this,e,u[f],u[f].capture))}else t.call(this,e,i,s)}}(e.addEventListener),e.removeEventListener=function(t){return function(e,r,n){if(n&&"boolean"!=typeof n){var i,s,a,c,u=o.get(this);if(u&&e in u&&(a=u[e],-1<(s=h.call(a.handler,r))&&(i=p(n))in(c=a.wrap[s]))){for(i in t.call(this,e,c[i],c[i].capture),delete c[i],c)return;a.handler.splice(s,1),a.wrap.splice(s,1),0===a.handler.length&&delete u[e]}}else t.call(this,e,r,n)}}(e.removeEventListener)}},t.EventTarget?i(EventTarget):(i(t.Text),i(t.Element||t.HTMLElement),i(t.HTMLDocument),i(t.Window||{prototype:t}),i(t.XMLHttpRequest)))}(self)},9688:(t,e,r)=>{"use strict";var n=r(8810),i=r(8052),o=r(2484),s=r(2360),a=r(5236),c=r(6327),u=r(1072),l=r(5755),f=r(321),h=r(9601),p=r(4102),d=r(2675),v=r(9976),g=r(8819),m=r(9859);t.exports=function(t,e,r){var y=-1!==t.indexOf("Map"),b=-1!==t.indexOf("Weak"),w=y?"set":"add",x=i[t],S=x&&x.prototype,A=x,O={},E=function(t){var e=o(S[t]);a(S,t,"add"===t?function(t){return e(this,0===t?0:t),this}:"delete"===t?function(t){return!(b&&!p(t))&&e(this,0===t?0:t)}:"get"===t?function(t){return b&&!p(t)?void 0:e(this,0===t?0:t)}:"has"===t?function(t){return!(b&&!p(t))&&e(this,0===t?0:t)}:function(t,r){return e(this,0===t?0:t,r),this})};if(s(t,!f(x)||!(b||S.forEach&&!d((function(){(new x).entries().next()})))))A=r.getConstructor(e,t,y,w),c.enable();else if(s(t,!0)){var k=new A,T=k[w](b?{}:-0,1)!==k,_=d((function(){k.has(1)})),C=v((function(t){new x(t)})),P=!b&&d((function(){for(var t=new x,e=5;e--;)t[w](e,e);return!t.has(-0)}));C||((A=e((function(t,e){l(t,S);var r=m(new x,t,A);return h(e)||u(e,r[w],{that:r,AS_ENTRIES:y}),r}))).prototype=S,S.constructor=A),(_||P)&&(E("delete"),E("has"),y&&E("get")),(P||T)&&E(w),b&&S.clear&&delete S.clear}return O[t]=A,n({global:!0,constructor:!0,forced:A!==x},O),g(A,t),b||r.setStrong(A,t,y),A}},9691:t=>{"use strict";var e=Object.prototype.toString,r=Math.max,n=function(t,e){for(var r=[],n=0;n<t.length;n+=1)r[n]=t[n];for(var i=0;i<e.length;i+=1)r[i+t.length]=e[i];return r};t.exports=function(t){var i=this;if("function"!=typeof i||"[object Function]"!==e.apply(i))throw new TypeError("Function.prototype.bind called on incompatible "+i);for(var o,s=function(t,e){for(var r=[],n=e||0,i=0;n<t.length;n+=1,i+=1)r[i]=t[n];return r}
25976(arguments,1),a=r(0,i.length-s.length),c=[],u=0;u<a;u++)c[u]="$"+u;if(o=Function("binder","return function ("+function(t,e){for(var r="",n=0;n<t.length;n+=1)r+=t[n],n+1<t.length&&(r+=e);return r}(c,",")+"){ return binder.apply(this,arguments); }")((function(){if(this instanceof o){var e=i.apply(this,n(s,arguments));return Object(e)===e?e:this}return i.apply(t,n(s,arguments))})),i.prototype){var l=function(){};l.prototype=i.prototype,o.prototype=new l,l.prototype=null}return o}},9704:(t,e,r)=>{"use strict";r.r(e),r.d(e,{default:()=>st});r(8037);var n=r(2561),i=r(6710),o=r(3008),s=r(3134),a=r(6973),c=(r(4958),r(5249),r(6160),r(3376),r(1759),r(3544),r(6782));function u(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function l(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?u(Object(r),!0).forEach((function(e){v(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):u(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function f(t){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},f(t)}function h(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function p(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function d(t,e,r){return e&&p(t.prototype,e),r&&p(t,r),t}function v(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function g(t){return g=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},g(t)}function m(t,e){return m=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},m(t,e)}function y(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function b(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=g(t);if(e){var i=g(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return y(this,r)}}function w(){return w="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,r){var n=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=g(t)););return t}(t,e);if(n){var i=Object.getOwnPropertyDescriptor(n,e);return i.get?i.get.call(arguments.length<3?t:r):i.value}},w.apply(this,arguments)}var x={type:"slider",startAt:0,perView:1,focusAt:0,gap:10,autoplay:!1,hoverpause:!0,keyboard:!0,bound:!1,swipeThreshold:80,dragThreshold:120,perSwipe:"",touchRatio:.5,touchAngle:45,animationDuration:400,rewind:!0,rewindDuration:800,animationTimingFunc:"cubic-bezier(.165, .840, .440, 1)",waitForTransition:!0,throttle:10,direction:"ltr",peek:0,cloningRatio:1,breakpoints:{},classes:{swipeable:"glide--swipeable",dragging:"glide--dragging",direction:{ltr:"glide--ltr",rtl:"glide--rtl"},type:{slider:"glide--slider",carousel:"glide--carousel"},slide:{clone:"glide__slide--clone",active:"glide__slide--active"},arrow:{disabled:"glide__arrow--disabled"},nav:{active:"glide__bullet--active"}}};function S(t){console.error("[Glide warn]: ".concat(t))}function A(t){return parseInt(t)}function O(t){return"string"==typeof t}function E(t){var e=f(t);return"function"===e||"object"===e&&!!t}function k(t){return"function"==typeof t}function T(t){return void 0===t}function _(t){return t.constructor===Array}function C(t,e,r){Object.defineProperty(t,e,r)}function P(t,e){var r=Object.assign({},t,e);if(e.hasOwnProperty("classes")){r.classes=Object.assign({},t.classes,e.classes);["direction","type","slide","arrow","nav"].forEach((function(n){e.classes.hasOwnProperty(n)&&(r.classes[n]=l(l({},t.classes[n]),e.classes[n]))}))}return e.hasOwnProperty("breakpoints")&&(r.breakpoints=Object.assign({},t.breakpoints,e.breakpoints)),r}var I=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};h(this,t),this.events=e,this.hop=e.hasOwnProperty}return d(t,[{key:"on",value:function(t,e){if(!_(t)){this.hop.call(this.events,t)||(this.events[t]=[]);var r=this.events[t].push(e)-1;return{remove:function(){delete this.events[t][r]}}}for(var n=0;n<t.length;n++)this.on(t[n],e)}},{key:"emit",value:function(t,e){if(_(t))for(var r=0;r<t.length;
vendor: 18,359 bytes, line 25976
25976r++)this.emit(t[r],e);else this.hop.call(this.events,t)&&this.events[t].forEach((function(t){t(e||{})}))}}]),t}(),j=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};h(this,t),this._c={},this._t=[],this._e=new I,this.disabled=!1,this.selector=e,this.settings=P(x,r),this.index=this.settings.startAt}return d(t,[{key:"mount",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._e.emit("mount.before"),E(t)?this._c=function(t,e,r){var n={};for(var i in e)k(e[i])?n[i]=e[i](t,n,r):S("Extension must be a function");for(var o in n)k(n[o].mount)&&n[o].mount();return n}(this,t,this._e):S("You need to provide a object on `mount()`"),this._e.emit("mount.after"),this}},{key:"mutate",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return _(t)?this._t=t:S("You need to provide a array on `mutate()`"),this}},{key:"update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.settings=P(this.settings,t),t.hasOwnProperty("startAt")&&(this.index=t.startAt),this._e.emit("update"),this}},{key:"go",value:function(t){return this._c.Run.make(t),this}},{key:"move",value:function(t){return this._c.Transition.disable(),this._c.Move.make(t),this}},{key:"destroy",value:function(){return this._e.emit("destroy"),this}},{key:"play",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t&&(this.settings.autoplay=t),this._e.emit("play"),this}},{key:"pause",value:function(){return this._e.emit("pause"),this}},{key:"disable",value:function(){return this.disabled=!0,this}},{key:"enable",value:function(){return this.disabled=!1,this}},{key:"on",value:function(t,e){return this._e.on(t,e),this}},{key:"isType",value:function(t){return this.settings.type===t}},{key:"settings",get:function(){return this._o},set:function(t){E(t)?this._o=t:S("Options must be an `object` instance.")}},{key:"index",get:function(){return this._i},set:function(t){this._i=A(t)}},{key:"type",get:function(){return this.settings.type}},{key:"disabled",get:function(){return this._d},set:function(t){this._d=!!t}}]),t}();function M(){return(new Date).getTime()}function L(t,e){var r,n,i,o,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=0,c=function(){a=!1===s.leading?0:M(),r=null,o=t.apply(n,i),r||(n=i=null)},u=function(){var u=M();a||!1!==s.leading||(a=u);var l=e-(u-a);return n=this,i=arguments,l<=0||l>e?(r&&(clearTimeout(r),r=null),a=u,o=t.apply(n,i),r||(n=i=null)):r||!1===s.trailing||(r=setTimeout(c,l)),o};return u.cancel=function(){clearTimeout(r),a=0,r=n=i=null},u}var N={ltr:["marginLeft","marginRight"],rtl:["marginRight","marginLeft"]};function B(t){if(t&&t.parentNode){for(var e=t.parentNode.firstChild,r=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&r.push(e);return r}return[]}function R(t){return Array.prototype.slice.call(t)}var D=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};h(this,t),this.listeners=e}return d(t,[{key:"on",value:function(t,e,r){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];O(t)&&(t=[t]);for(var i=0;i<t.length;i++)this.listeners[t[i]]=r,e.addEventListener(t[i],this.listeners[t[i]],n)}},{key:"off",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];O(t)&&(t=[t]);for(var n=0;n<t.length;n++)e.removeEventListener(t[n],this.listeners[t[n]],r)}},{key:"destroy",value:function(){delete this.listeners}}]),t}();var F=["ltr","rtl"],$={">":"<","<":">","=":"="};function H(t,e){return{modify:function(t){return e.Direction.is("rtl")?-t:t}}}function z(t,e){return{modify:function(t){var r=Math.floor(t/e.Sizes.slideWidth);return t+e.Gaps.value*r}}}function V(t,e){return{modify:function(t){return t+e.Clones.grow/2}}}function U(t,e){return{modify:function(r){if(t.settings.focusAt>=0){var n=e.Peek.value;return E(n)?r-n.before:r-n}return r}}}function W(t,e){return{modify:function(r){var n=e.Gaps.value,i=e.Sizes.width,o=t.settings.focusAt,s=e.Sizes.slideWidth;return"center"===o?r-(i/2-s/2):r-s*o-n*o}}}var K=!1;try{var G=Object.defineProperty({},"passive",{get:function(){K=!0}});window.addEventListener("testPassive",null,G),window.removeEventListener("testPassive",null,G)}catch(t){}var q=K,J=["touchstart","mousedown"],Y=["touchmove","mousemove"],X=["touchend","touchcancel","mouseup","mouseleave"],Q=["mousedown","mousemove","mouseup","mouseleave"];var Z='[data-glide-el^="controls"]',tt="".concat(Z,' [data-glide-dir*="<"]'),et="".concat(Z,' [data-glide-dir*=">"]');function rt(t){return E(t)?(e=t,Object.keys(e).sort().reduce((function(t,r){return t[r]=e[r],t[r],t}),{})):(S("Breakpoints option must be an object"),{});var e}var nt={Html:function(t,e,r){var n={mount:function(){this.root=t.selector,this.track=this.root.querySelector('[data-glide-el="track"]'),this.collectSlides()},collectSlides:function(){this.slides=R(this.wrapper.children).filter((function(e){return!e.classList.contains(t.settings.classes.slide.clone)}))}};return C(n,"root",{get:function(){return n._r},set:function(t){O(t)&&(t=document.querySelector(t)),null!==t?n._r=t:S("Root element must be a existing Html node")}}),C(n,"track",{get:function(){return n._t},set:function(t){n._t=t}}),C(n,"wrapper",{get:function(){return n.track.children[0]}}),r.on("update",(function(){n.collectSlides()})),n},Translate:function(t,e,r){var n={set:function(r){var n=function(t,e,r){var n=[z,V,U,W].concat(t._t,[H]);return{mutate:function(i){for(var o=0;o<n.length;o++){var s=n[o];k(s)&&k(s().modify)?i=s(t,e,r).modify(i):S("Transformer should be a function that returns an object with `modify()` method")}return i}}}(t,e).mutate(r),i="translate3d(".concat(-1*n,"px, 0px, 0px)");e.Html.wrapper.style.mozTransform=i,e.Html.wrapper.style.webkitTransform=i,e.Html.wrapper.style.transform=i},remove:function(){e.Html.wrapper.style.transform=""},getStartIndex:function(){var r=e.Sizes.length,n=t.index,i=t.settings.perView;return e.Run.isOffset(">")||e.Run.isOffset("|>")?r+(n-i):(n+i)%r},getTravelDistance:function(){var r=e.Sizes.slideWidth*t.settings.perView;return e.Run.isOffset(">")||e.Run.isOffset("|>")?-1*r:r}};return r.on("move",(function(i){if(!t.isType("carousel")||!e.Run.isOffset())return n.set(i.movement);e.Transition.after((function(){r.emit("translate.jump"),n.set(e.Sizes.slideWidth*t.index)}));var o=e.Sizes.slideWidth*e.Translate.getStartIndex();return n.set(o-e.Translate.getTravelDistance())})),r.on("destroy",(function(){n.remove()})),n},Transition:function(t,e,r){var n=!1,i={compose:function(e){var r=t.settings;return n?"".concat(e," 0ms ").concat(r.animationTimingFunc):"".concat(e," ").concat(this.duration,"ms ").concat(r.animationTimingFunc)},set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"transform";e.Html.wrapper.style.transition=this.compose(t)},remove:function(){e.Html.wrapper.style.transition=""},after:function(t){setTimeout((function(){t()}),this.duration)},enable:function(){n=!1,this.set()},disable:function(){n=!0,this.set()}};return C(i,"duration",{get:function(){var r=t.settings;return t.isType("slider")&&e.Run.offset?r.rewindDuration:r.animationDuration}}),r.on("move",(function(){i.set()})),r.on(["build.before","resize","translate.jump"],(function(){i.disable()})),r.on("run",(function(){i.enable()})),r.on("destroy",(function(){i.remove()})),i},Direction:function(t,e,r){var n={mount:function(){this.value=t.settings.direction},resolve:function(t){var e=t.slice(0,1);return this.is("rtl")?t.split(e).join($[e]):t},is:function(t){return this.value===t},addClass:function(){e.Html.root.classList.add(t.settings.classes.direction[this.value])},removeClass:function(){e.Html.root.classList.remove(t.settings.classes.direction[this.value])}};return C(n,"value",{get:function(){return n._v},set:function(t){F.indexOf(t)>-1?n._v=t:S("Direction value must be `ltr` or `rtl`")}}),r.on(["destroy","update"],(function(){n.removeClass()})),r.on("update",(function(){n.mount()})),r.on(["build.before","update"],(function(){n.addClass()})),n},Peek:function(t,e,r){var n={mount:function(){this.value=t.settings.peek}};return C(n,"value",{get:function(){return n._v},set:function(t){E(t)?(t.before=A(t.before),t.after=A(t.after)):t=A(t),n._v=t}}),C(n,"reductor",{get:function(){var e=n.value,r=t.settings.perView;return E(e)?e.before/r+e.after/r:2*e/r}}),r.on(["resize","update"],(function(){n.mount()})),n},Sizes:function(t,e,r){var n={setupSlides:function(){for(var t="".concat(this.slideWidth,"px"),r=e.Html.slides,n=0;n<r.length;n++)r[n].style.width=t},setupWrapper:function(){e.Html.wrapper.style.width="".concat(this.wrapperSize,"px")},remove:function(){for(var t=e.Html.slides,r=0;r<t.length;r++)t[r].style.width="";e.Html.wrapper.style.width=""}};return C(n,"length",{get:function(){return e.Html.slides.length}}),C(n,"width",{get:function(){return e.Html.track.offsetWidth}}),C(n,"wrapperSize",{get:function(){return n.slideWidth*n.length+e.Gaps.grow+e.Clones.grow}}),C(n,"slideWidth",{get:function(){return n.width/t.settings.perView-e.Peek.reductor-e.Gaps.reductor}}),r.on(["build.before","resize","update"],(function(){n.setupSlides(),n.setupWrapper()})),r.on("destroy",(function(){n.remove()})),n},Gaps:function(t,e,r){var n={apply:function(t){for(var r=0,n=t.length;r<n;r++){var i=t[r].style,o=e.Direction.value;i[N[o][0]]=0!==r?"".concat(this.value/2,"px"):"",r!==t.length-1?i[N[o][1]]="".concat(this.value/2,"px"):i[N[o][1]]=""}},remove:function(t){for(var e=0,r=t.length;e<r;e++){var n=t[e].style;n.marginLeft="",n.marginRight=""}}};return C(n,"value",{get:function(){return A(t.settings.gap)}}),C(n,"grow",{get:function(){return n.value*e.Sizes.length}}),C(n,"reductor",{get:function(){var e=t.settings.perView;return n.value*(e-1)/e}}),r.on(["build.after","update"],L((function(){n.apply(e.Html.wrapper.children)}),30)),r.on("destroy",(function(){n.remove(e.Html.wrapper.children)})),n},Move:function(t,e,r){var n={mount:function(){this._o=0},make:function(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.offset=n,r.emit("move",{movement:this.value}),e.Transition.after((function(){r.emit("move.after",{movement:t.value})}))}};return C(n,"offset",{get:function(){return n._o},set:function(t){n._o=T(t)?0:A(t)}}),C(n,"translate",{get:function(){return e.Sizes.slideWidth*t.index}}),C(n,"value",{get:function(){var t=this.offset,r=this.translate;return e.Direction.is("rtl")?r+t:r-t}}),r.on(["build.before","run"],(function(){n.make()})),n},Clones:function(t,e,r){var n={mount:function(){this.items=[],t.isType("carousel")&&(this.items=this.collect())},collect:function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=e.Html.slides,i=t.settings,o=i.perView,s=i.classes,a=i.cloningRatio;if(n.length>0)for(var c=o+ +!!t.settings.peek+Math.round(o/2),u=n.slice(0,c).reverse(),l=n.slice(-1*c),f=0;f<Math.max(a,Math.floor(o/n.length));f++){for(var h=0;h<u.length;h++){var p=u[h].cloneNode(!0);p.classList.add(s.slide.clone),r.push(p)}for(var d=0;d<l.length;d++){var v=l[d].cloneNode(!0);v.classList.add(s.slide.clone),r.unshift(v)}}return r},append:function(){for(var t=this.items,r=e.Html,n=r.wrapper,i=r.slides,o=Math.floor(t.length/2),s=t.slice(0,o).reverse(),a=t.slice(-1*o).reverse(),c="".concat(e.Sizes.slideWidth,"px"),u=0;u<a.length;u++)n.appendChild(a[u]);for(var l=0;l<s.length;l++)n.insertBefore(s[l],i[0]);for(var f=0;f<t.length;f++)t[f].style.width=c},remove:function(){for(var t=this.items,r=0;r<t.length;r++)e.Html.wrapper.removeChild(t[r])}};return C(n,"grow",{get:function(){return(e.Sizes.slideWidth+e.Gaps.value)*n.items.length}}),r.on("update",(function(){n.remove(),n.mount(),n.append()})),r.on("build.before",(function(){t.isType("carousel")&&n.append()})),r.on("destroy",(function(){n.remove()})),n},Resize:function(t,e,r){var n=new D,i={mount:function(){this.bind()},bind:function(){n.on("resize",window,L((function(){r.emit("resize")}),t.settings.throttle))},unbind:function(){n.off("resize",window)}};return r.on("destroy",(function(){i.unbind(),n.destroy()})),i},Build:function(t,e,r){var n={mount:function(){r.emit("build.before"),this.typeClass(),this.activeClass(),r.emit("build.after")},typeClass:function(){e.Html.root.classList.add(t.settings.classes.type[t.settings.type])},activeClass:function(){var r=t.settings.classes,n=e.Html.slides[t.index];n&&(n.classList.add(r.slide.active),B(n).forEach((function(t){t.classList.remove(r.slide.active)})))},removeClasses:function(){var r=t.settings.classes,n=r.type,i=r.slide;e.Html.root.classList.remove(n[t.settings.type]),e.Html.slides.forEach((function(t){t.classList.remove(i.active)}))}};return r.on(["destroy","update"],(function(){n.removeClasses()})),r.on(["resize","update"],(function(){n.mount()})),r.on("move.after",(function(){n.activeClass()})),n},Run:function(t,e,r){var n={mount:function(){this._o=!1},make:function(n){var i=this;t.disabled||(!t.settings.waitForTransition||t.disable(),this.move=n,r.emit("run.before",this.move),this.calculate(),r.emit("run",this.move),e.Transition.after((function(){i.isStart()&&r.emit("run.start",i.move),i.isEnd()&&r.emit("run.end",i.move),i.isOffset()&&(i._o=!1,r.emit("run.offset",i.move)),r.emit("run.after",i.move),t.enable()})))},calculate:function(){var e=this.move,r=this.length,i=e.steps,o=e.direction,s=1;if("="===o)return t.settings.bound&&A(i)>r?void(t.index=r):void(t.index=i);if(">"!==o||">"!==i)if("<"!==o||"<"!==i){if("|"===o&&(s=t.settings.perView||1),">"===o||"|"===o&&">"===i){var a=function(e){var r=t.index;if(t.isType("carousel"))return r+e;return r+(e-r%e)}(s);return a>r&&(this._o=!0),void(t.index=function(e,r){var i=n.length;if(e<=i)return e;if(t.isType("carousel"))return e-(i+1);if(t.settings.rewind)return n.isBound()&&!n.isEnd()?i:0;if(n.isBound())return i;return Math.floor(i/r)*r}(a,s))}if("<"===o||"|"===o&&"<"===i){var c=function(e){var r=t.index;if(t.isType("carousel"))return r-e;var n=Math.ceil(r/e);return(n-1)*e}(s);return c<0&&(this._o=!0),void(t.index=function(e,r){var i=n.length;if(e>=0)return e;if(t.isType("carousel"))return e+(i+1);if(t.settings.rewind)return n.isBound()&&n.isStart()?i:Math.floor(i/r)*r;return 0}(c,s))}S("Invalid direction pattern [".concat(o).concat(i,"] has been used"))}else t.index=0;else t.index=r},isStart:function(){return t.index<=0},isEnd:function(){return t.index>=this.length},isOffset:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;return t?!!this._o&&("|>"===t?"|"===this.move.direction&&">"===this.move.steps:"|<"===t?"|"===this.move.direction&&"<"===this.move.steps:this.move.direction===t):this._o},isBound:function(){return t.isType("slider")&&"center"!==t.settings.focusAt&&t.settings.bound}};return C(n,"move",{get:function(){return this._m},set:function(t){var e=t.substr(1);this._m={direction:t.substr(0,1),steps:e?A(e)?A(e):e:0}}}),C(n,"length",{get:function(){var r=t.settings,n=e.Html.slides.length;return this.isBound()?n-1-(A(r.perView)-1)+A(r.focusAt):n-1}}),C(n,"offset",{get:function(){return this._o}}),n},Swipe:function(t,e,r){var n=new D,i=0,o=0,s=0,a=!1,c=!!q&&{passive:!0},u={mount:function(){this.bindSwipeStart()},start:function(e){if(!a&&!t.disabled){this.disable();var n=this.touches(e);i=null,o=A(n.pageX),s=A(n.pageY),this.bindSwipeMove(),this.bindSwipeEnd(),r.emit("swipe.start")}},move:function(n){if(!t.disabled){var a=t.settings,c=a.touchAngle,u=a.touchRatio,l=a.classes,f=this.touches(n),h=A(f.pageX)-o,p=A(f.pageY)-s,d=Math.abs(h<<2),v=Math.abs(p<<2),g=Math.sqrt(d+v),m=Math.sqrt(v);if(!(180*(i=Math.asin(m/g))/Math.PI<c))return!1;n.stopPropagation(),e.Move.make(h*parseFloat(u)),e.Html.root.classList.add(l.dragging),r.emit("swipe.move")}},end:function(n){if(!t.disabled){var s=t.settings,a=s.perSwipe,c=s.touchAngle,u=s.classes,l=this.touches(n),f=this.threshold(n),h=l.pageX-o,p=180*i/Math.PI;this.enable(),h>f&&p<c?e.Run.make(e.Direction.resolve("".concat(a,"<"))):h<-f&&p<c?e.Run.make(e.Direction.resolve("".concat(a,">"))):e.Move.make(),e.Html.root.classList.remove(u.dragging),this.unbindSwipeMove(),this.unbindSwipeEnd(),r.emit("swipe.end")}},bindSwipeStart:function(){var r=this,i=t.settings,o=i.swipeThreshold,s=i.dragThreshold;o&&n.on(J[0],e.Html.wrapper,(function(t){r.start(t)}),c),s&&n.on(J[1],e.Html.wrapper,(function(t){r.start(t)}),c)},unbindSwipeStart:function(){n.off(J[0],e.Html.wrapper,c),n.off(J[1],e.Html.wrapper,c)},bindSwipeMove:function(){var r=this;n.on(Y,e.Html.wrapper,L((function(t){r.move(t)}),t.settings.throttle),c)},unbindSwipeMove:function(){n.off(Y,e.Html.wrapper,c)},bindSwipeEnd:function(){var t=this;n.on(X,e.Html.wrapper,(function(e){t.end(e)}))},unbindSwipeEnd:function(){n.off(X,e.Html.wrapper)},touches:function(t){return Q.indexOf(t.type)>-1?t:t.touches[0]||t.changedTouches[0]},threshold:function(e){var r=t.settings;return Q.indexOf(e.type)>-1?r.dragThreshold:r.swipeThreshold},enable:function(){return a=!1,e.Transition.enable(),this},disable:function(){return a=!0,e.Transition.disable(),this}};return r.on("build.after",(function(){e.Html.root.classList.add(t.settings.classes.swipeable)})),r.on("destroy",(function(){u.unbindSwipeStart(),u.unbindSwipeMove(),u.unbindSwipeEnd(),n.destroy()})),u},Images:function(t,e,r){var n=new D,i={mount:function(){this.bind()},bind:function(){n.on("dragstart",e.Html.wrapper,this.dragstart)},unbind:function(){n.off("dragstart",e.Html.wrapper)},dragstart:function(t){t.preventDefault()}};return r.on("destroy",(function(){i.unbind(),n.destroy()})),i},Anchors:function(t,e,r){var n=new D,i=!1,o=!1,s={mount:function(){this._a=e.Html.wrapper.querySelectorAll("a"),this.bind()},bind:function(){n.on("click",e.Html.wrapper,this.click)},unbind:function(){n.off("click",e.Html.wrapper)},click:function(t){o&&(t.stopPropagation(),t.preventDefault())},detach:function(){if(o=!0,!i){for(var t=0;t<this.items.length;t++)this.items[t].draggable=!1;i=!0}return this},attach:function(){if(o=!1,i){for(var t=0;t<this.items.length;t++)this.items[t].draggable=!0;i=!1}return this}};return C(s,"items",{get:function(){return s._a}}),r.on("swipe.move",(function(){s.detach()})),r.on("swipe.end",(function(){e.Transition.after((function(){s.attach()}))})),r.on("destroy",(function(){s.attach(),s.unbind(),n.destroy()})),s},Controls:function(t,e,r){var n=new D,i=!!q&&{passive:!0},o={mount:function(){this._n=e.Html.root.querySelectorAll('[data-glide-el="
25976controls[nav]"]'),this._c=e.Html.root.querySelectorAll(Z),this._arrowControls={previous:e.Html.root.querySelectorAll(tt),next:e.Html.root.querySelectorAll(et)},this.addBindings()},setActive:function(){for(var t=0;t<this._n.length;t++)this.addClass(this._n[t].children)},removeActive:function(){for(var t=0;t<this._n.length;t++)this.removeClass(this._n[t].children)},addClass:function(e){var r=t.settings,n=e[t.index];n&&(n.classList.add(r.classes.nav.active),B(n).forEach((function(t){t.classList.remove(r.classes.nav.active)})))},removeClass:function(e){var r=e[t.index];null==r||r.classList.remove(t.settings.classes.nav.active)},setArrowState:function(){if(!t.settings.rewind){var r=o._arrowControls.next,n=o._arrowControls.previous;this.resetArrowState(r,n),0===t.index&&this.disableArrow(n),t.index===e.Run.length&&this.disableArrow(r)}},resetArrowState:function(){for(var e=t.settings,r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];n.forEach((function(t){R(t).forEach((function(t){t.classList.remove(e.classes.arrow.disabled)}))}))},disableArrow:function(){for(var e=t.settings,r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];n.forEach((function(t){R(t).forEach((function(t){t.classList.add(e.classes.arrow.disabled)}))}))},addBindings:function(){for(var t=0;t<this._c.length;t++)this.bind(this._c[t].children)},removeBindings:function(){for(var t=0;t<this._c.length;t++)this.unbind(this._c[t].children)},bind:function(t){for(var e=0;e<t.length;e++)n.on("click",t[e],this.click),n.on("touchstart",t[e],this.click,i)},unbind:function(t){for(var e=0;e<t.length;e++)n.off(["click","touchstart"],t[e])},click:function(t){q||"touchstart"!==t.type||t.preventDefault();var r=t.currentTarget.getAttribute("data-glide-dir");e.Run.make(e.Direction.resolve(r))}};return C(o,"items",{get:function(){return o._c}}),r.on(["mount.after","move.after"],(function(){o.setActive()})),r.on(["mount.after","run"],(function(){o.setArrowState()})),r.on("destroy",(function(){o.removeBindings(),o.removeActive(),n.destroy()})),o},Keyboard:function(t,e,r){var n=new D,i={mount:function(){t.settings.keyboard&&this.bind()},bind:function(){n.on("keyup",document,this.press)},unbind:function(){n.off("keyup",document)},press:function(r){var n=t.settings.perSwipe;["ArrowRight","ArrowLeft"].includes(r.code)&&e.Run.make(e.Direction.resolve("".concat(n).concat({ArrowRight:">",ArrowLeft:"<"}[r.code])))}};return r.on(["destroy","update"],(function(){i.unbind()})),r.on("update",(function(){i.mount()})),r.on("destroy",(function(){n.destroy()})),i},Autoplay:function(t,e,r){var n=new D,i={mount:function(){this.enable(),this.start(),t.settings.hoverpause&&this.bind()},enable:function(){this._e=!0},disable:function(){this._e=!1},start:function(){var n=this;this._e&&(this.enable(),t.settings.autoplay&&T(this._i)&&(this._i=setInterval((function(){n.stop(),e.Run.make(">"),n.start(),r.emit("autoplay")}),this.time)))},stop:function(){this._i=clearInterval(this._i)},bind:function(){var t=this;n.on("mouseover",e.Html.root,(function(){t._e&&t.stop()})),n.on("mouseout",e.Html.root,(function(){t._e&&t.start()}))},unbind:function(){n.off(["mouseover","mouseout"],e.Html.root)}};return C(i,"time",{get:function(){var r=e.Html.slides[t.index].getAttribute("data-glide-autoplay");return A(r||t.settings.autoplay)}}),r.on(["destroy","update"],(function(){i.unbind()})),r.on(["run.before","swipe.start","update"],(function(){i.stop()})),r.on(["pause","destroy"],(function(){i.disable(),i.stop()})),r.on(["run.after","swipe.end"],(function(){i.start()})),r.on(["play"],(function(){i.enable(),i.start()})),r.on("update",(function(){i.mount()})),r.on("destroy",(function(){n.destroy()})),i},Breakpoints:function(t,e,r){var n=new D,i=t.settings,o=rt(i.breakpoints),s=Object.assign({},i),a={match:function(t){if(void 0!==window.matchMedia)for(var e in t)if(t.hasOwnProperty(e)&&window.matchMedia("(max-width: ".concat(e,"px)")).matches)return t[e];return s}};return Object.assign(i,a.match(o)),n.on("resize",window,L((function(){t.settings=P(i,a.match(o))}),t.settings.throttle)),r.on("update",(function(){o=rt(o),s=Object.assign({},i)})),r.on("destroy",(function(){n.off("resize",window)})),a}},it=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&m(t,e)}(r,t);var e=b(r);function r(){return h(this,r),e.apply(this,arguments)}return d(r,[{key:"mount",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return w(g(r.prototype),"mount",this).call(this,Object.assign({},nt,t))}}]),r}(j);function ot(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(ot=function(){return!!t})()}var st=function(t){function e(){var t,r,i,a;(0,n.A)(this,e);for(var c=arguments.length,u=new Array(c),l=0;l<c;l++)u[l]=arguments[l];return r=this,i=e,a=[].concat(u),i=(0,s.A)(i),(t=(0,o.A)(r,ot()?Reflect.construct(i,a||[],(0,s.A)(r).constructor):i.apply(r,a))).updateCaption=function(){t.captionTargets.forEac
25976h((function(e,r){e.setAttribute("aria-hidden",r!==t.glide.index)}))},t}return(0,a.A)(e,t),(0,i.A)(e,[{key:"connect",value:function(){this.glide=new it(this.glideTarget,{gap:0,autoplay:3e3}),this.glide.mount(),this.glide.on("run",this.updateCaption)}},{key:"layout",value:function(){this.glide.update()}}])}(c.xI);st.targets=["glide","caption"]},9731:(t,e,r)=>{"use strict";var n=Function.prototype.call,i=Object.prototype.hasOwnProperty,o=r(469);t.exports=o.call(n,i)},9747:(t,e,r)=>{"use strict";var n=r(8052);t.exports=n},9830:t=>{t.exports=function(t,e){return t===e||t!=t&&e!=e}},9859:(t,e,r)=>{"use strict";var n=r(321),i=r(4102),o=r(1715);t.exports=function(t,e,r){var s,a;return o&&n(s=e.constructor)&&s!==r&&i(a=s.prototype)&&a!==r.prototype&&o(t,a),t}},9872:(t,e,r)=>{"use strict";var n=r(8810),i=r(1904),o=r(6749).indexOf,s=r(8754),a=i([].indexOf),c=!!a&&1/a([1],1,-0)<0;n({target:"Array",proto:!0,forced:c||!s("indexOf")},{indexOf:function(t){var e=arguments.length>1?arguments[1]:void 0;return c?a(this,t,e)||0:o(this,t,e)}})},9892:(t,e,r)=>{"use strict";var n=r(2484),i=r(5236),o=Date.prototype,s="Invalid Date",a="toString",c=n(o[a]),u=n(o.getTime);String(new Date(NaN))!==s&&i(o,a,(function(){var t=u(this);return t==t?c(this):s}))},9976:(t,e,r)=>{"use strict";var n=r(4175)("iterator"),i=!1;try{var o=0,s={next:function(){return{done:!!o++}},return:function(){i=!0}};s[n]=function(){return this},Array.from(s,(function(){throw 2}))}catch(t){}t.exports=function(t,e){try{if(!e&&!i)return!1}catch(t){return!1}var r=!1;try{var o={};o[n]=function(){return{next:function(){return{done:r=!0}}}},t(o)}catch(t){}return r}},9988:t=>{"function"==typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}},9997:t=>{"use strict";var e=Object.defineProperty||!1;if(e)try{e({},"a",{value:1})}catch(t){e=!1}t.exports=e}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var o=e[n]={exports:{}};return t[n].call(o.exports,o,o.exports,r),o.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},(()=>{"use strict";r(5249),r(6160),r(3376),r(1759),r(3544),r(2006),r(9650),r(797),r(6522);var t=r(6661),e=r.n(t),n=r(6782),i=r(2492);e()(),function(t){[["agreement-check",r(3982)],["browser-detector",r(5966)],["check-all",r(5800)],["collapse",r(5548)],["download-image-stage",r(15)],["download-list-panel-trigger",r(542)],["download-model-filter",r(8374)],["draggable-scrollable-container",r(4222)],["has-hover",r(2332)],["horizontal-scroll-state",r(7741)],["in-page-search",r(7899)],["languages-select",r(7652)],["masonry",r(44)],["modal-dialog-opener",r(4299)],["modal-dialog",r(6099)],["model-card-dimensions-template",r(8994)],["popover-opener",r(6636)],["scroll-to-coord",r(2848)],["series-description-omit",r(5267)],["series-feature-carousel",r(9704)],["series-header",r(6534)],["shadow-stage",r(244)],["specs-header-intersection",r(6011)],["specs-select-lineup-group",r(2396)],["specs-select-model-group",r(3798)],["specs-select",r(6356)],["standalone-content-loader",r(5428)],["switch-discontinued",r(5964)],["switch-items",r(3598)],["switch",r(4294)],["tabs",r(8043)],["template-duplicator",r(1897)],["videojs-loader",r(8659)]].forEach((function(e){var r=(0,i.A)(e,2),n=r[0],o=r[1].default;t.register(n,o)}))}(n.lg.start()),document.querySelectorAll(".prd-specsTable colgroup").forEach((function(t){return t.remove()}))})()})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.