diff --git a/Modules/.swiftpm/xcode/xcshareddata/xcschemes/PointOfSale.xcscheme b/Modules/.swiftpm/xcode/xcshareddata/xcschemes/PointOfSale.xcscheme
new file mode 100644
index 00000000000..5f192aca776
--- /dev/null
+++ b/Modules/.swiftpm/xcode/xcshareddata/xcschemes/PointOfSale.xcscheme
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Modules/Package.resolved b/Modules/Package.resolved
index abd26ea2ec0..1ca9ce8fa94 100644
--- a/Modules/Package.resolved
+++ b/Modules/Package.resolved
@@ -1,5 +1,5 @@
{
- "originHash" : "045778a877f7cfead8114a762cb8d21b0b588c50e9bc72cbe8a5c1af7c0f316d",
+ "originHash" : "e329c60517f495559737ad5c4a61cb95f2113a3305cf852552014fd6c0fef5e1",
"pins" : [
{
"identity" : "alamofire",
diff --git a/Modules/Package.swift b/Modules/Package.swift
index 42a3c1d729e..9e977be8004 100644
--- a/Modules/Package.swift
+++ b/Modules/Package.swift
@@ -67,6 +67,10 @@ let package = Package(
name: "Yosemite",
targets: ["Yosemite"]
),
+ .library(
+ name: "PointOfSale",
+ targets: ["PointOfSale"]
+ ),
],
dependencies: [
.package(url: "https://github.com/Alamofire/Alamofire", from: "5.2.0"),
@@ -182,7 +186,8 @@ let package = Package(
dependencies: [
"WooFoundationCore",
.product(name: "Kingfisher", package: "Kingfisher")
- ]
+ ],
+ resources: [.process("Resources")]
),
.target(
name: "WooFoundationCore",
@@ -230,6 +235,18 @@ let package = Package(
.product(name: "WordPressEditor", package: "AztecEditor-iOS"),
]
),
+ .target(
+ name: "PointOfSale",
+ dependencies: [
+ "Experiments",
+ "WooFoundation",
+ "Yosemite",
+ .product(name: "CocoaLumberjackSwift", package: "CocoaLumberjack"),
+ .product(name: "Shimmer", package: "SwiftUI-Shimmer"),
+ .product(name: "Kingfisher", package: "Kingfisher"),
+ ],
+ resources: [.process("Resources")]
+ ),
.testTarget(
name: "ExperimentsTests",
dependencies: [
@@ -295,7 +312,17 @@ let package = Package(
.process("Resources"),
.process("../NetworkingTests/Responses")
]
- )
+ ),
+ .testTarget(
+ name: "PointOfSaleTests",
+ dependencies: [
+ .target(name: "PointOfSale"),
+ "Codegen",
+ "Fakes",
+ "TestKit",
+ "WooFoundation"
+ ]
+ ),
]
)
@@ -374,6 +401,7 @@ enum XcodeSupport {
"WordPressUI",
"WPMediaPicker",
"Yosemite",
+ "PointOfSale",
.product(name: "Alamofire", package: "Alamofire"),
.product(name: "Algorithms", package: "swift-algorithms"),
.product(name: "AutomatticAbout", package: "AutomatticAbout-swift"),
diff --git a/WooCommerce/Classes/POS/Analytics/POSCollectOrderPaymentAnalyticsTracking.swift b/Modules/Sources/PointOfSale/Analytics/POSCollectOrderPaymentAnalyticsTracking.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Analytics/POSCollectOrderPaymentAnalyticsTracking.swift
rename to Modules/Sources/PointOfSale/Analytics/POSCollectOrderPaymentAnalyticsTracking.swift
diff --git a/WooCommerce/Classes/POS/Analytics/POSItemFetchAnalytics.swift b/Modules/Sources/PointOfSale/Analytics/POSItemFetchAnalytics.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Analytics/POSItemFetchAnalytics.swift
rename to Modules/Sources/PointOfSale/Analytics/POSItemFetchAnalytics.swift
diff --git a/WooCommerce/Classes/POS/Analytics/POSOrderListFetchAnalytics.swift b/Modules/Sources/PointOfSale/Analytics/POSOrderListFetchAnalytics.swift
similarity index 60%
rename from WooCommerce/Classes/POS/Analytics/POSOrderListFetchAnalytics.swift
rename to Modules/Sources/PointOfSale/Analytics/POSOrderListFetchAnalytics.swift
index 289017fad4f..f0203cdcc15 100644
--- a/WooCommerce/Classes/POS/Analytics/POSOrderListFetchAnalytics.swift
+++ b/Modules/Sources/PointOfSale/Analytics/POSOrderListFetchAnalytics.swift
@@ -1,26 +1,27 @@
import Foundation
import Yosemite
+import struct WooFoundation.WooAnalyticsEvent
-struct POSOrderListFetchAnalytics: POSOrderListFetchAnalyticsTracking {
+public struct POSOrderListFetchAnalytics: POSOrderListFetchAnalyticsTracking {
private let analytics: POSAnalyticsProviding
- init(analytics: POSAnalyticsProviding) {
+ public init(analytics: POSAnalyticsProviding) {
self.analytics = analytics
}
- func trackOrdersFetchComplete(millisecondsSinceRequestSent: Int) {
+ public func trackOrdersFetchComplete(millisecondsSinceRequestSent: Int) {
analytics.track(event: WooAnalyticsEvent.PointOfSale.ordersListFetched(
millisecondsSinceRequestSent: millisecondsSinceRequestSent
))
}
- func trackOrdersSearchResultsFetchComplete(millisecondsSinceRequestSent: Int) {
+ public func trackOrdersSearchResultsFetchComplete(millisecondsSinceRequestSent: Int) {
analytics.track(event: WooAnalyticsEvent.PointOfSale.ordersListSearchResultsFetched(
millisecondsSinceRequestSent: millisecondsSinceRequestSent
))
}
- func trackOrdersNextPageLoaded(pageNumber: Int) {
+ public func trackOrdersNextPageLoaded(pageNumber: Int) {
analytics.track(event: WooAnalyticsEvent.PointOfSale.ordersListNextPageLoaded(
pageNumber: pageNumber
))
diff --git a/WooCommerce/Classes/POS/Analytics/WooAnalyticsEvent+PointOfSale.swift b/Modules/Sources/PointOfSale/Analytics/WooAnalyticsEvent+PointOfSale.swift
similarity index 96%
rename from WooCommerce/Classes/POS/Analytics/WooAnalyticsEvent+PointOfSale.swift
rename to Modules/Sources/PointOfSale/Analytics/WooAnalyticsEvent+PointOfSale.swift
index b1ecb702d70..0ccca35179b 100644
--- a/WooCommerce/Classes/POS/Analytics/WooAnalyticsEvent+PointOfSale.swift
+++ b/Modules/Sources/PointOfSale/Analytics/WooAnalyticsEvent+PointOfSale.swift
@@ -6,9 +6,10 @@ import struct Yosemite.POSSimpleProduct
import struct Yosemite.POSVariation
import enum WooFoundation.CountryCode
import enum Yosemite.PaymentMethod
+import struct WooFoundation.WooAnalyticsEvent
extension WooAnalyticsEvent {
- enum PointOfSale {
+ public enum PointOfSale {
/// Event property Key.
private enum Key {
static let paymentsOnboardingState = "onboarding_state"
@@ -207,11 +208,11 @@ extension WooAnalyticsEvent {
/// Tracks the time elapsed preparing reader for payment, after successful order creation
/// - Parameter waitingTime: Elapsed time from Order creation to card ready for payment
///
- static func cardReaderReadyForCardPayment(waitingTime: Double) -> WooAnalyticsEvent {
+ public static func cardReaderReadyForCardPayment(waitingTime: Double) -> WooAnalyticsEvent {
WooAnalyticsEvent(statName: .pointOfSaleReaderReadyForCardPayment, properties: [Key.waitingTime: "\(waitingTime)"])
}
- static func cardPresentCollectPaymentSuccess(forGatewayID: String?,
+ public static func cardPresentCollectPaymentSuccess(forGatewayID: String?,
countryCode: CountryCode,
paymentMethod: PaymentMethod,
cardReaderModel: String?,
@@ -224,7 +225,7 @@ extension WooAnalyticsEvent {
Key.cardReaderModel: readerModel(for: cardReaderModel),
Key.countryCode: countryCode.rawValue,
Key.gatewayID: safeGatewayID(for: forGatewayID),
- Key.paymentMethodType: paymentMethod.analyticsValue,
+ Key.paymentMethodType: analyticsValue(for: paymentMethod),
Key.millisecondsSinceCustomerInteractionStarted: "\(millisecondsSinceCustomerIteractionStarted)",
Key.millisecondsSinceOrderSyncSuccess: "\(millisecondsSinceOrderSyncSuccess)",
Key.millisecondsSinceReaderReadyToCollect: "\(millisecondsSinceReaderReadyToCollect)",
@@ -233,7 +234,18 @@ extension WooAnalyticsEvent {
])
}
- static func cashCollectPaymentSuccess(millisecondsSinceCustomerIteractionStarted: Double) -> WooAnalyticsEvent {
+ static func analyticsValue(for paymentMethod: PaymentMethod) -> String {
+ switch paymentMethod {
+ case .card, .cardPresent:
+ return "card"
+ case .interacPresent:
+ return "card_interac"
+ case .unknown:
+ return "unknown"
+ }
+ }
+
+ public static func cashCollectPaymentSuccess(millisecondsSinceCustomerIteractionStarted: Double) -> WooAnalyticsEvent {
WooAnalyticsEvent(statName: .pointOfSaleCashCollectPaymentSuccess, properties: [
Key.millisecondsSinceCustomerInteractionStarted: "\(millisecondsSinceCustomerIteractionStarted)",
])
diff --git a/WooCommerce/Classes/POS/Analytics/WooAnalyticsEvent+PointOfSaleIneligibleUI.swift b/Modules/Sources/PointOfSale/Analytics/WooAnalyticsEvent+PointOfSaleIneligibleUI.swift
similarity index 96%
rename from WooCommerce/Classes/POS/Analytics/WooAnalyticsEvent+PointOfSaleIneligibleUI.swift
rename to Modules/Sources/PointOfSale/Analytics/WooAnalyticsEvent+PointOfSaleIneligibleUI.swift
index 04fdef262b3..80483e5663f 100644
--- a/WooCommerce/Classes/POS/Analytics/WooAnalyticsEvent+PointOfSaleIneligibleUI.swift
+++ b/Modules/Sources/PointOfSale/Analytics/WooAnalyticsEvent+PointOfSaleIneligibleUI.swift
@@ -1,3 +1,5 @@
+import struct WooFoundation.WooAnalyticsEvent
+
extension WooAnalyticsEvent {
enum PointOfSaleIneligibleUI {
/// Event property key.
diff --git a/WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentCardReader.swift b/Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentCardReader.swift
similarity index 65%
rename from WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentCardReader.swift
rename to Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentCardReader.swift
index aeff2c882fb..8f8ed11050a 100644
--- a/WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentCardReader.swift
+++ b/Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentCardReader.swift
@@ -6,4 +6,9 @@ public struct CardPresentPaymentCardReader: Equatable {
/// The reader's battery level, if available.
/// This is an unformatted percentage as a float, e.g. 0.0-1.0
let batteryLevel: Float?
+
+ public init(name: String, batteryLevel: Float?) {
+ self.name = name
+ self.batteryLevel = batteryLevel
+ }
}
diff --git a/WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentEvent.swift b/Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentEvent.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentEvent.swift
rename to Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentEvent.swift
diff --git a/WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentEventDetails.swift b/Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentEventDetails.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentEventDetails.swift
rename to Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentEventDetails.swift
diff --git a/WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentFacade.swift b/Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentFacade.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentFacade.swift
rename to Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentFacade.swift
diff --git a/WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentOnboardingPresentationEvent.swift b/Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentOnboardingPresentationEvent.swift
similarity index 71%
rename from WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentOnboardingPresentationEvent.swift
rename to Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentOnboardingPresentationEvent.swift
index 3fb9d815809..d88d1bcae7f 100644
--- a/WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentOnboardingPresentationEvent.swift
+++ b/Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentOnboardingPresentationEvent.swift
@@ -1,6 +1,6 @@
import Foundation
-enum CardPresentPaymentOnboardingPresentationEvent {
+public enum CardPresentPaymentOnboardingPresentationEvent {
case showOnboarding(factory: CardPresentPaymentOnboardingViewContainer, onCancel: () -> Void)
case onboardingComplete
}
diff --git a/WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentPreviewService.swift b/Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentPreviewService.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentPreviewService.swift
rename to Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentPreviewService.swift
diff --git a/WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentReaderConnectionResult.swift b/Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentReaderConnectionResult.swift
similarity index 89%
rename from WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentReaderConnectionResult.swift
rename to Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentReaderConnectionResult.swift
index 875f1d7e242..b213947084c 100644
--- a/WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentReaderConnectionResult.swift
+++ b/Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentReaderConnectionResult.swift
@@ -8,7 +8,7 @@ public enum CardPresentPaymentReaderConnectionResult {
// This should be internal if/when we move the CardPresentPaymentService to Yosemite or another framework
import enum Yosemite.CardReaderDiscoveryMethod
extension CardReaderConnectionMethod {
- var discoveryMethod: CardReaderDiscoveryMethod {
+ public var discoveryMethod: CardReaderDiscoveryMethod {
switch self {
case .bluetooth:
return .bluetoothScan
diff --git a/WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentReaderConnectionStatus.swift b/Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentReaderConnectionStatus.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentReaderConnectionStatus.swift
rename to Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentReaderConnectionStatus.swift
diff --git a/WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentResult.swift b/Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentResult.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentResult.swift
rename to Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentResult.swift
diff --git a/WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentTransaction.swift b/Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentTransaction.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentTransaction.swift
rename to Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentTransaction.swift
diff --git a/WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentsModalButtonViewModel.swift b/Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentsModalButtonViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentsModalButtonViewModel.swift
rename to Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentsModalButtonViewModel.swift
diff --git a/WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentsRetryApproach.swift b/Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentsRetryApproach.swift
similarity index 98%
rename from WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentsRetryApproach.swift
rename to Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentsRetryApproach.swift
index 4305a00c770..7af09b6d628 100644
--- a/WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentsRetryApproach.swift
+++ b/Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentsRetryApproach.swift
@@ -7,7 +7,7 @@ public enum CardPresentPaymentRetryApproach {
case tryAgain(retryAction: () -> Void)
case tryAnotherPaymentMethod(retryAction: () -> Void)
- init(error: any Error, retryAction: @escaping () -> Void) {
+ public init(error: any Error, retryAction: @escaping () -> Void) {
guard let serviceError = error as? CardReaderServiceError else {
self = .tryAgain(retryAction: retryAction)
return
diff --git a/WooCommerce/Classes/POS/Card Present Payments/CardReaderConnectionMethod.swift b/Modules/Sources/PointOfSale/Card Present Payments/CardReaderConnectionMethod.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Card Present Payments/CardReaderConnectionMethod.swift
rename to Modules/Sources/PointOfSale/Card Present Payments/CardReaderConnectionMethod.swift
diff --git a/Modules/Sources/PointOfSale/Colors/Color+POSColorPalette.swift b/Modules/Sources/PointOfSale/Colors/Color+POSColorPalette.swift
new file mode 100644
index 00000000000..c34a514dd5e
--- /dev/null
+++ b/Modules/Sources/PointOfSale/Colors/Color+POSColorPalette.swift
@@ -0,0 +1,52 @@
+// periphery:ignore:all
+import SwiftUI
+
+extension Color {
+ // MARK: - Primary Colors
+ static var posPrimary: Color { Color("posPrimary", bundle: .module) }
+ static var posOnPrimary: Color { Color("posOnPrimary", bundle: .module) }
+ static var posPrimaryContainer: Color { Color("posPrimaryContainer", bundle: .module) }
+ static var posOnPrimaryContainer: Color { Color("posOnPrimaryContainer", bundle: .module) }
+
+ // MARK: - Secondary Container Colors
+ static var posSecondary: Color { Color("posSecondary", bundle: .module) }
+ static var posOnSecondary: Color { Color("posOnSecondary", bundle: .module) }
+ static var posSecondaryContainer: Color { Color("posSecondaryContainer", bundle: .module) }
+ static var posOnSecondaryContainer: Color { Color("posOnSecondaryContainer", bundle: .module) }
+
+ // MARK: - Disabled Container Colors
+ static var posDisabledContainer: Color { Color("posDisabledContainer", bundle: .module) }
+ static var posOnDisabledContainer: Color { Color("posOnDisabledContainer", bundle: .module) }
+
+ // MARK: - Surface Colors
+ static var posSurface: Color { Color("posSurface", bundle: .module) }
+ static var posOnSurface: Color { Color("posOnSurface", bundle: .module) }
+ static var posSurfaceDim: Color { Color("posSurfaceDim", bundle: .module) }
+ static var posSurfaceBright: Color { Color("posSurfaceBright", bundle: .module) }
+ static var posSurfaceContainerLowest: Color { Color("posSurfaceContainerLowest", bundle: .module) }
+ static var posSurfaceContainerLow: Color { Color("posSurfaceContainerLow", bundle: .module) }
+ static var posSurfaceContainerHighest: Color { Color("posSurfaceContainerHighest", bundle: .module) }
+
+ // MARK: - Surface Variant Colors
+ static var posOnSurfaceVariantLowest: Color { Color("posOnSurfaceVariantLowest", bundle: .module) }
+ static var posOnSurfaceVariantHighest: Color { Color("posOnSurfaceVariantHighest", bundle: .module) }
+
+ // MARK: - Inverse Surface Colors
+ static var posInverseSurface: Color { Color("posInverseSurface", bundle: .module) }
+ static var posOnInverseSurface: Color { Color("posOnInverseSurface", bundle: .module) }
+
+ // MARK: - Outline Colors
+ static var posOutline: Color { Color("posOutline", bundle: .module) }
+ static var posOutlineVariant: Color { Color("posOutlineVariant", bundle: .module) }
+
+ // MARK: - Status Colors
+ static var posError: Color { Color("posError", bundle: .module) }
+ static var posOnError: Color { Color("posOnError", bundle: .module) }
+ static var posSuccess: Color { Color("posSuccess", bundle: .module) }
+ static var posOnSuccess: Color { Color("posOnSuccess", bundle: .module) }
+ static var posAlert: Color { Color("posAlert", bundle: .module) }
+ static var posOnAlert: Color { Color("posOnAlert", bundle: .module) }
+
+ // MARK: - Other
+ static var posShadow: Color { Color("posShadow", bundle: .module) }
+}
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posAlert.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posAlert.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posAlert.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posAlert.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posDisabledContainer.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posDisabledContainer.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posDisabledContainer.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posDisabledContainer.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posError.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posError.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posError.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posError.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posInverseSurface.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posInverseSurface.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posInverseSurface.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posInverseSurface.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnAlert.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnAlert.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnAlert.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnAlert.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnDisabledContainer.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnDisabledContainer.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnDisabledContainer.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnDisabledContainer.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnError.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnError.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnError.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnError.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnInverseSurface.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnInverseSurface.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnInverseSurface.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnInverseSurface.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnPrimary.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnPrimary.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnPrimary.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnPrimary.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnPrimaryContainer.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnPrimaryContainer.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnPrimaryContainer.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnPrimaryContainer.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnSecondary.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnSecondary.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnSecondary.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnSecondary.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnSecondaryContainer.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnSecondaryContainer.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnSecondaryContainer.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnSecondaryContainer.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnSuccess.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnSuccess.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnSuccess.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnSuccess.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnSurface.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnSurface.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnSurface.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnSurface.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnSurfaceVariantHighest.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnSurfaceVariantHighest.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnSurfaceVariantHighest.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnSurfaceVariantHighest.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnSurfaceVariantLowest.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnSurfaceVariantLowest.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOnSurfaceVariantLowest.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOnSurfaceVariantLowest.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOutline.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOutline.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOutline.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOutline.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOutlineVariant.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOutlineVariant.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posOutlineVariant.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posOutlineVariant.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posPrimary.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posPrimary.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posPrimary.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posPrimary.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posPrimaryContainer.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posPrimaryContainer.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posPrimaryContainer.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posPrimaryContainer.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posSecondary.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posSecondary.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posSecondary.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posSecondary.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posSecondaryContainer.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posSecondaryContainer.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posSecondaryContainer.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posSecondaryContainer.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posShadow.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posShadow.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posShadow.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posShadow.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posSuccess.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posSuccess.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posSuccess.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posSuccess.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posSurface.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posSurface.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posSurface.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posSurface.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posSurfaceBright.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posSurfaceBright.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posSurfaceBright.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posSurfaceBright.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posSurfaceContainerHighest.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posSurfaceContainerHighest.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posSurfaceContainerHighest.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posSurfaceContainerHighest.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posSurfaceContainerLow.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posSurfaceContainerLow.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posSurfaceContainerLow.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posSurfaceContainerLow.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posSurfaceContainerLowest.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posSurfaceContainerLowest.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posSurfaceContainerLowest.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posSurfaceContainerLowest.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posSurfaceDim.colorset/Contents.json b/Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posSurfaceDim.colorset/Contents.json
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/POSColorPalette.xcassets/posSurfaceDim.colorset/Contents.json
rename to Modules/Sources/PointOfSale/Colors/POSColorPalette.xcassets/posSurfaceDim.colorset/Contents.json
diff --git a/WooCommerce/Classes/POS/Controllers/POSEntryPointController.swift b/Modules/Sources/PointOfSale/Controllers/POSEntryPointController.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Controllers/POSEntryPointController.swift
rename to Modules/Sources/PointOfSale/Controllers/POSEntryPointController.swift
diff --git a/WooCommerce/Classes/POS/Controllers/POSOrderListController.swift b/Modules/Sources/PointOfSale/Controllers/POSOrderListController.swift
similarity index 99%
rename from WooCommerce/Classes/POS/Controllers/POSOrderListController.swift
rename to Modules/Sources/PointOfSale/Controllers/POSOrderListController.swift
index 2bb483b2250..920daf4918e 100644
--- a/WooCommerce/Classes/POS/Controllers/POSOrderListController.swift
+++ b/Modules/Sources/PointOfSale/Controllers/POSOrderListController.swift
@@ -8,6 +8,7 @@ import struct Yosemite.POSOrder
import struct Yosemite.POSOrderItem
import struct Yosemite.POSOrderRefund
import class Yosemite.Store
+import class Yosemite.AsyncPaginationTracker
protocol POSOrderListControllerProtocol {
var ordersViewState: POSOrderListState { get }
diff --git a/WooCommerce/Classes/POS/Controllers/PointOfSaleCouponsController.swift b/Modules/Sources/PointOfSale/Controllers/PointOfSaleCouponsController.swift
similarity index 99%
rename from WooCommerce/Classes/POS/Controllers/PointOfSaleCouponsController.swift
rename to Modules/Sources/PointOfSale/Controllers/PointOfSaleCouponsController.swift
index 7e86cb4fc6b..388878c3427 100644
--- a/WooCommerce/Classes/POS/Controllers/PointOfSaleCouponsController.swift
+++ b/Modules/Sources/PointOfSale/Controllers/PointOfSaleCouponsController.swift
@@ -6,6 +6,7 @@ import protocol Yosemite.PointOfSaleCouponFetchStrategyFactoryProtocol
import protocol Yosemite.PointOfSaleCouponServiceProtocol
import struct Yosemite.PointOfSaleCouponFetchStrategyFactory
import protocol Yosemite.PointOfSaleCouponFetchStrategy
+import class Yosemite.AsyncPaginationTracker
protocol PointOfSaleCouponsControllerProtocol: PointOfSaleSearchingItemsControllerProtocol {
/// Enables coupons in store settings
diff --git a/WooCommerce/Classes/POS/Controllers/PointOfSaleItemsController.swift b/Modules/Sources/PointOfSale/Controllers/PointOfSaleItemsController.swift
similarity index 99%
rename from WooCommerce/Classes/POS/Controllers/PointOfSaleItemsController.swift
rename to Modules/Sources/PointOfSale/Controllers/PointOfSaleItemsController.swift
index 9abb678812d..6d621aa470d 100644
--- a/WooCommerce/Classes/POS/Controllers/PointOfSaleItemsController.swift
+++ b/Modules/Sources/PointOfSale/Controllers/PointOfSaleItemsController.swift
@@ -9,6 +9,7 @@ import enum Yosemite.PointOfSaleItemServiceError
import struct Yosemite.POSVariableParentProduct
import class Yosemite.Store
import enum Yosemite.POSItemType
+import class Yosemite.AsyncPaginationTracker
protocol PointOfSaleItemsControllerProtocol {
///
diff --git a/WooCommerce/Classes/POS/Controllers/PointOfSaleOrderController.swift b/Modules/Sources/PointOfSale/Controllers/PointOfSaleOrderController.swift
similarity index 89%
rename from WooCommerce/Classes/POS/Controllers/PointOfSaleOrderController.swift
rename to Modules/Sources/PointOfSale/Controllers/PointOfSaleOrderController.swift
index dab69558286..5b17b5f4a6e 100644
--- a/WooCommerce/Classes/POS/Controllers/PointOfSaleOrderController.swift
+++ b/Modules/Sources/PointOfSale/Controllers/PointOfSaleOrderController.swift
@@ -5,6 +5,8 @@ import class WooFoundation.VersionHelpers
import protocol Yosemite.POSOrderServiceProtocol
import protocol Yosemite.POSReceiptServiceProtocol
import protocol Yosemite.PluginsServiceProtocol
+import protocol Yosemite.PaymentCaptureCelebrationProtocol
+import class Yosemite.PaymentCaptureCelebration
import struct Yosemite.Order
import struct Yosemite.POSCart
import struct Yosemite.POSCartItem
@@ -20,6 +22,8 @@ import enum WooFoundation.CurrencyCode
import protocol WooFoundation.Analytics
import enum Alamofire.AFError
import class Yosemite.OrderTotalsCalculator
+import struct WooFoundation.WooAnalyticsEvent
+import protocol WooFoundationCore.WooAnalyticsEventPropertyType
enum SyncOrderState {
case newOrder
@@ -280,3 +284,34 @@ private extension POSCart {
self.init(items: items, coupons: coupons)
}
}
+
+private extension WooAnalyticsEvent {
+ struct Orders {
+ // MARK: - Order Creation Events
+
+ /// Matches errors on Android for consistency
+ /// Only coupon tracking is relevant for now
+ enum OrderCreationErrorType: String {
+ case invalidCoupon = "INVALID_COUPON"
+ }
+
+ static func orderCreationFailed(
+ usesGiftCard: Bool,
+ errorContext: String,
+ errorDescription: String,
+ errorType: OrderCreationErrorType? = nil
+ ) -> WooAnalyticsEvent {
+ var properties: [String: WooAnalyticsEventPropertyType] = [
+ "use_gift_card": usesGiftCard,
+ "error_context": errorContext,
+ "error_description": errorDescription
+ ]
+
+ if let errorType {
+ properties["error_type"] = errorType.rawValue
+ }
+
+ return WooAnalyticsEvent(statName: .orderCreationFailed, properties: properties)
+ }
+ }
+}
diff --git a/WooCommerce/Classes/POS/Extensions/Error+Connectivity.swift b/Modules/Sources/PointOfSale/Extensions/Error+Connectivity.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Extensions/Error+Connectivity.swift
rename to Modules/Sources/PointOfSale/Extensions/Error+Connectivity.swift
diff --git a/WooCommerce/Classes/POS/Models/Cart+BarcodeScanError.swift b/Modules/Sources/PointOfSale/Models/Cart+BarcodeScanError.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Models/Cart+BarcodeScanError.swift
rename to Modules/Sources/PointOfSale/Models/Cart+BarcodeScanError.swift
diff --git a/WooCommerce/Classes/POS/Models/Cart.swift b/Modules/Sources/PointOfSale/Models/Cart.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Models/Cart.swift
rename to Modules/Sources/PointOfSale/Models/Cart.swift
diff --git a/WooCommerce/Classes/POS/Models/ItemListBaseItem.swift b/Modules/Sources/PointOfSale/Models/ItemListBaseItem.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Models/ItemListBaseItem.swift
rename to Modules/Sources/PointOfSale/Models/ItemListBaseItem.swift
diff --git a/WooCommerce/Classes/POS/Models/ItemListState.swift b/Modules/Sources/PointOfSale/Models/ItemListState.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Models/ItemListState.swift
rename to Modules/Sources/PointOfSale/Models/ItemListState.swift
diff --git a/WooCommerce/Classes/POS/Models/ItemListType.swift b/Modules/Sources/PointOfSale/Models/ItemListType.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Models/ItemListType.swift
rename to Modules/Sources/PointOfSale/Models/ItemListType.swift
diff --git a/WooCommerce/Classes/POS/Models/ItemsContainerState.swift b/Modules/Sources/PointOfSale/Models/ItemsContainerState.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Models/ItemsContainerState.swift
rename to Modules/Sources/PointOfSale/Models/ItemsContainerState.swift
diff --git a/WooCommerce/Classes/POS/Models/ItemsStackState.swift b/Modules/Sources/PointOfSale/Models/ItemsStackState.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Models/ItemsStackState.swift
rename to Modules/Sources/PointOfSale/Models/ItemsStackState.swift
diff --git a/WooCommerce/Classes/POS/Models/ItemsViewState.swift b/Modules/Sources/PointOfSale/Models/ItemsViewState.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Models/ItemsViewState.swift
rename to Modules/Sources/PointOfSale/Models/ItemsViewState.swift
diff --git a/WooCommerce/Classes/POS/Models/POSIneligibleReason.swift b/Modules/Sources/PointOfSale/Models/POSIneligibleReason.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Models/POSIneligibleReason.swift
rename to Modules/Sources/PointOfSale/Models/POSIneligibleReason.swift
diff --git a/WooCommerce/Classes/POS/Models/POSOrderListModel.swift b/Modules/Sources/PointOfSale/Models/POSOrderListModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Models/POSOrderListModel.swift
rename to Modules/Sources/PointOfSale/Models/POSOrderListModel.swift
diff --git a/WooCommerce/Classes/POS/Models/POSOrdersViewState.swift b/Modules/Sources/PointOfSale/Models/POSOrdersViewState.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Models/POSOrdersViewState.swift
rename to Modules/Sources/PointOfSale/Models/POSOrdersViewState.swift
diff --git a/WooCommerce/Classes/POS/Models/PointOfSaleAggregateModel.swift b/Modules/Sources/PointOfSale/Models/PointOfSaleAggregateModel.swift
similarity index 99%
rename from WooCommerce/Classes/POS/Models/PointOfSaleAggregateModel.swift
rename to Modules/Sources/PointOfSale/Models/PointOfSaleAggregateModel.swift
index 32773af7c48..85f96bd19fc 100644
--- a/WooCommerce/Classes/POS/Models/PointOfSaleAggregateModel.swift
+++ b/Modules/Sources/PointOfSale/Models/PointOfSaleAggregateModel.swift
@@ -1,3 +1,4 @@
+import CocoaLumberjackSwift
import Foundation
import Combine
import Observation
diff --git a/WooCommerce/Classes/POS/Models/PointOfSaleErrorState.swift b/Modules/Sources/PointOfSale/Models/PointOfSaleErrorState.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Models/PointOfSaleErrorState.swift
rename to Modules/Sources/PointOfSale/Models/PointOfSaleErrorState.swift
diff --git a/WooCommerce/Classes/POS/Models/PointOfSaleOrderStage.swift b/Modules/Sources/PointOfSale/Models/PointOfSaleOrderStage.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Models/PointOfSaleOrderStage.swift
rename to Modules/Sources/PointOfSale/Models/PointOfSaleOrderStage.swift
diff --git a/WooCommerce/Classes/POS/Models/PointOfSaleOrderState.swift b/Modules/Sources/PointOfSale/Models/PointOfSaleOrderState.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Models/PointOfSaleOrderState.swift
rename to Modules/Sources/PointOfSale/Models/PointOfSaleOrderState.swift
diff --git a/WooCommerce/Classes/POS/Models/PointOfSaleOrderTotals.swift b/Modules/Sources/PointOfSale/Models/PointOfSaleOrderTotals.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Models/PointOfSaleOrderTotals.swift
rename to Modules/Sources/PointOfSale/Models/PointOfSaleOrderTotals.swift
diff --git a/WooCommerce/Classes/POS/Models/PointOfSalePaymentMethod.swift b/Modules/Sources/PointOfSale/Models/PointOfSalePaymentMethod.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Models/PointOfSalePaymentMethod.swift
rename to Modules/Sources/PointOfSale/Models/PointOfSalePaymentMethod.swift
diff --git a/WooCommerce/Classes/POS/Models/PointOfSalePaymentState.swift b/Modules/Sources/PointOfSale/Models/PointOfSalePaymentState.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Models/PointOfSalePaymentState.swift
rename to Modules/Sources/PointOfSale/Models/PointOfSalePaymentState.swift
diff --git a/WooCommerce/Classes/POS/Models/PointOfSaleSettingsController.swift b/Modules/Sources/PointOfSale/Models/PointOfSaleSettingsController.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Models/PointOfSaleSettingsController.swift
rename to Modules/Sources/PointOfSale/Models/PointOfSaleSettingsController.swift
diff --git a/WooCommerce/Classes/POS/Models/PointOfSaleViewStateCoordinator.swift b/Modules/Sources/PointOfSale/Models/PointOfSaleViewStateCoordinator.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Models/PointOfSaleViewStateCoordinator.swift
rename to Modules/Sources/PointOfSale/Models/PointOfSaleViewStateCoordinator.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerButtonCustomization.swift b/Modules/Sources/PointOfSale/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerButtonCustomization.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerButtonCustomization.swift
rename to Modules/Sources/PointOfSale/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerButtonCustomization.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetup.swift b/Modules/Sources/PointOfSale/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetup.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetup.swift
rename to Modules/Sources/PointOfSale/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetup.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupFlow.swift b/Modules/Sources/PointOfSale/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupFlow.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupFlow.swift
rename to Modules/Sources/PointOfSale/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupFlow.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupFlowManager.swift b/Modules/Sources/PointOfSale/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupFlowManager.swift
similarity index 96%
rename from WooCommerce/Classes/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupFlowManager.swift
rename to Modules/Sources/PointOfSale/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupFlowManager.swift
index efcae663adf..65ec807eb1d 100644
--- a/WooCommerce/Classes/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupFlowManager.swift
+++ b/Modules/Sources/PointOfSale/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupFlowManager.swift
@@ -93,7 +93,7 @@ class PointOfSaleBarcodeScannerSetupFlowManager {
}
private func handleKeyboardConnected() {
- guard case .setupFlow(let scannerType) = currentState, let step = getCurrentSetupStepValue() else { return }
+ guard case .setupFlow(let scannerType) = currentState else { return }
analytics.track(event: WooAnalyticsEvent.PointOfSale.barcodeScannerSetupScannerConnected(scanner: scannerType))
}
}
diff --git a/WooCommerce/Classes/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupModels.swift b/Modules/Sources/PointOfSale/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupModels.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupModels.swift
rename to Modules/Sources/PointOfSale/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupModels.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupScanTester.swift b/Modules/Sources/PointOfSale/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupScanTester.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupScanTester.swift
rename to Modules/Sources/PointOfSale/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupScanTester.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupStepViews.swift b/Modules/Sources/PointOfSale/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupStepViews.swift
similarity index 98%
rename from WooCommerce/Classes/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupStepViews.swift
rename to Modules/Sources/PointOfSale/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupStepViews.swift
index 70f76eae3c8..2b2f3167e40 100644
--- a/WooCommerce/Classes/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupStepViews.swift
+++ b/Modules/Sources/PointOfSale/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupStepViews.swift
@@ -1,4 +1,5 @@
import SwiftUI
+import struct WooFoundation.WooAnalyticsEvent
struct PointOfSaleBarcodeScannerBarcodeView: View {
let title: String
@@ -19,7 +20,7 @@ struct PointOfSaleBarcodeScannerBarcodeView: View {
.multilineTextAlignment(.center)
}
- Image(barcode.imageName)
+ Image(barcode.imageName, bundle: .module)
.resizable()
.aspectRatio(contentMode: .fit)
.frame(maxHeight: Constants.maxBarcodeSize)
@@ -51,7 +52,7 @@ struct PointOfSaleBarcodeScannerPairingView: View {
var body: some View {
VStack(spacing: POSSpacing.xLarge) {
- Image(decorative: PointOfSaleAssets.gears.imageName)
+ PointOfSaleAssets.gears.decorativeImage
.resizable()
.frame(width: Constants.gearIconSize, height: Constants.gearIconSize)
@@ -187,7 +188,7 @@ struct PointOfSaleBarcodeScannerSetupCompleteView: View {
Circle()
.frame(width: 88, height: 88)
.foregroundColor(.posSuccess)
- Image(PointOfSaleAssets.successCheck.imageName)
+ PointOfSaleAssets.successCheck.image
.renderingMode(.template)
.resizable()
.frame(width: 36, height: 36)
diff --git a/WooCommerce/Classes/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupViews.swift b/Modules/Sources/PointOfSale/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupViews.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupViews.swift
rename to Modules/Sources/PointOfSale/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupViews.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Barcode Scanner Setup/PointOfSaleFlowButtonsView.swift b/Modules/Sources/PointOfSale/Presentation/Barcode Scanner Setup/PointOfSaleFlowButtonsView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Barcode Scanner Setup/PointOfSaleFlowButtonsView.swift
rename to Modules/Sources/PointOfSale/Presentation/Barcode Scanner Setup/PointOfSaleFlowButtonsView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Barcode Scanning/BarcodeAnalyticsTracker.swift b/Modules/Sources/PointOfSale/Presentation/Barcode Scanning/BarcodeAnalyticsTracker.swift
similarity index 97%
rename from WooCommerce/Classes/POS/Presentation/Barcode Scanning/BarcodeAnalyticsTracker.swift
rename to Modules/Sources/PointOfSale/Presentation/Barcode Scanning/BarcodeAnalyticsTracker.swift
index 29f7e30decd..7f6948aa730 100644
--- a/WooCommerce/Classes/POS/Presentation/Barcode Scanning/BarcodeAnalyticsTracker.swift
+++ b/Modules/Sources/PointOfSale/Presentation/Barcode Scanning/BarcodeAnalyticsTracker.swift
@@ -1,5 +1,6 @@
import Foundation
import UIKit
+import struct WooFoundation.WooAnalyticsEvent
// MARK: - VoiceOver State Provider
diff --git a/WooCommerce/Classes/POS/Presentation/Barcode Scanning/BarcodeScannerContainer.swift b/Modules/Sources/PointOfSale/Presentation/Barcode Scanning/BarcodeScannerContainer.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Barcode Scanning/BarcodeScannerContainer.swift
rename to Modules/Sources/PointOfSale/Presentation/Barcode Scanning/BarcodeScannerContainer.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Barcode Scanning/BarcodeScanningModifier.swift b/Modules/Sources/PointOfSale/Presentation/Barcode Scanning/BarcodeScanningModifier.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Barcode Scanning/BarcodeScanningModifier.swift
rename to Modules/Sources/PointOfSale/Presentation/Barcode Scanning/BarcodeScanningModifier.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Barcode Scanning/GameControllerBarcodeObserver.swift b/Modules/Sources/PointOfSale/Presentation/Barcode Scanning/GameControllerBarcodeObserver.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Barcode Scanning/GameControllerBarcodeObserver.swift
rename to Modules/Sources/PointOfSale/Presentation/Barcode Scanning/GameControllerBarcodeObserver.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Barcode Scanning/GameControllerBarcodeParser.swift b/Modules/Sources/PointOfSale/Presentation/Barcode Scanning/GameControllerBarcodeParser.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Barcode Scanning/GameControllerBarcodeParser.swift
rename to Modules/Sources/PointOfSale/Presentation/Barcode Scanning/GameControllerBarcodeParser.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Barcode Scanning/HIDBarcodeParserTypes.swift b/Modules/Sources/PointOfSale/Presentation/Barcode Scanning/HIDBarcodeParserTypes.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Barcode Scanning/HIDBarcodeParserTypes.swift
rename to Modules/Sources/PointOfSale/Presentation/Barcode Scanning/HIDBarcodeParserTypes.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Barcode Scanning/TimeProvider.swift b/Modules/Sources/PointOfSale/Presentation/Barcode Scanning/TimeProvider.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Barcode Scanning/TimeProvider.swift
rename to Modules/Sources/PointOfSale/Presentation/Barcode Scanning/TimeProvider.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Barcode Scanning/UIKitBarcodeObserver.swift b/Modules/Sources/PointOfSale/Presentation/Barcode Scanning/UIKitBarcodeObserver.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Barcode Scanning/UIKitBarcodeObserver.swift
rename to Modules/Sources/PointOfSale/Presentation/Barcode Scanning/UIKitBarcodeObserver.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentAlertType.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentAlertType.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentAlertType.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentAlertType.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentBluetoothRequiredAlertViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentBluetoothRequiredAlertViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentBluetoothRequiredAlertViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentBluetoothRequiredAlertViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedAlertViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedAlertViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedAlertViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedAlertViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedChargeReaderAlertViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedChargeReaderAlertViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedChargeReaderAlertViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedChargeReaderAlertViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedLocationRequiredAlertViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedLocationRequiredAlertViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedLocationRequiredAlertViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedLocationRequiredAlertViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedNonRetryableAlertViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedNonRetryableAlertViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedNonRetryableAlertViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedNonRetryableAlertViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressAlertViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressAlertViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressAlertViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressAlertViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdatePostalCodeAlertViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdatePostalCodeAlertViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdatePostalCodeAlertViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdatePostalCodeAlertViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingLocationPreAlertViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingLocationPreAlertViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingLocationPreAlertViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingLocationPreAlertViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingToReaderAlertViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingToReaderAlertViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingToReaderAlertViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingToReaderAlertViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectionSuccessAlertViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectionSuccessAlertViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectionSuccessAlertViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectionSuccessAlertViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentFoundMultipleReadersAlertViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentFoundMultipleReadersAlertViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentFoundMultipleReadersAlertViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentFoundMultipleReadersAlertViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentFoundReaderAlertViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentFoundReaderAlertViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentFoundReaderAlertViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentFoundReaderAlertViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressAlertViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressAlertViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressAlertViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressAlertViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateCompletionAlertViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateCompletionAlertViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateCompletionAlertViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateCompletionAlertViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedAlertViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedAlertViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedAlertViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedAlertViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedLowBatteryAlertViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedLowBatteryAlertViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedLowBatteryAlertViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedLowBatteryAlertViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedNonRetryableAlertViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedNonRetryableAlertViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedNonRetryableAlertViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedNonRetryableAlertViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateProgressView.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateProgressView.swift
similarity index 90%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateProgressView.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateProgressView.swift
index 11a9c5839e7..d0e840e35e1 100644
--- a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateProgressView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateProgressView.swift
@@ -8,11 +8,11 @@ struct PointOfSaleCardPresentPaymentReaderUpdateProgressView: View {
var body: some View {
ZStack {
Circle()
- .fill(Color(.posSecondary))
+ .fill(Color.posSecondary)
.frame(width: Constants.size, height: Constants.size)
Circle()
- .fill(Color(.posPrimary))
+ .fill(Color.posPrimary)
.frame(width: Constants.size - Constants.borderInset, height: Constants.size - Constants.borderInset)
.clipShape(
Rectangle()
@@ -24,7 +24,7 @@ struct PointOfSaleCardPresentPaymentReaderUpdateProgressView: View {
isComplete ? SharedImageAsset.cardReaderUpdateProgressCheckmark.decorativeImage : SharedImageAsset.cardReaderUpdateProgressArrow.decorativeImage
)
.renderingMode(.template)
- .foregroundColor(Color(.posOnPrimary))
+ .foregroundColor(Color.posOnPrimary)
}
.frame(width: Constants.size, height: Constants.size)
}
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressAlertViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressAlertViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressAlertViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressAlertViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentScanningFailedAlertViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentScanningFailedAlertViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentScanningFailedAlertViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentScanningFailedAlertViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentScanningForReadersAlertViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentScanningForReadersAlertViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentScanningForReadersAlertViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentScanningForReadersAlertViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/PointOfSaleCardPresentPaymentEventPresentationStyle.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/PointOfSaleCardPresentPaymentEventPresentationStyle.swift
similarity index 99%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/PointOfSaleCardPresentPaymentEventPresentationStyle.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/PointOfSaleCardPresentPaymentEventPresentationStyle.swift
index c6cbc5825e8..09cf704138b 100644
--- a/WooCommerce/Classes/POS/Presentation/Card Present Payments/PointOfSaleCardPresentPaymentEventPresentationStyle.swift
+++ b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/PointOfSaleCardPresentPaymentEventPresentationStyle.swift
@@ -1,4 +1,6 @@
import Foundation
+import enum Yosemite.CollectOrderPaymentUseCaseError
+import enum Yosemite.CollectOrderPaymentUseCaseNotValidAmountError
enum PointOfSaleCardPresentPaymentEventPresentationStyle {
case message(PointOfSaleCardPresentPaymentMessageType)
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentCancelledOnReaderMessageViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentCancelledOnReaderMessageViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentCancelledOnReaderMessageViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentCancelledOnReaderMessageViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentCaptureErrorMessageViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentCaptureErrorMessageViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentCaptureErrorMessageViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentCaptureErrorMessageViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentCardInsertedMessageViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentCardInsertedMessageViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentCardInsertedMessageViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentCardInsertedMessageViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentDisconnectedMessageViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentDisconnectedMessageViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentDisconnectedMessageViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentDisconnectedMessageViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentDisplayReaderMessageMessageViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentDisplayReaderMessageMessageViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentDisplayReaderMessageMessageViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentDisplayReaderMessageMessageViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentErrorMessageViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentErrorMessageViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentErrorMessageViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentErrorMessageViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentIntentCreationErrorMessageViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentIntentCreationErrorMessageViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentIntentCreationErrorMessageViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentIntentCreationErrorMessageViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentMessageType.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentMessageType.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentMessageType.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentMessageType.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentNonRetryableErrorMessageViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentNonRetryableErrorMessageViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentNonRetryableErrorMessageViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentNonRetryableErrorMessageViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentPreparingForPaymentMessageViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentPreparingForPaymentMessageViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentPreparingForPaymentMessageViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentPreparingForPaymentMessageViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentProcessingMessageViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentProcessingMessageViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentProcessingMessageViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentProcessingMessageViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentTapSwipeInsertCardMessageViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentTapSwipeInsertCardMessageViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentTapSwipeInsertCardMessageViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentTapSwipeInsertCardMessageViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentValidatingOrderErrorMessageViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentValidatingOrderErrorMessageViewModel.swift
similarity index 97%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentValidatingOrderErrorMessageViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentValidatingOrderErrorMessageViewModel.swift
index 7fdef4c6634..2e7a339e310 100644
--- a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentValidatingOrderErrorMessageViewModel.swift
+++ b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentValidatingOrderErrorMessageViewModel.swift
@@ -1,5 +1,6 @@
import Foundation
import enum Networking.DotcomError
+import enum Yosemite.CollectOrderPaymentUseCaseNotValidAmountError
struct PointOfSaleCardPresentPaymentValidatingOrderErrorMessageViewModel: Equatable {
let title: String
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentValidatingOrderMessageViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentValidatingOrderMessageViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentValidatingOrderMessageViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSaleCardPresentPaymentValidatingOrderMessageViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSalePaymentSuccessViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSalePaymentSuccessViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Card Present Payments/Reader Messages/PointOfSalePaymentSuccessViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Card Present Payments/Reader Messages/PointOfSalePaymentSuccessViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/CardReaderConnectionStatusView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/CardReaderConnectionStatusView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/CardReaderConnectionStatusView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/CardReaderConnectionStatusView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentBluetoothRequiredAlertView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentBluetoothRequiredAlertView.swift
similarity index 97%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentBluetoothRequiredAlertView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentBluetoothRequiredAlertView.swift
index cd349b50e0d..a132e6b436c 100644
--- a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentBluetoothRequiredAlertView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentBluetoothRequiredAlertView.swift
@@ -13,7 +13,7 @@ struct PointOfSaleCardPresentPaymentBluetoothRequiredAlertView: View {
var body: some View {
VStack(spacing: PointOfSaleReaderConnectionModalLayout.contentButtonSpacing) {
VStack(spacing: PointOfSaleReaderConnectionModalLayout.imageTextSpacing) {
- Image(decorative: viewModel.imageName)
+ Image(decorative: viewModel.imageName, bundle: .module)
.matchedGeometryEffect(id: animation.iconTransitionId, in: animation.namespace, properties: .position)
VStack(spacing: PointOfSaleReaderConnectionModalLayout.textSpacing) {
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedChargeReaderView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedChargeReaderView.swift
similarity index 97%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedChargeReaderView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedChargeReaderView.swift
index f2dc279cff1..e5ad2317cba 100644
--- a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedChargeReaderView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedChargeReaderView.swift
@@ -7,7 +7,7 @@ struct PointOfSaleCardPresentPaymentConnectingFailedChargeReaderView: View {
var body: some View {
VStack(spacing: PointOfSaleReaderConnectionModalLayout.contentButtonSpacing) {
VStack(spacing: PointOfSaleReaderConnectionModalLayout.imageTextSpacing) {
- Image(decorative: viewModel.imageName)
+ Image(decorative: viewModel.imageName, bundle: .module)
.matchedGeometryEffect(id: animation.iconTransitionId, in: animation.namespace, properties: .position)
VStack(spacing: PointOfSaleReaderConnectionModalLayout.textSpacing) {
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedLocationRequiredAlertView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedLocationRequiredAlertView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedLocationRequiredAlertView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedLocationRequiredAlertView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedNonRetryableView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedNonRetryableView.swift
similarity index 96%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedNonRetryableView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedNonRetryableView.swift
index db09549066f..81a9b75ea49 100644
--- a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedNonRetryableView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedNonRetryableView.swift
@@ -6,7 +6,7 @@ struct PointOfSaleCardPresentPaymentConnectingFailedNonRetryableView: View {
var body: some View {
VStack(spacing: PointOfSaleReaderConnectionModalLayout.imageTextSpacing) {
- Image(decorative: viewModel.imageName)
+ Image(decorative: viewModel.imageName, bundle: .module)
.matchedGeometryEffect(id: animation.iconTransitionId, in: animation.namespace, properties: .position)
VStack(spacing: PointOfSaleReaderConnectionModalLayout.textSpacing) {
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressView.swift
similarity index 87%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressView.swift
index 5413cf3897b..a7b5da2aec9 100644
--- a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressView.swift
@@ -3,11 +3,12 @@ import SwiftUI
struct PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressView: View {
@StateObject var viewModel: PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressAlertViewModel
let animation: POSCardPresentPaymentAlertAnimation
+ @Environment(\.posExternalViews) private var externalViews
var body: some View {
VStack(spacing: PointOfSaleReaderConnectionModalLayout.contentButtonSpacing) {
VStack(spacing: PointOfSaleReaderConnectionModalLayout.imageTextSpacing) {
- Image(decorative: viewModel.imageName)
+ Image(decorative: viewModel.imageName, bundle: .module)
.matchedGeometryEffect(id: animation.iconTransitionId, in: animation.namespace, properties: .position)
Text(viewModel.title)
@@ -29,8 +30,8 @@ struct PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressView: View {
.multilineTextAlignment(.center)
.accessibilityElement(children: .contain)
.posSheet(isPresented: $viewModel.shouldShowSettingsWebView) {
- WCSettingsWebView(adminUrl: viewModel.settingsAdminUrl,
- completion: viewModel.settingsWebViewWasDismissed)
+ externalViews.createWCWebView(adminUrl: viewModel.settingsAdminUrl,
+ completion: viewModel.settingsWebViewWasDismissed)
}
}
}
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdatePostalCodeView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdatePostalCodeView.swift
similarity index 97%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdatePostalCodeView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdatePostalCodeView.swift
index 65d9643ec8e..cfd1a909130 100644
--- a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdatePostalCodeView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdatePostalCodeView.swift
@@ -7,7 +7,7 @@ struct PointOfSaleCardPresentPaymentConnectingFailedUpdatePostalCodeView: View {
var body: some View {
VStack(spacing: PointOfSaleReaderConnectionModalLayout.contentButtonSpacing) {
VStack(spacing: PointOfSaleReaderConnectionModalLayout.imageTextSpacing) {
- Image(decorative: viewModel.imageName)
+ Image(decorative: viewModel.imageName, bundle: .module)
.matchedGeometryEffect(id: animation.iconTransitionId, in: animation.namespace, properties: .position)
VStack(spacing: PointOfSaleReaderConnectionModalLayout.textSpacing) {
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedView.swift
similarity index 97%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedView.swift
index 3f3cdbbbbbd..351ce4f026c 100644
--- a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedView.swift
@@ -13,7 +13,7 @@ struct PointOfSaleCardPresentPaymentConnectingFailedView: View {
var body: some View {
VStack(spacing: PointOfSaleReaderConnectionModalLayout.contentButtonSpacing) {
VStack(spacing: PointOfSaleReaderConnectionModalLayout.imageTextSpacing) {
- Image(decorative: viewModel.imageName)
+ Image(decorative: viewModel.imageName, bundle: .module)
.matchedGeometryEffect(id: animation.iconTransitionId, in: animation.namespace, properties: .position)
VStack(spacing: PointOfSaleReaderConnectionModalLayout.textSpacing) {
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingLocationPreAlertView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingLocationPreAlertView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingLocationPreAlertView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingLocationPreAlertView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingToReaderView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingToReaderView.swift
similarity index 96%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingToReaderView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingToReaderView.swift
index 8ed910120a8..43c87937520 100644
--- a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingToReaderView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectingToReaderView.swift
@@ -12,7 +12,7 @@ struct PointOfSaleCardPresentPaymentConnectingToReaderView: View {
var body: some View {
VStack(spacing: PointOfSaleReaderConnectionModalLayout.imageTextSpacing) {
- Image(decorative: viewModel.imageName)
+ Image(decorative: viewModel.imageName, bundle: .module)
.matchedGeometryEffect(id: animation.iconTransitionId, in: animation.namespace, properties: .position)
VStack(spacing: PointOfSaleReaderConnectionModalLayout.textSpacing) {
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectionSuccessAlertView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectionSuccessAlertView.swift
similarity index 95%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectionSuccessAlertView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectionSuccessAlertView.swift
index 7a5d5c1c2a2..17bae01379f 100644
--- a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectionSuccessAlertView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentConnectionSuccessAlertView.swift
@@ -12,7 +12,7 @@ struct PointOfSaleCardPresentPaymentConnectionSuccessAlertView: View {
var body: some View {
VStack(spacing: PointOfSaleReaderConnectionModalLayout.imageTextSpacing) {
- Image(decorative: viewModel.imageName)
+ Image(decorative: viewModel.imageName, bundle: .module)
.matchedGeometryEffect(id: animation.iconTransitionId, in: animation.namespace, properties: .position)
Text(viewModel.title)
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentFoundMultipleReadersView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentFoundMultipleReadersView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentFoundMultipleReadersView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentFoundMultipleReadersView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentFoundReaderView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentFoundReaderView.swift
similarity index 97%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentFoundReaderView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentFoundReaderView.swift
index a416ac34c73..bc8eef7b71d 100644
--- a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentFoundReaderView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentFoundReaderView.swift
@@ -7,7 +7,7 @@ struct PointOfSaleCardPresentPaymentFoundReaderView: View {
var body: some View {
VStack(spacing: PointOfSaleReaderConnectionModalLayout.contentButtonSpacing) {
VStack(spacing: PointOfSaleReaderConnectionModalLayout.imageTextSpacing) {
- Image(decorative: viewModel.imageName)
+ Image(decorative: viewModel.imageName, bundle: .module)
.matchedGeometryEffect(id: animation.iconTransitionId, in: animation.namespace, properties: .position)
VStack(spacing: PointOfSaleReaderConnectionModalLayout.textSpacing) {
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateCompletionView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateCompletionView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateCompletionView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateCompletionView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedLowBatteryView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedLowBatteryView.swift
similarity index 97%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedLowBatteryView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedLowBatteryView.swift
index 51957ba690f..bd5c71b828c 100644
--- a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedLowBatteryView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedLowBatteryView.swift
@@ -14,7 +14,7 @@ struct PointOfSaleCardPresentPaymentReaderUpdateFailedLowBatteryView: View {
VStack(spacing: PointOfSaleReaderConnectionModalLayout.contentButtonSpacing) {
Spacer()
VStack(spacing: PointOfSaleReaderConnectionModalLayout.imageTextSpacing) {
- Image(decorative: viewModel.imageName)
+ Image(decorative: viewModel.imageName, bundle: .module)
.matchedGeometryEffect(id: animation.iconTransitionId, in: animation.namespace, properties: .position)
VStack(spacing: PointOfSaleReaderConnectionModalLayout.textSpacing) {
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedNonRetryableView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedNonRetryableView.swift
similarity index 96%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedNonRetryableView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedNonRetryableView.swift
index f534ad273fb..5b5b7c15cef 100644
--- a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedNonRetryableView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedNonRetryableView.swift
@@ -13,7 +13,7 @@ struct PointOfSaleCardPresentPaymentReaderUpdateFailedNonRetryableView: View {
var body: some View {
VStack(spacing: PointOfSaleReaderConnectionModalLayout.contentButtonSpacing) {
VStack(spacing: PointOfSaleReaderConnectionModalLayout.imageTextSpacing) {
- Image(decorative: viewModel.imageName)
+ Image(decorative: viewModel.imageName, bundle: .module)
.matchedGeometryEffect(id: animation.iconTransitionId, in: animation.namespace, properties: .position)
Text(viewModel.title)
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedView.swift
similarity index 96%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedView.swift
index f3e8d5cba3f..8378275b22e 100644
--- a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateFailedView.swift
@@ -13,7 +13,7 @@ struct PointOfSaleCardPresentPaymentReaderUpdateFailedView: View {
var body: some View {
VStack(spacing: PointOfSaleReaderConnectionModalLayout.contentButtonSpacing) {
VStack(spacing: PointOfSaleReaderConnectionModalLayout.imageTextSpacing) {
- Image(decorative: viewModel.imageName)
+ Image(decorative: viewModel.imageName, bundle: .module)
.matchedGeometryEffect(id: animation.iconTransitionId, in: animation.namespace, properties: .position)
Text(viewModel.title)
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentScanningForReadersFailedView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentScanningForReadersFailedView.swift
similarity index 96%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentScanningForReadersFailedView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentScanningForReadersFailedView.swift
index 460a655e0b1..48045f0e2be 100644
--- a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentScanningForReadersFailedView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentScanningForReadersFailedView.swift
@@ -12,7 +12,7 @@ struct PointOfSaleCardPresentPaymentScanningForReadersFailedView: View {
var body: some View {
VStack(spacing: PointOfSaleReaderConnectionModalLayout.imageTextSpacing) {
- Image(decorative: viewModel.imageName)
+ Image(decorative: viewModel.imageName, bundle: .module)
.matchedGeometryEffect(id: animation.iconTransitionId, in: animation.namespace, properties: .position)
VStack(spacing: PointOfSaleReaderConnectionModalLayout.textSpacing) {
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentScanningForReadersView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentScanningForReadersView.swift
similarity index 96%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentScanningForReadersView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentScanningForReadersView.swift
index 3df91adfbff..676def76f48 100644
--- a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentScanningForReadersView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentScanningForReadersView.swift
@@ -12,7 +12,7 @@ struct PointOfSaleCardPresentPaymentScanningForReadersView: View {
var body: some View {
VStack(spacing: PointOfSaleReaderConnectionModalLayout.imageTextSpacing) {
- Image(decorative: viewModel.imageName)
+ Image(decorative: viewModel.imageName, bundle: .module)
.matchedGeometryEffect(id: animation.iconTransitionId, in: animation.namespace, properties: .position)
VStack(spacing: PointOfSaleReaderConnectionModalLayout.textSpacing) {
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleReaderConnectionModalLayout.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleReaderConnectionModalLayout.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleReaderConnectionModalLayout.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Connection Alerts/PointOfSaleReaderConnectionModalLayout.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/PointOfSaleCardPresentPaymentAlert.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/PointOfSaleCardPresentPaymentAlert.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/PointOfSaleCardPresentPaymentAlert.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/PointOfSaleCardPresentPaymentAlert.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/PointOfSaleCardPresentPaymentInLineMessage.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/PointOfSaleCardPresentPaymentInLineMessage.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/PointOfSaleCardPresentPaymentInLineMessage.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/PointOfSaleCardPresentPaymentInLineMessage.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/PointOfSaleEmptyErrorStateViewLayout.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/PointOfSaleEmptyErrorStateViewLayout.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/PointOfSaleEmptyErrorStateViewLayout.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/PointOfSaleEmptyErrorStateViewLayout.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/PointOfSaleItemListErrorLayout.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/PointOfSaleItemListErrorLayout.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/PointOfSaleItemListErrorLayout.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/PointOfSaleItemListErrorLayout.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/PointOfSaleItemListFullscreenErrorView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/PointOfSaleItemListFullscreenErrorView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/PointOfSaleItemListFullscreenErrorView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/PointOfSaleItemListFullscreenErrorView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/PointOfSaleItemListFullscreenView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/PointOfSaleItemListFullscreenView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/PointOfSaleItemListFullscreenView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/PointOfSaleItemListFullscreenView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/PointOfSaleLoadingView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/PointOfSaleLoadingView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/PointOfSaleLoadingView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/PointOfSaleLoadingView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/PointOfSaleUnsupportedWidthView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/PointOfSaleUnsupportedWidthView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/PointOfSaleUnsupportedWidthView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/PointOfSaleUnsupportedWidthView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/POSCardPresentPaymentMessageViewImage.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/POSCardPresentPaymentMessageViewImage.swift
similarity index 92%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/POSCardPresentPaymentMessageViewImage.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/POSCardPresentPaymentMessageViewImage.swift
index 3a94b6a979a..ae664e957fd 100644
--- a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/POSCardPresentPaymentMessageViewImage.swift
+++ b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/POSCardPresentPaymentMessageViewImage.swift
@@ -8,7 +8,7 @@ struct POSCardPresentPaymentMessageViewImage: View {
}
var body: some View {
- Image(decorative: imageName)
+ Image(decorative: imageName, bundle: .module)
.resizable()
.aspectRatio(contentMode: .fit)
.frame(
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentActivityIndicatingMessageView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentActivityIndicatingMessageView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentActivityIndicatingMessageView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentActivityIndicatingMessageView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentCancelledOnReaderMessageView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentCancelledOnReaderMessageView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentCancelledOnReaderMessageView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentCancelledOnReaderMessageView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentCaptureErrorMessageView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentCaptureErrorMessageView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentCaptureErrorMessageView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentCaptureErrorMessageView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentCardInsertedMessageView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentCardInsertedMessageView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentCardInsertedMessageView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentCardInsertedMessageView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentDisconnectedMessageView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentDisconnectedMessageView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentDisconnectedMessageView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentDisconnectedMessageView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentDisplayReaderMessageMessageView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentDisplayReaderMessageMessageView.swift
similarity index 96%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentDisplayReaderMessageMessageView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentDisplayReaderMessageMessageView.swift
index 6ff5ea947df..2de9603ca24 100644
--- a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentDisplayReaderMessageMessageView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentDisplayReaderMessageMessageView.swift
@@ -32,7 +32,7 @@ struct PointOfSaleCardPresentPaymentDisplayReaderMessageMessageView: View {
}
#Preview {
- return PointOfSaleCardPresentPaymentDisplayReaderMessageMessageView(
+ PointOfSaleCardPresentPaymentDisplayReaderMessageMessageView(
viewModel: PointOfSaleCardPresentPaymentDisplayReaderMessageMessageViewModel(
message: "Remove card"),
animation: .init(namespace: Namespace().wrappedValue)
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentErrorMessageView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentErrorMessageView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentErrorMessageView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentErrorMessageView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentIntentCreationErrorMessageView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentIntentCreationErrorMessageView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentIntentCreationErrorMessageView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentIntentCreationErrorMessageView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentLayout.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentLayout.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentLayout.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentLayout.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentNonRetryableErrorMessageView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentNonRetryableErrorMessageView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentNonRetryableErrorMessageView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentNonRetryableErrorMessageView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentProcessingMessageView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentProcessingMessageView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentProcessingMessageView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentProcessingMessageView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentTapSwipeInsertCardMessageView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentTapSwipeInsertCardMessageView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentTapSwipeInsertCardMessageView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentTapSwipeInsertCardMessageView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentValidatingOrderErrorMessageView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentValidatingOrderErrorMessageView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentValidatingOrderErrorMessageView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSaleCardPresentPaymentValidatingOrderErrorMessageView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSalePaymentSuccessView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSalePaymentSuccessView.swift
similarity index 98%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSalePaymentSuccessView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSalePaymentSuccessView.swift
index 7d751c46f4d..680a6c8b7f3 100644
--- a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSalePaymentSuccessView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/PointOfSalePaymentSuccessView.swift
@@ -88,7 +88,7 @@ struct PointOfSalePaymentSuccessView: View {
Circle()
.frame(width: Constants.imageSize.width, height: Constants.imageSize.height)
.foregroundColor(.posSuccess)
- Image(PointOfSaleAssets.successCheck.imageName)
+ PointOfSaleAssets.successCheck.image
.renderingMode(.template)
.foregroundColor(checkmarkColor)
.frame(width: Constants.checkmarkSize)
diff --git a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/Presented Views/PointOfSaleCardPresentPaymentCaptureFailedView.swift b/Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/Presented Views/PointOfSaleCardPresentPaymentCaptureFailedView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/Reader Messages/Presented Views/PointOfSaleCardPresentPaymentCaptureFailedView.swift
rename to Modules/Sources/PointOfSale/Presentation/CardReaderConnection/UI States/Reader Messages/Presented Views/PointOfSaleCardPresentPaymentCaptureFailedView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CartRowRemoveButton.swift b/Modules/Sources/PointOfSale/Presentation/CartRowRemoveButton.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CartRowRemoveButton.swift
rename to Modules/Sources/PointOfSale/Presentation/CartRowRemoveButton.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CartView.swift b/Modules/Sources/PointOfSale/Presentation/CartView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CartView.swift
rename to Modules/Sources/PointOfSale/Presentation/CartView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/CouponRowView.swift b/Modules/Sources/PointOfSale/Presentation/CouponRowView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/CouponRowView.swift
rename to Modules/Sources/PointOfSale/Presentation/CouponRowView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Coupons/POSCouponCreationSheet.swift b/Modules/Sources/PointOfSale/Presentation/Coupons/POSCouponCreationSheet.swift
similarity index 91%
rename from WooCommerce/Classes/POS/Presentation/Coupons/POSCouponCreationSheet.swift
rename to Modules/Sources/PointOfSale/Presentation/Coupons/POSCouponCreationSheet.swift
index 09afced4a69..42362b9e6ad 100644
--- a/WooCommerce/Classes/POS/Presentation/Coupons/POSCouponCreationSheet.swift
+++ b/Modules/Sources/PointOfSale/Presentation/Coupons/POSCouponCreationSheet.swift
@@ -1,4 +1,5 @@
import SwiftUI
+import class WooFoundation.CurrencySettings
import struct Yosemite.Coupon
import enum Yosemite.POSItem
import struct Yosemite.POSCoupon
@@ -6,14 +7,16 @@ import struct Yosemite.POSCoupon
extension View {
func posCouponCreationSheet(
isPresented: Binding,
+ currencySettings: CurrencySettings,
onSuccess: @escaping (POSItem) -> Void
) -> some View {
- modifier(POSCouponCreationSheetModifier(isPresented: isPresented, onSuccess: onSuccess))
+ modifier(POSCouponCreationSheetModifier(isPresented: isPresented, currencySettings: currencySettings, onSuccess: onSuccess))
}
}
private struct POSCouponCreationSheetModifier: ViewModifier {
@Binding var isPresented: Bool
+ let currencySettings: CurrencySettings
let onSuccess: (POSItem) -> Void
@Environment(\.posExternalViews) private var externalViews
@@ -28,7 +31,7 @@ private struct POSCouponCreationSheetModifier: ViewModifier {
discountType: posDiscountType.discountType,
showTypeSelection: $showCouponSelectionSheet,
onSuccess: { coupon in
- addedCouponItem = .coupon(.init(id: UUID(), code: coupon.code, summary: coupon.summary()))
+ addedCouponItem = .coupon(.init(id: UUID(), code: coupon.code, summary: coupon.summary(currencySettings: currencySettings)))
},
dismissHandler: {
selectedType = nil
diff --git a/WooCommerce/Classes/POS/Presentation/Infinite Scroll/InfiniteScrollTriggerDeterminable.swift b/Modules/Sources/PointOfSale/Presentation/Infinite Scroll/InfiniteScrollTriggerDeterminable.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Infinite Scroll/InfiniteScrollTriggerDeterminable.swift
rename to Modules/Sources/PointOfSale/Presentation/Infinite Scroll/InfiniteScrollTriggerDeterminable.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Infinite Scroll/InfiniteScrollView.swift b/Modules/Sources/PointOfSale/Presentation/Infinite Scroll/InfiniteScrollView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Infinite Scroll/InfiniteScrollView.swift
rename to Modules/Sources/PointOfSale/Presentation/Infinite Scroll/InfiniteScrollView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Item Search/POSPreSearchView.swift b/Modules/Sources/PointOfSale/Presentation/Item Search/POSPreSearchView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Item Search/POSPreSearchView.swift
rename to Modules/Sources/PointOfSale/Presentation/Item Search/POSPreSearchView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Item Search/POSProductSearchable.swift b/Modules/Sources/PointOfSale/Presentation/Item Search/POSProductSearchable.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Item Search/POSProductSearchable.swift
rename to Modules/Sources/PointOfSale/Presentation/Item Search/POSProductSearchable.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Item Search/POSSearchTextFieldStyle.swift b/Modules/Sources/PointOfSale/Presentation/Item Search/POSSearchTextFieldStyle.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Item Search/POSSearchTextFieldStyle.swift
rename to Modules/Sources/PointOfSale/Presentation/Item Search/POSSearchTextFieldStyle.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Item Search/POSSearchView.swift b/Modules/Sources/PointOfSale/Presentation/Item Search/POSSearchView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Item Search/POSSearchView.swift
rename to Modules/Sources/PointOfSale/Presentation/Item Search/POSSearchView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Item Selector/ChildItemList.swift b/Modules/Sources/PointOfSale/Presentation/Item Selector/ChildItemList.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Item Selector/ChildItemList.swift
rename to Modules/Sources/PointOfSale/Presentation/Item Selector/ChildItemList.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Item Selector/CouponCardView.swift b/Modules/Sources/PointOfSale/Presentation/Item Selector/CouponCardView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Item Selector/CouponCardView.swift
rename to Modules/Sources/PointOfSale/Presentation/Item Selector/CouponCardView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Item Selector/GhostItemCardView.swift b/Modules/Sources/PointOfSale/Presentation/Item Selector/GhostItemCardView.swift
similarity index 99%
rename from WooCommerce/Classes/POS/Presentation/Item Selector/GhostItemCardView.swift
rename to Modules/Sources/PointOfSale/Presentation/Item Selector/GhostItemCardView.swift
index 470fae1b411..59cbef35e28 100644
--- a/WooCommerce/Classes/POS/Presentation/Item Selector/GhostItemCardView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/Item Selector/GhostItemCardView.swift
@@ -1,4 +1,5 @@
import SwiftUI
+import Shimmer
struct GhostItemCardView: View {
@ScaledMetric private var scale: CGFloat = 1.0
diff --git a/WooCommerce/Classes/POS/Presentation/Item Selector/ItemList.swift b/Modules/Sources/PointOfSale/Presentation/Item Selector/ItemList.swift
similarity index 92%
rename from WooCommerce/Classes/POS/Presentation/Item Selector/ItemList.swift
rename to Modules/Sources/PointOfSale/Presentation/Item Selector/ItemList.swift
index 11ca3012fbe..7946466a4d6 100644
--- a/WooCommerce/Classes/POS/Presentation/Item Selector/ItemList.swift
+++ b/Modules/Sources/PointOfSale/Presentation/Item Selector/ItemList.swift
@@ -215,31 +215,6 @@ private extension ItemListRow {
#if DEBUG
#Preview("Loaded with items") {
- let itemList: ItemListState = .loaded(
- [
- .simpleProduct(
- .init(
- id: .init(),
- name: "Strong latte 16oz",
- formattedPrice: "$4.00",
- productID: 12,
- price: "4.00",
- manageStock: false,
- stockQuantity: nil,
- stockStatusKey: ""
- )
- ),
- .variableParentProduct(
- .init(
- id: .init(),
- name: "Variable mocha",
- productImageSource: "https://pd.w.org/2024/12/986762d0d4d4cf17.82435881-scaled.jpeg",
- productID: 16
- )
- )
- ],
- hasMoreItems: false
- )
ItemList(
itemsController: PointOfSalePreviewItemsController(),
node: .root,
diff --git a/WooCommerce/Classes/POS/Presentation/Item Selector/POSItemActionHandler.swift b/Modules/Sources/PointOfSale/Presentation/Item Selector/POSItemActionHandler.swift
similarity index 99%
rename from WooCommerce/Classes/POS/Presentation/Item Selector/POSItemActionHandler.swift
rename to Modules/Sources/PointOfSale/Presentation/Item Selector/POSItemActionHandler.swift
index 05a1b1ced56..247cfecfca6 100644
--- a/WooCommerce/Classes/POS/Presentation/Item Selector/POSItemActionHandler.swift
+++ b/Modules/Sources/PointOfSale/Presentation/Item Selector/POSItemActionHandler.swift
@@ -2,6 +2,7 @@ import Foundation
import enum Yosemite.POSItem
import enum Yosemite.POSItemType
import protocol WooFoundation.Analytics
+import struct WooFoundation.WooAnalyticsEvent
/// Protocol for handling actions on POS items
protocol POSItemActionHandler {
diff --git a/WooCommerce/Classes/POS/Presentation/Item Selector/ParentProductCardView.swift b/Modules/Sources/PointOfSale/Presentation/Item Selector/ParentProductCardView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Item Selector/ParentProductCardView.swift
rename to Modules/Sources/PointOfSale/Presentation/Item Selector/ParentProductCardView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Item Selector/PointOfSaleItemListAnalyticsTracker.swift b/Modules/Sources/PointOfSale/Presentation/Item Selector/PointOfSaleItemListAnalyticsTracker.swift
similarity index 97%
rename from WooCommerce/Classes/POS/Presentation/Item Selector/PointOfSaleItemListAnalyticsTracker.swift
rename to Modules/Sources/PointOfSale/Presentation/Item Selector/PointOfSaleItemListAnalyticsTracker.swift
index 5ddcaace9bf..d5c36484a6e 100644
--- a/WooCommerce/Classes/POS/Presentation/Item Selector/PointOfSaleItemListAnalyticsTracker.swift
+++ b/Modules/Sources/PointOfSale/Presentation/Item Selector/PointOfSaleItemListAnalyticsTracker.swift
@@ -1,5 +1,6 @@
import Foundation
import enum Yosemite.POSItemType
+import struct WooFoundation.WooAnalyticsEvent
struct PointOfSaleItemListAnalyticsTracker {
private let sourceView: WooAnalyticsEvent.PointOfSale.SourceView
diff --git a/WooCommerce/Classes/POS/Presentation/Item Selector/PointOfSaleItemListCardConstants.swift b/Modules/Sources/PointOfSale/Presentation/Item Selector/PointOfSaleItemListCardConstants.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Item Selector/PointOfSaleItemListCardConstants.swift
rename to Modules/Sources/PointOfSale/Presentation/Item Selector/PointOfSaleItemListCardConstants.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Item Selector/SimpleProductCardView.swift b/Modules/Sources/PointOfSale/Presentation/Item Selector/SimpleProductCardView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Item Selector/SimpleProductCardView.swift
rename to Modules/Sources/PointOfSale/Presentation/Item Selector/SimpleProductCardView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Item Selector/VariationCardView.swift b/Modules/Sources/PointOfSale/Presentation/Item Selector/VariationCardView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Item Selector/VariationCardView.swift
rename to Modules/Sources/PointOfSale/Presentation/Item Selector/VariationCardView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/ItemListView.swift b/Modules/Sources/PointOfSale/Presentation/ItemListView.swift
similarity index 98%
rename from WooCommerce/Classes/POS/Presentation/ItemListView.swift
rename to Modules/Sources/PointOfSale/Presentation/ItemListView.swift
index 924acdbf197..6d90b1efc55 100644
--- a/WooCommerce/Classes/POS/Presentation/ItemListView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/ItemListView.swift
@@ -6,6 +6,7 @@ struct ItemListView: View {
@Environment(\.posAnalytics) private var analytics
@Environment(PointOfSaleAggregateModel.self) private var posModel
@Environment(\.keyboardObserver) private var keyboardObserver
+ @Environment(\.posCurrencyProvider) private var currencyProvider
@EnvironmentObject var modalManager: POSModalManager
@EnvironmentObject var sheetManager: POSSheetManager
@EnvironmentObject var coverManager: POSFullScreenCoverManager
@@ -97,7 +98,9 @@ struct ItemListView: View {
})
.background(Color.posSurface)
.accessibilityElement(children: .contain)
- .posCouponCreationSheet(isPresented: $showCouponCreationModal, onSuccess: { couponItem in
+ .posCouponCreationSheet(isPresented: $showCouponCreationModal,
+ currencySettings: currencyProvider.currencySettings,
+ onSuccess: { couponItem in
Task { @MainActor in
posModel.addToCart(couponItem)
await posModel.couponsController.refreshItems(base: .root)
@@ -144,9 +147,9 @@ struct ItemListView: View {
@ViewBuilder
private func itemListContent(_ itemListType: ItemListType) -> some View {
switch itemListState(itemListType) {
- case .loading(let items),
- .loaded(let items, _),
- .inlineError(let items, _, _):
+ case .loading,
+ .loaded,
+ .inlineError:
listView(itemListType: itemListType)
case .error(let errorState):
errorView(errorState)
diff --git a/WooCommerce/Classes/POS/Presentation/ItemRowView.swift b/Modules/Sources/PointOfSale/Presentation/ItemRowView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/ItemRowView.swift
rename to Modules/Sources/PointOfSale/Presentation/ItemRowView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Order Messages/PointOfSaleOrderSyncCouponsErrorMessageView.swift b/Modules/Sources/PointOfSale/Presentation/Order Messages/PointOfSaleOrderSyncCouponsErrorMessageView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Order Messages/PointOfSaleOrderSyncCouponsErrorMessageView.swift
rename to Modules/Sources/PointOfSale/Presentation/Order Messages/PointOfSaleOrderSyncCouponsErrorMessageView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Order Messages/PointOfSaleOrderSyncErrorMessageView.swift b/Modules/Sources/PointOfSale/Presentation/Order Messages/PointOfSaleOrderSyncErrorMessageView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Order Messages/PointOfSaleOrderSyncErrorMessageView.swift
rename to Modules/Sources/PointOfSale/Presentation/Order Messages/PointOfSaleOrderSyncErrorMessageView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Orders/POSOrderBadgeView.swift b/Modules/Sources/PointOfSale/Presentation/Orders/POSOrderBadgeView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Orders/POSOrderBadgeView.swift
rename to Modules/Sources/PointOfSale/Presentation/Orders/POSOrderBadgeView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Orders/POSOrderDetailsEmptyView.swift b/Modules/Sources/PointOfSale/Presentation/Orders/POSOrderDetailsEmptyView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Orders/POSOrderDetailsEmptyView.swift
rename to Modules/Sources/PointOfSale/Presentation/Orders/POSOrderDetailsEmptyView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Orders/POSOrderDetailsLoadingView.swift b/Modules/Sources/PointOfSale/Presentation/Orders/POSOrderDetailsLoadingView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Orders/POSOrderDetailsLoadingView.swift
rename to Modules/Sources/PointOfSale/Presentation/Orders/POSOrderDetailsLoadingView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Orders/POSOrderDetailsView.swift b/Modules/Sources/PointOfSale/Presentation/Orders/POSOrderDetailsView.swift
similarity index 99%
rename from WooCommerce/Classes/POS/Presentation/Orders/POSOrderDetailsView.swift
rename to Modules/Sources/PointOfSale/Presentation/Orders/POSOrderDetailsView.swift
index 7f4b67279c3..2f09ee828e1 100644
--- a/WooCommerce/Classes/POS/Presentation/Orders/POSOrderDetailsView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/Orders/POSOrderDetailsView.swift
@@ -1,4 +1,5 @@
import SwiftUI
+import struct WooFoundation.WooAnalyticsEvent
import struct Yosemite.POSOrder
import struct Yosemite.POSOrderItem
import struct Yosemite.POSOrderRefund
diff --git a/WooCommerce/Classes/POS/Presentation/Orders/POSOrderListEmptyViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Orders/POSOrderListEmptyViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Orders/POSOrderListEmptyViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Orders/POSOrderListEmptyViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Orders/POSOrderListView.swift b/Modules/Sources/PointOfSale/Presentation/Orders/POSOrderListView.swift
similarity index 99%
rename from WooCommerce/Classes/POS/Presentation/Orders/POSOrderListView.swift
rename to Modules/Sources/PointOfSale/Presentation/Orders/POSOrderListView.swift
index 8f0e2959775..37782c0f67c 100644
--- a/WooCommerce/Classes/POS/Presentation/Orders/POSOrderListView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/Orders/POSOrderListView.swift
@@ -1,4 +1,5 @@
import SwiftUI
+import struct WooFoundation.WooAnalyticsEvent
import struct Yosemite.POSOrder
import enum Yosemite.OrderPaymentMethod
diff --git a/WooCommerce/Classes/POS/Presentation/Orders/POSOrdersView.swift b/Modules/Sources/PointOfSale/Presentation/Orders/POSOrdersView.swift
similarity index 99%
rename from WooCommerce/Classes/POS/Presentation/Orders/POSOrdersView.swift
rename to Modules/Sources/PointOfSale/Presentation/Orders/POSOrdersView.swift
index e7887fe8f41..47f10cdd13b 100644
--- a/WooCommerce/Classes/POS/Presentation/Orders/POSOrdersView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/Orders/POSOrdersView.swift
@@ -1,5 +1,6 @@
import SwiftUI
import UIKit
+import struct WooFoundation.WooAnalyticsEvent
struct POSOrdersView: View {
@Binding var isPresented: Bool
diff --git a/WooCommerce/Classes/POS/Presentation/POSFloatingControlView.swift b/Modules/Sources/PointOfSale/Presentation/POSFloatingControlView.swift
similarity index 99%
rename from WooCommerce/Classes/POS/Presentation/POSFloatingControlView.swift
rename to Modules/Sources/PointOfSale/Presentation/POSFloatingControlView.swift
index d6b960c250e..952f1ca6ffb 100644
--- a/WooCommerce/Classes/POS/Presentation/POSFloatingControlView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/POSFloatingControlView.swift
@@ -1,4 +1,5 @@
import SwiftUI
+import struct WooFoundation.WooAnalyticsEvent
struct POSFloatingControlView: View {
@Environment(\.posBackgroundAppearance) var backgroundAppearance
diff --git a/WooCommerce/Classes/POS/TabBar/POSIneligibleView.swift b/Modules/Sources/PointOfSale/Presentation/POSIneligibleView.swift
similarity index 99%
rename from WooCommerce/Classes/POS/TabBar/POSIneligibleView.swift
rename to Modules/Sources/PointOfSale/Presentation/POSIneligibleView.swift
index 4f49b228885..fd97899e661 100644
--- a/WooCommerce/Classes/POS/TabBar/POSIneligibleView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/POSIneligibleView.swift
@@ -1,5 +1,5 @@
+import CocoaLumberjackSwift
import SwiftUI
-import Yosemite
/// A view that displays when the Point of Sale (POS) feature is not available for the current store.
/// Shows the specific reason why POS is ineligible and provides a button to re-check eligibility.
diff --git a/WooCommerce/Classes/POS/Presentation/PaymentButtons.swift b/Modules/Sources/PointOfSale/Presentation/PaymentButtons.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/PaymentButtons.swift
rename to Modules/Sources/PointOfSale/Presentation/PaymentButtons.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Payments Onboarding/PointOfSaleCardPresentPaymentOnboardingView.swift b/Modules/Sources/PointOfSale/Presentation/Payments Onboarding/PointOfSaleCardPresentPaymentOnboardingView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Payments Onboarding/PointOfSaleCardPresentPaymentOnboardingView.swift
rename to Modules/Sources/PointOfSale/Presentation/Payments Onboarding/PointOfSaleCardPresentPaymentOnboardingView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Payments Onboarding/PointOfSaleCardPresentPaymentOnboardingViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Payments Onboarding/PointOfSaleCardPresentPaymentOnboardingViewModel.swift
similarity index 88%
rename from WooCommerce/Classes/POS/Presentation/Payments Onboarding/PointOfSaleCardPresentPaymentOnboardingViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Payments Onboarding/PointOfSaleCardPresentPaymentOnboardingViewModel.swift
index 127f18fd6d1..3dfa801d9a2 100644
--- a/WooCommerce/Classes/POS/Presentation/Payments Onboarding/PointOfSaleCardPresentPaymentOnboardingViewModel.swift
+++ b/Modules/Sources/PointOfSale/Presentation/Payments Onboarding/PointOfSaleCardPresentPaymentOnboardingViewModel.swift
@@ -2,7 +2,7 @@ import Foundation
import SwiftUI
import enum Yosemite.CardPresentPaymentOnboardingState
-protocol CardPresentPaymentsOnboardingViewConfiguration: ObservableObject {
+public protocol CardPresentPaymentsOnboardingViewConfiguration: ObservableObject {
var showSupport: (() -> Void)? { get set }
var showURL: ((URL) -> Void)? { get set }
var state: CardPresentPaymentOnboardingState { get }
@@ -12,7 +12,7 @@ public class CardPresentPaymentOnboardingViewContainer: ObservableObject, Equata
@Published var configuration: any CardPresentPaymentsOnboardingViewConfiguration
@Published var view: any View
- init(configuration: any CardPresentPaymentsOnboardingViewConfiguration, view: any View = EmptyView()) {
+ public init(configuration: any CardPresentPaymentsOnboardingViewConfiguration, view: any View = EmptyView()) {
self.configuration = configuration
self.view = view
}
diff --git a/WooCommerce/Classes/POS/Presentation/PointOfSaleAssets.swift b/Modules/Sources/PointOfSale/Presentation/PointOfSaleAssets.swift
similarity index 93%
rename from WooCommerce/Classes/POS/Presentation/PointOfSaleAssets.swift
rename to Modules/Sources/PointOfSale/Presentation/PointOfSaleAssets.swift
index 9bca8d6e13c..16aea632ea9 100644
--- a/WooCommerce/Classes/POS/Presentation/PointOfSaleAssets.swift
+++ b/Modules/Sources/PointOfSale/Presentation/PointOfSaleAssets.swift
@@ -21,8 +21,12 @@ enum PointOfSaleAssets: CaseIterable {
case netum1228BCPairBarcode
case testEan13Barcode
+ var image: Image {
+ Image(imageName, bundle: .module)
+ }
+
var decorativeImage: Image {
- Image(decorative: imageName)
+ Image(decorative: imageName, bundle: .module)
}
var imageName: String {
diff --git a/WooCommerce/Classes/POS/Presentation/PointOfSaleBarcodeScannerInformationModal.swift b/Modules/Sources/PointOfSale/Presentation/PointOfSaleBarcodeScannerInformationModal.swift
similarity index 99%
rename from WooCommerce/Classes/POS/Presentation/PointOfSaleBarcodeScannerInformationModal.swift
rename to Modules/Sources/PointOfSale/Presentation/PointOfSaleBarcodeScannerInformationModal.swift
index b8fc24ac41a..5ca65606ca7 100644
--- a/WooCommerce/Classes/POS/Presentation/PointOfSaleBarcodeScannerInformationModal.swift
+++ b/Modules/Sources/PointOfSale/Presentation/PointOfSaleBarcodeScannerInformationModal.swift
@@ -112,7 +112,7 @@ struct ProductBarcodeSetupInformation: View {
.multilineTextAlignment(.center)
}
- Image(decorative: PointOfSaleAssets.barcodeFieldScreenshot.imageName)
+ PointOfSaleAssets.barcodeFieldScreenshot.image
.resizable()
.aspectRatio(contentMode: .fit)
}
diff --git a/WooCommerce/Classes/POS/Presentation/PointOfSaleCollectCashView.swift b/Modules/Sources/PointOfSale/Presentation/PointOfSaleCollectCashView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/PointOfSaleCollectCashView.swift
rename to Modules/Sources/PointOfSale/Presentation/PointOfSaleCollectCashView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/PointOfSaleDashboardView.swift b/Modules/Sources/PointOfSale/Presentation/PointOfSaleDashboardView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/PointOfSaleDashboardView.swift
rename to Modules/Sources/PointOfSale/Presentation/PointOfSaleDashboardView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/PointOfSaleEntryPointView.swift b/Modules/Sources/PointOfSale/Presentation/PointOfSaleEntryPointView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/PointOfSaleEntryPointView.swift
rename to Modules/Sources/PointOfSale/Presentation/PointOfSaleEntryPointView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/PointOfSaleExitPosAlertView.swift b/Modules/Sources/PointOfSale/Presentation/PointOfSaleExitPosAlertView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/PointOfSaleExitPosAlertView.swift
rename to Modules/Sources/PointOfSale/Presentation/PointOfSaleExitPosAlertView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/PointOfSaleInformationModal.swift b/Modules/Sources/PointOfSale/Presentation/PointOfSaleInformationModal.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/PointOfSaleInformationModal.swift
rename to Modules/Sources/PointOfSale/Presentation/PointOfSaleInformationModal.swift
diff --git a/WooCommerce/Classes/POS/Presentation/PointOfSaleModalHeader.swift b/Modules/Sources/PointOfSale/Presentation/PointOfSaleModalHeader.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/PointOfSaleModalHeader.swift
rename to Modules/Sources/PointOfSale/Presentation/PointOfSaleModalHeader.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/Buttons/POSButtonProgressViewStyle.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/Buttons/POSButtonProgressViewStyle.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/Buttons/POSButtonProgressViewStyle.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/Buttons/POSButtonProgressViewStyle.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/Buttons/POSButtonStyle.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/Buttons/POSButtonStyle.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/Buttons/POSButtonStyle.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/Buttons/POSButtonStyle.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/DynamicFrameScaler.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/DynamicFrameScaler.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/DynamicFrameScaler.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/DynamicFrameScaler.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSBackgroundAppearanceKey.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSBackgroundAppearanceKey.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSBackgroundAppearanceKey.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSBackgroundAppearanceKey.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSConnectivityView.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSConnectivityView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSConnectivityView.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSConnectivityView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSCouponImageView.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSCouponImageView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSCouponImageView.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSCouponImageView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSEdgeShadowViewModifier.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSEdgeShadowViewModifier.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSEdgeShadowViewModifier.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSEdgeShadowViewModifier.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSErrorExclamationMark.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSErrorExclamationMark.swift
similarity index 90%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSErrorExclamationMark.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSErrorExclamationMark.swift
index 86427cb8cec..3795fe4462f 100644
--- a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSErrorExclamationMark.swift
+++ b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSErrorExclamationMark.swift
@@ -9,7 +9,7 @@ struct POSErrorExclamationMark: View {
}
var body: some View {
- Image(decorative: PointOfSaleAssets.exclamationMark.imageName)
+ PointOfSaleAssets.exclamationMark.decorativeImage
.resizable()
.aspectRatio(contentMode: .fit)
.frame(maxHeight: size.dimension)
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSErrorXMark.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSErrorXMark.swift
similarity index 86%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSErrorXMark.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSErrorXMark.swift
index 746729a6eb9..81ad6dfd440 100644
--- a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSErrorXMark.swift
+++ b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSErrorXMark.swift
@@ -4,7 +4,7 @@ struct POSErrorXMark: View {
@Environment(\.dynamicTypeSize) var dynamicTypeSize
var body: some View {
- Image(decorative: PointOfSaleAssets.error.imageName)
+ PointOfSaleAssets.error.decorativeImage
.font(.system(size: POSErrorAndAlertIconSize.large.dimension))
.foregroundStyle(Color.posAlert)
.accessibilityHidden(true)
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSFullScreenCover.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSFullScreenCover.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSFullScreenCover.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSFullScreenCover.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSHeaderLayoutConstants.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSHeaderLayoutConstants.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSHeaderLayoutConstants.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSHeaderLayoutConstants.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSHeaderTitleView.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSHeaderTitleView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSHeaderTitleView.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSHeaderTitleView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSItemCardBorderStylesModifier.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSItemCardBorderStylesModifier.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSItemCardBorderStylesModifier.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSItemCardBorderStylesModifier.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSItemImageView.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSItemImageView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSItemImageView.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSItemImageView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSListEmptyView.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSListEmptyView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSListEmptyView.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSListEmptyView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSListErrorView.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSListErrorView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSListErrorView.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSListErrorView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSListInlineErrorView.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSListInlineErrorView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSListInlineErrorView.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSListInlineErrorView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSModalCloseButton.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSModalCloseButton.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSModalCloseButton.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSModalCloseButton.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSModalManager.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSModalManager.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSModalManager.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSModalManager.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSModalSizing.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSModalSizing.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSModalSizing.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSModalSizing.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSModalViewModifier.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSModalViewModifier.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSModalViewModifier.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSModalViewModifier.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSNoticeView.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSNoticeView.swift
similarity index 97%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSNoticeView.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSNoticeView.swift
index 7d8475c5dc7..9452f4ea65a 100644
--- a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSNoticeView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSNoticeView.swift
@@ -111,7 +111,7 @@ private enum Localization {
Text("This is a subtitle that explains more about the notice.")
Text("Here's a hint about what to do next. Learn More")
.font(.posBodySmallBold)
- .foregroundColor(Color(.posPrimary))
+ .foregroundColor(Color.posPrimary)
}
}
.padding()
@@ -127,7 +127,7 @@ private enum Localization {
Text("This is a subtitle that explains more about the notice.")
Text("Here's a hint about what to do next. Learn More")
.font(.posBodySmallBold)
- .foregroundColor(Color(.posPrimary))
+ .foregroundColor(Color.posPrimary)
}
}
.padding()
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSPageHeaderActionButton.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSPageHeaderActionButton.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSPageHeaderActionButton.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSPageHeaderActionButton.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSPageHeaderBackButton.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSPageHeaderBackButton.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSPageHeaderBackButton.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSPageHeaderBackButton.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSPageHeaderView.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSPageHeaderView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSPageHeaderView.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSPageHeaderView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSProgressViewStyle.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSProgressViewStyle.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSProgressViewStyle.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSProgressViewStyle.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSSendReceiptView.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSSendReceiptView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSSendReceiptView.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSSendReceiptView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSSheet.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSSheet.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSSheet.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSSheet.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/WavesProgressViewStyle.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/WavesProgressViewStyle.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/WavesProgressViewStyle.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/WavesProgressViewStyle.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Settings/POSSettingsLocalCatalogDetailView.swift b/Modules/Sources/PointOfSale/Presentation/Settings/POSSettingsLocalCatalogDetailView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Settings/POSSettingsLocalCatalogDetailView.swift
rename to Modules/Sources/PointOfSale/Presentation/Settings/POSSettingsLocalCatalogDetailView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Settings/POSSettingsLocalCatalogViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Settings/POSSettingsLocalCatalogViewModel.swift
similarity index 99%
rename from WooCommerce/Classes/POS/Presentation/Settings/POSSettingsLocalCatalogViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Settings/POSSettingsLocalCatalogViewModel.swift
index c81a6cac525..d06de2705b7 100644
--- a/WooCommerce/Classes/POS/Presentation/Settings/POSSettingsLocalCatalogViewModel.swift
+++ b/Modules/Sources/PointOfSale/Presentation/Settings/POSSettingsLocalCatalogViewModel.swift
@@ -1,3 +1,4 @@
+import CocoaLumberjackSwift
import Yosemite
import Foundation
diff --git a/WooCommerce/Classes/POS/Presentation/Settings/POSSettingsStoreViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Settings/POSSettingsStoreViewModel.swift
similarity index 99%
rename from WooCommerce/Classes/POS/Presentation/Settings/POSSettingsStoreViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Settings/POSSettingsStoreViewModel.swift
index dce437b06da..c6cb59e1a12 100644
--- a/WooCommerce/Classes/POS/Presentation/Settings/POSSettingsStoreViewModel.swift
+++ b/Modules/Sources/PointOfSale/Presentation/Settings/POSSettingsStoreViewModel.swift
@@ -1,3 +1,4 @@
+import CocoaLumberjackSwift
import SwiftUI
import class Yosemite.SiteAddress
import protocol Yosemite.PluginsServiceProtocol
diff --git a/WooCommerce/Classes/POS/Presentation/Settings/PointOfSaleSettingsHardwareDetailView.swift b/Modules/Sources/PointOfSale/Presentation/Settings/PointOfSaleSettingsHardwareDetailView.swift
similarity index 99%
rename from WooCommerce/Classes/POS/Presentation/Settings/PointOfSaleSettingsHardwareDetailView.swift
rename to Modules/Sources/PointOfSale/Presentation/Settings/PointOfSaleSettingsHardwareDetailView.swift
index 6c4c6335409..c0e363919fa 100644
--- a/WooCommerce/Classes/POS/Presentation/Settings/PointOfSaleSettingsHardwareDetailView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/Settings/PointOfSaleSettingsHardwareDetailView.swift
@@ -157,7 +157,7 @@ struct PointOfSaleSettingsHardwareDetailView: View {
}
.navigationBarBackButtonHidden(true)
.posFullScreenCover(isPresented: $showCardReaderDocumentationModal) {
- SafariView(url: WooConstants.URLs.inPersonPaymentsLearnMoreWCPay.asURL())
+ SafariView(url: POSConstants.URLs.inPersonPaymentsLearnMoreWCPay.asURL())
}
}
diff --git a/WooCommerce/Classes/POS/Presentation/Settings/PointOfSaleSettingsHelpDetailView.swift b/Modules/Sources/PointOfSale/Presentation/Settings/PointOfSaleSettingsHelpDetailView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Settings/PointOfSaleSettingsHelpDetailView.swift
rename to Modules/Sources/PointOfSale/Presentation/Settings/PointOfSaleSettingsHelpDetailView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Settings/PointOfSaleSettingsStoreDetailView.swift b/Modules/Sources/PointOfSale/Presentation/Settings/PointOfSaleSettingsStoreDetailView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Settings/PointOfSaleSettingsStoreDetailView.swift
rename to Modules/Sources/PointOfSale/Presentation/Settings/PointOfSaleSettingsStoreDetailView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Settings/PointOfSaleSettingsView.swift b/Modules/Sources/PointOfSale/Presentation/Settings/PointOfSaleSettingsView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Settings/PointOfSaleSettingsView.swift
rename to Modules/Sources/PointOfSale/Presentation/Settings/PointOfSaleSettingsView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/SimpleProductsOnlyInformation.swift b/Modules/Sources/PointOfSale/Presentation/SimpleProductsOnlyInformation.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/SimpleProductsOnlyInformation.swift
rename to Modules/Sources/PointOfSale/Presentation/SimpleProductsOnlyInformation.swift
diff --git a/WooCommerce/Classes/POS/Presentation/TotalsView.swift b/Modules/Sources/PointOfSale/Presentation/TotalsView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/TotalsView.swift
rename to Modules/Sources/PointOfSale/Presentation/TotalsView.swift
diff --git a/WooCommerce/Classes/POS/Protocols/POSDependencyProviding.swift b/Modules/Sources/PointOfSale/Protocols/POSDependencyProviding.swift
similarity index 97%
rename from WooCommerce/Classes/POS/Protocols/POSDependencyProviding.swift
rename to Modules/Sources/PointOfSale/Protocols/POSDependencyProviding.swift
index d5428a429d3..4a198972ae9 100644
--- a/WooCommerce/Classes/POS/Protocols/POSDependencyProviding.swift
+++ b/Modules/Sources/PointOfSale/Protocols/POSDependencyProviding.swift
@@ -61,6 +61,7 @@ public protocol POSExternalViewProviding {
title: String,
cancelButtonTitle: String,
onSelection: @escaping (CouponDiscountType) -> Void) -> AnyView
+ func createWCWebView(adminUrl: URL, completion: @escaping () -> Void) -> AnyView
}
/// Main protocol that combines all POS dependency providers
diff --git a/WooCommerce/Classes/POS/README.md b/Modules/Sources/PointOfSale/README.md
similarity index 60%
rename from WooCommerce/Classes/POS/README.md
rename to Modules/Sources/PointOfSale/README.md
index 656d166b41e..1885abdca02 100644
--- a/WooCommerce/Classes/POS/README.md
+++ b/Modules/Sources/PointOfSale/README.md
@@ -64,3 +64,64 @@ We intend to move to the `Observation` framework, rather than using `@Published`
To support this, try to avoid adding subscriptions to the aggregate model's published properties. Often it's sufficient to just use a computed var.
When any published property changes, any view which has an `@EnvironmentObject` var for the aggregate model will be redrawn anyway – this is part of the reason for moving to observation!
+
+
+## PointOfSale Module
+
+The `PointOfSale` module contains all POS-specific functionality, extracted from the main Woo app target. It was introduced to improve compilation and preview speed, simplify testing, and support future architectural flexibility.
+
+### Purpose
+
+The module enables POS to evolve as an independent feature area, while maintaining integration with the main app through a controlled set of interfaces.
+This approach improves development speed and test isolation, while keeping the codebase aligned with the Woo app’s shared architecture.
+
+### Structure
+
+The `PointOfSale` module depends on shared internal modules (e.g. `WooFoundation`, `Yosemite`) and on adaptor protocols that are injected from the main app.
+
+* **`PointOfSaleEntryPointView`** — The main POS entry point, exposed publicly to the main app target.
+* **`POSDependencyProviding`** — The protocol defining all dependencies injected from the main app (e.g. analytics, feature flags, navigation).
+* **`POSTabCoordinator`** — Acts as a factory of PointOfSaleEntryPointView and injects the main app target dependencies.
+* **Adaptors Layer** — Implementations of the dependency protocols, located in the Woo app target, bridging POS to main app functionality.
+* **Environment Integration** — Dependencies are injected through environment values, providing access in SwiftUI views without using singletons directly.
+
+### Dependency Injection
+
+Direct access to the `ServiceLocator` was removed in favor of dependency injection at module entry.
+Services such as analytics, currency, and connectivity are now provided via environment wrappers:
+
+```swift
+@Environment(.posAnalytics) private var analytics
+
+analytics.track(.pointOfSaleItemsFetched)
+```
+
+This approach removes tight coupling with the main app and enables testing POS in isolation.
+
+### External Integrations
+
+For complex or tightly coupled components — such as support forms, navigation, or payment flows — POS uses type-erased adaptors.
+These expose necessary Woo app functionality while keeping dependencies transparent and replaceable:
+
+```swift
+@Environment(.posExternalViews) private var externalViews
+
+externalViews.createSupportFormView(isPresented: $showSupport)
+```
+
+Navigation back to the main app follows the same pattern:
+
+```swift
+@Environment(.posExternalNavigation) private var navigation
+navigation.navigateToCreateOrder()
+```
+
+### Migration Strategy
+
+The modularization was completed incrementally:
+
+1. Define an empty `PointOfSale` module and test target.
+2. Abstract direct `ServiceLocator` usages behind dependency protocols.
+3. Move shared utilities to `WooFoundation` or `Yosemite`, refactor and split some dependencies if needed.
+4. Move POS-specific files into the new module.
+5. Expose only the entry point and dependency protocols publicly.
diff --git a/WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/Contents.json b/Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/Contents.json
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/Contents.json
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/Contents.json
diff --git a/WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/barcode-field-screenshot.imageset/Contents.json b/Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/barcode-field-screenshot.imageset/Contents.json
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/barcode-field-screenshot.imageset/Contents.json
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/barcode-field-screenshot.imageset/Contents.json
diff --git a/WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/barcode-field-screenshot.imageset/barcode-field-screenshot.pdf b/Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/barcode-field-screenshot.imageset/barcode-field-screenshot.pdf
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/barcode-field-screenshot.imageset/barcode-field-screenshot.pdf
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/barcode-field-screenshot.imageset/barcode-field-screenshot.pdf
diff --git a/WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/netum-1228bc-hid-barcode.imageset/Contents.json b/Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/netum-1228bc-hid-barcode.imageset/Contents.json
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/netum-1228bc-hid-barcode.imageset/Contents.json
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/netum-1228bc-hid-barcode.imageset/Contents.json
diff --git a/WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/netum-1228bc-hid-barcode.imageset/netum-1228bc-hid-barcode.pdf b/Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/netum-1228bc-hid-barcode.imageset/netum-1228bc-hid-barcode.pdf
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/netum-1228bc-hid-barcode.imageset/netum-1228bc-hid-barcode.pdf
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/netum-1228bc-hid-barcode.imageset/netum-1228bc-hid-barcode.pdf
diff --git a/WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/netum-1228bc-pair-barcode.imageset/Contents.json b/Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/netum-1228bc-pair-barcode.imageset/Contents.json
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/netum-1228bc-pair-barcode.imageset/Contents.json
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/netum-1228bc-pair-barcode.imageset/Contents.json
diff --git a/WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/netum-1228bc-pair-barcode.imageset/netum-1228bc-pair-barcode.pdf b/Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/netum-1228bc-pair-barcode.imageset/netum-1228bc-pair-barcode.pdf
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/netum-1228bc-pair-barcode.imageset/netum-1228bc-pair-barcode.pdf
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/netum-1228bc-pair-barcode.imageset/netum-1228bc-pair-barcode.pdf
diff --git a/WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/star-bsh20-setup-barcode.imageset/Contents.json b/Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/star-bsh20-setup-barcode.imageset/Contents.json
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/star-bsh20-setup-barcode.imageset/Contents.json
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/star-bsh20-setup-barcode.imageset/Contents.json
diff --git a/WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/star-bsh20-setup-barcode.imageset/star-bsh20-setup-barcode.pdf b/Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/star-bsh20-setup-barcode.imageset/star-bsh20-setup-barcode.pdf
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/star-bsh20-setup-barcode.imageset/star-bsh20-setup-barcode.pdf
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/star-bsh20-setup-barcode.imageset/star-bsh20-setup-barcode.pdf
diff --git a/WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/tera-1200-2d-hid-barcode.imageset/Contents.json b/Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/tera-1200-2d-hid-barcode.imageset/Contents.json
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/tera-1200-2d-hid-barcode.imageset/Contents.json
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/tera-1200-2d-hid-barcode.imageset/Contents.json
diff --git a/WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/tera-1200-2d-hid-barcode.imageset/tera-1200-2d-hid-barcode.pdf b/Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/tera-1200-2d-hid-barcode.imageset/tera-1200-2d-hid-barcode.pdf
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/tera-1200-2d-hid-barcode.imageset/tera-1200-2d-hid-barcode.pdf
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/tera-1200-2d-hid-barcode.imageset/tera-1200-2d-hid-barcode.pdf
diff --git a/WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/tera-1200-2d-pair-barcode.imageset/Contents.json b/Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/tera-1200-2d-pair-barcode.imageset/Contents.json
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/tera-1200-2d-pair-barcode.imageset/Contents.json
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/tera-1200-2d-pair-barcode.imageset/Contents.json
diff --git a/WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/tera-1200-2d-pair-barcode.imageset/tera-1200-2d-pair-barcode.pdf b/Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/tera-1200-2d-pair-barcode.imageset/tera-1200-2d-pair-barcode.pdf
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/tera-1200-2d-pair-barcode.imageset/tera-1200-2d-pair-barcode.pdf
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/tera-1200-2d-pair-barcode.imageset/tera-1200-2d-pair-barcode.pdf
diff --git a/WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/test-ean13-barcode.imageset/Contents.json b/Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/test-ean13-barcode.imageset/Contents.json
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/test-ean13-barcode.imageset/Contents.json
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/test-ean13-barcode.imageset/Contents.json
diff --git a/WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/test-ean13-barcode.imageset/test-ean13-barcode.pdf b/Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/test-ean13-barcode.imageset/test-ean13-barcode.pdf
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/BarcodeScanning/test-ean13-barcode.imageset/test-ean13-barcode.pdf
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/BarcodeScanning/test-ean13-barcode.imageset/test-ean13-barcode.pdf
diff --git a/WooCommerce/Resources/Images.xcassets/POS/Contents.json b/Modules/Sources/PointOfSale/Resources/Images.xcassets/Contents.json
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/Contents.json
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/Contents.json
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-error.imageset/Contents.json b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-error.imageset/Contents.json
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-error.imageset/Contents.json
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-error.imageset/Contents.json
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-error.imageset/pos-error.pdf b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-error.imageset/pos-error.pdf
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-error.imageset/pos-error.pdf
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-error.imageset/pos-error.pdf
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-exclamation-mark.imageset/Contents.json b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-exclamation-mark.imageset/Contents.json
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-exclamation-mark.imageset/Contents.json
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-exclamation-mark.imageset/Contents.json
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-exclamation-mark.imageset/pos-exclamation-mark.pdf b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-exclamation-mark.imageset/pos-exclamation-mark.pdf
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-exclamation-mark.imageset/pos-exclamation-mark.pdf
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-exclamation-mark.imageset/pos-exclamation-mark.pdf
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-gears.imageset/Contents.json b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-gears.imageset/Contents.json
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-gears.imageset/Contents.json
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-gears.imageset/Contents.json
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-gears.imageset/pos-gears-dark.pdf b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-gears.imageset/pos-gears-dark.pdf
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-gears.imageset/pos-gears-dark.pdf
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-gears.imageset/pos-gears-dark.pdf
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-gears.imageset/pos-gears.pdf b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-gears.imageset/pos-gears.pdf
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-gears.imageset/pos-gears.pdf
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-gears.imageset/pos-gears.pdf
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-magnifier-not-found.imageset/Contents.json b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-magnifier-not-found.imageset/Contents.json
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-magnifier-not-found.imageset/Contents.json
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-magnifier-not-found.imageset/Contents.json
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-magnifier-not-found.imageset/pos-magnifier-not-found.pdf b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-magnifier-not-found.imageset/pos-magnifier-not-found.pdf
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-magnifier-not-found.imageset/pos-magnifier-not-found.pdf
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-magnifier-not-found.imageset/pos-magnifier-not-found.pdf
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-reader-connection-battery.imageset/Contents.json b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-connection-battery.imageset/Contents.json
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-reader-connection-battery.imageset/Contents.json
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-connection-battery.imageset/Contents.json
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-reader-connection-battery.imageset/pos-reader-connection-battery-dark.pdf b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-connection-battery.imageset/pos-reader-connection-battery-dark.pdf
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-reader-connection-battery.imageset/pos-reader-connection-battery-dark.pdf
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-connection-battery.imageset/pos-reader-connection-battery-dark.pdf
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-reader-connection-battery.imageset/pos-reader-connection-battery-light.pdf b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-connection-battery.imageset/pos-reader-connection-battery-light.pdf
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-reader-connection-battery.imageset/pos-reader-connection-battery-light.pdf
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-connection-battery.imageset/pos-reader-connection-battery-light.pdf
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-reader-connection-complete.imageset/Contents.json b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-connection-complete.imageset/Contents.json
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-reader-connection-complete.imageset/Contents.json
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-connection-complete.imageset/Contents.json
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-reader-connection-complete.imageset/pos-reader-connection-success-light.pdf b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-connection-complete.imageset/pos-reader-connection-success-light.pdf
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-reader-connection-complete.imageset/pos-reader-connection-success-light.pdf
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-connection-complete.imageset/pos-reader-connection-success-light.pdf
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-reader-connection-error.imageset/Contents.json b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-connection-error.imageset/Contents.json
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-reader-connection-error.imageset/Contents.json
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-connection-error.imageset/Contents.json
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-reader-connection-error.imageset/pos-reader-connection-error-dark.pdf b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-connection-error.imageset/pos-reader-connection-error-dark.pdf
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-reader-connection-error.imageset/pos-reader-connection-error-dark.pdf
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-connection-error.imageset/pos-reader-connection-error-dark.pdf
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-reader-connection-error.imageset/pos-reader-connection-error-light.pdf b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-connection-error.imageset/pos-reader-connection-error-light.pdf
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-reader-connection-error.imageset/pos-reader-connection-error-light.pdf
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-connection-error.imageset/pos-reader-connection-error-light.pdf
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-reader-connection.imageset/Contents.json b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-connection.imageset/Contents.json
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-reader-connection.imageset/Contents.json
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-connection.imageset/Contents.json
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-reader-connection.imageset/pos-reader-connection-scanning-light.pdf b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-connection.imageset/pos-reader-connection-scanning-light.pdf
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-reader-connection.imageset/pos-reader-connection-scanning-light.pdf
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-connection.imageset/pos-reader-connection-scanning-light.pdf
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-reader-disconnected.imageset/Contents.json b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-disconnected.imageset/Contents.json
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-reader-disconnected.imageset/Contents.json
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-disconnected.imageset/Contents.json
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-reader-disconnected.imageset/pos-reader-disconnected-dark.pdf b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-disconnected.imageset/pos-reader-disconnected-dark.pdf
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-reader-disconnected.imageset/pos-reader-disconnected-dark.pdf
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-disconnected.imageset/pos-reader-disconnected-dark.pdf
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-reader-disconnected.imageset/pos-reader-disconnected.pdf b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-disconnected.imageset/pos-reader-disconnected.pdf
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-reader-disconnected.imageset/pos-reader-disconnected.pdf
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-reader-disconnected.imageset/pos-reader-disconnected.pdf
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-ready-for-payment.imageset/Contents.json b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-ready-for-payment.imageset/Contents.json
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-ready-for-payment.imageset/Contents.json
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-ready-for-payment.imageset/Contents.json
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-ready-for-payment.imageset/pos_ready_for_payment.pdf b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-ready-for-payment.imageset/pos_ready_for_payment.pdf
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-ready-for-payment.imageset/pos_ready_for_payment.pdf
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-ready-for-payment.imageset/pos_ready_for_payment.pdf
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-success-check.imageset/Contents.json b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-success-check.imageset/Contents.json
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-success-check.imageset/Contents.json
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-success-check.imageset/Contents.json
diff --git a/WooCommerce/Resources/Images.xcassets/POS/pos-success-check.imageset/pos-success-check.pdf b/Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-success-check.imageset/pos-success-check.pdf
similarity index 100%
rename from WooCommerce/Resources/Images.xcassets/POS/pos-success-check.imageset/pos-success-check.pdf
rename to Modules/Sources/PointOfSale/Resources/Images.xcassets/pos-success-check.imageset/pos-success-check.pdf
diff --git a/WooCommerce/Classes/POS/Utils/Audio/Resources/pos_scan_failure.mp3 b/Modules/Sources/PointOfSale/Resources/pos_scan_failure.mp3
similarity index 100%
rename from WooCommerce/Classes/POS/Utils/Audio/Resources/pos_scan_failure.mp3
rename to Modules/Sources/PointOfSale/Resources/pos_scan_failure.mp3
diff --git a/WooCommerce/Classes/POS/Utils/Audio/PointOfSaleSoundPlayer.swift b/Modules/Sources/PointOfSale/Utils/Audio/PointOfSaleSoundPlayer.swift
similarity index 94%
rename from WooCommerce/Classes/POS/Utils/Audio/PointOfSaleSoundPlayer.swift
rename to Modules/Sources/PointOfSale/Utils/Audio/PointOfSaleSoundPlayer.swift
index 61467fbb219..812f996f759 100644
--- a/WooCommerce/Classes/POS/Utils/Audio/PointOfSaleSoundPlayer.swift
+++ b/Modules/Sources/PointOfSale/Utils/Audio/PointOfSaleSoundPlayer.swift
@@ -1,3 +1,4 @@
+import CocoaLumberjackSwift
import Foundation
import AVFoundation
@@ -23,7 +24,7 @@ actor PointOfSaleSoundPlayer: NSObject, PointOfSaleSoundPlayerProtocol {
}
func playSound(_ sound: PointOfSaleSound, completion: @escaping (() -> Void)) async {
- guard let url = Bundle.main.url(forResource: sound.name, withExtension: sound.type) else {
+ guard let url = Bundle.module.url(forResource: sound.name, withExtension: sound.type) else {
DDLogError("Sound file not found: \(sound.name).\(sound.type)")
completion()
return
diff --git a/WooCommerce/Classes/POS/Utils/POSBrightnessControl.swift b/Modules/Sources/PointOfSale/Utils/POSBrightnessControl.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Utils/POSBrightnessControl.swift
rename to Modules/Sources/PointOfSale/Utils/POSBrightnessControl.swift
diff --git a/WooCommerce/Classes/POS/Utils/POSConstants.swift b/Modules/Sources/PointOfSale/Utils/POSConstants.swift
similarity index 81%
rename from WooCommerce/Classes/POS/Utils/POSConstants.swift
rename to Modules/Sources/PointOfSale/Utils/POSConstants.swift
index 4d480227df4..f3df9d0a3b7 100644
--- a/WooCommerce/Classes/POS/Utils/POSConstants.swift
+++ b/Modules/Sources/PointOfSale/Utils/POSConstants.swift
@@ -15,6 +15,11 @@ enum POSConstants {
/// URL for Point of Sale's barcode scanner documentation
///
case pointOfSaleBarcodeScannerDocumentation = "https://woocommerce.com/document/barcode-and-qr-code-scanner/"
+
+ /// URL for Point of Sale's IPP Woo Payments documentation
+ ///
+ case inPersonPaymentsLearnMoreWCPay =
+ "https://woocommerce.com/document/woocommerce-payments/in-person-payments/getting-started-with-in-person-payments/"
}
}
diff --git a/WooCommerce/Classes/POS/Utils/POSCornerRadiusStyle.swift b/Modules/Sources/PointOfSale/Utils/POSCornerRadiusStyle.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Utils/POSCornerRadiusStyle.swift
rename to Modules/Sources/PointOfSale/Utils/POSCornerRadiusStyle.swift
diff --git a/WooCommerce/Classes/POS/Utils/POSEnvironmentKeys.swift b/Modules/Sources/PointOfSale/Utils/POSEnvironmentKeys.swift
similarity index 97%
rename from WooCommerce/Classes/POS/Utils/POSEnvironmentKeys.swift
rename to Modules/Sources/PointOfSale/Utils/POSEnvironmentKeys.swift
index 93ac26a2b8a..4fc95cf77fb 100644
--- a/WooCommerce/Classes/POS/Utils/POSEnvironmentKeys.swift
+++ b/Modules/Sources/PointOfSale/Utils/POSEnvironmentKeys.swift
@@ -155,5 +155,8 @@ struct EmptyPOSExternalView: POSExternalViewProviding {
onSelection: @escaping (Coupon.DiscountType) -> Void) -> AnyView {
AnyView(EmptyView())
}
+ func createWCWebView(adminUrl: URL, completion: @escaping () -> Void) -> AnyView {
+ AnyView(EmptyView())
+ }
init() {}
}
diff --git a/WooCommerce/Classes/POS/Utils/POSErrorAndAlertIconSize.swift b/Modules/Sources/PointOfSale/Utils/POSErrorAndAlertIconSize.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Utils/POSErrorAndAlertIconSize.swift
rename to Modules/Sources/PointOfSale/Utils/POSErrorAndAlertIconSize.swift
diff --git a/WooCommerce/Classes/POS/Utils/POSFontStyle.swift b/Modules/Sources/PointOfSale/Utils/POSFontStyle.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Utils/POSFontStyle.swift
rename to Modules/Sources/PointOfSale/Utils/POSFontStyle.swift
diff --git a/WooCommerce/Classes/POS/Utils/POSPadding.swift b/Modules/Sources/PointOfSale/Utils/POSPadding.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Utils/POSPadding.swift
rename to Modules/Sources/PointOfSale/Utils/POSPadding.swift
diff --git a/WooCommerce/Classes/POS/Utils/POSReceiptSender.swift b/Modules/Sources/PointOfSale/Utils/POSReceiptSender.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Utils/POSReceiptSender.swift
rename to Modules/Sources/PointOfSale/Utils/POSReceiptSender.swift
diff --git a/WooCommerce/Classes/POS/Utils/POSShadowStyle.swift b/Modules/Sources/PointOfSale/Utils/POSShadowStyle.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Utils/POSShadowStyle.swift
rename to Modules/Sources/PointOfSale/Utils/POSShadowStyle.swift
diff --git a/WooCommerce/Classes/POS/Utils/POSSpacing.swift b/Modules/Sources/PointOfSale/Utils/POSSpacing.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Utils/POSSpacing.swift
rename to Modules/Sources/PointOfSale/Utils/POSSpacing.swift
diff --git a/WooCommerce/Classes/POS/Utils/POSStockFormatter.swift b/Modules/Sources/PointOfSale/Utils/POSStockFormatter.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Utils/POSStockFormatter.swift
rename to Modules/Sources/PointOfSale/Utils/POSStockFormatter.swift
diff --git a/WooCommerce/Classes/POS/Utils/PointOfSalePreviewOrderController.swift b/Modules/Sources/PointOfSale/Utils/PointOfSalePreviewOrderController.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Utils/PointOfSalePreviewOrderController.swift
rename to Modules/Sources/PointOfSale/Utils/PointOfSalePreviewOrderController.swift
diff --git a/WooCommerce/Classes/POS/Utils/PreviewHelpers.swift b/Modules/Sources/PointOfSale/Utils/PreviewHelpers.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Utils/PreviewHelpers.swift
rename to Modules/Sources/PointOfSale/Utils/PreviewHelpers.swift
diff --git a/WooCommerce/Classes/POS/ViewHelpers/CartViewHelper.swift b/Modules/Sources/PointOfSale/ViewHelpers/CartViewHelper.swift
similarity index 100%
rename from WooCommerce/Classes/POS/ViewHelpers/CartViewHelper.swift
rename to Modules/Sources/PointOfSale/ViewHelpers/CartViewHelper.swift
diff --git a/WooCommerce/Classes/POS/ViewHelpers/CollectCashViewHelper.swift b/Modules/Sources/PointOfSale/ViewHelpers/CollectCashViewHelper.swift
similarity index 99%
rename from WooCommerce/Classes/POS/ViewHelpers/CollectCashViewHelper.swift
rename to Modules/Sources/PointOfSale/ViewHelpers/CollectCashViewHelper.swift
index 5f4d86c56f9..8c77f0014b1 100644
--- a/WooCommerce/Classes/POS/ViewHelpers/CollectCashViewHelper.swift
+++ b/Modules/Sources/PointOfSale/ViewHelpers/CollectCashViewHelper.swift
@@ -1,3 +1,4 @@
+import CocoaLumberjackSwift
import Foundation
import SwiftUI
import WooFoundation
diff --git a/WooCommerce/Classes/POS/ViewHelpers/PointOfSaleDashboardViewHelper.swift b/Modules/Sources/PointOfSale/ViewHelpers/PointOfSaleDashboardViewHelper.swift
similarity index 100%
rename from WooCommerce/Classes/POS/ViewHelpers/PointOfSaleDashboardViewHelper.swift
rename to Modules/Sources/PointOfSale/ViewHelpers/PointOfSaleDashboardViewHelper.swift
diff --git a/WooCommerce/Classes/POS/ViewHelpers/TotalsViewHelper.swift b/Modules/Sources/PointOfSale/ViewHelpers/TotalsViewHelper.swift
similarity index 100%
rename from WooCommerce/Classes/POS/ViewHelpers/TotalsViewHelper.swift
rename to Modules/Sources/PointOfSale/ViewHelpers/TotalsViewHelper.swift
diff --git a/WooCommerce/WooCommerceTests/Testing/XCTestCase+PropertyCount.swift b/Modules/Sources/TestKit/XCTestCase+Count.swift
similarity index 92%
rename from WooCommerce/WooCommerceTests/Testing/XCTestCase+PropertyCount.swift
rename to Modules/Sources/TestKit/XCTestCase+Count.swift
index 3d72877f80a..2604112f6c5 100644
--- a/WooCommerce/WooCommerceTests/Testing/XCTestCase+PropertyCount.swift
+++ b/Modules/Sources/TestKit/XCTestCase+Count.swift
@@ -1,7 +1,7 @@
import XCTest
extension XCTestCase {
- func XCTAssertPropertyCount(_ instance: T,
+ public func XCTAssertPropertyCount(_ instance: T,
expectedCount: Int,
messageHint: String? = nil,
file: StaticString = #filePath,
diff --git a/Modules/Sources/Yosemite/Stores/CollectOrderPaymentUseCaseError.swift b/Modules/Sources/Yosemite/Stores/CollectOrderPaymentUseCaseError.swift
new file mode 100644
index 00000000000..9dca43717f8
--- /dev/null
+++ b/Modules/Sources/Yosemite/Stores/CollectOrderPaymentUseCaseError.swift
@@ -0,0 +1,80 @@
+import Foundation
+
+public enum CollectOrderPaymentUseCaseError: LocalizedError {
+ case flowCanceledByUser
+ case paymentGatewayNotFound
+ case orderTotalChanged
+ case couldNotRefreshOrder(Error)
+ case orderAlreadyPaid
+
+ public var errorDescription: String? {
+ switch self {
+ case .flowCanceledByUser:
+ return Localization.paymentCancelledLocalizedDescription
+ case .paymentGatewayNotFound:
+ return Localization.paymentGatewayNotFoundLocalizedDescription
+ case .orderTotalChanged:
+ return Localization.orderTotalChangedLocalizedDescription
+ case .couldNotRefreshOrder(let error as LocalizedError):
+ return error.errorDescription
+ case .couldNotRefreshOrder(let error):
+ return String.localizedStringWithFormat(Localization.couldNotRefreshOrderLocalizedDescription, error.localizedDescription)
+ case .orderAlreadyPaid:
+ return Localization.orderAlreadyPaidLocalizedDescription
+ }
+ }
+
+ private enum Localization {
+ static let couldNotRefreshOrderLocalizedDescription = NSLocalizedString(
+ "Unable to process payment. We could not fetch the latest order details. Please check your network " +
+ "connection and try again. Underlying error: %1$@",
+ comment: "Error message when collecting an In-Person Payment and unable to update the order. %!$@ will " +
+ "be replaced with further error details.")
+
+ static let orderTotalChangedLocalizedDescription = NSLocalizedString(
+ "collectOrderPaymentUseCase.error.message.orderTotalChanged",
+ value: "Order total has changed since the beginning of payment. Please go back and check the order is " +
+ "correct, then try the payment again.",
+ comment: "Error message when collecting an In-Person Payment and the order total has changed remotely.")
+
+ static let orderAlreadyPaidLocalizedDescription = NSLocalizedString(
+ "Unable to process payment. This order is already paid, taking a further payment would result in the " +
+ "customer being charged twice for their order.",
+ comment: "Error message shown during In-Person Payments when the order is found to be paid after it's refreshed.")
+
+ static let paymentGatewayNotFoundLocalizedDescription = NSLocalizedString(
+ "Unable to process payment. We could not connect to the payment system. Please contact support if this " +
+ "error continues.",
+ comment: "Error message shown during In-Person Payments when the payment gateway is not available.")
+
+ static let paymentCancelledLocalizedDescription = NSLocalizedString(
+ "The payment was cancelled.", comment: "Message shown if a payment cancellation is shown as an error.")
+ }
+}
+
+
+public enum CollectOrderPaymentUseCaseNotValidAmountError: Error, LocalizedError, Equatable {
+ case belowMinimumAmount(amount: String)
+ case other
+
+ public var errorDescription: String? {
+ switch self {
+ case .belowMinimumAmount(let amount):
+ return String.localizedStringWithFormat(Localization.belowMinimumAmount, amount)
+ case .other:
+ return Localization.defaultMessage
+ }
+ }
+
+ private enum Localization {
+ static let defaultMessage = NSLocalizedString(
+ "Unable to process payment. Order total amount is not valid.",
+ comment: "Error message when the order amount is not valid."
+ )
+
+ static let belowMinimumAmount = NSLocalizedString(
+ "Unable to process payment. Order total amount is below the minimum amount you can charge, which is %1$@",
+ comment: "Error message when the order amount is below the minimum amount allowed."
+ )
+ }
+}
diff --git a/WooCommerce/Classes/Tools/InfiniteScroll/AsyncPaginationTracker.swift b/Modules/Sources/Yosemite/Tools/AsyncPaginationTracker.swift
similarity index 85%
rename from WooCommerce/Classes/Tools/InfiniteScroll/AsyncPaginationTracker.swift
rename to Modules/Sources/Yosemite/Tools/AsyncPaginationTracker.swift
index 0c6026a3dae..e92735848fc 100644
--- a/WooCommerce/Classes/Tools/InfiniteScroll/AsyncPaginationTracker.swift
+++ b/Modules/Sources/Yosemite/Tools/AsyncPaginationTracker.swift
@@ -1,21 +1,20 @@
import Foundation
-import Yosemite
/// Async/await version of `PaginationTracker`, consider renaming `PaginationTracker` as deprecated and this class to `PaginationTracker`.
/// Keeps track of the pagination for API syncing to support infinite scroll and pull-to-refresh.
-final class AsyncPaginationTracker {
- typealias SyncFunction = (_ pageNumber: Int) async throws -> Bool
+public final class AsyncPaginationTracker {
+ public typealias SyncFunction = (_ pageNumber: Int) async throws -> Bool
/// State of loading the next page in `ensureNextPageIsSynced`.
- enum NextPageSyncState {
+ public enum NextPageSyncState {
case syncing
case synced
case noNextPage
}
/// Default pagination settings.
- enum Defaults {
- static let pageFirstIndex = Store.Default.firstPageNumber
+ public enum Defaults {
+ public static let pageFirstIndex = Store.Default.firstPageNumber
}
/// The index of the first page in the API. So far, both Woo and WP.com API have the first page index at 1.
@@ -28,7 +27,7 @@ final class AsyncPaginationTracker {
private var pagesBeingSynced = IndexSet()
/// Whether there might be more pages to fetch from the API, set by the sync function.
- private(set) var hasNextPage: Bool = true
+ private(set) public var hasNextPage: Bool = true
/// Returns the highest page number that has been successfully synced, if any.
private var highestPageSynced: Int? {
@@ -36,7 +35,7 @@ final class AsyncPaginationTracker {
}
/// Designated Initializer
- init(pageFirstIndex: Int = Defaults.pageFirstIndex) {
+ public init(pageFirstIndex: Int = Defaults.pageFirstIndex) {
self.pageFirstIndex = pageFirstIndex
}
@@ -45,7 +44,7 @@ final class AsyncPaginationTracker {
/// 1. Proceed only if there is next page to sync.
/// 2. Verify if the next page isn't currently being synced.
/// 3. Proceed syncing the next page.
- func ensureNextPageIsSynced(syncFunction: @escaping SyncFunction) async throws -> NextPageSyncState {
+ public func ensureNextPageIsSynced(syncFunction: @escaping SyncFunction) async throws -> NextPageSyncState {
guard hasNextPage else {
return .noNextPage
}
@@ -64,14 +63,14 @@ final class AsyncPaginationTracker {
/// Resets internal states and resyncs the first page of results.
///
- func resync(syncFunction: @escaping SyncFunction) async throws {
+ public func resync(syncFunction: @escaping SyncFunction) async throws {
resetInternalState()
try await syncFirstPage(syncFunction: syncFunction)
}
/// Syncs the first page of results.
///
- func syncFirstPage(syncFunction: @escaping SyncFunction) async throws {
+ public func syncFirstPage(syncFunction: @escaping SyncFunction) async throws {
try await sync(pageNumber: pageFirstIndex, syncFunction: syncFunction)
}
}
diff --git a/WooCommerce/Classes/ViewModels/CardPresentPayments/PaymentCaptureCelebration.swift b/Modules/Sources/Yosemite/Tools/Payments/PaymentCaptureCelebration.swift
similarity index 82%
rename from WooCommerce/Classes/ViewModels/CardPresentPayments/PaymentCaptureCelebration.swift
rename to Modules/Sources/Yosemite/Tools/Payments/PaymentCaptureCelebration.swift
index fb629d98df7..cfd3920e18a 100644
--- a/WooCommerce/Classes/ViewModels/CardPresentPayments/PaymentCaptureCelebration.swift
+++ b/Modules/Sources/Yosemite/Tools/Payments/PaymentCaptureCelebration.swift
@@ -2,16 +2,20 @@ import AudioToolbox
import UIKit
/// Allows mocking payment capture celebration UX so that the cha-ching sounds aren't played in unit testing.
-protocol PaymentCaptureCelebrationProtocol {
+public protocol PaymentCaptureCelebrationProtocol {
/// Called when a payment is captured successfully.
func celebrate()
}
/// Plays a sound and provides haptic feedback when a payment capture has been completed successfully
-final class PaymentCaptureCelebration: NSObject, PaymentCaptureCelebrationProtocol {
+public final class PaymentCaptureCelebration: NSObject, PaymentCaptureCelebrationProtocol {
private var soundID: SystemSoundID = 0
- func celebrate() {
+ public override init() {
+ super.init()
+ }
+
+ public func celebrate() {
playSound()
shakeDevice()
}
diff --git a/WooCommerce/WooCommerceTests/POS/Card Present Payments/CardPresentPaymentRetryApproachTests.swift b/Modules/Tests/PointOfSaleTests/Card Present Payments/CardPresentPaymentRetryApproachTests.swift
similarity index 97%
rename from WooCommerce/WooCommerceTests/POS/Card Present Payments/CardPresentPaymentRetryApproachTests.swift
rename to Modules/Tests/PointOfSaleTests/Card Present Payments/CardPresentPaymentRetryApproachTests.swift
index 36ab6c1798c..e1cc98351f6 100644
--- a/WooCommerce/WooCommerceTests/POS/Card Present Payments/CardPresentPaymentRetryApproachTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Card Present Payments/CardPresentPaymentRetryApproachTests.swift
@@ -1,5 +1,5 @@
import XCTest
-@testable import enum WooCommerce.CardPresentPaymentRetryApproach
+@testable import enum PointOfSale.CardPresentPaymentRetryApproach
import enum Yosemite.CardReaderServiceError
import enum Yosemite.CardReaderServiceUnderlyingError
diff --git a/WooCommerce/WooCommerceTests/POS/Card Present Payments/CardPresentPaymentsModalButtonViewModelTests.swift b/Modules/Tests/PointOfSaleTests/Card Present Payments/CardPresentPaymentsModalButtonViewModelTests.swift
similarity index 96%
rename from WooCommerce/WooCommerceTests/POS/Card Present Payments/CardPresentPaymentsModalButtonViewModelTests.swift
rename to Modules/Tests/PointOfSaleTests/Card Present Payments/CardPresentPaymentsModalButtonViewModelTests.swift
index 40bf9794e14..299db454a16 100644
--- a/WooCommerce/WooCommerceTests/POS/Card Present Payments/CardPresentPaymentsModalButtonViewModelTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Card Present Payments/CardPresentPaymentsModalButtonViewModelTests.swift
@@ -1,5 +1,5 @@
import XCTest
-@testable import WooCommerce
+@testable import PointOfSale
final class CardPresentPaymentsModalButtonViewModelTests: XCTestCase {
diff --git a/WooCommerce/WooCommerceTests/POS/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressAlertViewModelTests.swift b/Modules/Tests/PointOfSaleTests/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressAlertViewModelTests.swift
similarity index 96%
rename from WooCommerce/WooCommerceTests/POS/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressAlertViewModelTests.swift
rename to Modules/Tests/PointOfSaleTests/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressAlertViewModelTests.swift
index a4f8a5f6ca5..7853f5c5cdc 100644
--- a/WooCommerce/WooCommerceTests/POS/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressAlertViewModelTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressAlertViewModelTests.swift
@@ -1,5 +1,6 @@
+import TestKit
import XCTest
-@testable import WooCommerce
+@testable import PointOfSale
final class PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressAlertViewModelTests: XCTestCase {
diff --git a/WooCommerce/WooCommerceTests/POS/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectionSuccessAlertViewModelTests.swift b/Modules/Tests/PointOfSaleTests/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectionSuccessAlertViewModelTests.swift
similarity index 98%
rename from WooCommerce/WooCommerceTests/POS/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectionSuccessAlertViewModelTests.swift
rename to Modules/Tests/PointOfSaleTests/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectionSuccessAlertViewModelTests.swift
index a67cd8ab712..8d5b997c21e 100644
--- a/WooCommerce/WooCommerceTests/POS/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectionSuccessAlertViewModelTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentConnectionSuccessAlertViewModelTests.swift
@@ -1,6 +1,6 @@
import XCTest
@testable import WooFoundation
-@testable import WooCommerce
+@testable import PointOfSale
final class PointOfSaleCardPresentPaymentConnectionSuccessAlertViewModelTests: XCTestCase {
diff --git a/WooCommerce/WooCommerceTests/POS/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentFoundMultipleReadersAlertViewModelTests.swift b/Modules/Tests/PointOfSaleTests/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentFoundMultipleReadersAlertViewModelTests.swift
similarity index 97%
rename from WooCommerce/WooCommerceTests/POS/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentFoundMultipleReadersAlertViewModelTests.swift
rename to Modules/Tests/PointOfSaleTests/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentFoundMultipleReadersAlertViewModelTests.swift
index 89c7e1c3d79..250825221bd 100644
--- a/WooCommerce/WooCommerceTests/POS/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentFoundMultipleReadersAlertViewModelTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentFoundMultipleReadersAlertViewModelTests.swift
@@ -1,5 +1,5 @@
import XCTest
-@testable import WooCommerce
+@testable import PointOfSale
final class PointOfSaleCardPresentPaymentFoundMultipleReadersAlertViewModelTests: XCTestCase {
diff --git a/WooCommerce/WooCommerceTests/POS/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressAlertViewModelTests.swift b/Modules/Tests/PointOfSaleTests/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressAlertViewModelTests.swift
similarity index 97%
rename from WooCommerce/WooCommerceTests/POS/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressAlertViewModelTests.swift
rename to Modules/Tests/PointOfSaleTests/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressAlertViewModelTests.swift
index 294d9db641e..a14ac6ff639 100644
--- a/WooCommerce/WooCommerceTests/POS/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressAlertViewModelTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressAlertViewModelTests.swift
@@ -1,5 +1,5 @@
import XCTest
-@testable import WooCommerce
+@testable import PointOfSale
final class PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressAlertViewModelTests: XCTestCase {
diff --git a/WooCommerce/WooCommerceTests/POS/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateCompletionAlertViewModelTests.swift b/Modules/Tests/PointOfSaleTests/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateCompletionAlertViewModelTests.swift
similarity index 96%
rename from WooCommerce/WooCommerceTests/POS/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateCompletionAlertViewModelTests.swift
rename to Modules/Tests/PointOfSaleTests/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateCompletionAlertViewModelTests.swift
index b77f1566683..99483845cf0 100644
--- a/WooCommerce/WooCommerceTests/POS/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateCompletionAlertViewModelTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentReaderUpdateCompletionAlertViewModelTests.swift
@@ -1,5 +1,5 @@
import XCTest
-@testable import WooCommerce
+@testable import PointOfSale
final class PointOfSaleCardPresentPaymentReaderUpdateCompletionAlertViewModelTests: XCTestCase {
diff --git a/WooCommerce/WooCommerceTests/POS/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressAlertViewModelTests.swift b/Modules/Tests/PointOfSaleTests/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressAlertViewModelTests.swift
similarity index 97%
rename from WooCommerce/WooCommerceTests/POS/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressAlertViewModelTests.swift
rename to Modules/Tests/PointOfSaleTests/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressAlertViewModelTests.swift
index 2d5ad782db4..be377f8ce07 100644
--- a/WooCommerce/WooCommerceTests/POS/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressAlertViewModelTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Card Present Payments/Connection Alerts/PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressAlertViewModelTests.swift
@@ -1,5 +1,5 @@
import XCTest
-@testable import WooCommerce
+@testable import PointOfSale
final class PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressAlertViewModelTests: XCTestCase {
diff --git a/WooCommerce/WooCommerceTests/POS/Card Present Payments/PointOfSaleCardPresentPaymentCaptureErrorMessageViewModelTests.swift b/Modules/Tests/PointOfSaleTests/Card Present Payments/PointOfSaleCardPresentPaymentCaptureErrorMessageViewModelTests.swift
similarity index 94%
rename from WooCommerce/WooCommerceTests/POS/Card Present Payments/PointOfSaleCardPresentPaymentCaptureErrorMessageViewModelTests.swift
rename to Modules/Tests/PointOfSaleTests/Card Present Payments/PointOfSaleCardPresentPaymentCaptureErrorMessageViewModelTests.swift
index 15cd4a21062..9364e519f68 100644
--- a/WooCommerce/WooCommerceTests/POS/Card Present Payments/PointOfSaleCardPresentPaymentCaptureErrorMessageViewModelTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Card Present Payments/PointOfSaleCardPresentPaymentCaptureErrorMessageViewModelTests.swift
@@ -1,5 +1,5 @@
import XCTest
-@testable import WooCommerce
+@testable import PointOfSale
final class PointOfSaleCardPresentPaymentCaptureErrorMessageViewModelTests: XCTestCase {
func test_manual_equatable_conformance_number_of_properties_unchanged() {
diff --git a/WooCommerce/WooCommerceTests/POS/Card Present Payments/PointOfSaleCardPresentPaymentEventPresentationStyleTests.swift b/Modules/Tests/PointOfSaleTests/Card Present Payments/PointOfSaleCardPresentPaymentEventPresentationStyleTests.swift
similarity index 99%
rename from WooCommerce/WooCommerceTests/POS/Card Present Payments/PointOfSaleCardPresentPaymentEventPresentationStyleTests.swift
rename to Modules/Tests/PointOfSaleTests/Card Present Payments/PointOfSaleCardPresentPaymentEventPresentationStyleTests.swift
index 277168e8d1d..97ad7dd4306 100644
--- a/WooCommerce/WooCommerceTests/POS/Card Present Payments/PointOfSaleCardPresentPaymentEventPresentationStyleTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Card Present Payments/PointOfSaleCardPresentPaymentEventPresentationStyleTests.swift
@@ -1,5 +1,5 @@
import XCTest
-@testable import WooCommerce
+@testable import PointOfSale
final class PointOfSaleCardPresentPaymentEventPresentationStyleTests: XCTestCase {
diff --git a/WooCommerce/WooCommerceTests/POS/Controllers/POSEntryPointControllerTests.swift b/Modules/Tests/PointOfSaleTests/Controllers/POSEntryPointControllerTests.swift
similarity index 97%
rename from WooCommerce/WooCommerceTests/POS/Controllers/POSEntryPointControllerTests.swift
rename to Modules/Tests/PointOfSaleTests/Controllers/POSEntryPointControllerTests.swift
index 320ab7dcc09..6cbfc0719d0 100644
--- a/WooCommerce/WooCommerceTests/POS/Controllers/POSEntryPointControllerTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Controllers/POSEntryPointControllerTests.swift
@@ -1,5 +1,5 @@
import Testing
-@testable import WooCommerce
+@testable import PointOfSale
struct POSEntryPointControllerTests {
@Test func eligibilityState_is_set_to_ineligible_when_checker_returns_ineligible() async throws {
diff --git a/WooCommerce/WooCommerceTests/POS/Controllers/POSOrderListControllerTests.swift b/Modules/Tests/PointOfSaleTests/Controllers/POSOrderListControllerTests.swift
similarity index 99%
rename from WooCommerce/WooCommerceTests/POS/Controllers/POSOrderListControllerTests.swift
rename to Modules/Tests/PointOfSaleTests/Controllers/POSOrderListControllerTests.swift
index be8162bad3d..369df125523 100644
--- a/WooCommerce/WooCommerceTests/POS/Controllers/POSOrderListControllerTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Controllers/POSOrderListControllerTests.swift
@@ -1,6 +1,6 @@
import Testing
import Foundation
-@testable import WooCommerce
+@testable import PointOfSale
import enum Yosemite.POSOrderListServiceError
import struct NetworkingCore.Order
import Observation
diff --git a/WooCommerce/WooCommerceTests/POS/Controllers/PointOfSaleCouponsControllerTests.swift b/Modules/Tests/PointOfSaleTests/Controllers/PointOfSaleCouponsControllerTests.swift
similarity index 94%
rename from WooCommerce/WooCommerceTests/POS/Controllers/PointOfSaleCouponsControllerTests.swift
rename to Modules/Tests/PointOfSaleTests/Controllers/PointOfSaleCouponsControllerTests.swift
index 7b681733eb4..19eec29f724 100644
--- a/WooCommerce/WooCommerceTests/POS/Controllers/PointOfSaleCouponsControllerTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Controllers/PointOfSaleCouponsControllerTests.swift
@@ -1,23 +1,14 @@
-@testable import WooCommerce
+@testable import PointOfSale
import Testing
import Foundation
-import struct Yosemite.PointOfSaleCouponFetchStrategyFactory
import class WooFoundation.CurrencySettings
-import struct Yosemite.Site
-import Combine
+import Yosemite
struct PointOfSaleCouponsControllerTests {
- private let fetchStrategyFactory: PointOfSaleCouponFetchStrategyFactory
+ private let fetchStrategyFactory: MockPointOfSaleCouponFetchStrategyFactory
init() {
- fetchStrategyFactory = PointOfSaleCouponFetchStrategyFactory(
- siteID: 123,
- currencySettings: CurrencySettings(),
- credentials: nil,
- selectedSite: Just(Site.fake()).map { $0.toJetpackSite() }.eraseToAnyPublisher(),
- appPasswordSupportState: Just(false).eraseToAnyPublisher(),
- storage: MockStorageManager()
- )
+ fetchStrategyFactory = MockPointOfSaleCouponFetchStrategyFactory()
}
@Test func loadItems_when_empty_coupons_then_results_in_empty_state() async throws {
@@ -337,3 +328,21 @@ struct PointOfSaleCouponsControllerTests {
#expect(sut.itemsViewState == initialState)
}
}
+
+final class MockPointOfSaleCouponFetchStrategyFactory: PointOfSaleCouponFetchStrategyFactoryProtocol {
+ let defaultStrategy: PointOfSaleCouponFetchStrategy = MockPointOfSaleCouponFetchStrategy()
+
+ func searchStrategy(searchTerm: String, analytics: POSItemFetchAnalyticsTracking) -> PointOfSaleCouponFetchStrategy {
+ PointOfSaleCouponFetchStrategyPreview()
+ }
+}
+
+final class MockPointOfSaleCouponFetchStrategy: PointOfSaleCouponFetchStrategy {
+ func fetchCoupons(pageNumber: Int) async throws -> PagedItems {
+ .init(items: [], hasMorePages: false, totalItems: nil)
+ }
+
+ func fetchLocalCoupons() async throws -> [POSItem] {
+ []
+ }
+}
diff --git a/WooCommerce/WooCommerceTests/POS/Controllers/PointOfSaleItemsControllerTests.swift b/Modules/Tests/PointOfSaleTests/Controllers/PointOfSaleItemsControllerTests.swift
similarity index 99%
rename from WooCommerce/WooCommerceTests/POS/Controllers/PointOfSaleItemsControllerTests.swift
rename to Modules/Tests/PointOfSaleTests/Controllers/PointOfSaleItemsControllerTests.swift
index 15dfa6ed1b2..92c37a83792 100644
--- a/WooCommerce/WooCommerceTests/POS/Controllers/PointOfSaleItemsControllerTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Controllers/PointOfSaleItemsControllerTests.swift
@@ -1,6 +1,6 @@
import Testing
import Foundation
-@testable import WooCommerce
+@testable import PointOfSale
import struct Yosemite.POSVariableParentProduct
import enum Yosemite.POSItem
import enum Yosemite.PointOfSaleItemServiceError
diff --git a/WooCommerce/WooCommerceTests/POS/Controllers/PointOfSaleOrderControllerTests.swift b/Modules/Tests/PointOfSaleTests/Controllers/PointOfSaleOrderControllerTests.swift
similarity index 99%
rename from WooCommerce/WooCommerceTests/POS/Controllers/PointOfSaleOrderControllerTests.swift
rename to Modules/Tests/PointOfSaleTests/Controllers/PointOfSaleOrderControllerTests.swift
index 9ffd927fbdd..e112e6d026a 100644
--- a/WooCommerce/WooCommerceTests/POS/Controllers/PointOfSaleOrderControllerTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Controllers/PointOfSaleOrderControllerTests.swift
@@ -2,7 +2,7 @@ import Testing
import Observation
import Foundation
-@testable import WooCommerce
+@testable import PointOfSale
import struct Yosemite.Order
import struct Yosemite.OrderItem
import struct Yosemite.OrderCouponLine
diff --git a/WooCommerce/WooCommerceTests/POS/Controllers/PointOfSaleSettingsControllerTests.swift b/Modules/Tests/PointOfSaleTests/Controllers/PointOfSaleSettingsControllerTests.swift
similarity index 97%
rename from WooCommerce/WooCommerceTests/POS/Controllers/PointOfSaleSettingsControllerTests.swift
rename to Modules/Tests/PointOfSaleTests/Controllers/PointOfSaleSettingsControllerTests.swift
index 3503173d117..c3f0115ef32 100644
--- a/WooCommerce/WooCommerceTests/POS/Controllers/PointOfSaleSettingsControllerTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Controllers/PointOfSaleSettingsControllerTests.swift
@@ -1,12 +1,11 @@
import Testing
import Foundation
-@testable import WooCommerce
+@testable import PointOfSale
@testable import Yosemite
import Storage
struct PointOfSaleSettingsControllerTests {
private let mockSettingsService = MockPointOfSaleSettingsService()
- private let mockStorageManager = MockStorageManager()
private let mockCardPresentPaymentService = MockCardPresentPaymentService()
private let mockPluginService = MockPluginsService()
private let sampleSiteID: Int64 = 123
diff --git a/Modules/Tests/PointOfSaleTests/Mocks/MockAnalytics.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockAnalytics.swift
new file mode 100644
index 00000000000..31d248a97c3
--- /dev/null
+++ b/Modules/Tests/PointOfSaleTests/Mocks/MockAnalytics.swift
@@ -0,0 +1,29 @@
+import Foundation
+import WooFoundation
+@testable import PointOfSale
+
+final class MockPOSAnalytics: POSAnalyticsProviding {
+ struct TrackedEvent {
+ let eventName: String
+ let properties: [AnyHashable: Any]
+ let error: Error?
+ }
+
+ var events: [TrackedEvent] = []
+
+ func track(event: WooAnalyticsEvent) {
+ events.append(TrackedEvent(eventName: event.statName.rawValue, properties: event.properties, error: event.error))
+ }
+
+ func track(_ stat: WooAnalyticsStat, parameters: [String: WooAnalyticsEventPropertyType] = [:], error: Error) {
+ events.append(TrackedEvent(eventName: stat.rawValue, properties: parameters, error: error))
+ }
+
+ func track(_ stat: WooAnalyticsStat, parameters: [String: WooAnalyticsEventPropertyType] = [:]) {
+ events.append(TrackedEvent(eventName: stat.rawValue, properties: parameters, error: nil))
+ }
+
+ func track(_ stat: WooAnalyticsStat) {
+ events.append(TrackedEvent(eventName: stat.rawValue, properties: [:], error: nil))
+ }
+}
diff --git a/WooCommerce/WooCommerceTests/POS/Mocks/MockCardPresentPaymentService.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockCardPresentPaymentService.swift
similarity index 98%
rename from WooCommerce/WooCommerceTests/POS/Mocks/MockCardPresentPaymentService.swift
rename to Modules/Tests/PointOfSaleTests/Mocks/MockCardPresentPaymentService.swift
index eab98688e5f..3bf4fdacc16 100644
--- a/WooCommerce/WooCommerceTests/POS/Mocks/MockCardPresentPaymentService.swift
+++ b/Modules/Tests/PointOfSaleTests/Mocks/MockCardPresentPaymentService.swift
@@ -2,7 +2,7 @@ import Foundation
import Combine
import enum Yosemite.PaymentChannel
import struct Yosemite.Order
-@testable import WooCommerce
+@testable import PointOfSale
final class MockCardPresentPaymentService: CardPresentPaymentFacade {
// MARK: - Variables for emitting events in unit tests
diff --git a/Modules/Tests/PointOfSaleTests/Mocks/MockFeatureFlagService.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockFeatureFlagService.swift
new file mode 100644
index 00000000000..f76817d0f81
--- /dev/null
+++ b/Modules/Tests/PointOfSaleTests/Mocks/MockFeatureFlagService.swift
@@ -0,0 +1,131 @@
+@testable import PointOfSale
+import Experiments
+
+final class MockFeatureFlagService: POSFeatureFlagProviding {
+ var isInboxOn: Bool
+ var isShowInboxCTAEnabled: Bool
+ var isUpdateOrderOptimisticallyOn: Bool
+ var shippingLabelsOnboardingM1: Bool
+ var isSupportRequestEnabled: Bool
+ var jetpackSetupWithApplicationPassword: Bool
+ var betterCustomerSelectionInOrder: Bool
+ var productBundlesInOrderForm: Bool
+ var isScanToUpdateInventoryEnabled: Bool
+ var isSubscriptionsInOrderCreationCustomersEnabled: Bool
+ var isSubscriptionsInOrderCreationUIEnabled: Bool
+ var isPointOfSaleEnabled: Bool
+ var googleAdsCampaignCreationOnWebView: Bool
+ var blazeEvergreenCampaigns: Bool
+ var blazeCampaignObjective: Bool
+ var revampedShippingLabelCreation: Bool
+ var hideSitesInStorePicker: Bool
+ var backgroundProductImageUpload: Bool
+ var notificationSettings: Bool
+ var allowMerchantAIAPIKey: Bool
+ var isProductImageOptimizedHandlingEnabled: Bool
+ var isFeatureFlagEnabledReturnValue: [FeatureFlag: Bool] = [:]
+ var isCIABBookingsEnabled: Bool
+
+ init(isInboxOn: Bool = false,
+ isShowInboxCTAEnabled: Bool = false,
+ isUpdateOrderOptimisticallyOn: Bool = false,
+ shippingLabelsOnboardingM1: Bool = false,
+ isSupportRequestEnabled: Bool = false,
+ jetpackSetupWithApplicationPassword: Bool = false,
+ betterCustomerSelectionInOrder: Bool = false,
+ productBundlesInOrderForm: Bool = false,
+ isScanToUpdateInventoryEnabled: Bool = false,
+ isSubscriptionsInOrderCreationCustomersEnabled: Bool = false,
+ isSubscriptionsInOrderCreationUIEnabled: Bool = false,
+ isPointOfSaleEnabled: Bool = false,
+ googleAdsCampaignCreationOnWebView: Bool = false,
+ blazeEvergreenCampaigns: Bool = false,
+ blazeCampaignObjective: Bool = false,
+ revampedShippingLabelCreation: Bool = false,
+ hideSitesInStorePicker: Bool = false,
+ backgroundProductImageUpload: Bool = false,
+ notificationSettings: Bool = false,
+ allowMerchantAIAPIKey: Bool = false,
+ isProductImageOptimizedHandlingEnabled: Bool = false,
+ isCIABBookingsEnabled: Bool = false) {
+ self.isInboxOn = isInboxOn
+ self.isShowInboxCTAEnabled = isShowInboxCTAEnabled
+ self.isUpdateOrderOptimisticallyOn = isUpdateOrderOptimisticallyOn
+ self.shippingLabelsOnboardingM1 = shippingLabelsOnboardingM1
+ self.isSupportRequestEnabled = isSupportRequestEnabled
+ self.jetpackSetupWithApplicationPassword = jetpackSetupWithApplicationPassword
+ self.betterCustomerSelectionInOrder = betterCustomerSelectionInOrder
+ self.productBundlesInOrderForm = productBundlesInOrderForm
+ self.isScanToUpdateInventoryEnabled = isScanToUpdateInventoryEnabled
+ self.isSubscriptionsInOrderCreationCustomersEnabled = isSubscriptionsInOrderCreationCustomersEnabled
+ self.isSubscriptionsInOrderCreationUIEnabled = isSubscriptionsInOrderCreationUIEnabled
+ self.isPointOfSaleEnabled = isPointOfSaleEnabled
+ self.googleAdsCampaignCreationOnWebView = googleAdsCampaignCreationOnWebView
+ self.blazeEvergreenCampaigns = blazeEvergreenCampaigns
+ self.blazeCampaignObjective = blazeCampaignObjective
+ self.revampedShippingLabelCreation = revampedShippingLabelCreation
+ self.hideSitesInStorePicker = hideSitesInStorePicker
+ self.backgroundProductImageUpload = backgroundProductImageUpload
+ self.notificationSettings = notificationSettings
+ self.allowMerchantAIAPIKey = allowMerchantAIAPIKey
+ self.isProductImageOptimizedHandlingEnabled = isProductImageOptimizedHandlingEnabled
+ self.isCIABBookingsEnabled = isCIABBookingsEnabled
+ }
+
+ func isFeatureFlagEnabled(_ featureFlag: FeatureFlag) -> Bool {
+ // Checks if we a custom return value is set for a specific flag.
+ if let customValue = isFeatureFlagEnabledReturnValue[featureFlag] {
+ return customValue
+ }
+
+ // Otherwise uses the default implementation.
+ switch featureFlag {
+ case .inbox:
+ return isInboxOn
+ case .showInboxCTA:
+ return isShowInboxCTAEnabled
+ case .updateOrderOptimistically:
+ return isUpdateOrderOptimisticallyOn
+ case .shippingLabelsOnboardingM1:
+ return shippingLabelsOnboardingM1
+ case .supportRequests:
+ return isSupportRequestEnabled
+ case .jetpackSetupWithApplicationPassword:
+ return jetpackSetupWithApplicationPassword
+ case .betterCustomerSelectionInOrder:
+ return betterCustomerSelectionInOrder
+ case .productBundlesInOrderForm:
+ return productBundlesInOrderForm
+ case .scanToUpdateInventory:
+ return isScanToUpdateInventoryEnabled
+ case .subscriptionsInOrderCreationCustomers:
+ return isSubscriptionsInOrderCreationCustomersEnabled
+ case .subscriptionsInOrderCreationUI:
+ return isSubscriptionsInOrderCreationUIEnabled
+ case .pointOfSale:
+ return isPointOfSaleEnabled
+ case .googleAdsCampaignCreationOnWebView:
+ return googleAdsCampaignCreationOnWebView
+ case .blazeEvergreenCampaigns:
+ return blazeEvergreenCampaigns
+ case .blazeCampaignObjective:
+ return blazeCampaignObjective
+ case .revampedShippingLabelCreation:
+ return revampedShippingLabelCreation
+ case .hideSitesInStorePicker:
+ return hideSitesInStorePicker
+ case .backgroundProductImageUpload:
+ return backgroundProductImageUpload
+ case .notificationSettings:
+ return notificationSettings
+ case .allowMerchantAIAPIKey:
+ return allowMerchantAIAPIKey
+ case .productImageOptimizedHandling:
+ return isProductImageOptimizedHandlingEnabled
+ case .ciabBookings:
+ return isCIABBookingsEnabled
+ default:
+ return false
+ }
+ }
+}
diff --git a/WooCommerce/WooCommerceTests/POS/Mocks/MockOnboardingViewFactoryConfiguration.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockOnboardingViewFactoryConfiguration.swift
similarity index 91%
rename from WooCommerce/WooCommerceTests/POS/Mocks/MockOnboardingViewFactoryConfiguration.swift
rename to Modules/Tests/PointOfSaleTests/Mocks/MockOnboardingViewFactoryConfiguration.swift
index 1d82b4de5cd..364ba2f9ed8 100644
--- a/WooCommerce/WooCommerceTests/POS/Mocks/MockOnboardingViewFactoryConfiguration.swift
+++ b/Modules/Tests/PointOfSaleTests/Mocks/MockOnboardingViewFactoryConfiguration.swift
@@ -1,6 +1,6 @@
import Foundation
import enum Yosemite.CardPresentPaymentOnboardingState
-@testable import WooCommerce
+@testable import PointOfSale
class MockOnboardingViewContainerConfiguration: CardPresentPaymentsOnboardingViewConfiguration {
var showSupport: (() -> Void)?
diff --git a/Modules/Tests/PointOfSaleTests/Mocks/MockOrders.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockOrders.swift
new file mode 100644
index 00000000000..41e132031b5
--- /dev/null
+++ b/Modules/Tests/PointOfSaleTests/Mocks/MockOrders.swift
@@ -0,0 +1,244 @@
+import Fakes
+import Foundation
+import Yosemite
+
+final class MockOrders {
+ let siteID: Int64 = 1234
+ let orderID: Int64 = 5678
+
+ /// Returns an `Order` with empty values. Use `copy()` to modify them.
+ func empty() -> Order {
+ Order.fake()
+ }
+
+ func makeOrder(status: OrderStatusEnum = .processing,
+ items: [OrderItem] = [],
+ shippingLines: [ShippingLine] = sampleShippingLines(),
+ refunds: [OrderRefundCondensed] = [],
+ fees: [OrderFeeLine] = [],
+ taxes: [OrderTaxLine] = [],
+ customFields: [MetaData] = [],
+ giftCards: [OrderGiftCard] = []) -> Order {
+ return Order.fake().copy(siteID: siteID,
+ orderID: orderID,
+ customerID: 11,
+ orderKey: "abc123",
+ number: "963",
+ status: status,
+ currency: "USD",
+ customerNote: "",
+ dateCreated: DateFormatter.dateFromString(with: "2018-04-03T23:05:12"),
+ dateModified: DateFormatter.dateFromString(with: "2018-04-03T23:05:14"),
+ datePaid: DateFormatter.dateFromString(with: "2018-04-03T23:05:14"),
+ discountTotal: "30.00",
+ discountTax: "1.20",
+ shippingTotal: "0.00",
+ shippingTax: "0.00",
+ total: "31.20",
+ totalTax: "1.20",
+ paymentMethodID: "stripe",
+ paymentMethodTitle: "Credit Card (Stripe)",
+ items: items,
+ billingAddress: sampleAddress(),
+ shippingAddress: sampleAddress(),
+ shippingLines: shippingLines,
+ refunds: refunds,
+ fees: fees,
+ taxes: taxes,
+ customFields: customFields,
+ appliedGiftCards: giftCards)
+ }
+
+ func sampleOrder() -> Order {
+ makeOrder()
+ }
+
+ func sampleOrderWithItems() -> Order {
+ makeOrder(items: sampleOrderItems())
+ }
+
+ func orderWithFees() -> Order {
+ makeOrder(fees: sampleFeeLines())
+ }
+
+ func orderWithFeesAndGiftCards() -> Order {
+ makeOrder(fees: sampleFeeLines(),
+ giftCards: sampleGiftCards())
+ }
+
+ func orderPaidWithNoPaymentMethod() -> Order {
+ return Order.fake().copy(
+ datePaid: DateFormatter.dateFromString(with: "2018-04-03T23:05:14"),
+ paymentMethodID: "",
+ paymentMethodTitle: "")
+ }
+
+ func orderWithAPIRefunds() -> Order {
+ makeOrder(refunds: refundsWithNegativeValue())
+ }
+
+ func orderWithTransientRefunds() -> Order {
+ makeOrder(refunds: refundsWithPositiveValue())
+ }
+
+ func sampleOrderCreatedInCurrentYear() -> Order {
+ return Order.fake().copy(siteID: siteID,
+ orderID: orderID,
+ customerID: 11,
+ orderKey: "abc123",
+ number: "963",
+ status: .processing,
+ currency: "USD",
+ customerNote: "",
+ datePaid: Date(),
+ discountTotal: "30.00",
+ discountTax: "1.20",
+ shippingTotal: "0.00",
+ shippingTax: "0.00",
+ total: "31.20",
+ totalTax: "1.20",
+ paymentMethodID: "stripe",
+ paymentMethodTitle: "Credit Card (Stripe)",
+ billingAddress: sampleAddress(),
+ shippingAddress: sampleAddress(),
+ shippingLines: Self.sampleShippingLines())
+ }
+
+ static func sampleShippingLines(cost: String = "133.00", tax: String = "0.00") -> [ShippingLine] {
+ return [ShippingLine(shippingID: 123,
+ methodTitle: "International Priority Mail Express Flat Rate",
+ methodID: "usps",
+ total: cost,
+ totalTax: tax,
+ taxes: [])]
+ }
+
+ func sampleOrderItems() -> [OrderItem] {
+ [
+ OrderItem.fake().copy(itemID: 1, name: "Sample Item", productID: 12, quantity: 2, price: 123)
+ ]
+ }
+
+ func sampleFeeLines() -> [OrderFeeLine] {
+ return [
+ sampleFeeLine()
+ ]
+ }
+
+ func sampleFeeLine(amount: String = "100.00") -> OrderFeeLine {
+ return OrderFeeLine(feeID: 1,
+ name: "Fee",
+ taxClass: "",
+ taxStatus: .none,
+ total: amount,
+ totalTax: "",
+ taxes: [],
+ attributes: [])
+ }
+
+ func sampleGiftCards() -> [OrderGiftCard] {
+ let giftCard = OrderGiftCard(giftCardID: 2, code: "SU9F-MGB5-KS5V-EZFT", amount: 20)
+ return [giftCard]
+ }
+
+ func sampleAddress() -> Address {
+ return Address(firstName: "Johnny",
+ lastName: "Appleseed",
+ company: "",
+ address1: "234 70th Street",
+ address2: "",
+ city: "Niagara Falls",
+ state: "NY",
+ postcode: "14304",
+ country: "US",
+ phone: "333-333-3333",
+ email: "scrambled@scrambled.com")
+ }
+
+ /// An order with broken elements, inspired by `broken-order.json`
+ ///
+ func brokenOrder() -> Order {
+ return Order.fake().copy(siteID: 545,
+ orderID: 85,
+ orderKey: "abc123",
+ number: "85",
+ status: .custom("draft"),
+ currency: "GBP",
+ customerNote: "",
+ datePaid: nil, // there is no paid date
+ discountTotal: "0.00",
+ discountTax: "0.00",
+ shippingTotal: "0.00",
+ shippingTax: "0.00",
+ total: "0.00",
+ totalTax: "0.00",
+ paymentMethodID: "",
+ paymentMethodTitle: "", // broken in the sense that there should be a payment title
+ billingAddress: brokenAddress(), // empty address
+ shippingAddress: brokenAddress(),
+ shippingLines: brokenShippingLines()) // empty shipping
+ }
+
+ /// An order with broken elements that hasn't been paid, inspired by `broken-order.json`
+ ///
+ func unpaidOrder() -> Order {
+ return Order.fake().copy(siteID: 545,
+ orderID: 85,
+ orderKey: "abc123",
+ number: "85",
+ status: .custom("draft"),
+ currency: "GBP",
+ customerNote: "",
+ datePaid: nil, // there is no paid date
+ discountTotal: "0.00",
+ discountTax: "0.00",
+ shippingTotal: "0.00",
+ shippingTax: "0.00",
+ total: "0.00",
+ totalTax: "0.00",
+ paymentMethodID: "cod",
+ paymentMethodTitle: "Cash on Delivery",
+ billingAddress: brokenAddress(), // empty address
+ shippingAddress: brokenAddress(),
+ shippingLines: brokenShippingLines()) // empty shipping
+ }
+
+ /// An address that may or may not be broken, that came from `broken-order.json`
+ ///
+ func brokenAddress() -> Address {
+ return Address(firstName: "",
+ lastName: "",
+ company: "",
+ address1: "",
+ address2: "",
+ city: "",
+ state: "",
+ postcode: "",
+ country: "",
+ phone: "",
+ email: "")
+ }
+
+ /// A shipping line that may or may not be broken, from `broken-order.json`
+ ///
+ func brokenShippingLines() -> [ShippingLine] {
+ return [ShippingLine(shippingID: 1,
+ methodTitle: "Shipping",
+ methodID: "",
+ total: "0.00",
+ totalTax: "0.00",
+ taxes: [])]
+ }
+
+ func refundsWithNegativeValue() -> [OrderRefundCondensed] {
+ return [
+ OrderRefundCondensed(refundID: 0, reason: nil, total: "-1.2"),
+ ]
+ }
+
+ func refundsWithPositiveValue() -> [OrderRefundCondensed] {
+ return [
+ OrderRefundCondensed(refundID: 0, reason: nil, total: "1.2"),
+ ]
+ }
+}
diff --git a/WooCommerce/WooCommerceTests/POS/Mocks/MockPOSCatalogSettingsService.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockPOSCatalogSettingsService.swift
similarity index 100%
rename from WooCommerce/WooCommerceTests/POS/Mocks/MockPOSCatalogSettingsService.swift
rename to Modules/Tests/PointOfSaleTests/Mocks/MockPOSCatalogSettingsService.swift
diff --git a/WooCommerce/WooCommerceTests/POS/Mocks/MockPOSCatalogSyncCoordinator.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockPOSCatalogSyncCoordinator.swift
similarity index 100%
rename from WooCommerce/WooCommerceTests/POS/Mocks/MockPOSCatalogSyncCoordinator.swift
rename to Modules/Tests/PointOfSaleTests/Mocks/MockPOSCatalogSyncCoordinator.swift
diff --git a/WooCommerce/WooCommerceTests/POS/Mocks/MockPOSCollectOrderPaymentAnalyticsTracker.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockPOSCollectOrderPaymentAnalyticsTracker.swift
similarity index 74%
rename from WooCommerce/WooCommerceTests/POS/Mocks/MockPOSCollectOrderPaymentAnalyticsTracker.swift
rename to Modules/Tests/PointOfSaleTests/Mocks/MockPOSCollectOrderPaymentAnalyticsTracker.swift
index d4d26cab904..c4104a33105 100644
--- a/WooCommerce/WooCommerceTests/POS/Mocks/MockPOSCollectOrderPaymentAnalyticsTracker.swift
+++ b/Modules/Tests/PointOfSaleTests/Mocks/MockPOSCollectOrderPaymentAnalyticsTracker.swift
@@ -1,4 +1,4 @@
-@testable import WooCommerce
+@testable import PointOfSale
import struct Yosemite.PaymentIntent
final class MockPOSCollectOrderPaymentAnalyticsTracker: POSCollectOrderPaymentAnalyticsTracking {
@@ -31,26 +31,14 @@ final class MockPOSCollectOrderPaymentAnalyticsTracker: POSCollectOrderPaymentAn
var connectedReaderModel: String?
- func preflightResultReceived(_ result: WooCommerce.CardReaderPreflightResult?) {
- // no-op
- }
-
func trackProcessingCompletion(intent: Yosemite.PaymentIntent) {
// no-op
}
- func trackSuccessfulCardPayment(capturedPaymentData: WooCommerce.CardPresentCapturedPaymentData) {
- // no-op
- }
-
func trackPaymentFailure(with error: any Error) {
// no-op
}
- func trackPaymentCancelation(cancelationSource: WooCommerce.WooAnalyticsEvent.InPersonPayments.CancellationSource) {
- // no-op
- }
-
func trackEmailTapped() {
// no-op
}
diff --git a/Modules/Tests/PointOfSaleTests/Mocks/MockPOSEligibilityChecker.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockPOSEligibilityChecker.swift
new file mode 100644
index 00000000000..a468db2ba03
--- /dev/null
+++ b/Modules/Tests/PointOfSaleTests/Mocks/MockPOSEligibilityChecker.swift
@@ -0,0 +1,26 @@
+import Foundation
+@testable import PointOfSale
+
+final class MockPOSEligibilityChecker: POSEntryPointEligibilityCheckerProtocol {
+ var initialVisibility: Bool = false
+ var visibility: Bool = false
+ var eligibility: POSEligibilityState = .eligible
+
+ func checkInitialVisibility() -> Bool {
+ initialVisibility
+ }
+
+ @MainActor
+ func checkVisibility() async -> Bool {
+ visibility
+ }
+
+ @MainActor
+ func checkEligibility() async -> POSEligibilityState {
+ eligibility
+ }
+
+ func refreshEligibility(ineligibleReason: POSIneligibleReason) async throws -> POSEligibilityState {
+ .ineligible(reason: ineligibleReason)
+ }
+}
diff --git a/WooCommerce/WooCommerceTests/POS/Mocks/MockPOSItemProvider.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockPOSItemProvider.swift
similarity index 100%
rename from WooCommerce/WooCommerceTests/POS/Mocks/MockPOSItemProvider.swift
rename to Modules/Tests/PointOfSaleTests/Mocks/MockPOSItemProvider.swift
diff --git a/WooCommerce/WooCommerceTests/POS/Mocks/MockPOSOrderListController.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockPOSOrderListController.swift
similarity index 87%
rename from WooCommerce/WooCommerceTests/POS/Mocks/MockPOSOrderListController.swift
rename to Modules/Tests/PointOfSaleTests/Mocks/MockPOSOrderListController.swift
index 13ccd3cc58e..ffb851c649b 100644
--- a/WooCommerce/WooCommerceTests/POS/Mocks/MockPOSOrderListController.swift
+++ b/Modules/Tests/PointOfSaleTests/Mocks/MockPOSOrderListController.swift
@@ -1,8 +1,8 @@
import Foundation
-@testable import WooCommerce
+@testable import PointOfSale
import struct Yosemite.POSOrder
-final class MockPOSOrderListController: POSOrderListControllerProtocol {
+final class MockPOSOrderListController: POSSearchingOrderListControllerProtocol {
var ordersViewState: POSOrderListState = .empty
var selectedOrder: POSOrder?
var updateOrderCalled = false
diff --git a/WooCommerce/WooCommerceTests/POS/Mocks/MockPOSOrderListFetchStrategyFactory.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockPOSOrderListFetchStrategyFactory.swift
similarity index 98%
rename from WooCommerce/WooCommerceTests/POS/Mocks/MockPOSOrderListFetchStrategyFactory.swift
rename to Modules/Tests/PointOfSaleTests/Mocks/MockPOSOrderListFetchStrategyFactory.swift
index 1f2a833a210..0a9b775a4b0 100644
--- a/WooCommerce/WooCommerceTests/POS/Mocks/MockPOSOrderListFetchStrategyFactory.swift
+++ b/Modules/Tests/PointOfSaleTests/Mocks/MockPOSOrderListFetchStrategyFactory.swift
@@ -1,5 +1,5 @@
import Foundation
-@testable import WooCommerce
+@testable import PointOfSale
import protocol Yosemite.POSOrderListFetchStrategyFactoryProtocol
import protocol Yosemite.POSOrderListFetchStrategy
import protocol Yosemite.POSOrderListServiceProtocol
diff --git a/WooCommerce/WooCommerceTests/POS/Mocks/MockPOSOrderListService.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockPOSOrderListService.swift
similarity index 100%
rename from WooCommerce/WooCommerceTests/POS/Mocks/MockPOSOrderListService.swift
rename to Modules/Tests/PointOfSaleTests/Mocks/MockPOSOrderListService.swift
diff --git a/WooCommerce/WooCommerceTests/POS/Mocks/MockPOSOrderService.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockPOSOrderService.swift
similarity index 100%
rename from WooCommerce/WooCommerceTests/POS/Mocks/MockPOSOrderService.swift
rename to Modules/Tests/PointOfSaleTests/Mocks/MockPOSOrderService.swift
diff --git a/Modules/Tests/PointOfSaleTests/Mocks/MockPOSOrderableItem.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockPOSOrderableItem.swift
new file mode 100644
index 00000000000..b14560fc077
--- /dev/null
+++ b/Modules/Tests/PointOfSaleTests/Mocks/MockPOSOrderableItem.swift
@@ -0,0 +1,60 @@
+import Foundation
+@testable import Yosemite
+
+final class MockPOSOrderableItem: POSOrderableItem, Equatable {
+ var name: String
+ var id: UUID
+ var formattedPrice: String
+ var productImageSource: String?
+
+ init(name: String,
+ id: UUID = UUID(),
+ formattedPrice: String,
+ productImageSource: String? = nil,
+ orderItemsToMatch: [OrderItem] = [],
+ matcher: ((OrderItem) -> Bool)? = nil) {
+ self.name = name
+ self.id = id
+ self.formattedPrice = formattedPrice
+ self.productImageSource = productImageSource
+ self.orderItemsToMatch = orderItemsToMatch
+ self.matcher = matcher
+ }
+
+ func toOrderSyncProductInput(quantity: Decimal) -> OrderSyncProductInput {
+ OrderSyncProductInput(
+ id: 1,
+ product: .product(MockOrderSyncProductType(price: "", productID: 1, productType: .simple, bundledItems: [])),
+ quantity: quantity,
+ discount: .zero,
+ baseSubtotal: .zero,
+ bundleConfiguration: [])
+ }
+
+ var orderItemsToMatch: [OrderItem]
+ var matcher: ((OrderItem) -> Bool)?
+ func matches(orderItem: OrderItem) -> Bool {
+ if let matcher {
+ return matcher(orderItem)
+ }
+
+ guard orderItemsToMatch.contains(orderItem) == true else {
+ return false
+ }
+ return true
+ }
+
+ static func == (lhs: MockPOSOrderableItem, rhs: MockPOSOrderableItem) -> Bool {
+ return lhs.name == rhs.name &&
+ lhs.id == rhs.id &&
+ lhs.formattedPrice == rhs.formattedPrice &&
+ lhs.productImageSource == rhs.productImageSource
+ }
+}
+
+struct MockOrderSyncProductType: OrderSyncProductTypeProtocol {
+ var price: String
+ var productID: Int64
+ var productType: ProductType
+ var bundledItems: [ProductBundleItem]
+}
diff --git a/WooCommerce/WooCommerceTests/POS/Mocks/MockPOSReceiptController.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockPOSReceiptController.swift
similarity index 95%
rename from WooCommerce/WooCommerceTests/POS/Mocks/MockPOSReceiptController.swift
rename to Modules/Tests/PointOfSaleTests/Mocks/MockPOSReceiptController.swift
index 7e27749ff11..31c1c701213 100644
--- a/WooCommerce/WooCommerceTests/POS/Mocks/MockPOSReceiptController.swift
+++ b/Modules/Tests/PointOfSaleTests/Mocks/MockPOSReceiptController.swift
@@ -1,5 +1,5 @@
import Foundation
-@testable import WooCommerce
+@testable import PointOfSale
import struct Yosemite.Order
final class MockPOSReceiptSender: POSReceiptSending {
diff --git a/WooCommerce/WooCommerceTests/POS/Mocks/MockPOSSearchHistoryService.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockPOSSearchHistoryService.swift
similarity index 100%
rename from WooCommerce/WooCommerceTests/POS/Mocks/MockPOSSearchHistoryService.swift
rename to Modules/Tests/PointOfSaleTests/Mocks/MockPOSSearchHistoryService.swift
diff --git a/Modules/Tests/PointOfSaleTests/Mocks/MockPaymentCaptureCelebration.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockPaymentCaptureCelebration.swift
new file mode 100644
index 00000000000..47adbf9b3b0
--- /dev/null
+++ b/Modules/Tests/PointOfSaleTests/Mocks/MockPaymentCaptureCelebration.swift
@@ -0,0 +1,10 @@
+@testable import PointOfSale
+import protocol Yosemite.PaymentCaptureCelebrationProtocol
+
+final class MockPaymentCaptureCelebration: PaymentCaptureCelebrationProtocol {
+ private(set) var celebrationWasCalled: Bool = false
+
+ func celebrate() {
+ celebrationWasCalled = true
+ }
+}
diff --git a/Modules/Tests/PointOfSaleTests/Mocks/MockPluginsService.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockPluginsService.swift
new file mode 100644
index 00000000000..fd3d66128d1
--- /dev/null
+++ b/Modules/Tests/PointOfSaleTests/Mocks/MockPluginsService.swift
@@ -0,0 +1,20 @@
+import Yosemite
+
+final class MockPluginsService: PluginsServiceProtocol {
+ var pluginToReturn: SystemPlugin = .fake()
+ var pluginsToReturnForLoadPluginInStorageByPlugin: [Plugin: SystemPlugin?] = [:]
+
+ func waitForPluginInStorage(siteID: Int64, pluginPath: String, isActive: Bool) async -> SystemPlugin {
+ pluginToReturn
+ }
+
+ func loadPluginInStorage(siteID: Int64, plugin: Yosemite.Plugin, isActive: Bool?) -> SystemPlugin? {
+ pluginsToReturnForLoadPluginInStorageByPlugin[plugin] ?? nil
+ }
+}
+
+extension MockPluginsService {
+ func setMockPlugin(_ plugin: Plugin, systemPlugin: SystemPlugin?) {
+ pluginsToReturnForLoadPluginInStorageByPlugin[plugin] = systemPlugin
+ }
+}
diff --git a/Modules/Tests/PointOfSaleTests/Mocks/MockPointOfSaleAggregateModel.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockPointOfSaleAggregateModel.swift
new file mode 100644
index 00000000000..c7862920cbe
--- /dev/null
+++ b/Modules/Tests/PointOfSaleTests/Mocks/MockPointOfSaleAggregateModel.swift
@@ -0,0 +1,13 @@
+import Foundation
+@testable import PointOfSale
+import enum Yosemite.POSItem
+import protocol Yosemite.POSOrderableItem
+import enum Yosemite.POSItemType
+
+final class MockPointOfSaleAggregateModel: PointOfSaleAggregateModelProtocol {
+ var cart: Cart = .init()
+
+ func addToCart(_ item: POSItem) { }
+
+ func saveSearchTerm(_ term: String, for itemType: POSItemType) { }
+}
diff --git a/WooCommerce/WooCommerceTests/POS/Mocks/MockPointOfSaleBarcodeScanService.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockPointOfSaleBarcodeScanService.swift
similarity index 100%
rename from WooCommerce/WooCommerceTests/POS/Mocks/MockPointOfSaleBarcodeScanService.swift
rename to Modules/Tests/PointOfSaleTests/Mocks/MockPointOfSaleBarcodeScanService.swift
diff --git a/WooCommerce/WooCommerceTests/POS/Mocks/MockPointOfSaleCouponService.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockPointOfSaleCouponService.swift
similarity index 100%
rename from WooCommerce/WooCommerceTests/POS/Mocks/MockPointOfSaleCouponService.swift
rename to Modules/Tests/PointOfSaleTests/Mocks/MockPointOfSaleCouponService.swift
diff --git a/WooCommerce/WooCommerceTests/POS/Mocks/MockPointOfSaleCouponsController.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockPointOfSaleCouponsController.swift
similarity index 80%
rename from WooCommerce/WooCommerceTests/POS/Mocks/MockPointOfSaleCouponsController.swift
rename to Modules/Tests/PointOfSaleTests/Mocks/MockPointOfSaleCouponsController.swift
index 1f4dc1aac10..0484ea0d91c 100644
--- a/WooCommerce/WooCommerceTests/POS/Mocks/MockPointOfSaleCouponsController.swift
+++ b/Modules/Tests/PointOfSaleTests/Mocks/MockPointOfSaleCouponsController.swift
@@ -1,4 +1,4 @@
-@testable import WooCommerce
+@testable import PointOfSale
final class MockPointOfSaleCouponsController: PointOfSaleCouponsControllerProtocol {
var loadItemsCalled = false
@@ -15,6 +15,6 @@ final class MockPointOfSaleCouponsController: PointOfSaleCouponsControllerProtoc
func refreshItems(base: ItemListBaseItem) async { }
func loadNextItems(base: ItemListBaseItem) async { }
func enableCoupons() async { }
- func searchItems(searchTerm: String, baseItem: WooCommerce.ItemListBaseItem) async { }
- func clearSearchItems(baseItem: WooCommerce.ItemListBaseItem) { }
+ func searchItems(searchTerm: String, baseItem: PointOfSale.ItemListBaseItem) async { }
+ func clearSearchItems(baseItem: PointOfSale.ItemListBaseItem) { }
}
diff --git a/WooCommerce/WooCommerceTests/POS/Mocks/MockPointOfSaleItemsService.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockPointOfSaleItemsService.swift
similarity index 94%
rename from WooCommerce/WooCommerceTests/POS/Mocks/MockPointOfSaleItemsService.swift
rename to Modules/Tests/PointOfSaleTests/Mocks/MockPointOfSaleItemsService.swift
index f0a8465a9e1..983a1c24e05 100644
--- a/WooCommerce/WooCommerceTests/POS/Mocks/MockPointOfSaleItemsService.swift
+++ b/Modules/Tests/PointOfSaleTests/Mocks/MockPointOfSaleItemsService.swift
@@ -1,6 +1,6 @@
import Foundation
import Combine
-@testable import WooCommerce
+@testable import PointOfSale
import enum Yosemite.POSItem
final class MockPointOfSaleItemsController: PointOfSaleItemsControllerProtocol {
diff --git a/WooCommerce/WooCommerceTests/POS/Mocks/MockPointOfSaleOrderController.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockPointOfSaleOrderController.swift
similarity index 98%
rename from WooCommerce/WooCommerceTests/POS/Mocks/MockPointOfSaleOrderController.swift
rename to Modules/Tests/PointOfSaleTests/Mocks/MockPointOfSaleOrderController.swift
index 33bb4bd1e30..8ac50f62d3c 100644
--- a/WooCommerce/WooCommerceTests/POS/Mocks/MockPointOfSaleOrderController.swift
+++ b/Modules/Tests/PointOfSaleTests/Mocks/MockPointOfSaleOrderController.swift
@@ -1,7 +1,7 @@
import Foundation
import Combine
-@testable import WooCommerce
+@testable import PointOfSale
import struct Yosemite.Order
final class MockPointOfSaleOrderController: PointOfSaleOrderControllerProtocol {
diff --git a/WooCommerce/WooCommerceTests/POS/Mocks/MockPointOfSalePurchasableItemsSearchController.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockPointOfSalePurchasableItemsSearchController.swift
similarity index 86%
rename from WooCommerce/WooCommerceTests/POS/Mocks/MockPointOfSalePurchasableItemsSearchController.swift
rename to Modules/Tests/PointOfSaleTests/Mocks/MockPointOfSalePurchasableItemsSearchController.swift
index 853cd44d8c8..976a85379a5 100644
--- a/WooCommerce/WooCommerceTests/POS/Mocks/MockPointOfSalePurchasableItemsSearchController.swift
+++ b/Modules/Tests/PointOfSaleTests/Mocks/MockPointOfSalePurchasableItemsSearchController.swift
@@ -1,6 +1,6 @@
import Foundation
import Combine
-@testable import WooCommerce
+@testable import PointOfSale
import enum Yosemite.POSItem
final class MockPointOfSalePurchasableItemsSearchController: PointOfSaleSearchingItemsControllerProtocol {
@@ -15,5 +15,5 @@ final class MockPointOfSalePurchasableItemsSearchController: PointOfSaleSearchin
func loadNextItems(base: ItemListBaseItem) async { }
- func clearSearchItems(baseItem: WooCommerce.ItemListBaseItem) { }
+ func clearSearchItems(baseItem: PointOfSale.ItemListBaseItem) { }
}
diff --git a/WooCommerce/WooCommerceTests/POS/Mocks/MockPointOfSaleSoundPlayer.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockPointOfSaleSoundPlayer.swift
similarity index 76%
rename from WooCommerce/WooCommerceTests/POS/Mocks/MockPointOfSaleSoundPlayer.swift
rename to Modules/Tests/PointOfSaleTests/Mocks/MockPointOfSaleSoundPlayer.swift
index b0ebe1a219c..d8058f33b20 100644
--- a/WooCommerce/WooCommerceTests/POS/Mocks/MockPointOfSaleSoundPlayer.swift
+++ b/Modules/Tests/PointOfSaleTests/Mocks/MockPointOfSaleSoundPlayer.swift
@@ -1,5 +1,5 @@
import Foundation
-@testable import WooCommerce
+@testable import PointOfSale
final class MockPointOfSaleSoundPlayer: PointOfSaleSoundPlayerProtocol {
var onPlaySound: ((PointOfSaleSound) -> Void)?
@@ -8,7 +8,7 @@ final class MockPointOfSaleSoundPlayer: PointOfSaleSoundPlayerProtocol {
onPlaySound?(sound)
}
- func playSound(_ sound: WooCommerce.PointOfSaleSound, completion: @escaping () -> Void) async {
+ func playSound(_ sound: PointOfSale.PointOfSaleSound, completion: @escaping () -> Void) async {
onPlaySound?(sound)
}
}
diff --git a/WooCommerce/WooCommerceTests/POS/Mocks/MockReceiptService.swift b/Modules/Tests/PointOfSaleTests/Mocks/MockReceiptService.swift
similarity index 100%
rename from WooCommerce/WooCommerceTests/POS/Mocks/MockReceiptService.swift
rename to Modules/Tests/PointOfSaleTests/Mocks/MockReceiptService.swift
diff --git a/WooCommerce/WooCommerceTests/POS/Models/POSOrderListModelTests.swift b/Modules/Tests/PointOfSaleTests/Models/POSOrderListModelTests.swift
similarity index 99%
rename from WooCommerce/WooCommerceTests/POS/Models/POSOrderListModelTests.swift
rename to Modules/Tests/PointOfSaleTests/Models/POSOrderListModelTests.swift
index c945ca8bdfc..69c539be7ab 100644
--- a/WooCommerce/WooCommerceTests/POS/Models/POSOrderListModelTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Models/POSOrderListModelTests.swift
@@ -1,6 +1,6 @@
import Testing
import Foundation
-@testable import WooCommerce
+@testable import PointOfSale
import struct Yosemite.POSOrder
import enum NetworkingCore.OrderStatusEnum
diff --git a/WooCommerce/WooCommerceTests/POS/Models/POSOrderListStateTests.swift b/Modules/Tests/PointOfSaleTests/Models/POSOrderListStateTests.swift
similarity index 99%
rename from WooCommerce/WooCommerceTests/POS/Models/POSOrderListStateTests.swift
rename to Modules/Tests/PointOfSaleTests/Models/POSOrderListStateTests.swift
index bf7b1359e27..4f67f0064f0 100644
--- a/WooCommerce/WooCommerceTests/POS/Models/POSOrderListStateTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Models/POSOrderListStateTests.swift
@@ -1,6 +1,6 @@
import Foundation
import Testing
-@testable import WooCommerce
+@testable import PointOfSale
import struct Yosemite.POSOrder
import enum NetworkingCore.OrderStatusEnum
diff --git a/WooCommerce/WooCommerceTests/POS/Models/POSSettingsStoreViewModelTests.swift b/Modules/Tests/PointOfSaleTests/Models/POSSettingsStoreViewModelTests.swift
similarity index 99%
rename from WooCommerce/WooCommerceTests/POS/Models/POSSettingsStoreViewModelTests.swift
rename to Modules/Tests/PointOfSaleTests/Models/POSSettingsStoreViewModelTests.swift
index 64e58d0739f..bd6758c612a 100644
--- a/WooCommerce/WooCommerceTests/POS/Models/POSSettingsStoreViewModelTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Models/POSSettingsStoreViewModelTests.swift
@@ -1,6 +1,6 @@
import Testing
import Foundation
-@testable import WooCommerce
+@testable import PointOfSale
@testable import Yosemite
import Storage
diff --git a/WooCommerce/WooCommerceTests/POS/Models/PointOfSaleAggregateModelTests.swift b/Modules/Tests/PointOfSaleTests/Models/PointOfSaleAggregateModelTests.swift
similarity index 99%
rename from WooCommerce/WooCommerceTests/POS/Models/PointOfSaleAggregateModelTests.swift
rename to Modules/Tests/PointOfSaleTests/Models/PointOfSaleAggregateModelTests.swift
index 4907c11771d..ef136688f59 100644
--- a/WooCommerce/WooCommerceTests/POS/Models/PointOfSaleAggregateModelTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Models/PointOfSaleAggregateModelTests.swift
@@ -1,6 +1,6 @@
import Testing
import Foundation
-@testable import WooCommerce
+@testable import PointOfSale
import protocol WooFoundation.Analytics
import protocol Yosemite.PointOfSaleBarcodeScanServiceProtocol
import protocol Yosemite.POSOrderableItem
diff --git a/Modules/Tests/PointOfSaleTests/PointOfSale.xctestplan b/Modules/Tests/PointOfSaleTests/PointOfSale.xctestplan
new file mode 100644
index 00000000000..dc14b4c3997
--- /dev/null
+++ b/Modules/Tests/PointOfSaleTests/PointOfSale.xctestplan
@@ -0,0 +1,25 @@
+{
+ "configurations" : [
+ {
+ "id" : "3AC78C29-73D0-49A5-B27C-4DCF32BF597D",
+ "name" : "Test Scheme Action",
+ "options" : {
+
+ }
+ }
+ ],
+ "defaultOptions" : {
+ "codeCoverage" : false,
+ "performanceAntipatternCheckerEnabled" : true
+ },
+ "testTargets" : [
+ {
+ "target" : {
+ "containerPath" : "container:",
+ "identifier" : "PointOfSaleTests",
+ "name" : "PointOfSaleTests"
+ }
+ }
+ ],
+ "version" : 1
+}
diff --git a/WooCommerce/WooCommerceTests/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupFlowManagerTests.swift b/Modules/Tests/PointOfSaleTests/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupFlowManagerTests.swift
similarity index 96%
rename from WooCommerce/WooCommerceTests/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupFlowManagerTests.swift
rename to Modules/Tests/PointOfSaleTests/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupFlowManagerTests.swift
index 3cc45f5d256..2185fb41550 100644
--- a/WooCommerce/WooCommerceTests/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupFlowManagerTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupFlowManagerTests.swift
@@ -1,7 +1,8 @@
import Testing
import Foundation
import GameController
-@testable import WooCommerce
+import enum WooFoundationCore.WooAnalyticsStat
+@testable import PointOfSale
struct PointOfSaleBarcodeScannerSetupFlowManagerTests {
@@ -86,10 +87,6 @@ struct PointOfSaleBarcodeScannerSetupFlowManagerTests {
@Test func test_flowManager_does_not_track_keyboard_connected_when_on_scanner_selection() {
// Given a flow manager on scanner selection
let mockAnalytics = MockPOSAnalytics()
- let sut = PointOfSaleBarcodeScannerSetupFlowManager(
- isPresented: .constant(true),
- analytics: mockAnalytics
- )
// When keyboard connected notification is posted
NotificationCenter.default.post(name: .GCKeyboardDidConnect, object: nil)
diff --git a/WooCommerce/WooCommerceTests/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupScanTesterTests.swift b/Modules/Tests/PointOfSaleTests/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupScanTesterTests.swift
similarity index 99%
rename from WooCommerce/WooCommerceTests/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupScanTesterTests.swift
rename to Modules/Tests/PointOfSaleTests/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupScanTesterTests.swift
index 916c19ccfe1..2e324a3b94e 100644
--- a/WooCommerce/WooCommerceTests/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupScanTesterTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupScanTesterTests.swift
@@ -1,5 +1,5 @@
import Testing
-@testable import WooCommerce
+@testable import PointOfSale
struct PointOfSaleBarcodeScannerSetupScanTesterTests {
diff --git a/WooCommerce/WooCommerceTests/POS/Presentation/Barcode Scanning/BarcodeScannerContainerTests.swift b/Modules/Tests/PointOfSaleTests/Presentation/Barcode Scanning/BarcodeScannerContainerTests.swift
similarity index 99%
rename from WooCommerce/WooCommerceTests/POS/Presentation/Barcode Scanning/BarcodeScannerContainerTests.swift
rename to Modules/Tests/PointOfSaleTests/Presentation/Barcode Scanning/BarcodeScannerContainerTests.swift
index 3b7a46efd33..0144964a7e9 100644
--- a/WooCommerce/WooCommerceTests/POS/Presentation/Barcode Scanning/BarcodeScannerContainerTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Presentation/Barcode Scanning/BarcodeScannerContainerTests.swift
@@ -1,6 +1,6 @@
import Testing
import UIKit
-@testable import WooCommerce
+@testable import PointOfSale
@MainActor
struct BarcodeScannerContainerTests {
diff --git a/WooCommerce/WooCommerceTests/POS/Presentation/Barcode Scanning/GameControllerBarcodeParserTests.swift b/Modules/Tests/PointOfSaleTests/Presentation/Barcode Scanning/GameControllerBarcodeParserTests.swift
similarity index 99%
rename from WooCommerce/WooCommerceTests/POS/Presentation/Barcode Scanning/GameControllerBarcodeParserTests.swift
rename to Modules/Tests/PointOfSaleTests/Presentation/Barcode Scanning/GameControllerBarcodeParserTests.swift
index 41ea06adc7d..898218234cc 100644
--- a/WooCommerce/WooCommerceTests/POS/Presentation/Barcode Scanning/GameControllerBarcodeParserTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Presentation/Barcode Scanning/GameControllerBarcodeParserTests.swift
@@ -1,6 +1,6 @@
import Testing
import GameController
-@testable import WooCommerce
+@testable import PointOfSale
struct GameControllerBarcodeParserTests {
diff --git a/WooCommerce/WooCommerceTests/POS/Presentation/Barcode Scanning/MockTimeProvider.swift b/Modules/Tests/PointOfSaleTests/Presentation/Barcode Scanning/MockTimeProvider.swift
similarity index 98%
rename from WooCommerce/WooCommerceTests/POS/Presentation/Barcode Scanning/MockTimeProvider.swift
rename to Modules/Tests/PointOfSaleTests/Presentation/Barcode Scanning/MockTimeProvider.swift
index 7df8ce4dba2..c1a8ff8520c 100644
--- a/WooCommerce/WooCommerceTests/POS/Presentation/Barcode Scanning/MockTimeProvider.swift
+++ b/Modules/Tests/PointOfSaleTests/Presentation/Barcode Scanning/MockTimeProvider.swift
@@ -1,5 +1,5 @@
import Foundation
-@testable import WooCommerce
+@testable import PointOfSale
final class MockTimer: Timer {
var isCancelled = false
diff --git a/WooCommerce/WooCommerceTests/POS/Presentation/Barcode Scanning/UIKitBarcodeObserverTests.swift b/Modules/Tests/PointOfSaleTests/Presentation/Barcode Scanning/UIKitBarcodeObserverTests.swift
similarity index 99%
rename from WooCommerce/WooCommerceTests/POS/Presentation/Barcode Scanning/UIKitBarcodeObserverTests.swift
rename to Modules/Tests/PointOfSaleTests/Presentation/Barcode Scanning/UIKitBarcodeObserverTests.swift
index fbaa4b0474d..03a8f0a10c7 100644
--- a/WooCommerce/WooCommerceTests/POS/Presentation/Barcode Scanning/UIKitBarcodeObserverTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Presentation/Barcode Scanning/UIKitBarcodeObserverTests.swift
@@ -1,7 +1,7 @@
import Testing
import GameController
import UIKit
-@testable import WooCommerce
+@testable import PointOfSale
@MainActor
struct UIKitBarcodeObserverTests {
diff --git a/WooCommerce/WooCommerceTests/POS/Presentation/Infinite Scroll/ThresholdInfiniteScrollTriggerDeterminerTests.swift b/Modules/Tests/PointOfSaleTests/Presentation/Infinite Scroll/ThresholdInfiniteScrollTriggerDeterminerTests.swift
similarity index 99%
rename from WooCommerce/WooCommerceTests/POS/Presentation/Infinite Scroll/ThresholdInfiniteScrollTriggerDeterminerTests.swift
rename to Modules/Tests/PointOfSaleTests/Presentation/Infinite Scroll/ThresholdInfiniteScrollTriggerDeterminerTests.swift
index 92b490bcdbe..53593c6f407 100644
--- a/WooCommerce/WooCommerceTests/POS/Presentation/Infinite Scroll/ThresholdInfiniteScrollTriggerDeterminerTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Presentation/Infinite Scroll/ThresholdInfiniteScrollTriggerDeterminerTests.swift
@@ -1,6 +1,6 @@
import Foundation
import Testing
-@testable import WooCommerce
+@testable import PointOfSale
struct ThresholdInfiniteScrollTriggerDeterminerTests {
@Test func shouldTriggerInfiniteScroll_returns_true_when_scrollPosition_is_at_threshold() async throws {
diff --git a/WooCommerce/WooCommerceTests/POS/Presentation/POSItemActionHandlerFactoryTests.swift b/Modules/Tests/PointOfSaleTests/Presentation/POSItemActionHandlerFactoryTests.swift
similarity index 99%
rename from WooCommerce/WooCommerceTests/POS/Presentation/POSItemActionHandlerFactoryTests.swift
rename to Modules/Tests/PointOfSaleTests/Presentation/POSItemActionHandlerFactoryTests.swift
index 1b48d5c31e1..393ebff5c81 100644
--- a/WooCommerce/WooCommerceTests/POS/Presentation/POSItemActionHandlerFactoryTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Presentation/POSItemActionHandlerFactoryTests.swift
@@ -1,6 +1,6 @@
import Testing
import Foundation
-@testable import WooCommerce
+@testable import PointOfSale
import WooFoundation
import enum Yosemite.POSItem
diff --git a/WooCommerce/WooCommerceTests/POS/Presentation/POSItemActionHandlerTests.swift b/Modules/Tests/PointOfSaleTests/Presentation/POSItemActionHandlerTests.swift
similarity index 99%
rename from WooCommerce/WooCommerceTests/POS/Presentation/POSItemActionHandlerTests.swift
rename to Modules/Tests/PointOfSaleTests/Presentation/POSItemActionHandlerTests.swift
index 94177f9d185..c1c1e4433cf 100644
--- a/WooCommerce/WooCommerceTests/POS/Presentation/POSItemActionHandlerTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Presentation/POSItemActionHandlerTests.swift
@@ -4,7 +4,7 @@ import enum Yosemite.POSItem
import enum Yosemite.POSItemType
import protocol Yosemite.PointOfSaleBarcodeScanServiceProtocol
import protocol Yosemite.POSSearchHistoryProviding
-@testable import WooCommerce
+@testable import PointOfSale
struct POSItemActionHandlerTests {
@Test func handleTap_when_attempt_to_add_duplicated_coupons_in_list_then_does_not_add_it_to_cart() async throws {
diff --git a/WooCommerce/WooCommerceTests/POS/Presentation/POSStockFormatterTests.swift b/Modules/Tests/PointOfSaleTests/Presentation/POSStockFormatterTests.swift
similarity index 99%
rename from WooCommerce/WooCommerceTests/POS/Presentation/POSStockFormatterTests.swift
rename to Modules/Tests/PointOfSaleTests/Presentation/POSStockFormatterTests.swift
index 3103859df7c..0517d9696af 100644
--- a/WooCommerce/WooCommerceTests/POS/Presentation/POSStockFormatterTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Presentation/POSStockFormatterTests.swift
@@ -1,7 +1,7 @@
import Foundation
import Testing
import struct Yosemite.POSSimpleProduct
-@testable import WooCommerce
+@testable import PointOfSale
struct POSStockFormatterTests {
@Test func test_when_managestock_disabled_and_stockStatusKey_not_set_then_returns_empty_stockLabel() async throws {
diff --git a/WooCommerce/WooCommerceTests/POS/Presentation/Payments Onboarding/PointOfSaleCardPresentPaymentOnboardingViewModelTests.swift b/Modules/Tests/PointOfSaleTests/Presentation/Payments Onboarding/PointOfSaleCardPresentPaymentOnboardingViewModelTests.swift
similarity index 97%
rename from WooCommerce/WooCommerceTests/POS/Presentation/Payments Onboarding/PointOfSaleCardPresentPaymentOnboardingViewModelTests.swift
rename to Modules/Tests/PointOfSaleTests/Presentation/Payments Onboarding/PointOfSaleCardPresentPaymentOnboardingViewModelTests.swift
index 1bd6623ce3a..df0c5455ad6 100644
--- a/WooCommerce/WooCommerceTests/POS/Presentation/Payments Onboarding/PointOfSaleCardPresentPaymentOnboardingViewModelTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Presentation/Payments Onboarding/PointOfSaleCardPresentPaymentOnboardingViewModelTests.swift
@@ -1,5 +1,5 @@
import XCTest
-@testable import WooCommerce
+@testable import PointOfSale
import SwiftUI
final class PointOfSaleCardPresentPaymentOnboardingViewModelTests: XCTestCase {
diff --git a/WooCommerce/WooCommerceTests/POS/Presentation/PointOfSaleItemListAnalyticsTrackerTests.swift b/Modules/Tests/PointOfSaleTests/Presentation/PointOfSaleItemListAnalyticsTrackerTests.swift
similarity index 99%
rename from WooCommerce/WooCommerceTests/POS/Presentation/PointOfSaleItemListAnalyticsTrackerTests.swift
rename to Modules/Tests/PointOfSaleTests/Presentation/PointOfSaleItemListAnalyticsTrackerTests.swift
index 3ffb87c030a..bedb7f70dbe 100644
--- a/WooCommerce/WooCommerceTests/POS/Presentation/PointOfSaleItemListAnalyticsTrackerTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Presentation/PointOfSaleItemListAnalyticsTrackerTests.swift
@@ -1,6 +1,7 @@
import Testing
import Foundation
-@testable import WooCommerce
+import enum WooFoundationCore.WooAnalyticsStat
+@testable import PointOfSale
private enum AnalyticsKeys {
static let type = "type"
diff --git a/WooCommerce/WooCommerceTests/POS/Presentation/Settings/POSSettingsLocalCatalogViewModelTests.swift b/Modules/Tests/PointOfSaleTests/Presentation/Settings/POSSettingsLocalCatalogViewModelTests.swift
similarity index 99%
rename from WooCommerce/WooCommerceTests/POS/Presentation/Settings/POSSettingsLocalCatalogViewModelTests.swift
rename to Modules/Tests/PointOfSaleTests/Presentation/Settings/POSSettingsLocalCatalogViewModelTests.swift
index 786ae340b61..f47bed2beb3 100644
--- a/WooCommerce/WooCommerceTests/POS/Presentation/Settings/POSSettingsLocalCatalogViewModelTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Presentation/Settings/POSSettingsLocalCatalogViewModelTests.swift
@@ -1,6 +1,6 @@
import Testing
import Foundation
-@testable import WooCommerce
+@testable import PointOfSale
@testable import Yosemite
struct POSSettingsLocalCatalogViewModelTests {
diff --git a/WooCommerce/WooCommerceTests/POS/Tools/POSReceiptSenderTests.swift b/Modules/Tests/PointOfSaleTests/Tools/POSReceiptSenderTests.swift
similarity index 98%
rename from WooCommerce/WooCommerceTests/POS/Tools/POSReceiptSenderTests.swift
rename to Modules/Tests/PointOfSaleTests/Tools/POSReceiptSenderTests.swift
index 4735bd26745..a98fa59c497 100644
--- a/WooCommerce/WooCommerceTests/POS/Tools/POSReceiptSenderTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Tools/POSReceiptSenderTests.swift
@@ -1,7 +1,7 @@
import Testing
import Foundation
-@testable import WooCommerce
+@testable import PointOfSale
import struct Yosemite.Order
import struct Yosemite.SystemPlugin
import protocol WooFoundation.Analytics
@@ -10,7 +10,6 @@ import enum Networking.DotcomError
struct POSReceiptSenderTests {
private let mockOrderService = MockPOSOrderService()
private let mockReceiptService = MockReceiptService()
- private let mockAnalyticsProvider = MockAnalyticsProvider()
private let mockFeatureFlagService = MockFeatureFlagService()
private let mockPluginsService = MockPluginsService()
private let sut: POSReceiptSender
diff --git a/WooCommerce/WooCommerceTests/POS/Tools/PointOfSaleAssetsTests.swift b/Modules/Tests/PointOfSaleTests/Tools/PointOfSaleAssetsTests.swift
similarity index 54%
rename from WooCommerce/WooCommerceTests/POS/Tools/PointOfSaleAssetsTests.swift
rename to Modules/Tests/PointOfSaleTests/Tools/PointOfSaleAssetsTests.swift
index 7ad6433ec0a..ad2bd7c618e 100644
--- a/WooCommerce/WooCommerceTests/POS/Tools/PointOfSaleAssetsTests.swift
+++ b/Modules/Tests/PointOfSaleTests/Tools/PointOfSaleAssetsTests.swift
@@ -1,6 +1,6 @@
import XCTest
-@testable import WooCommerce
+@testable import PointOfSale
final class PointOfSaleAssetsTests: XCTestCase {
func test_all_asset_imageNames_can_be_used_to_create_images() {
@@ -9,9 +9,22 @@ final class PointOfSaleAssetsTests: XCTestCase {
/// exists or not, where `UIImage` will return nil if we can't find the asset in the bundle.
for asset in PointOfSaleAssets.allCases {
XCTAssertNotNil(
- UIImage(named: asset.imageName),
+ UIImage(named: asset.imageName, in: .pointOfSale, compatibleWith: nil),
"Could not create an image for \(asset.imageName) – check the " +
"name, and that the image is in the bundle.")
}
}
}
+
+extension Bundle {
+ static var pointOfSale: Bundle {
+#if DEBUG
+ // Workaround for https://forums.swift.org/t/swift-5-3-swiftpm-resources-in-tests-uses-wrong-bundle-path/37051
+ if let testBundlePath = ProcessInfo.processInfo.environment["XCTestBundlePath"],
+ let bundle = Bundle(path: "\(testBundlePath)/Modules_PointOfSale.bundle") {
+ return bundle
+ }
+#endif
+ return .module
+ }
+}
diff --git a/WooCommerce/WooCommerceTests/POS/ViewHelpers/CartViewHelperTests.swift b/Modules/Tests/PointOfSaleTests/ViewHelpers/CartViewHelperTests.swift
similarity index 99%
rename from WooCommerce/WooCommerceTests/POS/ViewHelpers/CartViewHelperTests.swift
rename to Modules/Tests/PointOfSaleTests/ViewHelpers/CartViewHelperTests.swift
index dc632eddb40..593ae8f1723 100644
--- a/WooCommerce/WooCommerceTests/POS/ViewHelpers/CartViewHelperTests.swift
+++ b/Modules/Tests/PointOfSaleTests/ViewHelpers/CartViewHelperTests.swift
@@ -1,6 +1,6 @@
import Foundation
import Testing
-@testable import WooCommerce
+@testable import PointOfSale
struct CartViewHelperTests {
let sut = CartViewHelper()
diff --git a/WooCommerce/WooCommerceTests/POS/ViewHelpers/CollectCashViewHelperTests.swift b/Modules/Tests/PointOfSaleTests/ViewHelpers/CollectCashViewHelperTests.swift
similarity index 99%
rename from WooCommerce/WooCommerceTests/POS/ViewHelpers/CollectCashViewHelperTests.swift
rename to Modules/Tests/PointOfSaleTests/ViewHelpers/CollectCashViewHelperTests.swift
index d178d6ef3d5..a65e3545061 100644
--- a/WooCommerce/WooCommerceTests/POS/ViewHelpers/CollectCashViewHelperTests.swift
+++ b/Modules/Tests/PointOfSaleTests/ViewHelpers/CollectCashViewHelperTests.swift
@@ -1,6 +1,6 @@
import Foundation
import Testing
-@testable import WooCommerce
+@testable import PointOfSale
import class WooFoundation.CurrencySettings
struct CollectCashViewHelperTests {
diff --git a/WooCommerce/WooCommerceTests/POS/ViewHelpers/PointOfSaleDashboardViewHelperTests.swift b/Modules/Tests/PointOfSaleTests/ViewHelpers/PointOfSaleDashboardViewHelperTests.swift
similarity index 99%
rename from WooCommerce/WooCommerceTests/POS/ViewHelpers/PointOfSaleDashboardViewHelperTests.swift
rename to Modules/Tests/PointOfSaleTests/ViewHelpers/PointOfSaleDashboardViewHelperTests.swift
index fa497c79243..9cb932b6d4f 100644
--- a/WooCommerce/WooCommerceTests/POS/ViewHelpers/PointOfSaleDashboardViewHelperTests.swift
+++ b/Modules/Tests/PointOfSaleTests/ViewHelpers/PointOfSaleDashboardViewHelperTests.swift
@@ -2,7 +2,7 @@ import Foundation
import SwiftUI
import Testing
import enum WooFoundationCore.CurrencyCode
-@testable import WooCommerce
+@testable import PointOfSale
struct PointOfSaleDashboardViewHelperTests {
// MARK: - Horizontal Size Class Tests
diff --git a/WooCommerce/WooCommerceTests/POS/ViewHelpers/TotalsViewHelperTests.swift b/Modules/Tests/PointOfSaleTests/ViewHelpers/TotalsViewHelperTests.swift
similarity index 99%
rename from WooCommerce/WooCommerceTests/POS/ViewHelpers/TotalsViewHelperTests.swift
rename to Modules/Tests/PointOfSaleTests/ViewHelpers/TotalsViewHelperTests.swift
index 95b8e621460..027524be2c2 100644
--- a/WooCommerce/WooCommerceTests/POS/ViewHelpers/TotalsViewHelperTests.swift
+++ b/Modules/Tests/PointOfSaleTests/ViewHelpers/TotalsViewHelperTests.swift
@@ -1,5 +1,5 @@
import Testing
-@testable import WooCommerce
+@testable import PointOfSale
struct TotalsViewHelperTests {
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 02e114872de..0be1e6ae21f 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -3,6 +3,7 @@
23.5
-----
+- [internal] POS code was moved to its own module, including POS specific color and image assets. [https://github.com/woocommerce/woocommerce-ios/pull/16176]
23.4
diff --git a/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentBluetoothReaderConnectionAlertsProvider.swift b/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentBluetoothReaderConnectionAlertsProvider.swift
index 046065373e5..f534234bb83 100644
--- a/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentBluetoothReaderConnectionAlertsProvider.swift
+++ b/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentBluetoothReaderConnectionAlertsProvider.swift
@@ -1,4 +1,5 @@
import Foundation
+import PointOfSale
import enum Yosemite.CardReaderServiceError
struct CardPresentPaymentBluetoothReaderConnectionAlertsProvider: BluetoothReaderConnnectionAlertsProviding {
diff --git a/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentCollectOrderPaymentUseCaseAdaptor.swift b/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentCollectOrderPaymentUseCaseAdaptor.swift
index 4dd07b76abc..b1e887da748 100644
--- a/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentCollectOrderPaymentUseCaseAdaptor.swift
+++ b/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentCollectOrderPaymentUseCaseAdaptor.swift
@@ -1,4 +1,5 @@
import Foundation
+import PointOfSale
import WooFoundation
import Combine
import struct Yosemite.Order
diff --git a/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentOnboardingAdaptor.swift b/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentOnboardingAdaptor.swift
index a1b2419dbb3..c87037e7ee6 100644
--- a/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentOnboardingAdaptor.swift
+++ b/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentOnboardingAdaptor.swift
@@ -1,4 +1,5 @@
import Foundation
+import PointOfSale
import Combine
import protocol Yosemite.StoresManager
diff --git a/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentService.swift b/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentService.swift
index 18cf095f0c6..54fcda5c078 100644
--- a/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentService.swift
+++ b/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentService.swift
@@ -1,4 +1,5 @@
import Combine
+import PointOfSale
import Foundation
import struct Yosemite.Order
import struct Yosemite.CardPresentPaymentsConfiguration
diff --git a/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentTapToPayReaderConnectionAlertsProvider.swift b/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentTapToPayReaderConnectionAlertsProvider.swift
index 6ea8f6e289a..28da8fc7615 100644
--- a/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentTapToPayReaderConnectionAlertsProvider.swift
+++ b/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentTapToPayReaderConnectionAlertsProvider.swift
@@ -1,4 +1,5 @@
import Foundation
+import PointOfSale
struct CardPresentPaymentTapToPayReaderConnectionAlertsProvider: CardReaderConnectionAlertsProviding {
typealias AlertDetails = CardPresentPaymentEventDetails
diff --git a/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentsAlertPresenterAdaptor.swift b/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentsAlertPresenterAdaptor.swift
index a6784c69142..72636f53260 100644
--- a/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentsAlertPresenterAdaptor.swift
+++ b/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentsAlertPresenterAdaptor.swift
@@ -1,7 +1,9 @@
import Foundation
+import PointOfSale
import Combine
import enum Yosemite.ServerSidePaymentCaptureError
import enum Yosemite.CardReaderServiceError
+import enum Yosemite.CollectOrderPaymentUseCaseError
final class CardPresentPaymentsAlertPresenterAdaptor: CardPresentPaymentAlertsPresenting {
typealias AlertDetails = CardPresentPaymentEventDetails
diff --git a/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentsTransactionAlertsProvider.swift b/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentsTransactionAlertsProvider.swift
index 16e2264baaf..abb9305054e 100644
--- a/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentsTransactionAlertsProvider.swift
+++ b/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentsTransactionAlertsProvider.swift
@@ -1,4 +1,5 @@
import Foundation
+import PointOfSale
import struct Yosemite.CardReaderInput
struct CardPresentPaymentsTransactionAlertsProvider: CardReaderTransactionAlertsProviding {
diff --git a/WooCommerce/Classes/POS/Adaptors/POSCollectOrderPaymentAnalyticsAdaptor.swift b/WooCommerce/Classes/POS/Adaptors/POSCollectOrderPaymentAnalyticsAdaptor.swift
index bf06ce8f042..2f95d350c04 100644
--- a/WooCommerce/Classes/POS/Adaptors/POSCollectOrderPaymentAnalyticsAdaptor.swift
+++ b/WooCommerce/Classes/POS/Adaptors/POSCollectOrderPaymentAnalyticsAdaptor.swift
@@ -1,6 +1,7 @@
import Foundation
import protocol WooFoundation.Analytics
import Yosemite
+import PointOfSale
/// Overrides the default event tracking for card present payments on IPP in Order Creation flow
///
diff --git a/WooCommerce/Classes/POS/Adaptors/POSServiceLocatorAdaptor.swift b/WooCommerce/Classes/POS/Adaptors/POSServiceLocatorAdaptor.swift
index 25fa3d2f068..5103f38b217 100644
--- a/WooCommerce/Classes/POS/Adaptors/POSServiceLocatorAdaptor.swift
+++ b/WooCommerce/Classes/POS/Adaptors/POSServiceLocatorAdaptor.swift
@@ -5,6 +5,14 @@ import Yosemite
import protocol Experiments.FeatureFlagService
import enum Experiments.FeatureFlag
import protocol Storage.StorageManagerType
+import protocol PointOfSale.POSDependencyProviding
+import protocol PointOfSale.POSAnalyticsProviding
+import protocol PointOfSale.POSCurrencySettingsProviding
+import protocol PointOfSale.POSFeatureFlagProviding
+import protocol PointOfSale.POSConnectivityProviding
+import protocol PointOfSale.POSExternalNavigationProviding
+import protocol PointOfSale.POSExternalViewProviding
+
final class POSServiceLocatorAdaptor: POSDependencyProviding {
var analytics: POSAnalyticsProviding {
POSAnalyticsAdaptor()
@@ -116,4 +124,8 @@ private struct POSExternalViewAdaptor: POSExternalViewProviding {
onSelection: onSelection
))
}
+
+ func createWCWebView(adminUrl: URL, completion: @escaping () -> Void) -> AnyView {
+ AnyView(WCSettingsWebView(adminUrl: adminUrl, completion: completion))
+ }
}
diff --git a/WooCommerce/Classes/POS/Colors/Color+POSColorPalette.swift b/WooCommerce/Classes/POS/Colors/Color+POSColorPalette.swift
deleted file mode 100644
index 8362bf82cb5..00000000000
--- a/WooCommerce/Classes/POS/Colors/Color+POSColorPalette.swift
+++ /dev/null
@@ -1,51 +0,0 @@
-import SwiftUI
-
-extension Color {
- // MARK: - Primary Colors
- static var posPrimary: Color { Color(.posPrimary) }
- static var posOnPrimary: Color { Color(.posOnPrimary) }
- static var posPrimaryContainer: Color { Color(.posPrimaryContainer) }
- static var posOnPrimaryContainer: Color { Color(.posOnPrimaryContainer) }
-
- // MARK: - Secondary Container Colors
- static var posSecondary: Color { Color(.posSecondary) }
- static var posOnSecondary: Color { Color(.posOnSecondary) }
- static var posSecondaryContainer: Color { Color(.posSecondaryContainer) }
- static var posOnSecondaryContainer: Color { Color(.posOnSecondaryContainer) }
-
- // MARK: - Disabled Container Colors
- static var posDisabledContainer: Color { Color(.posDisabledContainer) }
- static var posOnDisabledContainer: Color { Color(.posOnDisabledContainer) }
-
- // MARK: - Surface Colors
- static var posSurface: Color { Color(.posSurface) }
- static var posOnSurface: Color { Color(.posOnSurface) }
- static var posSurfaceDim: Color { Color(.posSurfaceDim) }
- static var posSurfaceBright: Color { Color(.posSurfaceBright) }
- static var posSurfaceContainerLowest: Color { Color(.posSurfaceContainerLowest) }
- static var posSurfaceContainerLow: Color { Color(.posSurfaceContainerLow) }
- static var posSurfaceContainerHighest: Color { Color(.posSurfaceContainerHighest) }
-
- // MARK: - Surface Variant Colors
- static var posOnSurfaceVariantLowest: Color { Color(.posOnSurfaceVariantLowest) }
- static var posOnSurfaceVariantHighest: Color { Color(.posOnSurfaceVariantHighest) }
-
- // MARK: - Inverse Surface Colors
- static var posInverseSurface: Color { Color(.posInverseSurface) }
- static var posOnInverseSurface: Color { Color(.posOnInverseSurface) }
-
- // MARK: - Outline Colors
- static var posOutline: Color { Color(.posOutline) }
- static var posOutlineVariant: Color { Color(.posOutlineVariant) }
-
- // MARK: - Status Colors
- static var posError: Color { Color(.posError) }
- static var posOnError: Color { Color(.posOnError) }
- static var posSuccess: Color { Color(.posSuccess) }
- static var posOnSuccess: Color { Color(.posOnSuccess) }
- static var posAlert: Color { Color(.posAlert) }
- static var posOnAlert: Color { Color(.posOnAlert) }
-
- // MARK: - Other
- static var posShadow: Color { Color(.posShadow) }
-}
diff --git a/WooCommerce/Classes/POS/TabBar/POSTabCoordinator.swift b/WooCommerce/Classes/POS/TabBar/POSTabCoordinator.swift
index fb367b498c7..217a9e84226 100644
--- a/WooCommerce/Classes/POS/TabBar/POSTabCoordinator.swift
+++ b/WooCommerce/Classes/POS/TabBar/POSTabCoordinator.swift
@@ -8,6 +8,7 @@ import protocol Storage.StorageManagerType
import class WooFoundationCore.CurrencyFormatter
import struct NetworkingCore.JetpackSite
import struct Combine.AnyPublisher
+import PointOfSale
protocol POSTabVisibilityCheckerProtocol {
/// Checks the initial visibility of the POS tab.
diff --git a/WooCommerce/Classes/POS/Utils/POSProductFactory.swift b/WooCommerce/Classes/POS/Utils/POSProductFactory.swift
deleted file mode 100644
index ce3c9082432..00000000000
--- a/WooCommerce/Classes/POS/Utils/POSProductFactory.swift
+++ /dev/null
@@ -1,23 +0,0 @@
-import Foundation
-import class WooFoundation.CurrencySettings
-
-/// Temporary fake product factory
-///
-final class POSProductFactory {
- static func makeProduct(currencySettings: CurrencySettings = ServiceLocator.currencySettings) -> POSProduct {
- POSProduct(itemID: UUID(),
- productID: 1,
- name: "Product 1",
- price: "1.00",
- currencySettings: currencySettings)
- }
-
- static func makeFakeProducts(currencySettings: CurrencySettings = ServiceLocator.currencySettings) -> [POSProduct] {
- return [
- POSProduct(itemID: UUID(), productID: 1, name: "Product 1", price: "1.00", currencySettings: currencySettings),
- POSProduct(itemID: UUID(), productID: 2, name: "Product 2", price: "2.00", currencySettings: currencySettings),
- POSProduct(itemID: UUID(), productID: 3, name: "Product 3", price: "3.00", currencySettings: currencySettings),
- POSProduct(itemID: UUID(), productID: 4, name: "Product 4", price: "4.00", currencySettings: currencySettings),
- ]
- }
-}
diff --git a/WooCommerce/Classes/ViewRelated/Dashboard/Settings/POS/POSTabEligibilityChecker.swift b/WooCommerce/Classes/ViewRelated/Dashboard/Settings/POS/POSTabEligibilityChecker.swift
index 725033ad853..7e9bae15ad2 100644
--- a/WooCommerce/Classes/ViewRelated/Dashboard/Settings/POS/POSTabEligibilityChecker.swift
+++ b/WooCommerce/Classes/ViewRelated/Dashboard/Settings/POS/POSTabEligibilityChecker.swift
@@ -17,6 +17,9 @@ import class Yosemite.POSSiteSettingService
import class Yosemite.SiteAddress
import enum Networking.SiteSettingsFeature
import class WooFoundation.VersionHelpers
+import protocol PointOfSale.POSEntryPointEligibilityCheckerProtocol
+import enum PointOfSale.POSEligibilityState
+import enum PointOfSale.POSIneligibleReason
final class POSTabEligibilityChecker: POSEntryPointEligibilityCheckerProtocol {
private let siteID: Int64
diff --git a/WooCommerce/Classes/ViewRelated/MainTabBarController.swift b/WooCommerce/Classes/ViewRelated/MainTabBarController.swift
index d20de47ebd6..6fd64a45932 100644
--- a/WooCommerce/Classes/ViewRelated/MainTabBarController.swift
+++ b/WooCommerce/Classes/ViewRelated/MainTabBarController.swift
@@ -5,6 +5,7 @@ import WordPressUI
import Experiments
import enum WooFoundationCore.BuildConfiguration
import protocol WooFoundation.Analytics
+import protocol PointOfSale.POSEntryPointEligibilityCheckerProtocol
/// Enum representing the individual tabs
diff --git a/WooCommerce/Classes/ViewRelated/Orders/Collect Payments/CollectOrderPaymentUseCase.swift b/WooCommerce/Classes/ViewRelated/Orders/Collect Payments/CollectOrderPaymentUseCase.swift
index 7886b3ab5e4..d3612865ec9 100644
--- a/WooCommerce/Classes/ViewRelated/Orders/Collect Payments/CollectOrderPaymentUseCase.swift
+++ b/WooCommerce/Classes/ViewRelated/Orders/Collect Payments/CollectOrderPaymentUseCase.swift
@@ -893,84 +893,6 @@ private enum CollectOrderPaymentUseCaseDefinitions {
}
}
-enum CollectOrderPaymentUseCaseNotValidAmountError: Error, LocalizedError, Equatable {
- case belowMinimumAmount(amount: String)
- case other
-
- var errorDescription: String? {
- switch self {
- case .belowMinimumAmount(let amount):
- return String.localizedStringWithFormat(Localization.belowMinimumAmount, amount)
- case .other:
- return Localization.defaultMessage
- }
- }
-
- private enum Localization {
- static let defaultMessage = NSLocalizedString(
- "Unable to process payment. Order total amount is not valid.",
- comment: "Error message when the order amount is not valid."
- )
-
- static let belowMinimumAmount = NSLocalizedString(
- "Unable to process payment. Order total amount is below the minimum amount you can charge, which is %1$@",
- comment: "Error message when the order amount is below the minimum amount allowed."
- )
- }
-}
-
-enum CollectOrderPaymentUseCaseError: LocalizedError {
- case flowCanceledByUser
- case paymentGatewayNotFound
- case orderTotalChanged
- case couldNotRefreshOrder(Error)
- case orderAlreadyPaid
-
- var errorDescription: String? {
- switch self {
- case .flowCanceledByUser:
- return Localization.paymentCancelledLocalizedDescription
- case .paymentGatewayNotFound:
- return Localization.paymentGatewayNotFoundLocalizedDescription
- case .orderTotalChanged:
- return Localization.orderTotalChangedLocalizedDescription
- case .couldNotRefreshOrder(let error as LocalizedError):
- return error.errorDescription
- case .couldNotRefreshOrder(let error):
- return String.localizedStringWithFormat(Localization.couldNotRefreshOrderLocalizedDescription, error.localizedDescription)
- case .orderAlreadyPaid:
- return Localization.orderAlreadyPaidLocalizedDescription
- }
- }
-
- private enum Localization {
- static let couldNotRefreshOrderLocalizedDescription = NSLocalizedString(
- "Unable to process payment. We could not fetch the latest order details. Please check your network " +
- "connection and try again. Underlying error: %1$@",
- comment: "Error message when collecting an In-Person Payment and unable to update the order. %!$@ will " +
- "be replaced with further error details.")
-
- static let orderTotalChangedLocalizedDescription = NSLocalizedString(
- "collectOrderPaymentUseCase.error.message.orderTotalChanged",
- value: "Order total has changed since the beginning of payment. Please go back and check the order is " +
- "correct, then try the payment again.",
- comment: "Error message when collecting an In-Person Payment and the order total has changed remotely.")
-
- static let orderAlreadyPaidLocalizedDescription = NSLocalizedString(
- "Unable to process payment. This order is already paid, taking a further payment would result in the " +
- "customer being charged twice for their order.",
- comment: "Error message shown during In-Person Payments when the order is found to be paid after it's refreshed.")
-
- static let paymentGatewayNotFoundLocalizedDescription = NSLocalizedString(
- "Unable to process payment. We could not connect to the payment system. Please contact support if this " +
- "error continues.",
- comment: "Error message shown during In-Person Payments when the payment gateway is not available.")
-
- static let paymentCancelledLocalizedDescription = NSLocalizedString(
- "The payment was cancelled.", comment: "Message shown if a payment cancellation is shown as an error.")
- }
-}
-
enum CardPaymentRetryApproach {
case reuseIntent
case restart
diff --git a/WooCommerce/WooCommerce.xcodeproj/project.pbxproj b/WooCommerce/WooCommerce.xcodeproj/project.pbxproj
index 8f79fffd285..7c9fe8912b4 100644
--- a/WooCommerce/WooCommerce.xcodeproj/project.pbxproj
+++ b/WooCommerce/WooCommerce.xcodeproj/project.pbxproj
@@ -21,10 +21,6 @@
/* End PBXAggregateTarget section */
/* Begin PBXBuildFile section */
- 0105865C2E426FAA002FADD1 /* BarcodeAnalyticsTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0105865B2E426FAA002FADD1 /* BarcodeAnalyticsTracker.swift */; };
- 0105865E2E426FDC002FADD1 /* UIKitBarcodeObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0105865D2E426FDB002FADD1 /* UIKitBarcodeObserver.swift */; };
- 01058DD02E42716A002FADD1 /* BarcodeScannerContainerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01058DCF2E42716A002FADD1 /* BarcodeScannerContainerTests.swift */; };
- 01058DD22E4273F2002FADD1 /* UIKitBarcodeObserverTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01058DD12E4273F2002FADD1 /* UIKitBarcodeObserverTests.swift */; };
010F7D872E79B39E002B02EA /* POSFormattableAmountTextFieldAdaptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 010F7D862E79B39E002B02EA /* POSFormattableAmountTextFieldAdaptor.swift */; };
010F7D8B2E79B763002B02EA /* POSCouponCreationSheetAdaptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 010F7D8A2E79B763002B02EA /* POSCouponCreationSheetAdaptor.swift */; };
010F7D8D2E7A8447002B02EA /* ProductImageThumbnail+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 010F7D8C2E7A8447002B02EA /* ProductImageThumbnail+Extensions.swift */; };
@@ -32,29 +28,9 @@
011D39712D0A324200DB1445 /* LocationServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 011D39702D0A324100DB1445 /* LocationServiceTests.swift */; };
011D7A332CEC877A0007C187 /* CardPresentModalNonRetryableErrorEmailSent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 011D7A322CEC87770007C187 /* CardPresentModalNonRetryableErrorEmailSent.swift */; };
011D7A352CEC87B70007C187 /* CardPresentModalErrorEmailSent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 011D7A342CEC87B60007C187 /* CardPresentModalErrorEmailSent.swift */; };
- 011DF3442C53A5CF000AFDD9 /* PointOfSaleCardPresentPaymentValidatingOrderMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 011DF3432C53A5CF000AFDD9 /* PointOfSaleCardPresentPaymentValidatingOrderMessageViewModel.swift */; };
- 011DF3462C53A919000AFDD9 /* PointOfSaleCardPresentPaymentActivityIndicatingMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 011DF3452C53A919000AFDD9 /* PointOfSaleCardPresentPaymentActivityIndicatingMessageView.swift */; };
- 012ACB742E5C830500A49458 /* POSOrderListController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 012ACB732E5C830500A49458 /* POSOrderListController.swift */; };
- 012ACB762E5C83EC00A49458 /* POSOrderListControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 012ACB752E5C83EC00A49458 /* POSOrderListControllerTests.swift */; };
- 012ACB782E5C84A200A49458 /* POSOrdersViewState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 012ACB772E5C84A200A49458 /* POSOrdersViewState.swift */; };
- 012ACB7A2E5C84D200A49458 /* MockPOSOrderListService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 012ACB792E5C84D200A49458 /* MockPOSOrderListService.swift */; };
- 012ACB7C2E5C9BD400A49458 /* POSOrderListModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 012ACB7B2E5C9BD400A49458 /* POSOrderListModel.swift */; };
- 012ACB822E5D8DCD00A49458 /* MockPOSOrderListFetchStrategyFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 012ACB812E5D8DCD00A49458 /* MockPOSOrderListFetchStrategyFactory.swift */; };
- 01309A7F2DC4F39E00B77527 /* PointOfSaleCardPresentPaymentCardInsertedMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01309A7E2DC4F39A00B77527 /* PointOfSaleCardPresentPaymentCardInsertedMessageViewModel.swift */; };
01309A812DC4F45300B77527 /* CardPresentModalCardInserted.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01309A802DC4F44700B77527 /* CardPresentModalCardInserted.swift */; };
- 01309A832DC4F89D00B77527 /* PointOfSaleCardPresentPaymentCardInsertedMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01309A822DC4F89400B77527 /* PointOfSaleCardPresentPaymentCardInsertedMessageView.swift */; };
- 0139BB522D91B45800C78FDE /* CouponRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0139BB512D91B45500C78FDE /* CouponRowView.swift */; };
013D2FB42CFEFEC600845D75 /* TapToPayCardReaderMerchantEducationPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 013D2FB32CFEFEA800845D75 /* TapToPayCardReaderMerchantEducationPresenter.swift */; };
013D2FB62CFF54BB00845D75 /* TapToPayEducationStepsFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 013D2FB52CFF54B600845D75 /* TapToPayEducationStepsFactory.swift */; };
- 01435CF82DFC2CE800C0279B /* PointOfSaleInformationModal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01435CF72DFC2CE800C0279B /* PointOfSaleInformationModal.swift */; };
- 014371272DFC8E2800C0279B /* PointOfSaleBarcodeScannerInformationModal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 014371262DFC8E2100C0279B /* PointOfSaleBarcodeScannerInformationModal.swift */; };
- 014997222E1432AB002C50E1 /* PointOfSaleCardPresentPaymentReaderUpdateProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 014997212E1432AB002C50E1 /* PointOfSaleCardPresentPaymentReaderUpdateProgressView.swift */; };
- 014BD4B82C64E2BA0011A66E /* PointOfSaleOrderSyncErrorMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 014BD4B72C64E2BA0011A66E /* PointOfSaleOrderSyncErrorMessageView.swift */; };
- 015456CE2DB0341D0071C3C4 /* POSPageHeaderActionButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 015456CD2DB033FF0071C3C4 /* POSPageHeaderActionButton.swift */; };
- 0157A9962C4FEA7200866FFD /* PointOfSaleLoadingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0157A9952C4FEA7200866FFD /* PointOfSaleLoadingView.swift */; };
- 015D99AA2C58C780001D7186 /* PointOfSaleCardPresentPaymentLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 015D99A92C58C780001D7186 /* PointOfSaleCardPresentPaymentLayout.swift */; };
- 0161EFE22E734B2B006F27B4 /* POSEnvironmentKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0161EFE12E734B2B006F27B4 /* POSEnvironmentKeys.swift */; };
- 01620C4E2C5394B200D3EA2F /* POSProgressViewStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01620C4D2C5394B200D3EA2F /* POSProgressViewStyle.swift */; };
01654EB12E786223001DBB6F /* POSServiceLocatorAdaptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01654EAF2E786223001DBB6F /* POSServiceLocatorAdaptor.swift */; };
01654EB62E78641B001DBB6F /* WooAnalyticsEvent+WooApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01654EB52E78641B001DBB6F /* WooAnalyticsEvent+WooApp.swift */; };
016582D62E78715B001DBB6F /* CardPresentPaymentBluetoothReaderConnectionAlertsProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016582CA2E78715B001DBB6F /* CardPresentPaymentBluetoothReaderConnectionAlertsProvider.swift */; };
@@ -68,28 +44,12 @@
016582DE2E78715B001DBB6F /* CardPresentPaymentsConnectionControllerManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016582D02E78715B001DBB6F /* CardPresentPaymentsConnectionControllerManager.swift */; };
016582DF2E78715B001DBB6F /* CardPresentPaymentTapToPayReaderConnectionAlertsProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016582D32E78715B001DBB6F /* CardPresentPaymentTapToPayReaderConnectionAlertsProvider.swift */; };
016582E02E78715B001DBB6F /* CardPresentPaymentsAlertPresenterAdaptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016582CF2E78715B001DBB6F /* CardPresentPaymentsAlertPresenterAdaptor.swift */; };
- 016582E22E787187001DBB6F /* MockOnboardingViewFactoryConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016582E12E787187001DBB6F /* MockOnboardingViewFactoryConfiguration.swift */; };
- 016582E52E7871F8001DBB6F /* POSDependencyProviding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016582E32E7871F8001DBB6F /* POSDependencyProviding.swift */; };
- 016582E72E789409001DBB6F /* POSIneligibleReason.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016582E62E789409001DBB6F /* POSIneligibleReason.swift */; };
- 016582E92E789468001DBB6F /* PointOfSaleBarcodeScannerButtonCustomization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016582E82E789468001DBB6F /* PointOfSaleBarcodeScannerButtonCustomization.swift */; };
- 016582EB2E7894B5001DBB6F /* HIDBarcodeParserTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016582EA2E7894B5001DBB6F /* HIDBarcodeParserTypes.swift */; };
016582ED2E7897B3001DBB6F /* String+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016582EC2E7897B3001DBB6F /* String+Helpers.swift */; };
- 01664F9E2C50E685007CB5DD /* POSFontStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01664F9D2C50E685007CB5DD /* POSFontStyle.swift */; };
- 016910982E1D019500B731DA /* GameControllerBarcodeObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016910972E1D019500B731DA /* GameControllerBarcodeObserver.swift */; };
- 01695EB82E22600800B731DA /* PointOfSaleBarcodeScannerSetupFlowManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01695EB72E22600300B731DA /* PointOfSaleBarcodeScannerSetupFlowManagerTests.swift */; };
- 016A77692D9D24B00004FCD6 /* POSCouponCreationSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016A77682D9D24A70004FCD6 /* POSCouponCreationSheet.swift */; };
- 016C6B972C74AB17000D86FD /* POSConnectivityView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016C6B962C74AB17000D86FD /* POSConnectivityView.swift */; };
- 016DE5332E40B03200F53DF7 /* POSSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016DE5322E40B03200F53DF7 /* POSSheet.swift */; };
0174DDBB2CE5FD60005D20CA /* ReceiptEmailViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0174DDBA2CE5FD5D005D20CA /* ReceiptEmailViewModel.swift */; };
0174DDBF2CE600C5005D20CA /* ReceiptEmailViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0174DDBE2CE600C0005D20CA /* ReceiptEmailViewModelTests.swift */; };
- 0177250C2E1CFF7F00016148 /* GameControllerBarcodeParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0177250B2E1CFF7F00016148 /* GameControllerBarcodeParser.swift */; };
- 0177250E2E1CFF9B00016148 /* GameControllerBarcodeParserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0177250D2E1CFF9B00016148 /* GameControllerBarcodeParserTests.swift */; };
- 01806E132E2F7F400033363C /* POSBrightnessControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01806E122E2F7F400033363C /* POSBrightnessControl.swift */; };
0182C8BE2CE3B11300474355 /* MockReceiptEligibilityUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0182C8BD2CE3B10E00474355 /* MockReceiptEligibilityUseCase.swift */; };
0182C8C02CE4DDC700474355 /* CardReaderTransactionAlertReceiptState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0182C8BF2CE4DDC100474355 /* CardReaderTransactionAlertReceiptState.swift */; };
0182C8C22CE4F0DB00474355 /* ReceiptEmailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0182C8C12CE4F0DB00474355 /* ReceiptEmailView.swift */; };
- 0188CA0F2C65622A0051BF1C /* PointOfSaleCardPresentPaymentValidatingOrderErrorMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0188CA0E2C65622A0051BF1C /* PointOfSaleCardPresentPaymentValidatingOrderErrorMessageViewModel.swift */; };
- 0188CA112C6565320051BF1C /* PointOfSaleCardPresentPaymentValidatingOrderErrorMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0188CA102C6565320051BF1C /* PointOfSaleCardPresentPaymentValidatingOrderErrorMessageView.swift */; };
018D5C7E2CA6B4A60085EBEE /* CurrencySettings+Sanitized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 018D5C7D2CA6B49D0085EBEE /* CurrencySettings+Sanitized.swift */; };
019130192CF49A77008C0C88 /* TapToPayEducationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 019130182CF49A77008C0C88 /* TapToPayEducationView.swift */; };
0191301B2CF4E782008C0C88 /* TapToPayEducationStepViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0191301A2CF4E77F008C0C88 /* TapToPayEducationStepViewModel.swift */; };
@@ -98,54 +58,16 @@
019130212CF5B0FF008C0C88 /* TapToPayEducationViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 019130202CF5B0FF008C0C88 /* TapToPayEducationViewModelTests.swift */; };
01929C342CEF6354006C79ED /* CardPresentModalErrorWithoutEmail.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01929C332CEF634E006C79ED /* CardPresentModalErrorWithoutEmail.swift */; };
01929C362CEF6D6E006C79ED /* CardPresentModalNonRetryableErrorWithoutEmail.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01929C352CEF6D6A006C79ED /* CardPresentModalNonRetryableErrorWithoutEmail.swift */; };
- 019460DE2E700DF800FCB9AB /* POSReceiptSender.swift in Sources */ = {isa = PBXBuildFile; fileRef = 019460DD2E700DF800FCB9AB /* POSReceiptSender.swift */; };
- 019460E02E700E3D00FCB9AB /* POSReceiptSenderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 019460DF2E700E3D00FCB9AB /* POSReceiptSenderTests.swift */; };
- 019460E22E70121A00FCB9AB /* MockPOSReceiptController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 019460E12E70121A00FCB9AB /* MockPOSReceiptController.swift */; };
019630B42D01DB4800219D80 /* TapToPayAwarenessMomentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 019630B32D01DB4000219D80 /* TapToPayAwarenessMomentView.swift */; };
019630B62D02018C00219D80 /* TapToPayAwarenessMomentDeterminer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 019630B52D02018400219D80 /* TapToPayAwarenessMomentDeterminer.swift */; };
019630B82D0211F400219D80 /* TapToPayAwarenessMomentDeterminerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 019630B72D0211F400219D80 /* TapToPayAwarenessMomentDeterminerTests.swift */; };
- 0196FF922DA802730063CEF1 /* POSCouponImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0196FF912DA802730063CEF1 /* POSCouponImageView.swift */; };
- 0196FF942DA8067A0063CEF1 /* CouponCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0196FF932DA806720063CEF1 /* CouponCardView.swift */; };
019A86842D89C13800ABBB71 /* TapToPayCardReaderPaymentAlertsProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 019A86832D89C13800ABBB71 /* TapToPayCardReaderPaymentAlertsProvider.swift */; };
- 01A3093C2DAE768600B672F6 /* MockPointOfSaleCouponService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01A3093B2DAE768000B672F6 /* MockPointOfSaleCouponService.swift */; };
- 01AA4FA12E4CB22900FA9B4C /* POSFullScreenCover.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01AA4FA02E4CB22700FA9B4C /* POSFullScreenCover.swift */; };
- 01AAD8142D92E37A0081D60B /* PointOfSaleOrderSyncCouponsErrorMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01AAD8132D92E37A0081D60B /* PointOfSaleOrderSyncCouponsErrorMessageView.swift */; };
- 01AB2D122DDC7AD300AA67FD /* PointOfSaleItemListAnalyticsTrackerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01AB2D112DDC7AD100AA67FD /* PointOfSaleItemListAnalyticsTrackerTests.swift */; };
- 01AB2D142DDC7CD200AA67FD /* POSItemActionHandlerFactoryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01AB2D132DDC7CD000AA67FD /* POSItemActionHandlerFactoryTests.swift */; };
- 01AB2D162DDC8CDA00AA67FD /* MockPOSAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01AB2D152DDC8CD600AA67FD /* MockPOSAnalytics.swift */; };
- 01ABA0282E57579300829DC0 /* POSOrderListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01ABA0252E57579300829DC0 /* POSOrderListView.swift */; };
- 01ABA0292E57579300829DC0 /* POSOrderDetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01ABA0242E57579300829DC0 /* POSOrderDetailsView.swift */; };
- 01ABA02A2E57579300829DC0 /* POSOrdersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01ABA0262E57579300829DC0 /* POSOrdersView.swift */; };
- 01ADC1362C9AB4810036F7D2 /* PointOfSaleCardPresentPaymentIntentCreationErrorMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01ADC1352C9AB4810036F7D2 /* PointOfSaleCardPresentPaymentIntentCreationErrorMessageViewModel.swift */; };
- 01ADC1382C9AB6050036F7D2 /* PointOfSaleCardPresentPaymentIntentCreationErrorMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01ADC1372C9AB6050036F7D2 /* PointOfSaleCardPresentPaymentIntentCreationErrorMessageView.swift */; };
- 01B3A1F22DB6D48800286B7F /* ItemListType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01B3A1F12DB6D48800286B7F /* ItemListType.swift */; };
01B744E22D2FCA1400AEB3F4 /* PushNotificationBackgroundSynchronizerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01B744E12D2FCA1300AEB3F4 /* PushNotificationBackgroundSynchronizerFactory.swift */; };
- 01B7AFBE2E707FB30004BE9D /* POSOrderListStateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01B7AFBC2E707FB30004BE9D /* POSOrderListStateTests.swift */; };
- 01B7C9CA2E71C8D00004BE9D /* POSOrderListEmptyViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01B7C9C92E71C8D00004BE9D /* POSOrderListEmptyViewModel.swift */; };
01BB6C072D09DC560094D55B /* CardPresentModalLocationPreAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01BB6C062D09DC470094D55B /* CardPresentModalLocationPreAlert.swift */; };
01BB6C0A2D09E9630094D55B /* LocationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01BB6C092D09E9630094D55B /* LocationService.swift */; };
- 01BD77442C58CED400147191 /* PointOfSaleCardPresentPaymentProcessingMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01BD77432C58CED400147191 /* PointOfSaleCardPresentPaymentProcessingMessageView.swift */; };
- 01BD77462C58D0D000147191 /* PointOfSalePaymentSuccessView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01BD77452C58D0D000147191 /* PointOfSalePaymentSuccessView.swift */; };
- 01BD77482C58D19C00147191 /* PointOfSaleCardPresentPaymentCancelledOnReaderMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01BD77472C58D19C00147191 /* PointOfSaleCardPresentPaymentCancelledOnReaderMessageView.swift */; };
- 01BD774A2C58D29700147191 /* PointOfSaleCardPresentPaymentDisconnectedMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01BD77492C58D29700147191 /* PointOfSaleCardPresentPaymentDisconnectedMessageView.swift */; };
- 01BD774C2C58D2BE00147191 /* PointOfSaleCardPresentPaymentDisconnectedMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01BD774B2C58D2BE00147191 /* PointOfSaleCardPresentPaymentDisconnectedMessageViewModel.swift */; };
- 01BE94002DDCB1110063541C /* Error+Connectivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01BE93FF2DDCB1110063541C /* Error+Connectivity.swift */; };
- 01BE94042DDCC7670063541C /* PointOfSaleEmptyErrorStateViewLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01BE94032DDCC7650063541C /* PointOfSaleEmptyErrorStateViewLayout.swift */; };
- 01C21AB62E66EB80008E4D77 /* POSOrderDetailsLoadingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01C21AB52E66EB70008E4D77 /* POSOrderDetailsLoadingView.swift */; };
- 01C21AB82E66EC26008E4D77 /* POSOrderDetailsEmptyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01C21AB72E66EC14008E4D77 /* POSOrderDetailsEmptyView.swift */; };
- 01C9C59F2DA3D98400CD81D8 /* CartRowRemoveButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01C9C59E2DA3D97E00CD81D8 /* CartRowRemoveButton.swift */; };
- 01D082402C5B9EAB007FE81F /* POSBackgroundAppearanceKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01D0823F2C5B9EAB007FE81F /* POSBackgroundAppearanceKey.swift */; };
- 01DE96902E8AE83200E07E1A /* POSOrderBadgeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01DE968F2E8AE83200E07E1A /* POSOrderBadgeView.swift */; };
- 01DE92D22E8AAE6200E07E1A /* POSOrderListFetchAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01DE92D12E8AAE6200E07E1A /* POSOrderListFetchAnalytics.swift */; };
- 01E62EC82DFADF56003A6D9E /* Cart+BarcodeScanError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01E62EC72DFADF4B003A6D9E /* Cart+BarcodeScanError.swift */; };
01F067ED2D0C5D59001C5805 /* MockLocationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01F067EC2D0C5D56001C5805 /* MockLocationService.swift */; };
- 01F3D1302E741F3B00D867F1 /* POSCardPresentPaymentMessageViewImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01F3D12F2E741F3B00D867F1 /* POSCardPresentPaymentMessageViewImage.swift */; };
01F42C162CE34AB8003D0A5A /* CardPresentModalTapToPaySuccessEmailSent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01F42C152CE34AB3003D0A5A /* CardPresentModalTapToPaySuccessEmailSent.swift */; };
01F42C182CE34AD2003D0A5A /* CardPresentModalSuccessEmailSent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01F42C172CE34AD1003D0A5A /* CardPresentModalSuccessEmailSent.swift */; };
- 01F579952C7DE709008BCA28 /* PointOfSaleCardPresentPaymentCaptureErrorMessageViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01F579942C7DE709008BCA28 /* PointOfSaleCardPresentPaymentCaptureErrorMessageViewModelTests.swift */; };
- 01F935532DFC0B9900B50B03 /* PointOfSaleSoundPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01F935522DFC0B9700B50B03 /* PointOfSaleSoundPlayer.swift */; };
- 01F935572DFC0C6400B50B03 /* pos_scan_failure.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 01F935562DFC0C6400B50B03 /* pos_scan_failure.mp3 */; };
- 01F935592DFC0D4C00B50B03 /* MockPointOfSaleSoundPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01F935582DFC0D4800B50B03 /* MockPointOfSaleSoundPlayer.swift */; };
0202B68D23876BC100F3EBE0 /* ProductsTabProductViewModel+ProductVariation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0202B68C23876BC100F3EBE0 /* ProductsTabProductViewModel+ProductVariation.swift */; };
0202B6922387AB0C00F3EBE0 /* WooTab+Tag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0202B6912387AB0C00F3EBE0 /* WooTab+Tag.swift */; };
0202B6952387AD1B00F3EBE0 /* UITabBar+Order.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0202B6942387AD1B00F3EBE0 /* UITabBar+Order.swift */; };
@@ -156,9 +78,6 @@
0204E3622B8CD40B00F1B5FD /* WooAnalyticsEvent+Products.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0204E3612B8CD40B00F1B5FD /* WooAnalyticsEvent+Products.swift */; };
0204F0CA29C047A400CFC78F /* SelfSizingHostingController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0204F0C929C047A400CFC78F /* SelfSizingHostingController.swift */; };
0205021E27C8B6C600FB1C6B /* InboxEligibilityUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0205021D27C8B6C600FB1C6B /* InboxEligibilityUseCase.swift */; };
- 020556512D5DA45500E51059 /* GhostItemCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 020556502D5DA45500E51059 /* GhostItemCardView.swift */; };
- 02055B142D5DAB6400E51059 /* POSCornerRadiusStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02055B132D5DAB6400E51059 /* POSCornerRadiusStyle.swift */; };
- 020564982D5DC96600E51059 /* POSShadowStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 020564972D5DC96600E51059 /* POSShadowStyle.swift */; };
0206483A23FA4160008441BB /* OrdersRootViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0206483923FA4160008441BB /* OrdersRootViewController.swift */; };
02077F72253816FF005A78EF /* ProductFormActionsFactory+ReadonlyProductTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02077F71253816FF005A78EF /* ProductFormActionsFactory+ReadonlyProductTests.swift */; };
020886572499E643001D784E /* ProductExternalLinkViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 020886562499E642001D784E /* ProductExternalLinkViewController.swift */; };
@@ -189,9 +108,6 @@
020EF5EF2A8C94E0009D2169 /* SiteSnapshotTrackerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 020EF5EE2A8C94E0009D2169 /* SiteSnapshotTrackerTests.swift */; };
020F41E523163C0100776C4D /* TopBannerViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 020F41E323163C0100776C4D /* TopBannerViewModel.swift */; };
020F41E623163C0100776C4D /* TopBannerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 020F41E423163C0100776C4D /* TopBannerView.swift */; };
- 021080FA2D5441CE0054C78D /* POSColorPalette.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 021080F92D5441CE0054C78D /* POSColorPalette.xcassets */; };
- 021080FC2D544B3E0054C78D /* Color+POSColorPalette.swift in Sources */ = {isa = PBXBuildFile; fileRef = 021080FB2D544B3E0054C78D /* Color+POSColorPalette.swift */; };
- 0210A2492D55F0530054C78D /* POSButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0210A2482D55F0530054C78D /* POSButtonStyle.swift */; };
0210D8692A7BEEF700846F8C /* WooAnalyticsEvent+ProductListFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0210D8682A7BEEF700846F8C /* WooAnalyticsEvent+ProductListFilter.swift */; };
0211252825773F220075AD2A /* Models+Copiable.generated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0211252725773F220075AD2A /* Models+Copiable.generated.swift */; };
0211252E25773FB00075AD2A /* MockAggregateOrderItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0211252D25773FB00075AD2A /* MockAggregateOrderItem.swift */; };
@@ -216,16 +132,13 @@
02162727237963AF000208D2 /* ProductFormViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 02162725237963AF000208D2 /* ProductFormViewController.xib */; };
02162729237965E8000208D2 /* ProductFormTableViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02162728237965E8000208D2 /* ProductFormTableViewModel.swift */; };
0216272B2379662C000208D2 /* DefaultProductFormTableViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0216272A2379662C000208D2 /* DefaultProductFormTableViewModel.swift */; };
- 0216DA702E2576CB00016600 /* WooAnalyticsEvent+PointOfSaleIneligibleUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0216DA6F2E2576C300016600 /* WooAnalyticsEvent+PointOfSaleIneligibleUI.swift */; };
0218B4EC242E06F00083A847 /* MediaType+WPMediaType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0218B4EB242E06F00083A847 /* MediaType+WPMediaType.swift */; };
0219B03723964527007DCD5E /* PaginatedProductShippingClassListSelectorDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0219B03623964527007DCD5E /* PaginatedProductShippingClassListSelectorDataSource.swift */; };
- 021A17212D7036AF006DF7C0 /* DynamicFrameScaler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 021A17202D7036AF006DF7C0 /* DynamicFrameScaler.swift */; };
021A84E0257DFC2A00BC71D1 /* RefundShippingLabelViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 021A84DE257DFC2A00BC71D1 /* RefundShippingLabelViewController.swift */; };
021A84E1257DFC2A00BC71D1 /* RefundShippingLabelViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 021A84DF257DFC2A00BC71D1 /* RefundShippingLabelViewController.xib */; };
021AC6662AF3432300E7FB97 /* ConfigurableBundleProductViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 021AC6652AF3432300E7FB97 /* ConfigurableBundleProductViewModelTests.swift */; };
021AEF9C2407B07300029D28 /* ProductImageStatus+HelpersTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 021AEF9B2407B07300029D28 /* ProductImageStatus+HelpersTests.swift */; };
021AEF9E2407F55C00029D28 /* PHAssetImageLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 021AEF9D2407F55C00029D28 /* PHAssetImageLoader.swift */; };
- 021BCDF82D3648CD002E9F15 /* PointOfSaleItemListFullscreenErrorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 021BCDF72D3648CD002E9F15 /* PointOfSaleItemListFullscreenErrorView.swift */; };
021DD44D286A3A8D004F0468 /* UIViewController+Navigation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 021DD44C286A3A8D004F0468 /* UIViewController+Navigation.swift */; };
021E2A1723A9FE5A00B1DE07 /* ProductInventorySettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 021E2A1523A9FE5A00B1DE07 /* ProductInventorySettingsViewController.swift */; };
021E2A1823A9FE5A00B1DE07 /* ProductInventorySettingsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 021E2A1623A9FE5A00B1DE07 /* ProductInventorySettingsViewController.xib */; };
@@ -236,9 +149,7 @@
021EBB362A3054BE003634CA /* BlazeEligibilityChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 021EBB352A3054BE003634CA /* BlazeEligibilityChecker.swift */; };
021EBB382A3076F4003634CA /* BlazeEligibilityCheckerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 021EBB372A3076F4003634CA /* BlazeEligibilityCheckerTests.swift */; };
021FB44C24A5E3B00090E144 /* ProductListMultiSelectorSearchUICommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 021FB44B24A5E3B00090E144 /* ProductListMultiSelectorSearchUICommand.swift */; };
- 0220F4952C16DC98003723C2 /* PointOfSaleCardPresentPaymentFoundMultipleReadersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0220F4942C16DC98003723C2 /* PointOfSaleCardPresentPaymentFoundMultipleReadersView.swift */; };
0221121E288973C20028F0AF /* LocalNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0221121D288973C20028F0AF /* LocalNotification.swift */; };
- 02222BD02D5AFE4F00FB97D2 /* POSButtonProgressViewStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02222BCF2D5AFE4F00FB97D2 /* POSButtonProgressViewStyle.swift */; };
022266BA2AE76E0E00614F34 /* ProductBundleItem+SwiftUIPreviewHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 022266B92AE76E0E00614F34 /* ProductBundleItem+SwiftUIPreviewHelpers.swift */; };
022266BC2AE7707000614F34 /* ConfigurableBundleItemViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 022266BB2AE7707000614F34 /* ConfigurableBundleItemViewModel.swift */; };
0225091D2A5DAEA0000AEBD2 /* WooAnalyticsEvent+ProductCreation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0225091C2A5DAEA0000AEBD2 /* WooAnalyticsEvent+ProductCreation.swift */; };
@@ -267,11 +178,7 @@
0230535B2374FB6800487A64 /* AztecSourceCodeFormatBarCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0230535A2374FB6800487A64 /* AztecSourceCodeFormatBarCommand.swift */; };
023078FE25872CCF008EADEE /* PrintShippingLabelViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023078FD25872CCF008EADEE /* PrintShippingLabelViewModelTests.swift */; };
02307924258731B2008EADEE /* PrintShippingLabelViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02307923258731B2008EADEE /* PrintShippingLabelViewModel.swift */; };
- 0230B4D22C333E0800F2F660 /* PointOfSaleCardPresentPaymentCaptureErrorMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0230B4D12C333E0800F2F660 /* PointOfSaleCardPresentPaymentCaptureErrorMessageViewModel.swift */; };
- 0230B4D62C33454900F2F660 /* PointOfSaleCardPresentPaymentCaptureErrorMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0230B4D52C33454900F2F660 /* PointOfSaleCardPresentPaymentCaptureErrorMessageView.swift */; };
- 0230B4D82C3345DF00F2F660 /* PointOfSaleCardPresentPaymentCaptureFailedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0230B4D72C3345DF00F2F660 /* PointOfSaleCardPresentPaymentCaptureFailedView.swift */; };
02312797277D4F650060E180 /* StoreStatsPeriodViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02312796277D4F640060E180 /* StoreStatsPeriodViewModel.swift */; };
- 02335E492D13BA42000B6ECE /* AsyncPaginationTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02335E482D13BA42000B6ECE /* AsyncPaginationTracker.swift */; };
023453F22579DA1A00A6BB20 /* ShippingLabelPrintingInstructionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023453F12579DA1A00A6BB20 /* ShippingLabelPrintingInstructionsViewController.swift */; };
0234680A282CEA5F00CFC503 /* LegacyReceiptViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02346809282CEA5F00CFC503 /* LegacyReceiptViewModelTests.swift */; };
0235595024496853004BE2B8 /* BottomSheetListSelectorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0235594E24496853004BE2B8 /* BottomSheetListSelectorViewController.swift */; };
@@ -293,8 +200,6 @@
023D69442588C6BD00F7DA72 /* ShippingLabelPaperSizeListSelectorCommandTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023D69432588C6BD00F7DA72 /* ShippingLabelPaperSizeListSelectorCommandTests.swift */; };
023D69BC2589BF5900F7DA72 /* PrintShippingLabelCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023D69BB2589BF5900F7DA72 /* PrintShippingLabelCoordinator.swift */; };
023D877925EC8BCB00625963 /* UIScrollView+LargeTitleWorkaround.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023D877825EC8BCB00625963 /* UIScrollView+LargeTitleWorkaround.swift */; };
- 023DE6262E73FE4600FF6562 /* POSSettingsLocalCatalogDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023DE6252E73FE4600FF6562 /* POSSettingsLocalCatalogDetailView.swift */; };
- 023DE6282E740E1E00FF6562 /* POSSettingsLocalCatalogViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023DE6272E740E0B00FF6562 /* POSSettingsLocalCatalogViewModel.swift */; };
023EC2E024DA87460021DA91 /* ProductInventorySettingsViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023EC2DF24DA87460021DA91 /* ProductInventorySettingsViewModelTests.swift */; };
023EC2E224DA8BAB0021DA91 /* MockProductSKUValidationStoresManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023EC2E124DA8BAB0021DA91 /* MockProductSKUValidationStoresManager.swift */; };
023EC2E424DA95DB0021DA91 /* ProductInventorySettingsViewModel+VariationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023EC2E324DA95DB0021DA91 /* ProductInventorySettingsViewModel+VariationTests.swift */; };
@@ -380,7 +285,6 @@
0260F40123224E8100EDA10A /* ProductsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0260F40023224E8100EDA10A /* ProductsViewController.swift */; };
02619858256B53DD00E321E9 /* AggregatedShippingLabelOrderItems.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02619857256B53DD00E321E9 /* AggregatedShippingLabelOrderItems.swift */; };
0261F5A728D454CF00B7AC72 /* ProductSearchUICommandTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0261F5A628D454CF00B7AC72 /* ProductSearchUICommandTests.swift */; };
- 026225212C21F01F00700977 /* PointOfSaleCardPresentPaymentReaderUpdateFailedNonRetryableAlertViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026225202C21F01F00700977 /* PointOfSaleCardPresentPaymentReaderUpdateFailedNonRetryableAlertViewModel.swift */; };
0262DA5323A238460029AF30 /* UnitInputTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0262DA5123A238460029AF30 /* UnitInputTableViewCell.swift */; };
0262DA5423A238460029AF30 /* UnitInputTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0262DA5223A238460029AF30 /* UnitInputTableViewCell.xib */; };
0262DA5823A23AC80029AF30 /* ProductShippingSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0262DA5623A23AC80029AF30 /* ProductShippingSettingsViewController.swift */; };
@@ -398,20 +302,6 @@
02660504293D8D24004084EA /* PaymentCaptureCelebration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02660503293D8D24004084EA /* PaymentCaptureCelebration.swift */; };
02667A1A2ABDD44200C77B56 /* GiftCardCodeScannerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02667A192ABDD44200C77B56 /* GiftCardCodeScannerViewController.swift */; };
02667A1C2AC159A000C77B56 /* GiftCardCodeScannerNavigationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02667A1B2AC159A000C77B56 /* GiftCardCodeScannerNavigationView.swift */; };
- 026826AA2BF59DF70036F959 /* CartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026826A32BF59DF60036F959 /* CartView.swift */; };
- 026826AB2BF59DF70036F959 /* ItemRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026826A22BF59DF60036F959 /* ItemRowView.swift */; };
- 026826AC2BF59DF70036F959 /* SimpleProductCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026826A42BF59DF60036F959 /* SimpleProductCardView.swift */; };
- 026826AD2BF59DF70036F959 /* PointOfSaleDashboardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026826A52BF59DF60036F959 /* PointOfSaleDashboardView.swift */; };
- 026826AF2BF59DF70036F959 /* PointOfSaleEntryPointView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026826A72BF59DF70036F959 /* PointOfSaleEntryPointView.swift */; };
- 026826B52BF59E330036F959 /* CardReaderConnectionStatusView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026826B32BF59E320036F959 /* CardReaderConnectionStatusView.swift */; };
- 026826BF2BF59E410036F959 /* PointOfSaleCardPresentPaymentScanningForReadersFailedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026826B62BF59E400036F959 /* PointOfSaleCardPresentPaymentScanningForReadersFailedView.swift */; };
- 026826C02BF59E410036F959 /* PointOfSaleCardPresentPaymentConnectingFailedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026826B72BF59E400036F959 /* PointOfSaleCardPresentPaymentConnectingFailedView.swift */; };
- 026826C12BF59E410036F959 /* PointOfSaleCardPresentPaymentConnectingToReaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026826B82BF59E400036F959 /* PointOfSaleCardPresentPaymentConnectingToReaderView.swift */; };
- 026826C22BF59E410036F959 /* PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026826B92BF59E400036F959 /* PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressView.swift */; };
- 026826C42BF59E410036F959 /* PointOfSaleCardPresentPaymentFoundReaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026826BB2BF59E410036F959 /* PointOfSaleCardPresentPaymentFoundReaderView.swift */; };
- 026826C72BF59E410036F959 /* PointOfSaleCardPresentPaymentScanningForReadersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026826BE2BF59E410036F959 /* PointOfSaleCardPresentPaymentScanningForReadersView.swift */; };
- 026878D62E293E7C00DBFD34 /* PointOfSaleDashboardViewHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026878D52E293E7300DBFD34 /* PointOfSaleDashboardViewHelper.swift */; };
- 026878D82E2942E400DBFD34 /* PointOfSaleDashboardViewHelperTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026878D72E2942E200DBFD34 /* PointOfSaleDashboardViewHelperTests.swift */; };
02691780232600A6002AFC20 /* ProductsTabProductViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0269177F232600A6002AFC20 /* ProductsTabProductViewModelTests.swift */; };
02691782232605B9002AFC20 /* PaginatedListViewControllerStateCoordinatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02691781232605B9002AFC20 /* PaginatedListViewControllerStateCoordinatorTests.swift */; };
0269576A23726304001BA0BF /* KeyboardFrameObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0269576923726304001BA0BF /* KeyboardFrameObserver.swift */; };
@@ -419,8 +309,6 @@
02695770237281A9001BA0BF /* AztecTextViewAttachmentHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0269576F237281A9001BA0BF /* AztecTextViewAttachmentHandler.swift */; };
0269A63C2581D26C007B49ED /* ShippingLabelPrintingStepListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0269A63B2581D26C007B49ED /* ShippingLabelPrintingStepListView.swift */; };
026A23FF2A3173F100EFE4BD /* MockBlazeEligibilityChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026A23FE2A3173F100EFE4BD /* MockBlazeEligibilityChecker.swift */; };
- 026A50282D2F6BD1002C42C2 /* InfiniteScrollTriggerDeterminable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026A50272D2F6BD1002C42C2 /* InfiniteScrollTriggerDeterminable.swift */; };
- 026A50302D2F80B5002C42C2 /* ThresholdInfiniteScrollTriggerDeterminerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026A502F2D2F80B5002C42C2 /* ThresholdInfiniteScrollTriggerDeterminerTests.swift */; };
026B2D172DF92291005B8CAA /* POSTabEligibilityChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026B2D162DF92290005B8CAA /* POSTabEligibilityChecker.swift */; };
026B3C57249A046E00F7823C /* TextFieldTextAlignment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026B3C56249A046E00F7823C /* TextFieldTextAlignment.swift */; };
026CAF7E2AC2B76C002D23BB /* ConfigurableBundleProductViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026CAF7D2AC2B76C002D23BB /* ConfigurableBundleProductViewModel.swift */; };
@@ -453,14 +341,9 @@
0279F0E4252DC9670098D7DE /* ProductVariationLoadUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0279F0E3252DC9670098D7DE /* ProductVariationLoadUseCase.swift */; };
027A2E142513124E00DA6ACB /* Keychain+Entries.swift in Sources */ = {isa = PBXBuildFile; fileRef = 027A2E132513124E00DA6ACB /* Keychain+Entries.swift */; };
027A2E162513356100DA6ACB /* AppleIDCredentialChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 027A2E152513356100DA6ACB /* AppleIDCredentialChecker.swift */; };
- 027ADB6E2D1BF5E3009608DB /* ParentProductCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 027ADB6D2D1BF5E3009608DB /* ParentProductCardView.swift */; };
- 027ADB732D21812D009608DB /* POSItemImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 027ADB722D21812D009608DB /* POSItemImageView.swift */; };
- 027ADB752D218A8D009608DB /* POSItemCardBorderStylesModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 027ADB742D218A8D009608DB /* POSItemCardBorderStylesModifier.swift */; };
027B8BB823FE0CB30040944E /* DefaultProductUIImageLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 027B8BB723FE0CB30040944E /* DefaultProductUIImageLoader.swift */; };
027B8BBD23FE0DE10040944E /* ProductImageActionHandlerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 027B8BBC23FE0DE10040944E /* ProductImageActionHandlerTests.swift */; };
027B8BBF23FE0F850040944E /* MockMediaStoresManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 027B8BBE23FE0F850040944E /* MockMediaStoresManager.swift */; };
- 027CCBCD2C23495E002CE572 /* PointOfSaleCardPresentPaymentReaderUpdateFailedLowBatteryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 027CCBCB2C23495E002CE572 /* PointOfSaleCardPresentPaymentReaderUpdateFailedLowBatteryView.swift */; };
- 027CCBCE2C23495E002CE572 /* PointOfSaleCardPresentPaymentReaderUpdateFailedNonRetryableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 027CCBCC2C23495E002CE572 /* PointOfSaleCardPresentPaymentReaderUpdateFailedNonRetryableView.swift */; };
027D4A8D2526FD1800108626 /* SettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 027D4A8B2526FD1700108626 /* SettingsViewController.swift */; };
027D4A8E2526FD1800108626 /* SettingsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 027D4A8C2526FD1700108626 /* SettingsViewController.xib */; };
027D67D1245ADDF40036B8DB /* FilterTypeViewModel+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 027D67D0245ADDF40036B8DB /* FilterTypeViewModel+Helpers.swift */; };
@@ -497,8 +380,6 @@
028FA466257E021100F88A48 /* RefundShippingLabelViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 028FA465257E021100F88A48 /* RefundShippingLabelViewModel.swift */; };
028FA46C257E0D9F00F88A48 /* PlainTextSectionHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 028FA46B257E0D9F00F88A48 /* PlainTextSectionHeaderView.swift */; };
028FF8E32AA1E1C60038964F /* ProductDetailsCellViewModel+AddOns.swift in Sources */ = {isa = PBXBuildFile; fileRef = 028FF8E22AA1E1C60038964F /* ProductDetailsCellViewModel+AddOns.swift */; };
- 029048292C2B5825009B77F9 /* PointOfSaleCardPresentPaymentFoundMultipleReadersAlertViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029048282C2B5825009B77F9 /* PointOfSaleCardPresentPaymentFoundMultipleReadersAlertViewModel.swift */; };
- 0290C25A2D2C0C5C0090C55C /* InfiniteScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0290C2592D2C0C5C0090C55C /* InfiniteScrollView.swift */; };
0290E26F238E3CE400B5C466 /* ListSelectorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0290E26D238E3CE400B5C466 /* ListSelectorViewController.swift */; };
0290E275238E4F8100B5C466 /* PaginatedListSelectorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0290E273238E4F8100B5C466 /* PaginatedListSelectorViewController.swift */; };
0290E27E238E5B5C00B5C466 /* ProductStockStatusListSelectorCommandTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0290E27D238E5B5C00B5C466 /* ProductStockStatusListSelectorCommandTests.swift */; };
@@ -508,22 +389,13 @@
029106C22BE34A8600C2248B /* CollapsibleCustomerCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029106C12BE34A8600C2248B /* CollapsibleCustomerCard.swift */; };
029106C42BE34AA900C2248B /* CollapsibleCustomerCardViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029106C32BE34AA900C2248B /* CollapsibleCustomerCardViewModel.swift */; };
02913E9523A774C500707A0C /* UnitInputFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02913E9423A774C500707A0C /* UnitInputFormatter.swift */; };
- 029149782D26658A00F7B3B3 /* VariationCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029149772D26658A00F7B3B3 /* VariationCardView.swift */; };
- 0291497B2D2682FF00F7B3B3 /* ItemList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0291497A2D2682FF00F7B3B3 /* ItemList.swift */; };
- 0291497D2D26CB2500F7B3B3 /* ChildItemList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0291497C2D26CB2500F7B3B3 /* ChildItemList.swift */; };
0294F8AB25E8A12C005B537A /* WooTabNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0294F8AA25E8A12C005B537A /* WooTabNavigationController.swift */; };
02952B5127808B08008E9BA3 /* StoreStatsPeriodViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02952B5027808B08008E9BA3 /* StoreStatsPeriodViewModelTests.swift */; };
0295355B245ADF8100BDC42B /* FilterType+Products.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0295355A245ADF8100BDC42B /* FilterType+Products.swift */; };
- 0295736B2D62B93300865E27 /* POSPageHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0295736A2D62B93300865E27 /* POSPageHeaderView.swift */; };
- 0295CDC02D6477C400865E27 /* POSNoticeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0295CDBF2D6477C400865E27 /* POSNoticeView.swift */; };
029700EC24FE38C900D242F8 /* ScrollWatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029700EB24FE38C900D242F8 /* ScrollWatcher.swift */; };
029700EF24FE38F000D242F8 /* ScrollWatcherTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029700EE24FE38F000D242F8 /* ScrollWatcherTests.swift */; };
029A9C672535873000BECEC5 /* AppCoordinatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029A9C662535873000BECEC5 /* AppCoordinatorTests.swift */; };
029B0F57234197B80010C1F3 /* ProductSearchUICommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029B0F56234197B80010C1F3 /* ProductSearchUICommand.swift */; };
- 029D025A2C2319FA00CB1E75 /* PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressAlertViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029D02592C2319FA00CB1E75 /* PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressAlertViewModel.swift */; };
- 029D025C2C231A1F00CB1E75 /* PointOfSaleCardPresentPaymentReaderUpdateCompletionAlertViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029D025B2C231A1F00CB1E75 /* PointOfSaleCardPresentPaymentReaderUpdateCompletionAlertViewModel.swift */; };
- 029D025E2C231F2A00CB1E75 /* PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029D025D2C231F2A00CB1E75 /* PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressView.swift */; };
- 029D02602C231F5F00CB1E75 /* PointOfSaleCardPresentPaymentReaderUpdateCompletionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029D025F2C231F5F00CB1E75 /* PointOfSaleCardPresentPaymentReaderUpdateCompletionView.swift */; };
029F29FA24D93E9E004751CA /* EditableProductModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029F29F924D93E9E004751CA /* EditableProductModel.swift */; };
029F29FC24D94106004751CA /* EditableProductVariationModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029F29FB24D94106004751CA /* EditableProductVariationModel.swift */; };
029F29FE24DA5B2D004751CA /* ProductInventorySettingsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029F29FD24DA5B2D004751CA /* ProductInventorySettingsViewModel.swift */; };
@@ -552,9 +424,6 @@
02ACD25A2852E11700EC928E /* CloseAccountCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02ACD2592852E11700EC928E /* CloseAccountCoordinator.swift */; };
02ADC7CC239762E0008D4BED /* PaginatedListSelectorViewProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02ADC7CB239762E0008D4BED /* PaginatedListSelectorViewProperties.swift */; };
02ADC7CE23978EAA008D4BED /* PaginatedProductShippingClassListSelectorDataSourceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02ADC7CD23978EAA008D4BED /* PaginatedProductShippingClassListSelectorDataSourceTests.swift */; };
- 02B191502CCF27F300CF38C9 /* PointOfSaleCardPresentPaymentOnboardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B1914F2CCF27F300CF38C9 /* PointOfSaleCardPresentPaymentOnboardingView.swift */; };
- 02B191522CCF28E600CF38C9 /* PointOfSaleCardPresentPaymentOnboardingViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B191512CCF28E600CF38C9 /* PointOfSaleCardPresentPaymentOnboardingViewModel.swift */; };
- 02B191542CCF377E00CF38C9 /* PointOfSaleCardPresentPaymentOnboardingViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B191532CCF377E00CF38C9 /* PointOfSaleCardPresentPaymentOnboardingViewModelTests.swift */; };
02B1AA6529A4705A00D54FCB /* TabbedViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B1AA6429A4705A00D54FCB /* TabbedViewController.swift */; };
02B1AA6729A4709400D54FCB /* FilterTabBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B1AA6629A4709400D54FCB /* FilterTabBar.swift */; };
02B1AFEC24BC5AE5005DB1E3 /* LinkedProductListSelectorDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B1AFEB24BC5AE5005DB1E3 /* LinkedProductListSelectorDataSource.swift */; };
@@ -565,7 +434,6 @@
02B2828E27C35061004A332A /* RefreshableInfiniteScrollList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B2828D27C35061004A332A /* RefreshableInfiniteScrollList.swift */; };
02B2829027C352DA004A332A /* RefreshableScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B2828F27C352DA004A332A /* RefreshableScrollView.swift */; };
02B2829227C4808D004A332A /* InfiniteScrollIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B2829127C4808D004A332A /* InfiniteScrollIndicator.swift */; };
- 02B2AD8D2CD0A89800929CE8 /* POSModalSizing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B2AD8C2CD0A87B00929CE8 /* POSModalSizing.swift */; };
02B2C831249C4C8D0040C83C /* TextFieldTextAlignmentTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B2C830249C4C8D0040C83C /* TextFieldTextAlignmentTests.swift */; };
02B334A12BEB712600A46774 /* CollapsibleCustomerCardAddressViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B334A02BEB712600A46774 /* CollapsibleCustomerCardAddressViewModel.swift */; };
02B60DFB2A58809F004C47FF /* View+MediaSourceActionSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B60DFA2A58809F004C47FF /* View+MediaSourceActionSheet.swift */; };
@@ -574,7 +442,6 @@
02B8650F24A9E2D800265779 /* Product+SwiftUIPreviewHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B8650E24A9E2D800265779 /* Product+SwiftUIPreviewHelpers.swift */; };
02B8E4192DFBC218001D01FD /* MainTabBarController+TabsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B8E4182DFBC218001D01FD /* MainTabBarController+TabsTests.swift */; };
02B8E41B2DFBC33D001D01FD /* MockPOSEligibilityChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B8E41A2DFBC33C001D01FD /* MockPOSEligibilityChecker.swift */; };
- 02B9243F2C2200D600DC75F2 /* PointOfSaleCardPresentPaymentReaderUpdateFailedLowBatteryAlertViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B9243E2C2200D600DC75F2 /* PointOfSaleCardPresentPaymentReaderUpdateFailedLowBatteryAlertViewModel.swift */; };
02BA12852461674B008D8325 /* Optional+String.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02BA12842461674B008D8325 /* Optional+String.swift */; };
02BA128B24616B48008D8325 /* ProductFormActionsFactory+VisibilityTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02BA128A24616B48008D8325 /* ProductFormActionsFactory+VisibilityTests.swift */; };
02BA23C022EE9DAF009539E7 /* AsyncDictionaryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02BA23BF22EE9DAF009539E7 /* AsyncDictionaryTests.swift */; };
@@ -609,9 +476,6 @@
02C34C752D50F4C3004BFB50 /* AddressMapPickerViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02C34C742D50F4C3004BFB50 /* AddressMapPickerViewModel.swift */; };
02C3FACE282A93020095440A /* WooAnalyticsEvent+Dashboard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02C3FACD282A93020095440A /* WooAnalyticsEvent+Dashboard.swift */; };
02C3FDEA251091CE009569EE /* ProductFactoryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02C3FDE9251091CE009569EE /* ProductFactoryTests.swift */; };
- 02C470B62E7BDB7700F5F716 /* POSSettingsLocalCatalogViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02C470B52E7BDB7700F5F716 /* POSSettingsLocalCatalogViewModelTests.swift */; };
- 02C470B82E7BDD9600F5F716 /* MockPOSCatalogSyncCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02C470B72E7BDD9400F5F716 /* MockPOSCatalogSyncCoordinator.swift */; };
- 02C470BA2E7BDDD100F5F716 /* MockPOSCatalogSettingsService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02C470B92E7BDDCF00F5F716 /* MockPOSCatalogSettingsService.swift */; };
02C7EE8A2B21B951008B7DF8 /* ProductWithQuantityStepperViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02C7EE892B21B951008B7DF8 /* ProductWithQuantityStepperViewModel.swift */; };
02C7EE8C2B22B21D008B7DF8 /* CollapsibleProductRowCardViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02C7EE8B2B22B21D008B7DF8 /* CollapsibleProductRowCardViewModel.swift */; };
02C7EE902B22EFB9008B7DF8 /* CollapsibleProductRowCardViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02C7EE8F2B22EFB9008B7DF8 /* CollapsibleProductRowCardViewModelTests.swift */; };
@@ -625,7 +489,6 @@
02CA63DB23D1ADD100BBF148 /* MediaPickingCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02CA63D723D1ADD100BBF148 /* MediaPickingCoordinator.swift */; };
02CA63DC23D1ADD100BBF148 /* DeviceMediaLibraryPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02CA63D823D1ADD100BBF148 /* DeviceMediaLibraryPicker.swift */; };
02CA63DD23D1ADD100BBF148 /* MediaPickingContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02CA63D923D1ADD100BBF148 /* MediaPickingContext.swift */; };
- 02CD3BFE2C35D04C00E575C4 /* MockCardPresentPaymentService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02CD3BFD2C35D04C00E575C4 /* MockCardPresentPaymentService.swift */; };
02CE43022768CBF60006EAEF /* ProducBarcodeScannerCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02CE43012768CBF60006EAEF /* ProducBarcodeScannerCoordinator.swift */; };
02CE4304276993DA0006EAEF /* CaptureDevicePermissionChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02CE4303276993DA0006EAEF /* CaptureDevicePermissionChecker.swift */; };
02CE4307276994920006EAEF /* ProductSKUBarcodeScannerCoordinatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02CE4306276994920006EAEF /* ProductSKUBarcodeScannerCoordinatorTests.swift */; };
@@ -633,7 +496,6 @@
02CEBB8024C9869E002EDF35 /* ProductFormActionsFactoryProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02CEBB7F24C9869E002EDF35 /* ProductFormActionsFactoryProtocol.swift */; };
02CEBB8224C98861002EDF35 /* ProductFormDataModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02CEBB8124C98861002EDF35 /* ProductFormDataModel.swift */; };
02CEBB8424C99A10002EDF35 /* Product+ShippingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02CEBB8324C99A10002EDF35 /* Product+ShippingTests.swift */; };
- 02D1D2DA2CD3CDA40069A93F /* WooAnalyticsEvent+PointOfSale.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02D1D2D92CD3CD8D0069A93F /* WooAnalyticsEvent+PointOfSale.swift */; };
02D29A8E29F7C26000473D6D /* InputAccessoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02D29A8D29F7C26000473D6D /* InputAccessoryView.swift */; };
02D29A9029F7C2DA00473D6D /* AztecAIViewFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02D29A8F29F7C2DA00473D6D /* AztecAIViewFactory.swift */; };
02D29A9229F7C39200473D6D /* UIImage+Text.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02D29A9129F7C39200473D6D /* UIImage+Text.swift */; };
@@ -647,6 +509,7 @@
02DD81FA242CAA400060E50B /* Media+WPMediaAsset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02DD81F6242CAA3F0060E50B /* Media+WPMediaAsset.swift */; };
02DD81FB242CAA400060E50B /* WordPressMediaLibraryPickerDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02DD81F7242CAA3F0060E50B /* WordPressMediaLibraryPickerDataSource.swift */; };
02DD81FC242CAA400060E50B /* WordPressMediaLibraryImagePickerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 02DD81F8242CAA400060E50B /* WordPressMediaLibraryImagePickerViewController.xib */; };
+ 02DE61822E86437E0060DCEF /* MockPOSAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02DE61812E86437E0060DCEF /* MockPOSAnalytics.swift */; };
02DF174B2A4A134B008FD33B /* ProductFormActionsFactory+ProductCreationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02DF174A2A4A134B008FD33B /* ProductFormActionsFactory+ProductCreationTests.swift */; };
02DFD5042B20486C0048CD70 /* ProductStepper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02DFD5032B20486C0048CD70 /* ProductStepper.swift */; };
02DFD5062B2048C50048CD70 /* ProductStepperViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02DFD5052B2048C50048CD70 /* ProductStepperViewModel.swift */; };
@@ -661,9 +524,6 @@
02E4908D29AF216E005942AE /* TopPerformersPeriodView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E4908C29AF216E005942AE /* TopPerformersPeriodView.swift */; };
02E493EF245C1087000AEA9E /* ProductFormBottomSheetListSelectorCommandTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E493EE245C1087000AEA9E /* ProductFormBottomSheetListSelectorCommandTests.swift */; };
02E4AF7126FC4F16002AD9F4 /* ProductReviewFromNoteParcelFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E4AF7026FC4F16002AD9F4 /* ProductReviewFromNoteParcelFactory.swift */; };
- 02E4E7442E0EEF80003A31E7 /* POSIneligibleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E4E7432E0EEF76003A31E7 /* POSIneligibleView.swift */; };
- 02E4E7462E0EF84B003A31E7 /* POSEntryPointController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E4E7452E0EF847003A31E7 /* POSEntryPointController.swift */; };
- 02E4F2702E0F2C75003A31E7 /* POSEntryPointControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E4F26F2E0F2C75003A31E7 /* POSEntryPointControllerTests.swift */; };
02E4FD7E2306A8180049610C /* StatsTimeRangeBarViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E4FD7D2306A8180049610C /* StatsTimeRangeBarViewModel.swift */; };
02E4FD812306AA890049610C /* StatsTimeRangeBarViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E4FD802306AA890049610C /* StatsTimeRangeBarViewModelTests.swift */; };
02E6B97823853D81000A36F0 /* TitleAndValueTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02E6B97623853D81000A36F0 /* TitleAndValueTableViewCell.swift */; };
@@ -683,14 +543,11 @@
02ECD1E124FF496200735BE5 /* PaginationTrackerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02ECD1E024FF496200735BE5 /* PaginationTrackerTests.swift */; };
02ECD1E424FF5E0B00735BE5 /* AddProductCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02ECD1E324FF5E0B00735BE5 /* AddProductCoordinator.swift */; };
02ECD1E624FFB4E900735BE5 /* ProductFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02ECD1E524FFB4E900735BE5 /* ProductFactory.swift */; };
- 02ED3D212C2330F400ED6F3E /* PointOfSaleCardPresentPaymentReaderUpdateFailedAlertViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02ED3D202C2330F400ED6F3E /* PointOfSaleCardPresentPaymentReaderUpdateFailedAlertViewModel.swift */; };
- 02ED3D272C23315400ED6F3E /* PointOfSaleCardPresentPaymentReaderUpdateFailedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02ED3D242C23315400ED6F3E /* PointOfSaleCardPresentPaymentReaderUpdateFailedView.swift */; };
02EEB5C42424AFAA00B8A701 /* TextFieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02EEB5C22424AFAA00B8A701 /* TextFieldTableViewCell.swift */; };
02EEB5C52424AFAA00B8A701 /* TextFieldTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 02EEB5C32424AFAA00B8A701 /* TextFieldTableViewCell.xib */; };
02EFF81A2ABC28BA0015ABB2 /* GiftCardInputViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02EFF8192ABC28BA0015ABB2 /* GiftCardInputViewModelTests.swift */; };
02F1E6BD2A39805C00C3E4C7 /* ProductDescriptionAICoordinatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02F1E6BC2A39805C00C3E4C7 /* ProductDescriptionAICoordinatorTests.swift */; };
02F36C402E0130EF00DD8CB6 /* MockPOSEligibilityService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02F36C3F2E0130E900DD8CB6 /* MockPOSEligibilityService.swift */; };
- 02F3884C2D6C38BB00619396 /* POSErrorAndAlertIconSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02F3884B2D6C38BB00619396 /* POSErrorAndAlertIconSize.swift */; };
02F3A6842A618CD7004CD2E8 /* WordPressMediaLibraryPickerCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02F3A6832A618CD7004CD2E8 /* WordPressMediaLibraryPickerCoordinator.swift */; };
02F3A6862A619270004CD2E8 /* WordPressMediaLibraryImagePickerCoordinatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02F3A6852A619270004CD2E8 /* WordPressMediaLibraryImagePickerCoordinatorTests.swift */; };
02F49ADA23BF356E00FA0BFA /* TitleAndTextFieldTableViewCell.ViewModel+State.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02F49AD923BF356E00FA0BFA /* TitleAndTextFieldTableViewCell.ViewModel+State.swift */; };
@@ -842,119 +699,23 @@
09F5DE5D27CF948000E5A4D2 /* BulkUpdateOptionsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F5DE5C27CF948000E5A4D2 /* BulkUpdateOptionsModel.swift */; };
174CA86C27D90E8900126524 /* WooAboutScreenConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 174CA86B27D90E8900126524 /* WooAboutScreenConfiguration.swift */; };
174CA86E27DBFD2D00126524 /* ShareAppTextItemActivitySource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 174CA86D27DBFD2D00126524 /* ShareAppTextItemActivitySource.swift */; };
- 200190002C80AEAC002C1E4B /* PointOfSaleItemListFullscreenView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20018FFF2C80AEAC002C1E4B /* PointOfSaleItemListFullscreenView.swift */; };
- 2004E2C22C076CED00D62521 /* CardPresentPaymentFacade.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2004E2C12C076CED00D62521 /* CardPresentPaymentFacade.swift */; };
- 2004E2C42C076D3800D62521 /* CardPresentPaymentEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2004E2C32C076D3800D62521 /* CardPresentPaymentEvent.swift */; };
- 2004E2C62C076D4500D62521 /* CardPresentPaymentResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2004E2C52C076D4500D62521 /* CardPresentPaymentResult.swift */; };
- 2004E2CA2C07771400D62521 /* CardPresentPaymentReaderConnectionResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2004E2C92C07771400D62521 /* CardPresentPaymentReaderConnectionResult.swift */; };
- 2004E2CE2C077B0B00D62521 /* CardPresentPaymentCardReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2004E2CD2C077B0B00D62521 /* CardPresentPaymentCardReader.swift */; };
- 2004E2D02C077D2800D62521 /* CardPresentPaymentTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2004E2CF2C077D2800D62521 /* CardPresentPaymentTransaction.swift */; };
- 2004E2D22C07878E00D62521 /* CardReaderConnectionMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2004E2D12C07878E00D62521 /* CardReaderConnectionMethod.swift */; };
- 2004E2D82C08E56300D62521 /* CardPresentPaymentOnboardingPresentationEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2004E2D72C08E56300D62521 /* CardPresentPaymentOnboardingPresentationEvent.swift */; };
2004E2E12C08ED3200D62521 /* ViewControllerPresenting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2004E2DB2C08E95B00D62521 /* ViewControllerPresenting.swift */; };
- 2004E2E72C0DFB9E00D62521 /* CardPresentPaymentsModalButtonViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2004E2E62C0DFB9E00D62521 /* CardPresentPaymentsModalButtonViewModel.swift */; };
- 2004E2E92C0DFE2B00D62521 /* PointOfSaleCardPresentPaymentAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2004E2E82C0DFE2B00D62521 /* PointOfSaleCardPresentPaymentAlert.swift */; };
- 2005D3F32DC13D6900E12021 /* PointOfSaleItemListAnalyticsTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2005D3F22DC13D6900E12021 /* PointOfSaleItemListAnalyticsTracker.swift */; };
- 2005D7A72DC240CB00E12021 /* POSSearchTextFieldStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2005D7A62DC240CB00E12021 /* POSSearchTextFieldStyle.swift */; };
- 2005FC9D2DC37E4D00E12021 /* POSPageHeaderBackButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2005FC9C2DC37E4D00E12021 /* POSPageHeaderBackButton.swift */; };
- 200798F02DA804200037C505 /* MockPointOfSalePurchasableItemsSearchController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200798EF2DA804200037C505 /* MockPointOfSalePurchasableItemsSearchController.swift */; };
- 200BA1592CF092280006DC5B /* PointOfSaleItemsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200BA1582CF092280006DC5B /* PointOfSaleItemsController.swift */; };
- 200BA15B2CF0A2130006DC5B /* MockPointOfSaleItemsService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200BA15A2CF0A2130006DC5B /* MockPointOfSaleItemsService.swift */; };
- 200BA15E2CF0A9EB0006DC5B /* PointOfSaleItemsControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200BA15D2CF0A9EB0006DC5B /* PointOfSaleItemsControllerTests.swift */; };
20134CE62D4D1BDF00076A80 /* LearnMoreViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20134CE52D4D1BDF00076A80 /* LearnMoreViewModelTests.swift */; };
20134CE82D4D38E000076A80 /* CardPresentPaymentPlugin+SetUpTapToPay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20134CE72D4D38E000076A80 /* CardPresentPaymentPlugin+SetUpTapToPay.swift */; };
20203AB22B31EEF1009D0C11 /* ExpandableBottomSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20203AB12B31EEF1009D0C11 /* ExpandableBottomSheet.swift */; };
- 202240FC2DFAF41D00E13DE9 /* BarcodeScanningModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 202240FB2DFAF41D00E13DE9 /* BarcodeScanningModifier.swift */; };
- 2023E2AE2C21D8EA00FC365A /* PointOfSaleCardPresentPaymentInLineMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2023E2AD2C21D8EA00FC365A /* PointOfSaleCardPresentPaymentInLineMessage.swift */; };
2024966A2B0CC97100EE527D /* MockWooPaymentsDepositService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 202496692B0CC97100EE527D /* MockWooPaymentsDepositService.swift */; };
- 2027F74F2C8F0858004BDF73 /* PointOfSaleCardPresentPaymentConnectionSuccessAlertViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2027F74E2C8F0858004BDF73 /* PointOfSaleCardPresentPaymentConnectionSuccessAlertViewModelTests.swift */; };
- 2027F7562C90B013004BDF73 /* CardPresentPaymentReaderConnectionStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2027F7552C90B013004BDF73 /* CardPresentPaymentReaderConnectionStatus.swift */; };
202D2A5A2AC5933100E4ABC0 /* TopTabView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 202D2A592AC5933100E4ABC0 /* TopTabView.swift */; };
- 203163A92C1B5AA7001C96DA /* PointOfSaleCardPresentPaymentBluetoothRequiredAlertViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 203163A82C1B5AA7001C96DA /* PointOfSaleCardPresentPaymentBluetoothRequiredAlertViewModel.swift */; };
- 203163AB2C1B5DEE001C96DA /* PointOfSaleCardPresentPaymentBluetoothRequiredAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 203163AA2C1B5DEE001C96DA /* PointOfSaleCardPresentPaymentBluetoothRequiredAlertView.swift */; };
- 203163AD2C1C5C54001C96DA /* PointOfSaleCardPresentPaymentConnectingFailedNonRetryableAlertViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 203163AC2C1C5C54001C96DA /* PointOfSaleCardPresentPaymentConnectingFailedNonRetryableAlertViewModel.swift */; };
- 203163AF2C1C5C6B001C96DA /* PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressAlertViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 203163AE2C1C5C6B001C96DA /* PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressAlertViewModel.swift */; };
- 203163B12C1C5C87001C96DA /* PointOfSaleCardPresentPaymentConnectingFailedUpdatePostalCodeAlertViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 203163B02C1C5C87001C96DA /* PointOfSaleCardPresentPaymentConnectingFailedUpdatePostalCodeAlertViewModel.swift */; };
- 203163B32C1C5DAC001C96DA /* PointOfSaleCardPresentPaymentConnectingFailedChargeReaderAlertViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 203163B22C1C5DAC001C96DA /* PointOfSaleCardPresentPaymentConnectingFailedChargeReaderAlertViewModel.swift */; };
- 203163B52C1C5EB2001C96DA /* PointOfSaleCardPresentPaymentConnectingFailedNonRetryableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 203163B42C1C5EB2001C96DA /* PointOfSaleCardPresentPaymentConnectingFailedNonRetryableView.swift */; };
- 203163B72C1C5EDF001C96DA /* PointOfSaleCardPresentPaymentConnectingFailedChargeReaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 203163B62C1C5EDF001C96DA /* PointOfSaleCardPresentPaymentConnectingFailedChargeReaderView.swift */; };
- 203163B92C1C5F42001C96DA /* PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 203163B82C1C5F42001C96DA /* PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressView.swift */; };
- 203163BB2C1C5F72001C96DA /* PointOfSaleCardPresentPaymentConnectingFailedUpdatePostalCodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 203163BA2C1C5F72001C96DA /* PointOfSaleCardPresentPaymentConnectingFailedUpdatePostalCodeView.swift */; };
- 203163BD2C1C9602001C96DA /* PointOfSaleCardPresentPaymentAlertType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 203163BC2C1C9602001C96DA /* PointOfSaleCardPresentPaymentAlertType.swift */; };
203A5C312AC5ADD700BF29A1 /* WooPaymentsPayoutsOverviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 203A5C302AC5ADD700BF29A1 /* WooPaymentsPayoutsOverviewView.swift */; };
203AB2A82D01B988001D989C /* OrderCustomAmountsSectionViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 203AB2A72D01B97D001D989C /* OrderCustomAmountsSectionViewModelTests.swift */; };
- 2044158D2CE4DB480070BF54 /* PointOfSaleOrderStage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2044158C2CE4DB480070BF54 /* PointOfSaleOrderStage.swift */; };
- 2044158F2CE6181E0070BF54 /* PointOfSaleOrderState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2044158E2CE6181E0070BF54 /* PointOfSaleOrderState.swift */; };
- 204415912CE622BA0070BF54 /* PointOfSaleOrderTotals.swift in Sources */ = {isa = PBXBuildFile; fileRef = 204415902CE622BA0070BF54 /* PointOfSaleOrderTotals.swift */; };
- 204C20462D35471400E6D9CF /* PointOfSaleItemListCardConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 204C20452D35471400E6D9CF /* PointOfSaleItemListCardConstants.swift */; };
204C9C742B6BDFFB007A94E0 /* UIUserInterfaceSizeClass+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 204C9C732B6BDFFB007A94E0 /* UIUserInterfaceSizeClass+Helpers.swift */; };
204CB80E2C0F8A5E000C9773 /* MockViewControllerPresenting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 204CB80D2C0F8A5E000C9773 /* MockViewControllerPresenting.swift */; };
- 204CB8102C10BB88000C9773 /* CardPresentPaymentPreviewService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 204CB80F2C10BB88000C9773 /* CardPresentPaymentPreviewService.swift */; };
- 204D1D602C5A3DA10064A6BE /* PointOfSaleReaderConnectionModalLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 204D1D5F2C5A3DA10064A6BE /* PointOfSaleReaderConnectionModalLayout.swift */; };
- 204D1D622C5A50840064A6BE /* POSModalViewModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 204D1D612C5A50840064A6BE /* POSModalViewModifier.swift */; };
- 2050D2662DF07BF700C25211 /* MockPointOfSaleBarcodeScanService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2050D2652DF07BF700C25211 /* MockPointOfSaleBarcodeScanService.swift */; };
- 205B7EB92C19FAF700D14A36 /* PointOfSaleCardPresentPaymentScanningForReadersAlertViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205B7EB82C19FAF700D14A36 /* PointOfSaleCardPresentPaymentScanningForReadersAlertViewModel.swift */; };
- 205B7EBB2C19FB1200D14A36 /* PointOfSaleCardPresentPaymentScanningFailedAlertViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205B7EBA2C19FB1200D14A36 /* PointOfSaleCardPresentPaymentScanningFailedAlertViewModel.swift */; };
- 205B7EBD2C19FB6600D14A36 /* PointOfSaleCardPresentPaymentFoundReaderAlertViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205B7EBC2C19FB6600D14A36 /* PointOfSaleCardPresentPaymentFoundReaderAlertViewModel.swift */; };
- 205B7EBF2C19FBCA00D14A36 /* PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressAlertViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205B7EBE2C19FBCA00D14A36 /* PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressAlertViewModel.swift */; };
- 205B7EC32C19FC3000D14A36 /* PointOfSaleCardPresentPaymentConnectingToReaderAlertViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205B7EC22C19FC3000D14A36 /* PointOfSaleCardPresentPaymentConnectingToReaderAlertViewModel.swift */; };
- 205B7EC52C19FC4F00D14A36 /* PointOfSaleCardPresentPaymentConnectingFailedAlertViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205B7EC42C19FC4F00D14A36 /* PointOfSaleCardPresentPaymentConnectingFailedAlertViewModel.swift */; };
- 205B7EC72C19FCA700D14A36 /* PointOfSaleCardPresentPaymentPreparingForPaymentMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205B7EC62C19FCA700D14A36 /* PointOfSaleCardPresentPaymentPreparingForPaymentMessageViewModel.swift */; };
- 205B7EC92C19FCDB00D14A36 /* PointOfSaleCardPresentPaymentTapSwipeInsertCardMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205B7EC82C19FCDB00D14A36 /* PointOfSaleCardPresentPaymentTapSwipeInsertCardMessageViewModel.swift */; };
- 205B7ECB2C19FCFC00D14A36 /* PointOfSaleCardPresentPaymentProcessingMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205B7ECA2C19FCFC00D14A36 /* PointOfSaleCardPresentPaymentProcessingMessageViewModel.swift */; };
- 205B7ECD2C19FD2F00D14A36 /* PointOfSaleCardPresentPaymentDisplayReaderMessageMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205B7ECC2C19FD2F00D14A36 /* PointOfSaleCardPresentPaymentDisplayReaderMessageMessageViewModel.swift */; };
- 205B7ECF2C19FD5200D14A36 /* PointOfSalePaymentSuccessViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205B7ECE2C19FD5200D14A36 /* PointOfSalePaymentSuccessViewModel.swift */; };
- 205B7ED12C19FD8500D14A36 /* PointOfSaleCardPresentPaymentErrorMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205B7ED02C19FD8500D14A36 /* PointOfSaleCardPresentPaymentErrorMessageViewModel.swift */; };
- 205E79402C1CA213001BA266 /* PointOfSaleCardPresentPaymentMessageType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205E793F2C1CA213001BA266 /* PointOfSaleCardPresentPaymentMessageType.swift */; };
- 205E79422C1CA6E3001BA266 /* PointOfSaleCardPresentPaymentEventPresentationStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205E79412C1CA6E3001BA266 /* PointOfSaleCardPresentPaymentEventPresentationStyle.swift */; };
- 205E79442C204368001BA266 /* PointOfSaleCardPresentPaymentNonRetryableErrorMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205E79432C204368001BA266 /* PointOfSaleCardPresentPaymentNonRetryableErrorMessageViewModel.swift */; };
- 205E79462C204387001BA266 /* PointOfSaleCardPresentPaymentCancelledOnReaderMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205E79452C204387001BA266 /* PointOfSaleCardPresentPaymentCancelledOnReaderMessageViewModel.swift */; };
- 205E794B2C2051B5001BA266 /* PointOfSaleCardPresentPaymentTapSwipeInsertCardMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205E794A2C2051B5001BA266 /* PointOfSaleCardPresentPaymentTapSwipeInsertCardMessageView.swift */; };
- 205E794D2C2057B9001BA266 /* PointOfSaleCardPresentPaymentErrorMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205E794C2C2057B9001BA266 /* PointOfSaleCardPresentPaymentErrorMessageView.swift */; };
- 205E794F2C207D38001BA266 /* PointOfSaleCardPresentPaymentNonRetryableErrorMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205E794E2C207D38001BA266 /* PointOfSaleCardPresentPaymentNonRetryableErrorMessageView.swift */; };
- 205E79512C207FAE001BA266 /* PointOfSaleCardPresentPaymentDisplayReaderMessageMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205E79502C207FAE001BA266 /* PointOfSaleCardPresentPaymentDisplayReaderMessageMessageView.swift */; };
- 20600F8B2C6E3CCE00950D2A /* PointOfSaleCardPresentPaymentEventPresentationStyleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20600F8A2C6E3CCE00950D2A /* PointOfSaleCardPresentPaymentEventPresentationStyleTests.swift */; };
- 206643552DAE9333002D5191 /* POSItemActionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 206643542DAE9333002D5191 /* POSItemActionHandler.swift */; };
- 20762BA32C18A6A300758305 /* CardPresentPaymentEventDetails.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20762BA22C18A6A300758305 /* CardPresentPaymentEventDetails.swift */; };
- 207823E32C5D18CE00025A59 /* PointOfSaleCardPresentPaymentConnectionSuccessAlertViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 207823E22C5D18CE00025A59 /* PointOfSaleCardPresentPaymentConnectionSuccessAlertViewModel.swift */; };
- 207823E52C5D1B2F00025A59 /* PointOfSaleCardPresentPaymentConnectionSuccessAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 207823E42C5D1B2F00025A59 /* PointOfSaleCardPresentPaymentConnectionSuccessAlertView.swift */; };
- 207823E92C5D3A1700025A59 /* POSErrorExclamationMark.swift in Sources */ = {isa = PBXBuildFile; fileRef = 207823E82C5D3A1700025A59 /* POSErrorExclamationMark.swift */; };
- 207CEA852E1FD59B0023EC35 /* PointOfSaleBarcodeScannerSetupScanTester.swift in Sources */ = {isa = PBXBuildFile; fileRef = 207CEA842E1FD59B0023EC35 /* PointOfSaleBarcodeScannerSetupScanTester.swift */; };
- 207CEA882E1FD6F80023EC35 /* PointOfSaleBarcodeScannerSetupScanTesterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 207CEA872E1FD6F80023EC35 /* PointOfSaleBarcodeScannerSetupScanTesterTests.swift */; };
- 207D2D232CFDCCBF00F79204 /* MockPOSOrderableItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 207D2D222CFDCCBF00F79204 /* MockPOSOrderableItem.swift */; };
- 207E71CB2C60F765008540FC /* MockPOSOrderService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 207E71CA2C60F765008540FC /* MockPOSOrderService.swift */; };
- 2084B7A22C77693600EFBD2E /* CardPresentPaymentsModalButtonViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2084B7A12C77693600EFBD2E /* CardPresentPaymentsModalButtonViewModelTests.swift */; };
- 2084B7A42C776A6900EFBD2E /* XCTestCase+PropertyCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2084B7A32C776A6900EFBD2E /* XCTestCase+PropertyCount.swift */; };
- 2084B7A62C776DA200EFBD2E /* PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressAlertViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2084B7A52C776DA200EFBD2E /* PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressAlertViewModelTests.swift */; };
- 2084B7A82C776E1000EFBD2E /* PointOfSaleCardPresentPaymentFoundMultipleReadersAlertViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2084B7A72C776E1000EFBD2E /* PointOfSaleCardPresentPaymentFoundMultipleReadersAlertViewModelTests.swift */; };
- 2084B7AA2C776E9700EFBD2E /* PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressAlertViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2084B7A92C776E9700EFBD2E /* PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressAlertViewModelTests.swift */; };
- 2084B7AC2C776F0F00EFBD2E /* PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressAlertViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2084B7AB2C776F0F00EFBD2E /* PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressAlertViewModelTests.swift */; };
- 2084B7AE2C77845C00EFBD2E /* PointOfSaleCardPresentPaymentReaderUpdateCompletionAlertViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2084B7AD2C77845C00EFBD2E /* PointOfSaleCardPresentPaymentReaderUpdateCompletionAlertViewModelTests.swift */; };
- 208628742D48E4CB003F45DC /* TotalsViewHelperTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 208628732D48E4CB003F45DC /* TotalsViewHelperTests.swift */; };
- 20886D3D2D96E0F900F7AE03 /* PointOfSaleCardPresentPaymentConnectingFailedLocationRequiredAlertViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20886D3C2D96E0F900F7AE03 /* PointOfSaleCardPresentPaymentConnectingFailedLocationRequiredAlertViewModel.swift */; };
- 20886D3F2D96E5EA00F7AE03 /* PointOfSaleCardPresentPaymentConnectingFailedLocationRequiredAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20886D3E2D96E5EA00F7AE03 /* PointOfSaleCardPresentPaymentConnectingFailedLocationRequiredAlertView.swift */; };
- 2088784B2D96E98000F7AE03 /* PointOfSaleCardPresentPaymentConnectingLocationPreAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2088784A2D96E98000F7AE03 /* PointOfSaleCardPresentPaymentConnectingLocationPreAlertView.swift */; };
- 2088784D2D96EA3900F7AE03 /* PointOfSaleCardPresentPaymentConnectingLocationPreAlertViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2088784C2D96EA3900F7AE03 /* PointOfSaleCardPresentPaymentConnectingLocationPreAlertViewModel.swift */; };
- 20897C9E2D4A68C5008AD16C /* PointOfSaleUnsupportedWidthView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20897C9D2D4A68C5008AD16C /* PointOfSaleUnsupportedWidthView.swift */; };
- 208C0F0A2E1FAC1900FE619E /* PointOfSaleBarcodeScannerSetupStepViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = 208C0F092E1FAC1900FE619E /* PointOfSaleBarcodeScannerSetupStepViews.swift */; };
- 209566252D4CF00100977124 /* PointOfSalePaymentMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 209566242D4CF00100977124 /* PointOfSalePaymentMethod.swift */; };
209AD3D02AC1EDDA00825D76 /* WooPaymentsPayoutsCurrencyOverviewViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 209AD3CF2AC1EDDA00825D76 /* WooPaymentsPayoutsCurrencyOverviewViewModel.swift */; };
209AD3D22AC1EDF600825D76 /* WooPaymentsPayoutsCurrencyOverviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 209AD3D12AC1EDF600825D76 /* WooPaymentsPayoutsCurrencyOverviewView.swift */; };
209B15672AD85F070094152A /* OperatingSystemVersion+Localization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 209B15662AD85F070094152A /* OperatingSystemVersion+Localization.swift */; };
- 209B7A682CEB6742003BDEF0 /* PointOfSalePaymentState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 209B7A672CEB6742003BDEF0 /* PointOfSalePaymentState.swift */; };
- 209C60FD2DCCFC7100AB2D39 /* POSPreSearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20050F182DC3E37400E12021 /* POSPreSearchView.swift */; };
209CA0EE2B50070D0073D1AC /* WooTabContainerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 209CA0ED2B50070D0073D1AC /* WooTabContainerController.swift */; };
- 209ECA812DB8FC280089F3D2 /* PointOfSaleViewStateCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 209ECA802DB8FC280089F3D2 /* PointOfSaleViewStateCoordinator.swift */; };
- 209EE8132DBA95BA0089F3D2 /* POSSearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 209EE8122DBA95BA0089F3D2 /* POSSearchView.swift */; };
- 209EE8152DBA96D00089F3D2 /* POSProductSearchable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 209EE8142DBA96D00089F3D2 /* POSProductSearchable.swift */; };
- 209EEF902C762ED5007969A4 /* POSModalManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 209EEF8F2C762ED5007969A4 /* POSModalManager.swift */; };
- 20A130EB2C5A27190058022F /* PointOfSaleAssetsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20A130EA2C5A27190058022F /* PointOfSaleAssetsTests.swift */; };
20A3AFE12B0F750B0033AF2D /* MockInPersonPaymentsCashOnDeliveryToggleRowViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20A3AFE02B0F750B0033AF2D /* MockInPersonPaymentsCashOnDeliveryToggleRowViewModel.swift */; };
20A3AFE32B10EF860033AF2D /* CardReaderSettingsFlowPresentingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20A3AFE22B10EF860033AF2D /* CardReaderSettingsFlowPresentingView.swift */; };
20A3AFE52B10EF970033AF2D /* TapToPaySettingsFlowPresentingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20A3AFE42B10EF970033AF2D /* TapToPaySettingsFlowPresentingView.swift */; };
- 20ADE9412C6A02B700C91265 /* POSErrorXMark.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20ADE9402C6A02B700C91265 /* POSErrorXMark.swift */; };
- 20ADE9432C6B34D100C91265 /* CardPresentPaymentsRetryApproach.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20ADE9422C6B34D100C91265 /* CardPresentPaymentsRetryApproach.swift */; };
- 20ADE9462C6B364900C91265 /* CardPresentPaymentRetryApproachTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20ADE9452C6B364900C91265 /* CardPresentPaymentRetryApproachTests.swift */; };
20AE33C52B0510BF00527B60 /* PaymentsMenuDestination.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20AE33C42B0510BF00527B60 /* PaymentsMenuDestination.swift */; };
20AE33C72B0510D200527B60 /* HubMenuDestination.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20AE33C62B0510D200527B60 /* HubMenuDestination.swift */; };
20B0D65E2AD45BDE0059735A /* TapToPayEducationContactlessLimitViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20B0D65D2AD45BDE0059735A /* TapToPayEducationContactlessLimitViewModelTests.swift */; };
@@ -962,46 +723,18 @@
20BCF6EE2B0E478B00954840 /* WooPaymentsPayoutsOverviewViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20BCF6ED2B0E478B00954840 /* WooPaymentsPayoutsOverviewViewModel.swift */; };
20BCF6F02B0E48CC00954840 /* WooPaymentsPayoutsOverviewViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20BCF6EF2B0E48CC00954840 /* WooPaymentsPayoutsOverviewViewModelTests.swift */; };
20BCF6F72B0E5AF000954840 /* MockSystemStatusService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20BCF6F62B0E5AEF00954840 /* MockSystemStatusService.swift */; };
- 20C3CC3C2E1D31B100CF7D3B /* PointOfSaleModalHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20C3CC3B2E1D31B100CF7D3B /* PointOfSaleModalHeader.swift */; };
- 20C3DB232E1E69CF00CF7D3B /* PointOfSaleBarcodeScannerSetupViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20C3DB212E1E69CF00CF7D3B /* PointOfSaleBarcodeScannerSetupViews.swift */; };
- 20C3DB242E1E69CF00CF7D3B /* PointOfSaleBarcodeScannerSetupFlowManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20C3DB1F2E1E69CF00CF7D3B /* PointOfSaleBarcodeScannerSetupFlowManager.swift */; };
- 20C3DB252E1E69CF00CF7D3B /* PointOfSaleBarcodeScannerSetup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20C3DB1E2E1E69CF00CF7D3B /* PointOfSaleBarcodeScannerSetup.swift */; };
- 20C3DB262E1E69CF00CF7D3B /* PointOfSaleBarcodeScannerSetupModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20C3DB202E1E69CF00CF7D3B /* PointOfSaleBarcodeScannerSetupModels.swift */; };
- 20C3DB272E1E69CF00CF7D3B /* PointOfSaleBarcodeScannerSetupFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20C3DB1D2E1E69CF00CF7D3B /* PointOfSaleBarcodeScannerSetupFlow.swift */; };
- 20C3DB292E1E6FBA00CF7D3B /* PointOfSaleFlowButtonsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20C3DB282E1E6FBA00CF7D3B /* PointOfSaleFlowButtonsView.swift */; };
- 20C6E7512CDE4AEA00CD124C /* ItemListState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20C6E7502CDE4AEA00CD124C /* ItemListState.swift */; };
- 20C909962D3151FA0013BCCF /* ItemListBaseItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20C909952D3151FA0013BCCF /* ItemListBaseItem.swift */; };
20CC1EDB2AFA8381006BD429 /* InPersonPaymentsMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20CC1EDA2AFA8381006BD429 /* InPersonPaymentsMenu.swift */; };
20CC1EDD2AFA99DF006BD429 /* InPersonPaymentsMenuViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20CC1EDC2AFA99DF006BD429 /* InPersonPaymentsMenuViewModel.swift */; };
20CCBF212B0E15C0003102E6 /* WooPaymentsPayoutsCurrencyOverviewViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20CCBF202B0E15C0003102E6 /* WooPaymentsPayoutsCurrencyOverviewViewModelTests.swift */; };
- 20CEBF232E02C760001F3300 /* TimeProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20CEBF222E02C760001F3300 /* TimeProvider.swift */; };
- 20CEBF252E02C7E6001F3300 /* MockTimeProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20CEBF242E02C7E6001F3300 /* MockTimeProvider.swift */; };
- 20CF75BA2CF4E6A200ACCF4A /* PointOfSaleOrderController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20CF75B92CF4E69000ACCF4A /* PointOfSaleOrderController.swift */; };
20D210BE2B14C9B90099E517 /* WooPaymentsPayoutStatusDisplayDetails.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20D210BD2B14C9B90099E517 /* WooPaymentsPayoutStatusDisplayDetails.swift */; };
- 20D2CCA32C7E175700051705 /* WavesProgressViewStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20D2CCA22C7E175700051705 /* WavesProgressViewStyle.swift */; };
- 20D2CCA52C7E328300051705 /* POSModalCloseButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20D2CCA42C7E328300051705 /* POSModalCloseButton.swift */; };
- 20D3D42B2C64D7CC004CE6E3 /* SimpleProductsOnlyInformation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20D3D42A2C64D7CC004CE6E3 /* SimpleProductsOnlyInformation.swift */; };
20D3D4332C65E59B004CE6E3 /* OrdersRoute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20D3D4322C65E59B004CE6E3 /* OrdersRoute.swift */; };
20D3D4352C65E640004CE6E3 /* OrdersDestination.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20D3D4342C65E640004CE6E3 /* OrdersDestination.swift */; };
20D3D4372C65EF72004CE6E3 /* OrdersRouteTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20D3D4362C65EF72004CE6E3 /* OrdersRouteTests.swift */; };
- 20D4AE012D133B43004555B2 /* ItemsStackState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20D4AE002D133B43004555B2 /* ItemsStackState.swift */; };
- 20D5575D2DFADF5400D9EC8B /* BarcodeScannerContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20D5575C2DFADF5400D9EC8B /* BarcodeScannerContainer.swift */; };
20D5CB512AFCF856009A39C3 /* PaymentsRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20D5CB502AFCF856009A39C3 /* PaymentsRow.swift */; };
20D5CB532AFCF8E7009A39C3 /* PaymentsToggleRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20D5CB522AFCF8E7009A39C3 /* PaymentsToggleRow.swift */; };
- 20D920EA2CEF86520023B089 /* PointOfSaleErrorState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20D920E92CEF86520023B089 /* PointOfSaleErrorState.swift */; };
20DA6DDB2B681175002AA0FB /* AdaptiveModalContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20DA6DDA2B681175002AA0FB /* AdaptiveModalContainer.swift */; };
- 20DB185B2CF5D9220018D3E1 /* MockPointOfSaleOrderController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20DB185A2CF5D9220018D3E1 /* MockPointOfSaleOrderController.swift */; };
- 20DB185D2CF5E7630018D3E1 /* PointOfSaleOrderControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20DB185C2CF5E7560018D3E1 /* PointOfSaleOrderControllerTests.swift */; };
20E188842AD059A50053E945 /* TapToPayEducationContactlessLimitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20E188832AD059A50053E945 /* TapToPayEducationContactlessLimitView.swift */; };
- 20EFAEA62D35337F00D35F9C /* POSListInlineErrorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20EFAEA52D35337F00D35F9C /* POSListInlineErrorView.swift */; };
- 20F6A46C2DE5FCEF0066D8CB /* POSItemFetchAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20F6A46B2DE5FCEF0066D8CB /* POSItemFetchAnalytics.swift */; };
- 20F7B12D2D12C7B900C08193 /* ItemsContainerState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20F7B12C2D12C7B900C08193 /* ItemsContainerState.swift */; };
- 20F7B12F2D12CBE700C08193 /* ItemsViewState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20F7B12E2D12CBE700C08193 /* ItemsViewState.swift */; };
20FA73882CDCC3A900554BE3 /* OrderDetailsSyncStateController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20FA73872CDCC3A900554BE3 /* OrderDetailsSyncStateController.swift */; };
- 20FCBCDD2CE223340082DCA3 /* PointOfSaleAggregateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20FCBCDC2CE223340082DCA3 /* PointOfSaleAggregateModel.swift */; };
- 20FCBCDF2CE241810082DCA3 /* PointOfSaleAggregateModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20FCBCDE2CE241810082DCA3 /* PointOfSaleAggregateModelTests.swift */; };
- 20FCBCE12CE24CE70082DCA3 /* MockPOSItemProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20FCBCE02CE24CE70082DCA3 /* MockPOSItemProvider.swift */; };
- 20FCBCE32CE24F5D0082DCA3 /* MockPointOfSaleAggregateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20FCBCE22CE24F5D0082DCA3 /* MockPointOfSaleAggregateModel.swift */; };
24F98C502502AEE200F49B68 /* EventLogging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24F98C4F2502AEE200F49B68 /* EventLogging.swift */; };
2602A63D27BD3C8C00B347F1 /* RemoteOrderSynchronizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2602A63C27BD3C8C00B347F1 /* RemoteOrderSynchronizer.swift */; };
2602A63F27BD880A00B347F1 /* NewOrderInitialStatusResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2602A63E27BD880A00B347F1 /* NewOrderInitialStatusResolver.swift */; };
@@ -1602,29 +1335,18 @@
57CFCD2A2488496F003F51EC /* PrimarySectionHeaderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 57CFCD292488496F003F51EC /* PrimarySectionHeaderView.xib */; };
57F2C6CD246DECC10074063B /* SummaryTableViewCellViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57F2C6CC246DECC10074063B /* SummaryTableViewCellViewModelTests.swift */; };
57F42E40253768D600EA87F7 /* TitleAndEditableValueTableViewCellViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57F42E3F253768D600EA87F7 /* TitleAndEditableValueTableViewCellViewModelTests.swift */; };
- 6801E4172D0FFF0300F9DF46 /* MockReceiptService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6801E4162D0FFF0100F9DF46 /* MockReceiptService.swift */; };
680BA59A2A4C377900F5559D /* UpgradeViewState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 680BA5992A4C377900F5559D /* UpgradeViewState.swift */; };
680E36B52BD8B9B900E8BCEA /* OrderSubscriptionTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 680E36B42BD8B9B900E8BCEA /* OrderSubscriptionTableViewCell.xib */; };
680E36B72BD8C49F00E8BCEA /* OrderSubscriptionTableViewCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 680E36B62BD8C49F00E8BCEA /* OrderSubscriptionTableViewCellViewModel.swift */; };
- 6818E7C12D93C76700677C16 /* PointOfSaleCouponsControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6818E7C02D93C76200677C16 /* PointOfSaleCouponsControllerTests.swift */; };
- 681BB5FC2D676047008AF8BB /* POSSpacing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 681BB5FB2D676043008AF8BB /* POSSpacing.swift */; };
- 681BB5FE2D676061008AF8BB /* POSPadding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 681BB5FD2D676060008AF8BB /* POSPadding.swift */; };
682140AF2E125437005E86AB /* UILabel+SalesChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 682140AE2E125430005E86AB /* UILabel+SalesChannel.swift */; };
682210ED2909666600814E14 /* CustomerSearchUICommandTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 682210EC2909666600814E14 /* CustomerSearchUICommandTests.swift */; };
6827140F28A3988300E6E3F6 /* DismissableNoticeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6827140E28A3988300E6E3F6 /* DismissableNoticeView.swift */; };
6832C7CA26DA5C4500BA4088 /* LabeledTextViewTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6832C7C926DA5C4500BA4088 /* LabeledTextViewTableViewCell.swift */; };
6832C7CC26DA5FDF00BA4088 /* LabeledTextViewTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6832C7CB26DA5FDE00BA4088 /* LabeledTextViewTableViewCell.xib */; };
683421642ACE9391009021D7 /* ProductDiscountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 683421632ACE9391009021D7 /* ProductDiscountView.swift */; };
- 6837631A2C2E6F5900AD51D0 /* CartViewHelperTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 683763192C2E6F5900AD51D0 /* CartViewHelperTests.swift */; };
- 6837631C2C2E847D00AD51D0 /* CartViewHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6837631B2C2E847D00AD51D0 /* CartViewHelper.swift */; };
- 683988A72C7D82E70084B85A /* POSHeaderLayoutConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 683988A62C7D82E60084B85A /* POSHeaderLayoutConstants.swift */; };
683AA9D62A303CB70099F7BA /* UpgradesViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 683AA9D52A303CB70099F7BA /* UpgradesViewModelTests.swift */; };
- 683AC4AC2CEF019A00FF0A5E /* POSSendReceiptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 683AC4AB2CEF019700FF0A5E /* POSSendReceiptView.swift */; };
- 683D41182E4D9B570024CFE4 /* PointOfSaleSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 683D41172E4D9B570024CFE4 /* PointOfSaleSettingsView.swift */; };
- 683DF5FF2C6AF46500A5CDC6 /* POSHeaderTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 683DF5FE2C6AF46500A5CDC6 /* POSHeaderTitleView.swift */; };
684AB83A2870677F003DFDD1 /* CardReaderManualsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 684AB8392870677F003DFDD1 /* CardReaderManualsView.swift */; };
684AB83C2873DF04003DFDD1 /* CardReaderManualsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 684AB83B2873DF04003DFDD1 /* CardReaderManualsViewModel.swift */; };
- 68503C362DA53E0A00C07909 /* MockPointOfSaleCouponsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68503C352DA53E0800C07909 /* MockPointOfSaleCouponsController.swift */; };
6850C5EE2B69E6580026A93B /* ReceiptViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6850C5ED2B69E6580026A93B /* ReceiptViewModel.swift */; };
6850C5F12B69E74D0026A93B /* ReceiptViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6850C5F02B69E74D0026A93B /* ReceiptViewController.swift */; };
6850C5F42B6A11CA0026A93B /* ReceiptViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6850C5F32B6A11CA0026A93B /* ReceiptViewModelTests.swift */; };
@@ -1636,50 +1358,26 @@
6856DB2E741639716E149967 /* KeyboardStateProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6856D02484A69911F2B91714 /* KeyboardStateProvider.swift */; };
6856DE479EC3B2265AC1F775 /* Calendar+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6856D66A1963092C34D20674 /* Calendar+Extensions.swift */; };
6856DF20E1BDCC391635F707 /* AgeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6856D1A5F72A36AB3704D19D /* AgeTests.swift */; };
- 685A305F2E608F2D001E667B /* POSSettingsStoreViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 685A305E2E608F29001E667B /* POSSettingsStoreViewModelTests.swift */; };
- 685A30612E60908C001E667B /* POSSettingsStoreViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 685A30602E60908B001E667B /* POSSettingsStoreViewModel.swift */; };
- 68600A8F2C65BC5500252EDD /* POSListErrorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68600A8E2C65BC5500252EDD /* POSListErrorView.swift */; };
- 68600A912C65BC9C00252EDD /* POSListEmptyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68600A902C65BC9C00252EDD /* POSListEmptyView.swift */; };
68674D312B6C895D00E93FBD /* ReceiptEligibilityUseCaseTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68674D302B6C895D00E93FBD /* ReceiptEligibilityUseCaseTests.swift */; };
- 686A71B62DC9E5C10006E835 /* POSItemActionHandlerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 686A71B52DC9E5C10006E835 /* POSItemActionHandlerTests.swift */; };
- 686A71B82DC9EB710006E835 /* MockPOSSearchHistoryService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 686A71B72DC9EB6D0006E835 /* MockPOSSearchHistoryService.swift */; };
- 68707A172E570EB200500CD8 /* PointOfSaleSettingsHardwareDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68707A162E570EB000500CD8 /* PointOfSaleSettingsHardwareDetailView.swift */; };
- 68707A192E570F0200500CD8 /* PointOfSaleSettingsHelpDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68707A182E570F0000500CD8 /* PointOfSaleSettingsHelpDetailView.swift */; };
- 68707A1B2E570F2300500CD8 /* PointOfSaleSettingsStoreDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68707A1A2E570F2200500CD8 /* PointOfSaleSettingsStoreDetailView.swift */; };
68709D3D2A2ED94900A7FA6C /* UpgradesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68709D3C2A2ED94900A7FA6C /* UpgradesView.swift */; };
68709D402A2EE2DC00A7FA6C /* UpgradesViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68709D3F2A2EE2DC00A7FA6C /* UpgradesViewModel.swift */; };
6879B8DB287AFFA100A0F9A8 /* CardReaderManualsViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6879B8DA287AFFA100A0F9A8 /* CardReaderManualsViewModelTests.swift */; };
687C006F2D6346E300F832FC /* POSCollectOrderPaymentAnalyticsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 687C006E2D6346E300F832FC /* POSCollectOrderPaymentAnalyticsTests.swift */; };
6881CCC42A5EE6BF00AEDE36 /* WooPlanCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6881CCC32A5EE6BF00AEDE36 /* WooPlanCardView.swift */; };
- 6885E2CC2C32B14B004C8D70 /* TotalsViewHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6885E2CB2C32B14B004C8D70 /* TotalsViewHelper.swift */; };
6888A2C82A668D650026F5C0 /* FullFeatureListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6888A2C72A668D650026F5C0 /* FullFeatureListView.swift */; };
6888A2CA2A66C42C0026F5C0 /* FullFeatureListViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6888A2C92A66C42C0026F5C0 /* FullFeatureListViewModel.swift */; };
- 6891C3642D364AFE00B5B48C /* CollectCashViewHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6891C3632D364AFB00B5B48C /* CollectCashViewHelper.swift */; };
- 6891C3662D364C1A00B5B48C /* CollectCashViewHelperTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6891C3652D364C1A00B5B48C /* CollectCashViewHelperTests.swift */; };
- 689F291A2DE4557E004DF52B /* POSStockFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 689F29192DE4557D004DF52B /* POSStockFormatter.swift */; };
- 689F291C2DE45604004DF52B /* POSStockFormatterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 689F291B2DE45604004DF52B /* POSStockFormatterTests.swift */; };
- 68A345642D029E12002EE324 /* PaymentButtons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68A345632D029E09002EE324 /* PaymentButtons.swift */; };
68A38DF52B293B030090C263 /* MockProductListViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68A38DF42B293B030090C263 /* MockProductListViewModel.swift */; };
68A5221B2BA1804900A6A584 /* PluginDetailsViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68A5221A2BA1804900A6A584 /* PluginDetailsViewModelTests.swift */; };
68A905012ACCFC13004C71D3 /* CollapsibleProductCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68A905002ACCFC13004C71D3 /* CollapsibleProductCard.swift */; };
68B3BA262D9147480000B2F2 /* AISettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68B3BA252D9147440000B2F2 /* AISettingsView.swift */; };
- 68B681162D9257810098D5CD /* PointOfSaleCouponsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68B681152D92577F0098D5CD /* PointOfSaleCouponsController.swift */; };
68B6F22B2ADE7ED500D171FC /* TooltipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68B6F22A2ADE7ED500D171FC /* TooltipView.swift */; };
68C31B712A8617C500AE5C5A /* NewNoteViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68C31B702A8617C500AE5C5A /* NewNoteViewModel.swift */; };
- 68C53CBE2C1FE59B00C6D80B /* ItemListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68C53CBD2C1FE59B00C6D80B /* ItemListView.swift */; };
- 68C7E5C42C69B3CD00856513 /* PointOfSaleItemListErrorLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68C7E5C32C69B3CD00856513 /* PointOfSaleItemListErrorLayout.swift */; };
68D1BEDB28FFEDC20074A29E /* OrderCustomerListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68D1BEDA28FFEDC20074A29E /* OrderCustomerListView.swift */; };
68D1BEDD2900E4180074A29E /* CustomerSearchUICommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68D1BEDC2900E4180074A29E /* CustomerSearchUICommand.swift */; };
68D23B5B2E14FD1C00316BA6 /* SummaryTableViewCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68D23B5A2E14FD1A00316BA6 /* SummaryTableViewCellViewModel.swift */; };
- 68D3E98D2C7C371B005B6278 /* POSEdgeShadowViewModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68D3E98C2C7C371B005B6278 /* POSEdgeShadowViewModifier.swift */; };
68D5094E2AD39BC900B6FFD5 /* DiscountLineDetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68D5094D2AD39BC900B6FFD5 /* DiscountLineDetailsView.swift */; };
- 68D748102E5DB6D40048CFE9 /* PointOfSaleSettingsControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68D7480F2E5DB6D20048CFE9 /* PointOfSaleSettingsControllerTests.swift */; };
- 68D8FBD12BFEF9C700477C42 /* TotalsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68D8FBD02BFEF9C700477C42 /* TotalsView.swift */; };
68DF5A8D2CB38EEA000154C9 /* EditableOrderCouponLineViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68DF5A8C2CB38EEA000154C9 /* EditableOrderCouponLineViewModel.swift */; };
68DF5A8F2CB38F20000154C9 /* OrderCouponSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68DF5A8E2CB38F20000154C9 /* OrderCouponSectionView.swift */; };
- 68E141DB2D13107400A70D5B /* PointOfSaleCollectCashView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68E141DA2D13107200A70D5B /* PointOfSaleCollectCashView.swift */; };
- 68E33B2E2E66AAB500CBE921 /* POSConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68E33B2D2E66AAAE00CBE921 /* POSConstants.swift */; };
- 68E4E8B52C0EF39D00CFA0C3 /* PreviewHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68E4E8B42C0EF39D00CFA0C3 /* PreviewHelpers.swift */; };
68E6749F2A4DA01C0034BA1E /* WooWPComPlan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68E6749E2A4DA01C0034BA1E /* WooWPComPlan.swift */; };
68E674A12A4DA0B30034BA1E /* InAppPurchasesError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68E674A02A4DA0B30034BA1E /* InAppPurchasesError.swift */; };
68E674A32A4DA7990034BA1E /* PrePurchaseUpgradesErrorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68E674A22A4DA7990034BA1E /* PrePurchaseUpgradesErrorView.swift */; };
@@ -1691,11 +1389,7 @@
68E674AF2A4DACD50034BA1E /* UpgradeTopBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68E674AE2A4DACD50034BA1E /* UpgradeTopBarView.swift */; };
68E952D0287587BF0095A23D /* CardReaderManualRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68E952CF287587BF0095A23D /* CardReaderManualRowView.swift */; };
68E952D22875A44B0095A23D /* CardReaderType+Manual.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68E952D12875A44B0095A23D /* CardReaderType+Manual.swift */; };
- 68E9F7012E5C499200D45747 /* PointOfSaleSettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68E9F7002E5C499000D45747 /* PointOfSaleSettingsController.swift */; };
68ED2BD62ADD2C8C00ECA88D /* LineDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68ED2BD52ADD2C8C00ECA88D /* LineDetailView.swift */; };
- 68F151E12C0DA7910082AEC8 /* Cart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68F151E02C0DA7910082AEC8 /* Cart.swift */; };
- 68F68A502D6730E200BB9568 /* POSCollectOrderPaymentAnalyticsTracking.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68F68A4F2D6730DF00BB9568 /* POSCollectOrderPaymentAnalyticsTracking.swift */; };
- 68F68A522D67365900BB9568 /* MockPOSCollectOrderPaymentAnalyticsTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68F68A512D67365900BB9568 /* MockPOSCollectOrderPaymentAnalyticsTracker.swift */; };
740382DB2267D94100A627F4 /* LargeImageTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 740382D92267D94100A627F4 /* LargeImageTableViewCell.swift */; };
740382DC2267D94100A627F4 /* LargeImageTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 740382DA2267D94100A627F4 /* LargeImageTableViewCell.xib */; };
740987B321B87760000E4C80 /* FancyAnimatedButton+Woo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 740987B221B87760000E4C80 /* FancyAnimatedButton+Woo.swift */; };
@@ -2535,7 +2229,6 @@
D8736B5322EF4F5900A14A29 /* NotificationsBadgeController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8736B5222EF4F5900A14A29 /* NotificationsBadgeController.swift */; };
D8736B5A22F07D7100A14A29 /* MainTabViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8736B5922F07D7100A14A29 /* MainTabViewModel.swift */; };
D8736B7522F1FE1600A14A29 /* BadgeLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8736B7422F1FE1600A14A29 /* BadgeLabel.swift */; };
- D8752EF7265E60F4008ACC80 /* PaymentCaptureCelebration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8752EF6265E60F4008ACC80 /* PaymentCaptureCelebration.swift */; };
D88100D3257DD060008DE6F2 /* WordPressComSiteInfoWooTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D88100D2257DD060008DE6F2 /* WordPressComSiteInfoWooTests.swift */; };
D8815ADF26383EE700EDAD62 /* CardPresentPaymentsModalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8815ADD26383EE600EDAD62 /* CardPresentPaymentsModalViewController.swift */; };
D8815AE026383EE700EDAD62 /* CardPresentPaymentsModalViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D8815ADE26383EE700EDAD62 /* CardPresentPaymentsModalViewController.xib */; };
@@ -2580,9 +2273,6 @@
D8EE9698264D3CCB0033B2F9 /* LegacyReceiptViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8EE9697264D3CCB0033B2F9 /* LegacyReceiptViewModel.swift */; };
D8F01DD325DEDC1C00CE70BE /* StripeCardReaderIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8F01DD225DEDC1C00CE70BE /* StripeCardReaderIntegrationTests.swift */; };
D8F82AC522AF903700B67E4B /* IconsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8F82AC422AF903700B67E4B /* IconsTests.swift */; };
- DA013F512C65125100D9A391 /* PointOfSaleExitPosAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA013F502C65125100D9A391 /* PointOfSaleExitPosAlertView.swift */; };
- DA0DBE2F2C4FC61D00DF14C0 /* POSFloatingControlView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA0DBE2E2C4FC61D00DF14C0 /* POSFloatingControlView.swift */; };
- DA1D68C22C36F0980097859A /* PointOfSaleAssets.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA1D68C12C36F0980097859A /* PointOfSaleAssets.swift */; };
DA24152B2D116EAE0008F69A /* WooShippingAddPackageViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA24152A2D116EA90008F69A /* WooShippingAddPackageViewModelTests.swift */; };
DA25ADDD2C86145E00AE81FE /* MarkOrderAsReadUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA25ADDC2C86145E00AE81FE /* MarkOrderAsReadUseCase.swift */; };
DA25ADDF2C87403900AE81FE /* PushNotificationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA25ADDE2C87403900AE81FE /* PushNotificationTests.swift */; };
@@ -2591,7 +2281,6 @@
DA4080722CC2967C002A4577 /* WooShippingAddCustomPackageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA4080712CC2967C002A4577 /* WooShippingAddCustomPackageViewModel.swift */; };
DA4080752CC2A7BC002A4577 /* WooCarrierPackagesSelectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA4080732CC2A7BC002A4577 /* WooCarrierPackagesSelectionView.swift */; };
DA4080762CC2A7BC002A4577 /* WooSavedPackagesSelectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA4080742CC2A7BC002A4577 /* WooSavedPackagesSelectionView.swift */; };
- DA41043A2C247B6900E8456A /* PointOfSalePreviewOrderController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA4104392C247B6900E8456A /* PointOfSalePreviewOrderController.swift */; };
DA706BF92C8063B600E08A5B /* PushNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 575472802452185300A94C3C /* PushNotification.swift */; };
DA706BFA2C80642800E08A5B /* Dictionary+Woo.swift in Sources */ = {isa = PBXBuildFile; fileRef = B57C5C9521B80E5400FF82B2 /* Dictionary+Woo.swift */; };
DA706BFB2C80663800E08A5B /* PushNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 575472802452185300A94C3C /* PushNotification.swift */; };
@@ -3248,10 +2937,6 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
- 0105865B2E426FAA002FADD1 /* BarcodeAnalyticsTracker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BarcodeAnalyticsTracker.swift; sourceTree = ""; };
- 0105865D2E426FDB002FADD1 /* UIKitBarcodeObserver.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIKitBarcodeObserver.swift; sourceTree = ""; };
- 01058DCF2E42716A002FADD1 /* BarcodeScannerContainerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BarcodeScannerContainerTests.swift; sourceTree = ""; };
- 01058DD12E4273F2002FADD1 /* UIKitBarcodeObserverTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIKitBarcodeObserverTests.swift; sourceTree = ""; };
010F7D862E79B39E002B02EA /* POSFormattableAmountTextFieldAdaptor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSFormattableAmountTextFieldAdaptor.swift; sourceTree = ""; };
010F7D8A2E79B763002B02EA /* POSCouponCreationSheetAdaptor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSCouponCreationSheetAdaptor.swift; sourceTree = ""; };
010F7D8C2E7A8447002B02EA /* ProductImageThumbnail+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ProductImageThumbnail+Extensions.swift"; sourceTree = ""; };
@@ -3259,29 +2944,9 @@
011D39702D0A324100DB1445 /* LocationServiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationServiceTests.swift; sourceTree = ""; };
011D7A322CEC87770007C187 /* CardPresentModalNonRetryableErrorEmailSent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardPresentModalNonRetryableErrorEmailSent.swift; sourceTree = ""; };
011D7A342CEC87B60007C187 /* CardPresentModalErrorEmailSent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardPresentModalErrorEmailSent.swift; sourceTree = ""; };
- 011DF3432C53A5CF000AFDD9 /* PointOfSaleCardPresentPaymentValidatingOrderMessageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentValidatingOrderMessageViewModel.swift; sourceTree = ""; };
- 011DF3452C53A919000AFDD9 /* PointOfSaleCardPresentPaymentActivityIndicatingMessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentActivityIndicatingMessageView.swift; sourceTree = ""; };
- 012ACB732E5C830500A49458 /* POSOrderListController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSOrderListController.swift; sourceTree = ""; };
- 012ACB752E5C83EC00A49458 /* POSOrderListControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSOrderListControllerTests.swift; sourceTree = ""; };
- 012ACB772E5C84A200A49458 /* POSOrdersViewState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSOrdersViewState.swift; sourceTree = ""; };
- 012ACB792E5C84D200A49458 /* MockPOSOrderListService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockPOSOrderListService.swift; sourceTree = ""; };
- 012ACB7B2E5C9BD400A49458 /* POSOrderListModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSOrderListModel.swift; sourceTree = ""; };
- 012ACB812E5D8DCD00A49458 /* MockPOSOrderListFetchStrategyFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockPOSOrderListFetchStrategyFactory.swift; sourceTree = ""; };
- 01309A7E2DC4F39A00B77527 /* PointOfSaleCardPresentPaymentCardInsertedMessageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentCardInsertedMessageViewModel.swift; sourceTree = ""; };
01309A802DC4F44700B77527 /* CardPresentModalCardInserted.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardPresentModalCardInserted.swift; sourceTree = ""; };
- 01309A822DC4F89400B77527 /* PointOfSaleCardPresentPaymentCardInsertedMessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentCardInsertedMessageView.swift; sourceTree = ""; };
- 0139BB512D91B45500C78FDE /* CouponRowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponRowView.swift; sourceTree = ""; };
013D2FB32CFEFEA800845D75 /* TapToPayCardReaderMerchantEducationPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TapToPayCardReaderMerchantEducationPresenter.swift; sourceTree = ""; };
013D2FB52CFF54B600845D75 /* TapToPayEducationStepsFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TapToPayEducationStepsFactory.swift; sourceTree = ""; };
- 01435CF72DFC2CE800C0279B /* PointOfSaleInformationModal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleInformationModal.swift; sourceTree = ""; };
- 014371262DFC8E2100C0279B /* PointOfSaleBarcodeScannerInformationModal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleBarcodeScannerInformationModal.swift; sourceTree = ""; };
- 014997212E1432AB002C50E1 /* PointOfSaleCardPresentPaymentReaderUpdateProgressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentReaderUpdateProgressView.swift; sourceTree = ""; };
- 014BD4B72C64E2BA0011A66E /* PointOfSaleOrderSyncErrorMessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleOrderSyncErrorMessageView.swift; sourceTree = ""; };
- 015456CD2DB033FF0071C3C4 /* POSPageHeaderActionButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSPageHeaderActionButton.swift; sourceTree = ""; };
- 0157A9952C4FEA7200866FFD /* PointOfSaleLoadingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleLoadingView.swift; sourceTree = ""; };
- 015D99A92C58C780001D7186 /* PointOfSaleCardPresentPaymentLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentLayout.swift; sourceTree = ""; };
- 0161EFE12E734B2B006F27B4 /* POSEnvironmentKeys.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSEnvironmentKeys.swift; sourceTree = ""; };
- 01620C4D2C5394B200D3EA2F /* POSProgressViewStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSProgressViewStyle.swift; sourceTree = ""; };
01654EAF2E786223001DBB6F /* POSServiceLocatorAdaptor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSServiceLocatorAdaptor.swift; sourceTree = ""; };
01654EB52E78641B001DBB6F /* WooAnalyticsEvent+WooApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WooAnalyticsEvent+WooApp.swift"; sourceTree = ""; };
016582CA2E78715B001DBB6F /* CardPresentPaymentBluetoothReaderConnectionAlertsProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardPresentPaymentBluetoothReaderConnectionAlertsProvider.swift; sourceTree = ""; };
@@ -3295,28 +2960,12 @@
016582D22E78715B001DBB6F /* CardPresentPaymentsTransactionAlertsProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardPresentPaymentsTransactionAlertsProvider.swift; sourceTree = ""; };
016582D32E78715B001DBB6F /* CardPresentPaymentTapToPayReaderConnectionAlertsProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardPresentPaymentTapToPayReaderConnectionAlertsProvider.swift; sourceTree = ""; };
016582D52E78715B001DBB6F /* POSCollectOrderPaymentAnalyticsAdaptor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSCollectOrderPaymentAnalyticsAdaptor.swift; sourceTree = ""; };
- 016582E12E787187001DBB6F /* MockOnboardingViewFactoryConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockOnboardingViewFactoryConfiguration.swift; sourceTree = ""; };
- 016582E32E7871F8001DBB6F /* POSDependencyProviding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSDependencyProviding.swift; sourceTree = ""; };
- 016582E62E789409001DBB6F /* POSIneligibleReason.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSIneligibleReason.swift; sourceTree = ""; };
- 016582E82E789468001DBB6F /* PointOfSaleBarcodeScannerButtonCustomization.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleBarcodeScannerButtonCustomization.swift; sourceTree = ""; };
- 016582EA2E7894B5001DBB6F /* HIDBarcodeParserTypes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HIDBarcodeParserTypes.swift; sourceTree = ""; };
016582EC2E7897B3001DBB6F /* String+Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Helpers.swift"; sourceTree = ""; };
- 01664F9D2C50E685007CB5DD /* POSFontStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSFontStyle.swift; sourceTree = ""; };
- 016910972E1D019500B731DA /* GameControllerBarcodeObserver.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameControllerBarcodeObserver.swift; sourceTree = ""; };
- 01695EB72E22600300B731DA /* PointOfSaleBarcodeScannerSetupFlowManagerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleBarcodeScannerSetupFlowManagerTests.swift; sourceTree = ""; };
- 016A77682D9D24A70004FCD6 /* POSCouponCreationSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSCouponCreationSheet.swift; sourceTree = ""; };
- 016C6B962C74AB17000D86FD /* POSConnectivityView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSConnectivityView.swift; sourceTree = ""; };
- 016DE5322E40B03200F53DF7 /* POSSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSSheet.swift; sourceTree = ""; };
0174DDBA2CE5FD5D005D20CA /* ReceiptEmailViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReceiptEmailViewModel.swift; sourceTree = ""; };
0174DDBE2CE600C0005D20CA /* ReceiptEmailViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReceiptEmailViewModelTests.swift; sourceTree = ""; };
- 0177250B2E1CFF7F00016148 /* GameControllerBarcodeParser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameControllerBarcodeParser.swift; sourceTree = ""; };
- 0177250D2E1CFF9B00016148 /* GameControllerBarcodeParserTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameControllerBarcodeParserTests.swift; sourceTree = ""; };
- 01806E122E2F7F400033363C /* POSBrightnessControl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSBrightnessControl.swift; sourceTree = ""; };
0182C8BD2CE3B10E00474355 /* MockReceiptEligibilityUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockReceiptEligibilityUseCase.swift; sourceTree = ""; };
0182C8BF2CE4DDC100474355 /* CardReaderTransactionAlertReceiptState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardReaderTransactionAlertReceiptState.swift; sourceTree = ""; };
0182C8C12CE4F0DB00474355 /* ReceiptEmailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReceiptEmailView.swift; sourceTree = ""; };
- 0188CA0E2C65622A0051BF1C /* PointOfSaleCardPresentPaymentValidatingOrderErrorMessageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentValidatingOrderErrorMessageViewModel.swift; sourceTree = ""; };
- 0188CA102C6565320051BF1C /* PointOfSaleCardPresentPaymentValidatingOrderErrorMessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentValidatingOrderErrorMessageView.swift; sourceTree = ""; };
018D5C7D2CA6B49D0085EBEE /* CurrencySettings+Sanitized.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CurrencySettings+Sanitized.swift"; sourceTree = ""; };
019130182CF49A77008C0C88 /* TapToPayEducationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TapToPayEducationView.swift; sourceTree = ""; };
0191301A2CF4E77F008C0C88 /* TapToPayEducationStepViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TapToPayEducationStepViewModel.swift; sourceTree = ""; };
@@ -3325,56 +2974,16 @@
019130202CF5B0FF008C0C88 /* TapToPayEducationViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TapToPayEducationViewModelTests.swift; sourceTree = ""; };
01929C332CEF634E006C79ED /* CardPresentModalErrorWithoutEmail.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardPresentModalErrorWithoutEmail.swift; sourceTree = ""; };
01929C352CEF6D6A006C79ED /* CardPresentModalNonRetryableErrorWithoutEmail.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardPresentModalNonRetryableErrorWithoutEmail.swift; sourceTree = ""; };
- 019460DD2E700DF800FCB9AB /* POSReceiptSender.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSReceiptSender.swift; sourceTree = ""; };
- 019460DF2E700E3D00FCB9AB /* POSReceiptSenderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSReceiptSenderTests.swift; sourceTree = ""; };
- 019460E12E70121A00FCB9AB /* MockPOSReceiptController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockPOSReceiptController.swift; sourceTree = ""; };
019630B32D01DB4000219D80 /* TapToPayAwarenessMomentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TapToPayAwarenessMomentView.swift; sourceTree = ""; };
019630B52D02018400219D80 /* TapToPayAwarenessMomentDeterminer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TapToPayAwarenessMomentDeterminer.swift; sourceTree = ""; };
019630B72D0211F400219D80 /* TapToPayAwarenessMomentDeterminerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TapToPayAwarenessMomentDeterminerTests.swift; sourceTree = ""; };
- 0196FF912DA802730063CEF1 /* POSCouponImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSCouponImageView.swift; sourceTree = ""; };
- 0196FF932DA806720063CEF1 /* CouponCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponCardView.swift; sourceTree = ""; };
019A86832D89C13800ABBB71 /* TapToPayCardReaderPaymentAlertsProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TapToPayCardReaderPaymentAlertsProvider.swift; sourceTree = ""; };
- 01A3093B2DAE768000B672F6 /* MockPointOfSaleCouponService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockPointOfSaleCouponService.swift; sourceTree = ""; };
- 01AA4FA02E4CB22700FA9B4C /* POSFullScreenCover.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSFullScreenCover.swift; sourceTree = ""; };
- 01AAD8132D92E37A0081D60B /* PointOfSaleOrderSyncCouponsErrorMessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleOrderSyncCouponsErrorMessageView.swift; sourceTree = ""; };
- 01AB2D112DDC7AD100AA67FD /* PointOfSaleItemListAnalyticsTrackerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleItemListAnalyticsTrackerTests.swift; sourceTree = ""; };
- 01AB2D132DDC7CD000AA67FD /* POSItemActionHandlerFactoryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSItemActionHandlerFactoryTests.swift; sourceTree = ""; };
- 01AB2D152DDC8CD600AA67FD /* MockPOSAnalytics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockPOSAnalytics.swift; sourceTree = ""; };
- 01ABA0242E57579300829DC0 /* POSOrderDetailsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSOrderDetailsView.swift; sourceTree = ""; };
- 01ABA0252E57579300829DC0 /* POSOrderListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSOrderListView.swift; sourceTree = ""; };
- 01ABA0262E57579300829DC0 /* POSOrdersView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSOrdersView.swift; sourceTree = ""; };
- 01ADC1352C9AB4810036F7D2 /* PointOfSaleCardPresentPaymentIntentCreationErrorMessageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentIntentCreationErrorMessageViewModel.swift; sourceTree = ""; };
- 01ADC1372C9AB6050036F7D2 /* PointOfSaleCardPresentPaymentIntentCreationErrorMessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentIntentCreationErrorMessageView.swift; sourceTree = ""; };
- 01B3A1F12DB6D48800286B7F /* ItemListType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemListType.swift; sourceTree = ""; };
01B744E12D2FCA1300AEB3F4 /* PushNotificationBackgroundSynchronizerFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationBackgroundSynchronizerFactory.swift; sourceTree = ""; };
- 01B7AFBB2E707FB30004BE9D /* POSOrderListModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSOrderListModelTests.swift; sourceTree = ""; };
- 01B7AFBC2E707FB30004BE9D /* POSOrderListStateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSOrderListStateTests.swift; sourceTree = ""; };
- 01B7AFBF2E7080180004BE9D /* MockPOSOrderListController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockPOSOrderListController.swift; sourceTree = ""; };
- 01B7C9C92E71C8D00004BE9D /* POSOrderListEmptyViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSOrderListEmptyViewModel.swift; sourceTree = ""; };
01BB6C062D09DC470094D55B /* CardPresentModalLocationPreAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardPresentModalLocationPreAlert.swift; sourceTree = ""; };
01BB6C092D09E9630094D55B /* LocationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationService.swift; sourceTree = ""; };
- 01BD77432C58CED400147191 /* PointOfSaleCardPresentPaymentProcessingMessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentProcessingMessageView.swift; sourceTree = ""; };
- 01BD77452C58D0D000147191 /* PointOfSalePaymentSuccessView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSalePaymentSuccessView.swift; sourceTree = ""; };
- 01BD77472C58D19C00147191 /* PointOfSaleCardPresentPaymentCancelledOnReaderMessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentCancelledOnReaderMessageView.swift; sourceTree = ""; };
- 01BD77492C58D29700147191 /* PointOfSaleCardPresentPaymentDisconnectedMessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentDisconnectedMessageView.swift; sourceTree = ""; };
- 01BD774B2C58D2BE00147191 /* PointOfSaleCardPresentPaymentDisconnectedMessageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentDisconnectedMessageViewModel.swift; sourceTree = ""; };
- 01BE93FF2DDCB1110063541C /* Error+Connectivity.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Error+Connectivity.swift"; sourceTree = ""; };
- 01BE94032DDCC7650063541C /* PointOfSaleEmptyErrorStateViewLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleEmptyErrorStateViewLayout.swift; sourceTree = ""; };
- 01C21AB52E66EB70008E4D77 /* POSOrderDetailsLoadingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSOrderDetailsLoadingView.swift; sourceTree = ""; };
- 01C21AB72E66EC14008E4D77 /* POSOrderDetailsEmptyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSOrderDetailsEmptyView.swift; sourceTree = ""; };
- 01C9C59E2DA3D97E00CD81D8 /* CartRowRemoveButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CartRowRemoveButton.swift; sourceTree = ""; };
- 01D0823F2C5B9EAB007FE81F /* POSBackgroundAppearanceKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSBackgroundAppearanceKey.swift; sourceTree = ""; };
- 01DE968F2E8AE83200E07E1A /* POSOrderBadgeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSOrderBadgeView.swift; sourceTree = ""; };
- 01DE92D12E8AAE6200E07E1A /* POSOrderListFetchAnalytics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSOrderListFetchAnalytics.swift; sourceTree = ""; };
- 01E62EC72DFADF4B003A6D9E /* Cart+BarcodeScanError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Cart+BarcodeScanError.swift"; sourceTree = ""; };
01F067EC2D0C5D56001C5805 /* MockLocationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockLocationService.swift; sourceTree = ""; };
- 01F3D12F2E741F3B00D867F1 /* POSCardPresentPaymentMessageViewImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSCardPresentPaymentMessageViewImage.swift; sourceTree = ""; };
01F42C152CE34AB3003D0A5A /* CardPresentModalTapToPaySuccessEmailSent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardPresentModalTapToPaySuccessEmailSent.swift; sourceTree = ""; };
01F42C172CE34AD1003D0A5A /* CardPresentModalSuccessEmailSent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardPresentModalSuccessEmailSent.swift; sourceTree = ""; };
- 01F579942C7DE709008BCA28 /* PointOfSaleCardPresentPaymentCaptureErrorMessageViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentCaptureErrorMessageViewModelTests.swift; sourceTree = ""; };
- 01F935522DFC0B9700B50B03 /* PointOfSaleSoundPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleSoundPlayer.swift; sourceTree = ""; };
- 01F935562DFC0C6400B50B03 /* pos_scan_failure.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = pos_scan_failure.mp3; sourceTree = ""; };
- 01F935582DFC0D4800B50B03 /* MockPointOfSaleSoundPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockPointOfSaleSoundPlayer.swift; sourceTree = ""; };
0202B68C23876BC100F3EBE0 /* ProductsTabProductViewModel+ProductVariation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ProductsTabProductViewModel+ProductVariation.swift"; sourceTree = ""; };
0202B6912387AB0C00F3EBE0 /* WooTab+Tag.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WooTab+Tag.swift"; sourceTree = ""; };
0202B6942387AD1B00F3EBE0 /* UITabBar+Order.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITabBar+Order.swift"; sourceTree = ""; };
@@ -3385,9 +2994,6 @@
0204E3612B8CD40B00F1B5FD /* WooAnalyticsEvent+Products.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WooAnalyticsEvent+Products.swift"; sourceTree = ""; };
0204F0C929C047A400CFC78F /* SelfSizingHostingController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelfSizingHostingController.swift; sourceTree = ""; };
0205021D27C8B6C600FB1C6B /* InboxEligibilityUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InboxEligibilityUseCase.swift; sourceTree = ""; };
- 020556502D5DA45500E51059 /* GhostItemCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GhostItemCardView.swift; sourceTree = ""; };
- 02055B132D5DAB6400E51059 /* POSCornerRadiusStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSCornerRadiusStyle.swift; sourceTree = ""; };
- 020564972D5DC96600E51059 /* POSShadowStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSShadowStyle.swift; sourceTree = ""; };
0206483923FA4160008441BB /* OrdersRootViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrdersRootViewController.swift; sourceTree = ""; };
02077F71253816FF005A78EF /* ProductFormActionsFactory+ReadonlyProductTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ProductFormActionsFactory+ReadonlyProductTests.swift"; sourceTree = ""; };
020886562499E642001D784E /* ProductExternalLinkViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductExternalLinkViewController.swift; sourceTree = ""; };
@@ -3418,9 +3024,6 @@
020EF5EE2A8C94E0009D2169 /* SiteSnapshotTrackerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteSnapshotTrackerTests.swift; sourceTree = ""; };
020F41E323163C0100776C4D /* TopBannerViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TopBannerViewModel.swift; sourceTree = ""; };
020F41E423163C0100776C4D /* TopBannerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TopBannerView.swift; sourceTree = ""; };
- 021080F92D5441CE0054C78D /* POSColorPalette.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = POSColorPalette.xcassets; sourceTree = ""; };
- 021080FB2D544B3E0054C78D /* Color+POSColorPalette.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Color+POSColorPalette.swift"; sourceTree = ""; };
- 0210A2482D55F0530054C78D /* POSButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSButtonStyle.swift; sourceTree = ""; };
0210D8682A7BEEF700846F8C /* WooAnalyticsEvent+ProductListFilter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WooAnalyticsEvent+ProductListFilter.swift"; sourceTree = ""; };
0211252725773F220075AD2A /* Models+Copiable.generated.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Models+Copiable.generated.swift"; sourceTree = ""; };
0211252D25773FB00075AD2A /* MockAggregateOrderItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockAggregateOrderItem.swift; sourceTree = ""; };
@@ -3445,16 +3048,13 @@
02162725237963AF000208D2 /* ProductFormViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ProductFormViewController.xib; sourceTree = ""; };
02162728237965E8000208D2 /* ProductFormTableViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductFormTableViewModel.swift; sourceTree = ""; };
0216272A2379662C000208D2 /* DefaultProductFormTableViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DefaultProductFormTableViewModel.swift; sourceTree = ""; };
- 0216DA6F2E2576C300016600 /* WooAnalyticsEvent+PointOfSaleIneligibleUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WooAnalyticsEvent+PointOfSaleIneligibleUI.swift"; sourceTree = ""; };
0218B4EB242E06F00083A847 /* MediaType+WPMediaType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MediaType+WPMediaType.swift"; sourceTree = ""; };
0219B03623964527007DCD5E /* PaginatedProductShippingClassListSelectorDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaginatedProductShippingClassListSelectorDataSource.swift; sourceTree = ""; };
- 021A17202D7036AF006DF7C0 /* DynamicFrameScaler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DynamicFrameScaler.swift; sourceTree = ""; };
021A84DE257DFC2A00BC71D1 /* RefundShippingLabelViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RefundShippingLabelViewController.swift; sourceTree = ""; };
021A84DF257DFC2A00BC71D1 /* RefundShippingLabelViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RefundShippingLabelViewController.xib; sourceTree = ""; };
021AC6652AF3432300E7FB97 /* ConfigurableBundleProductViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigurableBundleProductViewModelTests.swift; sourceTree = ""; };
021AEF9B2407B07300029D28 /* ProductImageStatus+HelpersTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ProductImageStatus+HelpersTests.swift"; sourceTree = ""; };
021AEF9D2407F55C00029D28 /* PHAssetImageLoader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PHAssetImageLoader.swift; sourceTree = ""; };
- 021BCDF72D3648CD002E9F15 /* PointOfSaleItemListFullscreenErrorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleItemListFullscreenErrorView.swift; sourceTree = ""; };
021DD44C286A3A8D004F0468 /* UIViewController+Navigation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIViewController+Navigation.swift"; sourceTree = ""; };
021E2A1523A9FE5A00B1DE07 /* ProductInventorySettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductInventorySettingsViewController.swift; sourceTree = ""; };
021E2A1623A9FE5A00B1DE07 /* ProductInventorySettingsViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ProductInventorySettingsViewController.xib; sourceTree = ""; };
@@ -3465,9 +3065,7 @@
021EBB352A3054BE003634CA /* BlazeEligibilityChecker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlazeEligibilityChecker.swift; sourceTree = ""; };
021EBB372A3076F4003634CA /* BlazeEligibilityCheckerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlazeEligibilityCheckerTests.swift; sourceTree = ""; };
021FB44B24A5E3B00090E144 /* ProductListMultiSelectorSearchUICommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductListMultiSelectorSearchUICommand.swift; sourceTree = ""; };
- 0220F4942C16DC98003723C2 /* PointOfSaleCardPresentPaymentFoundMultipleReadersView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentFoundMultipleReadersView.swift; sourceTree = ""; };
0221121D288973C20028F0AF /* LocalNotification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalNotification.swift; sourceTree = ""; };
- 02222BCF2D5AFE4F00FB97D2 /* POSButtonProgressViewStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSButtonProgressViewStyle.swift; sourceTree = ""; };
022266B92AE76E0E00614F34 /* ProductBundleItem+SwiftUIPreviewHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ProductBundleItem+SwiftUIPreviewHelpers.swift"; sourceTree = ""; };
022266BB2AE7707000614F34 /* ConfigurableBundleItemViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigurableBundleItemViewModel.swift; sourceTree = ""; };
0225091C2A5DAEA0000AEBD2 /* WooAnalyticsEvent+ProductCreation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WooAnalyticsEvent+ProductCreation.swift"; sourceTree = ""; };
@@ -3496,11 +3094,7 @@
0230535A2374FB6800487A64 /* AztecSourceCodeFormatBarCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AztecSourceCodeFormatBarCommand.swift; sourceTree = ""; };
023078FD25872CCF008EADEE /* PrintShippingLabelViewModelTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PrintShippingLabelViewModelTests.swift; sourceTree = ""; };
02307923258731B2008EADEE /* PrintShippingLabelViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PrintShippingLabelViewModel.swift; sourceTree = ""; };
- 0230B4D12C333E0800F2F660 /* PointOfSaleCardPresentPaymentCaptureErrorMessageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentCaptureErrorMessageViewModel.swift; sourceTree = ""; };
- 0230B4D52C33454900F2F660 /* PointOfSaleCardPresentPaymentCaptureErrorMessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentCaptureErrorMessageView.swift; sourceTree = ""; };
- 0230B4D72C3345DF00F2F660 /* PointOfSaleCardPresentPaymentCaptureFailedView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentCaptureFailedView.swift; sourceTree = ""; };
02312796277D4F640060E180 /* StoreStatsPeriodViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreStatsPeriodViewModel.swift; sourceTree = ""; };
- 02335E482D13BA42000B6ECE /* AsyncPaginationTracker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AsyncPaginationTracker.swift; sourceTree = ""; };
023453F12579DA1A00A6BB20 /* ShippingLabelPrintingInstructionsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShippingLabelPrintingInstructionsViewController.swift; sourceTree = ""; };
02346809282CEA5F00CFC503 /* LegacyReceiptViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyReceiptViewModelTests.swift; sourceTree = ""; };
0235594E24496853004BE2B8 /* BottomSheetListSelectorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BottomSheetListSelectorViewController.swift; sourceTree = ""; };
@@ -3522,8 +3116,6 @@
023D69432588C6BD00F7DA72 /* ShippingLabelPaperSizeListSelectorCommandTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShippingLabelPaperSizeListSelectorCommandTests.swift; sourceTree = ""; };
023D69BB2589BF5900F7DA72 /* PrintShippingLabelCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrintShippingLabelCoordinator.swift; sourceTree = ""; };
023D877825EC8BCB00625963 /* UIScrollView+LargeTitleWorkaround.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIScrollView+LargeTitleWorkaround.swift"; sourceTree = ""; };
- 023DE6252E73FE4600FF6562 /* POSSettingsLocalCatalogDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSSettingsLocalCatalogDetailView.swift; sourceTree = ""; };
- 023DE6272E740E0B00FF6562 /* POSSettingsLocalCatalogViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSSettingsLocalCatalogViewModel.swift; sourceTree = ""; };
023EC2DF24DA87460021DA91 /* ProductInventorySettingsViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductInventorySettingsViewModelTests.swift; sourceTree = ""; };
023EC2E124DA8BAB0021DA91 /* MockProductSKUValidationStoresManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockProductSKUValidationStoresManager.swift; sourceTree = ""; };
023EC2E324DA95DB0021DA91 /* ProductInventorySettingsViewModel+VariationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ProductInventorySettingsViewModel+VariationTests.swift"; sourceTree = ""; };
@@ -3609,7 +3201,6 @@
0260F40023224E8100EDA10A /* ProductsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductsViewController.swift; sourceTree = ""; };
02619857256B53DD00E321E9 /* AggregatedShippingLabelOrderItems.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AggregatedShippingLabelOrderItems.swift; sourceTree = ""; };
0261F5A628D454CF00B7AC72 /* ProductSearchUICommandTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductSearchUICommandTests.swift; sourceTree = ""; };
- 026225202C21F01F00700977 /* PointOfSaleCardPresentPaymentReaderUpdateFailedNonRetryableAlertViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentReaderUpdateFailedNonRetryableAlertViewModel.swift; sourceTree = ""; };
0262DA5123A238460029AF30 /* UnitInputTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnitInputTableViewCell.swift; sourceTree = ""; };
0262DA5223A238460029AF30 /* UnitInputTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = UnitInputTableViewCell.xib; sourceTree = ""; };
0262DA5623A23AC80029AF30 /* ProductShippingSettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductShippingSettingsViewController.swift; sourceTree = ""; };
@@ -3627,20 +3218,6 @@
02660503293D8D24004084EA /* PaymentCaptureCelebration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentCaptureCelebration.swift; sourceTree = ""; };
02667A192ABDD44200C77B56 /* GiftCardCodeScannerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GiftCardCodeScannerViewController.swift; sourceTree = ""; };
02667A1B2AC159A000C77B56 /* GiftCardCodeScannerNavigationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GiftCardCodeScannerNavigationView.swift; sourceTree = ""; };
- 026826A22BF59DF60036F959 /* ItemRowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemRowView.swift; sourceTree = ""; };
- 026826A32BF59DF60036F959 /* CartView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CartView.swift; sourceTree = ""; };
- 026826A42BF59DF60036F959 /* SimpleProductCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimpleProductCardView.swift; sourceTree = ""; };
- 026826A52BF59DF60036F959 /* PointOfSaleDashboardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleDashboardView.swift; sourceTree = ""; };
- 026826A72BF59DF70036F959 /* PointOfSaleEntryPointView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleEntryPointView.swift; sourceTree = ""; };
- 026826B32BF59E320036F959 /* CardReaderConnectionStatusView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CardReaderConnectionStatusView.swift; sourceTree = ""; };
- 026826B62BF59E400036F959 /* PointOfSaleCardPresentPaymentScanningForReadersFailedView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentScanningForReadersFailedView.swift; sourceTree = ""; };
- 026826B72BF59E400036F959 /* PointOfSaleCardPresentPaymentConnectingFailedView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentConnectingFailedView.swift; sourceTree = ""; };
- 026826B82BF59E400036F959 /* PointOfSaleCardPresentPaymentConnectingToReaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentConnectingToReaderView.swift; sourceTree = ""; };
- 026826B92BF59E400036F959 /* PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentRequiredReaderUpdateInProgressView.swift; sourceTree = ""; };
- 026826BB2BF59E410036F959 /* PointOfSaleCardPresentPaymentFoundReaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentFoundReaderView.swift; sourceTree = ""; };
- 026826BE2BF59E410036F959 /* PointOfSaleCardPresentPaymentScanningForReadersView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentScanningForReadersView.swift; sourceTree = ""; };
- 026878D52E293E7300DBFD34 /* PointOfSaleDashboardViewHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleDashboardViewHelper.swift; sourceTree = ""; };
- 026878D72E2942E200DBFD34 /* PointOfSaleDashboardViewHelperTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleDashboardViewHelperTests.swift; sourceTree = ""; };
0269177F232600A6002AFC20 /* ProductsTabProductViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductsTabProductViewModelTests.swift; sourceTree = ""; };
02691781232605B9002AFC20 /* PaginatedListViewControllerStateCoordinatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaginatedListViewControllerStateCoordinatorTests.swift; sourceTree = ""; };
0269576923726304001BA0BF /* KeyboardFrameObserver.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyboardFrameObserver.swift; sourceTree = ""; };
@@ -3648,8 +3225,6 @@
0269576F237281A9001BA0BF /* AztecTextViewAttachmentHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AztecTextViewAttachmentHandler.swift; sourceTree = ""; };
0269A63B2581D26C007B49ED /* ShippingLabelPrintingStepListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShippingLabelPrintingStepListView.swift; sourceTree = ""; };
026A23FE2A3173F100EFE4BD /* MockBlazeEligibilityChecker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockBlazeEligibilityChecker.swift; sourceTree = ""; };
- 026A50272D2F6BD1002C42C2 /* InfiniteScrollTriggerDeterminable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfiniteScrollTriggerDeterminable.swift; sourceTree = ""; };
- 026A502F2D2F80B5002C42C2 /* ThresholdInfiniteScrollTriggerDeterminerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThresholdInfiniteScrollTriggerDeterminerTests.swift; sourceTree = ""; };
026B2D162DF92290005B8CAA /* POSTabEligibilityChecker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSTabEligibilityChecker.swift; sourceTree = ""; };
026B3C56249A046E00F7823C /* TextFieldTextAlignment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldTextAlignment.swift; sourceTree = ""; };
026CAF7D2AC2B76C002D23BB /* ConfigurableBundleProductViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigurableBundleProductViewModel.swift; sourceTree = ""; };
@@ -3683,14 +3258,9 @@
0279F0E3252DC9670098D7DE /* ProductVariationLoadUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductVariationLoadUseCase.swift; sourceTree = ""; };
027A2E132513124E00DA6ACB /* Keychain+Entries.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Keychain+Entries.swift"; sourceTree = ""; };
027A2E152513356100DA6ACB /* AppleIDCredentialChecker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppleIDCredentialChecker.swift; sourceTree = ""; };
- 027ADB6D2D1BF5E3009608DB /* ParentProductCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParentProductCardView.swift; sourceTree = ""; };
- 027ADB722D21812D009608DB /* POSItemImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSItemImageView.swift; sourceTree = ""; };
- 027ADB742D218A8D009608DB /* POSItemCardBorderStylesModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSItemCardBorderStylesModifier.swift; sourceTree = ""; };
027B8BB723FE0CB30040944E /* DefaultProductUIImageLoader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DefaultProductUIImageLoader.swift; sourceTree = ""; };
027B8BBC23FE0DE10040944E /* ProductImageActionHandlerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductImageActionHandlerTests.swift; sourceTree = ""; };
027B8BBE23FE0F850040944E /* MockMediaStoresManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockMediaStoresManager.swift; sourceTree = ""; };
- 027CCBCB2C23495E002CE572 /* PointOfSaleCardPresentPaymentReaderUpdateFailedLowBatteryView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentReaderUpdateFailedLowBatteryView.swift; sourceTree = ""; };
- 027CCBCC2C23495E002CE572 /* PointOfSaleCardPresentPaymentReaderUpdateFailedNonRetryableView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentReaderUpdateFailedNonRetryableView.swift; sourceTree = ""; };
027D4A8B2526FD1700108626 /* SettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsViewController.swift; sourceTree = ""; };
027D4A8C2526FD1700108626 /* SettingsViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SettingsViewController.xib; sourceTree = ""; };
027D67D0245ADDF40036B8DB /* FilterTypeViewModel+Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FilterTypeViewModel+Helpers.swift"; sourceTree = ""; };
@@ -3728,8 +3298,6 @@
028FA465257E021100F88A48 /* RefundShippingLabelViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RefundShippingLabelViewModel.swift; sourceTree = ""; };
028FA46B257E0D9F00F88A48 /* PlainTextSectionHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlainTextSectionHeaderView.swift; sourceTree = ""; };
028FF8E22AA1E1C60038964F /* ProductDetailsCellViewModel+AddOns.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ProductDetailsCellViewModel+AddOns.swift"; sourceTree = ""; };
- 029048282C2B5825009B77F9 /* PointOfSaleCardPresentPaymentFoundMultipleReadersAlertViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentFoundMultipleReadersAlertViewModel.swift; sourceTree = ""; };
- 0290C2592D2C0C5C0090C55C /* InfiniteScrollView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfiniteScrollView.swift; sourceTree = ""; };
0290E26D238E3CE400B5C466 /* ListSelectorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListSelectorViewController.swift; sourceTree = ""; };
0290E273238E4F8100B5C466 /* PaginatedListSelectorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaginatedListSelectorViewController.swift; sourceTree = ""; };
0290E27D238E5B5C00B5C466 /* ProductStockStatusListSelectorCommandTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductStockStatusListSelectorCommandTests.swift; sourceTree = ""; };
@@ -3739,22 +3307,13 @@
029106C12BE34A8600C2248B /* CollapsibleCustomerCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CollapsibleCustomerCard.swift; sourceTree = ""; };
029106C32BE34AA900C2248B /* CollapsibleCustomerCardViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CollapsibleCustomerCardViewModel.swift; sourceTree = ""; };
02913E9423A774C500707A0C /* UnitInputFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnitInputFormatter.swift; sourceTree = ""; };
- 029149772D26658A00F7B3B3 /* VariationCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VariationCardView.swift; sourceTree = ""; };
- 0291497A2D2682FF00F7B3B3 /* ItemList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemList.swift; sourceTree = ""; };
- 0291497C2D26CB2500F7B3B3 /* ChildItemList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChildItemList.swift; sourceTree = ""; };
0294F8AA25E8A12C005B537A /* WooTabNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WooTabNavigationController.swift; sourceTree = ""; };
02952B5027808B08008E9BA3 /* StoreStatsPeriodViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreStatsPeriodViewModelTests.swift; sourceTree = ""; };
0295355A245ADF8100BDC42B /* FilterType+Products.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FilterType+Products.swift"; sourceTree = ""; };
- 0295736A2D62B93300865E27 /* POSPageHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSPageHeaderView.swift; sourceTree = ""; };
- 0295CDBF2D6477C400865E27 /* POSNoticeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSNoticeView.swift; sourceTree = ""; };
029700EB24FE38C900D242F8 /* ScrollWatcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScrollWatcher.swift; sourceTree = "