@momo-kits/native-kits 0.0.1-beta.4 → 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 (263) hide show
  1. package/example/ios/Example/ComponentModel.swift +7 -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 +13 -8
  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 +12 -1
  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 +8 -0
  18. package/example/ios/Pods/Manifest.lock +22 -3
  19. package/example/ios/Pods/Pods.xcodeproj/project.pbxproj +1551 -165
  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 +88 -38
  253. package/ios/OTPKeyboard/OTPKeyboard.swift +1 -1
  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/Switch/Switch.swift +44 -0
  260. package/ios/native-kits.podspec +2 -0
  261. package/package.json +1 -1
  262. package/ios/Colors+Spacing/Radius.swift +0 -11
  263. package/ios/Popup/Utils++.swift +0 -163
@@ -0,0 +1,556 @@
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 "SDImageCachesManager.h"
10
+ #import "SDImageCachesManagerOperation.h"
11
+ #import "SDImageCache.h"
12
+ #import "SDInternalMacros.h"
13
+
14
+ @interface SDImageCachesManager ()
15
+
16
+ @property (nonatomic, strong, nonnull) NSMutableArray<id<SDImageCache>> *imageCaches;
17
+
18
+ @end
19
+
20
+ @implementation SDImageCachesManager {
21
+ SD_LOCK_DECLARE(_cachesLock);
22
+ }
23
+
24
+ + (SDImageCachesManager *)sharedManager {
25
+ static dispatch_once_t onceToken;
26
+ static SDImageCachesManager *manager;
27
+ dispatch_once(&onceToken, ^{
28
+ manager = [[SDImageCachesManager alloc] init];
29
+ });
30
+ return manager;
31
+ }
32
+
33
+ - (instancetype)init {
34
+ self = [super init];
35
+ if (self) {
36
+ self.queryOperationPolicy = SDImageCachesManagerOperationPolicySerial;
37
+ self.storeOperationPolicy = SDImageCachesManagerOperationPolicyHighestOnly;
38
+ self.removeOperationPolicy = SDImageCachesManagerOperationPolicyConcurrent;
39
+ self.containsOperationPolicy = SDImageCachesManagerOperationPolicySerial;
40
+ self.clearOperationPolicy = SDImageCachesManagerOperationPolicyConcurrent;
41
+ // initialize with default image caches
42
+ _imageCaches = [NSMutableArray arrayWithObject:[SDImageCache sharedImageCache]];
43
+ SD_LOCK_INIT(_cachesLock);
44
+ }
45
+ return self;
46
+ }
47
+
48
+ - (NSArray<id<SDImageCache>> *)caches {
49
+ SD_LOCK(_cachesLock);
50
+ NSArray<id<SDImageCache>> *caches = [_imageCaches copy];
51
+ SD_UNLOCK(_cachesLock);
52
+ return caches;
53
+ }
54
+
55
+ - (void)setCaches:(NSArray<id<SDImageCache>> *)caches {
56
+ SD_LOCK(_cachesLock);
57
+ [_imageCaches removeAllObjects];
58
+ if (caches.count) {
59
+ [_imageCaches addObjectsFromArray:caches];
60
+ }
61
+ SD_UNLOCK(_cachesLock);
62
+ }
63
+
64
+ #pragma mark - Cache IO operations
65
+
66
+ - (void)addCache:(id<SDImageCache>)cache {
67
+ if (![cache conformsToProtocol:@protocol(SDImageCache)]) {
68
+ return;
69
+ }
70
+ SD_LOCK(_cachesLock);
71
+ [_imageCaches addObject:cache];
72
+ SD_UNLOCK(_cachesLock);
73
+ }
74
+
75
+ - (void)removeCache:(id<SDImageCache>)cache {
76
+ if (![cache conformsToProtocol:@protocol(SDImageCache)]) {
77
+ return;
78
+ }
79
+ SD_LOCK(_cachesLock);
80
+ [_imageCaches removeObject:cache];
81
+ SD_UNLOCK(_cachesLock);
82
+ }
83
+
84
+ #pragma mark - SDImageCache
85
+
86
+ - (id<SDWebImageOperation>)queryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(SDWebImageContext *)context completion:(SDImageCacheQueryCompletionBlock)completionBlock {
87
+ return [self queryImageForKey:key options:options context:context cacheType:SDImageCacheTypeAll completion:completionBlock];
88
+ }
89
+
90
+ - (id<SDWebImageOperation>)queryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(SDWebImageContext *)context cacheType:(SDImageCacheType)cacheType completion:(SDImageCacheQueryCompletionBlock)completionBlock {
91
+ if (!key) {
92
+ return nil;
93
+ }
94
+ NSArray<id<SDImageCache>> *caches = self.caches;
95
+ NSUInteger count = caches.count;
96
+ if (count == 0) {
97
+ return nil;
98
+ } else if (count == 1) {
99
+ return [caches.firstObject queryImageForKey:key options:options context:context cacheType:cacheType completion:completionBlock];
100
+ }
101
+ switch (self.queryOperationPolicy) {
102
+ case SDImageCachesManagerOperationPolicyHighestOnly: {
103
+ id<SDImageCache> cache = caches.lastObject;
104
+ return [cache queryImageForKey:key options:options context:context cacheType:cacheType completion:completionBlock];
105
+ }
106
+ break;
107
+ case SDImageCachesManagerOperationPolicyLowestOnly: {
108
+ id<SDImageCache> cache = caches.firstObject;
109
+ return [cache queryImageForKey:key options:options context:context cacheType:cacheType completion:completionBlock];
110
+ }
111
+ break;
112
+ case SDImageCachesManagerOperationPolicyConcurrent: {
113
+ SDImageCachesManagerOperation *operation = [SDImageCachesManagerOperation new];
114
+ [operation beginWithTotalCount:caches.count];
115
+ [self concurrentQueryImageForKey:key options:options context:context cacheType:cacheType completion:completionBlock enumerator:caches.reverseObjectEnumerator operation:operation];
116
+ return operation;
117
+ }
118
+ break;
119
+ case SDImageCachesManagerOperationPolicySerial: {
120
+ SDImageCachesManagerOperation *operation = [SDImageCachesManagerOperation new];
121
+ [operation beginWithTotalCount:caches.count];
122
+ [self serialQueryImageForKey:key options:options context:context cacheType:cacheType completion:completionBlock enumerator:caches.reverseObjectEnumerator operation:operation];
123
+ return operation;
124
+ }
125
+ break;
126
+ default:
127
+ return nil;
128
+ break;
129
+ }
130
+ }
131
+
132
+ - (void)storeImage:(UIImage *)image imageData:(NSData *)imageData forKey:(NSString *)key cacheType:(SDImageCacheType)cacheType completion:(SDWebImageNoParamsBlock)completionBlock {
133
+ if (!key) {
134
+ return;
135
+ }
136
+ NSArray<id<SDImageCache>> *caches = self.caches;
137
+ NSUInteger count = caches.count;
138
+ if (count == 0) {
139
+ return;
140
+ } else if (count == 1) {
141
+ [caches.firstObject storeImage:image imageData:imageData forKey:key cacheType:cacheType completion:completionBlock];
142
+ return;
143
+ }
144
+ switch (self.storeOperationPolicy) {
145
+ case SDImageCachesManagerOperationPolicyHighestOnly: {
146
+ id<SDImageCache> cache = caches.lastObject;
147
+ [cache storeImage:image imageData:imageData forKey:key cacheType:cacheType completion:completionBlock];
148
+ }
149
+ break;
150
+ case SDImageCachesManagerOperationPolicyLowestOnly: {
151
+ id<SDImageCache> cache = caches.firstObject;
152
+ [cache storeImage:image imageData:imageData forKey:key cacheType:cacheType completion:completionBlock];
153
+ }
154
+ break;
155
+ case SDImageCachesManagerOperationPolicyConcurrent: {
156
+ SDImageCachesManagerOperation *operation = [SDImageCachesManagerOperation new];
157
+ [operation beginWithTotalCount:caches.count];
158
+ [self concurrentStoreImage:image imageData:imageData forKey:key cacheType:cacheType completion:completionBlock enumerator:caches.reverseObjectEnumerator operation:operation];
159
+ }
160
+ break;
161
+ case SDImageCachesManagerOperationPolicySerial: {
162
+ [self serialStoreImage:image imageData:imageData forKey:key cacheType:cacheType completion:completionBlock enumerator:caches.reverseObjectEnumerator];
163
+ }
164
+ break;
165
+ default:
166
+ break;
167
+ }
168
+ }
169
+
170
+ - (void)removeImageForKey:(NSString *)key cacheType:(SDImageCacheType)cacheType completion:(SDWebImageNoParamsBlock)completionBlock {
171
+ if (!key) {
172
+ return;
173
+ }
174
+ NSArray<id<SDImageCache>> *caches = self.caches;
175
+ NSUInteger count = caches.count;
176
+ if (count == 0) {
177
+ return;
178
+ } else if (count == 1) {
179
+ [caches.firstObject removeImageForKey:key cacheType:cacheType completion:completionBlock];
180
+ return;
181
+ }
182
+ switch (self.removeOperationPolicy) {
183
+ case SDImageCachesManagerOperationPolicyHighestOnly: {
184
+ id<SDImageCache> cache = caches.lastObject;
185
+ [cache removeImageForKey:key cacheType:cacheType completion:completionBlock];
186
+ }
187
+ break;
188
+ case SDImageCachesManagerOperationPolicyLowestOnly: {
189
+ id<SDImageCache> cache = caches.firstObject;
190
+ [cache removeImageForKey:key cacheType:cacheType completion:completionBlock];
191
+ }
192
+ break;
193
+ case SDImageCachesManagerOperationPolicyConcurrent: {
194
+ SDImageCachesManagerOperation *operation = [SDImageCachesManagerOperation new];
195
+ [operation beginWithTotalCount:caches.count];
196
+ [self concurrentRemoveImageForKey:key cacheType:cacheType completion:completionBlock enumerator:caches.reverseObjectEnumerator operation:operation];
197
+ }
198
+ break;
199
+ case SDImageCachesManagerOperationPolicySerial: {
200
+ [self serialRemoveImageForKey:key cacheType:cacheType completion:completionBlock enumerator:caches.reverseObjectEnumerator];
201
+ }
202
+ break;
203
+ default:
204
+ break;
205
+ }
206
+ }
207
+
208
+ - (void)containsImageForKey:(NSString *)key cacheType:(SDImageCacheType)cacheType completion:(SDImageCacheContainsCompletionBlock)completionBlock {
209
+ if (!key) {
210
+ return;
211
+ }
212
+ NSArray<id<SDImageCache>> *caches = self.caches;
213
+ NSUInteger count = caches.count;
214
+ if (count == 0) {
215
+ return;
216
+ } else if (count == 1) {
217
+ [caches.firstObject containsImageForKey:key cacheType:cacheType completion:completionBlock];
218
+ return;
219
+ }
220
+ switch (self.clearOperationPolicy) {
221
+ case SDImageCachesManagerOperationPolicyHighestOnly: {
222
+ id<SDImageCache> cache = caches.lastObject;
223
+ [cache containsImageForKey:key cacheType:cacheType completion:completionBlock];
224
+ }
225
+ break;
226
+ case SDImageCachesManagerOperationPolicyLowestOnly: {
227
+ id<SDImageCache> cache = caches.firstObject;
228
+ [cache containsImageForKey:key cacheType:cacheType completion:completionBlock];
229
+ }
230
+ break;
231
+ case SDImageCachesManagerOperationPolicyConcurrent: {
232
+ SDImageCachesManagerOperation *operation = [SDImageCachesManagerOperation new];
233
+ [operation beginWithTotalCount:caches.count];
234
+ [self concurrentContainsImageForKey:key cacheType:cacheType completion:completionBlock enumerator:caches.reverseObjectEnumerator operation:operation];
235
+ }
236
+ break;
237
+ case SDImageCachesManagerOperationPolicySerial: {
238
+ SDImageCachesManagerOperation *operation = [SDImageCachesManagerOperation new];
239
+ [operation beginWithTotalCount:caches.count];
240
+ [self serialContainsImageForKey:key cacheType:cacheType completion:completionBlock enumerator:caches.reverseObjectEnumerator operation:operation];
241
+ }
242
+ break;
243
+ default:
244
+ break;
245
+ }
246
+ }
247
+
248
+ - (void)clearWithCacheType:(SDImageCacheType)cacheType completion:(SDWebImageNoParamsBlock)completionBlock {
249
+ NSArray<id<SDImageCache>> *caches = self.caches;
250
+ NSUInteger count = caches.count;
251
+ if (count == 0) {
252
+ return;
253
+ } else if (count == 1) {
254
+ [caches.firstObject clearWithCacheType:cacheType completion:completionBlock];
255
+ return;
256
+ }
257
+ switch (self.clearOperationPolicy) {
258
+ case SDImageCachesManagerOperationPolicyHighestOnly: {
259
+ id<SDImageCache> cache = caches.lastObject;
260
+ [cache clearWithCacheType:cacheType completion:completionBlock];
261
+ }
262
+ break;
263
+ case SDImageCachesManagerOperationPolicyLowestOnly: {
264
+ id<SDImageCache> cache = caches.firstObject;
265
+ [cache clearWithCacheType:cacheType completion:completionBlock];
266
+ }
267
+ break;
268
+ case SDImageCachesManagerOperationPolicyConcurrent: {
269
+ SDImageCachesManagerOperation *operation = [SDImageCachesManagerOperation new];
270
+ [operation beginWithTotalCount:caches.count];
271
+ [self concurrentClearWithCacheType:cacheType completion:completionBlock enumerator:caches.reverseObjectEnumerator operation:operation];
272
+ }
273
+ break;
274
+ case SDImageCachesManagerOperationPolicySerial: {
275
+ [self serialClearWithCacheType:cacheType completion:completionBlock enumerator:caches.reverseObjectEnumerator];
276
+ }
277
+ break;
278
+ default:
279
+ break;
280
+ }
281
+ }
282
+
283
+ #pragma mark - Concurrent Operation
284
+
285
+ - (void)concurrentQueryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(SDWebImageContext *)context cacheType:(SDImageCacheType)queryCacheType completion:(SDImageCacheQueryCompletionBlock)completionBlock enumerator:(NSEnumerator<id<SDImageCache>> *)enumerator operation:(SDImageCachesManagerOperation *)operation {
286
+ NSParameterAssert(enumerator);
287
+ NSParameterAssert(operation);
288
+ for (id<SDImageCache> cache in enumerator) {
289
+ [cache queryImageForKey:key options:options context:context cacheType:queryCacheType completion:^(UIImage * _Nullable image, NSData * _Nullable data, SDImageCacheType cacheType) {
290
+ if (operation.isCancelled) {
291
+ // Cancelled
292
+ return;
293
+ }
294
+ if (operation.isFinished) {
295
+ // Finished
296
+ return;
297
+ }
298
+ [operation completeOne];
299
+ if (image) {
300
+ // Success
301
+ [operation done];
302
+ if (completionBlock) {
303
+ completionBlock(image, data, cacheType);
304
+ }
305
+ return;
306
+ }
307
+ if (operation.pendingCount == 0) {
308
+ // Complete
309
+ [operation done];
310
+ if (completionBlock) {
311
+ completionBlock(nil, nil, SDImageCacheTypeNone);
312
+ }
313
+ }
314
+ }];
315
+ }
316
+ }
317
+
318
+ - (void)concurrentStoreImage:(UIImage *)image imageData:(NSData *)imageData forKey:(NSString *)key cacheType:(SDImageCacheType)cacheType completion:(SDWebImageNoParamsBlock)completionBlock enumerator:(NSEnumerator<id<SDImageCache>> *)enumerator operation:(SDImageCachesManagerOperation *)operation {
319
+ NSParameterAssert(enumerator);
320
+ NSParameterAssert(operation);
321
+ for (id<SDImageCache> cache in enumerator) {
322
+ [cache storeImage:image imageData:imageData forKey:key cacheType:cacheType completion:^{
323
+ if (operation.isCancelled) {
324
+ // Cancelled
325
+ return;
326
+ }
327
+ if (operation.isFinished) {
328
+ // Finished
329
+ return;
330
+ }
331
+ [operation completeOne];
332
+ if (operation.pendingCount == 0) {
333
+ // Complete
334
+ [operation done];
335
+ if (completionBlock) {
336
+ completionBlock();
337
+ }
338
+ }
339
+ }];
340
+ }
341
+ }
342
+
343
+ - (void)concurrentRemoveImageForKey:(NSString *)key cacheType:(SDImageCacheType)cacheType completion:(SDWebImageNoParamsBlock)completionBlock enumerator:(NSEnumerator<id<SDImageCache>> *)enumerator operation:(SDImageCachesManagerOperation *)operation {
344
+ NSParameterAssert(enumerator);
345
+ NSParameterAssert(operation);
346
+ for (id<SDImageCache> cache in enumerator) {
347
+ [cache removeImageForKey:key cacheType:cacheType completion:^{
348
+ if (operation.isCancelled) {
349
+ // Cancelled
350
+ return;
351
+ }
352
+ if (operation.isFinished) {
353
+ // Finished
354
+ return;
355
+ }
356
+ [operation completeOne];
357
+ if (operation.pendingCount == 0) {
358
+ // Complete
359
+ [operation done];
360
+ if (completionBlock) {
361
+ completionBlock();
362
+ }
363
+ }
364
+ }];
365
+ }
366
+ }
367
+
368
+ - (void)concurrentContainsImageForKey:(NSString *)key cacheType:(SDImageCacheType)cacheType completion:(SDImageCacheContainsCompletionBlock)completionBlock enumerator:(NSEnumerator<id<SDImageCache>> *)enumerator operation:(SDImageCachesManagerOperation *)operation {
369
+ NSParameterAssert(enumerator);
370
+ NSParameterAssert(operation);
371
+ for (id<SDImageCache> cache in enumerator) {
372
+ [cache containsImageForKey:key cacheType:cacheType completion:^(SDImageCacheType containsCacheType) {
373
+ if (operation.isCancelled) {
374
+ // Cancelled
375
+ return;
376
+ }
377
+ if (operation.isFinished) {
378
+ // Finished
379
+ return;
380
+ }
381
+ [operation completeOne];
382
+ if (containsCacheType != SDImageCacheTypeNone) {
383
+ // Success
384
+ [operation done];
385
+ if (completionBlock) {
386
+ completionBlock(containsCacheType);
387
+ }
388
+ return;
389
+ }
390
+ if (operation.pendingCount == 0) {
391
+ // Complete
392
+ [operation done];
393
+ if (completionBlock) {
394
+ completionBlock(SDImageCacheTypeNone);
395
+ }
396
+ }
397
+ }];
398
+ }
399
+ }
400
+
401
+ - (void)concurrentClearWithCacheType:(SDImageCacheType)cacheType completion:(SDWebImageNoParamsBlock)completionBlock enumerator:(NSEnumerator<id<SDImageCache>> *)enumerator operation:(SDImageCachesManagerOperation *)operation {
402
+ NSParameterAssert(enumerator);
403
+ NSParameterAssert(operation);
404
+ for (id<SDImageCache> cache in enumerator) {
405
+ [cache clearWithCacheType:cacheType completion:^{
406
+ if (operation.isCancelled) {
407
+ // Cancelled
408
+ return;
409
+ }
410
+ if (operation.isFinished) {
411
+ // Finished
412
+ return;
413
+ }
414
+ [operation completeOne];
415
+ if (operation.pendingCount == 0) {
416
+ // Complete
417
+ [operation done];
418
+ if (completionBlock) {
419
+ completionBlock();
420
+ }
421
+ }
422
+ }];
423
+ }
424
+ }
425
+
426
+ #pragma mark - Serial Operation
427
+
428
+ - (void)serialQueryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(SDWebImageContext *)context cacheType:(SDImageCacheType)queryCacheType completion:(SDImageCacheQueryCompletionBlock)completionBlock enumerator:(NSEnumerator<id<SDImageCache>> *)enumerator operation:(SDImageCachesManagerOperation *)operation {
429
+ NSParameterAssert(enumerator);
430
+ NSParameterAssert(operation);
431
+ id<SDImageCache> cache = enumerator.nextObject;
432
+ if (!cache) {
433
+ // Complete
434
+ [operation done];
435
+ if (completionBlock) {
436
+ completionBlock(nil, nil, SDImageCacheTypeNone);
437
+ }
438
+ return;
439
+ }
440
+ @weakify(self);
441
+ [cache queryImageForKey:key options:options context:context cacheType:queryCacheType completion:^(UIImage * _Nullable image, NSData * _Nullable data, SDImageCacheType cacheType) {
442
+ @strongify(self);
443
+ if (operation.isCancelled) {
444
+ // Cancelled
445
+ return;
446
+ }
447
+ if (operation.isFinished) {
448
+ // Finished
449
+ return;
450
+ }
451
+ [operation completeOne];
452
+ if (image) {
453
+ // Success
454
+ [operation done];
455
+ if (completionBlock) {
456
+ completionBlock(image, data, cacheType);
457
+ }
458
+ return;
459
+ }
460
+ // Next
461
+ [self serialQueryImageForKey:key options:options context:context cacheType:queryCacheType completion:completionBlock enumerator:enumerator operation:operation];
462
+ }];
463
+ }
464
+
465
+ - (void)serialStoreImage:(UIImage *)image imageData:(NSData *)imageData forKey:(NSString *)key cacheType:(SDImageCacheType)cacheType completion:(SDWebImageNoParamsBlock)completionBlock enumerator:(NSEnumerator<id<SDImageCache>> *)enumerator {
466
+ NSParameterAssert(enumerator);
467
+ id<SDImageCache> cache = enumerator.nextObject;
468
+ if (!cache) {
469
+ // Complete
470
+ if (completionBlock) {
471
+ completionBlock();
472
+ }
473
+ return;
474
+ }
475
+ @weakify(self);
476
+ [cache storeImage:image imageData:imageData forKey:key cacheType:cacheType completion:^{
477
+ @strongify(self);
478
+ // Next
479
+ [self serialStoreImage:image imageData:imageData forKey:key cacheType:cacheType completion:completionBlock enumerator:enumerator];
480
+ }];
481
+ }
482
+
483
+ - (void)serialRemoveImageForKey:(NSString *)key cacheType:(SDImageCacheType)cacheType completion:(SDWebImageNoParamsBlock)completionBlock enumerator:(NSEnumerator<id<SDImageCache>> *)enumerator {
484
+ NSParameterAssert(enumerator);
485
+ id<SDImageCache> cache = enumerator.nextObject;
486
+ if (!cache) {
487
+ // Complete
488
+ if (completionBlock) {
489
+ completionBlock();
490
+ }
491
+ return;
492
+ }
493
+ @weakify(self);
494
+ [cache removeImageForKey:key cacheType:cacheType completion:^{
495
+ @strongify(self);
496
+ // Next
497
+ [self serialRemoveImageForKey:key cacheType:cacheType completion:completionBlock enumerator:enumerator];
498
+ }];
499
+ }
500
+
501
+ - (void)serialContainsImageForKey:(NSString *)key cacheType:(SDImageCacheType)cacheType completion:(SDImageCacheContainsCompletionBlock)completionBlock enumerator:(NSEnumerator<id<SDImageCache>> *)enumerator operation:(SDImageCachesManagerOperation *)operation {
502
+ NSParameterAssert(enumerator);
503
+ NSParameterAssert(operation);
504
+ id<SDImageCache> cache = enumerator.nextObject;
505
+ if (!cache) {
506
+ // Complete
507
+ [operation done];
508
+ if (completionBlock) {
509
+ completionBlock(SDImageCacheTypeNone);
510
+ }
511
+ return;
512
+ }
513
+ @weakify(self);
514
+ [cache containsImageForKey:key cacheType:cacheType completion:^(SDImageCacheType containsCacheType) {
515
+ @strongify(self);
516
+ if (operation.isCancelled) {
517
+ // Cancelled
518
+ return;
519
+ }
520
+ if (operation.isFinished) {
521
+ // Finished
522
+ return;
523
+ }
524
+ [operation completeOne];
525
+ if (containsCacheType != SDImageCacheTypeNone) {
526
+ // Success
527
+ [operation done];
528
+ if (completionBlock) {
529
+ completionBlock(containsCacheType);
530
+ }
531
+ return;
532
+ }
533
+ // Next
534
+ [self serialContainsImageForKey:key cacheType:cacheType completion:completionBlock enumerator:enumerator operation:operation];
535
+ }];
536
+ }
537
+
538
+ - (void)serialClearWithCacheType:(SDImageCacheType)cacheType completion:(SDWebImageNoParamsBlock)completionBlock enumerator:(NSEnumerator<id<SDImageCache>> *)enumerator {
539
+ NSParameterAssert(enumerator);
540
+ id<SDImageCache> cache = enumerator.nextObject;
541
+ if (!cache) {
542
+ // Complete
543
+ if (completionBlock) {
544
+ completionBlock();
545
+ }
546
+ return;
547
+ }
548
+ @weakify(self);
549
+ [cache clearWithCacheType:cacheType completion:^{
550
+ @strongify(self);
551
+ // Next
552
+ [self serialClearWithCacheType:cacheType completion:completionBlock enumerator:enumerator];
553
+ }];
554
+ }
555
+
556
+ @end