1var __extends = (this && this.__extends) || (function () { 2 var extendStatics = function (d, b) { 3 extendStatics = Object.setPrototypeOf || 4 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || 5 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; 6 return extendStatics(d, b); 7 }; 8 return function (d, b) { 9 if (typeof b !== "function" && b !== null) 10 throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); 11 extendStatics(d, b); 12 function __() { this.constructor = d; } 13 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 14 }; 15})(); 16var SquillaIUX; 17(function (SquillaIUX) { 18 function emptyConfigData() { 19 return { tests: {} }; 20 } 21 SquillaIUX.emptyConfigData = emptyConfigData; 22})(SquillaIUX || (SquillaIUX = {})); 23var SquillaIUX; 24(function (SquillaIUX) { 25 function convertTestConfigData(_data) { 26 if (!_data) { 27 return null; 28 } 29 var testConfig = _data; 30 if (typeof _data.cookieName !== "undefined") { 31 testConfig.storeKeyName = _data.cookieName; 32 } 33 if (typeof _data.remakeCookie !== "undefined") { 34 testConfig.remakeValue = _data.remakeCookie; 35 } 36 if (typeof _data.patterns !== "undefined") { 37 for (var i = 0, l = _data.patterns.length; i < l; i++) { 38 if (typeof _data.patterns[i].cookie !== "undefined") { 39 testConfig.patterns[i].range = _data.patterns[i].cookie; 40 } 41 } 42 } 43 return testConfig; 44 } 45 SquillaIUX.convertTestConfigData = convertTestConfigData; 46 function convertConfigData(_data) { 47 var configData = SquillaIUX.emptyConfigData(); 48 if (!_data) { 49 return configData; 50 } 51 if (typeof _data.tests !== "undefined") { 52 for (var testName in _data.tests) { 53 configData.tests[testName] = convertTestConfigData(_data.tests[testName]); 54 } 55 } 56 return configData; 57 } 58 SquillaIUX.convertConfigData = convertConfigData; 59})(SquillaIUX || (SquillaIUX = {})); 60var SquillaIUX; 61(function (SquillaIUX) { 62 var Config = (function () { 63 function Config(configData) { 64 this.setConfigData(configData); 65 } 66 Config.prototype.setConfigData = function (_data) { 67 if (_data) { 68 this.data = SquillaIUX.convertConfigData(_data); 69 } 70 else { 71 this.data = SquillaIUX.emptyConfigData(); 72 } 73 }; 74 Config.prototype.getTest = function (testName) { 75 if (!this.data) { 76 return null; 77 } 78 return this.data.tests[testName]; 79 }; 80 Config.prototype.getTests = function () { 81 if (!this.data) { 82 return null; 83 } 84 return this.data.tests; 85 }; 86 Config.prototype.setTest = function (testName, testConfig) { 87 if (!this.data) { 88 this.setConfigData(null); 89 } 90 this.data.tests = this.data.tests || {}; 91 this.data.tests[testName] = SquillaIUX.convertTestConfigData(testConfig); 92 }; 93 return Config; 94 }()); 95 SquillaIUX.Config = Config; 96})(SquillaIUX || (SquillaIUX = {})); 97var SquillaIUX; 98(function (SquillaIUX) { 99 var originalPattern = "O"; 100 function setOriginalPattern(pattern) { 101 originalPattern = pattern; 102 } 103 SquillaIUX.setOriginalPattern = setOriginalPattern; 104 function getOriginalPattern() { 105 return originalPattern; 106 } 107 SquillaIUX.getOriginalPattern = getOriginalPattern; 108 var cookieExpiresDate = 14; 109 function setTestCookieExpiresDate(date) { 110 cookieExpiresDate = date; 111 } 112 SquillaIUX.setTestCookieExpiresDate = setTestCookieExpiresDate; 113 function getTestCookieExpiresDate() { 114 return cookieExpiresDate; 115 } 116 SquillaIUX.getTestCookieExpiresDate = getTestCookieExpiresDate; 117 var storageKeyName = "jln_ab_squilla"; 118 function setStorageKeyName(name) { 119 storageKeyName = name; 120 } 121 SquillaIUX.setStorageKeyName = setStorageKeyName; 122 function getStorageKeyName() { 123 return storageKeyName; 124 } 125 SquillaIUX.getStorageKeyName = getStorageKeyName; 126 var storageExpiresDate = 14; 127 function setStorageExpiresDate(date) { 128 storageExpiresDate = date; 129 } 130 SquillaIUX.setStorageExpiresDate = setStorageExpiresDate; 131 function getStorageExpiresDate() { 132 return storageExpiresDate; 133 } 134 SquillaIUX.getStorageExpiresDate = getStorageExpiresDate; 135 var StoreType; 136 (function (StoreType) { 137 StoreType[StoreType["cookie"] = 0] = "cookie"; 138 StoreType[StoreType["localStorage"] = 1] = "localStorage"; 139 })(StoreType = SquillaIUX.StoreType || (SquillaIUX.StoreType = {})); 140 var storeType = StoreType.localStorage; 141 function setStoreType(type) { 142 storeType = type; 143 } 144 SquillaIUX.setStoreType = setStoreType; 145 function getStoreType() { 146 return storeType; 147 } 148 SquillaIUX.getStoreType = getStoreType; 149 function sendResult(testKey, pattern) { 150 pattern = pattern || originalPattern; 151 window["iux_abtest"] = testKey + "-" + pattern; 152 return; 153 }
154 SquillaIUX.sendResult = sendResult; 155 function setSendResultFunction(fn) { 156 var _fn = fn; 157 SquillaIUX.sendResult = function (key, pat) { 158 if (pat === void 0) { pat = originalPattern; } 159 _fn(key, pat); 160 }; 161 } 162 SquillaIUX.setSendResultFunction = setSendResultFunction; 163})(SquillaIUX || (SquillaIUX = {})); 164var SquillaIUX; 165(function (SquillaIUX) { 166 function isBot() { 167 var ua = (function () { 168 if (!navigator || !navigator.userAgent) { 169 return null; 170 } 171 return navigator.userAgent; 172 })(); 173 return (!ua || 174 !/^Mozilla|^DoCoMo|^KDDI|^SoftBank|^Opera|^Dalvik|^BlackBerry/.test(ua) || 175 /[b|B]ot|[c|C]rawler|[s|S]pider/.test(ua)); 176 } 177 SquillaIUX.isBot = isBot; 178 function triggerCall(checkTrigger, fn) { 179 var ti, isDone = false, d = document; 180 if (checkTrigger()) { 181 fn(); 182 return; 183 } 184 var onReadyStateChange = function () { 185 if (d.readyState === "interactive") { 186 if (!isDone) { 187 if (checkTrigger()) { 188 isDone = true; 189 fn(); 190 } 191 } 192 return; 193 } 194 if (d.readyState === "complete") { 195 if (!isDone) { 196 isDone = true; 197 if (checkTrigger()) { 198 fn(); 199 } 200 } 201 } 202 }; 203 if (d.addEventListener) { 204 d.addEventListener("readystatechange", onReadyStateChange); 205 } 206 else { 207 d.onreadystatechange = onReadyStateChange; 208 } 209 ti = setInterval(function () { 210 if (isDone) { 211 clearInterval(ti); 212 return; 213 } 214 if (checkTrigger()) { 215 clearInterval(ti); 216 isDone = true; 217 fn(); 218 } 219 }, 0); 220 } 221 function triggerBySelector(selector, fn) { 222 var checkTrigger, d = document; 223 if (typeof jQuery === "undefined") { 224 if (!d.querySelectorAll) { 225 checkTrigger = function () { 226 return false; 227 }; 228 } 229 checkTrigger = function () { 230 return d.querySelectorAll(selector).length > 0; 231 }; 232 } 233 else { 234 checkTrigger = function () { 235 return jQuery(selector).length > 0; 236 }; 237 } 238 triggerCall(checkTrigger, fn); 239 } 240 SquillaIUX.triggerBySelector = triggerBySelector; 241 function triggerByVariable(varName, fn) { 242 triggerCall(function () { 243 return typeof window[varName] !== "undefined"; 244 }, fn); 245 } 246 SquillaIUX.triggerByVariable = triggerByVariable; 247 function addResources(resources) { 248 addStyleResources(resources.css); 249 addScriptResources(resources.script); 250 } 251 SquillaIUX.addResources = addResources; 252 function preLoadStyleResources(csses) { 253 if (typeof csses !== "undefined" && csses.length > 0) { 254 var hd = document.getElementsByTagName("head")[0]; 255 for (var _i = 0, csses_1 = csses; _i < csses_1.length; _i++) { 256 var url = csses_1[_i]; 257 var link = document.createElement("link"); 258 link.rel = "stylesheet"; 259 link.type = "text/css"; 260 link.href = url; 261 link.media = "all"; 262 hd.appendChild(link); 263 setTimeout((function (_link) { 264 return function () { 265 hd.removeChild(_link); 266 }; 267 })(link), 10); 268 } 269 } 270 } 271 SquillaIUX.preLoadStyleResources = preLoadStyleResources; 272 function addStyleResources(csses) { 273 if (typeof csses !== "undefined" && csses.length > 0) { 274 var hd = document.getElementsByTagName("head")[0]; 275 for (var _i = 0, csses_2 = csses; _i < csses_2.length; _i++) { 276 var url = csses_2[_i]; 277 var link = document.createElement("link"); 278 link.rel = "stylesheet"; 279 link.type = "text/css"; 280 link.href = url; 281 link.media = "all"; 282 hd.appendChild(link); 283 } 284 } 285 } 286 SquillaIUX.addStyleResources = addStyleResources; 287 function addScriptResources(scripts) { 288 if (typeof scripts !== "undefined" && scripts.length > 0) { 289 var hd = document.getElementsByTagName("head")[0]; 290 for (var _i = 0, scripts_1 = scripts; _i < scripts_1.length; _i++) { 291 var url = scripts_1[_i]; 292 if (document.readyState === "complete") { 293 var scr = document.createElement("script"); 294 scr.type = "text/javascript"; 295 scr.src = url; 296 hd.appendChild(scr); 297 } 298 else { 299 document.write([ 300 "<scr", 301 'ipt type="text/javascript" src="', 302 url, 303 '"></scr', 304 "ipt>" 305 ].join("")); 306 } 307 } 308 } 309 } 310 SquillaIUX.addScriptResources = addScriptResources; 311 function isLocalStorageEnable() { 312 try { 313 var storage = window.localStorage; 314 if (!storage) { 315 return false;
316 } 317 if (!("getItem" in storage && 318 "setItem" in storage && 319 "removeItem" in storage)) { 320 return false; 321 } 322 var key = "__squilla__check__"; 323 var val = "check"; 324 storage.setItem(key, val); 325 if (storage.getItem(key) !== val) { 326 return false; 327 } 328 storage.removeItem(key); 329 return true; 330 } 331 catch (e) { 332 return false; 333 } 334 } 335 SquillaIUX.isLocalStorageEnable = isLocalStorageEnable; 336 function getCookie(key) { 337 var value = ""; 338 var cookie = "; ".concat(document.cookie); 339 var parts = cookie.split("; ".concat(key, "=")); 340 if (parts.length === 2) { 341 value = decodeURIComponent(parts 342 .pop() 343 .split(";") 344 .shift()); 345 } 346 return value; 347 } 348 SquillaIUX.getCookie = getCookie; 349 function getObjectFromRequestParameters() { 350 var queries = location.search.replace(/^\?/, "").split("&"); 351 var params = {}; 352 var decode = function (s) { 353 return decodeURIComponent(s.replace(/\+/g, " ")); 354 }; 355 for (var _i = 0, queries_1 = queries; _i < queries_1.length; _i++) { 356 var query = queries_1[_i]; 357 var pair = query.split("="); 358 if (pair[0]) { 359 try { 360 params[decode(pair[0])] = decode(pair[1] || ""); 361 } 362 catch (e) { } 363 } 364 } 365 return params; 366 } 367 SquillaIUX.getObjectFromRequestParameters = getObjectFromRequestParameters; 368})(SquillaIUX || (SquillaIUX = {})); 369var SquillaIUX; 370(function (SquillaIUX) { 371 var Test = (function () { 372 function Test(testName, config) { 373 this.events = { 374 begin: function () { 375 return; 376 }, 377 end: function () { 378 return; 379 }, 380 }; 381 this.testVal = null; 382 this.addtionalStyles = []; 383 var conf = config.getTest(testName); 384 if (!conf) { 385 return; 386 } 387 if (typeof conf.stopDate !== 'undefined') { 388 try { 389 var stopDate = Date.parse("".concat(conf.stopDate, " 23:59:59 GMT+0900")); 390 if (stopDate < new Date().getTime()) { 391 return; 392 } 393 } 394 catch (e) { 395 return; 396 } 397 } 398 var testStore = SquillaIUX.TestStoreManager.getTestStore(config); 399 if (!testStore.isEnable()) { 400 return; 401 } 402 this.testVal = testStore.getVal(testName); 403 this.testName = testName; 404 this.testConfig = conf; 405 var testPattern = testStore.checkPattern(testName); 406 this.pattern = testPattern !== null ? testPattern.pattern : void 0; 407 if (testPattern && 408 typeof testPattern.additionalResources !== 'undefined') { 409 SquillaIUX.addScriptResources(testPattern.additionalResources.script); 410 this.addtionalStyles = testPattern.additionalResources.css; 411 SquillaIUX.preLoadStyleResources(this.addtionalStyles); 412 } 413 } 414 Test.prototype.on = function (eventName, proc) { 415 if (typeof this.events[eventName] === 'function') { 416 this.events[eventName] = proc; 417 return this; 418 } 419 if (!this.pattern) { 420 return this; 421 } 422 if (eventName === this.pattern) { 423 this.testProc = proc; 424 } 425 return this; 426 }; 427 Test.prototype.begin = function (proc) { 428 return this.on('begin', proc); 429 }; 430 Test.prototype.end = function (proc) { 431 return this.on('end', proc); 432 }; 433 Test.prototype.proc = function (pattern, proc) { 434 return this.on(pattern, proc); 435 }; 436 Test.prototype.run = function () { 437 if (SquillaIUX.isBot()) { 438 return; 439 } 440 var ydUse = SquillaIUX.getCookie('ydUse'); 441 if (ydUse === '1' || ydUse === '2') { 442 return; 443 } 444 if (SquillaIUX.getObjectFromRequestParameters()['sc_ap'] === '1' || 445 SquillaIUX.getCookie('sc_ap') === '1') { 446 return; 447 } 448 var ua = SquillaIUX.target; 449 if (ua.browser.android && ua.browser.version < 10) { 450 return; 451 } 452 if (ua.browser.ios && ua.browser.version < 16) { 453 return; 454 } 455 if (ua.browser.ffos) { 456 return; 457 } 458 if (ua.isPC && ua.browser.ie && ua.browser.version < 11) { 459 return; 460 } 461 if (ua.isPC && 462 !ua.browser.chrome && 463 !ua.browser.edge && 464 !ua.browser.ie && 465 !ua.browser.safari) { 466 return; 467 } 468 SquillaIUX.addStyleResources(this.addtionalStyles); 469 this.events['begin'](); 470 if (typeof this.testProc === 'function') { 471 this.testProc(); 472 } 473 if (this.testVal !== null) { 474 var conf = this.testConfig;
475 SquillaIUX.sendResult(typeof conf.testKey === 'string' ? conf.testKey : this.testName, this.pattern); 476 } 477 this.events['end'](); 478 }; 479 return Test; 480 }()); 481 SquillaIUX.Test = Test; 482})(SquillaIUX || (SquillaIUX = {})); 483var SquillaIUX; 484(function (SquillaIUX) { 485 var config; 486 SquillaIUX.target = getUA(); 487 function version() { 488 return "Squilla IUX 0.1.8 1852bf5 build: 2025-01-08T01:08Z"; 489 } 490 SquillaIUX.version = version; 491 function init(_config) { 492 config = new SquillaIUX.Config(_config); 493 } 494 SquillaIUX.init = init; 495 function setTestConfig(testName, testConfig) { 496 config = config || new SquillaIUX.Config(null); 497 config.setTest(testName, testConfig); 498 } 499 SquillaIUX.setTestConfig = setTestConfig; 500 function test(testName) { 501 var abTest = new SquillaIUX.Test(testName, config); 502 return abTest; 503 } 504 SquillaIUX.test = test; 505 function __c() { 506 return config; 507 } 508 SquillaIUX.__c = __c; 509 function getUA() { 510 var target = { 511 isPC: false, 512 isTablet: false, 513 isMobile: false, 514 browser: {} 515 }; 516 var ua = navigator.userAgent.toLowerCase(); 517 target.isMobile = 518 (ua.indexOf("windows") !== -1 && ua.indexOf("phone") !== -1) || 519 ua.indexOf("iphone") !== -1 || 520 ua.indexOf("ipod") !== -1 || 521 (ua.indexOf("android") !== -1 && ua.indexOf("mobile") !== -1) || 522 (ua.indexOf("firefox") !== -1 && ua.indexOf("mobile") !== -1) || 523 ua.indexOf("blackberry") !== -1; 524 target.isTablet = 525 (ua.indexOf("windows") !== -1 && ua.indexOf("touch") !== -1) || 526 ua.indexOf("ipad") !== -1 || 527 (ua.indexOf("android") !== -1 && ua.indexOf("mobile") === -1) || 528 (ua.indexOf("firefox") !== -1 && ua.indexOf("tablet") !== -1) || 529 ua.indexOf("kindle") !== -1 || 530 ua.indexOf("silk") !== -1 || 531 ua.indexOf("playbook") !== -1; 532 target.isPC = !target.isMobile && !target.isTablet; 533 var versionMatcher = { 534 ie: /(msie|rv:?)\s?([0-9]+)([\.0-9]+)/, 535 ios: /(os)\s([0-9]+)([_0-9]+)/, 536 android: /(android)\s([0-9]+)([\.0-9]+)?/ 537 }; 538 var prop, matcher; 539 target.browser.version = null; 540 target.browser.ie = /msie/.test(ua) || /trident/.test(ua); 541 target.browser.opera = /opera/.test(ua); 542 target.browser.safari = /safari/.test(ua) && !/chrome/.test(ua); 543 target.browser.iphone = /iphone/.test(ua); 544 target.browser.ipod = /ipod/.test(ua); 545 target.browser.ipad = /ipad/.test(ua); 546 target.browser.android = /android/.test(ua); 547 target.browser.ios = 548 target.browser.iphone || target.browser.ipod || target.browser.ipad; 549 target.browser.ffos = 550 /firefox/.test(ua) && 551 /gecko/.test(ua) && 552 /mobile/.test(ua) && 553 !/android/.test(ua); 554 target.browser.chrome = /chrome/.test(ua) && !/edge/.test(ua); 555 target.browser.edge = /chrome/.test(ua) && /edge/.test(ua); 556 if (target.browser.ie || target.browser.ios || target.browser.android) { 557 if (target.browser.ie) { 558 prop = "ie"; 559 } 560 else if (target.browser.ios) { 561 prop = "ios"; 562 } 563 else if (target.browser.android) { 564 prop = "android"; 565 } 566 matcher = ua.match(versionMatcher[prop]); 567 if (matcher) { 568 target.browser.version = parseInt(matcher[2], 10); 569 } 570 } 571 return target; 572 } 573})(SquillaIUX || (SquillaIUX = {})); 574var SquillaIUX; 575(function (SquillaIUX) { 576 var TestStore = (function () { 577 function TestStore(config) { 578 this.config = config; 579 } 580 TestStore.prototype.getTestConfig = function (testName) { 581 if (!this.isEnable()) { 582 return null; 583 } 584 if (!this.config) { 585 return null; 586 } 587 var conf = this.config.getTest(testName); 588 if (!conf) { 589 return null; 590 } 591 return conf; 592 }; 593 TestStore.prototype.getStoreKey = function (testName) { 594 var conf = this.getTestConfig(testName); 595 if (!conf) { 596 return null; 597 } 598 return conf.storeKeyName ? conf.storeKeyName : testName; 599 }; 600 TestStore.prototype.getVal = function (testName) { 601 var _this = this; 602 var conf = this.getTestConfig(testName); 603 if (!conf) { 604 return null; 605 }
606 var storeVal = (function (keyName, remake) { 607 var val = _this.getItem(keyName); 608 if (val === null && remake) { 609 val = 0 | (Math.random() * 100); 610 } 611 return val; 612 })(this.getStoreKey(testName), typeof conf.remakeValue === "boolean" ? conf.remakeValue : true); 613 if (storeVal !== null) { 614 this.setVal(testName, storeVal); 615 } 616 return storeVal; 617 }; 618 TestStore.prototype.setVal = function (testName, val) { 619 var keyName = this.getStoreKey(testName); 620 if (keyName) { 621 this.setItem(keyName, val); 622 } 623 }; 624 TestStore.prototype.checkPattern = function (testName) { 625 var conf = this.getTestConfig(testName); 626 if (!conf) { 627 return null; 628 } 629 var pattern = (function (storeVal, patterns) { 630 if (storeVal !== null) { 631 for (var _i = 0, patterns_1 = patterns; _i < patterns_1.length; _i++) { 632 var pattern = patterns_1[_i]; 633 if (pattern.range) { 634 if (pattern.range.min <= storeVal && 635 storeVal <= pattern.range.max) { 636 return pattern; 637 } 638 } 639 } 640 } 641 return null; 642 })(this.getVal(testName), conf.patterns); 643 return pattern; 644 }; 645 return TestStore; 646 }()); 647 SquillaIUX.TestStore = TestStore; 648 var CookieTestStore = (function (_super) { 649 __extends(CookieTestStore, _super); 650 function CookieTestStore() { 651 return _super !== null && _super.apply(this, arguments) || this; 652 } 653 CookieTestStore.prototype.isEnable = function () { 654 return "cookie" in document; 655 }; 656 CookieTestStore.prototype.getItem = function (name) { 657 var cookies = document.cookie.split(";"); 658 for (var _i = 0, cookies_1 = cookies; _i < cookies_1.length; _i++) { 659 var cookie = cookies_1[_i]; 660 var parts = cookie.split("="); 661 var key = decodeURIComponent(parts.shift()).replace(" ", ""); 662 if (key === name) { 663 return +decodeURIComponent(parts.shift()); 664 } 665 } 666 return null; 667 }; 668 CookieTestStore.prototype.setItem = function (name, value) { 669 var cookie = "".concat(encodeURIComponent(name), "=").concat(encodeURIComponent(value.toString()), "; path=/"); 670 var cookieExpiresDate = SquillaIUX.getTestCookieExpiresDate(); 671 if (cookieExpiresDate) { 672 var dt = new Date(); 673 dt.setDate(dt.getDate() + cookieExpiresDate); 674 cookie += "; expires=".concat(dt.toUTCString()); 675 } 676 document.cookie = cookie; 677 }; 678 return CookieTestStore; 679 }(TestStore)); 680 var LocalStorageTestStore = (function (_super) { 681 __extends(LocalStorageTestStore, _super); 682 function LocalStorageTestStore() { 683 return _super !== null && _super.apply(this, arguments) || this; 684 } 685 LocalStorageTestStore.prototype.isEnable = function () { 686 return SquillaIUX.isLocalStorageEnable(); 687 }; 688 LocalStorageTestStore.prototype.getStorageData = function () { 689 var storageData = localStorage.getItem(SquillaIUX.getStorageKeyName()); 690 if (!storageData) { 691 return null; 692 } 693 try { 694 return JSON.parse(storageData); 695 } 696 catch (e) { 697 return null; 698 } 699 }; 700 LocalStorageTestStore.prototype.clearStorageData = function (storageData) { 701 var delKeys = {}; 702 var dt = new Date().getTime(); 703 for (var key in storageData) { 704 var data = storageData[key]; 705 if (data.expires < dt) { 706 delKeys[key] = true; 707 } 708 } 709 for (var delKey in delKeys) { 710 delete storageData[delKey]; 711 } 712 }; 713 LocalStorageTestStore.prototype.getItem = function (keyName) {
714 var storageData = this.getStorageData(); 715 if (!storageData) { 716 return null; 717 } 718 var data = storageData[keyName]; 719 if (typeof data === "undefined") { 720 return null; 721 } 722 if (data.expires < new Date().getTime()) { 723 return null; 724 } 725 return data.value; 726 }; 727 LocalStorageTestStore.prototype.setItem = function (keyName, val) { 728 var storageData = this.getStorageData(); 729 if (!storageData) { 730 storageData = {}; 731 } 732 this.clearStorageData(storageData); 733 var expires = (function () { 734 var storageExpiresDate = SquillaIUX.getStorageExpiresDate(); 735 if (storageExpiresDate) { 736 var dt = new Date(); 737 dt.setDate(dt.getDate() + storageExpiresDate); 738 return dt.getTime(); 739 } 740 return 0; 741 })(); 742 storageData[keyName] = { value: val, expires: expires }; 743 localStorage.setItem(SquillaIUX.getStorageKeyName(), JSON.stringify(storageData)); 744 }; 745 return LocalStorageTestStore; 746 }(TestStore)); 747 var TestStoreManager; 748 (function (TestStoreManager) { 749 var storeMap = {}; 750 storeMap[SquillaIUX.StoreType.cookie] = CookieTestStore; 751 storeMap[SquillaIUX.StoreType.localStorage] = LocalStorageTestStore; 752 function getTestStore(config) { 753 var storeClass = storeMap[SquillaIUX.getStoreType()]; 754 return new storeClass(config); 755 } 756 TestStoreManager.getTestStore = getTestStore; 757 })(TestStoreManager = SquillaIUX.TestStoreManager || (SquillaIUX.TestStoreManager = {})); 758})(SquillaIUX || (SquillaIUX = {}));
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.