PATH:
home
/
centosnipponia
/
public_html
/
nipponiacar
/
wp-content
/
plugins
/
elementor-pro
/
assets
/
js
/*! elementor-pro - v4.0.0 - 28-04-2026 */ "use strict"; (self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["table-of-contents"],{ /***/ "../modules/table-of-contents/assets/js/frontend/handlers/table-of-contents.js" /*!*************************************************************************************!*\ !*** ../modules/table-of-contents/assets/js/frontend/handlers/table-of-contents.js ***! \*************************************************************************************/ (__unused_webpack_module, exports, __webpack_require__) { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _dompurify = _interopRequireDefault(__webpack_require__(/*! dompurify */ "../node_modules/dompurify/dist/purify.cjs.js")); class TOCHandler extends elementorModules.frontend.handlers.Base { getDefaultSettings() { const elementSettings = this.getElementSettings(), listWrapperTag = 'numbers' === elementSettings.marker_view ? 'ol' : 'ul'; return { selectors: { widgetContainer: '.elementor-widget-container', postContentContainer: '.elementor:not([data-elementor-type="header"]):not([data-elementor-type="footer"]):not([data-elementor-type="popup"])', expandButton: '.elementor-toc__toggle-button--expand', collapseButton: '.elementor-toc__toggle-button--collapse', body: '.elementor-toc__body', headerTitle: '.elementor-toc__header-title' }, classes: { anchor: 'elementor-menu-anchor', listWrapper: 'elementor-toc__list-wrapper', listItem: 'elementor-toc__list-item', listTextWrapper: 'elementor-toc__list-item-text-wrapper', firstLevelListItem: 'elementor-toc__top-level', listItemText: 'elementor-toc__list-item-text', activeItem: 'elementor-item-active', headingAnchor: 'elementor-toc__heading-anchor', collapsed: 'elementor-toc--collapsed' }, listWrapperTag }; } getDefaultElements() { const settings = this.getSettings(); let widgetContainer = this.$element.find(settings.selectors.widgetContainer); if (0 === widgetContainer.length) { widgetContainer = this.$element; } return { $pageContainer: this.getContainer(), $widgetContainer: widgetContainer, $expandButton: this.$element.find(settings.selectors.expandButton), $collapseButton: this.$element.find(settings.selectors.collapseButton), $tocBody: this.$element.find(settings.selectors.body), $listItems: this.$element.find('.' + settings.classes.listItem) }; } getContainer() { const elementSettings = this.getElementSettings(); // If there is a custom container defined by the user, use it as the headings-scan container if (elementSettings.container) { return jQuery(_dompurify.default.sanitize(elementSettings.container)); } // Get the document wrapper element in which the TOC is located const $documentWrapper = this.$element.parents('.elementor'); // If the TOC container is a popup, only scan the popup for headings if ('popup' === $documentWrapper.attr('data-elementor-type')) { return $documentWrapper; } // If the TOC container is anything other than a popup, scan only the post/page content for headings const settings = this.getSettings(); return jQuery(settings.selectors.postContentContainer); } bindEvents() { const elementSettings = this.getElementSettings(); if (elementSettings.minimize_box) { this.elements.$expandButton.on('click', () => this.expandBox()).on('keyup', event => this.triggerClickOnEnterSpace(event)); this.elements.$collapseButton.on('click', () => this.collapseBox()).on('keyup', event => this.triggerClickOnEnterSpace(event)); } if (elementSettings.collapse_subitems) { this.elements.$listItems.on('hover', event => jQuery(event.target).slideToggle()); } } getHeadings() { // Get all headings from document by user-selected tags const elementSettings = this.getElementSettings(), tags = elementSettings.headings_by_tags.join(','), selectors = this.getSettings('selectors'), excludedSelectors = elementSettings.exclude_headings_by_selector; return this.elements.$pageContainer.find(tags).not(selectors.headerTitle).filter((index, heading) => { return !jQuery(heading).closest(excludedSelectors).length; // Handle excluded selectors if there are any }); } addAnchorsBeforeHeadings() { const classes = this.getSettings('classes'); // Add an anchor element right before each TOC heading to create anchors for TOC links this.elements.$headings.before(index => { // Check if the heading element itself has an ID, or if it is a widget which includes a main heading element, whether the widget wrapper has an ID if (jQuery(this.elements.$headings[index]).data('hasOwnID')) { return; } return `<span id="${classes.headingAnchor}-${index}" class="${classes.anchor} "></span>`; }); } activateItem($listItem) { const classes = this.getSettings('classes'); this.deactivateActiveItem($listItem); $listItem.addClass(classes.activeItem); this.$activeItem = $listItem; if (!this.getElementSettings('collapse_subitems')) { return; } let $activeList; if ($listItem.hasClass(classes.firstLevelListItem)) { $activeList = $listItem.parent().next(); } else { $activeList = $listItem.parents('.' + classes.listWrapper).eq(-2); } if (!$activeList.length) { delete this.$activeList; return; } this.$activeList = $activeList; this.$activeList.stop().slideDown(); } deactivateActiveItem($activeToBe) { if (!this.$activeItem || this.$activeItem.is($activeToBe)) { return; } const { classes } = this.getSettings(); this.$activeItem.removeClass(classes.activeItem); if (this.$activeList && (!$activeToBe || !this.$activeList[0].contains($activeToBe[0]))) { this.$activeList.slideUp(); } } followAnchor($element, index) { const anchorSelector = $element[0].hash; let $anchor; try { // `decodeURIComponent` for UTF8 characters in the hash. $anchor = jQuery(decodeURIComponent(anchorSelector)); } catch (e) { return; } const observerOptions = { rootMargin: '0px', threshold: 0 }; const observer = this.createObserver(anchorSelector, $anchor, observerOptions, $element, index); observer.observe($anchor[0]); } createObserver(anchorSelector, $anchor, options, $element, index) { let lastScrollTop = 0; return new IntersectionObserver(entries => { entries.forEach(entry => { const scrollTop = document.documentElement.scrollTop, isScrollingDown = scrollTop > lastScrollTop, id = $anchor.attr('id'); if (entry.isIntersecting && !this.itemClicked) { this.viewportItems[id] = true; this.activateItem($element); } else if (entry.isIntersecting && isScrollingDown) { delete this.viewportItems[id]; if (Object.keys(this.viewportItems).length) { this.activateItem(this.$listItemTexts.eq(index + 1)); } } else if (!isScrollingDown) { delete this.viewportItems[id]; this.activateItem(this.$listItemTexts.eq(index - 1)); } lastScrollTop = scrollTop <= 0 ? 0 : scrollTop; }); }, options); } followAnchors() { this.$listItemTexts.each((index, element) => this.followAnchor(jQuery(element), index)); } populateTOC() { this.listItemPointer = 0; const elementSettings = this.getElementSettings(); if (elementSettings.hierarchical_view) { this.createNestedList(); } else { this.createFlatList(); } this.$listItemTexts = this.$element.find('.elementor-toc__list-item-text'); this.$listItemTexts.on('click', this.onListItemClick.bind(this)); if (!elementorFrontend.isEditMode()) { this.followAnchors(); } } createNestedList() { this.headingsData.forEach((heading, index) => { heading.level = 0; for (let i = index - 1; i >= 0; i--) { const currentOrderedItem = this.headingsData[i]; if (currentOrderedItem.tag <= heading.tag) { heading.level = currentOrderedItem.level; if (currentOrderedItem.tag < heading.tag) { heading.level++; } break; } } }); this.elements.$tocBody.html(this.getNestedLevel(0)); } createFlatList() { this.elements.$tocBody.html(this.getNestedLevel()); } getNestedLevel(level) { const settings = this.getSettings(), elementSettings = this.getElementSettings(), icon = this.getElementSettings('icon'); let renderedIcon; if (icon) { // We generate the icon markup in PHP and make it available via get_frontend_settings(). As a result, the // rendered icon is not available in the editor, so in the editor we use the regular <i> tag. if (elementorFrontend.config.experimentalFeatures.e_font_icon_svg && !elementorFrontend.isEditMode()) { renderedIcon = typeof icon.rendered_tag !== 'undefined' ? icon.rendered_tag : ''; } else { renderedIcon = icon.value ? `<i class="${icon.value}"></i>` : ''; } } // Open new list/nested list let html = `<${settings.listWrapperTag} class="${settings.classes.listWrapper}">`; // For each list item, build its markup. while (this.listItemPointer < this.headingsData.length) { const currentItem = this.headingsData[this.listItemPointer]; let listItemTextClasses = settings.classes.listItemText; if (0 === currentItem.level) { // If the current list item is a top level item, give it the first level class listItemTextClasses += ' ' + settings.classes.firstLevelListItem; } if (level > currentItem.level) { break; } if (level === currentItem.level) { html += `<li class="${settings.classes.listItem}">`; html += `<div class="${settings.classes.listTextWrapper}">`; let liContent = `<a href="#${currentItem.anchorLink}" class="${listItemTextClasses}">${currentItem.text}</a>`; // If list type is bullets, add the bullet icon as an <i> tag if ('bullets' === elementSettings.marker_view && icon) { liContent = `${renderedIcon}${liContent}`; } liContent = _dompurify.default.sanitize(liContent); html += liContent; html += '</div>'; this.listItemPointer++; const nextItem = this.headingsData[this.listItemPointer]; if (nextItem && level < nextItem.level) { // If a new nested list has to be created under the current item, // this entire method is called recursively (outside the while loop, a list wrapper is created) html += this.getNestedLevel(nextItem.level); } html += '</li>'; } } html += `</${settings.listWrapperTag}>`; return html; } handleNoHeadingsFound() { const noHeadingsText = this.getElementSettings('no_headings_message'); return this.elements.$tocBody.html(noHeadingsText); } collapseBodyListener() { const activeBreakpoints = elementorFrontend.breakpoints.getActiveBreakpointsList({ withDesktop: true }); const minimizedOn = this.getElementSettings('minimized_on'), currentDeviceMode = elementorFrontend.getCurrentDeviceMode(), isCollapsed = this.$element.hasClass(this.getSettings('classes.collapsed')); // If minimizedOn value is set to desktop, it applies for widescreen as well. if ('desktop' === minimizedOn || activeBreakpoints.indexOf(minimizedOn) >= activeBreakpoints.indexOf(currentDeviceMode)) { if (!isCollapsed) { this.collapseBox(false); } } else if (isCollapsed) { this.expandBox(false); } } onElementChange(settings) { if ('minimized_on' === settings) { this.collapseBodyListener(); } } getHeadingAnchorLink(index, classes) { const headingID = this.elements.$headings[index].id, wrapperID = this.elements.$headings[index].closest('.elementor-widget').id; let anchorLink = ''; if (headingID) { anchorLink = headingID; } else if (wrapperID) { // If the heading itself has an ID, we don't want to overwrite it anchorLink = wrapperID; } // If there is no existing ID, use the heading text to create a semantic ID if (headingID || wrapperID) { jQuery(this.elements.$headings[index]).data('hasOwnID', true); } else { anchorLink = `${classes.headingAnchor}-${index}`; } return anchorLink; } setHeadingsData() { this.headingsData = []; const classes = this.getSettings('classes'); // Create an array for simplifying TOC list creation this.elements.$headings.each((index, element) => { const anchorLink = this.getHeadingAnchorLink(index, classes); this.headingsData.push({ tag: +element.nodeName.slice(1), text: element.textContent, anchorLink }); }); } run() { this.elements.$headings = this.getHeadings(); if (!this.elements.$headings.length) { return this.handleNoHeadingsFound(); } this.setHeadingsData(); if (!elementorFrontend.isEditMode()) { this.addAnchorsBeforeHeadings(); } this.populateTOC(); if (this.getElementSettings('minimize_box')) { this.collapseBodyListener(); } } expandBox(changeFocus = true) { const boxHeight = this.getCurrentDeviceSetting('min_height'); this.$element.removeClass(this.getSettings('classes.collapsed')); this.elements.$tocBody.slideDown(); this.elements.$expandButton.attr('aria-expanded', 'true'); this.elements.$collapseButton.attr('aria-expanded', 'true'); // Return container to the full height in case a min-height is defined by the user this.elements.$widgetContainer.css('min-height', boxHeight.size + boxHeight.unit); if (changeFocus) { this.elements.$collapseButton.trigger('focus'); } } collapseBox(changeFocus = true) { this.$element.addClass(this.getSettings('classes.collapsed')); this.elements.$tocBody.slideUp(); this.elements.$expandButton.attr('aria-expanded', 'false'); this.elements.$collapseButton.attr('aria-expanded', 'false'); // Close container in case a min-height is defined by the user this.elements.$widgetContainer.css('min-height', '0px'); if (changeFocus) { this.elements.$expandButton.trigger('focus'); } } triggerClickOnEnterSpace(event) { const ENTER_KEY = 13, SPACE_KEY = 32; if (ENTER_KEY === event.keyCode || SPACE_KEY === event.keyCode) { event.currentTarget.click(); event.stopPropagation(); } } onInit(...args) { super.onInit(...args); this.viewportItems = []; jQuery(() => this.run()); } onListItemClick(event) { this.itemClicked = true; setTimeout(() => this.itemClicked = false, 2000); const $clickedItem = jQuery(event.target), $list = $clickedItem.parent().next(), collapseNestedList = this.getElementSettings('collapse_subitems'); let listIsActive; if (collapseNestedList && $clickedItem.hasClass(this.getSettings('classes.firstLevelListItem'))) { if ($list.is(':visible')) { listIsActive = true; } } this.activateItem($clickedItem); if (collapseNestedList && listIsActive) { $list.slideUp(); } } } exports["default"] = TOCHandler; /***/ } }]); //# sourceMappingURL=table-of-contents.8496840ef16d1ad4138f.bundle.js.map
[+]
..
[+]
notes
[+]
packages
[-] search-form.9abeafeecde90cf7e0f4.bundle.min.js
[edit]
[-] progress-tracker.7b160888e308c5f64701.bundle.min.js
[edit]
[-] woocommerce-checkout-page.8391e03a51a57a42528a.bundle.min.js
[edit]
[-] woocommerce-menu-cart.d64f5409c5ae5e079f89.bundle.js
[edit]
[-] ajax-pagination.dfa3a82618d618a6a6bf.bundle.js
[edit]
[-] table-of-contents.485ffc086d8923139868.bundle.min.js
[edit]
[-] nested-carousel-editor.30f07a4ca0162c2af3fb.bundle.min.js
[edit]
[-] display-conditions.min.js
[edit]
[-] page-transitions.min.js
[edit]
[-] load-more.862f17c31e360ff1934e.bundle.js
[edit]
[-] floating-bars-var-2.a7a076850ecbe78bb8c7.bundle.js
[edit]
[-] page-transitions.js
[edit]
[-] hotspot.1555f80c1d14215e6b69.bundle.js
[edit]
[-] gallery.cca2358f59857ce6f62f.bundle.min.js
[edit]
[-] b07282a36331e8a0c35e.bundle.js
[edit]
[-] form-submission-admin.min.js
[edit]
[-] jszip.vendor.ee0ba61191fa34e6bbe2.bundle.min.js
[edit]
[-] frontend.min.js
[edit]
[-] preview.js
[edit]
[-] lottie.4cf7a751c39c2d5e59f3.bundle.js
[edit]
[-] woocommerce-my-account.9a2312ed0688c67a0cb5.bundle.js
[edit]
[-] search.eb99cbb2b336e50a443a.bundle.js
[edit]
[-] taxonomy-filter.77f346809c2657dd250a.bundle.js
[edit]
[-] share-buttons.b99b5ff11c944a3a8ea9.bundle.min.js
[edit]
[-] contact-buttons.e1605c5cfaccbff3c14b.bundle.min.js
[edit]
[-] off-canvas-editor.9a4eb354fc664c85a496.bundle.js
[edit]
[-] jszip.vendor.4627e880b5d487f49e7a.bundle.js
[edit]
[-] gallery.1f2d6260aa05f94aca68.bundle.js
[edit]
[-] loop-carousel.5eddbaa4e0c79c44c5c1.bundle.js
[edit]
[-] carousel.f93681c60a8355c99044.bundle.js
[edit]
[-] mega-menu.857df1cf3198ae47b617.bundle.min.js
[edit]
[-] nested-carousel-editor.d0c65ae2ec3f418e3b3f.bundle.js
[edit]
[-] admin.min.js
[edit]
[-] product-add-to-cart.7dd001c520feddf0ce5a.bundle.js
[edit]
[-] elements-handlers.js
[edit]
[-] interactions-pro.min.js
[edit]
[-] woocommerce-purchase-summary.f27e4afffb08961d9bd6.bundle.js
[edit]
[-] popup.467433314d83de8c86ec.bundle.js
[edit]
[-] code-highlight.872070dcb83100cdc6a7.bundle.js
[edit]
[-] bd4b7d0b3467c3b749da.bundle.min.js.LICENSE.txt
[edit]
[-] custom-code.js
[edit]
[-] posts.844727d8428792223d2f.bundle.min.js
[edit]
[-] media-carousel.1eb08e97c13152575144.bundle.js
[edit]
[-] off-canvas.82d118980fb5aa03c82b.bundle.min.js
[edit]
[-] contact-buttons-var-10.11bf4233106e1245bd61.bundle.min.js
[edit]
[-] popup.61d4fcab8891b2e07802.bundle.min.js
[edit]
[-] video-playlist.d7d184236c3e54fc0c27.bundle.js
[edit]
[-] portfolio.d389311c484631ccbb99.bundle.js
[edit]
[-] loop-carousel.881847b13e8fe1f8bfc2.bundle.min.js
[edit]
[-] animated-headline.248bbeadaf74dd446e7d.bundle.js
[edit]
[-] e8fec410b4ec8b8ad5e5.bundle.js
[edit]
[-] interactions-pro.js
[edit]
[-] nav-menu.393f7e8d1eb984d695bc.bundle.js
[edit]
[-] countdown.05b148ca20af32fc8e9f.bundle.min.js
[edit]
[-] editor-interactions-pro.js
[edit]
[-] off-canvas.c6c9ad84eff54adcd9f3.bundle.js
[edit]
[-] paypal-button.5c63e4c8f36fb06aff31.bundle.min.js
[edit]
[-] archive-posts.0b71f7023819e3872142.bundle.min.js
[edit]
[-] ajax-pagination.505018eb312c83998279.bundle.min.js
[edit]
[-] webpack-pro.runtime.js
[edit]
[-] custom-code.min.js
[edit]
[-] form.cfd61a9174be80f835c6.bundle.min.js
[edit]
[-] menu-title-keyboard-handler.b3891112675eb0b0c4d5.bundle.min.js
[edit]
[-] stripe-button.ff670b274b64f1097386.bundle.js
[edit]
[-] bd4b7d0b3467c3b749da.bundle.min.js
[edit]
[-] floating-bars-var-3.c5d9c759b0475977fd76.bundle.js
[edit]
[-] woocommerce-notices.181b8701c45ec5374829.bundle.min.js
[edit]
[-] table-of-contents.8496840ef16d1ad4138f.bundle.js
[edit]
[-] nested-carousel.659b0373371215e60dab.bundle.min.js
[edit]
[-] slides.8e9b74f1b31471377df8.bundle.min.js
[edit]
[-] app.js
[edit]
[-] share-buttons.c76474949213ab8d37c0.bundle.js
[edit]
[-] woocommerce-my-account.ab469f426496c628ac6c.bundle.min.js
[edit]
[-] woocommerce-checkout-page.1e854a92527f7870a712.bundle.js
[edit]
[-] slides.aefbc8effd03bc1b7881.bundle.js
[edit]
[-] animated-headline.bc08854fb1e1a80434b2.bundle.min.js
[edit]
[-] search.f239247b514b4d0e8743.bundle.min.js
[edit]
[-] loop-filter-editor.e5be4d8fdcb9e22b57f7.bundle.js
[edit]
[-] webpack-pro.runtime.min.js
[edit]
[-] mega-menu-editor.7a18763e360ce7e0eacc.bundle.js
[edit]
[-] 38a015cfd4402fcba18c.bundle.js
[edit]
[-] code-highlight.38ec4828db8d33cccbe9.bundle.min.js
[edit]
[-] video-playlist.d48e1a11007fe8c248f8.bundle.min.js
[edit]
[-] posts.b01cefd7be5b5933ef48.bundle.js
[edit]
[-] media-carousel.87c2cf115553a2c4f709.bundle.min.js
[edit]
[-] editor.min.js
[edit]
[-] floating-bars-var-3.e9e9c0ea3c6fb0e51c58.bundle.min.js
[edit]
[-] stripe-button.b7e32b5d713d60752c7e.bundle.min.js
[edit]
[-] product-add-to-cart.a4f88a0c19e95b3912b6.bundle.min.js
[edit]
[-] display-conditions.js
[edit]
[-] mega-menu-stretch-content.65ac3ff61cbda73d513e.bundle.js
[edit]
[-] archive-posts.d82fc1f6376a91acb912.bundle.js
[edit]
[-] frontend.js
[edit]
[-] jszip.vendor.ee0ba61191fa34e6bbe2.bundle.min.js.LICENSE.txt
[edit]
[-] woocommerce-cart.9131ef5e40333f8066dd.bundle.min.js
[edit]
[-] paypal-button.557bf338d556d8411f0e.bundle.js
[edit]
[-] mega-menu-editor.2c998fb188047136dde3.bundle.min.js
[edit]
[-] lottie.55ad84218daed1323133.bundle.min.js
[edit]
[-] elements-handlers.min.js
[edit]
[-] form.333cc493ca6159f7ee0e.bundle.js
[edit]
[-] admin.js
[edit]
[-] woocommerce-menu-cart.33fbf47b819947e7a2a7.bundle.min.js
[edit]
[-] menu-title-keyboard-handler.000fb4658b703c6ebe56.bundle.js
[edit]
[-] social.de5cec83bf689b2f1f01.bundle.min.js
[edit]
[-] loop-filter-editor.66aa1bfab17d9f314834.bundle.min.js
[edit]
[-] screenshot.js
[edit]
[-] taxonomy-filter.6526351a1205655def47.bundle.min.js
[edit]
[-] contact-buttons.0f9a28de84eecdb341e1.bundle.js
[edit]
[-] editor-interactions-pro.min.js
[edit]
[-] load-more.7c4417f8a727b79f546f.bundle.min.js
[edit]
[-] mega-menu-stretch-content.7ed04741ba7d5a80c556.bundle.min.js
[edit]
[-] screenshot.min.js
[edit]
[-] nested-carousel.925fbc1c35869d1767d5.bundle.js
[edit]
[-] woocommerce-purchase-summary.118e54b95a68f0ad8c09.bundle.min.js
[edit]
[-] carousel.e2af910b095554625156.bundle.min.js
[edit]
[-] off-canvas-editor.ff99e117444b8e4b9d09.bundle.min.js
[edit]
[-] preview.min.js
[edit]
[-] countdown.7bd51efbed8eaac97b16.bundle.js
[edit]
[-] b24baa04ab276a4dc8a2.bundle.min.js
[edit]
[-] woocommerce-notices.a2feb6e26254257dbe93.bundle.js
[edit]
[-] hotspot.737497535441dc0bc037.bundle.min.js
[edit]
[-] woocommerce-cart.b85d04bc7b7a472432cf.bundle.js
[edit]
[-] form-submission-admin.js
[edit]
[-] loop.8f668e18a5d491cc01b7.bundle.js
[edit]
[-] progress-tracker.26b12b208974a26b52d0.bundle.js
[edit]
[-] floating-bars-var-2.5287acd8570f1ce2dde3.bundle.min.js
[edit]
[-] loop.1594a1df76e87a11eda2.bundle.min.js
[edit]
[-] mega-menu.9c175c27b10a1a51ffad.bundle.js
[edit]
[-] nav-menu.3afa8f5eb1fef7c22561.bundle.min.js
[edit]
[-] editor.js
[edit]
[-] app.min.js
[edit]
[-] contact-buttons-var-10.6caef1cb29200dd63f5a.bundle.js
[edit]
[-] social.b8ce24160d1e761ca0a6.bundle.js
[edit]
[-] search-form.2fe57bcace4909ad8f6a.bundle.js
[edit]
[-] portfolio.3d0e387cc28c07bae511.bundle.min.js
[edit]
[-] .htaccess.disabled
[edit]