@sheerid/jslib 1.153.0 → 1.154.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es5/Tmetrix.bundle.js +4 -4
- package/es5/messages_ar.bundle.js +4 -4
- package/es5/messages_bg.bundle.js +4 -4
- package/es5/messages_cs.bundle.js +4 -4
- package/es5/messages_da.bundle.js +4 -4
- package/es5/messages_de.bundle.js +4 -4
- package/es5/messages_el.bundle.js +4 -4
- package/es5/messages_en-GB.bundle.js +4 -4
- package/es5/messages_es-ES.bundle.js +4 -4
- package/es5/messages_es.bundle.js +4 -4
- package/es5/messages_fi.bundle.js +4 -4
- package/es5/messages_fr-CA.bundle.js +4 -4
- package/es5/messages_fr.bundle.js +4 -4
- package/es5/messages_ga.bundle.js +4 -4
- package/es5/messages_hr.bundle.js +4 -4
- package/es5/messages_hu.bundle.js +4 -4
- package/es5/messages_id.bundle.js +4 -4
- package/es5/messages_it.bundle.js +4 -4
- package/es5/messages_iw.bundle.js +4 -4
- package/es5/messages_ja.bundle.js +4 -4
- package/es5/messages_ko.bundle.js +4 -4
- package/es5/messages_lo.bundle.js +4 -4
- package/es5/messages_lt.bundle.js +4 -4
- package/es5/messages_ms.bundle.js +4 -4
- package/es5/messages_nl.bundle.js +4 -4
- package/es5/messages_no.bundle.js +4 -4
- package/es5/messages_pl.bundle.js +4 -4
- package/es5/messages_pt-BR.bundle.js +4 -4
- package/es5/messages_pt.bundle.js +4 -4
- package/es5/messages_ru.bundle.js +4 -4
- package/es5/messages_sk.bundle.js +4 -4
- package/es5/messages_sl.bundle.js +4 -4
- package/es5/messages_sr.bundle.js +4 -4
- package/es5/messages_sv.bundle.js +4 -4
- package/es5/messages_th.bundle.js +4 -4
- package/es5/messages_tr.bundle.js +4 -4
- package/es5/messages_zh-HK.bundle.js +4 -4
- package/es5/messages_zh.bundle.js +4 -4
- package/manifest.json +43 -43
- package/package.json +1 -1
- package/sheerid-requestOrg.css +4 -4
- package/sheerid-requestOrg.js +4 -4
- package/sheerid-requestOrg.js.map +1 -1
- package/sheerid-utils.js +4 -4
- package/sheerid.css +4 -4
- package/sheerid.js +10 -10
- package/sheerid.js.map +1 -1
- package/sheerides6.js +184 -163
- package/sheerides6.js.map +1 -1
- package/src/lib/installScript/iframe.d.ts +15 -1
- package/src/lib/types/types.d.ts +11 -0
- package/types-reference.zip +0 -0
package/sheerides6.js
CHANGED
|
@@ -22269,38 +22269,205 @@ const NewVerificationInnerComponent = ({ locale, messages, programTheme, verific
|
|
|
22269
22269
|
verificationService.verificationResponse.currentStep, verificationService: verificationService }))))));
|
|
22270
22270
|
};
|
|
22271
22271
|
|
|
22272
|
+
const fadeInElements = (elements) => {
|
|
22273
|
+
elements.forEach((element) => {
|
|
22274
|
+
element.classList.add("fade-in");
|
|
22275
|
+
});
|
|
22276
|
+
};
|
|
22277
|
+
const removeElement = (element, transitionTimeout) => {
|
|
22278
|
+
element.classList.remove("fade-in");
|
|
22279
|
+
window.setTimeout(() => {
|
|
22280
|
+
document.body.style.overflow = "auto";
|
|
22281
|
+
element.parentNode.removeChild(element);
|
|
22282
|
+
}, transitionTimeout);
|
|
22283
|
+
};
|
|
22284
|
+
const getVerificationUrl = (url) => {
|
|
22285
|
+
const newUrl = new URL(url);
|
|
22286
|
+
const parentUrl = new URL(window.location.href);
|
|
22287
|
+
// Combine query parameters from parent window and provided url.
|
|
22288
|
+
// If duplicates, provided url parameters supercede.
|
|
22289
|
+
parentUrl.searchParams.forEach((value, key) => {
|
|
22290
|
+
if (!newUrl.searchParams.has(key)) {
|
|
22291
|
+
newUrl.searchParams.set(key, value);
|
|
22292
|
+
}
|
|
22293
|
+
});
|
|
22294
|
+
return newUrl.href;
|
|
22295
|
+
};
|
|
22296
|
+
|
|
22297
|
+
class Iframe {
|
|
22298
|
+
constructor(containerElement, url) {
|
|
22299
|
+
this.hasLoaded = false;
|
|
22300
|
+
this.onLoadEvents = [];
|
|
22301
|
+
this.onCleanupEvents = [];
|
|
22302
|
+
this.installType = "cdn_inline_iframe";
|
|
22303
|
+
if (Iframe.isValidHttpUrl(url)) {
|
|
22304
|
+
const options = {
|
|
22305
|
+
className: iframeConstants.CLASS_NAMES.INLINE_IFRAME_CONTENT,
|
|
22306
|
+
title: iframeTitle,
|
|
22307
|
+
};
|
|
22308
|
+
this.containerElement = containerElement;
|
|
22309
|
+
this.verificationUrl = new URL(getVerificationUrl(url));
|
|
22310
|
+
this.verificationIframeUid = Iframe.createUniqueId();
|
|
22311
|
+
this.createIframe(options);
|
|
22312
|
+
this.addVerificationSizeUpdatesListener();
|
|
22313
|
+
}
|
|
22314
|
+
else {
|
|
22315
|
+
logger.error("Invalid URL. Provide a proper URL: https://example.com/", "iframe url");
|
|
22316
|
+
}
|
|
22317
|
+
}
|
|
22318
|
+
cleanup() {
|
|
22319
|
+
this.onCleanupEvents.forEach((callback) => callback());
|
|
22320
|
+
}
|
|
22321
|
+
static createUniqueId() {
|
|
22322
|
+
return Math.random().toString(36).substr(2, 9);
|
|
22323
|
+
}
|
|
22324
|
+
static isValidHttpUrl(urlString) {
|
|
22325
|
+
try {
|
|
22326
|
+
const url = new URL(urlString);
|
|
22327
|
+
return url.protocol === "http:" || url.protocol === "https:";
|
|
22328
|
+
}
|
|
22329
|
+
catch {
|
|
22330
|
+
return false;
|
|
22331
|
+
}
|
|
22332
|
+
}
|
|
22333
|
+
createIframe(options) {
|
|
22334
|
+
this.iframe = document.createElement("iframe");
|
|
22335
|
+
this.iframe.classList.add(options.className);
|
|
22336
|
+
this.iframe.title = options.title;
|
|
22337
|
+
let mark = "?";
|
|
22338
|
+
if (this.verificationUrl.search) {
|
|
22339
|
+
mark = "&";
|
|
22340
|
+
}
|
|
22341
|
+
this.iframe.src = `${this.verificationUrl.href}${mark}verificationIframeUid=${this.verificationIframeUid}&${QUERY_STRING_INSTALL_PAGE_URL}=${encodeURIComponent(getCurrentUrl())}&${QUERY_STRING_INSTALL_TYPE}=${this.installType}`;
|
|
22342
|
+
this.iframe.onload = () => this.onLoad();
|
|
22343
|
+
return this.iframe;
|
|
22344
|
+
}
|
|
22345
|
+
// If iFrame hasn't loaded yet, queue up the callback
|
|
22346
|
+
// otherwise call it immediately
|
|
22347
|
+
addOnLoadEvent(callback) {
|
|
22348
|
+
try {
|
|
22349
|
+
assertValidFunction(callback);
|
|
22350
|
+
}
|
|
22351
|
+
catch (e) {
|
|
22352
|
+
logger.error("Invalid callback provided to iFrame.onLoad()", e);
|
|
22353
|
+
return;
|
|
22354
|
+
}
|
|
22355
|
+
if (this.hasLoaded) {
|
|
22356
|
+
callback();
|
|
22357
|
+
}
|
|
22358
|
+
else {
|
|
22359
|
+
this.onLoadEvents.push(callback);
|
|
22360
|
+
}
|
|
22361
|
+
}
|
|
22362
|
+
onLoad() {
|
|
22363
|
+
this.hasLoaded = true;
|
|
22364
|
+
this.onLoadEvents.forEach((callback) => callback());
|
|
22365
|
+
}
|
|
22366
|
+
/**
|
|
22367
|
+
* Using this to add parent window message listeners gives us
|
|
22368
|
+
* - Event Cleanup for modals
|
|
22369
|
+
* - verification of origin, verificationIframeUid, and message data structure
|
|
22370
|
+
*/
|
|
22371
|
+
addWindowMessageListener(actionCb) {
|
|
22372
|
+
const listener = (ev) => {
|
|
22373
|
+
if (this.verificationUrl.origin !== ev.origin) {
|
|
22374
|
+
return;
|
|
22375
|
+
}
|
|
22376
|
+
if (ev.data.verificationIframeUid !== this.verificationIframeUid) {
|
|
22377
|
+
return;
|
|
22378
|
+
}
|
|
22379
|
+
if (ev.data.action && ev.data.action.type) {
|
|
22380
|
+
actionCb(ev.data.action);
|
|
22381
|
+
}
|
|
22382
|
+
};
|
|
22383
|
+
window.addEventListener("message", listener);
|
|
22384
|
+
this.onCleanupEvents.push(() => window.removeEventListener("message", listener));
|
|
22385
|
+
}
|
|
22386
|
+
addVerificationSizeUpdatesListener() {
|
|
22387
|
+
this.addWindowMessageListener((action) => {
|
|
22388
|
+
if (action.type === "updateHeight") {
|
|
22389
|
+
// UX-1129: If we are getting height updates, turn off scrolling for
|
|
22390
|
+
// the iframe. This prevents browsers (Safari in particular) from
|
|
22391
|
+
// re-wrapping because of different widths and constantly changing
|
|
22392
|
+
// it's own height. `scrolling = "no"` is deprecated, but supported in
|
|
22393
|
+
// all browsers and fixes the problem well.
|
|
22394
|
+
this.iframe.scrolling = "no";
|
|
22395
|
+
this.iframe.style.height = `${action.height}px`;
|
|
22396
|
+
}
|
|
22397
|
+
});
|
|
22398
|
+
}
|
|
22399
|
+
setViewModel(viewModel) {
|
|
22400
|
+
const message = {
|
|
22401
|
+
action: "setViewModel",
|
|
22402
|
+
viewModel,
|
|
22403
|
+
};
|
|
22404
|
+
this.addOnLoadEvent(() => {
|
|
22405
|
+
this.iframe.contentWindow.postMessage(message, this.verificationUrl.origin);
|
|
22406
|
+
});
|
|
22407
|
+
}
|
|
22408
|
+
setOptions(options) {
|
|
22409
|
+
const message = {
|
|
22410
|
+
action: "setOptions",
|
|
22411
|
+
options,
|
|
22412
|
+
};
|
|
22413
|
+
this.addOnLoadEvent(() => {
|
|
22414
|
+
this.iframe.contentWindow.postMessage(message, this.verificationUrl.origin);
|
|
22415
|
+
});
|
|
22416
|
+
}
|
|
22417
|
+
setInstallType(installType) {
|
|
22418
|
+
this.installType = installType;
|
|
22419
|
+
}
|
|
22420
|
+
init() {
|
|
22421
|
+
this.containerElement.appendChild(this.iframe);
|
|
22422
|
+
}
|
|
22423
|
+
}
|
|
22424
|
+
/**
|
|
22425
|
+
* All post messages from inside our iframes and modals should use this function
|
|
22426
|
+
* to post messages to the parent window. It strongly types the data and makes
|
|
22427
|
+
* sure we're only listening to events that have the iframeUid
|
|
22428
|
+
*/
|
|
22429
|
+
function postMessageFromIframe(action) {
|
|
22430
|
+
const origin = "*";
|
|
22431
|
+
const verificationUrl = new URL(window.location.href);
|
|
22432
|
+
const verificationIframeUid = verificationUrl.searchParams.get("verificationIframeUid");
|
|
22433
|
+
window.parent.postMessage({
|
|
22434
|
+
verificationIframeUid,
|
|
22435
|
+
action,
|
|
22436
|
+
}, origin);
|
|
22437
|
+
}
|
|
22438
|
+
|
|
22272
22439
|
/*
|
|
22273
22440
|
Trap focus in the lightbox by sending and receiving postMessages, here and from the modal script, while tabbing through the program.
|
|
22274
22441
|
*/
|
|
22275
22442
|
const trapFocus = () => {
|
|
22443
|
+
let lastFocusableElement = null;
|
|
22276
22444
|
document.addEventListener("keydown", (e) => {
|
|
22277
|
-
const focusableElements = 'button, .sid-link, input, select, textarea, [tabindex]:not([tabindex="-1"]';
|
|
22278
|
-
const focusableContent = document.querySelectorAll(focusableElements);
|
|
22279
|
-
const lastFocusableElement = focusableContent[focusableContent.length - 1];
|
|
22280
22445
|
const isTabPressed = e.key === "Tab";
|
|
22281
22446
|
if (!isTabPressed) {
|
|
22282
22447
|
return;
|
|
22283
22448
|
}
|
|
22449
|
+
const focusableElements = 'button, .sid-link, input, select, textarea, [tabindex]:not([tabindex="-1"]';
|
|
22450
|
+
const focusableContent = document.querySelectorAll(focusableElements);
|
|
22451
|
+
lastFocusableElement = focusableContent[focusableContent.length - 1];
|
|
22284
22452
|
if (lastFocusableElement) {
|
|
22285
|
-
window.addEventListener("message", (event) => {
|
|
22286
|
-
const message = typeof event.data === "string" ? JSON.parse(event.data) : event.data;
|
|
22287
|
-
if (message.focusOn === "lastElement") {
|
|
22288
|
-
lastFocusableElement.focus();
|
|
22289
|
-
e.preventDefault();
|
|
22290
|
-
}
|
|
22291
|
-
});
|
|
22292
22453
|
if (!e.shiftKey && document.activeElement === lastFocusableElement) {
|
|
22293
|
-
|
|
22454
|
+
postMessageFromIframe({ type: "focus", focusOn: "firstElement" });
|
|
22294
22455
|
e.preventDefault();
|
|
22295
22456
|
}
|
|
22296
22457
|
}
|
|
22297
22458
|
});
|
|
22459
|
+
window.addEventListener("message", (event) => {
|
|
22460
|
+
const message = event.data;
|
|
22461
|
+
if (message.focusOn === "lastElement" && lastFocusableElement) {
|
|
22462
|
+
lastFocusableElement.focus();
|
|
22463
|
+
}
|
|
22464
|
+
});
|
|
22298
22465
|
// set inital focus to lightbox close button
|
|
22299
|
-
|
|
22466
|
+
postMessageFromIframe({ type: "focus", focusOn: "firstElement" });
|
|
22300
22467
|
};
|
|
22301
22468
|
const maintainFocusInLightbox = () => {
|
|
22302
22469
|
window.addEventListener("message", (event) => {
|
|
22303
|
-
const message =
|
|
22470
|
+
const message = event.data;
|
|
22304
22471
|
if (message.isInLightBox === "true") {
|
|
22305
22472
|
trapFocus();
|
|
22306
22473
|
}
|
|
@@ -22457,146 +22624,6 @@ const postalCodeMatchers = {
|
|
|
22457
22624
|
GB: "^GIR ?0AA|(?:(?:AB|AL|B|BA|BB|BD|BH|BL|BN|BR|BS|BT|BX|CA|CB|CF|CH|CM|CO|CR|CT|CV|CW|DA|DD|DE|DG|DH|DL|DN|DT|DY|E|EC|EH|EN|EX|FK|FY|G|GL|GY|GU|HA|HD|HG|HP|HR|HS|HU|HX|IG|IM|IP|IV|JE|KA|KT|KW|KY|L|LA|LD|LE|LL|LN|LS|LU|M|ME|MK|ML|N|NE|NG|NN|NP|NR|NW|OL|OX|PA|PE|PH|PL|PO|PR|RG|RH|RM|S|SA|SE|SG|SK|SL|SM|SN|SO|SP|SR|SS|ST|SW|SY|TA|TD|TF|TN|TQ|TR|TS|TW|UB|W|WA|WC|WD|WF|WN|WR|WS|WV|YO|ZE)(?:\\d[\\dA-Z]? ?\\d[ABD-HJLN-UW-Z]{2}))|BFPO ?\\d{1,4}$",
|
|
22458
22625
|
};
|
|
22459
22626
|
|
|
22460
|
-
const fadeInElements = (elements) => {
|
|
22461
|
-
elements.forEach((element) => {
|
|
22462
|
-
element.classList.add("fade-in");
|
|
22463
|
-
});
|
|
22464
|
-
};
|
|
22465
|
-
const removeElement = (element, transitionTimeout) => {
|
|
22466
|
-
element.classList.remove("fade-in");
|
|
22467
|
-
window.setTimeout(() => {
|
|
22468
|
-
document.body.style.overflow = "auto";
|
|
22469
|
-
element.parentNode.removeChild(element);
|
|
22470
|
-
}, transitionTimeout);
|
|
22471
|
-
};
|
|
22472
|
-
const getVerificationUrl = (url) => {
|
|
22473
|
-
const newUrl = new URL(url);
|
|
22474
|
-
const parentUrl = new URL(window.location.href);
|
|
22475
|
-
// Combine query parameters from parent window and provided url.
|
|
22476
|
-
// If duplicates, provided url parameters supercede.
|
|
22477
|
-
parentUrl.searchParams.forEach((value, key) => {
|
|
22478
|
-
if (!newUrl.searchParams.has(key)) {
|
|
22479
|
-
newUrl.searchParams.set(key, value);
|
|
22480
|
-
}
|
|
22481
|
-
});
|
|
22482
|
-
return newUrl.href;
|
|
22483
|
-
};
|
|
22484
|
-
|
|
22485
|
-
class Iframe {
|
|
22486
|
-
constructor(containerElement, url) {
|
|
22487
|
-
this.hasLoaded = false;
|
|
22488
|
-
this.onLoadEvents = [];
|
|
22489
|
-
this.installType = "cdn_inline_iframe";
|
|
22490
|
-
if (Iframe.isValidHttpUrl(url)) {
|
|
22491
|
-
const options = {
|
|
22492
|
-
className: iframeConstants.CLASS_NAMES.INLINE_IFRAME_CONTENT,
|
|
22493
|
-
title: iframeTitle,
|
|
22494
|
-
};
|
|
22495
|
-
this.containerElement = containerElement;
|
|
22496
|
-
this.verificationUrl = new URL(getVerificationUrl(url));
|
|
22497
|
-
this.verificationIframeUid = Iframe.createUniqueId();
|
|
22498
|
-
this.createIframe(options);
|
|
22499
|
-
this.addVerificationSizeUpdatesListener();
|
|
22500
|
-
}
|
|
22501
|
-
else {
|
|
22502
|
-
logger.error("Invalid URL. Provide a proper URL: https://example.com/", "iframe url");
|
|
22503
|
-
}
|
|
22504
|
-
}
|
|
22505
|
-
static createUniqueId() {
|
|
22506
|
-
return Math.random().toString(36).substr(2, 9);
|
|
22507
|
-
}
|
|
22508
|
-
static isValidHttpUrl(urlString) {
|
|
22509
|
-
try {
|
|
22510
|
-
const url = new URL(urlString);
|
|
22511
|
-
return url.protocol === "http:" || url.protocol === "https:";
|
|
22512
|
-
}
|
|
22513
|
-
catch {
|
|
22514
|
-
return false;
|
|
22515
|
-
}
|
|
22516
|
-
}
|
|
22517
|
-
createIframe(options) {
|
|
22518
|
-
this.iframe = document.createElement("iframe");
|
|
22519
|
-
this.iframe.classList.add(options.className);
|
|
22520
|
-
this.iframe.title = options.title;
|
|
22521
|
-
let mark = "?";
|
|
22522
|
-
if (this.verificationUrl.search) {
|
|
22523
|
-
mark = "&";
|
|
22524
|
-
}
|
|
22525
|
-
this.iframe.src = `${this.verificationUrl.href}${mark}verificationIframeUid=${this.verificationIframeUid}&${QUERY_STRING_INSTALL_PAGE_URL}=${encodeURIComponent(getCurrentUrl())}&${QUERY_STRING_INSTALL_TYPE}=${this.installType}`;
|
|
22526
|
-
this.iframe.onload = () => this.onLoad();
|
|
22527
|
-
return this.iframe;
|
|
22528
|
-
}
|
|
22529
|
-
// If iFrame hasn't loaded yet, queue up the callback
|
|
22530
|
-
// otherwise call it immediately
|
|
22531
|
-
addOnLoadEvent(callback) {
|
|
22532
|
-
try {
|
|
22533
|
-
assertValidFunction(callback);
|
|
22534
|
-
}
|
|
22535
|
-
catch (e) {
|
|
22536
|
-
logger.error("Invalid callback provided to iFrame.onLoad()", e);
|
|
22537
|
-
return;
|
|
22538
|
-
}
|
|
22539
|
-
if (this.hasLoaded) {
|
|
22540
|
-
callback();
|
|
22541
|
-
}
|
|
22542
|
-
else {
|
|
22543
|
-
this.onLoadEvents.push(callback);
|
|
22544
|
-
}
|
|
22545
|
-
}
|
|
22546
|
-
onLoad() {
|
|
22547
|
-
this.hasLoaded = true;
|
|
22548
|
-
this.onLoadEvents.forEach((callback) => callback());
|
|
22549
|
-
}
|
|
22550
|
-
addVerificationSizeUpdatesListener() {
|
|
22551
|
-
window.addEventListener("message", (event) => {
|
|
22552
|
-
if (this.verificationUrl.origin !== event.origin) {
|
|
22553
|
-
return;
|
|
22554
|
-
}
|
|
22555
|
-
const message = typeof event.data === "string" ? JSON.parse(event.data) : event.data;
|
|
22556
|
-
if (message.verificationIframeUid !== this.verificationIframeUid) {
|
|
22557
|
-
return;
|
|
22558
|
-
}
|
|
22559
|
-
switch (message.action) {
|
|
22560
|
-
case "updateHeight":
|
|
22561
|
-
// UX-1129: If we are getting height updates, turn off scrolling for
|
|
22562
|
-
// the iframe. This prevents browsers (Safari in particular) from
|
|
22563
|
-
// re-wrapping because of different widths and constantly changing
|
|
22564
|
-
// it's own height. `scrolling = "no"` is deprecated, but supported in
|
|
22565
|
-
// all browsers and fixes the problem well.
|
|
22566
|
-
this.iframe.scrolling = "no";
|
|
22567
|
-
this.iframe.style.height = `${message.height}px`;
|
|
22568
|
-
break;
|
|
22569
|
-
default:
|
|
22570
|
-
logger.error("Unsupported message.action");
|
|
22571
|
-
}
|
|
22572
|
-
});
|
|
22573
|
-
}
|
|
22574
|
-
setViewModel(viewModel) {
|
|
22575
|
-
const message = {
|
|
22576
|
-
action: "setViewModel",
|
|
22577
|
-
viewModel,
|
|
22578
|
-
};
|
|
22579
|
-
this.addOnLoadEvent(() => {
|
|
22580
|
-
this.iframe.contentWindow.postMessage(message, this.verificationUrl.origin);
|
|
22581
|
-
});
|
|
22582
|
-
}
|
|
22583
|
-
setOptions(options) {
|
|
22584
|
-
const message = {
|
|
22585
|
-
action: "setOptions",
|
|
22586
|
-
options,
|
|
22587
|
-
};
|
|
22588
|
-
this.addOnLoadEvent(() => {
|
|
22589
|
-
this.iframe.contentWindow.postMessage(message, this.verificationUrl.origin);
|
|
22590
|
-
});
|
|
22591
|
-
}
|
|
22592
|
-
setInstallType(installType) {
|
|
22593
|
-
this.installType = installType;
|
|
22594
|
-
}
|
|
22595
|
-
init() {
|
|
22596
|
-
this.containerElement.appendChild(this.iframe);
|
|
22597
|
-
}
|
|
22598
|
-
}
|
|
22599
|
-
|
|
22600
22627
|
class Modal {
|
|
22601
22628
|
constructor(url, userConfig) {
|
|
22602
22629
|
this.popStateEventHandler = () => this.closeModal();
|
|
@@ -22641,6 +22668,7 @@ class Modal {
|
|
|
22641
22668
|
const transitionTimeout = iframeConstants.MODAL_OPACITY_TRANSITION_PERIOD;
|
|
22642
22669
|
removeElement(this.overlay, transitionTimeout);
|
|
22643
22670
|
removeElement(this.wrapper, transitionTimeout);
|
|
22671
|
+
this.iframeInstance.cleanup();
|
|
22644
22672
|
}
|
|
22645
22673
|
static createOverlay() {
|
|
22646
22674
|
const overlay = document.createElement("div");
|
|
@@ -22667,9 +22695,8 @@ class Modal {
|
|
|
22667
22695
|
window.addEventListener("popstate", this.popStateEventHandler);
|
|
22668
22696
|
}
|
|
22669
22697
|
addFocusListener() {
|
|
22670
|
-
|
|
22671
|
-
|
|
22672
|
-
if (message.focusOn === "firstElement") {
|
|
22698
|
+
this.iframeInstance.addWindowMessageListener((action) => {
|
|
22699
|
+
if (action.type === "focus" && action.focusOn === "firstElement") {
|
|
22673
22700
|
this.closeButton.focus();
|
|
22674
22701
|
}
|
|
22675
22702
|
});
|
|
@@ -22735,13 +22762,7 @@ function postVerificationSizeUpdates(options = { origin: "*", interval: 100 }) {
|
|
|
22735
22762
|
const heightWithComputedMargins = bodyHeight +
|
|
22736
22763
|
parseInt(window.getComputedStyle(document.body).marginTop, 10) +
|
|
22737
22764
|
parseInt(window.getComputedStyle(document.body).marginBottom, 10);
|
|
22738
|
-
|
|
22739
|
-
const verificationIframeUid = verificationUrl.searchParams.get("verificationIframeUid");
|
|
22740
|
-
window.parent.postMessage({
|
|
22741
|
-
verificationIframeUid,
|
|
22742
|
-
action: "updateHeight",
|
|
22743
|
-
height: heightWithComputedMargins,
|
|
22744
|
-
}, options.origin);
|
|
22765
|
+
postMessageFromIframe({ type: "updateHeight", height: heightWithComputedMargins });
|
|
22745
22766
|
}
|
|
22746
22767
|
}, options.interval);
|
|
22747
22768
|
return () => clearInterval(interval);
|