surveysparrow-ionic-plugin 1.0.7-beta.14 → 1.0.7-beta.16
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/Package.swift +8 -8
- package/README.md +85 -16
- package/{SurveysparrowIonicPlugin2.podspec → SurveysparrowIonicPlugin.podspec} +1 -1
- package/android/build.gradle +7 -2
- package/android/src/main/java/com/surveysparrow/plugins/ionic/SurveySparrowIonicPlugin.java +53 -0
- package/android/src/main/java/com/surveysparrow/plugins/ionic/SurveySparrowIonicPluginPlugin.java +74 -0
- package/dist/angular-ui/esm2022/angular-ui.mjs +5 -0
- package/dist/angular-ui/esm2022/spotcheck.component.mjs +4 -4
- package/dist/angular-ui/esm2022/spotchecks/SpotCheck.mjs +1 -1
- package/dist/angular-ui/esm2022/spotchecks/SpotCheckComponent.mjs +16 -16
- package/dist/angular-ui/esm2022/spotchecks/SpotcheckStateService.mjs +4 -4
- package/dist/angular-ui/esm2022/spotchecks/api.mjs +4 -4
- package/dist/angular-ui/esm2022/spotchecks/helpers.mjs +1 -1
- package/dist/angular-ui/esm2022/spotchecks/types.mjs +1 -1
- package/dist/angular-ui/fesm2022/{surveysparrow-ionic-plugin-angular-ui.mjs → angular-ui.mjs} +25 -25
- package/dist/angular-ui/fesm2022/angular-ui.mjs.map +1 -0
- package/dist/angular-ui/index.d.ts +1 -1
- package/dist/angular-ui/spotchecks/types.d.ts +4 -4
- package/dist/docs.json +4462 -10
- package/dist/esm/angular-ui/lib/public-api.d.ts +2 -0
- package/dist/esm/angular-ui/lib/public-api.js +3 -0
- package/dist/esm/angular-ui/lib/public-api.js.map +1 -0
- package/dist/esm/angular-ui/lib/spotcheck.component.d.ts +2 -0
- package/dist/esm/angular-ui/lib/spotcheck.component.js +20 -0
- package/dist/esm/angular-ui/lib/spotcheck.component.js.map +1 -0
- package/dist/esm/angular-ui/lib/spotchecks/SpotCheck.d.ts +4 -0
- package/dist/esm/angular-ui/lib/spotchecks/SpotCheck.js +51 -0
- package/dist/esm/angular-ui/lib/spotchecks/SpotCheck.js.map +1 -0
- package/dist/esm/angular-ui/lib/spotchecks/SpotCheckComponent.d.ts +46 -0
- package/dist/esm/angular-ui/lib/spotchecks/SpotCheckComponent.js +306 -0
- package/dist/esm/angular-ui/lib/spotchecks/SpotCheckComponent.js.map +1 -0
- package/dist/esm/angular-ui/lib/spotchecks/SpotcheckStateService.d.ts +9 -0
- package/dist/esm/angular-ui/lib/spotchecks/SpotcheckStateService.js +69 -0
- package/dist/esm/angular-ui/lib/spotchecks/SpotcheckStateService.js.map +1 -0
- package/dist/esm/angular-ui/lib/spotchecks/api.d.ts +15 -0
- package/dist/esm/angular-ui/lib/spotchecks/api.js +240 -0
- package/dist/esm/angular-ui/lib/spotchecks/api.js.map +1 -0
- package/dist/esm/angular-ui/lib/spotchecks/helpers.d.ts +30 -0
- package/dist/esm/angular-ui/lib/spotchecks/helpers.js +293 -0
- package/dist/esm/angular-ui/lib/spotchecks/helpers.js.map +1 -0
- package/dist/esm/angular-ui/lib/spotchecks/index.d.ts +2 -0
- package/dist/esm/angular-ui/lib/spotchecks/index.js +2 -0
- package/dist/esm/angular-ui/lib/spotchecks/index.js.map +1 -0
- package/dist/esm/angular-ui/lib/spotchecks/storage.d.ts +2 -0
- package/dist/esm/angular-ui/lib/spotchecks/storage.js +7 -0
- package/dist/esm/angular-ui/lib/spotchecks/storage.js.map +1 -0
- package/dist/esm/angular-ui/lib/spotchecks/types.d.ts +77 -0
- package/dist/esm/angular-ui/lib/spotchecks/types.js +2 -0
- package/dist/esm/angular-ui/lib/spotchecks/types.js.map +1 -0
- package/dist/esm/definitions.d.ts +13 -6
- package/dist/esm/definitions.js.map +1 -1
- package/dist/esm/index.d.ts +4 -3
- package/dist/esm/index.js +3 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/plugin.cjs.js +52019 -10
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +52018 -12
- package/dist/plugin.js.map +1 -1
- package/ios/Sources/SurveySparrowIonicPluginPlugin/SsSurveyDelegate.swift +16 -0
- package/ios/Sources/SurveySparrowIonicPluginPlugin/SsSurveyHelper.swift +179 -0
- package/ios/Sources/SurveySparrowIonicPluginPlugin/SsSurveyView.swift +320 -0
- package/ios/Sources/SurveySparrowIonicPluginPlugin/SsSurveyViewController.swift +81 -0
- package/ios/Sources/SurveySparrowIonicPluginPlugin/SurveySparrow.swift +158 -0
- package/ios/Sources/SurveySparrowIonicPluginPlugin/SurveySparrowIonicPlugin.swift +70 -0
- package/ios/Sources/SurveySparrowIonicPluginPlugin/SurveySparrowIonicPluginPlugin.swift +50 -0
- package/ios/Tests/SurveySparrowIonicPluginPluginTests/SurveySparrowIonicPluginPluginTests.swift +72 -0
- package/package.json +36 -27
- package/src/angular-ui/lib/spotchecks/SpotCheckComponent.ts +1 -0
- package/src/angular-ui/lib/spotchecks/api.ts +3 -3
- package/src/angular-ui/lib/spotchecks/types.ts +4 -4
- package/src/angular-ui/package.json +2 -2
- package/src/definitions.ts +16 -2
- package/src/index.ts +5 -5
- package/android/src/main/java/com/surveysparrow/plugins/ionic2/SurveySparrowIonicPlugin2.java +0 -11
- package/android/src/main/java/com/surveysparrow/plugins/ionic2/SurveySparrowIonicPlugin2Plugin.java +0 -22
- package/dist/angular-ui/esm2022/surveysparrow-ionic-plugin-angular-ui.mjs +0 -5
- package/dist/angular-ui/fesm2022/surveysparrow-ionic-plugin-angular-ui.mjs.map +0 -1
- package/dist/angular-ui/package.json +0 -26
- package/dist/esm/web.d.ts +0 -9
- package/dist/esm/web.js +0 -8
- package/dist/esm/web.js.map +0 -1
- package/ios/Sources/SurveySparrowIonicPlugin2Plugin/SurveySparrowIonicPlugin2.swift +0 -8
- package/ios/Sources/SurveySparrowIonicPlugin2Plugin/SurveySparrowIonicPlugin2Plugin.swift +0 -23
- package/ios/Tests/SurveySparrowIonicPlugin2PluginTests/SurveySparrowIonicPlugin2PluginTests.swift +0 -15
- package/src/angular-ui/node_modules/.cache/ng-packagr/content-v2/sha512/48/7f/62c610601af12f907a6c451b7403632ec1b46aa6eb934436e975d11fb0279bdd48f99cd9a6ef9bebf4e76fa3729a01de5dbbd44495621cce4510729329ec +0 -1
- package/src/angular-ui/node_modules/.cache/ng-packagr/content-v2/sha512/49/e2/92b07f833cfa67fb9ab260b8bb1c7d98ead9388ed23fec5b45ef6bef19cbe6f669e2ad8757d9c89a1282bfe033f6e28d0207466d924e58e26709cf3cf85e +0 -1
- package/src/angular-ui/node_modules/.cache/ng-packagr/index-v5/05/e4/21e297b0d6f5d32263635d13178d37fffd2b116f3038a4d89284cd86fee9 +0 -2
- package/src/angular-ui/node_modules/.cache/ng-packagr/index-v5/0f/08/0e2e594d25ea02e021f3ad76398fc4fc5fa4e65caeafa6128083c83ee494 +0 -2
- package/src/angular-ui/node_modules/.cache/ng-packagr/tsbuildinfo/surveysparrow-ionic-plugin-angular-ui.tsbuildinfo +0 -1
- package/src/web.ts +0 -10
package/Package.swift
CHANGED
|
@@ -2,27 +2,27 @@
|
|
|
2
2
|
import PackageDescription
|
|
3
3
|
|
|
4
4
|
let package = Package(
|
|
5
|
-
name: "
|
|
5
|
+
name: "SurveysparrowIonicPlugin",
|
|
6
6
|
platforms: [.iOS(.v14)],
|
|
7
7
|
products: [
|
|
8
8
|
.library(
|
|
9
|
-
name: "
|
|
10
|
-
targets: ["
|
|
9
|
+
name: "SurveysparrowIonicPlugin",
|
|
10
|
+
targets: ["SurveySparrowIonicPluginPlugin"])
|
|
11
11
|
],
|
|
12
12
|
dependencies: [
|
|
13
13
|
.package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", from: "7.0.0")
|
|
14
14
|
],
|
|
15
15
|
targets: [
|
|
16
16
|
.target(
|
|
17
|
-
name: "
|
|
17
|
+
name: "SurveySparrowIonicPluginPlugin",
|
|
18
18
|
dependencies: [
|
|
19
19
|
.product(name: "Capacitor", package: "capacitor-swift-pm"),
|
|
20
20
|
.product(name: "Cordova", package: "capacitor-swift-pm")
|
|
21
21
|
],
|
|
22
|
-
path: "ios/Sources/
|
|
22
|
+
path: "ios/Sources/SurveySparrowIonicPluginPlugin"),
|
|
23
23
|
.testTarget(
|
|
24
|
-
name: "
|
|
25
|
-
dependencies: ["
|
|
26
|
-
path: "ios/Tests/
|
|
24
|
+
name: "SurveySparrowIonicPluginPluginTests",
|
|
25
|
+
dependencies: ["SurveySparrowIonicPluginPlugin"],
|
|
26
|
+
path: "ios/Tests/SurveySparrowIonicPluginPluginTests")
|
|
27
27
|
]
|
|
28
28
|
)
|
package/README.md
CHANGED
|
@@ -1,37 +1,106 @@
|
|
|
1
|
-
# surveysparrow-ionic-plugin
|
|
1
|
+
# surveysparrow-ionic-plugin
|
|
2
2
|
|
|
3
|
-
SurveySparrow SDK enables you to collect feedback from your mobile app. Embed the Classic, Chat & NPS surveys in your
|
|
3
|
+
SurveySparrow SDK enables you to collect feedback from your mobile app. Embed the Classic, Chat & NPS surveys in your Ionic application seamlessly with few lines of code.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
npm install surveysparrow-ionic-plugin
|
|
8
|
+
npm install surveysparrow-ionic-plugin
|
|
9
9
|
npx cap sync
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
##
|
|
12
|
+
## Permissions Required
|
|
13
|
+
|
|
14
|
+
To use this plugin, ensure the following permissions are added to your app:
|
|
15
|
+
|
|
16
|
+
### Android
|
|
17
|
+
|
|
18
|
+
Add this in your **root** `build.gradle` at the end of repositories:
|
|
13
19
|
|
|
14
|
-
|
|
20
|
+
```gradle
|
|
21
|
+
allprojects {
|
|
22
|
+
repositories {
|
|
23
|
+
...
|
|
24
|
+
maven { url 'https://jitpack.io' }
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Add these permissions to your `AndroidManifest.xml`:
|
|
15
30
|
|
|
16
|
-
|
|
31
|
+
```xml
|
|
32
|
+
<uses-permission android:name="android.permission.INTERNET" />
|
|
33
|
+
<uses-permission android:name="android.permission.CAMERA" />
|
|
34
|
+
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
|
35
|
+
```
|
|
17
36
|
|
|
18
|
-
|
|
37
|
+
### iOS
|
|
19
38
|
|
|
20
|
-
|
|
21
|
-
<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->
|
|
39
|
+
Add the necessary permissions to your `Info.plist`:
|
|
22
40
|
|
|
23
|
-
|
|
41
|
+
```xml
|
|
42
|
+
<key>NSCameraUsageDescription</key>
|
|
43
|
+
<string>We need camera access to capture photos and videos.</string>
|
|
44
|
+
<key>NSMicrophoneUsageDescription</key>
|
|
45
|
+
<string>We need microphone access to record audio.</string>
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### General Note
|
|
49
|
+
|
|
50
|
+
Based on the survey type being used, ensure the necessary permissions (e.g., for photos, videos, audio, or storage) are added to your app's configuration.
|
|
51
|
+
|
|
52
|
+
## API
|
|
53
|
+
|
|
54
|
+
[loadFullScreenSurvey(...)](#loadfullscreensurvey)
|
|
55
|
+
|
|
56
|
+
[loadFullScreenSurveyWithValidation(...)](#loadfullscreensurveywithvalidation)
|
|
57
|
+
|
|
58
|
+
### loadFullScreenSurvey(...)
|
|
24
59
|
|
|
25
60
|
```typescript
|
|
26
|
-
|
|
61
|
+
loadFullScreenSurvey(options: { domain: String; token: String; params: Object; properties: Object; }) => Promise<void>
|
|
27
62
|
```
|
|
28
63
|
|
|
29
|
-
| Param | Type
|
|
30
|
-
| ------------- |
|
|
31
|
-
| **`options`** | <code>{
|
|
64
|
+
| Param | Type |
|
|
65
|
+
| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
66
|
+
| **`options`** | <code>{ domain: <a href="#string">String</a>; token: <a href="#string">String</a>; params: <a href="#object">Object</a>; properties: <a href="#object">Object</a>; }</code> |
|
|
32
67
|
|
|
33
|
-
|
|
68
|
+
--------------------
|
|
34
69
|
|
|
70
|
+
### loadFullScreenSurveyWithValidation(...)
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
loadFullScreenSurveyWithValidation(options: { domain: String; token: String; params: Object; properties: Object; }) => Promise<void>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
| Param | Type |
|
|
77
|
+
| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
78
|
+
| **`options`** | <code>{ domain: <a href="#string">String</a>; token: <a href="#string">String</a>; params: <a href="#object">Object</a>; properties: <a href="#object">Object</a>; }</code> |
|
|
35
79
|
--------------------
|
|
36
80
|
|
|
37
|
-
|
|
81
|
+
## Validations
|
|
82
|
+
|
|
83
|
+
Validations include **Limit Submission Per User** and **Survey Throttling**.
|
|
84
|
+
|
|
85
|
+
To achieve this, the **`emailaddress`** of the user must be passed in the `params` object.
|
|
86
|
+
|
|
87
|
+
## Params
|
|
88
|
+
|
|
89
|
+
The `params` object allows passing **survey variables**, which can be accessed in the survey's end-user interface. Ensure that the spelling of survey variables matches the configured values. Additionally, make sure to include the **`emailaddress`** field for validations.
|
|
90
|
+
|
|
91
|
+
## Properties
|
|
92
|
+
|
|
93
|
+
The `properties` object includes the following parameters:
|
|
94
|
+
|
|
95
|
+
1. **`isCloseButtonEnabled`** (default: `true`)
|
|
96
|
+
- If set to `false`, the close button will be removed.
|
|
97
|
+
- **Note:** Disabling this option will also disable the survey validation.
|
|
98
|
+
|
|
99
|
+
2. **`langCode`** (default: `en`)
|
|
100
|
+
- To load the survey in a specific language, pass the corresponding language code.
|
|
101
|
+
- Ensure that the language is configured in the SurveySparrow app.
|
|
102
|
+
- A list of supported language codes can be found [here](https://docs.google.com/document/d/1cmmWJQba8B3UkV6g5m93DgpenVojclzeOB0mdn-rlrg/edit?usp=sharing).
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
## Support
|
|
106
|
+
For questions or issues, contact us at [support@surveysparrow.com](mailto:support@surveysparrow.com).
|
|
@@ -3,7 +3,7 @@ require 'json'
|
|
|
3
3
|
package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
|
|
4
4
|
|
|
5
5
|
Pod::Spec.new do |s|
|
|
6
|
-
s.name = '
|
|
6
|
+
s.name = 'SurveysparrowIonicPlugin'
|
|
7
7
|
s.version = package['version']
|
|
8
8
|
s.summary = package['description']
|
|
9
9
|
s.license = package['license']
|
package/android/build.gradle
CHANGED
|
@@ -11,14 +11,14 @@ buildscript {
|
|
|
11
11
|
mavenCentral()
|
|
12
12
|
}
|
|
13
13
|
dependencies {
|
|
14
|
-
classpath 'com.android.tools.build:gradle:8.
|
|
14
|
+
classpath 'com.android.tools.build:gradle:8.6.1'
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
apply plugin: 'com.android.library'
|
|
19
19
|
|
|
20
20
|
android {
|
|
21
|
-
namespace "com.surveysparrow.plugins.
|
|
21
|
+
namespace "com.surveysparrow.plugins.ionic"
|
|
22
22
|
compileSdk project.hasProperty('compileSdkVersion') ? rootProject.ext.compileSdkVersion : 35
|
|
23
23
|
defaultConfig {
|
|
24
24
|
minSdkVersion project.hasProperty('minSdkVersion') ? rootProject.ext.minSdkVersion : 23
|
|
@@ -45,6 +45,7 @@ android {
|
|
|
45
45
|
repositories {
|
|
46
46
|
google()
|
|
47
47
|
mavenCentral()
|
|
48
|
+
maven { url 'https://jitpack.io' }
|
|
48
49
|
}
|
|
49
50
|
|
|
50
51
|
|
|
@@ -53,6 +54,10 @@ dependencies {
|
|
|
53
54
|
implementation project(':capacitor-android')
|
|
54
55
|
implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion"
|
|
55
56
|
testImplementation "junit:junit:$junitVersion"
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
implementation("com.github.surveysparrow:surveysparrow-android-sdk:0.6.4-beta.2")
|
|
60
|
+
|
|
56
61
|
androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion"
|
|
57
62
|
androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion"
|
|
58
63
|
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
package com.surveysparrow.plugins.ionic;
|
|
2
|
+
|
|
3
|
+
import android.util.Log;
|
|
4
|
+
|
|
5
|
+
import androidx.appcompat.app.AppCompatActivity;
|
|
6
|
+
|
|
7
|
+
import com.surveysparrow.ss_android_sdk.OnSsResponseEventListener;
|
|
8
|
+
import com.surveysparrow.ss_android_sdk.OnSsValidateSurveyEventListener;
|
|
9
|
+
import com.surveysparrow.ss_android_sdk.SsSurvey;
|
|
10
|
+
import com.surveysparrow.ss_android_sdk.SsSurvey.CustomParam;
|
|
11
|
+
import com.surveysparrow.ss_android_sdk.SurveySparrow;
|
|
12
|
+
import org.json.JSONObject;
|
|
13
|
+
import java.util.HashMap;
|
|
14
|
+
|
|
15
|
+
public class SurveySparrowIonicPlugin implements OnSsValidateSurveyEventListener, OnSsResponseEventListener {
|
|
16
|
+
|
|
17
|
+
private static final int SURVEY_REQUEST_CODE = 1;
|
|
18
|
+
private static final int SURVEY_SCHEDULE_REQUEST_CODE = 2;
|
|
19
|
+
|
|
20
|
+
public void loadFullScreenSurvey(String domain, String token, CustomParam[] params, HashMap properties, AppCompatActivity activity) {
|
|
21
|
+
if(activity == null) {
|
|
22
|
+
throw new RuntimeException("Activity is null. Error fetching activity.");
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
SsSurvey survey = new SsSurvey(domain, token, params, properties);
|
|
26
|
+
SurveySparrow surveySparrow = new SurveySparrow(activity, survey)
|
|
27
|
+
.enableBackButton(true)
|
|
28
|
+
.setWaitTime(2000);
|
|
29
|
+
|
|
30
|
+
surveySparrow.startSurveyForResult(SURVEY_REQUEST_CODE);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public void loadFullScreenSurveyWithValidation(String domain, String token, CustomParam[] params, HashMap properties, AppCompatActivity activity) {
|
|
34
|
+
SsSurvey survey = new SsSurvey(domain, token, params, properties);
|
|
35
|
+
SurveySparrow surveySparrow = new SurveySparrow(activity, survey)
|
|
36
|
+
.enableBackButton(true)
|
|
37
|
+
.setWaitTime(2000);
|
|
38
|
+
|
|
39
|
+
surveySparrow.scheduleSurvey(SURVEY_SCHEDULE_REQUEST_CODE);
|
|
40
|
+
surveySparrow.setValidateSurveyListener(this);
|
|
41
|
+
surveySparrow.startSurvey(SURVEY_REQUEST_CODE);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
@Override
|
|
45
|
+
public void onSsValidateSurvey(JSONObject jsonObject) {
|
|
46
|
+
Log.v("SurveySparrow", "Survey validation error json: " + jsonObject.toString());
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@Override
|
|
50
|
+
public void onSsResponseEvent(JSONObject jsonObject) {
|
|
51
|
+
Log.v("SurveySparrow", "Survey response received: " + jsonObject.toString());
|
|
52
|
+
}
|
|
53
|
+
}
|
package/android/src/main/java/com/surveysparrow/plugins/ionic/SurveySparrowIonicPluginPlugin.java
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
package com.surveysparrow.plugins.ionic;
|
|
2
|
+
|
|
3
|
+
import com.getcapacitor.JSObject;
|
|
4
|
+
import com.getcapacitor.Plugin;
|
|
5
|
+
import com.getcapacitor.PluginCall;
|
|
6
|
+
import com.getcapacitor.PluginMethod;
|
|
7
|
+
import com.getcapacitor.annotation.CapacitorPlugin;
|
|
8
|
+
|
|
9
|
+
import com.surveysparrow.ss_android_sdk.SsSurvey.CustomParam;
|
|
10
|
+
|
|
11
|
+
import java.util.List;
|
|
12
|
+
import java.util.ArrayList;
|
|
13
|
+
import java.util.HashMap;
|
|
14
|
+
import java.util.Iterator;
|
|
15
|
+
|
|
16
|
+
@CapacitorPlugin(name = "SurveySparrowIonicPlugin")
|
|
17
|
+
public class SurveySparrowIonicPluginPlugin extends Plugin {
|
|
18
|
+
|
|
19
|
+
private final SurveySparrowIonicPlugin implementation = new SurveySparrowIonicPlugin();
|
|
20
|
+
|
|
21
|
+
@PluginMethod
|
|
22
|
+
public void loadFullScreenSurvey(PluginCall call) {
|
|
23
|
+
String domain = call.getString("domain");
|
|
24
|
+
String token = call.getString("token");
|
|
25
|
+
CustomParam[] params = parseParams(call.getObject("params"));
|
|
26
|
+
HashMap<String, String> properties = parseProperties(call.getObject("properties"));
|
|
27
|
+
|
|
28
|
+
implementation.loadFullScreenSurvey(domain, token, params, properties, this.getActivity());
|
|
29
|
+
call.resolve();
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@PluginMethod
|
|
33
|
+
public void loadFullScreenSurveyWithValidation(PluginCall call) {
|
|
34
|
+
String domain = call.getString("domain");
|
|
35
|
+
String token = call.getString("token");
|
|
36
|
+
CustomParam[] params = parseParams(call.getObject("params"));
|
|
37
|
+
HashMap<String, String> properties = parseProperties(call.getObject("properties"));
|
|
38
|
+
|
|
39
|
+
implementation.loadFullScreenSurveyWithValidation(domain, token, params, properties, this.getActivity());
|
|
40
|
+
call.resolve();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
private CustomParam[] parseParams(JSObject jsParams) {
|
|
44
|
+
if (jsParams == null) {
|
|
45
|
+
return new CustomParam[0];
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
Iterator<String> keysIterator = jsParams.keys();
|
|
49
|
+
List<CustomParam> paramsList = new ArrayList<>();
|
|
50
|
+
|
|
51
|
+
while (keysIterator.hasNext()) {
|
|
52
|
+
String key = keysIterator.next();
|
|
53
|
+
String value = jsParams.getString(key);
|
|
54
|
+
paramsList.add(new CustomParam(key, value));
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return paramsList.toArray(new CustomParam[0]);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
private HashMap<String, String> parseProperties(JSObject jsProperties) {
|
|
61
|
+
HashMap<String, String> properties = new HashMap<>();
|
|
62
|
+
if (jsProperties != null) {
|
|
63
|
+
for (Iterator<String> it = jsProperties.keys(); it.hasNext(); ) {
|
|
64
|
+
String key = it.next();
|
|
65
|
+
properties.put(key, jsProperties.getString(key));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (!properties.containsKey("langCode")) {
|
|
69
|
+
properties.put("langCode", "en");
|
|
70
|
+
}
|
|
71
|
+
return properties;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci11aS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hbmd1bGFyLXVpL2xpYi9hbmd1bGFyLXVpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -2,10 +2,10 @@ import { Component } from '@angular/core';
|
|
|
2
2
|
import { SpotCheckComponent } from './spotchecks/SpotCheckComponent';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class SpotCheck {
|
|
5
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
5
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: SpotCheck, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.3", type: SpotCheck, isStandalone: true, selector: "SpotCheck", ngImport: i0, template: `<SpotCheckComponent />`, isInline: true, dependencies: [{ kind: "component", type: SpotCheckComponent, selector: "SpotCheckComponent" }] });
|
|
7
7
|
}
|
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: SpotCheck, decorators: [{
|
|
9
9
|
type: Component,
|
|
10
10
|
args: [{
|
|
11
11
|
selector: 'SpotCheck',
|
|
@@ -14,4 +14,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
14
14
|
imports: [SpotCheckComponent],
|
|
15
15
|
}]
|
|
16
16
|
}] });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdGNoZWNrLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hbmd1bGFyLXVpL2xpYi9zcG90Y2hlY2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBUXJFLE1BQU0sT0FBTyxTQUFTO3VHQUFULFNBQVM7MkZBQVQsU0FBUyxxRUFKVix3QkFBd0IsNERBRXhCLGtCQUFrQjs7MkZBRWpCLFNBQVM7a0JBTnJCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNwb3RDaGVja0NvbXBvbmVudCB9IGZyb20gJy4vc3BvdGNoZWNrcy9TcG90Q2hlY2tDb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdTcG90Q2hlY2snLFxuICB0ZW1wbGF0ZTogYDxTcG90Q2hlY2tDb21wb25lbnQgLz5gLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbU3BvdENoZWNrQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU3BvdENoZWNrIHt9XG4iXX0=
|
|
@@ -48,4 +48,4 @@ export const trackEvent = async ({ screen, event }) => {
|
|
|
48
48
|
console.log(`Event Tracking Failed. ${error.message}`);
|
|
49
49
|
}
|
|
50
50
|
};
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3BvdENoZWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FuZ3VsYXItdWkvbGliL3Nwb3RjaGVja3MvU3BvdENoZWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUN0RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFckQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxFQUNuQyxVQUFVLEVBQ1YsV0FBVyxFQUNYLFdBQVcsR0FBRyxFQUFFLEVBQ2hCLFNBQVMsR0FBRyxFQUFFLEVBQ2QsZ0JBQWdCLEdBQUcsRUFBRSxHQUNLLEVBQUUsRUFBRTtJQUM5QixNQUFNLHFCQUFxQixHQUFHLHdCQUF3QixFQUFFLENBQUM7SUFDekQscUJBQXFCLENBQUMsUUFBUSxDQUFDO1FBQzdCLFVBQVU7UUFDVixXQUFXO1FBQ1gsV0FBVztRQUNYLFNBQVM7UUFDVCxnQkFBZ0I7S0FDakIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQW9CLEVBQUUsRUFBRTtJQUN6RSxJQUFJLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLHNCQUFzQixDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkUsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQzVDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQzdDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7WUFDaEUsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxLQUFVLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQW1CLEVBQUUsRUFBRTtJQUNyRSxJQUFJLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLHFCQUFxQixDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDaEUsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQzdDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7WUFDaEUsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxLQUFVLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5pdGlhbGl6ZVNwb3RDaGVja3NQcm9wcywgVHJhY2tFdmVudFByb3BzLCBUcmFja1NjcmVlblByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBzZW5kVHJhY2tTY3JlZW5SZXF1ZXN0LCBzZW5kVHJhY2tFdmVudFJlcXVlc3QgfSBmcm9tICcuL2FwaSc7XG5pbXBvcnQgeyBnZXRTcG90Y2hlY2tTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5leHBvcnQgY29uc3QgaW5pdGlhbGl6ZVNwb3RDaGVja3MgPSAoe1xuICBkb21haW5OYW1lLFxuICB0YXJnZXRUb2tlbixcbiAgdXNlckRldGFpbHMgPSB7fSxcbiAgdmFyaWFibGVzID0ge30sXG4gIGN1c3RvbVByb3BlcnRpZXMgPSB7fSxcbn06IEluaXRpYWxpemVTcG90Q2hlY2tzUHJvcHMpID0+IHtcbiAgY29uc3Qgc3BvdGNoZWNrU3RhdGVTZXJ2aWNlID0gZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCk7XG4gIHNwb3RjaGVja1N0YXRlU2VydmljZS5zZXRTdGF0ZSh7XG4gICAgZG9tYWluTmFtZSxcbiAgICB0YXJnZXRUb2tlbixcbiAgICB1c2VyRGV0YWlscyxcbiAgICB2YXJpYWJsZXMsXG4gICAgY3VzdG9tUHJvcGVydGllcyxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdHJhY2tTY3JlZW4gPSBhc3luYyAoeyBzY3JlZW4sIG9wdGlvbnMgfTogVHJhY2tTY3JlZW5Qcm9wcykgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgc2VuZFRyYWNrU2NyZWVuUmVxdWVzdCh7IHNjcmVlbiwgb3B0aW9ucyB9KTtcbiAgICBpZiAocmVzcG9uc2UudmFsaWQpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdTY3JlZW4gVHJhY2tpbmcgc3VjY2VlZGVkLicpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoJ2Vycm9yJyBpbiByZXNwb25zZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzcG9uc2UuZXJyb3IudG9TdHJpbmcoKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyYWNraW5nIGZhaWxlZCB3aXRob3V0IGFuIGV4cGxpY2l0IGVycm9yLicpO1xuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKGBTY3JlZW4gVHJhY2tpbmcgRmFpbGVkLiAke2Vycm9yLm1lc3NhZ2V9YCk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB0cmFja0V2ZW50ID0gYXN5bmMgKHsgc2NyZWVuLCBldmVudCB9OiBUcmFja0V2ZW50UHJvcHMpID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNlbmRUcmFja0V2ZW50UmVxdWVzdCh7IHNjcmVlbiwgZXZlbnQgfSk7XG4gICAgaWYgKHJlc3BvbnNlLnZhbGlkKSB7XG4gICAgICBjb25zb2xlLmxvZygnVHJhY2tFdmVudCBzdWNjZWVkZWQuJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICgnZXJyb3InIGluIHJlc3BvbnNlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihyZXNwb25zZS5lcnJvci50b1N0cmluZygpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVHJhY2tpbmcgZmFpbGVkIHdpdGhvdXQgYW4gZXhwbGljaXQgZXJyb3IuJyk7XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgY29uc29sZS5sb2coYEV2ZW50IFRyYWNraW5nIEZhaWxlZC4gJHtlcnJvci5tZXNzYWdlfWApO1xuICB9XG59O1xuIl19
|
|
@@ -81,8 +81,8 @@ export class WebViewComponent {
|
|
|
81
81
|
break;
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
85
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
84
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: WebViewComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
|
|
85
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.3", type: WebViewComponent, isStandalone: true, selector: "WebViewComponent", inputs: { url: "url", webviewType: "webviewType" }, host: { listeners: { "window:message": "onMessage($event)" } }, viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframeRef"], descendants: true }], ngImport: i0, template: `
|
|
86
86
|
<div style="overflow: hidden; height: 100%;">
|
|
87
87
|
<iframe
|
|
88
88
|
#iframeRef
|
|
@@ -94,7 +94,7 @@ export class WebViewComponent {
|
|
|
94
94
|
</div>
|
|
95
95
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
96
96
|
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: WebViewComponent, decorators: [{
|
|
98
98
|
type: Component,
|
|
99
99
|
args: [{
|
|
100
100
|
selector: 'WebViewComponent',
|
|
@@ -112,7 +112,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
112
112
|
standalone: true,
|
|
113
113
|
imports: [CommonModule],
|
|
114
114
|
}]
|
|
115
|
-
}], ctorParameters:
|
|
115
|
+
}], ctorParameters: () => [{ type: i1.DomSanitizer }], propDecorators: { url: [{
|
|
116
116
|
type: Input
|
|
117
117
|
}], webviewType: [{
|
|
118
118
|
type: Input
|
|
@@ -127,8 +127,8 @@ export class CloseSVGComponent {
|
|
|
127
127
|
size = 32;
|
|
128
128
|
stroke = '#919191';
|
|
129
129
|
strokeWidth = 1.5;
|
|
130
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
131
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
130
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: CloseSVGComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
131
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.3", type: CloseSVGComponent, isStandalone: true, selector: "close-svg", inputs: { size: "size", stroke: "stroke", strokeWidth: "strokeWidth" }, ngImport: i0, template: `
|
|
132
132
|
<svg
|
|
133
133
|
[attr.width]="size"
|
|
134
134
|
[attr.height]="size"
|
|
@@ -146,7 +146,7 @@ export class CloseSVGComponent {
|
|
|
146
146
|
</svg>
|
|
147
147
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
148
148
|
}
|
|
149
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: CloseSVGComponent, decorators: [{
|
|
150
150
|
type: Component,
|
|
151
151
|
args: [{
|
|
152
152
|
selector: 'close-svg',
|
|
@@ -216,8 +216,8 @@ export class CloseButtonComponent {
|
|
|
216
216
|
await closeSpotCheck();
|
|
217
217
|
handleSurveyEnd();
|
|
218
218
|
};
|
|
219
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
220
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
219
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: CloseButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
220
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.3", type: CloseButtonComponent, isStandalone: true, selector: "spotcheck-close-button", inputs: { size: "size", strokeWidth: "strokeWidth" }, ngImport: i0, template: `
|
|
221
221
|
<div style="position: absolute; top: -36px; right: 16px; z-index: 100001; cursor: pointer; background-color: white; border-radius: 50px;" (click)="onClick()" *ngIf="isVisible && isMiniCard">
|
|
222
222
|
<close-svg [size]="size" [stroke]="stroke" [strokeWidth]="strokeWidth" style="display: flex; align-items: center; justify-content: center;"/>
|
|
223
223
|
</div>
|
|
@@ -226,7 +226,7 @@ export class CloseButtonComponent {
|
|
|
226
226
|
</div>
|
|
227
227
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CloseSVGComponent, selector: "close-svg", inputs: ["size", "stroke", "strokeWidth"] }] });
|
|
228
228
|
}
|
|
229
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
229
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: CloseButtonComponent, decorators: [{
|
|
230
230
|
type: Component,
|
|
231
231
|
args: [{
|
|
232
232
|
selector: 'spotcheck-close-button',
|
|
@@ -241,7 +241,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
241
241
|
standalone: true,
|
|
242
242
|
imports: [CommonModule, CloseSVGComponent],
|
|
243
243
|
}]
|
|
244
|
-
}], ctorParameters:
|
|
244
|
+
}], ctorParameters: () => [], propDecorators: { size: [{
|
|
245
245
|
type: Input
|
|
246
246
|
}], strokeWidth: [{
|
|
247
247
|
type: Input
|
|
@@ -308,11 +308,11 @@ export class SpotCheckComponent {
|
|
|
308
308
|
console.log('Error initializing widget:', JSON.stringify(error));
|
|
309
309
|
}
|
|
310
310
|
};
|
|
311
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
312
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
311
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: SpotCheckComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
312
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.3", type: SpotCheckComponent, isStandalone: true, selector: "SpotCheckComponent", ngImport: i0, template: "<div [ngStyle]=\"componentStyles.wrapperStyles\">\n <div [ngStyle]=\"componentStyles.styles\">\n <div style=\"position: relative; height: 100%;\">\n <spotcheck-close-button />\n \n <WebViewComponent\n *ngIf=\"state.classicUrl && state.classicUrl.length > 0 && state.spotcheckURL.length > 0 && state.spotCheckType === 'classic'\"\n [url]=\"state.classicUrl\"\n [webviewType]=\"'classic'\"\n />\n \n <WebViewComponent\n *ngIf=\"state.chatUrl && state.chatUrl.length > 0 && state.spotcheckURL.length > 0 && state.spotCheckType === 'chat'\"\n [url]=\"state.chatUrl\"\n [webviewType]=\"'chat'\"\n />\n\n <div *ngIf=\"state.spotChecksMode === 'miniCard' && state.avatarEnabled\">\n <div style=\"position: absolute; bottom: -66px; left: 16px; z-index: 100001;\">\n <img [src]=\"avatarUrl\" style=\"width: 56px; height: 56px; border-radius: 50px; background-color: white;\"/>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: WebViewComponent, selector: "WebViewComponent", inputs: ["url", "webviewType"] }, { kind: "component", type: CloseButtonComponent, selector: "spotcheck-close-button", inputs: ["size", "strokeWidth"] }] });
|
|
313
313
|
}
|
|
314
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
314
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: SpotCheckComponent, decorators: [{
|
|
315
315
|
type: Component,
|
|
316
316
|
args: [{ selector: 'SpotCheckComponent', standalone: true, imports: [CommonModule, WebViewComponent, CloseButtonComponent], template: "<div [ngStyle]=\"componentStyles.wrapperStyles\">\n <div [ngStyle]=\"componentStyles.styles\">\n <div style=\"position: relative; height: 100%;\">\n <spotcheck-close-button />\n \n <WebViewComponent\n *ngIf=\"state.classicUrl && state.classicUrl.length > 0 && state.spotcheckURL.length > 0 && state.spotCheckType === 'classic'\"\n [url]=\"state.classicUrl\"\n [webviewType]=\"'classic'\"\n />\n \n <WebViewComponent\n *ngIf=\"state.chatUrl && state.chatUrl.length > 0 && state.spotcheckURL.length > 0 && state.spotCheckType === 'chat'\"\n [url]=\"state.chatUrl\"\n [webviewType]=\"'chat'\"\n />\n\n <div *ngIf=\"state.spotChecksMode === 'miniCard' && state.avatarEnabled\">\n <div style=\"position: absolute; bottom: -66px; left: 16px; z-index: 100001;\">\n <img [src]=\"avatarUrl\" style=\"width: 56px; height: 56px; border-radius: 50px; background-color: white;\"/>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
317
|
-
}], ctorParameters:
|
|
318
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3BvdENoZWNrQ29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FuZ3VsYXItdWkvbGliL3Nwb3RjaGVja3MvU3BvdENoZWNrQ29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2FuZ3VsYXItdWkvbGliL3Nwb3RjaGVja3MvU3BvdENoZWNrQ29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxLQUFLLEVBRUwsU0FBUyxFQUdULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxnQ0FBZ0MsRUFBRSw4QkFBOEIsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTVJLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyRCxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7Ozs7QUFrQjFCLE1BQU0sT0FBTyxnQkFBZ0I7SUFPUDtJQU5YLEdBQUcsR0FBVyxFQUFFLENBQUM7SUFDakIsV0FBVyxHQUF1QixTQUFTLENBQUM7SUFFckQsT0FBTyxHQUEyQixJQUFJLENBQUM7SUFDZixNQUFNLENBQWlDO0lBRS9ELFlBQW9CLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7SUFBRyxDQUFDO0lBQy9DLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3hFO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLFlBQVksR0FBRyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2hELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxN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TyxFQUFFLFVBQVU7aUJBQ3BCLENBQUMsQ0FBQzthQUNKO1NBQ0Y7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ2xFO0lBQ0gsQ0FBQyxDQUFDO3dHQTNFUyxrQkFBa0I7NEZBQWxCLGtCQUFrQiw4RUN0Ti9CLGlnQ0F5QkEsMkNEMkxZLFlBQVksd05BakxYLGdCQUFnQiw2RkEySGhCLG9CQUFvQjs7NEZBd0RwQixrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0Usb0JBQW9CLGNBRWxCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE9uSW5pdCxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEFmdGVyVmlld0luaXQsXG4gIEhvc3RMaXN0ZW5lcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgY2xvc2VTcG90Q2hlY2ssIGNsb3NlU3BvdENoZWNrQW5kSGFuZGxlU3VydmV5RW5kLCBnZXRTcG90Y2hlY2tDb21wb25lbnRDc3NTdHlsZXMsIGhhbmRsZVN1cnZleUVuZCwgaXNjaGF0U3VydmV5IH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IFNwb3RjaGVja1N0YXRlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRTcG90Y2hlY2tTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgU3BvdGNoZWNrU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9TcG90Y2hlY2tTdGF0ZVNlcnZpY2UnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnV2ViVmlld0NvbXBvbmVudCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBzdHlsZT1cIm92ZXJmbG93OiBoaWRkZW47IGhlaWdodDogMTAwJTtcIj5cbiAgICAgIDxpZnJhbWVcbiAgICAgICAgI2lmcmFtZVJlZlxuICAgICAgICBbc3JjXT1cInNhZmVVcmxcIlxuICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGRpc3BsYXk6IGJsb2NrO1wiXG4gICAgICAgIGZyYW1lYm9yZGVyPVwiMFwiXG4gICAgICA+XG4gICAgICA8L2lmcmFtZT5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFdlYlZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSB1cmw6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB3ZWJ2aWV3VHlwZTogJ2NsYXNzaWMnIHwgJ2NoYXQnID0gJ2NsYXNzaWMnO1xuXG4gIHNhZmVVcmw6IFNhZmVSZXNvdXJjZVVybCB8IG51bGwgPSBudWxsO1xuICBAVmlld0NoaWxkKCdpZnJhbWVSZWYnKSBpZnJhbWUhOiBFbGVtZW50UmVmPEhUTUxJRnJhbWVFbGVtZW50PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7fVxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy51cmwpIHtcbiAgICAgIHRoaXMuc2FmZVVybCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh0aGlzLnVybCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbnN0IHN0YXRlU2VydmljZSA9IGdldFNwb3RjaGVja1N0YXRlU2VydmljZSgpO1xuICAgIGNvbnN0IHdlYlZpZXdSZWYgPSB0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50O1xuXG4gICAgaWYgKHRoaXMud2Vidmlld1R5cGUgPT09ICdjbGFzc2ljJykge1xuICAgICAgc3RhdGVTZXJ2aWNlLnNldFN0YXRlKHtcbiAgICAgICAgY2xhc3NpY1dlYlZpZXdSZWY6IHdlYlZpZXdSZWYsXG4gICAgICAgIGlzQ2xhc3NpY0xvYWRpbmc6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXRlU2VydmljZS5zZXRTdGF0ZSh7XG4gICAgICAgIGNoYXRXZWJWaWV3UmVmOiB3ZWJWaWV3UmVmLFxuICAgICAgICBpc0NoYXRMb2FkaW5nOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnNldHVwSWZyYW1lTG9hZExpc3RlbmVyKCk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwSWZyYW1lTG9hZExpc3RlbmVyKCkge1xuICAgIGNvbnN0IGlmcmFtZSA9IHRoaXMuaWZyYW1lLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBzdGF0ZVNlcnZpY2UgPSBnZXRTcG90Y2hlY2tTdGF0ZVNlcnZpY2UoKTtcbiAgICAgIGlmICh0aGlzLndlYnZpZXdUeXBlID09PSAnY2xhc3NpYycpIHtcbiAgICAgICAgc3RhdGVTZXJ2aWNlLnNldFN0YXRlKHsgaXNDbGFzc2ljTG9hZGluZzogZmFsc2UgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGF0ZVNlcnZpY2Uuc2V0U3RhdGUoeyBpc0NoYXRMb2FkaW5nOiBmYWxzZSB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzptZXNzYWdlJywgWyckZXZlbnQnXSlcbiAgb25NZXNzYWdlKGV2ZW50OiBNZXNzYWdlRXZlbnQpIHtcbiAgICBjb25zdCBzdGF0ZVNlcnZpY2UgPSBnZXRTcG90Y2hlY2tTdGF0ZVNlcnZpY2UoKTtcbiAgICBjb25zdCB7IGRhdGEgfSA9IGV2ZW50O1xuICAgIHN3aXRjaCAoZGF0YS50eXBlKSB7XG4gICAgICBjYXNlICdzbGlkZUluRnJhbWUnOlxuICAgICAgICBpZiAoZGF0YS5tb3VudGVkKSB7XG4gICAgICAgICAgc3RhdGVTZXJ2aWNlLnNldFN0YXRlKHsgaXNNb3VudGVkOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdyZXNpemVXaW5kb3cnOlxuICAgICAgICBpZiAoZGF0YS5zaXplKSB7XG4gICAgICAgICAgc3RhdGVTZXJ2aWNlLnNldFN0YXRlKHtcbiAgICAgICAgICAgIGN1cnJlbnRRdWVzdGlvbkhlaWdodDogZGF0YS5zaXplLmhlaWdodCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRhLmlzQ2xvc2VCdXR0b25FbmFibGVkKSB7XG4gICAgICAgICAgc3RhdGVTZXJ2aWNlLnNldFN0YXRlKHtcbiAgICAgICAgICAgIGlzQ2xvc2VCdXR0b25FbmFibGVkOiBkYXRhLmlzQ2xvc2VCdXR0b25FbmFibGVkLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdzdXJ2ZXlDb21wbGV0ZWQnOlxuICAgICAgICBjbG9zZVNwb3RDaGVja0FuZEhhbmRsZVN1cnZleUVuZCgpO1xuICAgICAgICAvLyBzcG90Y2hlY2tzTGlzdGVuZXIuZW1pdFN1cnZleUNvbXBsZXRlZChkYXRhLnJlc3BvbnNlKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3N1cnZleUxvYWRTdGFydGVkJzpcbiAgICAgICAgLy8gc3BvdGNoZWNrc0xpc3RlbmVyLmVtaXRTdXJ2ZXlMb2FkU3RhcnRlZChkYXRhLnN1cnZleURldGFpbHMpO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nsb3NlLXN2ZycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHN2Z1xuICAgICAgW2F0dHIud2lkdGhdPVwic2l6ZVwiXG4gICAgICBbYXR0ci5oZWlnaHRdPVwic2l6ZVwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDMyIDMyXCJcbiAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgIHhtbG5zPVwiaHR0cHM6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTEwLjY2NjUgMTAuNjY3TDIxLjMzMzIgMjEuMzMzN00yMS4zMzMyIDEwLjY2N0wxMC42NjY1IDIxLjMzMzdcIlxuICAgICAgICBbYXR0ci5zdHJva2VdPVwic3Ryb2tlXCJcbiAgICAgICAgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInN0cm9rZVdpZHRoXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG4gIGAsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBDbG9zZVNWR0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNpemU6IG51bWJlciA9IDMyO1xuICBASW5wdXQoKSBzdHJva2U6IHN0cmluZyA9ICcjOTE5MTkxJztcbiAgQElucHV0KCkgc3Ryb2tlV2lkdGg6IG51bWJlciA9IDEuNTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3BvdGNoZWNrLWNsb3NlLWJ1dHRvbicsXG4gIHRlbXBsYXRlOiBgXG4gICAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyB0b3A6IC0zNnB4OyByaWdodDogMTZweDsgei1pbmRleDogMTAwMDAxOyBjdXJzb3I6IHBvaW50ZXI7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyBib3JkZXItcmFkaXVzOiA1MHB4O1wiIChjbGljayk9XCJvbkNsaWNrKClcIiAqbmdJZj1cImlzVmlzaWJsZSAmJiBpc01pbmlDYXJkXCI+XG4gICAgICAgIDxjbG9zZS1zdmcgW3NpemVdPVwic2l6ZVwiIFtzdHJva2VdPVwic3Ryb2tlXCIgW3N0cm9rZVdpZHRoXT1cInN0cm9rZVdpZHRoXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcIi8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTZweDsgcmlnaHQ6IDE2cHg7IHotaW5kZXg6IDEwMDAwMTsgY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJvbkNsaWNrKClcIiAqbmdJZj1cImlzVmlzaWJsZSAmJiAhaXNNaW5pQ2FyZFwiPlxuICAgICAgICA8Y2xvc2Utc3ZnIFtzaXplXT1cInNpemVcIiBbc3Ryb2tlXT1cInN0cm9rZVwiIFtzdHJva2VXaWR0aF09XCJzdHJva2VXaWR0aFwiLz5cbiAgICAgIDwvZGl2PlxuICBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDbG9zZVNWR0NvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIENsb3NlQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQElucHV0KCkgc2l6ZTogbnVtYmVyID0gMzA7XG4gIEBJbnB1dCgpIHN0cm9rZVdpZHRoOiBudW1iZXIgPSAxLjI7XG4gIFxuICBzdGF0ZTogU3BvdGNoZWNrU3RhdGU7XG4gIHByaXZhdGUgc3RhdGVTZXJ2aWNlOiBTcG90Y2hlY2tTdGF0ZVNlcnZpY2U7XG4gIHByaXZhdGUgc3RhdGVTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG4gIFxuICBpc1Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNNaW5pQ2FyZDogYm9vbGVhbiA9IGZhbHNlO1xuICBzdHJva2U6IHN0cmluZyA9ICdibGFjayc7XG4gIFxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnN0YXRlU2VydmljZSA9IGdldFNwb3RjaGVja1N0YXRlU2VydmljZSgpO1xuICAgIHRoaXMuc3RhdGUgPSB0aGlzLnN0YXRlU2VydmljZS5nZXRTdGF0ZSgpO1xuICAgIHRoaXMudXBkYXRlQ29tcG9uZW50U3RhdGUoKTtcblxuICAgIHRoaXMuc3RhdGVTdWJzY3JpcHRpb24gPSB0aGlzLnN0YXRlU2VydmljZS5zdGF0ZSQuc3Vic2NyaWJlKFxuICAgICAgKG5ld1N0YXRlOiBTcG90Y2hlY2tTdGF0ZSkgPT4ge1xuICAgICAgICB0aGlzLnN0YXRlID0gbmV3U3RhdGU7XG4gICAgICAgIHRoaXMudXBkYXRlQ29tcG9uZW50U3RhdGUoKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3RhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbXBvbmVudFN0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMuaXNWaXNpYmxlID1cbiAgICAgIHRoaXMuc3RhdGUuaXNDbG9zZUJ1dHRvbkVuYWJsZWQgJiZcbiAgICAgICgodGhpcy5zdGF0ZS5jdXJyZW50UXVlc3Rpb25IZWlnaHQgPiAwICYmICF0aGlzLnN0YXRlLmlzRnVsbFNjcmVlbk1vZGUpIHx8XG4gICAgICAgICh0aGlzLnN0YXRlLmlzRnVsbFNjcmVlbk1vZGUgJiZcbiAgICAgICAgICAoKCF0aGlzLnN0YXRlLmlzQ2xhc3NpY0xvYWRpbmcgJiZcbiAgICAgICAgICAgIHRoaXMuc3RhdGUuc3BvdENoZWNrVHlwZSA9PT0gJ2NsYXNzaWMnKSB8fFxuICAgICAgICAgICAgKCF0aGlzLnN0YXRlLmlzQ2hhdExvYWRpbmcgJiZcbiAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5zcG90Q2hlY2tUeXBlID09PSAnY2hhdCcpKSkpO1xuICAgIHRoaXMuaXNNaW5pQ2FyZCA9IHRoaXMuc3RhdGUuc3BvdENoZWNrc01vZGUgPT09ICdtaW5pQ2FyZCc7XG4gICAgdGhpcy5zdHJva2UgPSB0aGlzLmlzTWluaUNhcmQgPyAnYmxhY2snIDogdGhpcy5zdGF0ZS5jbG9zZUJ1dHRvblN0eWxlPy5bJ2N0YUJ1dHRvbiddIHx8ICdibGFjayc7XG4gIH1cblxuICBvbkNsaWNrID0gYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGNsb3NlU3BvdENoZWNrKCk7XG4gICAgaGFuZGxlU3VydmV5RW5kKCk7XG4gIH07XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1Nwb3RDaGVja0NvbXBvbmVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9TcG90Q2hlY2tDb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFdlYlZpZXdDb21wb25lbnQsIENsb3NlQnV0dG9uQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU3BvdENoZWNrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBzdGF0ZTogU3BvdGNoZWNrU3RhdGU7XG4gIHByaXZhdGUgc3BvdGNoZWNrU3RhdGVTZXJ2aWNlOiBTcG90Y2hlY2tTdGF0ZVNlcnZpY2U7XG4gIHByaXZhdGUgc3RhdGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgY29tcG9uZW50U3R5bGVzOiBhbnkgPSB7fTtcbiAgYXZhdGFyVXJsOiBzdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNwb3RjaGVja1N0YXRlU2VydmljZSA9IGdldFNwb3RjaGVja1N0YXRlU2VydmljZSgpO1xuICAgIHRoaXMuc3RhdGUgPSB0aGlzLnNwb3RjaGVja1N0YXRlU2VydmljZS5nZXRTdGF0ZSgpO1xuICAgIHRoaXMudXBkYXRlQ29tcG9uZW50U3R5bGVzKCk7XG5cbiAgICB0aGlzLnN0YXRlU3Vic2NyaXB0aW9uID0gdGhpcy5zcG90Y2hlY2tTdGF0ZVNlcnZpY2Uuc3RhdGUkLnN1YnNjcmliZShcbiAgICAgIChuZXdTdGF0ZTogU3BvdGNoZWNrU3RhdGUpID0+IHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IG5ld1N0YXRlO1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudFN0eWxlcygpO1xuICAgICAgICB0aGlzLmF2YXRhclVybCA9IHRoaXMuc3RhdGUuYXZhdGFyVXJsIHx8IFwiaHR0cHM6Ly9zdGF0aWMuc3VydmV5c3BhcnJvdy5jb20vYXBwbGljYXRpb24vaW1hZ2VzL3Byb2ZpbGUucG5nXCI7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbXBvbmVudCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3RhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbXBvbmVudFN0eWxlcygpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudFN0eWxlcyA9IGdldFNwb3RjaGVja0NvbXBvbmVudENzc1N0eWxlcyh0aGlzLnN0YXRlKTtcbiAgfVxuXG4gIGluaXRpYWxpemVDb21wb25lbnQgPSBhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRvbWFpbk5hbWUgPSB0aGlzLnN0YXRlLmRvbWFpbk5hbWU7XG4gICAgICBjb25zdCB0YXJnZXRUb2tlbiA9IHRoaXMuc3RhdGUudGFyZ2V0VG9rZW47XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zLmdldChcbiAgICAgICAgYGh0dHBzOi8vJHtkb21haW5OYW1lfS9hcGkvaW50ZXJuYWwvc3BvdGNoZWNrL3dpZGdldC8ke3RhcmdldFRva2VufS9pbml0YFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGRhdGEgPSByZXNwb25zZS5kYXRhO1xuXG4gICAgICBpZiAoZGF0YS5maWx0ZXJlZFNwb3RDaGVja3MgJiYgZGF0YS5maWx0ZXJlZFNwb3RDaGVja3MubGVuZ3RoID4gMCkge1xuICAgICAgICBsZXQgY2xhc3NpY0lmcmFtZSA9IGZhbHNlO1xuICAgICAgICBsZXQgY2hhdElmcmFtZSA9IGZhbHNlO1xuXG4gICAgICAgIGRhdGEuZmlsdGVyZWRTcG90Q2hlY2tzLmZvckVhY2goKHNwb3RjaGVjazogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgc3BvdGNoZWNrLmFwcGVhcmFuY2UubW9kZSA9PT0gJ2Z1bGxTY3JlZW4nICYmXG4gICAgICAgICAgICBpc2NoYXRTdXJ2ZXkoc3BvdGNoZWNrPy5zdXJ2ZXk/LnN1cnZleVR5cGUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjaGF0SWZyYW1lID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2xhc3NpY0lmcmFtZSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBuZXdDbGFzc2ljVXJsID0gY2xhc3NpY0lmcmFtZVxuICAgICAgICAgID8gYGh0dHBzOi8vJHtkb21haW5OYW1lfS9ldWktdGVtcGxhdGUvY2xhc3NpY2BcbiAgICAgICAgICA6ICcnO1xuICAgICAgICBjb25zdCBuZXdDaGF0VXJsID0gY2hhdElmcmFtZVxuICAgICAgICAgID8gYGh0dHBzOi8vJHtkb21haW5OYW1lfS9ldWktdGVtcGxhdGUvY2hhdGBcbiAgICAgICAgICA6ICcnO1xuXG4gICAgICAgIHRoaXMuc3BvdGNoZWNrU3RhdGVTZXJ2aWNlLnNldFN0YXRlKHtcbiAgICAgICAgICBmaWx0ZXJlZFNwb3RDaGVja3M6IGRhdGEuZmlsdGVyZWRTcG90Q2hlY2tzLFxuICAgICAgICAgIGNsYXNzaWNVcmw6IG5ld0NsYXNzaWNVcmwsXG4gICAgICAgICAgY2hhdFVybDogbmV3Q2hhdFVybCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBpbml0aWFsaXppbmcgd2lkZ2V0OicsIEpTT04uc3RyaW5naWZ5KGVycm9yKSk7XG4gICAgfVxuICB9O1xufVxuIiwiPGRpdiBbbmdTdHlsZV09XCJjb21wb25lbnRTdHlsZXMud3JhcHBlclN0eWxlc1wiPlxuICA8ZGl2IFtuZ1N0eWxlXT1cImNvbXBvbmVudFN0eWxlcy5zdHlsZXNcIj5cbiAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlOyBoZWlnaHQ6IDEwMCU7XCI+XG4gICAgICA8c3BvdGNoZWNrLWNsb3NlLWJ1dHRvbiAvPlxuICBcbiAgICAgIDxXZWJWaWV3Q29tcG9uZW50XG4gICAgICAgICpuZ0lmPVwic3RhdGUuY2xhc3NpY1VybCAmJiBzdGF0ZS5jbGFzc2ljVXJsLmxlbmd0aCA+IDAgJiYgc3RhdGUuc3BvdGNoZWNrVVJMLmxlbmd0aCA+IDAgJiYgc3RhdGUuc3BvdENoZWNrVHlwZSA9PT0gJ2NsYXNzaWMnXCJcbiAgICAgICAgW3VybF09XCJzdGF0ZS5jbGFzc2ljVXJsXCJcbiAgICAgICAgW3dlYnZpZXdUeXBlXT1cIidjbGFzc2ljJ1wiXG4gICAgICAvPlxuICBcbiAgICAgIDxXZWJWaWV3Q29tcG9uZW50XG4gICAgICAgICpuZ0lmPVwic3RhdGUuY2hhdFVybCAmJiBzdGF0ZS5jaGF0VXJsLmxlbmd0aCA+IDAgJiYgc3RhdGUuc3BvdGNoZWNrVVJMLmxlbmd0aCA+IDAgJiYgc3RhdGUuc3BvdENoZWNrVHlwZSA9PT0gJ2NoYXQnXCJcbiAgICAgICAgW3VybF09XCJzdGF0ZS5jaGF0VXJsXCJcbiAgICAgICAgW3dlYnZpZXdUeXBlXT1cIidjaGF0J1wiXG4gICAgICAvPlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwic3RhdGUuc3BvdENoZWNrc01vZGUgPT09ICdtaW5pQ2FyZCcgJiYgc3RhdGUuYXZhdGFyRW5hYmxlZFwiPlxuICAgICAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBib3R0b206IC02NnB4OyBsZWZ0OiAxNnB4OyB6LWluZGV4OiAxMDAwMDE7XCI+XG4gICAgICAgICAgPGltZyBbc3JjXT1cImF2YXRhclVybFwiIHN0eWxlPVwid2lkdGg6IDU2cHg7IGhlaWdodDogNTZweDsgYm9yZGVyLXJhZGl1czogNTBweDsgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XCIvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
317
|
+
}], ctorParameters: () => [] });
|
|
318
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3BvdENoZWNrQ29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FuZ3VsYXItdWkvbGliL3Nwb3RjaGVja3MvU3BvdENoZWNrQ29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2FuZ3VsYXItdWkvbGliL3Nwb3RjaGVja3MvU3BvdENoZWNrQ29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxLQUFLLEVBRUwsU0FBUyxFQUdULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxnQ0FBZ0MsRUFBRSw4QkFBOEIsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTVJLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyRCxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7Ozs7QUFrQjFCLE1BQU0sT0FBTyxnQkFBZ0I7SUFPUDtJQU5YLEdBQUcsR0FBVyxFQUFFLENBQUM7SUFDakIsV0FBVyxHQUF1QixTQUFTLENBQUM7SUFFckQsT0FBTyxHQUEyQixJQUFJLENBQUM7SUFDZixNQUFNLENBQWlDO0lBRS9ELFlBQW9CLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7SUFBRyxDQUFDO0lBQy9DLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekUsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxZQUFZLEdBQUcsd0JBQXdCLEVBQUUsQ0FBQztRQUNoRCxNQUFNLFVBQVUsR0FBRyxJ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b0JBQW9CO29CQUMzQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUVQLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUM7b0JBQ2xDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7b0JBQzNDLFVBQVUsRUFBRSxhQUFhO29CQUN6QixPQUFPLEVBQUUsVUFBVTtpQkFDcEIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbkUsQ0FBQztJQUNILENBQUMsQ0FBQzt1R0EzRVMsa0JBQWtCOzJGQUFsQixrQkFBa0IsOEVDdk4vQixpZ0NBeUJBLDJDRDRMWSxZQUFZLHdOQWxMWCxnQkFBZ0IsNkZBMkhoQixvQkFBb0I7OzJGQXlEcEIsa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLG9CQUFvQixjQUVsQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBPbkluaXQsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgVmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBBZnRlclZpZXdJbml0LFxuICBIb3N0TGlzdGVuZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlUmVzb3VyY2VVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IGNsb3NlU3BvdENoZWNrLCBjbG9zZVNwb3RDaGVja0FuZEhhbmRsZVN1cnZleUVuZCwgZ2V0U3BvdGNoZWNrQ29tcG9uZW50Q3NzU3R5bGVzLCBoYW5kbGVTdXJ2ZXlFbmQsIGlzY2hhdFN1cnZleSB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBTcG90Y2hlY2tTdGF0ZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IFNwb3RjaGVja1N0YXRlU2VydmljZSB9IGZyb20gJy4vU3BvdGNoZWNrU3RhdGVTZXJ2aWNlJztcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1dlYlZpZXdDb21wb25lbnQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgc3R5bGU9XCJvdmVyZmxvdzogaGlkZGVuOyBoZWlnaHQ6IDEwMCU7XCI+XG4gICAgICA8aWZyYW1lXG4gICAgICAgICNpZnJhbWVSZWZcbiAgICAgICAgW3NyY109XCJzYWZlVXJsXCJcbiAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBkaXNwbGF5OiBibG9jaztcIlxuICAgICAgICBmcmFtZWJvcmRlcj1cIjBcIlxuICAgICAgPlxuICAgICAgPC9pZnJhbWU+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBXZWJWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgdXJsOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgd2Vidmlld1R5cGU6ICdjbGFzc2ljJyB8ICdjaGF0JyA9ICdjbGFzc2ljJztcblxuICBzYWZlVXJsOiBTYWZlUmVzb3VyY2VVcmwgfCBudWxsID0gbnVsbDtcbiAgQFZpZXdDaGlsZCgnaWZyYW1lUmVmJykgaWZyYW1lITogRWxlbWVudFJlZjxIVE1MSUZyYW1lRWxlbWVudD47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMudXJsKSB7XG4gICAgICB0aGlzLnNhZmVVcmwgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwodGhpcy51cmwpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjb25zdCBzdGF0ZVNlcnZpY2UgPSBnZXRTcG90Y2hlY2tTdGF0ZVNlcnZpY2UoKTtcbiAgICBjb25zdCB3ZWJWaWV3UmVmID0gdGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudDtcblxuICAgIGlmICh0aGlzLndlYnZpZXdUeXBlID09PSAnY2xhc3NpYycpIHtcbiAgICAgIHN0YXRlU2VydmljZS5zZXRTdGF0ZSh7XG4gICAgICAgIGNsYXNzaWNXZWJWaWV3UmVmOiB3ZWJWaWV3UmVmLFxuICAgICAgICBpc0NsYXNzaWNMb2FkaW5nOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdGF0ZVNlcnZpY2Uuc2V0U3RhdGUoe1xuICAgICAgICBjaGF0V2ViVmlld1JlZjogd2ViVmlld1JlZixcbiAgICAgICAgaXNDaGF0TG9hZGluZzogZmFsc2UsXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5zZXR1cElmcmFtZUxvYWRMaXN0ZW5lcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cElmcmFtZUxvYWRMaXN0ZW5lcigpIHtcbiAgICBjb25zdCBpZnJhbWUgPSB0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50O1xuICAgIGlmcmFtZS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4ge1xuICAgICAgY29uc3Qgc3RhdGVTZXJ2aWNlID0gZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCk7XG4gICAgICBpZiAodGhpcy53ZWJ2aWV3VHlwZSA9PT0gJ2NsYXNzaWMnKSB7XG4gICAgICAgIHN0YXRlU2VydmljZS5zZXRTdGF0ZSh7IGlzQ2xhc3NpY0xvYWRpbmc6IGZhbHNlIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhdGVTZXJ2aWNlLnNldFN0YXRlKHsgaXNDaGF0TG9hZGluZzogZmFsc2UgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6bWVzc2FnZScsIFsnJGV2ZW50J10pXG4gIG9uTWVzc2FnZShldmVudDogTWVzc2FnZUV2ZW50KSB7XG4gICAgY29uc3Qgc3RhdGVTZXJ2aWNlID0gZ2V0U3BvdGNoZWNrU3RhdGVTZXJ2aWNlKCk7XG4gICAgY29uc3QgeyBkYXRhIH0gPSBldmVudDtcbiAgICBzd2l0Y2ggKGRhdGEudHlwZSkge1xuICAgICAgY2FzZSAnc2xpZGVJbkZyYW1lJzpcbiAgICAgICAgaWYgKGRhdGEubW91bnRlZCkge1xuICAgICAgICAgIHN0YXRlU2VydmljZS5zZXRTdGF0ZSh7IGlzTW91bnRlZDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAncmVzaXplV2luZG93JzpcbiAgICAgICAgaWYgKGRhdGEuc2l6ZSkge1xuICAgICAgICAgIHN0YXRlU2VydmljZS5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBjdXJyZW50UXVlc3Rpb25IZWlnaHQ6IGRhdGEuc2l6ZS5oZWlnaHQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZGF0YS5pc0Nsb3NlQnV0dG9uRW5hYmxlZCkge1xuICAgICAgICAgIHN0YXRlU2VydmljZS5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBpc0Nsb3NlQnV0dG9uRW5hYmxlZDogZGF0YS5pc0Nsb3NlQnV0dG9uRW5hYmxlZCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnc3VydmV5Q29tcGxldGVkJzpcbiAgICAgICAgY2xvc2VTcG90Q2hlY2tBbmRIYW5kbGVTdXJ2ZXlFbmQoKTtcbiAgICAgICAgLy8gc3BvdGNoZWNrc0xpc3RlbmVyLmVtaXRTdXJ2ZXlDb21wbGV0ZWQoZGF0YS5yZXNwb25zZSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdzdXJ2ZXlMb2FkU3RhcnRlZCc6XG4gICAgICAgIC8vIHNwb3RjaGVja3NMaXN0ZW5lci5lbWl0U3VydmV5TG9hZFN0YXJ0ZWQoZGF0YS5zdXJ2ZXlEZXRhaWxzKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbG9zZS1zdmcnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxzdmdcbiAgICAgIFthdHRyLndpZHRoXT1cInNpemVcIlxuICAgICAgW2F0dHIuaGVpZ2h0XT1cInNpemVcIlxuICAgICAgdmlld0JveD1cIjAgMCAzMiAzMlwiXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHBzOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk0xMC42NjY1IDEwLjY2N0wyMS4zMzMyIDIxLjMzMzdNMjEuMzMzMiAxMC42NjdMMTAuNjY2NSAyMS4zMzM3XCJcbiAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInN0cm9rZVwiXG4gICAgICAgIFthdHRyLnN0cm9rZS13aWR0aF09XCJzdHJva2VXaWR0aFwiXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xvc2VTVkdDb21wb25lbnQge1xuICBASW5wdXQoKSBzaXplOiBudW1iZXIgPSAzMjtcbiAgQElucHV0KCkgc3Ryb2tlOiBzdHJpbmcgPSAnIzkxOTE5MSc7XG4gIEBJbnB1dCgpIHN0cm9rZVdpZHRoOiBudW1iZXIgPSAxLjU7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Nwb3RjaGVjay1jbG9zZS1idXR0b24nLFxuICB0ZW1wbGF0ZTogYFxuICAgICAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAtMzZweDsgcmlnaHQ6IDE2cHg7IHotaW5kZXg6IDEwMDAwMTsgY3Vyc29yOiBwb2ludGVyOyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgYm9yZGVyLXJhZGl1czogNTBweDtcIiAoY2xpY2spPVwib25DbGljaygpXCIgKm5nSWY9XCJpc1Zpc2libGUgJiYgaXNNaW5pQ2FyZFwiPlxuICAgICAgICA8Y2xvc2Utc3ZnIFtzaXplXT1cInNpemVcIiBbc3Ryb2tlXT1cInN0cm9rZVwiIFtzdHJva2VXaWR0aF09XCJzdHJva2VXaWR0aFwiIHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XCIvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyB0b3A6IDE2cHg7IHJpZ2h0OiAxNnB4OyB6LWluZGV4OiAxMDAwMDE7IGN1cnNvcjogcG9pbnRlcjtcIiAoY2xpY2spPVwib25DbGljaygpXCIgKm5nSWY9XCJpc1Zpc2libGUgJiYgIWlzTWluaUNhcmRcIj5cbiAgICAgICAgPGNsb3NlLXN2ZyBbc2l6ZV09XCJzaXplXCIgW3N0cm9rZV09XCJzdHJva2VcIiBbc3Ryb2tlV2lkdGhdPVwic3Ryb2tlV2lkdGhcIi8+XG4gICAgICA8L2Rpdj5cbiAgYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQ2xvc2VTVkdDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBDbG9zZUJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHNpemU6IG51bWJlciA9IDMwO1xuICBASW5wdXQoKSBzdHJva2VXaWR0aDogbnVtYmVyID0gMS4yO1xuICBcbiAgc3RhdGU6IFNwb3RjaGVja1N0YXRlO1xuICBwcml2YXRlIHN0YXRlU2VydmljZTogU3BvdGNoZWNrU3RhdGVTZXJ2aWNlO1xuICBwcml2YXRlIHN0YXRlU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuICBcbiAgaXNWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIGlzTWluaUNhcmQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc3Ryb2tlOiBzdHJpbmcgPSAnYmxhY2snO1xuICBcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2UgPSBnZXRTcG90Y2hlY2tTdGF0ZVNlcnZpY2UoKTtcbiAgICB0aGlzLnN0YXRlID0gdGhpcy5zdGF0ZVNlcnZpY2UuZ2V0U3RhdGUoKTtcbiAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudFN0YXRlKCk7XG5cbiAgICB0aGlzLnN0YXRlU3Vic2NyaXB0aW9uID0gdGhpcy5zdGF0ZVNlcnZpY2Uuc3RhdGUkLnN1YnNjcmliZShcbiAgICAgIChuZXdTdGF0ZTogU3BvdGNoZWNrU3RhdGUpID0+IHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IG5ld1N0YXRlO1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudFN0YXRlKCk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN0YXRlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb21wb25lbnRTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzVmlzaWJsZSA9XG4gICAgICB0aGlzLnN0YXRlLmlzQ2xvc2VCdXR0b25FbmFibGVkICYmXG4gICAgICAoKHRoaXMuc3RhdGUuY3VycmVudFF1ZXN0aW9uSGVpZ2h0ID4gMCAmJiAhdGhpcy5zdGF0ZS5pc0Z1bGxTY3JlZW5Nb2RlKSB8fFxuICAgICAgICAodGhpcy5zdGF0ZS5pc0Z1bGxTY3JlZW5Nb2RlICYmXG4gICAgICAgICAgKCghdGhpcy5zdGF0ZS5pc0NsYXNzaWNMb2FkaW5nICYmXG4gICAgICAgICAgICB0aGlzLnN0YXRlLnNwb3RDaGVja1R5cGUgPT09ICdjbGFzc2ljJykgfHxcbiAgICAgICAgICAgICghdGhpcy5zdGF0ZS5pc0NoYXRMb2FkaW5nICYmXG4gICAgICAgICAgICAgIHRoaXMuc3RhdGUuc3BvdENoZWNrVHlwZSA9PT0gJ2NoYXQnKSkpKTtcbiAgICB0aGlzLmlzTWluaUNhcmQgPSB0aGlzLnN0YXRlLnNwb3RDaGVja3NNb2RlID09PSAnbWluaUNhcmQnO1xuICAgIHRoaXMuc3Ryb2tlID0gdGhpcy5pc01pbmlDYXJkID8gJ2JsYWNrJyA6IHRoaXMuc3RhdGUuY2xvc2VCdXR0b25TdHlsZT8uWydjdGFCdXR0b24nXSB8fCAnYmxhY2snO1xuICB9XG5cbiAgb25DbGljayA9IGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBjbG9zZVNwb3RDaGVjaygpO1xuICAgIGhhbmRsZVN1cnZleUVuZCgpO1xuICB9O1xufVxuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1Nwb3RDaGVja0NvbXBvbmVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9TcG90Q2hlY2tDb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFdlYlZpZXdDb21wb25lbnQsIENsb3NlQnV0dG9uQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU3BvdENoZWNrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBzdGF0ZTogU3BvdGNoZWNrU3RhdGU7XG4gIHByaXZhdGUgc3BvdGNoZWNrU3RhdGVTZXJ2aWNlOiBTcG90Y2hlY2tTdGF0ZVNlcnZpY2U7XG4gIHByaXZhdGUgc3RhdGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgY29tcG9uZW50U3R5bGVzOiBhbnkgPSB7fTtcbiAgYXZhdGFyVXJsOiBzdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNwb3RjaGVja1N0YXRlU2VydmljZSA9IGdldFNwb3RjaGVja1N0YXRlU2VydmljZSgpO1xuICAgIHRoaXMuc3RhdGUgPSB0aGlzLnNwb3RjaGVja1N0YXRlU2VydmljZS5nZXRTdGF0ZSgpO1xuICAgIHRoaXMudXBkYXRlQ29tcG9uZW50U3R5bGVzKCk7XG5cbiAgICB0aGlzLnN0YXRlU3Vic2NyaXB0aW9uID0gdGhpcy5zcG90Y2hlY2tTdGF0ZVNlcnZpY2Uuc3RhdGUkLnN1YnNjcmliZShcbiAgICAgIChuZXdTdGF0ZTogU3BvdGNoZWNrU3RhdGUpID0+IHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IG5ld1N0YXRlO1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudFN0eWxlcygpO1xuICAgICAgICB0aGlzLmF2YXRhclVybCA9IHRoaXMuc3RhdGUuYXZhdGFyVXJsIHx8IFwiaHR0cHM6Ly9zdGF0aWMuc3VydmV5c3BhcnJvdy5jb20vYXBwbGljYXRpb24vaW1hZ2VzL3Byb2ZpbGUucG5nXCI7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbXBvbmVudCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3RhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbXBvbmVudFN0eWxlcygpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudFN0eWxlcyA9IGdldFNwb3RjaGVja0NvbXBvbmVudENzc1N0eWxlcyh0aGlzLnN0YXRlKTtcbiAgfVxuXG4gIGluaXRpYWxpemVDb21wb25lbnQgPSBhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRvbWFpbk5hbWUgPSB0aGlzLnN0YXRlLmRvbWFpbk5hbWU7XG4gICAgICBjb25zdCB0YXJnZXRUb2tlbiA9IHRoaXMuc3RhdGUudGFyZ2V0VG9rZW47XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zLmdldChcbiAgICAgICAgYGh0dHBzOi8vJHtkb21haW5OYW1lfS9hcGkvaW50ZXJuYWwvc3BvdGNoZWNrL3dpZGdldC8ke3RhcmdldFRva2VufS9pbml0YFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGRhdGEgPSByZXNwb25zZS5kYXRhO1xuXG4gICAgICBpZiAoZGF0YS5maWx0ZXJlZFNwb3RDaGVja3MgJiYgZGF0YS5maWx0ZXJlZFNwb3RDaGVja3MubGVuZ3RoID4gMCkge1xuICAgICAgICBsZXQgY2xhc3NpY0lmcmFtZSA9IGZhbHNlO1xuICAgICAgICBsZXQgY2hhdElmcmFtZSA9IGZhbHNlO1xuXG4gICAgICAgIGRhdGEuZmlsdGVyZWRTcG90Q2hlY2tzLmZvckVhY2goKHNwb3RjaGVjazogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgc3BvdGNoZWNrLmFwcGVhcmFuY2UubW9kZSA9PT0gJ2Z1bGxTY3JlZW4nICYmXG4gICAgICAgICAgICBpc2NoYXRTdXJ2ZXkoc3BvdGNoZWNrPy5zdXJ2ZXk/LnN1cnZleVR5cGUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjaGF0SWZyYW1lID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2xhc3NpY0lmcmFtZSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBuZXdDbGFzc2ljVXJsID0gY2xhc3NpY0lmcmFtZVxuICAgICAgICAgID8gYGh0dHBzOi8vJHtkb21haW5OYW1lfS9ldWktdGVtcGxhdGUvY2xhc3NpY2BcbiAgICAgICAgICA6ICcnO1xuICAgICAgICBjb25zdCBuZXdDaGF0VXJsID0gY2hhdElmcmFtZVxuICAgICAgICAgID8gYGh0dHBzOi8vJHtkb21haW5OYW1lfS9ldWktdGVtcGxhdGUvY2hhdGBcbiAgICAgICAgICA6ICcnO1xuXG4gICAgICAgIHRoaXMuc3BvdGNoZWNrU3RhdGVTZXJ2aWNlLnNldFN0YXRlKHtcbiAgICAgICAgICBmaWx0ZXJlZFNwb3RDaGVja3M6IGRhdGEuZmlsdGVyZWRTcG90Q2hlY2tzLFxuICAgICAgICAgIGNsYXNzaWNVcmw6IG5ld0NsYXNzaWNVcmwsXG4gICAgICAgICAgY2hhdFVybDogbmV3Q2hhdFVybCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBpbml0aWFsaXppbmcgd2lkZ2V0OicsIEpTT04uc3RyaW5naWZ5KGVycm9yKSk7XG4gICAgfVxuICB9O1xufVxuIiwiPGRpdiBbbmdTdHlsZV09XCJjb21wb25lbnRTdHlsZXMud3JhcHBlclN0eWxlc1wiPlxuICA8ZGl2IFtuZ1N0eWxlXT1cImNvbXBvbmVudFN0eWxlcy5zdHlsZXNcIj5cbiAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlOyBoZWlnaHQ6IDEwMCU7XCI+XG4gICAgICA8c3BvdGNoZWNrLWNsb3NlLWJ1dHRvbiAvPlxuICBcbiAgICAgIDxXZWJWaWV3Q29tcG9uZW50XG4gICAgICAgICpuZ0lmPVwic3RhdGUuY2xhc3NpY1VybCAmJiBzdGF0ZS5jbGFzc2ljVXJsLmxlbmd0aCA+IDAgJiYgc3RhdGUuc3BvdGNoZWNrVVJMLmxlbmd0aCA+IDAgJiYgc3RhdGUuc3BvdENoZWNrVHlwZSA9PT0gJ2NsYXNzaWMnXCJcbiAgICAgICAgW3VybF09XCJzdGF0ZS5jbGFzc2ljVXJsXCJcbiAgICAgICAgW3dlYnZpZXdUeXBlXT1cIidjbGFzc2ljJ1wiXG4gICAgICAvPlxuICBcbiAgICAgIDxXZWJWaWV3Q29tcG9uZW50XG4gICAgICAgICpuZ0lmPVwic3RhdGUuY2hhdFVybCAmJiBzdGF0ZS5jaGF0VXJsLmxlbmd0aCA+IDAgJiYgc3RhdGUuc3BvdGNoZWNrVVJMLmxlbmd0aCA+IDAgJiYgc3RhdGUuc3BvdENoZWNrVHlwZSA9PT0gJ2NoYXQnXCJcbiAgICAgICAgW3VybF09XCJzdGF0ZS5jaGF0VXJsXCJcbiAgICAgICAgW3dlYnZpZXdUeXBlXT1cIidjaGF0J1wiXG4gICAgICAvPlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwic3RhdGUuc3BvdENoZWNrc01vZGUgPT09ICdtaW5pQ2FyZCcgJiYgc3RhdGUuYXZhdGFyRW5hYmxlZFwiPlxuICAgICAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBib3R0b206IC02NnB4OyBsZWZ0OiAxNnB4OyB6LWluZGV4OiAxMDAwMDE7XCI+XG4gICAgICAgICAgPGltZyBbc3JjXT1cImF2YXRhclVybFwiIHN0eWxlPVwid2lkdGg6IDU2cHg7IGhlaWdodDogNTZweDsgYm9yZGVyLXJhZGl1czogNTBweDsgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XCIvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|