guidechimp
Version:
Deliver the perfect product experience & simplify user onboarding with step by step interactive walkthroughs.
3 lines • 16.5 kB
JavaScript
/*! For license information please see beacons.min.js.LICENSE.txt */
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.guideChimpPluginBeacons=t():e.guideChimpPluginBeacons=t()}(self,(function(){return function(){var e={271:function(e,t,n){"use strict";var o=n(994);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(738)),i=o(n(715)),s=o(n(693)),a=o(n(383)),c=o(n(579)),u=o(n(48));function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,s.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.default=function(){return(0,c.default)((function e(t){var n=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,a.default)(this,e),this.beacons=[],this.options={},this.observers={},"undefined"!=typeof ResizeObserver&&(this.observers.elementResizeObserver=new ResizeObserver((function(){return n.refresh()}))),this.cache=new Map,this.elements=new Map,this.setOptions(o),this.setBeacons(t),this.init()}),[{key:"init",value:function(){}},{key:"setOptions",value:function(e){return this.options=f(f({},this.constructor.getDefaultOptions()),e),this}},{key:"setBeacons",value:function(e){var t=this;return this.removeAll(),this.beacons=!e||"string"==typeof e||Array.isArray(e)&&e.every((function(e){return"string"==typeof e}))?this.getDataBeacons(e):this.getJsBeacons(e),this.beacons.length&&(this.beacons.forEach((function(e){var n=e.element;if(n){var o=t.getEl(n);if(o){var r=t.createBeaconEl(e);r.hidden=!0,t.constructor.isFixed(o)&&r.classList.add(t.constructor.getFixedClass()),(o.parentElement&&o.parentElement!==document.body?o.parentElement:document.body).append(r),t.elements.set(e,r),t.setBeaconPosition(o,r,e),t.observeResizing(o)}}})),this.addOnWindowResizeListener()),this}},{key:"getBeacons",value:function(){return this.beacons}},{key:"getBeacon",value:function(e,t){var n=e&&"object"===(0,r.default)(e)?[e]:this.beacons.filter((function(t){return t.id===e}));return(0,i.default)(n,1)[0]||t}},{key:"getDataBeacons",value:function(e){var t=this,n="string"==typeof e?e.split(",").map((function(e){return e.trim()})):e,o=["[".concat(this.constructor.getBeaconDataPrefix(),"]")];n&&(o=[],n.forEach((function(e){o.push("[".concat(t.constructor.getBeaconDataPrefix(),"*='").concat(e,"']"))})));var r=Array.from(document.querySelectorAll(o.join(","))),s=new RegExp("^".concat(this.constructor.getBeaconDataPrefix(),"-([^-]+)$")),a=[];return r.forEach((function(e){var o=e.attributes[t.constructor.getBeaconDataPrefix()].value;o&&o.split(",").forEach((function(o){if(!n||n.includes(o)){for(var r={},c={},u=new RegExp("^".concat(t.constructor.getBeaconDataPrefix(),"-").concat(o,"-([^-]+)$")),l=0;l<e.attributes.length;l++){var p=e.attributes[l],d=p.name,v=p.value,h=s.test(d),b=u.test(d);if(h){var x=d.match(s);r[(0,i.default)(x,2)[1]]=v}else if(b){var y=d.match(u);c[(0,i.default)(y,2)[1]]=v}}var g=f(f(f({id:o,position:t.options.position},r),c),{},{element:e});(g.onclick||g.onClick)&&(g.onClick=function(e){if(g.onclick){var t=document.createElement("div");t.style.visibility="hidden",t.setAttribute("onclick",g.onclick),document.body.append(t),t.click(),document.body.removeChild(t)}else"function"==typeof g.onClick&&g.onClick.call(e,g)}),a.push(g)}}))})),a}},{key:"getJsBeacons",value:function(e){return(Array.isArray(e)?e:[e]).map((function(e,t){return f(f({},e),{},{id:e.id||t})}))}},{key:"createBeaconEl",value:function(e){var t=this,n=f({},e);return n.onClick=function(n){n.stopPropagation(),e.onClick&&e.onClick.call(t,n,e)},u.default.call(this,{beacon:n})}},{key:"getEl",value:function(e){return e instanceof HTMLElement?e:document.querySelector(e)}},{key:"setBeaconPosition",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=n.position,r=n.boundary;o=o||this.options.position,r="inner"===(r=r||this.options.boundary)?"inner":"outer";var i=e.offsetLeft,s=e.offsetTop,a=e.offsetWidth,c=e.offsetHeight,u=t.style,l=getComputedStyle(t),f=l.width,p=l.height;switch(f=parseInt(f,10),p=parseInt(p,10),t.removeAttribute("data-beacon-position"),t.removeAttribute("data-beacon-boundary"),t.setAttribute("data-beacon-position",o),t.setAttribute("data-beacon-boundary",r),o){case"top-left":"inner"===r?(u.left="".concat(i,"px"),u.top="".concat(s,"px")):(u.left="".concat(i-f,"px"),u.top="".concat(s-p,"px"));break;case"top":u.left="".concat(i+(a-f)/2,"px"),u.top="".concat("inner"===r?s:s-p,"px");break;case"top-right":"inner"===r?(u.left="".concat(a+i-f,"px"),u.top="".concat(s,"px")):(u.left="".concat(a+i,"px"),u.top="".concat(s-p,"px"));break;case"left":u.left="".concat("inner"===r?i:i-f,"px"),u.top="".concat(s+(c-p)/2,"px");break;case"right":u.left="".concat("inner"===r?i+a-f:i+a,"px"),u.top="".concat(s+(c-p)/2,"px");break;case"bottom-left":"inner"===r?(u.left="".concat(i,"px"),u.top="".concat(s+c-p,"px")):(u.left="".concat(i-f,"px"),u.top="".concat(s+c,"px"));break;case"bottom":u.left="".concat(i+(a-f)/2,"px"),u.top="".concat("inner"===r?s+c-p:s+c,"px");break;case"bottom-right":"inner"===r?(u.left="".concat(a+i-f,"px"),u.top="".concat(s+c-p,"px")):(u.left="".concat(a+i,"px"),u.top="".concat(s+c,"px"));break;default:t.setAttribute("data-beacon-position","center"),u.left="".concat(i+(a-f)/2,"px"),u.top="".concat(s+(c-p)/2,"px")}return this}},{key:"isCanShowBeacon",value:function(e){var t=e.canShow;return!(void 0!==t&&(!t||"function"==typeof t&&!1===t()))}},{key:"showAll",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this.beacons.forEach((function(n){e.show(n,t)})),this}},{key:"show",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.getBeacon(e);if(n){var o=this.elements.get(n);o&&(t||this.isCanShowBeacon(n))&&(o.hidden=!1)}return this}},{key:"hideAll",value:function(){var e=this;return this.beacons.forEach((function(t){e.hide(t)})),this}},{key:"hide",value:function(e){var t=this.getBeacon(e);if(t){var n=this.elements.get(t);n&&(n.hidden=!0)}return this}},{key:"removeAll",value:function(){var e=this;return this.beacons.forEach((function(t){e.remove(t)})),this.beacons=[],this.unobserveResizeAllElements(),this.removeOnWindowResizeListener(),this}},{key:"remove",value:function(e){var t=this.getBeacon(e),n=this.elements.get(t);if(n){n.parentNode.removeChild(n),-1!==this.beacons.indexOf(t)&&this.beacons.splice(this.beacons.indexOf(t),1),this.elements.delete(t);var o=this.getEl(t.element);o&&this.unobserveResizing(o)}return this.beacons.length||this.removeOnWindowResizeListener(),this}},{key:"refresh",value:function(){var e=this;return this.beacons.forEach((function(t){var n=t.element;if(n){var o=e.getEl(n),r=e.elements.get(t);o&&r&&e.setBeaconPosition(o,r,t)}})),this}},{key:"addOnWindowResizeListener",value:function(){return this.cache.set("onWindowResizeListener",this.getOnWindowResizeListener()),window.addEventListener("resize",this.cache.get("onWindowResizeListener"),!0),this}},{key:"getOnWindowResizeListener",value:function(){var e=this;return function(){return e.refresh()}}},{key:"removeOnWindowResizeListener",value:function(){return this.cache.has("onWindowResizeListener")&&(window.removeEventListener("resize",this.cache.get("onWindowResizeListener"),!0),this.cache.delete("onWindowResizeListener")),this}},{key:"observeResizing",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{box:"border-box"},n=this.observers.elementResizeObserver;return n&&n.observe(e,t),this}},{key:"unobserveResizing",value:function(e){var t=this.observers.elementResizeObserver;return t&&t.unobserve(e),this}},{key:"unobserveResizeAllElements",value:function(){var e=this.observers.elementResizeObserver;return e&&e.disconnect(),this}}],[{key:"getDefaultOptions",value:function(){return{position:"center",boundary:"inner"}}},{key:"getFixedClass",value:function(){return"gc-beacon-fixed"}},{key:"getBeaconDataPrefix",value:function(){return"data-beacon"}},{key:"isFixed",value:function(e){var t=e.parentNode;return!(!t||"HTML"===t.nodeName)&&("fixed"===getComputedStyle(e).getPropertyValue("position")||this.isFixed(t))}}])}()},390:function(e,t,n){"use strict";var o=n(994),r=o(n(738)),i=o(n(383)),s=o(n(579)),a=o(n(452)),c=o(n(395)),u=o(n(72)),l=o(n(511)),f=o(n(271));function p(e,t,n){return t=(0,u.default)(t),(0,a.default)(e,d()?Reflect.construct(t,n||[],(0,u.default)(e).constructor):t.apply(e,n))}function d(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(d=function(){return!!e})()}n(712),e.exports=function(e,t){t.beacons=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new(function(t){function n(){return(0,i.default)(this,n),p(this,n,arguments)}return(0,l.default)(n,t),(0,s.default)(n,[{key:"getDataBeacons",value:function(e){var t=this,o=(0,c.default)((0,u.default)(n.prototype),"getDataBeacons",this).call(this,e);return o.forEach((function(e){var n=e.id,o=e.element,r="",i="".concat(t.constructor.getBeaconDataPrefix(),"-tour"),s="".concat(t.constructor.getBeaconDataPrefix(),"-").concat(n,"-tour");o.attributes[i]&&(r=o.attributes[i].value);o.attributes[s]&&(r=o.attributes[s].value);r&&(e.tour=r)})),o}},{key:"createBeaconEl",value:function(t){var o=(0,c.default)((0,u.default)(n.prototype),"createBeaconEl",this).call(this,t);return t.tour&&o.addEventListener("click",(function(){var n=null;if("string"==typeof t.tour||Array.isArray(t.tour))n=new e(t.tour);else if(t.tour instanceof e)n=t.tour;else if("object"===(0,r.default)(t.tour)){var o=t.tour,i=o.steps,s=o.options;n=new e(i,s)}n&&n.start()})),o}}])}(f.default))(t,n)}}},48:function(e,t,n){"use strict";var o=n(994);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(702));t.default=function(e){var t=e.beacon,n=(0,r.default)('<div class="gc-beacon '.concat(t.class,'" />')).element;return n.addEventListener("click",(function(e){t.onClick(e)})),n}},702:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=function(e){var t=(new DOMParser).parseFromString(e,"text/html"),n=t.body.firstElementChild,o={};return n&&t.body.querySelectorAll("[ref]").forEach((function(e){o[e.getAttribute("ref")]=e,e.removeAttribute("ref")})),{refs:o,element:n}}},712:function(e,t,n){"use strict";n.r(t)},79:function(e){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o},e.exports.__esModule=!0,e.exports.default=e.exports},987:function(e){e.exports=function(e){if(Array.isArray(e))return e},e.exports.__esModule=!0,e.exports.default=e.exports},475:function(e){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e},e.exports.__esModule=!0,e.exports.default=e.exports},383:function(e){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.__esModule=!0,e.exports.default=e.exports},579:function(e,t,n){var o=n(736);function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,o(r.key),r)}}e.exports=function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e},e.exports.__esModule=!0,e.exports.default=e.exports},693:function(e,t,n){var o=n(736);e.exports=function(e,t,n){return(t=o(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.__esModule=!0,e.exports.default=e.exports},395:function(e,t,n){var o=n(552);function r(){return e.exports=r="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=o(e,t);if(r){var i=Object.getOwnPropertyDescriptor(r,t);return i.get?i.get.call(arguments.length<3?e:n):i.value}},e.exports.__esModule=!0,e.exports.default=e.exports,r.apply(null,arguments)}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports},72:function(e){function t(n){return e.exports=t=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},511:function(e,t,n){var o=n(636);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&o(e,t)},e.exports.__esModule=!0,e.exports.default=e.exports},994:function(e){e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports},156:function(e){e.exports=function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,r,i,s,a=[],c=!0,u=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(o=i.call(n)).done)&&(a.push(o.value),a.length!==t);c=!0);}catch(e){u=!0,r=e}finally{try{if(!c&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(u)throw r}}return a}},e.exports.__esModule=!0,e.exports.default=e.exports},752:function(e){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.__esModule=!0,e.exports.default=e.exports},452:function(e,t,n){var o=n(738).default,r=n(475);e.exports=function(e,t){if(t&&("object"==o(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return r(e)},e.exports.__esModule=!0,e.exports.default=e.exports},636:function(e){function t(n,o){return e.exports=t=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,o)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},715:function(e,t,n){var o=n(987),r=n(156),i=n(122),s=n(752);e.exports=function(e,t){return o(e)||r(e,t)||i(e,t)||s()},e.exports.__esModule=!0,e.exports.default=e.exports},552:function(e,t,n){var o=n(72);e.exports=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=o(e)););return e},e.exports.__esModule=!0,e.exports.default=e.exports},45:function(e,t,n){var o=n(738).default;e.exports=function(e,t){if("object"!=o(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)},e.exports.__esModule=!0,e.exports.default=e.exports},736:function(e,t,n){var o=n(738).default,r=n(45);e.exports=function(e){var t=r(e,"string");return"symbol"==o(t)?t:t+""},e.exports.__esModule=!0,e.exports.default=e.exports},738:function(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},122:function(e,t,n){var o=n(79);e.exports=function(e,t){if(e){if("string"==typeof e)return o(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(e,t):void 0}},e.exports.__esModule=!0,e.exports.default=e.exports}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,n),i.exports}return n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n(390)}()}));
//# sourceMappingURL=beacons.min.js.map