react-native-attachment-kit 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/README.md +4 -2
- package/android/src/main/libs/rnattachmentkit-release.aar +0 -0
- package/android/src/newarch/java/com/rnattachmentkit/RNAttachmentKitModule.kt +24 -0
- package/android/src/oldarch/java/com/rnattachmentkit/RNAttachmentKitModule.kt +24 -0
- package/ios/RNAttachmentKit.swift +20 -0
- package/ios/RNAttachmentKit.xcframework/Info.plist +5 -5
- package/ios/RNAttachmentKit.xcframework/ios-arm64/RNAttachmentKit.framework/Assets.car +0 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios.abi.json +265 -2
- package/ios/RNAttachmentKit.xcframework/ios-arm64/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios.private.swiftinterface +3 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios.swiftinterface +3 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64/RNAttachmentKit.framework/RNAttachmentKit +0 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64/RNAttachmentKit.framework/_CodeSignature/CodeDirectory +0 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64/RNAttachmentKit.framework/_CodeSignature/CodeResources +12 -12
- package/ios/RNAttachmentKit.xcframework/ios-arm64/RNAttachmentKit.framework/_CodeSignature/CodeSignature +0 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios-simulator.abi.json +265 -2
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +3 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios-simulator.swiftinterface +3 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/x86_64-apple-ios-simulator.abi.json +265 -2
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +3 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +3 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/RNAttachmentKit +0 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/_CodeSignature/CodeDirectory +0 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/_CodeSignature/CodeResources +20 -20
- package/package.json +1 -1
- package/src/index.ts +4 -3
- package/src/types.ts +28 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.1.1 — 2026-11-03
|
|
4
|
+
|
|
5
|
+
- **Viewer: `sourceClipInsets` / `sourceClipRect` options — the zoom open / close stays behind translucent bars (iOS + Android `useOverlayViewer`)**. The moving photo and the `hideSourceImage` mask are drawn in the window above the app, so a thumbnail half under the app's translucent top bar flew back *over* the bar and the mask covered the bar too. With a clip area (screen-edge insets, a rect in `sourceRect` coordinates, or both = intersection) they are drawn only inside it: on open the photo starts cut at the bar and the clip widens to the full screen during the second half (the viewer itself is never cut); on close it narrows back in the first 20 % (the viewer background turns transparent at once on close, so the photo never covers the bar), and the part under the bar disappears behind it. Checked on the iOS simulator (HeyTalk feed): a cell half under the translucent top bar opens from behind the bar and closes back behind it; a cell clear of the bar animates as before. `updateSourceRect` takes the same keys (changed only when passed, `null` = no clip) for paging to another thumbnail. Without the options nothing changes.
|
|
6
|
+
- iOS: `ZoomTransitionAnimator.sourceClipRect` / `sourceClipInsets` (public) — the dummy image sits in a full-screen view whose `mask` view animates between the clip and the bounds; the source mask sits in a holder of the clip's size (`clipsToBounds`). Other users of the animator (gallery, media gallery) pass nothing.
|
|
7
|
+
- Android: `ImageViewerOverlayView` sets `clipBounds` on the dummy image (lerped with the open / close progress) and on the mask (its own coordinates, refreshed whenever the mask moves). Insets are measured from the window's decor view. The Activity / Dialog viewers ignore the options.
|
|
3
8
|
## 1.1.0 — 2026-10-27
|
|
4
9
|
|
|
5
10
|
- **New public API for native screens: `AttachmentProcessor` (iOS framework + Android aar)** — the "after picking" processing that used to live only inside the RN bridge (photo resize and save as webp / jpg / png, photo thumbnail, video export with `VideoExporter` and its poster, the processing-start slots with predicted sizes and posters, progress throttling, per-video cancel, temp files and the result model). An app's own native screen can now open the kit gallery and process the result with exactly the same code as `openGallery`, so both produce the same files (size, thumbnail, poster).
|
package/README.md
CHANGED
|
@@ -341,6 +341,8 @@ ref.current?.measure((x, y, width, height, pageX, pageY) => {
|
|
|
341
341
|
| `sourceBorderCorners` | `('topLeft' \| 'topRight' \| 'bottomLeft' \| 'bottomRight')[]` | Which corners are rounded (chat-bubble groups). `[]` = none. |
|
|
342
342
|
| `sourceBackgroundColor` | `string` | Background behind the thumbnail during the animation. |
|
|
343
343
|
| `hideSourceImage` | `boolean` | A native mask hides the source thumbnail while the viewer is open. |
|
|
344
|
+
| `sourceClipInsets` | `{ top?, bottom?, left?, right? }` | Screen-edge insets of the area where the **moving photo and the `hideSourceImage` mask** are drawn during the zoom open / close (e.g. `{ top: headerHeight, bottom: tabBarHeight }` for translucent bars). A thumbnail half under a translucent bar then slides **behind** the bar instead of over it. The clip widens to the full screen in the second half of the open (when the viewer background covers the bar) and narrows in the first 20 % of the close, so the viewer itself is never cut. iOS + Android `useOverlayViewer`. |
|
|
345
|
+
| `sourceClipRect` | `SourceRect` | Same, as a rect in `sourceRect` coordinates (e.g. a list area inside a sheet). With both, the intersection is used. Omit both = no clipping (as before). |
|
|
344
346
|
|
|
345
347
|
**Actions**
|
|
346
348
|
|
|
@@ -368,8 +370,8 @@ ref.current?.measure((x, y, width, height, pageX, pageY) => {
|
|
|
368
370
|
| `useDialogViewer: true` | DialogFragment — no `AppState` blip, but background RN layout changes may not render until it closes. |
|
|
369
371
|
| `useOverlayViewer: true` | ⭐ View on top of the host Activity's window — no `AppState` blip, background changes render in real time. Wins over `useDialogViewer`. |
|
|
370
372
|
|
|
371
|
-
#### `updateSourceRect(rect:
|
|
372
|
-
Updates where the viewer closes to (e.g. after paging to another thumbnail or scrolling).
|
|
373
|
+
#### `updateSourceRect(rect: ViewerSourceUpdate): Promise<void>`
|
|
374
|
+
Updates where the viewer closes to (e.g. after paging to another thumbnail or scrolling). `ViewerSourceUpdate = SourceRect & { sourceBorderRadius?, sourceBorderCorners?, sourceClipRect?, sourceClipInsets? }` — the clip keys change only when passed (`null` = stop clipping).
|
|
373
375
|
|
|
374
376
|
#### `injectImageCache(url: string, localPath: string): Promise<boolean>`
|
|
375
377
|
Seeds the viewer's image cache with a local file for a remote URL, so it opens instantly without network.
|
|
Binary file
|
|
@@ -212,12 +212,33 @@ class RNAttachmentKitModule(reactContext: ReactApplicationContext) :
|
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
214
|
|
|
215
|
+
// 잘라내기 영역 — 넘긴 키만 바뀜 (useOverlayViewer 뷰어만 반영)
|
|
216
|
+
clipArrayOf(options, "sourceClipRect")?.let { intent.putExtra("sourceClipRect", it) }
|
|
217
|
+
clipArrayOf(options, "sourceClipInsets")?.let { intent.putExtra("sourceClipInsets", it) }
|
|
215
218
|
androidx.localbroadcastmanager.content.LocalBroadcastManager.getInstance(reactApplicationContext)
|
|
216
219
|
.sendBroadcast(intent)
|
|
217
220
|
|
|
218
221
|
promise.resolve(null)
|
|
219
222
|
}
|
|
220
223
|
|
|
224
|
+
/**
|
|
225
|
+
* sourceClipRect {x,y,width,height} / sourceClipInsets {top,bottom,left,right} (dp) → 화면 px [l,t,r,b]
|
|
226
|
+
* (여백이면 각 변의 여백). 키가 없으면 null(안 바꿈), 값이 null 이면 빈 배열(자르지 않음).
|
|
227
|
+
*/
|
|
228
|
+
private fun clipArrayOf(options: ReadableMap, key: String): FloatArray? {
|
|
229
|
+
if (!options.hasKey(key)) return null
|
|
230
|
+
if (options.isNull(key)) return FloatArray(0)
|
|
231
|
+
val m = options.getMap(key) ?: return FloatArray(0)
|
|
232
|
+
fun px(k: String) = if (m.hasKey(k) && !m.isNull(k)) com.facebook.react.uimanager.PixelUtil.toPixelFromDIP(m.getDouble(k).toFloat()) else 0f
|
|
233
|
+
return if (key == "sourceClipRect") {
|
|
234
|
+
val x = px("x")
|
|
235
|
+
val y = px("y")
|
|
236
|
+
floatArrayOf(x, y, x + px("width"), y + px("height"))
|
|
237
|
+
} else {
|
|
238
|
+
floatArrayOf(px("left"), px("top"), px("right"), px("bottom"))
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
221
242
|
override fun getName(): String = NAME
|
|
222
243
|
|
|
223
244
|
override fun init(licenseKey: String, promise: Promise) {
|
|
@@ -664,6 +685,9 @@ class RNAttachmentKitModule(reactContext: ReactApplicationContext) :
|
|
|
664
685
|
if (options.hasKey("sourceBackgroundColor")) {
|
|
665
686
|
putString("sourceBackgroundColor", options.getString("sourceBackgroundColor"))
|
|
666
687
|
}
|
|
688
|
+
// 잘라내기 영역 (열림·닫힘 중 사진과 가림 판이 그려지는 곳) — 이 오버레이 뷰어만
|
|
689
|
+
clipArrayOf(options, "sourceClipRect")?.let { putFloatArray("sourceClipRect", it) }
|
|
690
|
+
clipArrayOf(options, "sourceClipInsets")?.let { putFloatArray("sourceClipInsets", it) }
|
|
667
691
|
// placeholderImages: 타입/뷰어 코드에는 있었지만 브릿지에서 한 번도 전달되지 않았던
|
|
668
692
|
// 필드. 네이티브 뷰어가 onlyRetrieveFromCache(true)로 첫 프레임을 즉시 그리려 할 때
|
|
669
693
|
// 쓰는 저해상도 대체 이미지 목록입니다(원본 다운로드 전 임시 표시용).
|
|
@@ -522,10 +522,31 @@ class RNAttachmentKitModule(reactContext: ReactApplicationContext) :
|
|
|
522
522
|
intent.putStringArrayListExtra("sourceBorderCorners", corners)
|
|
523
523
|
}
|
|
524
524
|
}
|
|
525
|
+
// 잘라내기 영역 — 넘긴 키만 바뀜 (useOverlayViewer 뷰어만 반영)
|
|
526
|
+
clipArrayOf(options, "sourceClipRect")?.let { intent.putExtra("sourceClipRect", it) }
|
|
527
|
+
clipArrayOf(options, "sourceClipInsets")?.let { intent.putExtra("sourceClipInsets", it) }
|
|
525
528
|
androidx.localbroadcastmanager.content.LocalBroadcastManager.getInstance(reactApplicationContext).sendBroadcast(intent)
|
|
526
529
|
promise.resolve(null)
|
|
527
530
|
}
|
|
528
531
|
|
|
532
|
+
/**
|
|
533
|
+
* sourceClipRect {x,y,width,height} / sourceClipInsets {top,bottom,left,right} (dp) → 화면 px [l,t,r,b]
|
|
534
|
+
* (여백이면 각 변의 여백). 키가 없으면 null(안 바꿈), 값이 null 이면 빈 배열(자르지 않음).
|
|
535
|
+
*/
|
|
536
|
+
private fun clipArrayOf(options: ReadableMap, key: String): FloatArray? {
|
|
537
|
+
if (!options.hasKey(key)) return null
|
|
538
|
+
if (options.isNull(key)) return FloatArray(0)
|
|
539
|
+
val m = options.getMap(key) ?: return FloatArray(0)
|
|
540
|
+
fun px(k: String) = if (m.hasKey(k) && !m.isNull(k)) com.facebook.react.uimanager.PixelUtil.toPixelFromDIP(m.getDouble(k).toFloat()) else 0f
|
|
541
|
+
return if (key == "sourceClipRect") {
|
|
542
|
+
val x = px("x")
|
|
543
|
+
val y = px("y")
|
|
544
|
+
floatArrayOf(x, y, x + px("width"), y + px("height"))
|
|
545
|
+
} else {
|
|
546
|
+
floatArrayOf(px("left"), px("top"), px("right"), px("bottom"))
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
|
|
529
550
|
/** 동영상 변환 취소 (HUD 없이 앱이 말풍선에서). index -1 = 남은 동영상 전부. 진행 중인 처리가 없으면 false */
|
|
530
551
|
@ReactMethod
|
|
531
552
|
fun cancelVideoProcessing(index: Double, processingId: String, promise: Promise) {
|
|
@@ -673,6 +694,9 @@ class RNAttachmentKitModule(reactContext: ReactApplicationContext) :
|
|
|
673
694
|
if (options.hasKey("sourceBackgroundColor")) {
|
|
674
695
|
putString("sourceBackgroundColor", options.getString("sourceBackgroundColor"))
|
|
675
696
|
}
|
|
697
|
+
// 잘라내기 영역 (열림·닫힘 중 사진과 가림 판이 그려지는 곳) — 이 오버레이 뷰어만
|
|
698
|
+
clipArrayOf(options, "sourceClipRect")?.let { putFloatArray("sourceClipRect", it) }
|
|
699
|
+
clipArrayOf(options, "sourceClipInsets")?.let { putFloatArray("sourceClipInsets", it) }
|
|
676
700
|
// placeholderImages: 타입/뷰어 코드에는 있었지만 브릿지에서 한 번도 전달되지 않았던
|
|
677
701
|
// 필드. 네이티브 뷰어가 onlyRetrieveFromCache(true)로 첫 프레임을 즉시 그리려 할 때
|
|
678
702
|
// 쓰는 저해상도 대체 이미지 목록입니다(원본 다운로드 전 임시 표시용).
|
|
@@ -175,6 +175,13 @@ class RNAttachmentKit: RCTEventEmitter {
|
|
|
175
175
|
} else if let r = optDict["sourceBorderRadius"] as? Double {
|
|
176
176
|
self.zoomAnimator.sourceBorderRadius = CGFloat(r)
|
|
177
177
|
}
|
|
178
|
+
// 잘라내기 영역 — 키가 있을 때만 바꿈 (null = 자르지 않음)
|
|
179
|
+
if optDict.keys.contains("sourceClipRect") {
|
|
180
|
+
self.zoomAnimator.sourceClipRect = RNAttachmentKit.parseRect(optDict["sourceClipRect"])
|
|
181
|
+
}
|
|
182
|
+
if optDict.keys.contains("sourceClipInsets") {
|
|
183
|
+
self.zoomAnimator.sourceClipInsets = RNAttachmentKit.parseInsets(optDict["sourceClipInsets"])
|
|
184
|
+
}
|
|
178
185
|
self.zoomAnimator.updateMaskView()
|
|
179
186
|
|
|
180
187
|
resolve(true)
|
|
@@ -203,6 +210,13 @@ class RNAttachmentKit: RCTEventEmitter {
|
|
|
203
210
|
return CGRect(x: x, y: y, width: w, height: h)
|
|
204
211
|
}
|
|
205
212
|
|
|
213
|
+
/// { top, bottom, left, right } (빠진 값 0). 객체가 아니면 nil
|
|
214
|
+
private static func parseInsets(_ v: Any?) -> UIEdgeInsets? {
|
|
215
|
+
guard let d = v as? NSDictionary else { return nil }
|
|
216
|
+
return UIEdgeInsets(top: cgFloat(d["top"]) ?? 0, left: cgFloat(d["left"]) ?? 0,
|
|
217
|
+
bottom: cgFloat(d["bottom"]) ?? 0, right: cgFloat(d["right"]) ?? 0)
|
|
218
|
+
}
|
|
219
|
+
|
|
206
220
|
/// 말풍선 이미지(정적 지도 스냅샷) 로드. 메모리/디스크 캐시 → file:// → 다운로드 순.
|
|
207
221
|
/// 실패하거나 너무 오래 걸리면 nil (이미지 없이 지도만 엶)
|
|
208
222
|
/// completion(이미지, 마커 뺀 이미지인지). renderLocationThumbnail 결과면 마커 뺀 짝을 씀 → 뷰어가 마커를 따로 그려
|
|
@@ -495,6 +509,9 @@ class RNAttachmentKit: RCTEventEmitter {
|
|
|
495
509
|
parsedRect = CGRect(x: x, y: y, width: w, height: h)
|
|
496
510
|
}
|
|
497
511
|
|
|
512
|
+
let sourceClipRect = RNAttachmentKit.parseRect(options["sourceClipRect"])
|
|
513
|
+
let sourceClipInsets = RNAttachmentKit.parseInsets(options["sourceClipInsets"])
|
|
514
|
+
|
|
498
515
|
var sourceBorderRadius: CGFloat = 0
|
|
499
516
|
if let radiusNum = options["sourceBorderRadius"] as? NSNumber {
|
|
500
517
|
sourceBorderRadius = CGFloat(truncating: radiusNum)
|
|
@@ -551,6 +568,9 @@ class RNAttachmentKit: RCTEventEmitter {
|
|
|
551
568
|
self.zoomAnimator.sourceBorderRadius = sourceBorderRadius
|
|
552
569
|
self.zoomAnimator.sourceBorderCorners = mask
|
|
553
570
|
self.zoomAnimator.sourceBackgroundColor = sourceBackgroundColor
|
|
571
|
+
// 애니메이터는 재사용되므로 이번 호출 값으로 덮어씀 (안 주면 자르지 않음)
|
|
572
|
+
self.zoomAnimator.sourceClipRect = sourceClipRect
|
|
573
|
+
self.zoomAnimator.sourceClipInsets = sourceClipInsets
|
|
554
574
|
// Reset any sourceImage left over from a previous openViewer() call - it's only
|
|
555
575
|
// meant to carry this call's local placeholder (see below), and must not leak
|
|
556
576
|
// into a later call that has no placeholder of its own.
|
|
@@ -8,32 +8,32 @@
|
|
|
8
8
|
<key>BinaryPath</key>
|
|
9
9
|
<string>RNAttachmentKit.framework/RNAttachmentKit</string>
|
|
10
10
|
<key>LibraryIdentifier</key>
|
|
11
|
-
<string>ios-
|
|
11
|
+
<string>ios-arm64</string>
|
|
12
12
|
<key>LibraryPath</key>
|
|
13
13
|
<string>RNAttachmentKit.framework</string>
|
|
14
14
|
<key>SupportedArchitectures</key>
|
|
15
15
|
<array>
|
|
16
16
|
<string>arm64</string>
|
|
17
|
-
<string>x86_64</string>
|
|
18
17
|
</array>
|
|
19
18
|
<key>SupportedPlatform</key>
|
|
20
19
|
<string>ios</string>
|
|
21
|
-
<key>SupportedPlatformVariant</key>
|
|
22
|
-
<string>simulator</string>
|
|
23
20
|
</dict>
|
|
24
21
|
<dict>
|
|
25
22
|
<key>BinaryPath</key>
|
|
26
23
|
<string>RNAttachmentKit.framework/RNAttachmentKit</string>
|
|
27
24
|
<key>LibraryIdentifier</key>
|
|
28
|
-
<string>ios-
|
|
25
|
+
<string>ios-arm64_x86_64-simulator</string>
|
|
29
26
|
<key>LibraryPath</key>
|
|
30
27
|
<string>RNAttachmentKit.framework</string>
|
|
31
28
|
<key>SupportedArchitectures</key>
|
|
32
29
|
<array>
|
|
33
30
|
<string>arm64</string>
|
|
31
|
+
<string>x86_64</string>
|
|
34
32
|
</array>
|
|
35
33
|
<key>SupportedPlatform</key>
|
|
36
34
|
<string>ios</string>
|
|
35
|
+
<key>SupportedPlatformVariant</key>
|
|
36
|
+
<string>simulator</string>
|
|
37
37
|
</dict>
|
|
38
38
|
</array>
|
|
39
39
|
<key>CFBundlePackageType</key>
|
|
Binary file
|
|
@@ -33856,6 +33856,269 @@
|
|
|
33856
33856
|
}
|
|
33857
33857
|
]
|
|
33858
33858
|
},
|
|
33859
|
+
{
|
|
33860
|
+
"kind": "Var",
|
|
33861
|
+
"name": "sourceClipRect",
|
|
33862
|
+
"printedName": "sourceClipRect",
|
|
33863
|
+
"children": [
|
|
33864
|
+
{
|
|
33865
|
+
"kind": "TypeNominal",
|
|
33866
|
+
"name": "Optional",
|
|
33867
|
+
"printedName": "CoreFoundation.CGRect?",
|
|
33868
|
+
"children": [
|
|
33869
|
+
{
|
|
33870
|
+
"kind": "TypeNominal",
|
|
33871
|
+
"name": "CGRect",
|
|
33872
|
+
"printedName": "CoreFoundation.CGRect",
|
|
33873
|
+
"usr": "c:@S@CGRect"
|
|
33874
|
+
}
|
|
33875
|
+
],
|
|
33876
|
+
"usr": "s:Sq"
|
|
33877
|
+
}
|
|
33878
|
+
],
|
|
33879
|
+
"declKind": "Var",
|
|
33880
|
+
"usr": "s:15RNAttachmentKit22ZoomTransitionAnimatorC14sourceClipRectSo6CGRectVSgvp",
|
|
33881
|
+
"mangledName": "$s15RNAttachmentKit22ZoomTransitionAnimatorC14sourceClipRectSo6CGRectVSgvp",
|
|
33882
|
+
"moduleName": "RNAttachmentKit",
|
|
33883
|
+
"declAttributes": [
|
|
33884
|
+
"HasInitialValue",
|
|
33885
|
+
"Preconcurrency",
|
|
33886
|
+
"Custom",
|
|
33887
|
+
"HasStorage",
|
|
33888
|
+
"AccessControl",
|
|
33889
|
+
"RawDocComment"
|
|
33890
|
+
],
|
|
33891
|
+
"hasStorage": true,
|
|
33892
|
+
"accessors": [
|
|
33893
|
+
{
|
|
33894
|
+
"kind": "Accessor",
|
|
33895
|
+
"name": "Get",
|
|
33896
|
+
"printedName": "Get()",
|
|
33897
|
+
"children": [
|
|
33898
|
+
{
|
|
33899
|
+
"kind": "TypeNominal",
|
|
33900
|
+
"name": "Optional",
|
|
33901
|
+
"printedName": "CoreFoundation.CGRect?",
|
|
33902
|
+
"children": [
|
|
33903
|
+
{
|
|
33904
|
+
"kind": "TypeNominal",
|
|
33905
|
+
"name": "CGRect",
|
|
33906
|
+
"printedName": "CoreFoundation.CGRect",
|
|
33907
|
+
"usr": "c:@S@CGRect"
|
|
33908
|
+
}
|
|
33909
|
+
],
|
|
33910
|
+
"usr": "s:Sq"
|
|
33911
|
+
}
|
|
33912
|
+
],
|
|
33913
|
+
"declKind": "Accessor",
|
|
33914
|
+
"usr": "s:15RNAttachmentKit22ZoomTransitionAnimatorC14sourceClipRectSo6CGRectVSgvg",
|
|
33915
|
+
"mangledName": "$s15RNAttachmentKit22ZoomTransitionAnimatorC14sourceClipRectSo6CGRectVSgvg",
|
|
33916
|
+
"moduleName": "RNAttachmentKit",
|
|
33917
|
+
"implicit": true,
|
|
33918
|
+
"accessorKind": "get"
|
|
33919
|
+
},
|
|
33920
|
+
{
|
|
33921
|
+
"kind": "Accessor",
|
|
33922
|
+
"name": "Set",
|
|
33923
|
+
"printedName": "Set()",
|
|
33924
|
+
"children": [
|
|
33925
|
+
{
|
|
33926
|
+
"kind": "TypeNominal",
|
|
33927
|
+
"name": "Void",
|
|
33928
|
+
"printedName": "()"
|
|
33929
|
+
},
|
|
33930
|
+
{
|
|
33931
|
+
"kind": "TypeNominal",
|
|
33932
|
+
"name": "Optional",
|
|
33933
|
+
"printedName": "CoreFoundation.CGRect?",
|
|
33934
|
+
"children": [
|
|
33935
|
+
{
|
|
33936
|
+
"kind": "TypeNominal",
|
|
33937
|
+
"name": "CGRect",
|
|
33938
|
+
"printedName": "CoreFoundation.CGRect",
|
|
33939
|
+
"usr": "c:@S@CGRect"
|
|
33940
|
+
}
|
|
33941
|
+
],
|
|
33942
|
+
"usr": "s:Sq"
|
|
33943
|
+
}
|
|
33944
|
+
],
|
|
33945
|
+
"declKind": "Accessor",
|
|
33946
|
+
"usr": "s:15RNAttachmentKit22ZoomTransitionAnimatorC14sourceClipRectSo6CGRectVSgvs",
|
|
33947
|
+
"mangledName": "$s15RNAttachmentKit22ZoomTransitionAnimatorC14sourceClipRectSo6CGRectVSgvs",
|
|
33948
|
+
"moduleName": "RNAttachmentKit",
|
|
33949
|
+
"implicit": true,
|
|
33950
|
+
"accessorKind": "set"
|
|
33951
|
+
},
|
|
33952
|
+
{
|
|
33953
|
+
"kind": "Accessor",
|
|
33954
|
+
"name": "Modify",
|
|
33955
|
+
"printedName": "Modify()",
|
|
33956
|
+
"children": [
|
|
33957
|
+
{
|
|
33958
|
+
"kind": "TypeNominal",
|
|
33959
|
+
"name": "Void",
|
|
33960
|
+
"printedName": "()"
|
|
33961
|
+
}
|
|
33962
|
+
],
|
|
33963
|
+
"declKind": "Accessor",
|
|
33964
|
+
"usr": "s:15RNAttachmentKit22ZoomTransitionAnimatorC14sourceClipRectSo6CGRectVSgvM",
|
|
33965
|
+
"mangledName": "$s15RNAttachmentKit22ZoomTransitionAnimatorC14sourceClipRectSo6CGRectVSgvM",
|
|
33966
|
+
"moduleName": "RNAttachmentKit",
|
|
33967
|
+
"implicit": true,
|
|
33968
|
+
"accessorKind": "_modify"
|
|
33969
|
+
}
|
|
33970
|
+
]
|
|
33971
|
+
},
|
|
33972
|
+
{
|
|
33973
|
+
"kind": "Var",
|
|
33974
|
+
"name": "sourceClipInsets",
|
|
33975
|
+
"printedName": "sourceClipInsets",
|
|
33976
|
+
"children": [
|
|
33977
|
+
{
|
|
33978
|
+
"kind": "TypeNominal",
|
|
33979
|
+
"name": "Optional",
|
|
33980
|
+
"printedName": "UIKit.UIEdgeInsets?",
|
|
33981
|
+
"children": [
|
|
33982
|
+
{
|
|
33983
|
+
"kind": "TypeNominal",
|
|
33984
|
+
"name": "UIEdgeInsets",
|
|
33985
|
+
"printedName": "UIKit.UIEdgeInsets",
|
|
33986
|
+
"usr": "c:@S@UIEdgeInsets"
|
|
33987
|
+
}
|
|
33988
|
+
],
|
|
33989
|
+
"usr": "s:Sq"
|
|
33990
|
+
}
|
|
33991
|
+
],
|
|
33992
|
+
"declKind": "Var",
|
|
33993
|
+
"usr": "s:15RNAttachmentKit22ZoomTransitionAnimatorC16sourceClipInsetsSo06UIEdgeH0VSgvp",
|
|
33994
|
+
"mangledName": "$s15RNAttachmentKit22ZoomTransitionAnimatorC16sourceClipInsetsSo06UIEdgeH0VSgvp",
|
|
33995
|
+
"moduleName": "RNAttachmentKit",
|
|
33996
|
+
"declAttributes": [
|
|
33997
|
+
"HasInitialValue",
|
|
33998
|
+
"Preconcurrency",
|
|
33999
|
+
"Custom",
|
|
34000
|
+
"HasStorage",
|
|
34001
|
+
"AccessControl"
|
|
34002
|
+
],
|
|
34003
|
+
"hasStorage": true,
|
|
34004
|
+
"accessors": [
|
|
34005
|
+
{
|
|
34006
|
+
"kind": "Accessor",
|
|
34007
|
+
"name": "Get",
|
|
34008
|
+
"printedName": "Get()",
|
|
34009
|
+
"children": [
|
|
34010
|
+
{
|
|
34011
|
+
"kind": "TypeNominal",
|
|
34012
|
+
"name": "Optional",
|
|
34013
|
+
"printedName": "UIKit.UIEdgeInsets?",
|
|
34014
|
+
"children": [
|
|
34015
|
+
{
|
|
34016
|
+
"kind": "TypeNominal",
|
|
34017
|
+
"name": "UIEdgeInsets",
|
|
34018
|
+
"printedName": "UIKit.UIEdgeInsets",
|
|
34019
|
+
"usr": "c:@S@UIEdgeInsets"
|
|
34020
|
+
}
|
|
34021
|
+
],
|
|
34022
|
+
"usr": "s:Sq"
|
|
34023
|
+
}
|
|
34024
|
+
],
|
|
34025
|
+
"declKind": "Accessor",
|
|
34026
|
+
"usr": "s:15RNAttachmentKit22ZoomTransitionAnimatorC16sourceClipInsetsSo06UIEdgeH0VSgvg",
|
|
34027
|
+
"mangledName": "$s15RNAttachmentKit22ZoomTransitionAnimatorC16sourceClipInsetsSo06UIEdgeH0VSgvg",
|
|
34028
|
+
"moduleName": "RNAttachmentKit",
|
|
34029
|
+
"implicit": true,
|
|
34030
|
+
"accessorKind": "get"
|
|
34031
|
+
},
|
|
34032
|
+
{
|
|
34033
|
+
"kind": "Accessor",
|
|
34034
|
+
"name": "Set",
|
|
34035
|
+
"printedName": "Set()",
|
|
34036
|
+
"children": [
|
|
34037
|
+
{
|
|
34038
|
+
"kind": "TypeNominal",
|
|
34039
|
+
"name": "Void",
|
|
34040
|
+
"printedName": "()"
|
|
34041
|
+
},
|
|
34042
|
+
{
|
|
34043
|
+
"kind": "TypeNominal",
|
|
34044
|
+
"name": "Optional",
|
|
34045
|
+
"printedName": "UIKit.UIEdgeInsets?",
|
|
34046
|
+
"children": [
|
|
34047
|
+
{
|
|
34048
|
+
"kind": "TypeNominal",
|
|
34049
|
+
"name": "UIEdgeInsets",
|
|
34050
|
+
"printedName": "UIKit.UIEdgeInsets",
|
|
34051
|
+
"usr": "c:@S@UIEdgeInsets"
|
|
34052
|
+
}
|
|
34053
|
+
],
|
|
34054
|
+
"usr": "s:Sq"
|
|
34055
|
+
}
|
|
34056
|
+
],
|
|
34057
|
+
"declKind": "Accessor",
|
|
34058
|
+
"usr": "s:15RNAttachmentKit22ZoomTransitionAnimatorC16sourceClipInsetsSo06UIEdgeH0VSgvs",
|
|
34059
|
+
"mangledName": "$s15RNAttachmentKit22ZoomTransitionAnimatorC16sourceClipInsetsSo06UIEdgeH0VSgvs",
|
|
34060
|
+
"moduleName": "RNAttachmentKit",
|
|
34061
|
+
"implicit": true,
|
|
34062
|
+
"accessorKind": "set"
|
|
34063
|
+
},
|
|
34064
|
+
{
|
|
34065
|
+
"kind": "Accessor",
|
|
34066
|
+
"name": "Modify",
|
|
34067
|
+
"printedName": "Modify()",
|
|
34068
|
+
"children": [
|
|
34069
|
+
{
|
|
34070
|
+
"kind": "TypeNominal",
|
|
34071
|
+
"name": "Void",
|
|
34072
|
+
"printedName": "()"
|
|
34073
|
+
}
|
|
34074
|
+
],
|
|
34075
|
+
"declKind": "Accessor",
|
|
34076
|
+
"usr": "s:15RNAttachmentKit22ZoomTransitionAnimatorC16sourceClipInsetsSo06UIEdgeH0VSgvM",
|
|
34077
|
+
"mangledName": "$s15RNAttachmentKit22ZoomTransitionAnimatorC16sourceClipInsetsSo06UIEdgeH0VSgvM",
|
|
34078
|
+
"moduleName": "RNAttachmentKit",
|
|
34079
|
+
"implicit": true,
|
|
34080
|
+
"accessorKind": "_modify"
|
|
34081
|
+
}
|
|
34082
|
+
]
|
|
34083
|
+
},
|
|
34084
|
+
{
|
|
34085
|
+
"kind": "Function",
|
|
34086
|
+
"name": "clipRect",
|
|
34087
|
+
"printedName": "clipRect(in:)",
|
|
34088
|
+
"children": [
|
|
34089
|
+
{
|
|
34090
|
+
"kind": "TypeNominal",
|
|
34091
|
+
"name": "Optional",
|
|
34092
|
+
"printedName": "CoreFoundation.CGRect?",
|
|
34093
|
+
"children": [
|
|
34094
|
+
{
|
|
34095
|
+
"kind": "TypeNominal",
|
|
34096
|
+
"name": "CGRect",
|
|
34097
|
+
"printedName": "CoreFoundation.CGRect",
|
|
34098
|
+
"usr": "c:@S@CGRect"
|
|
34099
|
+
}
|
|
34100
|
+
],
|
|
34101
|
+
"usr": "s:Sq"
|
|
34102
|
+
},
|
|
34103
|
+
{
|
|
34104
|
+
"kind": "TypeNominal",
|
|
34105
|
+
"name": "CGRect",
|
|
34106
|
+
"printedName": "CoreFoundation.CGRect",
|
|
34107
|
+
"usr": "c:@S@CGRect"
|
|
34108
|
+
}
|
|
34109
|
+
],
|
|
34110
|
+
"declKind": "Func",
|
|
34111
|
+
"usr": "s:15RNAttachmentKit22ZoomTransitionAnimatorC8clipRect2inSo6CGRectVSgAG_tF",
|
|
34112
|
+
"mangledName": "$s15RNAttachmentKit22ZoomTransitionAnimatorC8clipRect2inSo6CGRectVSgAG_tF",
|
|
34113
|
+
"moduleName": "RNAttachmentKit",
|
|
34114
|
+
"declAttributes": [
|
|
34115
|
+
"Preconcurrency",
|
|
34116
|
+
"Custom",
|
|
34117
|
+
"AccessControl",
|
|
34118
|
+
"RawDocComment"
|
|
34119
|
+
],
|
|
34120
|
+
"funcSelfKind": "NonMutating"
|
|
34121
|
+
},
|
|
33859
34122
|
{
|
|
33860
34123
|
"kind": "Function",
|
|
33861
34124
|
"name": "updateMaskView",
|
|
@@ -63431,14 +63694,14 @@
|
|
|
63431
63694
|
{
|
|
63432
63695
|
"filePath": "\/Users\/mike\/source\/PaidModules\/RNAttachmentKit\/RNAttachmentKit\/ios\/RNAttachmentKit\/ZoomTransitionAnimator.swift",
|
|
63433
63696
|
"kind": "FloatLiteral",
|
|
63434
|
-
"offset":
|
|
63697
|
+
"offset": 3644,
|
|
63435
63698
|
"length": 4,
|
|
63436
63699
|
"value": "0.37"
|
|
63437
63700
|
},
|
|
63438
63701
|
{
|
|
63439
63702
|
"filePath": "\/Users\/mike\/source\/PaidModules\/RNAttachmentKit\/RNAttachmentKit\/ios\/RNAttachmentKit\/ZoomTransitionAnimator.swift",
|
|
63440
63703
|
"kind": "FloatLiteral",
|
|
63441
|
-
"offset":
|
|
63704
|
+
"offset": 3694,
|
|
63442
63705
|
"length": 4,
|
|
63443
63706
|
"value": "0.37"
|
|
63444
63707
|
},
|
|
@@ -700,6 +700,9 @@ extension RNAttachmentKit.MediaGalleryViewController : UIKit.UICollectionViewDat
|
|
|
700
700
|
@_Concurrency.MainActor @preconcurrency public var sourceBorderCorners: QuartzCore.CACornerMask
|
|
701
701
|
@_Concurrency.MainActor @preconcurrency public var sourceBackgroundColor: UIKit.UIColor
|
|
702
702
|
@_Concurrency.MainActor @preconcurrency public var fadeOutOnDismiss: Swift.Bool
|
|
703
|
+
@_Concurrency.MainActor @preconcurrency public var sourceClipRect: CoreFoundation.CGRect?
|
|
704
|
+
@_Concurrency.MainActor @preconcurrency public var sourceClipInsets: UIKit.UIEdgeInsets?
|
|
705
|
+
@_Concurrency.MainActor @preconcurrency public func clipRect(in bounds: CoreFoundation.CGRect) -> CoreFoundation.CGRect?
|
|
703
706
|
@_Concurrency.MainActor @preconcurrency public func updateMaskView()
|
|
704
707
|
@_Concurrency.MainActor @preconcurrency public var openDuration: Swift.Double
|
|
705
708
|
@_Concurrency.MainActor @preconcurrency public var closeDuration: Swift.Double
|
|
Binary file
|
|
@@ -700,6 +700,9 @@ extension RNAttachmentKit.MediaGalleryViewController : UIKit.UICollectionViewDat
|
|
|
700
700
|
@_Concurrency.MainActor @preconcurrency public var sourceBorderCorners: QuartzCore.CACornerMask
|
|
701
701
|
@_Concurrency.MainActor @preconcurrency public var sourceBackgroundColor: UIKit.UIColor
|
|
702
702
|
@_Concurrency.MainActor @preconcurrency public var fadeOutOnDismiss: Swift.Bool
|
|
703
|
+
@_Concurrency.MainActor @preconcurrency public var sourceClipRect: CoreFoundation.CGRect?
|
|
704
|
+
@_Concurrency.MainActor @preconcurrency public var sourceClipInsets: UIKit.UIEdgeInsets?
|
|
705
|
+
@_Concurrency.MainActor @preconcurrency public func clipRect(in bounds: CoreFoundation.CGRect) -> CoreFoundation.CGRect?
|
|
703
706
|
@_Concurrency.MainActor @preconcurrency public func updateMaskView()
|
|
704
707
|
@_Concurrency.MainActor @preconcurrency public var openDuration: Swift.Double
|
|
705
708
|
@_Concurrency.MainActor @preconcurrency public var closeDuration: Swift.Double
|
|
Binary file
|
|
Binary file
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<dict>
|
|
7
7
|
<key>Assets.car</key>
|
|
8
8
|
<data>
|
|
9
|
-
|
|
9
|
+
g6yZrbEglkdHc1mfZaxagZ5xtQU=
|
|
10
10
|
</data>
|
|
11
11
|
<key>Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib</key>
|
|
12
12
|
<data>
|
|
@@ -30,23 +30,23 @@
|
|
|
30
30
|
</data>
|
|
31
31
|
<key>Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios.abi.json</key>
|
|
32
32
|
<data>
|
|
33
|
-
|
|
33
|
+
4pXl77oaqGf4kp0ccvkhQUG7h80=
|
|
34
34
|
</data>
|
|
35
35
|
<key>Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios.private.swiftinterface</key>
|
|
36
36
|
<data>
|
|
37
|
-
|
|
37
|
+
Ne9vcMLnZi2MxDGKyNnwi97bL84=
|
|
38
38
|
</data>
|
|
39
39
|
<key>Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios.swiftdoc</key>
|
|
40
40
|
<data>
|
|
41
|
-
|
|
41
|
+
NdmsL6G2DN6mQCB2p4dZudF/Y/A=
|
|
42
42
|
</data>
|
|
43
43
|
<key>Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios.swiftinterface</key>
|
|
44
44
|
<data>
|
|
45
|
-
|
|
45
|
+
Ne9vcMLnZi2MxDGKyNnwi97bL84=
|
|
46
46
|
</data>
|
|
47
47
|
<key>Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios.swiftmodule</key>
|
|
48
48
|
<data>
|
|
49
|
-
|
|
49
|
+
NByxa9uw3+fv7u8xscuWgQMLqXg=
|
|
50
50
|
</data>
|
|
51
51
|
<key>Modules/module.modulemap</key>
|
|
52
52
|
<data>
|
|
@@ -207,7 +207,7 @@
|
|
|
207
207
|
<dict>
|
|
208
208
|
<key>hash2</key>
|
|
209
209
|
<data>
|
|
210
|
-
|
|
210
|
+
t4fvHNhwvX9Xc+yxU1dNnVy6zn+bhryN6MxDfE4HVwY=
|
|
211
211
|
</data>
|
|
212
212
|
</dict>
|
|
213
213
|
<key>Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib</key>
|
|
@@ -242,35 +242,35 @@
|
|
|
242
242
|
<dict>
|
|
243
243
|
<key>hash2</key>
|
|
244
244
|
<data>
|
|
245
|
-
|
|
245
|
+
yrEFcLxuZNiJZCnTbLDvLuPuZSImZSXoqrPGP50aleg=
|
|
246
246
|
</data>
|
|
247
247
|
</dict>
|
|
248
248
|
<key>Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios.private.swiftinterface</key>
|
|
249
249
|
<dict>
|
|
250
250
|
<key>hash2</key>
|
|
251
251
|
<data>
|
|
252
|
-
|
|
252
|
+
RGuaglarcySZLYt86m9oFo7HK+zyW7IF5TrVvNGYTbQ=
|
|
253
253
|
</data>
|
|
254
254
|
</dict>
|
|
255
255
|
<key>Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios.swiftdoc</key>
|
|
256
256
|
<dict>
|
|
257
257
|
<key>hash2</key>
|
|
258
258
|
<data>
|
|
259
|
-
|
|
259
|
+
L/hilWOgTXQhtenmbgE842fuflYednu2E6kp83/ckkg=
|
|
260
260
|
</data>
|
|
261
261
|
</dict>
|
|
262
262
|
<key>Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios.swiftinterface</key>
|
|
263
263
|
<dict>
|
|
264
264
|
<key>hash2</key>
|
|
265
265
|
<data>
|
|
266
|
-
|
|
266
|
+
RGuaglarcySZLYt86m9oFo7HK+zyW7IF5TrVvNGYTbQ=
|
|
267
267
|
</data>
|
|
268
268
|
</dict>
|
|
269
269
|
<key>Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios.swiftmodule</key>
|
|
270
270
|
<dict>
|
|
271
271
|
<key>hash2</key>
|
|
272
272
|
<data>
|
|
273
|
-
|
|
273
|
+
Xg3ufTjOmjWtQUMuGn4IPlALqJ/lG8Nt2Qi0KoeYLcQ=
|
|
274
274
|
</data>
|
|
275
275
|
</dict>
|
|
276
276
|
<key>Modules/module.modulemap</key>
|