capacitor-plugin-vonage 0.1.2 → 0.1.4
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/CapacitorPluginVonage.podspec +1 -0
- package/README.md +16 -0
- package/android/src/main/java/com/managemyhealth/plugin/vonage/VideoCallActivity.java +226 -307
- package/android/src/main/java/com/managemyhealth/plugin/vonage/vonagePlugin.java +32 -5
- package/android/src/main/res/drawable/circle_shape.xml +8 -8
- package/android/src/main/res/layout/custom_dialog_layout.xml +54 -0
- package/android/src/main/res/layout/custom_toast_green_layout.xml +1 -2
- package/android/src/main/res/layout/video_call_layout.xml +5 -0
- package/android/src/main/res/values/strings.xml +4 -0
- package/dist/docs.json +18 -0
- package/dist/esm/definitions.d.ts +3 -0
- package/dist/esm/definitions.js.map +1 -1
- package/dist/esm/web.d.ts +3 -0
- package/dist/esm/web.js +5 -0
- package/dist/esm/web.js.map +1 -1
- package/dist/plugin.cjs.js +5 -0
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +5 -0
- package/dist/plugin.js.map +1 -1
- package/ios/Plugin/CustomAlertViewController.swift +77 -0
- package/ios/Plugin/CustomAlertViewController.xib +137 -0
- package/ios/Plugin/VideoChatViewController.swift +43 -16
- package/ios/Plugin/vonagePlugin.m +1 -0
- package/ios/Plugin/vonagePlugin.swift +14 -1
- package/package.json +1 -1
@@ -50,8 +50,6 @@ public class vonagePlugin extends Plugin{
|
|
50
50
|
@PluginMethod(returnType = PluginMethod.RETURN_CALLBACK)
|
51
51
|
public void setPatientOnlineStatus(PluginCall call) {
|
52
52
|
final Boolean isOnline = call.getBoolean("isOnline");
|
53
|
-
showLog("isOnline");
|
54
|
-
showLog(isOnline.toString());
|
55
53
|
Handler mainHandler = new Handler(Looper.getMainLooper());
|
56
54
|
|
57
55
|
Runnable myRunnable = new Runnable() {
|
@@ -68,6 +66,28 @@ showLog(isOnline.toString());
|
|
68
66
|
};
|
69
67
|
mainHandler.post(myRunnable);
|
70
68
|
|
69
|
+
}
|
70
|
+
|
71
|
+
@PluginMethod(returnType = PluginMethod.RETURN_CALLBACK)
|
72
|
+
public void setSendNotificationStatus(PluginCall call){
|
73
|
+
|
74
|
+
final Boolean isSuccess = call.getBoolean("isSuccess");
|
75
|
+
Handler mainHandler = new Handler(Looper.getMainLooper());
|
76
|
+
|
77
|
+
Runnable myRunnable = new Runnable() {
|
78
|
+
@Override
|
79
|
+
public void run() {
|
80
|
+
try{
|
81
|
+
// VideoCallActivity temp = new VideoCallActivity();
|
82
|
+
VideoCallActivity.instance.showSentEmailtoast(isSuccess);
|
83
|
+
}catch (Exception e){
|
84
|
+
showLog("temp");
|
85
|
+
showLog(e.toString());
|
86
|
+
}
|
87
|
+
}
|
88
|
+
};
|
89
|
+
mainHandler.post(myRunnable);
|
90
|
+
|
71
91
|
}
|
72
92
|
@PluginMethod(returnType = PluginMethod.RETURN_CALLBACK)
|
73
93
|
public void endVideoCall(PluginCall call) {
|
@@ -120,10 +140,17 @@ showLog(isOnline.toString());
|
|
120
140
|
intent.putExtra("subscriberName", SUBSCRIBERNAME);
|
121
141
|
intent.putExtra("publisherName", PUBLISHERNAME);
|
122
142
|
intent.putExtra("isProvider", ISPROVIDER);
|
123
|
-
intent.putExtra("isPatientOnline",
|
143
|
+
intent.putExtra("isPatientOnline", true);
|
124
144
|
intent.putExtra("profilePicApiUrl", profilePicApiUrl);
|
125
|
-
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP)
|
126
|
-
|
145
|
+
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);//|Intent.FLAG_ACTIVITY_NEW_TASK
|
146
|
+
try {
|
147
|
+
showLog("try======");
|
148
|
+
showLog(getContext().getPackageName());
|
149
|
+
intent.setClassName(getContext().getPackageName(), "com.managemyhealth.plugin.vonage.VideoCallActivity");
|
150
|
+
}catch (Exception e){
|
151
|
+
showLog("e========");
|
152
|
+
showLog(e.toString());
|
153
|
+
}
|
127
154
|
|
128
155
|
Handler handler = new Handler();
|
129
156
|
int delayMillis = 2000;
|
@@ -1,9 +1,9 @@
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
2
|
-
<
|
3
|
-
|
4
|
-
<
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
</
|
2
|
+
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
|
3
|
+
<solid android:color="#ffffff" />
|
4
|
+
<corners
|
5
|
+
android:bottomLeftRadius="20dp"
|
6
|
+
android:bottomRightRadius="20dp"
|
7
|
+
android:topLeftRadius="20dp"
|
8
|
+
android:topRightRadius="20dp" />
|
9
|
+
</shape>
|
@@ -0,0 +1,54 @@
|
|
1
|
+
<!-- res/layout/custom_dialog_layout.xml -->
|
2
|
+
|
3
|
+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
4
|
+
android:id="@+id/alert"
|
5
|
+
android:layout_width="200dp"
|
6
|
+
android:layout_height="200dp"
|
7
|
+
android:orientation="vertical"
|
8
|
+
android:paddingBottom="15sp"
|
9
|
+
android:paddingTop="10sp"
|
10
|
+
android:background="@drawable/circle_shape"
|
11
|
+
android:gravity="center">
|
12
|
+
|
13
|
+
<TextView
|
14
|
+
android:id="@+id/dialogTitle"
|
15
|
+
android:layout_width="match_parent"
|
16
|
+
android:layout_height="wrap_content"
|
17
|
+
android:gravity="center"
|
18
|
+
android:text="@string/confirm"
|
19
|
+
android:textColor="#000000"
|
20
|
+
android:textSize="18sp"
|
21
|
+
android:textStyle="bold" />
|
22
|
+
|
23
|
+
<TextView
|
24
|
+
android:id="@+id/dialogMessage"
|
25
|
+
android:layout_width="match_parent"
|
26
|
+
android:layout_height="wrap_content"
|
27
|
+
android:textColor="#000000"
|
28
|
+
android:text="@string/deny_the_call"
|
29
|
+
android:layout_marginTop="8dp"
|
30
|
+
android:gravity="center"/>
|
31
|
+
|
32
|
+
<LinearLayout
|
33
|
+
android:layout_width="match_parent"
|
34
|
+
android:layout_height="wrap_content"
|
35
|
+
android:orientation="horizontal"
|
36
|
+
android:gravity="center"
|
37
|
+
android:layout_marginTop="16dp">
|
38
|
+
|
39
|
+
<Button
|
40
|
+
android:id="@+id/yesButton"
|
41
|
+
android:layout_width="80sp"
|
42
|
+
android:layout_height="32sp"
|
43
|
+
android:background="@drawable/button_background"
|
44
|
+
android:text="@string/yes"/>
|
45
|
+
|
46
|
+
<Button
|
47
|
+
android:id="@+id/noButton"
|
48
|
+
android:layout_width="80sp"
|
49
|
+
android:layout_height="32sp"
|
50
|
+
android:background="@drawable/button_background"
|
51
|
+
android:text="@string/no"
|
52
|
+
android:layout_marginStart="8dp"/>
|
53
|
+
</LinearLayout>
|
54
|
+
</LinearLayout>
|
@@ -4,7 +4,7 @@
|
|
4
4
|
android:layout_width="wrap_content"
|
5
5
|
android:layout_height="wrap_content"
|
6
6
|
android:orientation="vertical"
|
7
|
-
android:padding="
|
7
|
+
android:padding="16dp"
|
8
8
|
android:background="#0B6623">
|
9
9
|
|
10
10
|
<TextView
|
@@ -12,7 +12,6 @@
|
|
12
12
|
android:layout_width="wrap_content"
|
13
13
|
android:layout_height="wrap_content"
|
14
14
|
android:text="Custom Toast"
|
15
|
-
android:textSize="11sp"
|
16
15
|
android:textColor="#FFFFFF"
|
17
16
|
android:textStyle="bold"
|
18
17
|
android:layout_gravity="center_horizontal"/>
|
@@ -53,6 +53,11 @@
|
|
53
53
|
android:layout_width="fill_parent"
|
54
54
|
android:layout_height="match_parent"
|
55
55
|
android:background="#ffffff" />
|
56
|
+
<FrameLayout
|
57
|
+
android:id="@+id/subscriber_subcontainer"
|
58
|
+
android:layout_width="fill_parent"
|
59
|
+
android:layout_height="match_parent"
|
60
|
+
android:background="#ffffff" />
|
56
61
|
|
57
62
|
<TextView
|
58
63
|
android:id="@+id/publisherName"
|
@@ -6,4 +6,8 @@
|
|
6
6
|
<string name="sendvalue">SEND E-MAIL NOTIFICATION</string>
|
7
7
|
<string name="publisher_name">Publisher Name</string>
|
8
8
|
<string name="waiting">WAITING</string>
|
9
|
+
<string name="confirm">Confirm!</string>
|
10
|
+
<string name="deny_the_call">Do you want to deny the call?</string>
|
11
|
+
<string name="yes">Yes</string>
|
12
|
+
<string name="no">No</string>
|
9
13
|
</resources>
|
package/dist/docs.json
CHANGED
@@ -67,6 +67,24 @@
|
|
67
67
|
],
|
68
68
|
"slug": "setpatientonlinestatus"
|
69
69
|
},
|
70
|
+
{
|
71
|
+
"name": "setSendNotificationStatus",
|
72
|
+
"signature": "(options: Object) => Promise<{ value: any; }>",
|
73
|
+
"parameters": [
|
74
|
+
{
|
75
|
+
"name": "options",
|
76
|
+
"docs": "",
|
77
|
+
"type": "Object"
|
78
|
+
}
|
79
|
+
],
|
80
|
+
"returns": "Promise<{ value: any; }>",
|
81
|
+
"tags": [],
|
82
|
+
"docs": "",
|
83
|
+
"complexTypes": [
|
84
|
+
"Object"
|
85
|
+
],
|
86
|
+
"slug": "setsendnotificationstatus"
|
87
|
+
},
|
70
88
|
{
|
71
89
|
"name": "addListener",
|
72
90
|
"signature": "(...args: [eventName: \"VideoCallEnded\", listenerFunc: (info: any) => void] | [eventName: \"SendNotification\", listenerFunc: (info: any) => void] | [eventName: \"VideoCallStarted\", listenerFunc: (info: any) => void]) => Promise<PluginListenerHandle> & PluginListenerHandle",
|
@@ -14,5 +14,8 @@ export interface vonagePlugin {
|
|
14
14
|
setPatientOnlineStatus(options: Object): Promise<{
|
15
15
|
value: any;
|
16
16
|
}>;
|
17
|
+
setSendNotificationStatus(options: Object): Promise<{
|
18
|
+
value: any;
|
19
|
+
}>;
|
17
20
|
addListener(...args: [eventName: 'VideoCallEnded', listenerFunc: (info: any) => void] | [eventName: 'SendNotification', listenerFunc: (info: any) => void] | [eventName: 'VideoCallStarted', listenerFunc: (info: any) => void]): Promise<PluginListenerHandle> & PluginListenerHandle;
|
18
21
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["import { PluginListenerHandle } from \"@capacitor/core\";\n\nexport interface vonagePlugin {\n echo(options: { value: string }): Promise<{ value: string }>;\n openVideoCallWindow(options: Object): Promise<{ value: any }>;\n endVideoCall(): Promise<{ value: string }>;\n setPatientOnlineStatus(options: Object): Promise<{ value: any }>;\n addListener(...args: [eventName: 'VideoCallEnded', listenerFunc: (info: any) => void] | [eventName: 'SendNotification', listenerFunc: (info: any) => void] | [eventName: 'VideoCallStarted', listenerFunc: (info: any) => void]): Promise<PluginListenerHandle> & PluginListenerHandle;\n\n}\n"]}
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["import { PluginListenerHandle } from \"@capacitor/core\";\n\nexport interface vonagePlugin {\n echo(options: { value: string }): Promise<{ value: string }>;\n openVideoCallWindow(options: Object): Promise<{ value: any }>;\n endVideoCall(): Promise<{ value: string }>;\n setPatientOnlineStatus(options: Object): Promise<{ value: any }>;\n setSendNotificationStatus(options: Object): Promise<{ value: any }>;\n addListener(...args: [eventName: 'VideoCallEnded', listenerFunc: (info: any) => void] | [eventName: 'SendNotification', listenerFunc: (info: any) => void] | [eventName: 'VideoCallStarted', listenerFunc: (info: any) => void]): Promise<PluginListenerHandle> & PluginListenerHandle;\n\n}\n"]}
|
package/dist/esm/web.d.ts
CHANGED
package/dist/esm/web.js
CHANGED
@@ -18,5 +18,10 @@ export class vonageWeb extends WebPlugin {
|
|
18
18
|
console.log('setPatientOnlineStatus', options);
|
19
19
|
return dummyValue;
|
20
20
|
}
|
21
|
+
async setSendNotificationStatus(options) {
|
22
|
+
let dummyValue;
|
23
|
+
console.log('notificationSent', options);
|
24
|
+
return dummyValue;
|
25
|
+
}
|
21
26
|
}
|
22
27
|
//# sourceMappingURL=web.js.map
|
package/dist/esm/web.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,MAAM,OAAO,SAAU,SAAQ,SAAS;IACtC,YAAY;QACV,IAAI,UAAc,CAAC;QACnB,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,OAA0B;QACnC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7B,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,KAAK,CAAC,mBAAmB,CAAC,OAAe;QACvC,IAAI,UAAc,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,KAAK,CAAC,sBAAsB,CAAC,OAAe;QAC1C,IAAI,UAAc,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO,UAAU,CAAC;IACpB,CAAC;CACF","sourcesContent":["import { WebPlugin } from '@capacitor/core';\n\nimport type { vonagePlugin } from './definitions';\n\nexport class vonageWeb extends WebPlugin implements vonagePlugin {\n endVideoCall(): Promise<{ value: string; }> {\n let dummyValue:any;\n return dummyValue;\n }\n async echo(options: { value: string }): Promise<{ value: string }> {\n console.log('ECHO', options);\n return options;\n }\n async openVideoCallWindow(options: Object): Promise<{ value: any }>{\n let dummyValue:any;\n console.log('openVideoCallWindow', options);\n return dummyValue;\n }\n async setPatientOnlineStatus(options: Object): Promise<{ value: any }>{\n let dummyValue:any;\n console.log('setPatientOnlineStatus', options);\n return dummyValue;\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,MAAM,OAAO,SAAU,SAAQ,SAAS;IACtC,YAAY;QACV,IAAI,UAAc,CAAC;QACnB,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,OAA0B;QACnC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7B,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,KAAK,CAAC,mBAAmB,CAAC,OAAe;QACvC,IAAI,UAAc,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,KAAK,CAAC,sBAAsB,CAAC,OAAe;QAC1C,IAAI,UAAc,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,KAAK,CAAC,yBAAyB,CAAC,OAAe;QAC7C,IAAI,UAAc,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QACzC,OAAO,UAAU,CAAC;IACpB,CAAC;CACF","sourcesContent":["import { WebPlugin } from '@capacitor/core';\n\nimport type { vonagePlugin } from './definitions';\n\nexport class vonageWeb extends WebPlugin implements vonagePlugin {\n endVideoCall(): Promise<{ value: string; }> {\n let dummyValue:any;\n return dummyValue;\n }\n async echo(options: { value: string }): Promise<{ value: string }> {\n console.log('ECHO', options);\n return options;\n }\n async openVideoCallWindow(options: Object): Promise<{ value: any }>{\n let dummyValue:any;\n console.log('openVideoCallWindow', options);\n return dummyValue;\n }\n async setPatientOnlineStatus(options: Object): Promise<{ value: any }>{\n let dummyValue:any;\n console.log('setPatientOnlineStatus', options);\n return dummyValue;\n }\n async setSendNotificationStatus(options: Object): Promise<{ value: any }>{\n let dummyValue:any;\n console.log('notificationSent', options);\n return dummyValue;\n }\n}\n"]}
|
package/dist/plugin.cjs.js
CHANGED
@@ -27,6 +27,11 @@ class vonageWeb extends core.WebPlugin {
|
|
27
27
|
console.log('setPatientOnlineStatus', options);
|
28
28
|
return dummyValue;
|
29
29
|
}
|
30
|
+
async setSendNotificationStatus(options) {
|
31
|
+
let dummyValue;
|
32
|
+
console.log('notificationSent', options);
|
33
|
+
return dummyValue;
|
34
|
+
}
|
30
35
|
}
|
31
36
|
|
32
37
|
var web = /*#__PURE__*/Object.freeze({
|
package/dist/plugin.cjs.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst vonage = registerPlugin('vonage', {\n web: () => import('./web').then(m => new m.vonageWeb()),\n});\nexport * from './definitions';\nexport { vonage };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class vonageWeb extends WebPlugin {\n endVideoCall() {\n let dummyValue;\n return dummyValue;\n }\n async echo(options) {\n console.log('ECHO', options);\n return options;\n }\n async openVideoCallWindow(options) {\n let dummyValue;\n console.log('openVideoCallWindow', options);\n return dummyValue;\n }\n async setPatientOnlineStatus(options) {\n let dummyValue;\n console.log('setPatientOnlineStatus', options);\n return dummyValue;\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;;;;AACK,MAAC,MAAM,GAAGA,mBAAc,CAAC,QAAQ,EAAE;AACxC,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;AAC3D,CAAC;;ACFM,MAAM,SAAS,SAASC,cAAS,CAAC;AACzC,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,UAAU,CAAC;AACvB,QAAQ,OAAO,UAAU,CAAC;AAC1B,KAAK;AACL,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE;AACxB,QAAQ,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACrC,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,MAAM,mBAAmB,CAAC,OAAO,EAAE;AACvC,QAAQ,IAAI,UAAU,CAAC;AACvB,QAAQ,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;AACpD,QAAQ,OAAO,UAAU,CAAC;AAC1B,KAAK;AACL,IAAI,MAAM,sBAAsB,CAAC,OAAO,EAAE;AAC1C,QAAQ,IAAI,UAAU,CAAC;AACvB,QAAQ,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;AACvD,QAAQ,OAAO,UAAU,CAAC;AAC1B,KAAK;AACL;;;;;;;;;"}
|
1
|
+
{"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst vonage = registerPlugin('vonage', {\n web: () => import('./web').then(m => new m.vonageWeb()),\n});\nexport * from './definitions';\nexport { vonage };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class vonageWeb extends WebPlugin {\n endVideoCall() {\n let dummyValue;\n return dummyValue;\n }\n async echo(options) {\n console.log('ECHO', options);\n return options;\n }\n async openVideoCallWindow(options) {\n let dummyValue;\n console.log('openVideoCallWindow', options);\n return dummyValue;\n }\n async setPatientOnlineStatus(options) {\n let dummyValue;\n console.log('setPatientOnlineStatus', options);\n return dummyValue;\n }\n async setSendNotificationStatus(options) {\n let dummyValue;\n console.log('notificationSent', options);\n return dummyValue;\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;;;;AACK,MAAC,MAAM,GAAGA,mBAAc,CAAC,QAAQ,EAAE;AACxC,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;AAC3D,CAAC;;ACFM,MAAM,SAAS,SAASC,cAAS,CAAC;AACzC,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,UAAU,CAAC;AACvB,QAAQ,OAAO,UAAU,CAAC;AAC1B,KAAK;AACL,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE;AACxB,QAAQ,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACrC,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,MAAM,mBAAmB,CAAC,OAAO,EAAE;AACvC,QAAQ,IAAI,UAAU,CAAC;AACvB,QAAQ,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;AACpD,QAAQ,OAAO,UAAU,CAAC;AAC1B,KAAK;AACL,IAAI,MAAM,sBAAsB,CAAC,OAAO,EAAE;AAC1C,QAAQ,IAAI,UAAU,CAAC;AACvB,QAAQ,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;AACvD,QAAQ,OAAO,UAAU,CAAC;AAC1B,KAAK;AACL,IAAI,MAAM,yBAAyB,CAAC,OAAO,EAAE;AAC7C,QAAQ,IAAI,UAAU,CAAC;AACvB,QAAQ,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;AACjD,QAAQ,OAAO,UAAU,CAAC;AAC1B,KAAK;AACL;;;;;;;;;"}
|
package/dist/plugin.js
CHANGED
@@ -24,6 +24,11 @@ var capacitorvonage = (function (exports, core) {
|
|
24
24
|
console.log('setPatientOnlineStatus', options);
|
25
25
|
return dummyValue;
|
26
26
|
}
|
27
|
+
async setSendNotificationStatus(options) {
|
28
|
+
let dummyValue;
|
29
|
+
console.log('notificationSent', options);
|
30
|
+
return dummyValue;
|
31
|
+
}
|
27
32
|
}
|
28
33
|
|
29
34
|
var web = /*#__PURE__*/Object.freeze({
|
package/dist/plugin.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst vonage = registerPlugin('vonage', {\n web: () => import('./web').then(m => new m.vonageWeb()),\n});\nexport * from './definitions';\nexport { vonage };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class vonageWeb extends WebPlugin {\n endVideoCall() {\n let dummyValue;\n return dummyValue;\n }\n async echo(options) {\n console.log('ECHO', options);\n return options;\n }\n async openVideoCallWindow(options) {\n let dummyValue;\n console.log('openVideoCallWindow', options);\n return dummyValue;\n }\n async setPatientOnlineStatus(options) {\n let dummyValue;\n console.log('setPatientOnlineStatus', options);\n return dummyValue;\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;AACK,UAAC,MAAM,GAAGA,mBAAc,CAAC,QAAQ,EAAE;IACxC,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;IAC3D,CAAC;;ICFM,MAAM,SAAS,SAASC,cAAS,CAAC;IACzC,IAAI,YAAY,GAAG;IACnB,QAAQ,IAAI,UAAU,CAAC;IACvB,QAAQ,OAAO,UAAU,CAAC;IAC1B,KAAK;IACL,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE;IACxB,QAAQ,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,QAAQ,OAAO,OAAO,CAAC;IACvB,KAAK;IACL,IAAI,MAAM,mBAAmB,CAAC,OAAO,EAAE;IACvC,QAAQ,IAAI,UAAU,CAAC;IACvB,QAAQ,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;IACpD,QAAQ,OAAO,UAAU,CAAC;IAC1B,KAAK;IACL,IAAI,MAAM,sBAAsB,CAAC,OAAO,EAAE;IAC1C,QAAQ,IAAI,UAAU,CAAC;IACvB,QAAQ,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;IACvD,QAAQ,OAAO,UAAU,CAAC;IAC1B,KAAK;IACL;;;;;;;;;;;;;;;;;"}
|
1
|
+
{"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst vonage = registerPlugin('vonage', {\n web: () => import('./web').then(m => new m.vonageWeb()),\n});\nexport * from './definitions';\nexport { vonage };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class vonageWeb extends WebPlugin {\n endVideoCall() {\n let dummyValue;\n return dummyValue;\n }\n async echo(options) {\n console.log('ECHO', options);\n return options;\n }\n async openVideoCallWindow(options) {\n let dummyValue;\n console.log('openVideoCallWindow', options);\n return dummyValue;\n }\n async setPatientOnlineStatus(options) {\n let dummyValue;\n console.log('setPatientOnlineStatus', options);\n return dummyValue;\n }\n async setSendNotificationStatus(options) {\n let dummyValue;\n console.log('notificationSent', options);\n return dummyValue;\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;AACK,UAAC,MAAM,GAAGA,mBAAc,CAAC,QAAQ,EAAE;IACxC,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;IAC3D,CAAC;;ICFM,MAAM,SAAS,SAASC,cAAS,CAAC;IACzC,IAAI,YAAY,GAAG;IACnB,QAAQ,IAAI,UAAU,CAAC;IACvB,QAAQ,OAAO,UAAU,CAAC;IAC1B,KAAK;IACL,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE;IACxB,QAAQ,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,QAAQ,OAAO,OAAO,CAAC;IACvB,KAAK;IACL,IAAI,MAAM,mBAAmB,CAAC,OAAO,EAAE;IACvC,QAAQ,IAAI,UAAU,CAAC;IACvB,QAAQ,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;IACpD,QAAQ,OAAO,UAAU,CAAC;IAC1B,KAAK;IACL,IAAI,MAAM,sBAAsB,CAAC,OAAO,EAAE;IAC1C,QAAQ,IAAI,UAAU,CAAC;IACvB,QAAQ,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;IACvD,QAAQ,OAAO,UAAU,CAAC;IAC1B,KAAK;IACL,IAAI,MAAM,yBAAyB,CAAC,OAAO,EAAE;IAC7C,QAAQ,IAAI,UAAU,CAAC;IACvB,QAAQ,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACjD,QAAQ,OAAO,UAAU,CAAC;IAC1B,KAAK;IACL;;;;;;;;;;;;;;;;;"}
|
@@ -0,0 +1,77 @@
|
|
1
|
+
//
|
2
|
+
// CustomAlertViewController.swift
|
3
|
+
// Plugin
|
4
|
+
//
|
5
|
+
// Created by inlusr1 on 13/01/24.
|
6
|
+
// Copyright © 2024 Max Lynch. All rights reserved.
|
7
|
+
//
|
8
|
+
|
9
|
+
import UIKit
|
10
|
+
|
11
|
+
class CustomAlertViewController: UIViewController {
|
12
|
+
@IBOutlet weak var btn_No: UIButton!
|
13
|
+
|
14
|
+
@IBOutlet weak var btn_Yes: UIButton!
|
15
|
+
|
16
|
+
@IBOutlet weak var contentView: UIView!
|
17
|
+
|
18
|
+
weak var delegate:CustomeAlertDelegate?
|
19
|
+
override func viewDidLoad() {
|
20
|
+
super.viewDidLoad()
|
21
|
+
btn_No.backgroundColor = UIColor(hex: "#DFF6ED")
|
22
|
+
btn_No.layer.borderColor = UIColor(hex: "#60D2A7").cgColor
|
23
|
+
btn_No.layer.borderWidth = 2
|
24
|
+
btn_No.layer.cornerRadius = 10
|
25
|
+
|
26
|
+
btn_Yes.backgroundColor = UIColor(hex: "#DFF6ED")
|
27
|
+
btn_Yes.layer.borderColor = UIColor(hex: "#60D2A7").cgColor
|
28
|
+
btn_Yes.layer.borderWidth = 2
|
29
|
+
btn_Yes.layer.cornerRadius = 10
|
30
|
+
|
31
|
+
contentView.layer.cornerRadius = 10
|
32
|
+
// Do any additional setup after loading the view.
|
33
|
+
}
|
34
|
+
required init?(coder aDecoder: NSCoder) {
|
35
|
+
super.init(coder: aDecoder)
|
36
|
+
|
37
|
+
}
|
38
|
+
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
|
39
|
+
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
|
40
|
+
}
|
41
|
+
func show() {
|
42
|
+
if #available(iOS 13, *) {
|
43
|
+
UIApplication.shared.windows.first?.rootViewController?.present(self, animated: true, completion: nil)
|
44
|
+
} else {
|
45
|
+
UIApplication.shared.keyWindow?.rootViewController!.present(self, animated: true, completion: nil)
|
46
|
+
}
|
47
|
+
}
|
48
|
+
@IBAction func yesBtnAction(_ sender: UIButton) {
|
49
|
+
|
50
|
+
self.dismiss(animated: true, completion: nil)
|
51
|
+
delegate?.btnYesClicked()
|
52
|
+
}
|
53
|
+
@IBAction func noBtnAction(_ sender: UIButton) {
|
54
|
+
self.dismiss(animated: true, completion: nil)
|
55
|
+
}
|
56
|
+
/*
|
57
|
+
// MARK: - Navigation
|
58
|
+
|
59
|
+
// In a storyboard-based application, you will often want to do a little preparation before navigation
|
60
|
+
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
|
61
|
+
// Get the new view controller using segue.destination.
|
62
|
+
// Pass the selected object to the new view controller.
|
63
|
+
}
|
64
|
+
*/
|
65
|
+
|
66
|
+
}
|
67
|
+
|
68
|
+
//
|
69
|
+
//extension UIViewController {
|
70
|
+
// static func loadFromNib() -> Self {
|
71
|
+
// func instantiateFromNib<T: UIViewController>() -> T {
|
72
|
+
// return T.init(nibName: String(describing: T.self), bundle: Bundle(for: ViewController.self))
|
73
|
+
// }
|
74
|
+
//
|
75
|
+
// return instantiateFromNib()
|
76
|
+
// }
|
77
|
+
//}
|
@@ -0,0 +1,137 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
|
3
|
+
<device id="retina6_7" orientation="portrait" appearance="light"/>
|
4
|
+
<dependencies>
|
5
|
+
<deployment identifier="iOS"/>
|
6
|
+
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21505"/>
|
7
|
+
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
8
|
+
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
9
|
+
</dependencies>
|
10
|
+
<objects>
|
11
|
+
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CustomAlertViewController" customModule="CapacitorPluginVonage" customModuleProvider="target">
|
12
|
+
<connections>
|
13
|
+
<outlet property="btn_No" destination="wz9-fV-46s" id="MVg-5t-NXE"/>
|
14
|
+
<outlet property="btn_Yes" destination="jzr-5X-R4L" id="MjZ-q3-JnG"/>
|
15
|
+
<outlet property="contentView" destination="LkS-9N-XT8" id="YnN-a1-JQS"/>
|
16
|
+
<outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
|
17
|
+
</connections>
|
18
|
+
</placeholder>
|
19
|
+
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
20
|
+
<view contentMode="scaleToFill" id="i5M-Pr-FkT">
|
21
|
+
<rect key="frame" x="0.0" y="0.0" width="428" height="926"/>
|
22
|
+
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
23
|
+
<subviews>
|
24
|
+
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LkS-9N-XT8">
|
25
|
+
<rect key="frame" x="40" y="388" width="348" height="150"/>
|
26
|
+
<subviews>
|
27
|
+
<label opaque="NO" clearsContextBeforeDrawing="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Confirm" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="R4h-qn-drL">
|
28
|
+
<rect key="frame" x="0.0" y="9.9999999999999982" width="348" height="19.333333333333329"/>
|
29
|
+
<fontDescription key="fontDescription" type="boldSystem" pointSize="16"/>
|
30
|
+
<nil key="textColor"/>
|
31
|
+
<variation key="heightClass=regular-widthClass=regular">
|
32
|
+
<fontDescription key="fontDescription" type="boldSystem" pointSize="20"/>
|
33
|
+
</variation>
|
34
|
+
</label>
|
35
|
+
<label opaque="NO" clearsContextBeforeDrawing="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Do you want to deny the call?" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Je5-qG-cBv">
|
36
|
+
<rect key="frame" x="0.0" y="39.333333333333314" width="348" height="19.333333333333329"/>
|
37
|
+
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
38
|
+
<nil key="textColor"/>
|
39
|
+
<nil key="highlightedColor"/>
|
40
|
+
<variation key="heightClass=regular-widthClass=regular">
|
41
|
+
<fontDescription key="fontDescription" type="system" pointSize="20"/>
|
42
|
+
</variation>
|
43
|
+
</label>
|
44
|
+
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="lCt-86-zUw">
|
45
|
+
<rect key="frame" x="64" y="90" width="220" height="40"/>
|
46
|
+
<subviews>
|
47
|
+
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="jzr-5X-R4L">
|
48
|
+
<rect key="frame" x="0.0" y="0.0" width="100" height="40"/>
|
49
|
+
<color key="backgroundColor" red="0.87450980389999999" green="0.96470588239999999" blue="0.92941176469999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
50
|
+
<constraints>
|
51
|
+
<constraint firstAttribute="width" constant="100" id="63L-aR-5zd"/>
|
52
|
+
<constraint firstAttribute="height" constant="40" id="cbC-tz-4po"/>
|
53
|
+
</constraints>
|
54
|
+
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
|
55
|
+
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
|
56
|
+
<state key="normal" title="Yes">
|
57
|
+
<color key="titleColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
58
|
+
</state>
|
59
|
+
<userDefinedRuntimeAttributes>
|
60
|
+
<userDefinedRuntimeAttribute type="color" keyPath="layer.borderColor">
|
61
|
+
<color key="value" red="0.37647058820000001" green="0.82352941180000006" blue="0.65490196079999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
62
|
+
</userDefinedRuntimeAttribute>
|
63
|
+
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
64
|
+
<integer key="value" value="10"/>
|
65
|
+
</userDefinedRuntimeAttribute>
|
66
|
+
<userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
|
67
|
+
<integer key="value" value="2"/>
|
68
|
+
</userDefinedRuntimeAttribute>
|
69
|
+
</userDefinedRuntimeAttributes>
|
70
|
+
<variation key="heightClass=regular-widthClass=regular">
|
71
|
+
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="20"/>
|
72
|
+
</variation>
|
73
|
+
<connections>
|
74
|
+
<action selector="yesBtnAction:" destination="-1" eventType="touchUpInside" id="HRj-ZH-FEW"/>
|
75
|
+
</connections>
|
76
|
+
</button>
|
77
|
+
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="wz9-fV-46s">
|
78
|
+
<rect key="frame" x="120" y="0.0" width="100" height="40"/>
|
79
|
+
<color key="backgroundColor" red="0.87450980389999999" green="0.96470588239999999" blue="0.92941176469999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
80
|
+
<constraints>
|
81
|
+
<constraint firstAttribute="width" constant="100" id="HU9-5I-LFZ"/>
|
82
|
+
</constraints>
|
83
|
+
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
|
84
|
+
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
|
85
|
+
<state key="normal" title="No">
|
86
|
+
<color key="titleColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
87
|
+
</state>
|
88
|
+
<userDefinedRuntimeAttributes>
|
89
|
+
<userDefinedRuntimeAttribute type="color" keyPath="layer.borderColor">
|
90
|
+
<color key="value" red="0.37647058820000001" green="0.82352941180000006" blue="0.65490196079999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
91
|
+
</userDefinedRuntimeAttribute>
|
92
|
+
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
93
|
+
<integer key="value" value="10"/>
|
94
|
+
</userDefinedRuntimeAttribute>
|
95
|
+
<userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
|
96
|
+
<integer key="value" value="2"/>
|
97
|
+
</userDefinedRuntimeAttribute>
|
98
|
+
</userDefinedRuntimeAttributes>
|
99
|
+
<variation key="heightClass=regular-widthClass=regular">
|
100
|
+
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="20"/>
|
101
|
+
</variation>
|
102
|
+
<connections>
|
103
|
+
<action selector="noBtnAction:" destination="-1" eventType="touchUpInside" id="X1y-v7-a1O"/>
|
104
|
+
</connections>
|
105
|
+
</button>
|
106
|
+
</subviews>
|
107
|
+
</stackView>
|
108
|
+
</subviews>
|
109
|
+
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
110
|
+
<constraints>
|
111
|
+
<constraint firstAttribute="height" constant="150" id="FbN-U5-psC"/>
|
112
|
+
<constraint firstItem="R4h-qn-drL" firstAttribute="leading" secondItem="LkS-9N-XT8" secondAttribute="leading" id="G0S-ZZ-sIw"/>
|
113
|
+
<constraint firstItem="Je5-qG-cBv" firstAttribute="top" secondItem="R4h-qn-drL" secondAttribute="bottom" constant="10" id="JoU-Ok-Vxj"/>
|
114
|
+
<constraint firstItem="lCt-86-zUw" firstAttribute="centerX" secondItem="LkS-9N-XT8" secondAttribute="centerX" id="MIJ-TW-zHh"/>
|
115
|
+
<constraint firstItem="Je5-qG-cBv" firstAttribute="leading" secondItem="LkS-9N-XT8" secondAttribute="leading" id="SoS-vf-47Q"/>
|
116
|
+
<constraint firstAttribute="trailing" secondItem="R4h-qn-drL" secondAttribute="trailing" id="ZTZ-Ya-N4J"/>
|
117
|
+
<constraint firstItem="R4h-qn-drL" firstAttribute="top" secondItem="LkS-9N-XT8" secondAttribute="top" constant="10" id="cO8-0B-bSw"/>
|
118
|
+
<constraint firstAttribute="bottom" secondItem="lCt-86-zUw" secondAttribute="bottom" constant="20" id="kfL-Or-EC9"/>
|
119
|
+
<constraint firstAttribute="trailing" secondItem="Je5-qG-cBv" secondAttribute="trailing" id="xZy-1U-NYM"/>
|
120
|
+
</constraints>
|
121
|
+
</view>
|
122
|
+
</subviews>
|
123
|
+
<viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
|
124
|
+
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
125
|
+
<constraints>
|
126
|
+
<constraint firstItem="LkS-9N-XT8" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" constant="40" id="B9b-ug-PnU">
|
127
|
+
<variation key="heightClass=regular-widthClass=regular" constant="150"/>
|
128
|
+
</constraint>
|
129
|
+
<constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="LkS-9N-XT8" secondAttribute="trailing" constant="40" id="D5r-tA-RV1">
|
130
|
+
<variation key="heightClass=regular-widthClass=regular" constant="150"/>
|
131
|
+
</constraint>
|
132
|
+
<constraint firstItem="LkS-9N-XT8" firstAttribute="centerY" secondItem="i5M-Pr-FkT" secondAttribute="centerY" id="dUH-p8-GhC"/>
|
133
|
+
</constraints>
|
134
|
+
<point key="canvasLocation" x="-5.343511450381679" y="20.422535211267608"/>
|
135
|
+
</view>
|
136
|
+
</objects>
|
137
|
+
</document>
|