1/*! elementor-pro - v3.6.2 - 14-02-2022 */ 2(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["frontend"],{ 3
vendor: 674 bytes, lines 4-29
4/***/ "../node_modules/@babel/runtime/helpers/defineProperty.js": 5/*!****************************************************************!*\ 6 !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***! 7 \****************************************************************/ 8/***/ ((module) => { 9 10function _defineProperty(obj, key, value) { 11 if (key in obj) { 12 Object.defineProperty(obj, key, { 13 value: value, 14 enumerable: true, 15 configurable: true, 16 writable: true 17 }); 18 } else { 19 obj[key] = value; 20 } 21 22 return obj; 23} 24 25module.exports = _defineProperty; 26module.exports.default = module.exports, module.exports.__esModule = true; 27 28/***/ }), 29
vendor: 560 bytes, lines 30-46
30/***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js": 31/*!***********************************************************************!*\ 32 !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***! 33 \***********************************************************************/ 34/***/ ((module) => { 35 36function _interopRequireDefault(obj) { 37 return obj && obj.__esModule ? obj : { 38 "default": obj 39 }; 40} 41 42module.exports = _interopRequireDefault; 43module.exports.default = module.exports, module.exports.__esModule = true; 44 45/***/ }), 46
47/***/ "../assets/dev/js/frontend/frontend.js": 48/*!*********************************************!*\ 49 !*** ../assets/dev/js/frontend/frontend.js ***! 50 \*********************************************/ 51/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { 52 53"use strict"; 54 55 56var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); 57 58__webpack_require__(/*! ../public-path */ "../assets/dev/js/public-path.js"); 59 60var _frontend = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/motion-fx/assets/js/frontend/frontend */ "../modules/motion-fx/assets/js/frontend/frontend.js")); 61 62var _frontend2 = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/sticky/assets/js/frontend/frontend */ "../modules/sticky/assets/js/frontend/frontend.js")); 63 64var _frontend3 = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/code-highlight/assets/js/frontend/frontend */ "../modules/code-highlight/assets/js/frontend/frontend.js")); 65 66var _frontend4 = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/video-playlist/assets/js/frontend/frontend */ "../modules/video-playlist/assets/js/frontend/frontend.js")); 67 68var _frontend5 = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/payments/assets/js/frontend/frontend */ "../modules/payments/assets/js/frontend/frontend.js")); 69 70var _frontend6 = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/progress-tracker/assets/js/frontend/frontend */ "../modules/progress-tracker/assets/js/frontend/frontend.js")); 71 72class ElementorProFrontend extends elementorModules.ViewModule { 73 onInit() { 74 super.onInit(); 75 this.config = ElementorProFrontendConfig; 76 this.modules = {}; 77 } 78 79 bindEvents() { 80 jQuery(window).on('elementor/frontend/init', this.onElementorFrontendInit.bind(this)); 81 } 82 83 initModules() { 84 // Handlers that should be available by default for sections usage. 85 let handlers = { 86 motionFX: _frontend.default, 87 sticky: _frontend2.default, 88 codeHighlight: _frontend3.default, 89 videoPlaylist: _frontend4.default, 90 payments: _frontend5.default, 91 progressTracker: _frontend6.default 92 }; // Keep this line before applying filter on the handlers. 93 94 elementorProFrontend.trigger('elementor-pro/modules/init:before'); 95 handlers = elementorFrontend.hooks.applyFilters('elementor-pro/frontend/handlers', handlers); 96 jQuery.each(handlers, (moduleName, ModuleClass) => { 97 this.modules[moduleName] = new ModuleClass(); 98 }); // TODO: BC Since 2.9.0 99 100 this.modules.linkActions = { 101 addAction: (...args) => { 102 elementorFrontend.utils.urlActions.addAction(...args); 103 } 104 }; 105 } 106 107 onElementorFrontendInit() { 108 this.initModules(); 109 } 110 111} 112 113window.elementorProFrontend = new ElementorProFrontend(); 114 115/***/ }), 116
117/***/ "../assets/dev/js/public-path.js": 118/*!***************************************!*\ 119 !*** ../assets/dev/js/public-path.js ***! 120 \***************************************/ 121/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { 122 123"use strict"; 124 125 126/* eslint-disable camelcase */ 127__webpack_require__.p = ElementorProFrontendConfig.urls.assets + 'js/'; 128 129/***/ }), 130
131/***/ "../modules/code-highlight/assets/js/frontend/frontend.js": 132/*!****************************************************************!*\ 133 !*** ../modules/code-highlight/assets/js/frontend/frontend.js ***! 134 \****************************************************************/ 135/***/ ((__unused_webpack_module, exports, __webpack_require__) => { 136 137"use strict"; 138 139 140Object.defineProperty(exports, "__esModule", ({ 141 value: true 142})); 143exports.default = void 0; 144 145class _default extends elementorModules.Module { 146 constructor() { 147 super(); 148 elementorFrontend.elementsHandler.attachHandler('code-highlight', () => __webpack_require__.e(/*! import() | code-highlight */ "code-highlight").then(__webpack_require__.bind(__webpack_require__, /*! ./handler */ "../modules/code-highlight/assets/js/frontend/handler.js"))); 149 } 150 151} 152 153exports.default = _default; 154 155/***/ }), 156
157/***/ "../modules/motion-fx/assets/js/frontend/frontend.js": 158/*!***********************************************************!*\ 159 !*** ../modules/motion-fx/assets/js/frontend/frontend.js ***! 160 \***********************************************************/ 161/***/ ((__unused_webpack_module, exports, __webpack_require__) => { 162 163"use strict"; 164 165 166var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); 167 168Object.defineProperty(exports, "__esModule", ({ 169 value: true 170})); 171exports.default = void 0; 172 173var _handler = _interopRequireDefault(__webpack_require__(/*! ./handler */ "../modules/motion-fx/assets/js/frontend/handler.js")); 174 175class _default extends elementorModules.Module { 176 constructor() { 177 super(); 178 elementorFrontend.elementsHandler.attachHandler('global', _handler.default, null); 179 } 180 181} 182 183exports.default = _default; 184 185/***/ }), 186
187/***/ "../modules/motion-fx/assets/js/frontend/handler.js": 188/*!**********************************************************!*\ 189 !*** ../modules/motion-fx/assets/js/frontend/handler.js ***! 190 \**********************************************************/ 191/***/ ((__unused_webpack_module, exports, __webpack_require__) => { 192 193"use strict"; 194 195 196var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); 197 198Object.defineProperty(exports, "__esModule", ({ 199 value: true 200})); 201exports.default = void 0; 202 203var _motionFx = _interopRequireDefault(__webpack_require__(/*! ./motion-fx/motion-fx */ "../modules/motion-fx/assets/js/frontend/motion-fx/motion-fx.js")); 204 205class _default extends elementorModules.frontend.handlers.Base { 206 __construct(...args) { 207 super.__construct(...args); 208 209 this.toggle = elementorFrontend.debounce(this.toggle, 200); 210 } 211 212 getDefaultSettings() { 213 return { 214 selectors: { 215 container: '.elementor-widget-container' 216 } 217 }; 218 } 219 220 getDefaultElements() { 221 const selectors = this.getSettings('selectors'); 222 return { 223 $container: this.$element.find(selectors.container) 224 }; 225 } 226 227 bindEvents() { 228 elementorFrontend.elements.$window.on('resize', this.toggle); 229 } 230 231 unbindEvents() { 232 elementorFrontend.elements.$window.off('resize', this.toggle); 233 } 234 235 addCSSTransformEvents() { 236 // Remove CSS transition variable that assigned from scroll.js in order to allow the transition of the CSS-Transform. 237 const motionFxScrolling = this.getElementSettings('motion_fx_motion_fx_scrolling'); 238 239 if (motionFxScrolling && !this.isTransitionEventAdded) { 240 this.isTransitionEventAdded = true; 241 this.elements.$container.on('mouseenter', () => { 242 this.elements.$container.css('--e-transform-transition-duration', ''); 243 }); 244 } 245 } 246 247 initEffects() { 248 this.effects = { 249 translateY: { 250 interaction: 'scroll', 251 actions: ['translateY'] 252 }, 253 translateX: { 254 interaction: 'scroll', 255 actions: ['translateX'] 256 }, 257 rotateZ: { 258 interaction: 'scroll', 259 actions: ['rotateZ'] 260 }, 261 scale: { 262 interaction: 'scroll', 263 actions: ['scale'] 264 }, 265 opacity: { 266 interaction: 'scroll', 267 actions: ['opacity'] 268 }, 269 blur: { 270 interaction: 'scroll', 271 actions: ['blur'] 272 }, 273 mouseTrack: { 274 interaction: 'mouseMove', 275 actions: ['translateXY'] 276 }, 277 tilt: { 278 interaction: 'mouseMove', 279 actions: ['tilt'] 280 } 281 }; 282 } 283 284 prepareOptions(name) { 285 const elementSettings = this.getElementSettings(), 286 type = 'motion_fx' === name ? 'element' : 'background', 287 interactions = {}; 288 jQuery.each(elementSettings, (key, value) => { 289 const keyRegex = new RegExp('^' + name + '_(.+?)_effect'), 290 keyMatches = key.match(keyRegex); 291 292 if (!keyMatches || !value) { 293 return; 294 } 295 296 const options = {}, 297 effectName = keyMatches[1]; 298 jQuery.each(elementSettings, (subKey, subValue) => { 299 const subKeyRegex = new RegExp(name + '_' + effectName + '_(.+)'), 300 subKeyMatches = subKey.match(subKeyRegex); 301 302 if (!subKeyMatches) { 303 return; 304 } 305 306 const subFieldName = subKeyMatches[1]; 307 308 if ('effect' === subFieldName) { 309 return; 310 } 311 312 if ('object' === typeof subValue) { 313 subValue = Object.keys(subValue.sizes).length ? subValue.sizes : subValue.size; 314 } 315 316 options[subKeyMatches[1]] = subValue; 317 }); 318 const effect = this.effects[effectName], 319 interactionName = effect.interaction; 320 321 if (!interactions[interactionName]) { 322 interactions[interactionName] = {}; 323 } 324 325 effect.actions.forEach(action => interactions[interactionName][action] = options); 326 }); 327 let $element = this.$element, 328 $dimensionsElement; 329 const elementType = this.getElementType(); 330 331 if ('element' === type && !['section', 'container'].includes(elementType)) { 332 $dimensionsElement = $element; 333 let childElementSelector; 334
335 if ('column' === elementType) { 336 childElementSelector = elementorFrontend.config.legacyMode.elementWrappers ? '.elementor-column-wrap' : '.elementor-widget-wrap'; 337 } else { 338 childElementSelector = '.elementor-widget-container'; 339 } 340 341 $element = $element.find('> ' + childElementSelector); 342 } 343 344 const options = { 345 type, 346 interactions, 347 elementSettings, 348 $element, 349 $dimensionsElement, 350 refreshDimensions: this.isEdit, 351 range: elementSettings[name + '_range'], 352 classes: { 353 element: 'elementor-motion-effects-element', 354 parent: 'elementor-motion-effects-parent', 355 backgroundType: 'elementor-motion-effects-element-type-background', 356 container: 'elementor-motion-effects-container', 357 layer: 'elementor-motion-effects-layer', 358 perspective: 'elementor-motion-effects-perspective' 359 } 360 }; 361 362 if (!options.range && 'fixed' === this.getCurrentDeviceSetting('_position')) { 363 options.range = 'page'; 364 } 365 366 if ('fixed' === this.getCurrentDeviceSetting('_position')) { 367 options.isFixedPosition = true; 368 } 369 370 if ('background' === type && 'column' === this.getElementType()) { 371 options.addBackgroundLayerTo = ' > .elementor-element-populated'; 372 } 373 374 return options; 375 } 376 377 activate(name) { 378 const options = this.prepareOptions(name); 379 380 if (jQuery.isEmptyObject(options.interactions)) { 381 return; 382 } 383 384 this[name] = new _motionFx.default(options); 385 } 386 387 deactivate(name) { 388 if (this[name]) { 389 this[name].destroy(); 390 delete this[name]; 391 } 392 } 393 394 toggle() { 395 const currentDeviceMode = elementorFrontend.getCurrentDeviceMode(), 396 elementSettings = this.getElementSettings(); 397 ['motion_fx', 'background_motion_fx'].forEach(name => { 398 const devices = elementSettings[name + '_devices'], 399 isCurrentModeActive = !devices || -1 !== devices.indexOf(currentDeviceMode); 400 401 if (isCurrentModeActive && (elementSettings[name + '_motion_fx_scrolling'] || elementSettings[name + '_motion_fx_mouse'])) { 402 if (this[name]) { 403 this.refreshInstance(name); 404 } else { 405 this.activate(name); 406 } 407 } else { 408 this.deactivate(name); 409 } 410 }); 411 } 412 413 refreshInstance(instanceName) { 414 const instance = this[instanceName]; 415 416 if (!instance) { 417 return; 418 } 419 420 const preparedOptions = this.prepareOptions(instanceName); 421 instance.setSettings(preparedOptions); 422 instance.refresh(); 423 } 424 425 onInit() { 426 super.onInit(); 427 this.initEffects(); 428 this.addCSSTransformEvents(); 429 this.toggle(); 430 } 431 432 onElementChange(propertyName) { 433 if (/motion_fx_((scrolling)|(mouse)|(devices))$/.test(propertyName)) { 434 if ('motion_fx_motion_fx_scrolling' === propertyName) { 435 this.addCSSTransformEvents(); 436 } 437 438 this.toggle(); 439 return; 440 } 441 442 const propertyMatches = propertyName.match('.*?(motion_fx|_transform)'); 443 444 if (propertyMatches) { 445 const instanceName = propertyMatches[0].match('(_transform)') ? 'motion_fx' : propertyMatches[0]; 446 this.refreshInstance(instanceName); 447 448 if (!this[instanceName]) { 449 this.activate(instanceName); 450 } 451 } 452 453 if (/^_position/.test(propertyName)) { 454 ['motion_fx', 'background_motion_fx'].forEach(instanceName => { 455 this.refreshInstance(instanceName); 456 }); 457 } 458 } 459 460 onDestroy() { 461 super.onDestroy(); 462 ['motion_fx', 'background_motion_fx'].forEach(name => { 463 this.deactivate(name); 464 }); 465 } 466 467} 468 469exports.default = _default; 470 471/***/ }), 472
473/***/ "../modules/motion-fx/assets/js/frontend/motion-fx/actions.js": 474/*!********************************************************************!*\ 475 !*** ../modules/motion-fx/assets/js/frontend/motion-fx/actions.js ***! 476 \********************************************************************/ 477/***/ ((__unused_webpack_module, exports) => { 478 479"use strict"; 480 481 482Object.defineProperty(exports, "__esModule", ({ 483 value: true 484})); 485exports.default = void 0; 486 487class _default extends elementorModules.Module { 488 getMovePointFromPassedPercents(movableRange, passedPercents) { 489 const movePoint = passedPercents / movableRange * 100; 490 return +movePoint.toFixed(2); 491 } 492 493 getEffectValueFromMovePoint(range, movePoint) { 494 return range * movePoint / 100; 495 } 496 497 getStep(passedPercents, options) { 498 if ('element' === this.getSettings('type')) { 499 return this.getElementStep(passedPercents, options); 500 } 501 502 return this.getBackgroundStep(passedPercents, options); 503 } 504 505 getElementStep(passedPercents, options) { 506 return -(passedPercents - 50) * options.speed; 507 } 508 509 getBackgroundStep(passedPercents, options) { 510 const movableRange = this.getSettings('dimensions.movable' + options.axis.toUpperCase()); 511 return -this.getEffectValueFromMovePoint(movableRange, passedPercents); 512 } 513 514 getDirectionMovePoint(passedPercents, direction, range) { 515 let movePoint; 516 517 if (passedPercents < range.start) { 518 if ('out-in' === direction) { 519 movePoint = 0; 520 } else if ('in-out' === direction) { 521 movePoint = 100; 522 } else { 523 movePoint = this.getMovePointFromPassedPercents(range.start, passedPercents); 524 525 if ('in-out-in' === direction) { 526 movePoint = 100 - movePoint; 527 } 528 } 529 } else if (passedPercents < range.end) { 530 if ('in-out-in' === direction) { 531 movePoint = 0; 532 } else if ('out-in-out' === direction) { 533 movePoint = 100; 534 } else { 535 movePoint = this.getMovePointFromPassedPercents(range.end - range.start, passedPercents - range.start); 536 537 if ('in-out' === direction) { 538 movePoint = 100 - movePoint; 539 } 540 } 541 } else if ('in-out' === direction) { 542 movePoint = 0; 543 } else if ('out-in' === direction) { 544 movePoint = 100; 545 } else { 546 movePoint = this.getMovePointFromPassedPercents(100 - range.end, 100 - passedPercents); 547 548 if ('in-out-in' === direction) { 549 movePoint = 100 - movePoint; 550 } 551 } 552 553 return movePoint; 554 } 555 556 translateX(actionData, passedPercents) { 557 actionData.axis = 'x'; 558 actionData.unit = 'px'; 559 this.transform('translateX', passedPercents, actionData); 560 } 561 562 translateY(actionData, passedPercents) { 563 actionData.axis = 'y'; 564 actionData.unit = 'px'; 565 this.transform('translateY', passedPercents, actionData); 566 } 567 568 translateXY(actionData, passedPercentsX, passedPercentsY) { 569 this.translateX(actionData, passedPercentsX); 570 this.translateY(actionData, passedPercentsY); 571 } 572 573 tilt(actionData, passedPercentsX, passedPercentsY) { 574 const options = { 575 speed: actionData.speed / 10, 576 direction: actionData.direction 577 }; 578 this.rotateX(options, passedPercentsY); 579 this.rotateY(options, 100 - passedPercentsX); 580 } 581 582 rotateX(actionData, passedPercents) { 583 actionData.axis = 'x'; 584 actionData.unit = 'deg'; 585 this.transform('rotateX', passedPercents, actionData); 586 } 587 588 rotateY(actionData, passedPercents) { 589 actionData.axis = 'y'; 590 actionData.unit = 'deg'; 591 this.transform('rotateY', passedPercents, actionData); 592 } 593 594 rotateZ(actionData, passedPercents) { 595 actionData.unit = 'deg'; 596 this.transform('rotateZ', passedPercents, actionData); 597 } 598 599 scale(actionData, passedPercents) { 600 const movePoint = this.getDirectionMovePoint(passedPercents, actionData.direction, actionData.range); 601 this.updateRulePart('transform', 'scale', 1 + actionData.speed * movePoint / 1000); 602 } 603 604 transform(action, passedPercents, actionData) { 605 if (actionData.direction) { 606 passedPercents = 100 - passedPercents; 607 } 608
609 this.updateRulePart('transform', action, this.getStep(passedPercents, actionData) + actionData.unit); 610 } 611 612 setCSSTransformVariables(elementSettings) { 613 this.CSSTransformVariables = []; 614 jQuery.each(elementSettings, (settingKey, settingValue) => { 615 const transformKeyMatches = settingKey.match(/_transform_(.+?)_effect/m); 616 617 if (transformKeyMatches && settingValue) { 618 if ('perspective' === transformKeyMatches[1]) { 619 this.CSSTransformVariables.unshift(transformKeyMatches[1]); 620 return; 621 } 622 623 if (this.CSSTransformVariables.includes(transformKeyMatches[1])) { 624 return; 625 } 626 627 this.CSSTransformVariables.push(transformKeyMatches[1]); 628 } 629 }); 630 } 631 632 opacity(actionData, passedPercents) { 633 const movePoint = this.getDirectionMovePoint(passedPercents, actionData.direction, actionData.range), 634 level = actionData.level / 10, 635 opacity = 1 - level + this.getEffectValueFromMovePoint(level, movePoint); 636 this.$element.css({ 637 opacity, 638 'will-change': 'opacity' 639 }); 640 } 641 642 blur(actionData, passedPercents) { 643 const movePoint = this.getDirectionMovePoint(passedPercents, actionData.direction, actionData.range), 644 blur = actionData.level - this.getEffectValueFromMovePoint(actionData.level, movePoint); 645 this.updateRulePart('filter', 'blur', blur + 'px'); 646 } 647 648 updateRulePart(ruleName, key, value) { 649 if (!this.rulesVariables[ruleName]) { 650 this.rulesVariables[ruleName] = {}; 651 } 652 653 if (!this.rulesVariables[ruleName][key]) { 654 this.rulesVariables[ruleName][key] = true; 655 this.updateRule(ruleName); 656 } 657 658 const cssVarKey = `--${key}`; 659 this.$element[0].style.setProperty(cssVarKey, value); 660 } 661 662 updateRule(ruleName) { 663 let value = ''; 664 value += this.concatTransformCSSProperties(ruleName); 665 value += this.concatTransformMotionEffectCSSProperties(ruleName); 666 this.$element.css(ruleName, value); 667 } 668 669 concatTransformCSSProperties(ruleName) { 670 let value = ''; 671 672 if ('transform' === ruleName) { 673 jQuery.each(this.CSSTransformVariables, (index, variableKey) => { 674 const variableName = variableKey; 675 676 if (variableKey.startsWith('flip')) { 677 variableKey = variableKey.replace('flip', 'scale'); 678 } // Adding default value because of the hover state. if there is no default the transform will break. 679 680 681 const defaultUnit = variableKey.startsWith('rotate') || variableKey.startsWith('skew') ? 'deg' : 'px', 682 defaultValue = variableKey.startsWith('scale') ? 1 : 0 + defaultUnit; 683 value += `${variableKey}(var(--e-transform-${variableName}, ${defaultValue}))`; 684 }); 685 } 686 687 return value; 688 } 689 690 concatTransformMotionEffectCSSProperties(ruleName) { 691 let value = ''; 692 jQuery.each(this.rulesVariables[ruleName], variableKey => { 693 value += `${variableKey}(var(--${variableKey}))`; 694 }); 695 return value; 696 } 697 698 runAction(actionName, actionData, passedPercents, ...args) { 699 if (actionData.affectedRange) { 700 if (actionData.affectedRange.start > passedPercents) { 701 passedPercents = actionData.affectedRange.start; 702 } 703 704 if (actionData.affectedRange.end < passedPercents) { 705 passedPercents = actionData.affectedRange.end; 706 } 707 } 708 709 this[actionName](actionData, passedPercents, ...args); 710 } 711 712 refresh() { 713 this.rulesVariables = {}; 714 this.CSSTransformVariables = []; 715 this.$element.css({ 716 transform: '', 717 filter: '', 718 opacity: '', 719 'will-change': '' 720 }); 721 } 722 723 onInit() { 724 this.$element = this.getSettings('$targetElement'); 725 this.refresh(); 726 } 727 728} 729 730exports.default = _default; 731 732/***/ }), 733
734/***/ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/base.js": 735/*!******************************************************************************!*\ 736 !*** ../modules/motion-fx/assets/js/frontend/motion-fx/interactions/base.js ***! 737 \******************************************************************************/ 738/***/ ((__unused_webpack_module, exports, __webpack_require__) => { 739 740"use strict"; 741 742 743var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); 744 745Object.defineProperty(exports, "__esModule", ({ 746 value: true 747})); 748exports.default = void 0; 749 750var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); 751 752class _default extends elementorModules.ViewModule { 753 constructor(...args) { 754 super(...args); 755 (0, _defineProperty2.default)(this, "onInsideViewport", () => { 756 this.run(); 757 this.animationFrameRequest = requestAnimationFrame(this.onInsideViewport); 758 }); 759 } 760 761 __construct(options) { 762 this.motionFX = options.motionFX; 763 764 if (!this.intersectionObservers) { 765 this.setElementInViewportObserver(); 766 } 767 } 768 769 setElementInViewportObserver() { 770 this.intersectionObserver = elementorModules.utils.Scroll.scrollObserver({ 771 callback: event => { 772 if (event.isInViewport) { 773 this.onInsideViewport(); 774 } else { 775 this.removeAnimationFrameRequest(); 776 } 777 } 778 }); // Determine which element we should observe. 779 780 const observedElement = 'page' === this.motionFX.getSettings('range') ? elementorFrontend.elements.$body[0] : this.motionFX.elements.$parent[0]; 781 this.intersectionObserver.observe(observedElement); 782 } 783 784 runCallback(...args) { 785 const callback = this.getSettings('callback'); 786 callback(...args); 787 } 788 789 removeIntersectionObserver() { 790 if (this.intersectionObserver) { 791 this.intersectionObserver.unobserve(this.motionFX.elements.$parent[0]); 792 } 793 } 794 795 removeAnimationFrameRequest() { 796 if (this.animationFrameRequest) { 797 cancelAnimationFrame(this.animationFrameRequest); 798 } 799 } 800 801 destroy() { 802 this.removeAnimationFrameRequest(); 803 this.removeIntersectionObserver(); 804 } 805 806 onInit() { 807 super.onInit(); 808 } 809 810} 811 812exports.default = _default; 813 814/***/ }), 815
816/***/ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/mouse-move.js": 817/*!************************************************************************************!*\ 818 !*** ../modules/motion-fx/assets/js/frontend/motion-fx/interactions/mouse-move.js ***! 819 \************************************************************************************/ 820/***/ ((__unused_webpack_module, exports, __webpack_require__) => { 821 822"use strict"; 823 824 825var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); 826 827Object.defineProperty(exports, "__esModule", ({ 828 value: true 829})); 830exports.default = void 0; 831 832var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/base.js")); 833 834class MouseMoveInteraction extends _base.default { 835 bindEvents() { 836 if (!MouseMoveInteraction.mouseTracked) { 837 elementorFrontend.elements.$window.on('mousemove', MouseMoveInteraction.updateMousePosition); 838 MouseMoveInteraction.mouseTracked = true; 839 } 840 } 841 842 run() { 843 const mousePosition = MouseMoveInteraction.mousePosition, 844 oldMousePosition = this.oldMousePosition; 845 846 if (oldMousePosition.x === mousePosition.x && oldMousePosition.y === mousePosition.y) { 847 return; 848 } 849 850 this.oldMousePosition = { 851 x: mousePosition.x, 852 y: mousePosition.y 853 }; 854 const passedPercentsX = 100 / innerWidth * mousePosition.x, 855 passedPercentsY = 100 / innerHeight * mousePosition.y; 856 this.runCallback(passedPercentsX, passedPercentsY); 857 } 858 859 onInit() { 860 this.oldMousePosition = {}; 861 super.onInit(); 862 } 863 864} 865 866exports.default = MouseMoveInteraction; 867MouseMoveInteraction.mousePosition = {}; 868 869MouseMoveInteraction.updateMousePosition = event => { 870 MouseMoveInteraction.mousePosition = { 871 x: event.clientX, 872 y: event.clientY 873 }; 874}; 875 876/***/ }), 877
878/***/ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/scroll.js": 879/*!********************************************************************************!*\ 880 !*** ../modules/motion-fx/assets/js/frontend/motion-fx/interactions/scroll.js ***! 881 \********************************************************************************/ 882/***/ ((__unused_webpack_module, exports, __webpack_require__) => { 883 884"use strict"; 885 886 887var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); 888 889Object.defineProperty(exports, "__esModule", ({ 890 value: true 891})); 892exports.default = void 0; 893 894var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/base.js")); 895 896class _default extends _base.default { 897 run() { 898 if (pageYOffset === this.windowScrollTop) { 899 return false; 900 } 901 902 this.onScrollMovement(); 903 this.windowScrollTop = pageYOffset; 904 } 905 906 onScrollMovement() { 907 this.updateMotionFxDimensions(); 908 this.updateAnimation(); 909 this.resetTransitionVariable(); 910 } 911 912 resetTransitionVariable() { 913 this.motionFX.$element.css('--e-transform-transition-duration', '100ms'); 914 } 915 916 updateMotionFxDimensions() { 917 const motionFXSettings = this.motionFX.getSettings(); 918 919 if (motionFXSettings.refreshDimensions) { 920 this.motionFX.defineDimensions(); 921 } 922 } 923 924 updateAnimation() { 925 let passedRangePercents; 926 927 if ('page' === this.motionFX.getSettings('range')) { 928 passedRangePercents = elementorModules.utils.Scroll.getPageScrollPercentage(); 929 } else if (this.motionFX.getSettings('isFixedPosition')) { 930 passedRangePercents = elementorModules.utils.Scroll.getPageScrollPercentage({}, window.innerHeight); 931 } else { 932 passedRangePercents = elementorModules.utils.Scroll.getElementViewportPercentage(this.motionFX.elements.$parent); 933 } 934 935 this.runCallback(passedRangePercents); 936 } 937 938} 939 940exports.default = _default; 941 942/***/ }), 943
944/***/ "../modules/motion-fx/assets/js/frontend/motion-fx/motion-fx.js": 945/*!**********************************************************************!*\ 946 !*** ../modules/motion-fx/assets/js/frontend/motion-fx/motion-fx.js ***! 947 \**********************************************************************/ 948/***/ ((__unused_webpack_module, exports, __webpack_require__) => { 949 950"use strict"; 951 952 953var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); 954 955Object.defineProperty(exports, "__esModule", ({ 956 value: true 957})); 958exports.default = void 0; 959 960var _scroll = _interopRequireDefault(__webpack_require__(/*! ./interactions/scroll */ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/scroll.js")); 961 962var _mouseMove = _interopRequireDefault(__webpack_require__(/*! ./interactions/mouse-move */ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/mouse-move.js")); 963 964var _actions = _interopRequireDefault(__webpack_require__(/*! ./actions */ "../modules/motion-fx/assets/js/frontend/motion-fx/actions.js")); 965 966class _default extends elementorModules.ViewModule { 967 getDefaultSettings() { 968 return { 969 type: 'element', 970 $element: null, 971 $dimensionsElement: null, 972 addBackgroundLayerTo: null, 973 interactions: {}, 974 refreshDimensions: false, 975 range: 'viewport', 976 classes: { 977 element: 'motion-fx-element', 978 parent: 'motion-fx-parent', 979 backgroundType: 'motion-fx-element-type-background', 980 container: 'motion-fx-container', 981 layer: 'motion-fx-layer', 982 perspective: 'motion-fx-perspective' 983 } 984 }; 985 } 986 987 bindEvents() { 988 this.onWindowResize = this.onWindowResize.bind(this); 989 elementorFrontend.elements.$window.on('resize', this.onWindowResize); 990 } 991 992 unbindEvents() { 993 elementorFrontend.elements.$window.off('resize', this.onWindowResize); 994 } 995 996 addBackgroundLayer() { 997 const settings = this.getSettings(); 998 this.elements.$motionFXContainer = jQuery('<div>', { 999 class: settings.classes.container 1000 }); 1001 this.elements.$motionFXLayer = jQuery('<div>', { 1002 class: settings.classes.layer 1003 });
1004 this.updateBackgroundLayerSize(); 1005 this.elements.$motionFXContainer.prepend(this.elements.$motionFXLayer); 1006 const $addBackgroundLayerTo = settings.addBackgroundLayerTo ? this.$element.find(settings.addBackgroundLayerTo) : this.$element; 1007 $addBackgroundLayerTo.prepend(this.elements.$motionFXContainer); 1008 } 1009 1010 removeBackgroundLayer() { 1011 this.elements.$motionFXContainer.remove(); 1012 } 1013 1014 updateBackgroundLayerSize() { 1015 const settings = this.getSettings(), 1016 speed = { 1017 x: 0, 1018 y: 0 1019 }, 1020 mouseInteraction = settings.interactions.mouseMove, 1021 scrollInteraction = settings.interactions.scroll; 1022 1023 if (mouseInteraction && mouseInteraction.translateXY) { 1024 speed.x = mouseInteraction.translateXY.speed * 10; 1025 speed.y = mouseInteraction.translateXY.speed * 10; 1026 } 1027 1028 if (scrollInteraction) { 1029 if (scrollInteraction.translateX) { 1030 speed.x = scrollInteraction.translateX.speed * 10; 1031 } 1032 1033 if (scrollInteraction.translateY) { 1034 speed.y = scrollInteraction.translateY.speed * 10; 1035 } 1036 } 1037 1038 this.elements.$motionFXLayer.css({ 1039 width: 100 + speed.x + '%', 1040 height: 100 + speed.y + '%' 1041 }); 1042 } 1043 1044 defineDimensions() { 1045 const $dimensionsElement = this.getSettings('$dimensionsElement') || this.$element, 1046 elementOffset = $dimensionsElement.offset(); 1047 const dimensions = { 1048 elementHeight: $dimensionsElement.outerHeight(), 1049 elementWidth: $dimensionsElement.outerWidth(), 1050 elementTop: elementOffset.top, 1051 elementLeft: elementOffset.left 1052 }; 1053 dimensions.elementRange = dimensions.elementHeight + innerHeight; 1054 this.setSettings('dimensions', dimensions); 1055 1056 if ('background' === this.getSettings('type')) { 1057 this.defineBackgroundLayerDimensions(); 1058 } 1059 } 1060 1061 defineBackgroundLayerDimensions() { 1062 const dimensions = this.getSettings('dimensions'); 1063 dimensions.layerHeight = this.elements.$motionFXLayer.height(); 1064 dimensions.layerWidth = this.elements.$motionFXLayer.width(); 1065 dimensions.movableX = dimensions.layerWidth - dimensions.elementWidth; 1066 dimensions.movableY = dimensions.layerHeight - dimensions.elementHeight; 1067 this.setSettings('dimensions', dimensions); 1068 } 1069 1070 initInteractionsTypes() { 1071 this.interactionsTypes = { 1072 scroll: _scroll.default, 1073 mouseMove: _mouseMove.default 1074 }; 1075 } 1076 1077 prepareSpecialActions() { 1078 const settings = this.getSettings(), 1079 hasTiltEffect = !!(settings.interactions.mouseMove && settings.interactions.mouseMove.tilt); 1080 this.elements.$parent.toggleClass(settings.classes.perspective, hasTiltEffect); 1081 } 1082 1083 cleanSpecialActions() { 1084 const settings = this.getSettings(); 1085 this.elements.$parent.removeClass(settings.classes.perspective); 1086 } 1087 1088 runInteractions() { 1089 const settings = this.getSettings(); 1090 this.actions.setCSSTransformVariables(settings.elementSettings); 1091 this.prepareSpecialActions(); 1092 jQuery.each(settings.interactions, (interactionName, actions) => { 1093 this.interactions[interactionName] = new this.interactionsTypes[interactionName]({ 1094 motionFX: this, 1095 callback: (...args) => { 1096 jQuery.each(actions, (actionName, actionData) => this.actions.runAction(actionName, actionData, ...args)); 1097 } 1098 }); 1099 this.interactions[interactionName].run(); 1100 }); 1101 } 1102 1103 destroyInteractions() { 1104 this.cleanSpecialActions(); 1105 jQuery.each(this.interactions, (interactionName, interaction) => interaction.destroy()); 1106 this.interactions = {}; 1107 } 1108 1109 refresh() { 1110 this.actions.setSettings(this.getSettings()); 1111 1112 if ('background' === this.getSettings('type')) {
1113 this.updateBackgroundLayerSize(); 1114 this.defineBackgroundLayerDimensions(); 1115 } 1116 1117 this.actions.refresh(); 1118 this.destroyInteractions(); 1119 this.runInteractions(); 1120 } 1121 1122 destroy() { 1123 this.destroyInteractions(); 1124 this.actions.refresh(); 1125 const settings = this.getSettings(); 1126 this.$element.removeClass(settings.classes.element); 1127 this.elements.$parent.removeClass(settings.classes.parent); 1128 1129 if ('background' === settings.type) { 1130 this.$element.removeClass(settings.classes.backgroundType); 1131 this.removeBackgroundLayer(); 1132 } 1133 } 1134 1135 onInit() { 1136 super.onInit(); 1137 const settings = this.getSettings(); 1138 this.$element = settings.$element; 1139 this.elements.$parent = this.$element.parent(); 1140 this.$element.addClass(settings.classes.element); 1141 this.elements.$parent = this.$element.parent(); 1142 this.elements.$parent.addClass(settings.classes.parent); 1143 1144 if ('background' === settings.type) { 1145 this.$element.addClass(settings.classes.backgroundType); 1146 this.addBackgroundLayer(); 1147 } 1148 1149 this.defineDimensions(); 1150 settings.$targetElement = 'element' === settings.type ? this.$element : this.elements.$motionFXLayer; 1151 this.interactions = {}; 1152 this.actions = new _actions.default(settings); 1153 this.initInteractionsTypes(); 1154 this.runInteractions(); 1155 } 1156 1157 onWindowResize() { 1158 this.defineDimensions(); 1159 } 1160 1161} 1162 1163exports.default = _default; 1164 1165/***/ }), 1166
1167/***/ "../modules/payments/assets/js/frontend/frontend.js": 1168/*!**********************************************************!*\ 1169 !*** ../modules/payments/assets/js/frontend/frontend.js ***! 1170 \**********************************************************/ 1171/***/ ((__unused_webpack_module, exports, __webpack_require__) => { 1172 1173"use strict"; 1174 1175 1176Object.defineProperty(exports, "__esModule", ({ 1177 value: true 1178})); 1179exports.default = void 0; 1180 1181class _default extends elementorModules.Module { 1182 constructor() { 1183 super(); 1184 elementorFrontend.elementsHandler.attachHandler('paypal-button', () => __webpack_require__.e(/*! import() | paypal-button */ "paypal-button").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/paypal-button */ "../modules/payments/assets/js/frontend/handlers/paypal-button.js"))); 1185 } 1186 1187} 1188 1189exports.default = _default; 1190 1191/***/ }), 1192
1193/***/ "../modules/progress-tracker/assets/js/frontend/frontend.js": 1194/*!******************************************************************!*\ 1195 !*** ../modules/progress-tracker/assets/js/frontend/frontend.js ***! 1196 \******************************************************************/ 1197/***/ ((__unused_webpack_module, exports, __webpack_require__) => { 1198 1199"use strict"; 1200 1201 1202Object.defineProperty(exports, "__esModule", ({ 1203 value: true 1204})); 1205exports.default = void 0; 1206 1207class _default extends elementorModules.Module { 1208 constructor() { 1209 super(); 1210 elementorFrontend.elementsHandler.attachHandler('progress-tracker', () => __webpack_require__.e(/*! import() | progress-tracker */ "progress-tracker").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/progress-tracker */ "../modules/progress-tracker/assets/js/frontend/handlers/progress-tracker.js"))); 1211 } 1212 1213} 1214 1215exports.default = _default; 1216 1217/***/ }), 1218
1219/***/ "../modules/sticky/assets/js/frontend/frontend.js": 1220/*!********************************************************!*\ 1221 !*** ../modules/sticky/assets/js/frontend/frontend.js ***! 1222 \********************************************************/ 1223/***/ ((__unused_webpack_module, exports, __webpack_require__) => { 1224 1225"use strict"; 1226 1227 1228var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); 1229 1230Object.defineProperty(exports, "__esModule", ({ 1231 value: true 1232})); 1233exports.default = void 0; 1234 1235var _sticky = _interopRequireDefault(__webpack_require__(/*! ./handlers/sticky */ "../modules/sticky/assets/js/frontend/handlers/sticky.js")); 1236 1237class _default extends elementorModules.Module { 1238 constructor() { 1239 super(); 1240 elementorFrontend.elementsHandler.attachHandler('section', _sticky.default, null); 1241 elementorFrontend.elementsHandler.attachHandler('container', _sticky.default, null); 1242 elementorFrontend.elementsHandler.attachHandler('widget', _sticky.default, null); 1243 } 1244 1245} 1246 1247exports.default = _default; 1248 1249/***/ }), 1250
1251/***/ "../modules/sticky/assets/js/frontend/handlers/sticky.js": 1252/*!***************************************************************!*\ 1253 !*** ../modules/sticky/assets/js/frontend/handlers/sticky.js ***! 1254 \***************************************************************/ 1255/***/ ((__unused_webpack_module, exports) => { 1256 1257"use strict"; 1258 1259 1260Object.defineProperty(exports, "__esModule", ({ 1261 value: true 1262})); 1263exports.default = void 0; 1264 1265var _default = elementorModules.frontend.handlers.Base.extend({ 1266 bindEvents() { 1267 elementorFrontend.addListenerOnce(this.getUniqueHandlerID() + 'sticky', 'resize', this.refresh); 1268 }, 1269 1270 unbindEvents() { 1271 elementorFrontend.removeListeners(this.getUniqueHandlerID() + 'sticky', 'resize', this.refresh); 1272 }, 1273 1274 isStickyInstanceActive() { 1275 return undefined !== this.$element.data('sticky'); 1276 }, 1277 1278 /** 1279 * Get the current active setting value for a responsive control. 1280 * 1281 * @param {string} setting 1282 * @return {any} - Setting value. 1283 */ 1284 getResponsiveSetting(setting) { 1285 const elementSettings = this.getElementSettings(); 1286 return elementorFrontend.getCurrentDeviceSetting(elementSettings, setting); 1287 }, 1288 1289 /** 1290 * Return an array of settings names for responsive control (e.g. `settings`, `setting_tablet`, `setting_mobile` ). 1291 * 1292 * @param {string} setting 1293 * @return {string[]} - List of settings. 1294 */ 1295 getResponsiveSettingList(setting) { 1296 const breakpoints = Object.keys(elementorFrontend.config.responsive.activeBreakpoints); 1297 return ['', ...breakpoints].map(suffix => { 1298 return suffix ? `${setting}_${suffix}` : setting; 1299 }); 1300 }, 1301 1302 activate() { 1303 var elementSettings = this.getElementSettings(), 1304 stickyOptions = { 1305 to: elementSettings.sticky, 1306 offset: this.getResponsiveSetting('sticky_offset'), 1307 effectsOffset: this.getResponsiveSetting('sticky_effects_offset'), 1308 classes: { 1309 sticky: 'elementor-sticky', 1310 stickyActive: 'elementor-sticky--active elementor-section--handles-inside', 1311 stickyEffects: 'elementor-sticky--effects', 1312 spacer: 'elementor-sticky__spacer' 1313 } 1314 }, 1315 $wpAdminBar = elementorFrontend.elements.$wpAdminBar; 1316 1317 if (elementSettings.sticky_parent) { 1318 stickyOptions.parent = '.e-container, .elementor-widget-wrap'; 1319 } 1320 1321 if ($wpAdminBar.length && 'top' === elementSettings.sticky && 'fixed' === $wpAdminBar.css('position')) { 1322 stickyOptions.offset += $wpAdminBar.height(); 1323 } 1324 1325 this.$element.sticky(stickyOptions); 1326 }, 1327 1328 deactivate() { 1329 if (!this.isStickyInstanceActive()) { 1330 return; 1331 } 1332 1333 this.$element.sticky('destroy'); 1334 }, 1335 1336 run(refresh) { 1337 if (!this.getElementSettings('sticky')) { 1338 this.deactivate(); 1339 return; 1340 } 1341 1342 var currentDeviceMode = elementorFrontend.getCurrentDeviceMode(), 1343 activeDevices = this.getElementSettings('sticky_on'); 1344 1345 if (-1 !== activeDevices.indexOf(currentDeviceMode)) { 1346 if (true === refresh) { 1347 this.reactivate(); 1348 } else if (!this.isStickyInstanceActive()) { 1349 this.activate(); 1350 } 1351 } else { 1352 this.deactivate(); 1353 } 1354 }, 1355 1356 refresh() { 1357 this.run(true); 1358 }, 1359 1360 reactivate() { 1361 this.deactivate(); 1362 this.activate(); 1363 }, 1364 1365 onElementChange(settingKey) { 1366 if (-1 !== ['sticky', 'sticky_on'].indexOf(settingKey)) { 1367 this.run(true); 1368 } // Settings that trigger a re-activation when changed. 1369 1370 1371 const settings = [...this.getResponsiveSettingList('sticky_offset'), ...this.getResponsiveSettingList('sticky_effects_offset'), 'sticky_parent']; 1372 1373 if (-1 !== settings.indexOf(settingKey)) { 1374 this.reactivate(); 1375 } 1376 }, 1377 1378 /** 1379 * Listen to device mode changes and re-initialize the sticky. 1380 * 1381 * @return {void} 1382 */ 1383 onDeviceModeChange() { 1384 // Wait for the call stack to be empty. 1385 // The `run` function requests the current device mode from the CSS so it's not ready immediately. 1386 // (need to wait for the `deviceMode` event to change the CSS). 1387 // See `elementorFrontend.getCurrentDeviceMode()` for reference. 1388 setTimeout(this.refresh); 1389 }, 1390 1391 onInit() { 1392 elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments); 1393 1394 if (elementorFrontend.isEditMode()) { 1395 elementor.listenTo(elementor.channels.deviceMode, 'change', () => this.onDeviceModeChange()); 1396 } 1397 1398 this.run(); 1399 }, 1400 1401 onDestroy() { 1402 elementorModules.frontend.handlers.Base.prototype.onDestroy.apply(this, arguments); 1403 this.deactivate(); 1404 } 1405 1406}); 1407 1408exports.default = _default; 1409 1410/***/ }), 1411
1412/***/ "../modules/video-playlist/assets/js/frontend/frontend.js": 1413/*!****************************************************************!*\ 1414 !*** ../modules/video-playlist/assets/js/frontend/frontend.js ***! 1415 \****************************************************************/ 1416/***/ ((__unused_webpack_module, exports, __webpack_require__) => { 1417 1418"use strict"; 1419 1420 1421Object.defineProperty(exports, "__esModule", ({ 1422 value: true 1423})); 1424exports.default = void 0; 1425 1426class _default extends elementorModules.Module { 1427 constructor() { 1428 super(); 1429 elementorFrontend.hooks.addAction('frontend/element_ready/video-playlist.default', $element => { 1430 __webpack_require__.e(/*! import() | video-playlist */ "video-playlist").then(__webpack_require__.bind(__webpack_require__, /*! ./handler */ "../modules/video-playlist/assets/js/frontend/handler.js")).then(({ 1431 default: dynamicHandler 1432 }) => { 1433 elementorFrontend.elementsHandler.addHandler(dynamicHandler, { 1434 $element, 1435 toggleSelf: false 1436 }); 1437 }); 1438 }); 1439 } 1440 1441} 1442 1443exports.default = _default; 1444 1445/***/ })
1445 1446 1447}, 1448/******/ __webpack_require__ => { // webpackRuntimeModules 1449/******/ "use strict"; 1450/******/ 1451/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) 1452/******/ var __webpack_exports__ = (__webpack_exec__("../assets/dev/js/frontend/frontend.js")); 1453/******/ } 1454]); 1455//# sourceMappingURL=frontend.js.map
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.