mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-03 21:16:35 +00:00
Merge commit '42b4fc77c1dec08112a57e8d4d7e6ab1901fe87c'
This commit is contained in:
commit
37cae0e4b9
@ -26,15 +26,8 @@
|
||||
091BEAB3214552D9003AEA30 /* Vision.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D02DADBE2138D76F00116225 /* Vision.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
|
||||
092F368D2154AAEA001A9F49 /* SFCompactRounded-Semibold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 092F368C2154AAE9001A9F49 /* SFCompactRounded-Semibold.otf */; };
|
||||
092F36902157AB46001A9F49 /* ItemListCallListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 092F368F2157AB46001A9F49 /* ItemListCallListItem.swift */; };
|
||||
09310D2C213ED5FB0020033A /* anim_read.json in Resources */ = {isa = PBXBuildFile; fileRef = 09310D14213BC5DE0020033A /* anim_read.json */; };
|
||||
09310D2D213ED5FB0020033A /* anim_pin.json in Resources */ = {isa = PBXBuildFile; fileRef = 09310D15213BC5DE0020033A /* anim_pin.json */; };
|
||||
09310D2E213ED5FB0020033A /* anim_unmute.json in Resources */ = {isa = PBXBuildFile; fileRef = 09310D16213BC5DE0020033A /* anim_unmute.json */; };
|
||||
09310D2F213ED5FB0020033A /* anim_unpin.json in Resources */ = {isa = PBXBuildFile; fileRef = 09310D17213BC5DE0020033A /* anim_unpin.json */; };
|
||||
09310D30213ED5FB0020033A /* anim_unread.json in Resources */ = {isa = PBXBuildFile; fileRef = 09310D18213BC5DE0020033A /* anim_unread.json */; };
|
||||
09310D31213ED5FC0020033A /* anim_delete.json in Resources */ = {isa = PBXBuildFile; fileRef = 09310D19213BC5DE0020033A /* anim_delete.json */; };
|
||||
09310D32213ED5FC0020033A /* anim_ungroup.json in Resources */ = {isa = PBXBuildFile; fileRef = 09310D1A213BC5DE0020033A /* anim_ungroup.json */; };
|
||||
09310D33213ED5FC0020033A /* anim_group.json in Resources */ = {isa = PBXBuildFile; fileRef = 09310D1B213BC5DE0020033A /* anim_group.json */; };
|
||||
09310D34213ED5FC0020033A /* anim_mute.json in Resources */ = {isa = PBXBuildFile; fileRef = 09310D1C213BC5DE0020033A /* anim_mute.json */; };
|
||||
0935F8EF22197FBF0070AE70 /* LegacyAutomaticMediaDownloadSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0935F8EE22197FBF0070AE70 /* LegacyAutomaticMediaDownloadSettings.swift */; };
|
||||
0941A9A0210B057200EBE194 /* OpenInActionSheetController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0941A99F210B057200EBE194 /* OpenInActionSheetController.swift */; };
|
||||
0941A9A4210B0E2E00EBE194 /* OpenInAppIconResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0941A9A3210B0E2E00EBE194 /* OpenInAppIconResources.swift */; };
|
||||
@ -133,12 +126,20 @@
|
||||
09DE2F252269B7E80045E975 /* PasscodeSetupControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DE2F242269B7E80045E975 /* PasscodeSetupControllerNode.swift */; };
|
||||
09DE2F272269D5730045E975 /* PrivacyIntroController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DE2F262269D5730045E975 /* PrivacyIntroController.swift */; };
|
||||
09DE2F292269D5E30045E975 /* PrivacyIntroControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DE2F282269D5E30045E975 /* PrivacyIntroControllerNode.swift */; };
|
||||
09DE2F2C2269E2870045E975 /* anim_unarchive.json in Resources */ = {isa = PBXBuildFile; fileRef = 09DE2F2A2269E2860045E975 /* anim_unarchive.json */; };
|
||||
09DE2F2D2269E2870045E975 /* anim_archive.json in Resources */ = {isa = PBXBuildFile; fileRef = 09DE2F2B2269E2860045E975 /* anim_archive.json */; };
|
||||
09DE2F302269EB030045E975 /* anim_hide.json in Resources */ = {isa = PBXBuildFile; fileRef = 09DE2F2E2269EB030045E975 /* anim_hide.json */; };
|
||||
09DE2F312269EB030045E975 /* anim_unhide.json in Resources */ = {isa = PBXBuildFile; fileRef = 09DE2F2F2269EB030045E975 /* anim_unhide.json */; };
|
||||
09E2D9EF226F1AFA00EA0AA4 /* Emoji.mapping in Resources */ = {isa = PBXBuildFile; fileRef = 09E2D9ED226F1AF300EA0AA4 /* Emoji.mapping */; };
|
||||
09E2D9F1226F214000EA0AA4 /* EmojiResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09E2D9F0226F214000EA0AA4 /* EmojiResources.swift */; };
|
||||
09E2DA0422720C4400EA0AA4 /* archive.json in Resources */ = {isa = PBXBuildFile; fileRef = 09E2D9FA22720A6000EA0AA4 /* archive.json */; };
|
||||
09E2DA0522720C4400EA0AA4 /* delete.json in Resources */ = {isa = PBXBuildFile; fileRef = 09E2D9F522720A5F00EA0AA4 /* delete.json */; };
|
||||
09E2DA0622720C4400EA0AA4 /* mute.json in Resources */ = {isa = PBXBuildFile; fileRef = 09E2D9F922720A6000EA0AA4 /* mute.json */; };
|
||||
09E2DA0722720C4400EA0AA4 /* pin.json in Resources */ = {isa = PBXBuildFile; fileRef = 09E2D9F822720A5F00EA0AA4 /* pin.json */; };
|
||||
09E2DA0822720C4400EA0AA4 /* read.json in Resources */ = {isa = PBXBuildFile; fileRef = 09E2D9F722720A5F00EA0AA4 /* read.json */; };
|
||||
09E2DA0922720C4400EA0AA4 /* unarchive.json in Resources */ = {isa = PBXBuildFile; fileRef = 09E2D9F422720A5F00EA0AA4 /* unarchive.json */; };
|
||||
09E2DA0A22720C4400EA0AA4 /* unmute.json in Resources */ = {isa = PBXBuildFile; fileRef = 09E2D9F622720A5F00EA0AA4 /* unmute.json */; };
|
||||
09E2DA0B22720C4400EA0AA4 /* unpin.json in Resources */ = {isa = PBXBuildFile; fileRef = 09E2D9F222720A5E00EA0AA4 /* unpin.json */; };
|
||||
09E2DA0C22720C4400EA0AA4 /* unread.json in Resources */ = {isa = PBXBuildFile; fileRef = 09E2D9F322720A5E00EA0AA4 /* unread.json */; };
|
||||
09E2DA0F2273258700EA0AA4 /* hide.json in Resources */ = {isa = PBXBuildFile; fileRef = 09E2DA0D2273245300EA0AA4 /* hide.json */; };
|
||||
09E2DA112273340E00EA0AA4 /* AnimationNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09E2DA102273340E00EA0AA4 /* AnimationNode.swift */; };
|
||||
09E2DA132273367900EA0AA4 /* archiveAvatar.json in Resources */ = {isa = PBXBuildFile; fileRef = 09E2DA122273367900EA0AA4 /* archiveAvatar.json */; };
|
||||
09E4A801223AE1B30038140F /* PeerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09E4A800223AE1B30038140F /* PeerType.swift */; };
|
||||
09E4A803223B833B0038140F /* ForwardPrivacyChatPreviewItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09E4A802223B833B0038140F /* ForwardPrivacyChatPreviewItem.swift */; };
|
||||
09E4A805223D4A5A0038140F /* OpenSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09E4A804223D4A5A0038140F /* OpenSettings.swift */; };
|
||||
@ -152,7 +153,6 @@
|
||||
09F21565225C83E100AEDF6D /* ChatListStatusNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F21564225C83E100AEDF6D /* ChatListStatusNode.swift */; };
|
||||
09F21567225C8EF500AEDF6D /* ChatListOnlineNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F21566225C8EF500AEDF6D /* ChatListOnlineNode.swift */; };
|
||||
09F2158D225CF5BC00AEDF6D /* Pasteboard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F2158C225CF5BC00AEDF6D /* Pasteboard.swift */; };
|
||||
09F21594225F20D300AEDF6D /* LargeEmojiResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F21593225F20D300AEDF6D /* LargeEmojiResource.swift */; };
|
||||
09F2159A2263E62900AEDF6D /* PasscodeEntryController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F215992263E62900AEDF6D /* PasscodeEntryController.swift */; };
|
||||
09F2159C2263E63200AEDF6D /* PasscodeEntryControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F2159B2263E63200AEDF6D /* PasscodeEntryControllerNode.swift */; };
|
||||
09F215A022649BCB00AEDF6D /* PasscodeEntryInputFieldNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F2159F22649BCB00AEDF6D /* PasscodeEntryInputFieldNode.swift */; };
|
||||
@ -1207,15 +1207,8 @@
|
||||
091417F321EF4F5F00C8325A /* WallpaperGalleryItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperGalleryItem.swift; sourceTree = "<group>"; };
|
||||
092F368C2154AAE9001A9F49 /* SFCompactRounded-Semibold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SFCompactRounded-Semibold.otf"; sourceTree = "<group>"; };
|
||||
092F368F2157AB46001A9F49 /* ItemListCallListItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemListCallListItem.swift; sourceTree = "<group>"; };
|
||||
09310D14213BC5DE0020033A /* anim_read.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_read.json; sourceTree = "<group>"; };
|
||||
09310D15213BC5DE0020033A /* anim_pin.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_pin.json; sourceTree = "<group>"; };
|
||||
09310D16213BC5DE0020033A /* anim_unmute.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_unmute.json; sourceTree = "<group>"; };
|
||||
09310D17213BC5DE0020033A /* anim_unpin.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_unpin.json; sourceTree = "<group>"; };
|
||||
09310D18213BC5DE0020033A /* anim_unread.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_unread.json; sourceTree = "<group>"; };
|
||||
09310D19213BC5DE0020033A /* anim_delete.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_delete.json; sourceTree = "<group>"; };
|
||||
09310D1A213BC5DE0020033A /* anim_ungroup.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_ungroup.json; sourceTree = "<group>"; };
|
||||
09310D1B213BC5DE0020033A /* anim_group.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_group.json; sourceTree = "<group>"; };
|
||||
09310D1C213BC5DE0020033A /* anim_mute.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_mute.json; sourceTree = "<group>"; };
|
||||
0935F8EE22197FBF0070AE70 /* LegacyAutomaticMediaDownloadSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyAutomaticMediaDownloadSettings.swift; sourceTree = "<group>"; };
|
||||
0941A99F210B057200EBE194 /* OpenInActionSheetController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenInActionSheetController.swift; sourceTree = "<group>"; };
|
||||
0941A9A3210B0E2E00EBE194 /* OpenInAppIconResources.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenInAppIconResources.swift; sourceTree = "<group>"; };
|
||||
@ -1318,12 +1311,20 @@
|
||||
09DE2F242269B7E80045E975 /* PasscodeSetupControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeSetupControllerNode.swift; sourceTree = "<group>"; };
|
||||
09DE2F262269D5730045E975 /* PrivacyIntroController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrivacyIntroController.swift; sourceTree = "<group>"; };
|
||||
09DE2F282269D5E30045E975 /* PrivacyIntroControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrivacyIntroControllerNode.swift; sourceTree = "<group>"; };
|
||||
09DE2F2A2269E2860045E975 /* anim_unarchive.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_unarchive.json; sourceTree = "<group>"; };
|
||||
09DE2F2B2269E2860045E975 /* anim_archive.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_archive.json; sourceTree = "<group>"; };
|
||||
09DE2F2E2269EB030045E975 /* anim_hide.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_hide.json; sourceTree = "<group>"; };
|
||||
09DE2F2F2269EB030045E975 /* anim_unhide.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_unhide.json; sourceTree = "<group>"; };
|
||||
09E2D9ED226F1AF300EA0AA4 /* Emoji.mapping */ = {isa = PBXFileReference; lastKnownFileType = file; name = Emoji.mapping; path = TelegramUI/Resources/Emoji.mapping; sourceTree = "<group>"; };
|
||||
09E2D9F0226F214000EA0AA4 /* EmojiResources.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiResources.swift; sourceTree = "<group>"; };
|
||||
09E2D9F222720A5E00EA0AA4 /* unpin.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = unpin.json; sourceTree = "<group>"; };
|
||||
09E2D9F322720A5E00EA0AA4 /* unread.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = unread.json; sourceTree = "<group>"; };
|
||||
09E2D9F422720A5F00EA0AA4 /* unarchive.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = unarchive.json; sourceTree = "<group>"; };
|
||||
09E2D9F522720A5F00EA0AA4 /* delete.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = delete.json; sourceTree = "<group>"; };
|
||||
09E2D9F622720A5F00EA0AA4 /* unmute.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = unmute.json; sourceTree = "<group>"; };
|
||||
09E2D9F722720A5F00EA0AA4 /* read.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = read.json; sourceTree = "<group>"; };
|
||||
09E2D9F822720A5F00EA0AA4 /* pin.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = pin.json; sourceTree = "<group>"; };
|
||||
09E2D9F922720A6000EA0AA4 /* mute.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = mute.json; sourceTree = "<group>"; };
|
||||
09E2D9FA22720A6000EA0AA4 /* archive.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = archive.json; sourceTree = "<group>"; };
|
||||
09E2DA0D2273245300EA0AA4 /* hide.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = hide.json; sourceTree = "<group>"; };
|
||||
09E2DA102273340E00EA0AA4 /* AnimationNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnimationNode.swift; sourceTree = "<group>"; };
|
||||
09E2DA122273367900EA0AA4 /* archiveAvatar.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = archiveAvatar.json; sourceTree = "<group>"; };
|
||||
09E4A800223AE1B30038140F /* PeerType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerType.swift; sourceTree = "<group>"; };
|
||||
09E4A802223B833B0038140F /* ForwardPrivacyChatPreviewItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ForwardPrivacyChatPreviewItem.swift; sourceTree = "<group>"; };
|
||||
09E4A804223D4A5A0038140F /* OpenSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenSettings.swift; sourceTree = "<group>"; };
|
||||
@ -1337,7 +1338,6 @@
|
||||
09F21564225C83E100AEDF6D /* ChatListStatusNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListStatusNode.swift; sourceTree = "<group>"; };
|
||||
09F21566225C8EF500AEDF6D /* ChatListOnlineNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListOnlineNode.swift; sourceTree = "<group>"; };
|
||||
09F2158C225CF5BC00AEDF6D /* Pasteboard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Pasteboard.swift; sourceTree = "<group>"; };
|
||||
09F21593225F20D300AEDF6D /* LargeEmojiResource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LargeEmojiResource.swift; sourceTree = "<group>"; };
|
||||
09F215992263E62900AEDF6D /* PasscodeEntryController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeEntryController.swift; sourceTree = "<group>"; };
|
||||
09F2159B2263E63200AEDF6D /* PasscodeEntryControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeEntryControllerNode.swift; sourceTree = "<group>"; };
|
||||
09F2159F22649BCB00AEDF6D /* PasscodeEntryInputFieldNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeEntryInputFieldNode.swift; sourceTree = "<group>"; };
|
||||
@ -2520,19 +2520,19 @@
|
||||
09310D13213BC5DE0020033A /* Animations */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
09DE2F2E2269EB030045E975 /* anim_hide.json */,
|
||||
09DE2F2F2269EB030045E975 /* anim_unhide.json */,
|
||||
09DE2F2B2269E2860045E975 /* anim_archive.json */,
|
||||
09DE2F2A2269E2860045E975 /* anim_unarchive.json */,
|
||||
09310D14213BC5DE0020033A /* anim_read.json */,
|
||||
09310D15213BC5DE0020033A /* anim_pin.json */,
|
||||
09310D16213BC5DE0020033A /* anim_unmute.json */,
|
||||
09310D17213BC5DE0020033A /* anim_unpin.json */,
|
||||
09310D18213BC5DE0020033A /* anim_unread.json */,
|
||||
09310D19213BC5DE0020033A /* anim_delete.json */,
|
||||
09E2DA122273367900EA0AA4 /* archiveAvatar.json */,
|
||||
09E2D9FA22720A6000EA0AA4 /* archive.json */,
|
||||
09E2D9F522720A5F00EA0AA4 /* delete.json */,
|
||||
09E2DA0D2273245300EA0AA4 /* hide.json */,
|
||||
09E2D9F922720A6000EA0AA4 /* mute.json */,
|
||||
09E2D9F822720A5F00EA0AA4 /* pin.json */,
|
||||
09E2D9F722720A5F00EA0AA4 /* read.json */,
|
||||
09E2D9F422720A5F00EA0AA4 /* unarchive.json */,
|
||||
09E2D9F622720A5F00EA0AA4 /* unmute.json */,
|
||||
09E2D9F222720A5E00EA0AA4 /* unpin.json */,
|
||||
09E2D9F322720A5E00EA0AA4 /* unread.json */,
|
||||
09310D1A213BC5DE0020033A /* anim_ungroup.json */,
|
||||
09310D1B213BC5DE0020033A /* anim_group.json */,
|
||||
09310D1C213BC5DE0020033A /* anim_mute.json */,
|
||||
);
|
||||
name = Animations;
|
||||
path = TelegramUI/Resources/Animations;
|
||||
@ -4559,6 +4559,7 @@
|
||||
D00580B221E4B51600CB7CD3 /* DeleteChatPeerActionSheetItem.swift */,
|
||||
09749BCE21F236F2008FDDE9 /* ModernCheckNode.swift */,
|
||||
D0B21B12220D6E8C003F741D /* ActionSheetPeerItem.swift */,
|
||||
09E2DA102273340E00EA0AA4 /* AnimationNode.swift */,
|
||||
);
|
||||
name = Nodes;
|
||||
sourceTree = "<group>";
|
||||
@ -4970,7 +4971,6 @@
|
||||
099529AB21CDBBB200805E13 /* QRCode.swift */,
|
||||
0910B0EE21FA532D00F8F87D /* WallpaperResources.swift */,
|
||||
D0CCD61A222E8B4500EE1E08 /* TimeBasedVideoPreload.swift */,
|
||||
09F21593225F20D300AEDF6D /* LargeEmojiResource.swift */,
|
||||
09E2D9F0226F214000EA0AA4 /* EmojiResources.swift */,
|
||||
);
|
||||
name = Resources;
|
||||
@ -5220,15 +5220,14 @@
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
09874E4F21078FA100E190B8 /* Generic.html in Resources */,
|
||||
09E2DA0822720C4400EA0AA4 /* read.json in Resources */,
|
||||
09874E5021078FA100E190B8 /* GenericUserScript.js in Resources */,
|
||||
09874E5121078FA100E190B8 /* Instagram.html in Resources */,
|
||||
09874E5221078FA100E190B8 /* Twitch.html in Resources */,
|
||||
09874E5321078FA100E190B8 /* TwitchUserScript.js in Resources */,
|
||||
09310D34213ED5FC0020033A /* anim_mute.json in Resources */,
|
||||
09DE2F2C2269E2870045E975 /* anim_unarchive.json in Resources */,
|
||||
09874E5421078FA100E190B8 /* Vimeo.html in Resources */,
|
||||
09310D2C213ED5FB0020033A /* anim_read.json in Resources */,
|
||||
09874E5521078FA100E190B8 /* VimeoUserScript.js in Resources */,
|
||||
09E2DA0422720C4400EA0AA4 /* archive.json in Resources */,
|
||||
09874E5621078FA100E190B8 /* Youtube.html in Resources */,
|
||||
09874E5721078FA100E190B8 /* YoutubeUserScript.js in Resources */,
|
||||
D0EB42051F3143AB00838FE6 /* LegacyComponentsResources.bundle in Resources */,
|
||||
@ -5240,8 +5239,6 @@
|
||||
D0E9BAA31F056F4C00F079A4 /* stp_card_discover_template@2x.png in Resources */,
|
||||
D0E9BAB51F056F4C00F079A4 /* stp_card_visa@2x.png in Resources */,
|
||||
D0E9BA941F056F4C00F079A4 /* stp_card_amex_template@3x.png in Resources */,
|
||||
09310D2F213ED5FB0020033A /* anim_unpin.json in Resources */,
|
||||
09310D2D213ED5FB0020033A /* anim_pin.json in Resources */,
|
||||
D0E9BA961F056F4C00F079A4 /* stp_card_applepay@3x.png in Resources */,
|
||||
D0F9720F1FFE4BD5002595C8 /* notification.caf in Resources */,
|
||||
09310D33213ED5FC0020033A /* anim_group.json in Resources */,
|
||||
@ -5250,7 +5247,6 @@
|
||||
D0E9BA9F1F056F4C00F079A4 /* stp_card_diners_template@2x.png in Resources */,
|
||||
D0E9BA9E1F056F4C00F079A4 /* stp_card_diners@3x.png in Resources */,
|
||||
D0B4AF861EC111FA00D51FF6 /* Images.xcassets in Resources */,
|
||||
09310D31213ED5FC0020033A /* anim_delete.json in Resources */,
|
||||
D0E9BAAD1F056F4C00F079A4 /* stp_card_jcb_template@2x.png in Resources */,
|
||||
D0F972101FFE4BD5002595C8 /* MessageSent.caf in Resources */,
|
||||
D0E9BAB71F056F4C00F079A4 /* stp_card_visa_template@2x.png in Resources */,
|
||||
@ -5259,25 +5255,31 @@
|
||||
D0E9BAAA1F056F4C00F079A4 /* stp_card_form_front@3x.png in Resources */,
|
||||
D0E9BA971F056F4C00F079A4 /* stp_card_applepay_template@2x.png in Resources */,
|
||||
D0E9BAB41F056F4C00F079A4 /* stp_card_placeholder_template@3x.png in Resources */,
|
||||
09DE2F312269EB030045E975 /* anim_unhide.json in Resources */,
|
||||
09E2DA0B22720C4400EA0AA4 /* unpin.json in Resources */,
|
||||
D0E9BAA71F056F4C00F079A4 /* stp_card_form_back@2x.png in Resources */,
|
||||
09310D2E213ED5FB0020033A /* anim_unmute.json in Resources */,
|
||||
D0E9BAB11F056F4C00F079A4 /* stp_card_mastercard_template@2x.png in Resources */,
|
||||
09E2DA0522720C4400EA0AA4 /* delete.json in Resources */,
|
||||
09E2DA0C22720C4400EA0AA4 /* unread.json in Resources */,
|
||||
09E2DA0622720C4400EA0AA4 /* mute.json in Resources */,
|
||||
D0E9BA9D1F056F4C00F079A4 /* stp_card_diners@2x.png in Resources */,
|
||||
09DE2F2D2269E2870045E975 /* anim_archive.json in Resources */,
|
||||
D0E9BAAF1F056F4C00F079A4 /* stp_card_mastercard@2x.png in Resources */,
|
||||
09E2DA0922720C4400EA0AA4 /* unarchive.json in Resources */,
|
||||
D0C12A1D1F33A85600B3F66D /* ChatWallpaperBuiltin0.jpg in Resources */,
|
||||
D0E9BAAC1F056F4C00F079A4 /* stp_card_jcb@3x.png in Resources */,
|
||||
D0E9BA911F056F4C00F079A4 /* stp_card_amex@2x.png in Resources */,
|
||||
09E2DA0A22720C4400EA0AA4 /* unmute.json in Resources */,
|
||||
D0E9BA931F056F4C00F079A4 /* stp_card_amex_template@2x.png in Resources */,
|
||||
D0E9BAA91F056F4C00F079A4 /* stp_card_form_front@2x.png in Resources */,
|
||||
09E2DA0722720C4400EA0AA4 /* pin.json in Resources */,
|
||||
D0E9BAA41F056F4C00F079A4 /* stp_card_discover_template@3x.png in Resources */,
|
||||
D0E9BAA81F056F4C00F079A4 /* stp_card_form_back@3x.png in Resources */,
|
||||
D0E9BAA11F056F4C00F079A4 /* stp_card_discover@2x.png in Resources */,
|
||||
09E2DA0F2273258700EA0AA4 /* hide.json in Resources */,
|
||||
D0E9B9EA1F00853C00F079A4 /* PhoneCountries.txt in Resources */,
|
||||
D0E9BAB31F056F4C00F079A4 /* stp_card_placeholder_template@2x.png in Resources */,
|
||||
D0E9BAAE1F056F4C00F079A4 /* stp_card_jcb_template@3x.png in Resources */,
|
||||
D0E9BAAB1F056F4C00F079A4 /* stp_card_jcb@2x.png in Resources */,
|
||||
09E2DA132273367900EA0AA4 /* archiveAvatar.json in Resources */,
|
||||
D0E9BA9C1F056F4C00F079A4 /* stp_card_cvc_amex@3x.png in Resources */,
|
||||
D0E9BA991F056F4C00F079A4 /* stp_card_cvc@2x.png in Resources */,
|
||||
D0471B541EFD8ECA0074D609 /* currencies.json in Resources */,
|
||||
@ -5286,10 +5288,8 @@
|
||||
D0E9BAA51F056F4C00F079A4 /* stp_card_form_applepay@2x.png in Resources */,
|
||||
D0E9BAB81F056F4C00F079A4 /* stp_card_visa_template@3x.png in Resources */,
|
||||
D0E9BA9B1F056F4C00F079A4 /* stp_card_cvc_amex@2x.png in Resources */,
|
||||
09310D30213ED5FB0020033A /* anim_unread.json in Resources */,
|
||||
D0E9BAB61F056F4C00F079A4 /* stp_card_visa@3x.png in Resources */,
|
||||
D0E9BAA61F056F4C00F079A4 /* stp_card_form_applepay@3x.png in Resources */,
|
||||
09DE2F302269EB030045E975 /* anim_hide.json in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@ -6033,6 +6033,7 @@
|
||||
D0EC6DEB1EB9F58900EBF1C3 /* ChatRequestInProgressTitlePanelNode.swift in Sources */,
|
||||
D0EC6DEC1EB9F58900EBF1C3 /* ChatToastAlertPanelNode.swift in Sources */,
|
||||
D0EC6DED1EB9F58900EBF1C3 /* ChatHistoryNavigationButtonNode.swift in Sources */,
|
||||
09E2DA112273340E00EA0AA4 /* AnimationNode.swift in Sources */,
|
||||
D0F4B01A211073C500912B92 /* DeviceContactInfoController.swift in Sources */,
|
||||
D0FB87B21F7C4C19004DE005 /* FetchMediaUtils.swift in Sources */,
|
||||
0979787E210646C00077D77F /* YoutubeEmbedImplementation.swift in Sources */,
|
||||
@ -6194,7 +6195,6 @@
|
||||
D01776B31F1D69A80044446D /* RadialStatusNode.swift in Sources */,
|
||||
D084023420E295F000065674 /* GroupStickerPackSetupController.swift in Sources */,
|
||||
D01C06BE1FBCAF06001561AB /* ChatMessageBubbleMosaicLayout.swift in Sources */,
|
||||
09F21594225F20D300AEDF6D /* LargeEmojiResource.swift in Sources */,
|
||||
0900678D21ED5EA800530762 /* WallpaperColorPanelNode.swift in Sources */,
|
||||
D0EC6E451EB9F58900EBF1C3 /* ItemListMultilineTextItem.swift in Sources */,
|
||||
091417F421EF4F5F00C8325A /* WallpaperGalleryItem.swift in Sources */,
|
||||
|
||||
62
TelegramUI/AnimationNode.swift
Normal file
62
TelegramUI/AnimationNode.swift
Normal file
@ -0,0 +1,62 @@
|
||||
import Foundation
|
||||
import AsyncDisplayKit
|
||||
import Lottie
|
||||
|
||||
final class AnimationNode : ASDisplayNode {
|
||||
private let scale: CGFloat
|
||||
var played = false
|
||||
var completion: (() -> Void)?
|
||||
|
||||
init(animation: String, keysToColor: [String]?, color: UIColor, scale: CGFloat) {
|
||||
self.scale = scale
|
||||
|
||||
super.init()
|
||||
|
||||
self.setViewBlock({
|
||||
if let url = frameworkBundle.url(forResource: animation, withExtension: "json"), let composition = LOTComposition(filePath: url.path) {
|
||||
let view = LOTAnimationView(model: composition, in: frameworkBundle)
|
||||
view.backgroundColor = .clear
|
||||
view.isOpaque = false
|
||||
|
||||
let colorCallback = LOTColorValueCallback(color: color.cgColor)
|
||||
if let keysToColor = keysToColor {
|
||||
for key in keysToColor {
|
||||
view.setValueDelegate(colorCallback, for: LOTKeypath(string: "\(key).Color"))
|
||||
}
|
||||
}
|
||||
|
||||
return view
|
||||
} else {
|
||||
return UIView()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func animationView() -> LOTAnimationView? {
|
||||
return self.view as? LOTAnimationView
|
||||
}
|
||||
|
||||
func play() {
|
||||
if let animationView = animationView(), !animationView.isAnimationPlaying, !self.played {
|
||||
self.played = true
|
||||
animationView.play { [weak self] _ in
|
||||
self?.completion?()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func reset() {
|
||||
if self.played, let animationView = animationView() {
|
||||
self.played = false
|
||||
animationView.stop()
|
||||
}
|
||||
}
|
||||
|
||||
func preferredSize() -> CGSize? {
|
||||
if let animationView = animationView(), let sceneModel = animationView.sceneModel {
|
||||
return CGSize(width: sceneModel.compBounds.width * self.scale, height: sceneModel.compBounds.height * self.scale)
|
||||
} else {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -149,6 +149,8 @@ public final class AvatarNode: ASDisplayNode {
|
||||
private var parameters: AvatarNodeParameters?
|
||||
private var theme: PresentationTheme?
|
||||
let imageNode: ImageNode
|
||||
private var animationBackgroundNode: ImageNode?
|
||||
private var animationNode: AnimationNode?
|
||||
var editOverlayNode: AvatarEditOverlayNode?
|
||||
|
||||
private let imageReadyDisposable = MetaDisposable()
|
||||
@ -202,6 +204,35 @@ public final class AvatarNode: ASDisplayNode {
|
||||
}
|
||||
}
|
||||
|
||||
public func playAnimation(_ name: String, scale: CGFloat) {
|
||||
guard let theme = self.theme else {
|
||||
return
|
||||
}
|
||||
|
||||
let animationBackgroundNode = ASImageNode()
|
||||
animationBackgroundNode.frame = self.imageNode.frame
|
||||
animationBackgroundNode.image = generateFilledCircleImage(diameter: self.imageNode.frame.width, color: theme.chatList.neutralAvatarColor)
|
||||
self.addSubnode(animationBackgroundNode)
|
||||
|
||||
let animationNode = AnimationNode(animation: name, keysToColor: [], color: .white, scale: scale)
|
||||
animationNode.completion = { [weak animationBackgroundNode, weak self] in
|
||||
self?.imageNode.isHidden = false
|
||||
animationBackgroundNode?.removeFromSupernode()
|
||||
}
|
||||
animationBackgroundNode.addSubnode(animationNode)
|
||||
|
||||
animationBackgroundNode.layer.animateScale(from: 1.0, to: 1.07, duration: 0.12, removeOnCompletion: false, completion: { [weak animationBackgroundNode] finished in
|
||||
animationBackgroundNode?.layer.animateScale(from: 1.07, to: 1.0, duration: 0.12, removeOnCompletion: false)
|
||||
})
|
||||
|
||||
if var size = animationNode.preferredSize() {
|
||||
size = CGSize(width: ceil(size.width), height: ceil(size.height))
|
||||
animationNode.frame = CGRect(x: floor((self.bounds.width - size.width) / 2.0), y: floor((self.bounds.height - size.height) / 2.0) + 1.0, width: size.width, height: size.height)
|
||||
animationNode.play()
|
||||
}
|
||||
self.imageNode.isHidden = true
|
||||
}
|
||||
|
||||
public func setPeer(account: Account, theme: PresentationTheme, peer: Peer?, authorOfMessage: MessageReference? = nil, overrideImage: AvatarNodeImageOverride? = nil, emptyColor: UIColor? = nil, synchronousLoad: Bool = false) {
|
||||
var synchronousLoad = synchronousLoad
|
||||
var representation: TelegramMediaImageRepresentation?
|
||||
|
||||
@ -1460,6 +1460,8 @@ public class ChatListController: TelegramController, KeyShortcutResponder, UIVie
|
||||
}
|
||||
strongSelf.present(UndoOverlayController(context: strongSelf.context, content: .archivedChat(title: title, text: text, undo: undo), elevatedLayout: strongSelf.groupId == .root, action: action), in: .window(.root))
|
||||
}
|
||||
|
||||
strongSelf.chatListDisplayNode.playArchiveAnimation()
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
@ -264,6 +264,14 @@ final class ChatListControllerNode: ASDisplayNode {
|
||||
}
|
||||
}
|
||||
|
||||
func playArchiveAnimation() {
|
||||
self.chatListNode.forEachVisibleItemNode { node in
|
||||
if let node = node as? ChatListItemNode {
|
||||
node.playArchiveAnimation()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func scrollToTop() {
|
||||
if let searchDisplayController = self.searchDisplayController {
|
||||
searchDisplayController.contentNode.scrollToTop()
|
||||
|
||||
@ -151,19 +151,19 @@ private let textFont = Font.regular(15.0)
|
||||
private let dateFont = Font.regular(14.0)
|
||||
private let badgeFont = Font.regular(14.0)
|
||||
|
||||
private let pinIcon = ItemListRevealOptionIcon.animation(animation: "anim_pin", offset: 0.0, keysToColor: nil)
|
||||
private let unpinIcon = ItemListRevealOptionIcon.animation(animation: "anim_unpin", offset: 0.0, keysToColor: ["un Outlines.Group 1.Stroke 1"])
|
||||
private let muteIcon = ItemListRevealOptionIcon.animation(animation: "anim_mute", offset: 0.0, keysToColor: ["un Outlines.Group 1.Stroke 1"])
|
||||
private let unmuteIcon = ItemListRevealOptionIcon.animation(animation: "anim_unmute", offset: 0.0, keysToColor: nil)
|
||||
private let deleteIcon = ItemListRevealOptionIcon.animation(animation: "anim_delete", offset: 0.0, keysToColor: nil)
|
||||
private let groupIcon = ItemListRevealOptionIcon.animation(animation: "anim_group", offset: 0.0, keysToColor: nil)
|
||||
private let ungroupIcon = ItemListRevealOptionIcon.animation(animation: "anim_ungroup", offset: 0.0, keysToColor: ["un Outlines.Group 1.Stroke 1"])
|
||||
private let readIcon = ItemListRevealOptionIcon.animation(animation: "anim_read", offset: 0.0, keysToColor: nil)
|
||||
private let unreadIcon = ItemListRevealOptionIcon.animation(animation: "anim_unread", offset: 0.0, keysToColor: ["Oval.Oval.Stroke 1"])
|
||||
private let archiveIcon = ItemListRevealOptionIcon.animation(animation: "anim_archive", offset: 1.0, keysToColor: nil)
|
||||
private let unarchiveIcon = ItemListRevealOptionIcon.animation(animation: "anim_unarchive", offset: 1.0, keysToColor: nil)
|
||||
private let hideIcon = ItemListRevealOptionIcon.animation(animation: "anim_hide", offset: 0.0, keysToColor: nil)
|
||||
private let unhideIcon = ItemListRevealOptionIcon.animation(animation: "anim_unhide", offset: 0.0, keysToColor: nil)
|
||||
private let pinIcon = ItemListRevealOptionIcon.animation(animation: "pin", offset: 0.0, keysToColor: nil, flip: false)
|
||||
private let unpinIcon = ItemListRevealOptionIcon.animation(animation: "unpin", offset: 0.0, keysToColor: ["close.close.Stroke 2"], flip: false)
|
||||
private let muteIcon = ItemListRevealOptionIcon.animation(animation: "mute", offset: 0.0, keysToColor: ["close.close.Stroke 2"], flip: false)
|
||||
private let unmuteIcon = ItemListRevealOptionIcon.animation(animation: "unmute", offset: 0.0, keysToColor: ["close.close.Stroke 2"], flip: false)
|
||||
private let deleteIcon = ItemListRevealOptionIcon.animation(animation: "delete", offset: 0.0, keysToColor: ["BinTex1.BinTex1.Fill 1", "BinTex2.BinTex2.Fill 1", "BinTex3.BinTex3.Fill 1"], flip: false)
|
||||
private let groupIcon = ItemListRevealOptionIcon.animation(animation: "anim_group", offset: 0.0, keysToColor: nil, flip: false)
|
||||
private let ungroupIcon = ItemListRevealOptionIcon.animation(animation: "anim_ungroup", offset: 0.0, keysToColor: nil, flip: false)
|
||||
private let readIcon = ItemListRevealOptionIcon.animation(animation: "read", offset: 0.0, keysToColor: ["Oval.Oval.Stroke 1"], flip: false)
|
||||
private let unreadIcon = ItemListRevealOptionIcon.animation(animation: "unread", offset: 0.0, keysToColor: ["Oval.Oval.Stroke 1"], flip: false)
|
||||
private let archiveIcon = ItemListRevealOptionIcon.animation(animation: "archive", offset: 1.0, keysToColor: ["box2.box2.Fill 1"], flip: false)
|
||||
private let unarchiveIcon = ItemListRevealOptionIcon.animation(animation: "unarchive", offset: 1.0, keysToColor: ["box2.box2.Fill 1"], flip: false)
|
||||
private let hideIcon = ItemListRevealOptionIcon.animation(animation: "hide", offset: 0.0, keysToColor: ["Rectangle.Rectangle.Fill 1"], flip: false)
|
||||
private let unhideIcon = ItemListRevealOptionIcon.animation(animation: "hide", offset: 0.0, keysToColor: ["Rectangle.Rectangle.Fill 1"], flip: true)
|
||||
|
||||
private enum RevealOptionKey: Int32 {
|
||||
case pin
|
||||
@ -187,9 +187,9 @@ private func revealOptions(strings: PresentationStrings, theme: PresentationThem
|
||||
if !isEditing {
|
||||
if case .group = groupId {
|
||||
if isPinned {
|
||||
options.append(ItemListRevealOption(key: RevealOptionKey.unpin.rawValue, title: strings.DialogList_Unpin, icon: unpinIcon, color: theme.list.itemDisclosureActions.neutral1.fillColor, textColor: theme.list.itemDisclosureActions.neutral1.foregroundColor))
|
||||
options.append(ItemListRevealOption(key: RevealOptionKey.unpin.rawValue, title: strings.DialogList_Unpin, icon: unpinIcon, color: theme.list.itemDisclosureActions.constructive.fillColor, textColor: theme.list.itemDisclosureActions.constructive.foregroundColor))
|
||||
} else {
|
||||
options.append(ItemListRevealOption(key: RevealOptionKey.pin.rawValue, title: strings.DialogList_Pin, icon: pinIcon, color: theme.list.itemDisclosureActions.neutral1.fillColor, textColor: theme.list.itemDisclosureActions.neutral1.foregroundColor))
|
||||
options.append(ItemListRevealOption(key: RevealOptionKey.pin.rawValue, title: strings.DialogList_Pin, icon: pinIcon, color: theme.list.itemDisclosureActions.constructive.fillColor, textColor: theme.list.itemDisclosureActions.constructive.foregroundColor))
|
||||
}
|
||||
} else {
|
||||
if let isMuted = isMuted {
|
||||
@ -206,9 +206,9 @@ private func revealOptions(strings: PresentationStrings, theme: PresentationThem
|
||||
}
|
||||
if !isEditing {
|
||||
if case .root = groupId {
|
||||
options.append(ItemListRevealOption(key: RevealOptionKey.archive.rawValue, title: strings.ChatList_ArchiveAction, icon: archiveIcon, color: theme.list.itemDisclosureActions.constructive.fillColor, textColor: theme.list.itemDisclosureActions.constructive.foregroundColor))
|
||||
options.append(ItemListRevealOption(key: RevealOptionKey.archive.rawValue, title: strings.ChatList_ArchiveAction, icon: archiveIcon, color: theme.list.itemDisclosureActions.inactive.fillColor, textColor: theme.list.itemDisclosureActions.inactive.foregroundColor))
|
||||
} else {
|
||||
options.append(ItemListRevealOption(key: RevealOptionKey.unarchive.rawValue, title: strings.ChatList_UnarchiveAction, icon: unarchiveIcon, color: theme.list.itemDisclosureActions.constructive.fillColor, textColor: theme.list.itemDisclosureActions.constructive.foregroundColor))
|
||||
options.append(ItemListRevealOption(key: RevealOptionKey.unarchive.rawValue, title: strings.ChatList_UnarchiveAction, icon: unarchiveIcon, color: theme.list.itemDisclosureActions.inactive.fillColor, textColor: theme.list.itemDisclosureActions.inactive.foregroundColor))
|
||||
}
|
||||
}
|
||||
return options
|
||||
@ -240,9 +240,9 @@ private func leftRevealOptions(strings: PresentationStrings, theme: Presentation
|
||||
}
|
||||
if !isEditing {
|
||||
if isPinned {
|
||||
options.append(ItemListRevealOption(key: RevealOptionKey.unpin.rawValue, title: strings.DialogList_Unpin, icon: unpinIcon, color: theme.list.itemDisclosureActions.neutral1.fillColor, textColor: theme.list.itemDisclosureActions.neutral1.foregroundColor))
|
||||
options.append(ItemListRevealOption(key: RevealOptionKey.unpin.rawValue, title: strings.DialogList_Unpin, icon: unpinIcon, color: theme.list.itemDisclosureActions.constructive.fillColor, textColor: theme.list.itemDisclosureActions.constructive.foregroundColor))
|
||||
} else {
|
||||
options.append(ItemListRevealOption(key: RevealOptionKey.pin.rawValue, title: strings.DialogList_Pin, icon: pinIcon, color: theme.list.itemDisclosureActions.neutral1.fillColor, textColor: theme.list.itemDisclosureActions.neutral1.foregroundColor))
|
||||
options.append(ItemListRevealOption(key: RevealOptionKey.pin.rawValue, title: strings.DialogList_Pin, icon: pinIcon, color: theme.list.itemDisclosureActions.constructive.fillColor, textColor: theme.list.itemDisclosureActions.constructive.foregroundColor))
|
||||
}
|
||||
}
|
||||
return options
|
||||
@ -283,6 +283,7 @@ class ChatListItemNode: ItemListRevealOptionsItemNode {
|
||||
var layoutParams: (ChatListItem, first: Bool, last: Bool, firstWithHeader: Bool, nextIsPinned: Bool, ListViewItemLayoutParams)?
|
||||
|
||||
private var isHighlighted: Bool = false
|
||||
private var skipFadeout: Bool = false
|
||||
|
||||
override var canBeSelected: Bool {
|
||||
if self.selectableControlNode != nil || self.item?.editing == true {
|
||||
@ -1269,7 +1270,11 @@ class ChatListItemNode: ItemListRevealOptionsItemNode {
|
||||
|
||||
override func animateRemoved(_ currentTimestamp: Double, duration: Double) {
|
||||
self.clipsToBounds = true
|
||||
self.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2, removeOnCompletion: false)
|
||||
if self.skipFadeout {
|
||||
self.skipFadeout = false
|
||||
} else {
|
||||
self.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2, removeOnCompletion: false)
|
||||
}
|
||||
}
|
||||
|
||||
override public func header() -> ListViewItemHeader? {
|
||||
@ -1432,6 +1437,11 @@ class ChatListItemNode: ItemListRevealOptionsItemNode {
|
||||
item.interaction.deletePeer(item.index.messageIndex.id.peerId)
|
||||
case RevealOptionKey.archive.rawValue:
|
||||
item.interaction.updatePeerGrouping(item.index.messageIndex.id.peerId, true)
|
||||
close = false
|
||||
self.skipFadeout = true
|
||||
self.animateRevealOptionsFill {
|
||||
self.revealOptionsInteractivelyClosed()
|
||||
}
|
||||
case RevealOptionKey.unarchive.rawValue:
|
||||
item.interaction.updatePeerGrouping(item.index.messageIndex.id.peerId, false)
|
||||
case RevealOptionKey.toggleMarkedUnread.rawValue:
|
||||
@ -1468,6 +1478,13 @@ class ChatListItemNode: ItemListRevealOptionsItemNode {
|
||||
})
|
||||
}
|
||||
|
||||
func playArchiveAnimation() {
|
||||
guard let item = self.item, case .groupReference = item.content else {
|
||||
return
|
||||
}
|
||||
self.avatarNode.playAnimation("archiveAvatar", scale: 0.1653828)
|
||||
}
|
||||
|
||||
override func animateFrameTransition(_ progress: CGFloat, _ currentValue: CGFloat) {
|
||||
super.animateFrameTransition(progress, currentValue)
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ private func fixListNodeScrolling(_ listNode: ListView, searchNode: NavigationBa
|
||||
let scrollToItem: ListViewScrollToItem
|
||||
let targetProgress: CGFloat
|
||||
if searchNode.expansionProgress < 0.6 {
|
||||
scrollToItem = ListViewScrollToItem(index: 1, position: .top(-navigationBarSearchContentHeight), animated: true, curve: .Default(duration: 0.3), directionHint: .Up)
|
||||
scrollToItem = ListViewScrollToItem(index: 1, position: .top(-navigationBarSearchContentHeight), animated: true, curve: .Default(duration: nil), directionHint: .Up)
|
||||
targetProgress = 0.0
|
||||
} else {
|
||||
scrollToItem = ListViewScrollToItem(index: 1, position: .top(0.0), animated: true, curve: .Default(duration: 0.3), directionHint: .Up)
|
||||
|
||||
@ -3,7 +3,7 @@ import UIKit
|
||||
|
||||
private func makeDefaultPresentationTheme(accentColor: UIColor, serviceBackgroundColor: UIColor, day: Bool) -> PresentationTheme {
|
||||
let destructiveColor: UIColor = UIColor(rgb: 0xff3b30)
|
||||
let constructiveColor: UIColor = UIColor(rgb: 0x4cd964)
|
||||
let constructiveColor: UIColor = UIColor(rgb: 0x00d740)
|
||||
let secretColor: UIColor = UIColor(rgb: 0x00B12C)
|
||||
|
||||
let rootStatusBar = PresentationThemeRootNavigationStatusBar(
|
||||
|
||||
@ -5,6 +5,107 @@ import SwiftSignalKit
|
||||
import Display
|
||||
import WebP
|
||||
|
||||
public struct EmojiThumbnailResourceId: MediaResourceId {
|
||||
public let emoji: String
|
||||
|
||||
public var uniqueId: String {
|
||||
return "emoji-thumb-\(self.emoji)"
|
||||
}
|
||||
|
||||
public var hashValue: Int {
|
||||
return self.emoji.hashValue
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResourceId) -> Bool {
|
||||
if let to = to as? EmojiThumbnailResourceId {
|
||||
return self.emoji == to.emoji
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class EmojiThumbnailResource: TelegramMediaResource {
|
||||
public let emoji: String
|
||||
|
||||
public init(emoji: String) {
|
||||
self.emoji = emoji
|
||||
}
|
||||
|
||||
public required init(decoder: PostboxDecoder) {
|
||||
self.emoji = decoder.decodeStringForKey("e", orElse: "")
|
||||
}
|
||||
|
||||
public func encode(_ encoder: PostboxEncoder) {
|
||||
encoder.encodeString(self.emoji, forKey: "e")
|
||||
}
|
||||
|
||||
public var id: MediaResourceId {
|
||||
return EmojiThumbnailResourceId(emoji: self.emoji)
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResource) -> Bool {
|
||||
if let to = to as? EmojiThumbnailResource {
|
||||
return self.emoji == to.emoji
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public struct EmojiSpriteResourceId: MediaResourceId {
|
||||
public let packId: UInt8
|
||||
public let stickerId: UInt8
|
||||
|
||||
public var uniqueId: String {
|
||||
return "emoji-sprite-\(self.packId)-\(self.stickerId)"
|
||||
}
|
||||
|
||||
public var hashValue: Int {
|
||||
return self.packId.hashValue &* 31 &+ self.stickerId.hashValue
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResourceId) -> Bool {
|
||||
if let to = to as? EmojiSpriteResourceId {
|
||||
return self.packId == to.packId && self.stickerId == to.stickerId
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class EmojiSpriteResource: TelegramMediaResource {
|
||||
public let packId: UInt8
|
||||
public let stickerId: UInt8
|
||||
|
||||
public init(packId: UInt8, stickerId: UInt8) {
|
||||
self.packId = packId
|
||||
self.stickerId = stickerId
|
||||
}
|
||||
|
||||
public required init(decoder: PostboxDecoder) {
|
||||
self.packId = UInt8(decoder.decodeInt32ForKey("p", orElse: 0))
|
||||
self.stickerId = UInt8(decoder.decodeInt32ForKey("s", orElse: 0))
|
||||
}
|
||||
|
||||
public func encode(_ encoder: PostboxEncoder) {
|
||||
encoder.encodeInt32(Int32(self.packId), forKey: "p")
|
||||
encoder.encodeInt32(Int32(self.stickerId), forKey: "s")
|
||||
}
|
||||
|
||||
public var id: MediaResourceId {
|
||||
return EmojiSpriteResourceId(packId: self.packId, stickerId: self.stickerId)
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResource) -> Bool {
|
||||
if let to = to as? EmojiSpriteResource {
|
||||
return self.packId == to.packId && self.stickerId == to.stickerId
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private var emojiMapping: [String: (UInt8, UInt8, UInt8)] = {
|
||||
let path = frameworkBundle.path(forResource: "Emoji", ofType: "mapping")!
|
||||
|
||||
@ -56,6 +157,11 @@ private func matchingEmojiEntry(_ emoji: String) -> (UInt8, UInt8, UInt8)? {
|
||||
if let special = special, let entry = emojiMapping[special] {
|
||||
return entry
|
||||
}
|
||||
//let manEmoji = "\(emoji)\u{200D}\u{2642}\u{fe0f}"
|
||||
let womanEmoji = "\(emoji)\u{200D}\u{2640}\u{fe0f}"
|
||||
if let entry = emojiMapping[womanEmoji] {
|
||||
return entry
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -72,15 +178,16 @@ func largeEmoji(postbox: Postbox, emoji: String, outline: Bool = true) -> Signal
|
||||
let thumbnailSignal = postbox.mediaBox.cachedResourceRepresentation(thumbnailResource, representation: thumbnailRepresentation, complete: true, fetch: true)
|
||||
let signal: Signal<MediaResourceData?, NoError> = .single(nil) |> then(postbox.mediaBox.cachedResourceRepresentation(spriteResource, representation: representation, complete: true, fetch: true) |> map(Optional.init))
|
||||
|
||||
let dataSignal = combineLatest(thumbnailSignal, signal)
|
||||
|> map { thumbnailData, data -> MediaResourceData in
|
||||
let resourceData: MediaResourceData?
|
||||
if let data = data {
|
||||
resourceData = data
|
||||
} else {
|
||||
resourceData = thumbnailData
|
||||
let dataSignal = thumbnailSignal
|
||||
|> mapToSignal { thumbnailData -> Signal<MediaResourceData, NoError> in
|
||||
return signal
|
||||
|> map { data in
|
||||
if let data = data {
|
||||
return data
|
||||
} else {
|
||||
return thumbnailData
|
||||
}
|
||||
}
|
||||
return resourceData!
|
||||
}
|
||||
dataSignals.append(dataSignal)
|
||||
}
|
||||
|
||||
@ -33,7 +33,7 @@ func fixNavigationSearchableListNodeScrolling(_ listNode: ListView, searchNode:
|
||||
let scrollToItem: ListViewScrollToItem
|
||||
let targetProgress: CGFloat
|
||||
if searchNode.expansionProgress < 0.6 {
|
||||
scrollToItem = ListViewScrollToItem(index: 0, position: .top(-navigationBarSearchContentHeight), animated: true, curve: .Default(duration: 0.3), directionHint: .Up)
|
||||
scrollToItem = ListViewScrollToItem(index: 0, position: .top(-navigationBarSearchContentHeight), animated: true, curve: .Default(duration: nil), directionHint: .Up)
|
||||
targetProgress = 0.0
|
||||
} else {
|
||||
scrollToItem = ListViewScrollToItem(index: 0, position: .top(0.0), animated: true, curve: .Default(duration: 0.3), directionHint: .Up)
|
||||
|
||||
@ -351,13 +351,23 @@ class ItemListRevealOptionsItemNode: ListViewItemNode, UIGestureRecognizerDelega
|
||||
}
|
||||
}
|
||||
|
||||
func updateRevealOffsetInternal(offset: CGFloat, transition: ContainedViewLayoutTransition) {
|
||||
func updateRevealOffsetInternal(offset: CGFloat, transition: ContainedViewLayoutTransition, completion: (() -> Void)? = nil) {
|
||||
self.revealOffset = offset
|
||||
guard let (size, leftInset, rightInset) = self.validLayout else {
|
||||
return
|
||||
}
|
||||
|
||||
var leftRevealCompleted = true
|
||||
var rightRevealCompleted = true
|
||||
let intermediateCompletion = {
|
||||
if leftRevealCompleted && rightRevealCompleted {
|
||||
completion?()
|
||||
}
|
||||
}
|
||||
|
||||
if let leftRevealNode = self.leftRevealNode {
|
||||
leftRevealCompleted = false
|
||||
|
||||
let revealSize = leftRevealNode.bounds.size
|
||||
|
||||
let revealFrame = CGRect(origin: CGPoint(x: min(self.revealOffset - revealSize.width, 0.0), y: 0.0), size: revealSize)
|
||||
@ -369,12 +379,20 @@ class ItemListRevealOptionsItemNode: ListViewItemNode, UIGestureRecognizerDelega
|
||||
self.leftRevealNode = nil
|
||||
transition.updateFrame(node: leftRevealNode, frame: revealFrame, completion: { [weak leftRevealNode] _ in
|
||||
leftRevealNode?.removeFromSupernode()
|
||||
|
||||
leftRevealCompleted = true
|
||||
intermediateCompletion()
|
||||
})
|
||||
} else {
|
||||
transition.updateFrame(node: leftRevealNode, frame: revealFrame)
|
||||
transition.updateFrame(node: leftRevealNode, frame: revealFrame, completion: { _ in
|
||||
leftRevealCompleted = true
|
||||
intermediateCompletion()
|
||||
})
|
||||
}
|
||||
}
|
||||
if let rightRevealNode = self.rightRevealNode {
|
||||
rightRevealCompleted = false
|
||||
|
||||
let revealSize = rightRevealNode.bounds.size
|
||||
|
||||
let revealFrame = CGRect(origin: CGPoint(x: min(size.width, size.width + self.revealOffset), y: 0.0), size: revealSize)
|
||||
@ -385,9 +403,15 @@ class ItemListRevealOptionsItemNode: ListViewItemNode, UIGestureRecognizerDelega
|
||||
self.rightRevealNode = nil
|
||||
transition.updateFrame(node: rightRevealNode, frame: revealFrame, completion: { [weak rightRevealNode] _ in
|
||||
rightRevealNode?.removeFromSupernode()
|
||||
|
||||
rightRevealCompleted = true
|
||||
intermediateCompletion()
|
||||
})
|
||||
} else {
|
||||
transition.updateFrame(node: rightRevealNode, frame: revealFrame)
|
||||
transition.updateFrame(node: rightRevealNode, frame: revealFrame, completion: { _ in
|
||||
rightRevealCompleted = true
|
||||
intermediateCompletion()
|
||||
})
|
||||
}
|
||||
}
|
||||
let allowAnyDirection = !self.revealOptions.left.isEmpty || !offset.isZero
|
||||
@ -438,6 +462,16 @@ class ItemListRevealOptionsItemNode: ListViewItemNode, UIGestureRecognizerDelega
|
||||
}
|
||||
}
|
||||
|
||||
func animateRevealOptionsFill(completion: (() -> Void)? = nil) {
|
||||
if let validLayout = self.validLayout {
|
||||
self.layer.allowsGroupOpacity = true
|
||||
self.updateRevealOffsetInternal(offset: -validLayout.0.width - 74.0, transition: .animated(duration: 0.2, curve: .spring), completion: {
|
||||
self.layer.allowsGroupOpacity = false
|
||||
completion?()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func revealOptionSelected(_ option: ItemListRevealOption, animated: Bool) {
|
||||
}
|
||||
|
||||
|
||||
@ -1,12 +1,11 @@
|
||||
import Foundation
|
||||
import AsyncDisplayKit
|
||||
import Display
|
||||
import Lottie
|
||||
|
||||
enum ItemListRevealOptionIcon: Equatable {
|
||||
case none
|
||||
case image(image: UIImage)
|
||||
case animation(animation: String, offset: CGFloat, keysToColor: [String]?)
|
||||
case animation(animation: String, offset: CGFloat, keysToColor: [String]?, flip: Bool)
|
||||
|
||||
public static func ==(lhs: ItemListRevealOptionIcon, rhs: ItemListRevealOptionIcon) -> Bool {
|
||||
switch lhs {
|
||||
@ -22,8 +21,8 @@ enum ItemListRevealOptionIcon: Equatable {
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
case let .animation(lhsAnimation, lhsOffset, lhsKeysToColor):
|
||||
if case let .animation(rhsAnimation, rhsOffset, rhsKeysToColor) = rhs, lhsAnimation == rhsAnimation, lhsOffset == rhsOffset, lhsKeysToColor == rhsKeysToColor {
|
||||
case let .animation(lhsAnimation, lhsOffset, lhsKeysToColor, lhsFlip):
|
||||
if case let .animation(rhsAnimation, rhsOffset, rhsKeysToColor, rhsFlip) = rhs, lhsAnimation == rhsAnimation, lhsOffset == rhsOffset, lhsKeysToColor == rhsKeysToColor, lhsFlip == rhsFlip {
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
@ -59,59 +58,6 @@ struct ItemListRevealOption: Equatable {
|
||||
}
|
||||
}
|
||||
|
||||
private final class ItemListRevealAnimationNode : ASDisplayNode {
|
||||
var played = false
|
||||
|
||||
init(animation: String, keysToColor: [String]?, color: UIColor) {
|
||||
super.init()
|
||||
|
||||
self.setViewBlock({
|
||||
if let url = frameworkBundle.url(forResource: animation, withExtension: "json"), let composition = LOTComposition(filePath: url.path) {
|
||||
let view = LOTAnimationView(model: composition, in: frameworkBundle)
|
||||
view.backgroundColor = .clear
|
||||
view.isOpaque = false
|
||||
|
||||
if let keysToColor = keysToColor {
|
||||
for key in keysToColor {
|
||||
let colorCallback = LOTColorValueCallback(color: color.cgColor)
|
||||
view.setValueDelegate(colorCallback, for: LOTKeypath(string: "\(key).Color"))
|
||||
}
|
||||
}
|
||||
|
||||
return view
|
||||
} else {
|
||||
return UIView()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func animationView() -> LOTAnimationView? {
|
||||
return self.view as? LOTAnimationView
|
||||
}
|
||||
|
||||
func play() {
|
||||
if let animationView = animationView(), !animationView.isAnimationPlaying, !self.played {
|
||||
self.played = true
|
||||
animationView.play()
|
||||
}
|
||||
}
|
||||
|
||||
func reset() {
|
||||
if self.played, let animationView = animationView() {
|
||||
self.played = false
|
||||
animationView.stop()
|
||||
}
|
||||
}
|
||||
|
||||
func preferredSize() -> CGSize? {
|
||||
if let animationView = animationView(), let sceneModel = animationView.sceneModel {
|
||||
return CGSize(width: sceneModel.compBounds.width * 0.3333, height: sceneModel.compBounds.height * 0.3333)
|
||||
} else {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private let titleFontWithIcon = Font.medium(13.0)
|
||||
private let titleFontWithoutIcon = Font.regular(17.0)
|
||||
|
||||
@ -125,8 +71,9 @@ private final class ItemListRevealOptionNode: ASDisplayNode {
|
||||
private let highlightNode: ASDisplayNode
|
||||
private let titleNode: ASTextNode
|
||||
private let iconNode: ASImageNode?
|
||||
private let animationNode: ItemListRevealAnimationNode?
|
||||
private let animationNode: AnimationNode?
|
||||
private var animationNodeOffset: CGFloat = 0.0
|
||||
private var animationNodeFlip = false
|
||||
var alignment: ItemListRevealOptionAlignment?
|
||||
var isExpanded: Bool = false
|
||||
|
||||
@ -144,10 +91,14 @@ private final class ItemListRevealOptionNode: ASDisplayNode {
|
||||
self.iconNode = iconNode
|
||||
self.animationNode = nil
|
||||
|
||||
case let .animation(animation, offset, keysToColor):
|
||||
case let .animation(animation, offset, keysToColor, flip):
|
||||
self.iconNode = nil
|
||||
self.animationNode = ItemListRevealAnimationNode(animation: animation, keysToColor: keysToColor, color: color)
|
||||
self.animationNode = AnimationNode(animation: animation, keysToColor: keysToColor, color: color, scale: 0.16214)
|
||||
if flip {
|
||||
self.animationNode!.transform = CATransform3DMakeScale(1.0, -1.0, 1.0)
|
||||
}
|
||||
self.animationNodeOffset = offset
|
||||
self.animationNodeFlip = flip
|
||||
break
|
||||
|
||||
case .none:
|
||||
@ -179,6 +130,10 @@ private final class ItemListRevealOptionNode: ASDisplayNode {
|
||||
}
|
||||
}
|
||||
|
||||
func resetAnimation() {
|
||||
self.animationNode?.reset()
|
||||
}
|
||||
|
||||
func updateLayout(isFirst: Bool, isLeft: Bool, baseSize: CGSize, alignment: ItemListRevealOptionAlignment, isExpanded: Bool, extendedWidth: CGFloat, sideInset: CGFloat, transition: ContainedViewLayoutTransition, additive: Bool, revealFactor: CGFloat) {
|
||||
self.highlightNode.frame = CGRect(origin: CGPoint(), size: baseSize)
|
||||
|
||||
@ -220,7 +175,7 @@ private final class ItemListRevealOptionNode: ASDisplayNode {
|
||||
}
|
||||
|
||||
if let animationNode = self.animationNode, let imageSize = animationNode.preferredSize() {
|
||||
let iconOffset: CGFloat = -2.0 + self.animationNodeOffset
|
||||
let iconOffset: CGFloat = -11.0 + self.animationNodeOffset
|
||||
let titleIconSpacing: CGFloat = 11.0
|
||||
let iconFrame = CGRect(origin: CGPoint(x: contentRect.minX + floor((baseSize.width - imageSize.width + sideInset) / 2.0), y: contentRect.midY - imageSize.height / 2.0 + iconOffset), size: imageSize)
|
||||
if animateAdditive {
|
||||
@ -240,7 +195,7 @@ private final class ItemListRevealOptionNode: ASDisplayNode {
|
||||
|
||||
if (abs(revealFactor) >= 0.4) {
|
||||
animationNode.play()
|
||||
} else if abs(revealFactor) < CGFloat.ulpOfOne {
|
||||
} else if abs(revealFactor) < CGFloat.ulpOfOne && !transition.isAnimated {
|
||||
animationNode.reset()
|
||||
}
|
||||
} else if let iconNode = self.iconNode, let imageSize = iconNode.image?.size {
|
||||
@ -379,14 +334,25 @@ final class ItemListRevealOptionsNode: ASDisplayNode {
|
||||
} else {
|
||||
startingOffset = 0.0
|
||||
}
|
||||
|
||||
let animated = transition.isAnimated
|
||||
var completionCount = self.optionNodes.count
|
||||
let intermediateCompletion = {
|
||||
if completionCount == 0 && animated && abs(revealFactor) < CGFloat.ulpOfOne {
|
||||
for node in self.optionNodes {
|
||||
node.resetAnimation()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var i = self.isLeft ? (self.optionNodes.count - 1) : 0
|
||||
while i >= 0 && i < self.optionNodes.count {
|
||||
let node = self.optionNodes[i]
|
||||
let nodeWidth = i == (self.optionNodes.count - 1) ? lastNodeWidth : basicNodeWidth
|
||||
let defaultAlignment: ItemListRevealOptionAlignment = isLeft ? .right : .left
|
||||
let defaultAlignment: ItemListRevealOptionAlignment = self.isLeft ? .right : .left
|
||||
var nodeTransition = transition
|
||||
var isExpanded = false
|
||||
if (isLeft && i == 0) || (!isLeft && i == self.optionNodes.count - 1) {
|
||||
if (self.isLeft && i == 0) || (!self.isLeft && i == self.optionNodes.count - 1) {
|
||||
if abs(revealFactor) > boundaryRevealFactor {
|
||||
isExpanded = true
|
||||
}
|
||||
@ -418,7 +384,11 @@ final class ItemListRevealOptionsNode: ASDisplayNode {
|
||||
nodeLeftOffset = startingOffset + floorToScreenPixels(offset * abs(revealFactor))
|
||||
}
|
||||
|
||||
transition.updateFrame(node: node, frame: CGRect(origin: CGPoint(x: nodeLeftOffset, y: 0.0), size: CGSize(width: extendedWidth, height: size.height)))
|
||||
transition.updateFrame(node: node, frame: CGRect(origin: CGPoint(x: nodeLeftOffset, y: 0.0), size: CGSize(width: extendedWidth, height: size.height)), completion: { _ in
|
||||
completionCount -= 1
|
||||
intermediateCompletion()
|
||||
|
||||
})
|
||||
node.updateLayout(isFirst: (self.isLeft && i == 0) || (!self.isLeft && i == self.optionNodes.count - 1), isLeft: self.isLeft, baseSize: CGSize(width: nodeWidth, height: size.height), alignment: defaultAlignment, isExpanded: isExpanded, extendedWidth: extendedWidth, sideInset: sideInset, transition: nodeTransition, additive: !transition.isAnimated, revealFactor: revealFactor)
|
||||
|
||||
if self.isLeft {
|
||||
@ -433,19 +403,18 @@ final class ItemListRevealOptionsNode: ASDisplayNode {
|
||||
if case .ended = recognizer.state, let gesture = recognizer.lastRecognizedGestureAndLocation?.0, case .tap = gesture {
|
||||
let location = recognizer.location(in: self.view)
|
||||
var selectedOption: Int?
|
||||
if self.isLeft {
|
||||
for i in (0 ..< self.optionNodes.count).reversed() {
|
||||
self.optionNodes[i].setHighlighted(false)
|
||||
if self.optionNodes[i].frame.contains(location) {
|
||||
selectedOption = i
|
||||
}
|
||||
|
||||
var i = self.isLeft ? 0 : (self.optionNodes.count - 1)
|
||||
while i >= 0 && i < self.optionNodes.count {
|
||||
self.optionNodes[i].setHighlighted(false)
|
||||
if self.optionNodes[i].frame.contains(location) {
|
||||
selectedOption = i
|
||||
break
|
||||
}
|
||||
} else {
|
||||
for i in 0 ..< self.optionNodes.count {
|
||||
self.optionNodes[i].setHighlighted(false)
|
||||
if self.optionNodes[i].frame.contains(location) {
|
||||
selectedOption = i
|
||||
}
|
||||
if self.isLeft {
|
||||
i += 1
|
||||
} else {
|
||||
i -= 1
|
||||
}
|
||||
}
|
||||
if let selectedOption = selectedOption {
|
||||
|
||||
@ -1,105 +0,0 @@
|
||||
import Foundation
|
||||
import TelegramCore
|
||||
import SwiftSignalKit
|
||||
import Postbox
|
||||
|
||||
public struct EmojiThumbnailResourceId: MediaResourceId {
|
||||
public let emoji: String
|
||||
|
||||
public var uniqueId: String {
|
||||
return "emoji-thumb-\(self.emoji)"
|
||||
}
|
||||
|
||||
public var hashValue: Int {
|
||||
return self.emoji.hashValue
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResourceId) -> Bool {
|
||||
if let to = to as? EmojiThumbnailResourceId {
|
||||
return self.emoji == to.emoji
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class EmojiThumbnailResource: TelegramMediaResource {
|
||||
public let emoji: String
|
||||
|
||||
public init(emoji: String) {
|
||||
self.emoji = emoji
|
||||
}
|
||||
|
||||
public required init(decoder: PostboxDecoder) {
|
||||
self.emoji = decoder.decodeStringForKey("e", orElse: "")
|
||||
}
|
||||
|
||||
public func encode(_ encoder: PostboxEncoder) {
|
||||
encoder.encodeString(self.emoji, forKey: "e")
|
||||
}
|
||||
|
||||
public var id: MediaResourceId {
|
||||
return EmojiThumbnailResourceId(emoji: self.emoji)
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResource) -> Bool {
|
||||
if let to = to as? EmojiThumbnailResource {
|
||||
return self.emoji == to.emoji
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public struct EmojiSpriteResourceId: MediaResourceId {
|
||||
public let packId: UInt8
|
||||
public let stickerId: UInt8
|
||||
|
||||
public var uniqueId: String {
|
||||
return "emoji-sprite-\(self.packId)-\(self.stickerId)"
|
||||
}
|
||||
|
||||
public var hashValue: Int {
|
||||
return self.packId.hashValue &* 31 &+ self.stickerId.hashValue
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResourceId) -> Bool {
|
||||
if let to = to as? EmojiSpriteResourceId {
|
||||
return self.packId == to.packId && self.stickerId == to.stickerId
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class EmojiSpriteResource: TelegramMediaResource {
|
||||
public let packId: UInt8
|
||||
public let stickerId: UInt8
|
||||
|
||||
public init(packId: UInt8, stickerId: UInt8) {
|
||||
self.packId = packId
|
||||
self.stickerId = stickerId
|
||||
}
|
||||
|
||||
public required init(decoder: PostboxDecoder) {
|
||||
self.packId = UInt8(decoder.decodeInt32ForKey("p", orElse: 0))
|
||||
self.stickerId = UInt8(decoder.decodeInt32ForKey("s", orElse: 0))
|
||||
}
|
||||
|
||||
public func encode(_ encoder: PostboxEncoder) {
|
||||
encoder.encodeInt32(Int32(self.packId), forKey: "p")
|
||||
encoder.encodeInt32(Int32(self.stickerId), forKey: "s")
|
||||
}
|
||||
|
||||
public var id: MediaResourceId {
|
||||
return EmojiSpriteResourceId(packId: self.packId, stickerId: self.stickerId)
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResource) -> Bool {
|
||||
if let to = to as? EmojiSpriteResource {
|
||||
return self.packId == to.packId && self.stickerId == to.stickerId
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1 +0,0 @@
|
||||
{"v":"5.5.1","fr":60,"ip":0,"op":30,"w":228,"h":228,"nm":"Archive","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Path","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[0,4,0],"to":[0,1,0],"ti":[0,-0.524,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[0,10,0],"to":[0,0.524,0],"ti":[0,0.476,0]},{"t":20,"s":[0,7.143,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,-100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.6,0],[0,0.6],[0,0],[0,0],[0.41,0.45],[-0.46,0.4],[0,0],[-0.42,-0.37],[0,0],[0.41,-0.45],[0.45,0.41]],"o":[[0,0],[0,0.6],[-0.61,0],[0,0],[0,0],[-0.45,0.41],[-0.4,-0.45],[0,0],[0.42,-0.37],[0,0],[0.45,0.4],[-0.4,0.45],[0,0]],"v":[[1.103,-1.818],[1.103,4.282],[0.003,5.382],[-1.097,4.282],[-1.097,-1.818],[-2.937,-0.178],[-4.487,-0.258],[-4.397,-1.808],[-0.737,-5.098],[0.733,-5.098],[4.403,-1.808],[4.483,-0.258],[2.933,-0.178]],"c":true},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.29019600153,0.752941012383,0.345097988844,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Path","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114,82.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,24.444]},"t":0,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":15,"s":[110,110,100]},{"t":20,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.86,0],[0,0],[-0.55,-0.65],[0,0],[0,-0.7],[0,0],[1.82,0],[0,0],[0,1.82],[0,0],[-0.45,0.53]],"o":[[0.55,-0.65],[0,0],[0.86,0],[0,0],[0.45,0.53],[0,0],[0,1.82],[0,0],[-1.82,0],[0,0],[0,-0.7],[0,0]],"v":[[-8.35,-11.57],[-6.12,-12.6],[6.12,-12.6],[8.35,-11.57],[11.4,-7.98],[12.1,-6.08],[12.1,9.3],[8.8,12.6],[-8.8,12.6],[-12.1,9.3],[-12.1,-6.08],[-11.4,-7.98]],"c":true},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,-0.09],[-0.21,0],[0,0],[-0.06,0.05],[0.13,0.15],[0,0],[0.21,0],[0,0],[0.14,-0.16],[0,0]],"o":[[0,0.2],[0,0],[0.09,0],[0.15,-0.14],[0,0],[-0.14,-0.16],[0,0],[-0.22,0],[0,0],[-0.06,0.07]],"v":[[-8.879,-7.49],[-8.509,-7.12],[8.511,-7.12],[8.751,-7.21],[8.791,-7.73],[6.681,-10.15],[6.131,-10.4],[-6.129,-10.4],[-6.689,-10.15],[-8.789,-7.73]],"c":true},"ix":2},"nm":"Контур 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Объединить контуры 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Shape","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0}],"markers":[]}
|
||||
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
||||
{"v":"5.5.1","fr":60,"ip":0,"op":30,"w":228,"h":228,"nm":"Hide","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Path 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114,79.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":15,"s":[110,110,100]},{"t":20,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-11,0],[11,0]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Path 4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Path","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0.57,0],[0.06,-0.56],[0,0],[0,0],[0,0],[-0.56,0],[-0.07,0.56]],"o":[[0,0],[0,0],[0,0],[-0.06,-0.56],[-0.57,0],[0,0],[0,0],[0,0],[0.07,0.56],[0.56,0],[0,0]],"v":[[1.09,-3.5],[12,-3.5],[12,3.5],[1.1,3.5],[0,2.5],[-1.1,3.5],[-12,3.5],[-12,-3.5],[-1.09,-3.5],[0,-2.5],[1.09,-3.5]],"c":true},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741176470588,0.741176470588,0.760784313725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Path","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Path","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[0,-4,0],"to":[0,-0.167,0],"ti":[0,-1.167,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[0,-5,0],"to":[0,1.167,0],"ti":[0,-1.333,0]},{"t":20,"s":[0,3,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.6,0],[0,0.61],[0,0],[0,0],[0.41,0.45],[-0.45,0.41],[0,0],[-0.42,-0.39],[0,0],[0.41,-0.45],[0.45,0.41]],"o":[[0,0],[0,0.61],[-0.61,0],[0,0],[0,0],[-0.44,0.41],[-0.41,-0.45],[0,0],[0.42,-0.39],[0,0],[0.44,0.41],[-0.41,0.45],[0,0]],"v":[[1.103,-8],[1.103,10.5],[0.003,11.6],[-1.097,10.5],[-1.097,-8],[-3.927,-5.4],[-5.477,-5.47],[-5.407,-7.02],[-0.747,-11.31],[0.743,-11.31],[5.413,-7.02],[5.473,-5.47],[3.923,-5.4]],"c":true},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Path","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0}],"markers":[]}
|
||||
@ -1 +0,0 @@
|
||||
{"v":"5.1.2","fr":60,"ip":0,"op":3600,"w":228,"h":228,"nm":"mute","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"un Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[117.875,88.875,0],"ix":2},"a":{"a":0,"k":[256,256,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.863,0.863,-0.19]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p833_0p863_0p333_0","0p833_0p863_0p333_0","0p833_-0p19_0p333_0"],"t":0,"s":[0,0,100],"e":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.365,0.365,0.476]},"n":["0p667_1_0p167_0p365","0p667_1_0p167_0p365","0p667_1_0p167_0p476"],"t":10,"s":[100,100,100],"e":[115,115,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":14,"s":[115,115,100],"e":[100,100,100]},{"t":25}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":5,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-34,-34],[-33.992,-34]],"c":false}],"e":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-34,-34],[34,34]],"c":false}]},{"t":15}],"ix":2,"x":"var $bm_rt;\n$bm_rt = content('Group 1').content('Path 1').path;"},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":6,"ix":5},"lc":2,"lj":1,"ml":10,"nm":"Stroke 2","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.584313750267,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":15,"ix":5},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[256,256],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"mute Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[111,88.781,0],"ix":2},"a":{"a":0,"k":[256,256,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.863,0.863,-12.69]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p833_0p863_0p333_0","0p833_0p863_0p333_0","0p833_-12p69_0p333_0"],"t":0,"s":[0,0,100],"e":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.365,0.365,5.476]},"n":["0p667_1_0p167_0p365","0p667_1_0p167_0p365","0p667_1_0p167_5p476"],"t":10,"s":[100,100,100],"e":[115,115,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":14,"s":[115,115,100],"e":[100,100,100]},{"t":25}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.995,-0.904],[0,0],[0.746,0],[0,0],[0,-3.866],[0,0],[-3.866,0],[0,0],[-0.552,-0.503],[0,0],[-2.006,2.207],[0,1.343],[0,0],[2.982,0]],"o":[[0,0],[-0.552,0.502],[0,0],[-3.866,0],[0,0],[0,3.866],[0,0],[0.746,0],[0,0],[2.207,2.007],[0.903,-0.995],[0,0],[0,-2.982],[-1.343,0]],"v":[[16.967,-36.589],[-6.142,-15.581],[-8.16,-14.801],[-19,-14.801],[-26,-7.801],[-26,7.199],[-19,14.199],[-8.16,14.199],[-6.142,14.98],[16.967,35.987],[24.596,35.625],[26,31.992],[26,-32.594],[20.6,-37.994]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[256,256.994],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}],"markers":[]}
|
||||
@ -1 +0,0 @@
|
||||
{"v":"5.1.2","fr":60,"ip":0,"op":3600,"w":228,"h":228,"nm":"pinchat","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"pin Outlines","sr":1,"ks":{"o":{"a":0,"k":99,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[113.656,86.516,0],"ix":2},"a":{"a":0,"k":[256,256,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.872,0.872,-10.015]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p833_0p872_0p333_0","0p833_0p872_0p333_0","0p833_-10p015_0p333_0"],"t":0,"s":[0,0,100],"e":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.426,0.426,5.508]},"n":["0p667_1_0p167_0p426","0p667_1_0p167_0p426","0p667_1_0p167_5p508"],"t":10,"s":[100,100,100],"e":[115,115,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":15,"s":[115,115,100],"e":[100,100,100]},{"t":24}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.682,-2.385],[0,0],[7.227,-5.009],[0.494,-0.402],[0.078,-0.079],[-1.265,-1.266],[0,0],[-0.087,-0.07],[-1.129,1.388],[-0.211,0.297],[2.361,8.281],[0,0],[3.76,3.76],[0,0],[2.035,0]],"o":[[0,0],[-8.176,-2.331],[-0.37,0.258],[-0.086,0.07],[-1.265,1.265],[0,0],[0.079,0.078],[1.388,1.129],[0.312,-0.384],[5.172,-7.273],[0,0],[4.348,-3.067],[0,0],[-1.701,-1.701],[-2.465,0]],"v":[[10.943,-36.491],[-1.24,-19.219],[-25.643,-15.202],[-26.94,-14.213],[-27.187,-13.99],[-27.187,-9.408],[8.801,26.579],[9.049,26.802],[13.607,26.332],[14.391,25.311],[18.607,0.628],[35.879,-11.556],[36.955,-23.925],[23.313,-37.567],[17.514,-40.1]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-40.714,40.1],[-7.985,15.793],[-16.406,7.372]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[256.714,257.1],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}],"markers":[]}
|
||||
@ -1 +0,0 @@
|
||||
{"v":"4.5.6","fr":60,"ip":0,"op":30,"w":228,"h":228,"ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Combined Shape","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[114,89.499,0]},"a":{"a":0,"k":[40,38.499,0]},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_0p667_0p167_0p167"],"t":0,"s":[0,0,100],"e":[110,110,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":15,"s":[110,110,100],"e":[100,100,100]},{"t":20}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-3.39,0],[0,19.29],[22.09,0],[0,-19.28],[-9.1,-6.4],[2.59,-3.82],[-1.62,-0.65],[-4.27,2.3],[-1.31,-0.29]],"o":[[22.09,0],[0,-19.28],[-22.09,0],[0,11],[1.17,0.82],[-2.6,3.82],[1,0.4],[6.1,-3.28],[3.14,0.69]],"v":[[40,69.85],[80,34.92],[40,0],[0,34.92],[14.45,61.34],[14.1,70.53],[9.89,76.75],[21.07,75.05],[30.18,68.79]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"mn":"ADBE Vector Group"}],"ip":0,"op":30,"st":0,"bm":0,"sr":1}]}
|
||||
@ -1 +0,0 @@
|
||||
{"v":"5.5.1","fr":60,"ip":0,"op":30,"w":228,"h":228,"nm":"Unrchive","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Path","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[0,10,0],"to":[0,-1,0],"ti":[0,0.476,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[0,4,0],"to":[0,-0.476,0],"ti":[0,-0.524,0]},{"t":20,"s":[0,7.143,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.6,0],[0,0.6],[0,0],[0,0],[0.41,0.45],[-0.46,0.4],[0,0],[-0.42,-0.37],[0,0],[0.41,-0.45],[0.45,0.41]],"o":[[0,0],[0,0.6],[-0.61,0],[0,0],[0,0],[-0.45,0.41],[-0.4,-0.45],[0,0],[0.42,-0.37],[0,0],[0.45,0.4],[-0.4,0.45],[0,0]],"v":[[1.103,-1.818],[1.103,4.282],[0.003,5.382],[-1.097,4.282],[-1.097,-1.818],[-2.937,-0.178],[-4.487,-0.258],[-4.397,-1.808],[-0.737,-5.098],[0.733,-5.098],[4.403,-1.808],[4.483,-0.258],[2.933,-0.178]],"c":true},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.29019600153,0.752941012383,0.345097988844,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Path","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114,82.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,24.444]},"t":0,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":15,"s":[110,110,100]},{"t":20,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.86,0],[0,0],[-0.55,-0.65],[0,0],[0,-0.7],[0,0],[1.82,0],[0,0],[0,1.82],[0,0],[-0.45,0.53]],"o":[[0.55,-0.65],[0,0],[0.86,0],[0,0],[0.45,0.53],[0,0],[0,1.82],[0,0],[-1.82,0],[0,0],[0,-0.7],[0,0]],"v":[[-8.35,-11.57],[-6.12,-12.6],[6.12,-12.6],[8.35,-11.57],[11.4,-7.98],[12.1,-6.08],[12.1,9.3],[8.8,12.6],[-8.8,12.6],[-12.1,9.3],[-12.1,-6.08],[-11.4,-7.98]],"c":true},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,-0.09],[-0.21,0],[0,0],[-0.06,0.05],[0.13,0.15],[0,0],[0.21,0],[0,0],[0.14,-0.16],[0,0]],"o":[[0,0.2],[0,0],[0.09,0],[0.15,-0.14],[0,0],[-0.14,-0.16],[0,0],[-0.22,0],[0,0],[-0.06,0.07]],"v":[[-8.879,-7.49],[-8.509,-7.12],[8.511,-7.12],[8.751,-7.21],[8.791,-7.73],[6.681,-10.15],[6.131,-10.4],[-6.129,-10.4],[-6.689,-10.15],[-8.789,-7.73]],"c":true},"ix":2},"nm":"Контур 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Объединить контуры 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Shape","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0}],"markers":[]}
|
||||
@ -1 +0,0 @@
|
||||
{"v":"5.5.1","fr":60,"ip":0,"op":30,"w":228,"h":228,"nm":"Unhide","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Path 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114,79.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":15,"s":[110,110,100]},{"t":20,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-11,0],[11,0]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Path 4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Path","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0.57,0],[0.06,-0.56],[0,0],[0,0],[0,0],[-0.56,0],[-0.07,0.56]],"o":[[0,0],[0,0],[0,0],[-0.06,-0.56],[-0.57,0],[0,0],[0,0],[0,0],[0.07,0.56],[0.56,0],[0,0]],"v":[[1.09,-3.5],[12,-3.5],[12,3.5],[1.1,3.5],[0,2.5],[-1.1,3.5],[-12,3.5],[-12,-3.5],[-1.09,-3.5],[0,-2.5],[1.09,-3.5]],"c":true},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741176470588,0.741176470588,0.760784313725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Path","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Path","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[0,4,0],"to":[0,-1.561,0],"ti":[0,3.931,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[0,5,0],"to":[0,-2.786,0],"ti":[0,1.333,0]},{"t":20,"s":[0,-3,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,-100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.6,0],[0,0.61],[0,0],[0,0],[0.41,0.45],[-0.45,0.41],[0,0],[-0.42,-0.39],[0,0],[0.41,-0.45],[0.45,0.41]],"o":[[0,0],[0,0.61],[-0.61,0],[0,0],[0,0],[-0.44,0.41],[-0.41,-0.45],[0,0],[0.42,-0.39],[0,0],[0.44,0.41],[-0.41,0.45],[0,0]],"v":[[1.103,-8],[1.103,10.5],[0.003,11.6],[-1.097,10.5],[-1.097,-8],[-3.927,-5.4],[-5.477,-5.47],[-5.407,-7.02],[-0.747,-11.31],[0.743,-11.31],[5.413,-7.02],[5.473,-5.47],[3.923,-5.4]],"c":true},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Path","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0}],"markers":[]}
|
||||
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
||||
{"v":"5.1.2","fr":60,"ip":0,"op":3600,"w":228,"h":228,"nm":"unpinpinchat","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"un Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[118,84.062,0],"ix":2},"a":{"a":0,"k":[256,256,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.872,0.872,-11.778]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p833_0p872_0p333_0","0p833_0p872_0p333_0","0p833_-11p778_0p333_0"],"t":0,"s":[0,0,100],"e":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.426,0.426,6.389]},"n":["0p667_1_0p167_0p426","0p667_1_0p167_0p426","0p667_1_0p167_6p389"],"t":10,"s":[100,100,100],"e":[115,115,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":15,"s":[115,115,100],"e":[100,100,100]},{"t":24}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":5,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-34,-34],[-33.992,-34]],"c":false}],"e":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-34,-34],[34,34]],"c":false}]},{"t":15}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":6,"ix":5},"lc":2,"lj":1,"ml":10,"nm":"Stroke 2","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"st","c":{"a":0,"k":[0.097999999102,0.57599995931,0.980000035903,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":15,"ix":5},"lc":2,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[256,256],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"pin Outlines","sr":1,"ks":{"o":{"a":0,"k":99,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[113.656,86.516,0],"ix":2},"a":{"a":0,"k":[256,256,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.859,0.859,-13.056]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p833_0p859_0p333_0","0p833_0p859_0p333_0","0p833_-13p056_0p333_0"],"t":0,"s":[0,0,100],"e":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.341,0.341,5.111]},"n":["0p667_1_0p167_0p341","0p667_1_0p167_0p341","0p667_1_0p167_5p111"],"t":11,"s":[100,100,100],"e":[115,115,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":15,"s":[115,115,100],"e":[100,100,100]},{"t":24}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.682,-2.385],[0,0],[7.227,-5.009],[0.494,-0.402],[0.078,-0.079],[-1.265,-1.266],[0,0],[-0.087,-0.07],[-1.129,1.388],[-0.211,0.297],[2.361,8.281],[0,0],[3.76,3.76],[0,0],[2.035,0]],"o":[[0,0],[-8.176,-2.331],[-0.37,0.258],[-0.086,0.07],[-1.265,1.265],[0,0],[0.079,0.078],[1.388,1.129],[0.312,-0.384],[5.172,-7.273],[0,0],[4.348,-3.067],[0,0],[-1.701,-1.701],[-2.465,0]],"v":[[10.943,-36.491],[-1.24,-19.219],[-25.643,-15.202],[-26.94,-14.213],[-27.187,-13.99],[-27.187,-9.408],[8.801,26.579],[9.049,26.802],[13.607,26.332],[14.391,25.311],[18.607,0.628],[35.879,-11.556],[36.955,-23.925],[23.313,-37.567],[17.514,-40.1]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-40.714,40.1],[-7.985,15.793],[-16.406,7.372]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[256.714,257.1],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}],"markers":[]}
|
||||
@ -1 +0,0 @@
|
||||
{"v":"4.5.6","fr":60,"ip":0,"op":30,"w":228,"h":228,"ddd":0,"assets":[],"layers":[{"ddd":0,"ind":0,"ty":4,"nm":"Oval","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[144,60,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_0p667_0p167_0p167"],"t":10,"s":[0,0,100],"e":[110,110,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":19,"s":[110,110,100],"e":[100,100,100]},{"t":24}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[24,24]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"a":0,"k":[0.13,0.58,0.98,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":5.333},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":30,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":1,"ty":4,"nm":"Combined Shape","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[114,89.499,0]},"a":{"a":0,"k":[40,38.499,0]},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_0p667_0p167_0p167"],"t":0,"s":[0,0,100],"e":[110,110,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":15,"s":[110,110,100],"e":[100,100,100]},{"t":20}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-3.39,0],[0,19.29],[22.09,0],[0,-19.28],[-9.1,-6.4],[2.59,-3.82],[-1.62,-0.65],[-4.27,2.3],[-1.31,-0.29]],"o":[[22.09,0],[0,-19.28],[-22.09,0],[0,11],[1.17,0.82],[-2.6,3.82],[1,0.4],[6.1,-3.28],[3.14,0.69]],"v":[[40,69.85],[80,34.92],[40,0],[0,34.92],[14.45,61.34],[14.1,70.53],[9.89,76.75],[21.07,75.05],[30.18,68.79]],"c":true}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"mn":"ADBE Vector Group"}],"ip":0,"op":30,"st":0,"bm":0,"sr":1}]}
|
||||
1
TelegramUI/Resources/Animations/archive.json
Executable file
1
TelegramUI/Resources/Animations/archive.json
Executable file
@ -0,0 +1 @@
|
||||
{"v":"5.5.1","fr":60,"ip":0,"op":60,"w":288,"h":288,"nm":"Archive","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"box3","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":16,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":22,"s":[-10]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":28,"s":[5]},{"t":36,"s":[0]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[0,-65,0],"to":[0,0.932,0],"ti":[0,-2.239,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12,"s":[0,-85,0],"to":[0,0.817,0],"ti":[0,-1.967,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":16,"s":[0,-60,0],"to":[0,0.838,0],"ti":[0,-0.449,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":22,"s":[0,-75,0],"to":[0,1.429,0],"ti":[0,-2.755,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":28,"s":[0,-60,0],"to":[0,1.416,0],"ti":[0,0.204,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[0,-65,0],"to":[0,-0.33,0],"ti":[0,-0.384,0]},{"t":36,"s":[0,-60,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.086,0.086,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,-0.183]},"t":0,"s":[92,92,100]},{"t":12,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.1,0],[0,0],[0,-1.1],[0,0],[0,0],[0,0]],"o":[[0,0],[1.1,0],[0,0],[0,0],[0,0],[0,-1.1]],"v":[[-11,-3],[11,-3],[13,-1],[13,3],[-13,3],[-13,-1]],"c":true},"ix":2},"nm":"Outline 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"box3","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"box2","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,-9,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.086,0.086,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,15.476]},"t":0,"s":[50,50,100]},{"t":12,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[10,3],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":1,"ix":4},"nm":"Rect Outline 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.662745098039,0.662745098039,0.678431372549,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"box2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"box1","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,18,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[1.1,0],[0,0],[0,1.1]],"o":[[0,0],[0,0],[0,1.1],[0,0],[-1.1,0],[0,0]],"v":[[-12,-9],[12,-9],[12,7],[10,9],[-10,9],[-12,7]],"c":true},"ix":2},"nm":"Outline 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"box1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":3,"nm":"scale","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[144,144,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.203,0.203,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":0,"s":[50,50,100]},{"t":35,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":60,"st":0,"bm":0}],"markers":[]}
|
||||
1
TelegramUI/Resources/Animations/archiveAvatar.json
Normal file
1
TelegramUI/Resources/Animations/archiveAvatar.json
Normal file
@ -0,0 +1 @@
|
||||
{"v":"5.5.1","fr":60,"ip":0,"op":60,"w":288,"h":288,"nm":"ArchiveAvatar","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"box3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":16,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":22,"s":[-10]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":28,"s":[5]},{"t":36,"s":[0]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[144,84,0],"to":[0,0.932,0],"ti":[0,-2.239,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12,"s":[144,59,0],"to":[0,0.817,0],"ti":[0,-1.967,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":16,"s":[144,84,0],"to":[0,0.838,0],"ti":[0,-0.449,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":22,"s":[144,69,0],"to":[0,1.429,0],"ti":[0,-2.755,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":28,"s":[144,84,0],"to":[0,1.416,0],"ti":[0,0.204,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[144,79,0],"to":[0,-0.33,0],"ti":[0,-0.384,0]},{"t":36,"s":[144,84,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.1,0],[0,0],[0,-1.1],[0,0],[0,0],[0,0]],"o":[[0,0],[1.1,0],[0,0],[0,0],[0,0],[0,-1.1]],"v":[[-11,-3],[11,-3],[13,-1],[13,3],[-13,3],[-13,-1]],"c":true},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"box3","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"box2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[144,135,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[10,3],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":1,"ix":4},"nm":"Контур прямоугольника 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.662745098039,0.662745098039,0.678431372549,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"box2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"box1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[144,162,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[1.1,0],[0,0],[0,1.1]],"o":[[0,0],[0,0],[0,1.1],[0,0],[-1.1,0],[0,0]],"v":[[-12,-9],[12,-9],[12,7],[10,9],[-10,9],[-12,7]],"c":true},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"box1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0}],"markers":[]}
|
||||
1
TelegramUI/Resources/Animations/delete.json
Executable file
1
TelegramUI/Resources/Animations/delete.json
Executable file
File diff suppressed because one or more lines are too long
1
TelegramUI/Resources/Animations/hide.json
Normal file
1
TelegramUI/Resources/Animations/hide.json
Normal file
@ -0,0 +1 @@
|
||||
{"v":"5.5.1","fr":60,"ip":0,"op":60,"w":288,"h":288,"nm":"Hide","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Path 22","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,-12,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-10,0],[10,0]],"c":false},"ix":2},"nm":"Outline 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path 22","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Rectangle","parent":4,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,-12,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.28,0],[0,0],[0,0.28],[0,0],[0,0],[0,0],[0.28,0],[0,0],[0,-0.28],[0,0]],"o":[[0,0],[0,0.28],[0,0],[0.28,0],[0,0],[0,0],[0,0],[0,-0.28],[0,0],[-0.28,0],[0,0],[0,0]],"v":[[-7,-3],[-2,-3],[-1.5,-2.5],[1.5,-2.5],[2,-3],[7,-3],[7,3],[2,3],[1.5,2.5],[-1.5,2.5],[-2,3],[-7,3]],"c":true},"ix":2},"nm":"Outline 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847000002861,0.847000002861,0.847000002861,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Path 19","parent":4,"tt":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.551,"y":0},"t":5,"s":[0,85.639,0],"to":[0,-15.667,0],"ti":[0,15.667,0]},{"t":35,"s":[0,-8.361,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,-100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.27,0],[0,0],[0,-0.28],[0,0],[0,0],[-0.09,-0.1],[0.19,-0.19],[0,0],[0.19,0.19],[0,0],[0,0.13],[-0.28,0],[0,0]],"o":[[0,-0.28],[0,0],[0.28,0],[0,0],[0,0],[0.13,0],[0.19,0.19],[0,0],[-0.2,0.19],[0,0],[-0.1,-0.09],[0,-0.28],[0,0],[0,0]],"v":[[-2.003,-10.896],[-1.503,-11.396],[1.497,-11.396],[1.997,-10.896],[1.997,5.604],[4.797,5.604],[5.147,5.754],[5.147,6.454],[0.357,11.254],[-0.353,11.254],[-5.143,6.454],[-5.293,6.104],[-4.793,5.604],[-2.003,5.604]],"c":true},"ix":2},"nm":"Outline 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path 19","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":3,"nm":"scale","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[144,144,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.203,0.203,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":0,"s":[50,50,100]},{"t":35,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":60,"st":0,"bm":0}],"markers":[]}
|
||||
1
TelegramUI/Resources/Animations/mute.json
Executable file
1
TelegramUI/Resources/Animations/mute.json
Executable file
File diff suppressed because one or more lines are too long
1
TelegramUI/Resources/Animations/pin.json
Executable file
1
TelegramUI/Resources/Animations/pin.json
Executable file
@ -0,0 +1 @@
|
||||
{"v":"5.5.1","fr":60,"ip":0,"op":60,"w":288,"h":288,"nm":"Pin","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"pin","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0.9,-0.911,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-5.36,2.422],[-2.42,5.362],[-13.85,13.852]],"c":true},"ix":2},"nm":"Outline 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-0.49,0.34],[-2.85,-0.81],[0,0],[-1.31,-1.31],[0,0],[1.52,-1.08],[0,0],[1.8,-2.54],[0,0]],"o":[[0,0],[2.52,-1.75],[0,0],[1.08,-1.52],[0,0],[1.32,1.31],[0,0],[0.82,2.89],[-0.33,0.45],[0,0]],"v":[[-10.289,-3.988],[-8.889,-5.158],[-0.369,-6.558],[3.881,-12.588],[8.201,-12.968],[12.961,-8.198],[12.591,-3.878],[6.561,0.372],[5.091,8.992],[3.991,10.282]],"c":true},"ix":2},"nm":"Outline 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":2,"nm":"Combine 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"pin","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"scale","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[144,144,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.203,0.203,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":0,"s":[50,50,100]},{"t":35,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":60,"st":0,"bm":0}],"markers":[]}
|
||||
1
TelegramUI/Resources/Animations/read.json
Executable file
1
TelegramUI/Resources/Animations/read.json
Executable file
@ -0,0 +1 @@
|
||||
{"v":"5.5.1","fr":60,"ip":0,"op":60,"w":288,"h":288,"nm":"Read","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Oval","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[60,-63,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.736,0.736,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,-6.667]},"t":0,"s":[70,70,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.891,0.891,0.333],"y":[0,0,0]},"t":12,"s":[100,100,100]},{"t":24,"s":[0,0,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[8,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Outline 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.125489994884,0.580392003059,0.980391979218,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Path","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,3,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.98,1.32],[-0.17,1.31],[0,4.1],[-7.73,0],[0,-6.73],[7.73,0],[0.97,0.19]],"o":[[0,0],[0,0],[0.7,-0.95],[-3.57,-2.2],[0,-6.73],[7.73,0],[0,6.73],[-1.03,0],[-2.52,2.92]],"v":[[-10.09,13.5],[-10.42,13.5],[-9.44,12.18],[-8.11,8.61],[-14,-1.32],[0,-13.5],[14,-1.32],[0,10.87],[-3.01,10.58]],"c":true},"ix":2},"nm":"Outline 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":3,"nm":"scale","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[144,144,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.203,0.203,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":0,"s":[50,50,100]},{"t":35,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":60,"st":0,"bm":0}],"markers":[]}
|
||||
1
TelegramUI/Resources/Animations/unarchive.json
Executable file
1
TelegramUI/Resources/Animations/unarchive.json
Executable file
File diff suppressed because one or more lines are too long
1
TelegramUI/Resources/Animations/unmute.json
Executable file
1
TelegramUI/Resources/Animations/unmute.json
Executable file
File diff suppressed because one or more lines are too long
1
TelegramUI/Resources/Animations/unpin.json
Executable file
1
TelegramUI/Resources/Animations/unpin.json
Executable file
@ -0,0 +1 @@
|
||||
{"v":"5.5.1","fr":60,"ip":0,"op":60,"w":288,"h":288,"nm":"Unpin","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"close","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[147,141,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-12.5,-12.5],[12.5,12.5]],"c":false},"ix":2},"nm":"Outline 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.5,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"st","c":{"a":0,"k":[0.239215999842,0.823529005051,0.341176003218,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3.5,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 2","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"close","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.084],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":12,"s":[0]},{"t":24,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Cut 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"pin","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0.9,-0.911,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-5.36,2.422],[-2.42,5.362],[-13.85,13.852]],"c":true},"ix":2},"nm":"Outline 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-0.49,0.34],[-2.85,-0.81],[0,0],[-1.31,-1.31],[0,0],[1.52,-1.08],[0,0],[1.8,-2.54],[0,0]],"o":[[0,0],[2.52,-1.75],[0,0],[1.08,-1.52],[0,0],[1.32,1.31],[0,0],[0.82,2.89],[-0.33,0.45],[0,0]],"v":[[-10.289,-3.988],[-8.889,-5.158],[-0.369,-6.558],[3.881,-12.588],[8.201,-12.968],[12.961,-8.198],[12.591,-3.878],[6.561,0.372],[5.091,8.992],[3.991,10.282]],"c":true},"ix":2},"nm":"Outline 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":2,"nm":"Combine 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"pin","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":3,"nm":"scale","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[144,144,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.203,0.203,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,4.762]},"t":0,"s":[50,50,100]},{"t":35,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":60,"st":0,"bm":0}],"markers":[]}
|
||||
1
TelegramUI/Resources/Animations/unread.json
Executable file
1
TelegramUI/Resources/Animations/unread.json
Executable file
@ -0,0 +1 @@
|
||||
{"v":"5.5.1","fr":60,"ip":0,"op":60,"w":288,"h":288,"nm":"Unread","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Oval","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[204,84,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,18.333]},"t":12,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":20,"s":[110,110,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":27,"s":[95,95,100]},{"t":35,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[8,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Outline 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.125489994884,0.580392003059,0.980391979218,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Oval","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Path","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,3,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.98,1.32],[-0.17,1.31],[0,4.1],[-7.73,0],[0,-6.73],[7.73,0],[0.97,0.19]],"o":[[0,0],[0,0],[0.7,-0.95],[-3.57,-2.2],[0,-6.73],[7.73,0],[0,6.73],[-1.03,0],[-2.52,2.92]],"v":[[-10.09,13.5],[-10.42,13.5],[-9.44,12.18],[-8.11,8.61],[-14,-1.32],[0,-13.5],[14,-1.32],[0,10.87],[-3.01,10.58]],"c":true},"ix":2},"nm":"Outline 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":3,"nm":"scale","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[144,144,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.203,0.203,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":0,"s":[50,50,100]},{"t":35,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":60,"st":0,"bm":0}],"markers":[]}
|
||||
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user