@soyio/soyio-widget 2.2.0 → 2.3.1

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/README.md CHANGED
@@ -28,11 +28,11 @@ yarn add @soyio/soyio-widget
28
28
 
29
29
  Integrate the widget into your frontend framework using the script below. Ensure to replace placeholders (e.g., \<request>, \<company id>) with actual values relevant to your implementation.
30
30
 
31
- ## Browser compatibility notes
31
+ ## Browser Compatibility Notes
32
32
 
33
33
  **Important Safari Limitation**: In Safari browsers, the widget can only be opened as a result of a direct user interaction (like a click event). This is due to Safari's security policies regarding popup windows. Always ensure the widget initialization is triggered by a user action when supporting Safari browsers.
34
34
 
35
- ### 1. Disclosure Request
35
+ ## Disclosure Request
36
36
 
37
37
  A **`disclosure_request`** is a process that a user goes through where they are verified, and then they share the necessary data as required by each company.
38
38
  This verification can happen in one of the following two ways:
@@ -41,9 +41,9 @@ This verification can happen in one of the following two ways:
41
41
 
42
42
  2. **Authentication**: Through an access key (passkey) or facial video. This can occur when a user has already been validated previously with Soyio.
43
43
 
44
- To instantiate this process in the code, you have two options
44
+ To instantiate this process in the code, you have two options:
45
45
 
46
- #### 1.a Disclosure requests on-the-fly
46
+ ### 1. Disclosure Requests On-the-fly
47
47
 
48
48
  This doesn't require any previous setup. Given your company and disclosure template IDs, you can create disclosure requests freely when the user starts the widget.
49
49
 
@@ -86,7 +86,7 @@ Optional props:
86
86
  - `forceError`
87
87
  - `customColor`.
88
88
 
89
- #### 1.b Created disclosure request
89
+ ### 2. Created Disclosure Request
90
90
 
91
91
  You can alternatively create a disclosure request beforehand with some **matchers** to make sure the person completing the request matches the one that your application thinks it is.
92
92
 
@@ -131,7 +131,50 @@ Optional properties:
131
131
 
132
132
  Note: User and template properties are not specified here because they must be specified when creating the disclosure request beforehand.
133
133
 
134
- ### 2. Signature attempt
134
+ ### Disclosure Request Events
135
+
136
+ The `onEvent` callback is designed to handle various events that occur during widget interaction. Specifically, it receives detailed information upon the successful completion of user request. Here are the events it handles:
137
+
138
+ - **`DISCLOSURE_REQUEST_SUCCESSFUL`**: This event occurs when a user successfully completes a `disclosure_request`. The identity verification could have been a `validation` or `authentication`.
139
+
140
+ - `eventName`: The name of the event, in this case, `'DISCLOSURE_REQUEST_SUCCESSFUL'`.
141
+ - `verificationMethod`: Takes the values of `authentication` or `validation`.
142
+ - `identityId`: The unique identifier for the verified identity.
143
+ - `userReference`: The reference identifier for the user, facilitating the association of the event with the user within the company's context.
144
+
145
+ - **`DENIED_CAMERA_PERMISSION`**: Event triggered when user denies camera permissions. It closes the widget.
146
+ - **`UNEXPECTED_ERROR`**: Event triggered when user exits because of an unexpected error.
147
+
148
+ - **`WIDGET_CLOSED`**: This event occurs when the user closes the `Soyio` pop up. The event object is as follows:
149
+
150
+ - `{ eventName: 'WIDGET_CLOSED' }`.
151
+
152
+ - **`WIDGET_OPENED`**: This event occurs when the user closes the `Soyio` pop up. The event object is as follows:
153
+ - `{ eventName: 'WIDGET_CLOSED' }`.
154
+
155
+ ### Disclosure Request Attribute Descriptions
156
+
157
+ - **`companyId`**: The unique identifier for the company, must start with `'com_'`.
158
+ - **`userReference`**: A reference identifier provided by the company for the user engaging with the widget. This identifier is used in events (`onEvent` and `webhooks`) to inform the company which user the events are associated with.
159
+ - **`userEmail`**: The user's email address. If not provided, Soyio will prompt the user to enter their email.
160
+ - **`templateId`**: Identifier of template. Specifies the order and quantity of documents requested from the user, as well as the mandatory data that the user is asked to share with the company. It must start with `'dtpl_'`.
161
+ - **`disclosureRequestId`**: If created beforehand, you can target a specific disclosure request that the user must complete. It is useful if you need to match some data between the disclosure process and your database records. It must start with `'dreq_'`
162
+ - **`identityId`**: This identifier must start with `'id_'` and signifies the user's identity.
163
+ - **`isSandbox`**: Indicates if the widget should operate in sandbox mode, defaulting to `false`.
164
+ - **`forceError`**: Triggers specific errors for testing or debugging. Used to simulate failure scenarios. Only works in `sandbox` mode.
165
+ - **`onEvent`**: A callback function triggered upon event occurrences, used for capturing and logging event-related data.
166
+ - **`customColor`**: A hex code string that specifies the base color of the interface.
167
+
168
+ ### Force Error Types
169
+
170
+ The `forceError` parameter can simulate the following error conditions:
171
+
172
+ - `'facial_validation_error'`: Simulates a failure in the facial video liveness test, indicating the system could not verify the user's live presence.
173
+ - `'document_validation_error'`: Indicates an issue with validating the photos of the documents provided by the user.
174
+ - `'unknown_error'`: Generates a generic error, representing an unspecified problem.
175
+ - `'expiration_error'`: Occurs when there is an issue with the identity provider that prevents the validation of one or both documents provided by the user, due to unspecified problems in the validation process.
176
+
177
+ ## Signature Attempt
135
178
 
136
179
  The **`signature_attempt`** is a process where, using a previously created `signature_attempt_id`, a request is initiated in which a user can digitally sign a document. To sign the document, the user must be authenticated. This authentication can occur either through an access key or facial video. It's important to note that for this request, the user must have been previously verified with Soyio.
137
180
 
@@ -170,7 +213,35 @@ Optional props:
170
213
  - `forceError`
171
214
  - `customColor`.
172
215
 
173
- ### 3. Auth Request
216
+ ### Signature Attempt Events
217
+
218
+ - **`IDENTITY_SIGNATURE`**: This event occurs when a user successfully completes a signature attempt. The event object includes:
219
+
220
+ - `eventName`: The name of the event, in this case, `'IDENTITY_SIGNATURE'`.
221
+ - `userReference`: The reference identifier for the user, facilitating the association of the event with the user within the company's context.
222
+
223
+ - **`REJECTED_SIGNATURE`**: Event triggered when user clicks the "reject" button in the signature attempt. The event object includes:
224
+
225
+ - `identityId`: The unique identifier for the identity.
226
+ - `userReference`: The userReference used in the validation attempt for the identity.
227
+
228
+ ### Signature Attempt Attribute Descriptions
229
+
230
+ - **`signatureAttemptId`**: Identifier of signature attempt obtained when creating the `SignatureAttempt`. It must start with `'sa_'`.
231
+ - **`isSandbox`**: Indicates if the widget should operate in sandbox mode, defaulting to `false`.
232
+ - **`forceError`**: Triggers specific errors for testing or debugging. Used to simulate failure scenarios. Only works in `sandbox` mode.
233
+ - **`onEvent`**: A callback function triggered upon event occurrences, used for capturing and logging event-related data.
234
+ - **`customColor`**: A hex code string that specifies the base color of the interface.
235
+
236
+ ### Force Error Types
237
+
238
+ The `forceError` parameter can simulate the following error conditions:
239
+
240
+ - `'facial_validation_error'`: Simulates a failure in the facial video liveness test, indicating the system could not verify the user's live presence.
241
+ - `'unknown_error'`: Generates a generic error, representing an unspecified problem.
242
+ - `'expiration_error'`: Occurs when there is an issue with the identity provider that prevents the validation of one or both documents provided by the user, due to unspecified problems in the validation process.
243
+
244
+ ## Auth Request
174
245
 
175
246
  The **`auth_request`** is a process where, using a previously created `auth_request_id`, a request is initiated in which a user can authenticate. This authentication can occur either through an access key or facial video. It's important to note that for this request, the user must have been previously verified with Soyio.
176
247
 
@@ -207,63 +278,58 @@ Optional props:
207
278
 
208
279
  - `customColor`.
209
280
 
210
- ### Attribute Descriptions
281
+ ### Auth Request Attribute Descriptions
211
282
 
212
- - **`companyId`**: The unique identifier for the company, must start with `'com_'`.
213
- - **`userReference`**: A reference identifier provided by the company for the user engaging with the widget. This identifier is used in events (`onEvent` and `webhooks`) to inform the company which user the events are associated with.
214
- - **`userEmail`**: The user's email address. If not provided, Soyio will prompt the user to enter their email.
215
- - **`templateId`**: Identifier of template. Specifies the order and quantity of documents requested from the user, as well as the mandatory data that the user is asked to share with the company. It must start with `'dtpl_'`.
216
- - **`disclosureRequestId`**: If created beforehand, you can target a specific disclosure request that the user must complete. It is useful if you need to match some data between the disclosure process and your database records. It must start with `'dreq_'`
217
- - **`signatureAttemptId`**: Identifier of signature attempt obtained when creating the `SignatureAttempt`. It must start with `'sa_'`.
218
283
  - **`authRequestId`**: Identifier of auth request obtained when creating the `AuthRequest`. It must start with `'authreq_'`.
219
- - **`identityId`**: This identifier must start with `'id_'` and signifies the user's identity.
220
284
  - **`isSandbox`**: Indicates if the widget should operate in sandbox mode, defaulting to `false`.
221
- - **`forceError`**: Triggers specific errors for testing or debugging. Used to simulate failure scenarios. Only works in `sandbox` mode.
222
285
  - **`onEvent`**: A callback function triggered upon event occurrences, used for capturing and logging event-related data.
223
286
  - **`customColor`**: A hex code string that specifies the base color of the interface.
224
287
 
225
- ### Events
226
-
227
- The `onEvent` callback is designed to handle various events that occur during widget interaction. Specifically, it receives detailed information upon the successful completion of user request. Here are the events it handles:
228
-
229
- - **`DISCLOSURE_REQUEST_SUCCESSFUL`**: This event occurs when a user successfully completes a `disclosure_request`. The identity verification could have been a `validation` or `authentication`.
230
-
231
- - `eventName`: The name of the event, in this case, `'DISCLOSURE_REQUEST_SUCCESSFUL'`.
232
- - `verificationMethod`: Takes the values of `authentication` or `validation`.
233
- - `identityId`: The unique identifier for the verified identity.
234
- - `userReference`: The reference identifier for the user, facilitating the association of the event with the user within the company's context.
235
-
236
- - **`IDENTITY_SIGNATURE`**: This event occurs when a user successfully completes a signature attempt. The event object includes:
288
+ ## Consent Request Box
237
289
 
238
- - `eventName`: The name of the event, in this case, `'IDENTITY_SIGNATURE'`.
239
- - `userReference`: The reference identifier for the user, facilitating the association of the event with the user within the company's context.
290
+ The **`ConsentRequestBox`** is a component that allows you to embed a consent request directly within your webpage, rather than opening it in a popup window. This is particularly useful when you want to integrate the consent flow seamlessly into your application's interface.
240
291
 
241
- - **`DENIED_CAMERA_PERMISSION`**: Event triggered when user denies camera permissions. It closes the widget.
242
- - **`UNEXPECTED_ERROR`**: Event triggered when user exits because of an unexpected error.
292
+ ```html
293
+ <!-- Add a container div where the consent request will be mounted -->
294
+ <div id="consent-request-box"></div>
243
295
 
244
- - **`REJECTED_SIGNATURE`**: Event triggered when user clicks the "reject" button in the signature attempt. The event object includes:
296
+ <script>
297
+ import { ConsentRequestBox } from "@soyio/soyio-widget";
245
298
 
246
- - `identityId`: The unique identifier for the identity.
247
- - `userReference`: The userReference used in the validation attempt for the identity.
299
+ // Configuration for the consent request
300
+ const consentRequestOptions = {
301
+ consentRequestId: "<consent request id>",
302
+ onEvent: (data) => console.log(data),
303
+ isSandbox: true, // Optional, defaults to false
304
+ };
248
305
 
249
- - **`WIDGET_CLOSED`**: This event occurs when the user closes the `Soyio` pop up. The event object is as follows:
306
+ // Wait for DOM to be fully loaded
307
+ document.addEventListener("DOMContentLoaded", () => {
308
+ // Create and mount the consent request box
309
+ new ConsentRequestBox(consentRequestOptions).mount("#consent-request-box");
310
+ });
311
+ </script>
312
+ ```
250
313
 
251
- - `{ eventName: 'WIDGET_CLOSED' }`.
314
+ ### Consent Request Box Events
252
315
 
253
- - **`WIDGET_OPENED`**: This event occurs when the user closes the `Soyio` pop up. The event object is as follows:
254
- - `{ eventName: 'WIDGET_CLOSED' }`.
316
+ The `onEvent` follows the following format:
255
317
 
256
- #### Force error types
318
+ ```typescript
319
+ {
320
+ eventName: 'CONSENT_CHECKBOX_CHANGE',
321
+ entityId: `ent_${string}`,
322
+ isSelected: boolean
323
+ }
324
+ ```
257
325
 
258
- The `forceError` parameter can simulate the following error conditions:
326
+ ### Attribute Descriptions
259
327
 
260
- - `'facial_validation_error'`: Simulates a failure in the facial video liveness test, indicating the system could not verify the user's live presence.
261
- - `'document_validation_error'`: Indicates an issue with validating the photos of the documents provided by the user.
262
- - `'unknown_error'`: Generates a generic error, representing an unspecified problem.
263
- - `'expiration_error'`: Occurs when there is an issue with the identity provider that prevents the validation of one or both documents provided by the user, due to unspecified problems in the validation process.
264
- - `'camera_permission_error'`: Happens when the user does not grant the necessary permissions to access the camera, preventing the completion of the disclosure or signature request.
328
+ - **`consentRequestId`**: Identifier of consent request obtained when creating the `ConsentRequest`. It must start with `'consentreq_'`.
329
+ - **`entityId`**: Identifier of entity obtained when creating the `ConsentRequest`. It must start with `'ent_'`.
330
+ - **`isSelected`**: Boolean value indicating whether the consent checkbox is selected or not.
265
331
 
266
- #### Typescript
332
+ ## TypeScript
267
333
 
268
334
  The `SoyioTypes` module from the `@soyio/soyio-widget` package provides TypeScript type definitions that you can use to integrate the SoyioWidget more seamlessly into your TypeScript projects.
269
335
 
package/dist/index.d.ts CHANGED
@@ -1,74 +1,26 @@
1
- declare type AttemptConfig = DisclosureRequestConfig | SignatureAttemptConfig | AuthRequestConfig;
2
-
3
- declare type AuthRequestConfig = {
4
- request: 'authentication';
5
- configProps: AuthRequestProps;
6
- onEvent: (data: EventData) => void;
7
- isSandbox?: boolean;
8
- developmentUrl?: string;
9
- };
10
-
11
- declare type AuthRequestProps = {
12
- authRequestId: `authreq_${string}`;
13
- customColor?: string;
14
- };
15
-
16
- declare type DisclosureRequestConfig = {
17
- request: 'disclosure';
18
- configProps: DisclosureRequestProps;
19
- onEvent: (data: EventData) => void;
20
- isSandbox?: boolean;
21
- developmentUrl?: string;
22
- };
23
-
24
- declare type DisclosureRequestProps = NewDisclosureRequestProps | ExistingDisclosureRequestProps;
25
-
26
- declare type EventData = {
27
- eventName: 'IDENTITY_VALIDATED' | 'IDENTITY_AUTHENTICATED' | 'IDENTITY_SIGNATURE' | 'DENIED_CAMERA_PERMISSION' | 'REJECTED_SIGNATURE' | 'DISCLOSURE_REQUEST_SUCCESSFUL' | 'UNEXPECTED_ERROR' | 'AUTH_REQUEST_SUCCESSFUL';
28
- identityId: `id_${string}`;
29
- userReference?: string;
30
- };
31
-
32
- declare type ExistingDisclosureRequestProps = {
33
- companyId?: never;
34
- templateId?: never;
35
- disclosureRequestId: `dreq_${string}`;
36
- userReference?: never;
37
- userEmail?: never;
38
- forceError?: ForceErrors;
39
- customColor?: string;
40
- };
41
-
42
- declare type ForceErrors = 'facial_validation_error' | 'document_validation_error' | 'unknown_error' | 'expiration_error' | 'camera_permission_error';
43
-
44
- declare type NewDisclosureRequestProps = {
45
- companyId: `com_${string}`;
46
- templateId: `dtpl_${string}`;
47
- disclosureRequestId?: never;
48
- userReference: string;
49
- userEmail?: string;
50
- forceError?: ForceErrors;
51
- customColor?: string;
52
- };
53
-
54
- declare type Request_2 = 'disclosure' | 'signature';
55
-
56
- declare type SignatureAttemptConfig = {
57
- request: 'signature';
58
- configProps: SignatureAttemptProps;
59
- onEvent: (data: EventData) => void;
60
- isSandbox?: boolean;
61
- developmentUrl?: string;
62
- };
63
-
64
- declare type SignatureAttemptProps = {
65
- signatureAttemptId: `sa_${string}`;
66
- forceError?: ForceErrors;
67
- customColor?: string;
68
- };
1
+ import { AuthRequestConfig } from './widget/types';
2
+ import { AuthRequestProps } from './widget/types';
3
+ import { ConsentRequestBox } from './embeds';
4
+ import { ConsentRequestConfig } from './embeds/types';
5
+ import { ConsentRequestEvent } from './embeds/types';
6
+ import { DisclosureRequestConfig } from './widget/types';
7
+ import { DisclosureRequestProps } from './widget/types';
8
+ import { EventData } from './widget/types';
9
+ import { ExistingDisclosureRequestProps } from './widget/types';
10
+ import { ForceErrors } from './widget/types';
11
+ import { NewDisclosureRequestProps } from './widget/types';
12
+ import { Request as Request_2 } from './widget/types';
13
+ import { RequestConfig } from './widget/types';
14
+ import { SignatureAttemptProps } from './widget/types';
15
+ import { SignatureRequestConfig } from './widget/types';
16
+ import { SoyioWidget } from './widget';
17
+
18
+ export { ConsentRequestBox }
69
19
 
70
20
  declare namespace SoyioTypes {
71
21
  export {
22
+ ConsentRequestEvent,
23
+ ConsentRequestConfig,
72
24
  ForceErrors,
73
25
  Request_2 as Request,
74
26
  NewDisclosureRequestProps,
@@ -78,18 +30,13 @@ declare namespace SoyioTypes {
78
30
  AuthRequestProps,
79
31
  EventData,
80
32
  DisclosureRequestConfig,
81
- SignatureAttemptConfig,
33
+ SignatureRequestConfig,
82
34
  AuthRequestConfig,
83
- AttemptConfig
35
+ RequestConfig
84
36
  }
85
37
  }
86
38
  export { SoyioTypes }
87
39
 
88
- declare class SoyioWidget {
89
- #private;
90
- private onEvent;
91
- constructor(options: SoyioTypes.AttemptConfig);
92
- }
93
40
  export { SoyioWidget }
94
41
  export default SoyioWidget;
95
42
 
package/dist/index.js CHANGED
@@ -1,81 +1,164 @@
1
- var I = Object.defineProperty;
2
- var S = (e, t, n) => t in e ? I(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
3
- var f = (e, t, n) => (S(e, typeof t != "symbol" ? t + "" : t, n), n), _ = (e, t, n) => {
4
- if (!t.has(e))
1
+ var R = Object.defineProperty;
2
+ var C = (t, e, n) => e in t ? R(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
3
+ var u = (t, e, n) => (C(t, typeof e != "symbol" ? e + "" : e, n), n), U = (t, e, n) => {
4
+ if (!e.has(t))
5
5
  throw TypeError("Cannot " + n);
6
6
  };
7
- var p = (e, t, n) => {
8
- if (t.has(e))
7
+ var w = (t, e, n) => {
8
+ if (e.has(t))
9
9
  throw TypeError("Cannot add the same private member more than once");
10
- t instanceof WeakSet ? t.add(e) : t.set(e, n);
10
+ e instanceof WeakSet ? e.add(t) : e.set(t, n);
11
11
  };
12
- var w = (e, t, n) => (_(e, t, "access private method"), n);
13
- const R = "WIDGET_EVENT", T = "https://app.soyio.id/widget", g = "https://sandbox.soyio.id/widget", y = [
12
+ var I = (t, e, n) => (U(t, e, "access private method"), n);
13
+ const v = "soyio-consent-request-iframe", _ = "https://app.soyio.id", T = "https://sandbox.soyio.id", N = [
14
14
  "DISCLOSURE_REQUEST_SUCCESSFUL",
15
15
  "IDENTITY_REGISTERED",
16
16
  "IDENTITY_SIGNATURE",
17
17
  "UNEXPECTED_ERROR",
18
18
  "DENIED_CAMERA_PERMISSION",
19
19
  "REJECTED_SIGNATURE"
20
- ], b = "WIDGET_CLOSED";
21
- function v(e) {
22
- return "disclosureRequestId" in e.configProps ? ["disclosures", e.configProps.disclosureRequestId].join("/") : e.request;
23
- }
24
- function N(e) {
25
- const t = e.isSandbox ?? !1, n = e.developmentUrl || (t ? g : T), o = Object.entries(e.configProps).filter(([c, s]) => s || c === "disclosureRequestId").map(([c, s]) => `${c}=${encodeURIComponent(s)}`).join("&"), r = v(e);
26
- return `${n}/${r}?sdk=web&${o}`;
27
- }
28
- const U = !!(typeof window < "u" && window.document && window.document.createElement), D = 500;
29
- let i = null, u = null;
30
- function E(e = null) {
31
- i && !i.closed && i.focus(), e == null || e.preventDefault();
32
- }
33
- function a() {
34
- document.body.style.filter = "", document.body.removeEventListener("click", E);
35
- }
36
- function P() {
37
- u = setInterval(() => {
38
- (!i || i.closed) && (u && clearInterval(u), a());
39
- }, D);
40
- }
41
- function C(e) {
42
- const t = N(e), n = 510, o = 720, r = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : window.screen.width, c = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : window.screen.height, s = r / 2 - n / 2, m = c / 2 - o / 2;
43
- document.body.style.filter = "blur(5px)", document.body.addEventListener("click", E), i = window.open(t, "Soyio", `scrollbars=yes, width=${n}, height=${o}, top=${m}, left=${s}`), E(), P();
44
- }
45
- function L() {
46
- i && (i.close(), i = null), a();
47
- }
48
- let l = null;
49
- function O() {
50
- l && (l.cancel(), l = null);
51
- }
52
- async function W(e) {
53
- const { onEvent: t } = e, n = await import("./index-yZw-yxuV.js").then((o) => o.i);
54
- l && O(), l = n.on(R, async (o) => {
55
- t(o.data), y.includes(o.data.eventName) ? L() : o.data.eventName === b && a();
20
+ ], D = "WIDGET_CLOSED";
21
+ function H() {
22
+ const t = document.getElementById(v);
23
+ t && (console.warn("ConsentRequestBox iframe already exists. Removing existing before mounting new one."), t.remove());
24
+ }
25
+ function O(t) {
26
+ const e = document.querySelector(t);
27
+ if (!e)
28
+ throw new Error(`Iframe div container with id '${t}' not found`);
29
+ if (e.tagName.toLowerCase() !== "div")
30
+ throw new Error(`Iframe container with id '${t}' must be a <div> element`);
31
+ const n = e;
32
+ return n.style.position = "relative", n.style.cssText += `
33
+ padding: 0 !important;
34
+ margin: 0 !important;
35
+ display: block !important;
36
+ border: none !important;
37
+ transition: height 0.35s !important;
38
+ opacity: 1 !important;
39
+ `, n;
40
+ }
41
+ function L(t) {
42
+ const e = document.createElement("iframe");
43
+ return e.id = v, e.src = t, e.style.cssText += `
44
+ width: 100% !important;
45
+ border: none !important;
46
+ height: 110px !important;
47
+ overflow: hidden !important;
48
+ opacity: 1;
49
+ transition: height 0.35s,
50
+ opacity 0.4s 0.1s;
51
+ `, e;
52
+ }
53
+ function x(t) {
54
+ const e = t.isSandbox ?? !1;
55
+ return `${t.developmentUrl || (e ? T : _)}/embed/consents/${t.consentRequestId}`;
56
+ }
57
+ const A = "IFRAME_EVENT", $ = "IFRAME_HEIGHT_CHANGE";
58
+ let a = null, l = null;
59
+ function g() {
60
+ a == null || a.cancel(), a = null, l == null || l.cancel(), l = null;
61
+ }
62
+ async function G(t) {
63
+ const { onEvent: e, onHeightChange: n } = t, o = await import("./index-yZw-yxuV.js").then((i) => i.i);
64
+ g(), a = o.on(A, async (i) => {
65
+ const s = i.data;
66
+ e(s);
67
+ }), l = o.on($, async (i) => {
68
+ const s = i.data;
69
+ n(s.height);
56
70
  });
57
71
  }
58
- function $(e) {
59
- W(e);
72
+ class Q {
73
+ constructor(e) {
74
+ u(this, "options");
75
+ u(this, "iframe", null);
76
+ this.options = e, G({
77
+ onEvent: this.options.onEvent.bind(this),
78
+ onHeightChange: this.handleHeightChange.bind(this)
79
+ });
80
+ }
81
+ handleHeightChange(e) {
82
+ this.iframe && (this.iframe.style.height = `${e}px`);
83
+ }
84
+ mount(e) {
85
+ H();
86
+ const n = O(e), o = x(this.options);
87
+ return this.iframe = L(o), n.appendChild(this.iframe), this;
88
+ }
89
+ unmount() {
90
+ g(), this.iframe && (this.iframe.remove(), this.iframe = null);
91
+ }
60
92
  }
61
- const x = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
93
+ const z = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
62
94
  __proto__: null
63
95
  }, Symbol.toStringTag, { value: "Module" }));
64
- var d, h;
65
- class A {
66
- constructor(t) {
67
- p(this, d);
68
- f(this, "onEvent");
69
- this.onEvent = t.onEvent, U && (C(t), $({
70
- onEvent: w(this, d, h).bind(this)
96
+ function M(t) {
97
+ let e = "widget/";
98
+ return "disclosureRequestId" in t.configProps ? e += ["disclosures", t.configProps.disclosureRequestId].join("/") : e += t.request, e;
99
+ }
100
+ function W(t) {
101
+ const e = t.isSandbox ?? !1, n = t.developmentUrl || (e ? T : _), o = Object.entries(t.configProps).filter(([s, c]) => c || s === "disclosureRequestId").map(([s, c]) => `${s}=${encodeURIComponent(c)}`).join("&"), i = M(t);
102
+ return `${n}/${i}?sdk=web&${o}`;
103
+ }
104
+ const F = !!(typeof window < "u" && window.document && window.document.createElement);
105
+ let r = null, f = null;
106
+ function m(t = null) {
107
+ r && !r.closed && r.focus(), t == null || t.preventDefault();
108
+ }
109
+ function h() {
110
+ document.body.style.filter = "", document.body.removeEventListener("click", m);
111
+ }
112
+ function V() {
113
+ f = setInterval(() => {
114
+ (!r || r.closed) && (f && clearInterval(f), h());
115
+ }, 500);
116
+ }
117
+ function q(t) {
118
+ const e = W(t), n = 420, o = 720, i = window.screenLeft !== void 0 ? window.screenLeft : window.screenX, s = window.screenTop !== void 0 ? window.screenTop : window.screenY, c = window.innerWidth || document.documentElement.clientWidth || window.screen.width, S = window.innerHeight || document.documentElement.clientHeight || window.screen.height, p = c / window.screen.availWidth, b = (c - n) / 2 / p + i, P = (S - o) / 2 / p + s;
119
+ document.body.style.filter = "blur(5px)", document.body.addEventListener("click", m), r = window.open(
120
+ e,
121
+ "Soyio",
122
+ `scrollbars=yes,
123
+ width=${n},
124
+ height=${o},
125
+ top=${P},
126
+ left=${b}`
127
+ ), m(), V();
128
+ }
129
+ function k() {
130
+ r && (r.close(), r = null), h();
131
+ }
132
+ const j = "WIDGET_EVENT";
133
+ let d = null;
134
+ function B() {
135
+ d && (d.cancel(), d = null);
136
+ }
137
+ async function X(t) {
138
+ const { onEvent: e } = t, n = await import("./index-yZw-yxuV.js").then((o) => o.i);
139
+ d && B(), d = n.on(j, async (o) => {
140
+ e(o.data), N.includes(o.data.eventName) ? k() : o.data.eventName === D && h();
141
+ });
142
+ }
143
+ function Y(t) {
144
+ X(t);
145
+ }
146
+ var E, y;
147
+ class J {
148
+ constructor(e) {
149
+ w(this, E);
150
+ u(this, "onEvent");
151
+ this.onEvent = e.onEvent, F && (q(e), Y({
152
+ onEvent: I(this, E, y).bind(this)
71
153
  }));
72
154
  }
73
155
  }
74
- d = new WeakSet(), h = function(t) {
75
- this.onEvent(t);
156
+ E = new WeakSet(), y = function(e) {
157
+ this.onEvent(e);
76
158
  };
77
159
  export {
78
- x as SoyioTypes,
79
- A as SoyioWidget,
80
- A as default
160
+ Q as ConsentRequestBox,
161
+ z as SoyioTypes,
162
+ J as SoyioWidget,
163
+ J as default
81
164
  };
@@ -1,17 +1,36 @@
1
- (function(D,A){typeof exports=="object"&&typeof module<"u"?A(exports):typeof define=="function"&&define.amd?define(["exports"],A):(D=typeof globalThis<"u"?globalThis:D||self,A(D["soyio-widget"]={}))})(this,function(D){"use strict";var ft=Object.defineProperty;var lt=(D,A,F)=>A in D?ft(D,A,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[A]=F;var ye=(D,A,F)=>(lt(D,typeof A!="symbol"?A+"":A,F),F),ht=(D,A,F)=>{if(!A.has(D))throw TypeError("Cannot "+F)};var Ee=(D,A,F)=>{if(A.has(D))throw TypeError("Cannot add the same private member more than once");A instanceof WeakSet?A.add(D):A.set(D,F)};var We=(D,A,F)=>(ht(D,A,"access private method"),F);var hn,Se;function A(E,T){for(var C=0;C<T.length;C++){const y=T[C];if(typeof y!="string"&&!Array.isArray(y)){for(const w in y)if(w!=="default"&&!(w in E)){const v=Object.getOwnPropertyDescriptor(y,w);v&&Object.defineProperty(E,w,v.get?v:{enumerable:!0,get:()=>y[w]})}}}return Object.freeze(Object.defineProperty(E,Symbol.toStringTag,{value:"Module"}))}const F="WIDGET_EVENT",be="https://app.soyio.id/widget",xe="https://sandbox.soyio.id/widget",Pe=["DISCLOSURE_REQUEST_SUCCESSFUL","IDENTITY_REGISTERED","IDENTITY_SIGNATURE","UNEXPECTED_ERROR","DENIED_CAMERA_PERMISSION","REJECTED_SIGNATURE"],Oe="WIDGET_CLOSED";function Ie(E){return"disclosureRequestId"in E.configProps?["disclosures",E.configProps.disclosureRequestId].join("/"):E.request}function De(E){const T=E.isSandbox??!1,C=E.developmentUrl||(T?xe:be),y=Object.entries(E.configProps).filter(([v,W])=>W||v==="disclosureRequestId").map(([v,W])=>`${v}=${encodeURIComponent(W)}`).join("&"),w=Ie(E);return`${C}/${w}?sdk=web&${y}`}const Ae=!!(typeof window<"u"&&window.document&&window.document.createElement),Re=500;let k=null,bn=null;function xn(E=null){k&&!k.closed&&k.focus(),E==null||E.preventDefault()}function Pn(){document.body.style.filter="",document.body.removeEventListener("click",xn)}function Ne(){bn=setInterval(()=>{(!k||k.closed)&&(bn&&clearInterval(bn),Pn())},Re)}function je(E){const T=De(E),C=510,y=720,w=window.innerWidth?window.innerWidth:document.documentElement.clientWidth?document.documentElement.clientWidth:window.screen.width,v=window.innerHeight?window.innerHeight:document.documentElement.clientHeight?document.documentElement.clientHeight:window.screen.height,W=w/2-C/2,q=v/2-y/2;document.body.style.filter="blur(5px)",document.body.addEventListener("click",xn),k=window.open(T,"Soyio",`scrollbars=yes, width=${C}, height=${y}, top=${q}, left=${W}`),xn(),Ne()}function ze(){k&&(k.close(),k=null),Pn()}let en=null;function Ce(){en&&(en.cancel(),en=null)}async function Te(E){const{onEvent:T}=E,C=await Promise.resolve().then(()=>Be);en&&Ce(),en=C.on(F,async y=>{T(y.data),Pe.includes(y.data.eventName)?ze():y.data.eventName===Oe&&Pn()})}function Me(E){Te(E)}const Le=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));class Ln{constructor(T){Ee(this,hn);ye(this,"onEvent");this.onEvent=T.onEvent,Ae&&(je(T),Me({onEvent:We(this,hn,Se).bind(this)}))}}hn=new WeakSet,Se=function(T){this.onEvent(T)};var Fe=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ue(E){return E&&E.__esModule&&Object.prototype.hasOwnProperty.call(E,"default")?E.default:E}var Fn={exports:{}},Un={exports:{}};(function(E,T){(function(C,y){E.exports=y()})(typeof self<"u"?self:Fe,function(){return function(C){var y={};function w(v){if(y[v])return y[v].exports;var W=y[v]={i:v,l:!1,exports:{}};return C[v].call(W.exports,W,W.exports,w),W.l=!0,W.exports}return w.m=C,w.c=y,w.d=function(v,W,q){w.o(v,W)||Object.defineProperty(v,W,{enumerable:!0,get:q})},w.r=function(v){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(v,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(v,"__esModule",{value:!0})},w.t=function(v,W){if(1&W&&(v=w(v)),8&W||4&W&&typeof v=="object"&&v&&v.__esModule)return v;var q=Object.create(null);if(w.r(q),Object.defineProperty(q,"default",{enumerable:!0,value:v}),2&W&&typeof v!="string")for(var tn in v)w.d(q,tn,(function(vn){return v[vn]}).bind(null,tn));return q},w.n=function(v){var W=v&&v.__esModule?function(){return v.default}:function(){return v};return w.d(W,"a",W),W},w.o=function(v,W){return{}.hasOwnProperty.call(v,W)},w.p="",w(w.s=0)}([function(C,y,w){w.r(y),w.d(y,"Promise",function(){return b}),w.d(y,"TYPES",function(){return st}),w.d(y,"ProxyWindow",function(){return B}),w.d(y,"setup",function(){return ge}),w.d(y,"destroy",function(){return ct}),w.d(y,"serializeMessage",function(){return ot}),w.d(y,"deserializeMessage",function(){return it}),w.d(y,"createProxyWindow",function(){return at}),w.d(y,"toProxyWindow",function(){return ut}),w.d(y,"on",function(){return V}),w.d(y,"once",function(){return rt}),w.d(y,"send",function(){return $}),w.d(y,"markWindowKnown",function(){return ae}),w.d(y,"cleanUpWindow",function(){return dt}),w.d(y,"bridge",function(){});function v(n){return{}.toString.call(n)==="[object RegExp]"}var W=`Call was rejected by callee.\r
2
- `;function q(n){return n===void 0&&(n=window),n.location.protocol}function tn(n){if(n===void 0&&(n=window),n.mockDomain){var t=n.mockDomain.split("//")[0];if(t)return t}return q(n)}function vn(n){return n===void 0&&(n=window),tn(n)==="about:"}function Y(n){if(n===void 0&&(n=window),n)try{if(n.parent&&n.parent!==n)return n.parent}catch{}}function Bn(n){if(n===void 0&&(n=window),n&&!Y(n))try{return n.opener}catch{}}function wn(n){try{return!0}catch{}return!1}function mn(n){n===void 0&&(n=window);var t=n.location;if(!t)throw new Error("Can not read window location");var e=q(n);if(!e)throw new Error("Can not read window protocol");if(e==="file:")return"file://";if(e==="about:"){var r=Y(n);return r&&wn()?mn(r):"about://"}var o=t.host;if(!o)throw new Error("Can not read window host");return e+"//"+o}function M(n){n===void 0&&(n=window);var t=mn(n);return t&&n.mockDomain&&n.mockDomain.indexOf("mock:")===0?n.mockDomain:t}function K(n){if(!function(t){try{if(t===window)return!0}catch{}try{var e=Object.getOwnPropertyDescriptor(t,"location");if(e&&e.enumerable===!1)return!1}catch{}try{if(vn(t)&&wn())return!0}catch{}try{if(function(r){return r===void 0&&(r=window),tn(r)==="mock:"}(t)&&wn())return!0}catch{}try{if(mn(t)===mn(window))return!0}catch{}return!1}(n))return!1;try{if(n===window||vn(n)&&wn()||M(window)===M(n))return!0}catch{}return!1}function pn(n){if(!K(n))throw new Error("Expected window to be same domain");return n}function Gn(n,t){if(!n||!t)return!1;var e=Y(t);return e?e===n:function(r){var o=[];try{for(;r.parent!==r;)o.push(r.parent),r=r.parent}catch{}return o}(t).indexOf(n)!==-1}function Jn(n){var t=[],e;try{e=n.frames}catch{e=n}var r;try{r=e.length}catch{}if(r===0)return t;if(r){for(var o=0;o<r;o++){var i=void 0;try{i=e[o]}catch{continue}t.push(i)}return t}for(var a=0;a<100;a++){var s=void 0;try{s=e[a]}catch{return t}if(!s)return t;t.push(s)}return t}var Ge=[],Je=[];function G(n,t){t===void 0&&(t=!0);try{if(n===window)return!1}catch{return!0}try{if(!n)return!0}catch{return!0}try{if(n.closed)return!0}catch(o){return!o||o.message!==W}if(t&&K(n))try{if(n.mockclosed)return!0}catch{}try{if(!n.parent||!n.top)return!0}catch{}var e=function(o,i){for(var a=0;a<o.length;a++)try{if(o[a]===i)return a}catch{}return-1}(Ge,n);if(e!==-1){var r=Je[e];if(r&&function(o){if(!o.contentWindow||!o.parentNode)return!0;var i=o.ownerDocument;if(i&&i.documentElement&&!i.documentElement.contains(o)){for(var a=o;a.parentNode&&a.parentNode!==a;)a=a.parentNode;if(!a.host||!i.documentElement.contains(a.host))return!0}return!1}(r))return!0}return!1}function qn(n){return n===void 0&&(n=window),Bn(n=n||window)||Y(n)||void 0}function nn(n,t){if(typeof n=="string"){if(typeof t=="string")return n==="*"||t===n;if(v(t)||Array.isArray(t))return!1}return v(n)?v(t)?n.toString()===t.toString():!Array.isArray(t)&&!!t.match(n):!!Array.isArray(n)&&(Array.isArray(t)?JSON.stringify(n)===JSON.stringify(t):!v(t)&&n.some(function(e){return nn(e,t)}))}function gn(n){try{if(n===window)return!0}catch(t){if(t&&t.message===W)return!0}try{if({}.toString.call(n)==="[object Window]")return!0}catch(t){if(t&&t.message===W)return!0}try{if(window.Window&&n instanceof window.Window)return!0}catch(t){if(t&&t.message===W)return!0}try{if(n&&n.self===n)return!0}catch(t){if(t&&t.message===W)return!0}try{if(n&&n.parent===n)return!0}catch(t){if(t&&t.message===W)return!0}try{if(n&&n.top===n)return!0}catch(t){if(t&&t.message===W)return!0}try{if(n&&n.__cross_domain_utils_window_check__==="__unlikely_value__")return!1}catch{return!0}try{if("postMessage"in n&&"self"in n&&"location"in n)return!0}catch{}return!1}function Zn(n){if(K(n))return pn(n).frameElement;for(var t=0,e=document.querySelectorAll("iframe");t<e.length;t++){var r=e[t];if(r&&r.contentWindow&&r.contentWindow===n)return r}}function qe(n){if(function(e){return e===void 0&&(e=window),!!Y(e)}(n)){var t=Zn(n);if(t&&t.parentElement){t.parentElement.removeChild(t);return}}try{n.close()}catch{}}function X(n){try{if(!n)return!1;if(typeof Promise<"u"&&n instanceof Promise)return!0;if(typeof window<"u"&&typeof window.Window=="function"&&n instanceof window.Window||typeof window<"u"&&typeof window.constructor=="function"&&n instanceof window.constructor)return!1;var t={}.toString;if(t){var e=t.call(n);if(e==="[object Window]"||e==="[object global]"||e==="[object DOMWindow]")return!1}if(typeof n.then=="function")return!0}catch{return!1}return!1}var kn=[],rn=[],On=0,on;function Vn(){if(!On&&on){var n=on;on=null,n.resolve()}}function In(){On+=1}function an(){On-=1,Vn()}var b=function(){function n(e){var r=this;if(this.resolved=void 0,this.rejected=void 0,this.errorHandled=void 0,this.value=void 0,this.error=void 0,this.handlers=void 0,this.dispatching=void 0,this.stack=void 0,this.resolved=!1,this.rejected=!1,this.errorHandled=!1,this.handlers=[],e){var o,i,a=!1,s=!1,c=!1;In();try{e(function(u){c?r.resolve(u):(a=!0,o=u)},function(u){c?r.reject(u):(s=!0,i=u)})}catch(u){an(),this.reject(u);return}an(),c=!0,a?this.resolve(o):s&&this.reject(i)}}var t=n.prototype;return t.resolve=function(e){if(this.resolved||this.rejected)return this;if(X(e))throw new Error("Can not resolve promise with another promise");return this.resolved=!0,this.value=e,this.dispatch(),this},t.reject=function(e){var r=this;if(this.resolved||this.rejected)return this;if(X(e))throw new Error("Can not reject promise with another promise");if(!e){var o=e&&typeof e.toString=="function"?e.toString():{}.toString.call(e);e=new Error("Expected reject to be called with Error, got "+o)}return this.rejected=!0,this.error=e,this.errorHandled||setTimeout(function(){r.errorHandled||function(i,a){if(kn.indexOf(i)===-1){kn.push(i),setTimeout(function(){throw i},1);for(var s=0;s<rn.length;s++)rn[s](i,a)}}(e,r)},1),this.dispatch(),this},t.asyncReject=function(e){return this.errorHandled=!0,this.reject(e),this},t.dispatch=function(){var e=this.resolved,r=this.rejected,o=this.handlers;if(!this.dispatching&&(e||r)){this.dispatching=!0,In();for(var i=function(h,g){return h.then(function(m){g.resolve(m)},function(m){g.reject(m)})},a=0;a<o.length;a++){var s=o[a],c=s.onSuccess,u=s.onError,l=s.promise,d=void 0;if(e)try{d=c?c(this.value):this.value}catch(h){l.reject(h);continue}else if(r){if(!u){l.reject(this.error);continue}try{d=u(this.error)}catch(h){l.reject(h);continue}}if(d instanceof n&&(d.resolved||d.rejected)){var f=d;f.resolved?l.resolve(f.value):l.reject(f.error),f.errorHandled=!0}else X(d)?d instanceof n&&(d.resolved||d.rejected)?d.resolved?l.resolve(d.value):l.reject(d.error):i(d,l):l.resolve(d)}o.length=0,this.dispatching=!1,an()}},t.then=function(e,r){if(e&&typeof e!="function"&&!e.call)throw new Error("Promise.then expected a function for success handler");if(r&&typeof r!="function"&&!r.call)throw new Error("Promise.then expected a function for error handler");var o=new n;return this.handlers.push({promise:o,onSuccess:e,onError:r}),this.errorHandled=!0,this.dispatch(),o},t.catch=function(e){return this.then(void 0,e)},t.finally=function(e){if(e&&typeof e!="function"&&!e.call)throw new Error("Promise.finally expected a function");return this.then(function(r){return n.try(e).then(function(){return r})},function(r){return n.try(e).then(function(){throw r})})},t.timeout=function(e,r){var o=this;if(this.resolved||this.rejected)return this;var i=setTimeout(function(){o.resolved||o.rejected||o.reject(r||new Error("Promise timed out after "+e+"ms"))},e);return this.then(function(a){return clearTimeout(i),a})},t.toPromise=function(){if(typeof Promise>"u")throw new TypeError("Could not find Promise");return Promise.resolve(this)},t.lazy=function(){return this.errorHandled=!0,this},n.resolve=function(e){return e instanceof n?e:X(e)?new n(function(r,o){return e.then(r,o)}):new n().resolve(e)},n.reject=function(e){return new n().reject(e)},n.asyncReject=function(e){return new n().asyncReject(e)},n.all=function(e){var r=new n,o=e.length,i=[].slice();if(!o)return r.resolve(i),r;for(var a=function(u,l,d){return l.then(function(f){i[u]=f,(o-=1)==0&&r.resolve(i)},function(f){d.reject(f)})},s=0;s<e.length;s++){var c=e[s];if(c instanceof n){if(c.resolved){i[s]=c.value,o-=1;continue}}else if(!X(c)){i[s]=c,o-=1;continue}a(s,n.resolve(c),r)}return o===0&&r.resolve(i),r},n.hash=function(e){var r={},o=[],i=function(s){if(e.hasOwnProperty(s)){var c=e[s];X(c)?o.push(c.then(function(u){r[s]=u})):r[s]=c}};for(var a in e)i(a);return n.all(o).then(function(){return r})},n.map=function(e,r){return n.all(e.map(r))},n.onPossiblyUnhandledException=function(e){return function(r){return rn.push(r),{cancel:function(){rn.splice(rn.indexOf(r),1)}}}(e)},n.try=function(e,r,o){if(e&&typeof e!="function"&&!e.call)throw new Error("Promise.try expected a function");var i;In();try{i=e.apply(r,o||[])}catch(a){return an(),n.reject(a)}return an(),n.resolve(i)},n.delay=function(e){return new n(function(r){setTimeout(r,e)})},n.isPromise=function(e){return!!(e&&e instanceof n)||X(e)},n.flush=function(){return function(e){var r=on=on||new e;return Vn(),r}(n)},n}();function yn(n,t){for(var e=0;e<n.length;e++)try{if(n[e]===t)return e}catch{}return-1}var Dn=function(){function n(){if(this.name=void 0,this.weakmap=void 0,this.keys=void 0,this.values=void 0,this.name="__weakmap_"+(1e9*Math.random()>>>0)+"__",function(){if(typeof WeakMap>"u"||Object.freeze===void 0)return!1;try{var e=new WeakMap,r={};return Object.freeze(r),e.set(r,"__testvalue__"),e.get(r)==="__testvalue__"}catch{return!1}}())try{this.weakmap=new WeakMap}catch{}this.keys=[],this.values=[]}var t=n.prototype;return t._cleanupClosedWindows=function(){for(var e=this.weakmap,r=this.keys,o=0;o<r.length;o++){var i=r[o];if(gn(i)&&G(i)){if(e)try{e.delete(i)}catch{}r.splice(o,1),this.values.splice(o,1),o-=1}}},t.isSafeToReadWrite=function(e){return!gn(e)},t.set=function(e,r){if(!e)throw new Error("WeakMap expected key");var o=this.weakmap;if(o)try{o.set(e,r)}catch{delete this.weakmap}if(this.isSafeToReadWrite(e))try{var i=this.name,a=e[i];a&&a[0]===e?a[1]=r:Object.defineProperty(e,i,{value:[e,r],writable:!0});return}catch{}this._cleanupClosedWindows();var s=this.keys,c=this.values,u=yn(s,e);u===-1?(s.push(e),c.push(r)):c[u]=r},t.get=function(e){if(!e)throw new Error("WeakMap expected key");var r=this.weakmap;if(r)try{if(r.has(e))return r.get(e)}catch{delete this.weakmap}if(this.isSafeToReadWrite(e))try{var o=e[this.name];return o&&o[0]===e?o[1]:void 0}catch{}this._cleanupClosedWindows();var i=yn(this.keys,e);if(i!==-1)return this.values[i]},t.delete=function(e){if(!e)throw new Error("WeakMap expected key");var r=this.weakmap;if(r)try{r.delete(e)}catch{delete this.weakmap}if(this.isSafeToReadWrite(e))try{var o=e[this.name];o&&o[0]===e&&(o[0]=o[1]=void 0)}catch{}this._cleanupClosedWindows();var i=this.keys,a=yn(i,e);a!==-1&&(i.splice(a,1),this.values.splice(a,1))},t.has=function(e){if(!e)throw new Error("WeakMap expected key");var r=this.weakmap;if(r)try{if(r.has(e))return!0}catch{delete this.weakmap}if(this.isSafeToReadWrite(e))try{var o=e[this.name];return!(!o||o[0]!==e)}catch{}return this._cleanupClosedWindows(),yn(this.keys,e)!==-1},t.getOrSet=function(e,r){if(this.has(e))return this.get(e);var o=r();return this.set(e,o),o},n}();function $n(n){return n.name||n.__name__||n.displayName||"anonymous"}function Yn(n,t){try{delete n.name,n.name=t}catch{}return n.__name__=n.displayName=t,n}function Z(){var n="0123456789abcdef";return"uid_"+"xxxxxxxxxx".replace(/./g,function(){return n.charAt(Math.floor(Math.random()*n.length))})+"_"+function(t){if(typeof btoa=="function")return btoa(encodeURIComponent(t).replace(/%([0-9A-F]{2})/g,function(e,r){return String.fromCharCode(parseInt(r,16))})).replace(/[=]/g,"");if(typeof Buffer<"u")return Buffer.from(t,"utf8").toString("base64").replace(/[=]/g,"");throw new Error("Can not find window.btoa or Buffer")}(new Date().toISOString().slice(11,19).replace("T",".")).replace(/[^a-zA-Z0-9]/g,"").toLowerCase()}var En;function Kn(n){try{return JSON.stringify([].slice.call(n),function(t,e){return typeof e=="function"?"memoize["+function(r){if(En=En||new Dn,r==null||typeof r!="object"&&typeof r!="function")throw new Error("Invalid object");var o=En.get(r);return o||(o=typeof r+":"+Z(),En.set(r,o)),o}(e)+"]":typeof window<"u"&&e instanceof window.Element||e!==null&&typeof e=="object"&&e.nodeType===1&&typeof e.style=="object"&&typeof e.ownerDocument=="object"?{}:e})}catch{throw new Error("Arguments not serializable -- can not be used to memoize")}}function Ze(){return{}}var un=0,Xn=0;function cn(n,t){t===void 0&&(t={});var e=t.thisNamespace,r=e!==void 0&&e,o=t.time,i,a,s=un;un+=1;var c=function(){for(var u=arguments.length,l=new Array(u),d=0;d<u;d++)l[d]=arguments[d];s<Xn&&(i=null,a=null,s=un,un+=1);var f;f=r?(a=a||new Dn).getOrSet(this,Ze):i=i||{};var h;try{h=Kn(l)}catch{return n.apply(this,arguments)}var g=f[h];if(g&&o&&Date.now()-g.time<o&&(delete f[h],g=null),g)return g.value;var m=Date.now(),p=n.apply(this,arguments);return f[h]={time:m,value:p},p};return c.reset=function(){i=null,a=null},Yn(c,(t.name||$n(n))+"::memoized")}cn.clear=function(){Xn=un};function ke(n){var t={};function e(){for(var r=arguments,o=this,i=arguments.length,a=new Array(i),s=0;s<i;s++)a[s]=arguments[s];var c=Kn(a);return t.hasOwnProperty(c)||(t[c]=b.try(function(){return n.apply(o,r)}).finally(function(){delete t[c]})),t[c]}return e.reset=function(){t={}},Yn(e,$n(n)+"::promiseMemoized")}function _(){}function sn(n,t){if(t===void 0&&(t=1),t>=3)return"stringifyError stack overflow";try{if(!n)return"<unknown error: "+{}.toString.call(n)+">";if(typeof n=="string")return n;if(n instanceof Error){var e=n&&n.stack,r=n&&n.message;if(e&&r)return e.indexOf(r)!==-1?e:r+`
3
- `+e;if(e)return e;if(r)return r}return n&&n.toString&&typeof n.toString=="function"?n.toString():{}.toString.call(n)}catch(o){return"Error while stringifying error: "+sn(o,t+1)}}function _n(n){return typeof n=="string"?n:n&&n.toString&&typeof n.toString=="function"?n.toString():{}.toString.call(n)}cn(function(n){if(Object.values)return Object.values(n);var t=[];for(var e in n)n.hasOwnProperty(e)&&t.push(n[e]);return t});function An(n){return{}.toString.call(n)==="[object RegExp]"}function dn(n,t,e){if(n.hasOwnProperty(t))return n[t];var r=e();return n[t]=r,r}function Qn(){var n=document.body;if(!n)throw new Error("Body element not found");return n}function ne(){return!!document.body&&document.readyState==="complete"}function ee(){return!!document.body&&document.readyState==="interactive"}cn(function(){return new b(function(n){if(ne()||ee())return n();var t=setInterval(function(){if(ne()||ee())return clearInterval(t),n()},10)})});var Wn=typeof document<"u"?document.currentScript:null,Ve=cn(function(){if(Wn||(Wn=function(){try{var n=function(){try{throw new Error("_")}catch(a){return a.stack||""}}(),t=/.*at [^(]*\((.*):(.+):(.+)\)$/gi.exec(n),e=t&&t[1];if(!e)return;for(var r=0,o=[].slice.call(document.getElementsByTagName("script")).reverse();r<o.length;r++){var i=o[r];if(i.src&&i.src===e)return i}}catch{}}()))return Wn;throw new Error("Can not determine current script")}),$e=Z();cn(function(){var n;try{n=Ve()}catch{return $e}var t=n.getAttribute("data-uid");if(t&&typeof t=="string"||(t=n.getAttribute("data-uid-auto"))&&typeof t=="string")return t;if(n.src){var e=function(r){for(var o="",i=0;i<r.length;i++){var a=r[i].charCodeAt(0)*i;r[i+1]&&(a+=r[i+1].charCodeAt(0)*(i-1)),o+=String.fromCharCode(97+Math.abs(a)%26)}return o}(JSON.stringify({src:n.src,dataset:n.dataset}));t="uid_"+e.slice(e.length-30)}else t=Z();return n.setAttribute("data-uid-auto",t),t});function fn(n){n===void 0&&(n=window);var t="__post_robot_10_0_46__";return n!==window?n[t]:n[t]=n[t]||{}}var te=function(){return{}};function j(n,t){return n===void 0&&(n="store"),t===void 0&&(t=te),dn(fn(),n,function(){var e=t();return{has:function(r){return e.hasOwnProperty(r)},get:function(r,o){return e.hasOwnProperty(r)?e[r]:o},set:function(r,o){return e[r]=o,o},del:function(r){delete e[r]},getOrSet:function(r,o){return dn(e,r,o)},reset:function(){e=t()},keys:function(){return Object.keys(e)}}})}var Ye=function(){};function Sn(){var n=fn();return n.WINDOW_WILDCARD=n.WINDOW_WILDCARD||new Ye,n.WINDOW_WILDCARD}function L(n,t){return n===void 0&&(n="store"),t===void 0&&(t=te),j("windowStore").getOrSet(n,function(){var e=new Dn,r=function(o){return e.getOrSet(o,t)};return{has:function(o){return r(o).hasOwnProperty(n)},get:function(o,i){var a=r(o);return a.hasOwnProperty(n)?a[n]:i},set:function(o,i){return r(o)[n]=i,i},del:function(o){delete r(o)[n]},getOrSet:function(o,i){return dn(r(o),n,i)}}})}function re(){return j("instance").getOrSet("instanceID",Z)}function oe(n,t){var e=t.domain,r=L("helloPromises"),o=r.get(n);o&&o.resolve({domain:e});var i=b.resolve({domain:e});return r.set(n,i),i}function Rn(n,t){return(0,t.send)(n,"postrobot_hello",{instanceID:re()},{domain:"*",timeout:-1}).then(function(e){var r=e.origin,o=e.data.instanceID;return oe(n,{domain:r}),{win:n,domain:r,instanceID:o}})}function ie(n,t){var e=t.send;return L("windowInstanceIDPromises").getOrSet(n,function(){return Rn(n,{send:e}).then(function(r){return r.instanceID})})}function ae(n){L("knownWindows").set(n,!0)}function Nn(n){return typeof n=="object"&&n!==null&&typeof n.__type__=="string"}function ue(n){return n===void 0?"undefined":n===null?"null":Array.isArray(n)?"array":typeof n=="function"?"function":typeof n=="object"?n instanceof Error?"error":typeof n.then=="function"?"promise":{}.toString.call(n)==="[object RegExp]"?"regex":{}.toString.call(n)==="[object Date]"?"date":"object":typeof n=="string"?"string":typeof n=="number"?"number":typeof n=="boolean"?"boolean":void 0}function Q(n,t){return{__type__:n,__val__:t}}var U,Ke=((U={}).function=function(){},U.error=function(n){return Q("error",{message:n.message,stack:n.stack,code:n.code,data:n.data})},U.promise=function(){},U.regex=function(n){return Q("regex",n.source)},U.date=function(n){return Q("date",n.toJSON())},U.array=function(n){return n},U.object=function(n){return n},U.string=function(n){return n},U.number=function(n){return n},U.boolean=function(n){return n},U.null=function(n){return n},U[void 0]=function(n){return Q("undefined",n)},U),Xe={},H,_e=((H={}).function=function(){throw new Error("Function serialization is not implemented; nothing to deserialize")},H.error=function(n){var t=n.stack,e=n.code,r=n.data,o=new Error(n.message);return o.code=e,r&&(o.data=r),o.stack=t+`
1
+ (function(A,N){typeof exports=="object"&&typeof module<"u"?N(exports):typeof define=="function"&&define.amd?define(["exports"],N):(A=typeof globalThis<"u"?globalThis:A||self,N(A["soyio-widget"]={}))})(this,function(A){"use strict";var Pt=Object.defineProperty;var It=(A,N,M)=>N in A?Pt(A,N,{enumerable:!0,configurable:!0,writable:!0,value:M}):A[N]=M;var Pn=(A,N,M)=>(It(A,typeof N!="symbol"?N+"":N,M),M),Ot=(A,N,M)=>{if(!N.has(A))throw TypeError("Cannot "+M)};var Ie=(A,N,M)=>{if(N.has(A))throw TypeError("Cannot add the same private member more than once");N instanceof WeakSet?N.add(A):N.set(A,M)};var Oe=(A,N,M)=>(Ot(A,N,"access private method"),M);var mn,De;function N(v,W){for(var R=0;R<W.length;R++){const p=W[R];if(typeof p!="string"&&!Array.isArray(p)){for(const m in p)if(m!=="default"&&!(m in v)){const w=Object.getOwnPropertyDescriptor(p,m);w&&Object.defineProperty(v,m,w.get?w:{enumerable:!0,get:()=>p[m]})}}}return Object.freeze(Object.defineProperty(v,Symbol.toStringTag,{value:"Module"}))}const M="soyio-consent-request-iframe",Hn="https://app.soyio.id",Bn="https://sandbox.soyio.id",Re=["DISCLOSURE_REQUEST_SUCCESSFUL","IDENTITY_REGISTERED","IDENTITY_SIGNATURE","UNEXPECTED_ERROR","DENIED_CAMERA_PERMISSION","REJECTED_SIGNATURE"],Ae="WIDGET_CLOSED",Ne=420,Te=720,Ce=500;function je(){const v=document.getElementById(M);v&&(console.warn("ConsentRequestBox iframe already exists. Removing existing before mounting new one."),v.remove())}function ze(v){const W=document.querySelector(v);if(!W)throw new Error(`Iframe div container with id '${v}' not found`);if(W.tagName.toLowerCase()!=="div")throw new Error(`Iframe container with id '${v}' must be a <div> element`);const R=W;return R.style.position="relative",R.style.cssText+=`
2
+ padding: 0 !important;
3
+ margin: 0 !important;
4
+ display: block !important;
5
+ border: none !important;
6
+ transition: height 0.35s !important;
7
+ opacity: 1 !important;
8
+ `,R}function Me(v){const W=document.createElement("iframe");return W.id=M,W.src=v,W.style.cssText+=`
9
+ width: 100% !important;
10
+ border: none !important;
11
+ height: 110px !important;
12
+ overflow: hidden !important;
13
+ opacity: 1;
14
+ transition: height 0.35s,
15
+ opacity 0.4s 0.1s;
16
+ `,W}function Le(v){const W=v.isSandbox??!1;return`${v.developmentUrl||(W?Bn:Hn)}/embed/consents/${v.consentRequestId}`}const Ue="IFRAME_EVENT",Fe="IFRAME_HEIGHT_CHANGE";let rn=null,on=null;function Gn(){rn==null||rn.cancel(),rn=null,on==null||on.cancel(),on=null}async function He(v){const{onEvent:W,onHeightChange:R}=v,p=await Promise.resolve().then(()=>Vn);Gn(),rn=p.on(Ue,async m=>{const w=m.data;W(w)}),on=p.on(Fe,async m=>{const w=m.data;R(w.height)})}class Be{constructor(W){Pn(this,"options");Pn(this,"iframe",null);this.options=W,He({onEvent:this.options.onEvent.bind(this),onHeightChange:this.handleHeightChange.bind(this)})}handleHeightChange(W){this.iframe&&(this.iframe.style.height=`${W}px`)}mount(W){je();const R=ze(W),p=Le(this.options);return this.iframe=Me(p),R.appendChild(this.iframe),this}unmount(){Gn(),this.iframe&&(this.iframe.remove(),this.iframe=null)}}const Ge=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));function qe(v){let W="widget/";return"disclosureRequestId"in v.configProps?W+=["disclosures",v.configProps.disclosureRequestId].join("/"):W+=v.request,W}function _e(v){const W=v.isSandbox??!1,R=v.developmentUrl||(W?Bn:Hn),p=Object.entries(v.configProps).filter(([w,S])=>S||w==="disclosureRequestId").map(([w,S])=>`${w}=${encodeURIComponent(S)}`).join("&"),m=qe(v);return`${R}/${m}?sdk=web&${p}`}const Je=!!(typeof window<"u"&&window.document&&window.document.createElement);let $=null,In=null;function On(v=null){$&&!$.closed&&$.focus(),v==null||v.preventDefault()}function Dn(){document.body.style.filter="",document.body.removeEventListener("click",On)}function $e(){In=setInterval(()=>{(!$||$.closed)&&(In&&clearInterval(In),Dn())},Ce)}function Ve(v){const W=_e(v),R=Ne,p=Te,m=window.screenLeft!==void 0?window.screenLeft:window.screenX,w=window.screenTop!==void 0?window.screenTop:window.screenY,S=window.innerWidth||document.documentElement.clientWidth||window.screen.width,_=window.innerHeight||document.documentElement.clientHeight||window.screen.height,Z=S/window.screen.availWidth,en=(S-R)/2/Z+m,V=(_-p)/2/Z+w;document.body.style.filter="blur(5px)",document.body.addEventListener("click",On),$=window.open(W,"Soyio",`scrollbars=yes,
17
+ width=${R},
18
+ height=${p},
19
+ top=${V},
20
+ left=${en}`),On(),$e()}function Ze(){$&&($.close(),$=null),Dn()}const ke="WIDGET_EVENT";let an=null;function Ye(){an&&(an.cancel(),an=null)}async function Xe(v){const{onEvent:W}=v,R=await Promise.resolve().then(()=>Vn);an&&Ye(),an=R.on(ke,async p=>{W(p.data),Re.includes(p.data.eventName)?Ze():p.data.eventName===Ae&&Dn()})}function Ke(v){Xe(v)}class qn{constructor(W){Ie(this,mn);Pn(this,"onEvent");this.onEvent=W.onEvent,Je&&(Ve(W),Ke({onEvent:Oe(this,mn,De).bind(this)}))}}mn=new WeakSet,De=function(W){this.onEvent(W)};var Qe=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function nt(v){return v&&v.__esModule&&Object.prototype.hasOwnProperty.call(v,"default")?v.default:v}var _n={exports:{}},Jn={exports:{}};(function(v,W){(function(R,p){v.exports=p()})(typeof self<"u"?self:Qe,function(){return function(R){var p={};function m(w){if(p[w])return p[w].exports;var S=p[w]={i:w,l:!1,exports:{}};return R[w].call(S.exports,S,S.exports,m),S.l=!0,S.exports}return m.m=R,m.c=p,m.d=function(w,S,_){m.o(w,S)||Object.defineProperty(w,S,{enumerable:!0,get:_})},m.r=function(w){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(w,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(w,"__esModule",{value:!0})},m.t=function(w,S){if(1&S&&(w=m(w)),8&S||4&S&&typeof w=="object"&&w&&w.__esModule)return w;var _=Object.create(null);if(m.r(_),Object.defineProperty(_,"default",{enumerable:!0,value:w}),2&S&&typeof w!="string")for(var Z in w)m.d(_,Z,(function(en){return w[en]}).bind(null,Z));return _},m.n=function(w){var S=w&&w.__esModule?function(){return w.default}:function(){return w};return m.d(S,"a",S),S},m.o=function(w,S){return{}.hasOwnProperty.call(w,S)},m.p="",m(m.s=0)}([function(R,p,m){m.r(p),m.d(p,"Promise",function(){return x}),m.d(p,"TYPES",function(){return bt}),m.d(p,"ProxyWindow",function(){return B}),m.d(p,"setup",function(){return Pe}),m.d(p,"destroy",function(){return St}),m.d(p,"serializeMessage",function(){return gt}),m.d(p,"deserializeMessage",function(){return yt}),m.d(p,"createProxyWindow",function(){return Et}),m.d(p,"toProxyWindow",function(){return Wt}),m.d(p,"on",function(){return k}),m.d(p,"once",function(){return pt}),m.d(p,"send",function(){return Y}),m.d(p,"markWindowKnown",function(){return he}),m.d(p,"cleanUpWindow",function(){return xt}),m.d(p,"bridge",function(){});function w(n){return{}.toString.call(n)==="[object RegExp]"}var S=`Call was rejected by callee.\r
21
+ `;function _(n){return n===void 0&&(n=window),n.location.protocol}function Z(n){if(n===void 0&&(n=window),n.mockDomain){var t=n.mockDomain.split("//")[0];if(t)return t}return _(n)}function en(n){return n===void 0&&(n=window),Z(n)==="about:"}function V(n){if(n===void 0&&(n=window),n)try{if(n.parent&&n.parent!==n)return n.parent}catch{}}function Zn(n){if(n===void 0&&(n=window),n&&!V(n))try{return n.opener}catch{}}function pn(n){try{return!0}catch{}return!1}function gn(n){n===void 0&&(n=window);var t=n.location;if(!t)throw new Error("Can not read window location");var e=_(n);if(!e)throw new Error("Can not read window protocol");if(e==="file:")return"file://";if(e==="about:"){var r=V(n);return r&&pn()?gn(r):"about://"}var o=t.host;if(!o)throw new Error("Can not read window host");return e+"//"+o}function L(n){n===void 0&&(n=window);var t=gn(n);return t&&n.mockDomain&&n.mockDomain.indexOf("mock:")===0?n.mockDomain:t}function X(n){if(!function(t){try{if(t===window)return!0}catch{}try{var e=Object.getOwnPropertyDescriptor(t,"location");if(e&&e.enumerable===!1)return!1}catch{}try{if(en(t)&&pn())return!0}catch{}try{if(function(r){return r===void 0&&(r=window),Z(r)==="mock:"}(t)&&pn())return!0}catch{}try{if(gn(t)===gn(window))return!0}catch{}return!1}(n))return!1;try{if(n===window||en(n)&&pn()||L(window)===L(n))return!0}catch{}return!1}function yn(n){if(!X(n))throw new Error("Expected window to be same domain");return n}function kn(n,t){if(!n||!t)return!1;var e=V(t);return e?e===n:function(r){var o=[];try{for(;r.parent!==r;)o.push(r.parent),r=r.parent}catch{}return o}(t).indexOf(n)!==-1}function Yn(n){var t=[],e;try{e=n.frames}catch{e=n}var r;try{r=e.length}catch{}if(r===0)return t;if(r){for(var o=0;o<r;o++){var i=void 0;try{i=e[o]}catch{continue}t.push(i)}return t}for(var a=0;a<100;a++){var s=void 0;try{s=e[a]}catch{return t}if(!s)return t;t.push(s)}return t}var tt=[],rt=[];function G(n,t){t===void 0&&(t=!0);try{if(n===window)return!1}catch{return!0}try{if(!n)return!0}catch{return!0}try{if(n.closed)return!0}catch(o){return!o||o.message!==S}if(t&&X(n))try{if(n.mockclosed)return!0}catch{}try{if(!n.parent||!n.top)return!0}catch{}var e=function(o,i){for(var a=0;a<o.length;a++)try{if(o[a]===i)return a}catch{}return-1}(tt,n);if(e!==-1){var r=rt[e];if(r&&function(o){if(!o.contentWindow||!o.parentNode)return!0;var i=o.ownerDocument;if(i&&i.documentElement&&!i.documentElement.contains(o)){for(var a=o;a.parentNode&&a.parentNode!==a;)a=a.parentNode;if(!a.host||!i.documentElement.contains(a.host))return!0}return!1}(r))return!0}return!1}function Xn(n){return n===void 0&&(n=window),Zn(n=n||window)||V(n)||void 0}function tn(n,t){if(typeof n=="string"){if(typeof t=="string")return n==="*"||t===n;if(w(t)||Array.isArray(t))return!1}return w(n)?w(t)?n.toString()===t.toString():!Array.isArray(t)&&!!t.match(n):!!Array.isArray(n)&&(Array.isArray(t)?JSON.stringify(n)===JSON.stringify(t):!w(t)&&n.some(function(e){return tn(e,t)}))}function En(n){try{if(n===window)return!0}catch(t){if(t&&t.message===S)return!0}try{if({}.toString.call(n)==="[object Window]")return!0}catch(t){if(t&&t.message===S)return!0}try{if(window.Window&&n instanceof window.Window)return!0}catch(t){if(t&&t.message===S)return!0}try{if(n&&n.self===n)return!0}catch(t){if(t&&t.message===S)return!0}try{if(n&&n.parent===n)return!0}catch(t){if(t&&t.message===S)return!0}try{if(n&&n.top===n)return!0}catch(t){if(t&&t.message===S)return!0}try{if(n&&n.__cross_domain_utils_window_check__==="__unlikely_value__")return!1}catch{return!0}try{if("postMessage"in n&&"self"in n&&"location"in n)return!0}catch{}return!1}function Kn(n){if(X(n))return yn(n).frameElement;for(var t=0,e=document.querySelectorAll("iframe");t<e.length;t++){var r=e[t];if(r&&r.contentWindow&&r.contentWindow===n)return r}}function ot(n){if(function(e){return e===void 0&&(e=window),!!V(e)}(n)){var t=Kn(n);if(t&&t.parentElement){t.parentElement.removeChild(t);return}}try{n.close()}catch{}}function K(n){try{if(!n)return!1;if(typeof Promise<"u"&&n instanceof Promise)return!0;if(typeof window<"u"&&typeof window.Window=="function"&&n instanceof window.Window||typeof window<"u"&&typeof window.constructor=="function"&&n instanceof window.constructor)return!1;var t={}.toString;if(t){var e=t.call(n);if(e==="[object Window]"||e==="[object global]"||e==="[object DOMWindow]")return!1}if(typeof n.then=="function")return!0}catch{return!1}return!1}var Qn=[],un=[],Rn=0,cn;function ne(){if(!Rn&&cn){var n=cn;cn=null,n.resolve()}}function An(){Rn+=1}function sn(){Rn-=1,ne()}var x=function(){function n(e){var r=this;if(this.resolved=void 0,this.rejected=void 0,this.errorHandled=void 0,this.value=void 0,this.error=void 0,this.handlers=void 0,this.dispatching=void 0,this.stack=void 0,this.resolved=!1,this.rejected=!1,this.errorHandled=!1,this.handlers=[],e){var o,i,a=!1,s=!1,c=!1;An();try{e(function(u){c?r.resolve(u):(a=!0,o=u)},function(u){c?r.reject(u):(s=!0,i=u)})}catch(u){sn(),this.reject(u);return}sn(),c=!0,a?this.resolve(o):s&&this.reject(i)}}var t=n.prototype;return t.resolve=function(e){if(this.resolved||this.rejected)return this;if(K(e))throw new Error("Can not resolve promise with another promise");return this.resolved=!0,this.value=e,this.dispatch(),this},t.reject=function(e){var r=this;if(this.resolved||this.rejected)return this;if(K(e))throw new Error("Can not reject promise with another promise");if(!e){var o=e&&typeof e.toString=="function"?e.toString():{}.toString.call(e);e=new Error("Expected reject to be called with Error, got "+o)}return this.rejected=!0,this.error=e,this.errorHandled||setTimeout(function(){r.errorHandled||function(i,a){if(Qn.indexOf(i)===-1){Qn.push(i),setTimeout(function(){throw i},1);for(var s=0;s<un.length;s++)un[s](i,a)}}(e,r)},1),this.dispatch(),this},t.asyncReject=function(e){return this.errorHandled=!0,this.reject(e),this},t.dispatch=function(){var e=this.resolved,r=this.rejected,o=this.handlers;if(!this.dispatching&&(e||r)){this.dispatching=!0,An();for(var i=function(h,E){return h.then(function(g){E.resolve(g)},function(g){E.reject(g)})},a=0;a<o.length;a++){var s=o[a],c=s.onSuccess,u=s.onError,l=s.promise,d=void 0;if(e)try{d=c?c(this.value):this.value}catch(h){l.reject(h);continue}else if(r){if(!u){l.reject(this.error);continue}try{d=u(this.error)}catch(h){l.reject(h);continue}}if(d instanceof n&&(d.resolved||d.rejected)){var f=d;f.resolved?l.resolve(f.value):l.reject(f.error),f.errorHandled=!0}else K(d)?d instanceof n&&(d.resolved||d.rejected)?d.resolved?l.resolve(d.value):l.reject(d.error):i(d,l):l.resolve(d)}o.length=0,this.dispatching=!1,sn()}},t.then=function(e,r){if(e&&typeof e!="function"&&!e.call)throw new Error("Promise.then expected a function for success handler");if(r&&typeof r!="function"&&!r.call)throw new Error("Promise.then expected a function for error handler");var o=new n;return this.handlers.push({promise:o,onSuccess:e,onError:r}),this.errorHandled=!0,this.dispatch(),o},t.catch=function(e){return this.then(void 0,e)},t.finally=function(e){if(e&&typeof e!="function"&&!e.call)throw new Error("Promise.finally expected a function");return this.then(function(r){return n.try(e).then(function(){return r})},function(r){return n.try(e).then(function(){throw r})})},t.timeout=function(e,r){var o=this;if(this.resolved||this.rejected)return this;var i=setTimeout(function(){o.resolved||o.rejected||o.reject(r||new Error("Promise timed out after "+e+"ms"))},e);return this.then(function(a){return clearTimeout(i),a})},t.toPromise=function(){if(typeof Promise>"u")throw new TypeError("Could not find Promise");return Promise.resolve(this)},t.lazy=function(){return this.errorHandled=!0,this},n.resolve=function(e){return e instanceof n?e:K(e)?new n(function(r,o){return e.then(r,o)}):new n().resolve(e)},n.reject=function(e){return new n().reject(e)},n.asyncReject=function(e){return new n().asyncReject(e)},n.all=function(e){var r=new n,o=e.length,i=[].slice();if(!o)return r.resolve(i),r;for(var a=function(u,l,d){return l.then(function(f){i[u]=f,(o-=1)==0&&r.resolve(i)},function(f){d.reject(f)})},s=0;s<e.length;s++){var c=e[s];if(c instanceof n){if(c.resolved){i[s]=c.value,o-=1;continue}}else if(!K(c)){i[s]=c,o-=1;continue}a(s,n.resolve(c),r)}return o===0&&r.resolve(i),r},n.hash=function(e){var r={},o=[],i=function(s){if(e.hasOwnProperty(s)){var c=e[s];K(c)?o.push(c.then(function(u){r[s]=u})):r[s]=c}};for(var a in e)i(a);return n.all(o).then(function(){return r})},n.map=function(e,r){return n.all(e.map(r))},n.onPossiblyUnhandledException=function(e){return function(r){return un.push(r),{cancel:function(){un.splice(un.indexOf(r),1)}}}(e)},n.try=function(e,r,o){if(e&&typeof e!="function"&&!e.call)throw new Error("Promise.try expected a function");var i;An();try{i=e.apply(r,o||[])}catch(a){return sn(),n.reject(a)}return sn(),n.resolve(i)},n.delay=function(e){return new n(function(r){setTimeout(r,e)})},n.isPromise=function(e){return!!(e&&e instanceof n)||K(e)},n.flush=function(){return function(e){var r=cn=cn||new e;return ne(),r}(n)},n}();function Wn(n,t){for(var e=0;e<n.length;e++)try{if(n[e]===t)return e}catch{}return-1}var Nn=function(){function n(){if(this.name=void 0,this.weakmap=void 0,this.keys=void 0,this.values=void 0,this.name="__weakmap_"+(1e9*Math.random()>>>0)+"__",function(){if(typeof WeakMap>"u"||Object.freeze===void 0)return!1;try{var e=new WeakMap,r={};return Object.freeze(r),e.set(r,"__testvalue__"),e.get(r)==="__testvalue__"}catch{return!1}}())try{this.weakmap=new WeakMap}catch{}this.keys=[],this.values=[]}var t=n.prototype;return t._cleanupClosedWindows=function(){for(var e=this.weakmap,r=this.keys,o=0;o<r.length;o++){var i=r[o];if(En(i)&&G(i)){if(e)try{e.delete(i)}catch{}r.splice(o,1),this.values.splice(o,1),o-=1}}},t.isSafeToReadWrite=function(e){return!En(e)},t.set=function(e,r){if(!e)throw new Error("WeakMap expected key");var o=this.weakmap;if(o)try{o.set(e,r)}catch{delete this.weakmap}if(this.isSafeToReadWrite(e))try{var i=this.name,a=e[i];a&&a[0]===e?a[1]=r:Object.defineProperty(e,i,{value:[e,r],writable:!0});return}catch{}this._cleanupClosedWindows();var s=this.keys,c=this.values,u=Wn(s,e);u===-1?(s.push(e),c.push(r)):c[u]=r},t.get=function(e){if(!e)throw new Error("WeakMap expected key");var r=this.weakmap;if(r)try{if(r.has(e))return r.get(e)}catch{delete this.weakmap}if(this.isSafeToReadWrite(e))try{var o=e[this.name];return o&&o[0]===e?o[1]:void 0}catch{}this._cleanupClosedWindows();var i=Wn(this.keys,e);if(i!==-1)return this.values[i]},t.delete=function(e){if(!e)throw new Error("WeakMap expected key");var r=this.weakmap;if(r)try{r.delete(e)}catch{delete this.weakmap}if(this.isSafeToReadWrite(e))try{var o=e[this.name];o&&o[0]===e&&(o[0]=o[1]=void 0)}catch{}this._cleanupClosedWindows();var i=this.keys,a=Wn(i,e);a!==-1&&(i.splice(a,1),this.values.splice(a,1))},t.has=function(e){if(!e)throw new Error("WeakMap expected key");var r=this.weakmap;if(r)try{if(r.has(e))return!0}catch{delete this.weakmap}if(this.isSafeToReadWrite(e))try{var o=e[this.name];return!(!o||o[0]!==e)}catch{}return this._cleanupClosedWindows(),Wn(this.keys,e)!==-1},t.getOrSet=function(e,r){if(this.has(e))return this.get(e);var o=r();return this.set(e,o),o},n}();function ee(n){return n.name||n.__name__||n.displayName||"anonymous"}function te(n,t){try{delete n.name,n.name=t}catch{}return n.__name__=n.displayName=t,n}function J(){var n="0123456789abcdef";return"uid_"+"xxxxxxxxxx".replace(/./g,function(){return n.charAt(Math.floor(Math.random()*n.length))})+"_"+function(t){if(typeof btoa=="function")return btoa(encodeURIComponent(t).replace(/%([0-9A-F]{2})/g,function(e,r){return String.fromCharCode(parseInt(r,16))})).replace(/[=]/g,"");if(typeof Buffer<"u")return Buffer.from(t,"utf8").toString("base64").replace(/[=]/g,"");throw new Error("Can not find window.btoa or Buffer")}(new Date().toISOString().slice(11,19).replace("T",".")).replace(/[^a-zA-Z0-9]/g,"").toLowerCase()}var Sn;function re(n){try{return JSON.stringify([].slice.call(n),function(t,e){return typeof e=="function"?"memoize["+function(r){if(Sn=Sn||new Nn,r==null||typeof r!="object"&&typeof r!="function")throw new Error("Invalid object");var o=Sn.get(r);return o||(o=typeof r+":"+J(),Sn.set(r,o)),o}(e)+"]":typeof window<"u"&&e instanceof window.Element||e!==null&&typeof e=="object"&&e.nodeType===1&&typeof e.style=="object"&&typeof e.ownerDocument=="object"?{}:e})}catch{throw new Error("Arguments not serializable -- can not be used to memoize")}}function it(){return{}}var dn=0,oe=0;function fn(n,t){t===void 0&&(t={});var e=t.thisNamespace,r=e!==void 0&&e,o=t.time,i,a,s=dn;dn+=1;var c=function(){for(var u=arguments.length,l=new Array(u),d=0;d<u;d++)l[d]=arguments[d];s<oe&&(i=null,a=null,s=dn,dn+=1);var f;f=r?(a=a||new Nn).getOrSet(this,it):i=i||{};var h;try{h=re(l)}catch{return n.apply(this,arguments)}var E=f[h];if(E&&o&&Date.now()-E.time<o&&(delete f[h],E=null),E)return E.value;var g=Date.now(),y=n.apply(this,arguments);return f[h]={time:g,value:y},y};return c.reset=function(){i=null,a=null},te(c,(t.name||ee(n))+"::memoized")}fn.clear=function(){oe=dn};function at(n){var t={};function e(){for(var r=arguments,o=this,i=arguments.length,a=new Array(i),s=0;s<i;s++)a[s]=arguments[s];var c=re(a);return t.hasOwnProperty(c)||(t[c]=x.try(function(){return n.apply(o,r)}).finally(function(){delete t[c]})),t[c]}return e.reset=function(){t={}},te(e,ee(n)+"::promiseMemoized")}function Q(){}function ln(n,t){if(t===void 0&&(t=1),t>=3)return"stringifyError stack overflow";try{if(!n)return"<unknown error: "+{}.toString.call(n)+">";if(typeof n=="string")return n;if(n instanceof Error){var e=n&&n.stack,r=n&&n.message;if(e&&r)return e.indexOf(r)!==-1?e:r+`
22
+ `+e;if(e)return e;if(r)return r}return n&&n.toString&&typeof n.toString=="function"?n.toString():{}.toString.call(n)}catch(o){return"Error while stringifying error: "+ln(o,t+1)}}function ie(n){return typeof n=="string"?n:n&&n.toString&&typeof n.toString=="function"?n.toString():{}.toString.call(n)}fn(function(n){if(Object.values)return Object.values(n);var t=[];for(var e in n)n.hasOwnProperty(e)&&t.push(n[e]);return t});function Tn(n){return{}.toString.call(n)==="[object RegExp]"}function hn(n,t,e){if(n.hasOwnProperty(t))return n[t];var r=e();return n[t]=r,r}function ae(){var n=document.body;if(!n)throw new Error("Body element not found");return n}function ue(){return!!document.body&&document.readyState==="complete"}function ce(){return!!document.body&&document.readyState==="interactive"}fn(function(){return new x(function(n){if(ue()||ce())return n();var t=setInterval(function(){if(ue()||ce())return clearInterval(t),n()},10)})});var bn=typeof document<"u"?document.currentScript:null,ut=fn(function(){if(bn||(bn=function(){try{var n=function(){try{throw new Error("_")}catch(a){return a.stack||""}}(),t=/.*at [^(]*\((.*):(.+):(.+)\)$/gi.exec(n),e=t&&t[1];if(!e)return;for(var r=0,o=[].slice.call(document.getElementsByTagName("script")).reverse();r<o.length;r++){var i=o[r];if(i.src&&i.src===e)return i}}catch{}}()))return bn;throw new Error("Can not determine current script")}),ct=J();fn(function(){var n;try{n=ut()}catch{return ct}var t=n.getAttribute("data-uid");if(t&&typeof t=="string"||(t=n.getAttribute("data-uid-auto"))&&typeof t=="string")return t;if(n.src){var e=function(r){for(var o="",i=0;i<r.length;i++){var a=r[i].charCodeAt(0)*i;r[i+1]&&(a+=r[i+1].charCodeAt(0)*(i-1)),o+=String.fromCharCode(97+Math.abs(a)%26)}return o}(JSON.stringify({src:n.src,dataset:n.dataset}));t="uid_"+e.slice(e.length-30)}else t=J();return n.setAttribute("data-uid-auto",t),t});function vn(n){n===void 0&&(n=window);var t="__post_robot_10_0_46__";return n!==window?n[t]:n[t]=n[t]||{}}var se=function(){return{}};function j(n,t){return n===void 0&&(n="store"),t===void 0&&(t=se),hn(vn(),n,function(){var e=t();return{has:function(r){return e.hasOwnProperty(r)},get:function(r,o){return e.hasOwnProperty(r)?e[r]:o},set:function(r,o){return e[r]=o,o},del:function(r){delete e[r]},getOrSet:function(r,o){return hn(e,r,o)},reset:function(){e=t()},keys:function(){return Object.keys(e)}}})}var st=function(){};function xn(){var n=vn();return n.WINDOW_WILDCARD=n.WINDOW_WILDCARD||new st,n.WINDOW_WILDCARD}function U(n,t){return n===void 0&&(n="store"),t===void 0&&(t=se),j("windowStore").getOrSet(n,function(){var e=new Nn,r=function(o){return e.getOrSet(o,t)};return{has:function(o){return r(o).hasOwnProperty(n)},get:function(o,i){var a=r(o);return a.hasOwnProperty(n)?a[n]:i},set:function(o,i){return r(o)[n]=i,i},del:function(o){delete r(o)[n]},getOrSet:function(o,i){return hn(r(o),n,i)}}})}function de(){return j("instance").getOrSet("instanceID",J)}function fe(n,t){var e=t.domain,r=U("helloPromises"),o=r.get(n);o&&o.resolve({domain:e});var i=x.resolve({domain:e});return r.set(n,i),i}function Cn(n,t){return(0,t.send)(n,"postrobot_hello",{instanceID:de()},{domain:"*",timeout:-1}).then(function(e){var r=e.origin,o=e.data.instanceID;return fe(n,{domain:r}),{win:n,domain:r,instanceID:o}})}function le(n,t){var e=t.send;return U("windowInstanceIDPromises").getOrSet(n,function(){return Cn(n,{send:e}).then(function(r){return r.instanceID})})}function he(n){U("knownWindows").set(n,!0)}function jn(n){return typeof n=="object"&&n!==null&&typeof n.__type__=="string"}function ve(n){return n===void 0?"undefined":n===null?"null":Array.isArray(n)?"array":typeof n=="function"?"function":typeof n=="object"?n instanceof Error?"error":typeof n.then=="function"?"promise":{}.toString.call(n)==="[object RegExp]"?"regex":{}.toString.call(n)==="[object Date]"?"date":"object":typeof n=="string"?"string":typeof n=="number"?"number":typeof n=="boolean"?"boolean":void 0}function nn(n,t){return{__type__:n,__val__:t}}var F,dt=((F={}).function=function(){},F.error=function(n){return nn("error",{message:n.message,stack:n.stack,code:n.code,data:n.data})},F.promise=function(){},F.regex=function(n){return nn("regex",n.source)},F.date=function(n){return nn("date",n.toJSON())},F.array=function(n){return n},F.object=function(n){return n},F.string=function(n){return n},F.number=function(n){return n},F.boolean=function(n){return n},F.null=function(n){return n},F[void 0]=function(n){return nn("undefined",n)},F),ft={},H,lt=((H={}).function=function(){throw new Error("Function serialization is not implemented; nothing to deserialize")},H.error=function(n){var t=n.stack,e=n.code,r=n.data,o=new Error(n.message);return o.code=e,r&&(o.data=r),o.stack=t+`
4
23
 
5
- `+o.stack,o},H.promise=function(){throw new Error("Promise serialization is not implemented; nothing to deserialize")},H.regex=function(n){return new RegExp(n)},H.date=function(n){return new Date(n)},H.array=function(n){return n},H.object=function(n){return n},H.string=function(n){return n},H.number=function(n){return n},H.boolean=function(n){return n},H.null=function(n){return n},H[void 0]=function(){},H),Qe={};new b(function(n){if(window.document&&window.document.body)return n(window.document.body);var t=setInterval(function(){if(window.document&&window.document.body)return clearInterval(t),n(window.document.body)},10)});function jn(){for(var n=j("idToProxyWindow"),t=0,e=n.keys();t<e.length;t++){var r=e[t];n.get(r).shouldClean()&&n.del(r)}}function ce(n,t){var e=t.send,r=t.id,o=r===void 0?Z():r,i=n.then(function(c){if(K(c))return pn(c).name}),a=n.then(function(c){if(G(c))throw new Error("Window is closed, can not determine type");return Bn(c)?"popup":"iframe"});i.catch(_),a.catch(_);var s=function(){return n.then(function(c){if(!G(c))return K(c)?pn(c).name:i})};return{id:o,getType:function(){return a},getInstanceID:ke(function(){return n.then(function(c){return ie(c,{send:e})})}),close:function(){return n.then(qe)},getName:s,focus:function(){return n.then(function(c){c.focus()})},isClosed:function(){return n.then(function(c){return G(c)})},setLocation:function(c,u){return u===void 0&&(u={}),n.then(function(l){var d=window.location.protocol+"//"+window.location.host,f=u.method,h=f===void 0?"get":f,g=u.body;if(c.indexOf("/")===0)c=""+d+c;else if(!c.match(/^https?:\/\//)&&c.indexOf(d)!==0)throw new Error("Expected url to be http or https url, or absolute path, got "+JSON.stringify(c));if(h==="post")return s().then(function(m){if(!m)throw new Error("Can not post to window without target name");(function(p){var x=p.url,N=p.target,O=p.body,P=p.method,z=P===void 0?"post":P,S=document.createElement("form");if(S.setAttribute("target",N),S.setAttribute("method",z),S.setAttribute("action",x),S.style.display="none",O)for(var I=0,J=Object.keys(O);I<J.length;I++){var R,ln=J[I],Mn=document.createElement("input");Mn.setAttribute("name",ln),Mn.setAttribute("value",(R=O[ln])==null?void 0:R.toString()),S.appendChild(Mn)}Qn().appendChild(S),S.submit(),Qn().removeChild(S)})({url:c,target:m,method:h,body:g})});if(h!=="get")throw new Error("Unsupported method: "+h);if(K(l))try{if(l.location&&typeof l.location.replace=="function"){l.location.replace(c);return}}catch{}l.location=c})},setName:function(c){return n.then(function(u){var l=K(u),d=Zn(u);if(!l)throw new Error("Can not set name for cross-domain window: "+c);pn(u).name=c,d&&d.setAttribute("name",c),i=b.resolve(c)})}}}var B=function(){function n(e){var r=e.send,o=e.win,i=e.serializedWindow;this.id=void 0,this.isProxyWindow=!0,this.serializedWindow=void 0,this.actualWindow=void 0,this.actualWindowPromise=void 0,this.send=void 0,this.name=void 0,this.actualWindowPromise=new b,this.serializedWindow=i||ce(this.actualWindowPromise,{send:r}),j("idToProxyWindow").set(this.getID(),this),o&&this.setWindow(o,{send:r})}var t=n.prototype;return t.getID=function(){return this.serializedWindow.id},t.getType=function(){return this.serializedWindow.getType()},t.isPopup=function(){return this.getType().then(function(e){return e==="popup"})},t.setLocation=function(e,r){var o=this;return this.serializedWindow.setLocation(e,r).then(function(){return o})},t.getName=function(){return this.serializedWindow.getName()},t.setName=function(e){var r=this;return this.serializedWindow.setName(e).then(function(){return r})},t.close=function(){var e=this;return this.serializedWindow.close().then(function(){return e})},t.focus=function(){var e=this,r=this.isPopup(),o=this.getName(),i=b.hash({isPopup:r,name:o}).then(function(s){var c=s.name;s.isPopup&&c&&window.open("",c,"noopener")}),a=this.serializedWindow.focus();return b.all([i,a]).then(function(){return e})},t.isClosed=function(){return this.serializedWindow.isClosed()},t.getWindow=function(){return this.actualWindow},t.setWindow=function(e,r){var o=r.send;this.actualWindow=e,this.actualWindowPromise.resolve(this.actualWindow),this.serializedWindow=ce(this.actualWindowPromise,{send:o,id:this.getID()}),L("winToProxyWindow").set(e,this)},t.awaitWindow=function(){return this.actualWindowPromise},t.matchWindow=function(e,r){var o=this,i=r.send;return b.try(function(){return o.actualWindow?e===o.actualWindow:b.hash({proxyInstanceID:o.getInstanceID(),knownWindowInstanceID:ie(e,{send:i})}).then(function(a){var s=a.proxyInstanceID===a.knownWindowInstanceID;return s&&o.setWindow(e,{send:i}),s})})},t.unwrap=function(){return this.actualWindow||this},t.getInstanceID=function(){return this.serializedWindow.getInstanceID()},t.shouldClean=function(){return!!(this.actualWindow&&G(this.actualWindow))},t.serialize=function(){return this.serializedWindow},n.unwrap=function(e){return n.isProxyWindow(e)?e.unwrap():e},n.serialize=function(e,r){var o=r.send;return jn(),n.toProxyWindow(e,{send:o}).serialize()},n.deserialize=function(e,r){var o=r.send;return jn(),j("idToProxyWindow").get(e.id)||new n({serializedWindow:e,send:o})},n.isProxyWindow=function(e){return!!(e&&!gn(e)&&e.isProxyWindow)},n.toProxyWindow=function(e,r){var o=r.send;if(jn(),n.isProxyWindow(e))return e;var i=e;return L("winToProxyWindow").get(i)||new n({win:i,send:o})},n}();function zn(n,t,e,r,o){var i=L("methodStore"),a=j("proxyWindowMethods");B.isProxyWindow(r)?a.set(n,{val:t,name:e,domain:o,source:r}):(a.del(n),i.getOrSet(r,function(){return{}})[n]={domain:o,name:e,val:t,source:r})}function se(n,t){var e=L("methodStore"),r=j("proxyWindowMethods");return e.getOrSet(n,function(){return{}})[t]||r.get(t)}function de(n,t,e,r,o){a=(i={on:o.on,send:o.send}).on,s=i.send,j("builtinListeners").getOrSet("functionCalls",function(){return a("postrobot_method",{domain:"*"},function(l){var d=l.source,f=l.origin,h=l.data,g=h.id,m=h.name,p=se(d,g);if(!p)throw new Error("Could not find method '"+m+"' with id: "+h.id+" in "+M(window));var x=p.source,N=p.domain,O=p.val;return b.try(function(){if(!nn(N,f))throw new Error("Method '"+h.name+"' domain "+JSON.stringify(An(p.domain)?p.domain.source:p.domain)+" does not match origin "+f+" in "+M(window));if(B.isProxyWindow(x))return x.matchWindow(d,{send:s}).then(function(P){if(!P)throw new Error("Method call '"+h.name+"' failed - proxy window does not match source in "+M(window))})}).then(function(){return O.apply({source:d,origin:f},h.args)},function(P){return b.try(function(){if(O.onError)return O.onError(P)}).then(function(){throw P.stack&&(P.stack="Remote call to "+m+"("+function(z){return z===void 0&&(z=[]),(S=z,[].slice.call(S)).map(function(I){return typeof I=="string"?"'"+I+"'":I===void 0?"undefined":I===null?"null":typeof I=="boolean"?I.toString():Array.isArray(I)?"[ ... ]":typeof I=="object"?"{ ... }":typeof I=="function"?"() => { ... }":"<"+typeof I+">"}).join(", ");var S}(h.args)+`) failed
24
+ `+o.stack,o},H.promise=function(){throw new Error("Promise serialization is not implemented; nothing to deserialize")},H.regex=function(n){return new RegExp(n)},H.date=function(n){return new Date(n)},H.array=function(n){return n},H.object=function(n){return n},H.string=function(n){return n},H.number=function(n){return n},H.boolean=function(n){return n},H.null=function(n){return n},H[void 0]=function(){},H),ht={};new x(function(n){if(window.document&&window.document.body)return n(window.document.body);var t=setInterval(function(){if(window.document&&window.document.body)return clearInterval(t),n(window.document.body)},10)});function zn(){for(var n=j("idToProxyWindow"),t=0,e=n.keys();t<e.length;t++){var r=e[t];n.get(r).shouldClean()&&n.del(r)}}function we(n,t){var e=t.send,r=t.id,o=r===void 0?J():r,i=n.then(function(c){if(X(c))return yn(c).name}),a=n.then(function(c){if(G(c))throw new Error("Window is closed, can not determine type");return Zn(c)?"popup":"iframe"});i.catch(Q),a.catch(Q);var s=function(){return n.then(function(c){if(!G(c))return X(c)?yn(c).name:i})};return{id:o,getType:function(){return a},getInstanceID:at(function(){return n.then(function(c){return le(c,{send:e})})}),close:function(){return n.then(ot)},getName:s,focus:function(){return n.then(function(c){c.focus()})},isClosed:function(){return n.then(function(c){return G(c)})},setLocation:function(c,u){return u===void 0&&(u={}),n.then(function(l){var d=window.location.protocol+"//"+window.location.host,f=u.method,h=f===void 0?"get":f,E=u.body;if(c.indexOf("/")===0)c=""+d+c;else if(!c.match(/^https?:\/\//)&&c.indexOf(d)!==0)throw new Error("Expected url to be http or https url, or absolute path, got "+JSON.stringify(c));if(h==="post")return s().then(function(g){if(!g)throw new Error("Can not post to window without target name");(function(y){var P=y.url,C=y.target,O=y.body,I=y.method,z=I===void 0?"post":I,b=document.createElement("form");if(b.setAttribute("target",C),b.setAttribute("method",z),b.setAttribute("action",P),b.style.display="none",O)for(var D=0,q=Object.keys(O);D<q.length;D++){var T,wn=q[D],Fn=document.createElement("input");Fn.setAttribute("name",wn),Fn.setAttribute("value",(T=O[wn])==null?void 0:T.toString()),b.appendChild(Fn)}ae().appendChild(b),b.submit(),ae().removeChild(b)})({url:c,target:g,method:h,body:E})});if(h!=="get")throw new Error("Unsupported method: "+h);if(X(l))try{if(l.location&&typeof l.location.replace=="function"){l.location.replace(c);return}}catch{}l.location=c})},setName:function(c){return n.then(function(u){var l=X(u),d=Kn(u);if(!l)throw new Error("Can not set name for cross-domain window: "+c);yn(u).name=c,d&&d.setAttribute("name",c),i=x.resolve(c)})}}}var B=function(){function n(e){var r=e.send,o=e.win,i=e.serializedWindow;this.id=void 0,this.isProxyWindow=!0,this.serializedWindow=void 0,this.actualWindow=void 0,this.actualWindowPromise=void 0,this.send=void 0,this.name=void 0,this.actualWindowPromise=new x,this.serializedWindow=i||we(this.actualWindowPromise,{send:r}),j("idToProxyWindow").set(this.getID(),this),o&&this.setWindow(o,{send:r})}var t=n.prototype;return t.getID=function(){return this.serializedWindow.id},t.getType=function(){return this.serializedWindow.getType()},t.isPopup=function(){return this.getType().then(function(e){return e==="popup"})},t.setLocation=function(e,r){var o=this;return this.serializedWindow.setLocation(e,r).then(function(){return o})},t.getName=function(){return this.serializedWindow.getName()},t.setName=function(e){var r=this;return this.serializedWindow.setName(e).then(function(){return r})},t.close=function(){var e=this;return this.serializedWindow.close().then(function(){return e})},t.focus=function(){var e=this,r=this.isPopup(),o=this.getName(),i=x.hash({isPopup:r,name:o}).then(function(s){var c=s.name;s.isPopup&&c&&window.open("",c,"noopener")}),a=this.serializedWindow.focus();return x.all([i,a]).then(function(){return e})},t.isClosed=function(){return this.serializedWindow.isClosed()},t.getWindow=function(){return this.actualWindow},t.setWindow=function(e,r){var o=r.send;this.actualWindow=e,this.actualWindowPromise.resolve(this.actualWindow),this.serializedWindow=we(this.actualWindowPromise,{send:o,id:this.getID()}),U("winToProxyWindow").set(e,this)},t.awaitWindow=function(){return this.actualWindowPromise},t.matchWindow=function(e,r){var o=this,i=r.send;return x.try(function(){return o.actualWindow?e===o.actualWindow:x.hash({proxyInstanceID:o.getInstanceID(),knownWindowInstanceID:le(e,{send:i})}).then(function(a){var s=a.proxyInstanceID===a.knownWindowInstanceID;return s&&o.setWindow(e,{send:i}),s})})},t.unwrap=function(){return this.actualWindow||this},t.getInstanceID=function(){return this.serializedWindow.getInstanceID()},t.shouldClean=function(){return!!(this.actualWindow&&G(this.actualWindow))},t.serialize=function(){return this.serializedWindow},n.unwrap=function(e){return n.isProxyWindow(e)?e.unwrap():e},n.serialize=function(e,r){var o=r.send;return zn(),n.toProxyWindow(e,{send:o}).serialize()},n.deserialize=function(e,r){var o=r.send;return zn(),j("idToProxyWindow").get(e.id)||new n({serializedWindow:e,send:o})},n.isProxyWindow=function(e){return!!(e&&!En(e)&&e.isProxyWindow)},n.toProxyWindow=function(e,r){var o=r.send;if(zn(),n.isProxyWindow(e))return e;var i=e;return U("winToProxyWindow").get(i)||new n({win:i,send:o})},n}();function Mn(n,t,e,r,o){var i=U("methodStore"),a=j("proxyWindowMethods");B.isProxyWindow(r)?a.set(n,{val:t,name:e,domain:o,source:r}):(a.del(n),i.getOrSet(r,function(){return{}})[n]={domain:o,name:e,val:t,source:r})}function me(n,t){var e=U("methodStore"),r=j("proxyWindowMethods");return e.getOrSet(n,function(){return{}})[t]||r.get(t)}function pe(n,t,e,r,o){a=(i={on:o.on,send:o.send}).on,s=i.send,j("builtinListeners").getOrSet("functionCalls",function(){return a("postrobot_method",{domain:"*"},function(l){var d=l.source,f=l.origin,h=l.data,E=h.id,g=h.name,y=me(d,E);if(!y)throw new Error("Could not find method '"+g+"' with id: "+h.id+" in "+L(window));var P=y.source,C=y.domain,O=y.val;return x.try(function(){if(!tn(C,f))throw new Error("Method '"+h.name+"' domain "+JSON.stringify(Tn(y.domain)?y.domain.source:y.domain)+" does not match origin "+f+" in "+L(window));if(B.isProxyWindow(P))return P.matchWindow(d,{send:s}).then(function(I){if(!I)throw new Error("Method call '"+h.name+"' failed - proxy window does not match source in "+L(window))})}).then(function(){return O.apply({source:d,origin:f},h.args)},function(I){return x.try(function(){if(O.onError)return O.onError(I)}).then(function(){throw I.stack&&(I.stack="Remote call to "+g+"("+function(z){return z===void 0&&(z=[]),(b=z,[].slice.call(b)).map(function(D){return typeof D=="string"?"'"+D+"'":D===void 0?"undefined":D===null?"null":typeof D=="boolean"?D.toString():Array.isArray(D)?"[ ... ]":typeof D=="object"?"{ ... }":typeof D=="function"?"() => { ... }":"<"+typeof D+">"}).join(", ");var b}(h.args)+`) failed
6
25
 
7
- `+P.stack),P})}).then(function(P){return{result:P,id:g,name:m}})})});var i,a,s,c=e.__id__||Z();n=B.unwrap(n);var u=e.__name__||e.name||r;return typeof u=="string"&&typeof u.indexOf=="function"&&u.indexOf("anonymous::")===0&&(u=u.replace("anonymous::",r+"::")),B.isProxyWindow(n)?(zn(c,e,u,n,t),n.awaitWindow().then(function(l){zn(c,e,u,l,t)})):zn(c,e,u,n,t),Q("cross_domain_function",{id:c,name:u})}function fe(n,t,e,r){var o,i=r.on,a=r.send;return function(s,c){c===void 0&&(c=Xe);var u=JSON.stringify(s,function(l){var d=this[l];if(Nn(this))return d;var f=ue(d);if(!f)return d;var h=c[f]||Ke[f];return h?h(d,l):d});return u===void 0?"undefined":u}(e,((o={}).promise=function(s,c){return function(u,l,d,f,h){return Q("cross_domain_zalgo_promise",{then:de(u,l,function(g,m){return d.then(g,m)},f,{on:h.on,send:h.send})})}(n,t,s,c,{on:i,send:a})},o.function=function(s,c){return de(n,t,s,c,{on:i,send:a})},o.object=function(s){return gn(s)||B.isProxyWindow(s)?Q("cross_domain_window",B.serialize(s,{send:a})):s},o))}function le(n,t,e,r){var o,i=r.send;return function(a,s){if(s===void 0&&(s=Qe),a!=="undefined")return JSON.parse(a,function(c,u){if(Nn(this))return u;var l,d;if(Nn(u)?(l=u.__type__,d=u.__val__):(l=ue(u),d=u),!l)return d;var f=s[l]||_e[l];return f?f(d,c):d})}(e,((o={}).cross_domain_zalgo_promise=function(a){return function(s,c,u){return new b(u.then)}(0,0,a)},o.cross_domain_function=function(a){return function(s,c,u,l){var d=u.id,f=u.name,h=l.send,g=function(p){p===void 0&&(p={});function x(){var N=arguments;return B.toProxyWindow(s,{send:h}).awaitWindow().then(function(O){var P=se(O,d);if(P&&P.val!==x)return P.val.apply({source:window,origin:M()},N);var z=[].slice.call(N);return p.fireAndForget?h(O,"postrobot_method",{id:d,name:f,args:z},{domain:c,fireAndForget:!0}):h(O,"postrobot_method",{id:d,name:f,args:z},{domain:c,fireAndForget:!1}).then(function(S){return S.data.result})}).catch(function(O){throw O})}return x.__name__=f,x.__origin__=c,x.__source__=s,x.__id__=d,x.origin=c,x},m=g();return m.fireAndForget=g({fireAndForget:!0}),m}(n,t,a,{send:i})},o.cross_domain_window=function(a){return B.deserialize(a,{send:i})},o))}var Cn={};Cn.postrobot_post_message=function(n,t,e){e.indexOf("file:")===0&&(e="*"),n.postMessage(t,e)};function Tn(n,t,e,r){var o=r.on,i=r.send;return b.try(function(){var a=L().getOrSet(n,function(){return{}});return a.buffer=a.buffer||[],a.buffer.push(e),a.flush=a.flush||b.flush().then(function(){if(G(n))throw new Error("Window is closed");var s=fe(n,t,((c={}).__post_robot_10_0_46__=a.buffer||[],c),{on:o,send:i}),c;delete a.buffer;for(var u=Object.keys(Cn),l=[],d=0;d<u.length;d++){var f=u[d];try{Cn[f](n,s,t)}catch(h){l.push(h)}}if(l.length===u.length)throw new Error(`All post-robot messaging strategies failed:
26
+ `+I.stack),I})}).then(function(I){return{result:I,id:E,name:g}})})});var i,a,s,c=e.__id__||J();n=B.unwrap(n);var u=e.__name__||e.name||r;return typeof u=="string"&&typeof u.indexOf=="function"&&u.indexOf("anonymous::")===0&&(u=u.replace("anonymous::",r+"::")),B.isProxyWindow(n)?(Mn(c,e,u,n,t),n.awaitWindow().then(function(l){Mn(c,e,u,l,t)})):Mn(c,e,u,n,t),nn("cross_domain_function",{id:c,name:u})}function ge(n,t,e,r){var o,i=r.on,a=r.send;return function(s,c){c===void 0&&(c=ft);var u=JSON.stringify(s,function(l){var d=this[l];if(jn(this))return d;var f=ve(d);if(!f)return d;var h=c[f]||dt[f];return h?h(d,l):d});return u===void 0?"undefined":u}(e,((o={}).promise=function(s,c){return function(u,l,d,f,h){return nn("cross_domain_zalgo_promise",{then:pe(u,l,function(E,g){return d.then(E,g)},f,{on:h.on,send:h.send})})}(n,t,s,c,{on:i,send:a})},o.function=function(s,c){return pe(n,t,s,c,{on:i,send:a})},o.object=function(s){return En(s)||B.isProxyWindow(s)?nn("cross_domain_window",B.serialize(s,{send:a})):s},o))}function ye(n,t,e,r){var o,i=r.send;return function(a,s){if(s===void 0&&(s=ht),a!=="undefined")return JSON.parse(a,function(c,u){if(jn(this))return u;var l,d;if(jn(u)?(l=u.__type__,d=u.__val__):(l=ve(u),d=u),!l)return d;var f=s[l]||lt[l];return f?f(d,c):d})}(e,((o={}).cross_domain_zalgo_promise=function(a){return function(s,c,u){return new x(u.then)}(0,0,a)},o.cross_domain_function=function(a){return function(s,c,u,l){var d=u.id,f=u.name,h=l.send,E=function(y){y===void 0&&(y={});function P(){var C=arguments;return B.toProxyWindow(s,{send:h}).awaitWindow().then(function(O){var I=me(O,d);if(I&&I.val!==P)return I.val.apply({source:window,origin:L()},C);var z=[].slice.call(C);return y.fireAndForget?h(O,"postrobot_method",{id:d,name:f,args:z},{domain:c,fireAndForget:!0}):h(O,"postrobot_method",{id:d,name:f,args:z},{domain:c,fireAndForget:!1}).then(function(b){return b.data.result})}).catch(function(O){throw O})}return P.__name__=f,P.__origin__=c,P.__source__=s,P.__id__=d,P.origin=c,P},g=E();return g.fireAndForget=E({fireAndForget:!0}),g}(n,t,a,{send:i})},o.cross_domain_window=function(a){return B.deserialize(a,{send:i})},o))}var Ln={};Ln.postrobot_post_message=function(n,t,e){e.indexOf("file:")===0&&(e="*"),n.postMessage(t,e)};function Un(n,t,e,r){var o=r.on,i=r.send;return x.try(function(){var a=U().getOrSet(n,function(){return{}});return a.buffer=a.buffer||[],a.buffer.push(e),a.flush=a.flush||x.flush().then(function(){if(G(n))throw new Error("Window is closed");var s=ge(n,t,((c={}).__post_robot_10_0_46__=a.buffer||[],c),{on:o,send:i}),c;delete a.buffer;for(var u=Object.keys(Ln),l=[],d=0;d<u.length;d++){var f=u[d];try{Ln[f](n,s,t)}catch(h){l.push(h)}}if(l.length===u.length)throw new Error(`All post-robot messaging strategies failed:
8
27
 
9
- `+l.map(function(h,g){return g+". "+sn(h)}).join(`
28
+ `+l.map(function(h,E){return E+". "+ln(h)}).join(`
10
29
 
11
- `))}),a.flush.then(function(){delete a.flush})}).then(_)}function he(n){return j("responseListeners").get(n)}function ve(n){j("responseListeners").del(n)}function we(n){return j("erroredResponseListeners").has(n)}function me(n){var t=n.name,e=n.win,r=n.domain,o=L("requestListeners");if(e==="*"&&(e=null),r==="*"&&(r=null),!t)throw new Error("Name required to get request listener");for(var i=0,a=[e,Sn()];i<a.length;i++){var s=a[i];if(s){var c=o.get(s);if(c){var u=c[t];if(u){if(r&&typeof r=="string"){if(u[r])return u[r];if(u.__domain_regex__)for(var l=0,d=u.__domain_regex__;l<d.length;l++){var f=d[l],h=f.listener;if(nn(f.regex,r))return h}}if(u["*"])return u["*"]}}}}}function nt(n,t,e,r){var o=r.on,i=r.send,a=me({name:e.name,win:n,domain:t}),s=e.name==="postrobot_method"&&e.data&&typeof e.data.name=="string"?e.data.name+"()":e.name;function c(u,l,d){return b.flush().then(function(){if(!e.fireAndForget&&!G(n))try{return Tn(n,t,{id:Z(),origin:M(window),type:"postrobot_message_response",hash:e.hash,name:e.name,ack:u,data:l,error:d},{on:o,send:i})}catch(f){throw new Error("Send response message failed for "+s+" in "+M()+`
30
+ `))}),a.flush.then(function(){delete a.flush})}).then(Q)}function Ee(n){return j("responseListeners").get(n)}function We(n){j("responseListeners").del(n)}function Se(n){return j("erroredResponseListeners").has(n)}function be(n){var t=n.name,e=n.win,r=n.domain,o=U("requestListeners");if(e==="*"&&(e=null),r==="*"&&(r=null),!t)throw new Error("Name required to get request listener");for(var i=0,a=[e,xn()];i<a.length;i++){var s=a[i];if(s){var c=o.get(s);if(c){var u=c[t];if(u){if(r&&typeof r=="string"){if(u[r])return u[r];if(u.__domain_regex__)for(var l=0,d=u.__domain_regex__;l<d.length;l++){var f=d[l],h=f.listener;if(tn(f.regex,r))return h}}if(u["*"])return u["*"]}}}}}function vt(n,t,e,r){var o=r.on,i=r.send,a=be({name:e.name,win:n,domain:t}),s=e.name==="postrobot_method"&&e.data&&typeof e.data.name=="string"?e.data.name+"()":e.name;function c(u,l,d){return x.flush().then(function(){if(!e.fireAndForget&&!G(n))try{return Un(n,t,{id:J(),origin:L(window),type:"postrobot_message_response",hash:e.hash,name:e.name,ack:u,data:l,error:d},{on:o,send:i})}catch(f){throw new Error("Send response message failed for "+s+" in "+L()+`
12
31
 
13
- `+sn(f))}})}return b.all([b.flush().then(function(){if(!e.fireAndForget&&!G(n))try{return Tn(n,t,{id:Z(),origin:M(window),type:"postrobot_message_ack",hash:e.hash,name:e.name},{on:o,send:i})}catch(u){throw new Error("Send ack message failed for "+s+" in "+M()+`
32
+ `+ln(f))}})}return x.all([x.flush().then(function(){if(!e.fireAndForget&&!G(n))try{return Un(n,t,{id:J(),origin:L(window),type:"postrobot_message_ack",hash:e.hash,name:e.name},{on:o,send:i})}catch(u){throw new Error("Send ack message failed for "+s+" in "+L()+`
14
33
 
15
- `+sn(u))}}),b.try(function(){if(!a)throw new Error("No handler found for post message: "+e.name+" from "+t+" in "+window.location.protocol+"//"+window.location.host+window.location.pathname);return a.handler({source:n,origin:t,data:e.data})}).then(function(u){return c("success",u)},function(u){return c("error",null,u)})]).then(_).catch(function(u){if(a&&a.handleError)return a.handleError(u);throw u})}function et(n,t,e){if(!we(e.hash)){var r=he(e.hash);if(!r)throw new Error("No handler found for post message ack for message: "+e.name+" from "+t+" in "+window.location.protocol+"//"+window.location.host+window.location.pathname);try{if(!nn(r.domain,t))throw new Error("Ack origin "+t+" does not match domain "+r.domain.toString());if(n!==r.win)throw new Error("Ack source does not match registered window")}catch(o){r.promise.reject(o)}r.ack=!0}}function tt(n,t,e){if(!we(e.hash)){var r=he(e.hash);if(!r)throw new Error("No handler found for post message response for message: "+e.name+" from "+t+" in "+window.location.protocol+"//"+window.location.host+window.location.pathname);if(!nn(r.domain,t))throw new Error("Response origin "+t+" does not match domain "+(o=r.domain,Array.isArray(o)?"("+o.join(" | ")+")":v(o)?"RegExp("+o.toString()+")":o.toString()));var o;if(n!==r.win)throw new Error("Response source does not match registered window");ve(e.hash),e.ack==="error"?r.promise.reject(e.error):e.ack==="success"&&r.promise.resolve({source:n,origin:t,data:e.data})}}function pe(n,t){var e=t.on,r=t.send,o=j("receivedMessages");try{if(!window||window.closed||!n.source)return}catch{return}var i=n.source,a=n.origin,s=function(l,d,f,h){var g=h.on,m=h.send,p;try{p=le(d,f,l,{on:g,send:m})}catch{return}if(p&&typeof p=="object"&&p!==null){var x=p.__post_robot_10_0_46__;if(Array.isArray(x))return x}}(n.data,i,a,{on:e,send:r});if(s){ae(i);for(var c=0;c<s.length;c++){var u=s[c];if(o.has(u.id)||(o.set(u.id,!0),G(i)&&!u.fireAndForget))return;u.origin.indexOf("file:")===0&&(a="file://");try{u.type==="postrobot_message_request"?nt(i,a,u,{on:e,send:r}):u.type==="postrobot_message_response"?tt(i,a,u):u.type==="postrobot_message_ack"&&et(i,a,u)}catch(l){setTimeout(function(){throw l},0)}}}}function V(n,t,e){if(!n)throw new Error("Expected name");if(typeof(t=t||{})=="function"&&(e=t,t={}),!e)throw new Error("Expected handler");var r=function o(i,a){var s=i.name,c=i.win,u=i.domain,l=L("requestListeners");if(!s||typeof s!="string")throw new Error("Name required to add request listener");if(c&&c!=="*"&&B.isProxyWindow(c)){var d=c.awaitWindow().then(function(R){return o({name:s,win:R,domain:u},a)});return{cancel:function(){d.then(function(R){return R.cancel()},_)}}}var f=c;if(Array.isArray(f)){for(var h=[],g=0,m=f;g<m.length;g++)h.push(o({name:s,domain:u,win:m[g]},a));return{cancel:function(){for(var R=0;R<h.length;R++)h[R].cancel()}}}if(Array.isArray(u)){for(var p=[],x=0,N=u;x<N.length;x++)p.push(o({name:s,win:f,domain:N[x]},a));return{cancel:function(){for(var R=0;R<p.length;R++)p[R].cancel()}}}var O=me({name:s,win:f,domain:u});f&&f!=="*"||(f=Sn());var P=(u=u||"*").toString();if(O)throw f&&u?new Error("Request listener already exists for "+s+" on domain "+u.toString()+" for "+(f===Sn()?"wildcard":"specified")+" window"):f?new Error("Request listener already exists for "+s+" for "+(f===Sn()?"wildcard":"specified")+" window"):u?new Error("Request listener already exists for "+s+" on domain "+u.toString()):new Error("Request listener already exists for "+s);var z=l.getOrSet(f,function(){return{}}),S=dn(z,s,function(){return{}}),I,J;return An(u)?(I=dn(S,"__domain_regex__",function(){return[]})).push(J={regex:u,listener:a}):S[P]=a,{cancel:function(){delete S[P],J&&(I.splice(I.indexOf(J,1)),I.length||delete S.__domain_regex__),Object.keys(S).length||delete z[s],f&&!Object.keys(z).length&&l.del(f)}}}({name:n,win:t.window,domain:t.domain||"*"},{handler:e||t.handler,handleError:t.errorHandler||function(o){throw o}});return{cancel:function(){r.cancel()}}}function rt(n,t,e){typeof(t=t||{})=="function"&&(e=t,t={});var r=new b,o;return t.errorHandler=function(i){o.cancel(),r.reject(i)},o=V(n,t,function(i){if(o.cancel(),r.resolve(i),e)return e(i)}),r.cancel=o.cancel,r}var $=function n(t,e,r,o){var i=(o=o||{}).domain||"*",a=o.timeout||-1,s=o.timeout||5e3,c=o.fireAndForget||!1;return B.toProxyWindow(t,{send:n}).awaitWindow().then(function(u){return b.try(function(){if(function(l,d,f){if(!l)throw new Error("Expected name");if(f&&typeof f!="string"&&!Array.isArray(f)&&!An(f))throw new TypeError("Can not send "+l+". Expected domain "+JSON.stringify(f)+" to be a string, array, or regex");if(G(d))throw new Error("Can not send "+l+". Target window is closed")}(e,u,i),function(l,d){var f=qn(d);if(f)return f===l;if(d===l||function(m){m===void 0&&(m=window);try{if(m.top)return m.top}catch{}if(Y(m)===m)return m;try{if(Gn(window,m)&&window.top)return window.top}catch{}try{if(Gn(m,window)&&window.top)return window.top}catch{}for(var p=0,x=function O(P){for(var z=[],S=0,I=Jn(P);S<I.length;S++){var J=I[S];z.push(J);for(var R=0,ln=O(J);R<ln.length;R++)z.push(ln[R])}return z}(m);p<x.length;p++){var N=x[p];try{if(N.top)return N.top}catch{}if(Y(N)===N)return N}}(d)===d)return!1;for(var h=0,g=Jn(l);h<g.length;h++)if(g[h]===d)return!0;return!1}(window,u))return function(l,d,f){d===void 0&&(d=5e3),f===void 0&&(f="Window");var h=function(g){return L("helloPromises").getOrSet(g,function(){return new b})}(l);return d!==-1&&(h=h.timeout(d,new Error(f+" did not load after "+d+"ms"))),h}(u,s)}).then(function(l){return function(d,f,h,g){var m=g.send;return b.try(function(){return typeof f=="string"?f:b.try(function(){return h||Rn(d,{send:m}).then(function(p){return p.domain})}).then(function(p){if(!nn(f,f))throw new Error("Domain "+_n(f)+" does not match "+_n(f));return p})})}(u,i,(l===void 0?{}:l).domain,{send:n})}).then(function(l){var d=l,f=e==="postrobot_method"&&r&&typeof r.name=="string"?r.name+"()":e,h=new b,g=e+"_"+Z();if(!c){var m={name:e,win:u,domain:d,promise:h};(function(S,I){j("responseListeners").set(S,I)})(g,m);var p=L("requestPromises").getOrSet(u,function(){return[]});p.push(h),h.catch(function(){(function(S){j("erroredResponseListeners").set(S,!0)})(g),ve(g)});var x=function(S){return L("knownWindows").get(S,!1)}(u)?1e4:2e3,N=a,O=x,P=N,z=function(S,I){var J;return function R(){J=setTimeout(function(){(function(){if(G(u))return h.reject(new Error("Window closed for "+e+" before "+(m.ack?"response":"ack")));if(m.cancelled)return h.reject(new Error("Response listener was cancelled for "+e));O=Math.max(O-500,0),P!==-1&&(P=Math.max(P-500,0)),m.ack||O!==0?P===0&&h.reject(new Error("No response for postMessage "+f+" in "+M()+" in "+N+"ms")):h.reject(new Error("No ack for postMessage "+f+" in "+M()+" in "+x+"ms"))})(),R()},500)}(),{cancel:function(){clearTimeout(J)}}}();h.finally(function(){z.cancel(),p.splice(p.indexOf(h,1))}).catch(_)}return Tn(u,d,{id:Z(),origin:M(window),type:"postrobot_message_request",hash:g,name:e,data:r,fireAndForget:c},{on:V,send:n}).then(function(){return c?h.resolve():h},function(S){throw new Error("Send request message failed for "+f+" in "+M()+`
34
+ `+ln(u))}}),x.try(function(){if(!a)throw new Error("No handler found for post message: "+e.name+" from "+t+" in "+window.location.protocol+"//"+window.location.host+window.location.pathname);return a.handler({source:n,origin:t,data:e.data})}).then(function(u){return c("success",u)},function(u){return c("error",null,u)})]).then(Q).catch(function(u){if(a&&a.handleError)return a.handleError(u);throw u})}function wt(n,t,e){if(!Se(e.hash)){var r=Ee(e.hash);if(!r)throw new Error("No handler found for post message ack for message: "+e.name+" from "+t+" in "+window.location.protocol+"//"+window.location.host+window.location.pathname);try{if(!tn(r.domain,t))throw new Error("Ack origin "+t+" does not match domain "+r.domain.toString());if(n!==r.win)throw new Error("Ack source does not match registered window")}catch(o){r.promise.reject(o)}r.ack=!0}}function mt(n,t,e){if(!Se(e.hash)){var r=Ee(e.hash);if(!r)throw new Error("No handler found for post message response for message: "+e.name+" from "+t+" in "+window.location.protocol+"//"+window.location.host+window.location.pathname);if(!tn(r.domain,t))throw new Error("Response origin "+t+" does not match domain "+(o=r.domain,Array.isArray(o)?"("+o.join(" | ")+")":w(o)?"RegExp("+o.toString()+")":o.toString()));var o;if(n!==r.win)throw new Error("Response source does not match registered window");We(e.hash),e.ack==="error"?r.promise.reject(e.error):e.ack==="success"&&r.promise.resolve({source:n,origin:t,data:e.data})}}function xe(n,t){var e=t.on,r=t.send,o=j("receivedMessages");try{if(!window||window.closed||!n.source)return}catch{return}var i=n.source,a=n.origin,s=function(l,d,f,h){var E=h.on,g=h.send,y;try{y=ye(d,f,l,{on:E,send:g})}catch{return}if(y&&typeof y=="object"&&y!==null){var P=y.__post_robot_10_0_46__;if(Array.isArray(P))return P}}(n.data,i,a,{on:e,send:r});if(s){he(i);for(var c=0;c<s.length;c++){var u=s[c];if(o.has(u.id)||(o.set(u.id,!0),G(i)&&!u.fireAndForget))return;u.origin.indexOf("file:")===0&&(a="file://");try{u.type==="postrobot_message_request"?vt(i,a,u,{on:e,send:r}):u.type==="postrobot_message_response"?mt(i,a,u):u.type==="postrobot_message_ack"&&wt(i,a,u)}catch(l){setTimeout(function(){throw l},0)}}}}function k(n,t,e){if(!n)throw new Error("Expected name");if(typeof(t=t||{})=="function"&&(e=t,t={}),!e)throw new Error("Expected handler");var r=function o(i,a){var s=i.name,c=i.win,u=i.domain,l=U("requestListeners");if(!s||typeof s!="string")throw new Error("Name required to add request listener");if(c&&c!=="*"&&B.isProxyWindow(c)){var d=c.awaitWindow().then(function(T){return o({name:s,win:T,domain:u},a)});return{cancel:function(){d.then(function(T){return T.cancel()},Q)}}}var f=c;if(Array.isArray(f)){for(var h=[],E=0,g=f;E<g.length;E++)h.push(o({name:s,domain:u,win:g[E]},a));return{cancel:function(){for(var T=0;T<h.length;T++)h[T].cancel()}}}if(Array.isArray(u)){for(var y=[],P=0,C=u;P<C.length;P++)y.push(o({name:s,win:f,domain:C[P]},a));return{cancel:function(){for(var T=0;T<y.length;T++)y[T].cancel()}}}var O=be({name:s,win:f,domain:u});f&&f!=="*"||(f=xn());var I=(u=u||"*").toString();if(O)throw f&&u?new Error("Request listener already exists for "+s+" on domain "+u.toString()+" for "+(f===xn()?"wildcard":"specified")+" window"):f?new Error("Request listener already exists for "+s+" for "+(f===xn()?"wildcard":"specified")+" window"):u?new Error("Request listener already exists for "+s+" on domain "+u.toString()):new Error("Request listener already exists for "+s);var z=l.getOrSet(f,function(){return{}}),b=hn(z,s,function(){return{}}),D,q;return Tn(u)?(D=hn(b,"__domain_regex__",function(){return[]})).push(q={regex:u,listener:a}):b[I]=a,{cancel:function(){delete b[I],q&&(D.splice(D.indexOf(q,1)),D.length||delete b.__domain_regex__),Object.keys(b).length||delete z[s],f&&!Object.keys(z).length&&l.del(f)}}}({name:n,win:t.window,domain:t.domain||"*"},{handler:e||t.handler,handleError:t.errorHandler||function(o){throw o}});return{cancel:function(){r.cancel()}}}function pt(n,t,e){typeof(t=t||{})=="function"&&(e=t,t={});var r=new x,o;return t.errorHandler=function(i){o.cancel(),r.reject(i)},o=k(n,t,function(i){if(o.cancel(),r.resolve(i),e)return e(i)}),r.cancel=o.cancel,r}var Y=function n(t,e,r,o){var i=(o=o||{}).domain||"*",a=o.timeout||-1,s=o.timeout||5e3,c=o.fireAndForget||!1;return B.toProxyWindow(t,{send:n}).awaitWindow().then(function(u){return x.try(function(){if(function(l,d,f){if(!l)throw new Error("Expected name");if(f&&typeof f!="string"&&!Array.isArray(f)&&!Tn(f))throw new TypeError("Can not send "+l+". Expected domain "+JSON.stringify(f)+" to be a string, array, or regex");if(G(d))throw new Error("Can not send "+l+". Target window is closed")}(e,u,i),function(l,d){var f=Xn(d);if(f)return f===l;if(d===l||function(g){g===void 0&&(g=window);try{if(g.top)return g.top}catch{}if(V(g)===g)return g;try{if(kn(window,g)&&window.top)return window.top}catch{}try{if(kn(g,window)&&window.top)return window.top}catch{}for(var y=0,P=function O(I){for(var z=[],b=0,D=Yn(I);b<D.length;b++){var q=D[b];z.push(q);for(var T=0,wn=O(q);T<wn.length;T++)z.push(wn[T])}return z}(g);y<P.length;y++){var C=P[y];try{if(C.top)return C.top}catch{}if(V(C)===C)return C}}(d)===d)return!1;for(var h=0,E=Yn(l);h<E.length;h++)if(E[h]===d)return!0;return!1}(window,u))return function(l,d,f){d===void 0&&(d=5e3),f===void 0&&(f="Window");var h=function(E){return U("helloPromises").getOrSet(E,function(){return new x})}(l);return d!==-1&&(h=h.timeout(d,new Error(f+" did not load after "+d+"ms"))),h}(u,s)}).then(function(l){return function(d,f,h,E){var g=E.send;return x.try(function(){return typeof f=="string"?f:x.try(function(){return h||Cn(d,{send:g}).then(function(y){return y.domain})}).then(function(y){if(!tn(f,f))throw new Error("Domain "+ie(f)+" does not match "+ie(f));return y})})}(u,i,(l===void 0?{}:l).domain,{send:n})}).then(function(l){var d=l,f=e==="postrobot_method"&&r&&typeof r.name=="string"?r.name+"()":e,h=new x,E=e+"_"+J();if(!c){var g={name:e,win:u,domain:d,promise:h};(function(b,D){j("responseListeners").set(b,D)})(E,g);var y=U("requestPromises").getOrSet(u,function(){return[]});y.push(h),h.catch(function(){(function(b){j("erroredResponseListeners").set(b,!0)})(E),We(E)});var P=function(b){return U("knownWindows").get(b,!1)}(u)?1e4:2e3,C=a,O=P,I=C,z=function(b,D){var q;return function T(){q=setTimeout(function(){(function(){if(G(u))return h.reject(new Error("Window closed for "+e+" before "+(g.ack?"response":"ack")));if(g.cancelled)return h.reject(new Error("Response listener was cancelled for "+e));O=Math.max(O-500,0),I!==-1&&(I=Math.max(I-500,0)),g.ack||O!==0?I===0&&h.reject(new Error("No response for postMessage "+f+" in "+L()+" in "+C+"ms")):h.reject(new Error("No ack for postMessage "+f+" in "+L()+" in "+P+"ms"))})(),T()},500)}(),{cancel:function(){clearTimeout(q)}}}();h.finally(function(){z.cancel(),y.splice(y.indexOf(h,1))}).catch(Q)}return Un(u,d,{id:J(),origin:L(window),type:"postrobot_message_request",hash:E,name:e,data:r,fireAndForget:c},{on:k,send:n}).then(function(){return c?h.resolve():h},function(b){throw new Error("Send request message failed for "+f+" in "+L()+`
16
35
 
17
- `+sn(S))})})})};function ot(n,t,e){return fe(n,t,e,{on:V,send:$})}function it(n,t,e){return le(n,t,e,{on:V,send:$})}function at(n){return new B({send:$,win:n})}function ut(n){return B.toProxyWindow(n,{send:$})}function ge(){fn().initialized||(fn().initialized=!0,t=(n={on:V,send:$}).on,e=n.send,(r=fn()).receiveMessage=r.receiveMessage||function(o){return pe(o,{on:t,send:e})},function(o){var i=o.on,a=o.send;j().getOrSet("postMessageListener",function(){return function(s,c,u){return s.addEventListener("message",u),{cancel:function(){s.removeEventListener("message",u)}}}(window,0,function(s){(function(c,u){var l=u.on,d=u.send;b.try(function(){var f=c.source||c.sourceElement,h=c.origin||c.originalEvent&&c.originalEvent.origin,g=c.data;if(h==="null"&&(h="file://"),f){if(!h)throw new Error("Post message did not have origin domain");pe({source:f,origin:h,data:g},{on:l,send:d})}})})(s,{on:i,send:a})})})}({on:V,send:$}),function(o){var i=o.on,a=o.send;j("builtinListeners").getOrSet("helloListener",function(){var s=i("postrobot_hello",{domain:"*"},function(u){return oe(u.source,{domain:u.origin}),{instanceID:re()}}),c=qn();return c&&Rn(c,{send:a}).catch(function(u){}),s})}({on:V,send:$}));var n,t,e,r}function ct(){(function(){for(var t=j("responseListeners"),e=0,r=t.keys();e<r.length;e++){var o=r[e],i=t.get(o);i&&(i.cancelled=!0),t.del(o)}})(),(n=j().get("postMessageListener"))&&n.cancel();var n;delete window.__post_robot_10_0_46__}var st=!0;function dt(n){for(var t=0,e=L("requestPromises").get(n,[]);t<e.length;t++)e[t].reject(new Error("Window "+(G(n)?"closed":"cleaned up")+" before response")).catch(_)}ge()}])})})(Un);var He=Un.exports;(function(E){E.exports=He,E.exports.default=E.exports})(Fn);var Hn=Fn.exports;const Be=A({__proto__:null,default:Ue(Hn)},[Hn]);D.SoyioTypes=Le,D.SoyioWidget=Ln,D.default=Ln,Object.defineProperties(D,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
36
+ `+ln(b))})})})};function gt(n,t,e){return ge(n,t,e,{on:k,send:Y})}function yt(n,t,e){return ye(n,t,e,{on:k,send:Y})}function Et(n){return new B({send:Y,win:n})}function Wt(n){return B.toProxyWindow(n,{send:Y})}function Pe(){vn().initialized||(vn().initialized=!0,t=(n={on:k,send:Y}).on,e=n.send,(r=vn()).receiveMessage=r.receiveMessage||function(o){return xe(o,{on:t,send:e})},function(o){var i=o.on,a=o.send;j().getOrSet("postMessageListener",function(){return function(s,c,u){return s.addEventListener("message",u),{cancel:function(){s.removeEventListener("message",u)}}}(window,0,function(s){(function(c,u){var l=u.on,d=u.send;x.try(function(){var f=c.source||c.sourceElement,h=c.origin||c.originalEvent&&c.originalEvent.origin,E=c.data;if(h==="null"&&(h="file://"),f){if(!h)throw new Error("Post message did not have origin domain");xe({source:f,origin:h,data:E},{on:l,send:d})}})})(s,{on:i,send:a})})})}({on:k,send:Y}),function(o){var i=o.on,a=o.send;j("builtinListeners").getOrSet("helloListener",function(){var s=i("postrobot_hello",{domain:"*"},function(u){return fe(u.source,{domain:u.origin}),{instanceID:de()}}),c=Xn();return c&&Cn(c,{send:a}).catch(function(u){}),s})}({on:k,send:Y}));var n,t,e,r}function St(){(function(){for(var t=j("responseListeners"),e=0,r=t.keys();e<r.length;e++){var o=r[e],i=t.get(o);i&&(i.cancelled=!0),t.del(o)}})(),(n=j().get("postMessageListener"))&&n.cancel();var n;delete window.__post_robot_10_0_46__}var bt=!0;function xt(n){for(var t=0,e=U("requestPromises").get(n,[]);t<e.length;t++)e[t].reject(new Error("Window "+(G(n)?"closed":"cleaned up")+" before response")).catch(Q)}Pe()}])})})(Jn);var et=Jn.exports;(function(v){v.exports=et,v.exports.default=v.exports})(_n);var $n=_n.exports;const Vn=N({__proto__:null,default:nt($n)},[$n]);A.ConsentRequestBox=Be,A.SoyioTypes=Ge,A.SoyioWidget=qn,A.default=qn,Object.defineProperties(A,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soyio/soyio-widget",
3
- "version": "2.2.0",
3
+ "version": "2.3.1",
4
4
  "type": "module",
5
5
  "main": "./dist/index.umd.cjs",
6
6
  "module": "./dist/index.js",