Browse Source

refactor docs to typescript

matrixbirds 5 years ago
parent
commit
93a6956f11

+ 1
- 179
README.md View File

@@ -53,177 +53,7 @@ Either way, then link with:
53 53
   [English](https://docs.agora.io/en/Video/API%20Reference/oc/docs/headers/Agora-Objective-C-API-Overview.html)
54 54
 
55 55
 
56
-#### RtcEngine Methods
57
-
58
-| Method Name | Parameters  | Description  |
59
-| -------------------------------- | ---------------------------------------- | ------------------------------------- |
60
-| init | [Option](#Option) | create and initialize AgoraRtcEngine instance, notice: invoke this method, it will start subscribe events |
61
-| Promise<any> joinChannel | String channelName, Number uid, String? token, String? extraInfo | join channel|
62
-| on | String: [EventType](#Events), Handler: Function | addEventListener for native module events |
63
-| off | String: [EventType](#Events) | removeEventListeners for native module events |
64
-| removeAllListeners | void | remove all event listeners |
65
-| destroy | void | destroy AgoraRtcEngine instance |
66
-| getSdkVersion | Function: callback | get sdk version |
67
-| Promise<any> enableLastmileTest | void | enable network quality test |
68
-| Promise<any> disableLastmileTest | void | disable network quality test |
69
-| Promise<any> leaveChannel | void | quit channel |
70
-| setupLocalVideo | Number: uid, Number: renderMode, Number: reactTag | setup local video |
71
-| setupRemoteVideo | Number: uid, Number: renderMode, Number: reactTag | setup remote video |
72
-| startPreview | void | open video preview |
73
-| stopPreview | void | close video preview |
74
-| setLiveTranscoding | [LiveTranscoding](#LiveTranscoding) | start live trancoding |
75
-| setLocalRenderMode | Number: mode | set local video render mode  |
76
-| setRemoteRenderMode | Number: uid, Number: mode | set remote video render mode |
77
-| enableAudioVolumeIndication | Number: interval, Number smooth | enable speaker volume notification|
78
-| Promise<any> switchCamera | void | switch mobile camera |
79
-| enableVideo | void | enable video  |
80
-| disableVideo | void | disable video |
81
-| setEnableSpeakerphone | Boolean: enabled | set enable speaker phone |
82
-| Promise<any> setCameraAutoFocusFaceModeEnabled | Boolean: enabled | set camera auto focus face mode |
83
-| setDefaultAudioRouteToSpeakerphone | Boolean: enabled | set default audio route to speaker phone |
84
-| Promise<any> setCameraTorchOn  | Boolean: enabled | set camera torch on |
85
-| muteLocalAudioStream  | Boolean: enabled | mute/unmute local audio |
86
-| muteRemoteAudioStream  | Number: uid, Boolean: enabled | mute/unmute remote audio by uid |
87
-| muteAllRemoteAudioStreams | Boolean: enabled | mute/unmute all remote audio |
88
-| muteLocalVideoStream  | Boolean: enabled | mute/unmute local video stream |
89
-| enableLocalVideo | Boolean: enabled | set enabled status to local video |
90
-| muteAllRemoteVideoStreams | void | mute/unmute all remote videos |
91
-| muteRemoteVideoStream | Number: uid, Boolean: enabled | mute/unmute remote video by uid |
92
-| Promise<any> createDataStream | Boolean: reliable, Boolean: ordered | createDataStream |
93
-| Promise<any> renewToken | String: token | renew token |
94
-| Promise<any> getConnectionState | void | return connection state |
95
-| setClientRole | Number: role(1: host, 2: audience) | change client role |
96
-| enableAudio | void | enable audio |
97
-| disableAudio | void | disable audio |
98
-| enableLocalAudio | Boolean: enable | enable/disable local audio |
99
-| muteLocalAudioStream | Boolean: mute | enable/disable local audio stream |
100
-| muteAllRemoteAudioStreams | Boolean: mute | enable/disable all remote audio streams |
101
-| muteRemoteAudioStream | Number: uid, Boolean: mute | mute/unmute remote audio stream by uid |
102
-| adjustRecordingSignalVolume | Number: volume | Adjusts the recording volume. |
103
-| adjustPlaybackSignalVolume | Number: volume | Adjusts the playback volume. |
104
-| enableAudioVolumeIndication | Number: interval, Number: smooth | Enables the onAudioVolumeIndication callback at a set time interval to report on which users are speaking and the speakers' volume. |
105
-| Promise<any> startAudioRecording | {filePath: String, quality: int} | start audio recording |
106
-| Promise<any> stopAudioRecoding | void | stop audio recording |
107
-| methodisSpeakerphoneEnabled | void | Checks whether the speakerphone is enabled.|| enableInEarMonitoring | Boolean: enabled | enable/disable in-ear monitoring | 
108
-| setInEarMonitoringVolume | Number: volume | Sets the volume of the in-ear monitor. |
109
-| setLocalVoicePitch | Number(double): pitch | Changes the voice pitch of the local speaker. |
110
-| setLocalVoiceEqualization | Number: bandFrequency, Number: bandGain | Sets the local voice equalization effect. |
111
-| setLocalVoiceReverb | Number: reverbKey, Number: value | Sets the local voice reverberation.|
112
-| startAudioMixing | {filepath: String, loopback: Boolean, replace: Boolean, cycle: Int} | [android](https://docs.agora.io/en/Video/API%20Reference/java/classio_1_1agora_1_1rtc_1_1_rtc_engine.html#ac56ceea1a143a4898382bce10b04df09) & [ios](https://docs.agora.io/en/Voice/API%20Reference/oc/Classes/AgoraRtcEngineKit.html#//api/name/startAudioMixing:loopback:replace:cycle:) |
113
- | stopAudioMixing | void | stop audio mixing |
114
- | pauseAudioMixing | void | [android](https://docs.agora.io/en/Video/API%20Reference/java/classio_1_1agora_1_1rtc_1_1_rtc_engine.html#ab2d4fb72ec3031f59da72b55857e0da7) & [ios](https://docs.agora.io/en/Voice/API%20Reference/oc/Classes/AgoraRtcEngineKit.html#//api/name/pauseAudioMixing) |
115
- | resumeAudioMixing | void | resume audio mixing |
116
- | adjustAudioMixingVolume | Number: volume | adjust audio mixing volume, call this method when you are in a channel |
117
- | adjustAudioMixingPlayoutVolume | Number: volume | adjust audio mixing playout volume, call this method when you are in a channel |
118
- | adjustAudioMixingPublishVolume | Number: volume | Adjusts the volume of audio mixing for publishing (sending to other users). call this method when you are in a channel. |
119
- | Promise<any> getAudioMixingDuration | void | Gets the duration (ms) of the music file. Call this method when you are in a channel. |
120
- | Promise<any> getAudioMixingCurrentPosition | void | Gets the playback position (ms) of the music file. Call this method when you are in a channel. |
121
- | Promise<any> setAudioMixingPosition | Number: pos | Sets the playback position (ms) of the music file to a different starting position (the default plays from the beginning). |
122
- | Promise<any> getEffectsVolume | void | Retrieves the volume of the audio effects. |
123
- | Promise<any> setEffectsVolume | Number(double): volume | Sets the volume of the audio effects. |
124
- | Promise<any> setVolumeOfEffect | Number: soundId, Number(double): volume | Sets the volume of a specified audio effect. |
125
- | Promise<any> playEffect | {soundId: Number, filePath: String, loopCount: Number, pitch: Number(double), gain: Boolean, publish: Boolean} | Plays a specified audio effect. [android](https://docs.agora.io/en/Video/API%20Reference/java/interfaceio_1_1agora_1_1rtc_1_1_i_audio_effect_manager.html#a6fd330db3e3e5735f7f8d5c36bc3fea1) & [ios](https://docs.agora.io/en/Voice/API%20Reference/oc/Classes/AgoraRtcEngineKit.html#//api/name/playEffect:filePath:loopCount:pitch:pan:gain:publish:) |
126
- | Promise<any> stopEffect | Number: soundId | Stops playing a specified audio effect. |
127
- | Promise<any> stopAllEffects | void | Stops all playing audio effects. |
128
- | Promise<any> preloadEffect | Number: soundid, String: filepath | Preloads a specified audio effect file into the memory. Supported audio formats: mp3, aac, m4a, 3gp, wav.|
129
- | Promise<any> unloadEffect | Number: soundId | Releases a specified preloaded audio effect from the memory. |
130
- | Promise<any> pauseEffect | Number: soundId | Pauses a specified audio effect. |
131
- | Promise<any> pauseAllEffects | void | Pauses all audio effects. |
132
- | Promise<any> resumeEffect | void | Resumes playing a specified audio effect. |
133
- | Promise<any> resumeAllEffects | void | Resumes playing all audio effects. |
134
- | setAudioSessionOperationRestriction | void | [ios only](https://docs.agora.io/en/Voice/API%20Reference/oc/Classes/AgoraRtcEngineKit.html#//api/name/setAudioSessionOperationRestriction:) |
135
- | Promise<any> startEchoTest | void | Starts an audio call test. |
136
- | Promise<any> stopEchoTest | void | Stop the audio call test. |
137
- | Promise<any> setRecordingAudioFrameParameters | {sampleRate: Number, channel: Number, mode: Number, samplesPerCall: Number } | Sets the audio recording format for the RecordFrame callback.  |
138
- | Promise<any> setPlaybackAudioFrameParameters | {sampleRate: Number, channel: Number, mode: Number, samplesPerCall: Number } | Sets the audio playback format for the onPlaybackFrame callback. |
139
- | Promise<any> addVideoWatermark | {url: String, x: Number, y: Number, width: Number, height: Number } | add video watermark |
140
- | clearVideoWatermarks | void | remove the watermark image from the video stream added by addVideoWatermark |
141
- | setLocalPublishFallbackOption | Number: [option(0, 1, 2)](https://docs.agora.io/en/Video/API%20Reference/java/classio_1_1agora_1_1rtc_1_1_constants.html#a3e453c93766e783a7e5eca05b1776238)| [android](https://docs.agora.io/en/Video/API%20Reference/java/classio_1_1agora_1_1rtc_1_1_rtc_engine.html#ac8c08e79844a4e62e0670553484cbe90) & [ios](https://docs.agora.io/en/Voice/API%20Reference/oc/Classes/AgoraRtcEngineKit.html#//api/name/setLocalPublishFallbackOption:) |
142
- | setRemoteSubscribeFallbackOption  | Number: [option (0, 1, 2)](https://docs.agora.io/en/Video/API%20Reference/java/classio_1_1agora_1_1rtc_1_1_constants.html#a3e453c93766e783a7e5eca05b1776238)| [android](https://docs.agora.io/en/Video/API%20Reference/java/classio_1_1agora_1_1rtc_1_1_rtc_engine.html#af64301ea1788dad0561aa678f3fe6ad3) & [ios](https://docs.agora.io/en/Voice/API%20Reference/oc/Classes/AgoraRtcEngineKit.html#//api/name/setRemoteSubscribeFallbackOption:) |
143
- | Promise<any> enableDualStreamMode | Boolean: enabled | Enables/disables dual-stream mode. |
144
- | setRemoteVideoStreamType | { uid: Number, streamType: Number } | Sets the video stream type of the remotely subscribed video stream. |
145
- | setRemoteDefaultVideoStreamType | { streamType: Number } | Sets the default video stream type of the remotely subscribed video stream. |
146
- | Promise<any> addInjectStreamUrl | [InjectionStream](#InjectionStream) | Injects an online media stream to a live broadcast. |
147
- | Promise<any> removePublishStreamUrl | String: url | Removes a CDN live stream URL address. |
148
- | Promise<any> setVideoQualityParameters | Boolean: quality | 
149
-Sets the preference option for the video quality (Live broadcast only). |
150
- | Promise<any> setLocalVideoMirrorMode | Number: mode | Sets the local video mirror mode. |
151
- | Promise<any> switchCamera | void | Switches between front and rear cameras. | 
152
- | Promise<any> isCameraZoomSupported | void | Checks whether the camera zoom function is supported. |
153
- | Promise<any> isCameraTorchSupported	| void | Checks whether the camera flash function is supported. |
154
- | Promise<any> isCameraFocusSupported	| void | Checks whether the camera manual focus function is supported. |
155
- | Promise<any> isCameraExposurePositionSupported | void |Checks whether the camera exposure function is supported. |
156
- | Promise<any> isCameraAutoFocusFaceModeSupported | void | Checks whether the camera face auto-focus function is supported. |
157
- | Promise<any> setCameraZoomFactor | Number(float): zoomFactor |	Sets the camera zoom ratio. |
158
- | Promise<any> getCameraMaxZoomFactor | void |	Gets the maximum zoom ratio of the camera.[android only](https://docs.agora.io/en/Video/API%20Reference/java/classio_1_1agora_1_1rtc_1_1_rtc_engine.html#a1084b42001cc5c008d58ec938fc0b7f3) |
159
- | Promise<any>  setCameraFocusPositionInPreview | {x: Number(double), y: Number(double) } | Sets the camera manual focus position.|
160
- | Promise<any>  setCameraExposurePosition | {x: Number(double), y: Number(double) } |	Sets the camera exposure position.|
161
- | Promise<any>  setCameraTorchOn | Boolean isOn | Enables the camera flash function. |
162
- | Promise<any>  setCameraAutoFocusFaceModeEnabled | Boolean enabled | Enables the camera auto-face focus function. |
163
- | Promise<any> getCallId | void | getcalll id |
164
- | Promise<any> setLog | filePath: String, level: Number | specifies an SDK output log file. |
165
- | addPublishStreamUrl | { url: String, enabled: Boolean } | Adds a CDN live stream URL address. it must be invoked after invoking setLiveTranscoding |
166
- | removePublishStreamUrl | { url: String } | Removes a CDN live stream URL address. |
167
-
168
-#### Option
169
-```typescript
170
-export interface Option {
171
-  appid: String,
172
-  videoProfile: number
173
-  channelProfile: number,
174
-  videoEncoderConfig: VideoEncoderConfig,
175
-  clientRole: number,
176
-  audioProfile: number,
177
-  audioScenario: number
178
-}
179
-
180
-export interface VideoEncoderConfig {
181
-  width: number,
182
-  height: number,
183
-  bitrate: number,
184
-  frameRate: number,
185
-  orientationMode: number,
186
-}
187
-```
188
-
189
-#### LiveTranscoding
190
-```typescript
191
-export interface LiveTranscoding {
192
-  size: Size,
193
-  videoBitrate: number,
194
-  videoFramerate: number,
195
-  lowLatency: boolean,
196
-  videoGop: number,
197
-  videoCodecProfile: number,
198
-  transcodingUsers: Array<TranscodingUser>,
199
-  transcodingExtraInfo: string,
200
-  watermark: BackgroundImage,
201
-  backgroundImage: BackgroundImage,
202
-  backgroundColor: Color,
203
-  audioSampleRate: number,
204
-  audioBitrate: number,
205
-  audioChannels: number,
206
-}
207
-```
208
-
209
-
210
-#### InjectionStream
211
-```typescript
212
-export interface InjectionStream {
213
-  config: {
214
-    size: {
215
-      width: Number,
216
-      height: Number,
217
-    },
218
-    videoGop: Number,
219
-    videoBitrate: Number,
220
-    audioBitrate: Number,
221
-    audioSampleRate: Number,
222
-    videoFrameRate: Number
223
-    audioChannels: Number
224
-  }
225
-}
226
-```
56
+## [API DOCS](./docs/api/globals.html)
227 57
 
228 58
 #### Events
229 59
 
@@ -290,14 +120,6 @@ RtcEngine.on('eventName', (data) => {
290 120
 | mediaEngineLoaded | Occurs when the media engine is loaded. | all |
291 121
 | mediaEngineStartCall | Occurs when the media engine starts. | all |
292 122
 
293
-#### AgoraView Component
294
-
295
-| Name           | Description          |
296
-| -------------- | -------------------- |
297
-| showLocalVideo | boolean: (true | false) enable/disable video view  | 
298
-| remoteUid      | uid for remote |
299
-| zOrderMediaOverlay (Android only)      | enable zorder to media overlay |
300
-
301 123
 ## Resources
302 124
 * Complete [API documentation](https://docs.agora.io/en/) at the Developer Center
303 125
 * [File bugs about this sample](https://github.com/syanbo/react-native-agora/issues)

+ 10
- 10
android/src/main/java/com/syan/agora/AgoraModule.java View File

@@ -967,7 +967,7 @@ public class AgoraModule extends ReactContextBaseJavaModule {
967 967
                 @Override
968 968
                 public void run() {
969 969
                     WritableMap map = Arguments.createMap();
970
-                    map.putInt("soundId", soundId);
970
+                    map.putInt("soundid", soundId);
971 971
                     sendEvent(getReactApplicationContext(), AGAudioEffectFinish, map);
972 972
                 }
973 973
             });
@@ -1769,7 +1769,7 @@ public class AgoraModule extends ReactContextBaseJavaModule {
1769 1769
         try {
1770 1770
             int res = AgoraManager.getInstance().mRtcEngine
1771 1771
                     .startAudioRecording(
1772
-                            options.getString("filePath"),
1772
+                            options.getString("filepath"),
1773 1773
                             options.getInt("quality")
1774 1774
                     );
1775 1775
             if (res != 0) throw new ReactNativeAgoraException("startAudioRecording Failed", res);
@@ -1858,7 +1858,7 @@ public class AgoraModule extends ReactContextBaseJavaModule {
1858 1858
     }
1859 1859
 
1860 1860
     @ReactMethod
1861
-    public void setRecordingAudioFrameParameters(WritableMap options, Promise promise) {
1861
+    public void setRecordingAudioFrameParameters(ReadableMap options, Promise promise) {
1862 1862
         try {
1863 1863
             int res = AgoraManager.getInstance().mRtcEngine
1864 1864
                     .setRecordingAudioFrameParameters(
@@ -1878,7 +1878,7 @@ public class AgoraModule extends ReactContextBaseJavaModule {
1878 1878
     }
1879 1879
 
1880 1880
     @ReactMethod
1881
-    public void setPlaybackAudioFrameParameters(WritableMap options, Promise promise) {
1881
+    public void setPlaybackAudioFrameParameters(ReadableMap options, Promise promise) {
1882 1882
         try {
1883 1883
             int res = AgoraManager.getInstance().mRtcEngine
1884 1884
                     .setPlaybackAudioFrameParameters(
@@ -1926,7 +1926,7 @@ public class AgoraModule extends ReactContextBaseJavaModule {
1926 1926
     }
1927 1927
 
1928 1928
     @ReactMethod
1929
-    public void addVideoWatermark(WritableMap options, Promise promise) {
1929
+    public void addVideoWatermark(ReadableMap options, Promise promise) {
1930 1930
         try {
1931 1931
             int res = AgoraManager.getInstance().mRtcEngine
1932 1932
                     .addVideoWatermark(createAgoraImage(options));
@@ -2309,9 +2309,9 @@ public class AgoraModule extends ReactContextBaseJavaModule {
2309 2309
         try {
2310 2310
             IAudioEffectManager manager = AgoraManager.getInstance().mRtcEngine.getAudioEffectManager();
2311 2311
             int res = manager.playEffect(
2312
-                    options.getInt("soundId"),
2313
-                    options.getString("filePath"),
2314
-                    options.getInt("loopCount"),
2312
+                    options.getInt("soundid"),
2313
+                    options.getString("filepath"),
2314
+                    options.getInt("loopcount"),
2315 2315
                     options.getDouble("pitch"),
2316 2316
                     options.getDouble("pan"),
2317 2317
                     options.getDouble("gain"),
@@ -2448,13 +2448,13 @@ public class AgoraModule extends ReactContextBaseJavaModule {
2448 2448
         }
2449 2449
     }
2450 2450
 
2451
-    //设置本地视频显示模式
2451
+    // set local video render mode
2452 2452
     @ReactMethod
2453 2453
     public void setLocalRenderMode(int mode) {
2454 2454
         AgoraManager.getInstance().mRtcEngine.setLocalRenderMode(mode);
2455 2455
     }
2456 2456
 
2457
-    //设置远端视频显示模式
2457
+    // set remote video render mode
2458 2458
     @ReactMethod
2459 2459
     public void setRemoteRenderMode(int uid, int mode) {
2460 2460
         AgoraManager.getInstance().mRtcEngine.setRemoteRenderMode(uid, mode);

+ 865
- 0
docs/api/assets/css/main.css View File

@@ -0,0 +1,865 @@
1
+/*! normalize.css v1.1.3 | MIT License | git.io/normalize */
2
+/* ========================================================================== HTML5 display definitions ========================================================================== */
3
+/** Correct `block` display not defined in IE 6/7/8/9 and Firefox 3. */
4
+article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; }
5
+
6
+/** Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3. */
7
+audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; }
8
+
9
+/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */
10
+audio:not([controls]) { display: none; height: 0; }
11
+
12
+/** Address styling not present in IE 7/8/9, Firefox 3, and Safari 4. Known issue: no IE 6 support. */
13
+[hidden] { display: none; }
14
+
15
+/* ========================================================================== Base ========================================================================== */
16
+/** 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using `em` units. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */
17
+html { font-size: 100%; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ font-family: sans-serif; }
18
+
19
+/** Address `font-family` inconsistency between `textarea` and other form elements. */
20
+button, input, select, textarea { font-family: sans-serif; }
21
+
22
+/** Address margins handled incorrectly in IE 6/7. */
23
+body { margin: 0; }
24
+
25
+/* ========================================================================== Links ========================================================================== */
26
+/** Address `outline` inconsistency between Chrome and other browsers. */
27
+a:focus { outline: thin dotted; }
28
+a:active, a:hover { outline: 0; }
29
+
30
+/** Improve readability when focused and also mouse hovered in all browsers. */
31
+/* ========================================================================== Typography ========================================================================== */
32
+/** Address font sizes and margins set differently in IE 6/7. Address font sizes within `section` and `article` in Firefox 4+, Safari 5, and Chrome. */
33
+h1 { font-size: 2em; margin: 0.67em 0; }
34
+
35
+h2 { font-size: 1.5em; margin: 0.83em 0; }
36
+
37
+h3 { font-size: 1.17em; margin: 1em 0; }
38
+
39
+h4, .tsd-index-panel h3 { font-size: 1em; margin: 1.33em 0; }
40
+
41
+h5 { font-size: 0.83em; margin: 1.67em 0; }
42
+
43
+h6 { font-size: 0.67em; margin: 2.33em 0; }
44
+
45
+/** Address styling not present in IE 7/8/9, Safari 5, and Chrome. */
46
+abbr[title] { border-bottom: 1px dotted; }
47
+
48
+/** Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome. */
49
+b, strong { font-weight: bold; }
50
+
51
+blockquote { margin: 1em 40px; }
52
+
53
+/** Address styling not present in Safari 5 and Chrome. */
54
+dfn { font-style: italic; }
55
+
56
+/** Address differences between Firefox and other browsers. Known issue: no IE 6/7 normalization. */
57
+hr { box-sizing: content-box; height: 0; }
58
+
59
+/** Address styling not present in IE 6/7/8/9. */
60
+mark { background: #ff0; color: #000; }
61
+
62
+/** Address margins set differently in IE 6/7. */
63
+p, pre { margin: 1em 0; }
64
+
65
+/** Correct font family set oddly in IE 6, Safari 4/5, and Chrome. */
66
+code, kbd, pre, samp { font-family: monospace, serif; _font-family: "courier new", monospace; font-size: 1em; }
67
+
68
+/** Improve readability of pre-formatted text in all browsers. */
69
+pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; }
70
+
71
+/** Address CSS quotes not supported in IE 6/7. */
72
+q { quotes: none; }
73
+q:before, q:after { content: ""; content: none; }
74
+
75
+/** Address `quotes` property not supported in Safari 4. */
76
+/** Address inconsistent and variable font size in all browsers. */
77
+small { font-size: 80%; }
78
+
79
+/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */
80
+sub { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
81
+
82
+sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; top: -0.5em; }
83
+
84
+sub { bottom: -0.25em; }
85
+
86
+/* ========================================================================== Lists ========================================================================== */
87
+/** Address margins set differently in IE 6/7. */
88
+dl, menu, ol, ul { margin: 1em 0; }
89
+
90
+dd { margin: 0 0 0 40px; }
91
+
92
+/** Address paddings set differently in IE 6/7. */
93
+menu, ol, ul { padding: 0 0 0 40px; }
94
+
95
+/** Correct list images handled incorrectly in IE 7. */
96
+nav ul, nav ol { list-style: none; list-style-image: none; }
97
+
98
+/* ========================================================================== Embedded content ========================================================================== */
99
+/** 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3. 2. Improve image quality when scaled in IE 7. */
100
+img { border: 0; /* 1 */ -ms-interpolation-mode: bicubic; }
101
+
102
+/* 2 */
103
+/** Correct overflow displayed oddly in IE 9. */
104
+svg:not(:root) { overflow: hidden; }
105
+
106
+/* ========================================================================== Figures ========================================================================== */
107
+/** Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11. */
108
+figure, form { margin: 0; }
109
+
110
+/* ========================================================================== Forms ========================================================================== */
111
+/** Correct margin displayed oddly in IE 6/7. */
112
+/** Define consistent border, margin, and padding. */
113
+fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }
114
+
115
+/** 1. Correct color not being inherited in IE 6/7/8/9. 2. Correct text not wrapping in Firefox 3. 3. Correct alignment displayed oddly in IE 6/7. */
116
+legend { border: 0; /* 1 */ padding: 0; white-space: normal; /* 2 */ *margin-left: -7px; }
117
+
118
+/* 3 */
119
+/** 1. Correct font size not being inherited in all browsers. 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5, and Chrome. 3. Improve appearance and consistency in all browsers. */
120
+button, input, select, textarea { font-size: 100%; /* 1 */ margin: 0; /* 2 */ vertical-align: baseline; /* 3 */ *vertical-align: middle; }
121
+
122
+/* 3 */
123
+/** Address Firefox 3+ setting `line-height` on `input` using `!important` in the UA stylesheet. */
124
+button, input { line-height: normal; }
125
+
126
+/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+. Correct `select` style inheritance in Firefox 4+ and Opera. */
127
+button, select { text-transform: none; }
128
+
129
+/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. 4. Remove inner spacing in IE 7 without affecting normal text inputs. Known issue: inner spacing remains in IE 6. */
130
+button, html input[type="button"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ *overflow: visible; }
131
+
132
+/* 4 */
133
+input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ *overflow: visible; }
134
+
135
+/* 4 */
136
+/** Re-set default cursor for disabled elements. */
137
+button[disabled], html input[disabled] { cursor: default; }
138
+
139
+/** 1. Address box sizing set to content-box in IE 8/9. 2. Remove excess padding in IE 8/9. 3. Remove excess padding in IE 7. Known issue: excess padding remains in IE 6. */
140
+input { /* 3 */ }
141
+input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ *height: 13px; /* 3 */ *width: 13px; }
142
+input[type="search"] { -webkit-appearance: textfield; /* 1 */ /* 2 */ box-sizing: content-box; }
143
+input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
144
+
145
+/** 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome (include `-moz` to future-proof). */
146
+/** Remove inner padding and search cancel button in Safari 5 and Chrome on OS X. */
147
+/** Remove inner padding and border in Firefox 3+. */
148
+button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }
149
+
150
+/** 1. Remove default vertical scrollbar in IE 6/7/8/9. 2. Improve readability and alignment in all browsers. */
151
+textarea { overflow: auto; /* 1 */ vertical-align: top; }
152
+
153
+/* 2 */
154
+/* ========================================================================== Tables ========================================================================== */
155
+/** Remove most spacing between table cells. */
156
+table { border-collapse: collapse; border-spacing: 0; }
157
+
158
+/* Visual Studio-like style based on original C# coloring by Jason Diamond <jason@diamond.name> */
159
+.hljs { display: inline-block; padding: 0.5em; background: white; color: black; }
160
+
161
+.hljs-comment, .hljs-annotation, .hljs-template_comment, .diff .hljs-header, .hljs-chunk, .apache .hljs-cbracket { color: #008000; }
162
+
163
+.hljs-keyword, .hljs-id, .hljs-built_in, .css .smalltalk .hljs-class, .hljs-winutils, .bash .hljs-variable, .tex .hljs-command, .hljs-request, .hljs-status, .nginx .hljs-title { color: #00f; }
164
+
165
+.xml .hljs-tag { color: #00f; }
166
+.xml .hljs-tag .hljs-value { color: #00f; }
167
+
168
+.hljs-string, .hljs-title, .hljs-parent, .hljs-tag .hljs-value, .hljs-rules .hljs-value { color: #a31515; }
169
+
170
+.ruby .hljs-symbol { color: #a31515; }
171
+.ruby .hljs-symbol .hljs-string { color: #a31515; }
172
+
173
+.hljs-template_tag, .django .hljs-variable, .hljs-addition, .hljs-flow, .hljs-stream, .apache .hljs-tag, .hljs-date, .tex .hljs-formula, .coffeescript .hljs-attribute { color: #a31515; }
174
+
175
+.ruby .hljs-string, .hljs-decorator, .hljs-filter .hljs-argument, .hljs-localvars, .hljs-array, .hljs-attr_selector, .hljs-pseudo, .hljs-pi, .hljs-doctype, .hljs-deletion, .hljs-envvar, .hljs-shebang, .hljs-preprocessor, .hljs-pragma, .userType, .apache .hljs-sqbracket, .nginx .hljs-built_in, .tex .hljs-special, .hljs-prompt { color: #2b91af; }
176
+
177
+.hljs-phpdoc, .hljs-javadoc, .hljs-xmlDocTag { color: #808080; }
178
+
179
+.vhdl .hljs-typename { font-weight: bold; }
180
+.vhdl .hljs-string { color: #666666; }
181
+.vhdl .hljs-literal { color: #a31515; }
182
+.vhdl .hljs-attribute { color: #00b0e8; }
183
+
184
+.xml .hljs-attribute { color: #f00; }
185
+
186
+.col > :first-child, .col-1 > :first-child, .col-2 > :first-child, .col-3 > :first-child, .col-4 > :first-child, .col-5 > :first-child, .col-6 > :first-child, .col-7 > :first-child, .col-8 > :first-child, .col-9 > :first-child, .col-10 > :first-child, .col-11 > :first-child, .tsd-panel > :first-child, ul.tsd-descriptions > li > :first-child, .col > :first-child > :first-child, .col-1 > :first-child > :first-child, .col-2 > :first-child > :first-child, .col-3 > :first-child > :first-child, .col-4 > :first-child > :first-child, .col-5 > :first-child > :first-child, .col-6 > :first-child > :first-child, .col-7 > :first-child > :first-child, .col-8 > :first-child > :first-child, .col-9 > :first-child > :first-child, .col-10 > :first-child > :first-child, .col-11 > :first-child > :first-child, .tsd-panel > :first-child > :first-child, ul.tsd-descriptions > li > :first-child > :first-child, .col > :first-child > :first-child > :first-child, .col-1 > :first-child > :first-child > :first-child, .col-2 > :first-child > :first-child > :first-child, .col-3 > :first-child > :first-child > :first-child, .col-4 > :first-child > :first-child > :first-child, .col-5 > :first-child > :first-child > :first-child, .col-6 > :first-child > :first-child > :first-child, .col-7 > :first-child > :first-child > :first-child, .col-8 > :first-child > :first-child > :first-child, .col-9 > :first-child > :first-child > :first-child, .col-10 > :first-child > :first-child > :first-child, .col-11 > :first-child > :first-child > :first-child, .tsd-panel > :first-child > :first-child > :first-child, ul.tsd-descriptions > li > :first-child > :first-child > :first-child { margin-top: 0; }
187
+.col > :last-child, .col-1 > :last-child, .col-2 > :last-child, .col-3 > :last-child, .col-4 > :last-child, .col-5 > :last-child, .col-6 > :last-child, .col-7 > :last-child, .col-8 > :last-child, .col-9 > :last-child, .col-10 > :last-child, .col-11 > :last-child, .tsd-panel > :last-child, ul.tsd-descriptions > li > :last-child, .col > :last-child > :last-child, .col-1 > :last-child > :last-child, .col-2 > :last-child > :last-child, .col-3 > :last-child > :last-child, .col-4 > :last-child > :last-child, .col-5 > :last-child > :last-child, .col-6 > :last-child > :last-child, .col-7 > :last-child > :last-child, .col-8 > :last-child > :last-child, .col-9 > :last-child > :last-child, .col-10 > :last-child > :last-child, .col-11 > :last-child > :last-child, .tsd-panel > :last-child > :last-child, ul.tsd-descriptions > li > :last-child > :last-child, .col > :last-child > :last-child > :last-child, .col-1 > :last-child > :last-child > :last-child, .col-2 > :last-child > :last-child > :last-child, .col-3 > :last-child > :last-child > :last-child, .col-4 > :last-child > :last-child > :last-child, .col-5 > :last-child > :last-child > :last-child, .col-6 > :last-child > :last-child > :last-child, .col-7 > :last-child > :last-child > :last-child, .col-8 > :last-child > :last-child > :last-child, .col-9 > :last-child > :last-child > :last-child, .col-10 > :last-child > :last-child > :last-child, .col-11 > :last-child > :last-child > :last-child, .tsd-panel > :last-child > :last-child > :last-child, ul.tsd-descriptions > li > :last-child > :last-child > :last-child { margin-bottom: 0; }
188
+
189
+.container { max-width: 1200px; margin: 0 auto; padding: 0 40px; }
190
+@media (max-width: 640px) { .container { padding: 0 20px; } }
191
+
192
+.container-main { padding-bottom: 200px; }
193
+
194
+.row { position: relative; margin: 0 -10px; }
195
+.row:after { visibility: hidden; display: block; content: ""; clear: both; height: 0; }
196
+
197
+.col, .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11 { box-sizing: border-box; float: left; padding: 0 10px; }
198
+
199
+.col-1 { width: 8.33333%; }
200
+
201
+.offset-1 { margin-left: 8.33333%; }
202
+
203
+.col-2 { width: 16.66667%; }
204
+
205
+.offset-2 { margin-left: 16.66667%; }
206
+
207
+.col-3 { width: 25%; }
208
+
209
+.offset-3 { margin-left: 25%; }
210
+
211
+.col-4 { width: 33.33333%; }
212
+
213
+.offset-4 { margin-left: 33.33333%; }
214
+
215
+.col-5 { width: 41.66667%; }
216
+
217
+.offset-5 { margin-left: 41.66667%; }
218
+
219
+.col-6 { width: 50%; }
220
+
221
+.offset-6 { margin-left: 50%; }
222
+
223
+.col-7 { width: 58.33333%; }
224
+
225
+.offset-7 { margin-left: 58.33333%; }
226
+
227
+.col-8 { width: 66.66667%; }
228
+
229
+.offset-8 { margin-left: 66.66667%; }
230
+
231
+.col-9 { width: 75%; }
232
+
233
+.offset-9 { margin-left: 75%; }
234
+
235
+.col-10 { width: 83.33333%; }
236
+
237
+.offset-10 { margin-left: 83.33333%; }
238
+
239
+.col-11 { width: 91.66667%; }
240
+
241
+.offset-11 { margin-left: 91.66667%; }
242
+
243
+.tsd-kind-icon { display: block; position: relative; padding-left: 20px; text-indent: -20px; }
244
+.tsd-kind-icon:before { content: ''; display: inline-block; vertical-align: middle; width: 17px; height: 17px; margin: 0 3px 2px 0; background-image: url(../images/icons.png); }
245
+@media (-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) { .tsd-kind-icon:before { background-image: url(../images/icons@2x.png); background-size: 238px 204px; } }
246
+
247
+.tsd-signature.tsd-kind-icon:before { background-position: 0 -153px; }
248
+
249
+.tsd-kind-object-literal > .tsd-kind-icon:before { background-position: 0px -17px; }
250
+.tsd-kind-object-literal.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -17px; }
251
+.tsd-kind-object-literal.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -17px; }
252
+
253
+.tsd-kind-class > .tsd-kind-icon:before { background-position: 0px -34px; }
254
+.tsd-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -34px; }
255
+.tsd-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -34px; }
256
+
257
+.tsd-kind-class.tsd-has-type-parameter > .tsd-kind-icon:before { background-position: 0px -51px; }
258
+.tsd-kind-class.tsd-has-type-parameter.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -51px; }
259
+.tsd-kind-class.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -51px; }
260
+
261
+.tsd-kind-interface > .tsd-kind-icon:before { background-position: 0px -68px; }
262
+.tsd-kind-interface.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -68px; }
263
+.tsd-kind-interface.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -68px; }
264
+
265
+.tsd-kind-interface.tsd-has-type-parameter > .tsd-kind-icon:before { background-position: 0px -85px; }
266
+.tsd-kind-interface.tsd-has-type-parameter.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -85px; }
267
+.tsd-kind-interface.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -85px; }
268
+
269
+.tsd-kind-module > .tsd-kind-icon:before { background-position: 0px -102px; }
270
+.tsd-kind-module.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -102px; }
271
+.tsd-kind-module.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -102px; }
272
+
273
+.tsd-kind-external-module > .tsd-kind-icon:before { background-position: 0px -102px; }
274
+.tsd-kind-external-module.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -102px; }
275
+.tsd-kind-external-module.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -102px; }
276
+
277
+.tsd-kind-enum > .tsd-kind-icon:before { background-position: 0px -119px; }
278
+.tsd-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -119px; }
279
+.tsd-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -119px; }
280
+
281
+.tsd-kind-enum-member > .tsd-kind-icon:before { background-position: 0px -136px; }
282
+.tsd-kind-enum-member.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -136px; }
283
+.tsd-kind-enum-member.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -136px; }
284
+
285
+.tsd-kind-signature > .tsd-kind-icon:before { background-position: 0px -153px; }
286
+.tsd-kind-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -153px; }
287
+.tsd-kind-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -153px; }
288
+
289
+.tsd-kind-type-alias > .tsd-kind-icon:before { background-position: 0px -170px; }
290
+.tsd-kind-type-alias.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -170px; }
291
+.tsd-kind-type-alias.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -170px; }
292
+
293
+.tsd-kind-variable > .tsd-kind-icon:before { background-position: -136px -0px; }
294
+.tsd-kind-variable.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -0px; }
295
+.tsd-kind-variable.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
296
+.tsd-kind-variable.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -0px; }
297
+.tsd-kind-variable.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -0px; }
298
+.tsd-kind-variable.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -0px; }
299
+.tsd-kind-variable.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -0px; }
300
+.tsd-kind-variable.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
301
+.tsd-kind-variable.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -0px; }
302
+.tsd-kind-variable.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -0px; }
303
+.tsd-kind-variable.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
304
+.tsd-kind-variable.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -0px; }
305
+.tsd-kind-variable.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -0px; }
306
+
307
+.tsd-kind-property > .tsd-kind-icon:before { background-position: -136px -0px; }
308
+.tsd-kind-property.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -0px; }
309
+.tsd-kind-property.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
310
+.tsd-kind-property.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -0px; }
311
+.tsd-kind-property.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -0px; }
312
+.tsd-kind-property.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -0px; }
313
+.tsd-kind-property.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -0px; }
314
+.tsd-kind-property.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
315
+.tsd-kind-property.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -0px; }
316
+.tsd-kind-property.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -0px; }
317
+.tsd-kind-property.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
318
+.tsd-kind-property.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -0px; }
319
+.tsd-kind-property.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -0px; }
320
+
321
+.tsd-kind-get-signature > .tsd-kind-icon:before { background-position: -136px -17px; }
322
+.tsd-kind-get-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -17px; }
323
+.tsd-kind-get-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -17px; }
324
+.tsd-kind-get-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -17px; }
325
+.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -17px; }
326
+.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -17px; }
327
+.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -17px; }
328
+.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -17px; }
329
+.tsd-kind-get-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -17px; }
330
+.tsd-kind-get-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -17px; }
331
+.tsd-kind-get-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -17px; }
332
+.tsd-kind-get-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -17px; }
333
+.tsd-kind-get-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -17px; }
334
+
335
+.tsd-kind-set-signature > .tsd-kind-icon:before { background-position: -136px -34px; }
336
+.tsd-kind-set-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -34px; }
337
+.tsd-kind-set-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -34px; }
338
+.tsd-kind-set-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -34px; }
339
+.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -34px; }
340
+.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -34px; }
341
+.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -34px; }
342
+.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -34px; }
343
+.tsd-kind-set-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -34px; }
344
+.tsd-kind-set-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -34px; }
345
+.tsd-kind-set-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -34px; }
346
+.tsd-kind-set-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -34px; }
347
+.tsd-kind-set-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -34px; }
348
+
349
+.tsd-kind-accessor > .tsd-kind-icon:before { background-position: -136px -51px; }
350
+.tsd-kind-accessor.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -51px; }
351
+.tsd-kind-accessor.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -51px; }
352
+.tsd-kind-accessor.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -51px; }
353
+.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -51px; }
354
+.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -51px; }
355
+.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -51px; }
356
+.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -51px; }
357
+.tsd-kind-accessor.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -51px; }
358
+.tsd-kind-accessor.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -51px; }
359
+.tsd-kind-accessor.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -51px; }
360
+.tsd-kind-accessor.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -51px; }
361
+.tsd-kind-accessor.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -51px; }
362
+
363
+.tsd-kind-function > .tsd-kind-icon:before { background-position: -136px -68px; }
364
+.tsd-kind-function.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -68px; }
365
+.tsd-kind-function.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
366
+.tsd-kind-function.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -68px; }
367
+.tsd-kind-function.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -68px; }
368
+.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -68px; }
369
+.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -68px; }
370
+.tsd-kind-function.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
371
+.tsd-kind-function.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -68px; }
372
+.tsd-kind-function.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -68px; }
373
+.tsd-kind-function.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
374
+.tsd-kind-function.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -68px; }
375
+.tsd-kind-function.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -68px; }
376
+
377
+.tsd-kind-method > .tsd-kind-icon:before { background-position: -136px -68px; }
378
+.tsd-kind-method.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -68px; }
379
+.tsd-kind-method.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
380
+.tsd-kind-method.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -68px; }
381
+.tsd-kind-method.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -68px; }
382
+.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -68px; }
383
+.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -68px; }
384
+.tsd-kind-method.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
385
+.tsd-kind-method.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -68px; }
386
+.tsd-kind-method.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -68px; }
387
+.tsd-kind-method.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
388
+.tsd-kind-method.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -68px; }
389
+.tsd-kind-method.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -68px; }
390
+
391
+.tsd-kind-call-signature > .tsd-kind-icon:before { background-position: -136px -68px; }
392
+.tsd-kind-call-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -68px; }
393
+.tsd-kind-call-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
394
+.tsd-kind-call-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -68px; }
395
+.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -68px; }
396
+.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -68px; }
397
+.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -68px; }
398
+.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
399
+.tsd-kind-call-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -68px; }
400
+.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -68px; }
401
+.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
402
+.tsd-kind-call-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -68px; }
403
+.tsd-kind-call-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -68px; }
404
+
405
+.tsd-kind-function.tsd-has-type-parameter > .tsd-kind-icon:before { background-position: -136px -85px; }
406
+.tsd-kind-function.tsd-has-type-parameter.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -85px; }
407
+.tsd-kind-function.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
408
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -85px; }
409
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -85px; }
410
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -85px; }
411
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -85px; }
412
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
413
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -85px; }
414
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -85px; }
415
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
416
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -85px; }
417
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -85px; }
418
+
419
+.tsd-kind-method.tsd-has-type-parameter > .tsd-kind-icon:before { background-position: -136px -85px; }
420
+.tsd-kind-method.tsd-has-type-parameter.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -85px; }
421
+.tsd-kind-method.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
422
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -85px; }
423
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -85px; }
424
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -85px; }
425
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -85px; }
426
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
427
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -85px; }
428
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -85px; }
429
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
430
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -85px; }
431
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -85px; }
432
+
433
+.tsd-kind-constructor > .tsd-kind-icon:before { background-position: -136px -102px; }
434
+.tsd-kind-constructor.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -102px; }
435
+.tsd-kind-constructor.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
436
+.tsd-kind-constructor.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -102px; }
437
+.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -102px; }
438
+.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -102px; }
439
+.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -102px; }
440
+.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
441
+.tsd-kind-constructor.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -102px; }
442
+.tsd-kind-constructor.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -102px; }
443
+.tsd-kind-constructor.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
444
+.tsd-kind-constructor.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -102px; }
445
+.tsd-kind-constructor.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -102px; }
446
+
447
+.tsd-kind-constructor-signature > .tsd-kind-icon:before { background-position: -136px -102px; }
448
+.tsd-kind-constructor-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -102px; }
449
+.tsd-kind-constructor-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
450
+.tsd-kind-constructor-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -102px; }
451
+.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -102px; }
452
+.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -102px; }
453
+.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -102px; }
454
+.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
455
+.tsd-kind-constructor-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -102px; }
456
+.tsd-kind-constructor-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -102px; }
457
+.tsd-kind-constructor-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
458
+.tsd-kind-constructor-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -102px; }
459
+.tsd-kind-constructor-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -102px; }
460
+
461
+.tsd-kind-index-signature > .tsd-kind-icon:before { background-position: -136px -119px; }
462
+.tsd-kind-index-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -119px; }
463
+.tsd-kind-index-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -119px; }
464
+.tsd-kind-index-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -119px; }
465
+.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -119px; }
466
+.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -119px; }
467
+.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -119px; }
468
+.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -119px; }
469
+.tsd-kind-index-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -119px; }
470
+.tsd-kind-index-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -119px; }
471
+.tsd-kind-index-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -119px; }
472
+.tsd-kind-index-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -119px; }
473
+.tsd-kind-index-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -119px; }
474
+
475
+.tsd-kind-event > .tsd-kind-icon:before { background-position: -136px -136px; }
476
+.tsd-kind-event.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -136px; }
477
+.tsd-kind-event.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -136px; }
478
+.tsd-kind-event.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -136px; }
479
+.tsd-kind-event.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -136px; }
480
+.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -136px; }
481
+.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -136px; }
482
+.tsd-kind-event.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -136px; }
483
+.tsd-kind-event.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -136px; }
484
+.tsd-kind-event.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -136px; }
485
+.tsd-kind-event.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -136px; }
486
+.tsd-kind-event.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -136px; }
487
+.tsd-kind-event.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -136px; }
488
+
489
+.tsd-is-static > .tsd-kind-icon:before { background-position: -136px -153px; }
490
+.tsd-is-static.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -153px; }
491
+.tsd-is-static.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -153px; }
492
+.tsd-is-static.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -153px; }
493
+.tsd-is-static.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -153px; }
494
+.tsd-is-static.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -153px; }
495
+.tsd-is-static.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -153px; }
496
+.tsd-is-static.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -153px; }
497
+.tsd-is-static.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -153px; }
498
+.tsd-is-static.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -153px; }
499
+.tsd-is-static.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -153px; }
500
+.tsd-is-static.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -153px; }
501
+.tsd-is-static.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -153px; }
502
+
503
+.tsd-is-static.tsd-kind-function > .tsd-kind-icon:before { background-position: -136px -170px; }
504
+.tsd-is-static.tsd-kind-function.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -170px; }
505
+.tsd-is-static.tsd-kind-function.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
506
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -170px; }
507
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -170px; }
508
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -170px; }
509
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -170px; }
510
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
511
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -170px; }
512
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -170px; }
513
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
514
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -170px; }
515
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -170px; }
516
+
517
+.tsd-is-static.tsd-kind-method > .tsd-kind-icon:before { background-position: -136px -170px; }
518
+.tsd-is-static.tsd-kind-method.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -170px; }
519
+.tsd-is-static.tsd-kind-method.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
520
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -170px; }
521
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -170px; }
522
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -170px; }
523
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -170px; }
524
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
525
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -170px; }
526
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -170px; }
527
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
528
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -170px; }
529
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -170px; }
530
+
531
+.tsd-is-static.tsd-kind-call-signature > .tsd-kind-icon:before { background-position: -136px -170px; }
532
+.tsd-is-static.tsd-kind-call-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -170px; }
533
+.tsd-is-static.tsd-kind-call-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
534
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -170px; }
535
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -170px; }
536
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -170px; }
537
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -170px; }
538
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
539
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -170px; }
540
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -170px; }
541
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
542
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -170px; }
543
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -170px; }
544
+
545
+.tsd-is-static.tsd-kind-event > .tsd-kind-icon:before { background-position: -136px -187px; }
546
+.tsd-is-static.tsd-kind-event.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -187px; }
547
+.tsd-is-static.tsd-kind-event.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -187px; }
548
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -187px; }
549
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -187px; }
550
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -187px; }
551
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -187px; }
552
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -187px; }
553
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -187px; }
554
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -187px; }
555
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -187px; }
556
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -187px; }
557
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -187px; }
558
+
559
+.no-transition { transition: none !important; }
560
+
561
+@-webkit-keyframes fade-in { from { opacity: 0; }
562
+  to { opacity: 1; } }
563
+
564
+@keyframes fade-in { from { opacity: 0; }
565
+  to { opacity: 1; } }
566
+@-webkit-keyframes fade-out { from { opacity: 1; visibility: visible; }
567
+  to { opacity: 0; } }
568
+@keyframes fade-out { from { opacity: 1; visibility: visible; }
569
+  to { opacity: 0; } }
570
+@-webkit-keyframes fade-in-delayed { 0% { opacity: 0; }
571
+  33% { opacity: 0; }
572
+  100% { opacity: 1; } }
573
+@keyframes fade-in-delayed { 0% { opacity: 0; }
574
+  33% { opacity: 0; }
575
+  100% { opacity: 1; } }
576
+@-webkit-keyframes fade-out-delayed { 0% { opacity: 1; visibility: visible; }
577
+  66% { opacity: 0; }
578
+  100% { opacity: 0; } }
579
+@keyframes fade-out-delayed { 0% { opacity: 1; visibility: visible; }
580
+  66% { opacity: 0; }
581
+  100% { opacity: 0; } }
582
+@-webkit-keyframes shift-to-left { from { -webkit-transform: translate(0, 0); transform: translate(0, 0); }
583
+  to { -webkit-transform: translate(-25%, 0); transform: translate(-25%, 0); } }
584
+@keyframes shift-to-left { from { -webkit-transform: translate(0, 0); transform: translate(0, 0); }
585
+  to { -webkit-transform: translate(-25%, 0); transform: translate(-25%, 0); } }
586
+@-webkit-keyframes unshift-to-left { from { -webkit-transform: translate(-25%, 0); transform: translate(-25%, 0); }
587
+  to { -webkit-transform: translate(0, 0); transform: translate(0, 0); } }
588
+@keyframes unshift-to-left { from { -webkit-transform: translate(-25%, 0); transform: translate(-25%, 0); }
589
+  to { -webkit-transform: translate(0, 0); transform: translate(0, 0); } }
590
+@-webkit-keyframes pop-in-from-right { from { -webkit-transform: translate(100%, 0); transform: translate(100%, 0); }
591
+  to { -webkit-transform: translate(0, 0); transform: translate(0, 0); } }
592
+@keyframes pop-in-from-right { from { -webkit-transform: translate(100%, 0); transform: translate(100%, 0); }
593
+  to { -webkit-transform: translate(0, 0); transform: translate(0, 0); } }
594
+@-webkit-keyframes pop-out-to-right { from { -webkit-transform: translate(0, 0); transform: translate(0, 0); visibility: visible; }
595
+  to { -webkit-transform: translate(100%, 0); transform: translate(100%, 0); } }
596
+@keyframes pop-out-to-right { from { -webkit-transform: translate(0, 0); transform: translate(0, 0); visibility: visible; }
597
+  to { -webkit-transform: translate(100%, 0); transform: translate(100%, 0); } }
598
+body { background: #fdfdfd; font-family: "Segoe UI", sans-serif; font-size: 16px; color: #222; }
599
+
600
+a { color: #4da6ff; text-decoration: none; }
601
+a:hover { text-decoration: underline; }
602
+
603
+code, pre { font-family: Menlo, Monaco, Consolas, "Courier New", monospace; padding: 0.2em; margin: 0; font-size: 14px; background-color: rgba(0, 0, 0, 0.04); }
604
+
605
+pre { padding: 10px; }
606
+pre code { padding: 0; font-size: 100%; background-color: transparent; }
607
+
608
+.tsd-typography { line-height: 1.333em; }
609
+.tsd-typography ul { list-style: square; padding: 0 0 0 20px; margin: 0; }
610
+.tsd-typography h4, .tsd-typography .tsd-index-panel h3, .tsd-index-panel .tsd-typography h3, .tsd-typography h5, .tsd-typography h6 { font-size: 1em; margin: 0; }
611
+.tsd-typography h5, .tsd-typography h6 { font-weight: normal; }
612
+.tsd-typography p, .tsd-typography ul, .tsd-typography ol { margin: 1em 0; }
613
+
614
+@media (min-width: 901px) and (max-width: 1024px) { html.default .col-content { width: 72%; }
615
+  html.default .col-menu { width: 28%; }
616
+  html.default .tsd-navigation { padding-left: 10px; } }
617
+@media (max-width: 900px) { html.default .col-content { float: none; width: 100%; }
618
+  html.default .col-menu { position: fixed !important; overflow: auto; -webkit-overflow-scrolling: touch; overflow-scrolling: touch; z-index: 1024; top: 0 !important; bottom: 0 !important; left: auto !important; right: 0 !important; width: 100%; padding: 20px 20px 0 0; max-width: 450px; visibility: hidden; background-color: #fff; -webkit-transform: translate(100%, 0); transform: translate(100%, 0); }
619
+  html.default .col-menu > *:last-child { padding-bottom: 20px; }
620
+  html.default .overlay { content: ""; display: block; position: fixed; z-index: 1023; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.75); visibility: hidden; }
621
+  html.default.to-has-menu .overlay { -webkit-animation: fade-in 0.4s; animation: fade-in 0.4s; }
622
+  html.default.to-has-menu header, html.default.to-has-menu footer, html.default.to-has-menu .col-content { -webkit-animation: shift-to-left 0.4s; animation: shift-to-left 0.4s; }
623
+  html.default.to-has-menu .col-menu { -webkit-animation: pop-in-from-right 0.4s; animation: pop-in-from-right 0.4s; }
624
+  html.default.from-has-menu .overlay { -webkit-animation: fade-out 0.4s; animation: fade-out 0.4s; }
625
+  html.default.from-has-menu header, html.default.from-has-menu footer, html.default.from-has-menu .col-content { -webkit-animation: unshift-to-left 0.4s; animation: unshift-to-left 0.4s; }
626
+  html.default.from-has-menu .col-menu { -webkit-animation: pop-out-to-right 0.4s; animation: pop-out-to-right 0.4s; }
627
+  html.default.has-menu body { overflow: hidden; }
628
+  html.default.has-menu .overlay { visibility: visible; }
629
+  html.default.has-menu header, html.default.has-menu footer, html.default.has-menu .col-content { -webkit-transform: translate(-25%, 0); transform: translate(-25%, 0); }
630
+  html.default.has-menu .col-menu { visibility: visible; -webkit-transform: translate(0, 0); transform: translate(0, 0); } }
631
+
632
+.tsd-page-title { padding: 70px 0 20px 0; margin: 0 0 40px 0; background: #fff; box-shadow: 0 0 5px rgba(0, 0, 0, 0.35); }
633
+.tsd-page-title h1 { margin: 0; }
634
+
635
+.tsd-breadcrumb { margin: 0; padding: 0; color: #808080; }
636
+.tsd-breadcrumb a { color: #808080; text-decoration: none; }
637
+.tsd-breadcrumb a:hover { text-decoration: underline; }
638
+.tsd-breadcrumb li { display: inline; }
639
+.tsd-breadcrumb li:after { content: " / "; }
640
+
641
+html.minimal .container { margin: 0; }
642
+html.minimal .container-main { padding-top: 50px; padding-bottom: 0; }
643
+html.minimal .content-wrap { padding-left: 300px; }
644
+html.minimal .tsd-navigation { position: fixed !important; overflow: auto; -webkit-overflow-scrolling: touch; overflow-scrolling: touch; box-sizing: border-box; z-index: 1; left: 0; top: 40px; bottom: 0; width: 300px; padding: 20px; margin: 0; }
645
+html.minimal .tsd-member .tsd-member { margin-left: 0; }
646
+html.minimal .tsd-page-toolbar { position: fixed; z-index: 2; }
647
+html.minimal #tsd-filter .tsd-filter-group { right: 0; -webkit-transform: none; transform: none; }
648
+html.minimal footer { background-color: transparent; }
649
+html.minimal footer .container { padding: 0; }
650
+html.minimal .tsd-generator { padding: 0; }
651
+@media (max-width: 900px) { html.minimal .tsd-navigation { display: none; }
652
+  html.minimal .content-wrap { padding-left: 0; } }
653
+
654
+dl.tsd-comment-tags { overflow: hidden; }
655
+dl.tsd-comment-tags dt { clear: both; float: left; padding: 1px 5px; margin: 0 10px 0 0; border-radius: 4px; border: 1px solid #808080; color: #808080; font-size: 0.8em; font-weight: normal; }
656
+dl.tsd-comment-tags dd { margin: 0 0 10px 0; }
657
+dl.tsd-comment-tags p { margin: 0; }
658
+
659
+.tsd-panel.tsd-comment .lead { font-size: 1.1em; line-height: 1.333em; margin-bottom: 2em; }
660
+.tsd-panel.tsd-comment .lead:last-child { margin-bottom: 0; }
661
+
662
+.toggle-protected .tsd-is-private { display: none; }
663
+
664
+.toggle-public .tsd-is-private, .toggle-public .tsd-is-protected, .toggle-public .tsd-is-private-protected { display: none; }
665
+
666
+.toggle-inherited .tsd-is-inherited { display: none; }
667
+
668
+.toggle-only-exported .tsd-is-not-exported { display: none; }
669
+
670
+.toggle-externals .tsd-is-external { display: none; }
671
+
672
+#tsd-filter { position: relative; display: inline-block; height: 40px; vertical-align: bottom; }
673
+.no-filter #tsd-filter { display: none; }
674
+#tsd-filter .tsd-filter-group { display: inline-block; height: 40px; vertical-align: bottom; white-space: nowrap; }
675
+#tsd-filter input { display: none; }
676
+@media (max-width: 900px) { #tsd-filter .tsd-filter-group { display: block; position: absolute; top: 40px; right: 20px; height: auto; background-color: #fff; visibility: hidden; -webkit-transform: translate(50%, 0); transform: translate(50%, 0); box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); }
677
+  .has-options #tsd-filter .tsd-filter-group { visibility: visible; }
678
+  .to-has-options #tsd-filter .tsd-filter-group { -webkit-animation: fade-in 0.2s; animation: fade-in 0.2s; }
679
+  .from-has-options #tsd-filter .tsd-filter-group { -webkit-animation: fade-out 0.2s; animation: fade-out 0.2s; }
680
+  #tsd-filter label, #tsd-filter .tsd-select { display: block; padding-right: 20px; } }
681
+
682
+footer { border-top: 1px solid #eee; background-color: #fff; }
683
+footer.with-border-bottom { border-bottom: 1px solid #eee; }
684
+footer .tsd-legend-group { font-size: 0; }
685
+footer .tsd-legend { display: inline-block; width: 25%; padding: 0; font-size: 16px; list-style: none; line-height: 1.333em; vertical-align: top; }
686
+@media (max-width: 900px) { footer .tsd-legend { width: 50%; } }
687
+
688
+.tsd-hierarchy { list-style: square; padding: 0 0 0 20px; margin: 0; }
689
+.tsd-hierarchy .target { font-weight: bold; }
690
+
691
+.tsd-index-panel .tsd-index-content { margin-bottom: -30px !important; }
692
+.tsd-index-panel .tsd-index-section { margin-bottom: 30px !important; }
693
+.tsd-index-panel h3 { margin: 0 -20px 10px -20px; padding: 0 20px 10px 20px; border-bottom: 1px solid #eee; }
694
+.tsd-index-panel ul.tsd-index-list { -webkit-column-count: 3; -moz-column-count: 3; -ms-column-count: 3; -o-column-count: 3; column-count: 3; -webkit-column-gap: 20px; -moz-column-gap: 20px; -ms-column-gap: 20px; -o-column-gap: 20px; column-gap: 20px; padding: 0; list-style: none; line-height: 1.333em; }
695
+@media (max-width: 900px) { .tsd-index-panel ul.tsd-index-list { -webkit-column-count: 1; -moz-column-count: 1; -ms-column-count: 1; -o-column-count: 1; column-count: 1; } }
696
+@media (min-width: 901px) and (max-width: 1024px) { .tsd-index-panel ul.tsd-index-list { -webkit-column-count: 2; -moz-column-count: 2; -ms-column-count: 2; -o-column-count: 2; column-count: 2; } }
697
+.tsd-index-panel ul.tsd-index-list li { -webkit-column-break-inside: avoid; -moz-column-break-inside: avoid; -ms-column-break-inside: avoid; -o-column-break-inside: avoid; column-break-inside: avoid; -webkit-page-break-inside: avoid; -moz-page-break-inside: avoid; -ms-page-break-inside: avoid; -o-page-break-inside: avoid; page-break-inside: avoid; }
698
+.tsd-index-panel a, .tsd-index-panel .tsd-parent-kind-module a { color: #9600ff; }
699
+.tsd-index-panel .tsd-parent-kind-interface a { color: #7da01f; }
700
+.tsd-index-panel .tsd-parent-kind-enum a { color: #cc9900; }
701
+.tsd-index-panel .tsd-parent-kind-class a { color: #4da6ff; }
702
+.tsd-index-panel .tsd-kind-module a { color: #9600ff; }
703
+.tsd-index-panel .tsd-kind-interface a { color: #7da01f; }
704
+.tsd-index-panel .tsd-kind-enum a { color: #cc9900; }
705
+.tsd-index-panel .tsd-kind-class a { color: #4da6ff; }
706
+.tsd-index-panel .tsd-is-private a { color: #808080; }
707
+
708
+.tsd-flag { display: inline-block; padding: 1px 5px; border-radius: 4px; color: #fff; background-color: #808080; text-indent: 0; font-size: 14px; font-weight: normal; }
709
+
710
+.tsd-anchor { position: absolute; top: -100px; }
711
+
712
+.tsd-member { position: relative; }
713
+.tsd-member .tsd-anchor + h3 { margin-top: 0; margin-bottom: 0; border-bottom: none; }
714
+
715
+.tsd-navigation { padding: 0 0 0 40px; }
716
+.tsd-navigation a { display: block; padding-top: 2px; padding-bottom: 2px; border-left: 2px solid transparent; color: #222; text-decoration: none; transition: border-left-color 0.1s; }
717
+.tsd-navigation a:hover { text-decoration: underline; }
718
+.tsd-navigation ul { margin: 0; padding: 0; list-style: none; }
719
+.tsd-navigation li { padding: 0; }
720
+
721
+.tsd-navigation.primary { padding-bottom: 40px; }
722
+.tsd-navigation.primary a { display: block; padding-top: 6px; padding-bottom: 6px; }
723
+.tsd-navigation.primary ul li a { padding-left: 5px; }
724
+.tsd-navigation.primary ul li li a { padding-left: 25px; }
725
+.tsd-navigation.primary ul li li li a { padding-left: 45px; }
726
+.tsd-navigation.primary ul li li li li a { padding-left: 65px; }
727
+.tsd-navigation.primary ul li li li li li a { padding-left: 85px; }
728
+.tsd-navigation.primary ul li li li li li li a { padding-left: 105px; }
729
+.tsd-navigation.primary > ul { border-bottom: 1px solid #eee; }
730
+.tsd-navigation.primary li { border-top: 1px solid #eee; }
731
+.tsd-navigation.primary li.current > a { font-weight: bold; }
732
+.tsd-navigation.primary li.label span { display: block; padding: 20px 0 6px 5px; color: #808080; }
733
+.tsd-navigation.primary li.globals + li > span, .tsd-navigation.primary li.globals + li > a { padding-top: 20px; }
734
+
735
+.tsd-navigation.secondary ul { transition: opacity 0.2s; }
736
+.tsd-navigation.secondary ul li a { padding-left: 25px; }
737
+.tsd-navigation.secondary ul li li a { padding-left: 45px; }
738
+.tsd-navigation.secondary ul li li li a { padding-left: 65px; }
739
+.tsd-navigation.secondary ul li li li li a { padding-left: 85px; }
740
+.tsd-navigation.secondary ul li li li li li a { padding-left: 105px; }
741
+.tsd-navigation.secondary ul li li li li li li a { padding-left: 125px; }
742
+.tsd-navigation.secondary ul.current a { border-left-color: #eee; }
743
+.tsd-navigation.secondary li.focus > a, .tsd-navigation.secondary ul.current li.focus > a { border-left-color: #000; }
744
+.tsd-navigation.secondary li.current { margin-top: 20px; margin-bottom: 20px; border-left-color: #eee; }
745
+.tsd-navigation.secondary li.current > a { font-weight: bold; }
746
+
747
+@media (min-width: 901px) { .menu-sticky-wrap { position: static; }
748
+  .no-csspositionsticky .menu-sticky-wrap.sticky { position: fixed; }
749
+  .no-csspositionsticky .menu-sticky-wrap.sticky-current { position: fixed; }
750
+  .no-csspositionsticky .menu-sticky-wrap.sticky-current ul.before-current, .no-csspositionsticky .menu-sticky-wrap.sticky-current ul.after-current { opacity: 0; }
751
+  .no-csspositionsticky .menu-sticky-wrap.sticky-bottom { position: absolute; top: auto !important; left: auto !important; bottom: 0; right: 0; }
752
+  .csspositionsticky .menu-sticky-wrap.sticky { position: -webkit-sticky; position: sticky; }
753
+  .csspositionsticky .menu-sticky-wrap.sticky-current { position: -webkit-sticky; position: sticky; } }
754
+
755
+.tsd-panel { margin: 20px 0; padding: 20px; background-color: #fff; box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); }
756
+.tsd-panel:empty { display: none; }
757
+.tsd-panel > h1, .tsd-panel > h2, .tsd-panel > h3 { margin: 1.5em -20px 10px -20px; padding: 0 20px 10px 20px; border-bottom: 1px solid #eee; }
758
+.tsd-panel > h1.tsd-before-signature, .tsd-panel > h2.tsd-before-signature, .tsd-panel > h3.tsd-before-signature { margin-bottom: 0; border-bottom: 0; }
759
+.tsd-panel table { display: block; width: 100%; overflow: auto; margin-top: 10px; word-break: normal; word-break: keep-all; }
760
+.tsd-panel table th { font-weight: bold; }
761
+.tsd-panel table th, .tsd-panel table td { padding: 6px 13px; border: 1px solid #ddd; }
762
+.tsd-panel table tr { background-color: #fff; border-top: 1px solid #ccc; }
763
+.tsd-panel table tr:nth-child(2n) { background-color: #f8f8f8; }
764
+
765
+.tsd-panel-group { margin: 60px 0; }
766
+.tsd-panel-group > h1, .tsd-panel-group > h2, .tsd-panel-group > h3 { padding-left: 20px; padding-right: 20px; }
767
+
768
+#tsd-search { transition: background-color 0.2s; }
769
+#tsd-search .title { position: relative; z-index: 2; }
770
+#tsd-search .field { position: absolute; left: 0; top: 0; right: 40px; height: 40px; }
771
+#tsd-search .field input { box-sizing: border-box; position: relative; top: -50px; z-index: 1; width: 100%; padding: 0 10px; opacity: 0; outline: 0; border: 0; background: transparent; color: #222; }
772
+#tsd-search .field label { position: absolute; overflow: hidden; right: -40px; }
773
+#tsd-search .field input, #tsd-search .title { transition: opacity 0.2s; }
774
+#tsd-search .results { position: absolute; visibility: hidden; top: 40px; width: 100%; margin: 0; padding: 0; list-style: none; box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); }
775
+#tsd-search .results li { padding: 0 10px; background-color: #fdfdfd; }
776
+#tsd-search .results li:nth-child(even) { background-color: #fff; }
777
+#tsd-search .results li.state { display: none; }
778
+#tsd-search .results li.current, #tsd-search .results li:hover { background-color: #eee; }
779
+#tsd-search .results a { display: block; }
780
+#tsd-search .results a:before { top: 10px; }
781
+#tsd-search .results span.parent { color: #808080; font-weight: normal; }
782
+#tsd-search.has-focus { background-color: #eee; }
783
+#tsd-search.has-focus .field input { top: 0; opacity: 1; }
784
+#tsd-search.has-focus .title { z-index: 0; opacity: 0; }
785
+#tsd-search.has-focus .results { visibility: visible; }
786
+#tsd-search.loading .results li.state.loading { display: block; }
787
+#tsd-search.failure .results li.state.failure { display: block; }
788
+
789
+.tsd-signature { margin: 0 0 1em 0; padding: 10px; border: 1px solid #eee; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; }
790
+.tsd-signature.tsd-kind-icon { padding-left: 30px; }
791
+.tsd-signature.tsd-kind-icon:before { top: 10px; left: 10px; }
792
+.tsd-panel > .tsd-signature { margin-left: -20px; margin-right: -20px; border-width: 1px 0; }
793
+.tsd-panel > .tsd-signature.tsd-kind-icon { padding-left: 40px; }
794
+.tsd-panel > .tsd-signature.tsd-kind-icon:before { left: 20px; }
795
+
796
+.tsd-signature-symbol { color: #808080; font-weight: normal; }
797
+
798
+.tsd-signature-type { font-style: italic; font-weight: normal; }
799
+
800
+.tsd-signatures { padding: 0; margin: 0 0 1em 0; border: 1px solid #eee; }
801
+.tsd-signatures .tsd-signature { margin: 0; border-width: 1px 0 0 0; transition: background-color 0.1s; }
802
+.tsd-signatures .tsd-signature:first-child { border-top-width: 0; }
803
+.tsd-signatures .tsd-signature.current { background-color: #eee; }
804
+.tsd-signatures.active > .tsd-signature { cursor: pointer; }
805
+.tsd-panel > .tsd-signatures { margin-left: -20px; margin-right: -20px; border-width: 1px 0; }
806
+.tsd-panel > .tsd-signatures .tsd-signature.tsd-kind-icon { padding-left: 40px; }
807
+.tsd-panel > .tsd-signatures .tsd-signature.tsd-kind-icon:before { left: 20px; }
808
+.tsd-panel > a.anchor + .tsd-signatures { border-top-width: 0; margin-top: -20px; }
809
+
810
+ul.tsd-descriptions { position: relative; overflow: hidden; transition: height 0.3s; padding: 0; list-style: none; }
811
+ul.tsd-descriptions.active > .tsd-description { display: none; }
812
+ul.tsd-descriptions.active > .tsd-description.current { display: block; }
813
+ul.tsd-descriptions.active > .tsd-description.fade-in { -webkit-animation: fade-in-delayed 0.3s; animation: fade-in-delayed 0.3s; }
814
+ul.tsd-descriptions.active > .tsd-description.fade-out { -webkit-animation: fade-out-delayed 0.3s; animation: fade-out-delayed 0.3s; position: absolute; display: block; top: 0; left: 0; right: 0; opacity: 0; visibility: hidden; }
815
+ul.tsd-descriptions h4, ul.tsd-descriptions .tsd-index-panel h3, .tsd-index-panel ul.tsd-descriptions h3 { font-size: 16px; margin: 1em 0 0.5em 0; }
816
+
817
+ul.tsd-parameters, ul.tsd-type-parameters { list-style: square; margin: 0; padding-left: 20px; }
818
+ul.tsd-parameters > li.tsd-parameter-siganture, ul.tsd-type-parameters > li.tsd-parameter-siganture { list-style: none; margin-left: -20px; }
819
+ul.tsd-parameters h5, ul.tsd-type-parameters h5 { font-size: 16px; margin: 1em 0 0.5em 0; }
820
+ul.tsd-parameters .tsd-comment, ul.tsd-type-parameters .tsd-comment { margin-top: -0.5em; }
821
+
822
+.tsd-sources { font-size: 14px; color: #808080; margin: 0 0 1em 0; }
823
+.tsd-sources a { color: #808080; text-decoration: underline; }
824
+.tsd-sources ul, .tsd-sources p { margin: 0 !important; }
825
+.tsd-sources ul { list-style: none; padding: 0; }
826
+
827
+.tsd-page-toolbar { position: absolute; z-index: 1; top: 0; left: 0; width: 100%; height: 40px; color: #333; background: #fff; border-bottom: 1px solid #eee; }
828
+.tsd-page-toolbar a { color: #333; text-decoration: none; }
829
+.tsd-page-toolbar a.title { font-weight: bold; }
830
+.tsd-page-toolbar a.title:hover { text-decoration: underline; }
831
+.tsd-page-toolbar .table-wrap { display: table; width: 100%; height: 40px; }
832
+.tsd-page-toolbar .table-cell { display: table-cell; position: relative; white-space: nowrap; line-height: 40px; }
833
+.tsd-page-toolbar .table-cell:first-child { width: 100%; }
834
+
835
+.tsd-widget:before, .tsd-select .tsd-select-label:before, .tsd-select .tsd-select-list li:before { content: ""; display: inline-block; width: 40px; height: 40px; margin: 0 -8px 0 0; background-image: url(../images/widgets.png); background-repeat: no-repeat; text-indent: -1024px; vertical-align: bottom; }
836
+@media (-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) { .tsd-widget:before, .tsd-select .tsd-select-label:before, .tsd-select .tsd-select-list li:before { background-image: url(../images/widgets@2x.png); background-size: 320px 40px; } }
837
+
838
+.tsd-widget { display: inline-block; overflow: hidden; opacity: 0.6; height: 40px; transition: opacity 0.1s, background-color 0.2s; vertical-align: bottom; cursor: pointer; }
839
+.tsd-widget:hover { opacity: 0.8; }
840
+.tsd-widget.active { opacity: 1; background-color: #eee; }
841
+.tsd-widget.no-caption { width: 40px; }
842
+.tsd-widget.no-caption:before { margin: 0; }
843
+.tsd-widget.search:before { background-position: 0 0; }
844
+.tsd-widget.menu:before { background-position: -40px 0; }
845
+.tsd-widget.options:before { background-position: -80px 0; }
846
+.tsd-widget.options, .tsd-widget.menu { display: none; }
847
+@media (max-width: 900px) { .tsd-widget.options, .tsd-widget.menu { display: inline-block; } }
848
+input[type=checkbox] + .tsd-widget:before { background-position: -120px 0; }
849
+input[type=checkbox]:checked + .tsd-widget:before { background-position: -160px 0; }
850
+
851
+.tsd-select { position: relative; display: inline-block; height: 40px; transition: opacity 0.1s, background-color 0.2s; vertical-align: bottom; cursor: pointer; }
852
+.tsd-select .tsd-select-label { opacity: 0.6; transition: opacity 0.2s; }
853
+.tsd-select .tsd-select-label:before { background-position: -240px 0; }
854
+.tsd-select.active .tsd-select-label { opacity: 0.8; }
855
+.tsd-select.active .tsd-select-list { visibility: visible; opacity: 1; transition-delay: 0s; }
856
+.tsd-select .tsd-select-list { position: absolute; visibility: hidden; top: 40px; left: 0; margin: 0; padding: 0; opacity: 0; list-style: none; box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); transition: visibility 0s 0.2s, opacity 0.2s; }
857
+.tsd-select .tsd-select-list li { padding: 0 20px 0 0; background-color: #fdfdfd; }
858
+.tsd-select .tsd-select-list li:before { background-position: 40px 0; }
859
+.tsd-select .tsd-select-list li:nth-child(even) { background-color: #fff; }
860
+.tsd-select .tsd-select-list li:hover { background-color: #eee; }
861
+.tsd-select .tsd-select-list li.selected:before { background-position: -200px 0; }
862
+@media (max-width: 900px) { .tsd-select .tsd-select-list { top: 0; left: auto; right: 100%; margin-right: -5px; }
863
+  .tsd-select .tsd-select-label:before { background-position: -280px 0; } }
864
+
865
+img { max-width: 100%; }

+ 7
- 0
docs/api/assets/css/main.css.map
File diff suppressed because it is too large
View File


BIN
docs/api/assets/images/icons.png View File


BIN
docs/api/assets/images/icons@2x.png View File


BIN
docs/api/assets/images/widgets.png View File


BIN
docs/api/assets/images/widgets@2x.png View File


+ 5
- 0
docs/api/assets/js/main.js
File diff suppressed because it is too large
View File


+ 3
- 0
docs/api/assets/js/search.js
File diff suppressed because it is too large
View File


+ 1060
- 0
docs/api/classes/agoraview.html
File diff suppressed because it is too large
View File


+ 3750
- 0
docs/api/classes/rtcengine.html
File diff suppressed because it is too large
View File


+ 224
- 0
docs/api/globals.html View File

@@ -0,0 +1,224 @@
1
+<!doctype html>
2
+<html class="default no-js">
3
+<head>
4
+	<meta charset="utf-8">
5
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+	<title>react-native-agora</title>
7
+	<meta name="description" content="">
8
+	<meta name="viewport" content="width=device-width, initial-scale=1">
9
+	<link rel="stylesheet" href="assets/css/main.css">
10
+</head>
11
+<body>
12
+<header>
13
+	<div class="tsd-page-toolbar">
14
+		<div class="container">
15
+			<div class="table-wrap">
16
+				<div class="table-cell" id="tsd-search" data-index="assets/js/search.js" data-base=".">
17
+					<div class="field">
18
+						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
19
+						<input id="tsd-search-field" type="text" />
20
+					</div>
21
+					<ul class="results">
22
+						<li class="state loading">Preparing search index...</li>
23
+						<li class="state failure">The search index is not available</li>
24
+					</ul>
25
+					<a href="index.html" class="title">react-native-agora</a>
26
+				</div>
27
+				<div class="table-cell" id="tsd-widgets">
28
+					<div id="tsd-filter">
29
+						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
30
+						<div class="tsd-filter-group">
31
+							<div class="tsd-select" id="tsd-filter-visibility">
32
+								<span class="tsd-select-label">All</span>
33
+								<ul class="tsd-select-list">
34
+									<li data-value="public">Public</li>
35
+									<li data-value="protected">Public/Protected</li>
36
+									<li data-value="private" class="selected">All</li>
37
+								</ul>
38
+							</div>
39
+							<input type="checkbox" id="tsd-filter-inherited" checked />
40
+							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
41
+							<input type="checkbox" id="tsd-filter-externals" checked />
42
+							<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
43
+							<input type="checkbox" id="tsd-filter-only-exported" />
44
+							<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
45
+						</div>
46
+					</div>
47
+					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
48
+				</div>
49
+			</div>
50
+		</div>
51
+	</div>
52
+	<div class="tsd-page-title">
53
+		<div class="container">
54
+			<ul class="tsd-breadcrumb">
55
+				<li>
56
+					<a href="globals.html">Globals</a>
57
+				</li>
58
+			</ul>
59
+			<h1> react-native-agora</h1>
60
+		</div>
61
+	</div>
62
+</header>
63
+<div class="container container-main">
64
+	<div class="row">
65
+		<div class="col-8 col-content">
66
+			<section class="tsd-panel-group tsd-index-group">
67
+				<h2>Index</h2>
68
+				<section class="tsd-panel tsd-index-panel">
69
+					<div class="tsd-index-content">
70
+						<section class="tsd-index-section ">
71
+							<h3>Classes</h3>
72
+							<ul class="tsd-index-list">
73
+								<li class="tsd-kind-class tsd-has-type-parameter"><a href="classes/agoraview.html" class="tsd-kind-icon">Agora<wbr>View</a></li>
74
+								<li class="tsd-kind-class"><a href="classes/rtcengine.html" class="tsd-kind-icon">Rtc<wbr>Engine</a></li>
75
+							</ul>
76
+						</section>
77
+						<section class="tsd-index-section tsd-is-not-exported">
78
+							<h3>Variables</h3>
79
+							<ul class="tsd-index-list">
80
+								<li class="tsd-kind-variable tsd-is-not-exported"><a href="globals.html#agora" class="tsd-kind-icon">Agora</a></li>
81
+								<li class="tsd-kind-variable tsd-is-not-exported"><a href="globals.html#agoraeventemitter" class="tsd-kind-icon">Agora<wbr>Event<wbr>Emitter</a></li>
82
+								<li class="tsd-kind-variable tsd-is-not-exported"><a href="globals.html#rctagoraview" class="tsd-kind-icon">RCTAgora<wbr>View</a></li>
83
+							</ul>
84
+						</section>
85
+					</div>
86
+				</section>
87
+			</section>
88
+			<section class="tsd-panel-group tsd-member-group tsd-is-not-exported">
89
+				<h2>Variables</h2>
90
+				<section class="tsd-panel tsd-member tsd-kind-variable tsd-is-not-exported">
91
+					<a name="agora" class="tsd-anchor"></a>
92
+					<h3>Agora</h3>
93
+					<div class="tsd-signature tsd-kind-icon">Agora<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div>
94
+					<aside class="tsd-sources">
95
+						<ul>
96
+							<li>Defined in <a href="https://github.com/syanbo/react-native-agora/blob/88179d2/src/RtcEngine.native.ts#L28">RtcEngine.native.ts:28</a></li>
97
+						</ul>
98
+					</aside>
99
+				</section>
100
+				<section class="tsd-panel tsd-member tsd-kind-variable tsd-is-not-exported">
101
+					<a name="agoraeventemitter" class="tsd-anchor"></a>
102
+					<h3><span class="tsd-flag ts-flagConst">Const</span> Agora<wbr>Event<wbr>Emitter</h3>
103
+					<div class="tsd-signature tsd-kind-icon">Agora<wbr>Event<wbr>Emitter<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">EventEmitter</span><span class="tsd-signature-symbol"> =&nbsp;new NativeEventEmitter(Agora)</span></div>
104
+					<aside class="tsd-sources">
105
+						<ul>
106
+							<li>Defined in <a href="https://github.com/syanbo/react-native-agora/blob/88179d2/src/RtcEngine.native.ts#L29">RtcEngine.native.ts:29</a></li>
107
+						</ul>
108
+					</aside>
109
+				</section>
110
+				<section class="tsd-panel tsd-member tsd-kind-variable tsd-is-not-exported">
111
+					<a name="rctagoraview" class="tsd-anchor"></a>
112
+					<h3><span class="tsd-flag ts-flagConst">Const</span> RCTAgora<wbr>View</h3>
113
+					<div class="tsd-signature tsd-kind-icon">RCTAgora<wbr>View<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> =&nbsp;requireNativeComponent(&quot;RCTAgoraView&quot;)</span></div>
114
+					<aside class="tsd-sources">
115
+						<ul>
116
+							<li>Defined in <a href="https://github.com/syanbo/react-native-agora/blob/88179d2/src/AgoraView.native.tsx#L16">AgoraView.native.tsx:16</a></li>
117
+						</ul>
118
+					</aside>
119
+					<div class="tsd-comment tsd-typography">
120
+						<div class="lead">
121
+							<p>Import RCTAgoraView from native binding.</p>
122
+						</div>
123
+						<p>This @object is used to bridge native layer between react layer.</p>
124
+					</div>
125
+				</section>
126
+			</section>
127
+		</div>
128
+		<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
129
+			<nav class="tsd-navigation primary">
130
+				<ul>
131
+					<li class="globals current ">
132
+						<a href="globals.html"><em>Globals</em></a>
133
+					</li>
134
+				</ul>
135
+			</nav>
136
+			<nav class="tsd-navigation secondary menu-sticky">
137
+				<ul class="before-current">
138
+					<li class=" tsd-kind-class tsd-has-type-parameter">
139
+						<a href="classes/agoraview.html" class="tsd-kind-icon">Agora<wbr>View</a>
140
+					</li>
141
+					<li class=" tsd-kind-class">
142
+						<a href="classes/rtcengine.html" class="tsd-kind-icon">Rtc<wbr>Engine</a>
143
+					</li>
144
+					<li class=" tsd-kind-variable tsd-is-not-exported">
145
+						<a href="globals.html#agora" class="tsd-kind-icon">Agora</a>
146
+					</li>
147
+					<li class=" tsd-kind-variable tsd-is-not-exported">
148
+						<a href="globals.html#agoraeventemitter" class="tsd-kind-icon">Agora<wbr>Event<wbr>Emitter</a>
149
+					</li>
150
+					<li class=" tsd-kind-variable tsd-is-not-exported">
151
+						<a href="globals.html#rctagoraview" class="tsd-kind-icon">RCTAgora<wbr>View</a>
152
+					</li>
153
+				</ul>
154
+			</nav>
155
+		</div>
156
+	</div>
157
+</div>
158
+<footer class="with-border-bottom">
159
+	<div class="container">
160
+		<h2>Legend</h2>
161
+		<div class="tsd-legend-group">
162
+			<ul class="tsd-legend">
163
+				<li class="tsd-kind-module"><span class="tsd-kind-icon">Module</span></li>
164
+				<li class="tsd-kind-object-literal"><span class="tsd-kind-icon">Object literal</span></li>
165
+				<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
166
+				<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
167
+				<li class="tsd-kind-function tsd-has-type-parameter"><span class="tsd-kind-icon">Function with type parameter</span></li>
168
+				<li class="tsd-kind-index-signature"><span class="tsd-kind-icon">Index signature</span></li>
169
+				<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
170
+			</ul>
171
+			<ul class="tsd-legend">
172
+				<li class="tsd-kind-enum"><span class="tsd-kind-icon">Enumeration</span></li>
173
+				<li class="tsd-kind-enum-member"><span class="tsd-kind-icon">Enumeration member</span></li>
174
+				<li class="tsd-kind-property tsd-parent-kind-enum"><span class="tsd-kind-icon">Property</span></li>
175
+				<li class="tsd-kind-method tsd-parent-kind-enum"><span class="tsd-kind-icon">Method</span></li>
176
+			</ul>
177
+			<ul class="tsd-legend">
178
+				<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
179
+				<li class="tsd-kind-interface tsd-has-type-parameter"><span class="tsd-kind-icon">Interface with type parameter</span></li>
180
+				<li class="tsd-kind-constructor tsd-parent-kind-interface"><span class="tsd-kind-icon">Constructor</span></li>
181
+				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
182
+				<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
183
+				<li class="tsd-kind-index-signature tsd-parent-kind-interface"><span class="tsd-kind-icon">Index signature</span></li>
184
+			</ul>
185
+			<ul class="tsd-legend">
186
+				<li class="tsd-kind-class"><span class="tsd-kind-icon">Class</span></li>
187
+				<li class="tsd-kind-class tsd-has-type-parameter"><span class="tsd-kind-icon">Class with type parameter</span></li>
188
+				<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
189
+				<li class="tsd-kind-property tsd-parent-kind-class"><span class="tsd-kind-icon">Property</span></li>
190
+				<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
191
+				<li class="tsd-kind-accessor tsd-parent-kind-class"><span class="tsd-kind-icon">Accessor</span></li>
192
+				<li class="tsd-kind-index-signature tsd-parent-kind-class"><span class="tsd-kind-icon">Index signature</span></li>
193
+			</ul>
194
+			<ul class="tsd-legend">
195
+				<li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited constructor</span></li>
196
+				<li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited property</span></li>
197
+				<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited method</span></li>
198
+				<li class="tsd-kind-accessor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited accessor</span></li>
199
+			</ul>
200
+			<ul class="tsd-legend">
201
+				<li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected property</span></li>
202
+				<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected method</span></li>
203
+				<li class="tsd-kind-accessor tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected accessor</span></li>
204
+			</ul>
205
+			<ul class="tsd-legend">
206
+				<li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private property</span></li>
207
+				<li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private method</span></li>
208
+				<li class="tsd-kind-accessor tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private accessor</span></li>
209
+			</ul>
210
+			<ul class="tsd-legend">
211
+				<li class="tsd-kind-property tsd-parent-kind-class tsd-is-static"><span class="tsd-kind-icon">Static property</span></li>
212
+				<li class="tsd-kind-call-signature tsd-parent-kind-class tsd-is-static"><span class="tsd-kind-icon">Static method</span></li>
213
+			</ul>
214
+		</div>
215
+	</div>
216
+</footer>
217
+<div class="container tsd-generator">
218
+	<p>Generated using <a href="http://typedoc.org/" target="_blank">TypeDoc</a></p>
219
+</div>
220
+<div class="overlay"></div>
221
+<script src="assets/js/main.js"></script>
222
+<script>if (location.protocol == 'file:') document.write('<script src="assets/js/search.js"><' + '/script>');</script>
223
+</body>
224
+</html>

+ 1107
- 0
docs/api/index.html
File diff suppressed because it is too large
View File


+ 6
- 6
ios/RCTAgora/RCTAgora.m View File

@@ -677,9 +677,9 @@ RCT_EXPORT_METHOD(playEffect
677 677
                   :(NSDictionary *)options
678 678
                   resolve:(RCTPromiseResolveBlock)resolve
679 679
                   reject:(RCTPromiseRejectBlock)reject) {
680
-  NSInteger res = [self.rtcEngine playEffect:(int)[options[@"soundId"] integerValue]
681
-                                    filePath:[options[@"filePath"] stringValue]
682
-                                   loopCount:(int)[options[@"loopCount"] integerValue]
680
+  NSInteger res = [self.rtcEngine playEffect:(int)[options[@"soundid"] integerValue]
681
+                                    filePath:[options[@"filepath"] stringValue]
682
+                                   loopCount:(int)[options[@"loopcount"] integerValue]
683 683
                                        pitch:[options[@"pitch"] doubleValue]
684 684
                                          pan:[options[@"pan"] doubleValue]
685 685
                                         gain:[options[@"gain"] doubleValue]
@@ -873,7 +873,7 @@ RCT_EXPORT_METHOD(resumeAllEffects
873 873
   }
874 874
 }
875 875
 
876
-// start audio recoding quality
876
+// start audio recording quality
877 877
 RCT_EXPORT_METHOD(startAudioRecording:(NSDictionary *)options
878 878
                   resolve:(RCTPromiseResolveBlock)resolve
879 879
                   reject:(RCTPromiseRejectBlock)reject) {
@@ -889,7 +889,7 @@ RCT_EXPORT_METHOD(startAudioRecording:(NSDictionary *)options
889 889
       qualityType = AgoraAudioRecordingQualityMedium;
890 890
       break;
891 891
   }
892
-  NSInteger res = [self.rtcEngine startAudioRecording:[options[@"filePath"] stringValue] quality:qualityType];
892
+  NSInteger res = [self.rtcEngine startAudioRecording:[options[@"filepath"] stringValue] quality:qualityType];
893 893
   if (res != 0) {
894 894
     reject(@"131017", @"startAudioRecording failed", [self makeNSError:@{
895 895
                                                                          @"code": @(131017),
@@ -2089,7 +2089,7 @@ RCT_EXPORT_METHOD(setLiveTranscoding:(NSDictionary *)options) {
2089 2089
 
2090 2090
 - (void)rtcEngineDidAudioEffectFinish:(AgoraRtcEngineKit *_Nonnull)engine soundId:(NSInteger)soundId {
2091 2091
   [self sendEvent:AGAudioEffectFinish params:@{
2092
-                                                @"soundId": @(soundId)
2092
+                                                @"soundid": @(soundId)
2093 2093
                                                 }];
2094 2094
 }
2095 2095
 

+ 20
- 1
lib/AgoraView.native.js View File

@@ -3,14 +3,33 @@ Object.defineProperty(exports, "__esModule", { value: true });
3 3
 const tslib_1 = require("tslib");
4 4
 const react_1 = tslib_1.__importDefault(require("react"));
5 5
 const react_native_1 = require("react-native");
6
+/**
7
+ * Import RCTAgoraView from native binding.
8
+ *
9
+ * This @object is used to bridge native layer between react layer.
10
+ */
6 11
 const RCTAgoraView = react_native_1.requireNativeComponent("RCTAgoraView");
7 12
 /**
8
- * @class AgoraView
13
+ * AgoraView is the render layer for rendering video stream
14
+ *
15
+ * This class is used to rendering native sdk stream
16
+ *
17
+ * @props {@link AgoraViewProps}
9 18
  */
10 19
 class AgoraView extends react_1.default.Component {
20
+    /**
21
+     * render
22
+     *
23
+     * It would render view for VideoStream
24
+     */
11 25
     render() {
12 26
         return (react_1.default.createElement(RCTAgoraView, Object.assign({}, this.getHTMLProps())));
13 27
     }
28
+    /**
29
+     * getHTMLProps
30
+     *
31
+     * get agora view props
32
+     */
14 33
     getHTMLProps() {
15 34
         let htmlProps = {};
16 35
         for (let key in this.props) {

+ 1
- 1
lib/AgoraView.native.js.map View File

@@ -1 +1 @@
1
-{"version":3,"file":"AgoraView.native.js","sourceRoot":"","sources":["../src/AgoraView.native.tsx"],"names":[],"mappings":";;;AAAA,0DAA0B;AAC1B,+CAEqB;AAMrB,MAAM,YAAY,GAAG,qCAAsB,CAAC,cAAc,CAAC,CAAC;AAE5D;;GAEG;AACH,MAAqB,SAAU,SAAQ,eAAK,CAAC,SAAyB;IAC3D,MAAM;QACT,OAAO,CACH,8BAAC,YAAY,oBAAM,IAAI,CAAC,YAAY,EAAE,EAAK,CAC9C,CAAA;IACL,CAAC;IAEO,YAAY;QAChB,IAAI,SAAS,GAAG,EAAoB,CAAC;QACrC,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE;YACxB,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ;AAdD,4BAcC"}
1
+{"version":3,"file":"AgoraView.native.js","sourceRoot":"","sources":["../src/AgoraView.native.tsx"],"names":[],"mappings":";;;AAAA,0DAA0B;AAC1B,+CAEqB;AAMrB;;;;GAIG;AAEH,MAAM,YAAY,GAAG,qCAAsB,CAAC,cAAc,CAAC,CAAC;AAE5D;;;;;;GAMG;AACH,MAAqB,SAAU,SAAQ,eAAK,CAAC,SAAyB;IAClE;;;;OAIG;IACI,MAAM;QACT,OAAO,CACH,8BAAC,YAAY,oBAAM,IAAI,CAAC,YAAY,EAAE,EAAK,CAC9C,CAAA;IACL,CAAC;IAED;;;;OAIG;IACK,YAAY;QAChB,IAAI,SAAS,GAAG,EAAoB,CAAC;QACrC,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE;YACxB,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ;AAxBD,4BAwBC"}

+ 1036
- 36
lib/RtcEngine.native.js
File diff suppressed because it is too large
View File


+ 1
- 1
lib/RtcEngine.native.js.map
File diff suppressed because it is too large
View File


+ 10188
- 0
package-lock.json
File diff suppressed because it is too large
View File


+ 3
- 1
package.json View File

@@ -8,7 +8,8 @@
8 8
     "pu": "npm publish",
9 9
     "test": "echo \"Error: no test specified\" && exit 1",
10 10
     "lint": "tslint",
11
-    "build": "tsc"
11
+    "build": "tsc",
12
+    "doc": "typedoc --out docs/api ./src"
12 13
   },
13 14
   "repository": {
14 15
     "type": "git",
@@ -47,6 +48,7 @@
47 48
     "react-native-typescript-transformer": "^1.2.11",
48 49
     "ts-jest": "^23.10.5",
49 50
     "tslint": "^5.12.1",
51
+    "typedoc": "^0.14.2",
50 52
     "typescript": "^3.2.4"
51 53
   },
52 54
   "types": [

+ 21
- 1
src/AgoraView.native.tsx View File

@@ -7,18 +7,38 @@ import {
7 7
     AgoraViewProps
8 8
 } from "./types.d";
9 9
 
10
+/**
11
+ * Import RCTAgoraView from native binding.
12
+ * 
13
+ * This @object is used to bridge native layer between react layer.
14
+ */
15
+
10 16
 const RCTAgoraView = requireNativeComponent("RCTAgoraView");
11 17
 
12 18
 /**
13
- * @class AgoraView
19
+ * AgoraView is the render layer for rendering video stream
20
+ * 
21
+ * This class is used to rendering native sdk stream
22
+ * 
23
+ * @props {@link AgoraViewProps}
14 24
  */
15 25
 export default class AgoraView extends React.Component<AgoraViewProps> {
26
+    /**
27
+     * render
28
+     * 
29
+     * It would render view for VideoStream
30
+     */
16 31
     public render(): JSX.Element {
17 32
         return (
18 33
             <RCTAgoraView { ...this.getHTMLProps() } />
19 34
         )
20 35
     }
21 36
 
37
+    /**
38
+     * getHTMLProps
39
+     * 
40
+     * get agora view props
41
+     */
22 42
     private getHTMLProps(): AgoraViewProps {
23 43
         let htmlProps = {} as AgoraViewProps;
24 44
         for (let key in this.props) {

+ 1161
- 40
src/RtcEngine.native.ts
File diff suppressed because it is too large
View File


+ 92
- 189
src/types.d.ts View File

@@ -1,6 +1,6 @@
1 1
 import { View, ViewProps } from 'react-native';
2 2
 
3
-declare module "IAgora";
3
+declare module "IAgora"
4 4
 
5 5
 export interface VideoEncoderConfig {
6 6
   width: number,
@@ -68,7 +68,7 @@ export interface Color {
68 68
   alpha: number
69 69
 }
70 70
 
71
-export interface LiveTranscoding {
71
+export interface LiveTranscodingOption {
72 72
   size: Size,
73 73
   videoBitrate: number,
74 74
   videoFramerate: number,
@@ -86,197 +86,14 @@ export interface LiveTranscoding {
86 86
 }
87 87
 
88 88
 export interface VideoOption {
89
-  uid: Number,
89
+  uid: number,
90 90
   renderMode: number,
91 91
   reactTag: number
92 92
 }
93 93
 
94 94
 export interface AudioRecordingOption {
95
-  filePath: String,
96
-  quality: Number
97
-}
98
-
99
-export interface EventScheduler {
100
-  onWarning: Function,
101
- 
102
-  onError: Function,
103
-   
104
-  onJoinChannelSuccess: Function,
105
-   
106
-  onRejoinChannelSuccess: Function,
107
-   
108
-  onLeaveChannel: Function,
109
-   
110
-  onClientRoleChanged: Function,
111
-   
112
-  onUserJoined: Function,
113
-   
114
-  onUserOffline: Function,
115
-   
116
-  onConnectionStateChanged: Function,
117
-   
118
-  onConnectionInterrupted?: Function,
119
-   
120
-  onConnectionLost: Function,
121
-   
122
-  onConnectionBanned: Function,
123
-   
124
-  onApiCallExecuted: Function,
125
-   
126
-  onTokenPrivilegeWillExpire: Function,
127
-   
128
-  onRequestToken: Function,
129
-   
130
-  onMicrophoneEnabled: Function,
131
-   
132
-  onAudioVolumeIndication: Function,
133
-   
134
-  onActiveSpeaker: Function,
135
-   
136
-  onFirstLocalAudioFrame: Function,
137
-   
138
-  onFirstRemoteAudioFrame: Function,
139
-   
140
-  onVideoStopped: Function,
141
-   
142
-  onFirstLocalVideoFrame: Function,
143
-   
144
-  onFirstRemoteVideoDecoded: Function,
145
-   
146
-  onFirstRemoteVideoFrame: Function,
147
-   
148
-  onUserMuteAudio: Function,
149
-   
150
-  onUserMuteVideo: Function,
151
-   
152
-  onUserEnableVideo: Function,
153
-   
154
-  onUserEnableLocalVideo: Function,
155
-   
156
-  onVideoSizeChanged: Function,
157
-   
158
-  onRemoteVideoStateChanged: Function,
159
-   
160
-  onLocalPublishFallbackToAudioOnly: Function,
161
-   
162
-  onRemoteSubscribeFallbackToAudioOnly: Function,
163
-   
164
-  onAudioRouteChanged: Function,
165
-   
166
-  onCameraReady: Function,
167
-   
168
-  onCameraFocusAreaChanged: Function,
169
-   
170
-  onCameraExposureAreaChanged: Function,
171
-   
172
-  onAudioQuality: Function,
173
-   
174
-  onRtcStats: Function,
175
-   
176
-  onLastmileQuality: Function,
177
-   
178
-  onNetworkQuality: Function,
179
-   
180
-  onLocalVideoStats: Function,
181
-   
182
-  onRemoteVideoStats: Function,
183
-   
184
-  onRemoteAudioStats: Function,
185
-   
186
-  onLocalVideoStat: Function,
187
-   
188
-  onRemoteVideoStat: Function,
189
-   
190
-  onRemoteAudioTransportStats: Function,
191
-   
192
-  onRemoteVideoTransportStats: Function,
193
-   
194
-  onAudioMixingFinished: Function,
195
-   
196
-  onAudioEffectFinished: Function,
197
-   
198
-  onStreamPublished: Function,
199
-   
200
-  onStreamUnpublished: Function,
201
-   
202
-  onTranscodingUpdated: Function,
203
-   
204
-  onStreamInjectedStatus: Function,
205
-   
206
-  onStreamMessage: Function,
207
-   
208
-  onStreamMessageError: Function,
209
-   
210
-  onMediaEngineLoadSuccess: Function,
211
-   
212
-  onMediaEngineStartCallSuccess: Function,
213
-  // onWarning: Function,
214
-  // onError: Function,
215
-  // onJoinChannelSuccess: Function,
216
-  // onRejoinChannelSuccess: Function,
217
-  // onLeaveChannel: Function,
218
-  // onApiCallExecute: Function,
219
-  // onClientRoleChanged: Function,
220
-  // onUserJoined: Function,
221
-  // onUserOffline: Function,
222
-  // onConnectionStateChanged: Function,
223
-  // onConnectionInterrupted: Function,
224
-  // onTokenPrivilegeWillExpire: Function,
225
-  // onRequestToken: Function,
226
-  
227
-  // DidMicrophoneEnabled: Function,
228
-  // ReportAudioVolumeIndicationOfSpeakers: Function,
229
-  // ActiveSpeaker: Function,
230
-  // FirstLocalAudioFrame: Function,
231
-  // FirstRemoteAudioFrameOfUid: Function,
232
-  // VideoDidStop: Function,
233
-  // FirstLocalVideoFrameWithSize: Function,
234
-  // FirstRemoteVideoDecodedOfUid: Function,
235
-  // FirstRemoteVideoFrameOfUid: Function,
236
-  // DidAudioMuted: Function,
237
-  // DidVideoMuted: Function,
238
-  // DidVideoEnabled: Function,
239
-  // DidLocalVideoEnabled: Function,
240
-  // VideoSizeChangedOfUid: Function,
241
-  // RemoteVideoStateChangedOfUid: Function,
242
-  // DidLocalPublishFallbackToAudioOnly: Function,
243
-  // DidRemoteSubscribeFallbackToAudioOnly: Function,
244
-  
245
-  // DeviceTypeStateChanged: Function,
246
-  // DidAudioRouteChanged: Function,
247
-  // CameraDidReady: Function,
248
-  // CameraFocusDidChangedToRect: Function,
249
-  // CameraExposureDidChangedToRect: Function,
250
-  
251
-  // ReportRtcStats: Function,
252
-  // LastmileQuality: Function,
253
-  // NetworkQuality: Function,
254
-  // LocalVideoStats: Function,
255
-  // RemoteVideoStats: Function,
256
-  // RemoteAudioStats: Function,
257
-  // AudioTransportStatsOfUid: Function,
258
-  // VideoTransportStatsOfUid: Function,
259
-  
260
-  // LocalAudioMixingDidFinish: Function,
261
-  // RemoteAudioMixingDidStart: Function,
262
-  // RemoteAudioMixingDidFinish: Function,
263
-  // DidAudioEffectFinish: Function,
264
-  
265
-  // StreamPublished: Function,
266
-  // StreamUnpublish: Function,
267
-  // TranscodingUpdated: Function,
268
-  
269
-  // StreamInjectedStatus: Function,
270
-  
271
-  // ReceiveStreamMessage: Function,
272
-  // DidOccurStreamMessageError: Function,
273
-  
274
-  // MediaEngineDidLoaded: Function,
275
-  // MediaEngineDidStartCall: Function,
276
-  
277
-  // ConnectionDidInterrupted: Function,
278
-  // ConnectionDidBanned: Function,
279
-  // AudioQualityOfUi: Function
95
+  filepath: String,
96
+  quality: number
280 97
 }
281 98
 
282 99
 export type Callback<T> = (err: any, data: any) => T;
@@ -288,7 +105,93 @@ export type Number = Nullable<number> | 0;
288 105
 
289 106
 export interface AgoraViewProps extends ViewProps {
290 107
   showLocalVideo: boolean,
291
-  remoteUid: Number,
108
+  remoteUid: number,
292 109
   zOrderMediaOverlay: boolean,
293 110
   [key:string]: any;
111
+}
112
+
113
+export interface DataStreamOption {
114
+  streamId: number,
115
+  ordered: boolean,
116
+  reliable: boolean
117
+}
118
+
119
+export interface AudioMixingOption {
120
+  filepath: String,
121
+  loopback: boolean,
122
+  replace: boolean,
123
+  cycle: number
124
+}
125
+
126
+export interface PlayEffectOption {
127
+  soundId: number,
128
+  filepath: String,
129
+  loopcount: number,
130
+  pitch: number,
131
+  pan: number,
132
+  gain: number,
133
+  publish: boolean
134
+}
135
+
136
+export interface AudioFrameOption {
137
+  sampleRate: number,
138
+  channel: number,
139
+  mode: number,
140
+  samplesPerCall: number
141
+}
142
+
143
+export interface MixedAudioFrameOption {
144
+  sampleRate: number,
145
+  samplesPerCall: number
146
+}
147
+
148
+export interface ImageOption {
149
+  url: String,
150
+  height: number,
151
+  width: number,
152
+  x: number,
153
+  y: number
154
+}
155
+
156
+export interface VideoStreamOption {
157
+  uid: number,
158
+  streamType: number
159
+}
160
+
161
+export interface DefaultVideoStreamOption {
162
+  streamType: number
163
+}
164
+
165
+export interface InjectStreamOption {
166
+  url: String,
167
+  config: {
168
+    size: {
169
+      width: number,
170
+      height: number,
171
+    },
172
+    videoGop: number,
173
+    videoBitrate: number,
174
+    videoFramerate: number,
175
+    audioBitrate: number,
176
+    audioSampleRate: number,
177
+    audioChannels: number
178
+  }
179
+}
180
+
181
+export interface RemoveInjectStreamOption {
182
+  url: String
183
+}
184
+
185
+export interface PublishStreamOption {
186
+  url: String,
187
+  enable: boolean
188
+}
189
+
190
+export interface RemovePublishStreamOption {
191
+  url: String
192
+}
193
+
194
+export interface PositionOption {
195
+  x: number,
196
+  y: number
294 197
 }

+ 4
- 0
typedoc.json View File

@@ -0,0 +1,4 @@
1
+{
2
+    "mode": "file",
3
+    "out": "docs/api"
4
+}