1/*! 2 * smartbanner.js v1.24.1 <https://github.com/ain/smartbanner.js#readme> 3 * Copyright © 2024 Ain Tohvri, contributors. Licensed under GPL-3.0. 4 */ 5(function () { 6 function r(e, n, t) { 7 function o(i, f) { 8 if (!n[i]) { 9 if (!e[i]) { 10 var c = "function" == typeof require && require; 11 if (!f && c) return c(i, !0); 12 if (u) return u(i, !0); 13 var a = new Error("Cannot find module '" + i + "'"); 14 throw ((a.code = "MODULE_NOT_FOUND"), a); 15 } 16 var p = (n[i] = { exports: {} }); 17 e[i][0].call( 18 p.exports, 19 function (r) { 20 var n = e[i][1][r]; 21 return o(n || r); 22 }, 23 p, 24 p.exports, 25 r, 26 e, 27 n, 28 t 29 ); 30 } 31 return n[i].exports; 32 } 33 for ( 34 var u = "function" == typeof require && require, i = 0; 35 i < t.length; 36 i++ 37 ) 38 o(t[i]); 39 return o; 40 } 41 return r; 42})()( 43 { 44 1: [ 45 function (require, module, exports) { 46 "use strict"; 47 Object.defineProperty(exports, "__esModule", { value: true }); 48 exports["default"] = void 0; 49 function _typeof(o) { 50 "@babel/helpers - typeof"; 51 return ( 52 (_typeof = 53 "function" == typeof Symbol && "symbol" == typeof Symbol.iterator 54 ? function (o) { 55 return typeof o; 56 } 57 : function (o) { 58 return o && 59 "function" == typeof Symbol && 60 o.constructor === Symbol && 61 o !== Symbol.prototype 62 ? "symbol" 63 : typeof o; 64 }), 65 _typeof(o) 66 ); 67 } 68 function _classCallCheck(instance, Constructor) { 69 if (!(instance instanceof Constructor)) { 70 throw new TypeError("Cannot call a class as a function"); 71 } 72 } 73 function _defineProperties(target, props) { 74 for (var i = 0; i < props.length; i++) { 75 var descriptor = props[i]; 76 descriptor.enumerable = descriptor.enumerable || false; 77 descriptor.configurable = true; 78 if ("value" in descriptor) descriptor.writable = true; 79 Object.defineProperty( 80 target, 81 _toPropertyKey(descriptor.key), 82 descriptor 83 ); 84 } 85 } 86 function _createClass(Constructor, protoProps, staticProps) { 87 if (protoProps) _defineProperties(Constructor.prototype, protoProps); 88 if (staticProps) _defineProperties(Constructor, staticProps); 89 Object.defineProperty(Constructor, "prototype", { writable: false }); 90 return Constructor; 91 } 92 function _toPropertyKey(t) { 93 var i = _toPrimitive(t, "string"); 94 return "symbol" == _typeof(i) ? i : String(i); 95 } 96 function _toPrimitive(t, r) { 97 if ("object" != _typeof(t) || !t) return t; 98 var e = t[Symbol.toPrimitive]; 99 if (void 0 !== e) { 100 var i = e.call(t, r || "default"); 101 if ("object" != _typeof(i)) return i; 102 throw new TypeError("@@toPrimitive must return a primitive value."); 103 } 104 return ("string" === r ? String : Number)(t); 105 } 106 var Bakery = (exports["default"] = (function () { 107 function Bakery() { 108 _classCallCheck(this, Bakery); 109 } 110 _createClass(Bakery, null, [ 111 { 112 key: "getCookieExpiresString", 113 value: function getCookieExpiresString(hideTtl) { 114 var now = new Date(); 115 var expireTime = new Date(now.getTime() + hideTtl); 116 return "expires=".concat(expireTime.toGMTString(), ";"); 117 }, 118 }, 119 { 120 key: "bake", 121 value: function bake(hideTtl, hidePath) { 122 document.cookie = "smartbanner_exited=1; " 123 .concat( 124 hideTtl ? Bakery.getCookieExpiresString(hideTtl) : "", 125 " path=" 126 ) 127 .concat(hidePath); 128 }, 129 }, 130 { 131 key: "unbake", 132 value: function unbake() { 133 document.cookie = 134 "smartbanner_exited=; expires=Thu, 01 Jan 1970 00:00:01 GMT;"; 135 }, 136 }, 137 { 138 key: "baked", 139 get: function get() { 140 var value = document.cookie.replace( 141 /(?:(?:^|.*;
141\s*)smartbanner_exited\s*=\s*([^;]*).*$)|^.*$/, 142 "$1" 143 ); 144 return value === "1"; 145 }, 146 }, 147 ]); 148 return Bakery; 149 })()); 150 }, 151 {}, 152 ], 153 2: [ 154 function (require, module, exports) { 155 (function (global) { 156 (function () { 157 "use strict"; 158 Object.defineProperty(exports, "__esModule", { value: true }); 159 exports["default"] = void 0; 160 function _typeof(o) { 161 "@babel/helpers - typeof"; 162 return ( 163 (_typeof = 164 "function" == typeof Symbol && 165 "symbol" == typeof Symbol.iterator 166 ? function (o) { 167 return typeof o; 168 } 169 : function (o) { 170 return o && 171 "function" == typeof Symbol && 172 o.constructor === Symbol && 173 o !== Symbol.prototype 174 ? "symbol" 175 : typeof o; 176 }), 177 _typeof(o) 178 ); 179 } 180 function _classCallCheck(instance, Constructor) { 181 if (!(instance instanceof Constructor)) { 182 throw new TypeError("Cannot call a class as a function"); 183 } 184 } 185 function _defineProperties(target, props) { 186 for (var i = 0; i < props.length; i++) { 187 var descriptor = props[i]; 188 descriptor.enumerable = descriptor.enumerable || false; 189 descriptor.configurable = true; 190 if ("value" in descriptor) descriptor.writable = true; 191 Object.defineProperty( 192 target, 193 _toPropertyKey(descriptor.key), 194 descriptor 195 ); 196 } 197 } 198 function _createClass(Constructor, protoProps, staticProps) { 199 if (protoProps) 200 _defineProperties(Constructor.prototype, protoProps); 201 if (staticProps) _defineProperties(Constructor, staticProps); 202 Object.defineProperty(Constructor, "prototype", { 203 writable: false, 204 }); 205 return Constructor; 206 } 207 function _toPropertyKey(t) { 208 var i = _toPrimitive(t, "string"); 209 return "symbol" == _typeof(i) ? i : String(i); 210 } 211 function _toPrimitive(t, r) { 212 if ("object" != _typeof(t) || !t) return t; 213 var e = t[Symbol.toPrimitive]; 214 if (void 0 !== e) { 215 var i = e.call(t, r || "default"); 216 if ("object" != _typeof(i)) return i; 217 throw new TypeError( 218 "@@toPrimitive must return a primitive value." 219 ); 220 } 221 return ("string" === r ? String : Number)(t); 222 } 223 var Detector = (exports["default"] = (function () { 224 function Detector() { 225 _classCallCheck(this, Detector); 226 } 227 _createClass(Detector, null, [ 228 { 229 key: "platform", 230 value: function platform() { 231 var maxTouchPoints = window.navigator.maxTouchPoints; 232 var userAgent = window.navigator.userAgent; 233 if (/Android/i.test(userAgent)) { 234 return "android"; 235 } else if ( 236 (!window.MSStream && 237 !/X11|Linux|Windows/i.test(userAgent) && 238 maxTouchPoints && 239 maxTouchPoints > 0) || 240 /iPhone|iPad|iPod/i.test(userAgent) 241 ) { 242 return "ios"; 243 } 244 }, 245 }, 246 { 247 key: "userAgentMatchesRegex", 248 value: function userAgentMatchesRegex(regexString) { 249 return new RegExp(regexString).test( 250 window.navigator.userAgent 251 ); 252 }, 253 }, 254 { 255 key: "jQueryMobilePage", 256 value: function jQueryMobilePage() { 257 return ( 258 typeof global.$ !== "undefined" && 259 global.$.mobile !== "undefined" && 260 document.querySelector(".ui-page") !== null 261 ); 262 }, 263 }, 264 { 265 key: "wrapperElement", 266 value: function wrapperElement() { 267 var selector = Detector.jQueryMobilePage() 268 ? ".ui-page" 269 : "html"; 270 return document.querySelectorAll(selector); 271 }, 272 }, 273 ]); 274 return Detector; 275 })()); 276 }).call(this); 277 }).call( 278 this, 279 typeof global !== "undefined" 280 ? global 281 : typeof self !== "undefined" 282 ? self 283 : typeof window !== "undefined" 284 ? window 285 : {} 286 ); 287 }, 288 {}, 289 ], 290 3: [
291 function (require, module, exports) { 292 "use strict"; 293 var _smartbanner = _interopRequireDefault(require("./smartbanner.js")); 294 function _interopRequireDefault(obj) { 295 return obj && obj.__esModule ? obj : { default: obj }; 296 } 297 var smartbanner; 298 window.addEventListener("load", function () { 299 smartbanner = new _smartbanner["default"](); 300 if (smartbanner.apiEnabled) { 301 window.smartbanner = smartbanner; 302 } else { 303 smartbanner.publish(); 304 } 305 }); 306 }, 307 { "./smartbanner.js": 5 }, 308 ], 309 4: [ 310 function (require, module, exports) { 311 "use strict"; 312 Object.defineProperty(exports, "__esModule", { value: true }); 313 exports["default"] = void 0; 314 function _typeof(o) { 315 "@babel/helpers - typeof"; 316 return ( 317 (_typeof = 318 "function" == typeof Symbol && "symbol" == typeof Symbol.iterator 319 ? function (o) { 320 return typeof o; 321 } 322 : function (o) { 323 return o && 324 "function" == typeof Symbol && 325 o.constructor === Symbol && 326 o !== Symbol.prototype 327 ? "symbol" 328 : typeof o; 329 }), 330 _typeof(o) 331 ); 332 } 333 function _classCallCheck(instance, Constructor) { 334 if (!(instance instanceof Constructor)) { 335 throw new TypeError("Cannot call a class as a function"); 336 } 337 } 338 function _defineProperties(target, props) { 339 for (var i = 0; i < props.length; i++) { 340 var descriptor = props[i]; 341 descriptor.enumerable = descriptor.enumerable || false; 342 descriptor.configurable = true; 343 if ("value" in descriptor) descriptor.writable = true; 344 Object.defineProperty( 345 target, 346 _toPropertyKey(descriptor.key), 347 descriptor 348 ); 349 } 350 } 351 function _createClass(Constructor, protoProps, staticProps) { 352 if (protoProps) _defineProperties(Constructor.prototype, protoProps); 353 if (staticProps) _defineProperties(Constructor, staticProps); 354 Object.defineProperty(Constructor, "prototype", { writable: false }); 355 return Constructor; 356 } 357 function _toPropertyKey(t) { 358 var i = _toPrimitive(t, "string"); 359 return "symbol" == _typeof(i) ? i : String(i); 360 } 361 function _toPrimitive(t, r) { 362 if ("object" != _typeof(t) || !t) return t; 363 var e = t[Symbol.toPrimitive]; 364 if (void 0 !== e) { 365 var i = e.call(t, r || "default"); 366 if ("object" != _typeof(i)) return i; 367 throw new TypeError("@@toPrimitive must return a primitive value."); 368 } 369 return ("string" === r ? String : Number)(t); 370 } 371 function valid(name) { 372 return ( 373 name.indexOf("smartbanner:") !== -1 && name.split(":")[1].length > 0 374 ); 375 } 376 function convertToCamelCase(name) { 377 var parts = name.split("-"); 378 parts.map(function (part, index) { 379 if (index > 0) { 380 parts[index] = part.charAt(0).toUpperCase() + part.substring(1); 381 } 382 }); 383 return parts.join(""); 384 } 385 var OptionParser = (exports["default"] = (function () { 386 function OptionParser() { 387 _classCallCheck(this, OptionParser); 388 } 389 _createClass(OptionParser, [ 390 { 391 key: "parse", 392 value: function parse() { 393 var metas = document.getElementsByTagName("meta"); 394 var options = {}; 395 Array.apply(null, metas).forEach(function (meta) { 396 var optionName = null; 397 var name = meta.getAttribute("name"); 398 var content = meta.getAttribute("content"); 399 if (name && content && valid(name) && content.length > 0) { 400 optionName = name.split(":")[1]; 401 if (optionName.indexOf("-") !== -1) { 402 optionName = convertToCamelCase(optionName); 403 } 404 options[optionName] = content; 405 } 406 }); 407 return options; 408 }, 409 }, 410 ]); 411 return OptionParser; 412 })()); 413 }, 414 {}, 415 ], 416 5: [
417 function (require, module, exports) { 418 "use strict"; 419 Object.defineProperty(exports, "__esModule", { value: true }); 420 exports["default"] = void 0; 421 var _optionparser = _interopRequireDefault( 422 require("./optionparser.js") 423 ); 424 var _detector = _interopRequireDefault(require("./detector.js")); 425 var _bakery = _interopRequireDefault(require("./bakery.js")); 426 function _interopRequireDefault(obj) { 427 return obj && obj.__esModule ? obj : { default: obj }; 428 } 429 function _typeof(o) { 430 "@babel/helpers - typeof"; 431 return ( 432 (_typeof = 433 "function" == typeof Symbol && "symbol" == typeof Symbol.iterator 434 ? function (o) { 435 return typeof o; 436 } 437 : function (o) { 438 return o && 439 "function" == typeof Symbol && 440 o.constructor === Symbol && 441 o !== Symbol.prototype 442 ? "symbol" 443 : typeof o; 444 }), 445 _typeof(o) 446 ); 447 } 448 function _classCallCheck(instance, Constructor) { 449 if (!(instance instanceof Constructor)) { 450 throw new TypeError("Cannot call a class as a function"); 451 } 452 } 453 function _defineProperties(target, props) { 454 for (var i = 0; i < props.length; i++) { 455 var descriptor = props[i]; 456 descriptor.enumerable = descriptor.enumerable || false; 457 descriptor.configurable = true; 458 if ("value" in descriptor) descriptor.writable = true; 459 Object.defineProperty( 460 target, 461 _toPropertyKey(descriptor.key), 462 descriptor 463 ); 464 } 465 } 466 function _createClass(Constructor, protoProps, staticProps) { 467 if (protoProps) _defineProperties(Constructor.prototype, protoProps); 468 if (staticProps) _defineProperties(Constructor, staticProps); 469 Object.defineProperty(Constructor, "prototype", { writable: false }); 470 return Constructor; 471 } 472 function _toPropertyKey(t) { 473 var i = _toPrimitive(t, "string"); 474 return "symbol" == _typeof(i) ? i : String(i); 475 } 476 function _toPrimitive(t, r) { 477 if ("object" != _typeof(t) || !t) return t; 478 var e = t[Symbol.toPrimitive]; 479 if (void 0 !== e) { 480 var i = e.call(t, r || "default"); 481 if ("object" != _typeof(i)) return i; 482 throw new TypeError("@@toPrimitive must return a primitive value."); 483 } 484 return ("string" === r ? String : Number)(t); 485 } 486 var DEFAULT_PLATFORMS = "android,ios"; 487 var DEFAULT_CLOSE_LABEL = "Close"; 488 var DEFAULT_BUTTON_LABEL = "View"; 489 var datas = { 490 originalTop: "data-smartbanner-original-top", 491 originalMarginTop: "data-smartbanner-original-margin-top", 492 }; 493 function handleExitClick(event, self) { 494 self.exit(); 495 event.preventDefault(); 496 } 497 function handleClickout(event, self) { 498 self.clickout(); 499 } 500 function handleJQueryMobilePageLoad(event) { 501 if (!this.positioningDisabled) { 502 setContentPosition(event.data.height); 503 } 504 } 505 function addEventListeners(self) { 506 var closeIcon = document.querySelector(".js_smartbanner__exit"); 507 closeIcon.addEventListener("click", function (event) { 508 return handleExitClick(event, self); 509 }); 510 var button = document.querySelector(".js_smartbanner__button"); 511 button.addEventListener("click", function (event) { 512 return handleClickout(event, self); 513 }); 514 if (_detector["default"].jQueryMobilePage()) { 515 $(document).on("pagebeforeshow", self, handleJQueryMobilePageLoad); 516 } 517 } 518 function removeEventListeners() { 519 if (_detector["default"].jQueryMobilePage()) { 520 $(document).off("pagebeforeshow", handleJQueryMobilePageLoad); 521 } 522 } 523 function setContentPosition(value) { 524 var wrappers = _detector["default"].wrapperElement(); 525 for (var i = 0, l = wrappers.length, wrapper; i < l; i++) { 526 wrapper = wrappers[i]; 527 if (_detector["default"].jQueryMobilePage()) { 528 if (wrapper.getAttribute(datas.originalTop)) { 529 continue; 530 } 531 var top = parseFloat(getComputedStyle(wrapper).top); 532 wrapper.setAttribute(datas.originalTop, isNaN(top) ? 0 : top); 533 wrapper.style.top = value + "px"; 534 } else { 535 if (wrapper.getAttribute(datas.originalMarginTop)) { 536 continue; 537 } 538 var margin = parseFloat(getComputedStyle(wrapper).marginTop); 539 wrapper.setAttribute( 540 datas.originalMarginTop, 541 isNaN(margin) ? 0 : margin 542 ); 543 wrapper.style.marginTop = value + "px"; 544 } 545 } 546 } 547 function restoreContentPosition() { 548 var wrappers = _detector["default"].wrapperElement(); 549 for (var i = 0, l = wrappers.length, wrapper; i < l; i++) { 550 wrapper = wrappers[i]; 551 if ( 552 _detector["default"].jQueryMobilePage() && 553 wrapper.getAttribute(datas.originalTop) 554 ) { 555 wrapper.style.top = 556 wrapper.getAttribute(datas.originalTop) + "px"; 557 } else if (wrapper.getAttribute(datas.originalMarginTop)) { 558 wrapper.style.marginTop = 559 wrapper.getAttribute(datas.originalMarginTop) + "px"; 560 } 561 } 562 } 563 var SmartBanner = (exports["default"] = (function () { 564 function SmartBanner() { 565 _classCallCheck(this, SmartBanner); 566 var parser = new _optionparser["default"](); 567 this.options = parser.parse(); 568 this.platform = _detector["default"].platform(); 569 var event = new Event("smartbanner.init"); 570 document.dispatchEvent(event); 571 } 572 _createClass(SmartBanner, [ 573 { 574 key: "originalTop", 575 get: function get() { 576 var wrapper = _detector["default"].wrapperElement()[0]; 577 return parseFloat(wrapper.getAttribute(datas.originalTop)); 578 }, 579 }, 580 { 581 key: "originalTopMargin", 582 get: function get() { 583 var wrapper = _detector["default"].wrapperElement()[0]; 584 return parseFloat( 585 wrapper.getAttribute(datas.originalMarginTop) 586 ); 587 }, 588 }, 589 { 590 key: "priceSuffix", 591 get: function get() { 592 if (this.platform === "ios" && this.options.priceSuffixApple) { 593 return this.options.priceSuffixApple; 594 } else if ( 595 this.platform === "android" && 596 this.options.priceSuffixGoogle 597 ) { 598 return this.options.priceSuffixGoogle; 599 } 600 return ""; 601 }, 602 }, 603 { 604 key: "price", 605 get: function get() { 606 if (this.options.price && this.options.price !== "") { 607 return this.options.price; 608 } else { 609 return ""; 610 } 611 }, 612 }, 613 { 614 key: "icon", 615 get: function get() { 616 if (this.platform === "android") { 617 return this.options.iconGoogle; 618 } else { 619 return this.options.iconApple; 620 } 621 }, 622 }, 623 { 624 key: "buttonUrl", 625 get: function get() { 626 if (this.platform === "android") { 627 return this.options.buttonUrlGoogle; 628 } else if (this.platform === "ios") { 629 return this.options.buttonUrlApple; 630 } 631 return "#"; 632 }, 633 }, 634 { 635 key: "closeLabel", 636 get: function get() { 637 return this.options.closeLabel !== undefined 638 ? this.options.closeLabel 639 : DEFAULT_CLOSE_LABEL; 640 }, 641 }, 642 { 643 key: "buttonLabel", 644 get: function get() { 645 var buttonLabel = this.options.button; 646 if (this.platform === "android" && this.options.buttonGoogle) { 647 buttonLabel = this.options.buttonGoogle; 648 } else if ( 649 this.platform === "ios" && 650 this.options.buttonApple 651 ) { 652 buttonLabel = this.options.buttonApple; 653 } 654 return buttonLabel || DEFAULT_BUTTON_LABEL; 655 }, 656 }, 657 { 658 key: "html", 659 get: function get() { 660 var modifier = !this.options.customDesignModifier 661 ? this.platform 662 : this.options.customDesignModifier; 663 return '<div class="smartbanner smartbanner--' 664 .concat( 665 modifier, 666 ' js_smartbanner">
666\n <span class="smartbanner__exit js_smartbanner__exit" aria-label="' 667 ) 668 .concat( 669 this.closeLabel, 670 '"></span>\n <div class="smartbanner__icon" style="background-image: url(' 671 ) 672 .concat( 673 this.icon, 674 ');"></div>\n <div class="smartbanner__info">\n <div>\n <div class="smartbanner__info__title">' 675 ) 676 .concat( 677 this.options.title, 678 '</div>\n <div class="smartbanner__info__author">' 679 ) 680 .concat( 681 this.options.author, 682 '</div>\n <div class="smartbanner__info__price">' 683 ) 684 .concat(this.price) 685 .concat( 686 this.priceSuffix, 687 '</div>\n </div>\n </div>\n <a href="' 688 ) 689 .concat( 690 this.buttonUrl, 691 '" target="_blank" class="smartbanner__button js_smartbanner__button" rel="noopener" aria-label="' 692 ) 693 .concat( 694 this.buttonLabel, 695 '"><span class="smartbanner__button__label">' 696 ) 697 .concat(this.buttonLabel, "</span></a>\n </div>"); 698 }, 699 }, 700 { 701 key: "height", 702 get: function get() { 703 try { 704 return document.querySelector(".js_smartbanner").offsetHeight; 705 } catch (error) { 706 return 0; 707 } 708 }, 709 }, 710 { 711 key: "platformEnabled", 712 get: function get() { 713 var enabledPlatforms = 714 this.options.enabledPlatforms || DEFAULT_PLATFORMS; 715 return ( 716 enabledPlatforms && 717 enabledPlatforms 718 .replace(/\s+/g, "") 719 .split(",") 720 .indexOf(this.platform) !== -1 721 ); 722 }, 723 }, 724 { 725 key: "positioningDisabled", 726 get: function get() { 727 return this.options.disablePositioning === "true"; 728 }, 729 }, 730 { 731 key: "apiEnabled", 732 get: function get() { 733 return ( 734 this.options.api === "true" || this.options.api === "yes" 735 ); 736 }, 737 }, 738 { 739 key: "userAgentExcluded", 740 get: function get() { 741 if (!this.options.excludeUserAgentRegex) { 742 return false; 743 } 744 return _detector["default"].userAgentMatchesRegex( 745 this.options.excludeUserAgentRegex 746 ); 747 }, 748 }, 749 { 750 key: "userAgentIncluded", 751 get: function get() { 752 if (!this.options.includeUserAgentRegex) { 753 return false; 754 } 755 return _detector["default"].userAgentMatchesRegex( 756 this.options.includeUserAgentRegex 757 ); 758 }, 759 }, 760 { 761 key: "hideTtl", 762 get: function get() { 763 return this.options.hideTtl 764 ? parseInt(this.options.hideTtl) 765 : false; 766 }, 767 }, 768 { 769 key: "hidePath", 770 get: function get() { 771 return this.options.hidePath ? this.options.hidePath : "/"; 772 }, 773 }, 774 { 775 key: "publish", 776 value: function publish() { 777 if (Object.keys(this.options).length === 0) { 778 throw new Error( 779 "No options detected. Please consult documentation." 780 ); 781 } 782 if (_bakery["default"].baked) { 783 return false;
784 } 785 if (this.userAgentExcluded) { 786 return false; 787 } 788 if (!(this.platformEnabled || this.userAgentIncluded)) { 789 return false; 790 } 791 var bannerDiv = document.createElement("div"); 792 document.querySelector("body").prepend(bannerDiv); 793 bannerDiv.outerHTML = this.html; 794 var event = new Event("smartbanner.view"); 795 document.dispatchEvent(event); 796 if (!this.positioningDisabled) { 797 setContentPosition(this.height); 798 } 799 addEventListeners(this); 800 }, 801 }, 802 { 803 key: "exit", 804 value: function exit() { 805 removeEventListeners(); 806 if (!this.positioningDisabled) { 807 restoreContentPosition(); 808 } 809 var banner = document.querySelector(".js_smartbanner"); 810 document.querySelector("body").removeChild(banner); 811 var event = new Event("smartbanner.exit"); 812 document.dispatchEvent(event); 813 _bakery["default"].bake(this.hideTtl, this.hidePath); 814 }, 815 }, 816 { 817 key: "clickout", 818 value: function clickout() { 819 var event = new Event("smartbanner.clickout"); 820 document.dispatchEvent(event); 821 }, 822 }, 823 ]); 824 return SmartBanner; 825 })()); 826 }, 827 { "./bakery.js": 1, "./detector.js": 2, "./optionparser.js": 4 }, 828 ], 829 }, 830 {}, 831 [3] 832);
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.