.bdt-reading-progress{top:unset;bottom:20px;position:fixed;z-index:10}.bdt-reading-progress.bottom-right{top:unset !important;bottom:20px !important;right:20px}.bdt-reading-progress.bottom-left{top:unset !important;left:20px;bottom:20px !important}.bdt-reading-progress.top-right{left:unset;top:20px !important;right:20px}.bdt-reading-progress.top-left{right:unset;top:20px !important;left:20px}.bdt-reading-progress .bdt-reading-progress-border{position:relative;text-align:center;width:100%;height:100%;border-radius:50%}.bdt-reading-progress .bdt-reading-progress-circle{position:relative;top:50%;left:50%;transform:translate(-50%, -50%);text-align:center;border-radius:50%}.bdt-reading-progress .bdt-reading-progress-text{top:50%;left:50%;transform:translate(-50%, -50%);position:absolute;color:#fff}.bdt-horizontal-progress.top{top:0 !important;bottom:unset !important}.bdt-horizontal-progress.bottom{top:unset !important;bottom:0 !important}body.admin-bar .bdt-horizontal-progress.top{top:32px !important}.bdt-progress-with-top .bdt-progress-wrap{position:fixed;right:50px;bottom:50px;height:46px;width:46px;cursor:pointer;display:block;z-index:9;opacity:0;visibility:hidden;transform:translateY(15px);-webkit-transition:all 200ms linear;transition:all 200ms linear;box-shadow:inset 0 0 0 2px rgba(255,255,255,0.2);border-radius:50%}.bdt-progress-with-top .bdt-progress-wrap.top-left{right:unset !important;left:50px;bottom:unset;top:50px}.bdt-progress-with-top .bdt-progress-wrap.top-right{right:50px;left:unset !important;bottom:unset;top:50px}.bdt-progress-with-top .bdt-progress-wrap.bottom-left{top:unset;right:unset !important;left:50px;bottom:50px}.bdt-progress-with-top .bdt-progress-wrap.active-progress{opacity:1;visibility:visible;transform:translateY(0)}.bdt-progress-with-top .bdt-progress-wrap::before{position:absolute;text-align:center;line-height:46px;opacity:1;background-color:#000;-webkit-background-clip:text;-webkit-text-fill-color:transparent;left:0;top:0;height:46px;width:46px;cursor:pointer;display:block;z-index:2;-webkit-transition:all 200ms linear;transition:all 200ms linear;font-size:16px;margin-bottom:6px;font-family:'element-pack' !important;content:"\e939"}.bdt-progress-with-top .bdt-progress-wrap .svg-content{border-radius:50%}.bdt-progress-with-top .bdt-progress-wrap svg path{fill:none}.bdt-progress-with-top .bdt-progress-wrap svg.bdt-progress-circle path{stroke:grey;stroke-width:4;box-sizing:border-box;-webkit-transition:all 200ms linear;transition:all 200ms linear}.bdt-progress-with-top .bdt-progress-wrap .bdt-circle{-webkit-transition:all 300ms linear;transition:all 300ms linear;cursor:pointer;position:absolute;top:50%;transform:translateY(-50%);left:-5px;width:40px;height:40px;border-radius:50%;background:black;box-shadow:0 4px 4px rgba(26,53,71,0.25),0 0 0 1px rgba(26,53,71,0.07);animation:border-transform 10s linear infinite alternate forwards}.bdt-progress-with-top .bdt-progress-wrap .bdt-circle:hover{box-shadow:0 8px 8px rgba(26,53,71,0.25),0 0 0 1px rgba(26,53,71,0.07)}.bdt-progress-with-top .bdt-progress-wrap .bdt-circle:before{position:absolute;font-family:'unicons';content:'\eac1';top:0;left:0;z-index:2;font-size:20px;line-height:40px;text-align:center;width:100%;height:40px;opacity:1;color:red;-webkit-transition:all 300ms linear;transition:all 300ms linear}.bdt-progress-with-cursor .bdt-progress-wrap{height:46px;width:46px;cursor:pointer;display:block;box-shadow:inset 0 0 0 2px rgba(0,0,0,0.3);z-index:9;-webkit-transition:all 200ms linear;transition:all 200ms linear;border-radius:50%}.bdt-progress-with-cursor .bdt-progress-wrap svg path{fill:none}.bdt-progress-with-cursor .bdt-progress-wrap svg.bdt-progress-circle path{stroke:#e02020;stroke-width:4;box-sizing:border-box;-webkit-transition:all 200ms linear;transition:all 200ms linear}.bdt-progress-with-cursor .bdt-cursor,.bdt-progress-with-cursor .bdt-cursor2,.bdt-progress-with-cursor .bdt-cursor3{position:fixed;border-radius:50%;transform:translateX(-50%) translateY(-50%);pointer-events:none;left:-100px;top:50%;-webkit-transition:all 300ms linear;transition:all 300ms linear}.bdt-progress-with-cursor .bdt-cursor{background-color:#000;z-index:9;height:0;width:0}.bdt-progress-with-cursor .bdt-cursor2,.bdt-progress-with-cursor .bdt-cursor3{height:46px;width:46px;z-index:9;-webkit-transition:all .3s ease-out;transition:all .3s ease-out}.bdt-progress-with-cursor .bdt-cursor2.hover,.bdt-progress-with-cursor .bdt-cursor3.hover{-webkit-transform:scale(1.4) translateX(-35%) translateY(-35%);transform:scale(1.4) translateX(-35%) translateY(-35%);border:none}.bdt-progress-with-cursor .bdt-cursor2.hover{background:rgba(255,255,255,0.1)}.bdt-progress-with-cursor .bdt-cursor2.hover .bdt-progress-wrap{box-shadow:inset 0 0 0 2px rgba(255,255,255,0)}.bdt-progress-with-cursor .bdt-cursor2.hover .bdt-progress-wrap svg.bdt-progress-circle path{opacity:.4}@-webkit-keyframes border-transform{0%,100%{border-radius:63% 37% 54% .83636364% 48% 52% 45%}14%{border-radius:40% 60% 54% .93877551% 60% 40% 51%}28%{border-radius:54% 46% 38% 1.26530612% 70% 30% 51%}42%{border-radius:61% 39% 55% .73770492% 38% 62% 39%}56%{border-radius:61% 39% 67% .47142857% 50% 50% 30%}70%{border-radius:50% 50% 34% 1.17857143% 68% 32% 44%}84%{border-radius:46% 54% 50% 1.42857143% 61% 39% 65%}}@keyframes border-transform{0%,100%{border-radius:63% 37% 54% .83636364% 48% 52% 45%}14%{border-radius:40% 60% 54% .93877551% 60% 40% 51%}28%{border-radius:54% 46% 38% 1.26530612% 70% 30% 51%}42%{border-radius:61% 39% 55% .73770492% 38% 62% 39%}56%{border-radius:61% 39% 67% .47142857% 50% 50% 30%}70%{border-radius:50% 50% 34% 1.17857143% 68% 32% 44%}84%{border-radius:46% 54% 50% 1.42857143% 61% 39% 65%}};(function($) { /** * jQuery Slider */ $.EasingSlider = function(el) { // Core variables var base = this, o; // Establish our elements base.el = el; base.$el = $(base.el); base.$viewport = base.$el.find('.easingslider-viewport'); base.$slides = base.$el.find('.easingslider-slide'); base.$arrows = base.$el.find('.easingslider-arrows'); base.$next = base.$el.find('.easingslider-next'); base.$prev = base.$el.find('.easingslider-prev'); base.$pagination = base.$el.find('.easingslider-pagination'); base.$icons = base.$el.find('.easingslider-icon'); base.$preload = base.$el.find('.easingslider-preload'); // Get the plugin options base.options = o = $.extend({}, $.EasingSlider.defaults, $.parseJSON(base.$el.attr('data-options'))); // State variables base.current = 0; base.previous = 0; base.count = base.$slides.length; base.width = o.dimensions.width; base.height = o.dimensions.height; // Store our data base.$el.data('easingslider', base); /** * Constructor */ base.initialize = function() { // Determine click event base._clickEvent = ( 'ontouchstart' in document.documentElement ) ? 'touchstart' : 'click'; // Hide all slides base.$slides.css({ 'display': 'none' }); // Set the current slide base.$slides.eq(base.current).css({ 'display': 'block' }).addClass('active'); // Setup components base._setupArrows(); base._setupPagination(); base._setupPlayback(); base._setupResizing(); base._setupBackgrounds(); // Preload the slider base._preload(); // Trigger event base.$el.trigger('init', base); return base; }; /** * Sets up the "Arrow" navigation */ base._setupArrows = function() { // Continue if arrows are enabled if ( o.navigation.arrows ) { // "Next" & "Previous" arrow functionality base.$next.bind(base._clickEvent, base.nextSlide); base.$prev.bind(base._clickEvent, base.prevSlide); // Add hover toggle if enabled if ( o.navigation.arrows_hover ) { base.$arrows.addClass('has-hover'); } // Show the arrows base.$arrows.css({ 'display': 'block' }); } return base; }; /** * Sets up the "Pagination" navigation */ base._setupPagination = function() { // Continue if pagination is enabled if ( o.navigation.pagination ) { // Bind events base.$el.bind('loaded', base._updatePagination); base.$el.bind('transition.before', base._updatePagination); // Enable click event for each icon base.$icons.bind(base._clickEvent, function() { // Get the next slide index and direction we are travelling var eq = $(this).index(), direction = (eq > base.current) ? 'forward' : 'backward'; // Transition to the desired slide base.goToSlide(eq, direction); }); // Add hover toggle if enabled if ( o.navigation.pagination_hover ) { base.$pagination.addClass('has-hover'); } // Show the pagination base.$pagination.css({ 'display': 'block' }); } return base; }; /** * Updates the active pagination icon */ base._updatePagination = function() { // Continue if pagination is enabled if ( o.navigation.pagination ) { // Update the active icon base.$icons.removeClass('active').eq(base.current).addClass('active'); } return base; }; /** * Sets up the automatic playback */ base._setupPlayback = function() { // Clear playback timer before the transition. It'll be reset after the transition has completed. base.$el.bind('transition.before', function() { if ( base._playbackTimer ) { clearTimeout(base._playbackTimer); } }); // Once a transition has completed, continue playback if we have an active timer. base.$el.bind('transition.after', function() { if ( base._playbackTimer ) { base.startPlayback(); } }); // Queue playback after the slider has loaded, if enabled. if ( o.playback.enabled && base.count > 1 ) { base.$el.bind('loaded', base.startPlayback); } return base; }; /** * Sets up the responsive support */ base._setupResizing = function() { // Continue if responsive is enabled if ( o.dimensions.responsive ) { // Update the size base._updateSize(); // Handle window resizing $(window).bind('resize', base._updateSize); } return base; }; /** * Updates the slider's size */ base._updateSize = function() { // Get the container width var width = base.$el.outerWidth(); // If it has changed, resize the height to match. if ( width <= base.width && o.dimensions.keep_ratio ) { // Using the default slider width, let's calculate the percentage change and thus calculate the new height. var height = Math.floor((width / base.width) * base.height); // Set the viewport height base.$viewport.css({ 'height': height +'px' }); // Trigger event base.$el.trigger('size.update', [base, width, height]); } return base; }; /** * Sets up the background slides, if enabled */ base._setupBackgrounds = function() { // Handle background images, if enabled if ( o.dimensions.background_images ) { base.$slides.each(function() { // Establish variables var $slide = $(this), $image = $slide.find('.easingslider-image'); // Set background $slide.addClass('easingslider-background-slide').css({ 'background-image': 'url('+ $image.attr('src') +')' }); // Hide slide image $image.css({ 'display': 'none' }); }); } }; /** * Preloads the slider */ base._preload = function() { // Get the total number of images var total_images = base.$slides.find('.easingslider-image').length; // Preloaded slide count base._preloadCount = 0; // Loop through and preload each image slide. Doesn't stop on failure, just continues instead. base.$el.find('.easingslider-image').each(function() { // Load the image $(this).one('load', function() { // If all slides have been preloaded, hide the preloader and start the playback. Also increase preloader count. if ( ++base._preloadCount == total_images ) { base.$preload.animate({ 'opacity': 0 }, { duration: 400, complete: function() { // Remove preloader $(this).remove(); // Flag as loaded base.$el.addClass('has-loaded'); // Trigger events base.$el.trigger('loaded', base); } }); } }).each(function() { // Load on complete if ( this.complete ) { $(this).load(); } }); }); }; /** * Handles slide preloading */ base._load = function() { // Increase preloaded count base._preloadCount++; // Get the total number of images var total_images = base.$slides.find('.easingslider-image').length; // If all slides have been preloaded, hide the preloader and start the playback. if ( base._preloadCount == total_images ) { base.$preload.animate({ 'opacity': 0 }, { duration: 400, complete: function() { // Remove preloader $(this).remove(); // Flag as loaded base.$el.addClass('has-loaded'); // Trigger events base.$el.trigger('loaded', base); } }); } }; /** * Starts automatic playback */ base.startPlayback = function() { // Runtime variable base._runtime = new Date(); // Get pause time base._pauseTime = o.playback.pause; // Start automatic playback base._playbackTimer = setTimeout(function() { base.nextSlide(); }, base._pauseTime); // Trigger event base.$el.trigger('playback.start', base); return base; }; /** * Ends automatic playback */ base.endPlayback = function() { // Clear playback timer clearTimeout(base._playbackTimer); // Set timer to flase base._playbackTimer = false; // Trigger event base.$el.trigger('playback.end', base); return base; }; /** * Pauses automatic playback */ base.pausePlayback = function() { // Clear playback timer clearTimeout(base._playbackTimer); // Calculate runtime left base._runtime = Math.ceil(new Date() - base._runtime); // Trigger event base.$el.trigger('playback.pause', base); return base; }; /** * Resumes automatic playback */ base.resumePlayback = function() { // Calculate playback time remaining base._pauseTime = Math.ceil(base._pauseTime - base._runtime); // Reset runtime base._runtime = new Date(); // Resume automatic playback base._playbackTimer = setTimeout(function() { base.nextSlide(); }, base._pauseTime); // Trigger event base.$el.trigger('playback.resume', base); return base; }; /** * Executes a transition */ base._transition = function(eq, direction) { // Bail if we only have one slide if ( base.count <= 1 ) { return base; } // Bail if specified slide doesn't exist if ( base.$slides.eq(eq).length == 0 ) { return base; } // Bail if animating already if ( base._animating ) { return base; } // Flag that we are transitioning base._animating = true; // Establish the next and previous slides base.previous = base.current; base.current = eq; /** * Add animation classes based on direction. * * Timeout functions are used here to avoid a bug in Safari. * The animations won't work if we toggle the display property as we add the animation class, * instead it would intermittently show/hide the slide. * * Using a timeout seems to negate this. */ if ( 'backward' == direction ) { base.$slides.eq(base.previous).css({ 'display': 'block' }); base.$slides.eq(base.current).css({ 'display': 'block' }); setTimeout(function() { base.$slides.eq(base.previous).addClass('next-out'); base.$slides.eq(base.current).addClass('prev-in'); }); } else { base.$slides.eq(base.previous).css({ 'display': 'block' }); base.$slides.eq(base.current).css({ 'display': 'block' }); setTimeout(function() { base.$slides.eq(base.previous).addClass('prev-out'); base.$slides.eq(base.current).addClass('next-in'); }); } // After timeout, do some cleaning up. clearTimeout(base._cleanup); base._cleanup = setTimeout(function() { // Toggle the active slide base.$slides.eq(base.current).css({ 'display': 'block' }).addClass('active'); base.$slides.eq(base.previous).css({ 'display': 'none' }).removeClass('active'); // Remove all animation related classes base.$slides.removeClass('next-in next-out prev-in prev-out'); // Flag that we are no longer animating base._animating = false; // Trigger event base.$el.trigger('transition.after', [ base, eq, direction ]); }, o.transitions.duration); // Trigger event base.$el.trigger('transition.before', [ base, eq, direction ]); return base; }; /** * Transitions to the next slide */ base.nextSlide = function() { // Establish the next slide var eq = ( base.current == (base.count - 1) ) ? 0 : (base.current + 1); // Transition to the next slide base._transition(eq, 'forward'); // Trigger event base.$el.trigger('transition.next', [ base, eq, 'forward' ]); return base; }; /** * Transitions to the previous slide */ base.prevSlide = function() { // Establish the previous slide var eq = ( base.current == 0 ) ? (base.count - 1) : (base.current - 1); // Transition to the previous slide base._transition(eq, 'backward'); // Trigger event base.$el.trigger('transition.prev', [ base, eq, 'backward' ]); return base; }; /** * Transitions to a specified slide */ base.goToSlide = function(eq, direction) { // Transition to the specified slide this._transition(eq, direction); // Trigger event base.$el.trigger('transition.to', [ base, eq, direction ]); return base; }; // Initialize the plugin base.initialize(); }; /** * Plugin defaults settings */ $.EasingSlider.defaults = { dimensions: { width: 640, height: 400, responsive: true, full_width: false, image_resizing: false, keep_ratio: true, background_images: false }, transitions: { effect: 'fade', duration: 400 }, navigation: { arrows: true, arrows_hover: false, arrows_position: 'inside', pagination: true, pagination_hover: false, pagination_position: 'inside', pagination_location: 'bottom-center' }, playback: { enabled: true, pause: 4000 } }; /** * Initiates slider(s) */ $.fn.EasingSlider = function() { return this.each(function() { new $.EasingSlider(this); }); }; // Let's go! $(document).ready(function() { $('.easingslider').EasingSlider(); }); })(jQuery);(function(a,b){function c(a,c){var d=" to exec \u300C"+a+"\u300D command"+(c?" with value: "+c:"");try{b.execCommand(a,!1,c)}catch(a){return P.log("fail"+d,!0)}P.log("success"+d)}function d(a,b,d){var e=B(a);if(e)return a._range.selectNode(e),a._range.collapse(!1),"insertimage"===b&&a._menu&&L(a._menu,!0),c(b,d)}function e(a,b){var d=C(a),e=d.map(function(a){return a.nodeName.toLowerCase()});return-1!==e.indexOf(b)&&(b="p"),c("formatblock",b)}function f(a,b,d){return d="<"+b+">"+(d||O.toString())+"",c("insertHTML",d)}function g(a,b,d){return a.config.linksInNewWindow&&"unlink"!==b?(d=""+O.toString()+"",c("insertHTML",d)):c(b,d)}function h(a,b,c,d){var e=a.config.titles[b]||"",f=document.createElement("div");f.classList.add("pen-icon"),f.setAttribute("title",e),"parent"===c?(f.classList.add("pen-group-icon"),f.setAttribute("data-group-toggle",b)):f.setAttribute("data-action",b),"child"===c&&f.setAttribute("data-group",d);var g=a.config.toolbarIconsDictionary[b];if(g&&g.text)f.textContent=g.text;else{var h;h=g&&g.className?g.className:a.config.toolbarIconsPrefix+b,f.innerHTML+=""}return f.outerHTML}function i(a){return Q.call(a._menu.children)}function j(a,b){var c=i(a);c.forEach(function(a){L(a,a.getAttribute("data-group")!==b)}),o(a,!b),a.refreshMenuPosition()}function k(a){j(a,null),m(a,!0),n(a,!a._urlInput||""===a._urlInput.value)}function l(a){var b=i(a);b.forEach(function(a){L(a,!0)}),m(a),o(a)}function m(a,b){var c=a._menu.querySelector(".pen-input-wrapper");c&&L(c,b)}function n(a,b){var c=a._menu.querySelector("[data-action=\"unlink\"]");c&&(L(c,b),a.refreshMenuPosition())}function o(a,b){var c=a._menu.querySelector("[data-action=\"close\"]");L(c,b),a.refreshMenuPosition()}function p(a){var c=b.createElement("div"),d=b.createElement("input"),e=b.createElement("label"),f=b.createElement("input"),g=b.createElement("i");return c.className="pen-input-wrapper",d.className="pen-url-input",d.type="url",d.placeholder="http://",e.className="pen-icon pen-input-label",f.className="pen-external-url-checkbox",f.type="checkbox",g.className=a.config.toolbarIconsDictionary.externalLink.className,e.appendChild(f),e.appendChild(g),c.appendChild(d),c.appendChild(e),c}function q(a,b,c){a.execCommand(b,c),a._range=a.getRange(),a.highlight().menu()}function r(a,b){for(var c,d=a._toolbar||a._menu;!(c=b.getAttribute("data-action"))&&b.parentNode!==d;)b=b.parentNode;var e=b.getAttribute("data-group-toggle");if(e&&j(a,e),!!c){if("close"===c)return void k(a);if(!/(?:createlink)|(?:insertimage)/.test(c))return q(a,c);if(a._urlInput){var f=a._urlInput;if(d===a._menu?l(a):(a._inputActive=!0,a.menu()),"none"!==a._menu.style.display){setTimeout(function(){f.focus()},10);var g=function(){var b=f.value;b?(a.config.linksInNewWindow=a._externalUrlCheckbox.checked,b=f.value.replace(U.whiteSpace,"").replace(U.mailTo,"mailto:$1").replace(U.http,"http://$1")):c="unlink",q(a,c,b)};f.onkeypress=function(a){13===a.which&&(a.preventDefault(),g())},a._externalUrlCheckbox.onchange=g}}}}function s(a){var c="",d=p(a).outerHTML;if(a._toolbar=a.config.toolbar,!a._toolbar){var e=a.config.list;if(!Object.values(e).length)return;P.forEach(e,function(b,d){if(Array.isArray(b)){var e=b;b=d,c+=h(a,b,"parent"),P.forEach(e,function(d){c+=h(a,d,"child",b)},!0)}else c+=h(a,b)});var f=Object.values(e);(0<=f.indexOf("createlink")||0<=f.indexOf("insertimage"))&&(c+=d),c+=h(a,"close")}else(a._toolbar.querySelectorAll("[data-action=createlink]").length||a._toolbar.querySelectorAll("[data-action=insertimage]").length)&&(c+=d);c&&(a._menu=b.createElement("div"),a._menu.setAttribute("class",a.config.class+"-menu pen-menu"),a._menu.innerHTML=c,a._urlInput=a._menu.querySelector(".pen-url-input"),a._externalUrlCheckbox=a._menu.querySelector(".pen-external-url-checkbox"),L(a._menu,!0),b.body.appendChild(a._menu))}function t(d){function f(a){d._range=d.getRange(),i(a)}var g=d._toolbar||d._menu,h=d.config.editor,i=P.delayExec(function(){g&&d.highlight().menu()}),j=function(){};if(d._menu){var k=function(){"flex"===d._menu.style.display&&d.menu()};u(d,a,"resize",k),u(d,a,"scroll",k);var l=!1;u(d,h,"mousedown",function(){l=!0}),u(d,h,"mouseleave",function(){l&&f(800),l=!1}),u(d,h,"mouseup",function(){l&&f(200),l=!1}),j=function(a){!d._menu||A(h,a.target)||A(d._menu,a.target)||(w(d,b,"click",j),i(100))}}else u(d,h,"click",function(){f(0)});u(d,h,"keyup",function(a){if(y(d),d.isEmpty())return void("advanced"===d.config.mode&&E(d));if(G(d)&&!H(d)&&"advanced"!==d.config.mode&&(h.innerHTML=h.innerHTML.replace(/\u200b/,""),F(d)),13!==a.which||a.shiftKey)return f(400);var c=B(d,!0);c&&c.nextSibling&&S.test(c.nodeName)&&c.nodeName===c.nextSibling.nodeName&&("BR"!==c.lastChild.nodeName&&c.appendChild(b.createElement("br")),P.forEach(c.nextSibling.childNodes,function(a){a&&c.appendChild(a)},!0),c.parentNode.removeChild(c.nextSibling),I(d,c.lastChild,d.getRange()))}),u(d,h,"keydown",function(a){if(h.classList.remove(d.config.placeholderClass),!(13!==a.which||a.shiftKey)){if(d.config.ignoreLineBreak)return void a.preventDefault();var e=B(d,!0);if(!e||!S.test(e.nodeName))return void("basic"===d.config.mode&&(a.preventDefault(),c("insertHTML","
")));if(e){var f=e.lastChild;if(f&&f.previousSibling&&!(f.previousSibling.textContent||f.textContent)){a.preventDefault();var g=b.createElement("p");g.innerHTML="
",e.removeChild(f),e.nextSibling?e.parentNode.insertBefore(g,e.nextSibling):e.parentNode.appendChild(g),I(d,g,d.getRange())}}}}),g&&u(d,g,"click",function(a){r(d,a.target)}),u(d,h,"focus",function(){d.isEmpty()&&"advanced"===d.config.mode&&E(d),u(d,b,"click",j)}),u(d,h,"blur",function(){y(d),d.checkContentChange()}),u(d,h,"paste",function(){setTimeout(function(){d.cleanContent()})})}function u(a,b,c,d){if(a._events.hasOwnProperty(c))a._events[c].push(d);else{a._eventTargets=a._eventTargets||[],a._eventsCache=a._eventsCache||[];var e=a._eventTargets.indexOf(b);0>e&&(e=a._eventTargets.push(b)-1),a._eventsCache[e]=a._eventsCache[e]||{},a._eventsCache[e][c]=a._eventsCache[e][c]||[],a._eventsCache[e][c].push(d),b.addEventListener(c,d,!1)}return a}function v(a,b){if(a._events.hasOwnProperty(b)){var c=Q.call(arguments,2);P.forEach(a._events[b],function(b){b.apply(a,c)})}}function w(a,b,c,d){var e=a._events[c];if(!e){var f=a._eventTargets.indexOf(b);0<=f&&(e=a._eventsCache[f][c])}if(!e)return a;var g=e.indexOf(d);return 0<=g&&e.splice(g,1),b.removeEventListener(c,d,!1),a}function x(a){return(P.forEach(this._events,function(a){a.length=0},!1),!a._eventsCache)?a:(P.forEach(a._eventsCache,function(b,c){var d=a._eventTargets[c];P.forEach(b,function(a,b){P.forEach(a,function(a){d.removeEventListener(b,a,!1)},!0)},!1)},!0),a._eventTargets=[],a._eventsCache=[],a)}function y(a){a.config.editor.classList[a.isEmpty()?"add":"remove"](a.config.placeholderClass)}function z(a){return(a||"").trim().replace(/\u200b/g,"")}function A(a,b){if(a===b)return!0;for(b=b.parentNode;b;){if(b===a)return!0;b=b.parentNode}return!1}function B(a,b){var c,d=a.config.editor;if(a._range=a._range||a.getRange(),c=a._range.commonAncestorContainer,c.hasChildNodes()&&a._range.startOffset+1===a._range.endOffset&&(c=c.childNodes[a._range.startOffset]),!c||c===d)return null;for(;c&&1!==c.nodeType&&c.parentNode!==d;)c=c.parentNode;for(;c&&b&&c.parentNode!==d;)c=c.parentNode;return A(d,c)?c:null}function C(a){return D(a).filter(function(a){return a.nodeName.match(T)})}function D(a){for(var b=[],c=B(a);c&&c!==a.config.editor;)c.nodeType===Node.ELEMENT_NODE&&b.push(c),c=c.parentNode;return b}function E(a){var c=a._range=a.getRange();a.config.editor.innerHTML="";var d=b.createElement("p");d.innerHTML="
",c.insertNode(d),I(a,d.childNodes[0],c)}function F(a){var c=a.getRange(),d=b.createTextNode("\u200B");c.selectNodeContents(a.config.editor),c.collapse(!1),c.insertNode(d),I(a,d,c)}function G(a){var b=a.getRange(),c=b.cloneRange();return c.selectNodeContents(a.config.editor),c.setStart(b.endContainer,b.endOffset),""===c.toString()}function H(a){var b=a.getRange(),c=b.cloneRange();return c.selectNodeContents(a.config.editor),c.setEnd(b.startContainer,b.startOffset),""===c.toString()}function I(a,b,c){c.setStartAfter(b),c.setEndBefore(b),c.collapse(!1),a.setRange(c)}function J(a){if(1===a.nodeType){if(V.notLink.test(a.tagName))return;P.forEach(a.childNodes,function(a){J(a)},!0)}else if(3===a.nodeType){var c=K(a.nodeValue||"");if(!c.links)return;var d=b.createDocumentFragment(),e=b.createElement("div");for(e.innerHTML=c.text;e.childNodes.length;)d.appendChild(e.childNodes[0]);a.parentNode.replaceChild(d,a)}}function K(a){var b=0;return a=a.replace(V.url,function(a){var c=a,d=a;return b++,a.length>V.maxLength&&(d=a.slice(0,V.maxLength)+"..."),V.prefix.test(c)||(c="http://"+c),""+d+""}),{links:b,text:a}}function L(a,b){a.style.display=b?"none":"flex"}var M,N,O,P={},Q=Array.prototype.slice,R={block:/^(?:p|h[1-6]|blockquote|pre)$/,inline:/^(?:justify(center|full|left|right)|strikethrough|insert(un)?orderedlist|(in|out)dent)$/,biu:/^(bold|italic|underline)$/,source:/^(?:createlink|unlink)$/,insert:/^(?:inserthorizontalrule|insertimage|insert)$/,wrap:/^(?:code)$/},S=/^(?:blockquote|pre|div)$/i,T=/(?:[pubia]|strong|em|h[1-6]|blockquote|code|[uo]l|li)/i,U={whiteSpace:/(^\s+)|(\s+$)/g,mailTo:/^(?!mailto:|.+\/|.+#|.+\?)(.*@.*\..+)$/,http:/^(?!\w+?:\/\/|mailto:|\/|\.\/|\?|#)(.*)$/},V={url:/((https?|ftp):\/\/|www\.)[^\s<]{3,}/gi,prefix:/^(?:https?|ftp):\/\//i,notLink:/^(?:img|a|input|audio|video|source|code|pre|script|head|title|style)$/i,maxLength:100},W={bold:{styleKey:"font-weight",correctValue:"normal"},italic:{styleKey:"font-style",correctValue:"normal"},underline:{styleKey:"text-decoration",correctValue:"none"}};P.is=function(a,b){return Object.prototype.toString.call(a).slice(8,-1)===b},P.forEach=function(a,b,c){if(a)if(null==c&&(c=P.is(a,"Array")),c)for(var d=0,e=a.length;d",list:["blockquote","h2","h3","p","code","insertOrderedList","insertUnorderedList","inserthorizontalrule","indent","outdent","bold","italic","underline","createlink","insertimage"],titles:{},cleanAttrs:["id","class","style","name"],cleanTags:["script"],linksInNewWindow:!1};return 1===a.nodeType?c.editor=a:a.match&&a.match(/^#[\S]+$/)?c.editor=b.getElementById(a.slice(1)):c=P.copy(c,a),c},M=function(a){if(!a)throw new Error("Can't find config");N=a.debug;var b=P.merge(a),c=b.editor;if(!c||1!==c.nodeType)throw new Error("Can't find editor");c.classList.add.apply(c.classList,b.class.split(" ")),c.setAttribute("contenteditable","true"),this.config=b,b.placeholder&&c.setAttribute(this.config.placeholderAttr,b.placeholder),y(this),this.selection=O,this._events={change:[]},s(this),t(this),this._prevContent=this.getContent(),this.markdown&&this.markdown.init(this),this.config.stay&&this.stay(this.config),this.config.input&&this.addOnSubmitListener(this.config.input),"advanced"===this.config.mode?(this.getRange().selectNodeContents(c),this.setRange()):F(this)},M.prototype.on=function(a,b){return u(this,this.config.editor,a,b),this},M.prototype.addOnSubmitListener=function(a){var b=a.form,c=this;b.addEventListener("submit",function(){a.value=c.config.saveAsMarkdown?c.toMd(c.config.editor.innerHTML):c.config.editor.innerHTML})},M.prototype.isEmpty=function(a){return a=a||this.config.editor,!a.querySelector("img")&&!a.querySelector("blockquote")&&!a.querySelector("li")&&!z(a.textContent)},M.prototype.getContent=function(){return this.isEmpty()?"":z(this.config.editor.innerHTML)},M.prototype.setContent=function(a){return this.config.editor.innerHTML=a,this.cleanContent(),this},M.prototype.checkContentChange=function(){var a=this._prevContent,b=this.getContent();a===b||(this._prevContent=b,v(this,"change",b,a))},M.prototype.getRange=function(){var a=this.config.editor,c=O.rangeCount&&O.getRangeAt(0);return c||(c=b.createRange()),A(a,c.commonAncestorContainer)||(c.selectNodeContents(a),c.collapse(!1)),c},M.prototype.setRange=function(a){a=a||this._range,a||(a=this.getRange(),a.collapse(!1));try{O.removeAllRanges(),O.addRange(a)}catch(a){}return this},M.prototype.focus=function(a){return a||this.setRange(),this.config.editor.focus(),this},M.prototype.execCommand=function(a,b){if(a=a.toLowerCase(),this.setRange(),R.block.test(a))e(this,a);else if(R.inline.test(a))c(a,b);else if(R.biu.test(a)){var h=W[a];h.backupValue=this.config.editor.style[h.styleKey],this.config.editor.style[h.styleKey]=h.correctValue,c(a,b),this.config.editor.style[h.styleKey]=h.backupValue}else R.source.test(a)?g(this,a,b):R.insert.test(a)?d(this,a,b):R.wrap.test(a)?f(this,a,b):P.log("can not find command function for name: "+a+(b?", value: "+b:""),!0);"indent"===a&&this.checkContentChange()},M.prototype.cleanContent=function(a){var b=this.config.editor;return a||(a=this.config),P.forEach(a.cleanAttrs,function(a){P.forEach(b.querySelectorAll("["+a+"]"),function(b){b.removeAttribute(a)},!0)},!0),P.forEach(a.cleanTags,function(a){P.forEach(b.querySelectorAll(a),function(a){a.parentNode.removeChild(a)},!0)},!0),y(this),this.checkContentChange(),this},M.prototype.autoLink=function(){return J(this.config.editor),this.getContent()},M.prototype.highlight=function(){var a=this._toolbar||this._menu,b=B(this);if(P.forEach(a.querySelectorAll(".active"),function(a){a.classList.remove("active")},!0),!b)return this;var c,d=D(this),e=this._urlInput,f=this._externalUrlCheckbox;return e&&a===this._menu&&(e.value="",this._externalUrlCheckbox.checked=!1),c=function(b){if(b){var c=a.querySelector("[data-action="+b+"]");return c&&c.classList.add("active")}},P.forEach(d,function(a){var b=a.nodeName.toLowerCase(),d=a.style.textAlign,g=a.style.textDecoration;(d&&("justify"===d&&(d="full"),c("justify"+d[0].toUpperCase()+d.slice(1))),"underline"===g&&c("underline"),!!b.match(T))&&("a"===b?(e.value=a.getAttribute("href"),f.checked="_blank"===a.getAttribute("target"),b="createlink"):"img"===b?(e.value=a.getAttribute("src"),b="insertimage"):"i"===b||"em"===b?b="italic":"u"===b?b="underline":"b"===b||"strong"===b?b="bold":"strike"===b?b="strikethrough":"ul"===b?b="insertUnorderedList":"ol"===b?b="insertOrderedList":"li"===b?b="indent":void 0,c(b))},!0),this},M.prototype.menu=function(){return this._menu?O.isCollapsed?(this._menu.style.display="none",this._inputActive=!1,this):!this._toolbar||this._urlInput&&this._inputActive?void k(this):this:this},M.prototype.refreshMenuPosition=function(){var a=this._range.getBoundingClientRect(),b=a.top-10,c=a.left+a.width/2,d=this._menu,e={x:0,y:0},f=this._stylesheet;if(0===a.width&&0===a.height)return this;if(void 0===this._stylesheet){var g=document.createElement("style");document.head.appendChild(g),this._stylesheet=f=g.sheet}return d.style.display="flex",e.x=c-d.clientWidth/2,e.y=b-d.clientHeight,0e.x?(e.x=0,f.insertRule(".pen-menu:after {left: "+c+"px;}",0)):f.insertRule(".pen-menu:after {left: 50%; }",0),0>e.y?(d.classList.add("pen-menu-below"),e.y=a.top+a.height+10):d.classList.remove("pen-menu-below"),d.style.top=e.y+"px",d.style.left=e.x+"px",this},M.prototype.stay=function(a){var b=this;window.onbeforeunload||(window.onbeforeunload=function(){if(!b._isDestroyed)return a.stayMsg})},M.prototype.destroy=function(){var a=this.config;x(this),a.editor.classList.remove.apply(a.editor.classList,a.class.split(" ").concat(a.placeholderClass)),a.editor.removeAttribute("contenteditable"),a.editor.removeAttribute(a.placeholderAttr);try{O.removeAllRanges(),this._menu&&this._menu.parentNode.removeChild(this._menu)}catch(a){}return this._isDestroyed=!0,this},M.prototype.rebuild=function(){return s(this),t(this),this},a.ElementorInlineEditor=function(a){if(!a)return P.log("can't find config",!0);var b=P.merge(a),c=b.editor.getAttribute("class");return c=c?c.replace(/\bpen\b/g,"")+" pen-textarea "+b.class:"pen pen-textarea",b.editor.setAttribute("class",c),b.editor.innerHTML=b.textarea,b.editor};var X={a:[/]*href=["']([^"]+|[^']+)\b[^>]*>(.*?)<\/a>/ig,"[$2]($1)"],img:[/]*src=["']([^\"+|[^']+)[^>]*>/ig,"![]($1)"],b:[/]*>(.*?)<\/b>/ig,"**$1**"],i:[/]*>(.*?)<\/i>/ig,"***$1***"],h:[/]*>(.*?)<\/h\1>/ig,function(d,a,b){return"\n"+"######".slice(0,a)+" "+b+"\n"}],li:[/<(li)\b[^>]*>(.*?)<\/\1>/ig,"* $2\n"],blockquote:[/<(blockquote)\b[^>]*>(.*?)<\/\1>/ig,"\n> $2\n"],pre:[/]*>(.*?)<\/pre>/ig,"\n```\n$1\n```\n"],code:[/]*>(.*?)<\/code>/ig,"\n`\n$1\n`\n"],p:[/]*>(.*?)<\/p>/ig,"\n$1\n"],hr:[/]*>/ig,"\n---\n"]};M.prototype.toMd=function(){var a=this.getContent().replace(/\n+/g,"").replace(/<([uo])l\b[^>]*>(.*?)<\/\1l>/ig,"$2");for(var b in X)X.hasOwnProperty(b)&&(a=a.replace.apply(a,X[b]));return a.replace(/\*{5}/g,"**")},b.getSelection&&(O=b.getSelection(),a.ElementorInlineEditor=M)})(window,document);