react-native-video-trim 1.0.16 → 1.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -2
- package/android/src/main/java/com/videotrim/utils/VideoTrimmerUtil.java +4 -4
- package/android/src/main/java/com/videotrim/widgets/VideoTrimmerView.java +23 -28
- package/ios/VideoTrim.swift +4 -0
- package/ios/VideoTrimmer.swift +7 -5
- package/ios/VideoTrimmerViewController.swift +5 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.tsx +1 -0
package/README.md
CHANGED
|
@@ -15,9 +15,16 @@ npm install react-native-video-trim
|
|
|
15
15
|
|
|
16
16
|
yarn add react-native-video-trim
|
|
17
17
|
```
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
## For iOS (React Native CLI project)
|
|
19
|
+
Run the following command to setup for iOS:
|
|
20
|
+
```
|
|
21
|
+
npx pod-install ios
|
|
20
22
|
```
|
|
23
|
+
## For Expo project
|
|
24
|
+
You need to run `prebuild` in order for native code takes effect:
|
|
25
|
+
```
|
|
26
|
+
npx expo prebuild
|
|
27
|
+
|
|
21
28
|
npx pod-install ios
|
|
22
29
|
```
|
|
23
30
|
|
|
@@ -149,6 +156,7 @@ Main method to show Video Editor UI.
|
|
|
149
156
|
- `saveToPhoto` (optional, `default = true`): whether to save video to photo/gallery after editing
|
|
150
157
|
- `removeAfterSavedToPhoto` (optional, `default = false`): whether to remove output file from storage after saved to Photo
|
|
151
158
|
- `maxDuration` (optional): maximum duration for the trimmed video
|
|
159
|
+
- `minDuration` (optional): minimum duration for the trimmed video
|
|
152
160
|
- `cancelButtonText` (optional): text of left button in Editor dialog
|
|
153
161
|
- `saveButtonText` (optional): text of right button in Editor dialog
|
|
154
162
|
- `enableCancelDialog` (optional, `default = true`): whether to show alert dialog on press Cancel
|
|
@@ -17,10 +17,10 @@ public class VideoTrimmerUtil {
|
|
|
17
17
|
|
|
18
18
|
private static final String TAG = VideoTrimmerUtil.class.getSimpleName();
|
|
19
19
|
public static final String FILE_PREFIX = "trimmedVideo";
|
|
20
|
-
public static final long MIN_SHOOT_DURATION =
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
public static long maxShootDuration = 10 * 1000L;
|
|
20
|
+
public static final long MIN_SHOOT_DURATION = 1000L;// min 3 seconds for trimming
|
|
21
|
+
public static final int VIDEO_MAX_TIME = 10;// max 10 seconds for trimming
|
|
22
|
+
public static final long MAX_SHOOT_DURATION = VIDEO_MAX_TIME * 1000L;
|
|
23
|
+
// public static long maxShootDuration = 10 * 1000L;
|
|
24
24
|
public static int MAX_COUNT_RANGE = 10; // how many images in the highlight range of seek bar
|
|
25
25
|
public static int SCREEN_WIDTH_FULL = DeviceUtil.getDeviceWidth();
|
|
26
26
|
public static final int RECYCLER_VIEW_PADDING = UnitConverter.dpToPx(35);
|
|
@@ -25,7 +25,7 @@ import android.widget.RelativeLayout;
|
|
|
25
25
|
import android.widget.TextView;
|
|
26
26
|
import android.widget.Toast;
|
|
27
27
|
|
|
28
|
-
import androidx.
|
|
28
|
+
import androidx.annotation.NonNull;
|
|
29
29
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
30
30
|
import androidx.recyclerview.widget.RecyclerView;
|
|
31
31
|
|
|
@@ -52,7 +52,7 @@ public class VideoTrimmerView extends FrameLayout implements IVideoTrimmerView {
|
|
|
52
52
|
|
|
53
53
|
private static final String TAG = VideoTrimmerView.class.getSimpleName();
|
|
54
54
|
|
|
55
|
-
private int mMaxWidth = VIDEO_FRAMES_WIDTH;
|
|
55
|
+
private final int mMaxWidth = VIDEO_FRAMES_WIDTH;
|
|
56
56
|
private ReactApplicationContext mContext;
|
|
57
57
|
private RelativeLayout mLinearVideo;
|
|
58
58
|
private ZVideoView mVideoView;
|
|
@@ -74,13 +74,12 @@ public class VideoTrimmerView extends FrameLayout implements IVideoTrimmerView {
|
|
|
74
74
|
private long scrollPos = 0;
|
|
75
75
|
private int mScaledTouchSlop;
|
|
76
76
|
private int lastScrollX;
|
|
77
|
-
private boolean isSeeking;
|
|
78
|
-
private boolean isOverScaledTouchSlop;
|
|
79
77
|
private int mThumbsTotalCount;
|
|
80
78
|
private ValueAnimator mRedProgressAnimator;
|
|
81
|
-
private Handler mAnimationHandler = new Handler();
|
|
79
|
+
private final Handler mAnimationHandler = new Handler();
|
|
82
80
|
private Boolean mIsPrepared = false;
|
|
83
|
-
private
|
|
81
|
+
private long mMaxDuration = VideoTrimmerUtil.MAX_SHOOT_DURATION;
|
|
82
|
+
private long mMinDuration = VideoTrimmerUtil.MIN_SHOOT_DURATION;
|
|
84
83
|
|
|
85
84
|
|
|
86
85
|
public VideoTrimmerView(ReactApplicationContext context, AttributeSet attrs) {
|
|
@@ -125,12 +124,12 @@ public class VideoTrimmerView extends FrameLayout implements IVideoTrimmerView {
|
|
|
125
124
|
VideoTrimmerUtil.VIDEO_FRAMES_WIDTH = VideoTrimmerUtil.SCREEN_WIDTH_FULL - RECYCLER_VIEW_PADDING * 2;
|
|
126
125
|
VideoTrimmerUtil.MAX_COUNT_RANGE = Math.max(((int) VIDEO_FRAMES_WIDTH / VideoTrimmerUtil.mThumbWidth), VideoTrimmerUtil.MAX_COUNT_RANGE);
|
|
127
126
|
|
|
128
|
-
if (mDuration <=
|
|
127
|
+
if (mDuration <= mMaxDuration) {
|
|
129
128
|
mThumbsTotalCount = VideoTrimmerUtil.MAX_COUNT_RANGE;
|
|
130
129
|
mRightProgressPos = mDuration;
|
|
131
130
|
} else {
|
|
132
|
-
mThumbsTotalCount = (int) (mDuration * 1.0f / (
|
|
133
|
-
mRightProgressPos =
|
|
131
|
+
mThumbsTotalCount = (int) (mDuration * 1.0f / (mMaxDuration * 1.0f) * VideoTrimmerUtil.MAX_COUNT_RANGE);
|
|
132
|
+
mRightProgressPos = mMaxDuration;
|
|
134
133
|
}
|
|
135
134
|
|
|
136
135
|
mVideoThumbRecyclerView.addItemDecoration(new SpacesItemDecoration2(RECYCLER_VIEW_PADDING, mThumbsTotalCount));
|
|
@@ -138,12 +137,12 @@ public class VideoTrimmerView extends FrameLayout implements IVideoTrimmerView {
|
|
|
138
137
|
mRangeSeekBarView.setSelectedMinValue(mLeftProgressPos);
|
|
139
138
|
mRangeSeekBarView.setSelectedMaxValue(mRightProgressPos);
|
|
140
139
|
mRangeSeekBarView.setStartEndTime(mLeftProgressPos, mRightProgressPos);
|
|
141
|
-
mRangeSeekBarView.setMinShootTime(
|
|
140
|
+
mRangeSeekBarView.setMinShootTime(mMinDuration);
|
|
142
141
|
mRangeSeekBarView.setNotifyWhileDragging(true);
|
|
143
142
|
mRangeSeekBarView.setOnRangeSeekBarChangeListener(mOnRangeSeekBarChangeListener);
|
|
144
143
|
mSeekBarLayout.addView(mRangeSeekBarView);
|
|
145
144
|
if(mThumbsTotalCount - VideoTrimmerUtil.MAX_COUNT_RANGE > 0) {
|
|
146
|
-
mAverageMsPx = (mDuration -
|
|
145
|
+
mAverageMsPx = (mDuration - mMaxDuration) / (float) (mThumbsTotalCount - VideoTrimmerUtil.MAX_COUNT_RANGE);
|
|
147
146
|
} else {
|
|
148
147
|
mAverageMsPx = 0f;
|
|
149
148
|
}
|
|
@@ -185,14 +184,13 @@ public class VideoTrimmerView extends FrameLayout implements IVideoTrimmerView {
|
|
|
185
184
|
mVideoView.setLayoutParams(lp);
|
|
186
185
|
mDuration = mVideoView.getDuration();
|
|
187
186
|
|
|
188
|
-
|
|
187
|
+
mMaxDuration = Math.min(mMaxDuration, mDuration);
|
|
189
188
|
|
|
190
189
|
MediaMetadataRetriever mediaMetadataRetriever = new MediaMetadataRetriever();
|
|
191
190
|
mediaMetadataRetriever.setDataSource(mContext, mSourceUri);
|
|
192
191
|
// take first frame
|
|
193
192
|
Bitmap bitmap = mediaMetadataRetriever.getFrameAtTime(0, MediaMetadataRetriever.OPTION_CLOSEST_SYNC);
|
|
194
|
-
|
|
195
|
-
VideoTrimmerUtil.mThumbWidth = width;
|
|
193
|
+
VideoTrimmerUtil.mThumbWidth = VideoTrimmerUtil.THUMB_HEIGHT * bitmap.getWidth() / bitmap.getHeight();
|
|
196
194
|
|
|
197
195
|
if (!getRestoreState()) {
|
|
198
196
|
seekTo((int) mRedProgressBarPos);
|
|
@@ -267,8 +265,8 @@ public class VideoTrimmerView extends FrameLayout implements IVideoTrimmerView {
|
|
|
267
265
|
}
|
|
268
266
|
|
|
269
267
|
public void onSaveClicked() {
|
|
270
|
-
if (mRightProgressPos - mLeftProgressPos <
|
|
271
|
-
Toast.makeText(mContext, "Video
|
|
268
|
+
if (mRightProgressPos - mLeftProgressPos < mMinDuration) {
|
|
269
|
+
Toast.makeText(mContext, "Video is too short, can't proceed", Toast.LENGTH_SHORT).show();
|
|
272
270
|
} else {
|
|
273
271
|
mVideoView.pause();
|
|
274
272
|
VideoTrimmerUtil.trim(
|
|
@@ -308,14 +306,11 @@ public class VideoTrimmerView extends FrameLayout implements IVideoTrimmerView {
|
|
|
308
306
|
mRightProgressPos = Math.min(maxValue + scrollPos, mDuration);
|
|
309
307
|
switch (action) {
|
|
310
308
|
case MotionEvent.ACTION_DOWN:
|
|
311
|
-
isSeeking = false;
|
|
312
309
|
break;
|
|
313
310
|
case MotionEvent.ACTION_MOVE:
|
|
314
|
-
isSeeking = true;
|
|
315
311
|
seekTo((int) (pressedThumb == RangeSeekBarView.Thumb.MIN ? mLeftProgressPos : mRightProgressPos));
|
|
316
312
|
break;
|
|
317
313
|
case MotionEvent.ACTION_UP:
|
|
318
|
-
isSeeking = false;
|
|
319
314
|
seekTo((int) mLeftProgressPos);
|
|
320
315
|
break;
|
|
321
316
|
default:
|
|
@@ -329,21 +324,18 @@ public class VideoTrimmerView extends FrameLayout implements IVideoTrimmerView {
|
|
|
329
324
|
|
|
330
325
|
private final RecyclerView.OnScrollListener mOnScrollListener = new RecyclerView.OnScrollListener() {
|
|
331
326
|
@Override
|
|
332
|
-
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
|
|
327
|
+
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
|
|
333
328
|
super.onScrollStateChanged(recyclerView, newState);
|
|
334
329
|
}
|
|
335
330
|
|
|
336
331
|
@Override
|
|
337
|
-
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
|
|
332
|
+
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
|
|
338
333
|
super.onScrolled(recyclerView, dx, dy);
|
|
339
|
-
isSeeking = false;
|
|
340
334
|
int scrollX = calcScrollXDistance();
|
|
341
|
-
|
|
335
|
+
|
|
342
336
|
if (Math.abs(lastScrollX - scrollX) < mScaledTouchSlop) {
|
|
343
|
-
isOverScaledTouchSlop = false;
|
|
344
337
|
return;
|
|
345
338
|
}
|
|
346
|
-
isOverScaledTouchSlop = true;
|
|
347
339
|
//初始状态,why ? 因为默认的时候有35dp的空白!
|
|
348
340
|
if (scrollX == -RECYCLER_VIEW_PADDING) {
|
|
349
341
|
scrollPos = 0;
|
|
@@ -354,7 +346,6 @@ public class VideoTrimmerView extends FrameLayout implements IVideoTrimmerView {
|
|
|
354
346
|
mRightProgressPos = Math.min(mRangeSeekBarView.getSelectedMaxValue() + scrollPos, mDuration);
|
|
355
347
|
mRedProgressBarPos = mLeftProgressPos;
|
|
356
348
|
} else {
|
|
357
|
-
isSeeking = true;
|
|
358
349
|
scrollPos = (long) (mAverageMsPx * (RECYCLER_VIEW_PADDING + scrollX) / VideoTrimmerUtil.mThumbWidth);
|
|
359
350
|
mLeftProgressPos = mRangeSeekBarView.getSelectedMinValue() + scrollPos;
|
|
360
351
|
|
|
@@ -418,7 +409,7 @@ public class VideoTrimmerView extends FrameLayout implements IVideoTrimmerView {
|
|
|
418
409
|
}
|
|
419
410
|
}
|
|
420
411
|
|
|
421
|
-
private Runnable mAnimationRunnable = () -> updateVideoProgress();
|
|
412
|
+
private final Runnable mAnimationRunnable = () -> updateVideoProgress();
|
|
422
413
|
|
|
423
414
|
private void updateVideoProgress() {
|
|
424
415
|
long currentPosition = mVideoView.getCurrentPosition();
|
|
@@ -463,7 +454,11 @@ public class VideoTrimmerView extends FrameLayout implements IVideoTrimmerView {
|
|
|
463
454
|
|
|
464
455
|
private void configure(ReadableMap config) {
|
|
465
456
|
if (config.hasKey("maxDuration")) {
|
|
466
|
-
this.mMaxDuration = config.getInt("maxDuration");
|
|
457
|
+
this.mMaxDuration = Math.max(0, config.getInt("maxDuration") * 1000L);
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
if (config.hasKey("minDuration")) {
|
|
461
|
+
this.mMinDuration = Math.max(1000L, config.getInt("minDuration") * 1000L);
|
|
467
462
|
}
|
|
468
463
|
|
|
469
464
|
if (config.hasKey("cancelButtonText")) {
|
package/ios/VideoTrim.swift
CHANGED
|
@@ -85,6 +85,10 @@ class VideoTrim: RCTEventEmitter {
|
|
|
85
85
|
vc.maximumDuration = maxDuration
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
+
if let minDuration = config["minDuration"] as? Int {
|
|
89
|
+
vc.minimumDuration = minDuration
|
|
90
|
+
}
|
|
91
|
+
|
|
88
92
|
if let cancelBtnText = config["cancelButtonText"] as? String, !cancelBtnText.isEmpty {
|
|
89
93
|
vc.cancelBtnText = cancelBtnText
|
|
90
94
|
}
|
package/ios/VideoTrimmer.swift
CHANGED
|
@@ -73,7 +73,7 @@ import AVFoundation
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
// a clip cannot be trimmed shorter than this duration
|
|
76
|
-
var minimumDuration: CMTime =
|
|
76
|
+
var minimumDuration: CMTime = CMTime(seconds: 1, preferredTimescale: 600)
|
|
77
77
|
var maximumDuration: CMTime = .positiveInfinity
|
|
78
78
|
|
|
79
79
|
// the available range of the asset.
|
|
@@ -577,8 +577,9 @@ import AVFoundation
|
|
|
577
577
|
|
|
578
578
|
var didClamp = false
|
|
579
579
|
if CMTimeCompare(newDuration, minimumDuration) == -1 {
|
|
580
|
-
time = CMTimeSubtract(selectedRange.end, minimumDuration)
|
|
581
|
-
didClamp = true
|
|
580
|
+
// time = CMTimeSubtract(selectedRange.end, minimumDuration)
|
|
581
|
+
// didClamp = true
|
|
582
|
+
return
|
|
582
583
|
}
|
|
583
584
|
if CMTimeCompare(time, range.start) == -1 {
|
|
584
585
|
time = range.start
|
|
@@ -644,8 +645,9 @@ import AVFoundation
|
|
|
644
645
|
|
|
645
646
|
var didClamp = false
|
|
646
647
|
if CMTimeCompare(newDuration, minimumDuration) == -1 {
|
|
647
|
-
time = CMTimeAdd(selectedRange.start, minimumDuration)
|
|
648
|
-
didClamp = true
|
|
648
|
+
// time = CMTimeAdd(selectedRange.start, minimumDuration)
|
|
649
|
+
// didClamp = true
|
|
650
|
+
return
|
|
649
651
|
}
|
|
650
652
|
if CMTimeCompare(time, range.start) == -1 {
|
|
651
653
|
time = range.start
|
|
@@ -42,6 +42,7 @@ extension AVAsset {
|
|
|
42
42
|
class VideoTrimmerViewController: UIViewController {
|
|
43
43
|
var asset: AVAsset!
|
|
44
44
|
var maximumDuration: Int?
|
|
45
|
+
var minimumDuration: Int?
|
|
45
46
|
var cancelBtnText = "Cancel"
|
|
46
47
|
var saveButtonText = "Save"
|
|
47
48
|
var cancelBtnClicked: (() -> Void)?
|
|
@@ -209,6 +210,10 @@ class VideoTrimmerViewController: UIViewController {
|
|
|
209
210
|
|
|
210
211
|
trimmer.selectedRange = CMTimeRange(start: .zero, end: trimmer.maximumDuration)
|
|
211
212
|
}
|
|
213
|
+
|
|
214
|
+
if minimumDuration != nil {
|
|
215
|
+
trimmer.minimumDuration = CMTime(seconds: max(1, Double(minimumDuration!)), preferredTimescale: 600) // minimum 1 second
|
|
216
|
+
}
|
|
212
217
|
|
|
213
218
|
trimmer.addTarget(self, action: #selector(didBeginTrimming(_:)), for: VideoTrimmer.didBeginTrimming)
|
|
214
219
|
trimmer.addTarget(self, action: #selector(didEndTrimming(_:)), for: VideoTrimmer.didEndTrimming)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","VideoTrim","NativeModules","Proxy","get","Error","showEditor","filePath","config","arguments","length","undefined","trim","saveToPhoto","outputPath","OS","Version","saveVideo","removeAfterSavedToPhoto","deleteFile","granted","PermissionsAndroid","request","PERMISSIONS","WRITE_EXTERNAL_STORAGE","title","message","buttonNeutral","buttonNegative","buttonPositive","RESULTS","GRANTED","err","hideDialog","isValidVideo","listFiles","cleanFiles"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,aAAa,GAChB,kFAAiF,GAClFC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,SAAS,GAAGC,0BAAa,CAACD,SAAS,GACrCC,0BAAa,CAACD,SAAS,GACvB,IAAIE,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACT,aAAa,CAAC;EAChC;AACF,CACF,CAAC;
|
|
1
|
+
{"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","VideoTrim","NativeModules","Proxy","get","Error","showEditor","filePath","config","arguments","length","undefined","trim","saveToPhoto","outputPath","OS","Version","saveVideo","removeAfterSavedToPhoto","deleteFile","granted","PermissionsAndroid","request","PERMISSIONS","WRITE_EXTERNAL_STORAGE","title","message","buttonNeutral","buttonNegative","buttonPositive","RESULTS","GRANTED","err","hideDialog","isValidVideo","listFiles","cleanFiles"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","PermissionsAndroid","Platform","LINKING_ERROR","select","ios","default","VideoTrim","Proxy","get","Error","showEditor","filePath","config","arguments","length","undefined","trim","saveToPhoto","outputPath","OS","Version","saveVideo","removeAfterSavedToPhoto","deleteFile","granted","request","PERMISSIONS","WRITE_EXTERNAL_STORAGE","title","message","buttonNeutral","buttonNegative","buttonPositive","RESULTS","GRANTED","err","hideDialog","isValidVideo","listFiles","cleanFiles"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,aAAa,EAAEC,kBAAkB,EAAEC,QAAQ,QAAQ,cAAc;AAE1E,MAAMC,aAAa,GAChB,kFAAiF,GAClFD,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,SAAS,GAAGP,aAAa,CAACO,SAAS,GACrCP,aAAa,CAACO,SAAS,GACvB,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CAAC;
|
|
1
|
+
{"version":3,"names":["NativeModules","PermissionsAndroid","Platform","LINKING_ERROR","select","ios","default","VideoTrim","Proxy","get","Error","showEditor","filePath","config","arguments","length","undefined","trim","saveToPhoto","outputPath","OS","Version","saveVideo","removeAfterSavedToPhoto","deleteFile","granted","request","PERMISSIONS","WRITE_EXTERNAL_STORAGE","title","message","buttonNeutral","buttonNegative","buttonPositive","RESULTS","GRANTED","err","hideDialog","isValidVideo","listFiles","cleanFiles"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAmBA,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,YAAiB,GACxB,OAAO,CAAC,IAAI,CAAC,CAgDf;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAK/D;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAE7C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAE5C;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAK7D"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAmBA,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,YAAiB,GACxB,OAAO,CAAC,IAAI,CAAC,CAgDf;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAK/D;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAE7C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAE5C;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAK7D"}
|
package/package.json
CHANGED
package/src/index.tsx
CHANGED