@momo-kits/native-kits 0.0.1-beta.3 → 0.0.1-beta.5

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.
Files changed (264) hide show
  1. package/example/ios/Example/ComponentModel.swift +9 -2
  2. package/example/ios/Example/ContentView.swift +0 -14
  3. package/example/ios/Example/Foundation/ImageDemo.swift +43 -0
  4. package/example/ios/Example/Foundation/Popup/Popups.swift +2 -52
  5. package/example/ios/Example/Foundation/PopupDemo.swift +44 -21
  6. package/example/ios/Example/Foundation/TextInputDemo.swift +36 -0
  7. package/example/ios/Example/Library/CheckboxDemo.swift +19 -0
  8. package/example/ios/Example/Library/SwitchDemo.swift +19 -0
  9. package/example/ios/Example/Main.swift +17 -1
  10. package/example/ios/Example/Resource/foundation.json +2 -2
  11. package/example/ios/Example/Resource/library.json +10 -0
  12. package/example/ios/Example.xcodeproj/project.pbxproj +16 -0
  13. package/example/ios/Example.xcodeproj/xcuserdata/wem.xcuserdatad/xcschemes/xcschememanagement.plist +1 -1
  14. package/example/ios/Example.xcworkspace/xcuserdata/wem.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  15. package/example/ios/Podfile +2 -1
  16. package/example/ios/Podfile.lock +22 -3
  17. package/example/ios/Pods/Local Podspecs/MoMoUIKits.podspec.json +9 -1
  18. package/example/ios/Pods/Manifest.lock +22 -3
  19. package/example/ios/Pods/Pods.xcodeproj/project.pbxproj +1547 -161
  20. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/wem.xcuserdatad/xcschemes/SDWebImage.xcscheme +58 -0
  21. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/wem.xcuserdatad/xcschemes/SDWebImageSwiftUI.xcscheme +58 -0
  22. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/wem.xcuserdatad/xcschemes/SkeletonUI.xcscheme +58 -0
  23. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/wem.xcuserdatad/xcschemes/xcschememanagement.plist +21 -0
  24. package/example/ios/Pods/SDWebImage/LICENSE +20 -0
  25. package/example/ios/Pods/SDWebImage/README.md +352 -0
  26. package/example/ios/Pods/SDWebImage/SDWebImage/Core/NSButton+WebCache.h +340 -0
  27. package/example/ios/Pods/SDWebImage/SDWebImage/Core/NSButton+WebCache.m +172 -0
  28. package/example/ios/Pods/SDWebImage/SDWebImage/Core/NSData+ImageContentType.h +63 -0
  29. package/example/ios/Pods/SDWebImage/SDWebImage/Core/NSData+ImageContentType.m +165 -0
  30. package/example/ios/Pods/SDWebImage/SDWebImage/Core/NSImage+Compatibility.h +67 -0
  31. package/example/ios/Pods/SDWebImage/SDWebImage/Core/NSImage+Compatibility.m +120 -0
  32. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImage.h +114 -0
  33. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImage.m +392 -0
  34. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImagePlayer.h +112 -0
  35. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImagePlayer.m +420 -0
  36. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageRep.h +23 -0
  37. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageRep.m +133 -0
  38. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageView+WebCache.h +168 -0
  39. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageView+WebCache.m +79 -0
  40. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageView.h +110 -0
  41. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageView.m +540 -0
  42. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDDiskCache.h +145 -0
  43. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDDiskCache.m +326 -0
  44. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDGraphicsImageRenderer.h +73 -0
  45. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDGraphicsImageRenderer.m +256 -0
  46. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageAPNGCoder.h +19 -0
  47. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageAPNGCoder.m +58 -0
  48. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageAWebPCoder.h +23 -0
  49. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageAWebPCoder.m +98 -0
  50. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCache.h +450 -0
  51. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCache.m +1030 -0
  52. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCacheConfig.h +153 -0
  53. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCacheConfig.m +68 -0
  54. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCacheDefine.h +156 -0
  55. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCacheDefine.m +138 -0
  56. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCachesManager.h +81 -0
  57. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCachesManager.m +556 -0
  58. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCoder.h +297 -0
  59. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCoder.m +26 -0
  60. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCoderHelper.h +153 -0
  61. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCoderHelper.m +822 -0
  62. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCodersManager.h +58 -0
  63. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCodersManager.m +130 -0
  64. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageFrame.h +36 -0
  65. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageFrame.m +28 -0
  66. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageGIFCoder.h +22 -0
  67. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageGIFCoder.m +58 -0
  68. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageGraphics.h +28 -0
  69. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageGraphics.m +127 -0
  70. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageHEICCoder.h +25 -0
  71. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageHEICCoder.m +101 -0
  72. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageIOAnimatedCoder.h +58 -0
  73. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageIOAnimatedCoder.m +807 -0
  74. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageIOCoder.h +30 -0
  75. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageIOCoder.m +420 -0
  76. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageLoader.h +146 -0
  77. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageLoader.m +170 -0
  78. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageLoadersManager.h +40 -0
  79. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageLoadersManager.m +123 -0
  80. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageTransformer.h +241 -0
  81. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageTransformer.m +331 -0
  82. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDMemoryCache.h +78 -0
  83. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDMemoryCache.m +158 -0
  84. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageCacheKeyFilter.h +32 -0
  85. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageCacheKeyFilter.m +39 -0
  86. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageCacheSerializer.h +36 -0
  87. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageCacheSerializer.m +39 -0
  88. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageCompat.h +95 -0
  89. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageCompat.m +17 -0
  90. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDefine.h +352 -0
  91. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDefine.m +149 -0
  92. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloader.h +314 -0
  93. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloader.m +658 -0
  94. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderConfig.h +113 -0
  95. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderConfig.m +60 -0
  96. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderDecryptor.h +49 -0
  97. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderDecryptor.m +55 -0
  98. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderOperation.h +191 -0
  99. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderOperation.m +722 -0
  100. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderRequestModifier.h +69 -0
  101. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderRequestModifier.m +71 -0
  102. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderResponseModifier.h +69 -0
  103. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderResponseModifier.m +73 -0
  104. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageError.h +32 -0
  105. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageError.m +16 -0
  106. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageIndicator.h +115 -0
  107. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageIndicator.m +275 -0
  108. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageManager.h +290 -0
  109. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageManager.m +775 -0
  110. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageOperation.h +27 -0
  111. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageOperation.m +14 -0
  112. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageOptionsProcessor.h +72 -0
  113. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageOptionsProcessor.m +59 -0
  114. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImagePrefetcher.h +143 -0
  115. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImagePrefetcher.m +303 -0
  116. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageTransition.h +131 -0
  117. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageTransition.m +194 -0
  118. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIButton+WebCache.h +387 -0
  119. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIButton+WebCache.m +234 -0
  120. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+ExtendedCacheData.h +24 -0
  121. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+ExtendedCacheData.m +23 -0
  122. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+ForceDecode.h +46 -0
  123. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+ForceDecode.m +60 -0
  124. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+GIF.h +26 -0
  125. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+GIF.m +22 -0
  126. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+MemoryCacheCost.h +27 -0
  127. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+MemoryCacheCost.m +47 -0
  128. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+Metadata.h +89 -0
  129. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+Metadata.m +221 -0
  130. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+MultiFormat.h +80 -0
  131. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+MultiFormat.m +47 -0
  132. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+Transform.h +146 -0
  133. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+Transform.m +824 -0
  134. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImageView+HighlightedWebCache.h +129 -0
  135. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImageView+HighlightedWebCache.m +76 -0
  136. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImageView+WebCache.h +194 -0
  137. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImageView+WebCache.m +67 -0
  138. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIView+WebCache.h +110 -0
  139. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIView+WebCache.m +446 -0
  140. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIView+WebCacheOperation.h +48 -0
  141. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIView+WebCacheOperation.m +82 -0
  142. package/example/ios/Pods/SDWebImage/SDWebImage/Private/NSBezierPath+SDRoundedCorners.h +24 -0
  143. package/example/ios/Pods/SDWebImage/SDWebImage/Private/NSBezierPath+SDRoundedCorners.m +42 -0
  144. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDAssociatedObject.h +14 -0
  145. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDAssociatedObject.m +29 -0
  146. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDAsyncBlockOperation.h +21 -0
  147. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDAsyncBlockOperation.m +92 -0
  148. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDDeviceHelper.h +18 -0
  149. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDDeviceHelper.m +32 -0
  150. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDDisplayLink.h +29 -0
  151. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDDisplayLink.m +227 -0
  152. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDFileAttributeHelper.h +19 -0
  153. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDFileAttributeHelper.m +127 -0
  154. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDImageAssetManager.h +23 -0
  155. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDImageAssetManager.m +164 -0
  156. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDImageCachesManagerOperation.h +21 -0
  157. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDImageCachesManagerOperation.m +83 -0
  158. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDImageIOAnimatedCoderInternal.h +39 -0
  159. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDInternalMacros.h +122 -0
  160. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDInternalMacros.m +13 -0
  161. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDWeakProxy.h +20 -0
  162. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDWeakProxy.m +79 -0
  163. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDWebImageTransitionInternal.h +19 -0
  164. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDmetamacros.h +667 -0
  165. package/example/ios/Pods/SDWebImage/SDWebImage/Private/UIColor+SDHexString.h +18 -0
  166. package/example/ios/Pods/SDWebImage/SDWebImage/Private/UIColor+SDHexString.m +42 -0
  167. package/example/ios/Pods/SDWebImage/WebImage/SDWebImage.h +89 -0
  168. package/example/ios/Pods/SDWebImageSwiftUI/LICENSE +19 -0
  169. package/example/ios/Pods/SDWebImageSwiftUI/README.md +690 -0
  170. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/AnimatedImage.swift +870 -0
  171. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Backports/Backport.swift +59 -0
  172. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Backports/OnChange.swift +52 -0
  173. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Backports/Overlay.swift +124 -0
  174. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Backports/StateObject.swift +151 -0
  175. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Image.swift +78 -0
  176. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/ImageManager.swift +132 -0
  177. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/ImagePlayer.swift +122 -0
  178. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/ImageViewWrapper.swift +133 -0
  179. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Indicator/ActivityIndicator.swift +82 -0
  180. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Indicator/Indicator.swift +97 -0
  181. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Indicator/ProgressIndicator.swift +114 -0
  182. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/SDWebImageSwiftUI.swift +64 -0
  183. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/SwiftUICompatibility.swift +92 -0
  184. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Transition/Transition.swift +93 -0
  185. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/WebImage.swift +509 -0
  186. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Module/SDWebImageSwiftUI.h +15 -0
  187. package/example/ios/Pods/SkeletonUI/LICENSE +21 -0
  188. package/example/ios/Pods/SkeletonUI/README.md +137 -0
  189. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Angle/AngleInteractor.swift +29 -0
  190. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Angle/AnglePresenter.swift +7 -0
  191. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Animation/AnimationInteractor.swift +56 -0
  192. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Appearance/AppearanceInteractor.swift +58 -0
  193. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Appearance/AppearancePresenter.swift +5 -0
  194. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/ClosedRange+Normalize.swift +16 -0
  195. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/Image+OptionalType.swift +102 -0
  196. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/ModifiedContent+SkeletonModifier.swift +26 -0
  197. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/Optional+OptionalType.swift +5 -0
  198. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/SecureField+OptionalType.swift +19 -0
  199. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/Text+OptionalType.swift +27 -0
  200. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/TextField+OptionalType.swift +35 -0
  201. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/Toggle+OptionalType.swift +29 -0
  202. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/UnitPoint+Angle.swift +8 -0
  203. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/View+SkeletonModifier.swift +8 -0
  204. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Modifiers/SkeletonModifier.swift +52 -0
  205. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Multiline/MultilineInteractor.swift +41 -0
  206. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Multiline/MultilinePresenter.swift +9 -0
  207. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Opacity/OpacityInteractor.swift +29 -0
  208. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Opacity/OpacityPresenter.swift +7 -0
  209. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Position/PositionInteractor.swift +29 -0
  210. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Position/PositionPresenter.swift +7 -0
  211. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Protocols/OptionalType.swift +4 -0
  212. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Radius/RadiusInteractor.swift +29 -0
  213. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Radius/RadiusPresenter.swift +7 -0
  214. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Shape/ShapeInteractor.swift +33 -0
  215. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Shape/ShapePresenter.swift +5 -0
  216. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Skeleton/SkeletonForEach.swift +20 -0
  217. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Skeleton/SkeletonInteractor.swift +27 -0
  218. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Skeleton/SkeletonList.swift +20 -0
  219. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Skeleton/SkeletonPresenter.swift +15 -0
  220. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Skeleton/SkeletonShape.swift +64 -0
  221. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Skeleton/SkeletonView.swift +25 -0
  222. package/example/ios/Pods/Target Support Files/MoMoUIKits/MoMoUIKits.debug.xcconfig +4 -1
  223. package/example/ios/Pods/Target Support Files/MoMoUIKits/MoMoUIKits.release.xcconfig +4 -1
  224. package/example/ios/Pods/Target Support Files/Pods-Example/Pods-Example-acknowledgements.markdown +72 -0
  225. package/example/ios/Pods/Target Support Files/Pods-Example/Pods-Example-acknowledgements.plist +90 -0
  226. package/example/ios/Pods/Target Support Files/Pods-Example/Pods-Example.debug.xcconfig +6 -5
  227. package/example/ios/Pods/Target Support Files/Pods-Example/Pods-Example.release.xcconfig +6 -5
  228. package/example/ios/Pods/Target Support Files/SDWebImage/SDWebImage-dummy.m +5 -0
  229. package/example/ios/Pods/Target Support Files/SDWebImage/SDWebImage-prefix.pch +12 -0
  230. package/example/ios/Pods/Target Support Files/SDWebImage/SDWebImage-umbrella.h +75 -0
  231. package/example/ios/Pods/Target Support Files/SDWebImage/SDWebImage.debug.xcconfig +14 -0
  232. package/example/ios/Pods/Target Support Files/SDWebImage/SDWebImage.modulemap +6 -0
  233. package/example/ios/Pods/Target Support Files/SDWebImage/SDWebImage.release.xcconfig +14 -0
  234. package/example/ios/Pods/Target Support Files/SDWebImageSwiftUI/SDWebImageSwiftUI-dummy.m +5 -0
  235. package/example/ios/Pods/Target Support Files/SDWebImageSwiftUI/SDWebImageSwiftUI-prefix.pch +12 -0
  236. package/example/ios/Pods/Target Support Files/SDWebImageSwiftUI/SDWebImageSwiftUI-umbrella.h +17 -0
  237. package/example/ios/Pods/Target Support Files/SDWebImageSwiftUI/SDWebImageSwiftUI.debug.xcconfig +17 -0
  238. package/example/ios/Pods/Target Support Files/SDWebImageSwiftUI/SDWebImageSwiftUI.modulemap +6 -0
  239. package/example/ios/Pods/Target Support Files/SDWebImageSwiftUI/SDWebImageSwiftUI.release.xcconfig +17 -0
  240. package/example/ios/Pods/Target Support Files/SkeletonUI/SkeletonUI-dummy.m +5 -0
  241. package/example/ios/Pods/Target Support Files/SkeletonUI/SkeletonUI-prefix.pch +12 -0
  242. package/example/ios/Pods/Target Support Files/SkeletonUI/SkeletonUI-umbrella.h +16 -0
  243. package/example/ios/Pods/Target Support Files/SkeletonUI/SkeletonUI.debug.xcconfig +12 -0
  244. package/example/ios/Pods/Target Support Files/SkeletonUI/SkeletonUI.modulemap +6 -0
  245. package/example/ios/Pods/Target Support Files/SkeletonUI/SkeletonUI.release.xcconfig +12 -0
  246. package/ios/Checkbox/Checkbox.swift +38 -0
  247. package/ios/{Colors+Spacing → Colors+Radius+Spacing}/Colors.swift +0 -0
  248. package/ios/Colors+Radius+Spacing/Radius.swift +22 -0
  249. package/ios/{Colors+Spacing → Colors+Radius+Spacing}/Spacing.swift +0 -0
  250. package/ios/Extensions/View++.swift +9 -0
  251. package/ios/Image/Image.swift +60 -0
  252. package/ios/Input/Input.swift +148 -0
  253. package/ios/OTPKeyboard/OTPKeyboard.swift +3 -3
  254. package/ios/Popup/PopupDisplay.swift +178 -0
  255. package/ios/PopupView/FullscreenPopup.swift +251 -0
  256. package/ios/{Popup → PopupView}/Modifiers.swift +6 -20
  257. package/ios/{Popup → PopupView}/PopupView.swift +38 -146
  258. package/ios/PopupView/Utils++.swift +281 -0
  259. package/ios/Swipeable/SwipeCell.swift +1 -1
  260. package/ios/Switch/Switch.swift +44 -0
  261. package/ios/native-kits.podspec +2 -0
  262. package/package.json +1 -1
  263. package/ios/Colors+Spacing/Radius.swift +0 -11
  264. package/ios/Popup/Utils.swift +0 -186
@@ -0,0 +1,21 @@
1
+ /*
2
+ * This file is part of the SDWebImage package.
3
+ * (c) Olivier Poitrey <rs@dailymotion.com>
4
+ *
5
+ * For the full copyright and license information, please view the LICENSE
6
+ * file that was distributed with this source code.
7
+ */
8
+
9
+ #import "SDWebImageCompat.h"
10
+
11
+ @class SDAsyncBlockOperation;
12
+ typedef void (^SDAsyncBlock)(SDAsyncBlockOperation * __nonnull asyncOperation);
13
+
14
+ /// A async block operation, success after you call `completer` (not like `NSBlockOperation` which is for sync block, success on return)
15
+ @interface SDAsyncBlockOperation : NSOperation
16
+
17
+ - (nonnull instancetype)initWithBlock:(nonnull SDAsyncBlock)block;
18
+ + (nonnull instancetype)blockOperationWithBlock:(nonnull SDAsyncBlock)block;
19
+ - (void)complete;
20
+
21
+ @end
@@ -0,0 +1,92 @@
1
+ /*
2
+ * This file is part of the SDWebImage package.
3
+ * (c) Olivier Poitrey <rs@dailymotion.com>
4
+ *
5
+ * For the full copyright and license information, please view the LICENSE
6
+ * file that was distributed with this source code.
7
+ */
8
+
9
+ #import "SDAsyncBlockOperation.h"
10
+
11
+ @interface SDAsyncBlockOperation ()
12
+
13
+ @property (assign, nonatomic, getter = isExecuting) BOOL executing;
14
+ @property (assign, nonatomic, getter = isFinished) BOOL finished;
15
+ @property (nonatomic, copy, nonnull) SDAsyncBlock executionBlock;
16
+
17
+ @end
18
+
19
+ @implementation SDAsyncBlockOperation
20
+
21
+ @synthesize executing = _executing;
22
+ @synthesize finished = _finished;
23
+
24
+ - (nonnull instancetype)initWithBlock:(nonnull SDAsyncBlock)block {
25
+ self = [super init];
26
+ if (self) {
27
+ self.executionBlock = block;
28
+ }
29
+ return self;
30
+ }
31
+
32
+ + (nonnull instancetype)blockOperationWithBlock:(nonnull SDAsyncBlock)block {
33
+ SDAsyncBlockOperation *operation = [[SDAsyncBlockOperation alloc] initWithBlock:block];
34
+ return operation;
35
+ }
36
+
37
+ - (void)start {
38
+ @synchronized (self) {
39
+ if (self.isCancelled) {
40
+ self.finished = YES;
41
+ return;
42
+ }
43
+
44
+ self.finished = NO;
45
+ self.executing = YES;
46
+
47
+ if (self.executionBlock) {
48
+ self.executionBlock(self);
49
+ } else {
50
+ self.executing = NO;
51
+ self.finished = YES;
52
+ }
53
+ }
54
+ }
55
+
56
+ - (void)cancel {
57
+ @synchronized (self) {
58
+ [super cancel];
59
+ if (self.isExecuting) {
60
+ self.executing = NO;
61
+ self.finished = YES;
62
+ }
63
+ }
64
+ }
65
+
66
+
67
+ - (void)complete {
68
+ @synchronized (self) {
69
+ if (self.isExecuting) {
70
+ self.finished = YES;
71
+ self.executing = NO;
72
+ }
73
+ }
74
+ }
75
+
76
+ - (void)setFinished:(BOOL)finished {
77
+ [self willChangeValueForKey:@"isFinished"];
78
+ _finished = finished;
79
+ [self didChangeValueForKey:@"isFinished"];
80
+ }
81
+
82
+ - (void)setExecuting:(BOOL)executing {
83
+ [self willChangeValueForKey:@"isExecuting"];
84
+ _executing = executing;
85
+ [self didChangeValueForKey:@"isExecuting"];
86
+ }
87
+
88
+ - (BOOL)isConcurrent {
89
+ return YES;
90
+ }
91
+
92
+ @end
@@ -0,0 +1,18 @@
1
+ /*
2
+ * This file is part of the SDWebImage package.
3
+ * (c) Olivier Poitrey <rs@dailymotion.com>
4
+ *
5
+ * For the full copyright and license information, please view the LICENSE
6
+ * file that was distributed with this source code.
7
+ */
8
+
9
+ #import <Foundation/Foundation.h>
10
+ #import "SDWebImageCompat.h"
11
+
12
+ /// Device information helper methods
13
+ @interface SDDeviceHelper : NSObject
14
+
15
+ + (NSUInteger)totalMemory;
16
+ + (NSUInteger)freeMemory;
17
+
18
+ @end
@@ -0,0 +1,32 @@
1
+ /*
2
+ * This file is part of the SDWebImage package.
3
+ * (c) Olivier Poitrey <rs@dailymotion.com>
4
+ *
5
+ * For the full copyright and license information, please view the LICENSE
6
+ * file that was distributed with this source code.
7
+ */
8
+
9
+ #import "SDDeviceHelper.h"
10
+ #import <mach/mach.h>
11
+
12
+ @implementation SDDeviceHelper
13
+
14
+ + (NSUInteger)totalMemory {
15
+ return (NSUInteger)[[NSProcessInfo processInfo] physicalMemory];
16
+ }
17
+
18
+ + (NSUInteger)freeMemory {
19
+ mach_port_t host_port = mach_host_self();
20
+ mach_msg_type_number_t host_size = sizeof(vm_statistics_data_t) / sizeof(integer_t);
21
+ vm_size_t page_size;
22
+ vm_statistics_data_t vm_stat;
23
+ kern_return_t kern;
24
+
25
+ kern = host_page_size(host_port, &page_size);
26
+ if (kern != KERN_SUCCESS) return 0;
27
+ kern = host_statistics(host_port, HOST_VM_INFO, (host_info_t)&vm_stat, &host_size);
28
+ if (kern != KERN_SUCCESS) return 0;
29
+ return vm_stat.free_count * page_size;
30
+ }
31
+
32
+ @end
@@ -0,0 +1,29 @@
1
+ /*
2
+ * This file is part of the SDWebImage package.
3
+ * (c) Olivier Poitrey <rs@dailymotion.com>
4
+ *
5
+ * For the full copyright and license information, please view the LICENSE
6
+ * file that was distributed with this source code.
7
+ */
8
+
9
+ #import <Foundation/Foundation.h>
10
+ #import "SDWebImageCompat.h"
11
+
12
+ /// Cross-platform display link wrapper. Do not retain the target
13
+ /// Use `CADisplayLink` on iOS/tvOS, `CVDisplayLink` on macOS, `NSTimer` on watchOS
14
+ @interface SDDisplayLink : NSObject
15
+
16
+ @property (readonly, nonatomic, weak, nullable) id target;
17
+ @property (readonly, nonatomic, assign, nonnull) SEL selector;
18
+ @property (readonly, nonatomic) CFTimeInterval duration;
19
+ @property (readonly, nonatomic) BOOL isRunning;
20
+
21
+ + (nonnull instancetype)displayLinkWithTarget:(nonnull id)target selector:(nonnull SEL)sel;
22
+
23
+ - (void)addToRunLoop:(nonnull NSRunLoop *)runloop forMode:(nonnull NSRunLoopMode)mode;
24
+ - (void)removeFromRunLoop:(nonnull NSRunLoop *)runloop forMode:(nonnull NSRunLoopMode)mode;
25
+
26
+ - (void)start;
27
+ - (void)stop;
28
+
29
+ @end
@@ -0,0 +1,227 @@
1
+ /*
2
+ * This file is part of the SDWebImage package.
3
+ * (c) Olivier Poitrey <rs@dailymotion.com>
4
+ *
5
+ * For the full copyright and license information, please view the LICENSE
6
+ * file that was distributed with this source code.
7
+ */
8
+
9
+ #import "SDDisplayLink.h"
10
+ #import "SDWeakProxy.h"
11
+ #if SD_MAC
12
+ #import <CoreVideo/CoreVideo.h>
13
+ #elif SD_IOS || SD_TV
14
+ #import <QuartzCore/QuartzCore.h>
15
+ #endif
16
+
17
+ #if SD_MAC
18
+ static CVReturn DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeStamp *inNow, const CVTimeStamp *inOutputTime, CVOptionFlags flagsIn, CVOptionFlags *flagsOut, void *displayLinkContext);
19
+ #endif
20
+
21
+ #define kSDDisplayLinkInterval 1.0 / 60
22
+
23
+ @interface SDDisplayLink ()
24
+
25
+ #if SD_MAC
26
+ @property (nonatomic, assign) CVDisplayLinkRef displayLink;
27
+ @property (nonatomic, assign) CVTimeStamp outputTime;
28
+ @property (nonatomic, copy) NSRunLoopMode runloopMode;
29
+ #elif SD_IOS || SD_TV
30
+ @property (nonatomic, strong) CADisplayLink *displayLink;
31
+ #else
32
+ @property (nonatomic, strong) NSTimer *displayLink;
33
+ @property (nonatomic, strong) NSRunLoop *runloop;
34
+ @property (nonatomic, copy) NSRunLoopMode runloopMode;
35
+ @property (nonatomic, assign) NSTimeInterval currentFireDate;
36
+ #endif
37
+
38
+ @end
39
+
40
+ @implementation SDDisplayLink
41
+
42
+ - (void)dealloc {
43
+ #if SD_MAC
44
+ if (_displayLink) {
45
+ CVDisplayLinkRelease(_displayLink);
46
+ _displayLink = NULL;
47
+ }
48
+ #elif SD_IOS || SD_TV
49
+ [_displayLink invalidate];
50
+ _displayLink = nil;
51
+ #else
52
+ [_displayLink invalidate];
53
+ _displayLink = nil;
54
+ #endif
55
+ }
56
+
57
+ - (instancetype)initWithTarget:(id)target selector:(SEL)sel {
58
+ self = [super init];
59
+ if (self) {
60
+ _target = target;
61
+ _selector = sel;
62
+ #if SD_MAC
63
+ CVDisplayLinkCreateWithActiveCGDisplays(&_displayLink);
64
+ CVDisplayLinkSetOutputCallback(_displayLink, DisplayLinkCallback, (__bridge void *)self);
65
+ #elif SD_IOS || SD_TV
66
+ SDWeakProxy *weakProxy = [SDWeakProxy proxyWithTarget:self];
67
+ _displayLink = [CADisplayLink displayLinkWithTarget:weakProxy selector:@selector(displayLinkDidRefresh:)];
68
+ #else
69
+ SDWeakProxy *weakProxy = [SDWeakProxy proxyWithTarget:self];
70
+ _displayLink = [NSTimer timerWithTimeInterval:kSDDisplayLinkInterval target:weakProxy selector:@selector(displayLinkDidRefresh:) userInfo:nil repeats:YES];
71
+ #endif
72
+ }
73
+ return self;
74
+ }
75
+
76
+ + (instancetype)displayLinkWithTarget:(id)target selector:(SEL)sel {
77
+ SDDisplayLink *displayLink = [[SDDisplayLink alloc] initWithTarget:target selector:sel];
78
+ return displayLink;
79
+ }
80
+
81
+ - (CFTimeInterval)duration {
82
+ #if SD_MAC
83
+ CVTimeStamp outputTime = self.outputTime;
84
+ NSTimeInterval duration = 0;
85
+ double periodPerSecond = (double)outputTime.videoTimeScale * outputTime.rateScalar;
86
+ if (periodPerSecond > 0) {
87
+ duration = (double)outputTime.videoRefreshPeriod / periodPerSecond;
88
+ }
89
+ #elif SD_IOS || SD_TV
90
+ #pragma clang diagnostic push
91
+ #pragma clang diagnostic ignored "-Wdeprecated-declarations"
92
+ NSTimeInterval duration = 0;
93
+ if (@available(iOS 10.0, tvOS 10.0, *)) {
94
+ duration = self.displayLink.targetTimestamp - CACurrentMediaTime();
95
+ } else {
96
+ duration = self.displayLink.duration * self.displayLink.frameInterval;
97
+ }
98
+ #pragma clang diagnostic pop
99
+ #else
100
+ NSTimeInterval duration = 0;
101
+ if (self.displayLink.isValid && self.currentFireDate != 0) {
102
+ NSTimeInterval nextFireDate = CFRunLoopTimerGetNextFireDate((__bridge CFRunLoopTimerRef)self.displayLink);
103
+ duration = nextFireDate - self.currentFireDate;
104
+ }
105
+ #endif
106
+ if (duration <= 0) {
107
+ duration = kSDDisplayLinkInterval;
108
+ }
109
+ return duration;
110
+ }
111
+
112
+ - (BOOL)isRunning {
113
+ #if SD_MAC
114
+ return CVDisplayLinkIsRunning(self.displayLink);
115
+ #elif SD_IOS || SD_TV
116
+ return !self.displayLink.isPaused;
117
+ #else
118
+ return self.displayLink.isValid;
119
+ #endif
120
+ }
121
+
122
+ - (void)addToRunLoop:(NSRunLoop *)runloop forMode:(NSRunLoopMode)mode {
123
+ if (!runloop || !mode) {
124
+ return;
125
+ }
126
+ #if SD_MAC
127
+ self.runloopMode = mode;
128
+ #elif SD_IOS || SD_TV
129
+ [self.displayLink addToRunLoop:runloop forMode:mode];
130
+ #else
131
+ self.runloop = runloop;
132
+ self.runloopMode = mode;
133
+ CFRunLoopMode cfMode;
134
+ if ([mode isEqualToString:NSDefaultRunLoopMode]) {
135
+ cfMode = kCFRunLoopDefaultMode;
136
+ } else if ([mode isEqualToString:NSRunLoopCommonModes]) {
137
+ cfMode = kCFRunLoopCommonModes;
138
+ } else {
139
+ cfMode = (__bridge CFStringRef)mode;
140
+ }
141
+ CFRunLoopAddTimer(runloop.getCFRunLoop, (__bridge CFRunLoopTimerRef)self.displayLink, cfMode);
142
+ #endif
143
+ }
144
+
145
+ - (void)removeFromRunLoop:(NSRunLoop *)runloop forMode:(NSRunLoopMode)mode {
146
+ if (!runloop || !mode) {
147
+ return;
148
+ }
149
+ #if SD_MAC
150
+ self.runloopMode = nil;
151
+ #elif SD_IOS || SD_TV
152
+ [self.displayLink removeFromRunLoop:runloop forMode:mode];
153
+ #else
154
+ self.runloop = nil;
155
+ self.runloopMode = nil;
156
+ CFRunLoopMode cfMode;
157
+ if ([mode isEqualToString:NSDefaultRunLoopMode]) {
158
+ cfMode = kCFRunLoopDefaultMode;
159
+ } else if ([mode isEqualToString:NSRunLoopCommonModes]) {
160
+ cfMode = kCFRunLoopCommonModes;
161
+ } else {
162
+ cfMode = (__bridge CFStringRef)mode;
163
+ }
164
+ CFRunLoopRemoveTimer(runloop.getCFRunLoop, (__bridge CFRunLoopTimerRef)self.displayLink, cfMode);
165
+ #endif
166
+ }
167
+
168
+ - (void)start {
169
+ #if SD_MAC
170
+ CVDisplayLinkStart(self.displayLink);
171
+ #elif SD_IOS || SD_TV
172
+ self.displayLink.paused = NO;
173
+ #else
174
+ if (self.displayLink.isValid) {
175
+ [self.displayLink fire];
176
+ } else {
177
+ SDWeakProxy *weakProxy = [SDWeakProxy proxyWithTarget:self];
178
+ self.displayLink = [NSTimer timerWithTimeInterval:kSDDisplayLinkInterval target:weakProxy selector:@selector(displayLinkDidRefresh:) userInfo:nil repeats:YES];
179
+ [self addToRunLoop:self.runloop forMode:self.runloopMode];
180
+ }
181
+ #endif
182
+ }
183
+
184
+ - (void)stop {
185
+ #if SD_MAC
186
+ CVDisplayLinkStop(self.displayLink);
187
+ #elif SD_IOS || SD_TV
188
+ self.displayLink.paused = YES;
189
+ #else
190
+ [self.displayLink invalidate];
191
+ #endif
192
+ }
193
+
194
+ - (void)displayLinkDidRefresh:(id)displayLink {
195
+ #if SD_MAC
196
+ // CVDisplayLink does not use runloop, but we can provide similar behavior for modes
197
+ // May use `default` runloop to avoid extra callback when in `eventTracking` (mouse drag, scroll) or `modalPanel` (modal panel)
198
+ NSString *runloopMode = self.runloopMode;
199
+ if (![runloopMode isEqualToString:NSRunLoopCommonModes] && ![runloopMode isEqualToString:NSRunLoop.mainRunLoop.currentMode]) {
200
+ return;
201
+ }
202
+ #endif
203
+ #pragma clang diagnostic push
204
+ #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
205
+ [_target performSelector:_selector withObject:self];
206
+ #pragma clang diagnostic pop
207
+ #if SD_WATCH
208
+ self.currentFireDate = CFRunLoopTimerGetNextFireDate((__bridge CFRunLoopTimerRef)self.displayLink);
209
+ #endif
210
+ }
211
+
212
+ @end
213
+
214
+ #if SD_MAC
215
+ static CVReturn DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeStamp *inNow, const CVTimeStamp *inOutputTime, CVOptionFlags flagsIn, CVOptionFlags *flagsOut, void *displayLinkContext) {
216
+ // CVDisplayLink callback is not on main queue
217
+ SDDisplayLink *object = (__bridge SDDisplayLink *)displayLinkContext;
218
+ if (inOutputTime) {
219
+ object.outputTime = *inOutputTime;
220
+ }
221
+ __weak SDDisplayLink *weakObject = object;
222
+ dispatch_async(dispatch_get_main_queue(), ^{
223
+ [weakObject displayLinkDidRefresh:(__bridge id)(displayLink)];
224
+ });
225
+ return kCVReturnSuccess;
226
+ }
227
+ #endif
@@ -0,0 +1,19 @@
1
+ //
2
+ // This file is from https://gist.github.com/zydeco/6292773
3
+ //
4
+ // Created by Jesús A. Álvarez on 2008-12-17.
5
+ // Copyright 2008-2009 namedfork.net. All rights reserved.
6
+ //
7
+
8
+ #import <Foundation/Foundation.h>
9
+
10
+ /// File Extended Attribute (xattr) helper methods
11
+ @interface SDFileAttributeHelper : NSObject
12
+
13
+ + (nullable NSArray<NSString *> *)extendedAttributeNamesAtPath:(nonnull NSString *)path traverseLink:(BOOL)follow error:(NSError * _Nullable * _Nullable)err;
14
+ + (BOOL)hasExtendedAttribute:(nonnull NSString *)name atPath:(nonnull NSString *)path traverseLink:(BOOL)follow error:(NSError * _Nullable * _Nullable)err;
15
+ + (nullable NSData *)extendedAttribute:(nonnull NSString *)name atPath:(nonnull NSString *)path traverseLink:(BOOL)follow error:(NSError * _Nullable * _Nullable)err;
16
+ + (BOOL)setExtendedAttribute:(nonnull NSString *)name value:(nonnull NSData *)value atPath:(nonnull NSString *)path traverseLink:(BOOL)follow overwrite:(BOOL)overwrite error:(NSError * _Nullable * _Nullable)err;
17
+ + (BOOL)removeExtendedAttribute:(nonnull NSString *)name atPath:(nonnull NSString *)path traverseLink:(BOOL)follow error:(NSError * _Nullable * _Nullable)err;
18
+
19
+ @end
@@ -0,0 +1,127 @@
1
+ //
2
+ // This file is from https://gist.github.com/zydeco/6292773
3
+ //
4
+ // Created by Jesús A. Álvarez on 2008-12-17.
5
+ // Copyright 2008-2009 namedfork.net. All rights reserved.
6
+ //
7
+
8
+ #import "SDFileAttributeHelper.h"
9
+ #import <sys/xattr.h>
10
+
11
+ @implementation SDFileAttributeHelper
12
+
13
+ + (NSArray*)extendedAttributeNamesAtPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)err {
14
+ int flags = follow? 0 : XATTR_NOFOLLOW;
15
+
16
+ // get size of name list
17
+ ssize_t nameBuffLen = listxattr([path fileSystemRepresentation], NULL, 0, flags);
18
+ if (nameBuffLen == -1) {
19
+ if (err) *err = [NSError errorWithDomain:NSPOSIXErrorDomain code:errno userInfo:
20
+ @{
21
+ @"error": [NSString stringWithUTF8String:strerror(errno)],
22
+ @"function": @"listxattr",
23
+ @":path": path,
24
+ @":traverseLink": @(follow)
25
+ }
26
+ ];
27
+ return nil;
28
+ } else if (nameBuffLen == 0) return @[];
29
+
30
+ // get name list
31
+ NSMutableData *nameBuff = [NSMutableData dataWithLength:nameBuffLen];
32
+ listxattr([path fileSystemRepresentation], [nameBuff mutableBytes], nameBuffLen, flags);
33
+
34
+ // convert to array
35
+ NSMutableArray * names = [NSMutableArray arrayWithCapacity:5];
36
+ char *nextName, *endOfNames = [nameBuff mutableBytes] + nameBuffLen;
37
+ for(nextName = [nameBuff mutableBytes]; nextName < endOfNames; nextName += 1+strlen(nextName))
38
+ [names addObject:[NSString stringWithUTF8String:nextName]];
39
+ return names.copy;
40
+ }
41
+
42
+ + (BOOL)hasExtendedAttribute:(NSString *)name atPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)err {
43
+ int flags = follow? 0 : XATTR_NOFOLLOW;
44
+
45
+ // get size of name list
46
+ ssize_t nameBuffLen = listxattr([path fileSystemRepresentation], NULL, 0, flags);
47
+ if (nameBuffLen == -1) {
48
+ if (err) *err = [NSError errorWithDomain:NSPOSIXErrorDomain code:errno userInfo:
49
+ @{
50
+ @"error": [NSString stringWithUTF8String:strerror(errno)],
51
+ @"function": @"listxattr",
52
+ @":path": path,
53
+ @":traverseLink": @(follow)
54
+ }
55
+ ];
56
+ return NO;
57
+ } else if (nameBuffLen == 0) return NO;
58
+
59
+ // get name list
60
+ NSMutableData *nameBuff = [NSMutableData dataWithLength:nameBuffLen];
61
+ listxattr([path fileSystemRepresentation], [nameBuff mutableBytes], nameBuffLen, flags);
62
+
63
+ // find our name
64
+ char *nextName, *endOfNames = [nameBuff mutableBytes] + nameBuffLen;
65
+ for(nextName = [nameBuff mutableBytes]; nextName < endOfNames; nextName += 1+strlen(nextName))
66
+ if (strcmp(nextName, [name UTF8String]) == 0) return YES;
67
+ return NO;
68
+ }
69
+
70
+ + (NSData *)extendedAttribute:(NSString *)name atPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)err {
71
+ int flags = follow? 0 : XATTR_NOFOLLOW;
72
+ // get length
73
+ ssize_t attrLen = getxattr([path fileSystemRepresentation], [name UTF8String], NULL, 0, 0, flags);
74
+ if (attrLen == -1) {
75
+ if (err) *err = [NSError errorWithDomain:NSPOSIXErrorDomain code:errno userInfo:
76
+ @{
77
+ @"error": [NSString stringWithUTF8String:strerror(errno)],
78
+ @"function": @"getxattr",
79
+ @":name": name,
80
+ @":path": path,
81
+ @":traverseLink": @(follow)
82
+ }
83
+ ];
84
+ return nil;
85
+ }
86
+
87
+ // get attribute data
88
+ NSMutableData *attrData = [NSMutableData dataWithLength:attrLen];
89
+ getxattr([path fileSystemRepresentation], [name UTF8String], [attrData mutableBytes], attrLen, 0, flags);
90
+ return attrData;
91
+ }
92
+
93
+ + (BOOL)setExtendedAttribute:(NSString *)name value:(NSData *)value atPath:(NSString *)path traverseLink:(BOOL)follow overwrite:(BOOL)overwrite error:(NSError **)err {
94
+ int flags = (follow? 0 : XATTR_NOFOLLOW) | (overwrite? 0 : XATTR_CREATE);
95
+ if (0 == setxattr([path fileSystemRepresentation], [name UTF8String], [value bytes], [value length], 0, flags)) return YES;
96
+ // error
97
+ if (err) *err = [NSError errorWithDomain:NSPOSIXErrorDomain code:errno userInfo:
98
+ @{
99
+ @"error": [NSString stringWithUTF8String:strerror(errno)],
100
+ @"function": @"setxattr",
101
+ @":name": name,
102
+ @":value.length": @(value.length),
103
+ @":path": path,
104
+ @":traverseLink": @(follow),
105
+ @":overwrite": @(overwrite)
106
+ }
107
+ ];
108
+ return NO;
109
+ }
110
+
111
+ + (BOOL)removeExtendedAttribute:(NSString *)name atPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)err {
112
+ int flags = (follow? 0 : XATTR_NOFOLLOW);
113
+ if (0 == removexattr([path fileSystemRepresentation], [name UTF8String], flags)) return YES;
114
+ // error
115
+ if (err) *err = [NSError errorWithDomain:NSPOSIXErrorDomain code:errno userInfo:
116
+ @{
117
+ @"error": [NSString stringWithUTF8String:strerror(errno)],
118
+ @"function": @"removexattr",
119
+ @":name": name,
120
+ @":path": path,
121
+ @":traverseLink": @(follow)
122
+ }
123
+ ];
124
+ return NO;
125
+ }
126
+
127
+ @end
@@ -0,0 +1,23 @@
1
+ /*
2
+ * This file is part of the SDWebImage package.
3
+ * (c) Olivier Poitrey <rs@dailymotion.com>
4
+ *
5
+ * For the full copyright and license information, please view the LICENSE
6
+ * file that was distributed with this source code.
7
+ */
8
+
9
+ #import <Foundation/Foundation.h>
10
+ #import "SDWebImageCompat.h"
11
+
12
+ /// A Image-Asset manager to work like UIKit/AppKit's image cache behavior
13
+ /// Apple parse the Asset Catalog compiled file(`Assets.car`) by CoreUI.framework, however it's a private framework and there are no other ways to directly get the data. So we just process the normal bundle files :)
14
+ @interface SDImageAssetManager : NSObject
15
+
16
+ @property (nonatomic, strong, nonnull) NSMapTable<NSString *, UIImage *> *imageTable;
17
+
18
+ + (nonnull instancetype)sharedAssetManager;
19
+ - (nullable NSString *)getPathForName:(nonnull NSString *)name bundle:(nonnull NSBundle *)bundle preferredScale:(nonnull CGFloat *)scale;
20
+ - (nullable UIImage *)imageForName:(nonnull NSString *)name;
21
+ - (void)storeImage:(nonnull UIImage *)image forName:(nonnull NSString *)name;
22
+
23
+ @end