diff --git a/Modules/.swiftpm/xcode/xcshareddata/xcschemes/PointOfSale.xcscheme b/Modules/.swiftpm/xcode/xcshareddata/xcschemes/PointOfSale.xcscheme
new file mode 100644
index 00000000000..0191411a422
--- /dev/null
+++ b/Modules/.swiftpm/xcode/xcshareddata/xcschemes/PointOfSale.xcscheme
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Modules/Package.swift b/Modules/Package.swift
index 42a3c1d729e..8ba714ce32a 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"),
@@ -230,6 +234,17 @@ 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"),
+ ]
+ ),
.testTarget(
name: "ExperimentsTests",
dependencies: [
@@ -295,7 +310,13 @@ let package = Package(
.process("Resources"),
.process("../NetworkingTests/Responses")
]
- )
+ ),
+ .testTarget(
+ name: "PointOfSaleTests",
+ dependencies: [
+ "PointOfSale"
+ ]
+ ),
]
)
@@ -374,6 +395,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/WooAnalyticsEvent+PointOfSale.swift b/Modules/Sources/PointOfSale/Analytics/WooAnalyticsEvent+PointOfSale.swift
similarity index 97%
rename from WooCommerce/Classes/POS/Analytics/WooAnalyticsEvent+PointOfSale.swift
rename to Modules/Sources/PointOfSale/Analytics/WooAnalyticsEvent+PointOfSale.swift
index ee93978e17b..11c3b5498b0 100644
--- a/WooCommerce/Classes/POS/Analytics/WooAnalyticsEvent+PointOfSale.swift
+++ b/Modules/Sources/PointOfSale/Analytics/WooAnalyticsEvent+PointOfSale.swift
@@ -5,6 +5,7 @@ import struct Yosemite.POSSimpleProduct
import struct Yosemite.POSVariation
import enum WooFoundation.CountryCode
import enum Yosemite.PaymentMethod
+import struct WooFoundation.WooAnalyticsEvent
extension WooAnalyticsEvent {
enum PointOfSale {
@@ -125,7 +126,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)",
@@ -134,6 +135,17 @@ extension WooAnalyticsEvent {
])
}
+ static func analyticsValue(for paymentMethod: PaymentMethod) -> String {
+ switch paymentMethod {
+ case .card, .cardPresent:
+ return "card"
+ case .interacPresent:
+ return "card_interac"
+ case .unknown:
+ return "unknown"
+ }
+ }
+
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 94eb13a2200..a4b755d859e 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 100%
rename from WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentCardReader.swift
rename to Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentCardReader.swift
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 100%
rename from WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentOnboardingPresentationEvent.swift
rename to Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentOnboardingPresentationEvent.swift
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 100%
rename from WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentReaderConnectionResult.swift
rename to Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentReaderConnectionResult.swift
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 100%
rename from WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentsRetryApproach.swift
rename to Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentsRetryApproach.swift
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/WooCommerce/Classes/POS/Colors/Color+POSColorPalette.swift b/Modules/Sources/PointOfSale/Colors/Color+POSColorPalette.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Colors/Color+POSColorPalette.swift
rename to Modules/Sources/PointOfSale/Colors/Color+POSColorPalette.swift
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 65%
rename from WooCommerce/Classes/POS/Controllers/POSEntryPointController.swift
rename to Modules/Sources/PointOfSale/Controllers/POSEntryPointController.swift
index efa2ed34656..2e6ea65f48a 100644
--- a/WooCommerce/Classes/POS/Controllers/POSEntryPointController.swift
+++ b/Modules/Sources/PointOfSale/Controllers/POSEntryPointController.swift
@@ -1,6 +1,17 @@
import SwiftUI
import protocol Experiments.FeatureFlagService
+public protocol POSEntryPointEligibilityCheckerProtocol {
+ /// Checks the initial visibility of the POS tab.
+ func checkInitialVisibility() -> Bool
+ /// Checks the final visibility of the POS tab.
+ func checkVisibility() async -> Bool
+ /// Determines whether the site is eligible for POS.
+ func checkEligibility() async -> POSEligibilityState
+ /// Refreshes the eligibility state based on the provided ineligible reason.
+ func refreshEligibility(ineligibleReason: POSIneligibleReason) async throws -> POSEligibilityState
+}
+
@Observable final class POSEntryPointController {
private(set) var eligibilityState: POSEligibilityState?
private let posEligibilityChecker: POSEntryPointEligibilityCheckerProtocol
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 6ab3ef8d471..9b7911ece26 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 abfd33d16ee..84ae60688aa 100644
--- a/WooCommerce/Classes/POS/Controllers/PointOfSaleCouponsController.swift
+++ b/Modules/Sources/PointOfSale/Controllers/PointOfSaleCouponsController.swift
@@ -5,6 +5,7 @@ import protocol Yosemite.PointOfSaleItemServiceProtocol
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 fdc704ad42a..02535499179 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
@@ -281,3 +285,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/Extensions/UIImage+POS.swift b/Modules/Sources/PointOfSale/Extensions/UIImage+POS.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Extensions/UIImage+POS.swift
rename to Modules/Sources/PointOfSale/Extensions/UIImage+POS.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 86%
rename from WooCommerce/Classes/POS/Models/POSIneligibleReason.swift
rename to Modules/Sources/PointOfSale/Models/POSIneligibleReason.swift
index 5c93a077e43..86095f5394d 100644
--- a/WooCommerce/Classes/POS/Models/POSIneligibleReason.swift
+++ b/Modules/Sources/PointOfSale/Models/POSIneligibleReason.swift
@@ -3,7 +3,7 @@ import enum WooFoundation.CountryCode
import enum WooFoundation.CurrencyCode
/// Represents the reasons why a site may be ineligible for POS.
-enum POSIneligibleReason: Equatable {
+public enum POSIneligibleReason: Equatable {
case unsupportedIOSVersion
case unsupportedWooCommerceVersion(minimumVersion: String)
case siteSettingsNotAvailable
@@ -14,7 +14,7 @@ enum POSIneligibleReason: Equatable {
}
/// Represents the eligibility state for POS.
-enum POSEligibilityState: Equatable {
+public enum POSEligibilityState: Equatable {
case eligible
case ineligible(reason: POSIneligibleReason)
}
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 100%
rename from WooCommerce/Classes/POS/Models/PointOfSaleAggregateModel.swift
rename to Modules/Sources/PointOfSale/Models/PointOfSaleAggregateModel.swift
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 100%
rename from WooCommerce/Classes/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupFlowManager.swift
rename to Modules/Sources/PointOfSale/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupFlowManager.swift
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 100%
rename from WooCommerce/Classes/POS/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupStepViews.swift
rename to Modules/Sources/PointOfSale/Presentation/Barcode Scanner Setup/PointOfSaleBarcodeScannerSetupStepViews.swift
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 100%
rename from WooCommerce/Classes/POS/Presentation/Barcode Scanning/BarcodeAnalyticsTracker.swift
rename to Modules/Sources/PointOfSale/Presentation/Barcode Scanning/BarcodeAnalyticsTracker.swift
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 100%
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
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 100%
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
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 100%
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
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 100%
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
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 90%
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..afb003c6fcc 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,6 +3,7 @@ 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) {
@@ -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 100%
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
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 100%
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
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 100%
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
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 100%
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
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 100%
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
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 100%
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
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 100%
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
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 100%
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
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 100%
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
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 100%
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
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/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 100%
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
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 100%
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
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 100%
rename from WooCommerce/Classes/POS/Presentation/Coupons/POSCouponCreationSheet.swift
rename to Modules/Sources/PointOfSale/Presentation/Coupons/POSCouponCreationSheet.swift
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 100%
rename from WooCommerce/Classes/POS/Presentation/Item Selector/GhostItemCardView.swift
rename to Modules/Sources/PointOfSale/Presentation/Item Selector/GhostItemCardView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Item Selector/ItemList.swift b/Modules/Sources/PointOfSale/Presentation/Item Selector/ItemList.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Item Selector/ItemList.swift
rename to Modules/Sources/PointOfSale/Presentation/Item Selector/ItemList.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Item Selector/POSItemActionHandler.swift b/Modules/Sources/PointOfSale/Presentation/Item Selector/POSItemActionHandler.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Item Selector/POSItemActionHandler.swift
rename to Modules/Sources/PointOfSale/Presentation/Item Selector/POSItemActionHandler.swift
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 100%
rename from WooCommerce/Classes/POS/Presentation/ItemListView.swift
rename to Modules/Sources/PointOfSale/Presentation/ItemListView.swift
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/POSDetailsView.swift b/Modules/Sources/PointOfSale/Presentation/Orders/POSDetailsView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Orders/POSDetailsView.swift
rename to Modules/Sources/PointOfSale/Presentation/Orders/POSDetailsView.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/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 100%
rename from WooCommerce/Classes/POS/Presentation/Orders/POSOrderListView.swift
rename to Modules/Sources/PointOfSale/Presentation/Orders/POSOrderListView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Orders/POSOrdersView.swift b/Modules/Sources/PointOfSale/Presentation/Orders/POSOrdersView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Orders/POSOrdersView.swift
rename to Modules/Sources/PointOfSale/Presentation/Orders/POSOrdersView.swift
diff --git a/WooCommerce/Classes/POS/Presentation/POSFloatingControlView.swift b/Modules/Sources/PointOfSale/Presentation/POSFloatingControlView.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/POSFloatingControlView.swift
rename to Modules/Sources/PointOfSale/Presentation/POSFloatingControlView.swift
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 100%
rename from WooCommerce/Classes/POS/Presentation/Payments Onboarding/PointOfSaleCardPresentPaymentOnboardingViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Payments Onboarding/PointOfSaleCardPresentPaymentOnboardingViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/PointOfSaleAssets.swift b/Modules/Sources/PointOfSale/Presentation/PointOfSaleAssets.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/PointOfSaleAssets.swift
rename to Modules/Sources/PointOfSale/Presentation/PointOfSaleAssets.swift
diff --git a/WooCommerce/Classes/POS/Presentation/PointOfSaleBarcodeScannerInformationModal.swift b/Modules/Sources/PointOfSale/Presentation/PointOfSaleBarcodeScannerInformationModal.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/PointOfSaleBarcodeScannerInformationModal.swift
rename to Modules/Sources/PointOfSale/Presentation/PointOfSaleBarcodeScannerInformationModal.swift
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 98%
rename from WooCommerce/Classes/POS/Presentation/PointOfSaleEntryPointView.swift
rename to Modules/Sources/PointOfSale/Presentation/PointOfSaleEntryPointView.swift
index 9d418fc5392..5d56b12d67c 100644
--- a/WooCommerce/Classes/POS/Presentation/PointOfSaleEntryPointView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/PointOfSaleEntryPointView.swift
@@ -129,7 +129,7 @@ struct PointOfSaleEntryPointView: View {
searchHistoryService: PointOfSalePreviewHistoryService(),
popularPurchasableItemsController: PointOfSalePreviewItemsController(),
barcodeScanService: PointOfSalePreviewBarcodeScanService(),
- posEligibilityChecker: POSTabEligibilityChecker(siteID: 0),
+ posEligibilityChecker: PointOfSalePreviewTabEligibilityChecker(),
services: POSPreviewServices())
}
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 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSErrorExclamationMark.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSErrorExclamationMark.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Reusable Views/POSErrorXMark.swift b/Modules/Sources/PointOfSale/Presentation/Reusable Views/POSErrorXMark.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSErrorXMark.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSErrorXMark.swift
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 100%
rename from WooCommerce/Classes/POS/Presentation/Reusable Views/POSNoticeView.swift
rename to Modules/Sources/PointOfSale/Presentation/Reusable Views/POSNoticeView.swift
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/POSSettingsStoreViewModel.swift b/Modules/Sources/PointOfSale/Presentation/Settings/POSSettingsStoreViewModel.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Presentation/Settings/POSSettingsStoreViewModel.swift
rename to Modules/Sources/PointOfSale/Presentation/Settings/POSSettingsStoreViewModel.swift
diff --git a/WooCommerce/Classes/POS/Presentation/Settings/PointOfSaleSettingsHardwareDetailView.swift b/Modules/Sources/PointOfSale/Presentation/Settings/PointOfSaleSettingsHardwareDetailView.swift
similarity index 97%
rename from WooCommerce/Classes/POS/Presentation/Settings/PointOfSaleSettingsHardwareDetailView.swift
rename to Modules/Sources/PointOfSale/Presentation/Settings/PointOfSaleSettingsHardwareDetailView.swift
index 4fb6ec1a9f8..e4355edb426 100644
--- a/WooCommerce/Classes/POS/Presentation/Settings/PointOfSaleSettingsHardwareDetailView.swift
+++ b/Modules/Sources/PointOfSale/Presentation/Settings/PointOfSaleSettingsHardwareDetailView.swift
@@ -156,7 +156,9 @@ struct PointOfSaleSettingsHardwareDetailView: View {
}
.navigationBarBackButtonHidden(true)
.posFullScreenCover(isPresented: $showCardReaderDocumentationModal) {
- SafariView(url: WooConstants.URLs.inPersonPaymentsLearnMoreWCPay.asURL())
+ if let url = URL(string: Constants.inPersonPaymentsLearnMoreWCPay.rawValue) {
+ SafariView(url: url)
+ }
}
}
@@ -383,6 +385,13 @@ private extension PointOfSaleSettingsHardwareDetailView {
}
}
+private extension PointOfSaleSettingsHardwareDetailView {
+ enum Constants: String {
+ case inPersonPaymentsLearnMoreWCPay =
+ "https://woocommerce.com/document/woocommerce-payments/in-person-payments/getting-started-with-in-person-payments/"
+ }
+}
+
#if DEBUG
#Preview {
PointOfSaleSettingsHardwareDetailView(settingsController: PointOfSaleSettingsPreviewController())
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 095c0efd186..2388ea2d38e 100644
--- a/WooCommerce/Classes/POS/Protocols/POSDependencyProviding.swift
+++ b/Modules/Sources/PointOfSale/Protocols/POSDependencyProviding.swift
@@ -59,6 +59,7 @@ protocol POSExternalViewProviding {
title: String,
cancelButtonTitle: String,
onSelection: @escaping (Coupon.DiscountType) -> 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 100%
rename from WooCommerce/Classes/POS/README.md
rename to Modules/Sources/PointOfSale/README.md
diff --git a/WooCommerce/Classes/POS/Utils/Audio/PointOfSaleSoundPlayer.swift b/Modules/Sources/PointOfSale/Utils/Audio/PointOfSaleSoundPlayer.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Utils/Audio/PointOfSaleSoundPlayer.swift
rename to Modules/Sources/PointOfSale/Utils/Audio/PointOfSaleSoundPlayer.swift
diff --git a/WooCommerce/Classes/POS/Utils/Audio/Resources/pos_scan_failure.mp3 b/Modules/Sources/PointOfSale/Utils/Audio/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/Utils/Audio/Resources/pos_scan_failure.mp3
diff --git a/WooCommerce/Classes/POS/Utils/DynamicHStack.swift b/Modules/Sources/PointOfSale/Utils/DynamicHStack.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Utils/DynamicHStack.swift
rename to Modules/Sources/PointOfSale/Utils/DynamicHStack.swift
diff --git a/WooCommerce/Classes/POS/Utils/DynamicVStack.swift b/Modules/Sources/PointOfSale/Utils/DynamicVStack.swift
similarity index 100%
rename from WooCommerce/Classes/POS/Utils/DynamicVStack.swift
rename to Modules/Sources/PointOfSale/Utils/DynamicVStack.swift
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 100%
rename from WooCommerce/Classes/POS/Utils/POSConstants.swift
rename to Modules/Sources/PointOfSale/Utils/POSConstants.swift
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 7dab8f52bb1..90d16b721c9 100644
--- a/WooCommerce/Classes/POS/Utils/POSEnvironmentKeys.swift
+++ b/Modules/Sources/PointOfSale/Utils/POSEnvironmentKeys.swift
@@ -142,5 +142,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 97%
rename from WooCommerce/Classes/POS/Utils/PreviewHelpers.swift
rename to Modules/Sources/PointOfSale/Utils/PreviewHelpers.swift
index 80077da1b5d..3544d367830 100644
--- a/WooCommerce/Classes/POS/Utils/PreviewHelpers.swift
+++ b/Modules/Sources/PointOfSale/Utils/PreviewHelpers.swift
@@ -400,6 +400,13 @@ final class PointOfSalePreviewBarcodeScanService: PointOfSaleBarcodeScanServiceP
}
}
+final class PointOfSalePreviewTabEligibilityChecker: POSEntryPointEligibilityCheckerProtocol {
+ func checkInitialVisibility() -> Bool { true }
+ func checkVisibility() async -> Bool { true }
+ func checkEligibility() async -> POSEligibilityState { .eligible }
+ func refreshEligibility(ineligibleReason: POSIneligibleReason) async throws -> POSEligibilityState { .eligible }
+}
+
final class POSReceiptSenderPreview: POSReceiptSending {
func sendReceipt(orderID: Int64, recipientEmail: String) async throws {}
}
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 100%
rename from WooCommerce/Classes/POS/ViewHelpers/CollectCashViewHelper.swift
rename to Modules/Sources/PointOfSale/ViewHelpers/CollectCashViewHelper.swift
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/Modules/Sources/Yosemite/Model/Extensions/CountryCode+readableCountry.swift b/Modules/Sources/Yosemite/Model/Extensions/CountryCode+readableCountry.swift
new file mode 100644
index 00000000000..58fc8152a02
--- /dev/null
+++ b/Modules/Sources/Yosemite/Model/Extensions/CountryCode+readableCountry.swift
@@ -0,0 +1,315 @@
+import Foundation
+import WooFoundation
+
+// MARK: - Mapping between country codes and readable names
+// The country names were extracted from the response to `/wp-json/wc/v3/settings/general`
+// The default countries are listed under `woocommerce_default_country`
+// in one of the following formats:
+// - `"COUNTRY_CODE": "READABALE_COUNTRY_NAME"
+// - `"COUNTRY_CODE:COUNTRY_REGION": "READABLE_COUNTRY_NAME - READABLE_COUNTRY_REGION"
+public extension CountryCode {
+ var readableCountry: String {
+ switch self {
+ // A
+ case .AX: return NSLocalizedString("Ã…land Islands", comment: "Country option for a site address.")
+ case .AF: return NSLocalizedString("Afghanistan", comment: "Country option for a site address.")
+ case .AL: return NSLocalizedString("Albania", comment: "Country option for a site address.")
+ case .DZ: return NSLocalizedString("Algeria", comment: "Country option for a site address.")
+ case .AS: return NSLocalizedString("American Samoa", comment: "Country option for a site address.")
+ case .AD: return NSLocalizedString("Andorra", comment: "Country option for a site address.")
+ case .AO: return NSLocalizedString("Angola", comment: "Country option for a site address.")
+ case .AI: return NSLocalizedString("Anguilla", comment: "Country option for a site address.")
+ case .AQ: return NSLocalizedString("Antarctica", comment: "Country option for a site address.")
+ case .AG: return NSLocalizedString("Antigua and Barbuda", comment: "Country option for a site address.")
+ case .AR: return NSLocalizedString("Argentina", comment: "Country option for a site address.")
+ case .AM: return NSLocalizedString("Armenia", comment: "Country option for a site address.")
+ case .AW: return NSLocalizedString("Aruba", comment: "Country option for a site address.")
+ case .AU: return NSLocalizedString("Australia", comment: "Country option for a site address.")
+ case .AT: return NSLocalizedString("Austria", comment: "Country option for a site address.")
+ case .AZ: return NSLocalizedString("Azerbaijan", comment: "Country option for a site address.")
+
+ // B
+ case .BS: return NSLocalizedString("Bahamas", comment: "Country option for a site address.")
+ case .BH: return NSLocalizedString("Bahrain", comment: "Country option for a site address.")
+ case .BD: return NSLocalizedString("Bangladesh", comment: "Country option for a site address.")
+ case .BB: return NSLocalizedString("Barbados", comment: "Country option for a site address.")
+ case .BY: return NSLocalizedString("Belarus", comment: "Country option for a site address.")
+ case .PW: return NSLocalizedString("Belau", comment: "Country option for a site address.")
+ case .BE: return NSLocalizedString("Belgium", comment: "Country option for a site address.")
+ case .BZ: return NSLocalizedString("Belize", comment: "Country option for a site address.")
+ case .BJ: return NSLocalizedString("Benin", comment: "Country option for a site address.")
+ case .BM: return NSLocalizedString("Bermuda", comment: "Country option for a site address.")
+ case .BT: return NSLocalizedString("Bhutan", comment: "Country option for a site address.")
+ case .BO: return NSLocalizedString("Bolivia", comment: "Country option for a site address.")
+ case .BQ: return NSLocalizedString("Bonaire, Saint Eustatius and Saba", comment: "Country option for a site address.")
+ case .BA: return NSLocalizedString("Bosnia and Herzegovina", comment: "Country option for a site address.")
+ case .BW: return NSLocalizedString("Botswana", comment: "Country option for a site address.")
+ case .BV: return NSLocalizedString("Bouvet Island", comment: "Country option for a site address.")
+ case .BR: return NSLocalizedString("Brazil", comment: "Country option for a site address.")
+ case .IO: return NSLocalizedString("British Indian Ocean Territory", comment: "Country option for a site address.")
+ case .VG: return NSLocalizedString("British Virgin Islands", comment: "Country option for a site address.")
+ case .BN: return NSLocalizedString("Brunei", comment: "Country option for a site address.")
+ case .BG: return NSLocalizedString("Bulgaria", comment: "Country option for a site address.")
+ case .BF: return NSLocalizedString("Burkina Faso", comment: "Country option for a site address.")
+ case .BI: return NSLocalizedString("Burundi", comment: "Country option for a site address.")
+
+ // C
+ case .KH: return NSLocalizedString("Cambodia", comment: "Country option for a site address.")
+ case .CM: return NSLocalizedString("Cameroon", comment: "Country option for a site address.")
+ case .CA: return NSLocalizedString("Canada", comment: "Country option for a site address.")
+ case .CV: return NSLocalizedString("Cape Verde", comment: "Country option for a site address.")
+ case .KY: return NSLocalizedString("Cayman Islands", comment: "Country option for a site address.")
+ case .CF: return NSLocalizedString("Central African Republic", comment: "Country option for a site address.")
+ case .TD: return NSLocalizedString("Chad", comment: "Country option for a site address.")
+ case .CL: return NSLocalizedString("Chile", comment: "Country option for a site address.")
+ case .CN: return NSLocalizedString("China", comment: "Country option for a site address.")
+ case .CX: return NSLocalizedString("Christmas Island", comment: "Country option for a site address.")
+ case .CC: return NSLocalizedString("Cocos (Keeling) Islands", comment: "Country option for a site address.")
+ case .CO: return NSLocalizedString("Colombia", comment: "Country option for a site address.")
+ case .KM: return NSLocalizedString("Comoros", comment: "Country option for a site address.")
+ case .CG: return NSLocalizedString("Congo (Brazzaville)", comment: "Country option for a site address.")
+ case .CD: return NSLocalizedString("Congo (Kinshasa)", comment: "Country option for a site address.")
+ case .CK: return NSLocalizedString("Cook Islands", comment: "Country option for a site address.")
+ case .CR: return NSLocalizedString("Costa Rica", comment: "Country option for a site address.")
+ case .HR: return NSLocalizedString("Croatia", comment: "Country option for a site address.")
+ case .CU: return NSLocalizedString("Cuba", comment: "Country option for a site address.")
+ case .CW: return NSLocalizedString("Curacao", comment: "Country option for a site address.")
+ case .CY: return NSLocalizedString("Cyprus", comment: "Country option for a site address.")
+ case .CZ: return NSLocalizedString("Czech Republic", comment: "Country option for a site address.")
+
+ // D
+ case .DK: return NSLocalizedString("Denmark", comment: "Country option for a site address.")
+ case .DJ: return NSLocalizedString("Djibouti", comment: "Country option for a site address.")
+ case .DM: return NSLocalizedString("Dominica", comment: "Country option for a site address.")
+ case .DO: return NSLocalizedString("Dominican Republic", comment: "Country option for a site address.")
+
+ // E
+ case .EC: return NSLocalizedString("Ecuador", comment: "Country option for a site address.")
+ case .EG: return NSLocalizedString("Egypt", comment: "Country option for a site address.")
+ case .SV: return NSLocalizedString("El Salvador", comment: "Country option for a site address.")
+ case .GQ: return NSLocalizedString("Equatorial Guinea", comment: "Country option for a site address.")
+ case .ER: return NSLocalizedString("Eritrea", comment: "Country option for a site address.")
+ case .EE: return NSLocalizedString("Estonia", comment: "Country option for a site address.")
+ case .ET: return NSLocalizedString("Ethiopia", comment: "Country option for a site address.")
+
+ // F
+ case .FK: return NSLocalizedString("Falkland Islands", comment: "Country option for a site address.")
+ case .FO: return NSLocalizedString("Faroe Islands", comment: "Country option for a site address.")
+ case .FJ: return NSLocalizedString("Fiji", comment: "Country option for a site address.")
+ case .FI: return NSLocalizedString("Finland", comment: "Country option for a site address.")
+ case .FR: return NSLocalizedString("France", comment: "Country option for a site address.")
+ case .GF: return NSLocalizedString("French Guiana", comment: "Country option for a site address.")
+ case .PF: return NSLocalizedString("French Polynesia", comment: "Country option for a site address.")
+ case .TF: return NSLocalizedString("French Southern Territories", comment: "Country option for a site address.")
+
+ // G
+ case .GA: return NSLocalizedString("Gabon", comment: "Country option for a site address.")
+ case .GM: return NSLocalizedString("Gambia", comment: "Country option for a site address.")
+ case .GE: return NSLocalizedString("Georgia", comment: "Country option for a site address.")
+ case .DE: return NSLocalizedString("Germany", comment: "Country option for a site address.")
+ case .GH: return NSLocalizedString("Ghana", comment: "Country option for a site address.")
+ case .GI: return NSLocalizedString("Gibraltar", comment: "Country option for a site address.")
+ case .GR: return NSLocalizedString("Greece", comment: "Country option for a site address.")
+ case .GL: return NSLocalizedString("Greenland", comment: "Country option for a site address.")
+ case .GD: return NSLocalizedString("Grenada", comment: "Country option for a site address.")
+ case .GP: return NSLocalizedString("Guadeloupe", comment: "Country option for a site address.")
+ case .GU: return NSLocalizedString("Guam", comment: "Country option for a site address.")
+ case .GT: return NSLocalizedString("Guatemala", comment: "Country option for a site address.")
+ case .GG: return NSLocalizedString("Guernsey", comment: "Country option for a site address.")
+ case .GN: return NSLocalizedString("Guinea", comment: "Country option for a site address.")
+ case .GW: return NSLocalizedString("Guinea-Bissau", comment: "Country option for a site address.")
+ case .GY: return NSLocalizedString("Guyana", comment: "Country option for a site address.")
+
+ // H
+ case .HT: return NSLocalizedString("Haiti", comment: "Country option for a site address.")
+ case .HM: return NSLocalizedString("Heard Island and McDonald Islands", comment: "Country option for a site address.")
+ case .HN: return NSLocalizedString("Honduras", comment: "Country option for a site address.")
+ case .HK: return NSLocalizedString("Hong Kong", comment: "Country option for a site address.")
+ case .HU: return NSLocalizedString("Hungary", comment: "Country option for a site address.")
+
+ // I
+ case .IS: return NSLocalizedString("Iceland", comment: "Country option for a site address.")
+ case .IN: return NSLocalizedString("India", comment: "Country option for a site address.")
+ case .ID: return NSLocalizedString("Indonesia", comment: "Country option for a site address.")
+ case .IR: return NSLocalizedString("Iran", comment: "Country option for a site address.")
+ case .IQ: return NSLocalizedString("Iraq", comment: "Country option for a site address.")
+ case .IE: return NSLocalizedString("Ireland", comment: "Country option for a site address.")
+ case .IM: return NSLocalizedString("Isle of Man", comment: "Country option for a site address.")
+ case .IL: return NSLocalizedString("Israel", comment: "Country option for a site address.")
+ case .IT: return NSLocalizedString("Italy", comment: "Country option for a site address.")
+ case .CI: return NSLocalizedString("Ivory Coast", comment: "Country option for a site address.")
+
+ // J
+ case .JM: return NSLocalizedString("Jamaica", comment: "Country option for a site address.")
+ case .JP: return NSLocalizedString("Japan", comment: "Country option for a site address.")
+ case .JE: return NSLocalizedString("Jersey", comment: "Country option for a site address.")
+ case .JO: return NSLocalizedString("Jordan", comment: "Country option for a site address.")
+
+ // K
+ case .KZ: return NSLocalizedString("Kazakhstan", comment: "Country option for a site address.")
+ case .KE: return NSLocalizedString("Kenya", comment: "Country option for a site address.")
+ case .KI: return NSLocalizedString("Kiribati", comment: "Country option for a site address.")
+ case .KW: return NSLocalizedString("Kuwait", comment: "Country option for a site address.")
+ case .KG: return NSLocalizedString("Kyrgyzstan", comment: "Country option for a site address.")
+
+ // L
+ case .LA: return NSLocalizedString("Laos", comment: "Country option for a site address.")
+ case .LV: return NSLocalizedString("Latvia", comment: "Country option for a site address.")
+ case .LB: return NSLocalizedString("Lebanon", comment: "Country option for a site address.")
+ case .LS: return NSLocalizedString("Lesotho", comment: "Country option for a site address.")
+ case .LR: return NSLocalizedString("Liberia", comment: "Country option for a site address.")
+ case .LY: return NSLocalizedString("Libya", comment: "Country option for a site address.")
+ case .LI: return NSLocalizedString("Liechtenstein", comment: "Country option for a site address.")
+ case .LT: return NSLocalizedString("Lithuania", comment: "Country option for a site address.")
+ case .LU: return NSLocalizedString("Luxembourg", comment: "Country option for a site address.")
+
+ // M
+ case .MO: return NSLocalizedString("Macao S.A.R., China", comment: "Country option for a site address.")
+ case .MK: return NSLocalizedString("Macedonia", comment: "Country option for a site address.")
+ case .MG: return NSLocalizedString("Madagascar", comment: "Country option for a site address.")
+ case .MW: return NSLocalizedString("Malawi", comment: "Country option for a site address.")
+ case .MY: return NSLocalizedString("Malaysia", comment: "Country option for a site address.")
+ case .MV: return NSLocalizedString("Maldives", comment: "Country option for a site address.")
+ case .ML: return NSLocalizedString("Mali", comment: "Country option for a site address.")
+ case .MT: return NSLocalizedString("Malta", comment: "Country option for a site address.")
+ case .MH: return NSLocalizedString("Marshall Islands", comment: "Country option for a site address.")
+ case .MQ: return NSLocalizedString("Martinique", comment: "Country option for a site address.")
+ case .MR: return NSLocalizedString("Mauritania", comment: "Country option for a site address.")
+ case .MU: return NSLocalizedString("Mauritius", comment: "Country option for a site address.")
+ case .YT: return NSLocalizedString("Mayotte", comment: "Country option for a site address.")
+ case .MX: return NSLocalizedString("Mexico", comment: "Country option for a site address.")
+ case .FM: return NSLocalizedString("Micronesia", comment: "Country option for a site address.")
+ case .MD: return NSLocalizedString("Moldova", comment: "Country option for a site address.")
+ case .MC: return NSLocalizedString("Monaco", comment: "Country option for a site address.")
+ case .MN: return NSLocalizedString("Mongolia", comment: "Country option for a site address.")
+ case .ME: return NSLocalizedString("Montenegro", comment: "Country option for a site address.")
+ case .MS: return NSLocalizedString("Montserrat", comment: "Country option for a site address.")
+ case .MA: return NSLocalizedString("Morocco", comment: "Country option for a site address.")
+ case .MZ: return NSLocalizedString("Mozambique", comment: "Country option for a site address.")
+ case .MM: return NSLocalizedString("Myanmar", comment: "Country option for a site address.")
+
+ // N
+ case .NA: return NSLocalizedString("Namibia", comment: "Country option for a site address.")
+ case .NR: return NSLocalizedString("Nauru", comment: "Country option for a site address.")
+ case .NP: return NSLocalizedString("Nepal", comment: "Country option for a site address.")
+ case .NL: return NSLocalizedString("Netherlands", comment: "Country option for a site address.")
+ case .NC: return NSLocalizedString("New Caledonia", comment: "Country option for a site address.")
+ case .NZ: return NSLocalizedString("New Zealand", comment: "Country option for a site address.")
+ case .NI: return NSLocalizedString("Nicaragua", comment: "Country option for a site address.")
+ case .NE: return NSLocalizedString("Niger", comment: "Country option for a site address.")
+ case .NG: return NSLocalizedString("Nigeria", comment: "Country option for a site address.")
+ case .NU: return NSLocalizedString("Niue", comment: "Country option for a site address.")
+ case .NF: return NSLocalizedString("Norfolk Island", comment: "Country option for a site address.")
+ case .KP: return NSLocalizedString("North Korea", comment: "Country option for a site address.")
+ case .MP: return NSLocalizedString("Northern Mariana Islands", comment: "Country option for a site address.")
+ case .NO: return NSLocalizedString("Norway", comment: "Country option for a site address.")
+
+ // O
+ case .OM: return NSLocalizedString("Oman", comment: "Country option for a site address.")
+
+ // P
+ case .PK: return NSLocalizedString("Pakistan", comment: "Country option for a site address.")
+ case .PS: return NSLocalizedString("Palestinian Territory", comment: "Country option for a site address.")
+ case .PA: return NSLocalizedString("Panama", comment: "Country option for a site address.")
+ case .PG: return NSLocalizedString("Papua New Guinea", comment: "Country option for a site address.")
+ case .PY: return NSLocalizedString("Paraguay", comment: "Country option for a site address.")
+ case .PE: return NSLocalizedString("Peru", comment: "Country option for a site address.")
+ case .PH: return NSLocalizedString("Philippines", comment: "Country option for a site address.")
+ case .PN: return NSLocalizedString("Pitcairn", comment: "Country option for a site address.")
+ case .PL: return NSLocalizedString("Poland", comment: "Country option for a site address.")
+ case .PT: return NSLocalizedString("Portugal", comment: "Country option for a site address.")
+ case .PR: return NSLocalizedString("Puerto Rico", comment: "Country option for a site address.")
+
+ // Q
+ case .QA: return NSLocalizedString("Qatar", comment: "Country option for a site address.")
+
+ // R
+ case .RE: return NSLocalizedString("Reunion", comment: "Country option for a site address.")
+ case .RO: return NSLocalizedString("Romania", comment: "Country option for a site address.")
+ case .RU: return NSLocalizedString("Russia", comment: "Country option for a site address.")
+ case .RW: return NSLocalizedString("Rwanda", comment: "Country option for a site address.")
+
+ // S
+ case .ST: return NSLocalizedString("São Tomé and PrÃncipe", comment: "Country option for a site address.")
+ case .BL: return NSLocalizedString("Saint Barthélemy", comment: "Country option for a site address.")
+ case .SH: return NSLocalizedString("Saint Helena", comment: "Country option for a site address.")
+ case .KN: return NSLocalizedString("Saint Kitts and Nevis", comment: "Country option for a site address.")
+ case .LC: return NSLocalizedString("Saint Lucia", comment: "Country option for a site address.")
+ case .SX: return NSLocalizedString("Saint Martin (Dutch part)", comment: "Country option for a site address.")
+ case .MF: return NSLocalizedString("Saint Martin (French part)", comment: "Country option for a site address.")
+ case .PM: return NSLocalizedString("Saint Pierre and Miquelon", comment: "Country option for a site address.")
+ case .VC: return NSLocalizedString("Saint Vincent and the Grenadines", comment: "Country option for a site address.")
+ case .WS: return NSLocalizedString("Samoa", comment: "Country option for a site address.")
+ case .SM: return NSLocalizedString("San Marino", comment: "Country option for a site address.")
+ case .SA: return NSLocalizedString("Saudi Arabia", comment: "Country option for a site address.")
+ case .SN: return NSLocalizedString("Senegal", comment: "Country option for a site address.")
+ case .RS: return NSLocalizedString("Serbia", comment: "Country option for a site address.")
+ case .SC: return NSLocalizedString("Seychelles", comment: "Country option for a site address.")
+ case .SL: return NSLocalizedString("Sierra Leone", comment: "Country option for a site address.")
+ case .SG: return NSLocalizedString("Singapore", comment: "Country option for a site address.")
+ case .SK: return NSLocalizedString("Slovakia", comment: "Country option for a site address.")
+ case .SI: return NSLocalizedString("Slovenia", comment: "Country option for a site address.")
+ case .SB: return NSLocalizedString("Solomon Islands", comment: "Country option for a site address.")
+ case .SO: return NSLocalizedString("Somalia", comment: "Country option for a site address.")
+ case .ZA: return NSLocalizedString("South Africa", comment: "Country option for a site address.")
+ case .GS: return NSLocalizedString("South Georgia/Sandwich Islands", comment: "Country option for a site address.")
+ case .KR: return NSLocalizedString("South Korea", comment: "Country option for a site address.")
+ case .SS: return NSLocalizedString("South Sudan", comment: "Country option for a site address.")
+ case .ES: return NSLocalizedString("Spain", comment: "Country option for a site address.")
+ case .LK: return NSLocalizedString("Sri Lanka", comment: "Country option for a site address.")
+ case .SD: return NSLocalizedString("Sudan", comment: "Country option for a site address.")
+ case .SR: return NSLocalizedString("Suriname", comment: "Country option for a site address.")
+ case .SJ: return NSLocalizedString("Svalbard and Jan Mayen", comment: "Country option for a site address.")
+ case .SZ: return NSLocalizedString("Swaziland", comment: "Country option for a site address.")
+ case .SE: return NSLocalizedString("Sweden", comment: "Country option for a site address.")
+ case .CH: return NSLocalizedString("Switzerland", comment: "Country option for a site address.")
+ case .SY: return NSLocalizedString("Syria", comment: "Country option for a site address.")
+
+ // T
+ case .TW: return NSLocalizedString("Taiwan", comment: "Country option for a site address.")
+ case .TJ: return NSLocalizedString("Tajikistan", comment: "Country option for a site address.")
+ case .TZ: return NSLocalizedString("Tanzania", comment: "Country option for a site address.")
+ case .TH: return NSLocalizedString("Thailand", comment: "Country option for a site address.")
+ case .TL: return NSLocalizedString("Timor-Leste", comment: "Country option for a site address.")
+ case .TG: return NSLocalizedString("Togo", comment: "Country option for a site address.")
+ case .TK: return NSLocalizedString("Tokelau", comment: "Country option for a site address.")
+ case .TO: return NSLocalizedString("Tonga", comment: "Country option for a site address.")
+ case .TT: return NSLocalizedString("Trinidad and Tobago", comment: "Country option for a site address.")
+ case .TN: return NSLocalizedString("Tunisia", comment: "Country option for a site address.")
+ case .TR: return NSLocalizedString("Turkey", comment: "Country option for a site address.")
+ case .TM: return NSLocalizedString("Turkmenistan", comment: "Country option for a site address.")
+ case .TC: return NSLocalizedString("Turks and Caicos Islands", comment: "Country option for a site address.")
+ case .TV: return NSLocalizedString("Tuvalu", comment: "Country option for a site address.")
+
+ // U
+ case .UG: return NSLocalizedString("Uganda", comment: "Country option for a site address.")
+ case .UA: return NSLocalizedString("Ukraine", comment: "Country option for a site address.")
+ case .AE: return NSLocalizedString("United Arab Emirates", comment: "Country option for a site address.")
+ case .GB: return NSLocalizedString("United Kingdom", comment: "Country option for a site address.")
+ case .US: return NSLocalizedString("United States", comment: "Country option for a site address.")
+ case .UM: return NSLocalizedString("United States Minor Outlying Islands", comment: "Country option for a site address.")
+ case .VI: return NSLocalizedString("United States Virgin Islands", comment: "Country option for a site address.")
+ case .UY: return NSLocalizedString("Uruguay", comment: "Country option for a site address.")
+ case .UZ: return NSLocalizedString("Uzbekistan", comment: "Country option for a site address.")
+
+ // V
+ case .VU: return NSLocalizedString("Vanuatu", comment: "Country option for a site address.")
+ case .VA: return NSLocalizedString("Vatican", comment: "Country option for a site address.")
+ case .VE: return NSLocalizedString("Venezuela", comment: "Country option for a site address.")
+ case .VN: return NSLocalizedString("Vietnam", comment: "Country option for a site address.")
+
+ // W
+ case .WF: return NSLocalizedString("Wallis and Futuna", comment: "Country option for a site address.")
+ case .EH: return NSLocalizedString("Western Sahara", comment: "Country option for a site address.")
+
+ // Y
+ case .YE: return NSLocalizedString("Yemen", comment: "Country option for a site address.")
+
+ // Z
+ case .ZM: return NSLocalizedString("Zambia", comment: "Country option for a site address.")
+ case .ZW: return NSLocalizedString("Zimbabwe", comment: "Country option for a site address.")
+
+ case .unknown: return NSLocalizedString("Unknown country", comment: "Fallback country option for a site address.")
+ }
+ }
+}
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 b58c1e2048d..91539cb821f 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? {
@@ -41,7 +40,7 @@ final class AsyncPaginationTracker {
}
/// Designated Initializer
- init(pageFirstIndex: Int = Defaults.pageFirstIndex) {
+ public init(pageFirstIndex: Int = Defaults.pageFirstIndex) {
self.pageFirstIndex = pageFirstIndex
}
@@ -50,7 +49,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
}
@@ -69,14 +68,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/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentsAlertPresenterAdaptor.swift b/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentsAlertPresenterAdaptor.swift
index a6784c69142..8e7a64508f3 100644
--- a/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentsAlertPresenterAdaptor.swift
+++ b/WooCommerce/Classes/POS/Adaptors/Card Present Payments/CardPresentPaymentsAlertPresenterAdaptor.swift
@@ -2,6 +2,7 @@ import Foundation
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/POSServiceLocatorAdaptor.swift b/WooCommerce/Classes/POS/Adaptors/POSServiceLocatorAdaptor.swift
index 5eaf6d3fa7c..2e019e83a76 100644
--- a/WooCommerce/Classes/POS/Adaptors/POSServiceLocatorAdaptor.swift
+++ b/WooCommerce/Classes/POS/Adaptors/POSServiceLocatorAdaptor.swift
@@ -115,4 +115,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/Presentation/CardReaderConnection/UI States/PointOfSaleItemListEmptyView.swift b/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/PointOfSaleItemListEmptyView.swift
deleted file mode 100644
index abc85d90ac6..00000000000
--- a/WooCommerce/Classes/POS/Presentation/CardReaderConnection/UI States/PointOfSaleItemListEmptyView.swift
+++ /dev/null
@@ -1,274 +0,0 @@
-import SwiftUI
-import struct WooFoundation.ScrollableVStack
-
-protocol POSEmptyViewModelProtocol {
- var title: String { get }
- var subtitle: String { get }
- var hint: String? { get }
- var buttonTitle: String? { get }
- var iconName: String { get }
-}
-
-struct POSListEmptyView: View {
- @Environment(\.dynamicTypeSize) private var dynamicTypeSize
- @Environment(\.floatingControlAreaSize) private var floatingControlAreaSize: CGSize
- private let viewModel: any POSEmptyViewModelProtocol
-
- private let onAction: (() -> Void)?
-
- @State private var viewWidth: CGFloat = 0
-
- @Environment(\.keyboardObserver) private var keyboard
-
- init(viewModel: any POSEmptyViewModelProtocol, onAction: (() -> Void)? = nil) {
- self.viewModel = viewModel
- self.onAction = onAction
- }
-
- var body: some View {
- ScrollableVStack {
- Spacer()
- VStack(alignment: .center, spacing: POSSpacing.none) {
- let shouldShowIcon: Bool = !dynamicTypeSize.isAccessibilitySize && !keyboard.isFullSizeKeyboardVisible
-
- if shouldShowIcon {
- icon
-
- Spacer().frame(height: PointOfSaleEmptyErrorStateViewLayout.imageAndTextSpacing)
- }
-
- Text(viewModel.title)
- .accessibilityAddTraits(.isHeader)
- .foregroundStyle(Color.posOnSurface)
- .font(.posHeadingBold)
- .multilineTextAlignment(.center)
-
- Spacer().frame(height: PointOfSaleEmptyErrorStateViewLayout.textSpacing)
-
- Text(viewModel.subtitle)
- .foregroundStyle(Color.posOnSurface)
- .font(.posBodyLargeRegular())
- .padding([.leading, .trailing])
- .multilineTextAlignment(.center)
-
- if let hint = viewModel.hint {
- Spacer().frame(height: POSSpacing.small)
- Text(hint)
- .foregroundStyle(Color.posOnSurfaceVariantHighest)
- .font(.posBodyLargeRegular())
- .padding([.leading, .trailing])
- .multilineTextAlignment(.center)
- }
-
- Spacer().frame(height: PointOfSaleEmptyErrorStateViewLayout.textAndButtonSpacing)
-
- if let onAction, let buttonTitle = viewModel.buttonTitle {
- Button(action: {
- onAction()
- }, label: {
- Text(buttonTitle)
- })
- .buttonStyle(POSOutlinedButtonStyle(size: .normal))
- .frame(width: viewWidth / 2)
- .padding([.leading, .trailing])
- }
- }
- Spacer()
- }
- .multilineTextAlignment(.center)
- .padding(.bottom, !keyboard.isFullSizeKeyboardVisible ? floatingControlAreaSize.height : 0)
- .animation(.default, value: keyboard.keyboardHeight)
- .measureWidth { width in
- viewWidth = width
- }
- }
-
- @ViewBuilder
- private var icon: some View {
- Image(decorative: viewModel.iconName)
- .resizable()
- .aspectRatio(contentMode: .fit)
- .frame(width: Constants.iconSize, height: Constants.iconSize)
- .foregroundColor(.posOnSurfaceVariantHighest)
- }
-}
-
-private extension POSListEmptyView {
- enum Constants {
- static let iconSize: CGFloat = 88
- }
-}
-
-struct PointOfSaleItemListEmptyViewModel {
- let itemListType: ItemListType
- let baseItem: ItemListBaseItem
-
- var title: String {
- switch (baseItem, itemListType) {
- case (.root, .products(search: true)):
- return Localization.emptyProductsSearchTitle
- case (.root, .products(search: false)):
- return Localization.emptyProductsTitle
- case (.root, .coupons):
- return Localization.emptyCouponsTitle
- case (.parent, .products):
- return Localization.emptyVariableParentProductTitle
- default:
- assertionFailure("No title defined for \(baseItem)")
- return Localization.emptyProductsTitle
- }
- }
-
- var subtitle: String {
- switch (baseItem, itemListType) {
- case (.root, .products(search: true)):
- return Localization.emptyProductsSearchSubtitle
- case (.root, .products(search: false)):
- return Localization.emptyProductsSubtitle
- case (.root, .coupons(search: false)):
- return Localization.emptyCouponsSubtitle
- case (.root, .coupons(search: true)):
- return Localization.emptyCouponSearchSubtitle
- case (.parent, .products):
- return Localization.emptyVariableParentProductSubtitle
- default:
- assertionFailure("No subtitle defined for \(baseItem)")
- return Localization.emptyProductsTitle
- }
- }
-
- var hint: String? {
- switch (baseItem, itemListType) {
- case (.root, .products(search: true)):
- return Localization.emptyProductsSearchHint
- case (.root, .products(search: false)):
- return Localization.emptyProductsHint
- case (.root, .coupons):
- return nil
- case (.parent, .products):
- return Localization.emptyVariableParentProductHint
- default:
- assertionFailure("No hint defined for \(baseItem)")
- return Localization.emptyProductsTitle
- }
- }
-
- var buttonTitle: String? {
- switch (baseItem, itemListType) {
- case (.root, .coupons(search: false)):
- return Localization.emptyCouponsButtonTitle
- case (.root, .products(search: false)):
- return Localization.emptyProductsButtonTitle
- case (.parent, .products):
- return Localization.emptyProductsButtonTitle
- default:
- return nil
- }
- }
-
- var iconName: String {
- switch itemListType {
- case .coupons(search: false):
- PointOfSaleAssets.coupons.imageName
- default:
- PointOfSaleAssets.magnifierNotFound.imageName
- }
- }
-
- enum Localization {
- static let emptyProductsTitle = NSLocalizedString(
- "pos.pointOfSaleItemListEmptyView.emptyProductsTitle.2",
- value: "No supported products found",
- comment: "Text appearing on screen when there are no products to load."
- )
- static let emptyProductsSubtitle = NSLocalizedString(
- "pos.pointOfSaleItemListEmptyView.emptyProductsSubtitle.1",
- value: "POS currently only supports simple and variable products.",
- comment: "Subtitle text on screen when there are no products to load."
- )
- static let emptyProductsHint = NSLocalizedString(
- "pos.pointOfSaleItemListEmptyView.emptyProductsHint.1",
- value: "To add one, exit POS and go to Products.",
- comment: "Text hinting the merchant to create a product."
- )
- static let emptyProductsSearchTitle = NSLocalizedString(
- "pos.pointOfSaleItemListEmptyView.emptyProductsSearchTitle.2",
- value: "No products found",
- comment: "Text appearing on screen when a POS product search returns no results."
- )
- static let emptyProductsSearchSubtitle = NSLocalizedString(
- "pos.pointOfSaleItemListEmptyView.emptyProductsSearchSubtitle.2",
- value: "We couldn't find any matching products — try adjusting your search term.",
- comment: "Subtitle text suggesting to modify search terms when no products are found in the POS product search."
- )
- static let emptyProductsSearchHint = NSLocalizedString(
- "pos.pointOfSaleItemListEmptyView.emptyProductsSearchHint",
- value: "Variation names can't be searched, so use the parent product name.",
- comment: "Text providing additional search tips when no products are found in the POS product search."
- )
- static let emptyVariableParentProductTitle = NSLocalizedString(
- "pos.pointOfSaleItemListEmptyView.emptyVariableParentProductTitle.2",
- value: "No supported variations found",
- comment: "Text appearing on screen when there are no variations to load."
- )
- static let emptyVariableParentProductSubtitle = NSLocalizedString(
- "pos.pointOfSaleItemListEmptyView.emptyVariableParentProductSubtitle",
- value: "POS only supports enabled, non-downloadable variations.",
- comment: "Subtitle text on screen when there are no products to load."
- )
- static let emptyVariableParentProductHint = NSLocalizedString(
- "pos.pointOfSaleItemListEmptyView.emptyVariableParentProductHint",
- value: "To add one, exit POS and edit this product in the Products tab.",
- comment: "Text hinting the merchant to create a product."
- )
- static let emptyCouponsTitle = NSLocalizedString(
- "pos.pointOfSaleItemListEmptyView.emptyCouponsTitle2",
- value: "No coupons found",
- comment: "Text appearing on the coupon list screen when there's no coupons found."
- )
- static let emptyCouponsSubtitle = NSLocalizedString(
- "pos.pointOfSaleItemListEmptyView.emptyCouponsSubtitle.2",
- value: "Coupons can be an effective way to drive business. Would you like to create one?",
- comment: "Text appearing on the coupons list screen as subtitle when there's no coupons found."
- )
- static let emptyCouponsButtonTitle = NSLocalizedString(
- "pos.pointOfSaleItemListEmptyView.noCouponsFoundButtonTitleButtonTitle",
- value: "Create coupon",
- comment: "Text for the button appearing on the coupons list screen when there's no coupons found."
- )
- static let emptyCouponSearchSubtitle = NSLocalizedString(
- "pos.pointOfSaleItemListEmptyView.emptyCouponSearchSubtitle.2",
- value: "We couldn’t find any coupons with that name — try adjusting your search term.",
- comment: "Text appearing on the coupons list screen as subtitle when there's no coupons found."
- )
- static let emptyProductsButtonTitle = NSLocalizedString(
- "pos.pointOfSaleItemListEmptyView.emptyProductsButtonTitle",
- value: "Refresh",
- comment: "Text for the button appearing on the products list screen when there are no products found."
- )
- }
-}
-
-// MARK: - Preview
-
-#Preview {
- POSListEmptyView(
- viewModel: PointOfSaleItemListEmptyViewModel(
- itemListType: .coupons(search: false),
- baseItem: .root
- )
- ) {}
-}
-
-#Preview {
- POSListEmptyView(
- viewModel: PointOfSaleItemListEmptyViewModel(
- itemListType: .products(search: true),
- baseItem: .root
- )
- ) {}
-}
-
-// MARK: - Protocol Conformance
-
-extension PointOfSaleItemListEmptyViewModel: POSEmptyViewModelProtocol {}
diff --git a/WooCommerce/Classes/POS/TabBar/POSIneligibleView.swift b/WooCommerce/Classes/POS/TabBar/POSIneligibleView.swift
index 6d7e4190372..dd52102442c 100644
--- a/WooCommerce/Classes/POS/TabBar/POSIneligibleView.swift
+++ b/WooCommerce/Classes/POS/TabBar/POSIneligibleView.swift
@@ -1,4 +1,5 @@
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/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/Tools/SiteAddress.swift b/WooCommerce/Classes/Tools/SiteAddress.swift
index e303769ad62..73026d52ba3 100644
--- a/WooCommerce/Classes/Tools/SiteAddress.swift
+++ b/WooCommerce/Classes/Tools/SiteAddress.swift
@@ -79,316 +79,3 @@ private extension SiteAddress {
static let countryAndState = "woocommerce_default_country"
}
}
-
-// MARK: - Mapping between country codes and readable names
-// The country names were extracted from the response to `/wp-json/wc/v3/settings/general`
-// The default countries are listed under `woocommerce_default_country`
-// in one of the following formats:
-// - `"COUNTRY_CODE": "READABALE_COUNTRY_NAME"
-// - `"COUNTRY_CODE:COUNTRY_REGION": "READABLE_COUNTRY_NAME - READABLE_COUNTRY_REGION"
-extension CountryCode {
- var readableCountry: String {
- switch self {
- // A
- case .AX: return NSLocalizedString("Ã…land Islands", comment: "Country option for a site address.")
- case .AF: return NSLocalizedString("Afghanistan", comment: "Country option for a site address.")
- case .AL: return NSLocalizedString("Albania", comment: "Country option for a site address.")
- case .DZ: return NSLocalizedString("Algeria", comment: "Country option for a site address.")
- case .AS: return NSLocalizedString("American Samoa", comment: "Country option for a site address.")
- case .AD: return NSLocalizedString("Andorra", comment: "Country option for a site address.")
- case .AO: return NSLocalizedString("Angola", comment: "Country option for a site address.")
- case .AI: return NSLocalizedString("Anguilla", comment: "Country option for a site address.")
- case .AQ: return NSLocalizedString("Antarctica", comment: "Country option for a site address.")
- case .AG: return NSLocalizedString("Antigua and Barbuda", comment: "Country option for a site address.")
- case .AR: return NSLocalizedString("Argentina", comment: "Country option for a site address.")
- case .AM: return NSLocalizedString("Armenia", comment: "Country option for a site address.")
- case .AW: return NSLocalizedString("Aruba", comment: "Country option for a site address.")
- case .AU: return NSLocalizedString("Australia", comment: "Country option for a site address.")
- case .AT: return NSLocalizedString("Austria", comment: "Country option for a site address.")
- case .AZ: return NSLocalizedString("Azerbaijan", comment: "Country option for a site address.")
-
- // B
- case .BS: return NSLocalizedString("Bahamas", comment: "Country option for a site address.")
- case .BH: return NSLocalizedString("Bahrain", comment: "Country option for a site address.")
- case .BD: return NSLocalizedString("Bangladesh", comment: "Country option for a site address.")
- case .BB: return NSLocalizedString("Barbados", comment: "Country option for a site address.")
- case .BY: return NSLocalizedString("Belarus", comment: "Country option for a site address.")
- case .PW: return NSLocalizedString("Belau", comment: "Country option for a site address.")
- case .BE: return NSLocalizedString("Belgium", comment: "Country option for a site address.")
- case .BZ: return NSLocalizedString("Belize", comment: "Country option for a site address.")
- case .BJ: return NSLocalizedString("Benin", comment: "Country option for a site address.")
- case .BM: return NSLocalizedString("Bermuda", comment: "Country option for a site address.")
- case .BT: return NSLocalizedString("Bhutan", comment: "Country option for a site address.")
- case .BO: return NSLocalizedString("Bolivia", comment: "Country option for a site address.")
- case .BQ: return NSLocalizedString("Bonaire, Saint Eustatius and Saba", comment: "Country option for a site address.")
- case .BA: return NSLocalizedString("Bosnia and Herzegovina", comment: "Country option for a site address.")
- case .BW: return NSLocalizedString("Botswana", comment: "Country option for a site address.")
- case .BV: return NSLocalizedString("Bouvet Island", comment: "Country option for a site address.")
- case .BR: return NSLocalizedString("Brazil", comment: "Country option for a site address.")
- case .IO: return NSLocalizedString("British Indian Ocean Territory", comment: "Country option for a site address.")
- case .VG: return NSLocalizedString("British Virgin Islands", comment: "Country option for a site address.")
- case .BN: return NSLocalizedString("Brunei", comment: "Country option for a site address.")
- case .BG: return NSLocalizedString("Bulgaria", comment: "Country option for a site address.")
- case .BF: return NSLocalizedString("Burkina Faso", comment: "Country option for a site address.")
- case .BI: return NSLocalizedString("Burundi", comment: "Country option for a site address.")
-
- // C
- case .KH: return NSLocalizedString("Cambodia", comment: "Country option for a site address.")
- case .CM: return NSLocalizedString("Cameroon", comment: "Country option for a site address.")
- case .CA: return NSLocalizedString("Canada", comment: "Country option for a site address.")
- case .CV: return NSLocalizedString("Cape Verde", comment: "Country option for a site address.")
- case .KY: return NSLocalizedString("Cayman Islands", comment: "Country option for a site address.")
- case .CF: return NSLocalizedString("Central African Republic", comment: "Country option for a site address.")
- case .TD: return NSLocalizedString("Chad", comment: "Country option for a site address.")
- case .CL: return NSLocalizedString("Chile", comment: "Country option for a site address.")
- case .CN: return NSLocalizedString("China", comment: "Country option for a site address.")
- case .CX: return NSLocalizedString("Christmas Island", comment: "Country option for a site address.")
- case .CC: return NSLocalizedString("Cocos (Keeling) Islands", comment: "Country option for a site address.")
- case .CO: return NSLocalizedString("Colombia", comment: "Country option for a site address.")
- case .KM: return NSLocalizedString("Comoros", comment: "Country option for a site address.")
- case .CG: return NSLocalizedString("Congo (Brazzaville)", comment: "Country option for a site address.")
- case .CD: return NSLocalizedString("Congo (Kinshasa)", comment: "Country option for a site address.")
- case .CK: return NSLocalizedString("Cook Islands", comment: "Country option for a site address.")
- case .CR: return NSLocalizedString("Costa Rica", comment: "Country option for a site address.")
- case .HR: return NSLocalizedString("Croatia", comment: "Country option for a site address.")
- case .CU: return NSLocalizedString("Cuba", comment: "Country option for a site address.")
- case .CW: return NSLocalizedString("Curacao", comment: "Country option for a site address.")
- case .CY: return NSLocalizedString("Cyprus", comment: "Country option for a site address.")
- case .CZ: return NSLocalizedString("Czech Republic", comment: "Country option for a site address.")
-
- // D
- case .DK: return NSLocalizedString("Denmark", comment: "Country option for a site address.")
- case .DJ: return NSLocalizedString("Djibouti", comment: "Country option for a site address.")
- case .DM: return NSLocalizedString("Dominica", comment: "Country option for a site address.")
- case .DO: return NSLocalizedString("Dominican Republic", comment: "Country option for a site address.")
-
- // E
- case .EC: return NSLocalizedString("Ecuador", comment: "Country option for a site address.")
- case .EG: return NSLocalizedString("Egypt", comment: "Country option for a site address.")
- case .SV: return NSLocalizedString("El Salvador", comment: "Country option for a site address.")
- case .GQ: return NSLocalizedString("Equatorial Guinea", comment: "Country option for a site address.")
- case .ER: return NSLocalizedString("Eritrea", comment: "Country option for a site address.")
- case .EE: return NSLocalizedString("Estonia", comment: "Country option for a site address.")
- case .ET: return NSLocalizedString("Ethiopia", comment: "Country option for a site address.")
-
- // F
- case .FK: return NSLocalizedString("Falkland Islands", comment: "Country option for a site address.")
- case .FO: return NSLocalizedString("Faroe Islands", comment: "Country option for a site address.")
- case .FJ: return NSLocalizedString("Fiji", comment: "Country option for a site address.")
- case .FI: return NSLocalizedString("Finland", comment: "Country option for a site address.")
- case .FR: return NSLocalizedString("France", comment: "Country option for a site address.")
- case .GF: return NSLocalizedString("French Guiana", comment: "Country option for a site address.")
- case .PF: return NSLocalizedString("French Polynesia", comment: "Country option for a site address.")
- case .TF: return NSLocalizedString("French Southern Territories", comment: "Country option for a site address.")
-
- // G
- case .GA: return NSLocalizedString("Gabon", comment: "Country option for a site address.")
- case .GM: return NSLocalizedString("Gambia", comment: "Country option for a site address.")
- case .GE: return NSLocalizedString("Georgia", comment: "Country option for a site address.")
- case .DE: return NSLocalizedString("Germany", comment: "Country option for a site address.")
- case .GH: return NSLocalizedString("Ghana", comment: "Country option for a site address.")
- case .GI: return NSLocalizedString("Gibraltar", comment: "Country option for a site address.")
- case .GR: return NSLocalizedString("Greece", comment: "Country option for a site address.")
- case .GL: return NSLocalizedString("Greenland", comment: "Country option for a site address.")
- case .GD: return NSLocalizedString("Grenada", comment: "Country option for a site address.")
- case .GP: return NSLocalizedString("Guadeloupe", comment: "Country option for a site address.")
- case .GU: return NSLocalizedString("Guam", comment: "Country option for a site address.")
- case .GT: return NSLocalizedString("Guatemala", comment: "Country option for a site address.")
- case .GG: return NSLocalizedString("Guernsey", comment: "Country option for a site address.")
- case .GN: return NSLocalizedString("Guinea", comment: "Country option for a site address.")
- case .GW: return NSLocalizedString("Guinea-Bissau", comment: "Country option for a site address.")
- case .GY: return NSLocalizedString("Guyana", comment: "Country option for a site address.")
-
- // H
- case .HT: return NSLocalizedString("Haiti", comment: "Country option for a site address.")
- case .HM: return NSLocalizedString("Heard Island and McDonald Islands", comment: "Country option for a site address.")
- case .HN: return NSLocalizedString("Honduras", comment: "Country option for a site address.")
- case .HK: return NSLocalizedString("Hong Kong", comment: "Country option for a site address.")
- case .HU: return NSLocalizedString("Hungary", comment: "Country option for a site address.")
-
- // I
- case .IS: return NSLocalizedString("Iceland", comment: "Country option for a site address.")
- case .IN: return NSLocalizedString("India", comment: "Country option for a site address.")
- case .ID: return NSLocalizedString("Indonesia", comment: "Country option for a site address.")
- case .IR: return NSLocalizedString("Iran", comment: "Country option for a site address.")
- case .IQ: return NSLocalizedString("Iraq", comment: "Country option for a site address.")
- case .IE: return NSLocalizedString("Ireland", comment: "Country option for a site address.")
- case .IM: return NSLocalizedString("Isle of Man", comment: "Country option for a site address.")
- case .IL: return NSLocalizedString("Israel", comment: "Country option for a site address.")
- case .IT: return NSLocalizedString("Italy", comment: "Country option for a site address.")
- case .CI: return NSLocalizedString("Ivory Coast", comment: "Country option for a site address.")
-
- // J
- case .JM: return NSLocalizedString("Jamaica", comment: "Country option for a site address.")
- case .JP: return NSLocalizedString("Japan", comment: "Country option for a site address.")
- case .JE: return NSLocalizedString("Jersey", comment: "Country option for a site address.")
- case .JO: return NSLocalizedString("Jordan", comment: "Country option for a site address.")
-
- // K
- case .KZ: return NSLocalizedString("Kazakhstan", comment: "Country option for a site address.")
- case .KE: return NSLocalizedString("Kenya", comment: "Country option for a site address.")
- case .KI: return NSLocalizedString("Kiribati", comment: "Country option for a site address.")
- case .KW: return NSLocalizedString("Kuwait", comment: "Country option for a site address.")
- case .KG: return NSLocalizedString("Kyrgyzstan", comment: "Country option for a site address.")
-
- // L
- case .LA: return NSLocalizedString("Laos", comment: "Country option for a site address.")
- case .LV: return NSLocalizedString("Latvia", comment: "Country option for a site address.")
- case .LB: return NSLocalizedString("Lebanon", comment: "Country option for a site address.")
- case .LS: return NSLocalizedString("Lesotho", comment: "Country option for a site address.")
- case .LR: return NSLocalizedString("Liberia", comment: "Country option for a site address.")
- case .LY: return NSLocalizedString("Libya", comment: "Country option for a site address.")
- case .LI: return NSLocalizedString("Liechtenstein", comment: "Country option for a site address.")
- case .LT: return NSLocalizedString("Lithuania", comment: "Country option for a site address.")
- case .LU: return NSLocalizedString("Luxembourg", comment: "Country option for a site address.")
-
- // M
- case .MO: return NSLocalizedString("Macao S.A.R., China", comment: "Country option for a site address.")
- case .MK: return NSLocalizedString("Macedonia", comment: "Country option for a site address.")
- case .MG: return NSLocalizedString("Madagascar", comment: "Country option for a site address.")
- case .MW: return NSLocalizedString("Malawi", comment: "Country option for a site address.")
- case .MY: return NSLocalizedString("Malaysia", comment: "Country option for a site address.")
- case .MV: return NSLocalizedString("Maldives", comment: "Country option for a site address.")
- case .ML: return NSLocalizedString("Mali", comment: "Country option for a site address.")
- case .MT: return NSLocalizedString("Malta", comment: "Country option for a site address.")
- case .MH: return NSLocalizedString("Marshall Islands", comment: "Country option for a site address.")
- case .MQ: return NSLocalizedString("Martinique", comment: "Country option for a site address.")
- case .MR: return NSLocalizedString("Mauritania", comment: "Country option for a site address.")
- case .MU: return NSLocalizedString("Mauritius", comment: "Country option for a site address.")
- case .YT: return NSLocalizedString("Mayotte", comment: "Country option for a site address.")
- case .MX: return NSLocalizedString("Mexico", comment: "Country option for a site address.")
- case .FM: return NSLocalizedString("Micronesia", comment: "Country option for a site address.")
- case .MD: return NSLocalizedString("Moldova", comment: "Country option for a site address.")
- case .MC: return NSLocalizedString("Monaco", comment: "Country option for a site address.")
- case .MN: return NSLocalizedString("Mongolia", comment: "Country option for a site address.")
- case .ME: return NSLocalizedString("Montenegro", comment: "Country option for a site address.")
- case .MS: return NSLocalizedString("Montserrat", comment: "Country option for a site address.")
- case .MA: return NSLocalizedString("Morocco", comment: "Country option for a site address.")
- case .MZ: return NSLocalizedString("Mozambique", comment: "Country option for a site address.")
- case .MM: return NSLocalizedString("Myanmar", comment: "Country option for a site address.")
-
- // N
- case .NA: return NSLocalizedString("Namibia", comment: "Country option for a site address.")
- case .NR: return NSLocalizedString("Nauru", comment: "Country option for a site address.")
- case .NP: return NSLocalizedString("Nepal", comment: "Country option for a site address.")
- case .NL: return NSLocalizedString("Netherlands", comment: "Country option for a site address.")
- case .NC: return NSLocalizedString("New Caledonia", comment: "Country option for a site address.")
- case .NZ: return NSLocalizedString("New Zealand", comment: "Country option for a site address.")
- case .NI: return NSLocalizedString("Nicaragua", comment: "Country option for a site address.")
- case .NE: return NSLocalizedString("Niger", comment: "Country option for a site address.")
- case .NG: return NSLocalizedString("Nigeria", comment: "Country option for a site address.")
- case .NU: return NSLocalizedString("Niue", comment: "Country option for a site address.")
- case .NF: return NSLocalizedString("Norfolk Island", comment: "Country option for a site address.")
- case .KP: return NSLocalizedString("North Korea", comment: "Country option for a site address.")
- case .MP: return NSLocalizedString("Northern Mariana Islands", comment: "Country option for a site address.")
- case .NO: return NSLocalizedString("Norway", comment: "Country option for a site address.")
-
- // O
- case .OM: return NSLocalizedString("Oman", comment: "Country option for a site address.")
-
- // P
- case .PK: return NSLocalizedString("Pakistan", comment: "Country option for a site address.")
- case .PS: return NSLocalizedString("Palestinian Territory", comment: "Country option for a site address.")
- case .PA: return NSLocalizedString("Panama", comment: "Country option for a site address.")
- case .PG: return NSLocalizedString("Papua New Guinea", comment: "Country option for a site address.")
- case .PY: return NSLocalizedString("Paraguay", comment: "Country option for a site address.")
- case .PE: return NSLocalizedString("Peru", comment: "Country option for a site address.")
- case .PH: return NSLocalizedString("Philippines", comment: "Country option for a site address.")
- case .PN: return NSLocalizedString("Pitcairn", comment: "Country option for a site address.")
- case .PL: return NSLocalizedString("Poland", comment: "Country option for a site address.")
- case .PT: return NSLocalizedString("Portugal", comment: "Country option for a site address.")
- case .PR: return NSLocalizedString("Puerto Rico", comment: "Country option for a site address.")
-
- // Q
- case .QA: return NSLocalizedString("Qatar", comment: "Country option for a site address.")
-
- // R
- case .RE: return NSLocalizedString("Reunion", comment: "Country option for a site address.")
- case .RO: return NSLocalizedString("Romania", comment: "Country option for a site address.")
- case .RU: return NSLocalizedString("Russia", comment: "Country option for a site address.")
- case .RW: return NSLocalizedString("Rwanda", comment: "Country option for a site address.")
-
- // S
- case .ST: return NSLocalizedString("São Tomé and PrÃncipe", comment: "Country option for a site address.")
- case .BL: return NSLocalizedString("Saint Barthélemy", comment: "Country option for a site address.")
- case .SH: return NSLocalizedString("Saint Helena", comment: "Country option for a site address.")
- case .KN: return NSLocalizedString("Saint Kitts and Nevis", comment: "Country option for a site address.")
- case .LC: return NSLocalizedString("Saint Lucia", comment: "Country option for a site address.")
- case .SX: return NSLocalizedString("Saint Martin (Dutch part)", comment: "Country option for a site address.")
- case .MF: return NSLocalizedString("Saint Martin (French part)", comment: "Country option for a site address.")
- case .PM: return NSLocalizedString("Saint Pierre and Miquelon", comment: "Country option for a site address.")
- case .VC: return NSLocalizedString("Saint Vincent and the Grenadines", comment: "Country option for a site address.")
- case .WS: return NSLocalizedString("Samoa", comment: "Country option for a site address.")
- case .SM: return NSLocalizedString("San Marino", comment: "Country option for a site address.")
- case .SA: return NSLocalizedString("Saudi Arabia", comment: "Country option for a site address.")
- case .SN: return NSLocalizedString("Senegal", comment: "Country option for a site address.")
- case .RS: return NSLocalizedString("Serbia", comment: "Country option for a site address.")
- case .SC: return NSLocalizedString("Seychelles", comment: "Country option for a site address.")
- case .SL: return NSLocalizedString("Sierra Leone", comment: "Country option for a site address.")
- case .SG: return NSLocalizedString("Singapore", comment: "Country option for a site address.")
- case .SK: return NSLocalizedString("Slovakia", comment: "Country option for a site address.")
- case .SI: return NSLocalizedString("Slovenia", comment: "Country option for a site address.")
- case .SB: return NSLocalizedString("Solomon Islands", comment: "Country option for a site address.")
- case .SO: return NSLocalizedString("Somalia", comment: "Country option for a site address.")
- case .ZA: return NSLocalizedString("South Africa", comment: "Country option for a site address.")
- case .GS: return NSLocalizedString("South Georgia/Sandwich Islands", comment: "Country option for a site address.")
- case .KR: return NSLocalizedString("South Korea", comment: "Country option for a site address.")
- case .SS: return NSLocalizedString("South Sudan", comment: "Country option for a site address.")
- case .ES: return NSLocalizedString("Spain", comment: "Country option for a site address.")
- case .LK: return NSLocalizedString("Sri Lanka", comment: "Country option for a site address.")
- case .SD: return NSLocalizedString("Sudan", comment: "Country option for a site address.")
- case .SR: return NSLocalizedString("Suriname", comment: "Country option for a site address.")
- case .SJ: return NSLocalizedString("Svalbard and Jan Mayen", comment: "Country option for a site address.")
- case .SZ: return NSLocalizedString("Swaziland", comment: "Country option for a site address.")
- case .SE: return NSLocalizedString("Sweden", comment: "Country option for a site address.")
- case .CH: return NSLocalizedString("Switzerland", comment: "Country option for a site address.")
- case .SY: return NSLocalizedString("Syria", comment: "Country option for a site address.")
-
- // T
- case .TW: return NSLocalizedString("Taiwan", comment: "Country option for a site address.")
- case .TJ: return NSLocalizedString("Tajikistan", comment: "Country option for a site address.")
- case .TZ: return NSLocalizedString("Tanzania", comment: "Country option for a site address.")
- case .TH: return NSLocalizedString("Thailand", comment: "Country option for a site address.")
- case .TL: return NSLocalizedString("Timor-Leste", comment: "Country option for a site address.")
- case .TG: return NSLocalizedString("Togo", comment: "Country option for a site address.")
- case .TK: return NSLocalizedString("Tokelau", comment: "Country option for a site address.")
- case .TO: return NSLocalizedString("Tonga", comment: "Country option for a site address.")
- case .TT: return NSLocalizedString("Trinidad and Tobago", comment: "Country option for a site address.")
- case .TN: return NSLocalizedString("Tunisia", comment: "Country option for a site address.")
- case .TR: return NSLocalizedString("Turkey", comment: "Country option for a site address.")
- case .TM: return NSLocalizedString("Turkmenistan", comment: "Country option for a site address.")
- case .TC: return NSLocalizedString("Turks and Caicos Islands", comment: "Country option for a site address.")
- case .TV: return NSLocalizedString("Tuvalu", comment: "Country option for a site address.")
-
- // U
- case .UG: return NSLocalizedString("Uganda", comment: "Country option for a site address.")
- case .UA: return NSLocalizedString("Ukraine", comment: "Country option for a site address.")
- case .AE: return NSLocalizedString("United Arab Emirates", comment: "Country option for a site address.")
- case .GB: return NSLocalizedString("United Kingdom", comment: "Country option for a site address.")
- case .US: return NSLocalizedString("United States", comment: "Country option for a site address.")
- case .UM: return NSLocalizedString("United States Minor Outlying Islands", comment: "Country option for a site address.")
- case .VI: return NSLocalizedString("United States Virgin Islands", comment: "Country option for a site address.")
- case .UY: return NSLocalizedString("Uruguay", comment: "Country option for a site address.")
- case .UZ: return NSLocalizedString("Uzbekistan", comment: "Country option for a site address.")
-
- // V
- case .VU: return NSLocalizedString("Vanuatu", comment: "Country option for a site address.")
- case .VA: return NSLocalizedString("Vatican", comment: "Country option for a site address.")
- case .VE: return NSLocalizedString("Venezuela", comment: "Country option for a site address.")
- case .VN: return NSLocalizedString("Vietnam", comment: "Country option for a site address.")
-
- // W
- case .WF: return NSLocalizedString("Wallis and Futuna", comment: "Country option for a site address.")
- case .EH: return NSLocalizedString("Western Sahara", comment: "Country option for a site address.")
-
- // Y
- case .YE: return NSLocalizedString("Yemen", comment: "Country option for a site address.")
-
- // Z
- case .ZM: return NSLocalizedString("Zambia", comment: "Country option for a site address.")
- case .ZW: return NSLocalizedString("Zimbabwe", comment: "Country option for a site address.")
-
- case .unknown: return NSLocalizedString("Unknown country", comment: "Fallback country option for a site address.")
- }
- }
-}
diff --git a/WooCommerce/Classes/ViewRelated/Dashboard/Settings/POS/POSTabEligibilityChecker.swift b/WooCommerce/Classes/ViewRelated/Dashboard/Settings/POS/POSTabEligibilityChecker.swift
index 5784d6e50fd..952aeb6fade 100644
--- a/WooCommerce/Classes/ViewRelated/Dashboard/Settings/POS/POSTabEligibilityChecker.swift
+++ b/WooCommerce/Classes/ViewRelated/Dashboard/Settings/POS/POSTabEligibilityChecker.swift
@@ -18,17 +18,6 @@ import class Yosemite.POSSiteSettingService
import enum Networking.SiteSettingsFeature
import class WooFoundation.VersionHelpers
-protocol POSEntryPointEligibilityCheckerProtocol {
- /// Checks the initial visibility of the POS tab.
- func checkInitialVisibility() -> Bool
- /// Checks the final visibility of the POS tab.
- func checkVisibility() async -> Bool
- /// Determines whether the site is eligible for POS.
- func checkEligibility() async -> POSEligibilityState
- /// Refreshes the eligibility state based on the provided ineligible reason.
- func refreshEligibility(ineligibleReason: POSIneligibleReason) async throws -> POSEligibilityState
-}
-
final class POSTabEligibilityChecker: POSEntryPointEligibilityCheckerProtocol {
private let siteID: Int64
private let userInterfaceIdiom: UIUserInterfaceIdiom
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 35dcc9f2288..55d6e387240 100644
--- a/WooCommerce/WooCommerce.xcodeproj/project.pbxproj
+++ b/WooCommerce/WooCommerce.xcodeproj/project.pbxproj
@@ -21,8 +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 */; };
@@ -32,32 +30,14 @@
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 */; };
- 016582C92E786840001DBB6F /* UIImage+POS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016582C72E786840001DBB6F /* UIImage+POS.swift */; };
016582D62E78715B001DBB6F /* CardPresentPaymentBluetoothReaderConnectionAlertsProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016582CA2E78715B001DBB6F /* CardPresentPaymentBluetoothReaderConnectionAlertsProvider.swift */; };
016582D72E78715B001DBB6F /* CardPresentPaymentsTransactionAlertsProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016582D22E78715B001DBB6F /* CardPresentPaymentsTransactionAlertsProvider.swift */; };
016582D82E78715B001DBB6F /* POSCollectOrderPaymentAnalyticsAdaptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016582D52E78715B001DBB6F /* POSCollectOrderPaymentAnalyticsAdaptor.swift */; };
@@ -70,27 +50,14 @@
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 */; };
@@ -99,52 +66,25 @@
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 /* MockAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01AB2D152DDC8CD600AA67FD /* MockAnalytics.swift */; };
- 01ABA0282E57579300829DC0 /* POSOrderListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01ABA0252E57579300829DC0 /* POSOrderListView.swift */; };
- 01ABA0292E57579300829DC0 /* POSDetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01ABA0242E57579300829DC0 /* POSDetailsView.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 */; };
- 01E62EC82DFADF56003A6D9E /* Cart+BarcodeScanError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01E62EC72DFADF4B003A6D9E /* Cart+BarcodeScanError.swift */; };
01F067ED2D0C5D59001C5805 /* MockLocationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01F067EC2D0C5D56001C5805 /* MockLocationService.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 */; };
- 01FB19582C6E901800A44FF0 /* DynamicHStack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01FB19572C6E901800A44FF0 /* DynamicHStack.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 */; };
@@ -155,9 +95,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 */; };
@@ -188,9 +125,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 */; };
@@ -215,16 +149,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 */; };
@@ -235,9 +166,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 */; };
@@ -266,11 +195,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 */; };
@@ -292,7 +217,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 */; };
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 */; };
@@ -378,7 +302,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 */; };
@@ -396,19 +319,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 */; };
@@ -417,7 +327,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 */; };
@@ -451,14 +360,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 */; };
@@ -495,8 +399,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 */; };
@@ -506,22 +408,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 */; };
@@ -549,8 +442,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 */; };
@@ -562,7 +453,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 */; };
@@ -573,7 +463,6 @@
02B881852E18586E009375F5 /* LegacyPOSTabEligibilityCheckerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B881842E18586B009375F5 /* LegacyPOSTabEligibilityCheckerTests.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 */; };
@@ -629,7 +518,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 */; };
@@ -658,7 +546,6 @@
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 */; };
@@ -679,14 +566,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 */; };
@@ -833,84 +717,22 @@
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 */; };
@@ -922,29 +744,14 @@
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 */; };
@@ -953,43 +760,21 @@
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 */; };
@@ -1590,8 +1375,6 @@
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 */; };
@@ -1599,12 +1382,7 @@
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 */; };
@@ -1620,51 +1398,31 @@
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 */; };
- 68625DE62D4134D70042B231 /* DynamicVStack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68625DE52D4134D50042B231 /* DynamicVStack.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 */; };
- 68AC9D292ACE598B0042F784 /* ProductImageThumbnail.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68AC9D282ACE598B0042F784 /* ProductImageThumbnail.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 */; };
@@ -1677,10 +1435,7 @@
68E952CC287536010095A23D /* SafariView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68E952CB287536010095A23D /* SafariView.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 */; };
@@ -2522,7 +2277,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 */; };
@@ -2567,9 +2321,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 */; };
@@ -2578,7 +2329,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 */; };
@@ -3235,8 +2985,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 = ""; };
@@ -3246,32 +2994,14 @@
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 = ""; };
- 016582C72E786840001DBB6F /* UIImage+POS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+POS.swift"; sourceTree = ""; };
016582CA2E78715B001DBB6F /* CardPresentPaymentBluetoothReaderConnectionAlertsProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardPresentPaymentBluetoothReaderConnectionAlertsProvider.swift; sourceTree = ""; };
016582CB2E78715B001DBB6F /* CardPresentPaymentCollectOrderPaymentUseCaseAdaptor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardPresentPaymentCollectOrderPaymentUseCaseAdaptor.swift; sourceTree = ""; };
016582CC2E78715B001DBB6F /* CardPresentPaymentInvalidatablePaymentOrchestrator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardPresentPaymentInvalidatablePaymentOrchestrator.swift; sourceTree = ""; };
@@ -3284,27 +3014,14 @@
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 = ""; };
@@ -3313,54 +3030,27 @@
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 /* MockAnalytics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockAnalytics.swift; sourceTree = ""; };
- 01ABA0242E57579300829DC0 /* POSDetailsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSDetailsView.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 = ""; };
- 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 = ""; };
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 = ""; };
- 01FB19572C6E901800A44FF0 /* DynamicHStack.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DynamicHStack.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 = ""; };
@@ -3371,9 +3061,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 = ""; };
@@ -3404,9 +3091,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 = ""; };
@@ -3431,16 +3115,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 = ""; };
@@ -3451,9 +3132,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 = ""; };
@@ -3482,11 +3161,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 = ""; };
@@ -3508,7 +3183,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 = ""; };
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 = ""; };
@@ -3594,7 +3268,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 = ""; };
@@ -3612,19 +3285,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 = ""; };
@@ -3633,7 +3293,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 = ""; };
@@ -3668,14 +3327,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 = ""; };
@@ -3713,8 +3367,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 = ""; };
@@ -3724,22 +3376,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 = ""; };
029700EE24FE38F000D242F8 /* ScrollWatcherTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScrollWatcherTests.swift; sourceTree = ""; };
029A9C662535873000BECEC5 /* AppCoordinatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppCoordinatorTests.swift; sourceTree = ""; };
029B0F56234197B80010C1F3 /* ProductSearchUICommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductSearchUICommand.swift; sourceTree = ""; };
- 029D02592C2319FA00CB1E75 /* PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressAlertViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressAlertViewModel.swift; sourceTree = ""; };
- 029D025B2C231A1F00CB1E75 /* PointOfSaleCardPresentPaymentReaderUpdateCompletionAlertViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentReaderUpdateCompletionAlertViewModel.swift; sourceTree = ""; };
- 029D025D2C231F2A00CB1E75 /* PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentOptionalReaderUpdateInProgressView.swift; sourceTree = ""; };
- 029D025F2C231F5F00CB1E75 /* PointOfSaleCardPresentPaymentReaderUpdateCompletionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCardPresentPaymentReaderUpdateCompletionView.swift; sourceTree = ""; };
029F29F924D93E9E004751CA /* EditableProductModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditableProductModel.swift; sourceTree = ""; };
029F29FB24D94106004751CA /* EditableProductVariationModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditableProductVariationModel.swift; sourceTree = "