From 5f8cb2992a7b99488b0d7bba0ef578e519ecac35 Mon Sep 17 00:00:00 2001 From: Daniel Huri Date: Sat, 16 Jun 2018 23:07:32 +0300 Subject: [PATCH] Feature request: Callback when presented and dismissed #50. Build bump. --- CHANGELOG.md | 9 + Example/Podfile.lock | 4 +- .../Local Podspecs/SwiftEntryKit.podspec.json | 4 +- Example/Pods/Manifest.lock | 4 +- Example/Pods/Pods.xcodeproj/project.pbxproj | 388 +++++++++--------- .../SwiftEntryKit/Info.plist | 2 +- .../SwiftEntryKit.xcodeproj/project.pbxproj | 8 +- .../PresetsData/PresetsDataSource.swift | 17 + .../Presets/PresetsViewController.swift | 4 +- README.md | 43 +- Source/Infra/EKContentView.swift | 32 +- Source/Infra/EKRootViewController.swift | 3 +- Source/Infra/EKWindowProvider.swift | 4 +- ...ft => EKAttributes+LifecycleActions.swift} | 19 +- .../EKAttributes+PopBehavior.swift | 2 +- .../Model/EntryAttributes/EKAttributes.swift | 6 +- Source/SwiftEntryKit.swift | 8 +- SwiftEntryKit.podspec | 2 +- 18 files changed, 329 insertions(+), 230 deletions(-) rename Source/Model/EntryAttributes/{EKAttributes+Completion.swift => EKAttributes+LifecycleActions.swift} (60%) diff --git a/CHANGELOG.md b/CHANGELOG.md index c69c218c..ec7835b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,15 @@ # Change Log Any notable changes to this project will be documented in this file. +## 0.4.2 + +### Features + +[Feature request: Callback when presented and dismissed #50](https://github.com/huri000/SwiftEntryKit/issues/50) + +- Added a `LifecycleActions` construct to `EKAttributes`. It contains the following optional callbacks: willAppear, didAppear, willDisappear, didDisappear for the currently displayed entry. +- Added an optional completion handler for `SwiftEntryKit` `dismiss` method. + ## 0.4.1 ### Issues Handled diff --git a/Example/Podfile.lock b/Example/Podfile.lock index fd115b9c..811fa074 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -2,7 +2,7 @@ PODS: - Nimble (7.0.2) - Quick (1.2.0) - QuickLayout (2.0.2) - - SwiftEntryKit (0.4.1): + - SwiftEntryKit (0.4.2): - QuickLayout (= 2.0.2) DEPENDENCIES: @@ -24,7 +24,7 @@ SPEC CHECKSUMS: Nimble: bfe1f814edabba69ff145cb1283e04ed636a67f2 Quick: 58d203b1c5e27fff7229c4c1ae445ad7069a7a08 QuickLayout: a730730b646b231fd4ef7cffaeb1e81fe0e1ca92 - SwiftEntryKit: ea33b0916c8071f6d61b5d6c0aa34a09e1ee315a + SwiftEntryKit: b330a8ce7a9433f1706877a585f8dd60b7f29f52 PODFILE CHECKSUM: edd6c2af5cc390dbf823427759474ab6c303ec9e diff --git a/Example/Pods/Local Podspecs/SwiftEntryKit.podspec.json b/Example/Pods/Local Podspecs/SwiftEntryKit.podspec.json index c9a07529..302b0edd 100644 --- a/Example/Pods/Local Podspecs/SwiftEntryKit.podspec.json +++ b/Example/Pods/Local Podspecs/SwiftEntryKit.podspec.json @@ -1,6 +1,6 @@ { "name": "SwiftEntryKit", - "version": "0.4.1", + "version": "0.4.2", "summary": "A simple banner and pop-up displayer for iOS. Written in Swift.", "platforms": { "ios": "9.0" @@ -17,7 +17,7 @@ }, "source": { "git": "https://github.com/huri000/SwiftEntryKit.git", - "tag": "0.4.1" + "tag": "0.4.2" }, "source_files": "Source/**/*", "frameworks": "UIKit", diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index fd115b9c..811fa074 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -2,7 +2,7 @@ PODS: - Nimble (7.0.2) - Quick (1.2.0) - QuickLayout (2.0.2) - - SwiftEntryKit (0.4.1): + - SwiftEntryKit (0.4.2): - QuickLayout (= 2.0.2) DEPENDENCIES: @@ -24,7 +24,7 @@ SPEC CHECKSUMS: Nimble: bfe1f814edabba69ff145cb1283e04ed636a67f2 Quick: 58d203b1c5e27fff7229c4c1ae445ad7069a7a08 QuickLayout: a730730b646b231fd4ef7cffaeb1e81fe0e1ca92 - SwiftEntryKit: ea33b0916c8071f6d61b5d6c0aa34a09e1ee315a + SwiftEntryKit: b330a8ce7a9433f1706877a585f8dd60b7f29f52 PODFILE CHECKSUM: edd6c2af5cc390dbf823427759474ab6c303ec9e diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index 8cc4fa7b..56abc91a 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -7,34 +7,38 @@ objects = { /* Begin PBXBuildFile section */ + 048CF090574AF921FF4984BA7A43AAA0 /* EKAttributes+BackgroundStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4384D35A0A19EC97C1235F6966079144 /* EKAttributes+BackgroundStyle.swift */; }; 051B2AF789E6D4E648C099830025DED9 /* CwlCatchBadInstruction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FA456C2996FFB78A122417C945FCA22 /* CwlCatchBadInstruction.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 06A7399EDDE9F0D312EAB97061EF5682 /* EKNotificationMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0272A3055560B3B0AFA35279BC1B76B /* EKNotificationMessage.swift */; }; 06E1A36F58D8B0E1DE8DCF9CDABE7B7C /* World+DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BBB3ACB5A13EFBD34BDEE9330025690 /* World+DSL.h */; settings = {ATTRIBUTES = (Project, ); }; }; 07853C15027E523ACFB369A9D2ED91B2 /* UIView+QLContentWrap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BED87B25121C3D67894195454A487BA /* UIView+QLContentWrap.swift */; }; 08720B3BEEE374C6FA4F80D2759B4521 /* Pods-SwiftEntryKitDemo-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C9847143C13BA1B5FE23AA1B60690818 /* Pods-SwiftEntryKitDemo-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 0A2CA8B0DD7E300ABFCF1956E6B58248 /* Nimble.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BB477CEAB7DB613F9283336172E9F9C /* Nimble.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0D695F9C29B440BFB4CE3FB0E44B987D /* EKAttributes+Validations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35204244717D326D452FD16A623A19C4 /* EKAttributes+Validations.swift */; }; - 0D9ADE43B34C3C205971BBF1F4A3A4EC /* EKSimpleMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB6CCE11DD00545065D870EE6BC335D8 /* EKSimpleMessage.swift */; }; + 0E2E01D9C15B2A72BCAAFBFF32DA3F44 /* EKMessageContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3CFE8016D2E221202DABF874861687A /* EKMessageContentView.swift */; }; + 11ADD2F225419F855811623E8D348010 /* UIView+Shadow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CD438C430B47E0E74657EBA4BF70DC /* UIView+Shadow.swift */; }; + 125FFC9DC18247DB6CB6563E9FBC5EFF /* EKAlertMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF896ABB700E85188AE332817831968D /* EKAlertMessage.swift */; }; 1287AD1461562CB01FAC9D32115D8AD3 /* ExampleGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66E05BC6FFA19E6533341133525EDA09 /* ExampleGroup.swift */; }; + 12EE8804847E1BD17EF760AEF24FB9A7 /* SwiftEntryKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FD7B47AC80871CE2E856FBC408650966 /* SwiftEntryKit-dummy.m */; }; + 15EB2F48B216AF772AB6EEFA04CCEF14 /* EKAlertMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3D8AFE644874778E9E1C8CB6AFDB06D /* EKAlertMessageView.swift */; }; 16409C737271C4F1D7FEEFB91E317D5A /* CwlPreconditionTesting.h in Headers */ = {isa = PBXBuildFile; fileRef = BFACD7437FB6A28C5808E8988B34AD20 /* CwlPreconditionTesting.h */; settings = {ATTRIBUTES = (Public, ); }; }; 17BA5FC0D91BC4370987CC34CE900CEB /* SwiftEntryKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C0D9A702EB5FD7B1B67CB2E75409E2A /* SwiftEntryKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 17C8EE7DF3F57C8F99EAF63C6E61EA99 /* FailureMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5101CBFD27B1C31FFCEE5E4E128B241 /* FailureMessage.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 18452B6EF71500B16F2063B485F5E393 /* EKAttributes+Animation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFF0D5DE5E31F313AE28A9302EDBCFE3 /* EKAttributes+Animation.swift */; }; 1A3E19B9F5EEB773C3BB61CA42F8BF62 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56AF64679E700C4BE43302AED766BFE6 /* DSL.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 1C827A900E0CBC2D1CD61E1FCE376AD7 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = A23EFA931C54ADED90C8073BFAFE8BEB /* DSL.swift */; }; - 1DDC9A20C6404C8DE1C39D810DAECCE2 /* EKRatingMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB5E509F8229AFD60CA440D467AA7D26 /* EKRatingMessageView.swift */; }; 1E1CE28FFCCD7499620B47C910E9B9E9 /* BeLogical.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83317FC72B994B27DD8DB4FDFCD319B9 /* BeLogical.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 1FD3859964F91677ADD508BD6DB5D931 /* UIRectCorner+Short.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85DA4FEBBCDBE937EBD3409696366D80 /* UIRectCorner+Short.swift */; }; + 1F2A1D5EAE024D68F883728E9141B3D5 /* EKProcessingNoteMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28534BC305B28A0C0D67A7A8DFE395E5 /* EKProcessingNoteMessageView.swift */; }; + 2224AB920D63EA5124587F96708FE4EF /* HapticFeedbackGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0392FDE60FBF7926FD30C246EE3DEBA6 /* HapticFeedbackGenerator.swift */; }; 22E9F6FA56858A5F7A5D664E5968ECB0 /* NMBExceptionCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = E16414D43F6474720CD7E30731379D20 /* NMBExceptionCapture.h */; settings = {ATTRIBUTES = (Public, ); }; }; 2322D40D9F242840325F3CB14969A6F6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75DBC38BAED9EDA00BC585BF514408E2 /* Foundation.framework */; }; - 234B359C3771D5802CC0FD02B360C032 /* EKAlertMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3D8AFE644874778E9E1C8CB6AFDB06D /* EKAlertMessageView.swift */; }; + 2488024EA2064E1C2720D55853335E84 /* EKAttributes+Validations.swift in Sources */ = {isa = PBXBuildFile; fileRef = BAB083F766F459C914F2C10CC58CDA53 /* EKAttributes+Validations.swift */; }; 25D1805055756CAA69A167CA03B2465C /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DCC720F7686FA000CE534D446D2075E /* ContainElementSatisfying.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 25D7312BBE513DAB0ACBC1814DDC7C86 /* CwlDarwinDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 982ADAF1C6776AA5884030A13A46713B /* CwlDarwinDefinitions.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 29A65FF7D1752DFFF87F5DC8F55CE859 /* ToSucceed.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA314DE45ABA2BA7F14D24700FF97FF3 /* ToSucceed.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 2C985253AB0773A5BCA4999DA6FE0FD5 /* EKMessageContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3CFE8016D2E221202DABF874861687A /* EKMessageContentView.swift */; }; - 2CAD70068552321076F1369365E82013 /* UIApplication+EKAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AF58B81C3B832970784BADDFF5A9C94 /* UIApplication+EKAppearance.swift */; }; + 29FDD3C8BB09FBEE33D826E3E8404EC8 /* EKRatingMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AE214A19620F3AFC5CAAEB5059C6E38 /* EKRatingMessage.swift */; }; 2E1868E8E05CCF5FD28BB57C72F66042 /* XCTestSuite+QuickTestSuiteBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = DA55E61ABA6D24E87A852205CD9F6F1B /* XCTestSuite+QuickTestSuiteBuilder.m */; }; 2E6730CD6DFCFE1212EDE5343F2E099B /* CwlCatchException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45483B3206C0593D61EA6D0FE82F55BE /* CwlCatchException.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 2F2DA5BA5AE1FB074F387E97115F47D5 /* mach_excServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 098696790BB124B976A60FBFD8D46703 /* mach_excServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 313871BE01FE92892ECBFDDC099F7CD5 /* EKRatingSymbolsContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E0B733EF2B8E344860C54141A5AC37E /* EKRatingSymbolsContainerView.swift */; }; 318C0E18E79999A6DD2E8EBC93ECD676 /* Quick-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 611E00FFD023AB004091E08AEAA2BA45 /* Quick-dummy.m */; }; 31C39ED8CB1C9317F1F2840FC919662D /* PostNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = C234AA46724B084CE3C047CB4D3A824A /* PostNotification.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 329D94698EB1CD56A9D2AF7F1CBF4150 /* QuickLayout.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9847F4B7B4542AA4A60E39F80CD46B18 /* QuickLayout.framework */; }; @@ -43,7 +47,6 @@ 35AB798DEA9B7EA3B9741C0829238922 /* QuickSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = FF37910AA3835E10CBEE3561037B6938 /* QuickSpec.m */; }; 36514E56151E03138C67B97EA7ACE4E0 /* Pods-SwiftEntryKitDemo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 10C6D97B17275CE8285FE86192AA75AD /* Pods-SwiftEntryKitDemo-dummy.m */; }; 3652444EAB4D07B771D4B0DFD03B2D8D /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E77DF4A7729454DD1BBDE7AAF633FED0 /* XCTest.framework */; }; - 36C7768E02931C26041901EBB00987BD /* EKAttributes+HapticFeedback.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBE661A18238A09AC188770A348C5099 /* EKAttributes+HapticFeedback.swift */; }; 37C5AC3FE6711A1117819AC5A18EE5C4 /* CwlBadInstructionException.swift in Sources */ = {isa = PBXBuildFile; fileRef = B40528DA9F2B2BC0329B15828B720F7B /* CwlBadInstructionException.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 3B3A88E074630B1EBC2139F4F70F0443 /* ThrowAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B516C285C9C54D038EA3D97C037CE12 /* ThrowAssertion.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 3BF95366D2353B3AE7709AFAEE2FB3FA /* Quick-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 56573BE6B87DF587CF83D1749F048594 /* Quick-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -53,145 +56,143 @@ 3E04D23B2995705A6106D41F3E3E4E33 /* ExpectationMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E187F48CC141EA192F7494B337259E4 /* ExpectationMessage.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 3E4C51F676D365FDFC978BD5211DC55A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75DBC38BAED9EDA00BC585BF514408E2 /* Foundation.framework */; }; 40A7F55B515E62E2861137FC7AB441D6 /* QCKDSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 804A7AAAD5639928281D9C606C04B418 /* QCKDSL.m */; }; - 43CC5B88470E9A504126F5605E6BAE11 /* EKAttributes+StatusBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 730E6BF6B16C79C518BA526FDDF58522 /* EKAttributes+StatusBar.swift */; }; + 439BCE5F3E82B1EDEC36C3112797B609 /* EKAttributes+Scroll.swift in Sources */ = {isa = PBXBuildFile; fileRef = 285C25FE79C09DC246FD2510D966A9BA /* EKAttributes+Scroll.swift */; }; + 442DAAC3534B4B8D176BCAF6AEAA0073 /* EKFormMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AD99657EFE3CC1955F7A8DD49969B94 /* EKFormMessageView.swift */; }; + 445376CB10B65FFE9042B56E43AA2B69 /* UIApplication+EKAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AF58B81C3B832970784BADDFF5A9C94 /* UIApplication+EKAppearance.swift */; }; 45F183320C688F9978649F30ABE21D09 /* MatchError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77F948895E05B0F01BE5BA99DDEE1004 /* MatchError.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 4925F3B7127934EC32C55FD8BFD86F20 /* URL+FileName.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7262468A7C37103264A9B78F4595477C /* URL+FileName.swift */; }; - 4A344A8ADF98A3E04685B71DC28479AF /* EKAttributes+PositionConstraints.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C84E8E5ACF5D35B19A23D15DFF7A853 /* EKAttributes+PositionConstraints.swift */; }; + 496656CDE7013177A02EF0A0874486F9 /* EKAttributes+PositionConstraints.swift in Sources */ = {isa = PBXBuildFile; fileRef = B594881D02D0BACE49F0321973EF7E7F /* EKAttributes+PositionConstraints.swift */; }; + 49C33F137D78EC03B277F5E35437ABA5 /* UIEdgeInsets+Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 287FC8A74E0E678DD6B7BF5F585F3FBE /* UIEdgeInsets+Utils.swift */; }; 4CDACD8A5A6CFB688838AA988E7D1E43 /* Nimble-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CF62D644FE3716BB1C29BBEEC52DF5C0 /* Nimble-dummy.m */; }; - 4D08D196F3EE73927C7A90A65B4E6230 /* EKWrapperView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 865EFDF9C05115A08433DADD04725FDA /* EKWrapperView.swift */; }; 4D68C35510D1E911C9B89840FC4B777F /* mach_excServer.c in Sources */ = {isa = PBXBuildFile; fileRef = FEFADF36D0923DE06C1A0297C31DDCE0 /* mach_excServer.c */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 4FABBF5CA8F735F48035BE4144613CB7 /* Expression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 984A45817E9F74678BAB827EB67CE4A9 /* Expression.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 5114DD3921615538BED87B52AD8F6214 /* EKTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7DD71A798131BE149D5ED2AE0C244DE /* EKTextField.swift */; }; 5280F928BB43EB40A369BE373A1D5923 /* Example.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6A004DC59146EDFBF4BE2D22877B433 /* Example.swift */; }; + 52AE7CCDC7EC1743BE4FAA279E816FF2 /* EKXStatusBarMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3857E34591826AB4503049F41D45905A /* EKXStatusBarMessageView.swift */; }; 531C54B1C10BA0F17A2B7D81D02BD390 /* CwlCatchException.h in Headers */ = {isa = PBXBuildFile; fileRef = 902EE172371F80CF3CF6AD6200F65FC8 /* CwlCatchException.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 53D742C7775F3DB7CA55E687922C7E1F /* EKFormMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AD99657EFE3CC1955F7A8DD49969B94 /* EKFormMessageView.swift */; }; 54CC2049C937561A469575AF9E6A6FE9 /* NimbleEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9179050B7E2CA8F30BC83A6EA73E7CA0 /* NimbleEnvironment.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 55859633AF09E945C344AC6E6E5E7DBA /* Behavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = D60848D5A3E2928BD5AE4BA7CFA1F318 /* Behavior.swift */; }; - 55CA859EC29F12A7CD3A0B143DB78D80 /* EKAttributes+DisplayPriority.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1794B0CB9B20D7FDC2B2F8459C3F1723 /* EKAttributes+DisplayPriority.swift */; }; 566A5196ECC6B97E0760A37EC363671B /* Quick.h in Headers */ = {isa = PBXBuildFile; fileRef = 16DFF4FD1978AE6868A49C8C63080444 /* Quick.h */; settings = {ATTRIBUTES = (Public, ); }; }; 58C0125D796A97541FDE3414001D8A92 /* BeEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = F14AABFE6E8F1BAD7E8E481E9974559F /* BeEmpty.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 58D964317DFBB10F54A273CB12843017 /* BeGreaterThanOrEqualTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 688F58302689E2DD513B7B8CF0F61573 /* BeGreaterThanOrEqualTo.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 597B22008F1A7BE7DE98855F1C2E27F8 /* EKButtonBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1FC267ED0F9905EA8CED22717FC6A4C /* EKButtonBarView.swift */; }; + 5964E61CE9FE00794D29A33447E0A189 /* EKSimpleMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7C1CED76EC89F214C55CE2FAEF71AEC /* EKSimpleMessage.swift */; }; 5AB9DB61D62D8BF7B1C734B373F361E7 /* CurrentTestCaseTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B79E0809877DC9AEDB1CC96399A4B53 /* CurrentTestCaseTracker.h */; settings = {ATTRIBUTES = (Private, ); }; }; 5BF274C2DEF332ED79B1CD15CFEC3498 /* ThrowError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05667201A2643F0FD9AAE145B4BA10DD /* ThrowError.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 5CDC8914E35FC350E04BC8747C48A508 /* SwiftEntryKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FD7B47AC80871CE2E856FBC408650966 /* SwiftEntryKit-dummy.m */; }; - 5DB039D4E86EE49453D9D575694A32B6 /* EKRatingMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = C69C9128BEF78AB91CB4F28B228A1350 /* EKRatingMessage.swift */; }; + 5D858C13D696094F810F2D009CD2E93B /* EKWrapperView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 865EFDF9C05115A08433DADD04725FDA /* EKWrapperView.swift */; }; 5DBCC0E4C72649C9A39A00D40D944DDA /* Nimble-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DE8100ACA240BCE05F421CBF80C2B572 /* Nimble-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5DC698733D5A738559FAA0E4484AAB4C /* UIRectCorner+Short.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85DA4FEBBCDBE937EBD3409696366D80 /* UIRectCorner+Short.swift */; }; 5F78DE12FD5F8E1703D06A7B5C578888 /* World.h in Headers */ = {isa = PBXBuildFile; fileRef = FBDB328EAB1037BFA4CCDB7EE6DBCA79 /* World.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 61F2C2BB55076A562F5C54601C61CCB0 /* UIView+Responder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78A2ED84879D96C148C0C56016F08B01 /* UIView+Responder.swift */; }; - 62C4C24FE723E818EE1562E9FB836634 /* EKContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3BC0491B49BBD7DE75C3808812C8D53 /* EKContentView.swift */; }; + 6132EAEC5BB4E4AC9A48E6145845282E /* GradientView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F3D250D1B28EB7FA5B1DFF6BF898F90 /* GradientView.swift */; }; 62D26CE7BA3AEDB4E5E87218FDCBBA90 /* Functional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53A043D16FF3C658C842A8F4A747FD67 /* Functional.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 63D47A915CB935B1DF09B780253AC528 /* EKButtonBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1FC267ED0F9905EA8CED22717FC6A4C /* EKButtonBarView.swift */; }; 64819C8D4EBD3386377D0F84DC909F8B /* CwlCatchException.m in Sources */ = {isa = PBXBuildFile; fileRef = A870D4D0BA3B479510BAEB0CA3FABFEB /* CwlCatchException.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 65985C142EE8A74E6E56D5E30A39C79C /* Expectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AB7C3F26855960F542A695590626B13 /* Expectation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 65D6D14B2A40202238E5A8A64E68992F /* EKRatingMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB5E509F8229AFD60CA440D467AA7D26 /* EKRatingMessageView.swift */; }; 67460ABF5532A84663D45EAA25EBB5EB /* QuickLayout-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4237BA4F7CFCC60E5CC5898962353108 /* QuickLayout-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 68FD03C72D719117929696B62038B3D7 /* NMBExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDACC83DAC6A0F4D2B389E51F12B5104 /* NMBExpectation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 6BB0EBEB4730B94AC07458E398D142C8 /* MatcherProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = FACA9BD0263BF9A1F11110FC12BADED2 /* MatcherProtocols.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 6BDD3D29D5483BBDB7E369EA9721E822 /* EKAttributes+Presets.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4599D5A136BD0F262D23E59BE0FAE58 /* EKAttributes+Presets.swift */; }; 6CB4890B9BF5F846E980634AFE83917D /* NMBExceptionCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = C822ABC39ED9D861DA15743C10CFF34A /* NMBExceptionCapture.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 6CF162B4D4AA36B6940C96A783779560 /* UIView+QuickLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = A516A2659B2F9DA2BF7B7C03B8B8DA4A /* UIView+QuickLayout.swift */; }; 6FB34D013252259143CCCF7AD709AC5D /* ExampleMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = D24758AA5266B38B5DA6DADC28493030 /* ExampleMetadata.swift */; }; - 72CF4E4900BE8FBD4D5A583D77A146B1 /* UIEdgeInsets+Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 287FC8A74E0E678DD6B7BF5F585F3FBE /* UIEdgeInsets+Utils.swift */; }; - 73A22C7E6DDF4E1308E84E71ED1F1DA1 /* EKImageNoteMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47F414902DCFA60DAFDCD0DE58FD5F0A /* EKImageNoteMessageView.swift */; }; + 72B0B35AE78ADB7D659BC73725B6FDF8 /* EKAccessoryNoteMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BE2FF23C24E3BA127D003C5BB287028 /* EKAccessoryNoteMessageView.swift */; }; 73BC5AC2ECDB8722E085F14B53E0D24E /* AssertionRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5C90BB1E37883294E78F6F909EAD358 /* AssertionRecorder.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 744719E56487F72A96C3A16193B04608 /* SwiftEntryKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 932885829190B76EAC8B85963EE998D5 /* SwiftEntryKit.swift */; }; + 74535D89E5D937898169F9027FF12B99 /* EKEntryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38F65ACF6CB9C4AFE8F1766132A851C5 /* EKEntryView.swift */; }; 746B7A9FB4A64ACAAC12B6C6DDD89D54 /* ExampleHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD410B304F2E0FAF7337968985E788FE /* ExampleHooks.swift */; }; - 750C5DA33747738E473C2C9E41D892B3 /* EKEntryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38F65ACF6CB9C4AFE8F1766132A851C5 /* EKEntryView.swift */; }; + 7492DC72A456FF8CECE601A786122967 /* EKAttributes+LifecycleActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1456E0B3C889E4DAF9A5464BA898800E /* EKAttributes+LifecycleActions.swift */; }; 75538A8B20C7A20AF3D54BBF35D56FFE /* BeLessThanOrEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = C12D845019DB0061F327B10EFD2EC56C /* BeLessThanOrEqual.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 75ABB48E3C30C2D736C3D05D6FD566A8 /* BeNil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28D2322967C5A6AC0F0F467B71D28BC1 /* BeNil.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 787E5634A88371EE73B50E71B89E2E50 /* HapticFeedbackGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0392FDE60FBF7926FD30C246EE3DEBA6 /* HapticFeedbackGenerator.swift */; }; - 7960423688DA7ADA4601212431AEEF9C /* EKAttributes+BackgroundStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8A875CDCEFEE44DB561B3DE65717181 /* EKAttributes+BackgroundStyle.swift */; }; + 7932DB39589D7A9AA40AF0DCF0E9646A /* EKNotificationMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C34825A2F5CA68BC7983004DB6EC7BB /* EKNotificationMessageView.swift */; }; + 7A26DDDCAD2AAB1793E8C85B8DC08CAB /* EKAttributes+UserInteraction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1750C8659F0D7EFC78101F2F731CFED /* EKAttributes+UserInteraction.swift */; }; + 7B5A5AFABF05684683115836A66E02BB /* UIView+Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D86D5244154A52970951C29EA4D860E9 /* UIView+Utils.swift */; }; 7C79390816BC8C3CC5E01EA0F81B4686 /* QuickSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = 57738B4DFCE620B973A658CEAF55797D /* QuickSpec.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7DB4D4CBFCBC43860891EBE400A82F86 /* EKRatingSymbolView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FBEF3CAAD44EA52D1EE99C6C11EDE08 /* EKRatingSymbolView.swift */; }; 7E0C9AE6468A5DF91F0F4C7A387D725C /* BeAKindOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416D4698E2A00093D81C6B05EE31D430 /* BeAKindOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 7E92FF95D1938B47B4D683AB9610718B /* UIView+Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D86D5244154A52970951C29EA4D860E9 /* UIView+Utils.swift */; }; 7FA5F3737DCFA7B864E43FDD395B38A2 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48015053CFDABEB9EC4D4C6B90436674 /* Configuration.swift */; }; 800768B95CC9F04793FCEEED81CA0E5C /* ErrorUtility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0878E721703ABC1ACB2947395BCAE792 /* ErrorUtility.swift */; }; 80F57C412CF1E9445431B8D4A2D4CED7 /* QLCompatibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 837FD950F261795777166DCF70A54B34 /* QLCompatibility.swift */; }; 8170866E2ACE0ACFBC6D90081354EC65 /* Stringers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96C45E9CF21394CB1263772842A9567E /* Stringers.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 821CF9BD6C3B0891FF0557CD53F46A98 /* QuickSelectedTestSuiteBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 708361F33D8D77CADE39BBABC2E5B8FA /* QuickSelectedTestSuiteBuilder.swift */; }; - 83A92E8F9D1A2578FFD0BCE2B8F09A38 /* EKProcessingNoteMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28534BC305B28A0C0D67A7A8DFE395E5 /* EKProcessingNoteMessageView.swift */; }; - 860E01CD288E79251C8B0EFC0A792F84 /* EKXStatusBarMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3857E34591826AB4503049F41D45905A /* EKXStatusBarMessageView.swift */; }; - 87755E498B13773B91AF3DDC7BCE5689 /* EKAttributes+Shadow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13D7001D01E00323ED1BDB5940A755EC /* EKAttributes+Shadow.swift */; }; + 876241D57739E337C58746B381A65C8C /* EKAttributes+FrameStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E60735EB68CA028985A9E27FF8BD7DA6 /* EKAttributes+FrameStyle.swift */; }; + 886563ADE454680BD9E7FB6C949E4955 /* EKWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4EDC455A57756228B846A3B9DB65904 /* EKWindow.swift */; }; + 8A4B38F9028D143D5400200D5DB503A0 /* EKAttributes+Presets.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC7A30FC6BB4415FF5FA8C954AEC7637 /* EKAttributes+Presets.swift */; }; 8B55BD430033027AD5FF22D630DD9F62 /* DSL.m in Sources */ = {isa = PBXBuildFile; fileRef = E50E4913B908FEDC3B37AE8BC8364E97 /* DSL.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 8BE052F1B2088ED4DDF726D8610A34BA /* QCKDSL.h in Headers */ = {isa = PBXBuildFile; fileRef = F0FDCA3F4F0D44F01EF9ACD56B19BD6F /* QCKDSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8BF9C86534FF52E02EC62BFE4CD980F8 /* EKAttributes+Count.swift in Sources */ = {isa = PBXBuildFile; fileRef = C10795AC6CA3EF409C0C91C037524C50 /* EKAttributes+Count.swift */; }; + 8CFA338B90C5EB169A2189EB71275C52 /* UIView+Responder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78A2ED84879D96C148C0C56016F08B01 /* UIView+Responder.swift */; }; 8D1B5ECFB582BA46DFB53482D3C850B6 /* QuickLayout-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CECE852BC9503A9F7CFF031C7E543FC7 /* QuickLayout-dummy.m */; }; - 8E461724EF0293122166DA837C401381 /* EKWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4EDC455A57756228B846A3B9DB65904 /* EKWindow.swift */; }; - 90EECD3ED5AD79C98FDC754630E166C6 /* EKPopUpMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB44E0FBF8DCEBEC6AF4341933230AC7 /* EKPopUpMessageView.swift */; }; + 90ED56395B0E5CC970322D25A31BE4E6 /* EKAttributes+StatusBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F6F6C8D63CD8DAAC5053C505999B46C /* EKAttributes+StatusBar.swift */; }; 91775C5381EFEE407CF994E93589C566 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75DBC38BAED9EDA00BC585BF514408E2 /* Foundation.framework */; }; + 924B5F5464CCAF05AF8D9C37CEF9018C /* EKAttributes+HapticFeedback.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AFEFDF3F9178052B3190B8ABC93E0F2 /* EKAttributes+HapticFeedback.swift */; }; 93521FE6059EF8BF2ACABECFB5C776F6 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 31E9062622952DBAF8FBDEE0AB89DF2E /* UIKit.framework */; }; 95FCC5A0948A2C4A045AAB589576D2C8 /* HooksPhase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FAE8407C5BFB111EE2EE80B9DD3C3FD /* HooksPhase.swift */; }; 96132E7432F8DD315A88A07C6B4F9C72 /* NMBStringify.h in Headers */ = {isa = PBXBuildFile; fileRef = DF4ED4B6C339C6BD77BBC15256872484 /* NMBStringify.h */; settings = {ATTRIBUTES = (Public, ); }; }; 96411FEA2EDA781D8BC8F52B25ABDC8A /* QuickConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E977EC65AAD6B970BCCF5284546CD7A /* QuickConfiguration.m */; }; 988EED125395950177DC14AF9BC87D8D /* HaveCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84ACE5EC6A1DD19AAC20BE9357E480C0 /* HaveCount.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 9D4389252DB57C71B9C0D977AC8C1D82 /* EKSimpleMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94A43E03C408E2A47D5571CF9F0CF7CE /* EKSimpleMessageView.swift */; }; - A024052DD06D6EEDA763BFAF566083F2 /* EKTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7DD71A798131BE149D5ED2AE0C244DE /* EKTextField.swift */; }; - A54D587E12B2825675246A9113F26BC5 /* EKAttributes+Position.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DF1526C7357420303F5B3D0CC0AE11A /* EKAttributes+Position.swift */; }; + 9A8ED430C07D688D60B65521DBE24FD3 /* EKPopUpMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB44E0FBF8DCEBEC6AF4341933230AC7 /* EKPopUpMessageView.swift */; }; A61ADD214AA182EEB2AC95EA3F3D658F /* XCTestObservationCenter+Register.m in Sources */ = {isa = PBXBuildFile; fileRef = BD91ABCB1620F45943A4A62CD5AC5EAC /* XCTestObservationCenter+Register.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; A74537420FF0CEDC6B9E82E1DC4C2B15 /* Contain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C19D1FB2284A98ABF232A34269ACA07 /* Contain.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + A7A080A76F656126383A4FC6FCFA88A8 /* EKProperty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 296D5E6A86FBBCD996B3F037E929C2EC /* EKProperty.swift */; }; A7C13C62E4116CA964A3E82179092AD5 /* NMBObjCMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D5A131E947A076252BB9382D5EE6AD6 /* NMBObjCMatcher.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; ADEE95A3A188BE3095990E20766BCCC8 /* DSL+Wait.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DB3AB633599D0D4C3DC8766B3AB4A44 /* DSL+Wait.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; AE4DA49ECD693BF384CD824DF02D7C6E /* NMBStringify.m in Sources */ = {isa = PBXBuildFile; fileRef = 852AD6CFAE2D03D65D15BC75DF1425FD /* NMBStringify.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - AEBD5B8B95B58D2B3F9CE09A03FF6756 /* EKNotificationMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0873D915E52FC4B6AA681C6DE7608BD5 /* EKNotificationMessage.swift */; }; AF1174085D9BC5D50FCE0480E9C2BE94 /* BeGreaterThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55448390242DCE5C5AFF5A815DEA12E3 /* BeGreaterThan.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - AF1FE7E6648B588D1DA101AD34B578DE /* EKAttributes+WindowLevel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B2D69B6CE379E1336D94A93E10C682D /* EKAttributes+WindowLevel.swift */; }; - AF4E31FDF70BCF5FA9AB012C9A18D5F2 /* EKAttributes+Duration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 329E608DDD51916FC6094C1484B6795A /* EKAttributes+Duration.swift */; }; B0921C8F084603EB4B878DDD0FE30E9A /* QLUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 477E285606F654D79494DA78767283CB /* QLUtils.swift */; }; B102ABE4E54B71B3D2C2118E2782FAB9 /* BeLessThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AC9CEEB69BA2AA2E9A6A1B1B52C717C /* BeLessThan.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + B1EA3483A1E5121CCBC4E88F7EBF25E5 /* SwiftEntryKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 932885829190B76EAC8B85963EE998D5 /* SwiftEntryKit.swift */; }; B2C151B20635A480E1937E3D2B509BB4 /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15A22DC1B5FB0FFA8EC36D2F4CD2492E /* Async.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - B36167294AE63A2C793B5B78B2C8DB56 /* UIView+Shadow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CD438C430B47E0E74657EBA4BF70DC /* UIView+Shadow.swift */; }; B37D0376FCEB3133F44CF5F4416C58E1 /* CwlMachBadInstructionHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = DED27E3092A934223A32BB4FA6980402 /* CwlMachBadInstructionHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; B49331F071AF7A1CD0FC89C0CE06827A /* Callsite.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFBEE0CCCDCAED640F8E5A00BE38F497 /* Callsite.swift */; }; - B68A89D116D3CF3A1E1D6070D40A80DF /* EKRatingSymbolsContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E0B733EF2B8E344860C54141A5AC37E /* EKRatingSymbolsContainerView.swift */; }; - B79B33B6964A4A1CB2FC627866154057 /* EKAttributes+UserInteraction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C8ECD97FABAAD997A364EB20A2BE1E8 /* EKAttributes+UserInteraction.swift */; }; - BC135E4859E6FF5C10D5DB3B3E5F224B /* EKNoteMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50B0474DB3564B99F6C63556D4AB0869 /* EKNoteMessageView.swift */; }; + B4958111221EC039B6278AF7136C1154 /* EKAttributes+WindowLevel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15447FE03932AC5388FC13614E5154BB /* EKAttributes+WindowLevel.swift */; }; + BC45E480E3CBA4D8EC125C37FF676A8A /* SwiftEntryKit+Execution.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1B8664DC00B0ABBA812B71EEC1D71A6 /* SwiftEntryKit+Execution.swift */; }; BC7B9761322C74FA27969BD55833BA47 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33050F79204C9DAAD4AAE3083C1294D1 /* Errors.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - BCCB45AAE496010463CA1F376D70671E /* SwiftEntryKit+Execution.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1B8664DC00B0ABBA812B71EEC1D71A6 /* SwiftEntryKit+Execution.swift */; }; - BDF6A8D82E2E999B394729EFEF333B8A /* EKAttributes+Count.swift in Sources */ = {isa = PBXBuildFile; fileRef = B03A7C717ED051AC51DA0AC95CC4B9FE /* EKAttributes+Count.swift */; }; + BE161DA006C6EBF22A84CEFCE89850D9 /* EKRatingSymbolView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FBEF3CAAD44EA52D1EE99C6C11EDE08 /* EKRatingSymbolView.swift */; }; BF3B7218901760A6226C7F6346BEF454 /* BeCloseTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 615001D5537F45DDC4E93246AC63AF89 /* BeCloseTo.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; C06FA100C1BBEE34B863BCB8A65359C1 /* MatcherFunc.swift in Sources */ = {isa = PBXBuildFile; fileRef = 522D02BE69053344CCF3288B88DDDAC8 /* MatcherFunc.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; C13B27E8CBE660889BC4EBA410D2662F /* NSBundle+CurrentTestBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97AD1910B674AFD4CC8124F616222E3C /* NSBundle+CurrentTestBundle.swift */; }; C1D862177DC2999FAC710AC25F253BD0 /* BeAnInstanceOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3411539A2BC69121474E977935DC813C /* BeAnInstanceOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - C2317AF9397D1AAE154DC2BBE3238D32 /* EKBackgroundView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 002201D897484DFFA42B1C675D7642BC /* EKBackgroundView.swift */; }; C3B1A7E0024A06554CBE973A69DFEDA2 /* CwlMachBadInstructionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = A6521948F6B81B36CAD39071909FA764 /* CwlMachBadInstructionHandler.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + C3F319522573025920A04D4793EDF771 /* EKContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3BC0491B49BBD7DE75C3808812C8D53 /* EKContentView.swift */; }; + C59D0263B5936C8082A37B26ADD7DDAB /* EKStyleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F1EA230D8416434A6A6436917C3556A /* EKStyleView.swift */; }; C8320A6164C870ADDB8A855ADEBBBDC9 /* Equal.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCE4B88828ACB4A12638E6E4A1CB5EE7 /* Equal.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + CB17886D771DB3B6BDE50997AE515415 /* EKBackgroundView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 002201D897484DFFA42B1C675D7642BC /* EKBackgroundView.swift */; }; CB66E5872D4BB58A091F592ACF676878 /* Pods-SwiftEntryKitTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C79F38ED571685F330379EA013087B85 /* Pods-SwiftEntryKitTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; CB8660B495DD23B3A272A05C093E0A7A /* World+DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4ACC6CA99C0CACA0944CF55DB7F4FC92 /* World+DSL.swift */; }; CCDAF11E7AF29E720C587B038145F622 /* BeginWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EF8D27BF71E2A3192595E6441D10D33 /* BeginWith.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - CD9C8B023E11E2410B499374E252712A /* GradientView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F3D250D1B28EB7FA5B1DFF6BF898F90 /* GradientView.swift */; }; CDD53F83FEAB7C8D3A9FB1BD50DB29DF /* QuickTestSuite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F6F5A39C6810430D790B020497A6349 /* QuickTestSuite.swift */; }; - CE21F94C24862FAAE8ACD036EB8E80B5 /* EKStyleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F1EA230D8416434A6A6436917C3556A /* EKStyleView.swift */; }; - CE7B3D26E99861E91862D0C4C98692C2 /* EKProperty.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDA41FE6E6399F0BF86B9EB8551F217A /* EKProperty.swift */; }; CF55697859D633C852C3586384647EB6 /* NimbleXCTestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = EFACFD7598F0600EEFBC8BB1C29CAA05 /* NimbleXCTestHandler.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; D1503C762F7E5D2510DCE2FBF2F89D08 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75DBC38BAED9EDA00BC585BF514408E2 /* Foundation.framework */; }; - D310B727CD1FBD34F1BD036F4184EFAE /* EKWindowProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = C525C4467682E651D833A3FB37822BAD /* EKWindowProvider.swift */; }; D3125CA2B6114E30D0108E5F61882D14 /* Pods-SwiftEntryKitTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C27C88721D3831ACC935B6CCEE359CD2 /* Pods-SwiftEntryKitTests-dummy.m */; }; D3B4DCE2F68B034AC39F6FEE40B520CF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75DBC38BAED9EDA00BC585BF514408E2 /* Foundation.framework */; }; D43B065F8B83504C543A909660A5E8A7 /* UIViewArray+QuickLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3A4C0E5AE8108368A9790943681A38A /* UIViewArray+QuickLayout.swift */; }; - D4BB233E172059608CC8E29E36E21773 /* EKAttributes+Scroll.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CE5BC22F7B79117F326CD011C2BAA69 /* EKAttributes+Scroll.swift */; }; + D51D7E5F6718EC3DA213548C385A63D2 /* EKAttributes+Duration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F8E8F2D075A909593A8632762C6E449 /* EKAttributes+Duration.swift */; }; + D5C4CEFCFDC527C964BFFB0EBCDF71F1 /* EKWindowProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = C525C4467682E651D833A3FB37822BAD /* EKWindowProvider.swift */; }; D76F71F9662172473CB09B153C488881 /* World.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1123EAF3D854B6263A9EA1C3CE9304C /* World.swift */; }; + D92C509C971F512BF32F4E8A7707E576 /* EKSimpleMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94A43E03C408E2A47D5571CF9F0CF7CE /* EKSimpleMessageView.swift */; }; + DC19164CFD0D1AC99D289E182D9AC171 /* EKNoteMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50B0474DB3564B99F6C63556D4AB0869 /* EKNoteMessageView.swift */; }; DC308A37D3ACEDC5D0985306BA52B23E /* NSString+C99ExtendedIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AA0D2B8BC753E1D4F5230D22C7F6ECE /* NSString+C99ExtendedIdentifier.swift */; }; - DC6D0149DEA988504A21CFA03F3EE951 /* EKAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13F1419A6B7EB922C7E70AA9DC970B91 /* EKAttributes.swift */; }; - DD08DB561ACE5C9EFB32ED9DFCB43A29 /* EKNotificationMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C34825A2F5CA68BC7983004DB6EC7BB /* EKNotificationMessageView.swift */; }; DD4FA9D26B8B7FCB968DDA11CE569C45 /* SuiteHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB5A3CF05932B3D6D970B391B4991870 /* SuiteHooks.swift */; }; + DD9AE6A2B3239BD997080202E6B46882 /* EKImageNoteMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47F414902DCFA60DAFDCD0DE58FD5F0A /* EKImageNoteMessageView.swift */; }; DF026F6F406A4FB6CEA63B0A4B9E27DD /* AllPass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DB160B136E6C9D92EC827D40E2E9BE7 /* AllPass.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + DF2415E3C8607324834D62C115F64826 /* EKAttributes+PopBehavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = 758829A5FD934C589F632EFA3F87A07D /* EKAttributes+PopBehavior.swift */; }; E02D96FA53436033FDA19510BFCEF2D2 /* Closures.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAB4C790BFC282BF68AADBE6C05E1B78 /* Closures.swift */; }; - E0BEB134069FB2C88EF533031CFABA4E /* EKAccessoryNoteMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BE2FF23C24E3BA127D003C5BB287028 /* EKAccessoryNoteMessageView.swift */; }; - E45C3AF1ED5698B044A106FAB76978CC /* EKPopUpMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C7003B28A442423CF6C600EE237A504 /* EKPopUpMessage.swift */; }; + E790E36C8BCFF62221B9633FAA2AD8C8 /* EKAttributes+Position.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BD81E24AFD333736C0F2B13490511FA /* EKAttributes+Position.swift */; }; + E9547B04571F7F5F25AE7A725FFC0A35 /* EKRootViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB420ECF2FC7DACA952E2C3FAF621741 /* EKRootViewController.swift */; }; EA23514158B011C809372CECB582948E /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7229187185CDE816F15C371BE829E4AA /* Filter.swift */; }; EAAA05EBBC34225C0DB45797712E24A1 /* AsyncMatcherWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = A32BC64B4637CD500F1E0C76DE4242C6 /* AsyncMatcherWrapper.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - EAE1A810A1325ACB95EB7CA6510BA9C4 /* EKRootViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB420ECF2FC7DACA952E2C3FAF621741 /* EKRootViewController.swift */; }; EAE2AAE5EB826B38978692984BB22FDD /* RaisesException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 113B641FEAB4632A6D07C41EE11465E7 /* RaisesException.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; EB3A73071ABA60E77E0704649637D8BD /* SatisfyAnyOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C7874DCF93B16271D1C53C7F0425EB2 /* SatisfyAnyOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + ED11A0A63482C42285BBA722DA726095 /* EKAttributes+Shadow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AC988234B59118C1B9856A6DA94EE28 /* EKAttributes+Shadow.swift */; }; EDA2628829766D9D26DC7DB06A0839DA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75DBC38BAED9EDA00BC585BF514408E2 /* Foundation.framework */; }; EF8548E0C37E8888D9DDC11ED89D3568 /* Predicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D20AF76ED50E1CDAAA979272706D1E23 /* Predicate.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + F081C8E88BF7827C1CFAACDCCEC1859E /* EKAttributes+Animation.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC4CE8D6CB886A37EBC92E863626DCDF /* EKAttributes+Animation.swift */; }; + F2339A644803CEE4613D8DCA3565B219 /* EKPopUpMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD351241206D78963D926DA92B774911 /* EKPopUpMessage.swift */; }; F28003B228B82B7E1497D4F41F55A31E /* Match.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4B8E92D275652975F5651960151A5AA /* Match.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; F3BAA36614ABDBC0538B0DEA99CF80A0 /* SourceLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5EA31987B16AFFED530AF438383309F4 /* SourceLocation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - F44C958CAE67F6DC5B6CEFA48474B6B7 /* EKAttributes+PopBehavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35ED31FC5A8160901365A05D7FE0990C /* EKAttributes+PopBehavior.swift */; }; F4BD249C60F21F5E0F7C1FAC8A5BC2AF /* BeIdenticalTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29265700F46950A3383576D3A1AF9C6 /* BeIdenticalTo.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; F4E47447FD083053D2231DDC0E9C8788 /* QuickSpecBase.m in Sources */ = {isa = PBXBuildFile; fileRef = CEAA3AEC7865834E9BCB3B000FA36B7D /* QuickSpecBase.m */; }; - F4ED92AE4B93A9753943939C653CD8F9 /* EKAttributes+FrameStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 812F3047C29750CAA1500807FD2CD6FD /* EKAttributes+FrameStyle.swift */; }; F9649DD59BAEE88C6864EEFE73ECA88C /* AdapterProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62BC0462571B2FD0A1FE987AF08044A4 /* AdapterProtocols.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + FACA09EF396742A2A05821486905AF45 /* EKAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EE9E703377D2140D4F85BDFAE9874A2 /* EKAttributes.swift */; }; FB433A84B0A557CD5E5948A8B6705024 /* DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = E3E420707CD056EC077886CB05C75C49 /* DSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FFD72323BAFAF9F5BB1A0EAFE0E2618A /* EKAlertMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 737DDE3741DC01DF6E5FAD59BF0DFC6E /* EKAlertMessage.swift */; }; + FF54584C16D134D3BC5B27062356325B /* EKAttributes+DisplayPriority.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FF9D5F218FBCDF10D3E6DF53C2118A5 /* EKAttributes+DisplayPriority.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -251,42 +252,40 @@ 0392FDE60FBF7926FD30C246EE3DEBA6 /* HapticFeedbackGenerator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = HapticFeedbackGenerator.swift; sourceTree = ""; }; 047C3BF538C121BBDF40DD25B59E7300 /* AssertionDispatcher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AssertionDispatcher.swift; path = Sources/Nimble/Adapters/AssertionDispatcher.swift; sourceTree = ""; }; 05667201A2643F0FD9AAE145B4BA10DD /* ThrowError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ThrowError.swift; path = Sources/Nimble/Matchers/ThrowError.swift; sourceTree = ""; }; - 0873D915E52FC4B6AA681C6DE7608BD5 /* EKNotificationMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKNotificationMessage.swift; sourceTree = ""; }; 0878E721703ABC1ACB2947395BCAE792 /* ErrorUtility.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ErrorUtility.swift; path = Sources/Quick/ErrorUtility.swift; sourceTree = ""; }; 098696790BB124B976A60FBFD8D46703 /* mach_excServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mach_excServer.h; path = Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/mach_excServer.h; sourceTree = ""; }; 0AA0D2B8BC753E1D4F5230D22C7F6ECE /* NSString+C99ExtendedIdentifier.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSString+C99ExtendedIdentifier.swift"; path = "Sources/Quick/NSString+C99ExtendedIdentifier.swift"; sourceTree = ""; }; + 0AC988234B59118C1B9856A6DA94EE28 /* EKAttributes+Shadow.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+Shadow.swift"; sourceTree = ""; }; + 0BD81E24AFD333736C0F2B13490511FA /* EKAttributes+Position.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+Position.swift"; sourceTree = ""; }; 0D55CF51B4895DB4A12A145D29A8007B /* Pods-SwiftEntryKitDemo.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-SwiftEntryKitDemo.modulemap"; sourceTree = ""; }; 0DB160B136E6C9D92EC827D40E2E9BE7 /* AllPass.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AllPass.swift; path = Sources/Nimble/Matchers/AllPass.swift; sourceTree = ""; }; 0F1EA230D8416434A6A6436917C3556A /* EKStyleView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKStyleView.swift; sourceTree = ""; }; 1063625DD5AA3FFEDA2B121288F8CEAD /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 10C6D97B17275CE8285FE86192AA75AD /* Pods-SwiftEntryKitDemo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-SwiftEntryKitDemo-dummy.m"; sourceTree = ""; }; 113B641FEAB4632A6D07C41EE11465E7 /* RaisesException.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RaisesException.swift; path = Sources/Nimble/Matchers/RaisesException.swift; sourceTree = ""; }; - 13D7001D01E00323ED1BDB5940A755EC /* EKAttributes+Shadow.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+Shadow.swift"; sourceTree = ""; }; - 13F1419A6B7EB922C7E70AA9DC970B91 /* EKAttributes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKAttributes.swift; sourceTree = ""; }; + 1456E0B3C889E4DAF9A5464BA898800E /* EKAttributes+LifecycleActions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+LifecycleActions.swift"; sourceTree = ""; }; + 15447FE03932AC5388FC13614E5154BB /* EKAttributes+WindowLevel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+WindowLevel.swift"; sourceTree = ""; }; 15A22DC1B5FB0FFA8EC36D2F4CD2492E /* Async.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Async.swift; path = Sources/Nimble/Utils/Async.swift; sourceTree = ""; }; 16DFF4FD1978AE6868A49C8C63080444 /* Quick.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Quick.h; path = Sources/QuickObjectiveC/Quick.h; sourceTree = ""; }; - 1794B0CB9B20D7FDC2B2F8459C3F1723 /* EKAttributes+DisplayPriority.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+DisplayPriority.swift"; sourceTree = ""; }; - 1B2D69B6CE379E1336D94A93E10C682D /* EKAttributes+WindowLevel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+WindowLevel.swift"; sourceTree = ""; }; - 1C84E8E5ACF5D35B19A23D15DFF7A853 /* EKAttributes+PositionConstraints.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+PositionConstraints.swift"; sourceTree = ""; }; - 1C8ECD97FABAAD997A364EB20A2BE1E8 /* EKAttributes+UserInteraction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+UserInteraction.swift"; sourceTree = ""; }; + 1AFEFDF3F9178052B3190B8ABC93E0F2 /* EKAttributes+HapticFeedback.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+HapticFeedback.swift"; sourceTree = ""; }; 1DB3AB633599D0D4C3DC8766B3AB4A44 /* DSL+Wait.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DSL+Wait.swift"; path = "Sources/Nimble/DSL+Wait.swift"; sourceTree = ""; }; + 1F6F6C8D63CD8DAAC5053C505999B46C /* EKAttributes+StatusBar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+StatusBar.swift"; sourceTree = ""; }; 1FC45743E9859E79B80029377DE0177B /* Pods-SwiftEntryKitDemo-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-SwiftEntryKitDemo-acknowledgements.markdown"; sourceTree = ""; }; 228CF5F3784CD9C24E18EB41C30640C1 /* QuickConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QuickConfiguration.h; path = Sources/QuickObjectiveC/Configuration/QuickConfiguration.h; sourceTree = ""; }; 28534BC305B28A0C0D67A7A8DFE395E5 /* EKProcessingNoteMessageView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKProcessingNoteMessageView.swift; sourceTree = ""; }; + 285C25FE79C09DC246FD2510D966A9BA /* EKAttributes+Scroll.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+Scroll.swift"; sourceTree = ""; }; 287FC8A74E0E678DD6B7BF5F585F3FBE /* UIEdgeInsets+Utils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIEdgeInsets+Utils.swift"; sourceTree = ""; }; 28D2322967C5A6AC0F0F467B71D28BC1 /* BeNil.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeNil.swift; path = Sources/Nimble/Matchers/BeNil.swift; sourceTree = ""; }; + 296D5E6A86FBBCD996B3F037E929C2EC /* EKProperty.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKProperty.swift; sourceTree = ""; }; 29740F3B7A93FA850ED19A61F5B58963 /* QuickLayout.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = QuickLayout.framework; path = QuickLayout.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 29CD438C430B47E0E74657EBA4BF70DC /* UIView+Shadow.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIView+Shadow.swift"; sourceTree = ""; }; 2BE2FF23C24E3BA127D003C5BB287028 /* EKAccessoryNoteMessageView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKAccessoryNoteMessageView.swift; sourceTree = ""; }; - 2CE5BC22F7B79117F326CD011C2BAA69 /* EKAttributes+Scroll.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+Scroll.swift"; sourceTree = ""; }; 2EEC9AB54D4B889840BF34E8E55A1FE8 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + 2F8E8F2D075A909593A8632762C6E449 /* EKAttributes+Duration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+Duration.swift"; sourceTree = ""; }; 2FBEF3CAAD44EA52D1EE99C6C11EDE08 /* EKRatingSymbolView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKRatingSymbolView.swift; sourceTree = ""; }; 31E9062622952DBAF8FBDEE0AB89DF2E /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; - 329E608DDD51916FC6094C1484B6795A /* EKAttributes+Duration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+Duration.swift"; sourceTree = ""; }; 33050F79204C9DAAD4AAE3083C1294D1 /* Errors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Errors.swift; path = Sources/Nimble/Utils/Errors.swift; sourceTree = ""; }; 3411539A2BC69121474E977935DC813C /* BeAnInstanceOf.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeAnInstanceOf.swift; path = Sources/Nimble/Matchers/BeAnInstanceOf.swift; sourceTree = ""; }; - 35204244717D326D452FD16A623A19C4 /* EKAttributes+Validations.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+Validations.swift"; sourceTree = ""; }; - 35ED31FC5A8160901365A05D7FE0990C /* EKAttributes+PopBehavior.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+PopBehavior.swift"; sourceTree = ""; }; 3857E34591826AB4503049F41D45905A /* EKXStatusBarMessageView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKXStatusBarMessageView.swift; sourceTree = ""; }; 38F65ACF6CB9C4AFE8F1766132A851C5 /* EKEntryView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKEntryView.swift; sourceTree = ""; }; 3A31835C85FAE4DC942C8E43C6E43367 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; @@ -297,6 +296,7 @@ 3F6F5A39C6810430D790B020497A6349 /* QuickTestSuite.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuickTestSuite.swift; path = Sources/Quick/QuickTestSuite.swift; sourceTree = ""; }; 416D4698E2A00093D81C6B05EE31D430 /* BeAKindOf.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeAKindOf.swift; path = Sources/Nimble/Matchers/BeAKindOf.swift; sourceTree = ""; }; 4237BA4F7CFCC60E5CC5898962353108 /* QuickLayout-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "QuickLayout-umbrella.h"; sourceTree = ""; }; + 4384D35A0A19EC97C1235F6966079144 /* EKAttributes+BackgroundStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+BackgroundStyle.swift"; sourceTree = ""; }; 446F365DC32CF13C83253FB3897D2FD4 /* Pods-SwiftEntryKitTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-SwiftEntryKitTests.modulemap"; sourceTree = ""; }; 45483B3206C0593D61EA6D0FE82F55BE /* CwlCatchException.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlCatchException.swift; path = Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException.swift; sourceTree = ""; }; 477E285606F654D79494DA78767283CB /* QLUtils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QLUtils.swift; path = QuickLayout/QLUtils.swift; sourceTree = ""; }; @@ -322,7 +322,6 @@ 5C0D9A702EB5FD7B1B67CB2E75409E2A /* SwiftEntryKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftEntryKit-umbrella.h"; sourceTree = ""; }; 5C19D1FB2284A98ABF232A34269ACA07 /* Contain.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Contain.swift; path = Sources/Nimble/Matchers/Contain.swift; sourceTree = ""; }; 5C1A5E097E16A0D6DB167D4D84786DC9 /* QuickSpecBase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QuickSpecBase.h; path = Sources/QuickSpecBase/include/QuickSpecBase.h; sourceTree = ""; }; - 5C7003B28A442423CF6C600EE237A504 /* EKPopUpMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKPopUpMessage.swift; sourceTree = ""; }; 5D5A131E947A076252BB9382D5EE6AD6 /* NMBObjCMatcher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NMBObjCMatcher.swift; path = Sources/Nimble/Adapters/NMBObjCMatcher.swift; sourceTree = ""; }; 5EA31987B16AFFED530AF438383309F4 /* SourceLocation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SourceLocation.swift; path = Sources/Nimble/Utils/SourceLocation.swift; sourceTree = ""; }; 5FA456C2996FFB78A122417C945FCA22 /* CwlCatchBadInstruction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlCatchBadInstruction.swift; path = Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift; sourceTree = ""; }; @@ -335,16 +334,14 @@ 688F58302689E2DD513B7B8CF0F61573 /* BeGreaterThanOrEqualTo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeGreaterThanOrEqualTo.swift; path = Sources/Nimble/Matchers/BeGreaterThanOrEqualTo.swift; sourceTree = ""; }; 6AC9CEEB69BA2AA2E9A6A1B1B52C717C /* BeLessThan.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeLessThan.swift; path = Sources/Nimble/Matchers/BeLessThan.swift; sourceTree = ""; }; 6DCC720F7686FA000CE534D446D2075E /* ContainElementSatisfying.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContainElementSatisfying.swift; path = Sources/Nimble/Matchers/ContainElementSatisfying.swift; sourceTree = ""; }; - 6DF1526C7357420303F5B3D0CC0AE11A /* EKAttributes+Position.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+Position.swift"; sourceTree = ""; }; 6ED903FB8718AD9F1E183AFA493D3220 /* Nimble.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Nimble.modulemap; sourceTree = ""; }; 6EF8D27BF71E2A3192595E6441D10D33 /* BeginWith.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeginWith.swift; path = Sources/Nimble/Matchers/BeginWith.swift; sourceTree = ""; }; 708361F33D8D77CADE39BBABC2E5B8FA /* QuickSelectedTestSuiteBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuickSelectedTestSuiteBuilder.swift; path = Sources/Quick/QuickSelectedTestSuiteBuilder.swift; sourceTree = ""; }; 7229187185CDE816F15C371BE829E4AA /* Filter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Filter.swift; path = Sources/Quick/Filter.swift; sourceTree = ""; }; 7262468A7C37103264A9B78F4595477C /* URL+FileName.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URL+FileName.swift"; path = "Sources/Quick/URL+FileName.swift"; sourceTree = ""; }; - 730E6BF6B16C79C518BA526FDDF58522 /* EKAttributes+StatusBar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+StatusBar.swift"; sourceTree = ""; }; 73547B9621B5D7549E4944D16DDD2C75 /* Pods-SwiftEntryKitDemo-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-SwiftEntryKitDemo-frameworks.sh"; sourceTree = ""; }; - 737DDE3741DC01DF6E5FAD59BF0DFC6E /* EKAlertMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKAlertMessage.swift; sourceTree = ""; }; 74CF4CD2A57BB4B4735BEAA267A398F7 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 758829A5FD934C589F632EFA3F87A07D /* EKAttributes+PopBehavior.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+PopBehavior.swift"; sourceTree = ""; }; 75DBC38BAED9EDA00BC585BF514408E2 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 77F948895E05B0F01BE5BA99DDEE1004 /* MatchError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MatchError.swift; path = Sources/Nimble/Matchers/MatchError.swift; sourceTree = ""; }; 78A093A797AFE3CCF244E2E5643B171C /* Pods-SwiftEntryKitTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-SwiftEntryKitTests-frameworks.sh"; sourceTree = ""; }; @@ -354,10 +351,11 @@ 7AD99657EFE3CC1955F7A8DD49969B94 /* EKFormMessageView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKFormMessageView.swift; sourceTree = ""; }; 7BED87B25121C3D67894195454A487BA /* UIView+QLContentWrap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIView+QLContentWrap.swift"; path = "QuickLayout/UIView+QLContentWrap.swift"; sourceTree = ""; }; 7C34825A2F5CA68BC7983004DB6EC7BB /* EKNotificationMessageView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKNotificationMessageView.swift; sourceTree = ""; }; + 7EE9E703377D2140D4F85BDFAE9874A2 /* EKAttributes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKAttributes.swift; sourceTree = ""; }; 7F5560E570FE9373A8188FA09D7ADBC6 /* Quick.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Quick.xcconfig; sourceTree = ""; }; 7FAE8407C5BFB111EE2EE80B9DD3C3FD /* HooksPhase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HooksPhase.swift; path = Sources/Quick/Hooks/HooksPhase.swift; sourceTree = ""; }; + 7FF9D5F218FBCDF10D3E6DF53C2118A5 /* EKAttributes+DisplayPriority.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+DisplayPriority.swift"; sourceTree = ""; }; 804A7AAAD5639928281D9C606C04B418 /* QCKDSL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCKDSL.m; path = Sources/QuickObjectiveC/DSL/QCKDSL.m; sourceTree = ""; }; - 812F3047C29750CAA1500807FD2CD6FD /* EKAttributes+FrameStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+FrameStyle.swift"; sourceTree = ""; }; 83317FC72B994B27DD8DB4FDFCD319B9 /* BeLogical.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeLogical.swift; path = Sources/Nimble/Matchers/BeLogical.swift; sourceTree = ""; }; 837FD950F261795777166DCF70A54B34 /* QLCompatibility.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QLCompatibility.swift; path = QuickLayout/QLCompatibility.swift; sourceTree = ""; }; 84ACE5EC6A1DD19AAC20BE9357E480C0 /* HaveCount.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HaveCount.swift; path = Sources/Nimble/Matchers/HaveCount.swift; sourceTree = ""; }; @@ -382,6 +380,7 @@ 9847F4B7B4542AA4A60E39F80CD46B18 /* QuickLayout.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = QuickLayout.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 984A45817E9F74678BAB827EB67CE4A9 /* Expression.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Expression.swift; path = Sources/Nimble/Expression.swift; sourceTree = ""; }; 99CC6A04537584E9B1F867B9EA24DF47 /* SwiftEntryKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftEntryKit.xcconfig; sourceTree = ""; }; + 9AE214A19620F3AFC5CAAEB5059C6E38 /* EKRatingMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKRatingMessage.swift; sourceTree = ""; }; 9E33E38F79522B7C2C0DD35F0476257D /* BeVoid.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeVoid.swift; path = Sources/Nimble/Matchers/BeVoid.swift; sourceTree = ""; }; A23EFA931C54ADED90C8073BFAFE8BEB /* DSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DSL.swift; path = Sources/Quick/DSL/DSL.swift; sourceTree = ""; }; A32BC64B4637CD500F1E0C76DE4242C6 /* AsyncMatcherWrapper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AsyncMatcherWrapper.swift; path = Sources/Nimble/Matchers/AsyncMatcherWrapper.swift; sourceTree = ""; }; @@ -394,15 +393,19 @@ AA314DE45ABA2BA7F14D24700FF97FF3 /* ToSucceed.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ToSucceed.swift; path = Sources/Nimble/Matchers/ToSucceed.swift; sourceTree = ""; }; AAB4C790BFC282BF68AADBE6C05E1B78 /* Closures.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Closures.swift; path = Sources/Quick/Hooks/Closures.swift; sourceTree = ""; }; AB5E509F8229AFD60CA440D467AA7D26 /* EKRatingMessageView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKRatingMessageView.swift; sourceTree = ""; }; - AFF0D5DE5E31F313AE28A9302EDBCFE3 /* EKAttributes+Animation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+Animation.swift"; sourceTree = ""; }; - B03A7C717ED051AC51DA0AC95CC4B9FE /* EKAttributes+Count.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+Count.swift"; sourceTree = ""; }; + AC7A30FC6BB4415FF5FA8C954AEC7637 /* EKAttributes+Presets.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+Presets.swift"; sourceTree = ""; }; + AD351241206D78963D926DA92B774911 /* EKPopUpMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKPopUpMessage.swift; sourceTree = ""; }; + B1750C8659F0D7EFC78101F2F731CFED /* EKAttributes+UserInteraction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+UserInteraction.swift"; sourceTree = ""; }; B40528DA9F2B2BC0329B15828B720F7B /* CwlBadInstructionException.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlBadInstructionException.swift; path = Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlBadInstructionException.swift; sourceTree = ""; }; B4B8E92D275652975F5651960151A5AA /* Match.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Match.swift; path = Sources/Nimble/Matchers/Match.swift; sourceTree = ""; }; - B8A875CDCEFEE44DB561B3DE65717181 /* EKAttributes+BackgroundStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+BackgroundStyle.swift"; sourceTree = ""; }; - BB6CCE11DD00545065D870EE6BC335D8 /* EKSimpleMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKSimpleMessage.swift; sourceTree = ""; }; + B594881D02D0BACE49F0321973EF7E7F /* EKAttributes+PositionConstraints.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+PositionConstraints.swift"; sourceTree = ""; }; + BAB083F766F459C914F2C10CC58CDA53 /* EKAttributes+Validations.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+Validations.swift"; sourceTree = ""; }; + BC4CE8D6CB886A37EBC92E863626DCDF /* EKAttributes+Animation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+Animation.swift"; sourceTree = ""; }; BD91ABCB1620F45943A4A62CD5AC5EAC /* XCTestObservationCenter+Register.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "XCTestObservationCenter+Register.m"; path = "Sources/NimbleObjectiveC/XCTestObservationCenter+Register.m"; sourceTree = ""; }; BFACD7437FB6A28C5808E8988B34AD20 /* CwlPreconditionTesting.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CwlPreconditionTesting.h; path = Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Mach/CwlPreconditionTesting.h; sourceTree = ""; }; + C0272A3055560B3B0AFA35279BC1B76B /* EKNotificationMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKNotificationMessage.swift; sourceTree = ""; }; C0E9AF19785341DA403C3DF8C6F3D93E /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C10795AC6CA3EF409C0C91C037524C50 /* EKAttributes+Count.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+Count.swift"; sourceTree = ""; }; C1123EAF3D854B6263A9EA1C3CE9304C /* World.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = World.swift; path = Sources/Quick/World.swift; sourceTree = ""; }; C12D845019DB0061F327B10EFD2EC56C /* BeLessThanOrEqual.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeLessThanOrEqual.swift; path = Sources/Nimble/Matchers/BeLessThanOrEqual.swift; sourceTree = ""; }; C234AA46724B084CE3C047CB4D3A824A /* PostNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PostNotification.swift; path = Sources/Nimble/Matchers/PostNotification.swift; sourceTree = ""; }; @@ -411,7 +414,6 @@ C525C4467682E651D833A3FB37822BAD /* EKWindowProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKWindowProvider.swift; sourceTree = ""; }; C5C90BB1E37883294E78F6F909EAD358 /* AssertionRecorder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AssertionRecorder.swift; path = Sources/Nimble/Adapters/AssertionRecorder.swift; sourceTree = ""; }; C65ECEFB54E952D260934A42B79C2718 /* SwiftEntryKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SwiftEntryKit.modulemap; sourceTree = ""; }; - C69C9128BEF78AB91CB4F28B228A1350 /* EKRatingMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKRatingMessage.swift; sourceTree = ""; }; C79F38ED571685F330379EA013087B85 /* Pods-SwiftEntryKitTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-SwiftEntryKitTests-umbrella.h"; sourceTree = ""; }; C7C5AF5F48E16951B2AB04A7BE5F060F /* SwiftEntryKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SwiftEntryKit.framework; path = SwiftEntryKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C7DD71A798131BE149D5ED2AE0C244DE /* EKTextField.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKTextField.swift; sourceTree = ""; }; @@ -429,6 +431,7 @@ D44AFFDDD52048367EFDEEB88D982173 /* Nimble-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Nimble-prefix.pch"; sourceTree = ""; }; D4EDC455A57756228B846A3B9DB65904 /* EKWindow.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKWindow.swift; sourceTree = ""; }; D60848D5A3E2928BD5AE4BA7CFA1F318 /* Behavior.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Behavior.swift; path = Sources/Quick/Behavior.swift; sourceTree = ""; }; + D7C1CED76EC89F214C55CE2FAEF71AEC /* EKSimpleMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKSimpleMessage.swift; sourceTree = ""; }; D7D073A908C8C9751C1E6277D4B323F6 /* Pods-SwiftEntryKitTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-SwiftEntryKitTests-resources.sh"; sourceTree = ""; }; D86D5244154A52970951C29EA4D860E9 /* UIView+Utils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIView+Utils.swift"; sourceTree = ""; }; D8DBBFC316F81F01A567B62963360BD1 /* Pods-SwiftEntryKitTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SwiftEntryKitTests.release.xcconfig"; sourceTree = ""; }; @@ -439,6 +442,7 @@ DED27E3092A934223A32BB4FA6980402 /* CwlMachBadInstructionHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CwlMachBadInstructionHandler.h; path = Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/include/CwlMachBadInstructionHandler.h; sourceTree = ""; }; DEE99DAF44A535E83672D4D3284CA497 /* Pods-SwiftEntryKitDemo-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-SwiftEntryKitDemo-resources.sh"; sourceTree = ""; }; DF4ED4B6C339C6BD77BBC15256872484 /* NMBStringify.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NMBStringify.h; path = Sources/NimbleObjectiveC/NMBStringify.h; sourceTree = ""; }; + DF896ABB700E85188AE332817831968D /* EKAlertMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKAlertMessage.swift; sourceTree = ""; }; DFBEE0CCCDCAED640F8E5A00BE38F497 /* Callsite.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Callsite.swift; path = Sources/Quick/Callsite.swift; sourceTree = ""; }; E16414D43F6474720CD7E30731379D20 /* NMBExceptionCapture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NMBExceptionCapture.h; path = Sources/NimbleObjectiveC/NMBExceptionCapture.h; sourceTree = ""; }; E1B8664DC00B0ABBA812B71EEC1D71A6 /* SwiftEntryKit+Execution.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "SwiftEntryKit+Execution.swift"; sourceTree = ""; }; @@ -446,24 +450,22 @@ E3CFE8016D2E221202DABF874861687A /* EKMessageContentView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKMessageContentView.swift; sourceTree = ""; }; E3E420707CD056EC077886CB05C75C49 /* DSL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DSL.h; path = Sources/NimbleObjectiveC/DSL.h; sourceTree = ""; }; E50E4913B908FEDC3B37AE8BC8364E97 /* DSL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DSL.m; path = Sources/NimbleObjectiveC/DSL.m; sourceTree = ""; }; + E60735EB68CA028985A9E27FF8BD7DA6 /* EKAttributes+FrameStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+FrameStyle.swift"; sourceTree = ""; }; E77DF4A7729454DD1BBDE7AAF633FED0 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; EA1A834AC395A5ED2444E31F34492C87 /* Pods-SwiftEntryKitTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SwiftEntryKitTests.debug.xcconfig"; sourceTree = ""; }; EB44E0FBF8DCEBEC6AF4341933230AC7 /* EKPopUpMessageView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKPopUpMessageView.swift; sourceTree = ""; }; EB5A3CF05932B3D6D970B391B4991870 /* SuiteHooks.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SuiteHooks.swift; path = Sources/Quick/Hooks/SuiteHooks.swift; sourceTree = ""; }; - EDA41FE6E6399F0BF86B9EB8551F217A /* EKProperty.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKProperty.swift; sourceTree = ""; }; EDD1B489030550057742A1013337DE0C /* Pods-SwiftEntryKitDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SwiftEntryKitDemo.debug.xcconfig"; sourceTree = ""; }; EFACFD7598F0600EEFBC8BB1C29CAA05 /* NimbleXCTestHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NimbleXCTestHandler.swift; path = Sources/Nimble/Adapters/NimbleXCTestHandler.swift; sourceTree = ""; }; F0FDCA3F4F0D44F01EF9ACD56B19BD6F /* QCKDSL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCKDSL.h; path = Sources/QuickObjectiveC/DSL/QCKDSL.h; sourceTree = ""; }; F14AABFE6E8F1BAD7E8E481E9974559F /* BeEmpty.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeEmpty.swift; path = Sources/Nimble/Matchers/BeEmpty.swift; sourceTree = ""; }; F3BC0491B49BBD7DE75C3808812C8D53 /* EKContentView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EKContentView.swift; sourceTree = ""; }; - F4599D5A136BD0F262D23E59BE0FAE58 /* EKAttributes+Presets.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+Presets.swift"; sourceTree = ""; }; F49F43E6C2B2C1A9FD881B594D3A152E /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; F5101CBFD27B1C31FFCEE5E4E128B241 /* FailureMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FailureMessage.swift; path = Sources/Nimble/FailureMessage.swift; sourceTree = ""; }; F74B151D2A8216CA7EBF982922266EB0 /* Quick.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Quick.modulemap; sourceTree = ""; }; FA2EAAC50F48A3A0F6CEED9ED5BF8B57 /* Pods-SwiftEntryKitDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SwiftEntryKitDemo.release.xcconfig"; sourceTree = ""; }; FACA9BD0263BF9A1F11110FC12BADED2 /* MatcherProtocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MatcherProtocols.swift; path = Sources/Nimble/Matchers/MatcherProtocols.swift; sourceTree = ""; }; FBDB328EAB1037BFA4CCDB7EE6DBCA79 /* World.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = World.h; path = Sources/QuickObjectiveC/World.h; sourceTree = ""; }; - FBE661A18238A09AC188770A348C5099 /* EKAttributes+HapticFeedback.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "EKAttributes+HapticFeedback.swift"; sourceTree = ""; }; FBF29A9E03FBFD32ED78AB9C413A78E9 /* QuickLayout.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = QuickLayout.modulemap; sourceTree = ""; }; FD410B304F2E0FAF7337968985E788FE /* ExampleHooks.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExampleHooks.swift; path = Sources/Quick/Hooks/ExampleHooks.swift; sourceTree = ""; }; FD7B47AC80871CE2E856FBC408650966 /* SwiftEntryKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SwiftEntryKit-dummy.m"; sourceTree = ""; }; @@ -561,6 +563,33 @@ path = Source/MessageViews; sourceTree = ""; }; + 0DFB5F3D668FE1962595DA8AC85F5DAC /* EntryAttributes */ = { + isa = PBXGroup; + children = ( + 7EE9E703377D2140D4F85BDFAE9874A2 /* EKAttributes.swift */, + BC4CE8D6CB886A37EBC92E863626DCDF /* EKAttributes+Animation.swift */, + 4384D35A0A19EC97C1235F6966079144 /* EKAttributes+BackgroundStyle.swift */, + C10795AC6CA3EF409C0C91C037524C50 /* EKAttributes+Count.swift */, + 7FF9D5F218FBCDF10D3E6DF53C2118A5 /* EKAttributes+DisplayPriority.swift */, + 2F8E8F2D075A909593A8632762C6E449 /* EKAttributes+Duration.swift */, + E60735EB68CA028985A9E27FF8BD7DA6 /* EKAttributes+FrameStyle.swift */, + 1AFEFDF3F9178052B3190B8ABC93E0F2 /* EKAttributes+HapticFeedback.swift */, + 1456E0B3C889E4DAF9A5464BA898800E /* EKAttributes+LifecycleActions.swift */, + 758829A5FD934C589F632EFA3F87A07D /* EKAttributes+PopBehavior.swift */, + 0BD81E24AFD333736C0F2B13490511FA /* EKAttributes+Position.swift */, + B594881D02D0BACE49F0321973EF7E7F /* EKAttributes+PositionConstraints.swift */, + AC7A30FC6BB4415FF5FA8C954AEC7637 /* EKAttributes+Presets.swift */, + 285C25FE79C09DC246FD2510D966A9BA /* EKAttributes+Scroll.swift */, + 0AC988234B59118C1B9856A6DA94EE28 /* EKAttributes+Shadow.swift */, + 1F6F6C8D63CD8DAAC5053C505999B46C /* EKAttributes+StatusBar.swift */, + B1750C8659F0D7EFC78101F2F731CFED /* EKAttributes+UserInteraction.swift */, + BAB083F766F459C914F2C10CC58CDA53 /* EKAttributes+Validations.swift */, + 15447FE03932AC5388FC13614E5154BB /* EKAttributes+WindowLevel.swift */, + ); + name = EntryAttributes; + path = EntryAttributes; + sourceTree = ""; + }; 0FFC7559329DC1EADF0EC2DD80A94ADE /* Support Files */ = { isa = PBXGroup; children = ( @@ -633,7 +662,7 @@ CF5574ED293D9D7EE11599FF7293B0BC /* Extensions */, F554D49E827B0D4715873EBA403C2DF8 /* Infra */, 089734E78497154C0E03254B503D8F53 /* MessageViews */, - 79D8086DE97A972DD1DF2047E051AD3C /* Model */, + FD4A53F945F69A8D9779B1E92DF8D039 /* Model */, 28658B0ACE6CE1B64F8D9D70A99F4D80 /* Pod */, F28DBFFE9A3A0FF83C99D482FB7463CF /* Support Files */, C69BB4B772A73078990A8D050D1E9920 /* Utils */, @@ -642,21 +671,6 @@ path = ../..; sourceTree = ""; }; - 79D8086DE97A972DD1DF2047E051AD3C /* Model */ = { - isa = PBXGroup; - children = ( - 737DDE3741DC01DF6E5FAD59BF0DFC6E /* EKAlertMessage.swift */, - 0873D915E52FC4B6AA681C6DE7608BD5 /* EKNotificationMessage.swift */, - 5C7003B28A442423CF6C600EE237A504 /* EKPopUpMessage.swift */, - EDA41FE6E6399F0BF86B9EB8551F217A /* EKProperty.swift */, - C69C9128BEF78AB91CB4F28B228A1350 /* EKRatingMessage.swift */, - BB6CCE11DD00545065D870EE6BC335D8 /* EKSimpleMessage.swift */, - CE81F89D12F4870CC7F8B67355BB30BB /* EntryAttributes */, - ); - name = Model; - path = Source/Model; - sourceTree = ""; - }; 7D16D9FC28A3FE718C8D5FF39A5E2911 /* Nimble */ = { isa = PBXGroup; children = ( @@ -806,32 +820,6 @@ path = Source/Utils; sourceTree = ""; }; - CE81F89D12F4870CC7F8B67355BB30BB /* EntryAttributes */ = { - isa = PBXGroup; - children = ( - 13F1419A6B7EB922C7E70AA9DC970B91 /* EKAttributes.swift */, - AFF0D5DE5E31F313AE28A9302EDBCFE3 /* EKAttributes+Animation.swift */, - B8A875CDCEFEE44DB561B3DE65717181 /* EKAttributes+BackgroundStyle.swift */, - B03A7C717ED051AC51DA0AC95CC4B9FE /* EKAttributes+Count.swift */, - 1794B0CB9B20D7FDC2B2F8459C3F1723 /* EKAttributes+DisplayPriority.swift */, - 329E608DDD51916FC6094C1484B6795A /* EKAttributes+Duration.swift */, - 812F3047C29750CAA1500807FD2CD6FD /* EKAttributes+FrameStyle.swift */, - FBE661A18238A09AC188770A348C5099 /* EKAttributes+HapticFeedback.swift */, - 35ED31FC5A8160901365A05D7FE0990C /* EKAttributes+PopBehavior.swift */, - 6DF1526C7357420303F5B3D0CC0AE11A /* EKAttributes+Position.swift */, - 1C84E8E5ACF5D35B19A23D15DFF7A853 /* EKAttributes+PositionConstraints.swift */, - F4599D5A136BD0F262D23E59BE0FAE58 /* EKAttributes+Presets.swift */, - 2CE5BC22F7B79117F326CD011C2BAA69 /* EKAttributes+Scroll.swift */, - 13D7001D01E00323ED1BDB5940A755EC /* EKAttributes+Shadow.swift */, - 730E6BF6B16C79C518BA526FDDF58522 /* EKAttributes+StatusBar.swift */, - 1C8ECD97FABAAD997A364EB20A2BE1E8 /* EKAttributes+UserInteraction.swift */, - 35204244717D326D452FD16A623A19C4 /* EKAttributes+Validations.swift */, - 1B2D69B6CE379E1336D94A93E10C682D /* EKAttributes+WindowLevel.swift */, - ); - name = EntryAttributes; - path = EntryAttributes; - sourceTree = ""; - }; CF5574ED293D9D7EE11599FF7293B0BC /* Extensions */ = { isa = PBXGroup; children = ( @@ -972,6 +960,21 @@ path = Source/Infra; sourceTree = ""; }; + FD4A53F945F69A8D9779B1E92DF8D039 /* Model */ = { + isa = PBXGroup; + children = ( + DF896ABB700E85188AE332817831968D /* EKAlertMessage.swift */, + C0272A3055560B3B0AFA35279BC1B76B /* EKNotificationMessage.swift */, + AD351241206D78963D926DA92B774911 /* EKPopUpMessage.swift */, + 296D5E6A86FBBCD996B3F037E929C2EC /* EKProperty.swift */, + 9AE214A19620F3AFC5CAAEB5059C6E38 /* EKRatingMessage.swift */, + D7C1CED76EC89F214C55CE2FAEF71AEC /* EKSimpleMessage.swift */, + 0DFB5F3D668FE1962595DA8AC85F5DAC /* EntryAttributes */, + ); + name = Model; + path = Source/Model; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -1082,7 +1085,7 @@ isa = PBXNativeTarget; buildConfigurationList = E8B56CB35EE6B17BFAAA927A5DD1F9B6 /* Build configuration list for PBXNativeTarget "SwiftEntryKit" */; buildPhases = ( - A4D899E67636587FD3DF8CFB85EC8C11 /* Sources */, + 1A5355877260D207C348AA87F794FC15 /* Sources */, 44A91266C61BF76D122C914ABAEF8BBB /* Frameworks */, DD8F1B9B45641B25415FDF4F79350A56 /* Headers */, ); @@ -1183,6 +1186,73 @@ /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ + 1A5355877260D207C348AA87F794FC15 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 72B0B35AE78ADB7D659BC73725B6FDF8 /* EKAccessoryNoteMessageView.swift in Sources */, + 125FFC9DC18247DB6CB6563E9FBC5EFF /* EKAlertMessage.swift in Sources */, + 15EB2F48B216AF772AB6EEFA04CCEF14 /* EKAlertMessageView.swift in Sources */, + F081C8E88BF7827C1CFAACDCCEC1859E /* EKAttributes+Animation.swift in Sources */, + 048CF090574AF921FF4984BA7A43AAA0 /* EKAttributes+BackgroundStyle.swift in Sources */, + 8BF9C86534FF52E02EC62BFE4CD980F8 /* EKAttributes+Count.swift in Sources */, + FF54584C16D134D3BC5B27062356325B /* EKAttributes+DisplayPriority.swift in Sources */, + D51D7E5F6718EC3DA213548C385A63D2 /* EKAttributes+Duration.swift in Sources */, + 876241D57739E337C58746B381A65C8C /* EKAttributes+FrameStyle.swift in Sources */, + 924B5F5464CCAF05AF8D9C37CEF9018C /* EKAttributes+HapticFeedback.swift in Sources */, + 7492DC72A456FF8CECE601A786122967 /* EKAttributes+LifecycleActions.swift in Sources */, + DF2415E3C8607324834D62C115F64826 /* EKAttributes+PopBehavior.swift in Sources */, + E790E36C8BCFF62221B9633FAA2AD8C8 /* EKAttributes+Position.swift in Sources */, + 496656CDE7013177A02EF0A0874486F9 /* EKAttributes+PositionConstraints.swift in Sources */, + 8A4B38F9028D143D5400200D5DB503A0 /* EKAttributes+Presets.swift in Sources */, + 439BCE5F3E82B1EDEC36C3112797B609 /* EKAttributes+Scroll.swift in Sources */, + ED11A0A63482C42285BBA722DA726095 /* EKAttributes+Shadow.swift in Sources */, + 90ED56395B0E5CC970322D25A31BE4E6 /* EKAttributes+StatusBar.swift in Sources */, + 7A26DDDCAD2AAB1793E8C85B8DC08CAB /* EKAttributes+UserInteraction.swift in Sources */, + 2488024EA2064E1C2720D55853335E84 /* EKAttributes+Validations.swift in Sources */, + B4958111221EC039B6278AF7136C1154 /* EKAttributes+WindowLevel.swift in Sources */, + FACA09EF396742A2A05821486905AF45 /* EKAttributes.swift in Sources */, + CB17886D771DB3B6BDE50997AE515415 /* EKBackgroundView.swift in Sources */, + 63D47A915CB935B1DF09B780253AC528 /* EKButtonBarView.swift in Sources */, + C3F319522573025920A04D4793EDF771 /* EKContentView.swift in Sources */, + 74535D89E5D937898169F9027FF12B99 /* EKEntryView.swift in Sources */, + 442DAAC3534B4B8D176BCAF6AEAA0073 /* EKFormMessageView.swift in Sources */, + DD9AE6A2B3239BD997080202E6B46882 /* EKImageNoteMessageView.swift in Sources */, + 0E2E01D9C15B2A72BCAAFBFF32DA3F44 /* EKMessageContentView.swift in Sources */, + DC19164CFD0D1AC99D289E182D9AC171 /* EKNoteMessageView.swift in Sources */, + 06A7399EDDE9F0D312EAB97061EF5682 /* EKNotificationMessage.swift in Sources */, + 7932DB39589D7A9AA40AF0DCF0E9646A /* EKNotificationMessageView.swift in Sources */, + F2339A644803CEE4613D8DCA3565B219 /* EKPopUpMessage.swift in Sources */, + 9A8ED430C07D688D60B65521DBE24FD3 /* EKPopUpMessageView.swift in Sources */, + 1F2A1D5EAE024D68F883728E9141B3D5 /* EKProcessingNoteMessageView.swift in Sources */, + A7A080A76F656126383A4FC6FCFA88A8 /* EKProperty.swift in Sources */, + 29FDD3C8BB09FBEE33D826E3E8404EC8 /* EKRatingMessage.swift in Sources */, + 65D6D14B2A40202238E5A8A64E68992F /* EKRatingMessageView.swift in Sources */, + 313871BE01FE92892ECBFDDC099F7CD5 /* EKRatingSymbolsContainerView.swift in Sources */, + BE161DA006C6EBF22A84CEFCE89850D9 /* EKRatingSymbolView.swift in Sources */, + E9547B04571F7F5F25AE7A725FFC0A35 /* EKRootViewController.swift in Sources */, + 5964E61CE9FE00794D29A33447E0A189 /* EKSimpleMessage.swift in Sources */, + D92C509C971F512BF32F4E8A7707E576 /* EKSimpleMessageView.swift in Sources */, + C59D0263B5936C8082A37B26ADD7DDAB /* EKStyleView.swift in Sources */, + 5114DD3921615538BED87B52AD8F6214 /* EKTextField.swift in Sources */, + 886563ADE454680BD9E7FB6C949E4955 /* EKWindow.swift in Sources */, + D5C4CEFCFDC527C964BFFB0EBCDF71F1 /* EKWindowProvider.swift in Sources */, + 5D858C13D696094F810F2D009CD2E93B /* EKWrapperView.swift in Sources */, + 52AE7CCDC7EC1743BE4FAA279E816FF2 /* EKXStatusBarMessageView.swift in Sources */, + 6132EAEC5BB4E4AC9A48E6145845282E /* GradientView.swift in Sources */, + 2224AB920D63EA5124587F96708FE4EF /* HapticFeedbackGenerator.swift in Sources */, + BC45E480E3CBA4D8EC125C37FF676A8A /* SwiftEntryKit+Execution.swift in Sources */, + 12EE8804847E1BD17EF760AEF24FB9A7 /* SwiftEntryKit-dummy.m in Sources */, + B1EA3483A1E5121CCBC4E88F7EBF25E5 /* SwiftEntryKit.swift in Sources */, + 445376CB10B65FFE9042B56E43AA2B69 /* UIApplication+EKAppearance.swift in Sources */, + 49C33F137D78EC03B277F5E35437ABA5 /* UIEdgeInsets+Utils.swift in Sources */, + 5DC698733D5A738559FAA0E4484AAB4C /* UIRectCorner+Short.swift in Sources */, + 8CFA338B90C5EB169A2189EB71275C52 /* UIView+Responder.swift in Sources */, + 11ADD2F225419F855811623E8D348010 /* UIView+Shadow.swift in Sources */, + 7B5A5AFABF05684683115836A66E02BB /* UIView+Utils.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 2BE2EFEF55C85553BC1C667411B7E719 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1300,72 +1370,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - A4D899E67636587FD3DF8CFB85EC8C11 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - E0BEB134069FB2C88EF533031CFABA4E /* EKAccessoryNoteMessageView.swift in Sources */, - FFD72323BAFAF9F5BB1A0EAFE0E2618A /* EKAlertMessage.swift in Sources */, - 234B359C3771D5802CC0FD02B360C032 /* EKAlertMessageView.swift in Sources */, - 18452B6EF71500B16F2063B485F5E393 /* EKAttributes+Animation.swift in Sources */, - 7960423688DA7ADA4601212431AEEF9C /* EKAttributes+BackgroundStyle.swift in Sources */, - BDF6A8D82E2E999B394729EFEF333B8A /* EKAttributes+Count.swift in Sources */, - 55CA859EC29F12A7CD3A0B143DB78D80 /* EKAttributes+DisplayPriority.swift in Sources */, - AF4E31FDF70BCF5FA9AB012C9A18D5F2 /* EKAttributes+Duration.swift in Sources */, - F4ED92AE4B93A9753943939C653CD8F9 /* EKAttributes+FrameStyle.swift in Sources */, - 36C7768E02931C26041901EBB00987BD /* EKAttributes+HapticFeedback.swift in Sources */, - F44C958CAE67F6DC5B6CEFA48474B6B7 /* EKAttributes+PopBehavior.swift in Sources */, - A54D587E12B2825675246A9113F26BC5 /* EKAttributes+Position.swift in Sources */, - 4A344A8ADF98A3E04685B71DC28479AF /* EKAttributes+PositionConstraints.swift in Sources */, - 6BDD3D29D5483BBDB7E369EA9721E822 /* EKAttributes+Presets.swift in Sources */, - D4BB233E172059608CC8E29E36E21773 /* EKAttributes+Scroll.swift in Sources */, - 87755E498B13773B91AF3DDC7BCE5689 /* EKAttributes+Shadow.swift in Sources */, - 43CC5B88470E9A504126F5605E6BAE11 /* EKAttributes+StatusBar.swift in Sources */, - B79B33B6964A4A1CB2FC627866154057 /* EKAttributes+UserInteraction.swift in Sources */, - 0D695F9C29B440BFB4CE3FB0E44B987D /* EKAttributes+Validations.swift in Sources */, - AF1FE7E6648B588D1DA101AD34B578DE /* EKAttributes+WindowLevel.swift in Sources */, - DC6D0149DEA988504A21CFA03F3EE951 /* EKAttributes.swift in Sources */, - C2317AF9397D1AAE154DC2BBE3238D32 /* EKBackgroundView.swift in Sources */, - 597B22008F1A7BE7DE98855F1C2E27F8 /* EKButtonBarView.swift in Sources */, - 62C4C24FE723E818EE1562E9FB836634 /* EKContentView.swift in Sources */, - 750C5DA33747738E473C2C9E41D892B3 /* EKEntryView.swift in Sources */, - 53D742C7775F3DB7CA55E687922C7E1F /* EKFormMessageView.swift in Sources */, - 73A22C7E6DDF4E1308E84E71ED1F1DA1 /* EKImageNoteMessageView.swift in Sources */, - 2C985253AB0773A5BCA4999DA6FE0FD5 /* EKMessageContentView.swift in Sources */, - BC135E4859E6FF5C10D5DB3B3E5F224B /* EKNoteMessageView.swift in Sources */, - AEBD5B8B95B58D2B3F9CE09A03FF6756 /* EKNotificationMessage.swift in Sources */, - DD08DB561ACE5C9EFB32ED9DFCB43A29 /* EKNotificationMessageView.swift in Sources */, - E45C3AF1ED5698B044A106FAB76978CC /* EKPopUpMessage.swift in Sources */, - 90EECD3ED5AD79C98FDC754630E166C6 /* EKPopUpMessageView.swift in Sources */, - 83A92E8F9D1A2578FFD0BCE2B8F09A38 /* EKProcessingNoteMessageView.swift in Sources */, - CE7B3D26E99861E91862D0C4C98692C2 /* EKProperty.swift in Sources */, - 5DB039D4E86EE49453D9D575694A32B6 /* EKRatingMessage.swift in Sources */, - 1DDC9A20C6404C8DE1C39D810DAECCE2 /* EKRatingMessageView.swift in Sources */, - B68A89D116D3CF3A1E1D6070D40A80DF /* EKRatingSymbolsContainerView.swift in Sources */, - 7DB4D4CBFCBC43860891EBE400A82F86 /* EKRatingSymbolView.swift in Sources */, - EAE1A810A1325ACB95EB7CA6510BA9C4 /* EKRootViewController.swift in Sources */, - 0D9ADE43B34C3C205971BBF1F4A3A4EC /* EKSimpleMessage.swift in Sources */, - 9D4389252DB57C71B9C0D977AC8C1D82 /* EKSimpleMessageView.swift in Sources */, - CE21F94C24862FAAE8ACD036EB8E80B5 /* EKStyleView.swift in Sources */, - A024052DD06D6EEDA763BFAF566083F2 /* EKTextField.swift in Sources */, - 8E461724EF0293122166DA837C401381 /* EKWindow.swift in Sources */, - D310B727CD1FBD34F1BD036F4184EFAE /* EKWindowProvider.swift in Sources */, - 4D08D196F3EE73927C7A90A65B4E6230 /* EKWrapperView.swift in Sources */, - 860E01CD288E79251C8B0EFC0A792F84 /* EKXStatusBarMessageView.swift in Sources */, - CD9C8B023E11E2410B499374E252712A /* GradientView.swift in Sources */, - 787E5634A88371EE73B50E71B89E2E50 /* HapticFeedbackGenerator.swift in Sources */, - BCCB45AAE496010463CA1F376D70671E /* SwiftEntryKit+Execution.swift in Sources */, - 5CDC8914E35FC350E04BC8747C48A508 /* SwiftEntryKit-dummy.m in Sources */, - 744719E56487F72A96C3A16193B04608 /* SwiftEntryKit.swift in Sources */, - 2CAD70068552321076F1369365E82013 /* UIApplication+EKAppearance.swift in Sources */, - 72CF4E4900BE8FBD4D5A583D77A146B1 /* UIEdgeInsets+Utils.swift in Sources */, - 1FD3859964F91677ADD508BD6DB5D931 /* UIRectCorner+Short.swift in Sources */, - 61F2C2BB55076A562F5C54601C61CCB0 /* UIView+Responder.swift in Sources */, - B36167294AE63A2C793B5B78B2C8DB56 /* UIView+Shadow.swift in Sources */, - 7E92FF95D1938B47B4D683AB9610718B /* UIView+Utils.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; BCBD74D88B9908809B775895D68E81B4 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; diff --git a/Example/Pods/Target Support Files/SwiftEntryKit/Info.plist b/Example/Pods/Target Support Files/SwiftEntryKit/Info.plist index 13a981e1..a71f7a04 100644 --- a/Example/Pods/Target Support Files/SwiftEntryKit/Info.plist +++ b/Example/Pods/Target Support Files/SwiftEntryKit/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 0.4.1 + 0.4.2 CFBundleSignature ???? CFBundleVersion diff --git a/Example/SwiftEntryKit.xcodeproj/project.pbxproj b/Example/SwiftEntryKit.xcodeproj/project.pbxproj index a8c83bf4..fa7e0d3e 100644 --- a/Example/SwiftEntryKit.xcodeproj/project.pbxproj +++ b/Example/SwiftEntryKit.xcodeproj/project.pbxproj @@ -17,7 +17,7 @@ 143F3AAC2090B312009F3719 /* UserInteractionSelectionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 143F3AAB2090B312009F3719 /* UserInteractionSelectionTableViewCell.swift */; }; 143F3AAE2090B4E2009F3719 /* HapticFeedbackSelectionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 143F3AAD2090B4E2009F3719 /* HapticFeedbackSelectionTableViewCell.swift */; }; 143F3AB22090B7F0009F3719 /* ScrollSelectionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 143F3AB12090B7F0009F3719 /* ScrollSelectionTableViewCell.swift */; }; - 144E51BD20D56E150051FDCA /* EKAttributes+Completion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 144E51BC20D56E150051FDCA /* EKAttributes+Completion.swift */; }; + 144E51BD20D56E150051FDCA /* EKAttributes+LifecycleActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 144E51BC20D56E150051FDCA /* EKAttributes+LifecycleActions.swift */; }; 145F56B820B84ACA0027EB67 /* EKAttributes+StatusBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 145F56B720B84ACA0027EB67 /* EKAttributes+StatusBar.swift */; }; 145F56BB20B863220027EB67 /* UIApplication+EKAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 145F56BA20B863220027EB67 /* UIApplication+EKAppearance.swift */; }; 14665621209204A5008FB96D /* AnimationSelectionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14665620209204A5008FB96D /* AnimationSelectionTableViewCell.swift */; }; @@ -208,7 +208,7 @@ 143F3AAB2090B312009F3719 /* UserInteractionSelectionTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInteractionSelectionTableViewCell.swift; sourceTree = ""; }; 143F3AAD2090B4E2009F3719 /* HapticFeedbackSelectionTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HapticFeedbackSelectionTableViewCell.swift; sourceTree = ""; }; 143F3AB12090B7F0009F3719 /* ScrollSelectionTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScrollSelectionTableViewCell.swift; sourceTree = ""; }; - 144E51BC20D56E150051FDCA /* EKAttributes+Completion.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "EKAttributes+Completion.swift"; sourceTree = ""; }; + 144E51BC20D56E150051FDCA /* EKAttributes+LifecycleActions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "EKAttributes+LifecycleActions.swift"; sourceTree = ""; }; 14580CCA20B7F4FB001AF703 /* DemoAppInfo.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = DemoAppInfo.plist; sourceTree = ""; }; 145F56B720B84ACA0027EB67 /* EKAttributes+StatusBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "EKAttributes+StatusBar.swift"; sourceTree = ""; }; 145F56BA20B863220027EB67 /* UIApplication+EKAppearance.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIApplication+EKAppearance.swift"; sourceTree = ""; }; @@ -466,7 +466,7 @@ isa = PBXGroup; children = ( 14B48B3120B81C9700CE3EF4 /* EKAttributes.swift */, - 144E51BC20D56E150051FDCA /* EKAttributes+Completion.swift */, + 144E51BC20D56E150051FDCA /* EKAttributes+LifecycleActions.swift */, 14B48B3620B81C9700CE3EF4 /* EKAttributes+Animation.swift */, 14B48B3C20B81C9700CE3EF4 /* EKAttributes+BackgroundStyle.swift */, 14B48B2F20B81C9700CE3EF4 /* EKAttributes+Count.swift */, @@ -992,7 +992,7 @@ 14B48B7120B81C9700CE3EF4 /* EKAttributes+Animation.swift in Sources */, 14B3A51A20C16E44002306C4 /* EKRatingSymbolsContainerView.swift in Sources */, 14B48B8820B81C9700CE3EF4 /* EKMessageContentView.swift in Sources */, - 144E51BD20D56E150051FDCA /* EKAttributes+Completion.swift in Sources */, + 144E51BD20D56E150051FDCA /* EKAttributes+LifecycleActions.swift in Sources */, 14B48B6F20B81C9700CE3EF4 /* EKAttributes+Validations.swift in Sources */, 14B48B6620B81C9700CE3EF4 /* UIView+Shadow.swift in Sources */, 14B48B7A20B81C9700CE3EF4 /* EKPopUpMessage.swift in Sources */, diff --git a/Example/SwiftEntryKit/Presets/PresetsData/PresetsDataSource.swift b/Example/SwiftEntryKit/Presets/PresetsData/PresetsDataSource.swift index fb9356d2..1c94ecea 100644 --- a/Example/SwiftEntryKit/Presets/PresetsData/PresetsDataSource.swift +++ b/Example/SwiftEntryKit/Presets/PresetsData/PresetsDataSource.swift @@ -153,6 +153,23 @@ struct PresetsDataSource { attributes.entryBackground = .color(color: .satCyan) attributes.shadow = .active(with: .init(color: .darkChatMessage, opacity: 0.5, radius: 2)) attributes.statusBar = .light + + attributes.lifecycleEvents.willAppear = { + print("will appear action goes here") + } + + attributes.lifecycleEvents.didAppear = { + print("did appear action goes here") + } + + attributes.lifecycleEvents.willDisappear = { + print("will disappear action goes here") + } + + attributes.lifecycleEvents.didDisappear = { + print("did disappear action goes here") + } + descriptionString = "Absorbs (swallows) touches and the status bar becomes light" descriptionThumb = ThumbDesc.topNote.rawValue description = .init(with: attributes, title: "Top Standard Note", description: descriptionString, thumb: descriptionThumb) diff --git a/Example/SwiftEntryKit/Presets/PresetsViewController.swift b/Example/SwiftEntryKit/Presets/PresetsViewController.swift index 7346c7d0..37a5c7b5 100644 --- a/Example/SwiftEntryKit/Presets/PresetsViewController.swift +++ b/Example/SwiftEntryKit/Presets/PresetsViewController.swift @@ -118,7 +118,9 @@ class PresetsViewController: UIViewController { let closeButtonLabelStyle = EKProperty.LabelStyle(font: mediumFont, color: grayColor) let closeButtonLabel = EKProperty.LabelContent(text: "Dismiss", style: closeButtonLabelStyle) let closeButton = EKProperty.ButtonContent(label: closeButtonLabel, backgroundColor: .clear, highlightedBackgroundColor: grayColor.withAlphaComponent(0.05)) { - SwiftEntryKit.dismiss() + SwiftEntryKit.dismiss { + // Here you may perform a completion handler + } } // Ok Button - Make transition to a new entry when the button is tapped diff --git a/README.md b/README.md index dc8113d3..acc85dc7 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ * [User Interaction](#user-interaction) * [Scroll Behavior](#scroll-behavior) * [Haptic Feedback](#haptic-feedback) + * [Lifecycle Events](#lifecycle-events) * [Background Style](#background-style) * [Shadow](#shadow) * [Round Corners](#round-corners) @@ -55,15 +56,16 @@ Banners or Pop-Ups are called *Entries*. - The entries are displayed in a separated UIWindow (of type EKWindow), so the user is able to navigate the app freely while entries are being displayed in a non intrusive manner. - The kit offers some beautiful [presets](#presets) that can be themed with your app colors and fonts. - **Customization**: Entries are highly customizable - - [x] Can be displayed at the top or the bottom of the screen. + - [x] Can be displayed either at the top, center, or the bottom of the screen. - [x] Can be displayed within or outside the screen's safe area. - [x] Can be stylized: have a border, drop-shadow and round corners. - [x] Their content's and the screen's background can be blurred, dimmed, colored or have a gradient style. - [x] Transition animations are customizable - Entrance, Exit and Pop (by another entry). - [x] The user interactions with the entry or the screen can be intercepted. - [x] Entries have an optional rubber banding effect in panning. - - [x] Entries can be optionally dismissed by a simple swipe gesture. + - [x] Entries can be optionally dismissed using a simple swipe gesture. - [x] Entries have display priority attribute. That means that an entry can be dismissed only be other entry with equal or higher priority. + - [x] Entries can be optionally injected with lifecycle events: *will* and *did* appear/disappear. - [x] The status bar style is settable for the display duration of the entry. - [x] SwiftEntryKit supports [custom views](#custom-view-usage-example) as well. @@ -128,7 +130,7 @@ source 'https://github.com/cocoapods/specs.git' platform :ios, '9.0' use_frameworks! -pod 'SwiftEntryKit', '0.4.1' +pod 'SwiftEntryKit', '0.4.2' ``` Then, run the following command: @@ -151,7 +153,7 @@ $ brew install carthage To integrate SwiftEntryKit into your Xcode project using Carthage, specify the following in your `Cartfile`: ```ogdl -github "huri000/SwiftEntryKit" == 0.4.1 +github "huri000/SwiftEntryKit" == 0.4.2 ``` ## Usage @@ -343,6 +345,27 @@ attributes.scroll = .edgeCrossingDisabled(swipeable: true) #### [Haptic Feedback](https://developer.apple.com/ios/human-interface-guidelines/user-interaction/feedback/) The device can produce a haptic feedback, thus adding an additional sensory depth to each entry. +#### Lifecycle Events +Events can be injected to the entry so that they are to be called during its lifecycle. + +```Swift +attributes.lifecycleEvents.willAppear = { + // Executed before the entry animates inside +} + +attributes.lifecycleEvents.didAppear = { + // Executed after the entry animates inside +} + +attributes.lifecycleEvents.willDisappear = { + // Executed before the entry animates outside +} + +attributes.lifecycleEvents.didDisappear = { + // Executed after the entry animates outside +} +``` + #### Background Style The entry and the screen can have various background styles, such as blur, color, gradient and even an image. @@ -485,6 +508,7 @@ public struct EKAttributes public var entryInteraction: UserInteraction public var scroll: Scroll public var hapticFeedbackType: NotificationHapticFeedback + public var lifecycleEvents: LifecycleEvents // Theme & Style public var entryBackground: BackgroundStyle @@ -566,8 +590,17 @@ You can dismiss an entry by simply invoke *dismiss* in the SwiftEntryKit class, ```Swift SwiftEntryKit.dismiss() ``` -This will dismiss the entry animatedly using it's *exitAnimation* attribute and on comletion it'll remove the window as well. +This dismisses the entry animatedly using its *exitAnimation* attribute and on comletion, the window would be removed as well. + +#### Using a completion handler +Use a trailing closure as completion handler to the dismiss mechanism. + +```Swift +SwiftEntryKit.dismiss { + // Executed right after the entry has been dismissed +} +``` ### Is Currently Displaying Inquire whether an entry is currently displayed: diff --git a/Source/Infra/EKContentView.swift b/Source/Infra/EKContentView.swift index b5792463..6ad1f290 100644 --- a/Source/Infra/EKContentView.swift +++ b/Source/Infra/EKContentView.swift @@ -57,6 +57,9 @@ class EKContentView: UIView { private var keyboardState = KeyboardState.hidden + // Dismissal handler + var dismissHandler: SwiftEntryKit.DismissCompletionHandler? + // Data source private var attributes: EKAttributes { return contentView.attributes @@ -80,6 +83,9 @@ class EKContentView: UIView { self.contentView = contentView + // Execute willAppear lifecycle action if needed + contentView.attributes.lifecycleEvents.willAppear?() + // Setup attributes setupAttributes() @@ -314,6 +320,10 @@ class EKContentView: UIView { // Animate out func animateOut(pushOut: Bool) { + + // Execute willDisappear action if needed + contentView.attributes.lifecycleEvents.willDisappear?() + if attributes.positionConstraints.keyboardRelation.isBound { endEditing(true) } @@ -387,9 +397,18 @@ class EKContentView: UIView { self.transform = CGAffineTransform(scaleX: scale.end, y: scale.end) } } - + entryDelegate?.changeToActive(withAttributes: attributes) - + + // Execute didAppear action if needed + if animation.containsAnimation { + DispatchQueue.main.asyncAfter(deadline: .now() + animation.maxDuration) { + self.contentView.attributes.lifecycleEvents.didAppear?() + } + } else { + contentView.attributes.lifecycleEvents.didAppear?() + } + scheduleAnimateOut() } @@ -448,8 +467,17 @@ class EKContentView: UIView { guard superview != nil else { return } + + // Execute didDisappear action if needed + contentView.content.attributes.lifecycleEvents.didDisappear?() + + // Execute dismiss handler if needed + dismissHandler?() + + // Remove the view from its superview and in a case of a view controller, from its parent controller. super.removeFromSuperview() contentView.content.viewController?.removeFromParentViewController() + if EKAttributes.count > 0 { EKAttributes.count -= 1 } diff --git a/Source/Infra/EKRootViewController.swift b/Source/Infra/EKRootViewController.swift index 3a6a0e96..3c73cdf5 100644 --- a/Source/Infra/EKRootViewController.swift +++ b/Source/Infra/EKRootViewController.swift @@ -111,7 +111,8 @@ class EKRootViewController: UIViewController { } // Make last entry exit using exitAnimation - animatedly - func animateOutLastEntry() { + func animateOutLastEntry(completionHandler: SwiftEntryKit.DismissCompletionHandler? = nil) { + lastEntry?.dismissHandler = completionHandler lastEntry?.animateOut(pushOut: false) } diff --git a/Source/Infra/EKWindowProvider.swift b/Source/Infra/EKWindowProvider.swift index 13d1b563..81799e22 100644 --- a/Source/Infra/EKWindowProvider.swift +++ b/Source/Infra/EKWindowProvider.swift @@ -95,11 +95,11 @@ final class EKWindowProvider { } /** Dismiss the current entry */ - func dismiss() { + func dismiss(with completion: SwiftEntryKit.DismissCompletionHandler? = nil) { guard let rootVC = rootVC else { return } - rootVC.animateOutLastEntry() + rootVC.animateOutLastEntry(completionHandler: completion) } /** Layout the window view-hierarchy if needed */ diff --git a/Source/Model/EntryAttributes/EKAttributes+Completion.swift b/Source/Model/EntryAttributes/EKAttributes+LifecycleActions.swift similarity index 60% rename from Source/Model/EntryAttributes/EKAttributes+Completion.swift rename to Source/Model/EntryAttributes/EKAttributes+LifecycleActions.swift index c51857fd..e83f6612 100644 --- a/Source/Model/EntryAttributes/EKAttributes+Completion.swift +++ b/Source/Model/EntryAttributes/EKAttributes+LifecycleActions.swift @@ -1,36 +1,37 @@ // -// EKAttributes+Completion.swift +// EKAttributes+LifecycleActions.swift // SwiftEntryKit // // Created by Daniel Huri on 6/16/18. -// Copyright © 2018 CocoaPods. All rights reserved. +// Copyright (c) 2018 huri000@gmail.com. All rights reserved. // import Foundation extension EKAttributes { - public struct LifecycleActions { + /** Contains optionally injected events that take place during the entry lifecycle */ + public struct LifecycleEvents { - public typealias Action = () -> Void + public typealias Event = () -> Void /** Executed before the entry appears - before the animation starts. Might not get called in case another entry with a higher display priority is displayed. */ - public var willAppear: Action? + public var willAppear: Event? /** Executed after the animation ends. Might not get called in case another entry with a higher display priority is displayed. */ - public var didAppear: Action? + public var didAppear: Event? /** Executed before the entry disappears (Before the animation starts) */ - public var willDisappear: Action? + public var willDisappear: Event? /** Executed after the entry disappears (After the animation ends) */ - public var didDisappear: Action? + public var didDisappear: Event? - public init(willAppear: Action? = nil, didAppear: Action? = nil, willDisappear: Action? = nil, didDisappear: Action? = nil) { + public init(willAppear: Event? = nil, didAppear: Event? = nil, willDisappear: Event? = nil, didDisappear: Event? = nil) { self.willAppear = willAppear self.didAppear = didAppear self.willDisappear = willDisappear diff --git a/Source/Model/EntryAttributes/EKAttributes+PopBehavior.swift b/Source/Model/EntryAttributes/EKAttributes+PopBehavior.swift index e23080f8..c0e9dd4f 100644 --- a/Source/Model/EntryAttributes/EKAttributes+PopBehavior.swift +++ b/Source/Model/EntryAttributes/EKAttributes+PopBehavior.swift @@ -11,7 +11,7 @@ extension EKAttributes { /** Describes the entry behavior when a new entry shows (with equal or higher display-priority) */ public enum PopBehavior { - + /** The entry disappears promptly (Does not animates out) when a new one shows */ case overridden diff --git a/Source/Model/EntryAttributes/EKAttributes.swift b/Source/Model/EntryAttributes/EKAttributes.swift index 50ac5100..578b9f69 100644 --- a/Source/Model/EntryAttributes/EKAttributes.swift +++ b/Source/Model/EntryAttributes/EKAttributes.swift @@ -48,6 +48,9 @@ public struct EKAttributes { /** Generate haptic feedback once the entry is displayed */ public var hapticFeedbackType = NotificationHapticFeedback.none + /** Describes the actions that take place when the entry appears or is being dismissed */ + public var lifecycleEvents = LifecycleEvents() + // MARK: Theme & Style Attributes /** Describes the entry's background appearance while it shows */ @@ -78,7 +81,4 @@ public struct EKAttributes { /** Describes the previous entry behaviour when a new entry with higher display-priority shows */ public var popBehavior = PopBehavior.animated(animation: .translation) - - /** Describes the actions that take place when the entry appears or is being dismissed */ - public var lifecycleActions = LifecycleActions() } diff --git a/Source/SwiftEntryKit.swift b/Source/SwiftEntryKit.swift index b18e72f1..8a4e57c9 100644 --- a/Source/SwiftEntryKit.swift +++ b/Source/SwiftEntryKit.swift @@ -12,6 +12,9 @@ import Foundation */ public final class SwiftEntryKit { + /** Completion handler for the dismissal method */ + public typealias DismissCompletionHandler = () -> Void + /** Cannot be instantiated, customized, inherited. */ private init() {} @@ -65,10 +68,11 @@ public final class SwiftEntryKit { Dismisses the currently presented entry and removes the presented window instance after the exit animation is concluded. - A thread-safe method - Can be invokes from any thread. - A class method - Should be called on the class. + - parameter completion: A completion handler that is to be called right after the entry is dismissed (After the animation is concluded). */ - public class func dismiss() { + public class func dismiss(with completion: DismissCompletionHandler? = nil) { execute { - EKWindowProvider.shared.dismiss() + EKWindowProvider.shared.dismiss(with: completion) } } diff --git a/SwiftEntryKit.podspec b/SwiftEntryKit.podspec index 01a6c959..07020a81 100644 --- a/SwiftEntryKit.podspec +++ b/SwiftEntryKit.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.name = 'SwiftEntryKit' - s.version = '0.4.1' + s.version = '0.4.2' s.summary = 'A simple banner and pop-up displayer for iOS. Written in Swift.' s.platform = :ios s.ios.deployment_target = '9.0'